X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?p=ginac.git;a=blobdiff_plain;f=ginac%2Fsymmetry.cpp;h=a07fbe7eb11ccce7b5c8edc8fb623884f1536757;hp=ab31838b18668d156cc751930579463796666948;hb=bf28c9f0b06f349b3a655ee7c152d9ab77a900b7;hpb=14937d28417386b405301c1d47fac257668cd731 diff --git a/ginac/symmetry.cpp b/ginac/symmetry.cpp index ab31838b..a07fbe7e 100644 --- a/ginac/symmetry.cpp +++ b/ginac/symmetry.cpp @@ -24,9 +24,6 @@ #include #include -#define DO_GINAC_ASSERT -#include "assertion.h" - #include "symmetry.h" #include "lst.h" #include "numeric.h" // for factorial() @@ -289,12 +286,15 @@ int canonicalize(exvector::iterator v, const symmetry &symm) first = symm.children.begin(); switch (symm.type) { case symmetry::symmetric: + // Sort the children in ascending order shaker_sort(first, last, sy_is_less(v), sy_swap(v, something_changed)); break; case symmetry::antisymmetric: + // Sort the children in ascending order, keeping track of the signum sign *= permutation_sign(first, last, sy_is_less(v), sy_swap(v, something_changed)); break; case symmetry::cyclic: + // Permute the smallest child to the front cyclic_permutation(first, last, min_element(first, last, sy_is_less(v)), sy_swap(v, something_changed)); break; default: