A univariate rational function templated by a unvariate polynomial over a field.
More...
|
| UnivariateRationalFunction () |
| Construct the zero univariate rational function. More...
|
|
| UnivariateRationalFunction (const UnivariateRationalFunction< UnivariatePolynomialOverField, Field > &b) |
| Copy constructor. More...
|
|
| UnivariateRationalFunction (UnivariatePolynomialOverField a, UnivariatePolynomialOverField b) |
|
| ~UnivariateRationalFunction () |
| Destroy the rational function. More...
|
|
void | setVariableName (Symbol name) |
|
Symbol | variable () |
|
bool | isProfiling () |
|
void | setProfiling (bool a) |
|
bool | isAnalyzingError () |
|
void | setAnalyzingError (bool a) |
|
bool | isPFDLogPart () |
|
void | setPFDLogPart (bool a) |
|
bool | isFloatingPointPrinting () |
|
void | setFloatingPointPrinting (bool a) |
|
bool | isMapleOutput () |
|
void | setMapleOutput () |
|
bool | isMatlabOutput () |
|
void | setMatlabOutput () |
|
void | setNumerator (const UnivariatePolynomialOverField &b) |
|
void | setDenominator (const UnivariatePolynomialOverField &b) |
|
void | set (const UnivariatePolynomialOverField &a, const UnivariatePolynomialOverField &b) |
|
UnivariatePolynomialOverField | numerator () const |
| Get the fraction's numerator. More...
|
|
UnivariatePolynomialOverField | denominator () const |
| Get the fraction's denominator. More...
|
|
Field | evaluate (const Field &c) |
|
bool | operator!= (const UnivariateRationalFunction< UnivariatePolynomialOverField, Field > &b) const |
| Inequality test,. More...
|
|
bool | operator== (const UnivariateRationalFunction< UnivariatePolynomialOverField, Field > &b) const |
| Equality test,. More...
|
|
UnivariateRationalFunction< UnivariatePolynomialOverField, Field > | operator+ (const UnivariateRationalFunction< UnivariatePolynomialOverField, Field > &b) const |
| Addition.
|
|
UnivariateRationalFunction< UnivariatePolynomialOverField, Field > & | operator+= (const UnivariateRationalFunction< UnivariatePolynomialOverField, Field > &b) |
| Addition assignment.
|
|
UnivariateRationalFunction< UnivariatePolynomialOverField, Field > | operator- (const UnivariateRationalFunction< UnivariatePolynomialOverField, Field > &b) const |
| Subtraction.
|
|
UnivariateRationalFunction< UnivariatePolynomialOverField, Field > & | operator-= (const UnivariateRationalFunction< UnivariatePolynomialOverField, Field > &b) |
| Subtraction assignment.
|
|
UnivariateRationalFunction< UnivariatePolynomialOverField, Field > | operator- () const |
| Negation.
|
|
UnivariateRationalFunction< UnivariatePolynomialOverField, Field > | operator^ (long long int e) const |
| Overload operator ^ replace xor operation by exponentiation. More...
|
|
UnivariateRationalFunction< UnivariatePolynomialOverField, Field > & | operator^= (long long int e) |
| Overload operator ^= replace xor operation by exponentiation. More...
|
|
UnivariateRationalFunction< UnivariatePolynomialOverField, Field > | inverse () const |
| Get the inverse of *this. More...
|
|
UnivariateRationalFunction< UnivariatePolynomialOverField, Field > | operator* (const UnivariateRationalFunction< UnivariatePolynomialOverField, Field > &b) const |
| Multiplication.
|
|
UnivariateRationalFunction< UnivariatePolynomialOverField, Field > & | operator*= (const UnivariateRationalFunction< UnivariatePolynomialOverField, Field > &b) |
| Multiplication assignment.
|
|
UnivariateRationalFunction< UnivariatePolynomialOverField, Field > | operator/ (const UnivariateRationalFunction< UnivariatePolynomialOverField, Field > &b) const |
| Exact division. More...
|
|
UnivariateRationalFunction< UnivariatePolynomialOverField, Field > & | operator/= (const UnivariateRationalFunction< UnivariatePolynomialOverField, Field > &b) |
| Exact division assignment. More...
|
|
void | canonicalize () |
| Canonicalize this fraction, reducing terms as needed.
|
|
bool | isZero () const |
| Determine if *this ring element is zero, that is the additive identity. More...
|
|
void | zero () |
| Make *this ring element zero.
|
|
bool | isOne () const |
| Determine if *this ring element is one, that is the multiplication identity. More...
|
|
void | one () |
| Make *this ring element one.
|
|
bool | isNegativeOne () const |
|
void | negativeOne () |
|
int | isConstant () const |
|
UnivariateRationalFunction< UnivariatePolynomialOverField, Field > | unitCanonical (UnivariateRationalFunction< UnivariatePolynomialOverField, Field > *u=NULL, UnivariateRationalFunction< UnivariatePolynomialOverField, Field > *v=NULL) const |
| Obtain the unit normal (a.k.a canonical associate) of an element. More...
|
|
UnivariateRationalFunction< UnivariatePolynomialOverField, Field > & | operator= (const UnivariateRationalFunction< UnivariatePolynomialOverField, Field > &b) |
| Overload operator =. More...
|
|
ExpressionTree | convertToExpressionTree () const |
| Convert this to an expression tree. More...
|
|
void | print (std::ostream &ostream) const |
| Overload stream operator <<. More...
|
|
UnivariateRationalFunction< UnivariatePolynomialOverField, Field > | gcd (const UnivariateRationalFunction< UnivariatePolynomialOverField, Field > &b) const |
| BPASGCDDomain, BPASEuclideanDomain, BPASField virtual methods. More...
|
|
Factors< UnivariateRationalFunction > | squareFree () const |
| Compute squarefree factorization of *this.
|
|
Integer | euclideanSize () const |
| Get the euclidean size of *this.
|
|
UnivariateRationalFunction< UnivariatePolynomialOverField, Field > | euclideanDivision (const UnivariateRationalFunction< UnivariatePolynomialOverField, Field > &b, UnivariateRationalFunction< UnivariatePolynomialOverField, Field > *q=NULL) const |
| Perform the eucldiean division of *this and b. More...
|
|
UnivariateRationalFunction< UnivariatePolynomialOverField, Field > | quotient (const UnivariateRationalFunction< UnivariatePolynomialOverField, Field > &b) const |
| Get the quotient of *this and b. More...
|
|
UnivariateRationalFunction< UnivariatePolynomialOverField, Field > | remainder (const UnivariateRationalFunction< UnivariatePolynomialOverField, Field > &b) const |
| Get the remainder of *this and b. More...
|
|
UnivariateRationalFunction< UnivariatePolynomialOverField, Field > | extendedEuclidean (const UnivariateRationalFunction< UnivariatePolynomialOverField, Field > &b, UnivariateRationalFunction< UnivariatePolynomialOverField, Field > *s=NULL, UnivariateRationalFunction< UnivariatePolynomialOverField, Field > *t=NULL) const |
| Perform the extended euclidean division on *this and b. More...
|
|
UnivariateRationalFunction< UnivariatePolynomialOverField, Field > | operator% (const UnivariateRationalFunction< UnivariatePolynomialOverField, Field > &b) const |
| Get the remainder of *this and b;. More...
|
|
UnivariateRationalFunction< UnivariatePolynomialOverField, Field > & | operator%= (const UnivariateRationalFunction< UnivariatePolynomialOverField, Field > &b) |
| Assign *this to be the remainder of *this and b. More...
|
|
void | hermiteReduce (std::vector< UnivariateRationalFunction< UnivariatePolynomialOverField, Field > > *g, UnivariateRationalFunction< UnivariatePolynomialOverField, Field > *h) |
|
void | integrateRationalFunctionLogPart (std::vector< SparseUnivariatePolynomial< UnivariatePolynomialOverField > > *S, std::vector< UnivariatePolynomialOverField > *U) |
|
void | differentiate () |
|
void | integrate (UnivariatePolynomialOverField *P, std::vector< UnivariateRationalFunction< UnivariatePolynomialOverField, Field > > *g, std::vector< UnivariatePolynomialOverField > *U, std::vector< SparseUnivariatePolynomial< UnivariatePolynomialOverField > > *S) |
|
void | realSymbolicNumericIntegrate (UnivariatePolynomialOverField *P, std::vector< UnivariateRationalFunction< UnivariatePolynomialOverField, Field > > *g, std::vector< Field > *lg, std::vector< UnivariatePolynomialOverField > *Lg, std::vector< Field > *atn, std::vector< UnivariatePolynomialOverField > *Atn, int prec) |
|
void | realSymbolicNumericIntegrate (UnivariatePolynomialOverField *P, std::vector< UnivariateRationalFunction< UnivariatePolynomialOverField, Field > > *g, std::vector< Field > *lg, std::vector< UnivariatePolynomialOverField > *Lg, std::vector< Field > *atn, std::vector< UnivariatePolynomialOverField > *Atn1, std::vector< UnivariatePolynomialOverField > *Atn2, int prec) |
|
void | realSymbolicNumericIntegratePFD (UnivariatePolynomialOverField *P, std::vector< UnivariateRationalFunction< UnivariatePolynomialOverField, Field > > *g, std::vector< Field > *lg, std::vector< UnivariatePolynomialOverField > *Lg, std::vector< Field > *atn, std::vector< UnivariatePolynomialOverField > *Atn, int prec) |
|
void | realSymbolicNumericIntegrateSimplePFD (UnivariatePolynomialOverField *P, std::vector< UnivariateRationalFunction< UnivariatePolynomialOverField, Field > > *g, std::vector< Field > *lg, std::vector< UnivariatePolynomialOverField > *Lg, std::vector< Field > *atn, std::vector< UnivariatePolynomialOverField > *Atn, int prec) |
|
void | printIntegral (UnivariatePolynomialOverField &P, std::vector< UnivariateRationalFunction< UnivariatePolynomialOverField, Field > > &g, std::vector< UnivariatePolynomialOverField > &U, std::vector< SparseUnivariatePolynomial< UnivariatePolynomialOverField > > &S) |
|
void | printIntegral (UnivariatePolynomialOverField &P, std::vector< UnivariateRationalFunction< UnivariatePolynomialOverField, Field > > &g, std::vector< Field > &lg, std::vector< UnivariatePolynomialOverField > &Lg, std::vector< Field > &atn, std::vector< UnivariatePolynomialOverField > &Atn) |
|
void | printIntegral (UnivariatePolynomialOverField &P, std::vector< UnivariateRationalFunction< UnivariatePolynomialOverField, Field > > &g, std::vector< Field > &lg, std::vector< UnivariatePolynomialOverField > &Lg, std::vector< Field > &atn, std::vector< UnivariatePolynomialOverField > &Atn1, std::vector< UnivariatePolynomialOverField > &Atn2) |
|
void | realSymbolicNumericIntegrate (int prec) |
|
void | integrate () |
|
template<class UnivariatePolynomialOverField, class Field>
class UnivariateRationalFunction< UnivariatePolynomialOverField, Field >
A univariate rational function templated by a unvariate polynomial over a field.
The univariate polynomial and the coefficient BPASField must be passed separately and explicitly.