X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?p=ginac.git;a=blobdiff_plain;f=check%2Fexam_clifford.cpp;h=2b28be4c5030636af3e55b83998f4d1fd513de0e;hp=d4491191acfce830ca8409969a7fa86d4c1aee79;hb=2e13bfeb92ce55b3ee7e24cc6041f70c7a0eff4e;hpb=5b413e48c0d6ddf798bb8067abd40806286c6e3c diff --git a/check/exam_clifford.cpp b/check/exam_clifford.cpp index d4491191..2b28be4c 100644 --- a/check/exam_clifford.cpp +++ b/check/exam_clifford.cpp @@ -54,13 +54,42 @@ static unsigned clifford_check1(void) varidx mu(symbol("mu"), dim), nu(symbol("nu"), dim); ex e; + e = dirac_ONE() * dirac_ONE(); + result += check_equal(e, dirac_ONE()); + + e = dirac_ONE() * dirac_gamma(mu) * dirac_ONE(); + result += check_equal(e, dirac_gamma(mu)); + + e = dirac_gamma(varidx(2, dim)) * dirac_gamma(varidx(1, dim)) * + dirac_gamma(varidx(1, dim)) * dirac_gamma(varidx(2, dim)); + result += check_equal(e, dirac_ONE()); + e = dirac_gamma(mu) * dirac_gamma(nu) * dirac_gamma(nu.toggle_variance()) * dirac_gamma(mu.toggle_variance()); - result += check_equal_simplify(e, pow(dim, 2) * dirac_one()); + result += check_equal_simplify(e, pow(dim, 2) * dirac_ONE()); e = dirac_gamma(mu) * dirac_gamma(nu) * dirac_gamma(mu.toggle_variance()) * dirac_gamma(nu.toggle_variance()); - result += check_equal_simplify(e, 2*dim*dirac_one()-pow(dim, 2)*dirac_one()); + result += check_equal_simplify(e, 2*dim*dirac_ONE()-pow(dim, 2)*dirac_ONE()); + + return result; +} + +static unsigned clifford_check2(void) +{ + // checks identities relating to gamma5 + + unsigned result = 0; + + symbol dim("D"); + varidx mu(symbol("mu"), dim), nu(symbol("nu"), dim); + ex e; + + e = dirac_gamma(mu) * dirac_gamma5() + dirac_gamma5() * dirac_gamma(mu); + result += check_equal(e, 0); + + e = dirac_gamma5() * dirac_gamma(mu) * dirac_gamma5() + dirac_gamma(mu); + result += check_equal(e, 0); return result; } @@ -73,6 +102,7 @@ unsigned exam_clifford(void) clog << "----------clifford objects:" << endl; result += clifford_check1(); cout << '.' << flush; + result += clifford_check2(); cout << '.' << flush; if (!result) { cout << " passed " << endl;