FP_NR< F > Class Template Reference

Public Member Functions

 FP_NR ()
 
 FP_NR (const FP_NR< F > &f)
 
 ~FP_NR ()
 
 FP_NR (const double d)
 
 FP_NR (const char *s)
 
F & get_data ()
 
const F & get_data () const
 
double get_d (mp_rnd_t rnd=GMP_RNDN) const
 
void get_mpfr (mpfr_t r, mp_rnd_t rnd=GMP_RNDN) const
 
void set_mpfr (mpfr_t r, mp_rnd_t rnd=GMP_RNDN)
 
long get_si () const
 
long exponent () const
 
long get_si_exp_we (long &expo, long expo_add) const
 
long get_si_exp (long &expo) const
 
template<class Z >
void get_z_exp (Z_NR< Z > &a, long &expo) const
 
template<class Z >
void get_z_exp_we (Z_NR< Z > &a, long &expo, long expo_add) const
 
template<class Z >
void set_z (const Z_NR< Z > &z, mp_rnd_t rnd=GMP_RNDN)
 
int cmp (const FP_NR< F > &b) const
 
int cmp (double d) const
 
int sgn () const
 
FP_NR< F > & operator= (const FP_NR< F > &a)
 
FP_NR< F > & operator= (const char *s)
 
FP_NR< F > & operator= (double a)
 
FP_NR< F > & operator= (mpfr_t &a)
 
bool operator== (const FP_NR< F > &a) const
 
bool operator== (double a) const
 
bool operator!= (const FP_NR< F > &a) const
 
bool operator!= (double a) const
 
bool operator< (const FP_NR< F > &a) const
 
bool operator< (double a) const
 
bool operator> (const FP_NR< F > &a) const
 
bool operator> (double a) const
 
bool operator<= (const FP_NR< F > &a) const
 
bool operator<= (double a) const
 
bool operator>= (const FP_NR< F > &a) const
 
bool operator>= (double a) const
 
FP_NR< F > & operator+= (const FP_NR< F > &a)
 
FP_NR< F > & operator-= (const FP_NR< F > &a)
 
FP_NR< F > & operator*= (const FP_NR< F > &a)
 
FP_NR< F > & operator/= (const FP_NR< F > &a)
 
FP_NR< F > & operator+= (const double a)
 
FP_NR< F > & operator-= (const double a)
 
FP_NR< F > & operator*= (const double a)
 
FP_NR< F > & operator/= (const double a)
 
FP_NRmax_f (FP_NR< F > &b)
 
bool is_zero () const
 
int zero_p () const
 
int is_nan () const
 
int is_finite () const
 
void add (const FP_NR< F > &a, const FP_NR< F > &b, mp_rnd_t rnd=GMP_RNDN)
 
void sub (const FP_NR< F > &a, const FP_NR< F > &b, mp_rnd_t rnd=GMP_RNDN)
 
void mul (const FP_NR< F > &a, const FP_NR< F > &b, mp_rnd_t rnd=GMP_RNDN)
 
void mul_d (const FP_NR< F > &a, const double b, mp_rnd_t rnd=GMP_RNDN)
 
void mul_mpfr (const FP_NR< mpfr_t > &a, const mpfr_t b, mp_rnd_t rnd=GMP_RNDN)
 
void mul_2si (const FP_NR< F > &a, long b)
 
void div (const FP_NR< F > &a, const FP_NR< F > &b, mp_rnd_t rnd=GMP_RNDN)
 
void div_d (const FP_NR< F > &a, const double b, mp_rnd_t rnd=GMP_RNDN)
 
void addmul (const FP_NR< F > &a, const FP_NR< F > &b, mp_rnd_t rnd=GMP_RNDN)
 
void submul (const FP_NR< F > &a, const FP_NR< F > &b, mp_rnd_t rnd=GMP_RNDN)
 
void pow_si (const FP_NR< F > &a, long b, mp_rnd_t rnd=GMP_RNDN)
 
void exponential (const FP_NR< F > &b, mp_rnd_t rnd=GMP_RNDN)
 
void log (const FP_NR< F > &a, mp_rnd_t rnd=GMP_RNDN)
 
void sqrt (const FP_NR< F > &b, mp_rnd_t rnd=GMP_RNDN)
 
void root (const FP_NR< F > &b, unsigned int k, mp_rnd_t rnd=GMP_RNDN)
 
void neg (const FP_NR< F > &b)
 
FP_NR< F > operator- () const
 
void abs (const FP_NR< F > &b)
 
void rnd (const FP_NR< F > &b)
 
void rnd_we (const FP_NR< F > &b, long expo_add)
 
void floor (const FP_NR< F > &b)
 
void ceil (const FP_NR< F > &b)
 
void set_nan ()
 
void swap (FP_NR< F > &a)
 
void hypot (const FP_NR< F > &a, const FP_NR< F > &b, mp_rnd_t rnd=GMP_RNDN)
 
FPLLL_BEGIN_NAMESPACE FP_NR ()
 
 FP_NR (const FP_NR< double > &f)
 
 ~FP_NR ()
 
unsigned int get_prec ()
 
unsigned int set_prec (unsigned int)
 
double get_d (mp_rnd_t) const
 
void get_mpfr (mpfr_t r, mp_rnd_t rnd) const
 
void set_mpfr (mpfr_t r, mp_rnd_t rnd)
 
long get_si () const
 
long exponent () const
 
long get_si_exp_we (long &expo, long expo_add) const
 
long get_si_exp (long &expo) const
 
int cmp (const FP_NR< double > &b) const
 
int cmp (double b) const
 
int sgn () const
 
FP_NR< double > & operator= (const FP_NR< double > &f)
 
FP_NR< double > & operator= (double d)
 
FP_NR< double > & operator= (const char *s)
 
bool operator<= (const FP_NR< double > &a) const
 
bool operator<= (double a) const
 
bool operator>= (const FP_NR< double > &a) const
 
bool operator>= (double a) const
 
bool operator< (const FP_NR< double > &a) const
 
bool operator< (double a) const
 
bool operator> (const FP_NR< double > &a) const
 
bool operator> (double a) const
 
bool is_zero () const
 
int is_nan () const
 
int is_finite () const
 
void add (const FP_NR< double > &b, const FP_NR< double > &c, mp_rnd_t)
 
void sub (const FP_NR< double > &b, const FP_NR< double > &c, mp_rnd_t)
 
void mul (const FP_NR< double > &b, const FP_NR< double > &c, mp_rnd_t)
 
void mul_d (const FP_NR< double > &b, const double c, mp_rnd_t)
 
void mul_2si (const FP_NR< double > &b, long c)
 
void div (const FP_NR< double > &b, const FP_NR< double > &c, mp_rnd_t)
 
void addmul (const FP_NR< double > &b, const FP_NR< double > &c, mp_rnd_t)
 
void submul (const FP_NR< double > &b, const FP_NR< double > &c, mp_rnd_t)
 
void pow_si (const FP_NR< double > &a, long b, mp_rnd_t)
 
void exponential (const FP_NR< double > &a, mp_rnd_t)
 
void log (const FP_NR< double > &a, mp_rnd_t)
 
void sqrt (const FP_NR< double > &s, mp_rnd_t)
 
void root (const FP_NR< double > &a, unsigned int k, mp_rnd_t)
 
void neg (const FP_NR< double > &b)
 
void abs (const FP_NR< double > &b)
 
void rnd (const FP_NR< double > &b)
 
void rnd_we (const FP_NR< double > &b, long expo_add)
 
void floor (const FP_NR< double > &b)
 
void ceil (const FP_NR< double > &b)
 
void set_nan ()
 
void swap (FP_NR< double > &a)
 
