From: Christian Bauer Date: Fri, 30 Jan 2004 17:54:53 +0000 (+0000) Subject: canonicalize_clifford() was omitting some ONEs X-Git-Tag: release_1-2-0~12 X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?p=ginac.git;a=commitdiff_plain;h=6872b42cd09e72e7ca9906f4fc2fe775ace2f043;hp=6d14b44669f315ee0170f3bf7c0ac0504afe8d20;ds=sidebyside canonicalize_clifford() was omitting some ONEs --- diff --git a/check/exam_clifford.cpp b/check/exam_clifford.cpp index c1a2b22f..b6ec71e4 100644 --- a/check/exam_clifford.cpp +++ b/check/exam_clifford.cpp @@ -232,7 +232,7 @@ static unsigned clifford_check5() ex e; e = dirac_gamma(mu) * dirac_gamma(nu) + dirac_gamma(nu) * dirac_gamma(mu); - result += check_equal(canonicalize_clifford(e), 2*lorentz_g(mu, nu)); + result += check_equal(canonicalize_clifford(e), 2*dirac_ONE()*lorentz_g(mu, nu)); e = (dirac_gamma(mu) * dirac_gamma(nu) * dirac_gamma(lam) + dirac_gamma(nu) * dirac_gamma(lam) * dirac_gamma(mu) diff --git a/doc/tutorial/ginac.texi b/doc/tutorial/ginac.texi index 0427540b..beae21b4 100644 --- a/doc/tutorial/ginac.texi +++ b/doc/tutorial/ginac.texi @@ -2828,7 +2828,7 @@ You can use this to compare two expressions or for further simplifications: e = canonicalize_clifford(e); cout << e << endl; - // -> 2*eta~mu~nu + // -> 2*ONE*eta~mu~nu @} @end example diff --git a/ginac/clifford.cpp b/ginac/clifford.cpp index 679def3a..e6f9c291 100644 --- a/ginac/clifford.cpp +++ b/ginac/clifford.cpp @@ -757,7 +757,7 @@ ex canonicalize_clifford(const ex & e) base_and_index(it[0], b1, i1); base_and_index(it[1], b2, i2); it[0] = (lorentz_g(i1, i2) * b1 * b2).simplify_indexed(); - it[1] = _ex2; + it[1] = v.size() == 2 ? _ex2 * dirac_ONE(ex_to(it[1]).get_representation_label()) : _ex2; ex sum = ncmul(v); it[0] = save1; it[1] = save0;