73{
75 int region, xneg;
76
77 unsigned long long ux,
ax;
78
80
82 ax = (ux & ~SIGNBIT_DP64);
83
84 if (
ax <= 0x3fe921fb54442d18)
85 {
86 if (
ax < 0x3f80000000000000)
87 {
88 if (
ax < 0x3f20000000000000)
89 {
90 if (
ax == 0x0000000000000000)
92 else
94 }
95 else
96 return (
float)(
dx +
dx*
dx*
dx*0.333333333333333333);
97 }
98 else
100 }
102 {
103
105 {
106
107 unsigned int ufx;
111 }
112 else
113 {
114
117 }
118 }
119
120 xneg = (
int)(ux >> 63);
121
122 if (xneg)
124
126 {
127
128
129
130 static const double
131 twobypi = 6.36619772367581382433e-01,
132 piby2_1 = 1.57079632673412561417e+00,
133 piby2_1tail = 6.07710050650619224932e-11,
134 piby2_2 = 6.07710050630396597660e-11,
135 piby2_2tail = 2.02226624879595063154e-21,
136 piby2_3 = 2.02226624871116645580e-21,
137 piby2_3tail = 8.47842766036889956997e-32;
138 double t, rhead, rtail;
139 int npi2;
140 unsigned long long uy, xexp, expdiff;
142
143 if (
ax <= 0x400f6a7a2955385e)
144 {
145 if (
ax <= 0x4002d97c7f3321d2)
146 npi2 = 1;
147 else
148 npi2 = 2;
149 }
150 else if (
ax <= 0x401c463abeccb2bb)
151 {
152 if (
ax <= 0x4015fdbbe9bba775)
153 npi2 = 3;
154 else
155 npi2 = 4;
156 }
157 else
158 npi2 = (
int)(
dx * twobypi + 0.5);
159
160 rhead =
dx - npi2 * piby2_1;
161 rtail = npi2 * piby2_1tail;
164 if (expdiff > 15)
165 {
166
167
168
170 rtail = npi2 * piby2_2;
172 rtail = npi2 * piby2_2tail - ((
t - rhead) - rtail);
173 if (expdiff > 48)
174 {
175
177 rtail = npi2 * piby2_3;
179 rtail = npi2 * piby2_3tail - ((
t - rhead) - rtail);
180 }
181 }
183 region = npi2 & 3;
184 }
185 else
186 {
187
188 __remainder_piby2f_inline(
ax, &
r, ®ion);
189 }
190
191 if (xneg)
193 else
195}
float __cdecl _handle_errorf(char *fname, int opcode, unsigned long long value, int type, int flags, int error, float arg1, float arg2, int nargs)
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
GLint GLint GLint GLint GLint x
GLdouble GLdouble GLdouble r
static double tanf_piby4(double x, int recip)
#define INDEFBITPATT_SP32
#define GET_BITS_SP32(x, ux)
#define EXPSHIFTBITS_DP64
#define GET_BITS_DP64(x, ux)
ecx edi movl ebx edx edi decl ecx esi eax jecxz decl eax andl eax esi movl edx movl TEMP incl eax andl eax ecx incl ebx testl eax jnz xchgl ecx incl TEMP esp ecx subl ebx pushl ecx ecx edx ecx shrl ecx mm0 mm4 mm0 mm4 mm1 mm5 mm1 mm5 mm2 mm6 mm2 mm6 mm3 mm7 mm3 mm7 paddd mm0 paddd mm4 paddd mm0 paddd mm4 paddd mm0 paddd mm4 movq mm1 movq mm5 psrlq mm1 psrlq mm5 paddd mm0 paddd mm4 psrad mm0 psrad mm4 packssdw mm0 packssdw mm4 mm1 punpckldq mm0 pand mm1 pand mm0 por mm1 movq edi esi edx edi decl ecx jnz popl ecx andl ecx jecxz mm0 mm0 mm1 mm1 mm2 mm2 mm3 mm3 paddd mm0 paddd mm0 paddd mm0 movq mm1 psrlq mm1 paddd mm0 psrad mm0 packssdw mm0 movd eax movw ax