Go to the source code of this file.
◆ EXTRACT_WORDS
#define EXTRACT_WORDS |
( |
|
ix0, |
|
|
|
ix1, |
|
|
|
d |
|
) |
| |
Value:do { \
(ix0) = ew_u.
parts.msw; \
(ix1) = ew_u.
parts.lsw; \
} while (0)
struct ieee_double_shape_type::@4312 parts
Definition at line 16 of file ieee754.h.
◆ GET_HIGH_WORD
Value:do { \
} while (0)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition at line 26 of file ieee754.h.
◆ GET_LOW_WORD
◆ int32_t
◆ u_int32_t
◆ __cos()
◆ __ieee754_j0()
Definition at line 102 of file j0_y0.c.
105{
106 double z,
s,
c,
ss,
cc,
r,
u,
v,
r1,
r2,
s1,
s2,z2,z4;
108
110 ix = hx&0x7fffffff;
111 if(ix>=0x7ff00000)
return one/(
x*
x);
113 if(ix >= 0x40000000) {
117 if(ix<0x7fe00000) {
121 }
122
123
124
125
127 else {
130 }
132 }
133 if(ix<0x3f200000) {
135 if(ix<0x3e400000)
return one;
136 else return one - 0.25*
x*
x;
137 }
138 }
140#ifdef DO_NOT_USE_THIS
141 r =
z*(R02+
z*(R03+
z*(R04+
z*R05)));
142 s =
one+
z*(S01+
z*(S02+
z*(S03+
z*S04)));
143#else
145 r2 =
R[3]+
z*
R[4]; z4=z2*z2;
150#endif
151 if(ix < 0x3FF00000) {
152 return one +
z*(-0.25+(
r/
s));
153 } else {
156 }
157}
GLdouble GLdouble GLdouble r
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble * u
static __inline void __sincos(double x, double *s, double *c)
static __inline double __cos(double x)
#define GET_HIGH_WORD(i, d)
static __inline double __ieee754_sqrt(double x)
_Check_return_ _CRT_JIT_INTRINSIC double __cdecl fabs(_In_ double x)
Referenced by __ieee754_jn(), __ieee754_y0(), and _j0().
◆ __ieee754_j1()
Definition at line 103 of file j1_y1.c.
106{
107 double z,
s,
c,
ss,
cc,
r,
u,
v,
y,
r1,
r2,
s1,
s2,s3,z2,z4;
109
111 ix = hx&0x7fffffff;
112 if(ix>=0x7ff00000)
return one/
x;
114 if(ix >= 0x40000000) {
118 if(ix<0x7fe00000) {
122 }
123
124
125
126
128 else {
131 }
134 }
135 if(ix<0x3e400000) {
137 }
139#ifdef DO_NOT_USE_THIS
140 r =
z*(r00+
z*(r01+
z*(r02+
z*r03)));
141 s =
one+
z*(s01+
z*(s02+
z*(s03+
z*(s04+
z*s05))));
143#else
145 r2 =
R[1]+
z*
R[2]; z4=z2*z2;
151 s =
s1 + z2*
s2 + z4*s3;
152#endif
154}
GLint GLint GLint GLint GLint GLint y
Referenced by __ieee754_jn(), __ieee754_y1(), and _j1().
◆ __ieee754_jn()
Definition at line 64 of file jn_yn.c.
67{
71
72
73
74
76 ix = 0x7fffffff&hx;
77
78 if((ix|((
u_int32_t)(lx|-lx))>>31)>0x7ff00000)
return x+
x;
82 hx ^= 0x80000000;
83 }
88 if((ix|lx)==0||ix>=0x7ff00000)
90 else if((
double)
n<=
x) {
91
92 if(ix>=0x52D00000) {
93
94
95
96
97
98
99
100
101
102
103
104
105
110 case 0:
temp =
c +
s;
break;
111 case 1:
temp = -
c +
s;
break;
112 case 2:
temp = -
c -
s;
break;
113 case 3:
temp =
c -
s;
break;
114 }
116 } else {
123 }
124 }
125 } else {
126 if(ix<0x3e100000) {
127
128
129
132 else {
137 }
139 }
140 } else {
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
173 q0 =
w;
z =
w+
h; q1 =
w*
z - 1.0;
k=1;
174 while(q1<1.0e9) {
177 q0 = q1;
178 q1 = tmp;
179 }
184
185
186
187
188
189
190
191
195 if(tmp<7.09782712893383973096e+02) {
196 for(
i=
n-1,di=(
double)(
i+
i);
i>0;
i--){
202 }
203 } else {
204 for(
i=
n-1,di=(
double)(
i+
i);
i>0;
i--){
210
215 }
216 }
217 }
219 }
220 }
221 if(
sgn==1)
return -
b;
else return b;
222}
GLboolean GLboolean GLboolean b
GLboolean GLboolean GLboolean GLboolean a
GLubyte GLubyte GLubyte GLubyte w
GLfloat GLfloat GLfloat GLfloat h
double __ieee754_j0(double)
double __ieee754_j1(double)
#define EXTRACT_WORDS(ix0, ix1, d)
static __inline double __ieee754_log(double x)
static const char mbstate_t *static wchar_t const char mbstate_t *static const wchar_t int *static double
Referenced by _jn().
◆ __ieee754_log()
◆ __ieee754_sqrt()
◆ __ieee754_y0()
Definition at line 179 of file j0_y0.c.
182{
183 double z,
s,
c,
ss,
cc,
u,
v,z2,z4,z6,
u1,
u2,
u3,
v1,
v2;
185
187 ix = 0x7fffffff&hx;
188
189 if(ix>=0x7ff00000)
return one/(
x+
x*
x);
192 if(ix >= 0x40000000) {
193
194
195
196
197
198
199
200
201
202
203
207
208
209
210
211 if(ix<0x7fe00000) {
215 }
217 else {
220 }
222 }
223 if(ix<=0x3e400000) {
225 }
227#ifdef DO_NOT_USE_THIS
228 u = u00+
z*(u01+
z*(u02+
z*(u03+
z*(u04+
z*(u05+
z*u06)))));
229 v =
one+
z*(v01+
z*(v02+
z*(v03+
z*v04)));
230#else
232 u2 =
U[2]+
z*
U[3]; z4=z2*z2;
233 u3 =
U[4]+
z*
U[5]; z6=z4*z2;
238#endif
240}
GLfloat GLfloat GLfloat v2
double __ieee754_j0(double x)
Referenced by __ieee754_yn(), and _y0().
◆ __ieee754_y1()
Definition at line 182 of file j1_y1.c.
185{
186 double z,
s,
c,
ss,
cc,
u,
v,
u1,
u2,
v1,
v2,
v3,z2,z4;
188
190 ix = 0x7fffffff&hx;
191
192 if(ix>=0x7ff00000)
return one/(
x+
x*
x);
195 if(ix >= 0x40000000) {
199 if(ix<0x7fe00000) {
203 }
204
205
206
207
208
209
210
211
212
213
214
216 else {
219 }
221 }
222 if(ix<=0x3c900000) {
224 }
226#ifdef DO_NOT_USE_THIS
229#else
237#endif
239}
GLfloat GLfloat GLfloat GLfloat v3
double __ieee754_j1(double x)
Referenced by __ieee754_yn(), and _y1().
◆ __ieee754_yn()
Definition at line 227 of file jn_yn.c.
230{
234
236 ix = 0x7fffffff&hx;
237
238 if((ix|((
u_int32_t)(lx|-lx))>>31)>0x7ff00000)
return x+
x;
244 sign = 1 - ((
n&1)<<1);
245 }
248 if(ix==0x7ff00000)
return zero;
249 if(ix>=0x52D00000) {
250
251
252
253
254
255
256
257
258
259
260
261
262
267 case 0:
temp =
s -
c;
break;
268 case 1:
temp = -
s -
c;
break;
269 case 2:
temp = -
s +
c;
break;
270 case 3:
temp =
s +
c;
break;
271 }
273 } else {
277
279 for(
i=1;
i<
n&&high!=0xfff00000;
i++){
284 }
285 }
286 if(
sign>0)
return b;
else return -
b;
287}
double __ieee754_y0(double)
double __ieee754_y1(double)
Referenced by _yn().
◆ __sincos()