Developer documentation

scalar_integer.hpp File Reference
#include <iostream>
#include <string>
#include <gmp.h>
#include <realroot/scalar.hpp>

Go to the source code of this file.

Classes

struct  mmx::as_helper< T, F >
 
struct  mmx::as_helper< double, scalar< MPZ > >
 

Namespaces

 mmx
 
 mmx::let
 Namespace for explicit type conversion.
 

Typedefs

typedef MP_INT mmx::MPZ
 

Functions

scalar< MPZ > mmx::operator+ (const scalar< MPZ > &a1, const scalar< MPZ > &a2)
 
scalar< MPZ > mmx::operator- (const scalar< MPZ > &a1, const scalar< MPZ > &a2)
 
scalar< MPZ > mmx::operator- (const scalar< MPZ > &a1)
 
scalar< MPZ > mmx::operator* (const scalar< MPZ > &a1, const scalar< MPZ > &a2)
 
scalar< MPZ > mmx::operator/ (const scalar< MPZ > &a1, const scalar< MPZ > &a2)
 
void mmx::convert (scalar< MPZ > &n, char *s)
 
std::ostream & mmx::operator<< (std::ostream &os, const scalar< MPZ > &b)
 
char * mmx::as_charp (const scalar< MPZ > &b)
 
std::string mmx::to_string (const scalar< MPZ > &b)
 
template<class OSTREAM >
void mmx::print (OSTREAM &os, const scalar< MPZ > &b)
 
std::istream & mmx::operator>> (std::istream &is, scalar< MPZ > &b)
 
scalar< MPZ > mmx::rfloor (const scalar< MPZ > &q)
 
scalar< MPZ > mmx::rceil (const scalar< MPZ > &q)
 
void mmx::SqrtRem (scalar< MPZ > &sqrt, scalar< MPZ > &rem, const scalar< MPZ > &b)
 
void mmx::QuoRem (scalar< MPZ > &q, scalar< MPZ > &r, const scalar< MPZ > &divdend, const scalar< MPZ > &divisor)
 
unsigned long mmx::QuoRem (scalar< MPZ > &q, scalar< MPZ > &r, const scalar< MPZ > &divdend, unsigned long divisor)
 
void mmx::DivMod (scalar< MPZ > &q, scalar< MPZ > &r, const scalar< MPZ > &divdend, const scalar< MPZ > &divisor)
 
void mmx::DivMod (scalar< MPZ > &q, scalar< MPZ > &r, const scalar< MPZ > &divdend, unsigned long divisor)
 
void mmx::ExtGCD (scalar< MPZ > &gcd, scalar< MPZ > &a, scalar< MPZ > &b, const scalar< MPZ > &x, const scalar< MPZ > &y)
 
void mmx::HalfExtGCD (scalar< MPZ > &gcd, scalar< MPZ > &a, const scalar< MPZ > &x, const scalar< MPZ > &y)
 
unsigned long mmx::BigIntToUL (const scalar< MPZ > &b)
 
signed long mmx::BigIntToSL (const scalar< MPZ > &b)
 
size_t mmx::log (const scalar< MPZ > &b)
 
size_t mmx::log (const scalar< MPZ > &b, int base)
 
int mmx::sign (const scalar< MPZ > &b)
 
int mmx::compare (const scalar< MPZ > &b1, const scalar< MPZ > &b2)
 
int mmx::compare (const scalar< MPZ > &b, unsigned long ul)
 
int mmx::compare (const scalar< MPZ > &b, long sl)
 
bool mmx::IsPositive (const scalar< MPZ > &b)
 
bool mmx::IsNegative (const scalar< MPZ > &b)
 
bool mmx::IsZero (const scalar< MPZ > &b)
 
bool mmx::IsOne (const scalar< MPZ > &b)
 
bool mmx::IsMinusOne (const scalar< MPZ > &b)
 
bool mmx::IsOdd (const scalar< MPZ > &b)
 
bool mmx::IsEven (const scalar< MPZ > &b)
 
bool mmx::IsPerfectSquare (const scalar< MPZ > &b)
 
bool mmx::IsProbablyPrime (const scalar< MPZ > &b, int reps)
 
scalar< MPZ > mmx::operator<< (const scalar< MPZ > &x, long int s)
 
scalar< MPZ > & mmx::operator<<= (scalar< MPZ > &x, long int s)
 
scalar< MPZ > mmx::Size (const scalar< MPZ > &z)
 
long int mmx::bit_size (const scalar< MPZ > &z)
 
scalar< MPZ > mmx::gcd (const scalar< MPZ > &a, const scalar< MPZ > &b)
 
scalar< MPZ > mmx::lcm (const scalar< MPZ > &a, const scalar< MPZ > &b)
 
scalar< MPZ > mmx::pow (const scalar< MPZ > &a, unsigned n)
 
scalar< MPZ > mmx::isqrt (const scalar< MPZ > &a)
 
void mmx::let::assign (scalar< MPZ > &z, char *s)
 
void mmx::let::assign (scalar< MPZ > &z, int n)
 
void mmx::let::assign (scalar< MPZ > &z, double d)
 
void mmx::let::assign (scalar< MPZ > &x, const scalar< MPZ > &r)
 
void mmx::let::assign (int &x, const scalar< MPZ > &r)
 
void mmx::let::assign (long int &x, const scalar< MPZ > &r)
 
void mmx::let::assign (double &r, const scalar< MPZ > &z)
 
double mmx::to_double (const scalar< MPZ > &z)
 
double mmx::as_double (const scalar< MPZ > &z)
 
double mmx::as_double (const double &d)
 
Home