in Chemistry/src/DataModel/Fermion/HermitianFermionTerm.cs [103:123]
public bool IsInCanonicalOrder()
{
if (IsInIndexOrder())
{
var creationSequence = Sequence.Where(o => o.Type == RaisingLowering.u).Select(o => o.Index);
var annihilationSequence = Sequence.Where(o => o.Type == RaisingLowering.d).Select(o => o.Index);
if (creationSequence.Count() == annihilationSequence.Count())
{
if (CompareArray(creationSequence, annihilationSequence.Reverse()) > 0)
{
return false;
}
}
else if(creationSequence.Count() < annihilationSequence.Count())
{
return false;
}
return true;
}
return false;
}