Basic Polynomial Algebra Subprograms (BPAS)
v. 1.791
|
A field of fractions templated by an arbitrary BPASGCDDomain. More...
#include <Fraction.hpp>
Public Member Functions | |
Fraction () | |
Construct the zero fraction function. More... | |
Fraction (const Fraction< Domain > &b) | |
Copy constructor. More... | |
Fraction (Domain a, Domain b) | |
constructor with two parameter More... | |
~Fraction () | |
Deconstructor for fraction. More... | |
void | setNumerator (const Domain &b) |
void | setDenominator (const Domain &b) |
void | set (const Domain &a, const Domain &b) |
Domain | numerator () const |
Get the fraction's numerator. More... | |
Domain | denominator () const |
Get the fraction's denominator. More... | |
bool | operator!= (const Fraction< Domain > &b) const |
Inequality test,. More... | |
bool | operator== (const Fraction< Domain > &b) const |
Equality test,. More... | |
Fraction< Domain > | operator+ (const Fraction< Domain > &b) const |
Addition. | |
Fraction< Domain > & | operator+= (const Fraction< Domain > &b) |
Addition assignment. | |
Fraction< Domain > | operator- (const Fraction< Domain > &b) const |
Subtraction. | |
Fraction< Domain > & | operator-= (const Fraction< Domain > &b) |
Subtraction assignment. | |
Fraction< Domain > | operator* (const Fraction< Domain > &b) const |
Multiplication. | |
Fraction< Domain > & | operator*= (const Fraction< Domain > &b) |
Multiplication assignment. | |
Fraction< Domain > | operator/ (const Fraction< Domain > &b) const |
Exact division. More... | |
Fraction< Domain > & | operator/= (const Fraction< Domain > &b) |
Exact division assignment. More... | |
Fraction< Domain > | operator- () const |
Negation. | |
Fraction< Domain > | operator^ (long long int e) const |
Overload operator ^ replace xor operation by exponentiation. More... | |
Fraction< Domain > & | operator^= (long long int e) |
Overload operator ^= replace xor operation by exponentiation. More... | |
Fraction< Domain > | inverse () const |
Get the inverse of *this. More... | |
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 |
Fraction< Domain > | unitCanonical (Fraction< Domain > *u=NULL, Fraction< Domain > *v=NULL) const |
Obtain the unit normal (a.k.a canonical associate) of an element. More... | |
Fraction< Domain > & | operator= (const Fraction< Domain > &b) |
Overload operator =. More... | |
void | print (std::ostream &ostream) const |
Print the Ring element. More... | |
Fraction< Domain > | quotient (const Fraction< Domain > &b) const |
Get the quotient of *this and b. More... | |
Fraction< Domain > | remainder (const Fraction< Domain > &b) const |
Get the remainder of *this and b. More... | |
Fraction< Domain > | operator% (const Fraction< Domain > &b) const |
Get the remainder of *this and b;. More... | |
Fraction< Domain > & | operator%= (const Fraction< Domain > &b) |
Assign *this to be the remainder of *this and b. More... | |
void | canonicalize () |
Canonicalize this fraction, reducing terms as needed. | |
void | differentiate () |
void | normalize () |
ExpressionTree | convertToExpressionTree () const |
Convert this to an expression tree. More... | |
Fraction< Domain > | gcd (const Fraction< Domain > &b) const |
Get GCD of *this and other. More... | |
Factors< Fraction< Domain > > | squareFree () const |
Compute squarefree factorization of *this. More... | |
Integer | euclideanSize () const |
Get the euclidean size of *this. | |
Fraction< Domain > | euclideanDivision (const Fraction< Domain > &b, Fraction< Domain > *q=NULL) const |
Perform the eucldiean division of *this and b. More... | |
Fraction< Domain > | extendedEuclidean (const Fraction< Domain > &b, Fraction< Domain > *s=NULL, Fraction< Domain > *t=NULL) const |
Perform the extended euclidean division on *this and b. More... | |
A field of fractions templated by an arbitrary BPASGCDDomain.
Construct the zero fraction function.
Copy constructor.
b | A rational function |
constructor with two parameter
a | the numerator |
b | the denominator |
Deconstructor for fraction.
|
inlinevirtual |
Convert this to an expression tree.
returns an expression tree describing *this.
Implements ExpressionTreeConvert.
|
virtual |
Get the fraction's denominator.
Implements BPASFieldOfFractions< Domain, Fraction< Domain > >.
|
inlinevirtual |
Perform the eucldiean division of *this and b.
Returns the remainder. If q is not NULL, then returns the quotient in q.
b | the divisor. | |
[out] | q | a pointer to store the quotient in. |
Implements BPASEuclideanDomain< Fraction< Domain > >.
|
inlinevirtual |
Perform the extended euclidean division on *this and b.
Returns the GCD. If s and t are not NULL, returns the bezout coefficients in them.
b | the divisor. | |
[out] | s | the bezout coefficient of this. |
[out] | t | the bezout coefficient of b. |
Implements BPASEuclideanDomain< Fraction< Domain > >.
|
inlinevirtual |
Get GCD of *this and other.
other | the other element to get a gcd with. |
Implements BPASGCDDomain< Fraction< Domain > >.
|
virtual |
Determine if *this ring element is one, that is the multiplication identity.
returns true iff *this is one.
Implements BPASRing< Fraction< Domain > >.
|
virtual |
Determine if *this ring element is zero, that is the additive identity.
returns true iff *this is zero.
Implements BPASRing< Fraction< Domain > >.
|
virtual |
Get the fraction's numerator.
Implements BPASFieldOfFractions< Domain, Fraction< Domain > >.
|
virtual |
Get the remainder of *this and b;.
b | the divisor |
Implements BPASEuclideanDomain< Fraction< Domain > >.
|
virtual |
Assign *this to be the remainder of *this and b.
b | the divisor |
Implements BPASEuclideanDomain< Fraction< Domain > >.
|
virtual |
Exact division.
d | the divisor. |
Implements BPASIntegralDomain< Fraction< Domain > >.
|
virtual |
Exact division assignment.
d | the divisor. |
Implements BPASIntegralDomain< Fraction< Domain > >.
|
virtual |
Overload operator ^ replace xor operation by exponentiation.
e | The exponentiation, e > 0 |
Implements BPASRing< Fraction< Domain > >.
Overload operator ^= replace xor operation by exponentiation.
e | The exponentiation, e > 0 |
Implements BPASRing< Fraction< Domain > >.
|
virtual |
Print the Ring element.
Derived classes may override this to get custom printing that may be more expressive (and prettier) than expression tree printing.
Reimplemented from BPASRing< Fraction< Domain > >.
|
virtual |
Get the quotient of *this and b.
b | the divisor |
Implements BPASEuclideanDomain< Fraction< Domain > >.
|
virtual |
Get the remainder of *this and b.
b | the divisor |
Implements BPASEuclideanDomain< Fraction< Domain > >.
|
inlinevirtual |
Compute squarefree factorization of *this.
Implements BPASGCDDomain< Fraction< Domain > >.
|
virtual |
Obtain the unit normal (a.k.a canonical associate) of an element.
If either parameters u, v, are non-NULL then the units are returned such that b = ua, v = u^-1. Where b is the unit normal of a, and is the returned value.
Implements BPASRing< Fraction< Domain > >.