Basic Polynomial Algebra Subprograms (BPAS)
v. 1.791
|
A simple data structure for encapsulating a collection of Factor elements. More...
#include <Factors.hpp>
Public Member Functions | |
Factors () | |
Default constructor. More... | |
Factors (const Ring &r) | |
Construct a Factors with a single factor. More... | |
Factors (const std::vector< Ring > &v) | |
Create a Factors from a list of Ring elements. More... | |
Factors (const std::vector< Ring > &v, const std::vector< int > &e) | |
Create a Factors from a list of Ring elements and a parallel array of integers as exponents for each ring element. More... | |
Factors (const std::vector< Ring > &v, const std::vector< int > &e, const Ring &u) | |
Create a Factors from a list of ring elements, a parallel array of integers as exponents for each ring element, and a ring element representing the invertible unit of the Ring. More... | |
Factors (const std::vector< Factor< Ring >> &v) | |
Create a Factors from a vector of Factor elements. More... | |
Factors (const std::vector< Factor< Ring >> &v, const Ring &u) | |
Create a Factors from a vector of Factor elements and an invertible Ring element. More... | |
Factors (const Factors &f) | |
Copy consturctor. More... | |
Factors (Factors &&f) | |
Move consturctor. More... | |
~Factors () | |
Destructor. | |
void | setRingElement (const Ring &r) |
Set the invertible Ring element. More... | |
Ring | ringElement () const |
Get the invertible Ring element. More... | |
void | multiplyRingElement (const Ring &r) |
Multiply this Factors invertible Ring element by another Ring element. More... | |
std::vector< Factor< Ring > > | factors () const |
Get the list of Factor elements. More... | |
Factor< Ring > | factor (int i) const |
Get the i'th Factor. More... | |
void | setFactors (const std::vector< Factor< Ring >> &v) |
Set the list of Factor elements. More... | |
void | addFactor (const Factor< Ring > &f) |
A Factor to the list of Factor elements. More... | |
void | addFactor (const Ring &r, int e) |
Add a Ring element and its corresponding exponent as a Factor. More... | |
void | addFactor (Ring &&r, int e) |
Add a Ring element and its corresponding exponent as a Factor. More... | |
void | addFactors (const Factors< Ring > f) |
Combine another Factors' list of Factor elements with this Factors. More... | |
size_t | size () const |
Get the number of Factor elements in this Factors object. More... | |
Factors< Ring > & | operator= (const Factors< Ring > &f) |
Copy assignment. More... | |
Factors< Ring > & | operator= (Factors< Ring > &&f) |
Move assignment. More... | |
bool | operator== (const Factors< Ring > &f) const |
Equality testing for Factors. More... | |
bool | operator!= (const Factors< Ring > &f) const |
Inequality testing for Factors. More... | |
Factor< Ring > & | operator[] (size_t idx) |
Indexing operator. More... | |
ExpressionTree | convertToExpressionTree () const |
Convert the Factors object to an ExpressionTree. More... | |
Friends | |
std::ostream & | operator<< (std::ostream &out, const Factors< Ring > &f) |
Output operator. More... | |
A simple data structure for encapsulating a collection of Factor elements.
Factors are encoded as a list of Factor items. That is, a pair of a Ring element and an integer representing its exponent. This list of Factor elements is augmented by an invertible element of the ring (if one such exists) as a constant multiplicative factor.
Default constructor.
Constructs an empty list of factors.
Construct a Factors with a single factor.
r | the Ring element |
Create a Factors from a list of Ring elements.
Each factor is assumed to have an exponent of 1.
v | the vector of Ring elements. |
Factors< Ring >::Factors | ( | const std::vector< Ring > & | v, |
const std::vector< int > & | e | ||
) |
Create a Factors from a list of Ring elements and a parallel array of integers as exponents for each ring element.
v | the vector of Ring elements |
e | the parallel vector of integer exponents |
Factors< Ring >::Factors | ( | const std::vector< Ring > & | v, |
const std::vector< int > & | e, | ||
const Ring & | u | ||
) |
Create a Factors from a list of ring elements, a parallel array of integers as exponents for each ring element, and a ring element representing the invertible unit of the Ring.
v | the vector of Ring elements |
e | the parallel vector of integer exponents |
u | the multicative factor |
Copy consturctor.
f | the Factors to copy. |
Move consturctor.
f | the Factors to move. |
|
inline |
Add a Ring element and its corresponding exponent as a Factor.
r | the ring element. |
e | the exponent |
|
inline |
Add a Ring element and its corresponding exponent as a Factor.
r | the ring element. |
e | the exponent |
|
inlinevirtual |
Convert the Factors object to an ExpressionTree.
Implements ExpressionTreeConvert.
|
inline |
Multiply this Factors invertible Ring element by another Ring element.
r | the other Ring element. |
Copy assignment.
f | the Factors to copy from. |
Move assignment.
f | the Factors to move from. |
|
inline |
Get the invertible Ring element.
|
inline |
Set the invertible Ring element.
r | the new invertible Ring element. |
|
inline |
|
friend |
Output operator.
Defines a to string conversion.
out | the output stream |
f | the Factors to output |