47{
48
49
50
51
52
53
54
55
56 static const double
57 thirtytwo_by_log2 = 4.61662413084468283841e+01,
58 log2_by_32_lead = 2.16608493356034159660e-02,
59 log2_by_32_tail = 5.68948749532545630390e-11,
60 large_threshold = 20.0;
61
62 unsigned long long ux,
aux, xneg;
63 double y,
z,
p, z1, z2;
65
66
67
69 aux = ux & ~SIGNBIT_DP64;
70 if (
aux < 0x3e30000000000000)
71 {
74 else
76 }
77 else if (
aux > 0x7ff0000000000000)
80
81
83
86
87 if (
y > large_threshold)
88 {
89
90
92 }
94 {
98 {
99
101 (-0.274030424656179760118928e0 +
102 (-0.176016349003044679402273e-1 +
103 (-0.200047621071909498730453e-3 -
104 0.142077926378834722618091e-7*
y2)*
y2)*
y2)/
105 (0.822091273968539282568011e0 +
106 (0.381641414288328849317962e0 +
107 (0.201562166026937652780575e-1 +
108 0.2091140262529164482568557e-3*
y2)*
y2)*
y2);
109 }
110 else
111 {
112
114 (-0.227793870659088295252442e0 +
115 (-0.146173047288731678404066e-1 +
116 (-0.165597043903549960486816e-3 -
117 0.115475878996143396378318e-7*
y2)*
y2)*
y2)/
118 (0.683381611977295894959554e0 +
119 (0.317204558977294374244770e0 +
120 (0.167358775461896562588695e-1 +
121 0.173076050126225961768710e-3*
y2)*
y2)*
y2);
122 }
123 }
124 else
125 {
126
127
128
129 splitexp(2*
y, 1.0, thirtytwo_by_log2, log2_by_32_lead,
130 log2_by_32_tail, &
m, &z1, &z2);
131 p = scaleDouble_2(z1 + z2,
m) + 1.0;
132
133
135 }
136
139}
double __cdecl _handle_error(char *fname, int opcode, unsigned long long value, int type, int flags, int error, double arg1, double arg2, int nargs)
Handles an error condition.
GLint GLint GLint GLint GLint x
GLint GLint GLint GLint GLint GLint y
#define GET_BITS_DP64(x, ux)
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG _In_ LONG y2