MathGroup Archive 1993

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

Search the Archive


  • To: mathgroup at
  • Subject: NonCommutativeMultiply
  • From: barenco at (ADRI)
  • Date: Thu, 22 Apr 1993 09:19:20 +0200


I have the following problem with Mathematica :

I am trying to work with objects that do not commute under a certain
operation (call it multiplication). 

The objects have the following form


i.e. their Head is "fermi".I want Mma to reorder product of "fermi"s
automatically according to specific commutation rules.

I have redefined the function NonCommutativeMultiply and implemented the 
various commutation rules these object have to follow.  It works fine, but it
has a big drawback : it gets incredibly slow when the products are made up of
more than 7 or 8 "fermi"s. I guess this is due to the fact that
NonCommutativeMultiply is not optimized. Thus I tried to modify the Times
function by removing the attribute Orderless, I had then to redefine the
commutativity for all the Object whose head is NOT "fermi". I tried to do this,
it worked fine for expression involving only "fermis" (quick and correct), but
I never managed to re-implement completely the commutativity for objects other
than "fermis". For instance, with compund expression (i.e. expression which
are not pure products of "fermis") Mma returned these weird results :

In[1]:= 2 fermi[1,1,1];

In[2]:= 2 fermi[1,1,1];

In[3]:= %1-%2

Out[3]= 4 fermi[1,1,1]                !!!!!!!!!

Recently, I also tried the package NonCommutativeAlgebra, but it 
uses the NonCommutativeMultiply function, and therefore it should be to slow
for my needs.

Does anyone have an idea of a way of implementing this problem properly ?

Any help or advice would be appreciated 

Adriano Barenco
Dept. of Physics
Swiss Fed. Inst. of Technology

( email: Barenco at )

  • Prev by Date: Mathematica Journal, 1(1)
  • Next by Date: MemoryInUse[] reports wrong numbers?
  • Previous by thread: Mathematica Journal, 1(1)
  • Next by thread: MemoryInUse[] reports wrong numbers?