diff options
Diffstat (limited to 'lib/libm/sqrt_data.h')
| -rw-r--r-- | lib/libm/sqrt_data.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/lib/libm/sqrt_data.h b/lib/libm/sqrt_data.h new file mode 100644 index 00000000..f5929b8d --- /dev/null +++ b/lib/libm/sqrt_data.h @@ -0,0 +1,14 @@ +#ifndef _SQRT_DATA_H +#define _SQRT_DATA_H + +#include <stdint.h> + +#define hidden __attribute__((visibility("hidden"))) + +/* if x in [1,2): i = (int)(64*x); + if x in [2,4): i = (int)(32*x-64); + __rsqrt_tab[i]*2^-16 is estimating 1/sqrt(x) with small relative error: + |__rsqrt_tab[i]*0x1p-16*sqrt(x) - 1| < -0x1.fdp-9 < 2^-8 */ +extern hidden const uint16_t __rsqrt_tab[128]; + +#endif |
