Developer documentation

scalar.hpp File Reference
#include <assert.h>
#include <math.h>
#include <stdio.h>
#include <realroot/shared_object.hpp>

Go to the source code of this file.

Classes

struct  mmx::scalar< T >
 

Namespaces

 mmx
 
 mmx::let
 Namespace for explicit type conversion.
 

Macros

#define WITH_REFCOUNT
 
#define NO_NRV   1
 
#define NRVAL(name)
 
#define NRCODE(code)
 
#define NONRCODE(code)   code
 
#define OPCODE(a, b, op)   scalar<T>& r =*new scalar<T>(a); return (r op b);
 

Functions

template<class A , class B >
void mmx::let::assign (A &a, const B &b)
 Generic definition of the assignement function. More...
 
template<class T >
scalar< T > & mmx::operator+ (const scalar< T > &b, unsigned long ul)
 
template<class T >
scalar< T > & mmx::operator- (const scalar< T > &b, unsigned long ul)
 
template<class T >
scalar< T > & mmx::operator* (const scalar< T > &b, unsigned long ul)
 
template<class T >
scalar< T > & mmx::operator/ (const scalar< T > &b, unsigned long ul)
 
template<class T >
scalar< T > & mmx::operator% (const scalar< T > &b, unsigned long ul)
 
template<class T >
scalar< T > & mmx::operator+ (unsigned long ul, const scalar< T > &b)
 
template<class T >
scalar< T > & mmx::operator* (unsigned long ul, const scalar< T > &b)
 
template<class T >
scalar< T > & mmx::operator+ (const scalar< T > &b, long sl)
 
template<class T >
scalar< T > & mmx::operator- (const scalar< T > &b, long sl)
 
template<class T >
scalar< T > & mmx::operator* (const scalar< T > &b, long sl)
 
template<class T >
scalar< T > & mmx::operator/ (const scalar< T > &b, long sl)
 
template<class T >
scalar< T > & mmx::operator% (const scalar< T > &b, long sl)
 
template<class T >
scalar< T > & mmx::operator+ (long sl, const scalar< T > &b)
 
template<class T >
scalar< T > & mmx::operator* (int sl, const scalar< T > &b)
 
template<class T >
scalar< T > & mmx::operator* (long sl, const scalar< T > &b)
 
template<class T >
scalar< T > & mmx::operator* (double d, const scalar< T > &b)
 
template<class T >
scalar< T > & mmx::Div2Exp (const scalar< T > &b, unsigned long exponent_of_2)
 
template<class T >
scalar< T > & mmx::GCD (const scalar< T > &b1, const scalar< T > &b2)
 
template<class T >
scalar< T > & mmx::gcd (const scalar< T > &b1, const scalar< T > &b2)
 
template<class T >
scalar< T > & mmx::Mod2Exp (const scalar< T > &b, unsigned long exponent_of_2)
 
template<class T >
scalar< T > & mmx::Mul2Exp (const scalar< T > &b, unsigned long exponent_of_2)
 
template<class T >
scalar< T > & mmx::PowMod (const scalar< T > &b, const scalar< T > &exp, const scalar< T > &m)
 
template<class T >
scalar< T > & mmx::PowMod (const scalar< T > &b, unsigned long exp, const scalar< T > &m)
 
template<class T >
scalar< T > mmx::abs (const scalar< T > &b)
 
template<class T >
scalar< T > & mmx::neg (const scalar< T > &b)
 
template<class T >
scalar< T > mmx::pow (const scalar< T > &base, unsigned long exp)
 
template<class T >
scalar< T > & mmx::quo (const scalar< T > &dividend, unsigned long divisor)
 
template<class T >
scalar< T > & mmx::rem (const scalar< T > &dividend, const scalar< T > &divisor)
 
template<class T >
unsigned long mmx::rem (const scalar< T > &b, unsigned long divisor)
 
template<class T >
scalar< T > mmx::sqrt (const scalar< T > &b)
 
template<class T >
scalar< T > & mmx::BigIntFactorial (unsigned long n)
 
template<class T >
scalar< T > & mmx::operator+ (const scalar< T > &b, unsigned sl) NRVAL(r(b))
 
template<class T >
scalar< T > & mmx::operator- (const scalar< T > &b, unsigned sl) NRVAL(r(b))
 
template<class T >
scalar< T > & mmx::operator* (const scalar< T > &b, unsigned sl) NRVAL(r(b))
 
template<class T >
scalar< T > & mmx::operator/ (const scalar< T > &b, unsigned sl) NRVAL(r(b))
 
template<class T >
scalar< T > & mmx::operator% (const scalar< T > &b, unsigned sl) NRVAL(r(b))
 
template<class T >
scalar< T > & mmx::operator+ (const scalar< T > &b, int sl) NRVAL(r(b))
 
template<class T >
scalar< T > & mmx::operator- (const scalar< T > &b, int sl) NRVAL(r(b))
 
template<class T >
scalar< T > & mmx::operator* (const scalar< T > &b, int sl) NRVAL(r(b))
 
template<class T >
scalar< T > & mmx::operator/ (const scalar< T > &b, int sl) NRVAL(r(b))
 
template<class T >
scalar< T > & mmx::operator% (const scalar< T > &b, int sl) NRVAL(r(b))
 
template<class T >
scalar< T > & mmx::operator+ (const scalar< T > &b, long int sl) NRVAL(r(b))
 
template<class T >
scalar< T > & mmx::operator- (const scalar< T > &b, long int sl) NRVAL(r(b))
 
template<class T >
scalar< T > & mmx::operator* (const scalar< T > &b, long int sl) NRVAL(r(b))
 
template<class T >
scalar< T > & mmx::operator/ (const scalar< T > &b, long int sl) NRVAL(r(b))
 
template<class T >
scalar< T > & mmx::operator% (const scalar< T > &b, long int sl) NRVAL(r(b))
 
template<class T >
scalar< T > mmx::quo (const scalar< T > &dividend, const scalar< T > &divisor) NRVAL(r(dividend))
 
template<class T >
scalar< T > mmx::quo (const scalar< T > &dividend, unsigned long divisor) NRVAL(r(dividend))
 
template<class T >
scalar< T > & mmx::BigIntPow (unsigned long base, unsigned long exp) NRVAL(r)
 
template<class T >
scalar< T > mmx::Size (const scalar< T > &r)
 
double mmx::rfloor (double x)
 
double mmx::rceil (double x)
 
long int mmx::bit_size (double x)
 

Macro Definition Documentation

#define NO_NRV   1
#define NONRCODE (   code)    code
#define NRCODE (   code)
#define NRVAL (   name)
#define OPCODE (   a,
  b,
  op 
)    scalar<T>& r =*new scalar<T>(a); return (r op b);
#define WITH_REFCOUNT
Home