void hypot (const FP_NR< double > &a, const FP_NR< double > &b, mp_rnd_t)
 
FPLLL_BEGIN_NAMESPACE FP_NR ()
 
 FP_NR (const FP_NR< dd_real > &f)
 
 ~FP_NR ()
 
unsigned int get_prec ()
 
unsigned int set_prec (unsigned int)
 
double get_d (mp_rnd_t) const
 
void get_mpfr (mpfr_t r, mp_rnd_t rnd) const
 
void set_mpfr (mpfr_t r, mp_rnd_t rnd)
 
long get_si () const
 
long exponent () const
 
long get_si_exp_we (long &expo, long expo_add) const
 
long get_si_exp (long &expo) const
 
int cmp (const FP_NR< dd_real > &b) const
 
int cmp (double b) const
 
int sgn () const
 
FP_NR< dd_real > & operator= (const FP_NR< dd_real > &a)
 
FP_NR< dd_real > & operator= (double a)
 
FP_NR< dd_real > & operator= (const char *s)
 
bool operator<= (const FP_NR< dd_real > &a) const
 
bool operator<= (double a) const
 
bool operator>= (const FP_NR< dd_real > &a) const
 
bool operator>= (double a) const
 
bool operator< (const FP_NR< dd_real > &a) const
 
bool operator< (double a) const
 
bool operator> (const FP_NR< dd_real > &a) const
 
bool operator> (double a) const
 
bool is_zero () const
 
int is_nan () const
 
int is_finite () const
 
void add (const FP_NR< dd_real > &b, const FP_NR< dd_real > &c, mp_rnd_t)
 
void sub (const FP_NR< dd_real > &b, const FP_NR< dd_real > &c, mp_rnd_t)
 
void mul (const FP_NR< dd_real > &b, const FP_NR< dd_real > &c, mp_rnd_t)
 
void mul_d (const FP_NR< dd_real > &b, const double c, mp_rnd_t)
 
void mul_2si (const FP_NR< dd_real > &b, long c)
 
void div (const FP_NR< dd_real > &a, const FP_NR< dd_real > &b, mp_rnd_t)
 
void addmul (const FP_NR< dd_real > &b, const FP_NR< dd_real > &c, mp_rnd_t)
 
void submul (const FP_NR< dd_real > &b, const FP_NR< dd_real > &c, mp_rnd_t)
 
void pow_si (const FP_NR< dd_real > &a, long b, mp_rnd_t)
 
void exponential (const FP_NR< dd_real > &a, mp_rnd_t)
 
void log (const FP_NR< dd_real > &a, mp_rnd_t)
 
void sqrt (const FP_NR< dd_real > &a, mp_rnd_t)
 
void root (const FP_NR< dd_real > &a, unsigned int k, mp_rnd_t)
 
void neg (const FP_NR< dd_real > &b)
 
void abs (const FP_NR< dd_real > &b)
 
void rnd (const FP_NR< dd_real > &b)
 
void rnd_we (const FP_NR< dd_real > &b, long expo_add)
 
void floor (const FP_NR< dd_real > &b)
 
void ceil (const FP_NR< dd_real > &b)
 
void set_nan ()
 
void swap (FP_NR< dd_real > &a)
 
void hypot (const FP_NR< dd_real > &a, const FP_NR< dd_real > &b, mp_rnd_t)
 
FPLLL_BEGIN_NAMESPACE FP_NR ()
 
 FP_NR (const FP_NR< long double > &f)
 
 ~FP_NR ()
 
unsigned int get_prec ()
 
unsigned int set_prec (unsigned int)
 
double get_d (mp_rnd_t) const
 
void get_mpfr (mpfr_t r, mp_rnd_t rnd) const
 
void set_mpfr (mpfr_t r, mp_rnd_t rnd)
 
long get_si () const
 
long exponent () const
 
long get_si_exp_we (long &expo, long expo_add) const
 
long get_si_exp (long &expo) const
 
int cmp (const FP_NR< long double > &b) const
 
int cmp (double b) const
 
int sgn () const
 
FP_NR< long double > & operator= (const FP_NR< long double > &f)
 
FP_NR< long double > & operator= (double d)
 
FP_NR< long double > & operator= (const char *s)
 
bool operator<= (const FP_NR< long double > &a) const
 
bool operator<= (double a) const
 
bool operator>= (const FP_NR< long double > &a) const
 
bool operator>= (double a) const
 
bool operator< (const FP_NR< long double > &a) const
 
bool operator< (double a) const
 
bool operator> (const FP_NR< long double > &a) const
 
bool operator> (double a) const
 
bool is_zero () const
 
int is_nan () const
 
int is_finite () const
 
void add (const FP_NR< long double > &b, const FP_NR< long double > &c, mp_rnd_t)
 
void sub (const FP_NR< long double > &b, const FP_NR< long double > &c, mp_rnd_t)
 
void mul (const FP_NR< long double > &b, const FP_NR< long double > &c, mp_rnd_t)
 
void mul_d (const FP_NR< long double > &b, const double c, mp_rnd_t)
 
void mul_2si (const FP_NR< long double > &b, long c)
 
void div (const FP_NR< long double > &b, const FP_NR< long double > &c, mp_rnd_t)
 
void addmul (const FP_NR< long double > &b, const FP_NR< long double > &c, mp_rnd_t)
 
void submul (const FP_NR< long double > &b, const FP_NR< long double > &c, mp_rnd_t)
 
void pow_si (const FP_NR< long double > &a, long b, mp_rnd_t)
 
void exponential (const FP_NR< long double > &a, mp_rnd_t)
 
void log (const FP_NR< long double > &a, mp_rnd_t)
 
void sqrt (const FP_NR< long double > &s, mp_rnd_t)
 
void root (const FP_NR< long double > &a, unsigned int k, mp_rnd_t)
 
void neg (const FP_NR< long double > &b)
 
void abs (const FP_NR< long double > &b)
 
void rnd (const FP_NR< long double > &b)
 
void rnd_we (const FP_NR< long double > &b, long expo_add)
 
void floor (const FP_NR< long double > &b)
 
void ceil (const FP_NR< long double > &b)
 
void set_nan ()
 
void swap (FP_NR< long double > &a)
 
void hypot (const FP_NR< long double > &a, const FP_NR< long double > &b, mp_rnd_t)
 
FPLLL_BEGIN_NAMESPACE void set_z (const Z_NR< mpz_t > &a, mp_rnd_t)
 
void get_z_exp_we (Z_NR< mpz_t > &a, long &expo, long expo_add) const
 
void get_z_exp (Z_NR< Z > &a, long &expo) const
 
FPLLL_BEGIN_NAMESPACE FP_NR ()
 
 FP_NR (const FP_NR< qd_real > &f)
 
 ~FP_NR ()
 
unsigned int get_prec ()
 
unsigned int set_prec (unsigned int)
 
double get_d (mp_rnd_t) const
 
void get_mpfr (mpfr_t r, mp_rnd_t rnd) const
 
void set_mpfr (mpfr_t r, mp_rnd_t rnd)
 
long get_si () const
 
long exponent () const
 
long get_si_exp_we (long &expo, long expo_add) const
 
long get_si_exp (long &expo) const
 
int cmp (const FP_NR< qd_real > &b) const
 
int cmp (double b) const
 
int sgn () const
 
FP_NR< qd_real > & operator= (const FP_NR< qd_real > &f)
 
FP_NR< qd_real > & operator= (double d)
 
FP_NR< qd_real > & operator= (const char *s)
 
bool operator<= (const FP_NR< qd_real > &a) const
 
bool operator<= (double a) const
 
bool operator>= (const FP_NR< qd_real > &a) const
 
