31#define USE_SCALEDOUBLE_1
32#define USE_SCALEDOUBLE_2
33#define USE_INFINITYF_WITH_FLAGS
34#define USE_VALF_WITH_FLAGS
35#define USE_HANDLE_ERRORF
38#undef USE_SCALEDOUBLE_1
39#undef USE_SCALEDOUBLE_2
40#undef USE_INFINITYF_WITH_FLAGS
41#undef USE_VALF_WITH_FLAGS
42#undef USE_HANDLE_ERRORF
47#pragma warning(disable:4163)
48#pragma function(coshf)
70 max_cosh_arg = 8.94159862922329438106e+01,
71 thirtytwo_by_log2 = 4.61662413084468283841e+01,
72 log2_by_32_lead = 2.16608493356034159660e-02,
73 log2_by_32_tail = 5.68948749532545630390e-11,
81 static const double sinh_lead[ 37] = {
82 0.00000000000000000000e+00,
83 1.17520119364380137839e+00,
84 3.62686040784701857476e+00,
85 1.00178749274099008204e+01,
86 2.72899171971277496596e+01,
87 7.42032105777887522891e+01,
88 2.01713157370279219549e+02,
89 5.48316123273246489589e+02,
90 1.49047882578955000099e+03,
91 4.05154190208278987484e+03,
92 1.10132328747033916443e+04,
93 2.99370708492480553105e+04,
94 8.13773957064298447222e+04,
95 2.21206696003330085659e+05,
96 6.01302142081972560845e+05,
97 1.63450868623590236530e+06,
98 4.44305526025387924165e+06,
99 1.20774763767876271158e+07,
100 3.28299845686652474105e+07,
101 8.92411504815936237574e+07,
102 2.42582597704895108938e+08,
103 6.59407867241607308388e+08,
104 1.79245642306579566002e+09,
105 4.87240172312445068359e+09,
106 1.32445610649217357635e+10,
107 3.60024496686929321289e+10,
108 9.78648047144193725586e+10,
109 2.66024120300899291992e+11,
110 7.23128532145737548828e+11,
111 1.96566714857202099609e+12,
112 5.34323729076223046875e+12,
113 1.45244248326237109375e+13,
114 3.94814800913403437500e+13,
115 1.07321789892958031250e+14,
116 2.91730871263727437500e+14,
117 7.93006726156715250000e+14,
118 2.15561577355759750000e+15};
120 static const double cosh_lead[ 37] = {
121 1.00000000000000000000e+00,
122 1.54308063481524371241e+00,
123 3.76219569108363138810e+00,
124 1.00676619957777653269e+01,
125 2.73082328360164865444e+01,
126 7.42099485247878334349e+01,
127 2.01715636122455890700e+02,
128 5.48317035155212010977e+02,
129 1.49047916125217807348e+03,
130 4.05154202549259389343e+03,
131 1.10132329201033226127e+04,
132 2.99370708659497577173e+04,
133 8.13773957125740562333e+04,
134 2.21206696005590405548e+05,
135 6.01302142082804115489e+05,
136 1.63450868623620807193e+06,
137 4.44305526025399193168e+06,
138 1.20774763767876680940e+07,
139 3.28299845686652623117e+07,
140 8.92411504815936237574e+07,
141 2.42582597704895138741e+08,
142 6.59407867241607308388e+08,
143 1.79245642306579566002e+09,
144 4.87240172312445068359e+09,
145 1.32445610649217357635e+10,
146 3.60024496686929321289e+10,
147 9.78648047144193725586e+10,
148 2.66024120300899291992e+11,
149 7.23128532145737548828e+11,
150 1.96566714857202099609e+12,
151 5.34323729076223046875e+12,
152 1.45244248326237109375e+13,
153 3.94814800913403437500e+13,
154 1.07321789892958031250e+14,
155 2.91730871263727437500e+14,
156 7.93006726156715250000e+14,
157 2.15561577355759750000e+15};
159 unsigned long long ux,
aux, xneg;
161 double x =
fx,
y,
z, z1, z2;
167 aux = ux & ~SIGNBIT_DP64;
168 if (
aux < 0x3f10000000000000)
170 if (
aux == 0)
return (
float)1.0;
182 return infinityf_with_flags(0);
189 if (
y >= max_cosh_arg)
194 else if (
y >= small_threshold)
204 splitexp(
y, 1.0, thirtytwo_by_log2, log2_by_32_lead,
205 log2_by_32_tail, &
m, &z1, &z2);
210 z = scaleDouble_1((z1+z2),
m);
223 double dy, dy2, sdy, cdy;
230 sdy =
dy +
dy*dy2*(0.166666666666666667013899e0 +
231 (0.833333333333329931873097e-2 +
232 (0.198412698413242405162014e-3 +
233 (0.275573191913636406057211e-5 +
234 (0.250521176994133472333666e-7 +
235 (0.160576793121939886190847e-9 +
236 0.7746188980094184251527126e-12*dy2)*dy2)*dy2)*dy2)*dy2)*dy2);
238 cdy = 1 + dy2*(0.500000000000000005911074e0 +
239 (0.416666666666660876512776e-1 +
240 (0.138888888889814854814536e-2 +
241 (0.248015872460622433115785e-4 +
242 (0.275573350756016588011357e-6 +
243 (0.208744349831471353536305e-8 +
244 0.1163921388172173692062032e-10*dy2)*dy2)*dy2)*dy2)*dy2)*dy2);
246 z = cosh_lead[ind]*cdy + sinh_lead[ind]*sdy;
float __cdecl _handle_errorf(char *fname, int opcode, unsigned long long value, int type, int flags, int error, float arg1, float arg2, int nargs)
_Check_return_ float __cdecl coshf(_In_ float x)
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
GLint GLint GLint GLint GLint x
GLint GLint GLint GLint GLint GLint y
#define GET_BITS_SP32(x, ux)
#define GET_BITS_DP64(x, ux)