Hi, I discovered that clifford_moebius_map() function was ignorant of representative labels for Clifford numbers, which generates misbehaviour. I include the cumulative patch which this issue along with the previous one. Best wishes, Vladimir -- Vladimir V. Kisil email: kisilv@maths.leeds.ac.uk -- www: http://maths.leeds.ac.uk/~kisilv/ Index: doc/tutorial/ginac.texi =================================================================== RCS file: /home/cvs/GiNaC/doc/tutorial/ginac.texi,v retrieving revision 1.159 diff -r1.159 ginac.texi 3179,3180c3179,3181 < @samp{e~i e~j + e~j e~i = B(i, j)} for some symmetric matrix (@code{metric}) < @math{B(i, j)}. Such generators are created by the function ---
@samp{e~i e~j + e~j e~i = B(i, j)} for some matrix (@code{metric}) @math{B(i, j)}, which may be non-symmetric. Such generators are created by the function 3194a3196,3204 If the matrix @math{B(i, j)} is in fact symmetric you may prefer to create the Clifford algebra units with a call like that
@example ex e = clifford_unit(mu, indexed(B, sy_symm(), i, j)); @end example
since this may yield some further automatic simplifications.
3336c3346,3347 < const ex & d, const ex & v, const ex & G); ---
const ex & d, const ex & v, const ex & G, unsigned char rl = 0); ex clifford_moebius_map(const ex & M, const ex & v, const ex & G, unsigned char rl = 0);
3341c3352 < (av+b)/(cv+d)} defined by the matrix @samp{[[a, b], [c, d]]}. The last ---
(av+b)/(cv+d)} defined by the matrix @samp{M = [[a, b], [c, d]]}. The Index: ginac/clifford.h =================================================================== RCS file: /home/cvs/GiNaC/ginac/clifford.h,v retrieving revision 1.53 diff -r1.53 clifford.h 318,319c318,320 < * @param G Metric of the surrounding space */ < ex clifford_moebius_map(const ex & a, const ex & b, const ex & c, const ex & d, const ex & v, const ex & G);
* @param G Metric of the surrounding space * @param rl Representation label*/ ex clifford_moebius_map(const ex & a, const ex & b, const ex & c, const ex & d, const ex & v, const ex & G, unsigned char rl = 0); 326,327c327,329 < * @param G Metric of the surrounding space */ < ex clifford_moebius_map(const ex & M, const ex & v, const ex & G);
* @param G Metric of the surrounding space * @param rl Representation label*/ ex clifford_moebius_map(const ex & M, const ex & v, const ex & G, unsigned char rl = 0); Index: ginac/clifford.cpp =================================================================== RCS file: /home/cvs/GiNaC/ginac/clifford.cpp,v retrieving revision 1.82 diff -r1.82 clifford.cpp 1163c1163 < ex clifford_moebius_map(const ex & a, const ex & b, const ex & c, const ex & d, const ex & v, const ex & G)
ex clifford_moebius_map(const ex & a, const ex & b, const ex & c, const ex & d, const ex & v, const ex & G, unsigned char rl) 1178c1178 < x = lst_to_clifford(v, mu, G);
x = lst_to_clifford(v, mu, G, rl); 1184c1184 < ex clifford_moebius_map(const ex & M, const ex & v, const ex & G)
ex clifford_moebius_map(const ex & M, const ex & v, const ex & G,unsigned char rl) 1188c1188 < ex_to<matrix>(M)(1,0), ex_to<matrix>(M)(1,1), v, G);
ex_to<matrix>(M)(1,0), ex_to<matrix>(M)(1,1), v, G, rl);