* Implementation of GiNaC's clifford algebra (Dirac gamma) objects. */
/*
- * GiNaC Copyright (C) 1999-2006 Johannes Gutenberg University Mainz, Germany
+ * GiNaC Copyright (C) 1999-2007 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
if (is_dirac_slash(seq[0])) {
seq[0].print(c, precedence());
c.s << "\\";
- } else
- this->print_dispatch<inherited>(c, level);
+ } else { // We do not print representation label if it is 0
+ if (representation_label == 0) {
+ this->print_dispatch<inherited>(c, level);
+ } else { // otherwise we put it before indices in square brackets; the code is borrowed from indexed.cpp
+ if (precedence() <= level) {
+ c.s << '(';
+ }
+ seq[0].print(c, precedence());
+ c.s << '[' << int(representation_label) << ']';
+ printindices(c, level);
+ if (precedence() <= level) {
+ c.s << ')';
+ }
+ }
+ }
}
void clifford::do_print_latex(const print_latex & c, unsigned level) const