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,680 @@
1
+
2
+ /*File generated by maple/atan.mpl */
3
+ #ifndef _ATAN_FAST_H
4
+ #define _ATAN_FAST_H
5
+
6
+ #include "crlibm.h"
7
+ #include "crlibm_private.h"
8
+ #ifdef WORDS_BIGENDIAN
9
+ static const db_number HALFPI = {{0x3FF921FB,0x54442D18}};static const db_number HALFPI_TO_PLUS_INFINITY = {{0x3FF921FB,0x54442D19}};
10
+ #else
11
+ static const db_number HALFPI = {{0x54442D18,0x3FF921FB}};static const db_number HALFPI_TO_PLUS_INFINITY = {{0x54442D19,0x3FF921FB}};
12
+ #endif
13
+ #define MIN_REDUCTION_NEEDED 0.01269144369306618004077670910586377580133132772550
14
+ #define INVPIH 0.31830988618379069121644420192751567810773849487305
15
+ #define INVPIL -0.00000000000000001967867667518248588189519091409181
16
+ #define nb_of_ai 62
17
+ #define nb_of_bi 62
18
+ static const double rncst[4] ={
19
+ 1.00108178765940960655050071055243374002677613873338 , /* i<10 */
20
+ 1.00005232457100223306383112145248847898875939835839 , /* i>10 */
21
+ 1.00177430465884899885886845639867196876576265849646 , /* e > 2^-10 */
22
+ 1.00001038174963923723172604569348623337721036178939 , /* e < 2^-10 */
23
+ };
24
+ static const double epsilon[4] ={
25
+ 5.98811545469121308132334292226294391299405661608483e-20 ,
26
+ 2.85148356343799927177205125935801754271662806490715e-21 ,
27
+ 9.82484875894815915914535124879847312836985338769278e-20 ,
28
+ 5.23355329168770007392834621113547073694289911517614e-22 ,
29
+ };
30
+ #define DEGREE 4
31
+ static double const coef_poly[4] =
32
+ {
33
+ /* coef for degree 9 */ 0.11111111111111110494320541874913033097982406616211,
34
+ /* coef for degree 7 */ -0.14285714285714284921269268124888185411691665649414,
35
+ /* coef for degree 5 */ 0.20000000000000001110223024625156540423631668090820,
36
+ /* coef for degree 3 */ -0.33333333333333331482961625624739099293947219848633,
37
+ };
38
+ #define A 0
39
+ #define B 1
40
+ #define ATAN_BHI 2
41
+ #define ATAN_BLO 3
42
+
43
+ #ifdef WORDS_BIGENDIAN
44
+
45
+ /* limits of the intervals [a[i],b[i]] */
46
+ static db_number const arctan_table[62][4] =
47
+ {
48
+ {
49
+ /*a[0] */ {{0x3F89FDF8,0xBCCE533D}} /* +1.2691443693e-02 */ ,
50
+ /*b[0] : */ {{0x3F99FF0B,0x27760007}} /* +2.5386976512e-02 */ ,
51
+ /*atan_b[0]*/ {{0x3F99FD9D,0x4969F96C}} /* +2.5381524664e-02 */,{{0xBC301997,0x750685EA}} /* -8.7278097631e-19 */ ,
52
+ }
53
+ ,{
54
+ /*a[1] */ {{0x3FA3809F,0x90CEBC31}} /* +3.8090692927e-02 */ ,
55
+ /*b[1] : */ {{0x3FAA0355,0xE3547CC2}} /* +5.0806697846e-02 */ ,
56
+ /*atan_b[1]*/ {{0x3FA9FD9D,0x4936262D}} /* +5.0763049304e-02 */,{{0xBC4C1F96,0x3A2D0F59}} /* -3.0491436238e-18 */ ,
57
+ }
58
+ ,{
59
+ /*a[2] */ {{0x3FB04419,0x68FBA526}} /* +6.3539112216e-02 */ ,
60
+ /*b[2] : */ {{0x3FB387E0,0xABF7BFB9}} /* +7.6292078003e-02 */ ,
61
+ /*atan_b[2]*/ {{0x3FB37E35,0xF6C1E06C}} /* +7.6144573921e-02 */,{{0xBC556710,0x8378E024}} /* -4.6409481568e-18 */ ,
62
+ }
63
+ ,{
64
+ /*a[3] */ {{0x3FB6CD46,0xABCDFA25}} /* +8.9069764084e-02 */ ,
65
+ /*b[3] : */ {{0x3FBA1491,0xE265B8AB}} /* +1.0187637117e-01 */ ,
66
+ /*atan_b[3]*/ {{0x3FB9FD9D,0x48CF1996}} /* +1.0152609851e-01 */,{{0xBC4360DC,0xB73BED3C}} /* -2.1010068528e-18 */ ,
67
+ }
68
+ ,{
69
+ /*a[4] */ {{0x3FBD5E09,0x6D2EA546}} /* +1.1471613803e-01 */ ,
70
+ /*b[4] : */ {{0x3FC054FA,0x9124D46B}} /* +1.2759334647e-01 */ ,
71
+ /*atan_b[4]*/ {{0x3FC03E82,0x4D618156}} /* +1.2690762308e-01 */,{{0x3C62604E,0x49A86344}} /* +7.9694040325e-18 */ ,
72
+ }
73
+ ,{
74
+ /*a[5] */ {{0x3FC1FC4E,0xD691E891}} /* +1.4051232793e-01 */ ,
75
+ /*b[5] : */ {{0x3FC3A526,0x51F57043}} /* +1.5347746851e-01 */ ,
76
+ /*atan_b[5]*/ {{0x3FC37E35,0xF64EF83E}} /* +1.5228914763e-01 */,{{0x3C5F2B13,0xB4A55EA6}} /* +6.7585410867e-18 */ ,
77
+ }
78
+ ,{
79
+ /*a[6] */ {{0x3FC54FA6,0x531F610B}} /* +1.6649321612e-01 */ ,
80
+ /*b[6] : */ {{0x3FC6FBF4,0xB99F2601}} /* +1.7956408561e-01 */ ,
81
+ /*atan_b[6]*/ {{0x3FC6BDE9,0x9F302425}} /* +1.7767067216e-01 */,{{0xBC23B62A,0xC4D330CE}} /* -5.3428372026e-19 */ ,
82
+ }
83
+ ,{
84
+ /*a[7] */ {{0x3FC8AA38,0x0550EAF1}} /* +1.9269466648e-01 */ ,
85
+ /*b[7] : */ {{0x3FCA5A97,0x61D9D63D}} /* +2.0588962820e-01 */ ,
86
+ /*atan_b[7]*/ {{0x3FC9FD9D,0x48053FC8}} /* +2.0305219666e-01 */,{{0xBC67A12C,0x98474AF1}} /* -1.0247699700e-17 */ ,
87
+ }
88
+ ,{
89
+ /*a[8] */ {{0x3FCC0D3A,0xB8975BD9}} /* +2.1915372861e-01 */ ,
90
+ /*b[8] : */ {{0x3FCDC24A,0xBCBF6ABC}} /* +2.3249181954e-01 */ ,
91
+ /*atan_b[8]*/ {{0x3FCD3D50,0xF0CE8DD9}} /* +2.2843372114e-01 */,{{0x3C6EF257,0x3A31D353}} /* +1.3420967238e-17 */ ,
92
+ }
93
+ ,{
94
+ /*a[9] */ {{0x3FCF79F0,0xFEE46885}} /* +2.4590885588e-01 */ ,
95
+ /*b[9] : */ {{0x3FD09A2B,0xFCF66B85}} /* +2.5940990165e-01 */ ,
96
+ /*atan_b[9]*/ {{0x3FD03E82,0x4CC62C6B}} /* +2.5381524560e-01 */,{{0x3C5DA594,0x95C6E482}} /* +6.4286246635e-18 */ ,
97
+ }
98
+ ,{
99
+ /*a[10] */ {{0x3FD178D5,0x943274CA}} /* +2.7300013993e-01 */ ,
100
+ /*b[10] : */ {{0x3FD2590B,0x8943E603}} /* +2.8668487935e-01 */ ,
101
+ /*atan_b[10]*/ {{0x3FD1DE5C,0x211F7969}} /* +2.7919677004e-01 */,{{0x3C3C4E87,0x0B01EF44}} /* +1.5345118889e-18 */ ,
102
+ }
103
+ ,{
104
+ /*a[11] */ {{0x3FD33AE4,0xB2CFB5F7}} /* +3.0046956503e-01 */ ,
105
+ /*b[11] : */ {{0x3FD41E78,0x81B0D1DF}} /* +3.1435978570e-01 */ ,
106
+ /*atan_b[11]*/ {{0x3FD37E35,0xF5735AA1}} /* +3.0457829447e-01 */,{{0xBC772D05,0x8D437AE9}} /* -2.0101859382e-17 */ ,
107
+ }
108
+ ,{
109
+ /*a[12] */ {{0x3FD503DF,0x0DD40A5B}} /* +3.2836128569e-01 */ ,
110
+ /*b[12] : */ {{0x3FD5EB31,0x1EB6A659}} /* +3.4247997283e-01 */ ,
111
+ /*atan_b[12]*/ {{0x3FD51E0F,0xC9C20060}} /* +3.2995981887e-01 */,{{0xBC6C0F53,0x20BA7A7B}} /* -1.2169025414e-17 */ ,
112
+ }
113
+ ,{
114
+ /*a[13] */ {{0x3FD6D488,0x3998DD14}} /* +3.5672193169e-01 */ ,
115
+ /*b[13] : */ {{0x3FD7BFFE,0xAAF865B1}} /* +3.7109343239e-01 */ ,
116
+ /*atan_b[13]*/ {{0x3FD6BDE9,0x9E0B9E67}} /* +3.5534134325e-01 */,{{0x3C797792,0x870D5E8E}} /* +2.2089170409e-17 */ ,
117
+ }
118
+ ,{
119
+ /*a[14] */ {{0x3FD8ADAF,0x964ABFA5}} /* +3.8560094525e-01 */ ,
120
+ /*b[14] : */ {{0x3FD99DB7,0x00A6F44E}} /* +4.0025115074e-01 */ ,
121
+ /*atan_b[14]*/ {{0x3FD85DC3,0x72506BCA}} /* +3.8072286762e-01 */,{{0x3C720BD1,0x43A1CBA3}} /* +1.5652550322e-17 */ ,
122
+ }
123
+ ,{
124
+ /*a[15] */ {{0x3FDA9031,0xE241114E}} /* +4.1505095573e-01 */ ,
125
+ /*b[15] : */ {{0x3FDB853E,0x327F0E90}} /* +4.3000750476e-01 */ ,
126
+ /*atan_b[15]*/ {{0x3FD9FD9D,0x4690A2C8}} /* +4.0610439197e-01 */,{{0xBC6A048E,0xEFB73034}} /* -1.1283424731e-17 */ ,
127
+ }
128
+ ,{
129
+ /*a[16] */ {{0x3FDC7CFA,0xFB78B41D}} /* +4.4512819822e-01 */ ,
130
+ /*b[16] : */ {{0x3FDD7788,0x67BE333A}} /* +4.6042070514e-01 */ ,
131
+ /*atan_b[16]*/ {{0x3FDB9D77,0x1ACC80A6}} /* +4.3148591630e-01 */,{{0x3C6A9BD7,0xE8FB154D}} /* +1.1539711581e-17 */ ,
132
+ }
133
+ ,{
134
+ /*a[17] */ {{0x3FDE7507,0xD82B9DC6}} /* +4.7589298354e-01 */ ,
135
+ /*b[17] : */ {{0x3FDF759B,0xF3B4AACC}} /* +4.9155329513e-01 */ ,
136
+ /*atan_b[17]*/ {{0x3FDD3D50,0xEF044589}} /* +4.5686744062e-01 */,{{0x3C575857,0x09E8652E}} /* +5.0621568797e-18 */ ,
137
+ }
138
+ ,{
139
+ /*a[18] */ {{0x3FE03CB4,0x5FF4B2AB}} /* +5.0741022817e-01 */ ,
140
+ /*b[18] : */ {{0x3FE0C049,0xD9952BEF}} /* +5.2347271439e-01 */ ,
141
+ /*atan_b[18]*/ {{0x3FDEDD2A,0xC338344A}} /* +4.8224896492e-01 */,{{0x3C23C787,0x81513292}} /* +5.3612202011e-19 */ ,
142
+ }
143
+ ,{
144
+ /*a[19] */ {{0x3FE145A1,0xE826E4EA}} /* +5.3975005476e-01 */ ,
145
+ /*b[19] : */ {{0x3FE1CCD0,0xDDD96DE0}} /* +5.5625193911e-01 */ ,
146
+ /*atan_b[19]*/ {{0x3FE03E82,0x4BB44923}} /* +5.0763048922e-01 */,{{0x3C8CAF01,0x49DF0A58}} /* +4.9758137561e-17 */ ,
147
+ }
148
+ ,{
149
+ /*a[20] */ {{0x3FE255EB,0xED462BAC}} /* +5.7298847525e-01 */ ,
150
+ /*b[20] : */ {{0x3FE2E109,0x35B0819C}} /* +5.8997021185e-01 */ ,
151
+ /*atan_b[20]*/ {{0x3FE10E6F,0x35CAD39D}} /* +5.3301201350e-01 */,{{0x3C45DB33,0x0D1EB36B}} /* +2.3696591272e-18 */ ,
152
+ }
153
+ ,{
154
+ /*a[21] */ {{0x3FE36E3F,0xD4CDD9AC}} /* +6.0720817149e-01 */ ,
155
+ /*b[21] : */ {{0x3FE3FDA7,0xF51235D9}} /* +6.2471387735e-01 */ ,
156
+ /*atan_b[21]*/ {{0x3FE1DE5C,0x1FDFDE84}} /* +5.5839353776e-01 */,{{0x3C86FBEF,0xD3921CA6}} /* +3.9871106783e-17 */ ,
157
+ }
158
+ ,{
159
+ /*a[22] */ {{0x3FE48F5A,0xE1FB2991}} /* +6.4249939095e-01 */ ,
160
+ /*b[22] : */ {{0x3FE52373,0x18D0CCB0}} /* +6.6057734343e-01 */ ,
161
+ /*atan_b[22]*/ {{0x3FE2AE49,0x09F38FC9}} /* +5.8377506202e-01 */,{{0xBC84BBB5,0x058084C6}} /* -3.5966422408e-17 */ ,
162
+ }
163
+ ,{
164
+ /*a[23] */ {{0x3FE5BA0C,0x5FE86E27}} /* +6.7896097881e-01 */ ,
165
+ /*b[23] : */ {{0x3FE65343,0xDA588D41}} /* +6.9766419073e-01 */ ,
166
+ /*atan_b[23]*/ {{0x3FE37E35,0xF4060E3D}} /* +6.0915658627e-01 */,{{0x3BF6235C,0xAE25B9B7}} /* +7.5006911959e-20 */ ,
167
+ }
168
+ ,{
169
+ /*a[24] */ {{0x3FE6EF38,0x22C19A5D}} /* +7.1670157231e-01 */ ,
170
+ /*b[24] : */ {{0x3FE78E09,0x629002BC}} /* +7.3608845950e-01 */ ,
171
+ /*atan_b[24]*/ {{0x3FE44E22,0xDE17817F}} /* +6.3453811052e-01 */,{{0xBC85F46E,0x1A6D25E3}} /* -3.8085515717e-17 */ ,
172
+ }
173
+ ,{
174
+ /*a[25] */ {{0x3FE82FD9,0x70F967BD}} /* +7.5584098878e-01 */ ,
175
+ /*b[25] : */ {{0x3FE8D4CB,0xEE8B9555}} /* +7.7597614852e-01 */ ,
176
+ /*atan_b[25]*/ {{0x3FE51E0F,0xC82811DC}} /* +6.5991963475e-01 */,{{0xBC81CCF7,0xFCB9720C}} /* -3.0879221028e-17 */ ,
177
+ }
178
+ ,{
179
+ /*a[26] */ {{0x3FE97D06,0x69351A0D}} /* +7.9651184605e-01 */ ,
180
+ /*b[26] : */ {{0x3FEA28B0,0x7D0D616A}} /* +8.1746696877e-01 */ ,
181
+ /*atan_b[26]*/ {{0x3FE5EDFC,0xB237E838}} /* +6.8530115898e-01 */,{{0xBC833EA8,0xF8F29048}} /* -3.3384347049e-17 */ ,
182
+ }
183
+ ,{
184
+ /*a[27] */ {{0x3FEAD7F3,0xFE730FCD}} /* +8.3886146257e-01 */ ,
185
+ /*b[27] : */ {{0x3FEB8AFD,0x21335E3D}} /* +8.6071640477e-01 */ ,
186
+ /*atan_b[27]*/ {{0x3FE6BDE9,0x9C472DF1}} /* +7.1068268321e-01 */,{{0x3C5E8127,0x80DED249}} /* +6.6146109909e-18 */ ,
187
+ }
188
+ ,{
189
+ /*a[28] */ {{0x3FEC41FA,0xAA0A733E}} /* +8.8305409633e-01 */ ,
190
+ /*b[28] : */ {{0x3FECFD1E,0x1D9A7669}} /* +9.0589814932e-01 */ ,
191
+ /*atan_b[28]*/ {{0x3FE78DD6,0x86560CC5}} /* +7.3606420743e-01 */,{{0xBC7E962F,0x9396D511}} /* -2.6529701578e-17 */ ,
192
+ }
193
+ ,{
194
+ /*a[29] */ {{0x3FEDBC9B,0xFAEEEADF}} /* +9.2927359591e-01 */ ,
195
+ /*b[29] : */ {{0x3FEE80AB,0xF41419E7}} /* +9.5320699379e-01 */ ,
196
+ /*atan_b[29]*/ {{0x3FE85DC3,0x7064AEB4}} /* +7.6144573166e-01 */,{{0x3C77C0FC,0x5225ACD1}} /* +2.0603180716e-17 */ ,
197
+ }
198
+ ,{
199
+ /*a[30] */ {{0x3FEF4989,0x33AC790A}} /* +9.7772655575e-01 */ ,
200
+ /*b[30] : */ {{0x3FF00BB9,0x50BB2D02}} /* +1.0028622774e+00 */ ,
201
+ /*atan_b[30]*/ {{0x3FE92DB0,0x5A733DE9}} /* +7.8682725588e-01 */,{{0xBC6598C9,0xA318D041}} /* -9.3661305872e-18 */ ,
202
+ }
203
+ ,{
204
+ /*a[31] */ {{0x3FF07555,0x9AC922B4}} /* +1.0286460921e+00 */ ,
205
+ /*b[31] : */ {{0x3FF0E1BD,0x25F4BC57}} /* +1.0551120265e+00 */ ,
206
+ /*atan_b[31]*/ {{0x3FE9FD9D,0x4481E499}} /* +8.1220878010e-01 */,{{0xBC82E89F,0x9464A40D}} /* -3.2801339756e-17 */ ,
207
+ }
208
+ ,{
209
+ /*a[32] */ {{0x3FF15116,0x0440E8D3}} /* +1.0822963873e+00 */ ,
210
+ /*b[32] : */ {{0x3FF1C388,0xDEC8DA1A}} /* +1.1102379515e+00 */ ,
211
+ /*atan_b[32]*/ {{0x3FEACD8A,0x2E90CCEA}} /* +8.3759030433e-01 */,{{0x3C60B8DB,0xFE4AC33B}} /* +7.2520578222e-18 */ ,
212
+ }
213
+ ,{
214
+ /*a[33] */ {{0x3FF23941,0x329D3DD8}} /* +1.1389781930e+00 */ ,
215
+ /*b[33] : */ {{0x3FF2B26D,0x8F9CF3AD}} /* +1.1685615168e+00 */ ,
216
+ /*atan_b[33]*/ {{0x3FEB9D77,0x18A020D8}} /* +8.6297182855e-01 */,{{0x3C714EA3,0x43DDC7EE}} /* +1.5011584621e-17 */ ,
217
+ }
218
+ ,{
219
+ /*a[34] */ {{0x3FF32F3F,0xE2DB7094}} /* +1.1990355360e+00 */ ,
220
+ /*b[34] : */ {{0x3FF3AFED,0xC485093A}} /* +1.2304513623e+00 */ ,
221
+ /*atan_b[34]*/ {{0x3FEC6D64,0x02B00A17}} /* +8.8835335278e-01 */,{{0x3C5CF722,0xC1E56981}} /* +6.2808643065e-18 */ ,
222
+ }
223
+ ,{
224
+ /*a[35] */ {{0x3FF434B0,0xD38A35D7}} /* +1.2628639472e+00 */ ,
225
+ /*b[35] : */ {{0x3FF4BDC7,0x16D89BC7}} /* +1.2963324444e+00 */ ,
226
+ /*atan_b[35]*/ {{0x3FED3D50,0xECC0B1F8}} /* +9.1373487702e-01 */,{{0x3C8FFD9A,0xC689AE1B}} /* +5.5494919315e-17 */ ,
227
+ }
228
+ ,{
229
+ /*a[36] */ {{0x3FF54B73,0x6F41F96D}} /* +1.3309206339e+00 */ ,
230
+ /*b[36] : */ {{0x3FF5DDFE,0x11C53212}} /* +1.3666973776e+00 */ ,
231
+ /*atan_b[36]*/ {{0x3FEE0D3D,0xD6D24151}} /* +9.3911640126e-01 */,{{0xBC654F0F,0xC830B564}} /* -9.2412338910e-18 */ ,
232
+ }
233
+ ,{
234
+ /*a[37] */ {{0x3FF675B5,0x165CA5E1}} /* +1.4037371515e+00 */ ,
235
+ /*b[37] : */ {{0x3FF712ED,0x13170C5B}} /* +1.4421206232e+00 */ ,
236
+ /*atan_b[37]*/ {{0x3FEEDD2A,0xC0E4E05B}} /* +9.6449792552e-01 */,{{0xBC8FEAC3,0xBF676FFE}} /* -5.5367254830e-17 */ ,
237
+ }
238
+ ,{
239
+ /*a[38] */ {{0x3FF7B601,0xD0DEA3C6}} /* +1.4819353255e+00 */ ,
240
+ /*b[38] : */ {{0x3FF85F57,0x11FBEA40}} /* +1.5232763960e+00 */ ,
241
+ /*atan_b[38]*/ {{0x3FEFAD17,0xAAF8B69E}} /* +9.8987944978e-01 */,{{0x3C8B8DA3,0xE69F3AF7}} /* +4.7797325436e-17 */ ,
242
+ }
243
+ ,{
244
+ /*a[39] */ {{0x3FF90F59,0x79506F51}} /* +1.5662474383e+00 */ ,
245
+ /*b[39] : */ {{0x3FF9C67F,0x8AF460DF}} /* +1.6109614780e+00 */ ,
246
+ /*atan_b[39]*/ {{0x3FF03E82,0x4A86F56B}} /* +1.0152609740e+00 */,{{0x3C8C4641,0xDE1DF40B}} /* +4.9048339280e-17 */ ,
247
+ }
248
+ ,{
249
+ /*a[40] */ {{0x3FFA854A,0xD74CF791}} /* +1.6575420771e+00 */ ,
250
+ /*b[40] : */ {{0x3FFB4C49,0x4A696F14}} /* +1.7061245829e+00 */ ,
251
+ /*atan_b[40]*/ {{0x3FF0A678,0xBF92516C}} /* +1.0406424983e+00 */,{{0xBC9194FF,0x6A0966AF}} /* -6.0999893718e-17 */ ,
252
+ }
253
+ ,{
254
+ /*a[41] */ {{0x3FFC1C16,0xB3972246}} /* +1.7568575874e+00 */ ,
255
+ /*b[41] : */ {{0x3FFCF55E,0x80F0B83E}} /* +1.8099045788e+00 */ ,
256
+ /*atan_b[41]*/ {{0x3FF10E6F,0x349E81BA}} /* +1.0660240226e+00 */,{{0x3C9C7D12,0x3CD05C13}} /* +9.8839546037e-17 */ ,
257
+ }
258
+ ,{
259
+ /*a[42] */ {{0x3FFDD8DD,0xC6DB1831}} /* +1.8654458778e+00 */ ,
260
+ /*b[42] : */ {{0x3FFEC765,0x927D039C}} /* +1.9236808512e+00 */ ,
261
+ /*atan_b[42]*/ {{0x3FF17665,0xA9AB9836}} /* +1.0914055469e+00 */,{{0xBC924DFA,0x7B9C115B}} /* -6.3506850178e-17 */ ,
262
+ }
263
+ ,{
264
+ /*a[43] */ {{0x3FFFC1DD,0xA4F6D032}} /* +1.9848305172e+00 */ ,
265
+ /*b[43] : */ {{0x400064A3,0xCDEC630C}} /* +2.0491405571e+00 */ ,
266
+ /*atan_b[43]*/ {{0x3FF1DE5C,0x1EB9A624}} /* +1.1167870712e+00 */,{{0xBC7002F6,0x595EC15D}} /* -1.3887824475e-17 */ ,
267
+ }
268
+ ,{
269
+ /*a[44] */ {{0x4000EF61,0x56AEFAF2}} /* +2.1168848774e+00 */ ,
270
+ /*b[44] : */ {{0x400181C8,0x02FA3F97}} /* +2.1883697732e+00 */ ,
271
+ /*atan_b[44]*/ {{0x3FF24652,0x93C8BC28}} /* +1.1421685956e+00 */,{{0xBC8FE336,0xC61E8575}} /* -5.5316089441e-17 */ ,
272
+ }
273
+ ,{
274
+ /*a[45] */ {{0x40021C8B,0xFD9A80C1}} /* +2.2639388860e+00 */ ,
275
+ /*b[45] : */ {{0x4002C078,0x188015C0}} /* +2.3439790644e+00 */ ,
276
+ /*atan_b[45]*/ {{0x3FF2AE49,0x08D8EA37}} /* +1.1675501199e+00 */,{{0xBC99C943,0x56281657}} /* -8.9463796524e-17 */ ,
277
+ }
278
+ ,{
279
+ /*a[46] */ {{0x40036E71,0x7D67269C}} /* +2.4289274022e+00 */ ,
280
+ /*b[46] : */ {{0x4004277C,0x17EDBBF3}} /* +2.5192796583e+00 */ ,
281
+ /*atan_b[46]*/ {{0x3FF3163F,0x7DEA3F8C}} /* +1.1929316443e+00 */,{{0x3C9AD329,0x90EB721B}} /* +9.3067404471e-17 */ ,
282
+ }
283
+ ,{
284
+ /*a[47] */ {{0x4004ECBF,0xF069F1E4}} /* +2.6156004698e+00 */ ,
285
+ /*b[47] : */ {{0x4005BF8F,0xA99113B9}} /* +2.7185357330e+00 */ ,
286
+ /*atan_b[47]*/ {{0x3FF37E35,0xF2FCCAA3}} /* +1.2183131687e+00 */,{{0xBC96C4D7,0x8B3674F4}} /* -7.8995539059e-17 */ ,
287
+ }
288
+ ,{
289
+ /*a[48] */ {{0x4006A170,0x780169B7}} /* +2.8288277984e+00 */ ,
290
+ /*b[48] : */ {{0x40079423,0xEECFDE39}} /* +2.9473341615e+00 */ ,
291
+ /*atan_b[48]*/ {{0x3FF3E62C,0x68109926}} /* +1.2436946931e+00 */,{{0x3C9D395E,0x46562D7D}} /* +1.0139144652e-16 */ ,
292
+ }
293
+ ,{
294
+ /*a[49] */ {{0x400899B4,0x319C3F02}} /* +3.0750507236e+00 */ ,
295
+ /*b[49] : */ {{0x4009B483,0x34491C9A}} /* +3.2131408772e+00 */ ,
296
+ /*atan_b[49]*/ {{0x3FF44E22,0xDD25B7F0}} /* +1.2690762175e+00 */,{{0xBC9AC408,0x96299AC9}} /* -9.2862370643e-17 */ ,
297
+ }
298
+ ,{
299
+ /*a[50] */ {{0x400AE75E,0x05B0834A}} /* +3.3629723019e+00 */ ,
300
+ /*b[50] : */ {{0x400C3595,0x6451B6E9}} /* +3.5261638486e+00 */ ,
301
+ /*atan_b[50]*/ {{0x3FF4B619,0x523C32F8}} /* +1.2944577420e+00 */,{{0x3C98372D,0x9A6CF82B}} /* +8.4014530055e-17 */ ,
302
+ }
303
+ ,{
304
+ /*a[51] */ {{0x400DA31D,0x739BD0E3}} /* +3.7046460182e+00 */ ,
305
+ /*b[51] : */ {{0x400F34B7,0x088B2A13}} /* +3.9007397335e+00 */ ,
306
+ /*atan_b[51]*/ {{0x3FF51E0F,0xC7541555}} /* +1.3198392664e+00 */,{{0xBC4DA0E1,0xD97CC177}} /* -3.2123225727e-18 */ ,
307
+ }
308
+ ,{
309
+ /*a[52] */ {{0x40107813,0x1886BC57}} /* +4.1172603447e+00 */ ,
310
+ /*b[52] : */ {{0x40116E3D,0x8D819944}} /* +4.3576566801e+00 */ ,
311
+ /*atan_b[52]*/ {{0x3FF58606,0x3C6D692D}} /* +1.3452207909e+00 */,{{0xBC7DAB9D,0xD9D13C46}} /* -2.5734950076e-17 */ ,
312
+ }
313
+ ,{
314
+ /*a[53] */ {{0x4012813A,0x8BCE2241}} /* +4.6261998982e+00 */ ,
315
+ /*b[53] : */ {{0x4013B685,0x9F0E4EBF}} /* +4.9282440999e+00 */ ,
316
+ /*atan_b[53]*/ {{0x3FF5EDFC,0xB18837B4}} /* +1.3706023154e+00 */,{{0xBC858200,0xBC854F71}} /* -3.7310126753e-17 */ ,
317
+ }
318
+ ,{
319
+ /*a[54] */ {{0x40151516,0x4ACECE78}} /* +5.2705928506e+00 */ ,
320
+ /*b[54] : */ {{0x4016A5E9,0xF3CD0189}} /* +5.6620252699e+00 */ ,
321
+ /*atan_b[54]*/ {{0x3FF655F3,0x26A48924}} /* +1.3959838399e+00 */,{{0xBC95DCD4,0x0EF07703}} /* -7.5851168241e-17 */ ,
322
+ }
323
+ ,{
324
+ /*a[55] */ {{0x401874CE,0x9526FAB9}} /* +6.1140693002e+00 */ ,
325
+ /*b[55] : */ {{0x401A9194,0xBA057809}} /* +6.6421689096e+00 */ ,
326
+ /*atan_b[55]*/ {{0x3FF6BDE9,0x9BC264B7}} /* +1.4213653645e+00 */,{{0x3C839FB7,0x555821B5}} /* +3.4042024747e-17 */ ,
327
+ }
328
+ ,{
329
+ /*a[56] */ {{0x401D11EB,0xE094C913}} /* +7.2675013629e+00 */ ,
330
+ /*b[56] : */ {{0x40200A31,0xA01EFACA}} /* +8.0199098623e+00 */ ,
331
+ /*atan_b[56]*/ {{0x3FF725E0,0x10E1D0A5}} /* +1.4467468891e+00 */,{{0x3C86B63B,0x56DADB03}} /* +3.9398767140e-17 */ ,
332
+ }
333
+ ,{
334
+ /*a[57] */ {{0x4021E2BC,0x220DFA19}} /* +8.9428415911e+00 */ ,
335
+ /*b[57] : */ {{0x40243445,0xFBA72898}} /* +1.0102096428e+01 */ ,
336
+ /*atan_b[57]*/ {{0x3FF78DD6,0x8602D21D}} /* +1.4721284137e+00 */,{{0xBC9FD7D6,0x4D2EA6E0}} /* -1.1047799388e-16 */ ,
337
+ }
338
+ ,{
339
+ /*a[58] */ {{0x40273463,0xD0337C49}} /* +1.1602324015e+01 */ ,
340
+ /*b[58] : */ {{0x402B3DC7,0x4A4A5A1D}} /* +1.3620661089e+01 */ ,
341
+ /*atan_b[58]*/ {{0x3FF7F5CC,0xFB256D40}} /* +1.4975099383e+00 */,{{0x3C954E9E,0xA28CF77C}} /* +7.3923881174e-17 */ ,
342
+ }
343
+ ,{
344
+ /*a[59] */ {{0x40307B8E,0x26350916}} /* +1.6482637775e+01 */ ,
345
+ /*b[59] : */ {{0x4034DBD6,0x24D415BF}} /* +2.0858736326e+01 */ ,
346
+ /*atan_b[59]*/ {{0x3FF85DC3,0x7049A526}} /* +1.5228914629e+00 */,{{0xBC8424E5,0xE9374500}} /* -3.4944500702e-17 */ ,
347
+ }
348
+ ,{
349
+ /*a[60] */ {{0x403C62CF,0x497BF2F2}} /* +2.8385975449e+01 */ ,
350
+ /*b[60] : */ {{0x40463208,0x6C3EC43C}} /* +4.4390882044e+01 */ ,
351
+ /*atan_b[60]*/ {{0x3FF8C5B9,0xE56F7BD2}} /* +1.5482729876e+00 */,{{0xBC81D57A,0x2F7EC153}} /* -3.0936877458e-17 */ ,
352
+ }
353
+ ,{
354
+ /*a[61] */ {{0x40596CC3,0xFA9E0EF4}} /* +1.0169946161e+02 */ ,
355
+ /*b[61] : */ {{0x4054B2C4,0x7BFF8329}} /* +8.2793242454e+01 */ ,
356
+ /*atan_b[61]*/ {{0x3FF8F082,0xF333CBBA}} /* +1.5587186337e+00 */,{{0x3C952577,0x3909BC3A}} /* +7.3366141099e-17 */ ,
357
+ }
358
+ ,
359
+ };
360
+ #else
361
+
362
+ /* limits of the intervals [a[i],b[i]] */
363
+ static db_number const arctan_table[62][4] =
364
+ {
365
+ {
366
+ /*a[0] */ {{0xBCCE533D,0x3F89FDF8}} /* +1.2691443693e-02 */ ,
367
+ /*b[0] : */ {{0x27760007,0x3F99FF0B}} /* +2.5386976512e-02 */ ,
368
+ /*atan_b[0]*/ {{0x4969F96C,0x3F99FD9D}} /* +2.5381524664e-02 */,{{0x750685EA,0xBC301997}} /* -8.7278097631e-19 */ ,
369
+ }
370
+ ,{
371
+ /*a[1] */ {{0x90CEBC31,0x3FA3809F}} /* +3.8090692927e-02 */ ,
372
+ /*b[1] : */ {{0xE3547CC2,0x3FAA0355}} /* +5.0806697846e-02 */ ,
373
+ /*atan_b[1]*/ {{0x4936262D,0x3FA9FD9D}} /* +5.0763049304e-02 */,{{0x3A2D0F59,0xBC4C1F96}} /* -3.0491436238e-18 */ ,
374
+ }
375
+ ,{
376
+ /*a[2] */ {{0x68FBA526,0x3FB04419}} /* +6.3539112216e-02 */ ,
377
+ /*b[2] : */ {{0xABF7BFB9,0x3FB387E0}} /* +7.6292078003e-02 */ ,
378
+ /*atan_b[2]*/ {{0xF6C1E06C,0x3FB37E35}} /* +7.6144573921e-02 */,{{0x8378E024,0xBC556710}} /* -4.6409481568e-18 */ ,
379
+ }
380
+ ,{
381
+ /*a[3] */ {{0xABCDFA25,0x3FB6CD46}} /* +8.9069764084e-02 */ ,
382
+ /*b[3] : */ {{0xE265B8AB,0x3FBA1491}} /* +1.0187637117e-01 */ ,
383
+ /*atan_b[3]*/ {{0x48CF1996,0x3FB9FD9D}} /* +1.0152609851e-01 */,{{0xB73BED3C,0xBC4360DC}} /* -2.1010068528e-18 */ ,
384
+ }
385
+ ,{
386
+ /*a[4] */ {{0x6D2EA546,0x3FBD5E09}} /* +1.1471613803e-01 */ ,
387
+ /*b[4] : */ {{0x9124D46B,0x3FC054FA}} /* +1.2759334647e-01 */ ,
388
+ /*atan_b[4]*/ {{0x4D618156,0x3FC03E82}} /* +1.2690762308e-01 */,{{0x49A86344,0x3C62604E}} /* +7.9694040325e-18 */ ,
389
+ }
390
+ ,{
391
+ /*a[5] */ {{0xD691E891,0x3FC1FC4E}} /* +1.4051232793e-01 */ ,
392
+ /*b[5] : */ {{0x51F57043,0x3FC3A526}} /* +1.5347746851e-01 */ ,
393
+ /*atan_b[5]*/ {{0xF64EF83E,0x3FC37E35}} /* +1.5228914763e-01 */,{{0xB4A55EA6,0x3C5F2B13}} /* +6.7585410867e-18 */ ,
394
+ }
395
+ ,{
396
+ /*a[6] */ {{0x531F610B,0x3FC54FA6}} /* +1.6649321612e-01 */ ,
397
+ /*b[6] : */ {{0xB99F2601,0x3FC6FBF4}} /* +1.7956408561e-01 */ ,
398
+ /*atan_b[6]*/ {{0x9F302425,0x3FC6BDE9}} /* +1.7767067216e-01 */,{{0xC4D330CE,0xBC23B62A}} /* -5.3428372026e-19 */ ,
399
+ }
400
+ ,{
401
+ /*a[7] */ {{0x0550EAF1,0x3FC8AA38}} /* +1.9269466648e-01 */ ,
402
+ /*b[7] : */ {{0x61D9D63D,0x3FCA5A97}} /* +2.0588962820e-01 */ ,
403
+ /*atan_b[7]*/ {{0x48053FC8,0x3FC9FD9D}} /* +2.0305219666e-01 */,{{0x98474AF1,0xBC67A12C}} /* -1.0247699700e-17 */ ,
404
+ }
405
+ ,{
406
+ /*a[8] */ {{0xB8975BD9,0x3FCC0D3A}} /* +2.1915372861e-01 */ ,
407
+ /*b[8] : */ {{0xBCBF6ABC,0x3FCDC24A}} /* +2.3249181954e-01 */ ,
408
+ /*atan_b[8]*/ {{0xF0CE8DD9,0x3FCD3D50}} /* +2.2843372114e-01 */,{{0x3A31D353,0x3C6EF257}} /* +1.3420967238e-17 */ ,
409
+ }
410
+ ,{
411
+ /*a[9] */ {{0xFEE46885,0x3FCF79F0}} /* +2.4590885588e-01 */ ,
412
+ /*b[9] : */ {{0xFCF66B85,0x3FD09A2B}} /* +2.5940990165e-01 */ ,
413
+ /*atan_b[9]*/ {{0x4CC62C6B,0x3FD03E82}} /* +2.5381524560e-01 */,{{0x95C6E482,0x3C5DA594}} /* +6.4286246635e-18 */ ,
414
+ }
415
+ ,{
416
+ /*a[10] */ {{0x943274CA,0x3FD178D5}} /* +2.7300013993e-01 */ ,
417
+ /*b[10] : */ {{0x8943E603,0x3FD2590B}} /* +2.8668487935e-01 */ ,
418
+ /*atan_b[10]*/ {{0x211F7969,0x3FD1DE5C}} /* +2.7919677004e-01 */,{{0x0B01EF44,0x3C3C4E87}} /* +1.5345118889e-18 */ ,
419
+ }
420
+ ,{
421
+ /*a[11] */ {{0xB2CFB5F7,0x3FD33AE4}} /* +3.0046956503e-01 */ ,
422
+ /*b[11] : */ {{0x81B0D1DF,0x3FD41E78}} /* +3.1435978570e-01 */ ,
423
+ /*atan_b[11]*/ {{0xF5735AA1,0x3FD37E35}} /* +3.0457829447e-01 */,{{0x8D437AE9,0xBC772D05}} /* -2.0101859382e-17 */ ,
424
+ }
425
+ ,{
426
+ /*a[12] */ {{0x0DD40A5B,0x3FD503DF}} /* +3.2836128569e-01 */ ,
427
+ /*b[12] : */ {{0x1EB6A659,0x3FD5EB31}} /* +3.4247997283e-01 */ ,
428
+ /*atan_b[12]*/ {{0xC9C20060,0x3FD51E0F}} /* +3.2995981887e-01 */,{{0x20BA7A7B,0xBC6C0F53}} /* -1.2169025414e-17 */ ,
429
+ }
430
+ ,{
431
+ /*a[13] */ {{0x3998DD14,0x3FD6D488}} /* +3.5672193169e-01 */ ,
432
+ /*b[13] : */ {{0xAAF865B1,0x3FD7BFFE}} /* +3.7109343239e-01 */ ,
433
+ /*atan_b[13]*/ {{0x9E0B9E67,0x3FD6BDE9}} /* +3.5534134325e-01 */,{{0x870D5E8E,0x3C797792}} /* +2.2089170409e-17 */ ,
434
+ }
435
+ ,{
436
+ /*a[14] */ {{0x964ABFA5,0x3FD8ADAF}} /* +3.8560094525e-01 */ ,
437
+ /*b[14] : */ {{0x00A6F44E,0x3FD99DB7}} /* +4.0025115074e-01 */ ,
438
+ /*atan_b[14]*/ {{0x72506BCA,0x3FD85DC3}} /* +3.8072286762e-01 */,{{0x43A1CBA3,0x3C720BD1}} /* +1.5652550322e-17 */ ,
439
+ }
440
+ ,{
441
+ /*a[15] */ {{0xE241114E,0x3FDA9031}} /* +4.1505095573e-01 */ ,
442
+ /*b[15] : */ {{0x327F0E90,0x3FDB853E}} /* +4.3000750476e-01 */ ,
443
+ /*atan_b[15]*/ {{0x4690A2C8,0x3FD9FD9D}} /* +4.0610439197e-01 */,{{0xEFB73034,0xBC6A048E}} /* -1.1283424731e-17 */ ,
444
+ }
445
+ ,{
446
+ /*a[16] */ {{0xFB78B41D,0x3FDC7CFA}} /* +4.4512819822e-01 */ ,
447
+ /*b[16] : */ {{0x67BE333A,0x3FDD7788}} /* +4.6042070514e-01 */ ,
448
+ /*atan_b[16]*/ {{0x1ACC80A6,0x3FDB9D77}} /* +4.3148591630e-01 */,{{0xE8FB154D,0x3C6A9BD7}} /* +1.1539711581e-17 */ ,
449
+ }
450
+ ,{
451
+ /*a[17] */ {{0xD82B9DC6,0x3FDE7507}} /* +4.7589298354e-01 */ ,
452
+ /*b[17] : */ {{0xF3B4AACC,0x3FDF759B}} /* +4.9155329513e-01 */ ,
453
+ /*atan_b[17]*/ {{0xEF044589,0x3FDD3D50}} /* +4.5686744062e-01 */,{{0x09E8652E,0x3C575857}} /* +5.0621568797e-18 */ ,
454
+ }
455
+ ,{
456
+ /*a[18] */ {{0x5FF4B2AB,0x3FE03CB4}} /* +5.0741022817e-01 */ ,
457
+ /*b[18] : */ {{0xD9952BEF,0x3FE0C049}} /* +5.2347271439e-01 */ ,
458
+ /*atan_b[18]*/ {{0xC338344A,0x3FDEDD2A}} /* +4.8224896492e-01 */,{{0x81513292,0x3C23C787}} /* +5.3612202011e-19 */ ,
459
+ }
460
+ ,{
461
+ /*a[19] */ {{0xE826E4EA,0x3FE145A1}} /* +5.3975005476e-01 */ ,
462
+ /*b[19] : */ {{0xDDD96DE0,0x3FE1CCD0}} /* +5.5625193911e-01 */ ,
463
+ /*atan_b[19]*/ {{0x4BB44923,0x3FE03E82}} /* +5.0763048922e-01 */,{{0x49DF0A58,0x3C8CAF01}} /* +4.9758137561e-17 */ ,
464
+ }
465
+ ,{
466
+ /*a[20] */ {{0xED462BAC,0x3FE255EB}} /* +5.7298847525e-01 */ ,
467
+ /*b[20] : */ {{0x35B0819C,0x3FE2E109}} /* +5.8997021185e-01 */ ,
468
+ /*atan_b[20]*/ {{0x35CAD39D,0x3FE10E6F}} /* +5.3301201350e-01 */,{{0x0D1EB36B,0x3C45DB33}} /* +2.3696591272e-18 */ ,
469
+ }
470
+ ,{
471
+ /*a[21] */ {{0xD4CDD9AC,0x3FE36E3F}} /* +6.0720817149e-01 */ ,
472
+ /*b[21] : */ {{0xF51235D9,0x3FE3FDA7}} /* +6.2471387735e-01 */ ,
473
+ /*atan_b[21]*/ {{0x1FDFDE84,0x3FE1DE5C}} /* +5.5839353776e-01 */,{{0xD3921CA6,0x3C86FBEF}} /* +3.9871106783e-17 */ ,
474
+ }
475
+ ,{
476
+ /*a[22] */ {{0xE1FB2991,0x3FE48F5A}} /* +6.4249939095e-01 */ ,
477
+ /*b[22] : */ {{0x18D0CCB0,0x3FE52373}} /* +6.6057734343e-01 */ ,
478
+ /*atan_b[22]*/ {{0x09F38FC9,0x3FE2AE49}} /* +5.8377506202e-01 */,{{0x058084C6,0xBC84BBB5}} /* -3.5966422408e-17 */ ,
479
+ }
480
+ ,{
481
+ /*a[23] */ {{0x5FE86E27,0x3FE5BA0C}} /* +6.7896097881e-01 */ ,
482
+ /*b[23] : */ {{0xDA588D41,0x3FE65343}} /* +6.9766419073e-01 */ ,
483
+ /*atan_b[23]*/ {{0xF4060E3D,0x3FE37E35}} /* +6.0915658627e-01 */,{{0xAE25B9B7,0x3BF6235C}} /* +7.5006911959e-20 */ ,
484
+ }
485
+ ,{
486
+ /*a[24] */ {{0x22C19A5D,0x3FE6EF38}} /* +7.1670157231e-01 */ ,
487
+ /*b[24] : */ {{0x629002BC,0x3FE78E09}} /* +7.3608845950e-01 */ ,
488
+ /*atan_b[24]*/ {{0xDE17817F,0x3FE44E22}} /* +6.3453811052e-01 */,{{0x1A6D25E3,0xBC85F46E}} /* -3.8085515717e-17 */ ,
489
+ }
490
+ ,{
491
+ /*a[25] */ {{0x70F967BD,0x3FE82FD9}} /* +7.5584098878e-01 */ ,
492
+ /*b[25] : */ {{0xEE8B9555,0x3FE8D4CB}} /* +7.7597614852e-01 */ ,
493
+ /*atan_b[25]*/ {{0xC82811DC,0x3FE51E0F}} /* +6.5991963475e-01 */,{{0xFCB9720C,0xBC81CCF7}} /* -3.0879221028e-17 */ ,
494
+ }
495
+ ,{
496
+ /*a[26] */ {{0x69351A0D,0x3FE97D06}} /* +7.9651184605e-01 */ ,
497
+ /*b[26] : */ {{0x7D0D616A,0x3FEA28B0}} /* +8.1746696877e-01 */ ,
498
+ /*atan_b[26]*/ {{0xB237E838,0x3FE5EDFC}} /* +6.8530115898e-01 */,{{0xF8F29048,0xBC833EA8}} /* -3.3384347049e-17 */ ,
499
+ }
500
+ ,{
501
+ /*a[27] */ {{0xFE730FCD,0x3FEAD7F3}} /* +8.3886146257e-01 */ ,
502
+ /*b[27] : */ {{0x21335E3D,0x3FEB8AFD}} /* +8.6071640477e-01 */ ,
503
+ /*atan_b[27]*/ {{0x9C472DF1,0x3FE6BDE9}} /* +7.1068268321e-01 */,{{0x80DED249,0x3C5E8127}} /* +6.6146109909e-18 */ ,
504
+ }
505
+ ,{
506
+ /*a[28] */ {{0xAA0A733E,0x3FEC41FA}} /* +8.8305409633e-01 */ ,
507
+ /*b[28] : */ {{0x1D9A7669,0x3FECFD1E}} /* +9.0589814932e-01 */ ,
508
+ /*atan_b[28]*/ {{0x86560CC5,0x3FE78DD6}} /* +7.3606420743e-01 */,{{0x9396D511,0xBC7E962F}} /* -2.6529701578e-17 */ ,
509
+ }
510
+ ,{
511
+ /*a[29] */ {{0xFAEEEADF,0x3FEDBC9B}} /* +9.2927359591e-01 */ ,
512
+ /*b[29] : */ {{0xF41419E7,0x3FEE80AB}} /* +9.5320699379e-01 */ ,
513
+ /*atan_b[29]*/ {{0x7064AEB4,0x3FE85DC3}} /* +7.6144573166e-01 */,{{0x5225ACD1,0x3C77C0FC}} /* +2.0603180716e-17 */ ,
514
+ }
515
+ ,{
516
+ /*a[30] */ {{0x33AC790A,0x3FEF4989}} /* +9.7772655575e-01 */ ,
517
+ /*b[30] : */ {{0x50BB2D02,0x3FF00BB9}} /* +1.0028622774e+00 */ ,
518
+ /*atan_b[30]*/ {{0x5A733DE9,0x3FE92DB0}} /* +7.8682725588e-01 */,{{0xA318D041,0xBC6598C9}} /* -9.3661305872e-18 */ ,
519
+ }
520
+ ,{
521
+ /*a[31] */ {{0x9AC922B4,0x3FF07555}} /* +1.0286460921e+00 */ ,
522
+ /*b[31] : */ {{0x25F4BC57,0x3FF0E1BD}} /* +1.0551120265e+00 */ ,
523
+ /*atan_b[31]*/ {{0x4481E499,0x3FE9FD9D}} /* +8.1220878010e-01 */,{{0x9464A40D,0xBC82E89F}} /* -3.2801339756e-17 */ ,
524
+ }
525
+ ,{
526
+ /*a[32] */ {{0x0440E8D3,0x3FF15116}} /* +1.0822963873e+00 */ ,
527
+ /*b[32] : */ {{0xDEC8DA1A,0x3FF1C388}} /* +1.1102379515e+00 */ ,
528
+ /*atan_b[32]*/ {{0x2E90CCEA,0x3FEACD8A}} /* +8.3759030433e-01 */,{{0xFE4AC33B,0x3C60B8DB}} /* +7.2520578222e-18 */ ,
529
+ }
530
+ ,{
531
+ /*a[33] */ {{0x329D3DD8,0x3FF23941}} /* +1.1389781930e+00 */ ,
532
+ /*b[33] : */ {{0x8F9CF3AD,0x3FF2B26D}} /* +1.1685615168e+00 */ ,
533
+ /*atan_b[33]*/ {{0x18A020D8,0x3FEB9D77}} /* +8.6297182855e-01 */,{{0x43DDC7EE,0x3C714EA3}} /* +1.5011584621e-17 */ ,
534
+ }
535
+ ,{
536
+ /*a[34] */ {{0xE2DB7094,0x3FF32F3F}} /* +1.1990355360e+00 */ ,
537
+ /*b[34] : */ {{0xC485093A,0x3FF3AFED}} /* +1.2304513623e+00 */ ,
538
+ /*atan_b[34]*/ {{0x02B00A17,0x3FEC6D64}} /* +8.8835335278e-01 */,{{0xC1E56981,0x3C5CF722}} /* +6.2808643065e-18 */ ,
539
+ }
540
+ ,{
541
+ /*a[35] */ {{0xD38A35D7,0x3FF434B0}} /* +1.2628639472e+00 */ ,
542
+ /*b[35] : */ {{0x16D89BC7,0x3FF4BDC7}} /* +1.2963324444e+00 */ ,
543
+ /*atan_b[35]*/ {{0xECC0B1F8,0x3FED3D50}} /* +9.1373487702e-01 */,{{0xC689AE1B,0x3C8FFD9A}} /* +5.5494919315e-17 */ ,
544
+ }
545
+ ,{
546
+ /*a[36] */ {{0x6F41F96D,0x3FF54B73}} /* +1.3309206339e+00 */ ,
547
+ /*b[36] : */ {{0x11C53212,0x3FF5DDFE}} /* +1.3666973776e+00 */ ,
548
+ /*atan_b[36]*/ {{0xD6D24151,0x3FEE0D3D}} /* +9.3911640126e-01 */,{{0xC830B564,0xBC654F0F}} /* -9.2412338910e-18 */ ,
549
+ }
550
+ ,{
551
+ /*a[37] */ {{0x165CA5E1,0x3FF675B5}} /* +1.4037371515e+00 */ ,
552
+ /*b[37] : */ {{0x13170C5B,0x3FF712ED}} /* +1.4421206232e+00 */ ,
553
+ /*atan_b[37]*/ {{0xC0E4E05B,0x3FEEDD2A}} /* +9.6449792552e-01 */,{{0xBF676FFE,0xBC8FEAC3}} /* -5.5367254830e-17 */ ,
554
+ }
555
+ ,{
556
+ /*a[38] */ {{0xD0DEA3C6,0x3FF7B601}} /* +1.4819353255e+00 */ ,
557
+ /*b[38] : */ {{0x11FBEA40,0x3FF85F57}} /* +1.5232763960e+00 */ ,
558
+ /*atan_b[38]*/ {{0xAAF8B69E,0x3FEFAD17}} /* +9.8987944978e-01 */,{{0xE69F3AF7,0x3C8B8DA3}} /* +4.7797325436e-17 */ ,
559
+ }
560
+ ,{
561
+ /*a[39] */ {{0x79506F51,0x3FF90F59}} /* +1.5662474383e+00 */ ,
562
+ /*b[39] : */ {{0x8AF460DF,0x3FF9C67F}} /* +1.6109614780e+00 */ ,
563
+ /*atan_b[39]*/ {{0x4A86F56B,0x3FF03E82}} /* +1.0152609740e+00 */,{{0xDE1DF40B,0x3C8C4641}} /* +4.9048339280e-17 */ ,
564
+ }
565
+ ,{
566
+ /*a[40] */ {{0xD74CF791,0x3FFA854A}} /* +1.6575420771e+00 */ ,
567
+ /*b[40] : */ {{0x4A696F14,0x3FFB4C49}} /* +1.7061245829e+00 */ ,
568
+ /*atan_b[40]*/ {{0xBF92516C,0x3FF0A678}} /* +1.0406424983e+00 */,{{0x6A0966AF,0xBC9194FF}} /* -6.0999893718e-17 */ ,
569
+ }
570
+ ,{
571
+ /*a[41] */ {{0xB3972246,0x3FFC1C16}} /* +1.7568575874e+00 */ ,
572
+ /*b[41] : */ {{0x80F0B83E,0x3FFCF55E}} /* +1.8099045788e+00 */ ,
573
+ /*atan_b[41]*/ {{0x349E81BA,0x3FF10E6F}} /* +1.0660240226e+00 */,{{0x3CD05C13,0x3C9C7D12}} /* +9.8839546037e-17 */ ,
574
+ }
575
+ ,{
576
+ /*a[42] */ {{0xC6DB1831,0x3FFDD8DD}} /* +1.8654458778e+00 */ ,
577
+ /*b[42] : */ {{0x927D039C,0x3FFEC765}} /* +1.9236808512e+00 */ ,
578
+ /*atan_b[42]*/ {{0xA9AB9836,0x3FF17665}} /* +1.0914055469e+00 */,{{0x7B9C115B,0xBC924DFA}} /* -6.3506850178e-17 */ ,
579
+ }
580
+ ,{
581
+ /*a[43] */ {{0xA4F6D032,0x3FFFC1DD}} /* +1.9848305172e+00 */ ,
582
+ /*b[43] : */ {{0xCDEC630C,0x400064A3}} /* +2.0491405571e+00 */ ,
583
+ /*atan_b[43]*/ {{0x1EB9A624,0x3FF1DE5C}} /* +1.1167870712e+00 */,{{0x595EC15D,0xBC7002F6}} /* -1.3887824475e-17 */ ,
584
+ }
585
+ ,{
586
+ /*a[44] */ {{0x56AEFAF2,0x4000EF61}} /* +2.1168848774e+00 */ ,
587
+ /*b[44] : */ {{0x02FA3F97,0x400181C8}} /* +2.1883697732e+00 */ ,
588
+ /*atan_b[44]*/ {{0x93C8BC28,0x3FF24652}} /* +1.1421685956e+00 */,{{0xC61E8575,0xBC8FE336}} /* -5.5316089441e-17 */ ,
589
+ }
590
+ ,{
591
+ /*a[45] */ {{0xFD9A80C1,0x40021C8B}} /* +2.2639388860e+00 */ ,
592
+ /*b[45] : */ {{0x188015C0,0x4002C078}} /* +2.3439790644e+00 */ ,
593
+ /*atan_b[45]*/ {{0x08D8EA37,0x3FF2AE49}} /* +1.1675501199e+00 */,{{0x56281657,0xBC99C943}} /* -8.9463796524e-17 */ ,
594
+ }
595
+ ,{
596
+ /*a[46] */ {{0x7D67269C,0x40036E71}} /* +2.4289274022e+00 */ ,
597
+ /*b[46] : */ {{0x17EDBBF3,0x4004277C}} /* +2.5192796583e+00 */ ,
598
+ /*atan_b[46]*/ {{0x7DEA3F8C,0x3FF3163F}} /* +1.1929316443e+00 */,{{0x90EB721B,0x3C9AD329}} /* +9.3067404471e-17 */ ,
599
+ }
600
+ ,{
601
+ /*a[47] */ {{0xF069F1E4,0x4004ECBF}} /* +2.6156004698e+00 */ ,
602
+ /*b[47] : */ {{0xA99113B9,0x4005BF8F}} /* +2.7185357330e+00 */ ,
603
+ /*atan_b[47]*/ {{0xF2FCCAA3,0x3FF37E35}} /* +1.2183131687e+00 */,{{0x8B3674F4,0xBC96C4D7}} /* -7.8995539059e-17 */ ,
604
+ }
605
+ ,{
606
+ /*a[48] */ {{0x780169B7,0x4006A170}} /* +2.8288277984e+00 */ ,
607
+ /*b[48] : */ {{0xEECFDE39,0x40079423}} /* +2.9473341615e+00 */ ,
608
+ /*atan_b[48]*/ {{0x68109926,0x3FF3E62C}} /* +1.2436946931e+00 */,{{0x46562D7D,0x3C9D395E}} /* +1.0139144652e-16 */ ,
609
+ }
610
+ ,{
611
+ /*a[49] */ {{0x319C3F02,0x400899B4}} /* +3.0750507236e+00 */ ,
612
+ /*b[49] : */ {{0x34491C9A,0x4009B483}} /* +3.2131408772e+00 */ ,
613
+ /*atan_b[49]*/ {{0xDD25B7F0,0x3FF44E22}} /* +1.2690762175e+00 */,{{0x96299AC9,0xBC9AC408}} /* -9.2862370643e-17 */ ,
614
+ }
615
+ ,{
616
+ /*a[50] */ {{0x05B0834A,0x400AE75E}} /* +3.3629723019e+00 */ ,
617
+ /*b[50] : */ {{0x6451B6E9,0x400C3595}} /* +3.5261638486e+00 */ ,
618
+ /*atan_b[50]*/ {{0x523C32F8,0x3FF4B619}} /* +1.2944577420e+00 */,{{0x9A6CF82B,0x3C98372D}} /* +8.4014530055e-17 */ ,
619
+ }
620
+ ,{
621
+ /*a[51] */ {{0x739BD0E3,0x400DA31D}} /* +3.7046460182e+00 */ ,
622
+ /*b[51] : */ {{0x088B2A13,0x400F34B7}} /* +3.9007397335e+00 */ ,
623
+ /*atan_b[51]*/ {{0xC7541555,0x3FF51E0F}} /* +1.3198392664e+00 */,{{0xD97CC177,0xBC4DA0E1}} /* -3.2123225727e-18 */ ,
624
+ }
625
+ ,{
626
+ /*a[52] */ {{0x1886BC57,0x40107813}} /* +4.1172603447e+00 */ ,
627
+ /*b[52] : */ {{0x8D819944,0x40116E3D}} /* +4.3576566801e+00 */ ,
628
+ /*atan_b[52]*/ {{0x3C6D692D,0x3FF58606}} /* +1.3452207909e+00 */,{{0xD9D13C46,0xBC7DAB9D}} /* -2.5734950076e-17 */ ,
629
+ }
630
+ ,{
631
+ /*a[53] */ {{0x8BCE2241,0x4012813A}} /* +4.6261998982e+00 */ ,
632
+ /*b[53] : */ {{0x9F0E4EBF,0x4013B685}} /* +4.9282440999e+00 */ ,
633
+ /*atan_b[53]*/ {{0xB18837B4,0x3FF5EDFC}} /* +1.3706023154e+00 */,{{0xBC854F71,0xBC858200}} /* -3.7310126753e-17 */ ,
634
+ }
635
+ ,{
636
+ /*a[54] */ {{0x4ACECE78,0x40151516}} /* +5.2705928506e+00 */ ,
637
+ /*b[54] : */ {{0xF3CD0189,0x4016A5E9}} /* +5.6620252699e+00 */ ,
638
+ /*atan_b[54]*/ {{0x26A48924,0x3FF655F3}} /* +1.3959838399e+00 */,{{0x0EF07703,0xBC95DCD4}} /* -7.5851168241e-17 */ ,
639
+ }
640
+ ,{
641
+ /*a[55] */ {{0x9526FAB9,0x401874CE}} /* +6.1140693002e+00 */ ,
642
+ /*b[55] : */ {{0xBA057809,0x401A9194}} /* +6.6421689096e+00 */ ,
643
+ /*atan_b[55]*/ {{0x9BC264B7,0x3FF6BDE9}} /* +1.4213653645e+00 */,{{0x555821B5,0x3C839FB7}} /* +3.4042024747e-17 */ ,
644
+ }
645
+ ,{
646
+ /*a[56] */ {{0xE094C913,0x401D11EB}} /* +7.2675013629e+00 */ ,
647
+ /*b[56] : */ {{0xA01EFACA,0x40200A31}} /* +8.0199098623e+00 */ ,
648
+ /*atan_b[56]*/ {{0x10E1D0A5,0x3FF725E0}} /* +1.4467468891e+00 */,{{0x56DADB03,0x3C86B63B}} /* +3.9398767140e-17 */ ,
649
+ }
650
+ ,{
651
+ /*a[57] */ {{0x220DFA19,0x4021E2BC}} /* +8.9428415911e+00 */ ,
652
+ /*b[57] : */ {{0xFBA72898,0x40243445}} /* +1.0102096428e+01 */ ,
653
+ /*atan_b[57]*/ {{0x8602D21D,0x3FF78DD6}} /* +1.4721284137e+00 */,{{0x4D2EA6E0,0xBC9FD7D6}} /* -1.1047799388e-16 */ ,
654
+ }
655
+ ,{
656
+ /*a[58] */ {{0xD0337C49,0x40273463}} /* +1.1602324015e+01 */ ,
657
+ /*b[58] : */ {{0x4A4A5A1D,0x402B3DC7}} /* +1.3620661089e+01 */ ,
658
+ /*atan_b[58]*/ {{0xFB256D40,0x3FF7F5CC}} /* +1.4975099383e+00 */,{{0xA28CF77C,0x3C954E9E}} /* +7.3923881174e-17 */ ,
659
+ }
660
+ ,{
661
+ /*a[59] */ {{0x26350916,0x40307B8E}} /* +1.6482637775e+01 */ ,
662
+ /*b[59] : */ {{0x24D415BF,0x4034DBD6}} /* +2.0858736326e+01 */ ,
663
+ /*atan_b[59]*/ {{0x7049A526,0x3FF85DC3}} /* +1.5228914629e+00 */,{{0xE9374500,0xBC8424E5}} /* -3.4944500702e-17 */ ,
664
+ }
665
+ ,{
666
+ /*a[60] */ {{0x497BF2F2,0x403C62CF}} /* +2.8385975449e+01 */ ,
667
+ /*b[60] : */ {{0x6C3EC43C,0x40463208}} /* +4.4390882044e+01 */ ,
668
+ /*atan_b[60]*/ {{0xE56F7BD2,0x3FF8C5B9}} /* +1.5482729876e+00 */,{{0x2F7EC153,0xBC81D57A}} /* -3.0936877458e-17 */ ,
669
+ }
670
+ ,{
671
+ /*a[61] */ {{0xFA9E0EF4,0x40596CC3}} /* +1.0169946161e+02 */ ,
672
+ /*b[61] : */ {{0x7BFF8329,0x4054B2C4}} /* +8.2793242454e+01 */ ,
673
+ /*atan_b[61]*/ {{0xF333CBBA,0x3FF8F082}} /* +1.5587186337e+00 */,{{0x3909BC3A,0x3C952577}} /* +7.3366141099e-17 */ ,
674
+ }
675
+ ,
676
+ };
677
+
678
+ #endif
679
+
680
+ #endif /* def _ATAN_FAST_H */