[GiNaC-list] Question (Generic Clifford Algebra)

Javier Ros Ganuza jros at unavarra.es
Sat Jun 18 20:16:07 CEST 2005


Following Vladimir's  :)  instructions...

I implemented it, but I've found a problem with the output, probably due
to my lack of knowledge :(.

For reference the listing is 

---
//c++ clifford.cc -o clifford -lcln -lginac

#include <iostream>
using namespace std;

#include <ginac/ginac.h>
using namespace GiNaC;

int main()
{

varidx nu(symbol("nu", "\\nu"), 3), mu(symbol("mu", "\\mu"), 3), xi
(symbol("xi", "\\xi"), 3),  rho(symbol("rho", "\\rho"),3);

ex basis1 = clifford_unit(mu, diag_matrix(lst(1, 1, 1)));
ex basis2 = clifford_unit(nu, diag_matrix(lst(1, 1, 1)));

symbol a1("a1"),a2("a2"),b1("b1"),b2("b2"),c1("c1"),c2("c2");

ex vector1 = lst_to_clifford(lst(a1,b1,c1), rho, basis1);
ex vector2 = lst_to_clifford(lst(a2,b2,c2), rho, basis1);

cout << 2*vector1+vector2 << endl;

cout << 2*vector1*vector2 << endl;

cout << lst_to_clifford(lst(1, 0, 0), rho, basis1) + lst_to_clifford(lst
(0, 1, 0), rho, basis1) << endl;

return 0;
}

---

And the output

$ ./clifford
2*[[a1],[b1],[c1]].rho*e~rho+e~rho*[[a2],[b2],[c2]].rho
2*[[a1],[b1],[c1]].rho*ONE*[[a2],[b2],[c2]].rho*e~rho~rho
[[0],[1],[0]].rho*e~rho+e~rho*[[1],[0],[0]].rho


As it can be see the elements, [[a1],[b1],[c1]].rho, seem indivisible.
There are not trivial groupings being made, like,

[[0],[1],[0]].rho*e~rho+e~rho*[[1],[0],[0]].rho -> [[1],[1],
[0]].rho*e~rho

I tried to simplify_indexed but the result keeps the same.

Also at the tutorial, when dealing with generic clifford algebras,
refered Ginac output for elements of a Clifford Algebra are reflected as

v~0 e.0 + v~1 e.1 + ... + v~n e.n

so exhibiting that they are some how divisible.

Also covariant and contravariant indexes are interchanged in comparison
with the tutorial.


Any clues???.

Thanks for your help

Javier Ros





More information about the GiNaC-list mailing list