# [GiNaC-list] Wonderfull!!. WAS: Are Clifford units of different bases equal?

Wed May 9 17:48:47 CEST 2007

```		Dear Javier,

>>>>> "JRG" == Javier Ros Ganuza <jros at unavarra.es> writes:
JRG> I'll will install CVS version to follow.

I think it should go smooth.

JRG> Mean while, I see that geometric products of type e~1*e~1 are
JRG> being simplified to ONE, that I suppose that can be removed
JRG> using
JRG> ex remove_dirac_ONE(const ex & e)

That function is intended only for an expression e which has a form
(a Clifford scalar) * ONE. You could not remove ONE from the
expression 2*ONE+3*e~1, since it will become an invalid GiNaC
expression (a commuting object cannot be added to a non-commuting one).

JRG> Also I see in

JRG> a0+(e~0*e~1)*a3+e~1*a2+a1*e~0

JRG> that e~1*e~0 expresions are outputed like (e~0*e~1).

In this way GiNaC highlights that  (e~0*e~1) is a non-commutative
product times some other commuting terms.

JRG> If I want to trigger specific simplifications for the Cl2
JRG> geometric algebra, like
JRG> (e~1*e~0)=-(e~0*e~1)

GiNaC just put in expression in a "canonical form" which means some
"canonical order". If you simply declare e00 and e01 in the reverse
order GiNaC would output (e~1*e~0) as -(e~0*e~1).

JRG> e~0*(e~0*e~1)=e~1
JRG> e~0*e~1*e~0*e~1=-1

All that should be done by canonicalize_clifford() method. Just
remember that it should be called manually whenever you need it.

Best wishes,