25 const mpz_class& mult) {
29 for (
unsigned int i = 0; i < basis[0].size(); ++i)
30 basis[addTo][i] += basis[add][i] * mult;
36 unsigned int columnCount = basis[0].size();
38 for (
unsigned int col = columnCount - 1; col >= 1; --col) {
39 for (
unsigned int i = 0; i < rowCount; ++i) {
41 if (basis[i][col] == 1)
43 else if (basis[i][col] == -1)
48 for (
unsigned int j = 0; j < rowCount; ++j) {
51 addMultiple(basis, i, j, -1 * sign * basis[j][col]);
size_t getGeneratorCount() const
void makeZeroesInLatticeBasis(BigIdeal &basis)
void addMultiple(BigIdeal &basis, unsigned int add, unsigned int addTo, const mpz_class &mult)