X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?p=ginac.git;a=blobdiff_plain;f=check%2Fexam_color.cpp;h=4e5894c05caf00592a4faa244dd969b24d5a3f12;hp=558f654308e2f1887c590b1660fe48e6fbefda55;hb=d5b86dd10dd9cba12175d07af0b6edfc9a215e36;hpb=1f5afe37b4c079821de9810435fa9fa11e4ea17b diff --git a/check/exam_color.cpp b/check/exam_color.cpp index 558f6543..4e5894c0 100644 --- a/check/exam_color.cpp +++ b/check/exam_color.cpp @@ -3,7 +3,7 @@ * Here we test GiNaC's color objects (su(3) Lie algebra). */ /* - * GiNaC Copyright (C) 1999-2003 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2015 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 @@ -17,10 +17,14 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "exams.h" +#include "ginac.h" +using namespace GiNaC; + +#include +using namespace std; static unsigned check_equal(const ex &e1, const ex &e2) { @@ -44,7 +48,7 @@ static unsigned check_equal_simplify(const ex &e1, const ex &e2) return 0; } -static unsigned color_check1(void) +static unsigned color_check1() { // checks general identities and contractions of the structure constants @@ -78,7 +82,7 @@ static unsigned color_check1(void) return result; } -static unsigned color_check2(void) +static unsigned color_check2() { // checks general identities and contractions of the generators @@ -107,13 +111,13 @@ static unsigned color_check2(void) return result; } -static unsigned color_check3(void) +static unsigned color_check3() { // checks traces unsigned result = 0; - idx a(symbol("a"), 8), b(symbol("b"), 8), c(symbol("c"), 8), k(symbol("k"), 8); + idx a(symbol("a"), 8), b(symbol("b"), 8), c(symbol("c"), 8); ex e; e = color_ONE(); @@ -125,26 +129,35 @@ static unsigned color_check3(void) e = color_T(a) * color_T(b) * color_T(c); result += check_equal(color_trace(e), color_h(a, b, c) / 4); + e = color_ONE(0) * color_ONE(1) / 9; + result += check_equal(color_trace(e, 0), color_ONE(1) / 3); + result += check_equal(color_trace(e, 1), color_ONE(0) / 3); + result += check_equal(color_trace(e, 2), e); + result += check_equal(color_trace(e, lst(0, 1)), 1); + + e = color_T(a, 0) * color_T(a, 1) * color_T(b, 0) * color_T(b, 1); + result += check_equal_simplify(color_trace(e, 0), 2 * color_ONE(1) / 3); + result += check_equal_simplify(color_trace(e, 1), 2 * color_ONE(0) / 3); + result += check_equal_simplify(color_trace(e, 2), e); + result += check_equal_simplify(color_trace(e, lst(0, 1)), 2); + return result; } -unsigned exam_color(void) +unsigned exam_color() { unsigned result = 0; cout << "examining color objects" << flush; - clog << "----------color objects:" << endl; result += color_check1(); cout << '.' << flush; result += color_check2(); cout << '.' << flush; result += color_check3(); cout << '.' << flush; - if (!result) { - cout << " passed " << endl; - clog << "(no output)" << endl; - } else { - cout << " failed " << endl; - } - return result; } + +int main(int argc, char** argv) +{ + return exam_color(); +}