* Here we test GiNaC's Clifford algebra objects. */
/*
- * GiNaC Copyright (C) 1999-2008 Johannes Gutenberg University Mainz, Germany
+ * GiNaC Copyright (C) 1999-2011 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
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-#include <iostream>
#include "ginac.h"
-using namespace std;
using namespace GiNaC;
+#include <iostream>
+using namespace std;
+
const numeric half(1, 2);
static unsigned check_equal(const ex &e1, const ex &e2)
result += check_equal(e, pow(scalar*(dim-2), 2).expand() * clifford_unit(mu, G));
// canonicalize_clifford() checks, only for symmetric metrics
- if (ex_to<symmetry>(ex_to<indexed>(ex_to<clifford>(clifford_unit(mu, G)).get_metric()).get_symmetry()).has_symmetry()) {
+ if (is_a<indexed>(ex_to<clifford>(clifford_unit(mu, G)).get_metric()) &&
+ ex_to<symmetry>(ex_to<indexed>(ex_to<clifford>(clifford_unit(mu, G)).get_metric()).get_symmetry()).has_symmetry()) {
e = clifford_unit(mu, G) * clifford_unit(nu, G) + clifford_unit(nu, G) * clifford_unit(mu, G);
result += check_equal(canonicalize_clifford(e), 2*dirac_ONE()*unit.get_metric(nu, mu));