Macaulay2 Engine
Loading...
Searching...
No Matches

◆ mult_monomials()

int F4GB::mult_monomials ( packed_monomial m,
packed_monomial n )
private

Definition at line 177 of file f4.cpp.

178{
179 // We already have allocated space for a monomial
180 // Do the multiply
181 // Look it up in the hashtable
182 // If it is there, return its column
183 // If not, increment our memory block, and insert a new column.
184 packed_monomial new_m;
185 mMonomialInfo->unchecked_mult(m, n, next_monom);
186 if (mMonomialHashTable.find_or_insert(next_monom, new_m))
187 return static_cast<int>(
188 new_m[-1]); // monom exists, don't save monomial space
189 m = next_monom;
190 mMonomialMemoryBlock.intern(1 + mMonomialInfo->monomial_size(m));
191 next_monom = mMonomialMemoryBlock.reserve(1 + mMonomialInfo->max_monomial_size());
192 next_monom++;
193 return new_column(m);
194}
F4MemoryBlock< monomial_word > mMonomialMemoryBlock
Definition f4.hpp:188
monomial_word * next_monom
Definition f4.hpp:189
const MonomialInfo * mMonomialInfo
Definition f4.hpp:157
MonomialHashTable< MonomialInfo > mMonomialHashTable
Definition f4.hpp:187
int new_column(packed_monomial m)
Definition f4.cpp:153
monomial_word * packed_monomial
Definition moninfo.hpp:78

References mMonomialHashTable, mMonomialInfo, mMonomialMemoryBlock, new_column(), and next_monom.

Referenced by load_row().