[GiNaC-list] Simplify clifford expresion: Works?
Javier Ros Ganuza
jros at unavarra.es
Fri May 25 16:50:01 CEST 2007
NOTE: I'm using one week old CVS version.
I'm playing with rotations in Cl3, following with my previous mail basis
definition.
I'm implementing the following trivial rotation
ex R=(cos(theta/2)*dirac_ONE(0)-e00*e01*sin(theta/2));
cout << "subs Rotation R * e00 * R^\\dag = " << canonicalize_clifford((R
* e00 * clifford_star(R)).expand()) << endl;
That wonderfully (wonderfully!!!) gives:
Rotation R * e00 * R^\dag =
2*e~1*sin(1/2*theta)*cos(1/2*theta)-sin(1/2*theta)^2*e~0
+e~0*cos(1/2*theta)^2
I'm trying to trigonometrically simmplify,
2*cos(1/2*theta)*e~1*sin(1/2*theta) -----to---> sin(theta)
To that end:
cout << "subs Rotation R * e00 * R^\\dag = " <<
canonicalize_clifford((R * e00 *
clifford_star(R)).expand()).subs(lst(2*sin(1/2*theta)*cos(1/2*theta)==sin(theta))) << endl;
that gives
subs Rotation R * e00 * R^\dag =
2*e~1*sin(1/2*theta)*cos(1/2*theta)+e~(sin(theta))*cos(1/2*theta)^2-sin(1/2*theta)^2*e~(sin(theta))
Also, if I use
cout << "subs Rotation R * e00 * R^\\dag = " << canonicalize_clifford((R
* e00 *
clifford_star(R)).expand()).subs(lst(2*sin(1/2*theta)*cos(1/2*theta)==sin(theta)),subs_options::algebraic) << endl;
I get the same result
subs Rotation R * e00 * R^\dag =
2*e~1*sin(1/2*theta)*cos(1/2*theta)+e~(sin(theta))*cos(1/2*theta)^2-sin(1/2*theta)^2*e~(sin(theta))
I think this is a bug.
????
Have a nice weekend!
Javier
More information about the GiNaC-list
mailing list