From b60d73e12181182b5afd3d37363d99151628b92b Mon Sep 17 00:00:00 2001 From: Christian Bauer Date: Thu, 5 Aug 2004 21:05:20 +0000 Subject: [PATCH] - added checks for multiple-label traces --- check/exam_clifford.cpp | 13 +++++++++++++ check/exam_color.cpp | 14 +++++++++++++- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/check/exam_clifford.cpp b/check/exam_clifford.cpp index f00c119b..06396e1a 100644 --- a/check/exam_clifford.cpp +++ b/check/exam_clifford.cpp @@ -184,6 +184,19 @@ static unsigned clifford_check3() e = dirac_trace(e); result += check_equal(e, 4); + // traces with multiple representation labels + e = dirac_ONE(0) * dirac_ONE(1) / 16; + result += check_equal(dirac_trace(e, 0), dirac_ONE(1) / 4); + result += check_equal(dirac_trace(e, 1), dirac_ONE(0) / 4); + result += check_equal(dirac_trace(e, 2), e); + result += check_equal(dirac_trace(e, lst(0, 1)), 1); + + e = dirac_gamma(mu, 0) * dirac_gamma(mu.toggle_variance(), 1) * dirac_gamma(nu, 0) * dirac_gamma(nu.toggle_variance(), 1); + result += check_equal_simplify(dirac_trace(e, 0), 4 * dim * dirac_ONE(1)); + result += check_equal_simplify(dirac_trace(e, 1), 4 * dim * dirac_ONE(0)); + result += check_equal_simplify(dirac_trace(e, 2), e); + result += check_equal_simplify(dirac_trace(e, lst(0, 1)), 16 * dim); + return result; } diff --git a/check/exam_color.cpp b/check/exam_color.cpp index 4d26a1e4..a3e972ad 100644 --- a/check/exam_color.cpp +++ b/check/exam_color.cpp @@ -113,7 +113,7 @@ static unsigned color_check3() 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,6 +125,18 @@ static unsigned color_check3() 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; } -- 2.44.0