49 #define PI (3.14159265358979323846264338327950288L) 
   61 #ifdef MACHINE_EXTRA_PREC 
   71   #define mpfr_getf mpfr_get_ld 
   73   #define PRECF_STR "64" 
   74   #define TYPEFP_STR "FP80" 
   75   #define TYPEF_STR "long double" 
   76   #define INF_M (-HUGE_VALL) 
   77   #define INF_P HUGE_VALL 
   80 #ifndef MACHINE_LOW_PREC 
   90   #define mpfr_getf mpfr_get_d 
   92   #define PRECF_STR "53" 
   93   #define TYPEFP_STR "FP64" 
   94   #define TYPEF_STR "double" 
   95   #define INF_M (-HUGE_VAL) 
   96   #define INF_P HUGE_VAL 
  101   #define fhypot hypotf 
  102   #define ffloor floorf 
  108   #define mpfr_getf mpfr_get_f 
  110   #define PRECF_STR "24" 
  111   #define TYPEFP_STR "FP32" 
  112   #define TYPEF_STR "float" 
  113   #define INF_M (-HUGE_VALF) 
  114   #define INF_P HUGE_VALF 
  119 #define MAX_EXP (sizeof(coeff_t) == 8 ? 960 : 16320) 
  129   #define MAX_DEG (UINT64_MAX - 1) 
  130   #define FMT_DEG PRIu64 
  133   #define MAX_DEG (UINT32_MAX - 1) 
  134   #define FMT_DEG PRIu32 
  145 #ifdef INTERNAL_EXTRA_PREC 
  146   typedef long double real_t;
 
  149   #define phypot hypotl 
  150   #define pfloor floorl 
  152   #define mpfr_getp mpfr_get_ld 
  153   #define PEPS 1E-3000L 
  159   #define pldexp ldexpl 
  160   #define pfrexp frexpl 
  169   #define mpfr_getp mpfr_get_d 
  189   #define MAX_PREC (16000000000000000000UL) 
  192   #define MAX_PREC (4000000000UL) 
  201   #define MAX_MP_EXP (4000000000000000000L) 
  203   #define MAX_MP_EXP (2000000000L) 
  206 #define NEWTON_CONV_BITS     5 
  207 #define NEWTON_ESCAPE_BITS   4 
double real_t
The machine number type to use for polynomial analysis and preconditionning.
double coeff_t
The machine number type to use for polynomial coefficients and evaluation.
uint32_t uint
uint is uint32
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.
ulong deg_t
The integer number type to use for polynomial degrees and indexes.
ulong prec_t
The integer number type to use for polynomial degrees and indexes.
uint16_t word
word is uint16
uint64_t ulong
ulong is uint64
uint8_t byte
byte is uint8
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.
byte bool
Logic type bool can take values true or false.
bool ntypes_check(void)
Use this function to check the compatibility of the machine with the settings above.