* Implementation of GiNaC's clifford algebra (Dirac gamma) objects. */
/*
- * GiNaC Copyright (C) 1999-2015 Johannes Gutenberg University Mainz, Germany
+ * GiNaC Copyright (C) 1999-2016 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
GINAC_IMPLEMENT_REGISTERED_CLASS_OPT(clifford, indexed,
print_func<print_dflt>(&clifford::do_print_dflt).
- print_func<print_latex>(&clifford::do_print_latex))
+ print_func<print_latex>(&clifford::do_print_latex).
+ print_func<print_tree>(&clifford::do_print_tree))
GINAC_IMPLEMENT_REGISTERED_CLASS_OPT(diracone, tensor,
print_func<print_dflt>(&diracone::do_print).
}
}
+void clifford::do_print_tree(const print_tree & c, unsigned level) const
+{
+ c.s << std::string(level, ' ') << class_name() << " @" << this
+ << std::hex << ", hash=0x" << hashvalue << ", flags=0x" << flags << std::dec
+ << ", " << seq.size()-1 << " indices"
+ << ", symmetry=" << symtree << std::endl;
+ metric.print(c, level + c.delta_indent);
+ seq[0].print(c, level + c.delta_indent);
+ printindices(c, level + c.delta_indent);
+}
+
DEFAULT_COMPARE(diracone)
DEFAULT_COMPARE(cliffordunit)
DEFAULT_COMPARE(diracgamma)
}
/** Predicate for finding non-clifford objects. */
-struct is_not_a_clifford : public std::unary_function<ex, bool> {
+struct is_not_a_clifford {
bool operator()(const ex & e)
{
return !is_a<clifford>(e);