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

◆ support()

void FreeMonoid::support ( const Monom & m,
std::vector< int > & result ) const

Definition at line 416 of file FreeMonoid.cpp.

417{
418 int numVarsFound = 0;
419 int monomOffset = numWeights() + 1;
420 result.clear();
421 std::vector<int> varsFound;
422 for (auto i = 0; i < numVars(); i++)
423 varsFound.push_back(0);
424 for (auto i = m.begin() + monomOffset; i < m.end(); i++)
425 {
426 if (varsFound[*i] == 0) numVarsFound++;
427 varsFound[*i]++;
428 if (numVarsFound == numVars()) break;
429 }
430 for (auto i = 0; i < numVars(); i++)
431 if (varsFound[i] > 0) result.push_back(i);
432}
unsigned int numWeights() const
unsigned int numVars() const
VALGRIND_MAKE_MEM_DEFINED & result(result)
const int * end() const
const int * begin() const

References Monom::begin(), Monom::end(), numVars(), numWeights(), and result().

Referenced by FreeAlgebra::support(), and Matrix::support().