bool operator>= (double a) const
 
bool operator< (const FP_NR< qd_real > &a) const
 
bool operator< (double a) const
 
bool operator> (const FP_NR< qd_real > &a) const
 
bool operator> (double a) const
 
bool is_zero () const
 
int is_nan () const
 
int is_finite () const
 
void add (const FP_NR< qd_real > &b, const FP_NR< qd_real > &c, mp_rnd_t)
 
void sub (const FP_NR< qd_real > &b, const FP_NR< qd_real > &c, mp_rnd_t)
 
void mul (const FP_NR< qd_real > &b, const FP_NR< qd_real > &c, mp_rnd_t)
 
void mul_d (const FP_NR< qd_real > &b, const double c, mp_rnd_t)
 
void mul_2si (const FP_NR< qd_real > &b, long c)
 
void div (const FP_NR< qd_real > &a, const FP_NR< qd_real > &b, mp_rnd_t)
 
void addmul (const FP_NR< qd_real > &b, const FP_NR< qd_real > &c, mp_rnd_t)
 
void submul (const FP_NR< qd_real > &b, const FP_NR< qd_real > &c, mp_rnd_t)
 
void pow_si (const FP_NR< qd_real > &a, long b, mp_rnd_t)
 
void exponential (const FP_NR< qd_real > &a, mp_rnd_t)
 
void log (const FP_NR< qd_real > &a, mp_rnd_t)
 
void sqrt (const FP_NR< qd_real > &a, mp_rnd_t)
 
void root (const FP_NR< qd_real > &a, unsigned int k, mp_rnd_t)
 
void neg (const FP_NR< qd_real > &b)
 
void abs (const FP_NR< qd_real > &b)
 
void rnd (const FP_NR< qd_real > &b)
 
void rnd_we (const FP_NR< qd_real > &b, long expo_add)
 
void floor (const FP_NR< qd_real > &b)
 
void ceil (const FP_NR< qd_real > &b)
 
void set_nan ()
 
void swap (FP_NR< qd_real > &a)
 
void hypot (const FP_NR< qd_real > &a, const FP_NR< qd_real > &b, mp_rnd_t)
 

Static Public Member Functions

static unsigned int get_prec ()
 
static unsigned int set_prec (unsigned int prec)
 

Detailed Description

template<class F = mpfr_t>
class FP_NR< F >

FP_NR stores floating-point numbers. This template provides a uniform interface for doing floating-point computations with several underlying types (double, dpe_t and mpfr_t). For all functions, the rounding mode rnd is ignored unless F=mpfr_t.

Constructor & Destructor Documentation

◆ FP_NR() [1/12]

template<class F = mpfr_t>
FP_NR< F >::FP_NR ( )
inline

Constructors.

◆ FP_NR() [2/12]

template<class F = mpfr_t>
FP_NR< F >::FP_NR ( const FP_NR< F > &  f)
inline

◆ ~FP_NR() [1/5]

template<class F = mpfr_t>
FP_NR< F >::~FP_NR ( )
inline

◆ FP_NR() [3/12]

template<class F = mpfr_t>
FP_NR< F >::FP_NR ( const double  d)
inline

◆ FP_NR() [4/12]

template<class F = mpfr_t>
FP_NR< F >::FP_NR ( const char *  s)
inline

◆ FP_NR() [5/12]

FPLLL_BEGIN_NAMESPACE FP_NR< double >::FP_NR ( )
inline

◆ FP_NR() [6/12]

FP_NR< double >::FP_NR ( const FP_NR< double > &  f)
inline

◆ ~FP_NR() [2/5]

FP_NR< double >::~FP_NR ( )
inline

◆ FP_NR() [7/12]

FPLLL_BEGIN_NAMESPACE FP_NR< dd_real >::FP_NR ( )
inline

◆ FP_NR() [8/12]

FP_NR< dd_real >::FP_NR ( const FP_NR< dd_real > &  f)
inline

◆ ~FP_NR() [3/5]

FP_NR< dd_real >::~FP_NR ( )
inline

◆ FP_NR() [9/12]

FPLLL_BEGIN_NAMESPACE FP_NR< longdouble >::FP_NR ( )
inline

◆ FP_NR() [10/12]

FP_NR< longdouble >::FP_NR ( const FP_NR< long double > &  f)
inline

◆ ~FP_NR() [4/5]

FP_NR< longdouble >::~FP_NR ( )
inline

◆ FP_NR() [11/12]

FPLLL_BEGIN_NAMESPACE FP_NR< qd_real >::FP_NR ( )
inline

◆ FP_NR() [12/12]

FP_NR< qd_real >::FP_NR ( const FP_NR< qd_real > &  f)
inline

◆ ~FP_NR() [5/5]

FP_NR< qd_real >::~FP_NR ( )
inline

Member Function Documentation

◆ abs() [1/5]

void FP_NR< dd_real >::abs ( const FP_NR< dd_real > &  b)
inline

◆ abs() [2/5]

void FP_NR< double >::abs ( const FP_NR< double > &  b)
inline

◆ abs() [3/5]

template<class F = mpfr_t>
void FP_NR< F >::abs ( const FP_NR< F > &  b)
inline

value := absolute value of b.

◆ abs() [4/5]

void FP_NR< longdouble >::abs ( const FP_NR< long double > &  b)
inline

◆ abs() [5/5]

void FP_NR< qd_real >::abs ( const FP_NR< qd_real > &  b)
inline

◆ add() [1/5]

void FP_NR< dd_real >::add ( const FP_NR< dd_real > &  b,
const FP_NR< dd_real > &  c,
mp_rnd_t   
)
inline

◆ add() [2/5]

void FP_NR< double >::add ( const FP_NR< double > &  b,
const FP_NR< double > &  c,
mp_rnd_t   
)
inline

◆ add() [3/5]

template<class F = mpfr_t>
void FP_NR< F >::add ( const FP_NR< F > &  a,
const FP_NR< F > &  b,
mp_rnd_t  rnd = GMP_RNDN 
)
inline

arithmetic value := a + b.

◆ add() [4/5]

void FP_NR< longdouble >::add ( const FP_NR< long double > &  b,
const FP_NR< long double > &  c,
mp_rnd_t   
)
inline

◆ add() [5/5]

void FP_NR< qd_real >::add ( const FP_NR< qd_real > &  b,
const FP_NR< qd_real > &  c,
mp_rnd_t   
)
inline

◆ addmul() [1/5]

void FP_NR< dd_real >::addmul ( const FP_NR< dd_real > &  b,
const FP_NR< dd_real > &  c,
mp_rnd_t   
)
inline

◆ addmul() [2/5]

void FP_NR< double >::addmul ( const FP_NR< double > &  b,
const FP_NR< double > &  c,
mp_rnd_t   
)
inline

◆ addmul() [3/5]

template<class F >
void FP_NR< F >::addmul ( const FP_NR< F > &  b,
const FP_NR< F > &  c,
mp_rnd_t  rnd = GMP_RNDN 
)
inline

value := value + a * b.

FP_NR: some generic functions.

◆ addmul() [4/5]

void FP_NR< longdouble >::addmul ( const FP_NR< long double > &  b,
const FP_NR< long double > &  c,
mp_rnd_t   
)
inline

◆ addmul() [5/5]

void FP_NR< qd_real >::addmul ( const FP_NR< qd_real > &  b,
const FP_NR< qd_real > &  c,
mp_rnd_t   
)
inline

◆ ceil() [1/5]

void FP_NR< dd_real >::ceil ( const FP_NR< dd_real > &  b)
inline

◆ ceil() [2/5]

void FP_NR< double >::ceil ( const FP_NR< double > &  b)
inline

