# [GiNaC-devel] Clifford patch (cumulative)

Tue Feb 8 12:34:03 CET 2005

```		Hi,

I afraid that did not understand everything from the Richard
email (since my programming skill are very weak) but here is the new
patch. How could I know when v1.4 is out in order to revert to the first
more natural solution?

Best wishes,
--
Vladimir V. Kisil     email: kisilv at 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
318c318,320
<  *  @param G Metric of the surrounding space */
---
>  *  @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);
326c328,330
<  *  @param G Metric of the surrounding space */
---
>  *  @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);
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);
1191a1192,1196
>
> ex clifford_moebius_map(const ex & M, const ex & v, const ex & G) {
> 	return clifford_moebius_map(M, v, G, 0); }
> ex clifford_moebius_map(const ex & a, const ex & b, const ex & c, const ex & d, const ex & v, const ex & G) {
> 	return clifford_moebius_map(a, b, c, d, v, G, 0); }

```