* of any interest to the user of the library. */
/*
- * GiNaC Copyright (C) 1999-2018 Johannes Gutenberg University Mainz, Germany
+ * GiNaC Copyright (C) 1999-2024 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
for (unsigned i = m - mpgen.m; i < m; ++i)
partition[i] = mpgen.x[i - m + mpgen.m + 1];
+
+ current_updated = true;
}
return partition;
}
if (!current_updated) {
for (unsigned i = 0; i < mpgen.m; ++i)
partition[i] = mpgen.x[i + 1];
+
+ current_updated = true;
}
return partition;
}
// Generates all distinct permutations of a multiset.
// (Based on Aaron Williams' algorithm 1 from "Loopless Generation of
// Multiset Permutations using a Constant Number of Variables by Prefix
- // Shifts." <http://webhome.csc.uvic.ca/~haron/CoolMulti.pdf>)
+ // Shifts." <https://dl.acm.org/doi/pdf/10.5555/1496770.1496877>)
struct coolmulti {
// element of singly linked list
struct element {