◆ ceil() [3/5]

template<class F = mpfr_t>
void FP_NR< F >::ceil ( const FP_NR< F > &  b)
inline

value := smallest integer greater than (or equal to) b.

◆ ceil() [4/5]

void FP_NR< longdouble >::ceil ( const FP_NR< long double > &  b)
inline

◆ ceil() [5/5]

void FP_NR< qd_real >::ceil ( const FP_NR< qd_real > &  b)
inline

◆ cmp() [1/10]

int FP_NR< dd_real >::cmp ( const FP_NR< dd_real > &  b) const
inline

◆ cmp() [2/10]

int FP_NR< double >::cmp ( const FP_NR< double > &  b) const
inline

◆ cmp() [3/10]

template<class F = mpfr_t>
int FP_NR< F >::cmp ( const FP_NR< F > &  b) const
inline

comparison 3-way comparison. Returns a positive number if *this > b, a negative number if *this < b or zero is *this == b.

◆ cmp() [4/10]

int FP_NR< longdouble >::cmp ( const FP_NR< long double > &  b) const
inline

◆ cmp() [5/10]

int FP_NR< qd_real >::cmp ( const FP_NR< qd_real > &  b) const
inline

◆ cmp() [6/10]

int FP_NR< double >::cmp ( double  b) const
inline

◆ cmp() [7/10]

int FP_NR< dd_real >::cmp ( double  b) const
inline

◆ cmp() [8/10]

int FP_NR< longdouble >::cmp ( double  b) const
inline

◆ cmp() [9/10]

int FP_NR< qd_real >::cmp ( double  b) const
inline

◆ cmp() [10/10]

template<class F = mpfr_t>
int FP_NR< F >::cmp ( double  d) const
inline

3-way comparison. Returns a positive number if *this > d, a negative number if *this < d or zero is *this == d.

◆ div() [1/5]

void FP_NR< dd_real >::div ( const FP_NR< dd_real > &  a,
const FP_NR< dd_real > &  b,
mp_rnd_t   
)
inline

◆ div() [2/5]

void FP_NR< double >::div ( const FP_NR< double > &  b,
const FP_NR< double > &  c,
mp_rnd_t   
)
inline

◆ div() [3/5]

template<class F = mpfr_t>
void FP_NR< F >::div ( const FP_NR< F > &  a,
const FP_NR< F > &  b,
mp_rnd_t  rnd = GMP_RNDN 
)
inline

value := a / b.

◆ div() [4/5]

void FP_NR< longdouble >::div ( const FP_NR< long double > &  b,
const FP_NR< long double > &  c,
mp_rnd_t   
)
inline

◆ div() [5/5]

void FP_NR< qd_real >::div ( const FP_NR< qd_real > &  a,
const FP_NR< qd_real > &  b,
mp_rnd_t   
)
inline

◆ div_d()

template<class F = mpfr_t>
void FP_NR< F >::div_d ( const FP_NR< F > &  a,
const double  b,
mp_rnd_t  rnd = GMP_RNDN 
)
inline

value := a / b.

◆ exponent() [1/5]

template<class F = mpfr_t>
long FP_NR< F >::exponent ( ) const
inline

Returns expo such value 2^(expo-1) <= value < 2^expo (expo = floor(abs(log2(abs(value)))) + 1). The return value is undefined if *this == 0.

◆ exponent() [2/5]

long FP_NR< double >::exponent ( ) const
inline

◆ exponent() [3/5]

long FP_NR< dd_real >::exponent ( ) const
inline

◆ exponent() [4/5]

long FP_NR< longdouble >::exponent ( ) const
inline

◆ exponent() [5/5]

long FP_NR< qd_real >::exponent ( ) const
inline

◆ exponential() [1/5]

void FP_NR< dd_real >::exponential ( const FP_NR< dd_real > &  a,
mp_rnd_t   
)
inline

◆ exponential() [2/5]

void FP_NR< double >::exponential ( const FP_NR< double > &  a,
mp_rnd_t   
)
inline

◆ exponential() [3/5]

template<class F = mpfr_t>
void FP_NR< F >::exponential ( const FP_NR< F > &  b,
mp_rnd_t  rnd = GMP_RNDN 
)
inline

value := e^b.

◆ exponential() [4/5]

void FP_NR< longdouble >::exponential ( const FP_NR< long double > &  a,
mp_rnd_t   
)
inline

◆ exponential() [5/5]

void FP_NR< qd_real >::exponential ( const FP_NR< qd_real > &  a,
mp_rnd_t   
)
inline

◆ floor() [1/5]

void FP_NR< dd_real >::floor ( const FP_NR< dd_real > &  b)
inline

◆ floor() [2/5]

void FP_NR< double >::floor ( const FP_NR< double > &  b)
inline

◆ floor() [3/5]

template<class F = mpfr_t>
void FP_NR< F >::floor ( const FP_NR< F > &  b)
inline

value := largest integer not greater than b.

◆ floor() [4/5]

void FP_NR< longdouble >::floor ( const FP_NR< long double > &  b)
inline

◆ floor() [5/5]

void FP_NR< qd_real >::floor ( const FP_NR< qd_real > &  b)
inline

◆ get_d() [1/5]

template<class F = mpfr_t>
double FP_NR< F >::get_d ( mp_rnd_t  rnd = GMP_RNDN) const
inline

Converts this object to a double. If it does not fit in a double, the result is undefined.

◆ get_d() [2/5]

double FP_NR< double >::get_d ( mp_rnd_t  ) const
inline

◆ get_d() [3/5]

double FP_NR< dd_real >::get_d ( mp_rnd_t  ) const
inline

◆ get_d() [4/5]

double FP_NR< longdouble >::get_d ( mp_rnd_t  ) const
inline

◆ get_d() [5/5]

double FP_NR< qd_real >::get_d ( mp_rnd_t  ) const
inline

◆ get_data() [1/2]

template<class F = mpfr_t>
F & FP_NR< F >::get_data ( )
inline

get data Returns the internal representation of the data.

◆ get_data() [2/2]

template<class F = mpfr_t>
const F & FP_NR< F >::get_data ( ) const
inline

Returns the internal representation of the data.

◆ get_mpfr() [1/5]

void FP_NR< double >::get_mpfr ( mpfr_t  r,
mp_rnd_t  rnd 
) const
inline

◆ get_mpfr() [2/5]

void FP_NR< dd_real >::get_mpfr ( mpfr_t  r,
mp_rnd_t  rnd 
) const
inline

◆ get_mpfr() [3/5]

void FP_NR< longdouble >::get_mpfr ( mpfr_t  r,
mp_rnd_t  rnd 
) const
inline

◆ get_mpfr() [4/5]

void FP_NR< qd_real >::get_mpfr ( mpfr_t  r,
mp_rnd_t  rnd 
) const
inline

◆ get_mpfr() [5/5]

template<class F = mpfr_t>
void FP_NR< F >::get_mpfr ( mpfr_t  r,
mp_rnd_t  rnd = GMP_RNDN 
) const
inline

Convert this object to a mpfr_t r.

◆ get_prec() [1/5]

template<class F = mpfr_t>
static unsigned int FP_NR< F >::get_prec ( )
inlinestatic

Returns the current precision for new FP_NR<F> objects.

◆ get_prec() [2/5]

unsigned int FP_NR< double >::get_prec ( )
inline

◆ get_prec() [3/5]

unsigned int FP_NR< dd_real >::get_prec ( )
inline

◆ get_prec() [4/5]

unsigned int FP_NR< longdouble >::get_prec ( )
inline

◆ get_prec() [5/5]

unsigned int FP_NR< qd_real >::get_prec ( )
inline

