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.