56 #include "vdt/vdtMath.h"
58 static const float SN[] = {
59 -8.39167827910303881427E-11,
60 4.62591714427012837309E-8,
61 -9.75759303843632795789E-6,
62 9.76945438170435310816E-4,
63 -4.13470316229406538752E-2,
64 1.00000000000000000302E0,
66 static const float SD[] = {
67 2.03269266195951942049E-12,
68 1.27997891179943299903E-9,
69 4.41827842801218905784E-7,
70 9.96412122043875552487E-5,
71 1.42085239326149893930E-2,
72 9.99999999999999996984E-1,
75 static const float CN[] = {
76 2.02524002389102268789E-11,
77 -1.35249504915790756375E-8,
78 3.59325051419993077021E-6,
79 -4.74007206873407909465E-4,
80 2.89159652607555242092E-2,
81 -1.00000000000000000080E0,
83 static const float CD[] = {
84 4.07746040061880559506E-12,
85 3.06780997581887812692E-9,
86 1.23210355685883423679E-6,
87 3.17442024775032769882E-4,
88 5.10028056236446052392E-2,
89 4.00000000000000000080E0,
92 static const float FN4[] = {
93 4.23612862892216586994E0,
94 5.45937717161812843388E0,
95 1.62083287701538329132E0,
96 1.67006611831323023771E-1,
97 6.81020132472518137426E-3,
98 1.08936580650328664411E-4,
99 5.48900223421373614008E-7,
101 static const float FD4[] = {
103 8.16496634205391016773E0,
104 7.30828822505564552187E0,
105 1.86792257950184183883E0,
106 1.78792052963149907262E-1,
107 7.01710668322789753610E-3,
108 1.10034357153915731354E-4,
109 5.48900252756255700982E-7,
112 static const float FN8[] = {
113 4.55880873470465315206E-1,
114 7.13715274100146711374E-1,
115 1.60300158222319456320E-1,
116 1.16064229408124407915E-2,
117 3.49556442447859055605E-4,
118 4.86215430826454749482E-6,
119 3.20092790091004902806E-8,
120 9.41779576128512936592E-11,
121 9.70507110881952024631E-14,
123 static const float FD8[] = {
125 9.17463611873684053703E-1,
126 1.78685545332074536321E-1,
127 1.22253594771971293032E-2,
128 3.58696481881851580297E-4,
129 4.92435064317881464393E-6,
130 3.21956939101046018377E-8,
131 9.43720590350276732376E-11,
132 9.70507110881952025725E-14,
135 static const float GN4[] = {
136 8.71001698973114191777E-2,
137 6.11379109952219284151E-1,
138 3.97180296392337498885E-1,
139 7.48527737628469092119E-2,
140 5.38868681462177273157E-3,
141 1.61999794598934024525E-4,
142 1.97963874140963632189E-6,
143 7.82579040744090311069E-9,
145 static const float GD4[] = {
147 1.64402202413355338886E0,
148 6.66296701268987968381E-1,
149 9.88771761277688796203E-2,
150 6.22396345441768420760E-3,
151 1.73221081474177119497E-4,
152 2.02659182086343991969E-6,
153 7.82579218933534490868E-9,
156 static const float GN8[] = {
157 6.97359953443276214934E-1,
158 3.30410979305632063225E-1,
159 3.84878767649974295920E-2,
160 1.71718239052347903558E-3,
161 3.48941165502279436777E-5,
162 3.47131167084116673800E-7,
163 1.70404452782044526189E-9,
164 3.85945925430276600453E-12,
165 3.14040098946363334640E-15,
167 static const float GD8[] = {
169 1.68548898811011640017E0,
170 4.87852258695304967486E-1,
171 4.67913194259625806320E-2,
172 1.90284426674399523638E-3,
173 3.68475504442561108162E-5,
174 3.57043223443740838771E-7,
175 1.72693748966316146736E-9,
176 3.87830166023954706752E-12,
177 3.14040098946363335242E-15,
191 ans = ans *
x + *
p++;
202 inline float p1evlf(
float xx,
const float *coef,
int N) {
213 ans = ans *
x + *
p++;
219 inline int sicif(
float xx,
float &si,
float &ci) {
220 const float MAXNUMF = 1.7014117331926442990585209174225846272e38;
221 const float PIO2F = 1.5707963267948966192;
223 const float EUL = 0.57721566490153286061;
243 vdt::fast_sincosf(
x, su, cu);
277 vdt::fast_sincosf(
x,
s,
c);
286 si = PIO2F -
f *
c -
g *
s;