FastPolyEval  1.0
Fast Evaluation of Real and Complex Polynomials
Macros | Typedefs | Functions
ntypes.h File Reference

Definition of basic types. More...

Go to the source code of this file.

Macros

#define true   1
 Boolean value true.
 
#define false   0
 Boolean value false.
 
#define PI   (3.14159265358979323846264338327950288L)
 \( \pi \) with fp80 precision
 
#define flog2   log2
 
#define fhypot   hypot
 
#define ffloor   floor
 
#define fpow   pow
 
#define fexp   exp
 
#define fsin   sin
 
#define fcos   cos
 
#define ftan   tan
 
#define mpfr_getf   mpfr_get_d
 
#define precf   53
 
#define PRECF_STR   "53"
 
#define TYPEFP_STR   "FP64"
 
#define TYPEF_STR   "double"
 
#define INF_M   (-HUGE_VAL)
 
#define INF_P   HUGE_VAL
 
#define FMT_COEFF   "l"
 
#define MAX_EXP   (sizeof(coeff_t) == 8 ? 960 : 16320)
 
#define HUGE_DEGREES
 
#define MAX_DEG   (UINT64_MAX - 1)
 
#define FMT_DEG   PRIu64
 
#define plog2   log2
 
#define pexp2   exp2
 
#define phypot   hypot
 
#define pfloor   floor
 
#define pceil   ceil
 
#define mpfr_getp   mpfr_get_d
 
#define PEPS   1E-200
 
#define PDEL   1E-12
 
#define pexp   exp
 
#define pcos   cos
 
#define psin   sin
 
#define ptan   tan
 
#define pldexp   ldexp
 
#define pfrexp   frexp
 
#define FMT_REAL   "l"
 
#define HUGE_PREC
 
#define MAX_PREC   (16000000000000000000UL)
 
#define HUGE_MP_EXP
 
#define MAX_MP_EXP   (4000000000000000000L)
 The integer number type to use for polynomial degrees and indexes.
 
#define NEWTON_CONV_BITS   5
 
#define NEWTON_ESCAPE_BITS   4
 

Typedefs

typedef uint8_t byte
 byte is uint8
 
typedef uint16_t word
 word is uint16
 
typedef uint32_t uint
 uint is uint32
 
typedef uint64_t ulong
 ulong is uint64
 
typedef byte bool
 Logic type bool can take values true or false.
 
typedef double coeff_t
 The machine number type to use for polynomial coefficients and evaluation.
 
typedef ulong deg_t
 The integer number type to use for polynomial degrees and indexes.
 
typedef double real_t
 The machine number type to use for polynomial analysis and preconditionning.
 
typedef ulong prec_t
 The integer number type to use for polynomial degrees and indexes.
 

Functions

bool ntypes_check (void)
 Use this function to check the compatibility of the machine with the settings above.
 
real_t bits_sum (real_t b1, real_t b2)
 Computes log_2(2^b1+2^b2), even if b1 or b2 are outside the exponent range of real_t. More...
 
real_t nt_err (real_t vb, real_t evb, real_t db, real_t edb)
 Computes log_2(ntErr), where ntErr is an upper bound for the error of the Newton term. More...
 

Detailed Description

Definition of basic types.

Definition in file ntypes.h.

Function Documentation

◆ bits_sum()

real_t bits_sum ( real_t  b1,
real_t  b2 
)

Computes log_2(2^b1+2^b2), even if b1 or b2 are outside the exponent range of real_t.

Parameters
b1first operand, in bits
b2second operand, in bits
Returns
the bits sum of the operands, that is the base 2 log of their base 2 exponentials

◆ nt_err()

real_t nt_err ( real_t  vb,
real_t  evb,
real_t  db,
real_t  edb 
)

Computes log_2(ntErr), where ntErr is an upper bound for the error of the Newton term.

Parameters
vblog_2(|value|)
evblog_2(valErr)
dblog_2(|derivative|)
edblog_2(derErr)
Returns
absolute error of the Newton term, as a power of 2