2 * Copyright 2011 Alexandre Julliard
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
24 #define _USE_MATH_DEFINES
31 typedef double LDOUBLE
; /* long double is just a double */
33 typedef struct { } std_Num_base
;
34 typedef struct { } std_Ctraits
;
36 enum std_float_denorm_style
38 denorm_indeterminate
= -1,
43 enum std_float_round_style
45 round_indeterminate
= -1,
46 round_toward_zero
= 0,
48 round_toward_infinity
= 2,
49 round_toward_neg_infinity
= 3
52 /* these are defined as integers but the bit patterns are then interpreted as floats/doubles */
53 const DWORD _FDenorm
= 1;
54 const ULONGLONG _Denorm
= 1;
55 const ULONGLONG _LDenorm
= 1;
56 const DWORD _FInf
= 0x7f800000;
57 const ULONGLONG _Inf
= (ULONGLONG
)0x7ff00000 << 32;
58 const ULONGLONG _LInf
= (ULONGLONG
)0x7ff00000 << 32;
59 const DWORD _FNan
= 0x7fc00000;
60 const ULONGLONG _Nan
= (ULONGLONG
)0x7ff80000 << 32;
61 const ULONGLONG _LNan
= (ULONGLONG
)0x7ff80000 << 32;
62 const DWORD _FSnan
= 0x7f800001;
63 const ULONGLONG _Snan
= ((ULONGLONG
)0x7ff00000 << 32) + 1;
64 const ULONGLONG _LSnan
= ((ULONGLONG
)0x7ff00000 << 32) + 1;
65 const ULONGLONG _LZero
= 0;
66 const ULONGLONG _Hugeval
= (ULONGLONG
)0x7ff00000 << 32;
68 const float _FEps
= FLT_EPSILON
;
69 const double _Eps
= DBL_EPSILON
;
70 const LDOUBLE _LEps
= LDBL_EPSILON
;
72 /* ?digits10@?$numeric_limits@C@std@@2HB -> public: static int const std::numeric_limits<signed char>::digits10 */
73 const int std_numeric_limits_signed_char_digits10
= 2;
75 /* ?digits10@?$numeric_limits@D@std@@2HB -> public: static int const std::numeric_limits<char>::digits10 */
76 const int std_numeric_limits_char_digits10
= 2;
78 /* ?digits10@?$numeric_limits@E@std@@2HB -> public: static int const std::numeric_limits<unsigned char>::digits10 */
79 const int std_numeric_limits_unsigned_char_digits10
= 2;
81 /* ?digits10@?$numeric_limits@F@std@@2HB -> public: static int const std::numeric_limits<short>::digits10 */
82 const int std_numeric_limits_short_digits10
= 4;
84 /* ?digits10@?$numeric_limits@G@std@@2HB -> public: static int const std::numeric_limits<unsigned short>::digits10 */
85 const int std_numeric_limits_unsigned_short_digits10
= 4;
87 /* ?digits10@?$numeric_limits@H@std@@2HB -> public: static int const std::numeric_limits<int>::digits10 */
88 const int std_numeric_limits_int_digits10
= 9;
90 /* ?digits10@?$numeric_limits@I@std@@2HB -> public: static int const std::numeric_limits<unsigned int>::digits10 */
91 const int std_numeric_limits_unsigned_int_digits10
= 9;
93 /* ?digits10@?$numeric_limits@J@std@@2HB -> public: static int const std::numeric_limits<long>::digits10 */
94 const int std_numeric_limits_long_digits10
= 9;
96 /* ?digits10@?$numeric_limits@K@std@@2HB -> public: static int const std::numeric_limits<unsigned long>::digits10 */
97 const int std_numeric_limits_unsigned_long_digits10
= 9;
99 /* ?digits10@?$numeric_limits@M@std@@2HB -> public: static int const std::numeric_limits<float>::digits10 */
100 const int std_numeric_limits_float_digits10
= FLT_DIG
;
102 /* ?digits10@?$numeric_limits@N@std@@2HB -> public: static int const std::numeric_limits<double>::digits10 */
103 const int std_numeric_limits_double_digits10
= DBL_DIG
;
105 /* ?digits10@?$numeric_limits@O@std@@2HB -> public: static int const std::numeric_limits<long double>::digits10 */
106 const int std_numeric_limits_long_double_digits10
= LDBL_DIG
;
108 /* ?digits10@?$numeric_limits@_J@std@@2HB -> public: static int const std::numeric_limits<__int64>::digits10 */
109 const int std_numeric_limits_int64_digits10
= 18;
111 /* ?digits10@?$numeric_limits@_K@std@@2HB -> public: static int const std::numeric_limits<unsigned __int64>::digits10 */
112 const int std_numeric_limits_unsigned_int64_digits10
= 18;
114 /* ?digits10@?$numeric_limits@_N@std@@2HB -> public: static int const std::numeric_limits<bool>::digits10 */
115 const int std_numeric_limits_bool_digits10
= 0;
117 /* ?digits10@?$numeric_limits@_W@std@@2HB -> public: static int const std::numeric_limits<wchar_t>::digits10 */
118 const int std_numeric_limits_wchar_t_digits10
= 4;
120 /* ?digits10@_Num_base@std@@2HB -> public: static int const std::_Num_base::digits10 */
121 const int std_Num_base_digits10
= 0;
123 /* ?digits@?$numeric_limits@C@std@@2HB -> public: static int const std::numeric_limits<signed char>::digits */
124 const int std_numeric_limits_signed_char_digits
= 7;
126 /* ?digits@?$numeric_limits@D@std@@2HB -> public: static int const std::numeric_limits<char>::digits */
127 const int std_numeric_limits_char_digits
= (CHAR_MIN
< 0) ? 7 : 8;
129 /* ?digits@?$numeric_limits@E@std@@2HB -> public: static int const std::numeric_limits<unsigned char>::digits */
130 const int std_numeric_limits_unsigned_char_digits
= 8;
132 /* ?digits@?$numeric_limits@F@std@@2HB -> public: static int const std::numeric_limits<short>::digits */
133 const int std_numeric_limits_short_digits
= 15;
135 /* ?digits@?$numeric_limits@G@std@@2HB -> public: static int const std::numeric_limits<unsigned short>::digits */
136 const int std_numeric_limits_unsigned_short_digits
= 16;
138 /* ?digits@?$numeric_limits@H@std@@2HB -> public: static int const std::numeric_limits<int>::digits */
139 const int std_numeric_limits_int_digits
= 31;
141 /* ?digits@?$numeric_limits@I@std@@2HB -> public: static int const std::numeric_limits<unsigned int>::digits */
142 const int std_numeric_limits_unsigned_int_digits
= 32;
144 /* ?digits@?$numeric_limits@J@std@@2HB -> public: static int const std::numeric_limits<long>::digits */
145 const int std_numeric_limits_long_digits
= 31;
147 /* ?digits@?$numeric_limits@K@std@@2HB -> public: static int const std::numeric_limits<unsigned long>::digits */
148 const int std_numeric_limits_unsigned_long_digits
= 32;
150 /* ?digits@?$numeric_limits@M@std@@2HB -> public: static int const std::numeric_limits<float>::digits */
151 const int std_numeric_limits_float_digits
= FLT_MANT_DIG
;
153 /* ?digits@?$numeric_limits@N@std@@2HB -> public: static int const std::numeric_limits<double>::digits */
154 const int std_numeric_limits_double_digits
= DBL_MANT_DIG
;
156 /* ?digits@?$numeric_limits@O@std@@2HB -> public: static int const std::numeric_limits<long double>::digits */
157 const int std_numeric_limits_long_double_digits
= LDBL_MANT_DIG
;
159 /* ?digits@?$numeric_limits@_J@std@@2HB -> public: static int const std::numeric_limits<__int64>::digits */
160 const int std_numeric_limits_int64_digits
= 63;
162 /* ?digits@?$numeric_limits@_K@std@@2HB -> public: static int const std::numeric_limits<unsigned __int64>::digits */
163 const int std_numeric_limits_unsigned_int64_digits
= 64;
165 /* ?digits@?$numeric_limits@_N@std@@2HB -> public: static int const std::numeric_limits<bool>::digits */
166 const int std_numeric_limits_bool_digits
= 1;
168 /* ?digits@?$numeric_limits@_W@std@@2HB -> public: static int const std::numeric_limits<wchar_t>::digits */
169 const int std_numeric_limits_wchar_t_digits
= 16;
171 /* ?digits@_Num_base@std@@2HB -> public: static int const std::_Num_base::digits */
172 const int std_Num_base_digits
= 0;
174 /* ?has_denorm@_Num_base@std@@2W4float_denorm_style@2@B -> public: static enum std::float_denorm_style const std::_Num_base::has_denorm */
175 const enum std_float_denorm_style std_Num_base_has_denorm
= denorm_absent
;
177 /* ?has_denorm@_Num_float_base@std@@2W4float_denorm_style@2@B -> public: static enum std::float_denorm_style const std::_Num_float_base::has_denorm */
178 const enum std_float_denorm_style std_Num_float_base_has_denorm
= denorm_present
;
180 /* ?has_denorm_loss@_Num_base@std@@2_NB -> public: static bool const std::_Num_base::has_denorm_loss */
181 const BOOLEAN std_Num_base_has_denorm_loss
= FALSE
;
183 /* ?has_denorm_loss@_Num_float_base@std@@2_NB -> public: static bool const std::_Num_float_base::has_denorm_loss */
184 const BOOLEAN std_Num_float_base_has_denorm_loss
= TRUE
;
186 /* ?has_infinity@_Num_base@std@@2_NB -> public: static bool const std::_Num_base::has_infinity */
187 const BOOLEAN std_Num_base_has_infinity
= FALSE
;
189 /* ?has_infinity@_Num_float_base@std@@2_NB -> public: static bool const std::_Num_float_base::has_infinity */
190 const BOOLEAN std_Num_float_base_has_infinity
= TRUE
;
192 /* ?has_quiet_NaN@_Num_base@std@@2_NB -> public: static bool const std::_Num_base::has_quiet_NaN */
193 const BOOLEAN std_Num_base_has_quiet_NaN
= FALSE
;
195 /* ?has_quiet_NaN@_Num_float_base@std@@2_NB -> public: static bool const std::_Num_float_base::has_quiet_NaN */
196 const BOOLEAN std_Num_float_base_has_quiet_NaN
= TRUE
;
198 /* ?has_signaling_NaN@_Num_base@std@@2_NB -> public: static bool const std::_Num_base::has_signaling_NaN */
199 const BOOLEAN std_Num_base_has_signaling_NaN
= FALSE
;
201 /* ?has_signaling_NaN@_Num_float_base@std@@2_NB -> public: static bool const std::_Num_float_base::has_signaling_NaN */
202 const BOOLEAN std_Num_float_base_has_signaling_NaN
= TRUE
;
204 /* ?is_bounded@_Num_base@std@@2_NB -> public: static bool const std::_Num_base::is_bounded */
205 const BOOLEAN std_Num_base_is_bounded
= FALSE
;
207 /* ?is_bounded@_Num_float_base@std@@2_NB -> public: static bool const std::_Num_float_base::is_bounded */
208 const BOOLEAN std_Num_float_base_is_bounded
= TRUE
;
210 /* ?is_bounded@_Num_int_base@std@@2_NB -> public: static bool const std::_Num_int_base::is_bounded */
211 const BOOLEAN std_Num_int_base_is_bounded
= TRUE
;
213 /* ?is_exact@_Num_base@std@@2_NB -> public: static bool const std::_Num_base::is_exact */
214 const BOOLEAN std_Num_base_is_exact
= FALSE
;
216 /* ?is_exact@_Num_float_base@std@@2_NB -> public: static bool const std::_Num_float_base::is_exact */
217 const BOOLEAN std_Num_float_base_is_exact
= FALSE
;
219 /* ?is_exact@_Num_int_base@std@@2_NB -> public: static bool const std::_Num_int_base::is_exact */
220 const BOOLEAN std_Num_int_base_is_exact
= TRUE
;
222 /* ?is_iec559@_Num_base@std@@2_NB -> public: static bool const std::_Num_base::is_iec559 */
223 const BOOLEAN std_Num_base_is_iec559
= FALSE
;
225 /* ?is_iec559@_Num_float_base@std@@2_NB -> public: static bool const std::_Num_float_base::is_iec559 */
226 const BOOLEAN std_Num_float_base_is_iec559
= TRUE
;
228 /* ?is_integer@_Num_base@std@@2_NB -> public: static bool const std::_Num_base::is_integer */
229 const BOOLEAN std_Num_base_is_integer
= FALSE
;
231 /* ?is_integer@_Num_float_base@std@@2_NB -> public: static bool const std::_Num_float_base::is_integer */
232 const BOOLEAN std_Num_float_base_is_integer
= FALSE
;
234 /* ?is_integer@_Num_int_base@std@@2_NB -> public: static bool const std::_Num_int_base::is_integer */
235 const BOOLEAN std_Num_int_base_is_integer
= TRUE
;
237 /* ?is_modulo@?$numeric_limits@_N@std@@2_NB -> public: static bool const std::numeric_limits<bool>::is_modulo */
238 const BOOLEAN std_numeric_limits_bool_is_modulo
= FALSE
;
240 /* ?is_modulo@_Num_base@std@@2_NB -> public: static bool const std::_Num_base::is_modulo */
241 const BOOLEAN std_Num_base_is_modulo
= FALSE
;
243 /* ?is_modulo@_Num_float_base@std@@2_NB -> public: static bool const std::_Num_float_base::is_modulo */
244 const BOOLEAN std_Num_float_base_is_modulo
= FALSE
;
246 /* ?is_modulo@_Num_int_base@std@@2_NB -> public: static bool const std::_Num_int_base::is_modulo */
247 const BOOLEAN std_Num_int_base_is_modulo
= TRUE
;
249 /* ?is_signed@?$numeric_limits@C@std@@2_NB -> public: static bool const std::numeric_limits<signed char>::is_signed */
250 const BOOLEAN std_numeric_limits_signed_char_is_signed
= TRUE
;
252 /* ?is_signed@?$numeric_limits@D@std@@2_NB -> public: static bool const std::numeric_limits<char>::is_signed */
253 const BOOLEAN std_numeric_limits_char_is_signed
= (CHAR_MIN
< 0);
255 /* ?is_signed@?$numeric_limits@E@std@@2_NB -> public: static bool const std::numeric_limits<unsigned char>::is_signed */
256 const BOOLEAN std_numeric_limits_unsigned_char_is_signed
= FALSE
;
258 /* ?is_signed@?$numeric_limits@F@std@@2_NB -> public: static bool const std::numeric_limits<short>::is_signed */
259 const BOOLEAN std_numeric_limits_short_is_signed
= TRUE
;
261 /* ?is_signed@?$numeric_limits@G@std@@2_NB -> public: static bool const std::numeric_limits<unsigned short>::is_signed */
262 const BOOLEAN std_numeric_limits_unsigned_short_is_signed
= FALSE
;
264 /* ?is_signed@?$numeric_limits@H@std@@2_NB -> public: static bool const std::numeric_limits<int>::is_signed */
265 const BOOLEAN std_numeric_limits_int_is_signed
= TRUE
;
267 /* ?is_signed@?$numeric_limits@I@std@@2_NB -> public: static bool const std::numeric_limits<unsigned int>::is_signed */
268 const BOOLEAN std_numeric_limits_unsigned_int_is_signed
= FALSE
;
270 /* ?is_signed@?$numeric_limits@J@std@@2_NB -> public: static bool const std::numeric_limits<long>::is_signed */
271 const BOOLEAN std_numeric_limits_long_is_signed
= TRUE
;
273 /* ?is_signed@?$numeric_limits@K@std@@2_NB -> public: static bool const std::numeric_limits<unsigned long>::is_signed */
274 const BOOLEAN std_numeric_limits_unsigned_long_is_signed
= FALSE
;
276 /* ?is_signed@?$numeric_limits@_J@std@@2_NB -> public: static bool const std::numeric_limits<__int64>::is_signed */
277 const BOOLEAN std_numeric_limits_int64_is_signed
= TRUE
;
279 /* ?is_signed@?$numeric_limits@_K@std@@2_NB -> public: static bool const std::numeric_limits<unsigned __int64>::is_signed */
280 const BOOLEAN std_numeric_limits_unsigned_int64_is_signed
= FALSE
;
282 /* ?is_signed@?$numeric_limits@_N@std@@2_NB -> public: static bool const std::numeric_limits<bool>::is_signed */
283 const BOOLEAN std_numeric_limits_bool_is_signed
= FALSE
;
285 /* ?is_signed@?$numeric_limits@_W@std@@2_NB -> public: static bool const std::numeric_limits<wchar_t>::is_signed */
286 const BOOLEAN std_numeric_limits_wchar_t_is_signed
= FALSE
;
288 /* ?is_signed@_Num_base@std@@2_NB -> public: static bool const std::_Num_base::is_signed */
289 const BOOLEAN std_Num_base_is_signed
= FALSE
;
291 /* ?is_signed@_Num_float_base@std@@2_NB -> public: static bool const std::_Num_float_base::is_signed */
292 const BOOLEAN std_Num_float_base_is_signed
= TRUE
;
294 /* ?is_specialized@_Num_base@std@@2_NB -> public: static bool const std::_Num_base::is_specialized */
295 const BOOLEAN std_Num_base_is_specialized
= FALSE
;
297 /* ?is_specialized@_Num_float_base@std@@2_NB -> public: static bool const std::_Num_float_base::is_specialized */
298 const BOOLEAN std_Num_float_base_is_specialized
= TRUE
;
300 /* ?is_specialized@_Num_int_base@std@@2_NB -> public: static bool const std::_Num_int_base::is_specialized */
301 const BOOLEAN std_Num_int_base_is_specialized
= TRUE
;
303 /* ?max_exponent10@?$numeric_limits@M@std@@2HB -> public: static int const std::numeric_limits<float>::max_exponent10 */
304 const int std_numeric_limits_float_max_exponent10
= FLT_MAX_10_EXP
;
306 /* ?max_exponent10@?$numeric_limits@N@std@@2HB -> public: static int const std::numeric_limits<double>::max_exponent10 */
307 const int std_numeric_limits_double_max_exponent10
= DBL_MAX_10_EXP
;
309 /* ?max_exponent10@?$numeric_limits@O@std@@2HB -> public: static int const std::numeric_limits<long double>::max_exponent10 */
310 const int std_numeric_limits_long_double_max_exponent10
= LDBL_MAX_10_EXP
;
312 /* ?max_exponent10@_Num_base@std@@2HB -> public: static int const std::_Num_base::max_exponent10 */
313 const int std_Num_base_max_exponent10
= 0;
315 /* ?max_exponent@?$numeric_limits@M@std@@2HB -> public: static int const std::numeric_limits<float>::max_exponent */
316 const int std_numeric_limits_float_max_exponent
= FLT_MAX_EXP
;
318 /* ?max_exponent@?$numeric_limits@N@std@@2HB -> public: static int const std::numeric_limits<double>::max_exponent */
319 const int std_numeric_limits_double_max_exponent
= DBL_MAX_EXP
;
321 /* ?max_exponent@?$numeric_limits@O@std@@2HB -> public: static int const std::numeric_limits<long double>::max_exponent */
322 const int std_numeric_limits_long_double_max_exponent
= LDBL_MAX_EXP
;
324 /* ?max_exponent@_Num_base@std@@2HB -> public: static int const std::_Num_base::max_exponent */
325 const int std_Num_base_max_exponent
= 0;
327 /* ?min_exponent10@?$numeric_limits@M@std@@2HB -> public: static int const std::numeric_limits<float>::min_exponent10 */
328 const int std_numeric_limits_float_min_exponent10
= FLT_MIN_10_EXP
;
330 /* ?min_exponent10@?$numeric_limits@N@std@@2HB -> public: static int const std::numeric_limits<double>::min_exponent10 */
331 const int std_numeric_limits_double_min_exponent10
= DBL_MIN_10_EXP
;
333 /* ?min_exponent10@?$numeric_limits@O@std@@2HB -> public: static int const std::numeric_limits<long double>::min_exponent10 */
334 const int std_numeric_limits_long_double_min_exponent10
= LDBL_MIN_10_EXP
;
336 /* ?min_exponent10@_Num_base@std@@2HB -> public: static int const std::_Num_base::min_exponent10 */
337 const int std_Num_base_min_exponent10
= 0;
339 /* ?min_exponent@?$numeric_limits@M@std@@2HB -> public: static int const std::numeric_limits<float>::min_exponent */
340 const int std_numeric_limits_float_min_exponent
= FLT_MIN_EXP
;
342 /* ?min_exponent@?$numeric_limits@N@std@@2HB -> public: static int const std::numeric_limits<double>::min_exponent */
343 const int std_numeric_limits_double_min_exponent
= DBL_MIN_EXP
;
345 /* ?min_exponent@?$numeric_limits@O@std@@2HB -> public: static int const std::numeric_limits<long double>::min_exponent */
346 const int std_numeric_limits_long_double_min_exponent
= LDBL_MIN_EXP
;
348 /* ?min_exponent@_Num_base@std@@2HB -> public: static int const std::_Num_base::min_exponent */
349 const int std_Num_base_min_exponent
= 0;
351 /* ?radix@_Num_base@std@@2HB -> public: static int const std::_Num_base::radix */
352 const int std_Num_base_radix
= 0;
354 /* ?radix@_Num_float_base@std@@2HB -> public: static int const std::_Num_float_base::radix */
355 const int std_Num_float_base_radix
= FLT_RADIX
;
357 /* ?radix@_Num_int_base@std@@2HB -> public: static int const std::_Num_int_base::radix */
358 const int std_Num_int_base_radix
= 2;
360 /* ?round_style@_Num_base@std@@2W4float_round_style@2@B -> public: static enum std::float_round_style const std::_Num_base::round_style */
361 const enum std_float_round_style std_Num_base_round_style
= round_toward_zero
;
363 /* ?round_style@_Num_float_base@std@@2W4float_round_style@2@B -> public: static enum std::float_round_style const std::_Num_float_base::round_style */
364 const enum std_float_round_style std_Num_float_base_round_style
= round_to_nearest
;
366 /* ?tinyness_before@_Num_base@std@@2_NB -> public: static bool const std::_Num_base::tinyness_before */
367 const BOOLEAN std_Num_base_tinyness_before
= FALSE
;
369 /* ?tinyness_before@_Num_float_base@std@@2_NB -> public: static bool const std::_Num_float_base::tinyness_before */
370 const BOOLEAN std_Num_float_base_tinyness_before
= TRUE
;
372 /* ?traps@_Num_base@std@@2_NB -> public: static bool const std::_Num_base::traps */
373 const BOOLEAN std_Num_base_traps
= FALSE
;
375 /* ?traps@_Num_float_base@std@@2_NB -> public: static bool const std::_Num_float_base::traps */
376 const BOOLEAN std_Num_float_base_traps
= TRUE
;
378 /* ??4?$numeric_limits@C@std@@QAEAAV01@ABV01@@Z -> public: class std::numeric_limits<signed char> & __thiscall std::numeric_limits<signed char>::operator=(class std::numeric_limits<signed char> const &) */
379 /* ??4?$numeric_limits@C@std@@QEAAAEAV01@AEBV01@@Z -> public: class std::numeric_limits<signed char> & __ptr64 __cdecl std::numeric_limits<signed char>::operator=(class std::numeric_limits<signed char> const & __ptr64) __ptr64 */
380 /* ??4?$numeric_limits@D@std@@QAEAAV01@ABV01@@Z -> public: class std::numeric_limits<char> & __thiscall std::numeric_limits<char>::operator=(class std::numeric_limits<char> const &) */
381 /* ??4?$numeric_limits@D@std@@QEAAAEAV01@AEBV01@@Z -> public: class std::numeric_limits<char> & __ptr64 __cdecl std::numeric_limits<char>::operator=(class std::numeric_limits<char> const & __ptr64) __ptr64 */
382 /* ??4?$numeric_limits@E@std@@QAEAAV01@ABV01@@Z -> public: class std::numeric_limits<unsigned char> & __thiscall std::numeric_limits<unsigned char>::operator=(class std::numeric_limits<unsigned char> const &) */
383 /* ??4?$numeric_limits@E@std@@QEAAAEAV01@AEBV01@@Z -> public: class std::numeric_limits<unsigned char> & __ptr64 __cdecl std::numeric_limits<unsigned char>::operator=(class std::numeric_limits<unsigned char> const & __ptr64) __ptr64 */
384 /* ??4?$numeric_limits@F@std@@QAEAAV01@ABV01@@Z -> public: class std::numeric_limits<short> & __thiscall std::numeric_limits<short>::operator=(class std::numeric_limits<short> const &) */
385 /* ??4?$numeric_limits@F@std@@QEAAAEAV01@AEBV01@@Z -> public: class std::numeric_limits<short> & __ptr64 __cdecl std::numeric_limits<short>::operator=(class std::numeric_limits<short> const & __ptr64) __ptr64 */
386 /* ??4?$numeric_limits@G@std@@QAEAAV01@ABV01@@Z -> public: class std::numeric_limits<unsigned short> & __thiscall std::numeric_limits<unsigned short>::operator=(class std::numeric_limits<unsigned short> const &) */
387 /* ??4?$numeric_limits@G@std@@QEAAAEAV01@AEBV01@@Z -> public: class std::numeric_limits<unsigned short> & __ptr64 __cdecl std::numeric_limits<unsigned short>::operator=(class std::numeric_limits<unsigned short> const & __ptr64) __ptr64 */
388 /* ??4?$numeric_limits@H@std@@QAEAAV01@ABV01@@Z -> public: class std::numeric_limits<int> & __thiscall std::numeric_limits<int>::operator=(class std::numeric_limits<int> const &) */
389 /* ??4?$numeric_limits@H@std@@QEAAAEAV01@AEBV01@@Z -> public: class std::numeric_limits<int> & __ptr64 __cdecl std::numeric_limits<int>::operator=(class std::numeric_limits<int> const & __ptr64) __ptr64 */
390 /* ??4?$numeric_limits@I@std@@QAEAAV01@ABV01@@Z -> public: class std::numeric_limits<unsigned int> & __thiscall std::numeric_limits<unsigned int>::operator=(class std::numeric_limits<unsigned int> const &) */
391 /* ??4?$numeric_limits@I@std@@QEAAAEAV01@AEBV01@@Z -> public: class std::numeric_limits<unsigned int> & __ptr64 __cdecl std::numeric_limits<unsigned int>::operator=(class std::numeric_limits<unsigned int> const & __ptr64) __ptr64 */
392 /* ??4?$numeric_limits@J@std@@QAEAAV01@ABV01@@Z -> public: class std::numeric_limits<long> & __thiscall std::numeric_limits<long>::operator=(class std::numeric_limits<long> const &) */
393 /* ??4?$numeric_limits@J@std@@QEAAAEAV01@AEBV01@@Z -> public: class std::numeric_limits<long> & __ptr64 __cdecl std::numeric_limits<long>::operator=(class std::numeric_limits<long> const & __ptr64) __ptr64 */
394 /* ??4?$numeric_limits@K@std@@QAEAAV01@ABV01@@Z -> public: class std::numeric_limits<unsigned long> & __thiscall std::numeric_limits<unsigned long>::operator=(class std::numeric_limits<unsigned long> const &) */
395 /* ??4?$numeric_limits@K@std@@QEAAAEAV01@AEBV01@@Z -> public: class std::numeric_limits<unsigned long> & __ptr64 __cdecl std::numeric_limits<unsigned long>::operator=(class std::numeric_limits<unsigned long> const & __ptr64) __ptr64 */
396 /* ??4?$numeric_limits@M@std@@QAEAAV01@ABV01@@Z -> public: class std::numeric_limits<float> & __thiscall std::numeric_limits<float>::operator=(class std::numeric_limits<float> const &) */
397 /* ??4?$numeric_limits@M@std@@QEAAAEAV01@AEBV01@@Z -> public: class std::numeric_limits<float> & __ptr64 __cdecl std::numeric_limits<float>::operator=(class std::numeric_limits<float> const & __ptr64) __ptr64 */
398 /* ??4?$numeric_limits@N@std@@QAEAAV01@ABV01@@Z -> public: class std::numeric_limits<double> & __thiscall std::numeric_limits<double>::operator=(class std::numeric_limits<double> const &) */
399 /* ??4?$numeric_limits@N@std@@QEAAAEAV01@AEBV01@@Z -> public: class std::numeric_limits<double> & __ptr64 __cdecl std::numeric_limits<double>::operator=(class std::numeric_limits<double> const & __ptr64) __ptr64 */
400 /* ??4?$numeric_limits@O@std@@QAEAAV01@ABV01@@Z -> public: class std::numeric_limits<long double> & __thiscall std::numeric_limits<long double>::operator=(class std::numeric_limits<long double> const &) */
401 /* ??4?$numeric_limits@O@std@@QEAAAEAV01@AEBV01@@Z -> public: class std::numeric_limits<long double> & __ptr64 __cdecl std::numeric_limits<long double>::operator=(class std::numeric_limits<long double> const & __ptr64) __ptr64 */
402 /* ??4?$numeric_limits@_J@std@@QAEAAV01@ABV01@@Z -> public: class std::numeric_limits<__int64> & __thiscall std::numeric_limits<__int64>::operator=(class std::numeric_limits<__int64> const &) */
403 /* ??4?$numeric_limits@_J@std@@QEAAAEAV01@AEBV01@@Z -> public: class std::numeric_limits<__int64> & __ptr64 __cdecl std::numeric_limits<__int64>::operator=(class std::numeric_limits<__int64> const & __ptr64) __ptr64 */
404 /* ??4?$numeric_limits@_K@std@@QAEAAV01@ABV01@@Z -> public: class std::numeric_limits<unsigned __int64> & __thiscall std::numeric_limits<unsigned __int64>::operator=(class std::numeric_limits<unsigned __int64> const &) */
405 /* ??4?$numeric_limits@_K@std@@QEAAAEAV01@AEBV01@@Z -> public: class std::numeric_limits<unsigned __int64> & __ptr64 __cdecl std::numeric_limits<unsigned __int64>::operator=(class std::numeric_limits<unsigned __int64> const & __ptr64) __ptr64 */
406 /* ??4?$numeric_limits@_N@std@@QAEAAV01@ABV01@@Z -> public: class std::numeric_limits<bool> & __thiscall std::numeric_limits<bool>::operator=(class std::numeric_limits<bool> const &) */
407 /* ??4?$numeric_limits@_N@std@@QEAAAEAV01@AEBV01@@Z -> public: class std::numeric_limits<bool> & __ptr64 __cdecl std::numeric_limits<bool>::operator=(class std::numeric_limits<bool> const & __ptr64) __ptr64 */
408 /* ??4?$numeric_limits@_W@std@@QAEAAV01@ABV01@@Z -> public: class std::numeric_limits<wchar_t> & __thiscall std::numeric_limits<wchar_t>::operator=(class std::numeric_limits<wchar_t> const &) */
409 /* ??4?$numeric_limits@_W@std@@QEAAAEAV01@AEBV01@@Z -> public: class std::numeric_limits<wchar_t> & __ptr64 __cdecl std::numeric_limits<wchar_t>::operator=(class std::numeric_limits<wchar_t> const & __ptr64) __ptr64 */
410 /* ??4_Num_base@std@@QAEAAU01@ABU01@@Z -> public: struct std::_Num_base & __thiscall std::_Num_base::operator=(struct std::_Num_base const &) */
411 /* ??4_Num_base@std@@QEAAAEAU01@AEBU01@@Z -> public: struct std::_Num_base & __ptr64 __cdecl std::_Num_base::operator=(struct std::_Num_base const & __ptr64) __ptr64 */
412 /* ??4_Num_float_base@std@@QAEAAU01@ABU01@@Z -> public: struct std::_Num_float_base & __thiscall std::_Num_float_base::operator=(struct std::_Num_float_base const &) */
413 /* ??4_Num_float_base@std@@QEAAAEAU01@AEBU01@@Z -> public: struct std::_Num_float_base & __ptr64 __cdecl std::_Num_float_base::operator=(struct std::_Num_float_base const & __ptr64) __ptr64 */
414 /* ??4_Num_int_base@std@@QAEAAU01@ABU01@@Z -> public: struct std::_Num_int_base & __thiscall std::_Num_int_base::operator=(struct std::_Num_int_base const &) */
415 /* ??4_Num_int_base@std@@QEAAAEAU01@AEBU01@@Z -> public: struct std::_Num_int_base & __ptr64 __cdecl std::_Num_int_base::operator=(struct std::_Num_int_base const & __ptr64) __ptr64 */
416 DEFINE_THISCALL_WRAPPER( std_Num_base_op_assign
, 8 )
417 std_Num_base
* __thiscall
std_Num_base_op_assign( std_Num_base
*this, std_Num_base
*right
)
422 /* ?denorm_min@?$numeric_limits@C@std@@SACXZ -> public: static signed char __cdecl std::numeric_limits<signed char>::denorm_min(void) */
423 signed char __cdecl
std_numeric_limits_signed_char_denorm_min(void) { return 0; }
425 /* ?denorm_min@?$numeric_limits@D@std@@SADXZ -> public: static char __cdecl std::numeric_limits<char>::denorm_min(void) */
426 char __cdecl
std_numeric_limits_char_denorm_min(void) { return 0; }
428 /* ?denorm_min@?$numeric_limits@E@std@@SAEXZ -> public: static unsigned char __cdecl std::numeric_limits<unsigned char>::denorm_min(void) */
429 unsigned char __cdecl
std_numeric_limits_unsigned_char_denorm_min(void) { return 0; }
431 /* ?denorm_min@?$numeric_limits@F@std@@SAFXZ -> public: static short __cdecl std::numeric_limits<short>::denorm_min(void) */
432 short __cdecl
std_numeric_limits_short_denorm_min(void) { return 0; }
434 /* ?denorm_min@?$numeric_limits@G@std@@SAGXZ -> public: static unsigned short __cdecl std::numeric_limits<unsigned short>::denorm_min(void) */
435 unsigned short __cdecl
std_numeric_limits_unsigned_short_denorm_min(void) { return 0; }
437 /* ?denorm_min@?$numeric_limits@H@std@@SAHXZ -> public: static int __cdecl std::numeric_limits<int>::denorm_min(void) */
438 int __cdecl
std_numeric_limits_int_denorm_min(void) { return 0; }
440 /* ?denorm_min@?$numeric_limits@I@std@@SAIXZ -> public: static unsigned int __cdecl std::numeric_limits<unsigned int>::denorm_min(void) */
441 unsigned int __cdecl
std_numeric_limits_unsigned_int_denorm_min(void) { return 0; }
443 /* ?denorm_min@?$numeric_limits@J@std@@SAJXZ -> public: static long __cdecl std::numeric_limits<long>::denorm_min(void) */
444 LONG __cdecl
std_numeric_limits_long_denorm_min(void) { return 0; }
446 /* ?denorm_min@?$numeric_limits@K@std@@SAKXZ -> public: static unsigned long __cdecl std::numeric_limits<unsigned long>::denorm_min(void) */
447 ULONG __cdecl
std_numeric_limits_unsigned_long_denorm_min(void) { return 0; }
449 /* ?denorm_min@?$numeric_limits@M@std@@SAMXZ -> public: static float __cdecl std::numeric_limits<float>::denorm_min(void) */
450 float __cdecl
std_numeric_limits_float_denorm_min(void) { return *(float *)&_FDenorm
; }
452 /* ?denorm_min@?$numeric_limits@N@std@@SANXZ -> public: static double __cdecl std::numeric_limits<double>::denorm_min(void) */
453 double __cdecl
std_numeric_limits_double_denorm_min(void) { return *(double *)&_Denorm
; }
455 /* ?denorm_min@?$numeric_limits@O@std@@SAOXZ -> public: static long double __cdecl std::numeric_limits<long double>::denorm_min(void) */
456 LDOUBLE __cdecl
std_numeric_limits_long_double_denorm_min(void) { return *(LDOUBLE
*)&_LDenorm
; }
458 /* ?denorm_min@?$numeric_limits@_J@std@@SA_JXZ -> public: static __int64 __cdecl std::numeric_limits<__int64>::denorm_min(void) */
459 __int64 __cdecl
std_numeric_limits_int64_denorm_min(void) { return 0; }
461 /* ?denorm_min@?$numeric_limits@_K@std@@SA_KXZ -> public: static unsigned __int64 __cdecl std::numeric_limits<unsigned __int64>::denorm_min(void) */
462 unsigned __int64 __cdecl
std_numeric_limits_unsigned_int64_denorm_min(void) { return 0; }
464 /* ?denorm_min@?$numeric_limits@_N@std@@SA_NXZ -> public: static bool __cdecl std::numeric_limits<bool>::denorm_min(void) */
465 BOOLEAN __cdecl
std_numeric_limits_bool_denorm_min(void) { return FALSE
; }
467 /* ?denorm_min@?$numeric_limits@_W@std@@SA_WXZ -> public: static wchar_t __cdecl std::numeric_limits<wchar_t>::denorm_min(void) */
468 WCHAR __cdecl
std_numeric_limits_wchar_t_denorm_min(void) { return 0; }
470 /* ?epsilon@?$numeric_limits@C@std@@SACXZ -> public: static signed char __cdecl std::numeric_limits<signed char>::epsilon(void) */
471 signed char __cdecl
std_numeric_limits_signed_char_epsilon(void) { return 0; }
473 /* ?epsilon@?$numeric_limits@D@std@@SADXZ -> public: static char __cdecl std::numeric_limits<char>::epsilon(void) */
474 char __cdecl
std_numeric_limits_char_epsilon(void) { return 0; }
476 /* ?epsilon@?$numeric_limits@E@std@@SAEXZ -> public: static unsigned char __cdecl std::numeric_limits<unsigned char>::epsilon(void) */
477 unsigned char __cdecl
std_numeric_limits_unsigned_char_epsilon(void) { return 0; }
479 /* ?epsilon@?$numeric_limits@F@std@@SAFXZ -> public: static short __cdecl std::numeric_limits<short>::epsilon(void) */
480 short __cdecl
std_numeric_limits_short_epsilon(void) { return 0; }
482 /* ?epsilon@?$numeric_limits@G@std@@SAGXZ -> public: static unsigned short __cdecl std::numeric_limits<unsigned short>::epsilon(void) */
483 unsigned short __cdecl
std_numeric_limits_unsigned_short_epsilon(void) { return 0; }
485 /* ?epsilon@?$numeric_limits@H@std@@SAHXZ -> public: static int __cdecl std::numeric_limits<int>::epsilon(void) */
486 int __cdecl
std_numeric_limits_int_epsilon(void) { return 0; }
488 /* ?epsilon@?$numeric_limits@I@std@@SAIXZ -> public: static unsigned int __cdecl std::numeric_limits<unsigned int>::epsilon(void) */
489 unsigned int __cdecl
std_numeric_limits_unsigned_int_epsilon(void) { return 0; }
491 /* ?epsilon@?$numeric_limits@J@std@@SAJXZ -> public: static long __cdecl std::numeric_limits<long>::epsilon(void) */
492 LONG __cdecl
std_numeric_limits_long_epsilon(void) { return 0; }
494 /* ?epsilon@?$numeric_limits@K@std@@SAKXZ -> public: static unsigned long __cdecl std::numeric_limits<unsigned long>::epsilon(void) */
495 ULONG __cdecl
std_numeric_limits_unsigned_long_epsilon(void) { return 0; }
497 /* ?epsilon@?$numeric_limits@M@std@@SAMXZ -> public: static float __cdecl std::numeric_limits<float>::epsilon(void) */
498 float __cdecl
std_numeric_limits_float_epsilon(void) { return _FEps
; }
500 /* ?epsilon@?$numeric_limits@N@std@@SANXZ -> public: static double __cdecl std::numeric_limits<double>::epsilon(void) */
501 double __cdecl
std_numeric_limits_double_epsilon(void) { return _Eps
; }
503 /* ?epsilon@?$numeric_limits@O@std@@SAOXZ -> public: static long double __cdecl std::numeric_limits<long double>::epsilon(void) */
504 LDOUBLE __cdecl
std_numeric_limits_long_double_epsilon(void) { return _LEps
; }
506 /* ?epsilon@?$numeric_limits@_J@std@@SA_JXZ -> public: static __int64 __cdecl std::numeric_limits<__int64>::epsilon(void) */
507 __int64 __cdecl
std_numeric_limits_int64_epsilon(void) { return 0; }
509 /* ?epsilon@?$numeric_limits@_K@std@@SA_KXZ -> public: static unsigned __int64 __cdecl std::numeric_limits<unsigned __int64>::epsilon(void) */
510 unsigned __int64 __cdecl
std_numeric_limits_unsigned_int64_epsilon(void) { return 0; }
512 /* ?epsilon@?$numeric_limits@_N@std@@SA_NXZ -> public: static bool __cdecl std::numeric_limits<bool>::epsilon(void) */
513 BOOLEAN __cdecl
std_numeric_limits_bool_epsilon(void) { return FALSE
; }
515 /* ?epsilon@?$numeric_limits@_W@std@@SA_WXZ -> public: static wchar_t __cdecl std::numeric_limits<wchar_t>::epsilon(void) */
516 WCHAR __cdecl
std_numeric_limits_wchar_t_epsilon(void) { return 0; }
518 /* ?infinity@?$numeric_limits@C@std@@SACXZ -> public: static signed char __cdecl std::numeric_limits<signed char>::infinity(void) */
519 signed char __cdecl
std_numeric_limits_signed_char_infinity(void) { return 0; }
521 /* ?infinity@?$numeric_limits@D@std@@SADXZ -> public: static char __cdecl std::numeric_limits<char>::infinity(void) */
522 char __cdecl
std_numeric_limits_char_infinity(void) { return 0; }
524 /* ?infinity@?$numeric_limits@E@std@@SAEXZ -> public: static unsigned char __cdecl std::numeric_limits<unsigned char>::infinity(void) */
525 unsigned char __cdecl
std_numeric_limits_unsigned_char_infinity(void) { return 0; }
527 /* ?infinity@?$numeric_limits@F@std@@SAFXZ -> public: static short __cdecl std::numeric_limits<short>::infinity(void) */
528 short __cdecl
std_numeric_limits_short_infinity(void) { return 0; }
530 /* ?infinity@?$numeric_limits@G@std@@SAGXZ -> public: static unsigned short __cdecl std::numeric_limits<unsigned short>::infinity(void) */
531 unsigned short __cdecl
std_numeric_limits_unsigned_short_infinity(void) { return 0; }
533 /* ?infinity@?$numeric_limits@H@std@@SAHXZ -> public: static int __cdecl std::numeric_limits<int>::infinity(void) */
534 int __cdecl
std_numeric_limits_int_infinity(void) { return 0; }
536 /* ?infinity@?$numeric_limits@I@std@@SAIXZ -> public: static unsigned int __cdecl std::numeric_limits<unsigned int>::infinity(void) */
537 unsigned int __cdecl
std_numeric_limits_unsigned_int_infinity(void) { return 0; }
539 /* ?infinity@?$numeric_limits@J@std@@SAJXZ -> public: static long __cdecl std::numeric_limits<long>::infinity(void) */
540 LONG __cdecl
std_numeric_limits_long_infinity(void) { return 0; }
542 /* ?infinity@?$numeric_limits@K@std@@SAKXZ -> public: static unsigned long __cdecl std::numeric_limits<unsigned long>::infinity(void) */
543 ULONG __cdecl
std_numeric_limits_unsigned_long_infinity(void) { return 0; }
545 /* ?infinity@?$numeric_limits@M@std@@SAMXZ -> public: static float __cdecl std::numeric_limits<float>::infinity(void) */
546 float __cdecl
std_numeric_limits_float_infinity(void) { return *(float *)&_FInf
; }
548 /* ?infinity@?$numeric_limits@N@std@@SANXZ -> public: static double __cdecl std::numeric_limits<double>::infinity(void) */
549 double __cdecl
std_numeric_limits_double_infinity(void) { return *(double *)&_Inf
; }
551 /* ?infinity@?$numeric_limits@O@std@@SAOXZ -> public: static long double __cdecl std::numeric_limits<long double>::infinity(void) */
552 LDOUBLE __cdecl
std_numeric_limits_long_double_infinity(void) { return *(LDOUBLE
*)&_LInf
; }
554 /* ?infinity@?$numeric_limits@_J@std@@SA_JXZ -> public: static __int64 __cdecl std::numeric_limits<__int64>::infinity(void) */
555 __int64 __cdecl
std_numeric_limits_int64_infinity(void) { return 0; }
557 /* ?infinity@?$numeric_limits@_K@std@@SA_KXZ -> public: static unsigned __int64 __cdecl std::numeric_limits<unsigned __int64>::infinity(void) */
558 unsigned __int64 __cdecl
std_numeric_limits_unsigned_int64_infinity(void) { return 0; }
560 /* ?infinity@?$numeric_limits@_N@std@@SA_NXZ -> public: static bool __cdecl std::numeric_limits<bool>::infinity(void) */
561 BOOLEAN __cdecl
std_numeric_limits_bool_infinity(void) { return FALSE
; }
563 /* ?infinity@?$numeric_limits@_W@std@@SA_WXZ -> public: static wchar_t __cdecl std::numeric_limits<wchar_t>::infinity(void) */
564 WCHAR __cdecl
std_numeric_limits_wchar_t_infinity(void) { return 0; }
566 /* ?max@?$numeric_limits@C@std@@SACXZ -> public: static signed char __cdecl std::numeric_limits<signed char>::max(void) */
567 signed char __cdecl
std_numeric_limits_signed_char_max(void) { return SCHAR_MAX
; }
569 /* ?max@?$numeric_limits@D@std@@SADXZ -> public: static char __cdecl std::numeric_limits<char>::max(void) */
570 char __cdecl
std_numeric_limits_char_max(void) { return CHAR_MAX
; }
572 /* ?max@?$numeric_limits@E@std@@SAEXZ -> public: static unsigned char __cdecl std::numeric_limits<unsigned char>::max(void) */
573 unsigned char __cdecl
std_numeric_limits_unsigned_char_max(void) { return UCHAR_MAX
; }
575 /* ?max@?$numeric_limits@F@std@@SAFXZ -> public: static short __cdecl std::numeric_limits<short>::max(void) */
576 short __cdecl
std_numeric_limits_short_max(void) { return SHRT_MAX
; }
578 /* ?max@?$numeric_limits@G@std@@SAGXZ -> public: static unsigned short __cdecl std::numeric_limits<unsigned short>::max(void) */
579 unsigned short __cdecl
std_numeric_limits_unsigned_short_max(void) { return USHRT_MAX
; }
581 /* ?max@?$numeric_limits@H@std@@SAHXZ -> public: static int __cdecl std::numeric_limits<int>::max(void) */
582 int __cdecl
std_numeric_limits_int_max(void) { return INT_MAX
; }
584 /* ?max@?$numeric_limits@I@std@@SAIXZ -> public: static unsigned int __cdecl std::numeric_limits<unsigned int>::max(void) */
585 unsigned int __cdecl
std_numeric_limits_unsigned_int_max(void) { return UINT_MAX
; }
587 /* ?max@?$numeric_limits@J@std@@SAJXZ -> public: static long __cdecl std::numeric_limits<long>::max(void) */
588 LONG __cdecl
std_numeric_limits_long_max(void) { return LONG_MAX
; }
590 /* ?max@?$numeric_limits@K@std@@SAKXZ -> public: static unsigned long __cdecl std::numeric_limits<unsigned long>::max(void) */
591 ULONG __cdecl
std_numeric_limits_unsigned_long_max(void) { return ULONG_MAX
; }
593 /* ?max@?$numeric_limits@M@std@@SAMXZ -> public: static float __cdecl std::numeric_limits<float>::max(void) */
594 float __cdecl
std_numeric_limits_float_max(void) { return FLT_MAX
; }
596 /* ?max@?$numeric_limits@N@std@@SANXZ -> public: static double __cdecl std::numeric_limits<double>::max(void) */
597 double __cdecl
std_numeric_limits_double_max(void) { return DBL_MAX
; }
599 /* ?max@?$numeric_limits@O@std@@SAOXZ -> public: static long double __cdecl std::numeric_limits<long double>::max(void) */
600 LDOUBLE __cdecl
std_numeric_limits_long_double_max(void) { return LDBL_MAX
; }
602 /* ?max@?$numeric_limits@_J@std@@SA_JXZ -> public: static __int64 __cdecl std::numeric_limits<__int64>::max(void) */
603 __int64 __cdecl
std_numeric_limits_int64_max(void) { return I64_MAX
; }
605 /* ?max@?$numeric_limits@_K@std@@SA_KXZ -> public: static unsigned __int64 __cdecl std::numeric_limits<unsigned __int64>::max(void) */
606 unsigned __int64 __cdecl
std_numeric_limits_unsigned_int64_max(void) { return UI64_MAX
; }
608 /* ?max@?$numeric_limits@_N@std@@SA_NXZ -> public: static bool __cdecl std::numeric_limits<bool>::max(void) */
609 BOOLEAN __cdecl
std_numeric_limits_bool_max(void) { return TRUE
; }
611 /* ?max@?$numeric_limits@_W@std@@SA_WXZ -> public: static wchar_t __cdecl std::numeric_limits<wchar_t>::max(void) */
612 WCHAR __cdecl
std_numeric_limits_wchar_t_max(void) { return USHRT_MAX
; }
614 /* ?min@?$numeric_limits@C@std@@SACXZ -> public: static signed char __cdecl std::numeric_limits<signed char>::min(void) */
615 signed char __cdecl
std_numeric_limits_signed_char_min(void) { return SCHAR_MIN
; }
617 /* ?min@?$numeric_limits@D@std@@SADXZ -> public: static char __cdecl std::numeric_limits<char>::min(void) */
618 char __cdecl
std_numeric_limits_char_min(void) { return CHAR_MIN
; }
620 /* ?min@?$numeric_limits@E@std@@SAEXZ -> public: static unsigned char __cdecl std::numeric_limits<unsigned char>::min(void) */
621 unsigned char __cdecl
std_numeric_limits_unsigned_char_min(void) { return 0; }
623 /* ?min@?$numeric_limits@F@std@@SAFXZ -> public: static short __cdecl std::numeric_limits<short>::min(void) */
624 short __cdecl
std_numeric_limits_short_min(void) { return SHRT_MIN
; }
626 /* ?min@?$numeric_limits@G@std@@SAGXZ -> public: static unsigned short __cdecl std::numeric_limits<unsigned short>::min(void) */
627 unsigned short __cdecl
std_numeric_limits_unsigned_short_min(void) { return 0; }
629 /* ?min@?$numeric_limits@H@std@@SAHXZ -> public: static int __cdecl std::numeric_limits<int>::min(void) */
630 int __cdecl
std_numeric_limits_int_min(void) { return INT_MIN
; }
632 /* ?min@?$numeric_limits@I@std@@SAIXZ -> public: static unsigned int __cdecl std::numeric_limits<unsigned int>::min(void) */
633 unsigned int __cdecl
std_numeric_limits_unsigned_int_min(void) { return 0; }
635 /* ?min@?$numeric_limits@J@std@@SAJXZ -> public: static long __cdecl std::numeric_limits<long>::min(void) */
636 LONG __cdecl
std_numeric_limits_long_min(void) { return LONG_MIN
; }
638 /* ?min@?$numeric_limits@K@std@@SAKXZ -> public: static unsigned long __cdecl std::numeric_limits<unsigned long>::min(void) */
639 ULONG __cdecl
std_numeric_limits_unsigned_long_min(void) { return 0; }
641 /* ?min@?$numeric_limits@M@std@@SAMXZ -> public: static float __cdecl std::numeric_limits<float>::min(void) */
642 float __cdecl
std_numeric_limits_float_min(void) { return FLT_MIN
; }
644 /* ?min@?$numeric_limits@N@std@@SANXZ -> public: static double __cdecl std::numeric_limits<double>::min(void) */
645 double __cdecl
std_numeric_limits_double_min(void) { return DBL_MIN
; }
647 /* ?min@?$numeric_limits@O@std@@SAOXZ -> public: static long double __cdecl std::numeric_limits<long double>::min(void) */
648 LDOUBLE __cdecl
std_numeric_limits_long_double_min(void) { return LDBL_MIN
; }
650 /* ?min@?$numeric_limits@_J@std@@SA_JXZ -> public: static __int64 __cdecl std::numeric_limits<__int64>::min(void) */
651 __int64 __cdecl
std_numeric_limits_int64_min(void) { return I64_MIN
; }
653 /* ?min@?$numeric_limits@_K@std@@SA_KXZ -> public: static unsigned __int64 __cdecl std::numeric_limits<unsigned __int64>::min(void) */
654 unsigned __int64 __cdecl
std_numeric_limits_unsigned_int64_min(void) { return 0; }
656 /* ?min@?$numeric_limits@_N@std@@SA_NXZ -> public: static bool __cdecl std::numeric_limits<bool>::min(void) */
657 BOOLEAN __cdecl
std_numeric_limits_bool_min(void) { return FALSE
; }
659 /* ?min@?$numeric_limits@_W@std@@SA_WXZ -> public: static wchar_t __cdecl std::numeric_limits<wchar_t>::min(void) */
660 WCHAR __cdecl
std_numeric_limits_wchar_t_min(void) { return 0; }
662 /* ?lowest@?$numeric_limits@C@std@@SACXZ */
663 signed char __cdecl
std_numeric_limits_signed_char_lowest(void) { return SCHAR_MIN
; }
665 /* ?lowest@?$numeric_limits@D@std@@SADXZ */
666 char __cdecl
std_numeric_limits_char_lowest(void) { return CHAR_MIN
; }
668 /* ?lowest@?$numeric_limits@E@std@@SAEXZ */
669 unsigned char __cdecl
std_numeric_limits_unsigned_char_lowest(void) { return 0; }
671 /* ?lowest@?$numeric_limits@F@std@@SAFXZ */
672 short __cdecl
std_numeric_limits_short_lowest(void) { return SHRT_MIN
; }
674 /* ?lowest@?$numeric_limits@G@std@@SAGXZ */
675 unsigned short __cdecl
std_numeric_limits_unsigned_short_lowest(void) { return 0; }
677 /* ?lowest@?$numeric_limits@H@std@@SAHXZ */
678 int __cdecl
std_numeric_limits_int_lowest(void) { return INT_MIN
; }
680 /* ?lowest@?$numeric_limits@I@std@@SAIXZ */
681 unsigned int __cdecl
std_numeric_limits_unsigned_int_lowest(void) { return 0; }
683 /* ?lowest@?$numeric_limits@J@std@@SAJXZ */
684 LONG __cdecl
std_numeric_limits_long_lowest(void) { return LONG_MIN
; }
686 /* ?lowest@?$numeric_limits@K@std@@SAKXZ */
687 ULONG __cdecl
std_numeric_limits_unsigned_long_lowest(void) { return 0; }
689 /* ?lowest@?$numeric_limits@M@std@@SAMXZ */
690 float __cdecl
std_numeric_limits_float_lowest(void) { return -FLT_MAX
; }
692 /* ?lowest@?$numeric_limits@N@std@@SANXZ */
693 double __cdecl
std_numeric_limits_double_lowest(void) { return -DBL_MAX
; }
695 /* ?lowest@?$numeric_limits@O@std@@SAOXZ */
696 LDOUBLE __cdecl
std_numeric_limits_long_double_lowest(void) { return -LDBL_MAX
; }
698 /* ?lowest@?$numeric_limits@_J@std@@SA_JXZ */
699 __int64 __cdecl
std_numeric_limits_int64_lowest(void) { return I64_MIN
; }
701 /* ?lowest@?$numeric_limits@_K@std@@SA_KXZ */
702 unsigned __int64 __cdecl
std_numeric_limits_unsigned_int64_lowest(void) { return 0; }
704 /* ?lowest@?$numeric_limits@_N@std@@SA_NXZ */
705 BOOLEAN __cdecl
std_numeric_limits_bool_lowest(void) { return FALSE
; }
707 /* ?lowest@?$numeric_limits@_W@std@@SA_WXZ */
708 WCHAR __cdecl
std_numeric_limits_wchar_t_lowest(void) { return 0; }
710 /* ?quiet_NaN@?$numeric_limits@C@std@@SACXZ -> public: static signed char __cdecl std::numeric_limits<signed char>::quiet_NaN(void) */
711 signed char __cdecl
std_numeric_limits_signed_char_quiet_NaN(void) { return 0; }
713 /* ?quiet_NaN@?$numeric_limits@D@std@@SADXZ -> public: static char __cdecl std::numeric_limits<char>::quiet_NaN(void) */
714 char __cdecl
std_numeric_limits_char_quiet_NaN(void) { return 0; }
716 /* ?quiet_NaN@?$numeric_limits@E@std@@SAEXZ -> public: static unsigned char __cdecl std::numeric_limits<unsigned char>::quiet_NaN(void) */
717 unsigned char __cdecl
std_numeric_limits_unsigned_char_quiet_NaN(void) { return 0; }
719 /* ?quiet_NaN@?$numeric_limits@F@std@@SAFXZ -> public: static short __cdecl std::numeric_limits<short>::quiet_NaN(void) */
720 short __cdecl
std_numeric_limits_short_quiet_NaN(void) { return 0; }
722 /* ?quiet_NaN@?$numeric_limits@G@std@@SAGXZ -> public: static unsigned short __cdecl std::numeric_limits<unsigned short>::quiet_NaN(void) */
723 unsigned short __cdecl
std_numeric_limits_unsigned_short_quiet_NaN(void) { return 0; }
725 /* ?quiet_NaN@?$numeric_limits@H@std@@SAHXZ -> public: static int __cdecl std::numeric_limits<int>::quiet_NaN(void) */
726 int __cdecl
std_numeric_limits_int_quiet_NaN(void) { return 0; }
728 /* ?quiet_NaN@?$numeric_limits@I@std@@SAIXZ -> public: static unsigned int __cdecl std::numeric_limits<unsigned int>::quiet_NaN(void) */
729 unsigned int __cdecl
std_numeric_limits_unsigned_int_quiet_NaN(void) { return 0; }
731 /* ?quiet_NaN@?$numeric_limits@J@std@@SAJXZ -> public: static long __cdecl std::numeric_limits<long>::quiet_NaN(void) */
732 LONG __cdecl
std_numeric_limits_long_quiet_NaN(void) { return 0; }
734 /* ?quiet_NaN@?$numeric_limits@K@std@@SAKXZ -> public: static unsigned long __cdecl std::numeric_limits<unsigned long>::quiet_NaN(void) */
735 ULONG __cdecl
std_numeric_limits_unsigned_long_quiet_NaN(void) { return 0; }
737 /* ?quiet_NaN@?$numeric_limits@M@std@@SAMXZ -> public: static float __cdecl std::numeric_limits<float>::quiet_NaN(void) */
738 float __cdecl
std_numeric_limits_float_quiet_NaN(void) { return *(float *)&_FNan
; }
740 /* ?quiet_NaN@?$numeric_limits@N@std@@SANXZ -> public: static double __cdecl std::numeric_limits<double>::quiet_NaN(void) */
741 double __cdecl
std_numeric_limits_double_quiet_NaN(void) { return *(double *)&_Nan
; }
743 /* ?quiet_NaN@?$numeric_limits@O@std@@SAOXZ -> public: static long double __cdecl std::numeric_limits<long double>::quiet_NaN(void) */
744 LDOUBLE __cdecl
std_numeric_limits_long_double_quiet_NaN(void) { return *(LDOUBLE
*)&_LNan
; }
746 /* ?quiet_NaN@?$numeric_limits@_J@std@@SA_JXZ -> public: static __int64 __cdecl std::numeric_limits<__int64>::quiet_NaN(void) */
747 __int64 __cdecl
std_numeric_limits_int64_quiet_NaN(void) { return 0; }
749 /* ?quiet_NaN@?$numeric_limits@_K@std@@SA_KXZ -> public: static unsigned __int64 __cdecl std::numeric_limits<unsigned __int64>::quiet_NaN(void) */
750 unsigned __int64 __cdecl
std_numeric_limits_unsigned_int64_quiet_NaN(void) { return 0; }
752 /* ?quiet_NaN@?$numeric_limits@_N@std@@SA_NXZ -> public: static bool __cdecl std::numeric_limits<bool>::quiet_NaN(void) */
753 BOOLEAN __cdecl
std_numeric_limits_bool_quiet_NaN(void) { return FALSE
; }
755 /* ?quiet_NaN@?$numeric_limits@_W@std@@SA_WXZ -> public: static wchar_t __cdecl std::numeric_limits<wchar_t>::quiet_NaN(void) */
756 WCHAR __cdecl
std_numeric_limits_wchar_t_quiet_NaN(void) { return 0; }
758 /* ?round_error@?$numeric_limits@C@std@@SACXZ -> public: static signed char __cdecl std::numeric_limits<signed char>::round_error(void) */
759 signed char __cdecl
std_numeric_limits_signed_char_round_error(void) { return 0; }
761 /* ?round_error@?$numeric_limits@D@std@@SADXZ -> public: static char __cdecl std::numeric_limits<char>::round_error(void) */
762 char __cdecl
std_numeric_limits_char_round_error(void) { return 0; }
764 /* ?round_error@?$numeric_limits@E@std@@SAEXZ -> public: static unsigned char __cdecl std::numeric_limits<unsigned char>::round_error(void) */
765 unsigned char __cdecl
std_numeric_limits_unsigned_char_round_error(void) { return 0; }
767 /* ?round_error@?$numeric_limits@F@std@@SAFXZ -> public: static short __cdecl std::numeric_limits<short>::round_error(void) */
768 short __cdecl
std_numeric_limits_short_round_error(void) { return 0; }
770 /* ?round_error@?$numeric_limits@G@std@@SAGXZ -> public: static unsigned short __cdecl std::numeric_limits<unsigned short>::round_error(void) */
771 unsigned short __cdecl
std_numeric_limits_unsigned_short_round_error(void) { return 0; }
773 /* ?round_error@?$numeric_limits@H@std@@SAHXZ -> public: static int __cdecl std::numeric_limits<int>::round_error(void) */
774 int __cdecl
std_numeric_limits_int_round_error(void) { return 0; }
776 /* ?round_error@?$numeric_limits@I@std@@SAIXZ -> public: static unsigned int __cdecl std::numeric_limits<unsigned int>::round_error(void) */
777 unsigned int __cdecl
std_numeric_limits_unsigned_int_round_error(void) { return 0; }
779 /* ?round_error@?$numeric_limits@J@std@@SAJXZ -> public: static long __cdecl std::numeric_limits<long>::round_error(void) */
780 LONG __cdecl
std_numeric_limits_long_round_error(void) { return 0; }
782 /* ?round_error@?$numeric_limits@K@std@@SAKXZ -> public: static unsigned long __cdecl std::numeric_limits<unsigned long>::round_error(void) */
783 ULONG __cdecl
std_numeric_limits_unsigned_long_round_error(void) { return 0; }
785 /* ?round_error@?$numeric_limits@M@std@@SAMXZ -> public: static float __cdecl std::numeric_limits<float>::round_error(void) */
786 float __cdecl
std_numeric_limits_float_round_error(void) { return 0.5; }
788 /* ?round_error@?$numeric_limits@N@std@@SANXZ -> public: static double __cdecl std::numeric_limits<double>::round_error(void) */
789 double __cdecl
std_numeric_limits_double_round_error(void) { return 0.5; }
791 /* ?round_error@?$numeric_limits@O@std@@SAOXZ -> public: static long double __cdecl std::numeric_limits<long double>::round_error(void) */
792 LDOUBLE __cdecl
std_numeric_limits_long_double_round_error(void) { return 0.5; }
794 /* ?round_error@?$numeric_limits@_J@std@@SA_JXZ -> public: static __int64 __cdecl std::numeric_limits<__int64>::round_error(void) */
795 __int64 __cdecl
std_numeric_limits_int64_round_error(void) { return 0; }
797 /* ?round_error@?$numeric_limits@_K@std@@SA_KXZ -> public: static unsigned __int64 __cdecl std::numeric_limits<unsigned __int64>::round_error(void) */
798 unsigned __int64 __cdecl
std_numeric_limits_unsigned_int64_round_error(void) { return 0; }
800 /* ?round_error@?$numeric_limits@_N@std@@SA_NXZ -> public: static bool __cdecl std::numeric_limits<bool>::round_error(void) */
801 BOOLEAN __cdecl
std_numeric_limits_bool_round_error(void) { return FALSE
; }
803 /* ?round_error@?$numeric_limits@_W@std@@SA_WXZ -> public: static wchar_t __cdecl std::numeric_limits<wchar_t>::round_error(void) */
804 WCHAR __cdecl
std_numeric_limits_wchar_t_round_error(void) { return 0; }
806 /* ?signaling_NaN@?$numeric_limits@C@std@@SACXZ -> public: static signed char __cdecl std::numeric_limits<signed char>::signaling_NaN(void) */
807 signed char __cdecl
std_numeric_limits_signed_char_signaling_NaN(void) { return 0; }
809 /* ?signaling_NaN@?$numeric_limits@D@std@@SADXZ -> public: static char __cdecl std::numeric_limits<char>::signaling_NaN(void) */
810 char __cdecl
std_numeric_limits_char_signaling_NaN(void) { return 0; }
812 /* ?signaling_NaN@?$numeric_limits@E@std@@SAEXZ -> public: static unsigned char __cdecl std::numeric_limits<unsigned char>::signaling_NaN(void) */
813 unsigned char __cdecl
std_numeric_limits_unsigned_char_signaling_NaN(void) { return 0; }
815 /* ?signaling_NaN@?$numeric_limits@F@std@@SAFXZ -> public: static short __cdecl std::numeric_limits<short>::signaling_NaN(void) */
816 short __cdecl
std_numeric_limits_short_signaling_NaN(void) { return 0; }
818 /* ?signaling_NaN@?$numeric_limits@G@std@@SAGXZ -> public: static unsigned short __cdecl std::numeric_limits<unsigned short>::signaling_NaN(void) */
819 unsigned short __cdecl
std_numeric_limits_unsigned_short_signaling_NaN(void) { return 0; }
821 /* ?signaling_NaN@?$numeric_limits@H@std@@SAHXZ -> public: static int __cdecl std::numeric_limits<int>::signaling_NaN(void) */
822 int __cdecl
std_numeric_limits_int_signaling_NaN(void) { return 0; }
824 /* ?signaling_NaN@?$numeric_limits@I@std@@SAIXZ -> public: static unsigned int __cdecl std::numeric_limits<unsigned int>::signaling_NaN(void) */
825 unsigned int __cdecl
std_numeric_limits_unsigned_int_signaling_NaN(void) { return 0; }
827 /* ?signaling_NaN@?$numeric_limits@J@std@@SAJXZ -> public: static long __cdecl std::numeric_limits<long>::signaling_NaN(void) */
828 LONG __cdecl
std_numeric_limits_long_signaling_NaN(void) { return 0; }
830 /* ?signaling_NaN@?$numeric_limits@K@std@@SAKXZ -> public: static unsigned long __cdecl std::numeric_limits<unsigned long>::signaling_NaN(void) */
831 ULONG __cdecl
std_numeric_limits_unsigned_long_signaling_NaN(void) { return 0; }
833 /* ?signaling_NaN@?$numeric_limits@M@std@@SAMXZ -> public: static float __cdecl std::numeric_limits<float>::signaling_NaN(void) */
834 float __cdecl
std_numeric_limits_float_signaling_NaN(void) { return *(float *)&_FSnan
; }
836 /* ?signaling_NaN@?$numeric_limits@N@std@@SANXZ -> public: static double __cdecl std::numeric_limits<double>::signaling_NaN(void) */
837 double __cdecl
std_numeric_limits_double_signaling_NaN(void) { return *(double *)&_Snan
; }
839 /* ?signaling_NaN@?$numeric_limits@O@std@@SAOXZ -> public: static long double __cdecl std::numeric_limits<long double>::signaling_NaN(void) */
840 LDOUBLE __cdecl
std_numeric_limits_long_double_signaling_NaN(void) { return *(LDOUBLE
*)&_LSnan
; }
842 /* ?signaling_NaN@?$numeric_limits@_J@std@@SA_JXZ -> public: static __int64 __cdecl std::numeric_limits<__int64>::signaling_NaN(void) */
843 __int64 __cdecl
std_numeric_limits_int64_signaling_NaN(void) { return 0; }
845 /* ?signaling_NaN@?$numeric_limits@_K@std@@SA_KXZ -> public: static unsigned __int64 __cdecl std::numeric_limits<unsigned __int64>::signaling_NaN(void) */
846 unsigned __int64 __cdecl
std_numeric_limits_unsigned_int64_signaling_NaN(void) { return 0; }
848 /* ?signaling_NaN@?$numeric_limits@_N@std@@SA_NXZ -> public: static bool __cdecl std::numeric_limits<bool>::signaling_NaN(void) */
849 BOOLEAN __cdecl
std_numeric_limits_bool_signaling_NaN(void) { return FALSE
; }
851 /* ?signaling_NaN@?$numeric_limits@_W@std@@SA_WXZ -> public: static wchar_t __cdecl std::numeric_limits<wchar_t>::signaling_NaN(void) */
852 WCHAR __cdecl
std_numeric_limits_wchar_t_signaling_NaN(void) { return 0; }
854 /* ??4?$_Ctraits@M@std@@QAEAAV01@ABV01@@Z -> public: class std::_Ctraits<float> & __thiscall std::_Ctraits<float>::operator=(class std::_Ctraits<float> const &) */
855 /* ??4?$_Ctraits@M@std@@QEAAAEAV01@AEBV01@@Z -> public: class std::_Ctraits<float> & __ptr64 __cdecl std::_Ctraits<float>::operator=(class std::_Ctraits<float> const & __ptr64) __ptr64 */
856 /* ??4?$_Ctraits@N@std@@QAEAAV01@ABV01@@Z -> public: class std::_Ctraits<double> & __thiscall std::_Ctraits<double>::operator=(class std::_Ctraits<double> const &) */
857 /* ??4?$_Ctraits@N@std@@QEAAAEAV01@AEBV01@@Z -> public: class std::_Ctraits<double> & __ptr64 __cdecl std::_Ctraits<double>::operator=(class std::_Ctraits<double> const & __ptr64) __ptr64 */
858 /* ??4?$_Ctraits@O@std@@QAEAAV01@ABV01@@Z -> public: class std::_Ctraits<long double> & __thiscall std::_Ctraits<long double>::operator=(class std::_Ctraits<long double> const &) */
859 /* ??4?$_Ctraits@O@std@@QEAAAEAV01@AEBV01@@Z -> public: class std::_Ctraits<long double> & __ptr64 __cdecl std::_Ctraits<long double>::operator=(class std::_Ctraits<long double> const & __ptr64) __ptr64 */
860 DEFINE_THISCALL_WRAPPER( std_Ctraits_op_assign
, 8 )
861 std_Ctraits
* __thiscall
std_Ctraits_op_assign( std_Ctraits
*this, std_Ctraits
*right
)
866 /* ?_Isnan@?$_Ctraits@M@std@@SA_NM@Z -> public: static bool __cdecl std::_Ctraits<float>::_Isnan(float) */
867 BOOLEAN __cdecl
std_Ctraits_float__Isnan( float x
) { return _isnan(x
); }
869 /* ?_Isnan@?$_Ctraits@N@std@@SA_NN@Z -> public: static bool __cdecl std::_Ctraits<double>::_Isnan(double) */
870 BOOLEAN __cdecl
std_Ctraits_double__Isnan( double x
) { return _isnan(x
); }
872 /* ?_Isnan@?$_Ctraits@O@std@@SA_NO@Z -> public: static bool __cdecl std::_Ctraits<long double>::_Isnan(long double) */
873 BOOLEAN __cdecl
std_Ctraits_long_double__Isnan( LDOUBLE x
) { return _isnan(x
); }
875 /* ?atan2@?$_Ctraits@M@std@@SAMMM@Z -> public: static float __cdecl std::_Ctraits<float>::atan2(float,float) */
876 float __cdecl
std_Ctraits_float_atan2( float y
, float x
) { return atan2f( y
, x
); }
878 /* ?atan2@?$_Ctraits@N@std@@SANNN@Z -> public: static double __cdecl std::_Ctraits<double>::atan2(double,double) */
879 double __cdecl
std_Ctraits_double_atan2( double y
, double x
) { return atan2( y
, x
); }
881 /* ?atan2@?$_Ctraits@O@std@@SAOOO@Z -> public: static long double __cdecl std::_Ctraits<long double>::atan2(long double,long double) */
882 LDOUBLE __cdecl
std_Ctraits_long_double_atan2( LDOUBLE y
, LDOUBLE x
) { return atan2( y
, x
); }
884 /* ?cos@?$_Ctraits@M@std@@SAMM@Z -> public: static float __cdecl std::_Ctraits<float>::cos(float) */
885 float __cdecl
std_Ctraits_float_cos( float x
) { return cosf( x
); }
887 /* ?cos@?$_Ctraits@N@std@@SANN@Z -> public: static double __cdecl std::_Ctraits<double>::cos(double) */
888 double __cdecl
std_Ctraits_double_cos( double x
) { return cos( x
); }
890 /* ?cos@?$_Ctraits@O@std@@SAOO@Z -> public: static long double __cdecl std::_Ctraits<long double>::cos(long double) */
891 LDOUBLE __cdecl
std_Ctraits_long_double_cos( LDOUBLE x
) { return cos( x
); }
893 /* ?exp@?$_Ctraits@M@std@@SAMM@Z -> public: static float __cdecl std::_Ctraits<float>::exp(float) */
894 float __cdecl
std_Ctraits_float_exp( float x
) { return expf( x
); }
896 /* ?exp@?$_Ctraits@N@std@@SANN@Z -> public: static double __cdecl std::_Ctraits<double>::exp(double) */
897 double __cdecl
std_Ctraits_double_exp( double x
) { return exp( x
); }
899 /* ?exp@?$_Ctraits@O@std@@SAOO@Z -> public: static long double __cdecl std::_Ctraits<long double>::exp(long double) */
900 LDOUBLE __cdecl
std_Ctraits_long_double_exp( LDOUBLE x
) { return exp( x
); }
902 /* ?ldexp@?$_Ctraits@M@std@@SAMMH@Z -> public: static float __cdecl std::_Ctraits<float>::ldexp(float,int) */
903 float __cdecl
std_Ctraits_float_ldexp( float x
, int y
) { return ldexpf( x
, y
); }
905 /* ?ldexp@?$_Ctraits@N@std@@SANNH@Z -> public: static double __cdecl std::_Ctraits<double>::ldexp(double,int) */
906 double __cdecl
std_Ctraits_double_ldexp( double x
, int y
) { return ldexp( x
, y
); }
908 /* ?ldexp@?$_Ctraits@O@std@@SAOOH@Z -> public: static long double __cdecl std::_Ctraits<long double>::ldexp(long double,int) */
909 LDOUBLE __cdecl
std_Ctraits_long_double_ldexp( LDOUBLE x
, int y
) { return ldexp( x
, y
); }
911 /* ?log@?$_Ctraits@M@std@@SAMM@Z -> public: static float __cdecl std::_Ctraits<float>::log(float) */
912 float __cdecl
std_Ctraits_float_log( float x
) { return logf( x
); }
914 /* ?log@?$_Ctraits@N@std@@SANN@Z -> public: static double __cdecl std::_Ctraits<double>::log(double) */
915 double __cdecl
std_Ctraits_double_log( double x
) { return log( x
); }
917 /* ?log@?$_Ctraits@O@std@@SAOO@Z -> public: static long double __cdecl std::_Ctraits<long double>::log(long double) */
918 LDOUBLE __cdecl
std_Ctraits_long_double_log( LDOUBLE x
) { return log( x
); }
920 /* ?pow@?$_Ctraits@M@std@@SAMMM@Z -> public: static float __cdecl std::_Ctraits<float>::pow(float,float) */
921 float __cdecl
std_Ctraits_float_pow( float x
, float y
) { return powf( x
, y
); }
923 /* ?pow@?$_Ctraits@N@std@@SANNN@Z -> public: static double __cdecl std::_Ctraits<double>::pow(double,double) */
924 double __cdecl
std_Ctraits_double_pow( double x
, double y
) { return pow( x
, y
); }
926 /* ?pow@?$_Ctraits@O@std@@SAOOO@Z -> public: static long double __cdecl std::_Ctraits<long double>::pow(long double,long double) */
927 LDOUBLE __cdecl
std_Ctraits_long_double_pow( LDOUBLE x
, LDOUBLE y
) { return pow( x
, y
); }
929 /* ?sin@?$_Ctraits@M@std@@SAMM@Z -> public: static float __cdecl std::_Ctraits<float>::sin(float) */
930 float __cdecl
std_Ctraits_float_sin( float x
) { return sinf( x
); }
932 /* ?sin@?$_Ctraits@N@std@@SANN@Z -> public: static double __cdecl std::_Ctraits<double>::sin(double) */
933 double __cdecl
std_Ctraits_double_sin( double x
) { return sin( x
); }
935 /* ?sin@?$_Ctraits@O@std@@SAOO@Z -> public: static long double __cdecl std::_Ctraits<long double>::sin(long double) */
936 LDOUBLE __cdecl
std_Ctraits_long_double_sin( LDOUBLE x
) { return sin( x
); }
938 /* ?sqrt@?$_Ctraits@M@std@@SAMM@Z -> public: static float __cdecl std::_Ctraits<float>::sqrt(float) */
939 float __cdecl
std_Ctraits_float_sqrt( float x
) { return sqrtf( x
); }
941 /* ?sqrt@?$_Ctraits@N@std@@SANN@Z -> public: static double __cdecl std::_Ctraits<double>::sqrt(double) */
942 double __cdecl
std_Ctraits_double_sqrt( double x
) { return sqrt( x
); }
944 /* ?sqrt@?$_Ctraits@O@std@@SAOO@Z -> public: static long double __cdecl std::_Ctraits<long double>::sqrt(long double) */
945 LDOUBLE __cdecl
std_Ctraits_long_double_sqrt( LDOUBLE x
) { return sqrt( x
); }
947 /* ?tan@?$_Ctraits@M@std@@SAMM@Z -> public: static float __cdecl std::_Ctraits<float>::tan(float) */
948 float __cdecl
std_Ctraits_float_tan( float x
) { return tanf( x
); }
950 /* ?tan@?$_Ctraits@N@std@@SANN@Z -> public: static double __cdecl std::_Ctraits<double>::tan(double) */
951 double __cdecl
std_Ctraits_double_tan( double x
) { return tan( x
); }
953 /* ?tan@?$_Ctraits@O@std@@SAOO@Z -> public: static long double __cdecl std::_Ctraits<long double>::tan(long double) */
954 LDOUBLE __cdecl
std_Ctraits_long_double_tan( LDOUBLE x
) { return tan( x
); }
956 /* ??0?$_Complex_base@MU_C_float_complex@@@std@@QAE@ABM0@Z */
957 /* ??0?$_Complex_base@MU_C_float_complex@@@std@@QEAA@AEBM0@Z */
958 /* ??0?$complex@M@std@@QAE@ABM0@Z */
959 /* ??0?$complex@M@std@@QEAA@AEBM0@Z */
960 DEFINE_THISCALL_WRAPPER(complex_float_ctor
, 12)
961 complex_float
* __thiscall
complex_float_ctor(complex_float
*this, const float *real
, const float *imag
)
968 /* ??0?$complex@M@std@@QAE@ABU_C_float_complex@@@Z */
969 /* ??0?$complex@M@std@@QEAA@AEBU_C_float_complex@@@Z */
970 DEFINE_THISCALL_WRAPPER(complex_float_ctor_float
, 8)
971 complex_float
* __thiscall
complex_float_ctor_float(complex_float
*this, const complex_float
*c
)
973 this->real
= c
->real
;
974 this->imag
= c
->imag
;
978 /* ??0?$complex@M@std@@QAE@ABU_C_double_complex@@@Z */
979 /* ??0?$complex@M@std@@QEAA@AEBU_C_double_complex@@@Z */
980 /* ??0?$complex@M@std@@QAE@ABU_C_ldouble_complex@@@Z */
981 /* ??0?$complex@M@std@@QEAA@AEBU_C_ldouble_complex@@@Z */
982 /* ??0?$complex@M@std@@QAE@ABV?$complex@N@1@@Z */
983 /* ??0?$complex@M@std@@QEAA@AEBV?$complex@N@1@@Z */
984 /* ??0?$complex@M@std@@QAE@ABV?$complex@O@1@@Z */
985 /* ??0?$complex@M@std@@QEAA@AEBV?$complex@O@1@@Z */
986 DEFINE_THISCALL_WRAPPER(complex_float_ctor_double
, 8)
987 complex_float
* __thiscall
complex_float_ctor_double(complex_float
*this, const complex_double
*c
)
989 this->real
= c
->real
;
990 this->imag
= c
->imag
;
994 /* ??_F?$complex@M@std@@QAEXXZ */
995 /* ??_F?$complex@M@std@@QEAAXXZ */
996 DEFINE_THISCALL_WRAPPER(complex_float_ctor_def
, 4)
997 complex_float
* __thiscall
complex_float_ctor_def(complex_float
*this)
999 this->real
= this->imag
= 0;
1003 /* ??$?8M@std@@YA_NABMABV?$complex@M@0@@Z */
1004 /* ??$?8M@std@@YA_NAEBMAEBV?$complex@M@0@@Z */
1005 MSVCP_bool __cdecl
complex_float_equal_fc(const float *l
, const complex_float
*r
)
1007 return *l
==r
->real
&& r
->imag
==0;
1010 /* ??$?8M@std@@YA_NABV?$complex@M@0@0@Z */
1011 /* ??$?8M@std@@YA_NAEBV?$complex@M@0@0@Z */
1012 MSVCP_bool __cdecl
complex_float_equal(const complex_float
*l
, const complex_float
*r
)
1014 return l
->real
==r
->real
&& l
->imag
==r
->imag
;
1017 /* ??$?8M@std@@YA_NABV?$complex@M@0@ABM@Z */
1018 /* ??$?8M@std@@YA_NAEBV?$complex@M@0@AEBM@Z */
1019 MSVCP_bool __cdecl
complex_float_equal_cf(const complex_float
*l
, const float *r
)
1021 return l
->real
==*r
&& l
->imag
==0;
1024 /* ??$?9M@std@@YA_NABMABV?$complex@M@0@@Z */
1025 /* ??$?9M@std@@YA_NAEBMAEBV?$complex@M@0@@Z */
1026 MSVCP_bool __cdecl
complex_float_not_equal_fc(const float *l
, const complex_float
*r
)
1028 return !complex_float_equal_fc(l
, r
);
1031 /* ??$?9M@std@@YA_NABV?$complex@M@0@0@Z */
1032 /* ??$?9M@std@@YA_NAEBV?$complex@M@0@0@Z */
1033 MSVCP_bool __cdecl
complex_float_not_equal(const complex_float
*l
, const complex_float
*r
)
1035 return !complex_float_equal(l
, r
);
1038 /* ??$?9M@std@@YA_NABV?$complex@M@0@ABM@Z */
1039 /* ??$?9M@std@@YA_NAEBV?$complex@M@0@AEBM@Z */
1040 MSVCP_bool __cdecl
complex_float_not_equal_cf(const complex_float
*l
, const float *r
)
1042 return !complex_float_equal_cf(l
, r
);
1045 /* ??$?DM@std@@YA?AV?$complex@M@0@ABMABV10@@Z */
1046 /* ??$?DM@std@@YA?AV?$complex@M@0@AEBMAEBV10@@Z */
1047 complex_float
* __cdecl
complex_float_mult_fc(complex_float
*ret
, const float *l
, const complex_float
*r
)
1049 ret
->real
= *l
* r
->real
;
1050 ret
->imag
= *l
* r
->imag
;
1054 /* ??$?DM@std@@YA?AV?$complex@M@0@ABV10@0@Z */
1055 /* ??$?DM@std@@YA?AV?$complex@M@0@AEBV10@0@Z */
1056 complex_float
* __cdecl
complex_float_mult(complex_float
*ret
, const complex_float
*l
, const complex_float
*r
)
1058 ret
->real
= l
->real
*r
->real
- l
->imag
*r
->imag
;
1059 ret
->imag
= l
->imag
*r
->real
+ l
->real
*r
->imag
;
1063 /* ??$?DM@std@@YA?AV?$complex@M@0@ABV10@ABM@Z */
1064 /* ??$?DM@std@@YA?AV?$complex@M@0@AEBV10@AEBM@Z */
1065 complex_float
* __cdecl
complex_float_mult_cf(complex_float
*ret
, const complex_float
*l
, const float *r
)
1067 ret
->real
= l
->real
* *r
;
1068 ret
->imag
= l
->imag
* *r
;
1072 /* ??$?GM@std@@YA?AV?$complex@M@0@ABMABV10@@Z */
1073 /* ??$?GM@std@@YA?AV?$complex@M@0@AEBMAEBV10@@Z */
1074 complex_float
* __cdecl
complex_float_sub_fc(complex_float
*ret
, const float *l
, const complex_float
*r
)
1076 ret
->real
= *l
- r
->real
;
1077 ret
->imag
= -r
->imag
;
1081 /* ??$?GM@std@@YA?AV?$complex@M@0@ABV10@0@Z */
1082 /* ??$?GM@std@@YA?AV?$complex@M@0@AEBV10@0@Z */
1083 complex_float
* __cdecl
complex_float_sub(complex_float
*ret
, const complex_float
*l
, const complex_float
*r
)
1085 ret
->real
= l
->real
- r
->real
;
1086 ret
->imag
= l
->imag
- r
->imag
;
1090 /* ??$?GM@std@@YA?AV?$complex@M@0@ABV10@@Z */
1091 /* ??$?GM@std@@YA?AV?$complex@M@0@AEBV10@@Z */
1092 complex_float
* __cdecl
complex_float_neg(complex_float
*ret
, const complex_float
*c
)
1094 ret
->real
= -c
->real
;
1095 ret
->imag
= -c
->imag
;
1099 /* ??$?GM@std@@YA?AV?$complex@M@0@ABV10@ABM@Z */
1100 /* ??$?GM@std@@YA?AV?$complex@M@0@AEBV10@AEBM@Z */
1101 complex_float
* __cdecl
complex_float_sub_cf(complex_float
*ret
, const complex_float
*l
, const float *r
)
1103 ret
->real
= l
->real
- *r
;
1104 ret
->imag
= l
->imag
;
1108 /* ??$?HM@std@@YA?AV?$complex@M@0@ABMABV10@@Z */
1109 /* ??$?HM@std@@YA?AV?$complex@M@0@AEBMAEBV10@@Z */
1110 complex_float
* __cdecl
complex_float_add_fc(complex_float
*ret
, const float *l
, const complex_float
*r
)
1112 ret
->real
= *l
+ r
->real
;
1113 ret
->imag
= r
->imag
;
1117 /* ??$?HM@std@@YA?AV?$complex@M@0@ABV10@0@Z */
1118 /* ??$?HM@std@@YA?AV?$complex@M@0@AEBV10@0@Z */
1119 complex_float
* __cdecl
complex_float_add(complex_float
*ret
, const complex_float
*l
, const complex_float
*r
)
1121 ret
->real
= l
->real
+ r
->real
;
1122 ret
->imag
= l
->imag
+ r
->imag
;
1126 /* ??$?HM@std@@YA?AV?$complex@M@0@ABV10@@Z */
1127 /* ??$?HM@std@@YA?AV?$complex@M@0@AEBV10@@Z */
1128 complex_float
* __cdecl
complex_float_plus(complex_float
*ret
, const complex_float
*c
)
1134 /* ??$?HM@std@@YA?AV?$complex@M@0@ABV10@ABM@Z */
1135 /* ??$?HM@std@@YA?AV?$complex@M@0@AEBV10@AEBM@Z */
1136 complex_float
* __cdecl
complex_float_add_cf(complex_float
*ret
, const complex_float
*l
, const float *r
)
1138 ret
->real
= l
->real
+ *r
;
1139 ret
->imag
= l
->imag
;
1143 /* ??$?KM@std@@YA?AV?$complex@M@0@ABV10@0@Z */
1144 /* ??$?KM@std@@YA?AV?$complex@M@0@AEBV10@0@Z */
1145 complex_float
* __cdecl
complex_float_div(complex_float
*ret
, const complex_float
*l
, const complex_float
*r
)
1148 if((!r
->real
&& !r
->imag
) || _isnan(l
->real
) || _isnan(l
->imag
)
1149 || _isnan(r
->real
) || _isnan(r
->imag
)) {
1150 ret
->real
= std_numeric_limits_float_quiet_NaN();
1151 ret
->imag
= ret
->real
;
1155 if (fabsf(r
->real
) >= fabsf(r
->imag
)) {
1156 tmp
= r
->imag
/ r
->real
;
1157 den
= r
->real
+ r
->imag
*tmp
;
1158 ret
->real
= (l
->real
+ l
->imag
*tmp
) / den
;
1159 ret
->imag
= (l
->imag
- l
->real
*tmp
) / den
;
1161 tmp
= r
->real
/ r
->imag
;
1162 den
= r
->real
*tmp
+ r
->imag
;
1163 ret
->real
= (l
->real
*tmp
+ l
->imag
) / den
;
1164 ret
->imag
= (l
->imag
*tmp
- l
->real
) / den
;
1169 /* ??$?KM@std@@YA?AV?$complex@M@0@ABMABV10@@Z */
1170 /* ??$?KM@std@@YA?AV?$complex@M@0@AEBMAEBV10@@Z */
1171 complex_float
* __cdecl
complex_float_div_fc(complex_float
*ret
, const float *l
, const complex_float
*r
)
1173 complex_float c
= {*l
, 0};
1174 return complex_float_div(ret
, &c
, r
);
1177 /* ??$?KM@std@@YA?AV?$complex@M@0@ABV10@ABM@Z */
1178 /* ??$?KM@std@@YA?AV?$complex@M@0@AEBV10@AEBM@Z */
1179 complex_float
* __cdecl
complex_float_div_cf(complex_float
*ret
, const complex_float
*l
, const float *r
)
1181 ret
->real
= l
->real
/ *r
;
1182 ret
->imag
= l
->imag
/ *r
;
1186 /* ??4?$_Complex_base@MU_C_float_complex@@@std@@QAEAAV01@ABV01@@Z */
1187 /* ??4?$_Complex_base@MU_C_float_complex@@@std@@QEAAAEAV01@AEBV01@@Z */
1188 /* ??4?$complex@M@std@@QAEAAV01@ABV01@@Z */
1189 /* ??4?$complex@M@std@@QEAAAEAV01@AEBV01@@Z */
1190 DEFINE_THISCALL_WRAPPER(complex_float_assign
, 8)
1191 complex_float
* __thiscall
complex_float_assign(complex_float
*this, const complex_float
*r
)
1197 /* ??4?$complex@M@std@@QAEAAV01@ABM@Z */
1198 /* ??4?$complex@M@std@@QEAAAEAV01@AEBM@Z */
1199 DEFINE_THISCALL_WRAPPER(complex_float_assign_float
, 8)
1200 complex_float
* __thiscall
complex_float_assign_float(complex_float
*this, const float *r
)
1207 /* ??X?$complex@M@std@@QAEAAV01@ABM@Z */
1208 /* ??X?$complex@M@std@@QEAAAEAV01@AEBM@Z */
1209 DEFINE_THISCALL_WRAPPER(complex_float_mult_assign_float
, 8)
1210 complex_float
* __thiscall
complex_float_mult_assign_float(complex_float
*this, const float *r
)
1217 /* ??X?$complex@M@std@@QAEAAV01@ABV01@@Z */
1218 /* ??X?$complex@M@std@@QEAAAEAV01@AEBV01@@Z */
1219 DEFINE_THISCALL_WRAPPER(complex_float_mult_assign
, 8)
1220 complex_float
* __thiscall
complex_float_mult_assign(complex_float
*this, const complex_float
*r
)
1224 tmp
.real
= this->real
*r
->real
- this->imag
*r
->imag
;
1225 tmp
.imag
= this->real
*r
->imag
+ this->imag
*r
->real
;
1230 /* ??Y?$complex@M@std@@QAEAAV01@ABM@Z */
1231 /* ??Y?$complex@M@std@@QEAAAEAV01@AEBM@Z */
1232 DEFINE_THISCALL_WRAPPER(complex_float_add_assign_float
, 8)
1233 complex_float
* __thiscall
complex_float_add_assign_float(complex_float
*this, const float *r
)
1239 /* ??Y?$complex@M@std@@QAEAAV01@ABV01@@Z */
1240 /* ??Y?$complex@M@std@@QEAAAEAV01@AEBV01@@Z */
1241 DEFINE_THISCALL_WRAPPER(complex_float_add_assign
, 8)
1242 complex_float
* __thiscall
complex_float_add_assign(complex_float
*this, const complex_float
*r
)
1244 this->real
+= r
->real
;
1245 this->imag
+= r
->imag
;
1249 /* ??Z?$complex@M@std@@QAEAAV01@ABM@Z */
1250 /* ??Z?$complex@M@std@@QEAAAEAV01@AEBM@Z */
1251 DEFINE_THISCALL_WRAPPER(complex_float_sub_assign_float
, 8)
1252 complex_float
* __thiscall
complex_float_sub_assign_float(complex_float
*this, const float *r
)
1258 /* ??Z?$complex@M@std@@QAEAAV01@ABV01@@Z */
1259 /* ??Z?$complex@M@std@@QEAAAEAV01@AEBV01@@Z */
1260 DEFINE_THISCALL_WRAPPER(complex_float_sub_assign
, 8)
1261 complex_float
* __thiscall
complex_float_sub_assign(complex_float
*this, const complex_float
*r
)
1263 this->real
-= r
->real
;
1264 this->imag
-= r
->imag
;
1268 /* ??_0?$complex@M@std@@QAEAAV01@ABM@Z */
1269 /* ??_0?$complex@M@std@@QEAAAEAV01@AEBM@Z */
1270 DEFINE_THISCALL_WRAPPER(complex_float_div_assign_float
, 8)
1271 complex_float
* __thiscall
complex_float_div_assign_float(complex_float
*this, const float *r
)
1278 /* ??_0?$complex@M@std@@QAEAAV01@ABV01@@Z */
1279 /* ??_0?$complex@M@std@@QEAAAEAV01@AEBV01@@Z */
1280 DEFINE_THISCALL_WRAPPER(complex_float_div_assign
, 8)
1281 complex_float
* __thiscall
complex_float_div_assign(complex_float
*this, const complex_float
*r
)
1283 complex_float tmp
= *this;
1284 return complex_float_div(this, &tmp
, r
);
1287 /* ??$arg@M@std@@YAMABV?$complex@M@0@@Z */
1288 /* ??$arg@M@std@@YAMAEBV?$complex@M@0@@Z */
1289 float __cdecl
complex_float_arg(const complex_float
*c
)
1291 return atan2(c
->imag
, c
->real
);
1294 /* ??$imag@M@std@@YAMABV?$complex@M@0@@Z */
1295 /* ??$imag@M@std@@YAMAEBV?$complex@M@0@@Z */
1296 float __cdecl
complex_float_imag(const complex_float
*c
)
1301 /* ?imag@?$_Complex_base@MU_C_float_complex@@@std@@QAEMABM@Z */
1302 /* ?imag@?$_Complex_base@MU_C_float_complex@@@std@@QEAAMAEBM@Z */
1303 DEFINE_THISCALL_WRAPPER(complex_float_imag_set
, 8)
1304 float __thiscall
complex_float_imag_set(complex_float
*this, const float *f
)
1306 return (this->imag
= *f
);
1309 /* ?imag@?$_Complex_base@MU_C_float_complex@@@std@@QBEMXZ */
1310 /* ?imag@?$_Complex_base@MU_C_float_complex@@@std@@QEBAMXZ */
1311 DEFINE_THISCALL_WRAPPER(complex_float_imag_get
, 4)
1312 float __thiscall
complex_float_imag_get(const complex_float
*this)
1317 /* ??$real@M@std@@YAMABV?$complex@M@0@@Z */
1318 /* ??$real@M@std@@YAMAEBV?$complex@M@0@@Z */
1319 float __cdecl
complex_float_real(const complex_float
*c
)
1324 /* ?real@?$_Complex_base@MU_C_float_complex@@@std@@QAEMABM@Z */
1325 /* ?real@?$_Complex_base@MU_C_float_complex@@@std@@QEAAMAEBM@Z */
1326 DEFINE_THISCALL_WRAPPER(complex_float_real_set
, 8)
1327 float __thiscall
complex_float_real_set(complex_float
*this, const float *f
)
1329 return (this->real
= *f
);
1332 /* ?real@?$_Complex_base@MU_C_float_complex@@@std@@QBEMXZ */
1333 /* ?real@?$_Complex_base@MU_C_float_complex@@@std@@QEBAMXZ */
1334 DEFINE_THISCALL_WRAPPER(complex_float_real_get
, 4)
1335 float __thiscall
complex_float_real_get(const complex_float
*this)
1340 /* ??$_Fabs@M@std@@YAMABV?$complex@M@0@PAH@Z */
1341 /* ??$_Fabs@M@std@@YAMAEBV?$complex@M@0@PEAH@Z */
1342 float __cdecl
complex_float__Fabs(const complex_float
*c
, int *scale
)
1346 ret
= hypotf(c
->real
, c
->imag
);
1347 if(_isnan(ret
) || ret
==0) {
1349 }else if(ret
>= 1) {
1360 /* ??$abs@M@std@@YAMABV?$complex@M@0@@Z */
1361 /* ??$abs@M@std@@YAMAEBV?$complex@M@0@@Z */
1362 float __cdecl
complex_float_abs(const complex_float
*c
)
1364 return hypotf(c
->real
, c
->imag
);
1367 /* ??$conj@M@std@@YA?AV?$complex@M@0@ABV10@@Z */
1368 /* ??$conj@M@std@@YA?AV?$complex@M@0@AEBV10@@Z */
1369 complex_float
* __cdecl
complex_float_conj(complex_float
*ret
, const complex_float
*c
)
1371 ret
->real
= c
->real
;
1372 ret
->imag
= -c
->imag
;
1376 /* ??$cos@M@std@@YA?AV?$complex@M@0@ABV10@@Z */
1377 /* ??$cos@M@std@@YA?AV?$complex@M@0@AEBV10@@Z */
1378 complex_float
* __cdecl
complex_float_cos(complex_float
*ret
, const complex_float
*c
)
1380 ret
->real
= cos(c
->real
)*cosh(c
->imag
);
1381 ret
->imag
= -sin(c
->real
)*sinh(c
->imag
);
1385 /* ??$sin@M@std@@YA?AV?$complex@M@0@ABV10@@Z */
1386 /* ??$sin@M@std@@YA?AV?$complex@M@0@AEBV10@@Z */
1387 complex_float
* __cdecl
complex_float_sin(complex_float
*ret
, const complex_float
*c
)
1389 ret
->real
= sin(c
->real
)*cosh(c
->imag
);
1390 ret
->imag
= cos(c
->real
)*sinh(c
->imag
);
1394 /* ??$tan@M@std@@YA?AV?$complex@M@0@ABV10@@Z */
1395 /* ??$tan@M@std@@YA?AV?$complex@M@0@AEBV10@@Z */
1396 complex_float
* __cdecl
complex_float_tan(complex_float
*ret
, const complex_float
*c
)
1398 double denom
= cos(2*c
->real
) + cosh(2*c
->imag
);
1399 ret
->real
= sin(2*c
->real
) / denom
;
1400 ret
->imag
= sinh(2*c
->imag
) / denom
;
1404 /* ??$cosh@M@std@@YA?AV?$complex@M@0@ABV10@@Z */
1405 /* ??$cosh@M@std@@YA?AV?$complex@M@0@AEBV10@@Z */
1406 complex_float
* __cdecl
complex_float_cosh(complex_float
*ret
, const complex_float
*c
)
1408 ret
->real
= cosh(c
->real
)*cos(c
->imag
);
1409 ret
->imag
= sinh(c
->real
)*sin(c
->imag
);
1413 /* ??$sinh@M@std@@YA?AV?$complex@M@0@ABV10@@Z */
1414 /* ??$sinh@M@std@@YA?AV?$complex@M@0@AEBV10@@Z */
1415 complex_float
* __cdecl
complex_float_sinh(complex_float
*ret
, const complex_float
*c
)
1417 ret
->real
= sinh(c
->real
)*cos(c
->imag
);
1418 ret
->imag
= cosh(c
->real
)*sin(c
->imag
);
1422 /* ??$tanh@M@std@@YA?AV?$complex@M@0@ABV10@@Z */
1423 /* ??$tanh@M@std@@YA?AV?$complex@M@0@AEBV10@@Z */
1424 complex_float
* __cdecl
complex_float_tanh(complex_float
*ret
, const complex_float
*c
)
1428 ret
->real
= -c
->imag
;
1429 ret
->imag
= c
->real
;
1430 complex_float_tan(&tmp
, ret
);
1431 ret
->real
= tmp
.imag
;
1432 ret
->imag
= -tmp
.real
;
1436 /* ??$exp@M@std@@YA?AV?$complex@M@0@ABV10@@Z */
1437 /* ??$exp@M@std@@YA?AV?$complex@M@0@AEBV10@@Z */
1438 complex_float
* __cdecl
complex_float_exp(complex_float
*ret
, const complex_float
*c
)
1440 ret
->real
= ret
->imag
= exp(c
->real
);
1441 ret
->real
*= cos(c
->imag
);
1442 ret
->imag
*= sin(c
->imag
);
1446 /* ??$log@M@std@@YA?AV?$complex@M@0@ABV10@@Z */
1447 /* ??$log@M@std@@YA?AV?$complex@M@0@AEBV10@@Z */
1448 complex_float
* __cdecl
complex_float_log(complex_float
*ret
, const complex_float
*c
)
1450 ret
->real
= log(complex_float_abs(c
));
1451 ret
->imag
= complex_float_arg(c
);
1455 /* ??$log10@M@std@@YA?AV?$complex@M@0@ABV10@@Z */
1456 /* ??$log10@M@std@@YA?AV?$complex@M@0@AEBV10@@Z */
1457 complex_float
* __cdecl
complex_float_log10(complex_float
*ret
, const complex_float
*c
)
1459 complex_float_log(ret
, c
);
1460 ret
->real
*= M_LOG10E
;
1461 ret
->imag
*= M_LOG10E
;
1465 /* ??$norm@M@std@@YAMABV?$complex@M@0@@Z */
1466 /* ??$norm@M@std@@YAMAEBV?$complex@M@0@@Z */
1467 float __cdecl
complex_float_norm(const complex_float
*c
)
1469 return c
->real
*c
->real
+ c
->imag
*c
->imag
;
1472 /* ??$polar@M@std@@YA?AV?$complex@M@0@ABM0@Z */
1473 /* ??$polar@M@std@@YA?AV?$complex@M@0@AEBM0@Z */
1474 complex_float
* __cdecl
complex_float_polar_theta(complex_float
*ret
, const float *mod
, const float *theta
)
1476 ret
->real
= *mod
* cos(*theta
);
1477 ret
->imag
= *mod
* sin(*theta
);
1481 /* ??$polar@M@std@@YA?AV?$complex@M@0@ABM@Z */
1482 /* ??$polar@M@std@@YA?AV?$complex@M@0@AEBM@Z */
1483 complex_float
* __cdecl
complex_float_polar(complex_float
*ret
, const float *mod
)
1490 /* ??$pow@M@std@@YA?AV?$complex@M@0@ABV10@0@Z */
1491 /* ??$pow@M@std@@YA?AV?$complex@M@0@AEBV10@0@Z */
1492 complex_float
* __cdecl
complex_float_pow(complex_float
*ret
, const complex_float
*l
, const complex_float
*r
)
1494 float abs
= complex_float_abs(l
), arg
= complex_float_arg(l
);
1495 float rad
= pow(abs
, r
->real
), theta
= r
->real
*arg
;
1498 rad
*= exp(-r
->imag
* arg
);
1499 theta
+= r
->imag
* log(abs
);
1502 ret
->real
= rad
* cos(theta
);
1503 ret
->imag
= rad
* sin(theta
);
1507 /* ??$pow@M@std@@YA?AV?$complex@M@0@ABMABV10@@Z */
1508 /* ??$pow@M@std@@YA?AV?$complex@M@0@AEBMAEBV10@@Z */
1509 complex_float
* __cdecl
complex_float_pow_fc(complex_float
*ret
, const float *l
, const complex_float
*r
)
1511 complex_float c
= { *l
, 0 };
1512 return complex_float_pow(ret
, &c
, r
);
1515 /* ??$pow@M@std@@YA?AV?$complex@M@0@ABV10@ABM@Z */
1516 /* ??$pow@M@std@@YA?AV?$complex@M@0@AEBV10@AEBM@Z */
1517 complex_float
* __cdecl
complex_float_pow_cf(complex_float
*ret
, const complex_float
*l
, const float *r
)
1519 complex_float c
= { *r
, 0 };
1520 return complex_float_pow(ret
, l
, &c
);
1523 /* ??$pow@M@std@@YA?AV?$complex@M@0@ABV10@H@Z */
1524 /* ??$pow@M@std@@YA?AV?$complex@M@0@AEBV10@H@Z */
1525 complex_float
* __cdecl
complex_float_pow_ci(complex_float
*ret
, const complex_float
*l
, int r
)
1527 complex_float c
= *l
;
1528 complex_float unit_value
= { 1.0, 0 };
1529 complex_float_assign(ret
, &unit_value
);
1533 complex_float_div(&c
, &unit_value
, l
);
1538 complex_float_mult_assign(ret
, &c
);
1540 complex_float_mult_assign(&c
, &c
);
1546 /* ??$sqrt@M@std@@YA?AV?$complex@M@0@ABV10@@Z */
1547 /* ??$sqrt@M@std@@YA?AV?$complex@M@0@AEBV10@@Z */
1548 complex_float
* __cdecl
complex_float_sqrt(complex_float
*ret
, const complex_float
*l
)
1550 complex_float c
= { 0.5, 0 };
1551 return complex_float_pow(ret
, l
, &c
);
1554 /* ??0?$_Complex_base@NU_C_double_complex@@@std@@QAE@ABN0@Z */
1555 /* ??0?$_Complex_base@NU_C_double_complex@@@std@@QEAA@AEBN0@Z */
1556 /* ??0?$_Complex_base@OU_C_ldouble_complex@@@std@@QAE@ABO0@Z */
1557 /* ??0?$_Complex_base@OU_C_ldouble_complex@@@std@@QEAA@AEBO0@Z */
1558 /* ??0?$complex@N@std@@QAE@ABN0@Z */
1559 /* ??0?$complex@N@std@@QEAA@AEBN0@Z */
1560 /* ??0?$complex@O@std@@QAE@ABO0@Z */
1561 /* ??0?$complex@O@std@@QEAA@AEBO0@Z */
1562 DEFINE_THISCALL_WRAPPER(complex_double_ctor
, 12)
1563 complex_double
* __thiscall
complex_double_ctor(complex_double
*this, const double *real
, const double *imag
)
1570 /* ??0?$complex@N@std@@QAE@ABU_C_double_complex@@@Z */
1571 /* ??0?$complex@N@std@@QEAA@AEBU_C_double_complex@@@Z */
1572 /* ??0?$complex@N@std@@QAE@ABU_C_ldouble_complex@@@Z */
1573 /* ??0?$complex@N@std@@QEAA@AEBU_C_ldouble_complex@@@Z */
1574 /* ??0?$complex@N@std@@QAE@ABV?$complex@O@1@@Z */
1575 /* ??0?$complex@N@std@@QEAA@AEBV?$complex@O@1@@Z */
1576 /* ??0?$complex@O@std@@QAE@ABU_C_ldouble_complex@@@Z */
1577 /* ??0?$complex@O@std@@QEAA@AEBU_C_ldouble_complex@@@Z */
1578 /* ??0?$complex@O@std@@QAE@ABV?$complex@N@1@@Z */
1579 /* ??0?$complex@O@std@@QEAA@AEBV?$complex@N@1@@Z */
1580 DEFINE_THISCALL_WRAPPER(complex_double_ctor_double
, 8)
1581 complex_double
* __thiscall
complex_double_ctor_double(complex_double
*this, const complex_double
*c
)
1583 this->real
= c
->real
;
1584 this->imag
= c
->imag
;
1588 /* ??0?$complex@N@std@@QAE@ABV?$complex@M@1@@Z */
1589 /* ??0?$complex@N@std@@QEAA@AEBV?$complex@M@1@@Z */
1590 /* ??0?$complex@O@std@@QAE@ABV?$complex@M@1@@Z */
1591 /* ??0?$complex@O@std@@QEAA@AEBV?$complex@M@1@@Z */
1592 DEFINE_THISCALL_WRAPPER(complex_double_ctor_float
, 8)
1593 complex_double
* __thiscall
complex_double_ctor_float(complex_double
*this, const complex_float
*c
)
1595 this->real
= c
->real
;
1596 this->imag
= c
->imag
;
1600 /* ??_F?$complex@N@std@@QAEXXZ */
1601 /* ??_F?$complex@N@std@@QEAAXXZ */
1602 /* ??_F?$complex@O@std@@QAEXXZ */
1603 /* ??_F?$complex@O@std@@QEAAXXZ */
1604 DEFINE_THISCALL_WRAPPER(complex_double_ctor_def
, 4)
1605 complex_double
* __thiscall
complex_double_ctor_def(complex_double
*this)
1607 this->real
= this->imag
= 0;
1611 /* ??$?8N@std@@YA_NABNABV?$complex@N@0@@Z */
1612 /* ??$?8N@std@@YA_NAEBNAEBV?$complex@N@0@@Z */
1613 /* ??$?8O@std@@YA_NABOABV?$complex@O@0@@Z */
1614 /* ??$?8O@std@@YA_NAEBOAEBV?$complex@O@0@@Z */
1615 MSVCP_bool __cdecl
complex_double_equal_dc(const double *l
, const complex_double
*r
)
1617 return *l
==r
->real
&& r
->imag
==0;
1620 /* ??$?8N@std@@YA_NABV?$complex@N@0@0@Z */
1621 /* ??$?8N@std@@YA_NAEBV?$complex@N@0@0@Z */
1622 /* ??$?8O@std@@YA_NABV?$complex@O@0@0@Z */
1623 /* ??$?8O@std@@YA_NAEBV?$complex@O@0@0@Z */
1624 MSVCP_bool __cdecl
complex_double_equal(const complex_double
*l
, const complex_double
*r
)
1626 return l
->real
==r
->real
&& l
->imag
==r
->imag
;
1629 /* ??$?8N@std@@YA_NABV?$complex@N@0@ABN@Z */
1630 /* ??$?8N@std@@YA_NAEBV?$complex@N@0@AEBN@Z */
1631 /* ??$?8O@std@@YA_NABV?$complex@O@0@ABO@Z */
1632 /* ??$?8O@std@@YA_NAEBV?$complex@O@0@AEBO@Z */
1633 MSVCP_bool __cdecl
complex_double_equal_cd(const complex_double
*l
, double *r
)
1635 return l
->real
==*r
&& l
->imag
==0;
1638 /* ??$?9N@std@@YA_NABNABV?$complex@N@0@@Z */
1639 /* ??$?9N@std@@YA_NAEBNAEBV?$complex@N@0@@Z */
1640 /* ??$?9O@std@@YA_NABOABV?$complex@O@0@@Z */
1641 /* ??$?9O@std@@YA_NAEBOAEBV?$complex@O@0@@Z */
1642 MSVCP_bool __cdecl
complex_double_not_equal_dc(const double *l
, const complex_double
*r
)
1644 return !complex_double_equal_dc(l
, r
);
1647 /* ??$?9N@std@@YA_NABV?$complex@N@0@0@Z */
1648 /* ??$?9N@std@@YA_NAEBV?$complex@N@0@0@Z */
1649 /* ??$?9O@std@@YA_NABV?$complex@O@0@0@Z */
1650 /* ??$?9O@std@@YA_NAEBV?$complex@O@0@0@Z */
1651 MSVCP_bool __cdecl
complex_double_not_equal(const complex_double
*l
, const complex_double
*r
)
1653 return !complex_double_equal(l
, r
);
1656 /* ??$?9N@std@@YA_NABV?$complex@N@0@ABN@Z */
1657 /* ??$?9N@std@@YA_NAEBV?$complex@N@0@AEBN@Z */
1658 /* ??$?9O@std@@YA_NABV?$complex@O@0@ABO@Z */
1659 /* ??$?9O@std@@YA_NAEBV?$complex@O@0@AEBO@Z */
1660 MSVCP_bool __cdecl
complex_double_not_equal_cd(const complex_double
*l
, double *r
)
1662 return !complex_double_equal_cd(l
, r
);
1665 /* ??$?DN@std@@YA?AV?$complex@N@0@ABNABV10@@Z */
1666 /* ??$?DN@std@@YA?AV?$complex@N@0@AEBNAEBV10@@Z */
1667 /* ??$?DO@std@@YA?AV?$complex@O@0@ABOABV10@@Z */
1668 /* ??$?DO@std@@YA?AV?$complex@O@0@AEBOAEBV10@@Z */
1669 complex_double
* __cdecl
complex_double_mult_dc(complex_double
*ret
, const double *l
, const complex_double
*r
)
1671 ret
->real
= *l
* r
->real
;
1672 ret
->imag
= *l
* r
->imag
;
1676 /* ??$?DN@std@@YA?AV?$complex@N@0@ABV10@0@Z */
1677 /* ??$?DN@std@@YA?AV?$complex@N@0@AEBV10@0@Z */
1678 /* ??$?DO@std@@YA?AV?$complex@O@0@ABV10@0@Z */
1679 /* ??$?DO@std@@YA?AV?$complex@O@0@AEBV10@0@Z */
1680 complex_double
* __cdecl
complex_double_mult(complex_double
*ret
, const complex_double
*l
, const complex_double
*r
)
1682 ret
->real
= l
->real
*r
->real
- l
->imag
*r
->imag
;
1683 ret
->imag
= l
->imag
*r
->real
+ l
->real
*r
->imag
;
1687 /* ??$?DN@std@@YA?AV?$complex@N@0@ABV10@ABN@Z */
1688 /* ??$?DN@std@@YA?AV?$complex@N@0@AEBV10@AEBN@Z */
1689 /* ??$?DO@std@@YA?AV?$complex@O@0@ABV10@ABO@Z */
1690 /* ??$?DO@std@@YA?AV?$complex@O@0@AEBV10@AEBO@Z */
1691 complex_double
* __cdecl
complex_double_mult_cd(complex_double
*ret
, const complex_double
*l
, double *r
)
1693 ret
->real
= l
->real
* *r
;
1694 ret
->imag
= l
->imag
* *r
;
1698 /* ??$?GN@std@@YA?AV?$complex@N@0@ABNABV10@@Z */
1699 /* ??$?GN@std@@YA?AV?$complex@N@0@AEBNAEBV10@@Z */
1700 /* ??$?GO@std@@YA?AV?$complex@O@0@ABOABV10@@Z */
1701 /* ??$?GO@std@@YA?AV?$complex@O@0@AEBOAEBV10@@Z */
1702 complex_double
* __cdecl
complex_double_sub_dc(complex_double
*ret
, const double *l
, const complex_double
*r
)
1704 ret
->real
= *l
- r
->real
;
1705 ret
->imag
= -r
->imag
;
1709 /* ??$?GN@std@@YA?AV?$complex@N@0@ABV10@0@Z */
1710 /* ??$?GN@std@@YA?AV?$complex@N@0@AEBV10@0@Z */
1711 /* ??$?GO@std@@YA?AV?$complex@O@0@ABV10@0@Z */
1712 /* ??$?GO@std@@YA?AV?$complex@O@0@AEBV10@0@Z */
1713 complex_double
* __cdecl
complex_double_sub(complex_double
*ret
, const complex_double
*l
, const complex_double
*r
)
1715 ret
->real
= l
->real
- r
->real
;
1716 ret
->imag
= l
->imag
- r
->imag
;
1720 /* ??$?GN@std@@YA?AV?$complex@N@0@ABV10@@Z */
1721 /* ??$?GN@std@@YA?AV?$complex@N@0@AEBV10@@Z */
1722 /* ??$?GO@std@@YA?AV?$complex@O@0@ABV10@@Z */
1723 /* ??$?GO@std@@YA?AV?$complex@O@0@AEBV10@@Z */
1724 complex_double
* __cdecl
complex_double_neg(complex_double
*ret
, const complex_double
*c
)
1726 ret
->real
= -c
->real
;
1727 ret
->imag
= -c
->imag
;
1731 /* ??$?GN@std@@YA?AV?$complex@N@0@ABV10@ABN@Z */
1732 /* ??$?GN@std@@YA?AV?$complex@N@0@AEBV10@AEBN@Z */
1733 /* ??$?GO@std@@YA?AV?$complex@O@0@ABV10@ABO@Z */
1734 /* ??$?GO@std@@YA?AV?$complex@O@0@AEBV10@AEBO@Z */
1735 complex_double
* __cdecl
complex_double_sub_cd(complex_double
*ret
, const complex_double
*l
, double *r
)
1737 ret
->real
= l
->real
- *r
;
1738 ret
->imag
= l
->imag
;
1742 /* ??$?HN@std@@YA?AV?$complex@N@0@ABNABV10@@Z */
1743 /* ??$?HN@std@@YA?AV?$complex@N@0@AEBNAEBV10@@Z */
1744 /* ??$?HO@std@@YA?AV?$complex@O@0@ABOABV10@@Z */
1745 /* ??$?HO@std@@YA?AV?$complex@O@0@AEBOAEBV10@@Z */
1746 complex_double
* __cdecl
complex_double_add_dc(complex_double
*ret
, const double *l
, const complex_double
*r
)
1748 ret
->real
= *l
+ r
->real
;
1749 ret
->imag
= r
->imag
;
1753 /* ??$?HN@std@@YA?AV?$complex@N@0@ABV10@0@Z */
1754 /* ??$?HN@std@@YA?AV?$complex@N@0@AEBV10@0@Z */
1755 /* ??$?HO@std@@YA?AV?$complex@O@0@ABV10@0@Z */
1756 /* ??$?HO@std@@YA?AV?$complex@O@0@AEBV10@0@Z */
1757 complex_double
* __cdecl
complex_double_add(complex_double
*ret
, const complex_double
*l
, const complex_double
*r
)
1759 ret
->real
= l
->real
+ r
->real
;
1760 ret
->imag
= l
->imag
+ r
->imag
;
1764 /* ??$?HN@std@@YA?AV?$complex@N@0@ABV10@@Z */
1765 /* ??$?HN@std@@YA?AV?$complex@N@0@AEBV10@@Z */
1766 /* ??$?HO@std@@YA?AV?$complex@O@0@ABV10@@Z */
1767 /* ??$?HO@std@@YA?AV?$complex@O@0@AEBV10@@Z */
1768 complex_double
* __cdecl
complex_double_plus(complex_double
*ret
, const complex_double
*c
)
1774 /* ??$?HN@std@@YA?AV?$complex@N@0@ABV10@ABN@Z */
1775 /* ??$?HN@std@@YA?AV?$complex@N@0@AEBV10@AEBN@Z */
1776 /* ??$?HO@std@@YA?AV?$complex@O@0@ABV10@ABO@Z */
1777 /* ??$?HO@std@@YA?AV?$complex@O@0@AEBV10@AEBO@Z */
1778 complex_double
* __cdecl
complex_double_add_cd(complex_double
*ret
, const complex_double
*l
, double *r
)
1780 ret
->real
= l
->real
+ *r
;
1781 ret
->imag
= l
->imag
;
1785 /* ??$?KN@std@@YA?AV?$complex@N@0@ABV10@0@Z */
1786 /* ??$?KN@std@@YA?AV?$complex@N@0@AEBV10@0@Z */
1787 /* ??$?KO@std@@YA?AV?$complex@O@0@ABV10@0@Z */
1788 /* ??$?KO@std@@YA?AV?$complex@O@0@AEBV10@0@Z */
1789 complex_double
* __cdecl
complex_double_div(complex_double
*ret
, const complex_double
*l
, const complex_double
*r
)
1792 if((!r
->real
&& !r
->imag
) || _isnan(l
->real
) || _isnan(l
->imag
)
1793 || _isnan(r
->real
) || _isnan(r
->imag
)) {
1794 ret
->real
= std_numeric_limits_double_quiet_NaN();
1795 ret
->imag
= ret
->real
;
1799 if (fabs(r
->real
) >= fabs(r
->imag
)) {
1800 tmp
= r
->imag
/ r
->real
;
1801 den
= r
->real
+ r
->imag
*tmp
;
1802 ret
->real
= (l
->real
+ l
->imag
*tmp
) / den
;
1803 ret
->imag
= (l
->imag
- l
->real
*tmp
) / den
;
1805 tmp
= r
->real
/ r
->imag
;
1806 den
= r
->real
*tmp
+ r
->imag
;
1807 ret
->real
= (l
->real
*tmp
+ l
->imag
) / den
;
1808 ret
->imag
= (l
->imag
*tmp
- l
->real
) / den
;
1813 /* ??$?KN@std@@YA?AV?$complex@N@0@ABNABV10@@Z */
1814 /* ??$?KN@std@@YA?AV?$complex@N@0@AEBNAEBV10@@Z */
1815 /* ??$?KO@std@@YA?AV?$complex@O@0@ABOABV10@@Z */
1816 /* ??$?KO@std@@YA?AV?$complex@O@0@AEBOAEBV10@@Z */
1817 complex_double
* __cdecl
complex_double_div_dc(complex_double
*ret
, const double *l
, const complex_double
*r
)
1819 complex_double c
= {*l
, 0};
1820 return complex_double_div(ret
, &c
, r
);
1823 /* ??$?KN@std@@YA?AV?$complex@N@0@ABV10@ABN@Z */
1824 /* ??$?KN@std@@YA?AV?$complex@N@0@AEBV10@AEBN@Z */
1825 /* ??$?KO@std@@YA?AV?$complex@O@0@ABV10@ABO@Z */
1826 /* ??$?KO@std@@YA?AV?$complex@O@0@AEBV10@AEBO@Z */
1827 complex_double
* __cdecl
complex_double_div_cd(complex_double
*ret
, const complex_double
*l
, double *r
)
1829 ret
->real
= l
->real
/ *r
;
1830 ret
->imag
= l
->imag
/ *r
;
1834 /* ??4?$_Complex_base@NU_C_double_complex@@@std@@QAEAAV01@ABV01@@Z */
1835 /* ??4?$_Complex_base@NU_C_double_complex@@@std@@QEAAAEAV01@AEBV01@@Z */
1836 /* ??4?$_Complex_base@OU_C_ldouble_complex@@@std@@QAEAAV01@ABV01@@Z */
1837 /* ??4?$_Complex_base@OU_C_ldouble_complex@@@std@@QEAAAEAV01@AEBV01@@Z */
1838 /* ??4?$complex@N@std@@QAEAAV01@ABV01@@Z */
1839 /* ??4?$complex@N@std@@QEAAAEAV01@AEBV01@@Z */
1840 /* ??4?$complex@O@std@@QAEAAV01@ABV01@@Z */
1841 /* ??4?$complex@O@std@@QEAAAEAV01@AEBV01@@Z */
1842 DEFINE_THISCALL_WRAPPER(complex_double_assign
, 8)
1843 complex_double
* __thiscall
complex_double_assign(complex_double
*this, const complex_double
*r
)
1849 /* ??4?$complex@N@std@@QAEAAV01@ABN@Z */
1850 /* ??4?$complex@N@std@@QEAAAEAV01@AEBN@Z */
1851 /* ??4?$complex@O@std@@QAEAAV01@ABO@Z */
1852 /* ??4?$complex@O@std@@QEAAAEAV01@AEBO@Z */
1853 DEFINE_THISCALL_WRAPPER(complex_double_assign_double
, 8)
1854 complex_double
* __thiscall
complex_double_assign_double(complex_double
*this, double *r
)
1861 /* ??X?$complex@N@std@@QAEAAV01@ABN@Z */
1862 /* ??X?$complex@N@std@@QEAAAEAV01@AEBN@Z */
1863 /* ??X?$complex@O@std@@QAEAAV01@ABO@Z */
1864 /* ??X?$complex@O@std@@QEAAAEAV01@AEBO@Z */
1865 DEFINE_THISCALL_WRAPPER(complex_double_mult_assign_double
, 8)
1866 complex_double
* __thiscall
complex_double_mult_assign_double(complex_double
*this, const double *r
)
1873 /* ??X?$complex@N@std@@QAEAAV01@ABV01@@Z */
1874 /* ??X?$complex@N@std@@QEAAAEAV01@AEBV01@@Z */
1875 /* ??X?$complex@O@std@@QAEAAV01@ABV01@@Z */
1876 /* ??X?$complex@O@std@@QEAAAEAV01@AEBV01@@Z */
1877 DEFINE_THISCALL_WRAPPER(complex_double_mult_assign
, 8)
1878 complex_double
* __thiscall
complex_double_mult_assign(complex_double
*this, const complex_double
*r
)
1882 tmp
.real
= this->real
*r
->real
- this->imag
*r
->imag
;
1883 tmp
.imag
= this->real
*r
->imag
+ this->imag
*r
->real
;
1888 /* ??Y?$complex@N@std@@QAEAAV01@ABN@Z */
1889 /* ??Y?$complex@N@std@@QEAAAEAV01@AEBN@Z */
1890 /* ??Y?$complex@O@std@@QAEAAV01@ABO@Z */
1891 /* ??Y?$complex@O@std@@QEAAAEAV01@AEBO@Z */
1892 DEFINE_THISCALL_WRAPPER(complex_double_add_assign_double
, 8)
1893 complex_double
* __thiscall
complex_double_add_assign_double(complex_double
*this, const double *r
)
1899 /* ??Y?$complex@N@std@@QAEAAV01@ABV01@@Z */
1900 /* ??Y?$complex@N@std@@QEAAAEAV01@AEBV01@@Z */
1901 /* ??Y?$complex@O@std@@QAEAAV01@ABV01@@Z */
1902 /* ??Y?$complex@O@std@@QEAAAEAV01@AEBV01@@Z */
1903 DEFINE_THISCALL_WRAPPER(complex_double_add_assign
, 8)
1904 complex_double
* __thiscall
complex_double_add_assign(complex_double
*this, const complex_double
*r
)
1906 this->real
+= r
->real
;
1907 this->imag
+= r
->imag
;
1911 /* ??Z?$complex@N@std@@QAEAAV01@ABN@Z */
1912 /* ??Z?$complex@N@std@@QEAAAEAV01@AEBN@Z */
1913 /* ??Z?$complex@O@std@@QAEAAV01@ABO@Z */
1914 /* ??Z?$complex@O@std@@QEAAAEAV01@AEBO@Z */
1915 DEFINE_THISCALL_WRAPPER(complex_double_sub_assign_double
, 8)
1916 complex_double
* __thiscall
complex_double_sub_assign_double(complex_double
*this, const double *r
)
1922 /* ??Z?$complex@N@std@@QAEAAV01@ABV01@@Z */
1923 /* ??Z?$complex@N@std@@QEAAAEAV01@AEBV01@@Z */
1924 /* ??Z?$complex@O@std@@QAEAAV01@ABV01@@Z */
1925 /* ??Z?$complex@O@std@@QEAAAEAV01@AEBV01@@Z */
1926 DEFINE_THISCALL_WRAPPER(complex_double_sub_assign
, 8)
1927 complex_double
* __thiscall
complex_double_sub_assign(complex_double
*this, const complex_double
*r
)
1929 this->real
-= r
->real
;
1930 this->imag
-= r
->imag
;
1934 /* ??_0?$complex@N@std@@QAEAAV01@ABN@Z */
1935 /* ??_0?$complex@N@std@@QEAAAEAV01@AEBN@Z */
1936 /* ??_0?$complex@O@std@@QAEAAV01@ABO@Z */
1937 /* ??_0?$complex@O@std@@QEAAAEAV01@AEBO@Z */
1938 DEFINE_THISCALL_WRAPPER(complex_double_div_assign_double
, 8)
1939 complex_double
* __thiscall
complex_double_div_assign_double(complex_double
*this, const double *r
)
1946 /* ??_0?$complex@N@std@@QAEAAV01@ABV01@@Z */
1947 /* ??_0?$complex@N@std@@QEAAAEAV01@AEBV01@@Z */
1948 /* ??_0?$complex@O@std@@QAEAAV01@ABV01@@Z */
1949 /* ??_0?$complex@O@std@@QEAAAEAV01@AEBV01@@Z */
1950 DEFINE_THISCALL_WRAPPER(complex_double_div_assign
, 8)
1951 complex_double
* __thiscall
complex_double_div_assign(complex_double
*this, const complex_double
*r
)
1953 complex_double tmp
= *this;
1954 return complex_double_div(this, &tmp
, r
);
1957 /* ??$arg@N@std@@YANABV?$complex@N@0@@Z */
1958 /* ??$arg@N@std@@YANAEBV?$complex@N@0@@Z */
1959 /* ??$arg@O@std@@YAOABV?$complex@O@0@@Z */
1960 /* ??$arg@O@std@@YAOAEBV?$complex@O@0@@Z */
1961 double __cdecl
complex_double_arg(const complex_double
*c
)
1963 return atan2(c
->imag
, c
->real
);
1966 /* ??$imag@N@std@@YANABV?$complex@N@0@@Z */
1967 /* ??$imag@N@std@@YANAEBV?$complex@N@0@@Z */
1968 /* ??$imag@O@std@@YAOABV?$complex@O@0@@Z */
1969 /* ??$imag@O@std@@YAOAEBV?$complex@O@0@@Z */
1970 double __cdecl
complex_double_imag(const complex_double
*c
)
1975 /* ?imag@?$_Complex_base@NU_C_double_complex@@@std@@QAENABN@Z */
1976 /* ?imag@?$_Complex_base@NU_C_double_complex@@@std@@QEAANAEBN@Z */
1977 /* ?imag@?$_Complex_base@OU_C_ldouble_complex@@@std@@QAEOABO@Z */
1978 /* ?imag@?$_Complex_base@OU_C_ldouble_complex@@@std@@QEAAOAEBO@Z */
1979 DEFINE_THISCALL_WRAPPER(complex_double_imag_set
, 8)
1980 double __thiscall
complex_double_imag_set(complex_double
*this, const double *d
)
1982 return (this->imag
= *d
);
1985 /* ?imag@?$_Complex_base@NU_C_double_complex@@@std@@QBENXZ */
1986 /* ?imag@?$_Complex_base@NU_C_double_complex@@@std@@QEBANXZ */
1987 /* ?imag@?$_Complex_base@OU_C_ldouble_complex@@@std@@QBEOXZ */
1988 /* ?imag@?$_Complex_base@OU_C_ldouble_complex@@@std@@QEBAOXZ */
1989 DEFINE_THISCALL_WRAPPER(complex_double_imag_get
, 4)
1990 double __thiscall
complex_double_imag_get(const complex_double
*this)
1995 /* ??$real@N@std@@YANABV?$complex@N@0@@Z */
1996 /* ??$real@N@std@@YANAEBV?$complex@N@0@@Z */
1997 /* ??$real@O@std@@YAOABV?$complex@O@0@@Z */
1998 /* ??$real@O@std@@YAOAEBV?$complex@O@0@@Z */
1999 double __cdecl
complex_double_real(const complex_double
*c
)
2004 /* ?real@?$_Complex_base@NU_C_double_complex@@@std@@QAENABN@Z */
2005 /* ?real@?$_Complex_base@NU_C_double_complex@@@std@@QEAANAEBN@Z */
2006 /* ?real@?$_Complex_base@OU_C_ldouble_complex@@@std@@QAEOABO@Z */
2007 /* ?real@?$_Complex_base@OU_C_ldouble_complex@@@std@@QEAAOAEBO@Z */
2008 DEFINE_THISCALL_WRAPPER(complex_double_real_set
, 8)
2009 double __thiscall
complex_double_real_set(complex_double
*this, const double *d
)
2011 return (this->real
= *d
);
2014 /* ?real@?$_Complex_base@NU_C_double_complex@@@std@@QBENXZ */
2015 /* ?real@?$_Complex_base@NU_C_double_complex@@@std@@QEBANXZ */
2016 /* ?real@?$_Complex_base@OU_C_ldouble_complex@@@std@@QBEOXZ */
2017 /* ?real@?$_Complex_base@OU_C_ldouble_complex@@@std@@QEBAOXZ */
2018 DEFINE_THISCALL_WRAPPER(complex_double_real_get
, 4)
2019 double __thiscall
complex_double_real_get(const complex_double
*this)
2024 /* ??$_Fabs@N@std@@YANABV?$complex@N@0@PAH@Z */
2025 /* ??$_Fabs@N@std@@YANAEBV?$complex@N@0@PEAH@Z */
2026 /* ??$_Fabs@O@std@@YAOABV?$complex@O@0@PAH@Z */
2027 /* ??$_Fabs@O@std@@YAOAEBV?$complex@O@0@PEAH@Z */
2028 double __cdecl
complex_double__Fabs(const complex_double
*c
, int *scale
)
2032 ret
= hypot(c
->real
, c
->imag
);
2033 if(_isnan(ret
) || ret
==0) {
2035 }else if(ret
>= 1) {
2046 /* ??$abs@N@std@@YANABV?$complex@N@0@@Z */
2047 /* ??$abs@N@std@@YANAEBV?$complex@N@0@@Z */
2048 /* ??$abs@O@std@@YAOABV?$complex@O@0@@Z */
2049 /* ??$abs@O@std@@YAOAEBV?$complex@O@0@@Z */
2050 double __cdecl
complex_double_abs(const complex_double
*c
)
2052 return hypot(c
->real
, c
->imag
);
2055 /* ??$conj@N@std@@YA?AV?$complex@N@0@ABV10@@Z */
2056 /* ??$conj@N@std@@YA?AV?$complex@N@0@AEBV10@@Z */
2057 /* ??$conj@O@std@@YA?AV?$complex@O@0@ABV10@@Z */
2058 /* ??$conj@O@std@@YA?AV?$complex@O@0@AEBV10@@Z */
2059 complex_double
* __cdecl
complex_double_conj(complex_double
*ret
, const complex_double
*c
)
2061 ret
->real
= c
->real
;
2062 ret
->imag
= -c
->imag
;
2066 /* ??$cos@N@std@@YA?AV?$complex@N@0@ABV10@@Z */
2067 /* ??$cos@N@std@@YA?AV?$complex@N@0@AEBV10@@Z */
2068 /* ??$cos@O@std@@YA?AV?$complex@O@0@ABV10@@Z */
2069 /* ??$cos@O@std@@YA?AV?$complex@O@0@AEBV10@@Z */
2070 complex_double
* __cdecl
complex_double_cos(complex_double
*ret
, const complex_double
*c
)
2072 ret
->real
= cos(c
->real
)*cosh(c
->imag
);
2073 ret
->imag
= -sin(c
->real
)*sinh(c
->imag
);
2077 /* ??$sin@N@std@@YA?AV?$complex@N@0@ABV10@@Z */
2078 /* ??$sin@N@std@@YA?AV?$complex@N@0@AEBV10@@Z */
2079 /* ??$sin@O@std@@YA?AV?$complex@O@0@ABV10@@Z */
2080 /* ??$sin@O@std@@YA?AV?$complex@O@0@AEBV10@@Z */
2081 complex_double
* __cdecl
complex_double_sin(complex_double
*ret
, const complex_double
*c
)
2083 ret
->real
= sin(c
->real
)*cosh(c
->imag
);
2084 ret
->imag
= cos(c
->real
)*sinh(c
->imag
);
2088 /* ??$tan@N@std@@YA?AV?$complex@N@0@ABV10@@Z */
2089 /* ??$tan@N@std@@YA?AV?$complex@N@0@AEBV10@@Z */
2090 /* ??$tan@O@std@@YA?AV?$complex@O@0@ABV10@@Z */
2091 /* ??$tan@O@std@@YA?AV?$complex@O@0@AEBV10@@Z */
2092 complex_double
* __cdecl
complex_double_tan(complex_double
*ret
, const complex_double
*c
)
2094 double denom
= cos(2*c
->real
) + cosh(2*c
->imag
);
2095 ret
->real
= sin(2*c
->real
) / denom
;
2096 ret
->imag
= sinh(2*c
->imag
) / denom
;
2100 /* ??$cosh@N@std@@YA?AV?$complex@N@0@ABV10@@Z */
2101 /* ??$cosh@N@std@@YA?AV?$complex@N@0@AEBV10@@Z */
2102 /* ??$cosh@O@std@@YA?AV?$complex@O@0@ABV10@@Z */
2103 /* ??$cosh@O@std@@YA?AV?$complex@O@0@AEBV10@@Z */
2104 complex_double
* __cdecl
complex_double_cosh(complex_double
*ret
, const complex_double
*c
)
2106 ret
->real
= cosh(c
->real
)*cos(c
->imag
);
2107 ret
->imag
= sinh(c
->real
)*sin(c
->imag
);
2111 /* ??$sinh@N@std@@YA?AV?$complex@N@0@ABV10@@Z */
2112 /* ??$sinh@N@std@@YA?AV?$complex@N@0@AEBV10@@Z */
2113 /* ??$sinh@O@std@@YA?AV?$complex@O@0@ABV10@@Z */
2114 /* ??$sinh@O@std@@YA?AV?$complex@O@0@AEBV10@@Z */
2115 complex_double
* __cdecl
complex_double_sinh(complex_double
*ret
, const complex_double
*c
)
2117 ret
->real
= sinh(c
->real
)*cos(c
->imag
);
2118 ret
->imag
= cosh(c
->real
)*sin(c
->imag
);
2122 /* ??$tanh@N@std@@YA?AV?$complex@N@0@ABV10@@Z */
2123 /* ??$tanh@N@std@@YA?AV?$complex@N@0@AEBV10@@Z */
2124 /* ??$tanh@O@std@@YA?AV?$complex@O@0@ABV10@@Z */
2125 /* ??$tanh@O@std@@YA?AV?$complex@O@0@AEBV10@@Z */
2126 complex_double
* __cdecl
complex_double_tanh(complex_double
*ret
, const complex_double
*c
)
2130 ret
->real
= -c
->imag
;
2131 ret
->imag
= c
->real
;
2132 complex_double_tan(&tmp
, ret
);
2133 ret
->real
= tmp
.imag
;
2134 ret
->imag
= -tmp
.real
;
2138 /* ??$exp@N@std@@YA?AV?$complex@N@0@ABV10@@Z */
2139 /* ??$exp@N@std@@YA?AV?$complex@N@0@AEBV10@@Z */
2140 /* ??$exp@O@std@@YA?AV?$complex@O@0@ABV10@@Z */
2141 /* ??$exp@O@std@@YA?AV?$complex@O@0@AEBV10@@Z */
2142 complex_double
* __cdecl
complex_double_exp(complex_double
*ret
, const complex_double
*c
)
2144 ret
->real
= ret
->imag
= exp(c
->real
);
2145 ret
->real
*= cos(c
->imag
);
2146 ret
->imag
*= sin(c
->imag
);
2150 /* ??$log@N@std@@YA?AV?$complex@N@0@ABV10@@Z */
2151 /* ??$log@N@std@@YA?AV?$complex@N@0@AEBV10@@Z */
2152 /* ??$log@O@std@@YA?AV?$complex@O@0@ABV10@@Z */
2153 /* ??$log@O@std@@YA?AV?$complex@O@0@AEBV10@@Z */
2154 complex_double
* __cdecl
complex_double_log(complex_double
*ret
, const complex_double
*c
)
2156 ret
->real
= log(complex_double_abs(c
));
2157 ret
->imag
= complex_double_arg(c
);
2161 /* ??$log10@N@std@@YA?AV?$complex@N@0@ABV10@@Z */
2162 /* ??$log10@N@std@@YA?AV?$complex@N@0@AEBV10@@Z */
2163 /* ??$log10@O@std@@YA?AV?$complex@O@0@ABV10@@Z */
2164 /* ??$log10@O@std@@YA?AV?$complex@O@0@AEBV10@@Z */
2165 complex_double
* __cdecl
complex_double_log10(complex_double
*ret
, const complex_double
*c
)
2167 complex_double_log(ret
, c
);
2168 ret
->real
*= M_LOG10E
;
2169 ret
->imag
*= M_LOG10E
;
2173 /* ??$norm@N@std@@YANABV?$complex@N@0@@Z */
2174 /* ??$norm@N@std@@YANAEBV?$complex@N@0@@Z */
2175 /* ??$norm@O@std@@YAOABV?$complex@O@0@@Z */
2176 /* ??$norm@O@std@@YAOAEBV?$complex@O@0@@Z */
2177 double __cdecl
complex_double_norm(const complex_double
*c
)
2179 return c
->real
*c
->real
+ c
->imag
*c
->imag
;
2182 /* ??$polar@N@std@@YA?AV?$complex@N@0@ABN0@Z */
2183 /* ??$polar@N@std@@YA?AV?$complex@N@0@AEBN0@Z */
2184 /* ??$polar@O@std@@YA?AV?$complex@O@0@ABO0@Z */
2185 /* ??$polar@O@std@@YA?AV?$complex@O@0@AEBO0@Z */
2186 complex_double
* __cdecl
complex_double_polar_theta(complex_double
*ret
, const double *mod
, const double *theta
)
2188 ret
->real
= *mod
* cos(*theta
);
2189 ret
->imag
= *mod
* sin(*theta
);
2193 /* ??$polar@N@std@@YA?AV?$complex@N@0@ABN@Z */
2194 /* ??$polar@N@std@@YA?AV?$complex@N@0@AEBN@Z */
2195 /* ??$polar@O@std@@YA?AV?$complex@O@0@ABO@Z */
2196 /* ??$polar@O@std@@YA?AV?$complex@O@0@AEBO@Z */
2197 complex_double
* __cdecl
complex_double_polar(complex_double
*ret
, const double *mod
)
2204 /* ??$pow@N@std@@YA?AV?$complex@N@0@ABV10@0@Z */
2205 /* ??$pow@N@std@@YA?AV?$complex@N@0@AEBV10@0@Z */
2206 /* ??$pow@O@std@@YA?AV?$complex@O@0@ABV10@0@Z */
2207 /* ??$pow@O@std@@YA?AV?$complex@O@0@AEBV10@0@Z */
2208 complex_double
* __cdecl
complex_double_pow(complex_double
*ret
, const complex_double
*l
, const complex_double
*r
)
2210 double abs
= complex_double_abs(l
), arg
= complex_double_arg(l
);
2211 double rad
= pow(abs
, r
->real
), theta
= r
->real
*arg
;
2214 rad
*= exp(-r
->imag
* arg
);
2215 theta
+= r
->imag
* log(abs
);
2218 ret
->real
= rad
* cos(theta
);
2219 ret
->imag
= rad
* sin(theta
);
2223 /* ??$pow@N@std@@YA?AV?$complex@N@0@ABNABV10@@Z */
2224 /* ??$pow@N@std@@YA?AV?$complex@N@0@AEBNAEBV10@@Z */
2225 /* ??$pow@O@std@@YA?AV?$complex@O@0@ABOABV10@@Z */
2226 /* ??$pow@O@std@@YA?AV?$complex@O@0@AEBOAEBV10@@Z */
2227 complex_double
* __cdecl
complex_double_pow_dc(complex_double
*ret
, const double *l
, const complex_double
*r
)
2229 complex_double c
= { *l
, 0 };
2230 return complex_double_pow(ret
, &c
, r
);
2233 /* ??$pow@N@std@@YA?AV?$complex@N@0@ABV10@ABN@Z */
2234 /* ??$pow@N@std@@YA?AV?$complex@N@0@AEBV10@AEBN@Z */
2235 /* ??$pow@O@std@@YA?AV?$complex@O@0@ABV10@ABO@Z */
2236 /* ??$pow@O@std@@YA?AV?$complex@O@0@AEBV10@AEBO@Z */
2237 complex_double
* __cdecl
complex_double_pow_cd(complex_double
*ret
, const complex_double
*l
, const double *r
)
2239 complex_double c
= { *r
, 0 };
2240 return complex_double_pow(ret
, l
, &c
);
2243 /* ??$pow@N@std@@YA?AV?$complex@N@0@ABV10@H@Z */
2244 /* ??$pow@N@std@@YA?AV?$complex@N@0@AEBV10@H@Z */
2245 /* ??$pow@O@std@@YA?AV?$complex@O@0@ABV10@H@Z */
2246 /* ??$pow@O@std@@YA?AV?$complex@O@0@AEBV10@H@Z */
2247 complex_double
* __cdecl
complex_double_pow_ci(complex_double
*ret
, const complex_double
*l
, int r
)
2249 complex_double c
= *l
;
2250 complex_double unit_value
= { 1.0, 0 };
2251 complex_double_assign(ret
, &unit_value
);
2255 complex_double_div(&c
, &unit_value
, l
);
2260 complex_double_mult_assign(ret
, &c
);
2262 complex_double_mult_assign(&c
, &c
);
2268 /* ??$sqrt@N@std@@YA?AV?$complex@N@0@ABV10@@Z */
2269 /* ??$sqrt@N@std@@YA?AV?$complex@N@0@AEBV10@@Z */
2270 /* ??$sqrt@O@std@@YA?AV?$complex@O@0@ABV10@@Z */
2271 /* ??$sqrt@O@std@@YA?AV?$complex@O@0@AEBV10@@Z */
2272 complex_double
* __cdecl
complex_double_sqrt(complex_double
*ret
, const complex_double
*l
)
2274 complex_double c
= { 0.5, 0 };
2275 return complex_double_pow(ret
, l
, &c
);
2278 static short dclass(double x
)
2280 switch(_fpclass(x
)) {
2289 return FP_SUBNORMAL
;
2301 short __cdecl
_Dtest(double *x
)
2307 short __cdecl
_FDtest(float *x
)
2313 short __cdecl
_Dscale(double *x
, int exp
)
2320 short __cdecl
_FDscale(float *x
, int exp
)
2327 /* computes y * e^(*x) * 2^scale */
2328 short __cdecl
_Exp(double *x
, double y
, int scale
)
2345 else if(ed
!=e
&& ed
<0)
2347 else if(scale
>0 && e
>0 && scale
+e
<=0)
2349 else if(scale
<0 && e
<0 && scale
+e
>=0)
2354 *x
= y
* pow(2.0, *x
);
2355 return _Dscale(x
, scale
);
2359 short __cdecl
_FExp(float *x
, float y
, short scale
)