crmf 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +12 -0
- data/crmf.gemspec +102 -1
- data/ext/crlibm-1.0beta5/AUTHORS +2 -0
- data/ext/crlibm-1.0beta5/CMakeLists.txt +154 -0
- data/ext/crlibm-1.0beta5/COPYING +340 -0
- data/ext/crlibm-1.0beta5/COPYING.LIB +504 -0
- data/ext/crlibm-1.0beta5/ChangeLog +125 -0
- data/ext/crlibm-1.0beta5/Makefile.am +134 -0
- data/ext/crlibm-1.0beta5/NEWS +0 -0
- data/ext/crlibm-1.0beta5/README +31 -0
- data/ext/crlibm-1.0beta5/README.DEV +23 -0
- data/ext/crlibm-1.0beta5/README.md +5 -0
- data/ext/crlibm-1.0beta5/TODO +66 -0
- data/ext/crlibm-1.0beta5/VERSION +1 -0
- data/ext/crlibm-1.0beta5/acos-td.c +1195 -0
- data/ext/crlibm-1.0beta5/acos-td.h +629 -0
- data/ext/crlibm-1.0beta5/asin-td.c +1297 -0
- data/ext/crlibm-1.0beta5/asin-td.h +620 -0
- data/ext/crlibm-1.0beta5/asincos.c +4488 -0
- data/ext/crlibm-1.0beta5/asincos.h +575 -0
- data/ext/crlibm-1.0beta5/atan-itanium.c +846 -0
- data/ext/crlibm-1.0beta5/atan-pentium.c +280 -0
- data/ext/crlibm-1.0beta5/atan-pentium.h +343 -0
- data/ext/crlibm-1.0beta5/atan_accurate.c +341 -0
- data/ext/crlibm-1.0beta5/atan_accurate.h +198 -0
- data/ext/crlibm-1.0beta5/atan_fast.c +506 -0
- data/ext/crlibm-1.0beta5/atan_fast.h +680 -0
- data/ext/crlibm-1.0beta5/configure.ac +419 -0
- data/ext/crlibm-1.0beta5/crlibm.h +204 -0
- data/ext/crlibm-1.0beta5/crlibm.spec +42 -0
- data/ext/crlibm-1.0beta5/crlibm_private.c +397 -0
- data/ext/crlibm-1.0beta5/crlibm_private.h +1048 -0
- data/ext/crlibm-1.0beta5/csh_fast.c +721 -0
- data/ext/crlibm-1.0beta5/csh_fast.h +771 -0
- data/ext/crlibm-1.0beta5/double-extended.h +496 -0
- data/ext/crlibm-1.0beta5/exp-itanium.c +723 -0
- data/ext/crlibm-1.0beta5/exp-td-standalone.c +87 -0
- data/ext/crlibm-1.0beta5/exp-td.c +1363 -0
- data/ext/crlibm-1.0beta5/exp-td.h +685 -0
- data/ext/crlibm-1.0beta5/exp_build_coeffs/exp_fast_table.c +125 -0
- data/ext/crlibm-1.0beta5/expm1-standalone.c +119 -0
- data/ext/crlibm-1.0beta5/expm1.c +2515 -0
- data/ext/crlibm-1.0beta5/expm1.h +715 -0
- data/ext/crlibm-1.0beta5/interval.h +238 -0
- data/ext/crlibm-1.0beta5/log-de.c +480 -0
- data/ext/crlibm-1.0beta5/log-de.h +747 -0
- data/ext/crlibm-1.0beta5/log-de2.c +280 -0
- data/ext/crlibm-1.0beta5/log-de2.h +2352 -0
- data/ext/crlibm-1.0beta5/log-td.c +1158 -0
- data/ext/crlibm-1.0beta5/log-td.h +819 -0
- data/ext/crlibm-1.0beta5/log.c +2244 -0
- data/ext/crlibm-1.0beta5/log.h +1592 -0
- data/ext/crlibm-1.0beta5/log10-td.c +906 -0
- data/ext/crlibm-1.0beta5/log10-td.h +823 -0
- data/ext/crlibm-1.0beta5/log1p.c +1295 -0
- data/ext/crlibm-1.0beta5/log2-td.c +1521 -0
- data/ext/crlibm-1.0beta5/log2-td.h +821 -0
- data/ext/crlibm-1.0beta5/log2_accurate.c +330 -0
- data/ext/crlibm-1.0beta5/log2_accurate.h +261 -0
- data/ext/crlibm-1.0beta5/log_accurate.c +133 -0
- data/ext/crlibm-1.0beta5/log_accurate.h +261 -0
- data/ext/crlibm-1.0beta5/log_fast.c +360 -0
- data/ext/crlibm-1.0beta5/log_fast.h +440 -0
- data/ext/crlibm-1.0beta5/pow.c +1396 -0
- data/ext/crlibm-1.0beta5/pow.h +3101 -0
- data/ext/crlibm-1.0beta5/prepare +20 -0
- data/ext/crlibm-1.0beta5/rem_pio2_accurate.c +219 -0
- data/ext/crlibm-1.0beta5/rem_pio2_accurate.h +53 -0
- data/ext/crlibm-1.0beta5/scs_lib/AUTHORS +3 -0
- data/ext/crlibm-1.0beta5/scs_lib/COPYING +504 -0
- data/ext/crlibm-1.0beta5/scs_lib/ChangeLog +16 -0
- data/ext/crlibm-1.0beta5/scs_lib/Doxyfile.dev +939 -0
- data/ext/crlibm-1.0beta5/scs_lib/Doxyfile.user +939 -0
- data/ext/crlibm-1.0beta5/scs_lib/INSTALL +215 -0
- data/ext/crlibm-1.0beta5/scs_lib/Makefile.am +17 -0
- data/ext/crlibm-1.0beta5/scs_lib/NEWS +0 -0
- data/ext/crlibm-1.0beta5/scs_lib/README +9 -0
- data/ext/crlibm-1.0beta5/scs_lib/README.DEV +38 -0
- data/ext/crlibm-1.0beta5/scs_lib/TODO +4 -0
- data/ext/crlibm-1.0beta5/scs_lib/VERSION +1 -0
- data/ext/crlibm-1.0beta5/scs_lib/addition_scs.c +623 -0
- data/ext/crlibm-1.0beta5/scs_lib/division_scs.c +110 -0
- data/ext/crlibm-1.0beta5/scs_lib/double2scs.c +174 -0
- data/ext/crlibm-1.0beta5/scs_lib/main.dox +104 -0
- data/ext/crlibm-1.0beta5/scs_lib/multiplication_scs.c +339 -0
- data/ext/crlibm-1.0beta5/scs_lib/poly_fct.c +112 -0
- data/ext/crlibm-1.0beta5/scs_lib/print_scs.c +73 -0
- data/ext/crlibm-1.0beta5/scs_lib/rand_scs.c +63 -0
- data/ext/crlibm-1.0beta5/scs_lib/scs.h +353 -0
- data/ext/crlibm-1.0beta5/scs_lib/scs2double.c +411 -0
- data/ext/crlibm-1.0beta5/scs_lib/scs2mpf.c +58 -0
- data/ext/crlibm-1.0beta5/scs_lib/scs2mpfr.c +61 -0
- data/ext/crlibm-1.0beta5/scs_lib/scs_private.c +23 -0
- data/ext/crlibm-1.0beta5/scs_lib/scs_private.h +133 -0
- data/ext/crlibm-1.0beta5/scs_lib/wrapper_scs.h +486 -0
- data/ext/crlibm-1.0beta5/scs_lib/zero_scs.c +52 -0
- data/ext/crlibm-1.0beta5/trigo_accurate.c +501 -0
- data/ext/crlibm-1.0beta5/trigo_accurate.h +331 -0
- data/ext/crlibm-1.0beta5/trigo_fast.c +1243 -0
- data/ext/crlibm-1.0beta5/trigo_fast.h +639 -0
- data/ext/crlibm-1.0beta5/trigpi.c +1169 -0
- data/ext/crlibm-1.0beta5/trigpi.h +556 -0
- data/ext/crlibm-1.0beta5/triple-double.c +57 -0
- data/ext/crlibm-1.0beta5/triple-double.h +1380 -0
- data/ext/crmf/crmf.c +16 -16
- data/ext/crmf/extconf.rb +12 -8
- data/lib/crmf/version.rb +1 -1
- data/tests/perf.rb +100 -219
- metadata +104 -3
- data/ext/crlibm-1.0beta4.tar.gz +0 -0
@@ -0,0 +1,440 @@
|
|
1
|
+
#include "crlibm.h"
|
2
|
+
#include "crlibm_private.h"
|
3
|
+
|
4
|
+
/*File generated by maple/coef_log.mw*/
|
5
|
+
|
6
|
+
#define SQRT_2 1.4142135623730950489e0
|
7
|
+
|
8
|
+
#define DEGREE 12
|
9
|
+
|
10
|
+
#define EMIN_MEDIUMPATH 23.000
|
11
|
+
#define EMIN_FASTPATH 185.000
|
12
|
+
/* Constants for rounding */
|
13
|
+
static const double epsilon[4] =
|
14
|
+
{
|
15
|
+
/* Case E=0 */
|
16
|
+
4.47385432225115274522995672974873440655535693998277e-18,
|
17
|
+
/* Middle case */
|
18
|
+
8.40963020519242390613590856552459545441732156457476e-19,
|
19
|
+
/* Case E>EminMedPath */
|
20
|
+
3.19013236586914638175957676953204491380730158561523e-20,
|
21
|
+
/* And for the fast path */
|
22
|
+
1.65439555368591958127629148820687373633319579538065e-19
|
23
|
+
|
24
|
+
};
|
25
|
+
|
26
|
+
static const double rncst[4] =
|
27
|
+
{
|
28
|
+
/* Case E=0 */
|
29
|
+
1.08596671427669422271833354898262768983840942382813e+00,
|
30
|
+
/* Middle case */
|
31
|
+
1.01526872993599659444896587956463918089866638183594e+00,
|
32
|
+
/* Case E>EminMedPath */
|
33
|
+
1.00057496390146027920309279579669237136840820312500e+00,
|
34
|
+
/* And for the fast path */
|
35
|
+
1.00298612635768380485501438670326024293899536132813e+00
|
36
|
+
};
|
37
|
+
|
38
|
+
#ifdef WORDS_BIGENDIAN
|
39
|
+
static const db_number ln2hi = {{0x3FE62E42,0xFEFA3800}} /* +6.9314718056e-01 */;
|
40
|
+
static const db_number ln2lo = {{0x3D2EF357,0x93C76730}} /* +5.4979230187e-14 */;
|
41
|
+
static const db_number two52 = {{0x43300000,0x00000000}} /* +4.5035996274e+15 */;
|
42
|
+
static const db_number middle[8] =
|
43
|
+
{
|
44
|
+
{{0x3FE7504F,0x333F9DE3}} /* +7.2855339059e-01 */ ,
|
45
|
+
{{0x3FE90000,0x00000000}} /* +7.8125000000e-01 */ ,
|
46
|
+
{{0x3FEB0000,0x00000000}} /* +8.4375000000e-01 */ ,
|
47
|
+
{{0x3FED0000,0x00000000}} /* +9.0625000000e-01 */ ,
|
48
|
+
{{0x3FF00000,0x00000000}} /* +1.0000000000e+00 */ ,
|
49
|
+
{{0x3FF20000,0x00000000}} /* +1.1250000000e+00 */ ,
|
50
|
+
{{0x3FF40000,0x00000000}} /* +1.2500000000e+00 */ ,
|
51
|
+
{{0x3FF5D04F,0x333F9DE9}} /* +1.3633567812e+00 */
|
52
|
+
};
|
53
|
+
|
54
|
+
static const db_number Poly_h[8][13] =
|
55
|
+
{
|
56
|
+
/* polynomial 1 */
|
57
|
+
{
|
58
|
+
{{0xBFD444B8,0x73F60B09}} /* -3.1669436764e-01 */ ,
|
59
|
+
{{0x3FF5F619,0x980C433A}} /* +1.3725830020e+00 */ ,
|
60
|
+
{{0xBFEE24CC,0x824C9A57}} /* -9.4199204873e-01 */ ,
|
61
|
+
{{0x3FEB954C,0x47881604}} /* +8.6197484942e-01 */ ,
|
62
|
+
{{0xBFEC6529,0xC58FCD22}} /* -8.8734901987e-01 */ ,
|
63
|
+
{{0x3FEF2E06,0x1AC1D834}} /* +9.7436814524e-01 */ ,
|
64
|
+
{{0xBFF1D4FE,0xF5D42E1A}} /* -1.1145009616e+00 */ ,
|
65
|
+
{{0x3FF4FAB7,0x67F441DC}} /* +1.3112100659e+00 */ ,
|
66
|
+
{{0xBFF93248,0xEA47B471}} /* -1.5747765686e+00 */ ,
|
67
|
+
{{0x3FFEBDCE,0x85276A57}} /* +1.9213395311e+00 */ ,
|
68
|
+
{{0xC002FCE1,0x0ABAD697}} /* -2.3734761084e+00 */ ,
|
69
|
+
{{0x4007BFE9,0x8C0B7AF7}} /* +2.9687071744e+00 */ ,
|
70
|
+
{{0xC00DE4D4,0xF57FD2EC}} /* -3.7367343120e+00 */
|
71
|
+
},
|
72
|
+
/* polynomial 2 */
|
73
|
+
{
|
74
|
+
{{0xBFCF991C,0x6CB3B379}} /* -2.4686007793e-01 */ ,
|
75
|
+
{{0x3FF47AE1,0x47AE147B}} /* +1.2800000000e+00 */ ,
|
76
|
+
{{0xBFEA36E2,0xEB1C432D}} /* -8.1920000000e-01 */ ,
|
77
|
+
{{0x3FE65E9F,0x80F29213}} /* +6.9905066667e-01 */ ,
|
78
|
+
{{0xBFE5798E,0xE2308C3F}} /* -6.7108864000e-01 */ ,
|
79
|
+
{{0x3FE5FD7F,0xE1793910}} /* +6.8719476736e-01 */ ,
|
80
|
+
{{0xBFE774CC,0xAC3CC49E}} /* -7.3300775185e-01 */ ,
|
81
|
+
{{0x3FE9BC1F,0x779F31B6}} /* +8.0421422351e-01 */ ,
|
82
|
+
{{0xBFECD2B2,0x9C89806A}} /* -9.0071993421e-01 */ ,
|
83
|
+
{{0x3FF065A0,0xF663DD55}} /* +1.0248117089e+00 */ ,
|
84
|
+
{{0xBFF2E3A7,0x64D28253}} /* -1.1805795611e+00 */ ,
|
85
|
+
{{0x3FF613D4,0x162168A9}} /* +1.3798409333e+00 */ ,
|
86
|
+
{{0xBFF9EC69,0x1E7E75E1}} /* -1.6202174369e+00 */
|
87
|
+
},
|
88
|
+
/* polynomial 3 */
|
89
|
+
{
|
90
|
+
{{0xBFC5BF40,0x6B543DB2}} /* -1.6989903680e-01 */ ,
|
91
|
+
{{0x3FF2F684,0xBDA12F68}} /* +1.1851851852e+00 */ ,
|
92
|
+
{{0xBFE67980,0xE0BF08C7}} /* -7.0233196159e-01 */ ,
|
93
|
+
{{0x3FE1C1FA,0x5F678885}} /* +5.5492895731e-01 */ ,
|
94
|
+
{{0xBFDF91BD,0x1B62B9D2}} /* -4.9327018427e-01 */ ,
|
95
|
+
{{0x3FDDEEAF,0x8242EF01}} /* +4.6769321175e-01 */ ,
|
96
|
+
{{0xBFDD9015,0xA36B029B}} /* -4.6191922149e-01 */ ,
|
97
|
+
{{0x3FDE0836,0x7F176341}} /* +4.6925127422e-01 */ ,
|
98
|
+
{{0xBFDF24F6,0x26663631}} /* -4.8663095236e-01 */ ,
|
99
|
+
{{0x3FE067BA,0x19D8F153}} /* +5.1266198204e-01 */ ,
|
100
|
+
{{0xBFE17FB2,0xECA216B7}} /* -5.4683824747e-01 */ ,
|
101
|
+
{{0x3FE2ECE6,0x2FABC4B9}} /* +5.9141835509e-01 */ ,
|
102
|
+
{{0xBFE492F3,0x21A51E4E}} /* -6.4293819972e-01 */
|
103
|
+
},
|
104
|
+
/* polynomial 4 */
|
105
|
+
{
|
106
|
+
{{0xBFB9335E,0x5D594989}} /* -9.8440072813e-02 */ ,
|
107
|
+
{{0x3FF1A7B9,0x611A7B96}} /* +1.1034482759e+00 */ ,
|
108
|
+
{{0xBFE37B48,0x24872744}} /* -6.0879904875e-01 */ ,
|
109
|
+
{{0x3FDCA99C,0x29F8DE8E}} /* +4.4785217379e-01 */ ,
|
110
|
+
{{0xBFD7B881,0x3D37E454}} /* -3.7063628176e-01 */ ,
|
111
|
+
{{0x3FD4F08E,0x55D1F3A8}} /* +3.2718237286e-01 */ ,
|
112
|
+
{{0xBFD3413F,0x346E99D3}} /* -3.0085735436e-01 */ ,
|
113
|
+
{{0x3FD23625,0x15433E66}} /* +2.8455473973e-01 */ ,
|
114
|
+
{{0xBFD19561,0x9976A7ED}} /* -2.7474250781e-01 */ ,
|
115
|
+
{{0x3FD13F21,0x5935F4CB}} /* +2.6947816574e-01 */ ,
|
116
|
+
{{0xBFD120AC,0x8299A6A4}} /* -2.6761925463e-01 */ ,
|
117
|
+
{{0x3FD13CDB,0x325D4F09}} /* +2.6933936995e-01 */ ,
|
118
|
+
{{0xBFD1720B,0x858B6D5D}} /* -2.7258575479e-01 */
|
119
|
+
},
|
120
|
+
/* polynomial 5 */
|
121
|
+
{
|
122
|
+
{{0x00000000,0x00000000}} /* +0.0000000000e-01 */ ,
|
123
|
+
{{0x3FF00000,0x00000000}} /* +1.0000000000e+00 */ ,
|
124
|
+
{{0xBFE00000,0x00000000}} /* -5.0000000000e-01 */ ,
|
125
|
+
{{0x3FD55555,0x55555582}} /* +3.3333333333e-01 */ ,
|
126
|
+
{{0xBFD00000,0x000000A9}} /* -2.5000000000e-01 */ ,
|
127
|
+
{{0x3FC99999,0x99958511}} /* +1.9999999999e-01 */ ,
|
128
|
+
{{0xBFC55555,0x554BF922}} /* -1.6666666665e-01 */ ,
|
129
|
+
{{0x3FC24924,0xA3AEF673}} /* +1.4285715096e-01 */ ,
|
130
|
+
{{0xBFC00000,0x1CE3E886}} /* -1.2500001345e-01 */ ,
|
131
|
+
{{0x3FBC7184,0x13CEB1B9}} /* +1.1110711559e-01 */ ,
|
132
|
+
{{0xBFB99941,0xE1BDC076}} /* -9.9994771588e-02 */ ,
|
133
|
+
{{0x3FB78146,0xBC144107}} /* +9.1816349905e-02 */ ,
|
134
|
+
{{0xBFB595CF,0x0AA58754}} /* -8.4317150211e-02 */
|
135
|
+
},
|
136
|
+
/* polynomial 6 */
|
137
|
+
{
|
138
|
+
{{0x3FBE2707,0x6E2AF2E6}} /* +1.1778303566e-01 */ ,
|
139
|
+
{{0x3FEC71C7,0x1C71C71C}} /* +8.8888888889e-01 */ ,
|
140
|
+
{{0xBFD948B0,0xFCD6E9E0}} /* -3.9506172840e-01 */ ,
|
141
|
+
{{0x3FCDF756,0x80FEB690}} /* +2.3411065386e-01 */ ,
|
142
|
+
{{0xBFC3FA39,0xAB547A1A}} /* -1.5607376924e-01 */ ,
|
143
|
+
{{0x3FBC6990,0x98A29957}} /* +1.1098579146e-01 */ ,
|
144
|
+
{{0xBFB50BD3,0x6791851B}} /* -8.2211697374e-02 */ ,
|
145
|
+
{{0x3FB00902,0xA288F0A9}} /* +6.2637486154e-02 */ ,
|
146
|
+
{{0xBFA8F192,0x5F283335}} /* -4.8718046299e-02 */ ,
|
147
|
+
{{0x3FA3B540,0xE7508F6E}} /* +3.8492229687e-02 */ ,
|
148
|
+
{{0xBF9F8850,0xBFE2263F}} /* -3.0793439590e-02 */ ,
|
149
|
+
{{0x3F99B300,0x12EF8724}} /* +2.5096894413e-02 */ ,
|
150
|
+
{{0xBF94F85D,0x99AF0E14}} /* -2.0478689675e-02 */
|
151
|
+
},
|
152
|
+
/* polynomial 7 */
|
153
|
+
{
|
154
|
+
{{0x3FCC8FF7,0xC79A9A22}} /* +2.2314355131e-01 */ ,
|
155
|
+
{{0x3FE99999,0x9999999A}} /* +8.0000000000e-01 */ ,
|
156
|
+
{{0xBFD47AE1,0x47AE147B}} /* -3.2000000000e-01 */ ,
|
157
|
+
{{0x3FC5D867,0xC3ECE2B2}} /* +1.7066666667e-01 */ ,
|
158
|
+
{{0xBFBA36E2,0xEB1C436A}} /* -1.0240000000e-01 */ ,
|
159
|
+
{{0x3FB0C6F7,0xA0B52722}} /* +6.5535999999e-02 */ ,
|
160
|
+
{{0xBFA65E9F,0x80EFFFCD}} /* -4.3690666665e-02 */ ,
|
161
|
+
{{0x3F9EADA7,0x96E552E6}} /* +2.9959314904e-02 */ ,
|
162
|
+
{{0xBF95798E,0xEF8F2073}} /* -2.0971520778e-02 */ ,
|
163
|
+
{{0x3F8E8A9C,0x71A5F85C}} /* +1.4912817210e-02 */ ,
|
164
|
+
{{0xBF85FD5B,0xDA92B978}} /* -1.0737149818e-02 */ ,
|
165
|
+
{{0x3F801A73,0xDB58E5DE}} /* +7.8629542651e-03 */ ,
|
166
|
+
{{0xBF77A54B,0x588CDC6F}} /* -5.7728713226e-03 */
|
167
|
+
},
|
168
|
+
/* polynomial 8 */
|
169
|
+
{
|
170
|
+
{{0x3FD3D638,0x05AA02DB}} /* +3.0994988015e-01 */ ,
|
171
|
+
{{0x3FE778B2,0xD84B7B4A}} /* +7.3348371739e-01 */ ,
|
172
|
+
{{0xBFD13748,0x582A4354}} /* -2.6899918184e-01 */ ,
|
173
|
+
{{0x3FC0D63A,0x08B6E75D}} /* +1.3153767992e-01 */ ,
|
174
|
+
{{0xBFB28638,0xBDFF0D07}} /* -7.2360559831e-02 */ ,
|
175
|
+
{{0x3FA5BD59,0x0841B395}} /* +4.2460233934e-02 */ ,
|
176
|
+
{{0xBF9A937C,0x93FDD519}} /* -2.5953241856e-02 */ ,
|
177
|
+
{{0x3F90B55A,0xB37AD191}} /* +1.6316811757e-02 */ ,
|
178
|
+
{{0xBF857265,0xA500F702}} /* -1.0472101305e-02 */ ,
|
179
|
+
{{0x3F7BF747,0x97F62E2F}} /* +6.8276211381e-03 */ ,
|
180
|
+
{{0xBF727615,0x37BCA347}} /* -4.5071438615e-03 */ ,
|
181
|
+
{{0x3F68B6F6,0x340868F6}} /* +3.0169304521e-03 */ ,
|
182
|
+
{{0xBF60A0BF,0x5B164CA3}} /* -2.0297753733e-03 */
|
183
|
+
}
|
184
|
+
};
|
185
|
+
|
186
|
+
static const db_number Poly_l[8][2] =
|
187
|
+
{
|
188
|
+
/* polynomial 1 */
|
189
|
+
{
|
190
|
+
{{0xBC531A78,0xC9731542}} /* -4.1423907624e-18 */ ,
|
191
|
+
{{0x3C6DA901,0xD7E733C1}} /* +1.2863054535e-17 */ ,
|
192
|
+
|
193
|
+
},
|
194
|
+
/* polynomial 2 */
|
195
|
+
{
|
196
|
+
{{0xBC6F6650,0x792F85DD}} /* -1.3617434188e-17 */ ,
|
197
|
+
{{0xBC7EB9DF,0xF7DDA2CA}} /* -2.6650620715e-17 */ ,
|
198
|
+
|
199
|
+
},
|
200
|
+
/* polynomial 3 */
|
201
|
+
{
|
202
|
+
{{0x3C21F5B3,0xE8EE7A2B}} /* +4.8680071630e-19 */ ,
|
203
|
+
{{0x3C92F660,0x2CEA2030}} /* +6.5789058301e-17 */ ,
|
204
|
+
|
205
|
+
},
|
206
|
+
/* polynomial 4 */
|
207
|
+
{
|
208
|
+
{{0x3C5478A8,0x527726CF}} /* +4.4390095748e-18 */ ,
|
209
|
+
{{0x3C71A77F,0xA4B8A6F9}} /* +1.5312656901e-17 */ ,
|
210
|
+
|
211
|
+
},
|
212
|
+
/* polynomial 5 */
|
213
|
+
{
|
214
|
+
{{0x00000000,0x00000000}} /* +0.0000000000e-01 */ ,
|
215
|
+
{{0xBC03E91A,0xAAF9039B}} /* -1.3491922402e-19 */ ,
|
216
|
+
|
217
|
+
},
|
218
|
+
/* polynomial 6 */
|
219
|
+
{
|
220
|
+
{{0xBC3615B0,0xDBC40302}} /* -1.1972156066e-18 */ ,
|
221
|
+
{{0x3C8C55D6,0x047FA77E}} /* +4.9153904729e-17 */ ,
|
222
|
+
|
223
|
+
},
|
224
|
+
/* polynomial 7 */
|
225
|
+
{
|
226
|
+
{{0xBC64F68B,0x97A41961}} /* -9.0912813346e-18 */ ,
|
227
|
+
{{0xBC89A0B0,0x9DE4BE41}} /* -4.4456964079e-17 */ ,
|
228
|
+
|
229
|
+
},
|
230
|
+
/* polynomial 8 */
|
231
|
+
{
|
232
|
+
{{0xBC3B294D,0xE20C7AD0}} /* -1.4724194439e-18 */ ,
|
233
|
+
{{0xBC818759,0xCA7AB225}} /* -3.0407471421e-17 */ ,
|
234
|
+
|
235
|
+
}
|
236
|
+
};
|
237
|
+
|
238
|
+
#else
|
239
|
+
static const db_number ln2hi = {{0xFEFA3800,0x3FE62E42}} /* +6.9314718056e-01 */;
|
240
|
+
static const db_number ln2lo = {{0x93C76730,0x3D2EF357}} /* +5.4979230187e-14 */;
|
241
|
+
static const db_number two52 = {{0x00000000,0x43300000}} /* +4.5035996274e+15 */;
|
242
|
+
static const db_number middle[8] =
|
243
|
+
{
|
244
|
+
{{0x333F9DE3,0x3FE7504F}} /* +7.2855339059e-01 */ ,
|
245
|
+
{{0x00000000,0x3FE90000}} /* +7.8125000000e-01 */ ,
|
246
|
+
{{0x00000000,0x3FEB0000}} /* +8.4375000000e-01 */ ,
|
247
|
+
{{0x00000000,0x3FED0000}} /* +9.0625000000e-01 */ ,
|
248
|
+
{{0x00000000,0x3FF00000}} /* +1.0000000000e+00 */ ,
|
249
|
+
{{0x00000000,0x3FF20000}} /* +1.1250000000e+00 */ ,
|
250
|
+
{{0x00000000,0x3FF40000}} /* +1.2500000000e+00 */ ,
|
251
|
+
{{0x333F9DE9,0x3FF5D04F}} /* +1.3633567812e+00 */
|
252
|
+
};
|
253
|
+
|
254
|
+
static const db_number Poly_h[8][13] =
|
255
|
+
{
|
256
|
+
/* polynomial 1 */
|
257
|
+
{
|
258
|
+
{{0x73F60B09,0xBFD444B8}} /* -3.1669436764e-01 */ ,
|
259
|
+
{{0x980C433A,0x3FF5F619}} /* +1.3725830020e+00 */ ,
|
260
|
+
{{0x824C9A57,0xBFEE24CC}} /* -9.4199204873e-01 */ ,
|
261
|
+
{{0x47881604,0x3FEB954C}} /* +8.6197484942e-01 */ ,
|
262
|
+
{{0xC58FCD22,0xBFEC6529}} /* -8.8734901987e-01 */ ,
|
263
|
+
{{0x1AC1D834,0x3FEF2E06}} /* +9.7436814524e-01 */ ,
|
264
|
+
{{0xF5D42E1A,0xBFF1D4FE}} /* -1.1145009616e+00 */ ,
|
265
|
+
{{0x67F441DC,0x3FF4FAB7}} /* +1.3112100659e+00 */ ,
|
266
|
+
{{0xEA47B471,0xBFF93248}} /* -1.5747765686e+00 */ ,
|
267
|
+
{{0x85276A57,0x3FFEBDCE}} /* +1.9213395311e+00 */ ,
|
268
|
+
{{0x0ABAD697,0xC002FCE1}} /* -2.3734761084e+00 */ ,
|
269
|
+
{{0x8C0B7AF7,0x4007BFE9}} /* +2.9687071744e+00 */ ,
|
270
|
+
{{0xF57FD2EC,0xC00DE4D4}} /* -3.7367343120e+00 */
|
271
|
+
},
|
272
|
+
/* polynomial 2 */
|
273
|
+
{
|
274
|
+
{{0x6CB3B379,0xBFCF991C}} /* -2.4686007793e-01 */ ,
|
275
|
+
{{0x47AE147B,0x3FF47AE1}} /* +1.2800000000e+00 */ ,
|
276
|
+
{{0xEB1C432D,0xBFEA36E2}} /* -8.1920000000e-01 */ ,
|
277
|
+
{{0x80F29213,0x3FE65E9F}} /* +6.9905066667e-01 */ ,
|
278
|
+
{{0xE2308C3F,0xBFE5798E}} /* -6.7108864000e-01 */ ,
|
279
|
+
{{0xE1793910,0x3FE5FD7F}} /* +6.8719476736e-01 */ ,
|
280
|
+
{{0xAC3CC49E,0xBFE774CC}} /* -7.3300775185e-01 */ ,
|
281
|
+
{{0x779F31B6,0x3FE9BC1F}} /* +8.0421422351e-01 */ ,
|
282
|
+
{{0x9C89806A,0xBFECD2B2}} /* -9.0071993421e-01 */ ,
|
283
|
+
{{0xF663DD55,0x3FF065A0}} /* +1.0248117089e+00 */ ,
|
284
|
+
{{0x64D28253,0xBFF2E3A7}} /* -1.1805795611e+00 */ ,
|
285
|
+
{{0x162168A9,0x3FF613D4}} /* +1.3798409333e+00 */ ,
|
286
|
+
{{0x1E7E75E1,0xBFF9EC69}} /* -1.6202174369e+00 */
|
287
|
+
},
|
288
|
+
/* polynomial 3 */
|
289
|
+
{
|
290
|
+
{{0x6B543DB2,0xBFC5BF40}} /* -1.6989903680e-01 */ ,
|
291
|
+
{{0xBDA12F68,0x3FF2F684}} /* +1.1851851852e+00 */ ,
|
292
|
+
{{0xE0BF08C7,0xBFE67980}} /* -7.0233196159e-01 */ ,
|
293
|
+
{{0x5F678885,0x3FE1C1FA}} /* +5.5492895731e-01 */ ,
|
294
|
+
{{0x1B62B9D2,0xBFDF91BD}} /* -4.9327018427e-01 */ ,
|
295
|
+
{{0x8242EF01,0x3FDDEEAF}} /* +4.6769321175e-01 */ ,
|
296
|
+
{{0xA36B029B,0xBFDD9015}} /* -4.6191922149e-01 */ ,
|
297
|
+
{{0x7F176341,0x3FDE0836}} /* +4.6925127422e-01 */ ,
|
298
|
+
{{0x26663631,0xBFDF24F6}} /* -4.8663095236e-01 */ ,
|
299
|
+
{{0x19D8F153,0x3FE067BA}} /* +5.1266198204e-01 */ ,
|
300
|
+
{{0xECA216B7,0xBFE17FB2}} /* -5.4683824747e-01 */ ,
|
301
|
+
{{0x2FABC4B9,0x3FE2ECE6}} /* +5.9141835509e-01 */ ,
|
302
|
+
{{0x21A51E4E,0xBFE492F3}} /* -6.4293819972e-01 */
|
303
|
+
},
|
304
|
+
/* polynomial 4 */
|
305
|
+
{
|
306
|
+
{{0x5D594989,0xBFB9335E}} /* -9.8440072813e-02 */ ,
|
307
|
+
{{0x611A7B96,0x3FF1A7B9}} /* +1.1034482759e+00 */ ,
|
308
|
+
{{0x24872744,0xBFE37B48}} /* -6.0879904875e-01 */ ,
|
309
|
+
{{0x29F8DE8E,0x3FDCA99C}} /* +4.4785217379e-01 */ ,
|
310
|
+
{{0x3D37E454,0xBFD7B881}} /* -3.7063628176e-01 */ ,
|
311
|
+
{{0x55D1F3A8,0x3FD4F08E}} /* +3.2718237286e-01 */ ,
|
312
|
+
{{0x346E99D3,0xBFD3413F}} /* -3.0085735436e-01 */ ,
|
313
|
+
{{0x15433E66,0x3FD23625}} /* +2.8455473973e-01 */ ,
|
314
|
+
{{0x9976A7ED,0xBFD19561}} /* -2.7474250781e-01 */ ,
|
315
|
+
{{0x5935F4CB,0x3FD13F21}} /* +2.6947816574e-01 */ ,
|
316
|
+
{{0x8299A6A4,0xBFD120AC}} /* -2.6761925463e-01 */ ,
|
317
|
+
{{0x325D4F09,0x3FD13CDB}} /* +2.6933936995e-01 */ ,
|
318
|
+
{{0x858B6D5D,0xBFD1720B}} /* -2.7258575479e-01 */
|
319
|
+
},
|
320
|
+
/* polynomial 5 */
|
321
|
+
{
|
322
|
+
{{0x00000000,0x00000000}} /* +0.0000000000e-01 */ ,
|
323
|
+
{{0x00000000,0x3FF00000}} /* +1.0000000000e+00 */ ,
|
324
|
+
{{0x00000000,0xBFE00000}} /* -5.0000000000e-01 */ ,
|
325
|
+
{{0x55555582,0x3FD55555}} /* +3.3333333333e-01 */ ,
|
326
|
+
{{0x000000A9,0xBFD00000}} /* -2.5000000000e-01 */ ,
|
327
|
+
{{0x99958511,0x3FC99999}} /* +1.9999999999e-01 */ ,
|
328
|
+
{{0x554BF922,0xBFC55555}} /* -1.6666666665e-01 */ ,
|
329
|
+
{{0xA3AEF673,0x3FC24924}} /* +1.4285715096e-01 */ ,
|
330
|
+
{{0x1CE3E886,0xBFC00000}} /* -1.2500001345e-01 */ ,
|
331
|
+
{{0x13CEB1B9,0x3FBC7184}} /* +1.1110711559e-01 */ ,
|
332
|
+
{{0xE1BDC076,0xBFB99941}} /* -9.9994771588e-02 */ ,
|
333
|
+
{{0xBC144107,0x3FB78146}} /* +9.1816349905e-02 */ ,
|
334
|
+
{{0x0AA58754,0xBFB595CF}} /* -8.4317150211e-02 */
|
335
|
+
},
|
336
|
+
/* polynomial 6 */
|
337
|
+
{
|
338
|
+
{{0x6E2AF2E6,0x3FBE2707}} /* +1.1778303566e-01 */ ,
|
339
|
+
{{0x1C71C71C,0x3FEC71C7}} /* +8.8888888889e-01 */ ,
|
340
|
+
{{0xFCD6E9E0,0xBFD948B0}} /* -3.9506172840e-01 */ ,
|
341
|
+
{{0x80FEB690,0x3FCDF756}} /* +2.3411065386e-01 */ ,
|
342
|
+
{{0xAB547A1A,0xBFC3FA39}} /* -1.5607376924e-01 */ ,
|
343
|
+
{{0x98A29957,0x3FBC6990}} /* +1.1098579146e-01 */ ,
|
344
|
+
{{0x6791851B,0xBFB50BD3}} /* -8.2211697374e-02 */ ,
|
345
|
+
{{0xA288F0A9,0x3FB00902}} /* +6.2637486154e-02 */ ,
|
346
|
+
{{0x5F283335,0xBFA8F192}} /* -4.8718046299e-02 */ ,
|
347
|
+
{{0xE7508F6E,0x3FA3B540}} /* +3.8492229687e-02 */ ,
|
348
|
+
{{0xBFE2263F,0xBF9F8850}} /* -3.0793439590e-02 */ ,
|
349
|
+
{{0x12EF8724,0x3F99B300}} /* +2.5096894413e-02 */ ,
|
350
|
+
{{0x99AF0E14,0xBF94F85D}} /* -2.0478689675e-02 */
|
351
|
+
},
|
352
|
+
/* polynomial 7 */
|
353
|
+
{
|
354
|
+
{{0xC79A9A22,0x3FCC8FF7}} /* +2.2314355131e-01 */ ,
|
355
|
+
{{0x9999999A,0x3FE99999}} /* +8.0000000000e-01 */ ,
|
356
|
+
{{0x47AE147B,0xBFD47AE1}} /* -3.2000000000e-01 */ ,
|
357
|
+
{{0xC3ECE2B2,0x3FC5D867}} /* +1.7066666667e-01 */ ,
|
358
|
+
{{0xEB1C436A,0xBFBA36E2}} /* -1.0240000000e-01 */ ,
|
359
|
+
{{0xA0B52722,0x3FB0C6F7}} /* +6.5535999999e-02 */ ,
|
360
|
+
{{0x80EFFFCD,0xBFA65E9F}} /* -4.3690666665e-02 */ ,
|
361
|
+
{{0x96E552E6,0x3F9EADA7}} /* +2.9959314904e-02 */ ,
|
362
|
+
{{0xEF8F2073,0xBF95798E}} /* -2.0971520778e-02 */ ,
|
363
|
+
{{0x71A5F85C,0x3F8E8A9C}} /* +1.4912817210e-02 */ ,
|
364
|
+
{{0xDA92B978,0xBF85FD5B}} /* -1.0737149818e-02 */ ,
|
365
|
+
{{0xDB58E5DE,0x3F801A73}} /* +7.8629542651e-03 */ ,
|
366
|
+
{{0x588CDC6F,0xBF77A54B}} /* -5.7728713226e-03 */
|
367
|
+
},
|
368
|
+
/* polynomial 8 */
|
369
|
+
{
|
370
|
+
{{0x05AA02DB,0x3FD3D638}} /* +3.0994988015e-01 */ ,
|
371
|
+
{{0xD84B7B4A,0x3FE778B2}} /* +7.3348371739e-01 */ ,
|
372
|
+
{{0x582A4354,0xBFD13748}} /* -2.6899918184e-01 */ ,
|
373
|
+
{{0x08B6E75D,0x3FC0D63A}} /* +1.3153767992e-01 */ ,
|
374
|
+
{{0xBDFF0D07,0xBFB28638}} /* -7.2360559831e-02 */ ,
|
375
|
+
{{0x0841B395,0x3FA5BD59}} /* +4.2460233934e-02 */ ,
|
376
|
+
{{0x93FDD519,0xBF9A937C}} /* -2.5953241856e-02 */ ,
|
377
|
+
{{0xB37AD191,0x3F90B55A}} /* +1.6316811757e-02 */ ,
|
378
|
+
{{0xA500F702,0xBF857265}} /* -1.0472101305e-02 */ ,
|
379
|
+
{{0x97F62E2F,0x3F7BF747}} /* +6.8276211381e-03 */ ,
|
380
|
+
{{0x37BCA347,0xBF727615}} /* -4.5071438615e-03 */ ,
|
381
|
+
{{0x340868F6,0x3F68B6F6}} /* +3.0169304521e-03 */ ,
|
382
|
+
{{0x5B164CA3,0xBF60A0BF}} /* -2.0297753733e-03 */
|
383
|
+
}
|
384
|
+
};
|
385
|
+
|
386
|
+
static const db_number Poly_l[8][2] =
|
387
|
+
{
|
388
|
+
/* polynomial 1 */
|
389
|
+
{
|
390
|
+
{{0xC9731542,0xBC531A78}} /* -4.1423907624e-18 */ ,
|
391
|
+
{{0xD7E733C1,0x3C6DA901}} /* +1.2863054535e-17 */ ,
|
392
|
+
|
393
|
+
},
|
394
|
+
/* polynomial 2 */
|
395
|
+
{
|
396
|
+
{{0x792F85DD,0xBC6F6650}} /* -1.3617434188e-17 */ ,
|
397
|
+
{{0xF7DDA2CA,0xBC7EB9DF}} /* -2.6650620715e-17 */ ,
|
398
|
+
|
399
|
+
},
|
400
|
+
/* polynomial 3 */
|
401
|
+
{
|
402
|
+
{{0xE8EE7A2B,0x3C21F5B3}} /* +4.8680071630e-19 */ ,
|
403
|
+
{{0x2CEA2030,0x3C92F660}} /* +6.5789058301e-17 */ ,
|
404
|
+
|
405
|
+
},
|
406
|
+
/* polynomial 4 */
|
407
|
+
{
|
408
|
+
{{0x527726CF,0x3C5478A8}} /* +4.4390095748e-18 */ ,
|
409
|
+
{{0xA4B8A6F9,0x3C71A77F}} /* +1.5312656901e-17 */ ,
|
410
|
+
|
411
|
+
},
|
412
|
+
/* polynomial 5 */
|
413
|
+
{
|
414
|
+
{{0x00000000,0x00000000}} /* +0.0000000000e-01 */ ,
|
415
|
+
{{0xAAF9039B,0xBC03E91A}} /* -1.3491922402e-19 */ ,
|
416
|
+
|
417
|
+
},
|
418
|
+
/* polynomial 6 */
|
419
|
+
{
|
420
|
+
{{0xDBC40302,0xBC3615B0}} /* -1.1972156066e-18 */ ,
|
421
|
+
{{0x047FA77E,0x3C8C55D6}} /* +4.9153904729e-17 */ ,
|
422
|
+
|
423
|
+
},
|
424
|
+
/* polynomial 7 */
|
425
|
+
{
|
426
|
+
{{0x97A41961,0xBC64F68B}} /* -9.0912813346e-18 */ ,
|
427
|
+
{{0x9DE4BE41,0xBC89A0B0}} /* -4.4456964079e-17 */ ,
|
428
|
+
|
429
|
+
},
|
430
|
+
/* polynomial 8 */
|
431
|
+
{
|
432
|
+
{{0xE20C7AD0,0xBC3B294D}} /* -1.4724194439e-18 */ ,
|
433
|
+
{{0xCA7AB225,0xBC818759}} /* -3.0407471421e-17 */ ,
|
434
|
+
|
435
|
+
}
|
436
|
+
};
|
437
|
+
|
438
|
+
#endif
|
439
|
+
|
440
|
+
|