SMT-RAT  24.02
Toolbox for Strategic and Parallel Satisfiability-Modulo-Theories Solving
smtrat::cad::projection Namespace Reference

Namespaces

 brown
 Contains the implementation of Browns projection operator as specified in [3] after Theorem 3.1.
 
 collins
 Contains the implementation of Collins projection operator as specified in [5] below Theorem 4.
 
 hong
 Contains the implementation of Hongs projection operator as specified in [15] in Section 2.2.
 
 lazard
 Contains the implementation of Lazards projection operator as specified in [Lauard1994].
 
 mccallum
 Contains the implementation of McCallums projection operator as specified in [23].
 
 mccallum_partial
 Contains the implementation of an optimized version McCallums projection operator.
 

Data Structures

struct  Reducta
 Construct the set of reducta of the given polynomial. More...
 

Functions

bool canBeRemoved (const UPoly &p)
 Checks whether a polynomial can safely be ignored. More...
 
bool canBeForwarded (std::size_t, const UPoly &p)
 Checks whether a polynomial can safely be forwarded to the next level. More...
 
template<typename Poly >
bool doesNotVanish (const Poly &p)
 Tries to determine whether the given Poly vanishes for some assignment. More...
 
template<typename Poly >
Poly normalize (const Poly &p)
 Normalizes the given Poly by removing constant and duplicate factors. More...
 
template<typename Poly >
Poly resultant (carl::Variable variable, const Poly &p, const Poly &q)
 Computes the resultant of two polynomials. More...
 
template<typename Poly >
Poly discriminant (carl::Variable variable, const Poly &p)
 Computes the discriminant of a polynomial. More...
 
template<typename Poly >
std::vector< PolyPSC (const Poly &p, const Poly &q)
 Computes the Principal Subresultant Coefficients of two polynomials. More...
 
template<typename Poly , typename Callback >
void returnPoly (const Poly &p, Callback &&cb)
 

Function Documentation

◆ canBeForwarded()

bool smtrat::cad::projection::canBeForwarded ( std::size_t  ,
const UPoly p 
)
inline

Checks whether a polynomial can safely be forwarded to the next level.

Definition at line 12 of file Projection_utils.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ canBeRemoved()

bool smtrat::cad::projection::canBeRemoved ( const UPoly p)
inline

Checks whether a polynomial can safely be ignored.

Definition at line 8 of file Projection_utils.h.

Here is the caller graph for this function:

◆ discriminant()

template<typename Poly >
Poly smtrat::cad::projection::discriminant ( carl::Variable  variable,
const Poly p 
)

Computes the discriminant of a polynomial.

The polynomial is assumed to be univariate and thus knows is main variable. The given variable instead indicates the main variable of the resulting polynomial.

Parameters
variableMain variable of the resulting polynomial.
pInput polynomial.
Returns
Discriminant of p in main variable variable.

Definition at line 63 of file utils.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ doesNotVanish()

template<typename Poly >
bool smtrat::cad::projection::doesNotVanish ( const Poly p)

Tries to determine whether the given Poly vanishes for some assignment.

Returns true if the Poly is guaranteed not to vanish. Returns false otherwise.

Definition at line 19 of file utils.h.

Here is the caller graph for this function:

◆ normalize()

template<typename Poly >
Poly smtrat::cad::projection::normalize ( const Poly p)

Normalizes the given Poly by removing constant and duplicate factors.

Definition at line 32 of file utils.h.

Here is the caller graph for this function:

◆ PSC()

template<typename Poly >
std::vector<Poly> smtrat::cad::projection::PSC ( const Poly p,
const Poly q 
)

Computes the Principal Subresultant Coefficients of two polynomials.

Definition at line 90 of file utils.h.

Here is the caller graph for this function:

◆ resultant()

template<typename Poly >
Poly smtrat::cad::projection::resultant ( carl::Variable  variable,
const Poly p,
const Poly q 
)

Computes the resultant of two polynomials.

The polynomials are assumed to be univariate polynomials and thus know their respective main variables. The given variable instead indicates the main variable of the resulting polynomial.

Parameters
variableMain variable of the resulting polynomial.
pFirst input polynomial.
qSecond input polynomial.
Returns
Resultant of p and q in main variable variable.

Definition at line 48 of file utils.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ returnPoly()

template<typename Poly , typename Callback >
void smtrat::cad::projection::returnPoly ( const Poly p,
Callback &&  cb 
)

Definition at line 95 of file utils.h.

Here is the caller graph for this function: