![]() |
GiNaCRA
0.6.4
|
#include <MultivariatePolynomialFactory.h>
Static Public Member Functions | |
| template<class monomialOrdering > | |
| static void | checkForSpecialGroebnerBasis (const list< MultivariatePolynomial< monomialOrdering > > &basis) throw ( invalid_argument ) |
| Checks whether the given list comprises a special Groebner basis. | |
| template<class monomialOrdering > | |
| static const MultivariatePolynomial < monomialOrdering > | generalPositionTemplate (const vector< symbol > &variables, unsigned degree, numeric index) |
| This method computes a polynomial which is in general position. | |
| template<class monomialOrdering > | |
| static const MultivariatePolynomial < monomialOrdering > | deformation (const MultivariatePolynomial< monomialOrdering > &polynomial, const list< int > °rees, const ex &radius, const infinitesimal_symbol &infinitesimal) throw ( invalid_argument ) |
| The deformation of a polynomial is another polynomial perturbed depending on an infinitesimal element. | |
| template<class monomialOrdering > | |
| static const list < MultivariatePolynomial < monomialOrdering > > | specialGroebnerBasis (const MultivariatePolynomial< monomialOrdering > &polynomial, list< int > degrees, const ex &radius, const infinitesimal_symbol &infinitesimal) throw ( invalid_argument ) |
| A special Groebner basis is a Groebner basis such that it contains exactly as many elements as there are symbols and, in addition, each element has a different variable of highest degree, and, in this variable, all elements have the same coefficients. | |
| template<class monomialOrdering > | |
| static const list< int > | synthesizeSpecialGroebnerBasisDegrees (const MultivariatePolynomial< monomialOrdering > &polynomial) |
| This method generates a list of minimal degree values such that it can be used as input for the specialGroebnerBasis method. | |
| template<class monomialOrdering > | |
| static const list < MultivariatePolynomial < monomialOrdering > > | synthesizeSpecialGroebnerBasis (const MultivariatePolynomial< monomialOrdering > &polynomial, const ex &radius, const infinitesimal_symbol &infinitesimal) throw ( invalid_argument ) |
| A special Groebner basis is a Groebner basis such that it contains exactly as many elements as there are symbols and, in addition, each element has a different variable of highest degree, and, in this variable, all elements have the same coefficients. | |
| template<class monomialOrdering > | |
| static const list < MultivariateMonomial < monomialOrdering > > | cornersOfTheStaircase (const list< MultivariatePolynomial< monomialOrdering > > &gb) throw ( invalid_argument ) |
| Determines the list of leading monomials of the given Groebner basis. | |
| template<class monomialOrdering > | |
| static const list < MultivariateMonomial < monomialOrdering > > | monomialsUnderTheStaircase (const list< MultivariatePolynomial< monomialOrdering > > &gb) throw ( invalid_argument ) |
| Computes the list of monomials which lay below the leading monomials of the ideal generated by the given Groebner basis, which in turn build the border of the staircase. | |
| template<class monomialOrdering > | |
| static const list < MultivariateTerm < monomialOrdering > > | termsUnderTheStaircase (const list< MultivariateMonomial< monomialOrdering > > &monomials, const list< MultivariatePolynomial< monomialOrdering > > &gb, ex &coeff=*(new ex(1))) throw ( invalid_argument ) |
| Computes the list of monomials under the staircase multiplied by certain powers of the leading coefficients of the given Groebner basis. | |
| template<class monomialOrdering > | |
| static const list < MultivariateMonomial < monomialOrdering > > | borderOfTheStaircase (const list< MultivariateMonomial< monomialOrdering > > &corners) throw ( invalid_argument ) |
| Computes the list of monomials which define the border between the leading monomials of the ideal generated by the given Groebner basis and the monomials under the staircase. | |
| template<class monomialOrdering > | |
| static const list < MultivariateTerm < monomialOrdering > > | borderTermsOfTheStaircase (const list< MultivariateMonomial< monomialOrdering > > &border, const list< MultivariatePolynomial< monomialOrdering > > &gb) throw ( invalid_argument ) |
| Computes the list of borders of the staircase multiplied by the lcm of the leading coefficients of the given Groebner basis. | |
| template<class monomialOrdering > | |
| static MultivariatePolynomial < monomialOrdering > | coefficientLcm (const list< MultivariatePolynomial< monomialOrdering > > &gb) |
| Computes the least common multiple (lcm) of the coefficients of the given Groebner basis. | |
| template<class monomialOrdering > | |
| static void | searchMonomialsUnderTheStaircase (vector< symbol >::const_iterator variables_current, const vector< symbol >::const_iterator &variables_end, list< int >::const_iterator degrees_current, const MultivariateMonomial< monomialOrdering > &monomial, list< MultivariateMonomial< monomialOrdering > > &monomials) throw ( invalid_argument ) |
| Auxiliary method: Searches all monomials which are multiples of the given monomial by multiplying all possible powers of the symbol at the current index up to the degree at the given index. | |
| template<class monomialOrdering > | |
| static void | searchBorderOfTheStaircase (typename list< MultivariateMonomial< monomialOrdering > >::const_iterator corners_current, const typename list< MultivariateMonomial< monomialOrdering > >::const_iterator &corners_begin, const typename list< MultivariateMonomial< monomialOrdering > >::const_iterator &corners_end, const MultivariateMonomial< monomialOrdering > &monomial, list< MultivariateMonomial< monomialOrdering > > &monomials) throw ( invalid_argument ) |
| Determines all possible monomials lead by the specified monomial w.r.t. | |
Definition at line 76 of file MultivariatePolynomialFactory.h.
| static const list<MultivariateMonomial<monomialOrdering> > GiNaCRA::MultivariatePolynomialFactory::borderOfTheStaircase | ( | const list< MultivariateMonomial< monomialOrdering > > & | corners | ) | throw ( invalid_argument ) [inline, static] |
Computes the list of monomials which define the border between the leading monomials of the ideal generated by the given Groebner basis and the monomials under the staircase.
| corners | of the staircase (unverified input semantics) |
Definition at line 423 of file MultivariatePolynomialFactory.h.
References searchBorderOfTheStaircase().
| static const list<MultivariateTerm<monomialOrdering> > GiNaCRA::MultivariatePolynomialFactory::borderTermsOfTheStaircase | ( | const list< MultivariateMonomial< monomialOrdering > > & | border, |
| const list< MultivariatePolynomial< monomialOrdering > > & | gb | ||
| ) | throw ( invalid_argument ) [inline, static] |
Computes the list of borders of the staircase multiplied by the lcm of the leading coefficients of the given Groebner basis.
| border | of the staircase (unverified input semantics) |
| gb | special Groebner basis (unverified input semantics) |
Definition at line 445 of file MultivariatePolynomialFactory.h.
References coefficientLcm().
| static void GiNaCRA::MultivariatePolynomialFactory::checkForSpecialGroebnerBasis | ( | const list< MultivariatePolynomial< monomialOrdering > > & | basis | ) | throw ( invalid_argument ) [inline, static] |
Checks whether the given list comprises a special Groebner basis.
| invalid_argument | in case the input was no special Groebner basis |
Definition at line 91 of file MultivariatePolynomialFactory.h.
References GiNaCRA::MultivariateTerm< monomialOrdering >::tdegree().
| static MultivariatePolynomial<monomialOrdering> GiNaCRA::MultivariatePolynomialFactory::coefficientLcm | ( | const list< MultivariatePolynomial< monomialOrdering > > & | gb | ) | [inline, static] |
Computes the least common multiple (lcm) of the coefficients of the given Groebner basis.
| gb | special Groebner basis (unverified input semantics) |
Definition at line 471 of file MultivariatePolynomialFactory.h.
References GiNaC::lcm().
Referenced by borderTermsOfTheStaircase(), and termsUnderTheStaircase().
| static const list<MultivariateMonomial<monomialOrdering> > GiNaCRA::MultivariatePolynomialFactory::cornersOfTheStaircase | ( | const list< MultivariatePolynomial< monomialOrdering > > & | gb | ) | throw ( invalid_argument ) [inline, static] |
Determines the list of leading monomials of the given Groebner basis.
| gb | Groebner basis |
Definition at line 333 of file MultivariatePolynomialFactory.h.
| static const MultivariatePolynomial<monomialOrdering> GiNaCRA::MultivariatePolynomialFactory::deformation | ( | const MultivariatePolynomial< monomialOrdering > & | polynomial, |
| const list< int > & | degrees, | ||
| const ex & | radius, | ||
| const infinitesimal_symbol & | infinitesimal | ||
| ) | throw ( invalid_argument ) [inline, static] |
The deformation of a polynomial is another polynomial perturbed depending on an infinitesimal element.
| polynomial | |
| degrees | list of degrees satisfying the special Groebner basis property checked by checkForSpecialGroebnerBasis |
| radius | of the sphere around zero for bounded algebric sampling (symbolic or numeric) |
| infinitesimal |
Definition at line 183 of file MultivariatePolynomialFactory.h.
Referenced by specialGroebnerBasis().
| static const MultivariatePolynomial<monomialOrdering> GiNaCRA::MultivariatePolynomialFactory::generalPositionTemplate | ( | const vector< symbol > & | variables, |
| unsigned | degree, | ||
| numeric | index | ||
| ) | [inline, static] |
This method computes a polynomial which is in general position.
| variables | list of variables to be used in the template |
| degree | final degree of the template |
| index | number identifying the template by determining its coefficients |
Definition at line 158 of file MultivariatePolynomialFactory.h.
References GiNaC::sortVariables().
| static const list<MultivariateMonomial<monomialOrdering> > GiNaCRA::MultivariatePolynomialFactory::monomialsUnderTheStaircase | ( | const list< MultivariatePolynomial< monomialOrdering > > & | gb | ) | throw ( invalid_argument ) [inline, static] |
Computes the list of monomials which lay below the leading monomials of the ideal generated by the given Groebner basis, which in turn build the border of the staircase.
| gb | special Groebner basis |
Definition at line 353 of file MultivariatePolynomialFactory.h.
References searchMonomialsUnderTheStaircase().
| static void GiNaCRA::MultivariatePolynomialFactory::searchBorderOfTheStaircase | ( | typename list< MultivariateMonomial< monomialOrdering > >::const_iterator | corners_current, |
| const typename list< MultivariateMonomial< monomialOrdering > >::const_iterator & | corners_begin, | ||
| const typename list< MultivariateMonomial< monomialOrdering > >::const_iterator & | corners_end, | ||
| const MultivariateMonomial< monomialOrdering > & | monomial, | ||
| list< MultivariateMonomial< monomialOrdering > > & | monomials | ||
| ) | throw ( invalid_argument ) [inline, static] |
Determines all possible monomials lead by the specified monomial w.r.t.
the given list of corners of the staircase specified as iterator.
| corners_current | iterator position pointing to the current corner to be multiplied |
| corners_begin | initial iterator position of the list of corners |
| corners_end | final iterator position of the list of corners |
| monomial | prefix of all monomials to be computed |
| monomials | resulting monomials are apended to this list |
Definition at line 529 of file MultivariatePolynomialFactory.h.
References searchMonomialsUnderTheStaircase().
Referenced by borderOfTheStaircase().
| static void GiNaCRA::MultivariatePolynomialFactory::searchMonomialsUnderTheStaircase | ( | vector< symbol >::const_iterator | variables_current, |
| const vector< symbol >::const_iterator & | variables_end, | ||
| list< int >::const_iterator | degrees_current, | ||
| const MultivariateMonomial< monomialOrdering > & | monomial, | ||
| list< MultivariateMonomial< monomialOrdering > > & | monomials | ||
| ) | throw ( invalid_argument ) [inline, static] |
Auxiliary method: Searches all monomials which are multiples of the given monomial by multiplying all possible powers of the symbol at the current index up to the degree at the given index.
| variables_current | |
| variables_end | |
| degrees_current | |
| monomial | |
| monomials | resulting monomials are apended to this list |
Definition at line 488 of file MultivariatePolynomialFactory.h.
References GiNaCRA::MultivariatePolynomial< monomialOrdering >::degree(), GiNaCRA::MultivariateMonomial< monomialOrdering >::mul(), and GiNaCRA::MultivariatePolynomial< monomialOrdering >::Variables().
Referenced by monomialsUnderTheStaircase(), and searchBorderOfTheStaircase().
| static const list<MultivariatePolynomial<monomialOrdering> > GiNaCRA::MultivariatePolynomialFactory::specialGroebnerBasis | ( | const MultivariatePolynomial< monomialOrdering > & | polynomial, |
| list< int > | degrees, | ||
| const ex & | radius, | ||
| const infinitesimal_symbol & | infinitesimal | ||
| ) | throw ( invalid_argument ) [inline, static] |
A special Groebner basis is a Groebner basis such that it contains exactly as many elements as there are symbols and, in addition, each element has a different variable of highest degree, and, in this variable, all elements have the same coefficients.
| polynomial | |
| degrees | list of degrees |
| radius | of the sphere around zero for bounded algebric sampling (symbolic or numeric) |
| infinitesimal |
Definition at line 220 of file MultivariatePolynomialFactory.h.
References deformation(), GiNaCRA::MultivariatePolynomial< monomialOrdering >::diff(), GiNaC::prod(), and GiNaCRA::MultivariatePolynomial< monomialOrdering >::reduction().
Referenced by synthesizeSpecialGroebnerBasis().
| static const list<MultivariatePolynomial<monomialOrdering> > GiNaCRA::MultivariatePolynomialFactory::synthesizeSpecialGroebnerBasis | ( | const MultivariatePolynomial< monomialOrdering > & | polynomial, |
| const ex & | radius, | ||
| const infinitesimal_symbol & | infinitesimal | ||
| ) | throw ( invalid_argument ) [inline, static] |
A special Groebner basis is a Groebner basis such that it contains exactly as many elements as there are symbols and, in addition, each element has a different variable of highest degree, and, in this variable, all elements have the same coefficients.
This method is a combination of synthesizeSpecialGroebnerBasisDegrees and specialGroebnerBasis.
| polynomial | |
| radius | of the sphere around zero for bounded algebric sampling (symbolic or numeric) |
| infinitesimal |
Definition at line 315 of file MultivariatePolynomialFactory.h.
References specialGroebnerBasis(), and synthesizeSpecialGroebnerBasisDegrees().
| static const list<int> GiNaCRA::MultivariatePolynomialFactory::synthesizeSpecialGroebnerBasisDegrees | ( | const MultivariatePolynomial< monomialOrdering > & | polynomial | ) | [inline, static] |
This method generates a list of minimal degree values such that it can be used as input for the specialGroebnerBasis method.
| polynomial |
Definition at line 290 of file MultivariatePolynomialFactory.h.
References GiNaCRA::MultivariatePolynomial< monomialOrdering >::tdegree(), and GiNaCRA::MultivariatePolynomial< monomialOrdering >::Variables().
Referenced by synthesizeSpecialGroebnerBasis().
| static const list<MultivariateTerm<monomialOrdering> > GiNaCRA::MultivariatePolynomialFactory::termsUnderTheStaircase | ( | const list< MultivariateMonomial< monomialOrdering > > & | monomials, |
| const list< MultivariatePolynomial< monomialOrdering > > & | gb, | ||
| ex & | coeff = *(new ex( 1 )) |
||
| ) | throw ( invalid_argument ) [inline, static] |
Computes the list of monomials under the staircase multiplied by certain powers of the leading coefficients of the given Groebner basis.
| monomials | under the staircase (unverified input semantics) |
| gb | special Groebner basis (unverified input semantics) |
| coeff | reference, after computation contains the least common multiple of the leading coefficients of the special Groebner basis (optional) |
Definition at line 398 of file MultivariatePolynomialFactory.h.
References coefficientLcm().