17 #ifndef FROBBY_INCLUSION_GUARD 18 #define FROBBY_INCLUSION_GUARD 28 class FrobbyIdealHelper;
36 Ideal(
size_t variableCount);
54 void addExponent(
const mpz_t exponent);
55 void addExponent(
int exponent);
56 void addExponent(
unsigned int exponent);
82 virtual void idealBegin(
size_t varCount);
92 virtual void consume(mpz_ptr* exponentVector) = 0;
97 virtual void idealEnd();
119 virtual void polynomialBegin(
size_t varCount);
130 virtual void consume(
const mpz_t coefficient, mpz_ptr* exponentVector) = 0;
135 virtual void polynomialEnd();
159 const mpz_t* reflectionMonomial,
164 const Ideal& reflectionMonomial,
bool irreducibleDecompositionAsMonomials(const Ideal &ideal, IdealConsumer &consumer)
Compute the irreducible decomposition of ideal, and encode each irreducible component as a monomial...
FrobbyImpl::FrobbyIdealHelper * _data
void irreducibleDecompositionAsIdeals(const Ideal &ideal, IdealConsumer &consumer)
Compute the irreducible decomposition of ideal.
bool alexanderDual(const Ideal &ideal, const Ideal &reflectionMonomial, IdealConsumer &consumer)
void maximalStandardMonomials(const Ideal &ideal, IdealConsumer &consumer)
Compute the maximal standard monomials of ideal.
void codimension(const Ideal &ideal, mpz_t codim)
Compute the codimension of a monomial ideal.
This class provides a way to get polynomials as output from Frobby one term at a time.
void multigradedHilbertPoincareSeries(const Ideal &ideal, PolynomialConsumer &consumer)
Compute the multigraded Hilbert-Poincare series of ideal.
void dimension(const Ideal &ideal, mpz_t dim)
Compute the Krull dimension of a monomial ideal.
bool solveStandardMonomialProgram(const Ideal &ideal, const mpz_t *l, IdealConsumer &consumer)
Solve the optimization program.
This class provides a way to get monomial ideals as output from Frobby one generator at a time...
void primaryDecomposition(const Ideal &ideal, IdealConsumer &consumer)
Compute the canonical primary decomposition of a monomial ideal.
The namespace Frobby contains the public interface of Frobby.
The namespace FrobbyImpl is for internal use inside Frobby only.
void univariateHilbertPoincareSeries(const Ideal &ideal, PolynomialConsumer &consumer)
Compute the univariate Hilbert-Poincare series of ideal.
void associatedPrimes(const Ideal &ideal, IdealConsumer &consumer)
Compute the associated primes of the ideal.