
 Full inheritance diagram for SmartFraction< Domain >:
|  | 
|  | SmartFraction () | 
|  | Construct the zero fraction function.  More... 
 | 
|  | 
|  | SmartFraction (const SmartFraction< Domain > &b) | 
|  | Copy constructor.  More... 
 | 
|  | 
|  | SmartFraction (std::vector< Factor< Domain >> a, std::vector< Factor< Domain >> b) | 
|  | constructor with two parameter  More... 
 | 
|  | 
|  | SmartFraction (Domain a, Domain b) | 
|  | 
| void | setNumerator (const std::vector< std::pair< Domain, int >> &b) | 
|  | 
| void | setDenominator (const std::vector< std::pair< Domain, int >> &b) | 
|  | 
| void | set (const std::vector< std::pair< Domain, int >> &a, const std::vector< std::pair< Domain, int >> &b) | 
|  | 
| Domain | numerator () const | 
|  | Get the fraction's numerator.  More... 
 | 
|  | 
| Domain | denominator () const | 
|  | Get the fraction's denominator.  More... 
 | 
|  | 
| bool | operator!= (const SmartFraction< Domain > &b) const | 
|  | Inequality test,.  More... 
 | 
|  | 
| bool | operator== (const SmartFraction< Domain > &b) const | 
|  | Equality test,.  More... 
 | 
|  | 
| SmartFraction< Domain > | operator* (const SmartFraction< Domain > &b) const | 
|  | Multiplication. 
 | 
|  | 
| SmartFraction< Domain > & | operator*= (const SmartFraction< Domain > &b) | 
|  | Multiplication assignment. 
 | 
|  | 
| SmartFraction< Domain > | unitCanonical (SmartFraction< Domain > *u=NULL, SmartFraction< Domain > *v=NULL) const | 
|  | Obtain the unit normal (a.k.a canonical associate) of an element.  More... 
 | 
|  | 
| void | canonicalize () | 
|  | Canonicalize this fraction, reducing terms as needed. 
 | 
|  | 
| void | normalize () | 
|  | 
| bool | isZero () const | 
|  | Determine if *this ring element is zero, that is the additive identity.  More... 
 | 
|  | 
| bool | isOne () const | 
|  | Determine if *this ring element is one, that is the multiplication identity.  More... 
 | 
|  | 
| void | zero () | 
|  | Make *this ring element zero. 
 | 
|  | 
| void | one () | 
|  | Make *this ring element one. 
 | 
|  | 
| SmartFraction< Domain > | operator+ (const SmartFraction< Domain > &b) const | 
|  | Addition. 
 | 
|  | 
| SmartFraction< Domain > & | operator+= (const SmartFraction< Domain > &b) | 
|  | Addition assignment. 
 | 
|  | 
| SmartFraction< Domain > | operator- (const SmartFraction< Domain > &b) const | 
|  | Subtraction. 
 | 
|  | 
| SmartFraction< Domain > & | operator-= (const SmartFraction< Domain > &b) | 
|  | Subtraction assignment. 
 | 
|  | 
| SmartFraction< Domain > | operator/ (const SmartFraction< Domain > &b) const | 
|  | Exact division.  More... 
 | 
|  | 
| SmartFraction< Domain > & | operator/= (const SmartFraction< Domain > &b) | 
|  | Exact division assignment.  More... 
 | 
|  | 
| SmartFraction< Domain > | operator- () const | 
|  | Negation. 
 | 
|  | 
| SmartFraction< Domain > | inverse () const | 
|  | Get the inverse of *this.  More... 
 | 
|  | 
| SmartFraction< Domain > | operator^ (long long int e) const | 
|  | Exponentiation. 
 | 
|  | 
| SmartFraction< Domain > & | operator^= (long long int e) | 
|  | Exponentiation assignment. 
 | 
|  | 
| Factors< SmartFraction< Domain > > | squareFree () const | 
|  | Compute squarefree factorization of *this.  More... 
 | 
|  | 
| ExpressionTree | convertToExpressionTree () const | 
|  | Convert this to an expression tree.  More... 
 | 
|  | 
| void | print (std::ostream &ostream) const | 
|  | Print the Ring element.  More... 
 | 
|  | 
| SmartFraction< Domain > | gcd (const SmartFraction< Domain > &b) const | 
|  | Get GCD of *this and other.  More... 
 | 
|  | 
| Integer | euclideanSize () const | 
|  | Get the euclidean size of *this. 
 | 
|  | 
| SmartFraction< Domain > | euclideanDivision (const SmartFraction< Domain > &b, SmartFraction< Domain > *q=NULL) const | 
|  | Perform the eucldiean division of *this and b.  More... 
 | 
|  | 
| SmartFraction< Domain > | quotient (const SmartFraction< Domain > &b) const | 
|  | Get the quotient of *this and b.  More... 
 | 
|  | 
| SmartFraction< Domain > | remainder (const SmartFraction< Domain > &b) const | 
|  | Get the remainder of *this and b.  More... 
 | 
|  | 
| SmartFraction< Domain > | extendedEuclidean (const SmartFraction< Domain > &b, SmartFraction< Domain > *s=NULL, SmartFraction< Domain > *t=NULL) const | 
|  | Perform the extended euclidean division on *this and b.  More... 
 | 
|  | 
| SmartFraction< Domain > | operator% (const SmartFraction< Domain > &b) const | 
|  | Get the remainder of *this and b;.  More... 
 | 
|  | 
| SmartFraction< Domain > & | operator%= (const SmartFraction< Domain > &b) | 
|  | Assign *this to be the remainder of *this and b.  More... 
 | 
|  | 
template<class Domain>
class SmartFraction< Domain >
A field of fractions templated by an arbitrary BPASGCDDomain making use of factor refinement.