2022-07-12 01:34:10 +00:00
|
|
|
#ifndef COSMOPOLITAN_LIBC_TINYMATH_LOG2_DATA_INTERNAL_H_
|
|
|
|
#define COSMOPOLITAN_LIBC_TINYMATH_LOG2_DATA_INTERNAL_H_
|
|
|
|
|
|
|
|
#define LOG2_TABLE_BITS 6
|
|
|
|
#define LOG2_POLY_ORDER 7
|
|
|
|
#define LOG2_POLY1_ORDER 11
|
|
|
|
|
|
|
|
#if !(__ASSEMBLER__ + __LINKER__ + 0)
|
|
|
|
COSMOPOLITAN_C_START_
|
|
|
|
|
2022-11-08 19:39:50 +00:00
|
|
|
extern _Hide const struct log2_data {
|
2022-07-12 01:34:10 +00:00
|
|
|
double invln2hi;
|
|
|
|
double invln2lo;
|
|
|
|
double poly[LOG2_POLY_ORDER - 1];
|
|
|
|
double poly1[LOG2_POLY1_ORDER - 1];
|
|
|
|
struct {
|
|
|
|
double invc, logc;
|
|
|
|
} tab[1 << LOG2_TABLE_BITS];
|
|
|
|
#if !__FP_FAST_FMA
|
|
|
|
struct {
|
|
|
|
double chi, clo;
|
|
|
|
} tab2[1 << LOG2_TABLE_BITS];
|
|
|
|
#endif
|
|
|
|
} __log2_data;
|
|
|
|
|
|
|
|
COSMOPOLITAN_C_END_
|
|
|
|
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
|
|
|
|
#endif /* COSMOPOLITAN_LIBC_TINYMATH_LOG2_DATA_INTERNAL_H_ */
|