20 template<
typename Number>
29 std::shared_ptr<Ideal<Polynomial>>
mBase;
34 template<
typename InputIt>
37 while(first != last) {
43 mBase = std::make_shared<Ideal<Polynomial>>(gbobject.
getIdeal());
51 inline const std::vector<Polynomial>&
get()
const {
52 return mBase->getGenerators();
57 return this->
get().size() == 1 &&
is_one(this->
get().front());
62 std::vector<Monomial>
cor()
const;
63 std::vector<Monomial>
mon()
const;
64 std::vector<Monomial>
bor()
const;
carl is the main namespace for the library.
bool is_one(const Interval< Number > &i)
Check if this interval is a point-interval containing 1.
A general class for Groebner Basis calculation.
std::list< std::pair< BitVector, BitVector > > reduceInput()
Reduce the input polynomials using the other input polynomials and the current Groebner basis.
void calculate()
Calculate the Groebner basis of the current GB union the scheduled polynomials.
void addPolynomial(const Polynomial &p)
Add a polynmomial which is added to the groebner basis during the next calculate call.
const Ideal< Polynomial > & getIdeal() const
Get the ideal which encodes the GB.
A dedicated algorithm for calculating the remainder of a polynomial modulo a set of other polynomials...
InputPolynomial fullReduce()
Uses the ideal to reduce a polynomial as far as possible.
Represents a single term, that is a numeric coefficient and a monomial.
bool isTrivialBase() const
GroebnerBase(InputIt first, InputIt last)
std::shared_ptr< Ideal< Polynomial > > mBase
std::set< Variable > gatherVariables() const
bool hasFiniteMon() const
std::vector< Monomial > bor() const
std::vector< Monomial > cor() const
std::vector< Monomial > mon() const
const std::vector< Polynomial > & get() const
Polynomial reduce(const Polynomial &p) const