[GiNaC-devel] Clifford extension
Vladimir Kisil
kisilv at maths.leeds.ac.uk
Fri Nov 12 14:45:04 CET 2004
Dear All,
I just learnt from hep-th/9507133 that it is possible and useful to
consider Clifford algebras defined from a bilinear form which is not
necessarily symmetric. Since present code never actually uses a
symmetry of defined metrics I propose to drop such an assumption from
anywhere. I include the corresponding patch (which accumulates my
previous submission for idx.cpp as well).
Best,
Vladimir
--
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
Index: ginac/clifford.h
===================================================================
RCS file: /home/cvs/GiNaC/ginac/clifford.h,v
retrieving revision 1.53
diff -r1.53 clifford.h
194c194
< * @param metr Metric (should be of class tensmetric or a derived class, or a symmetric matrix)
---
> * @param metr Metric (should be of class tensmetric or a derived class, or a matrix)
291c291
< * @param metr Metric (should be of class tensmetric or a derived class, or a symmetric matrix)
---
> * @param metr Metric (should be of class tensmetric or a derived class, or a matrix)
Index: ginac/clifford.cpp
===================================================================
RCS file: /home/cvs/GiNaC/ginac/clifford.cpp,v
retrieving revision 1.82
diff -r1.82 clifford.cpp
158c158
< return indexed(metric, symmetric2(), i, j);
---
> return indexed(metric, i, j);
1114c1114
< S = S * e.op(j).subs(lst(ex_to<varidx>(*it) == ival, ex_to<varidx>(*it).toggle_variance() == ival), subs_options::no_pattern);
---
> S = S * e.op(j).subs(lst(ex_to<varidx>(*it) == ival), subs_options::no_pattern);
Index: ginac/idx.cpp
===================================================================
RCS file: /home/cvs/GiNaC/ginac/idx.cpp,v
retrieving revision 1.62
diff -r1.62 idx.cpp
508a509,519
> // Auxiliary comparison which does not mind the variance of indices
> struct idx_is_less : public std::binary_function<ex, ex, bool> {
> bool operator() (const ex &lh, const ex &rh) const {
> if (is_a<varidx>(lh))
> return (lh.compare(rh) < 0) &&
> (lh.compare(ex_to<varidx>(rh).toggle_variance()) < 0);
> else
> return lh.compare(rh) < 0;
> }
> };
>
528c539
< shaker_sort(v.begin(), v.end(), ex_is_less(), ex_swap());
---
> shaker_sort(v.begin(), v.end(), idx_is_less(), ex_swap());
More information about the GiNaC-devel
mailing list