tinfo_key = TINFO_clifford;
}
-clifford::clifford(unsigned char rl, exvector * vp) : inherited(sy_none(), vp), representation_label(rl)
+clifford::clifford(unsigned char rl, std::auto_ptr<exvector> vp) : inherited(sy_none(), vp), representation_label(rl)
{
tinfo_key = TINFO_clifford;
}
return clifford(representation_label, v);
}
-ex clifford::thiscontainer(exvector * vp) const
+ex clifford::thiscontainer(std::auto_ptr<exvector> vp) const
{
return clifford(representation_label, vp);
}
ex canonicalize_clifford(const ex & e)
{
// Scan for any ncmul objects
- lst srl;
+ exmap srl;
ex aux = e.to_rational(srl);
- for (size_t i=0; i<srl.nops(); i++) {
+ for (exmap::iterator i = srl.begin(); i != srl.end(); ++i) {
- ex o = srl.op(i);
- ex lhs = o.lhs();
- ex rhs = o.rhs();
+ ex lhs = i->first;
+ ex rhs = i->second;
if (is_exactly_a<ncmul>(rhs)
&& rhs.return_type() == return_types::noncommutative
// Expand product, if necessary
ex rhs_expanded = rhs.expand();
if (!is_a<ncmul>(rhs_expanded)) {
- srl[i] = (lhs == canonicalize_clifford(rhs_expanded));
+ i->second = canonicalize_clifford(rhs_expanded);
continue;
} else if (!is_a<clifford>(rhs.op(0)))
it[0] = save1;
it[1] = save0;
sum -= ncmul(v, true);
- srl[i] = (lhs == canonicalize_clifford(sum));
+ i->second = canonicalize_clifford(sum);
goto next_sym;
}
++it;