◆ get_si() [1/5]

template<class F = mpfr_t>
long FP_NR< F >::get_si ( ) const
inline

Converts this object to a long. The rounding direction is undefined. If it does not fit in a long, the result is undefined.

◆ get_si() [2/5]

long FP_NR< double >::get_si ( ) const
inline

◆ get_si() [3/5]

long FP_NR< dd_real >::get_si ( ) const
inline

◆ get_si() [4/5]

long FP_NR< longdouble >::get_si ( ) const
inline

◆ get_si() [5/5]

long FP_NR< qd_real >::get_si ( ) const
inline

◆ get_si_exp() [1/5]

template<class F = mpfr_t>
long FP_NR< F >::get_si_exp ( long &  expo) const
inline

Returns x and defines expo such that trunc(value) ~= x * 2^expo. The '~=' is an equality if trunc(value) <= LONG_MAX. expo is the minimum non-negative value such that |x| <= LONG_MAX. (x is the largest among all possible |x| <= LONG_MAX).

◆ get_si_exp() [2/5]

long FP_NR< double >::get_si_exp ( long &  expo) const
inline

◆ get_si_exp() [3/5]

long FP_NR< dd_real >::get_si_exp ( long &  expo) const
inline

◆ get_si_exp() [4/5]

long FP_NR< longdouble >::get_si_exp ( long &  expo) const
inline

◆ get_si_exp() [5/5]

long FP_NR< qd_real >::get_si_exp ( long &  expo) const
inline

◆ get_si_exp_we() [1/5]

template<class F = mpfr_t>
long FP_NR< F >::get_si_exp_we ( long &  expo,
long  expo_add 
) const
inline

Returns x and defines expo such that trunc(value * 2^expo_add) ~= x * 2^expo The '~=' is an equality if trunc(value * 2^expo_add) <= LONG_MAX. expo is the minimum non-negative value such that x <= LONG_MAX. expo_add must be 0 if T=dpe_t or T=mpfr_t.

◆ get_si_exp_we() [2/5]

long FP_NR< double >::get_si_exp_we ( long &  expo,
long  expo_add 
) const
inline

◆ get_si_exp_we() [3/5]

long FP_NR< dd_real >::get_si_exp_we ( long &  expo,
long  expo_add 
) const
inline

◆ get_si_exp_we() [4/5]

long FP_NR< longdouble >::get_si_exp_we ( long &  expo,
long  expo_add 
) const
inline

◆ get_si_exp_we() [5/5]

long FP_NR< qd_real >::get_si_exp_we ( long &  expo,
long  expo_add 
) const
inline

◆ get_z_exp() [1/2]

template<class F = mpfr_t>
template<class Z >
void FP_NR< F >::get_z_exp ( Z_NR< Z > &  a,
long &  expo 
) const
inline

Computes a and expo such that trunc(value) ~= a * 2^expo. The '~=' is an equality if Z=mpz_t. expo is always non-negative. Note that expo might be very close to LONG_MAX when value = 0. (in nr_FP_misc.h)

◆ get_z_exp() [2/2]

void FP_NR< double >::get_z_exp ( Z_NR< Z > &  a,
long &  expo 
) const
inline

get_z_exp_we (from double to Z_NR<class Z>)

◆ get_z_exp_we() [1/2]

void FP_NR< double >::get_z_exp_we ( Z_NR< mpz_t > &  a,
long &  expo,
long  expo_add 
) const
inline

get_z_exp_we (from double to default mpz_t Z_NR<mpz_t>)

◆ get_z_exp_we() [2/2]

template<class F = mpfr_t>
template<class Z >
void FP_NR< F >::get_z_exp_we ( Z_NR< Z > &  a,
long &  expo,
long  expo_add 
) const
inline

Computes a and expo such that trunc(value) * 2^expo_add ~= a * 2^expo. The '~=' is an equality if Z=mpz_t. expo is always non-negative. expo_add must be 0 if T=dpe_t or T=mpfr_t. (in nr_FP_misc.h)

◆ hypot() [1/5]

void FP_NR< dd_real >::hypot ( const FP_NR< dd_real > &  a,
const FP_NR< dd_real > &  b,
mp_rnd_t   
)
inline

◆ hypot() [2/5]

void FP_NR< double >::hypot ( const FP_NR< double > &  a,
const FP_NR< double > &  b,
mp_rnd_t   
)
inline

◆ hypot() [3/5]

template<class F = mpfr_t>
void FP_NR< F >::hypot ( const FP_NR< F > &  a,
const FP_NR< F > &  b,
mp_rnd_t  rnd = GMP_RNDN 
)
inline

value := sqrt(a^2 + b^2). Needed for givens rotations

◆ hypot() [4/5]

void FP_NR< longdouble >::hypot ( const FP_NR< long double > &  a,
const FP_NR< long double > &  b,
mp_rnd_t   
)
inline

◆ hypot() [5/5]

void FP_NR< qd_real >::hypot ( const FP_NR< qd_real > &  a,
const FP_NR< qd_real > &  b,
mp_rnd_t   
)
inline

◆ is_finite() [1/5]

template<class F = mpfr_t>
int FP_NR< F >::is_finite ( ) const
inline

Returns non-zero if !isnan(value) and !isinf(value), 0 otherwise.

◆ is_finite() [2/5]

int FP_NR< double >::is_finite ( ) const
inline

◆ is_finite() [3/5]

int FP_NR< dd_real >::is_finite ( ) const
inline

◆ is_finite() [4/5]

int FP_NR< longdouble >::is_finite ( ) const
inline

◆ is_finite() [5/5]

int FP_NR< qd_real >::is_finite ( ) const
inline

◆ is_nan() [1/5]

template<class F = mpfr_t>
int FP_NR< F >::is_nan ( ) const
inline

Returns non-zero if the current value is NaN, 0 otherwise.

◆ is_nan() [2/5]

int FP_NR< double >::is_nan ( ) const
inline

◆ is_nan() [3/5]

int FP_NR< dd_real >::is_nan ( ) const
inline

◆ is_nan() [4/5]

int FP_NR< longdouble >::is_nan ( ) const
inline

◆ is_nan() [5/5]

int FP_NR< qd_real >::is_nan ( ) const
inline

◆ is_zero() [1/5]

template<class F = mpfr_t>
bool FP_NR< F >::is_zero ( ) const
inline

Returns non-zero if the current value is zero, 0 otherwise.

◆ is_zero() [2/5]

bool FP_NR< double >::is_zero ( ) const
inline

◆ is_zero() [3/5]

bool FP_NR< dd_real >::is_zero ( ) const
inline

◆ is_zero() [4/5]

bool FP_NR< longdouble >::is_zero ( ) const
inline

◆ is_zero() [5/5]

bool FP_NR< qd_real >::is_zero ( ) const
inline

◆ log() [1/5]

void FP_NR< dd_real >::log ( const FP_NR< dd_real > &  a,
mp_rnd_t   
)
inline

◆ log() [2/5]

void FP_NR< double >::log ( const FP_NR< double > &  a,
mp_rnd_t   
)
inline

◆ log() [3/5]

template<class F = mpfr_t>
void FP_NR< F >::log ( const FP_NR< F > &  a,
mp_rnd_t  rnd = GMP_RNDN 
)
inline

value := natural logarithm of a.

◆ log() [4/5]

void FP_NR< longdouble >::log ( const FP_NR< long double > &  a,
mp_rnd_t   
)
inline

◆ log() [5/5]

void FP_NR< qd_real >::log ( const FP_NR< qd_real > &  a,
mp_rnd_t   
)
inline

◆ max_f()

