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.
Files changed (111) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +12 -0
  3. data/crmf.gemspec +102 -1
  4. data/ext/crlibm-1.0beta5/AUTHORS +2 -0
  5. data/ext/crlibm-1.0beta5/CMakeLists.txt +154 -0
  6. data/ext/crlibm-1.0beta5/COPYING +340 -0
  7. data/ext/crlibm-1.0beta5/COPYING.LIB +504 -0
  8. data/ext/crlibm-1.0beta5/ChangeLog +125 -0
  9. data/ext/crlibm-1.0beta5/Makefile.am +134 -0
  10. data/ext/crlibm-1.0beta5/NEWS +0 -0
  11. data/ext/crlibm-1.0beta5/README +31 -0
  12. data/ext/crlibm-1.0beta5/README.DEV +23 -0
  13. data/ext/crlibm-1.0beta5/README.md +5 -0
  14. data/ext/crlibm-1.0beta5/TODO +66 -0
  15. data/ext/crlibm-1.0beta5/VERSION +1 -0
  16. data/ext/crlibm-1.0beta5/acos-td.c +1195 -0
  17. data/ext/crlibm-1.0beta5/acos-td.h +629 -0
  18. data/ext/crlibm-1.0beta5/asin-td.c +1297 -0
  19. data/ext/crlibm-1.0beta5/asin-td.h +620 -0
  20. data/ext/crlibm-1.0beta5/asincos.c +4488 -0
  21. data/ext/crlibm-1.0beta5/asincos.h +575 -0
  22. data/ext/crlibm-1.0beta5/atan-itanium.c +846 -0
  23. data/ext/crlibm-1.0beta5/atan-pentium.c +280 -0
  24. data/ext/crlibm-1.0beta5/atan-pentium.h +343 -0
  25. data/ext/crlibm-1.0beta5/atan_accurate.c +341 -0
  26. data/ext/crlibm-1.0beta5/atan_accurate.h +198 -0
  27. data/ext/crlibm-1.0beta5/atan_fast.c +506 -0
  28. data/ext/crlibm-1.0beta5/atan_fast.h +680 -0
  29. data/ext/crlibm-1.0beta5/configure.ac +419 -0
  30. data/ext/crlibm-1.0beta5/crlibm.h +204 -0
  31. data/ext/crlibm-1.0beta5/crlibm.spec +42 -0
  32. data/ext/crlibm-1.0beta5/crlibm_private.c +397 -0
  33. data/ext/crlibm-1.0beta5/crlibm_private.h +1048 -0
  34. data/ext/crlibm-1.0beta5/csh_fast.c +721 -0
  35. data/ext/crlibm-1.0beta5/csh_fast.h +771 -0
  36. data/ext/crlibm-1.0beta5/double-extended.h +496 -0
  37. data/ext/crlibm-1.0beta5/exp-itanium.c +723 -0
  38. data/ext/crlibm-1.0beta5/exp-td-standalone.c +87 -0
  39. data/ext/crlibm-1.0beta5/exp-td.c +1363 -0
  40. data/ext/crlibm-1.0beta5/exp-td.h +685 -0
  41. data/ext/crlibm-1.0beta5/exp_build_coeffs/exp_fast_table.c +125 -0
  42. data/ext/crlibm-1.0beta5/expm1-standalone.c +119 -0
  43. data/ext/crlibm-1.0beta5/expm1.c +2515 -0
  44. data/ext/crlibm-1.0beta5/expm1.h +715 -0
  45. data/ext/crlibm-1.0beta5/interval.h +238 -0
  46. data/ext/crlibm-1.0beta5/log-de.c +480 -0
  47. data/ext/crlibm-1.0beta5/log-de.h +747 -0
  48. data/ext/crlibm-1.0beta5/log-de2.c +280 -0
  49. data/ext/crlibm-1.0beta5/log-de2.h +2352 -0
  50. data/ext/crlibm-1.0beta5/log-td.c +1158 -0
  51. data/ext/crlibm-1.0beta5/log-td.h +819 -0
  52. data/ext/crlibm-1.0beta5/log.c +2244 -0
  53. data/ext/crlibm-1.0beta5/log.h +1592 -0
  54. data/ext/crlibm-1.0beta5/log10-td.c +906 -0
  55. data/ext/crlibm-1.0beta5/log10-td.h +823 -0
  56. data/ext/crlibm-1.0beta5/log1p.c +1295 -0
  57. data/ext/crlibm-1.0beta5/log2-td.c +1521 -0
  58. data/ext/crlibm-1.0beta5/log2-td.h +821 -0
  59. data/ext/crlibm-1.0beta5/log2_accurate.c +330 -0
  60. data/ext/crlibm-1.0beta5/log2_accurate.h +261 -0
  61. data/ext/crlibm-1.0beta5/log_accurate.c +133 -0
  62. data/ext/crlibm-1.0beta5/log_accurate.h +261 -0
  63. data/ext/crlibm-1.0beta5/log_fast.c +360 -0
  64. data/ext/crlibm-1.0beta5/log_fast.h +440 -0
  65. data/ext/crlibm-1.0beta5/pow.c +1396 -0
  66. data/ext/crlibm-1.0beta5/pow.h +3101 -0
  67. data/ext/crlibm-1.0beta5/prepare +20 -0
  68. data/ext/crlibm-1.0beta5/rem_pio2_accurate.c +219 -0
  69. data/ext/crlibm-1.0beta5/rem_pio2_accurate.h +53 -0
  70. data/ext/crlibm-1.0beta5/scs_lib/AUTHORS +3 -0
  71. data/ext/crlibm-1.0beta5/scs_lib/COPYING +504 -0
  72. data/ext/crlibm-1.0beta5/scs_lib/ChangeLog +16 -0
  73. data/ext/crlibm-1.0beta5/scs_lib/Doxyfile.dev +939 -0
  74. data/ext/crlibm-1.0beta5/scs_lib/Doxyfile.user +939 -0
  75. data/ext/crlibm-1.0beta5/scs_lib/INSTALL +215 -0
  76. data/ext/crlibm-1.0beta5/scs_lib/Makefile.am +17 -0
  77. data/ext/crlibm-1.0beta5/scs_lib/NEWS +0 -0
  78. data/ext/crlibm-1.0beta5/scs_lib/README +9 -0
  79. data/ext/crlibm-1.0beta5/scs_lib/README.DEV +38 -0
  80. data/ext/crlibm-1.0beta5/scs_lib/TODO +4 -0
  81. data/ext/crlibm-1.0beta5/scs_lib/VERSION +1 -0
  82. data/ext/crlibm-1.0beta5/scs_lib/addition_scs.c +623 -0
  83. data/ext/crlibm-1.0beta5/scs_lib/division_scs.c +110 -0
  84. data/ext/crlibm-1.0beta5/scs_lib/double2scs.c +174 -0
  85. data/ext/crlibm-1.0beta5/scs_lib/main.dox +104 -0
  86. data/ext/crlibm-1.0beta5/scs_lib/multiplication_scs.c +339 -0
  87. data/ext/crlibm-1.0beta5/scs_lib/poly_fct.c +112 -0
  88. data/ext/crlibm-1.0beta5/scs_lib/print_scs.c +73 -0
  89. data/ext/crlibm-1.0beta5/scs_lib/rand_scs.c +63 -0
  90. data/ext/crlibm-1.0beta5/scs_lib/scs.h +353 -0
  91. data/ext/crlibm-1.0beta5/scs_lib/scs2double.c +411 -0
  92. data/ext/crlibm-1.0beta5/scs_lib/scs2mpf.c +58 -0
  93. data/ext/crlibm-1.0beta5/scs_lib/scs2mpfr.c +61 -0
  94. data/ext/crlibm-1.0beta5/scs_lib/scs_private.c +23 -0
  95. data/ext/crlibm-1.0beta5/scs_lib/scs_private.h +133 -0
  96. data/ext/crlibm-1.0beta5/scs_lib/wrapper_scs.h +486 -0
  97. data/ext/crlibm-1.0beta5/scs_lib/zero_scs.c +52 -0
  98. data/ext/crlibm-1.0beta5/trigo_accurate.c +501 -0
  99. data/ext/crlibm-1.0beta5/trigo_accurate.h +331 -0
  100. data/ext/crlibm-1.0beta5/trigo_fast.c +1243 -0
  101. data/ext/crlibm-1.0beta5/trigo_fast.h +639 -0
  102. data/ext/crlibm-1.0beta5/trigpi.c +1169 -0
  103. data/ext/crlibm-1.0beta5/trigpi.h +556 -0
  104. data/ext/crlibm-1.0beta5/triple-double.c +57 -0
  105. data/ext/crlibm-1.0beta5/triple-double.h +1380 -0
  106. data/ext/crmf/crmf.c +16 -16
  107. data/ext/crmf/extconf.rb +12 -8
  108. data/lib/crmf/version.rb +1 -1
  109. data/tests/perf.rb +100 -219
  110. metadata +104 -3
  111. 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
+