|
| Modular () |
|
| Modular (int64_t value, int64_t exp=1) |
|
| Modular (const Modular< int64_t > &mf) |
|
Modular< Element > & | assign (const Modular< Element > &F) |
|
const Modular & | operator= (const Modular< int64_t > &F) |
|
unsigned long & | cardinality (unsigned long &c) const |
|
unsigned long & | characteristic (unsigned long &c) const |
|
unsigned long | characteristic () const |
|
unsigned long | cardinality () const |
|
int64_t & | convert (int64_t &x, const Element &y) const |
|
double & | convert (double &x, const Element &y) const |
|
float & | convert (float &x, const Element &y) const |
|
std::ostream & | write (std::ostream &os) const |
|
std::istream & | read (std::istream &is) |
|
std::ostream & | write (std::ostream &os, const Element &x) const |
|
std::istream & | read (std::istream &is, Element &x) const |
|
Element & | init (Element &x, const double &y) const |
|
Element & | init (Element &x, const float &y) const |
|
template<class Element1 > |
Element & | init (Element &x, const Element1 &y) const |
|
Element & | init (Element &x, int y=0) const |
|
Element & | init (Element &x, long y) const |
|
Element & | assign (Element &x, const Element &y) const |
|
bool | areEqual (const Element &x, const Element &y) const |
|
bool | isZero (const Element &x) const |
|
bool | isOne (const Element &x) const |
|
Element & | add (Element &x, const Element &y, const Element &z) const |
|
Element & | sub (Element &x, const Element &y, const Element &z) const |
|
Element & | mul (Element &x, const Element &y, const Element &z) const |
|
Element & | div (Element &x, const Element &y, const Element &z) const |
|
Element & | neg (Element &x, const Element &y) const |
|
Element & | inv (Element &x, const Element &y) const |
|
Element & | axpy (Element &r, const Element &a, const Element &x, const Element &y) const |
|
Element & | addin (Element &x, const Element &y) const |
|
Element & | subin (Element &x, const Element &y) const |
|
Element & | mulin (Element &x, const Element &y) const |
|
Element & | divin (Element &x, const Element &y) const |
|
Element & | negin (Element &x) const |
|
Element & | invin (Element &x) const |
|
Element & | axpyin (Element &r, const Element &a, const Element &x) const |
|
template<>
class FFPACK::Modular< int64_t >
Specialization of Modular to int64_t element type with efficient dot product.
Efficient element operations for dot product, mul, axpy, by using floating point inverse of modulus (borrowed from NTL) and some use of non-normalized intermediate values.
For some uses this is the most efficient field for primes in the range from half word to 2^62.
Requires: Modulus < 2^62. Intended use: 2^30 < prime modulus < 2^62.