template<class F = mpfr_t>
FP_NR & FP_NR< F >::max_f ( FP_NR< F > &  b)
inline

max between a and b

◆ mul() [1/5]

void FP_NR< dd_real >::mul ( const FP_NR< dd_real > &  b,
const FP_NR< dd_real > &  c,
mp_rnd_t   
)
inline

◆ mul() [2/5]

void FP_NR< double >::mul ( const FP_NR< double > &  b,
const FP_NR< double > &  c,
mp_rnd_t   
)
inline

◆ mul() [3/5]

template<class F = mpfr_t>
void FP_NR< F >::mul ( const FP_NR< F > &  a,
const FP_NR< F > &  b,
mp_rnd_t  rnd = GMP_RNDN 
)
inline

value := a * b.

◆ mul() [4/5]

void FP_NR< longdouble >::mul ( const FP_NR< long double > &  b,
const FP_NR< long double > &  c,
mp_rnd_t   
)
inline

◆ mul() [5/5]

void FP_NR< qd_real >::mul ( const FP_NR< qd_real > &  b,
const FP_NR< qd_real > &  c,
mp_rnd_t   
)
inline

◆ mul_2si() [1/5]

void FP_NR< dd_real >::mul_2si ( const FP_NR< dd_real > &  b,
long  c 
)
inline

◆ mul_2si() [2/5]

void FP_NR< double >::mul_2si ( const FP_NR< double > &  b,
long  c 
)
inline

◆ mul_2si() [3/5]

template<class F = mpfr_t>
void FP_NR< F >::mul_2si ( const FP_NR< F > &  a,
long  b 
)
inline

value := a * 2^b.

◆ mul_2si() [4/5]

void FP_NR< longdouble >::mul_2si ( const FP_NR< long double > &  b,
long  c 
)
inline

◆ mul_2si() [5/5]

void FP_NR< qd_real >::mul_2si ( const FP_NR< qd_real > &  b,
long  c 
)
inline

◆ mul_d() [1/5]

void FP_NR< dd_real >::mul_d ( const FP_NR< dd_real > &  b,
const double  c,
mp_rnd_t   
)
inline

◆ mul_d() [2/5]

void FP_NR< double >::mul_d ( const FP_NR< double > &  b,
const double  c,
mp_rnd_t   
)
inline

◆ mul_d() [3/5]

template<class F = mpfr_t>
void FP_NR< F >::mul_d ( const FP_NR< F > &  a,
const double  b,
mp_rnd_t  rnd = GMP_RNDN 
)
inline

value := a * b where b is double.

◆ mul_d() [4/5]

void FP_NR< longdouble >::mul_d ( const FP_NR< long double > &  b,
const double  c,
mp_rnd_t   
)
inline

◆ mul_d() [5/5]

void FP_NR< qd_real >::mul_d ( const FP_NR< qd_real > &  b,
const double  c,
mp_rnd_t   
)
inline

◆ mul_mpfr()

template<class F = mpfr_t>
void FP_NR< F >::mul_mpfr ( const FP_NR< mpfr_t > &  a,
const mpfr_t  b,
mp_rnd_t  rnd = GMP_RNDN 
)
inline

value := a * b where b is mpfr_t.

◆ neg() [1/5]

void FP_NR< dd_real >::neg ( const FP_NR< dd_real > &  b)
inline

◆ neg() [2/5]

void FP_NR< double >::neg ( const FP_NR< double > &  b)
inline

◆ neg() [3/5]

template<class F = mpfr_t>
void FP_NR< F >::neg ( const FP_NR< F > &  b)
inline

value := -b.

◆ neg() [4/5]

void FP_NR< longdouble >::neg ( const FP_NR< long double > &  b)
inline

◆ neg() [5/5]

void FP_NR< qd_real >::neg ( const FP_NR< qd_real > &  b)
inline

◆ operator!=() [1/2]

template<class F = mpfr_t>
bool FP_NR< F >::operator!= ( const FP_NR< F > &  a) const
inline

◆ operator!=() [2/2]

template<class F = mpfr_t>
bool FP_NR< F >::operator!= ( double  a) const
inline

◆ operator*=() [1/2]

template<class F = mpfr_t>
FP_NR< F > & FP_NR< F >::operator*= ( const double  a)
inline

◆ operator*=() [2/2]

template<class F = mpfr_t>
FP_NR< F > & FP_NR< F >::operator*= ( const FP_NR< F > &  a)
inline

◆ operator+=() [1/2]

template<class F = mpfr_t>
FP_NR< F > & FP_NR< F >::operator+= ( const double  a)
inline

◆ operator+=() [2/2]

template<class F = mpfr_t>
FP_NR< F > & FP_NR< F >::operator+= ( const FP_NR< F > &  a)
inline

◆ operator-()

template<class F = mpfr_t>
FP_NR< F > FP_NR< F >::operator- ( ) const
inline

◆ operator-=() [1/2]

template<class F = mpfr_t>
FP_NR< F > & FP_NR< F >::operator-= ( const double  a)
inline

◆ operator-=() [2/2]

template<class F = mpfr_t>
FP_NR< F > & FP_NR< F >::operator-= ( const FP_NR< F > &  a)
inline

◆ operator/=() [1/2]

template<class F = mpfr_t>
FP_NR< F > & FP_NR< F >::operator/= ( const double  a)
inline

◆ operator/=() [2/2]

template<class F = mpfr_t>
FP_NR< F > & FP_NR< F >::operator/= ( const FP_NR< F > &  a)
inline

◆ operator<() [1/10]

bool FP_NR< dd_real >::operator< ( const FP_NR< dd_real > &  a) const
inline

◆ operator<() [2/10]

bool FP_NR< double >::operator< ( const FP_NR< double > &  a) const
inline

◆ operator<() [3/10]

template<class F >
bool FP_NR< F >::operator< ( const FP_NR< F > &  a) const
inline

◆ operator<() [4/10]

bool FP_NR< long double >::operator< ( const FP_NR< long double > &  a) const
inline

◆ operator<() [5/10]

bool FP_NR< qd_real >::operator< ( const FP_NR< qd_real > &  a) const
inline

◆ operator<() [6/10]

template<class F >
bool FP_NR< F >::operator< ( double  a) const
inline

◆ operator<() [7/10]

bool FP_NR< double >::operator< ( double  a) const
inline

◆ operator<() [8/10]

bool FP_NR< dd_real >::operator< ( double  a) const
inline

◆ operator<() [9/10]

bool FP_NR< long double >::operator< ( double  a) const
inline

◆ operator<() [10/10]

bool FP_NR< qd_real >::operator< ( double  a) const
inline

◆ operator<=() [1/10]

bool FP_NR< dd_real >::operator<= ( const FP_NR< dd_real > &  a) const
inline

◆ operator<=() [2/10]

bool FP_NR< double >::operator<= ( const FP_NR< double > &  a) const
inline

◆ operator<=() [3/10]

template<class F = mpfr_t>
bool FP_NR< F >::operator<= ( const FP_NR< F > &  a) const
inline

◆ operator<=() [4/10]

bool FP_NR< long double >::operator<= ( const FP_NR< long double > &  a) const
inline

◆ operator<=() [5/10]

bool FP_NR< qd_real >::operator<= ( const FP_NR< qd_real > &  a) const
inline

◆ operator<=() [6/10]

template<class F = mpfr_t>
bool FP_NR< F >::operator<= ( double  a) const
inline

◆ operator<=() [7/10]

bool FP_NR< double >::operator<= ( double  a) const
inline

◆ operator<=() [8/10]

bool FP_NR< dd_real >::operator<= ( double  a) const
inline

◆ operator<=() [9/10]

bool FP_NR< long double >::operator<= ( double  a) const
inline

