Re: Re: Conversion of Orderless functions to non Orderless one
- To: mathgroup at smc.vnet.net
- Subject: [mg24078] Re: [mg24069] Re: [mg24046] Conversion of Orderless functions to non Orderless one
- From: Andrzej Kozlowski <andrzej at tuins.ac.jp>
- Date: Fri, 23 Jun 2000 02:26:45 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
Just a small correction to my earlier code. It should have been:
times[l___] :=
Times @@ DeleteCases[{l}, a | b | c] *
NonCommutativeMultiply @@ Cases[{l}, a | b | c]
(* instead of **). Of course this code only makes sense under the assumption
that a,b,c commute with all the other elements not belonging to the set
{a,b,c}.
As I wrote in my original message, if you want to do any serious
computations you need something much more sophisticated, like the NCAlgebra
package.
on 00.6.22 2:02 PM, Andrzej Kozlowski at andrzej at tuins.ac.jp wrote:
> It seems you want to be able to do some non-commutative algebra. The
> question is "how much?" If you want to do only what you wrote in your
> posting and no more than the following might be enough.
>
>
> In[1]:=
> SetAttributes[times, {Flat, OneIdentity}]
>
> In[2]:=
> times[l___] :=
> Times @@ DeleteCases[{l}, a | b | c] **
> NonCommutativeMultiply @@ Cases[{l}, a | b | c]
>
> Now you can get something like what you asked for:
>
> In[4]:=
> times[c, x, y, b, v, a, z]
> Out[4]=
> (v x y z) ** c ** b ** a
>
> However,if you want be able to do any algebra, e.g. expand expressions etc.
> then the the only choice (not involving a lot of
> programming) seems to be to download the NonCommutative algebra package
> available on MathSource. It is a powerful package which I used quite lot
> about a year ago. You should be warned however of several problems. First of
> all, the documentation is very inconvenient, being in the form of a dvi file
> without hyperlinks. Secondly, it is not really a proper Mathematica package
> (it does not use contexts). The easiest way to load it is to use
> SetDirectory to enter the NCAlgebra directory and load the NCAlgebra.m file
> (which loads in a number of individual files of which this "package"
> consists of) with:
>
> << NCAlgebra`
>
>
> The functions defined in this "package" allow you to do a lot of
> non-commutative algebra, of the kind
> you seem to be interested in, but you have to carefully avoid using many
> built in functions (e.g. you should use NonCommutativeExpand, not Expand,
> you can't use the built in Power, and so on. Of course I do not mean that
> your computer will explode if ytou do so, just that you will get answers
> which are likely to be wrong). It would certainly seem a good idea for
> Mathematica to include more non-commutative functions than the very
> rudimentary NonCommutativeMultiply. There has been some talk about this for
> a long time but so far other things seem to have been given higher priority.
>
> Andrzej
> --
> Andrzej Kozlowski
> Toyama International University, JAPAN
>
> For Mathematica related links and resources try:
> <http://www.sstreams.com/Mathematica/>
>
> on 6/21/00 3:20 PM, zhl67 at hotmail.com at zhl67 at hotmail.com wrote:
>
>> Hi, there
>>
>> My question might be silly to somebody out there but it really bothers
>> me: Is there any way to convert an orderless function into non
>> orderless ones for a certain range of arguments?
>>
>> For instance, let's say have a set Operators:
>>
>> Operators={a,b,c}
>>
>> What I wanted to do is that whenever expressions like Times[b,a,c] is
>> entered, the outcome should look like b**a**c (i.e. Times turned into
>> NonCommutativeMultiply). The special requirement is that this change
>> happens only for members of the set Operators (otherwise I can just
>> ClearAttributes[Times,Orderless] ), and that the output keeps the order
>> of the input argument, i.e. it should be b**a**c, NOT a**b**c. Could
>> anyone help the case?
>>
>> Liu Zhao
>> Univ. York, UK
>>
>>
>> Sent via Deja.com http://www.deja.com/
>> Before you buy.
>>
>
>
>
>
--
Andrzej Kozlowski
Toyama International University
JAPAN
http://platon.c.u-tokyo.ac.jp/andrzej/
http://sigma.tuins.ac.jp/