(b76ad15ed0da636161de0243c547ee1e6fc95681)
#include <limits.h>
#include <ctype.h>
#include <errno.h>
#include <stdlib.h>
#include <string.h>
#include <float.h>
#include <math.h>
Go to the source code of this file.
|
#define | IEEE_LITTLE_ENDIAN |
|
#define | NO_LONG_LONG |
|
#define | ISDIGIT(c) isdigit(c) |
|
#define | MALLOC xmalloc |
|
#define | FREE xfree |
|
#define | NO_SANITIZE(x, y) y |
|
#define | PRIVATE_MEM 2304 |
|
#define | PRIVATE_mem ((PRIVATE_MEM+sizeof(double)-1)/sizeof(double)) |
|
#define | IEEE_Arith |
|
#define | word0(x) ((x).L[1]) |
|
#define | word1(x) ((x).L[0]) |
|
#define | dval(x) ((x).d) |
|
#define | Storeinc(a, b, c) |
|
#define | Exp_shift 20 |
|
#define | Exp_shift1 20 |
|
#define | Exp_msk1 0x100000 |
|
#define | Exp_msk11 0x100000 |
|
#define | Exp_mask 0x7ff00000 |
|
#define | P 53 |
|
#define | Bias 1023 |
|
#define | Emin (-1022) |
|
#define | Exp_1 0x3ff00000 |
|
#define | Exp_11 0x3ff00000 |
|
#define | Ebits 11 |
|
#define | Frac_mask 0xfffff |
|
#define | Frac_mask1 0xfffff |
|
#define | Ten_pmax 22 |
|
#define | Bletch 0x10 |
|
#define | Bndry_mask 0xfffff |
|
#define | Bndry_mask1 0xfffff |
|
#define | LSB 1 |
|
#define | Sign_bit 0x80000000 |
|
#define | Log2P 1 |
|
#define | Tiny0 0 |
|
#define | Tiny1 1 |
|
#define | Quick_max 14 |
|
#define | Int_max 14 |
|
#define | Avoid_Underflow |
|
#define | Flt_Rounds 1 |
|
#define | Rounding Flt_Rounds |
|
#define | rounded_product(a, b) ((a) *= (b)) |
|
#define | rounded_quotient(a, b) ((a) /= (b)) |
|
#define | Big0 (Frac_mask1 | Exp_msk1*(DBL_MAX_EXP+Bias-1)) |
|
#define | Big1 0xffffffff |
|
#define | Pack_32 |
|
#define | FFFFFFFF 0xffffffffUL |
|
#define | MULTIPLE_THREADS 1 |
|
#define | ACQUIRE_DTOA_LOCK(n) /*unused right now*/ |
|
#define | FREE_DTOA_LOCK(n) /*unused right now*/ |
|
#define | ATOMIC_PTR_CAS(var, old, new) ((var) = (new), (old)) |
|
#define | LIKELY(x) (x) |
|
#define | UNLIKELY(x) (x) |
|
#define | ASSUME(x) (void)(x) |
|
#define | Kmax 15 |
|
#define | Bcopy(x, y) |
|
#define | d0 word0(d) |
|
#define | d1 word1(d) |
|
#define | d0 word0(d) |
|
#define | d1 word1(d) |
|
#define | Scale_Bit 0x10 |
|
#define | n_bigtens 5 |
|
#define | rv_alloc(i) MALLOC(i) |
|
#define | rv_strdup(s, rve) nrv_alloc((s), (rve), strlen(s)+1) |
|
#define | DBL_MANH_SIZE 20 |
|
#define | DBL_MANL_SIZE 32 |
|
#define | DBL_ADJ (DBL_MAX_EXP - 2) |
|
#define | SIGFIGS ((DBL_MANT_DIG + 3) / 4 + 1) |
|
#define | dexp_get(u) ((int)(word0(u) >> Exp_shift) & ~Exp_msk1) |
|
#define | dexp_set(u, v) (word0(u) = (((int)(word0(u)) & ~Exp_mask) | ((v) << Exp_shift))) |
|
#define | dmanh_get(u) ((uint32_t)(word0(u) & Frac_mask)) |
|
#define | dmanl_get(u) ((uint32_t)word1(u)) |
|
|
| NO_SANITIZE ("unsigned-integer-overflow", static Bigint *diff(Bigint *a, Bigint *b)) |
|
| NO_SANITIZE ("unsigned-integer-overflow", double strtod(const char *s00, char **se)) |
|
double | strtod (const char *s00, char **se) |
|
| NO_SANITIZE ("unsigned-integer-overflow", static int quorem(Bigint *b, Bigint *S)) |
|
char * | dtoa (double d_, int mode, int ndigits, int *decpt, int *sign, char **rve) |
|
char * | hdtoa (double d, const char *xdigs, int ndigits, int *decpt, int *sign, char **rve) |
|
◆ ACQUIRE_DTOA_LOCK
#define ACQUIRE_DTOA_LOCK |
( |
|
n | ) |
/*unused right now*/ |
◆ ASSUME
#define ASSUME |
( |
|
x | ) |
(void)(x) |
◆ ATOMIC_PTR_CAS
#define ATOMIC_PTR_CAS |
( |
|
var, |
|
|
|
old, |
|
|
|
new |
|
) |
| ((var) = (new), (old)) |
◆ Avoid_Underflow
◆ Bcopy
Value:memcpy((
char *)&(x)->sign, (
char *)&(
y)->sign, \
(
y)->wds*
sizeof(Long) + 2*
sizeof(
int))
Definition at line 598 of file dtoa.c.
◆ Bias
◆ Big0
◆ Big1
◆ Bletch
◆ Bndry_mask
#define Bndry_mask 0xfffff |
◆ Bndry_mask1
#define Bndry_mask1 0xfffff |
◆ d0 [1/2]
◆ d0 [2/2]
◆ d1 [1/2]
◆ d1 [2/2]
◆ DBL_ADJ
◆ DBL_MANH_SIZE
◆ DBL_MANL_SIZE
◆ dexp_get
◆ dexp_set
◆ dmanh_get
◆ dmanl_get
◆ dval
#define dval |
( |
|
x | ) |
((x).d) |
◆ Ebits
◆ Emin
◆ Exp_1
◆ Exp_11
#define Exp_11 0x3ff00000 |
◆ Exp_mask
#define Exp_mask 0x7ff00000 |
◆ Exp_msk1
#define Exp_msk1 0x100000 |
◆ Exp_msk11
#define Exp_msk11 0x100000 |
◆ Exp_shift
◆ Exp_shift1
◆ FFFFFFFF
#define FFFFFFFF 0xffffffffUL |
◆ Flt_Rounds
◆ Frac_mask
#define Frac_mask 0xfffff |
◆ Frac_mask1
#define Frac_mask1 0xfffff |
◆ FREE
◆ FREE_DTOA_LOCK
#define FREE_DTOA_LOCK |
( |
|
n | ) |
/*unused right now*/ |
◆ IEEE_Arith
◆ IEEE_LITTLE_ENDIAN
#define IEEE_LITTLE_ENDIAN |
◆ Int_max
◆ ISDIGIT
#define ISDIGIT |
( |
|
c | ) |
isdigit(c) |
◆ Kmax
◆ LIKELY
◆ Log2P
◆ LSB
◆ MALLOC
◆ MULTIPLE_THREADS
#define MULTIPLE_THREADS 1 |
◆ n_bigtens
◆ NO_LONG_LONG
◆ NO_SANITIZE
#define NO_SANITIZE |
( |
|
x, |
|
|
|
y |
|
) |
| y |
◆ Pack_32
◆ PRIVATE_MEM
◆ PRIVATE_mem
#define PRIVATE_mem ((PRIVATE_MEM+sizeof(double)-1)/sizeof(double)) |
◆ Quick_max
◆ rounded_product
#define rounded_product |
( |
|
a, |
|
|
|
b |
|
) |
| ((a) *= (b)) |
◆ rounded_quotient
#define rounded_quotient |
( |
|
a, |
|
|
|
b |
|
) |
| ((a) /= (b)) |
◆ Rounding
◆ rv_alloc
#define rv_alloc |
( |
|
i | ) |
MALLOC(i) |
◆ rv_strdup
#define rv_strdup |
( |
|
s, |
|
|
|
rve |
|
) |
| nrv_alloc((s), (rve), strlen(s)+1) |
◆ Scale_Bit
◆ SIGFIGS
◆ Sign_bit
#define Sign_bit 0x80000000 |
◆ Storeinc
#define Storeinc |
( |
|
a, |
|
|
|
b, |
|
|
|
c |
|
) |
| |
Value:(((unsigned short *)(a))[1] = (unsigned short)(b), \
((unsigned short *)(a))[0] = (unsigned short)(c), (a)++)
Definition at line 331 of file dtoa.c.
◆ Ten_pmax
◆ Tiny0
◆ Tiny1
◆ UNLIKELY
#define UNLIKELY |
( |
|
x | ) |
(x) |
◆ word0
#define word0 |
( |
|
x | ) |
((x).L[1]) |
◆ word1
#define word1 |
( |
|
x | ) |
((x).L[0]) |
◆ Bigint
◆ double_u
◆ dtoa()
char* dtoa |
( |
double |
d_, |
|
|
int |
mode, |
|
|
int |
ndigits, |
|
|
int * |
decpt, |
|
|
int * |
sign, |
|
|
char ** |
rve |
|
) |
| |
◆ hdtoa()
char* hdtoa |
( |
double |
d, |
|
|
const char * |
xdigs, |
|
|
int |
ndigits, |
|
|
int * |
decpt, |
|
|
int * |
sign, |
|
|
char ** |
rve |
|
) |
| |
◆ NO_SANITIZE() [1/3]
NO_SANITIZE |
( |
"unsigned-integer-overflow" |
, |
|
|
double |
strtodconst char *s00, char **se |
|
) |
| |
◆ NO_SANITIZE() [2/3]
NO_SANITIZE |
( |
"unsigned-integer-overflow" |
, |
|
|
static Bigint * |
diffBigint *a, Bigint *b |
|
) |
| |
◆ NO_SANITIZE() [3/3]
NO_SANITIZE |
( |
"unsigned-integer-overflow" |
, |
|
|
static int |
quoremBigint *b, Bigint *S |
|
) |
| |
◆ strtod()
double strtod |
( |
const char * |
s00, |
|
|
char ** |
se |
|
) |
| |