◆ operator<=() [10/10]

bool FP_NR< qd_real >::operator<= ( double  a) const
inline

◆ operator=() [1/16]

template<class F = mpfr_t>
FP_NR< F > & FP_NR< F >::operator= ( const char *  s)
inline

◆ operator=() [2/16]

FP_NR< double > & FP_NR< double >::operator= ( const char *  s)
inline

◆ operator=() [3/16]

FP_NR< dd_real > & FP_NR< dd_real >::operator= ( const char *  s)
inline

◆ operator=() [4/16]

FP_NR< long double > & FP_NR< longdouble >::operator= ( const char *  s)
inline

◆ operator=() [5/16]

FP_NR< qd_real > & FP_NR< qd_real >::operator= ( const char *  s)
inline

◆ operator=() [6/16]

FP_NR< dd_real > & FP_NR< dd_real >::operator= ( const FP_NR< dd_real > &  a)
inline

◆ operator=() [7/16]

FP_NR< double > & FP_NR< double >::operator= ( const FP_NR< double > &  f)
inline

◆ operator=() [8/16]

template<class F = mpfr_t>
FP_NR< F > & FP_NR< F >::operator= ( const FP_NR< F > &  a)
inline

Operator

◆ operator=() [9/16]

FP_NR< long double > & FP_NR< longdouble >::operator= ( const FP_NR< long double > &  f)
inline

◆ operator=() [10/16]

FP_NR< qd_real > & FP_NR< qd_real >::operator= ( const FP_NR< qd_real > &  f)
inline

◆ operator=() [11/16]

template<class F = mpfr_t>
FP_NR< F > & FP_NR< F >::operator= ( double  a)
inline

◆ operator=() [12/16]

FP_NR< dd_real > & FP_NR< dd_real >::operator= ( double  a)
inline

◆ operator=() [13/16]

FP_NR< double > & FP_NR< double >::operator= ( double  d)
inline

◆ operator=() [14/16]

FP_NR< long double > & FP_NR< longdouble >::operator= ( double  d)
inline

◆ operator=() [15/16]

FP_NR< qd_real > & FP_NR< qd_real >::operator= ( double  d)
inline

◆ operator=() [16/16]

template<class F = mpfr_t>
FP_NR< F > & FP_NR< F >::operator= ( mpfr_t &  a)
inline

◆ operator==() [1/2]

template<class F = mpfr_t>
bool FP_NR< F >::operator== ( const FP_NR< F > &  a) const
inline

◆ operator==() [2/2]

template<class F = mpfr_t>
bool FP_NR< F >::operator== ( double  a) const
inline

◆ operator>() [1/10]

bool FP_NR< dd_real >::operator> ( const FP_NR< dd_real > &  a) const
inline

◆ operator>() [2/10]

bool FP_NR< double >::operator> ( const FP_NR< double > &  a) const
inline

◆ operator>() [3/10]

template<class F >
bool FP_NR< F >::operator> ( const FP_NR< F > &  a) const
inline

◆ operator>() [4/10]

bool FP_NR< longdouble >::operator> ( const FP_NR< long double > &  a) const
inline

◆ operator>() [5/10]

bool FP_NR< qd_real >::operator> ( const FP_NR< qd_real > &  a) const
inline

◆ operator>() [6/10]

template<class F >
bool FP_NR< F >::operator> ( double  a) const
inline

◆ operator>() [7/10]

bool FP_NR< double >::operator> ( double  a) const
inline

◆ operator>() [8/10]

bool FP_NR< dd_real >::operator> ( double  a) const
inline

◆ operator>() [9/10]

bool FP_NR< longdouble >::operator> ( double  a) const
inline

◆ operator>() [10/10]

bool FP_NR< qd_real >::operator> ( double  a) const
inline

◆ operator>=() [1/10]

bool FP_NR< dd_real >::operator>= ( const FP_NR< dd_real > &  a) const
inline

◆ operator>=() [2/10]

bool FP_NR< double >::operator>= ( const FP_NR< double > &  a) const
inline

◆ operator>=() [3/10]

template<class F = mpfr_t>
bool FP_NR< F >::operator>= ( const FP_NR< F > &  a) const
inline

◆ operator>=() [4/10]

bool FP_NR< longdouble >::operator>= ( const FP_NR< long double > &  a) const
inline

◆ operator>=() [5/10]

bool FP_NR< qd_real >::operator>= ( const FP_NR< qd_real > &  a) const
inline

◆ operator>=() [6/10]

template<class F = mpfr_t>
bool FP_NR< F >::operator>= ( double  a) const
inline

◆ operator>=() [7/10]

bool FP_NR< double >::operator>= ( double  a) const
inline

◆ operator>=() [8/10]

bool FP_NR< dd_real >::operator>= ( double  a) const
inline

◆ operator>=() [9/10]

bool FP_NR< longdouble >::operator>= ( double  a) const
inline

◆ operator>=() [10/10]

bool FP_NR< qd_real >::operator>= ( double  a) const
inline

◆ pow_si() [1/5]

void FP_NR< dd_real >::pow_si ( const FP_NR< dd_real > &  a,
long  b,
mp_rnd_t   
)
inline

◆ pow_si() [2/5]

void FP_NR< double >::pow_si ( const FP_NR< double > &  a,
long  b,
mp_rnd_t   
)
inline

◆ pow_si() [3/5]

template<class F = mpfr_t>
void FP_NR< F >::pow_si ( const FP_NR< F > &  a,
long  b,
mp_rnd_t  rnd = GMP_RNDN 
)
inline

value := a^b.

◆ pow_si() [4/5]

void FP_NR< longdouble >::pow_si ( const FP_NR< long double > &  a,
long  b,
mp_rnd_t   
)
inline

◆ pow_si() [5/5]

void FP_NR< qd_real >::pow_si ( const FP_NR< qd_real > &  a,
long  b,
mp_rnd_t   
)
inline

◆ rnd() [1/5]

void FP_NR< dd_real >::rnd ( const FP_NR< dd_real > &  b)
inline

◆ rnd() [2/5]

void FP_NR< double >::rnd ( const FP_NR< double > &  b)
inline

◆ rnd() [3/5]

template<class F = mpfr_t>
void FP_NR< F >::rnd ( const FP_NR< F > &  b)
inline

value := rounding of b to the nearest integer.

◆ rnd() [4/5]

void FP_NR< longdouble >::rnd ( const FP_NR< long double > &  b)
inline

◆ rnd() [5/5]

void FP_NR< qd_real >::rnd ( const FP_NR< qd_real > &  b)
inline

◆ rnd_we() [1/5]

void FP_NR< dd_real >::rnd_we ( const FP_NR< dd_real > &  b,
long  expo_add 
)
inline

◆ rnd_we() [2/5]

void FP_NR< double >::rnd_we ( const FP_NR< double > &  b,
long  expo_add 
)
inline

◆ rnd_we() [3/5]

template<class F = mpfr_t>
void FP_NR< F >::rnd_we ( const FP_NR< F > &  b,
long  expo_add 
)
inline

value <- (rounding of a * 2^expo_add) / 2^expo_add, but never overflows. expo_add must be 0 if T=dpe_t or T=mpfr_t.

◆ rnd_we() [4/5]

void FP_NR< longdouble >::rnd_we ( const FP_NR< long double > &  b,
long  expo_add 
)
inline

◆ rnd_we() [5/5]

void FP_NR< qd_real >::rnd_we ( const FP_NR< qd_real > &  b,
long  expo_add 
)
inline

◆ root() [1/5]

void FP_NR< dd_real >::root ( const FP_NR< dd_real > &  a,
unsigned int  k,
mp_rnd_t   
)
inline

