Re: overloading times operator
- To: mathgroup at smc.vnet.net
- Subject: [mg88825] Re: overloading times operator
- From: "David Park" <djmpark at comcast.net>
- Date: Sat, 17 May 2008 23:28:16 -0400 (EDT)
- References: <g0m918$3n$1@smc.vnet.net>
You didn't show us the procedure. In any case, it is probably risky to overload Times for this purpose. Why not use NonCommutativeMultiply or CircleTimes? -- David Park djmpark at comcast.net http://home.comcast.net/~djmpark/ "gstaples" <gstaceystaples at yahoo.com> wrote in message news:g0m918$3n$1 at smc.vnet.net... >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? >