MathGroup Archive 2008

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: overloading times operator

  • To: mathgroup at
  • Subject: [mg88829] Re: overloading times operator
  • From: Michael Weyrauch <michael.weyrauch at>
  • Date: Sat, 17 May 2008 23:29:01 -0400 (EDT)
  • References: <g0m918$3n$>
  • Reply-to: michael.weyrauch at


    I really recommend to use NonCommutativeMultiply[] for a non- 
commutative product and give it the desired properties (or any other 
operator without built-in properties). Overloading Times[]
is potentially breaking Mathematica internals, which is probably the 
reason for your strange results.

But I cannot further comment on your problem until you give a precise
definition of your non-commutative product. (In any case, if you use
NonCommutativeMultiply for your produvt, you also must define
NonCommutativeExpand separately.)

Michael Weyrauch

gstaples schrieb:
> I wrote a procedure to define the non-commutative product of two elements of the form e_X e_Y, where X and Y are multi-indices.  I do this using Times.
> I do a simple calculation like
> Expand[(e_{1} + e_{3})(e_{1} - e_{3})]
> and get the wrong answer.  (On the first try.)
> If I then re-execute the code that defines the multiplication, I repeat the calculation and get correct output.
> Alternatively, if I execute
> e=Symbol["e"] 
> before loading the procedure, I get correct output on the first try.  
> More troubling is that after getting correct output, if I perform calculations of a different kind (e.g. matrix multiplication), when I repeat my original calculation, I start getting incorrect output again.  (Until I re-execute the code that defines the multiplication.)
> It's frustrating to repeat a calculation and get different sets of output depending on what other calculations are done in between.
> Does anyone have suggestions?

  • Prev by Date: Re: overloading times operator
  • Next by Date: Re: Traditional Ordering of Equations
  • Previous by thread: Re: overloading times operator
  • Next by thread: Re: overloading times operator