◆ root() [2/5]

void FP_NR< double >::root ( const FP_NR< double > &  a,
unsigned int  k,
mp_rnd_t   
)
inline

◆ root() [3/5]

template<class F = mpfr_t>
void FP_NR< F >::root ( const FP_NR< F > &  b,
unsigned int  k,
mp_rnd_t  rnd = GMP_RNDN 
)
inline

value := k-th root of b.

◆ root() [4/5]

void FP_NR< longdouble >::root ( const FP_NR< long double > &  a,
unsigned int  k,
mp_rnd_t   
)
inline

◆ root() [5/5]

void FP_NR< qd_real >::root ( const FP_NR< qd_real > &  a,
unsigned int  k,
mp_rnd_t   
)
inline

◆ set_mpfr() [1/5]

void FP_NR< double >::set_mpfr ( mpfr_t  r,
mp_rnd_t  rnd 
)
inline

◆ set_mpfr() [2/5]

void FP_NR< dd_real >::set_mpfr ( mpfr_t  r,
mp_rnd_t  rnd 
)
inline

◆ set_mpfr() [3/5]

void FP_NR< longdouble >::set_mpfr ( mpfr_t  r,
mp_rnd_t  rnd 
)
inline

◆ set_mpfr() [4/5]

void FP_NR< qd_real >::set_mpfr ( mpfr_t  r,
mp_rnd_t  rnd 
)
inline

◆ set_mpfr() [5/5]

template<class F = mpfr_t>
void FP_NR< F >::set_mpfr ( mpfr_t  r,
mp_rnd_t  rnd = GMP_RNDN 
)
inline

Convert this object from a mpfr_t r.

◆ set_nan() [1/5]

template<class F = mpfr_t>
void FP_NR< F >::set_nan ( )
inline

value := NaN.

◆ set_nan() [2/5]

void FP_NR< double >::set_nan ( )
inline

◆ set_nan() [3/5]

void FP_NR< dd_real >::set_nan ( )
inline

◆ set_nan() [4/5]

void FP_NR< longdouble >::set_nan ( )
inline

◆ set_nan() [5/5]

void FP_NR< qd_real >::set_nan ( )
inline

◆ set_prec() [1/5]

template<class F = mpfr_t>
static unsigned int FP_NR< F >::set_prec ( unsigned int  prec)
inlinestatic

Sets the precision of new FP_NR<F> objects. Returns the previous value. This has no effect is F != mpfr_t.

◆ set_prec() [2/5]

unsigned int FP_NR< double >::set_prec ( unsigned int  )
inline

◆ set_prec() [3/5]

unsigned int FP_NR< dd_real >::set_prec ( unsigned int  )
inline

◆ set_prec() [4/5]

unsigned int FP_NR< longdouble >::set_prec ( unsigned int  )
inline

◆ set_prec() [5/5]

unsigned int FP_NR< qd_real >::set_prec ( unsigned int  )
inline

◆ set_z() [1/2]

FPLLL_BEGIN_NAMESPACE void FP_NR< double >::set_z ( const Z_NR< mpz_t > &  a,
mp_rnd_t   
)
inline

set_z (from default mpz_t to double)

◆ set_z() [2/2]

template<class F = mpfr_t>
template<class Z >
void FP_NR< F >::set_z ( const Z_NR< Z > &  z,
mp_rnd_t  rnd = GMP_RNDN 
)
inline

set data Sets the value to z. (in nr_FP_misc.h)

◆ sgn() [1/5]

template<class F = mpfr_t>
int FP_NR< F >::sgn ( ) const
inline

Sign. Returns a positive number, a negative number or zero if the value of this object is respectively positive, negative or null.

◆ sgn() [2/5]

int FP_NR< double >::sgn ( ) const
inline

◆ sgn() [3/5]

int FP_NR< dd_real >::sgn ( ) const
inline

◆ sgn() [4/5]

int FP_NR< longdouble >::sgn ( ) const
inline

◆ sgn() [5/5]

int FP_NR< qd_real >::sgn ( ) const
inline

◆ sqrt() [1/5]

void FP_NR< dd_real >::sqrt ( const FP_NR< dd_real > &  a,
mp_rnd_t   
)
inline

◆ sqrt() [2/5]

void FP_NR< double >::sqrt ( const FP_NR< double > &  s,
mp_rnd_t   
)
inline

◆ sqrt() [3/5]

template<class F = mpfr_t>
void FP_NR< F >::sqrt ( const FP_NR< F > &  b,
mp_rnd_t  rnd = GMP_RNDN 
)
inline

value := square root of b.

◆ sqrt() [4/5]

void FP_NR< longdouble >::sqrt ( const FP_NR< long double > &  s,
mp_rnd_t   
)
inline

◆ sqrt() [5/5]

void FP_NR< qd_real >::sqrt ( const FP_NR< qd_real > &  a,
mp_rnd_t   
)
inline

◆ sub() [1/5]

void FP_NR< dd_real >::sub ( const FP_NR< dd_real > &  b,
const FP_NR< dd_real > &  c,
mp_rnd_t   
)
inline

◆ sub() [2/5]

void FP_NR< double >::sub ( const FP_NR< double > &  b,
const FP_NR< double > &  c,
mp_rnd_t   
)
inline

◆ sub() [3/5]

template<class F = mpfr_t>
void FP_NR< F >::sub ( const FP_NR< F > &  a,
const FP_NR< F > &  b,
mp_rnd_t  rnd = GMP_RNDN 
)
inline

value := a - b.

◆ sub() [4/5]

void FP_NR< longdouble >::sub ( const FP_NR< long double > &  b,
const FP_NR< long double > &  c,
mp_rnd_t   
)
inline

◆ sub() [5/5]

void FP_NR< qd_real >::sub ( const FP_NR< qd_real > &  b,
const FP_NR< qd_real > &  c,
mp_rnd_t   
)
inline

◆ submul() [1/5]

void FP_NR< dd_real >::submul ( const FP_NR< dd_real > &  b,
const FP_NR< dd_real > &  c,
mp_rnd_t   
)
inline

◆ submul() [2/5]

void FP_NR< double >::submul ( const FP_NR< double > &  b,
const FP_NR< double > &  c,
mp_rnd_t   
)
inline

◆ submul() [3/5]

template<class F >
void FP_NR< F >::submul ( const FP_NR< F > &  a,
const FP_NR< F > &  b,
mp_rnd_t  rnd = GMP_RNDN 
)
inline

value := value - a * b.

◆ submul() [4/5]

void FP_NR< longdouble >::submul ( const FP_NR< long double > &  b,
const FP_NR< long double > &  c,
mp_rnd_t   
)
inline

◆ submul() [5/5]

void FP_NR< qd_real >::submul ( const FP_NR< qd_real > &  b,
const FP_NR< qd_real > &  c,
mp_rnd_t   
)
inline

◆ swap() [1/5]

void FP_NR< dd_real >::swap ( FP_NR< dd_real > &  a)
inline

◆ swap() [2/5]

void FP_NR< double >::swap ( FP_NR< double > &  a)
inline

◆ swap() [3/5]

template<class F = mpfr_t>
void FP_NR< F >::swap ( FP_NR< F > &  a)
inline

Efficiently swaps the values of two FP_NR.

◆ swap() [4/5]

void FP_NR< longdouble >::swap ( FP_NR< long double > &  a)
inline

◆ swap() [5/5]

void FP_NR< qd_real >::swap ( FP_NR< qd_real > &  a)
inline

◆ zero_p()

template<class F = mpfr_t>
int FP_NR< F >::zero_p ( ) const
inline

The documentation for this class was generated from the following file: