Lines 25-41
Link Here
|
25 |
|
25 |
|
26 |
#include "fdlibm.h" |
26 |
#include "fdlibm.h" |
27 |
|
27 |
|
28 |
/* |
28 |
/* |
29 |
* Emulate FreeBSD internal double types. |
29 |
* Emulate FreeBSD internal double types. |
30 |
* Adapted from https://github.com/freebsd/freebsd-src/search?q=__double_t |
30 |
* Adapted from https://github.com/freebsd/freebsd-src/search?q=__double_t |
31 |
*/ |
31 |
*/ |
32 |
|
32 |
|
|
|
33 |
#if defined __FLT_EVAL_METHOD__ && (__FLT_EVAL_METHOD__ == 2) |
34 |
typedef long double __double_t; |
35 |
#else |
33 |
typedef double __double_t; |
36 |
typedef double __double_t; |
|
|
37 |
#endif |
34 |
typedef __double_t double_t; |
38 |
typedef __double_t double_t; |
35 |
typedef float __float_t; |
39 |
typedef float __float_t; |
36 |
|
40 |
|
37 |
/* |
41 |
/* |
38 |
* The original fdlibm code used statements like: |
42 |
* The original fdlibm code used statements like: |
39 |
* n0 = ((*(int*)&one)>>29)^1; * index of high word * |
43 |
* n0 = ((*(int*)&one)>>29)^1; * index of high word * |
40 |
* ix0 = *(n0+(int*)&x); * high word of x * |
44 |
* ix0 = *(n0+(int*)&x); * high word of x * |
41 |
* ix1 = *((1-n0)+(int*)&x); * low word of x * |
45 |
* ix1 = *((1-n0)+(int*)&x); * low word of x * |