X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?p=ginac.git;a=blobdiff_plain;f=ginac%2Fexpair.h;h=513dd5c96442b294f1d4a2a755196155a8459334;hp=925db97230ea8f471416b27ccedfe9a1328f6925;hb=e187ba694051c0fcdb4e7aa3152a54c87c3c8e21;hpb=1ebd5f62696a5144e8249127d958bd1d3004857f diff --git a/ginac/expair.h b/ginac/expair.h index 925db972..513dd5c9 100644 --- a/ginac/expair.h +++ b/ginac/expair.h @@ -102,11 +102,19 @@ public: ex coeff; ///< second member of pair, must be numeric }; -/** Function objects for insertion into third argument of STL's sort() etc. */ +/** Function object for insertion into third argument of STL's sort() etc. */ struct expair_is_less : public std::binary_function { bool operator()(const expair &lh, const expair &rh) const { return lh.is_less(rh); } }; +/** Function object not caring about the numerical coefficients for insertion + * into third argument of STL's sort(). Note that this does not define a + * strict weak ordering since for any symbol x we have neither 3*x<2*x or + * 2*x<3*x. Handle with care! */ +struct expair_rest_is_less : public std::binary_function { + bool operator()(const expair &lh, const expair &rh) const { return (lh.rest.compare(rh.rest)<0); } +}; + struct expair_swap : public std::binary_function { void operator()(expair &lh, expair &rh) const { lh.swap(rh); } };