36 #pragma warning(disable:4820 4514 5045)
45 #define M_PI 3.1415926535897932384626433832795
49 static double sn[6] = {
50 -2.99181919401019853726E3,
51 7.08840045257738576863E5,
52 -6.29741486205862506537E7,
53 2.54890880573376359104E9,
54 -4.42979518059697779103E10,
55 3.18016297876567817986E11,
57 static double sd[6] = {
59 2.81376268889994315696E2,
60 4.55847810806532581675E4,
61 5.17343888770096400730E6,
62 4.19320245898111231129E8,
63 2.24411795645340920940E10,
64 6.07366389490084639049E11,
68 static double cn[6] = {
69 -4.98843114573573548651E-8,
70 9.50428062829859605134E-6,
71 -6.45191435683965050962E-4,
72 1.88843319396703850064E-2,
73 -2.05525900955013891793E-1,
74 9.99999999999999998822E-1,
76 static double cd[7] = {
77 3.99982968972495980367E-12,
78 9.15439215774657478799E-10,
79 1.25001862479598821474E-7,
80 1.22262789024179030997E-5,
81 8.68029542941784300606E-4,
82 4.12142090722199792936E-2,
83 1.00000000000000000118E0,
87 static double fn[10] = {
88 4.21543555043677546506E-1,
89 1.43407919780758885261E-1,
90 1.15220955073585758835E-2,
91 3.45017939782574027900E-4,
92 4.63613749287867322088E-6,
93 3.05568983790257605827E-8,
94 1.02304514164907233465E-10,
95 1.72010743268161828879E-13,
96 1.34283276233062758925E-16,
97 3.76329711269987889006E-20,
99 static double fd[10] = {
101 7.51586398353378947175E-1,
102 1.16888925859191382142E-1,
103 6.44051526508858611005E-3,
104 1.55934409164153020873E-4,
105 1.84627567348930545870E-6,
106 1.12699224763999035261E-8,
107 3.60140029589371370404E-11,
108 5.88754533621578410010E-14,
109 4.52001434074129701496E-17,
110 1.25443237090011264384E-20,
114 static double gn[11] = {
115 5.04442073643383265887E-1,
116 1.97102833525523411709E-1,
117 1.87648584092575249293E-2,
118 6.84079380915393090172E-4,
119 1.15138826111884280931E-5,
120 9.82852443688422223854E-8,
121 4.45344415861750144738E-10,
122 1.08268041139020870318E-12,
123 1.37555460633261799868E-15,
124 8.36354435630677421531E-19,
125 1.86958710162783235106E-22,
127 static double gd[11] = {
129 1.47495759925128324529E0,
130 3.37748989120019970451E-1,
131 2.53603741420338795122E-2,
132 8.14679107184306179049E-4,
133 1.27545075667729118702E-5,
134 1.04314589657571990585E-7,
135 4.60680728146520428211E-10,
136 1.10273215066240270757E-12,
137 1.38796531259578871258E-15,
138 8.39158816283118707363E-19,
139 1.86958710162783236342E-22,
143 static double polevl(
double x,
double* coef,
int n )
154 ans = ans * x + *p++;
161 static double p1evl(
double x,
double* coef,
int n )
172 ans = ans * x + *p++;
180 static void fresnel(
double xxa,
double *ssa,
double *cca )
182 double f, g, cc, ss, c, s, t, u;
194 else if ( x > 36974.0 )
212 cc = 0.5 + (f * s - g * c) / t;
213 ss = 0.5 - (f * c + g * s) / t;
236 void odrSpiral(
double s,
double cDot,
double *x,
double *y,
double *t )
240 a = 1.0 / sqrt( fabs( cDot ) );
251 *t = s * s * cDot * 0.5;
static double p1evl(double x, double *coef, int n)
static void fresnel(double xxa, double *ssa, double *cca)
void odrSpiral(double s, double cDot, double *x, double *y, double *t)
static double polevl(double x, double *coef, int n)