X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?p=ginac.git;a=blobdiff_plain;f=check%2Fexam_noncommut.cpp;h=bd395a3b8941872abddf4c1e62f0dad92cf03dad;hp=634fad7b438e422fc8407bb65aa1ee7fcbf002e4;hb=a77d28203c3ec483e6612c5df3caf5ea6924dfdd;hpb=f4ea690a3f118bf364190f0ef3c3f6d2ccdf6206 diff --git a/check/exam_noncommut.cpp b/check/exam_noncommut.cpp index 634fad7b..bd395a3b 100644 --- a/check/exam_noncommut.cpp +++ b/check/exam_noncommut.cpp @@ -3,7 +3,7 @@ * Here we test manipulations on GiNaC's lortensors. */ /* - * GiNaC Copyright (C) 1999-2000 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2001 Johannes Gutenberg University Mainz, Germany * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -24,83 +24,83 @@ static unsigned lortensor_check1(void) { - // checks simple identities of the metric tensor! - - unsigned result = 0; - lorentzidx mu("mu"), nu("nu"); - ex e1, e2, e3, e4, e5, e6; - e1 = lortensor_g(mu,nu); - e2 = lortensor_g(nu,mu); - e3 = e1 - e2; // g(~mu,~nu) - g(~nu,~mu) = 0 ! - e4 = lortensor_g(mu,mu.toggle_covariant()); - e5 = lortensor_g(mu.toggle_covariant(),mu); - e6 = e4 - e5; // g(~mu,_mu) - g(_mu,~mu) = 0! - if (!e3.is_zero()) { - clog << e1 << "-" << e2 << " erroneously returned " - << e3 << " instead of 0" << endl; - ++result; - } - if (!e6.is_zero()) { - clog << e4 << "-" << e5 << " erroneously returned " - << e6 << " instead of 0" << endl; - ++result; - } + // checks simple identities of the metric tensor! + + unsigned result = 0; + lorentzidx mu("mu"), nu("nu"); + ex e1, e2, e3, e4, e5, e6; + e1 = lortensor_g(mu,nu); + e2 = lortensor_g(nu,mu); + e3 = e1 - e2; // g(~mu,~nu) - g(~nu,~mu) = 0 ! + e4 = lortensor_g(mu,mu.toggle_covariant()); + e5 = lortensor_g(mu.toggle_covariant(),mu); + e6 = e4 - e5; // g(~mu,_mu) - g(_mu,~mu) = 0! + if (!e3.is_zero()) { + clog << e1 << "-" << e2 << " erroneously returned " + << e3 << " instead of 0" << endl; + ++result; + } + if (!e6.is_zero()) { + clog << e4 << "-" << e5 << " erroneously returned " + << e6 << " instead of 0" << endl; + ++result; + } - return result; + return result; } static unsigned lortensor_check2(void) { - // checks simple contraction properties of an arbitrary (symmetric!) rankn lortensor! - - unsigned result = 0; - lorentzidx mu("mu"), nu("nu"), rho("rho"); - ex e1, e2, e3, e4, e5, e6, e7, e8, e9, e10; - e1 = lortensor_g(mu,nu); - e2 = lortensor_g(nu,mu); - e3 = lortensor_rank1("p",mu.toggle_covariant()); - e4 = lortensor_rank1("p",nu); - e5 = e3 * e1 - e3 * e2; // p_mu g(~mu,~nu) - p_mu g(~nu,~mu) = 0! - e6 = simplify_lortensor(e3 * e1) - e4; // p~nu - p~nu = 0! - e7 = lortensor_g(nu,rho); - e8 = lortensor_rank2("F",mu.toggle_covariant(),nu.toggle_covariant()); - e9 = lortensor_rank2("F",mu.toggle_covariant(),rho); - e10 = simplify_lortensor(e8 * e7) - e9; // F(_mu,_nu) g(~nu,~rho) - F(_mu,~rho) = 0! - if (!e5.is_zero()) { - clog << e3 << "*" << e1 << "-" << e3 << "*" << e2 << " erroneously returned " - << e5 << " instead of 0" << endl; - ++result; - } - if (!e6.is_zero()) { - clog << " simplify_lortensor(e3 * e1)" << "-" << e4 << " erroneously returned" - << e6 << " instead of 0" << endl; - ++result; - } - if (!e10.is_zero()) { - clog << " simplify_lortensor(e8 * e7)" << "-" << e9 << " erroneously returned" - << e10 << " instead of 0" << endl; - ++result; - } + // checks simple contraction properties of an arbitrary (symmetric!) rankn lortensor! + + unsigned result = 0; + lorentzidx mu("mu"), nu("nu"), rho("rho"); + ex e1, e2, e3, e4, e5, e6, e7, e8, e9, e10; + e1 = lortensor_g(mu,nu); + e2 = lortensor_g(nu,mu); + e3 = lortensor_rank1("p",mu.toggle_covariant()); + e4 = lortensor_rank1("p",nu); + e5 = e3 * e1 - e3 * e2; // p_mu g(~mu,~nu) - p_mu g(~nu,~mu) = 0! + e6 = simplify_lortensor(e3 * e1) - e4; // p~nu - p~nu = 0! + e7 = lortensor_g(nu,rho); + e8 = lortensor_rank2("F",mu.toggle_covariant(),nu.toggle_covariant()); + e9 = lortensor_rank2("F",mu.toggle_covariant(),rho); + e10 = simplify_lortensor(e8 * e7) - e9; // F(_mu,_nu) g(~nu,~rho) - F(_mu,~rho) = 0! + if (!e5.is_zero()) { + clog << e3 << "*" << e1 << "-" << e3 << "*" << e2 << " erroneously returned " + << e5 << " instead of 0" << endl; + ++result; + } + if (!e6.is_zero()) { + clog << " simplify_lortensor(e3 * e1)" << "-" << e4 << " erroneously returned" + << e6 << " instead of 0" << endl; + ++result; + } + if (!e10.is_zero()) { + clog << " simplify_lortensor(e8 * e7)" << "-" << e9 << " erroneously returned" + << e10 << " instead of 0" << endl; + ++result; + } - return result; + return result; } unsigned exam_noncommut(void) { - unsigned result = 0; - - cout << "examining behaviour of noncommutative objects" << flush; - clog << "----------behaviour of noncommutative objects:" << endl; - - result += lortensor_check1(); cout << '.' << flush; - result += lortensor_check2(); cout << '.' << flush; - - if (!result) { - cout << " passed " << endl; - clog << "(no output)" << endl; - } else { - cout << " failed " << endl; - } - - return result; + unsigned result = 0; + + cout << "examining behaviour of noncommutative objects" << flush; + clog << "----------behaviour of noncommutative objects:" << endl; + + result += lortensor_check1(); cout << '.' << flush; + result += lortensor_check2(); cout << '.' << flush; + + if (!result) { + cout << " passed " << endl; + clog << "(no output)" << endl; + } else { + cout << " failed " << endl; + } + + return result; }