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
22 #define _USE_MATH_DEFINES
29 typedef double LDOUBLE
; /* long double is just a double */
31 typedef struct { } std_Num_base
;
32 typedef struct { } std_Ctraits
;
34 enum std_float_denorm_style
36 denorm_indeterminate
= -1,
41 enum std_float_round_style
43 round_indeterminate
= -1,
44 round_toward_zero
= 0,
46 round_toward_infinity
= 2,
47 round_toward_neg_infinity
= 3
50 /* these are defined as integers but the bit patterns are then interpreted as floats/doubles */
51 const DWORD _FDenorm
= 1;
52 const ULONGLONG _Denorm
= 1;
53 const ULONGLONG _LDenorm
= 1;
54 const DWORD _FInf
= 0x7f800000;
55 const ULONGLONG _Inf
= (ULONGLONG
)0x7ff00000 << 32;
56 const ULONGLONG _LInf
= (ULONGLONG
)0x7ff00000 << 32;
57 const DWORD _FNan
= 0x7fc00000;
58 const ULONGLONG _Nan
= (ULONGLONG
)0x7ff80000 << 32;
59 const ULONGLONG _LNan
= (ULONGLONG
)0x7ff80000 << 32;
60 const DWORD _FSnan
= 0x7f800001;
61 const ULONGLONG _Snan
= ((ULONGLONG
)0x7ff00000 << 32) + 1;
62 const ULONGLONG _LSnan
= ((ULONGLONG
)0x7ff00000 << 32) + 1;
63 const ULONGLONG _LZero
= 0;
64 const ULONGLONG _Hugeval
= (ULONGLONG
)0x7ff00000 << 32;
66 const float _FEps
= FLT_EPSILON
;
67 const double _Eps
= DBL_EPSILON
;
68 const LDOUBLE _LEps
= LDBL_EPSILON
;
70 /* ?digits10@?$numeric_limits@C@std@@2HB -> public: static int const std::numeric_limits<signed char>::digits10 */
71 const int std_numeric_limits_signed_char_digits10
= 2;
73 /* ?digits10@?$numeric_limits@D@std@@2HB -> public: static int const std::numeric_limits<char>::digits10 */
74 const int std_numeric_limits_char_digits10
= 2;
76 /* ?digits10@?$numeric_limits@E@std@@2HB -> public: static int const std::numeric_limits<unsigned char>::digits10 */
77 const int std_numeric_limits_unsigned_char_digits10
= 2;
79 /* ?digits10@?$numeric_limits@F@std@@2HB -> public: static int const std::numeric_limits<short>::digits10 */
80 const int std_numeric_limits_short_digits10
= 4;
82 /* ?digits10@?$numeric_limits@G@std@@2HB -> public: static int const std::numeric_limits<unsigned short>::digits10 */
83 const int std_numeric_limits_unsigned_short_digits10
= 4;
85 /* ?digits10@?$numeric_limits@H@std@@2HB -> public: static int const std::numeric_limits<int>::digits10 */
86 const int std_numeric_limits_int_digits10
= 9;
88 /* ?digits10@?$numeric_limits@I@std@@2HB -> public: static int const std::numeric_limits<unsigned int>::digits10 */
89 const int std_numeric_limits_unsigned_int_digits10
= 9;
91 /* ?digits10@?$numeric_limits@J@std@@2HB -> public: static int const std::numeric_limits<long>::digits10 */
92 const int std_numeric_limits_long_digits10
= 9;
94 /* ?digits10@?$numeric_limits@K@std@@2HB -> public: static int const std::numeric_limits<unsigned long>::digits10 */
95 const int std_numeric_limits_unsigned_long_digits10
= 9;
97 /* ?digits10@?$numeric_limits@M@std@@2HB -> public: static int const std::numeric_limits<float>::digits10 */
98 const int std_numeric_limits_float_digits10
= FLT_DIG
;
100 /* ?digits10@?$numeric_limits@N@std@@2HB -> public: static int const std::numeric_limits<double>::digits10 */
101 const int std_numeric_limits_double_digits10
= DBL_DIG
;
103 /* ?digits10@?$numeric_limits@O@std@@2HB -> public: static int const std::numeric_limits<long double>::digits10 */
104 const int std_numeric_limits_long_double_digits10
= LDBL_DIG
;
106 /* ?digits10@?$numeric_limits@_J@std@@2HB -> public: static int const std::numeric_limits<__int64>::digits10 */
107 const int std_numeric_limits_int64_digits10
= 18;
109 /* ?digits10@?$numeric_limits@_K@std@@2HB -> public: static int const std::numeric_limits<unsigned __int64>::digits10 */
110 const int std_numeric_limits_unsigned_int64_digits10
= 18;
112 /* ?digits10@?$numeric_limits@_N@std@@2HB -> public: static int const std::numeric_limits<bool>::digits10 */
113 const int std_numeric_limits_bool_digits10
= 0;
115 /* ?digits10@?$numeric_limits@_W@std@@2HB -> public: static int const std::numeric_limits<wchar_t>::digits10 */
116 const int std_numeric_limits_wchar_t_digits10
= 4;
118 /* ?digits10@_Num_base@std@@2HB -> public: static int const std::_Num_base::digits10 */
119 const int std_Num_base_digits10
= 0;
121 /* ?digits@?$numeric_limits@C@std@@2HB -> public: static int const std::numeric_limits<signed char>::digits */
122 const int std_numeric_limits_signed_char_digits
= 7;
124 /* ?digits@?$numeric_limits@D@std@@2HB -> public: static int const std::numeric_limits<char>::digits */
125 const int std_numeric_limits_char_digits
= (CHAR_MIN
< 0) ? 7 : 8;
127 /* ?digits@?$numeric_limits@E@std@@2HB -> public: static int const std::numeric_limits<unsigned char>::digits */
128 const int std_numeric_limits_unsigned_char_digits
= 8;
130 /* ?digits@?$numeric_limits@F@std@@2HB -> public: static int const std::numeric_limits<short>::digits */
131 const int std_numeric_limits_short_digits
= 15;
133 /* ?digits@?$numeric_limits@G@std@@2HB -> public: static int const std::numeric_limits<unsigned short>::digits */
134 const int std_numeric_limits_unsigned_short_digits
= 16;
136 /* ?digits@?$numeric_limits@H@std@@2HB -> public: static int const std::numeric_limits<int>::digits */
137 const int std_numeric_limits_int_digits
= 31;
139 /* ?digits@?$numeric_limits@I@std@@2HB -> public: static int const std::numeric_limits<unsigned int>::digits */
140 const int std_numeric_limits_unsigned_int_digits
= 32;
142 /* ?digits@?$numeric_limits@J@std@@2HB -> public: static int const std::numeric_limits<long>::digits */
143 const int std_numeric_limits_long_digits
= 31;
145 /* ?digits@?$numeric_limits@K@std@@2HB -> public: static int const std::numeric_limits<unsigned long>::digits */
146 const int std_numeric_limits_unsigned_long_digits
= 32;
148 /* ?digits@?$numeric_limits@M@std@@2HB -> public: static int const std::numeric_limits<float>::digits */
149 const int std_numeric_limits_float_digits
= FLT_MANT_DIG
;
151 /* ?digits@?$numeric_limits@N@std@@2HB -> public: static int const std::numeric_limits<double>::digits */
152 const int std_numeric_limits_double_digits
= DBL_MANT_DIG
;
154 /* ?digits@?$numeric_limits@O@std@@2HB -> public: static int const std::numeric_limits<long double>::digits */
155 const int std_numeric_limits_long_double_digits
= LDBL_MANT_DIG
;
157 /* ?digits@?$numeric_limits@_J@std@@2HB -> public: static int const std::numeric_limits<__int64>::digits */
158 const int std_numeric_limits_int64_digits
= 63;
160 /* ?digits@?$numeric_limits@_K@std@@2HB -> public: static int const std::numeric_limits<unsigned __int64>::digits */
161 const int std_numeric_limits_unsigned_int64_digits
= 64;
163 /* ?digits@?$numeric_limits@_N@std@@2HB -> public: static int const std::numeric_limits<bool>::digits */
164 const int std_numeric_limits_bool_digits
= 1;
166 /* ?digits@?$numeric_limits@_W@std@@2HB -> public: static int const std::numeric_limits<wchar_t>::digits */
167 const int std_numeric_limits_wchar_t_digits
= 16;
169 /* ?digits@_Num_base@std@@2HB -> public: static int const std::_Num_base::digits */
170 const int std_Num_base_digits
= 0;
172 /* ?has_denorm@_Num_base@std@@2W4float_denorm_style@2@B -> public: static enum std::float_denorm_style const std::_Num_base::has_denorm */
173 const enum std_float_denorm_style std_Num_base_has_denorm
= denorm_absent
;
175 /* ?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 */
176 const enum std_float_denorm_style std_Num_float_base_has_denorm
= denorm_present
;
178 /* ?has_denorm_loss@_Num_base@std@@2_NB -> public: static bool const std::_Num_base::has_denorm_loss */
179 const BOOLEAN std_Num_base_has_denorm_loss
= FALSE
;
181 /* ?has_denorm_loss@_Num_float_base@std@@2_NB -> public: static bool const std::_Num_float_base::has_denorm_loss */
182 const BOOLEAN std_Num_float_base_has_denorm_loss
= TRUE
;
184 /* ?has_infinity@_Num_base@std@@2_NB -> public: static bool const std::_Num_base::has_infinity */
185 const BOOLEAN std_Num_base_has_infinity
= FALSE
;
187 /* ?has_infinity@_Num_float_base@std@@2_NB -> public: static bool const std::_Num_float_base::has_infinity */
188 const BOOLEAN std_Num_float_base_has_infinity
= TRUE
;
190 /* ?has_quiet_NaN@_Num_base@std@@2_NB -> public: static bool const std::_Num_base::has_quiet_NaN */
191 const BOOLEAN std_Num_base_has_quiet_NaN
= FALSE
;
193 /* ?has_quiet_NaN@_Num_float_base@std@@2_NB -> public: static bool const std::_Num_float_base::has_quiet_NaN */
194 const BOOLEAN std_Num_float_base_has_quiet_NaN
= TRUE
;
196 /* ?has_signaling_NaN@_Num_base@std@@2_NB -> public: static bool const std::_Num_base::has_signaling_NaN */
197 const BOOLEAN std_Num_base_has_signaling_NaN
= FALSE
;
199 /* ?has_signaling_NaN@_Num_float_base@std@@2_NB -> public: static bool const std::_Num_float_base::has_signaling_NaN */
200 const BOOLEAN std_Num_float_base_has_signaling_NaN
= TRUE
;
202 /* ?is_bounded@_Num_base@std@@2_NB -> public: static bool const std::_Num_base::is_bounded */
203 const BOOLEAN std_Num_base_is_bounded
= FALSE
;
205 /* ?is_bounded@_Num_float_base@std@@2_NB -> public: static bool const std::_Num_float_base::is_bounded */
206 const BOOLEAN std_Num_float_base_is_bounded
= TRUE
;
208 /* ?is_bounded@_Num_int_base@std@@2_NB -> public: static bool const std::_Num_int_base::is_bounded */
209 const BOOLEAN std_Num_int_base_is_bounded
= TRUE
;
211 /* ?is_exact@_Num_base@std@@2_NB -> public: static bool const std::_Num_base::is_exact */
212 const BOOLEAN std_Num_base_is_exact
= FALSE
;
214 /* ?is_exact@_Num_float_base@std@@2_NB -> public: static bool const std::_Num_float_base::is_exact */
215 const BOOLEAN std_Num_float_base_is_exact
= FALSE
;
217 /* ?is_exact@_Num_int_base@std@@2_NB -> public: static bool const std::_Num_int_base::is_exact */
218 const BOOLEAN std_Num_int_base_is_exact
= TRUE
;
220 /* ?is_iec559@_Num_base@std@@2_NB -> public: static bool const std::_Num_base::is_iec559 */
221 const BOOLEAN std_Num_base_is_iec559
= FALSE
;
223 /* ?is_iec559@_Num_float_base@std@@2_NB -> public: static bool const std::_Num_float_base::is_iec559 */
224 const BOOLEAN std_Num_float_base_is_iec559
= TRUE
;
226 /* ?is_integer@_Num_base@std@@2_NB -> public: static bool const std::_Num_base::is_integer */
227 const BOOLEAN std_Num_base_is_integer
= FALSE
;
229 /* ?is_integer@_Num_float_base@std@@2_NB -> public: static bool const std::_Num_float_base::is_integer */
230 const BOOLEAN std_Num_float_base_is_integer
= FALSE
;
232 /* ?is_integer@_Num_int_base@std@@2_NB -> public: static bool const std::_Num_int_base::is_integer */
233 const BOOLEAN std_Num_int_base_is_integer
= TRUE
;
235 /* ?is_modulo@?$numeric_limits@_N@std@@2_NB -> public: static bool const std::numeric_limits<bool>::is_modulo */
236 const BOOLEAN std_numeric_limits_bool_is_modulo
= FALSE
;
238 /* ?is_modulo@_Num_base@std@@2_NB -> public: static bool const std::_Num_base::is_modulo */
239 const BOOLEAN std_Num_base_is_modulo
= FALSE
;
241 /* ?is_modulo@_Num_float_base@std@@2_NB -> public: static bool const std::_Num_float_base::is_modulo */
242 const BOOLEAN std_Num_float_base_is_modulo
= FALSE
;
244 /* ?is_modulo@_Num_int_base@std@@2_NB -> public: static bool const std::_Num_int_base::is_modulo */
245 const BOOLEAN std_Num_int_base_is_modulo
= TRUE
;
247 /* ?is_signed@?$numeric_limits@C@std@@2_NB -> public: static bool const std::numeric_limits<signed char>::is_signed */
248 const BOOLEAN std_numeric_limits_signed_char_is_signed
= TRUE
;
250 /* ?is_signed@?$numeric_limits@D@std@@2_NB -> public: static bool const std::numeric_limits<char>::is_signed */
251 const BOOLEAN std_numeric_limits_char_is_signed
= (CHAR_MIN
< 0);
253 /* ?is_signed@?$numeric_limits@E@std@@2_NB -> public: static bool const std::numeric_limits<unsigned char>::is_signed */
254 const BOOLEAN std_numeric_limits_unsigned_char_is_signed
= FALSE
;
256 /* ?is_signed@?$numeric_limits@F@std@@2_NB -> public: static bool const std::numeric_limits<short>::is_signed */
257 const BOOLEAN std_numeric_limits_short_is_signed
= TRUE
;
259 /* ?is_signed@?$numeric_limits@G@std@@2_NB -> public: static bool const std::numeric_limits<unsigned short>::is_signed */
260 const BOOLEAN std_numeric_limits_unsigned_short_is_signed
= FALSE
;
262 /* ?is_signed@?$numeric_limits@H@std@@2_NB -> public: static bool const std::numeric_limits<int>::is_signed */
263 const BOOLEAN std_numeric_limits_int_is_signed
= TRUE
;
265 /* ?is_signed@?$numeric_limits@I@std@@2_NB -> public: static bool const std::numeric_limits<unsigned int>::is_signed */
266 const BOOLEAN std_numeric_limits_unsigned_int_is_signed
= FALSE
;
268 /* ?is_signed@?$numeric_limits@J@std@@2_NB -> public: static bool const std::numeric_limits<long>::is_signed */
269 const BOOLEAN std_numeric_limits_long_is_signed
= TRUE
;
271 /* ?is_signed@?$numeric_limits@K@std@@2_NB -> public: static bool const std::numeric_limits<unsigned long>::is_signed */
272 const BOOLEAN std_numeric_limits_unsigned_long_is_signed
= FALSE
;
274 /* ?is_signed@?$numeric_limits@_J@std@@2_NB -> public: static bool const std::numeric_limits<__int64>::is_signed */
275 const BOOLEAN std_numeric_limits_int64_is_signed
= TRUE
;
277 /* ?is_signed@?$numeric_limits@_K@std@@2_NB -> public: static bool const std::numeric_limits<unsigned __int64>::is_signed */
278 const BOOLEAN std_numeric_limits_unsigned_int64_is_signed
= FALSE
;
280 /* ?is_signed@?$numeric_limits@_N@std@@2_NB -> public: static bool const std::numeric_limits<bool>::is_signed */
281 const BOOLEAN std_numeric_limits_bool_is_signed
= FALSE
;
283 /* ?is_signed@?$numeric_limits@_W@std@@2_NB -> public: static bool const std::numeric_limits<wchar_t>::is_signed */
284 const BOOLEAN std_numeric_limits_wchar_t_is_signed
= FALSE
;
286 /* ?is_signed@_Num_base@std@@2_NB -> public: static bool const std::_Num_base::is_signed */
287 const BOOLEAN std_Num_base_is_signed
= FALSE
;
289 /* ?is_signed@_Num_float_base@std@@2_NB -> public: static bool const std::_Num_float_base::is_signed */
290 const BOOLEAN std_Num_float_base_is_signed
= TRUE
;
292 /* ?is_specialized@_Num_base@std@@2_NB -> public: static bool const std::_Num_base::is_specialized */
293 const BOOLEAN std_Num_base_is_specialized
= FALSE
;
295 /* ?is_specialized@_Num_float_base@std@@2_NB -> public: static bool const std::_Num_float_base::is_specialized */
296 const BOOLEAN std_Num_float_base_is_specialized
= TRUE
;
298 /* ?is_specialized@_Num_int_base@std@@2_NB -> public: static bool const std::_Num_int_base::is_specialized */
299 const BOOLEAN std_Num_int_base_is_specialized
= TRUE
;
301 /* ?max_exponent10@?$numeric_limits@M@std@@2HB -> public: static int const std::numeric_limits<float>::max_exponent10 */
302 const int std_numeric_limits_float_max_exponent10
= FLT_MAX_10_EXP
;
304 /* ?max_exponent10@?$numeric_limits@N@std@@2HB -> public: static int const std::numeric_limits<double>::max_exponent10 */
305 const int std_numeric_limits_double_max_exponent10
= DBL_MAX_10_EXP
;
307 /* ?max_exponent10@?$numeric_limits@O@std@@2HB -> public: static int const std::numeric_limits<long double>::max_exponent10 */
308 const int std_numeric_limits_long_double_max_exponent10
= LDBL_MAX_10_EXP
;
310 /* ?max_exponent10@_Num_base@std@@2HB -> public: static int const std::_Num_base::max_exponent10 */
311 const int std_Num_base_max_exponent10
= 0;
313 /* ?max_exponent@?$numeric_limits@M@std@@2HB -> public: static int const std::numeric_limits<float>::max_exponent */
314 const int std_numeric_limits_float_max_exponent
= FLT_MAX_EXP
;
316 /* ?max_exponent@?$numeric_limits@N@std@@2HB -> public: static int const std::numeric_limits<double>::max_exponent */
317 const int std_numeric_limits_double_max_exponent
= DBL_MAX_EXP
;
319 /* ?max_exponent@?$numeric_limits@O@std@@2HB -> public: static int const std::numeric_limits<long double>::max_exponent */
320 const int std_numeric_limits_long_double_max_exponent
= LDBL_MAX_EXP
;
322 /* ?max_exponent@_Num_base@std@@2HB -> public: static int const std::_Num_base::max_exponent */
323 const int std_Num_base_max_exponent
= 0;
325 /* ?min_exponent10@?$numeric_limits@M@std@@2HB -> public: static int const std::numeric_limits<float>::min_exponent10 */
326 const int std_numeric_limits_float_min_exponent10
= FLT_MIN_10_EXP
;
328 /* ?min_exponent10@?$numeric_limits@N@std@@2HB -> public: static int const std::numeric_limits<double>::min_exponent10 */
329 const int std_numeric_limits_double_min_exponent10
= DBL_MIN_10_EXP
;
331 /* ?min_exponent10@?$numeric_limits@O@std@@2HB -> public: static int const std::numeric_limits<long double>::min_exponent10 */
332 const int std_numeric_limits_long_double_min_exponent10
= LDBL_MIN_10_EXP
;
334 /* ?min_exponent10@_Num_base@std@@2HB -> public: static int const std::_Num_base::min_exponent10 */
335 const int std_Num_base_min_exponent10
= 0;
337 /* ?min_exponent@?$numeric_limits@M@std@@2HB -> public: static int const std::numeric_limits<float>::min_exponent */
338 const int std_numeric_limits_float_min_exponent
= FLT_MIN_EXP
;
340 /* ?min_exponent@?$numeric_limits@N@std@@2HB -> public: static int const std::numeric_limits<double>::min_exponent */
341 const int std_numeric_limits_double_min_exponent
= DBL_MIN_EXP
;
343 /* ?min_exponent@?$numeric_limits@O@std@@2HB -> public: static int const std::numeric_limits<long double>::min_exponent */
344 const int std_numeric_limits_long_double_min_exponent
= LDBL_MIN_EXP
;
346 /* ?min_exponent@_Num_base@std@@2HB -> public: static int const std::_Num_base::min_exponent */
347 const int std_Num_base_min_exponent
= 0;
349 /* ?radix@_Num_base@std@@2HB -> public: static int const std::_Num_base::radix */
350 const int std_Num_base_radix
= 0;
352 /* ?radix@_Num_float_base@std@@2HB -> public: static int const std::_Num_float_base::radix */
353 const int std_Num_float_base_radix
= FLT_RADIX
;
355 /* ?radix@_Num_int_base@std@@2HB -> public: static int const std::_Num_int_base::radix */
356 const int std_Num_int_base_radix
= 2;
358 /* ?round_style@_Num_base@std@@2W4float_round_style@2@B -> public: static enum std::float_round_style const std::_Num_base::round_style */
359 const enum std_float_round_style std_Num_base_round_style
= round_toward_zero
;
361 /* ?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 */
362 const enum std_float_round_style std_Num_float_base_round_style
= round_to_nearest
;
364 /* ?tinyness_before@_Num_base@std@@2_NB -> public: static bool const std::_Num_base::tinyness_before */
365 const BOOLEAN std_Num_base_tinyness_before
= FALSE
;
367 /* ?tinyness_before@_Num_float_base@std@@2_NB -> public: static bool const std::_Num_float_base::tinyness_before */
368 const BOOLEAN std_Num_float_base_tinyness_before
= TRUE
;
370 /* ?traps@_Num_base@std@@2_NB -> public: static bool const std::_Num_base::traps */
371 const BOOLEAN std_Num_base_traps
= FALSE
;
373 /* ?traps@_Num_float_base@std@@2_NB -> public: static bool const std::_Num_float_base::traps */
374 const BOOLEAN std_Num_float_base_traps
= TRUE
;
376 /* ??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 &) */
377 /* ??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 */
378 /* ??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 &) */
379 /* ??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 */
380 /* ??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 &) */
381 /* ??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 */
382 /* ??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 &) */
383 /* ??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 */
384 /* ??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 &) */
385 /* ??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 */
386 /* ??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 &) */
387 /* ??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 */
388 /* ??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 &) */
389 /* ??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 */
390 /* ??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 &) */
391 /* ??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 */
392 /* ??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 &) */
393 /* ??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 */
394 /* ??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 &) */
395 /* ??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 */
396 /* ??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 &) */
397 /* ??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 */
398 /* ??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 &) */
399 /* ??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 */
400 /* ??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 &) */
401 /* ??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 */
402 /* ??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 &) */
403 /* ??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 */
404 /* ??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 &) */
405 /* ??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 */
406 /* ??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 &) */
407 /* ??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 */
408 /* ??4_Num_base@std@@QAEAAU01@ABU01@@Z -> public: struct std::_Num_base & __thiscall std::_Num_base::operator=(struct std::_Num_base const &) */
409 /* ??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 */
410 /* ??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 &) */
411 /* ??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 */
412 /* ??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 &) */
413 /* ??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 */
414 DEFINE_THISCALL_WRAPPER( std_Num_base_op_assign
, 8 )
415 std_Num_base
* __thiscall
std_Num_base_op_assign( std_Num_base
*this, std_Num_base
*right
)
420 /* ?denorm_min@?$numeric_limits@C@std@@SACXZ -> public: static signed char __cdecl std::numeric_limits<signed char>::denorm_min(void) */
421 signed char __cdecl
std_numeric_limits_signed_char_denorm_min(void) { return 0; }
423 /* ?denorm_min@?$numeric_limits@D@std@@SADXZ -> public: static char __cdecl std::numeric_limits<char>::denorm_min(void) */
424 char __cdecl
std_numeric_limits_char_denorm_min(void) { return 0; }
426 /* ?denorm_min@?$numeric_limits@E@std@@SAEXZ -> public: static unsigned char __cdecl std::numeric_limits<unsigned char>::denorm_min(void) */
427 unsigned char __cdecl
std_numeric_limits_unsigned_char_denorm_min(void) { return 0; }
429 /* ?denorm_min@?$numeric_limits@F@std@@SAFXZ -> public: static short __cdecl std::numeric_limits<short>::denorm_min(void) */
430 short __cdecl
std_numeric_limits_short_denorm_min(void) { return 0; }
432 /* ?denorm_min@?$numeric_limits@G@std@@SAGXZ -> public: static unsigned short __cdecl std::numeric_limits<unsigned short>::denorm_min(void) */
433 unsigned short __cdecl
std_numeric_limits_unsigned_short_denorm_min(void) { return 0; }
435 /* ?denorm_min@?$numeric_limits@H@std@@SAHXZ -> public: static int __cdecl std::numeric_limits<int>::denorm_min(void) */
436 int __cdecl
std_numeric_limits_int_denorm_min(void) { return 0; }
438 /* ?denorm_min@?$numeric_limits@I@std@@SAIXZ -> public: static unsigned int __cdecl std::numeric_limits<unsigned int>::denorm_min(void) */
439 unsigned int __cdecl
std_numeric_limits_unsigned_int_denorm_min(void) { return 0; }
441 /* ?denorm_min@?$numeric_limits@J@std@@SAJXZ -> public: static long __cdecl std::numeric_limits<long>::denorm_min(void) */
442 LONG __cdecl
std_numeric_limits_long_denorm_min(void) { return 0; }
444 /* ?denorm_min@?$numeric_limits@K@std@@SAKXZ -> public: static unsigned long __cdecl std::numeric_limits<unsigned long>::denorm_min(void) */
445 ULONG __cdecl
std_numeric_limits_unsigned_long_denorm_min(void) { return 0; }
447 /* ?denorm_min@?$numeric_limits@M@std@@SAMXZ -> public: static float __cdecl std::numeric_limits<float>::denorm_min(void) */
448 float __cdecl
std_numeric_limits_float_denorm_min(void) { return *(float *)&_FDenorm
; }
450 /* ?denorm_min@?$numeric_limits@N@std@@SANXZ -> public: static double __cdecl std::numeric_limits<double>::denorm_min(void) */
451 double __cdecl
std_numeric_limits_double_denorm_min(void) { return *(double *)&_Denorm
; }
453 /* ?denorm_min@?$numeric_limits@O@std@@SAOXZ -> public: static long double __cdecl std::numeric_limits<long double>::denorm_min(void) */
454 LDOUBLE __cdecl
std_numeric_limits_long_double_denorm_min(void) { return *(LDOUBLE
*)&_LDenorm
; }
456 /* ?denorm_min@?$numeric_limits@_J@std@@SA_JXZ -> public: static __int64 __cdecl std::numeric_limits<__int64>::denorm_min(void) */
457 __int64 __cdecl
std_numeric_limits_int64_denorm_min(void) { return 0; }
459 /* ?denorm_min@?$numeric_limits@_K@std@@SA_KXZ -> public: static unsigned __int64 __cdecl std::numeric_limits<unsigned __int64>::denorm_min(void) */
460 unsigned __int64 __cdecl
std_numeric_limits_unsigned_int64_denorm_min(void) { return 0; }
462 /* ?denorm_min@?$numeric_limits@_N@std@@SA_NXZ -> public: static bool __cdecl std::numeric_limits<bool>::denorm_min(void) */
463 BOOLEAN __cdecl
std_numeric_limits_bool_denorm_min(void) { return FALSE
; }
465 /* ?denorm_min@?$numeric_limits@_W@std@@SA_WXZ -> public: static wchar_t __cdecl std::numeric_limits<wchar_t>::denorm_min(void) */
466 WCHAR __cdecl
std_numeric_limits_wchar_t_denorm_min(void) { return 0; }
468 /* ?epsilon@?$numeric_limits@C@std@@SACXZ -> public: static signed char __cdecl std::numeric_limits<signed char>::epsilon(void) */
469 signed char __cdecl
std_numeric_limits_signed_char_epsilon(void) { return 0; }
471 /* ?epsilon@?$numeric_limits@D@std@@SADXZ -> public: static char __cdecl std::numeric_limits<char>::epsilon(void) */
472 char __cdecl
std_numeric_limits_char_epsilon(void) { return 0; }
474 /* ?epsilon@?$numeric_limits@E@std@@SAEXZ -> public: static unsigned char __cdecl std::numeric_limits<unsigned char>::epsilon(void) */
475 unsigned char __cdecl
std_numeric_limits_unsigned_char_epsilon(void) { return 0; }
477 /* ?epsilon@?$numeric_limits@F@std@@SAFXZ -> public: static short __cdecl std::numeric_limits<short>::epsilon(void) */
478 short __cdecl
std_numeric_limits_short_epsilon(void) { return 0; }
480 /* ?epsilon@?$numeric_limits@G@std@@SAGXZ -> public: static unsigned short __cdecl std::numeric_limits<unsigned short>::epsilon(void) */
481 unsigned short __cdecl
std_numeric_limits_unsigned_short_epsilon(void) { return 0; }
483 /* ?epsilon@?$numeric_limits@H@std@@SAHXZ -> public: static int __cdecl std::numeric_limits<int>::epsilon(void) */
484 int __cdecl
std_numeric_limits_int_epsilon(void) { return 0; }
486 /* ?epsilon@?$numeric_limits@I@std@@SAIXZ -> public: static unsigned int __cdecl std::numeric_limits<unsigned int>::epsilon(void) */
487 unsigned int __cdecl
std_numeric_limits_unsigned_int_epsilon(void) { return 0; }
489 /* ?epsilon@?$numeric_limits@J@std@@SAJXZ -> public: static long __cdecl std::numeric_limits<long>::epsilon(void) */
490 LONG __cdecl
std_numeric_limits_long_epsilon(void) { return 0; }
492 /* ?epsilon@?$numeric_limits@K@std@@SAKXZ -> public: static unsigned long __cdecl std::numeric_limits<unsigned long>::epsilon(void) */
493 ULONG __cdecl
std_numeric_limits_unsigned_long_epsilon(void) { return 0; }
495 /* ?epsilon@?$numeric_limits@M@std@@SAMXZ -> public: static float __cdecl std::numeric_limits<float>::epsilon(void) */
496 float __cdecl
std_numeric_limits_float_epsilon(void) { return _FEps
; }
498 /* ?epsilon@?$numeric_limits@N@std@@SANXZ -> public: static double __cdecl std::numeric_limits<double>::epsilon(void) */
499 double __cdecl
std_numeric_limits_double_epsilon(void) { return _Eps
; }
501 /* ?epsilon@?$numeric_limits@O@std@@SAOXZ -> public: static long double __cdecl std::numeric_limits<long double>::epsilon(void) */
502 LDOUBLE __cdecl
std_numeric_limits_long_double_epsilon(void) { return _LEps
; }
504 /* ?epsilon@?$numeric_limits@_J@std@@SA_JXZ -> public: static __int64 __cdecl std::numeric_limits<__int64>::epsilon(void) */
505 __int64 __cdecl
std_numeric_limits_int64_epsilon(void) { return 0; }
507 /* ?epsilon@?$numeric_limits@_K@std@@SA_KXZ -> public: static unsigned __int64 __cdecl std::numeric_limits<unsigned __int64>::epsilon(void) */
508 unsigned __int64 __cdecl
std_numeric_limits_unsigned_int64_epsilon(void) { return 0; }
510 /* ?epsilon@?$numeric_limits@_N@std@@SA_NXZ -> public: static bool __cdecl std::numeric_limits<bool>::epsilon(void) */
511 BOOLEAN __cdecl
std_numeric_limits_bool_epsilon(void) { return FALSE
; }
513 /* ?epsilon@?$numeric_limits@_W@std@@SA_WXZ -> public: static wchar_t __cdecl std::numeric_limits<wchar_t>::epsilon(void) */
514 WCHAR __cdecl
std_numeric_limits_wchar_t_epsilon(void) { return 0; }
516 /* ?infinity@?$numeric_limits@C@std@@SACXZ -> public: static signed char __cdecl std::numeric_limits<signed char>::infinity(void) */
517 signed char __cdecl
std_numeric_limits_signed_char_infinity(void) { return 0; }
519 /* ?infinity@?$numeric_limits@D@std@@SADXZ -> public: static char __cdecl std::numeric_limits<char>::infinity(void) */
520 char __cdecl
std_numeric_limits_char_infinity(void) { return 0; }
522 /* ?infinity@?$numeric_limits@E@std@@SAEXZ -> public: static unsigned char __cdecl std::numeric_limits<unsigned char>::infinity(void) */
523 unsigned char __cdecl
std_numeric_limits_unsigned_char_infinity(void) { return 0; }
525 /* ?infinity@?$numeric_limits@F@std@@SAFXZ -> public: static short __cdecl std::numeric_limits<short>::infinity(void) */
526 short __cdecl
std_numeric_limits_short_infinity(void) { return 0; }
528 /* ?infinity@?$numeric_limits@G@std@@SAGXZ -> public: static unsigned short __cdecl std::numeric_limits<unsigned short>::infinity(void) */
529 unsigned short __cdecl
std_numeric_limits_unsigned_short_infinity(void) { return 0; }
531 /* ?infinity@?$numeric_limits@H@std@@SAHXZ -> public: static int __cdecl std::numeric_limits<int>::infinity(void) */
532 int __cdecl
std_numeric_limits_int_infinity(void) { return 0; }
534 /* ?infinity@?$numeric_limits@I@std@@SAIXZ -> public: static unsigned int __cdecl std::numeric_limits<unsigned int>::infinity(void) */
535 unsigned int __cdecl
std_numeric_limits_unsigned_int_infinity(void) { return 0; }
537 /* ?infinity@?$numeric_limits@J@std@@SAJXZ -> public: static long __cdecl std::numeric_limits<long>::infinity(void) */
538 LONG __cdecl
std_numeric_limits_long_infinity(void) { return 0; }
540 /* ?infinity@?$numeric_limits@K@std@@SAKXZ -> public: static unsigned long __cdecl std::numeric_limits<unsigned long>::infinity(void) */
541 ULONG __cdecl
std_numeric_limits_unsigned_long_infinity(void) { return 0; }
543 /* ?infinity@?$numeric_limits@M@std@@SAMXZ -> public: static float __cdecl std::numeric_limits<float>::infinity(void) */
544 float __cdecl
std_numeric_limits_float_infinity(void) { return *(float *)&_FInf
; }
546 /* ?infinity@?$numeric_limits@N@std@@SANXZ -> public: static double __cdecl std::numeric_limits<double>::infinity(void) */
547 double __cdecl
std_numeric_limits_double_infinity(void) { return *(double *)&_Inf
; }
549 /* ?infinity@?$numeric_limits@O@std@@SAOXZ -> public: static long double __cdecl std::numeric_limits<long double>::infinity(void) */
550 LDOUBLE __cdecl
std_numeric_limits_long_double_infinity(void) { return *(LDOUBLE
*)&_LInf
; }
552 /* ?infinity@?$numeric_limits@_J@std@@SA_JXZ -> public: static __int64 __cdecl std::numeric_limits<__int64>::infinity(void) */
553 __int64 __cdecl
std_numeric_limits_int64_infinity(void) { return 0; }
555 /* ?infinity@?$numeric_limits@_K@std@@SA_KXZ -> public: static unsigned __int64 __cdecl std::numeric_limits<unsigned __int64>::infinity(void) */
556 unsigned __int64 __cdecl
std_numeric_limits_unsigned_int64_infinity(void) { return 0; }
558 /* ?infinity@?$numeric_limits@_N@std@@SA_NXZ -> public: static bool __cdecl std::numeric_limits<bool>::infinity(void) */
559 BOOLEAN __cdecl
std_numeric_limits_bool_infinity(void) { return FALSE
; }
561 /* ?infinity@?$numeric_limits@_W@std@@SA_WXZ -> public: static wchar_t __cdecl std::numeric_limits<wchar_t>::infinity(void) */
562 WCHAR __cdecl
std_numeric_limits_wchar_t_infinity(void) { return 0; }
564 /* ?max@?$numeric_limits@C@std@@SACXZ -> public: static signed char __cdecl std::numeric_limits<signed char>::max(void) */
565 signed char __cdecl
std_numeric_limits_signed_char_max(void) { return SCHAR_MAX
; }
567 /* ?max@?$numeric_limits@D@std@@SADXZ -> public: static char __cdecl std::numeric_limits<char>::max(void) */
568 char __cdecl
std_numeric_limits_char_max(void) { return CHAR_MAX
; }
570 /* ?max@?$numeric_limits@E@std@@SAEXZ -> public: static unsigned char __cdecl std::numeric_limits<unsigned char>::max(void) */
571 unsigned char __cdecl
std_numeric_limits_unsigned_char_max(void) { return UCHAR_MAX
; }
573 /* ?max@?$numeric_limits@F@std@@SAFXZ -> public: static short __cdecl std::numeric_limits<short>::max(void) */
574 short __cdecl
std_numeric_limits_short_max(void) { return SHRT_MAX
; }
576 /* ?max@?$numeric_limits@G@std@@SAGXZ -> public: static unsigned short __cdecl std::numeric_limits<unsigned short>::max(void) */
577 unsigned short __cdecl
std_numeric_limits_unsigned_short_max(void) { return USHRT_MAX
; }
579 /* ?max@?$numeric_limits@H@std@@SAHXZ -> public: static int __cdecl std::numeric_limits<int>::max(void) */
580 int __cdecl
std_numeric_limits_int_max(void) { return INT_MAX
; }
582 /* ?max@?$numeric_limits@I@std@@SAIXZ -> public: static unsigned int __cdecl std::numeric_limits<unsigned int>::max(void) */
583 unsigned int __cdecl
std_numeric_limits_unsigned_int_max(void) { return UINT_MAX
; }
585 /* ?max@?$numeric_limits@J@std@@SAJXZ -> public: static long __cdecl std::numeric_limits<long>::max(void) */
586 LONG __cdecl
std_numeric_limits_long_max(void) { return LONG_MAX
; }
588 /* ?max@?$numeric_limits@K@std@@SAKXZ -> public: static unsigned long __cdecl std::numeric_limits<unsigned long>::max(void) */
589 ULONG __cdecl
std_numeric_limits_unsigned_long_max(void) { return ULONG_MAX
; }
591 /* ?max@?$numeric_limits@M@std@@SAMXZ -> public: static float __cdecl std::numeric_limits<float>::max(void) */
592 float __cdecl
std_numeric_limits_float_max(void) { return FLT_MAX
; }
594 /* ?max@?$numeric_limits@N@std@@SANXZ -> public: static double __cdecl std::numeric_limits<double>::max(void) */
595 double __cdecl
std_numeric_limits_double_max(void) { return DBL_MAX
; }
597 /* ?max@?$numeric_limits@O@std@@SAOXZ -> public: static long double __cdecl std::numeric_limits<long double>::max(void) */
598 LDOUBLE __cdecl
std_numeric_limits_long_double_max(void) { return LDBL_MAX
; }
600 /* ?max@?$numeric_limits@_J@std@@SA_JXZ -> public: static __int64 __cdecl std::numeric_limits<__int64>::max(void) */
601 __int64 __cdecl
std_numeric_limits_int64_max(void) { return I64_MAX
; }
603 /* ?max@?$numeric_limits@_K@std@@SA_KXZ -> public: static unsigned __int64 __cdecl std::numeric_limits<unsigned __int64>::max(void) */
604 unsigned __int64 __cdecl
std_numeric_limits_unsigned_int64_max(void) { return UI64_MAX
; }
606 /* ?max@?$numeric_limits@_N@std@@SA_NXZ -> public: static bool __cdecl std::numeric_limits<bool>::max(void) */
607 BOOLEAN __cdecl
std_numeric_limits_bool_max(void) { return TRUE
; }
609 /* ?max@?$numeric_limits@_W@std@@SA_WXZ -> public: static wchar_t __cdecl std::numeric_limits<wchar_t>::max(void) */
610 WCHAR __cdecl
std_numeric_limits_wchar_t_max(void) { return USHRT_MAX
; }
612 /* ?min@?$numeric_limits@C@std@@SACXZ -> public: static signed char __cdecl std::numeric_limits<signed char>::min(void) */
613 signed char __cdecl
std_numeric_limits_signed_char_min(void) { return SCHAR_MIN
; }
615 /* ?min@?$numeric_limits@D@std@@SADXZ -> public: static char __cdecl std::numeric_limits<char>::min(void) */
616 char __cdecl
std_numeric_limits_char_min(void) { return CHAR_MIN
; }
618 /* ?min@?$numeric_limits@E@std@@SAEXZ -> public: static unsigned char __cdecl std::numeric_limits<unsigned char>::min(void) */
619 unsigned char __cdecl
std_numeric_limits_unsigned_char_min(void) { return 0; }
621 /* ?min@?$numeric_limits@F@std@@SAFXZ -> public: static short __cdecl std::numeric_limits<short>::min(void) */
622 short __cdecl
std_numeric_limits_short_min(void) { return SHRT_MIN
; }
624 /* ?min@?$numeric_limits@G@std@@SAGXZ -> public: static unsigned short __cdecl std::numeric_limits<unsigned short>::min(void) */
625 unsigned short __cdecl
std_numeric_limits_unsigned_short_min(void) { return 0; }
627 /* ?min@?$numeric_limits@H@std@@SAHXZ -> public: static int __cdecl std::numeric_limits<int>::min(void) */
628 int __cdecl
std_numeric_limits_int_min(void) { return INT_MIN
; }
630 /* ?min@?$numeric_limits@I@std@@SAIXZ -> public: static unsigned int __cdecl std::numeric_limits<unsigned int>::min(void) */
631 unsigned int __cdecl
std_numeric_limits_unsigned_int_min(void) { return 0; }
633 /* ?min@?$numeric_limits@J@std@@SAJXZ -> public: static long __cdecl std::numeric_limits<long>::min(void) */
634 LONG __cdecl
std_numeric_limits_long_min(void) { return LONG_MIN
; }
636 /* ?min@?$numeric_limits@K@std@@SAKXZ -> public: static unsigned long __cdecl std::numeric_limits<unsigned long>::min(void) */
637 ULONG __cdecl
std_numeric_limits_unsigned_long_min(void) { return 0; }
639 /* ?min@?$numeric_limits@M@std@@SAMXZ -> public: static float __cdecl std::numeric_limits<float>::min(void) */
640 float __cdecl
std_numeric_limits_float_min(void) { return FLT_MIN
; }
642 /* ?min@?$numeric_limits@N@std@@SANXZ -> public: static double __cdecl std::numeric_limits<double>::min(void) */
643 double __cdecl
std_numeric_limits_double_min(void) { return DBL_MIN
; }
645 /* ?min@?$numeric_limits@O@std@@SAOXZ -> public: static long double __cdecl std::numeric_limits<long double>::min(void) */
646 LDOUBLE __cdecl
std_numeric_limits_long_double_min(void) { return LDBL_MIN
; }
648 /* ?min@?$numeric_limits@_J@std@@SA_JXZ -> public: static __int64 __cdecl std::numeric_limits<__int64>::min(void) */
649 __int64 __cdecl
std_numeric_limits_int64_min(void) { return I64_MIN
; }
651 /* ?min@?$numeric_limits@_K@std@@SA_KXZ -> public: static unsigned __int64 __cdecl std::numeric_limits<unsigned __int64>::min(void) */
652 unsigned __int64 __cdecl
std_numeric_limits_unsigned_int64_min(void) { return 0; }
654 /* ?min@?$numeric_limits@_N@std@@SA_NXZ -> public: static bool __cdecl std::numeric_limits<bool>::min(void) */
655 BOOLEAN __cdecl
std_numeric_limits_bool_min(void) { return FALSE
; }
657 /* ?min@?$numeric_limits@_W@std@@SA_WXZ -> public: static wchar_t __cdecl std::numeric_limits<wchar_t>::min(void) */
658 WCHAR __cdecl
std_numeric_limits_wchar_t_min(void) { return 0; }
660 /* ?lowest@?$numeric_limits@C@std@@SACXZ */
661 signed char __cdecl
std_numeric_limits_signed_char_lowest(void) { return SCHAR_MIN
; }
663 /* ?lowest@?$numeric_limits@D@std@@SADXZ */
664 char __cdecl
std_numeric_limits_char_lowest(void) { return CHAR_MIN
; }
666 /* ?lowest@?$numeric_limits@E@std@@SAEXZ */
667 unsigned char __cdecl
std_numeric_limits_unsigned_char_lowest(void) { return 0; }
669 /* ?lowest@?$numeric_limits@F@std@@SAFXZ */
670 short __cdecl
std_numeric_limits_short_lowest(void) { return SHRT_MIN
; }
672 /* ?lowest@?$numeric_limits@G@std@@SAGXZ */
673 unsigned short __cdecl
std_numeric_limits_unsigned_short_lowest(void) { return 0; }
675 /* ?lowest@?$numeric_limits@H@std@@SAHXZ */
676 int __cdecl
std_numeric_limits_int_lowest(void) { return INT_MIN
; }
678 /* ?lowest@?$numeric_limits@I@std@@SAIXZ */
679 unsigned int __cdecl
std_numeric_limits_unsigned_int_lowest(void) { return 0; }
681 /* ?lowest@?$numeric_limits@J@std@@SAJXZ */
682 LONG __cdecl
std_numeric_limits_long_lowest(void) { return LONG_MIN
; }
684 /* ?lowest@?$numeric_limits@K@std@@SAKXZ */
685 ULONG __cdecl
std_numeric_limits_unsigned_long_lowest(void) { return 0; }
687 /* ?lowest@?$numeric_limits@M@std@@SAMXZ */
688 float __cdecl
std_numeric_limits_float_lowest(void) { return -FLT_MAX
; }
690 /* ?lowest@?$numeric_limits@N@std@@SANXZ */
691 double __cdecl
std_numeric_limits_double_lowest(void) { return -DBL_MAX
; }
693 /* ?lowest@?$numeric_limits@O@std@@SAOXZ */
694 LDOUBLE __cdecl
std_numeric_limits_long_double_lowest(void) { return -LDBL_MAX
; }
696 /* ?lowest@?$numeric_limits@_J@std@@SA_JXZ */
697 __int64 __cdecl
std_numeric_limits_int64_lowest(void) { return I64_MIN
; }
699 /* ?lowest@?$numeric_limits@_K@std@@SA_KXZ */
700 unsigned __int64 __cdecl
std_numeric_limits_unsigned_int64_lowest(void) { return 0; }
702 /* ?lowest@?$numeric_limits@_N@std@@SA_NXZ */
703 BOOLEAN __cdecl
std_numeric_limits_bool_lowest(void) { return FALSE
; }
705 /* ?lowest@?$numeric_limits@_W@std@@SA_WXZ */
706 WCHAR __cdecl
std_numeric_limits_wchar_t_lowest(void) { return 0; }
708 /* ?quiet_NaN@?$numeric_limits@C@std@@SACXZ -> public: static signed char __cdecl std::numeric_limits<signed char>::quiet_NaN(void) */
709 signed char __cdecl
std_numeric_limits_signed_char_quiet_NaN(void) { return 0; }
711 /* ?quiet_NaN@?$numeric_limits@D@std@@SADXZ -> public: static char __cdecl std::numeric_limits<char>::quiet_NaN(void) */
712 char __cdecl
std_numeric_limits_char_quiet_NaN(void) { return 0; }
714 /* ?quiet_NaN@?$numeric_limits@E@std@@SAEXZ -> public: static unsigned char __cdecl std::numeric_limits<unsigned char>::quiet_NaN(void) */
715 unsigned char __cdecl
std_numeric_limits_unsigned_char_quiet_NaN(void) { return 0; }
717 /* ?quiet_NaN@?$numeric_limits@F@std@@SAFXZ -> public: static short __cdecl std::numeric_limits<short>::quiet_NaN(void) */
718 short __cdecl
std_numeric_limits_short_quiet_NaN(void) { return 0; }
720 /* ?quiet_NaN@?$numeric_limits@G@std@@SAGXZ -> public: static unsigned short __cdecl std::numeric_limits<unsigned short>::quiet_NaN(void) */
721 unsigned short __cdecl
std_numeric_limits_unsigned_short_quiet_NaN(void) { return 0; }
723 /* ?quiet_NaN@?$numeric_limits@H@std@@SAHXZ -> public: static int __cdecl std::numeric_limits<int>::quiet_NaN(void) */
724 int __cdecl
std_numeric_limits_int_quiet_NaN(void) { return 0; }
726 /* ?quiet_NaN@?$numeric_limits@I@std@@SAIXZ -> public: static unsigned int __cdecl std::numeric_limits<unsigned int>::quiet_NaN(void) */
727 unsigned int __cdecl
std_numeric_limits_unsigned_int_quiet_NaN(void) { return 0; }
729 /* ?quiet_NaN@?$numeric_limits@J@std@@SAJXZ -> public: static long __cdecl std::numeric_limits<long>::quiet_NaN(void) */
730 LONG __cdecl
std_numeric_limits_long_quiet_NaN(void) { return 0; }
732 /* ?quiet_NaN@?$numeric_limits@K@std@@SAKXZ -> public: static unsigned long __cdecl std::numeric_limits<unsigned long>::quiet_NaN(void) */
733 ULONG __cdecl
std_numeric_limits_unsigned_long_quiet_NaN(void) { return 0; }
735 /* ?quiet_NaN@?$numeric_limits@M@std@@SAMXZ -> public: static float __cdecl std::numeric_limits<float>::quiet_NaN(void) */
736 float __cdecl
std_numeric_limits_float_quiet_NaN(void) { return *(float *)&_FNan
; }
738 /* ?quiet_NaN@?$numeric_limits@N@std@@SANXZ -> public: static double __cdecl std::numeric_limits<double>::quiet_NaN(void) */
739 double __cdecl
std_numeric_limits_double_quiet_NaN(void) { return *(double *)&_Nan
; }
741 /* ?quiet_NaN@?$numeric_limits@O@std@@SAOXZ -> public: static long double __cdecl std::numeric_limits<long double>::quiet_NaN(void) */
742 LDOUBLE __cdecl
std_numeric_limits_long_double_quiet_NaN(void) { return *(LDOUBLE
*)&_LNan
; }
744 /* ?quiet_NaN@?$numeric_limits@_J@std@@SA_JXZ -> public: static __int64 __cdecl std::numeric_limits<__int64>::quiet_NaN(void) */
745 __int64 __cdecl
std_numeric_limits_int64_quiet_NaN(void) { return 0; }
747 /* ?quiet_NaN@?$numeric_limits@_K@std@@SA_KXZ -> public: static unsigned __int64 __cdecl std::numeric_limits<unsigned __int64>::quiet_NaN(void) */
748 unsigned __int64 __cdecl
std_numeric_limits_unsigned_int64_quiet_NaN(void) { return 0; }
750 /* ?quiet_NaN@?$numeric_limits@_N@std@@SA_NXZ -> public: static bool __cdecl std::numeric_limits<bool>::quiet_NaN(void) */
751 BOOLEAN __cdecl
std_numeric_limits_bool_quiet_NaN(void) { return FALSE
; }
753 /* ?quiet_NaN@?$numeric_limits@_W@std@@SA_WXZ -> public: static wchar_t __cdecl std::numeric_limits<wchar_t>::quiet_NaN(void) */
754 WCHAR __cdecl
std_numeric_limits_wchar_t_quiet_NaN(void) { return 0; }
756 /* ?round_error@?$numeric_limits@C@std@@SACXZ -> public: static signed char __cdecl std::numeric_limits<signed char>::round_error(void) */
757 signed char __cdecl
std_numeric_limits_signed_char_round_error(void) { return 0; }
759 /* ?round_error@?$numeric_limits@D@std@@SADXZ -> public: static char __cdecl std::numeric_limits<char>::round_error(void) */
760 char __cdecl
std_numeric_limits_char_round_error(void) { return 0; }
762 /* ?round_error@?$numeric_limits@E@std@@SAEXZ -> public: static unsigned char __cdecl std::numeric_limits<unsigned char>::round_error(void) */
763 unsigned char __cdecl
std_numeric_limits_unsigned_char_round_error(void) { return 0; }
765 /* ?round_error@?$numeric_limits@F@std@@SAFXZ -> public: static short __cdecl std::numeric_limits<short>::round_error(void) */
766 short __cdecl
std_numeric_limits_short_round_error(void) { return 0; }
768 /* ?round_error@?$numeric_limits@G@std@@SAGXZ -> public: static unsigned short __cdecl std::numeric_limits<unsigned short>::round_error(void) */
769 unsigned short __cdecl
std_numeric_limits_unsigned_short_round_error(void) { return 0; }
771 /* ?round_error@?$numeric_limits@H@std@@SAHXZ -> public: static int __cdecl std::numeric_limits<int>::round_error(void) */
772 int __cdecl
std_numeric_limits_int_round_error(void) { return 0; }
774 /* ?round_error@?$numeric_limits@I@std@@SAIXZ -> public: static unsigned int __cdecl std::numeric_limits<unsigned int>::round_error(void) */
775 unsigned int __cdecl
std_numeric_limits_unsigned_int_round_error(void) { return 0; }
777 /* ?round_error@?$numeric_limits@J@std@@SAJXZ -> public: static long __cdecl std::numeric_limits<long>::round_error(void) */
778 LONG __cdecl
std_numeric_limits_long_round_error(void) { return 0; }
780 /* ?round_error@?$numeric_limits@K@std@@SAKXZ -> public: static unsigned long __cdecl std::numeric_limits<unsigned long>::round_error(void) */
781 ULONG __cdecl
std_numeric_limits_unsigned_long_round_error(void) { return 0; }
783 /* ?round_error@?$numeric_limits@M@std@@SAMXZ -> public: static float __cdecl std::numeric_limits<float>::round_error(void) */
784 float __cdecl
std_numeric_limits_float_round_error(void) { return 0.5; }
786 /* ?round_error@?$numeric_limits@N@std@@SANXZ -> public: static double __cdecl std::numeric_limits<double>::round_error(void) */
787 double __cdecl
std_numeric_limits_double_round_error(void) { return 0.5; }
789 /* ?round_error@?$numeric_limits@O@std@@SAOXZ -> public: static long double __cdecl std::numeric_limits<long double>::round_error(void) */
790 LDOUBLE __cdecl
std_numeric_limits_long_double_round_error(void) { return 0.5; }
792 /* ?round_error@?$numeric_limits@_J@std@@SA_JXZ -> public: static __int64 __cdecl std::numeric_limits<__int64>::round_error(void) */
793 __int64 __cdecl
std_numeric_limits_int64_round_error(void) { return 0; }
795 /* ?round_error@?$numeric_limits@_K@std@@SA_KXZ -> public: static unsigned __int64 __cdecl std::numeric_limits<unsigned __int64>::round_error(void) */
796 unsigned __int64 __cdecl
std_numeric_limits_unsigned_int64_round_error(void) { return 0; }
798 /* ?round_error@?$numeric_limits@_N@std@@SA_NXZ -> public: static bool __cdecl std::numeric_limits<bool>::round_error(void) */
799 BOOLEAN __cdecl
std_numeric_limits_bool_round_error(void) { return FALSE
; }
801 /* ?round_error@?$numeric_limits@_W@std@@SA_WXZ -> public: static wchar_t __cdecl std::numeric_limits<wchar_t>::round_error(void) */
802 WCHAR __cdecl
std_numeric_limits_wchar_t_round_error(void) { return 0; }
804 /* ?signaling_NaN@?$numeric_limits@C@std@@SACXZ -> public: static signed char __cdecl std::numeric_limits<signed char>::signaling_NaN(void) */
805 signed char __cdecl
std_numeric_limits_signed_char_signaling_NaN(void) { return 0; }
807 /* ?signaling_NaN@?$numeric_limits@D@std@@SADXZ -> public: static char __cdecl std::numeric_limits<char>::signaling_NaN(void) */
808 char __cdecl
std_numeric_limits_char_signaling_NaN(void) { return 0; }
810 /* ?signaling_NaN@?$numeric_limits@E@std@@SAEXZ -> public: static unsigned char __cdecl std::numeric_limits<unsigned char>::signaling_NaN(void) */
811 unsigned char __cdecl
std_numeric_limits_unsigned_char_signaling_NaN(void) { return 0; }
813 /* ?signaling_NaN@?$numeric_limits@F@std@@SAFXZ -> public: static short __cdecl std::numeric_limits<short>::signaling_NaN(void) */
814 short __cdecl
std_numeric_limits_short_signaling_NaN(void) { return 0; }
816 /* ?signaling_NaN@?$numeric_limits@G@std@@SAGXZ -> public: static unsigned short __cdecl std::numeric_limits<unsigned short>::signaling_NaN(void) */
817 unsigned short __cdecl
std_numeric_limits_unsigned_short_signaling_NaN(void) { return 0; }
819 /* ?signaling_NaN@?$numeric_limits@H@std@@SAHXZ -> public: static int __cdecl std::numeric_limits<int>::signaling_NaN(void) */
820 int __cdecl
std_numeric_limits_int_signaling_NaN(void) { return 0; }
822 /* ?signaling_NaN@?$numeric_limits@I@std@@SAIXZ -> public: static unsigned int __cdecl std::numeric_limits<unsigned int>::signaling_NaN(void) */
823 unsigned int __cdecl
std_numeric_limits_unsigned_int_signaling_NaN(void) { return 0; }
825 /* ?signaling_NaN@?$numeric_limits@J@std@@SAJXZ -> public: static long __cdecl std::numeric_limits<long>::signaling_NaN(void) */
826 LONG __cdecl
std_numeric_limits_long_signaling_NaN(void) { return 0; }
828 /* ?signaling_NaN@?$numeric_limits@K@std@@SAKXZ -> public: static unsigned long __cdecl std::numeric_limits<unsigned long>::signaling_NaN(void) */
829 ULONG __cdecl
std_numeric_limits_unsigned_long_signaling_NaN(void) { return 0; }
831 /* ?signaling_NaN@?$numeric_limits@M@std@@SAMXZ -> public: static float __cdecl std::numeric_limits<float>::signaling_NaN(void) */
832 float __cdecl
std_numeric_limits_float_signaling_NaN(void) { return *(float *)&_FSnan
; }
834 /* ?signaling_NaN@?$numeric_limits@N@std@@SANXZ -> public: static double __cdecl std::numeric_limits<double>::signaling_NaN(void) */
835 double __cdecl
std_numeric_limits_double_signaling_NaN(void) { return *(double *)&_Snan
; }
837 /* ?signaling_NaN@?$numeric_limits@O@std@@SAOXZ -> public: static long double __cdecl std::numeric_limits<long double>::signaling_NaN(void) */
838 LDOUBLE __cdecl
std_numeric_limits_long_double_signaling_NaN(void) { return *(LDOUBLE
*)&_LSnan
; }
840 /* ?signaling_NaN@?$numeric_limits@_J@std@@SA_JXZ -> public: static __int64 __cdecl std::numeric_limits<__int64>::signaling_NaN(void) */
841 __int64 __cdecl
std_numeric_limits_int64_signaling_NaN(void) { return 0; }
843 /* ?signaling_NaN@?$numeric_limits@_K@std@@SA_KXZ -> public: static unsigned __int64 __cdecl std::numeric_limits<unsigned __int64>::signaling_NaN(void) */
844 unsigned __int64 __cdecl
std_numeric_limits_unsigned_int64_signaling_NaN(void) { return 0; }
846 /* ?signaling_NaN@?$numeric_limits@_N@std@@SA_NXZ -> public: static bool __cdecl std::numeric_limits<bool>::signaling_NaN(void) */
847 BOOLEAN __cdecl
std_numeric_limits_bool_signaling_NaN(void) { return FALSE
; }
849 /* ?signaling_NaN@?$numeric_limits@_W@std@@SA_WXZ -> public: static wchar_t __cdecl std::numeric_limits<wchar_t>::signaling_NaN(void) */
850 WCHAR __cdecl
std_numeric_limits_wchar_t_signaling_NaN(void) { return 0; }
852 /* ??4?$_Ctraits@M@std@@QAEAAV01@ABV01@@Z -> public: class std::_Ctraits<float> & __thiscall std::_Ctraits<float>::operator=(class std::_Ctraits<float> const &) */
853 /* ??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 */
854 /* ??4?$_Ctraits@N@std@@QAEAAV01@ABV01@@Z -> public: class std::_Ctraits<double> & __thiscall std::_Ctraits<double>::operator=(class std::_Ctraits<double> const &) */
855 /* ??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 */
856 /* ??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 &) */
857 /* ??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 */
858 DEFINE_THISCALL_WRAPPER( std_Ctraits_op_assign
, 8 )
859 std_Ctraits
* __thiscall
std_Ctraits_op_assign( std_Ctraits
*this, std_Ctraits
*right
)
864 /* ?_Isnan@?$_Ctraits@M@std@@SA_NM@Z -> public: static bool __cdecl std::_Ctraits<float>::_Isnan(float) */
865 BOOLEAN __cdecl
std_Ctraits_float__Isnan( float x
) { return _isnan(x
); }
867 /* ?_Isnan@?$_Ctraits@N@std@@SA_NN@Z -> public: static bool __cdecl std::_Ctraits<double>::_Isnan(double) */
868 BOOLEAN __cdecl
std_Ctraits_double__Isnan( double x
) { return _isnan(x
); }
870 /* ?_Isnan@?$_Ctraits@O@std@@SA_NO@Z -> public: static bool __cdecl std::_Ctraits<long double>::_Isnan(long double) */
871 BOOLEAN __cdecl
std_Ctraits_long_double__Isnan( LDOUBLE x
) { return _isnan(x
); }
873 /* ?atan2@?$_Ctraits@M@std@@SAMMM@Z -> public: static float __cdecl std::_Ctraits<float>::atan2(float,float) */
874 float __cdecl
std_Ctraits_float_atan2( float y
, float x
) { return atan2f( y
, x
); }
876 /* ?atan2@?$_Ctraits@N@std@@SANNN@Z -> public: static double __cdecl std::_Ctraits<double>::atan2(double,double) */
877 double __cdecl
std_Ctraits_double_atan2( double y
, double x
) { return atan2( y
, x
); }
879 /* ?atan2@?$_Ctraits@O@std@@SAOOO@Z -> public: static long double __cdecl std::_Ctraits<long double>::atan2(long double,long double) */
880 LDOUBLE __cdecl
std_Ctraits_long_double_atan2( LDOUBLE y
, LDOUBLE x
) { return atan2( y
, x
); }
882 /* ?cos@?$_Ctraits@M@std@@SAMM@Z -> public: static float __cdecl std::_Ctraits<float>::cos(float) */
883 float __cdecl
std_Ctraits_float_cos( float x
) { return cosf( x
); }
885 /* ?cos@?$_Ctraits@N@std@@SANN@Z -> public: static double __cdecl std::_Ctraits<double>::cos(double) */
886 double __cdecl
std_Ctraits_double_cos( double x
) { return cos( x
); }
888 /* ?cos@?$_Ctraits@O@std@@SAOO@Z -> public: static long double __cdecl std::_Ctraits<long double>::cos(long double) */
889 LDOUBLE __cdecl
std_Ctraits_long_double_cos( LDOUBLE x
) { return cos( x
); }
891 /* ?exp@?$_Ctraits@M@std@@SAMM@Z -> public: static float __cdecl std::_Ctraits<float>::exp(float) */
892 float __cdecl
std_Ctraits_float_exp( float x
) { return expf( x
); }
894 /* ?exp@?$_Ctraits@N@std@@SANN@Z -> public: static double __cdecl std::_Ctraits<double>::exp(double) */
895 double __cdecl
std_Ctraits_double_exp( double x
) { return exp( x
); }
897 /* ?exp@?$_Ctraits@O@std@@SAOO@Z -> public: static long double __cdecl std::_Ctraits<long double>::exp(long double) */
898 LDOUBLE __cdecl
std_Ctraits_long_double_exp( LDOUBLE x
) { return exp( x
); }
900 /* ?ldexp@?$_Ctraits@M@std@@SAMMH@Z -> public: static float __cdecl std::_Ctraits<float>::ldexp(float,int) */
901 float __cdecl
std_Ctraits_float_ldexp( float x
, int y
) { return ldexpf( x
, y
); }
903 /* ?ldexp@?$_Ctraits@N@std@@SANNH@Z -> public: static double __cdecl std::_Ctraits<double>::ldexp(double,int) */
904 double __cdecl
std_Ctraits_double_ldexp( double x
, int y
) { return ldexp( x
, y
); }
906 /* ?ldexp@?$_Ctraits@O@std@@SAOOH@Z -> public: static long double __cdecl std::_Ctraits<long double>::ldexp(long double,int) */
907 LDOUBLE __cdecl
std_Ctraits_long_double_ldexp( LDOUBLE x
, int y
) { return ldexp( x
, y
); }
909 /* ?log@?$_Ctraits@M@std@@SAMM@Z -> public: static float __cdecl std::_Ctraits<float>::log(float) */
910 float __cdecl
std_Ctraits_float_log( float x
) { return logf( x
); }
912 /* ?log@?$_Ctraits@N@std@@SANN@Z -> public: static double __cdecl std::_Ctraits<double>::log(double) */
913 double __cdecl
std_Ctraits_double_log( double x
) { return log( x
); }
915 /* ?log@?$_Ctraits@O@std@@SAOO@Z -> public: static long double __cdecl std::_Ctraits<long double>::log(long double) */
916 LDOUBLE __cdecl
std_Ctraits_long_double_log( LDOUBLE x
) { return log( x
); }
918 /* ?pow@?$_Ctraits@M@std@@SAMMM@Z -> public: static float __cdecl std::_Ctraits<float>::pow(float,float) */
919 float __cdecl
std_Ctraits_float_pow( float x
, float y
) { return powf( x
, y
); }
921 /* ?pow@?$_Ctraits@N@std@@SANNN@Z -> public: static double __cdecl std::_Ctraits<double>::pow(double,double) */
922 double __cdecl
std_Ctraits_double_pow( double x
, double y
) { return pow( x
, y
); }
924 /* ?pow@?$_Ctraits@O@std@@SAOOO@Z -> public: static long double __cdecl std::_Ctraits<long double>::pow(long double,long double) */
925 LDOUBLE __cdecl
std_Ctraits_long_double_pow( LDOUBLE x
, LDOUBLE y
) { return pow( x
, y
); }
927 /* ?sin@?$_Ctraits@M@std@@SAMM@Z -> public: static float __cdecl std::_Ctraits<float>::sin(float) */
928 float __cdecl
std_Ctraits_float_sin( float x
) { return sinf( x
); }
930 /* ?sin@?$_Ctraits@N@std@@SANN@Z -> public: static double __cdecl std::_Ctraits<double>::sin(double) */
931 double __cdecl
std_Ctraits_double_sin( double x
) { return sin( x
); }
933 /* ?sin@?$_Ctraits@O@std@@SAOO@Z -> public: static long double __cdecl std::_Ctraits<long double>::sin(long double) */
934 LDOUBLE __cdecl
std_Ctraits_long_double_sin( LDOUBLE x
) { return sin( x
); }
936 /* ?sqrt@?$_Ctraits@M@std@@SAMM@Z -> public: static float __cdecl std::_Ctraits<float>::sqrt(float) */
937 float __cdecl
std_Ctraits_float_sqrt( float x
) { return sqrtf( x
); }
939 /* ?sqrt@?$_Ctraits@N@std@@SANN@Z -> public: static double __cdecl std::_Ctraits<double>::sqrt(double) */
940 double __cdecl
std_Ctraits_double_sqrt( double x
) { return sqrt( x
); }
942 /* ?sqrt@?$_Ctraits@O@std@@SAOO@Z -> public: static long double __cdecl std::_Ctraits<long double>::sqrt(long double) */
943 LDOUBLE __cdecl
std_Ctraits_long_double_sqrt( LDOUBLE x
) { return sqrt( x
); }
945 /* ?tan@?$_Ctraits@M@std@@SAMM@Z -> public: static float __cdecl std::_Ctraits<float>::tan(float) */
946 float __cdecl
std_Ctraits_float_tan( float x
) { return tanf( x
); }
948 /* ?tan@?$_Ctraits@N@std@@SANN@Z -> public: static double __cdecl std::_Ctraits<double>::tan(double) */
949 double __cdecl
std_Ctraits_double_tan( double x
) { return tan( x
); }
951 /* ?tan@?$_Ctraits@O@std@@SAOO@Z -> public: static long double __cdecl std::_Ctraits<long double>::tan(long double) */
952 LDOUBLE __cdecl
std_Ctraits_long_double_tan( LDOUBLE x
) { return tan( x
); }
954 /* ??0?$_Complex_base@MU_C_float_complex@@@std@@QAE@ABM0@Z */
955 /* ??0?$_Complex_base@MU_C_float_complex@@@std@@QEAA@AEBM0@Z */
956 /* ??0?$complex@M@std@@QAE@ABM0@Z */
957 /* ??0?$complex@M@std@@QEAA@AEBM0@Z */
958 DEFINE_THISCALL_WRAPPER(complex_float_ctor
, 12)
959 complex_float
* __thiscall
complex_float_ctor(complex_float
*this, const float *real
, const float *imag
)
966 /* ??0?$complex@M@std@@QAE@ABU_C_float_complex@@@Z */
967 /* ??0?$complex@M@std@@QEAA@AEBU_C_float_complex@@@Z */
968 DEFINE_THISCALL_WRAPPER(complex_float_ctor_float
, 8)
969 complex_float
* __thiscall
complex_float_ctor_float(complex_float
*this, const complex_float
*c
)
971 this->real
= c
->real
;
972 this->imag
= c
->imag
;
976 /* ??0?$complex@M@std@@QAE@ABU_C_double_complex@@@Z */
977 /* ??0?$complex@M@std@@QEAA@AEBU_C_double_complex@@@Z */
978 /* ??0?$complex@M@std@@QAE@ABU_C_ldouble_complex@@@Z */
979 /* ??0?$complex@M@std@@QEAA@AEBU_C_ldouble_complex@@@Z */
980 /* ??0?$complex@M@std@@QAE@ABV?$complex@N@1@@Z */
981 /* ??0?$complex@M@std@@QEAA@AEBV?$complex@N@1@@Z */
982 /* ??0?$complex@M@std@@QAE@ABV?$complex@O@1@@Z */
983 /* ??0?$complex@M@std@@QEAA@AEBV?$complex@O@1@@Z */
984 DEFINE_THISCALL_WRAPPER(complex_float_ctor_double
, 8)
985 complex_float
* __thiscall
complex_float_ctor_double(complex_float
*this, const complex_double
*c
)
987 this->real
= c
->real
;
988 this->imag
= c
->imag
;
992 /* ??_F?$complex@M@std@@QAEXXZ */
993 /* ??_F?$complex@M@std@@QEAAXXZ */
994 DEFINE_THISCALL_WRAPPER(complex_float_ctor_def
, 4)
995 complex_float
* __thiscall
complex_float_ctor_def(complex_float
*this)
997 this->real
= this->imag
= 0;
1001 /* ??$?8M@std@@YA_NABMABV?$complex@M@0@@Z */
1002 /* ??$?8M@std@@YA_NAEBMAEBV?$complex@M@0@@Z */
1003 bool __cdecl
complex_float_equal_fc(const float *l
, const complex_float
*r
)
1005 return *l
==r
->real
&& r
->imag
==0;
1008 /* ??$?8M@std@@YA_NABV?$complex@M@0@0@Z */
1009 /* ??$?8M@std@@YA_NAEBV?$complex@M@0@0@Z */
1010 bool __cdecl
complex_float_equal(const complex_float
*l
, const complex_float
*r
)
1012 return l
->real
==r
->real
&& l
->imag
==r
->imag
;
1015 /* ??$?8M@std@@YA_NABV?$complex@M@0@ABM@Z */
1016 /* ??$?8M@std@@YA_NAEBV?$complex@M@0@AEBM@Z */
1017 bool __cdecl
complex_float_equal_cf(const complex_float
*l
, const float *r
)
1019 return l
->real
==*r
&& l
->imag
==0;
1022 /* ??$?9M@std@@YA_NABMABV?$complex@M@0@@Z */
1023 /* ??$?9M@std@@YA_NAEBMAEBV?$complex@M@0@@Z */
1024 bool __cdecl
complex_float_not_equal_fc(const float *l
, const complex_float
*r
)
1026 return !complex_float_equal_fc(l
, r
);
1029 /* ??$?9M@std@@YA_NABV?$complex@M@0@0@Z */
1030 /* ??$?9M@std@@YA_NAEBV?$complex@M@0@0@Z */
1031 bool __cdecl
complex_float_not_equal(const complex_float
*l
, const complex_float
*r
)
1033 return !complex_float_equal(l
, r
);
1036 /* ??$?9M@std@@YA_NABV?$complex@M@0@ABM@Z */
1037 /* ??$?9M@std@@YA_NAEBV?$complex@M@0@AEBM@Z */
1038 bool __cdecl
complex_float_not_equal_cf(const complex_float
*l
, const float *r
)
1040 return !complex_float_equal_cf(l
, r
);
1043 /* ??$?DM@std@@YA?AV?$complex@M@0@ABMABV10@@Z */
1044 /* ??$?DM@std@@YA?AV?$complex@M@0@AEBMAEBV10@@Z */
1045 complex_float
* __cdecl
complex_float_mult_fc(complex_float
*ret
, const float *l
, const complex_float
*r
)
1047 ret
->real
= *l
* r
->real
;
1048 ret
->imag
= *l
* r
->imag
;
1052 /* ??$?DM@std@@YA?AV?$complex@M@0@ABV10@0@Z */
1053 /* ??$?DM@std@@YA?AV?$complex@M@0@AEBV10@0@Z */
1054 complex_float
* __cdecl
complex_float_mult(complex_float
*ret
, const complex_float
*l
, const complex_float
*r
)
1056 ret
->real
= l
->real
*r
->real
- l
->imag
*r
->imag
;
1057 ret
->imag
= l
->imag
*r
->real
+ l
->real
*r
->imag
;
1061 /* ??$?DM@std@@YA?AV?$complex@M@0@ABV10@ABM@Z */
1062 /* ??$?DM@std@@YA?AV?$complex@M@0@AEBV10@AEBM@Z */
1063 complex_float
* __cdecl
complex_float_mult_cf(complex_float
*ret
, const complex_float
*l
, const float *r
)
1065 ret
->real
= l
->real
* *r
;
1066 ret
->imag
= l
->imag
* *r
;
1070 /* ??$?GM@std@@YA?AV?$complex@M@0@ABMABV10@@Z */
1071 /* ??$?GM@std@@YA?AV?$complex@M@0@AEBMAEBV10@@Z */
1072 complex_float
* __cdecl
complex_float_sub_fc(complex_float
*ret
, const float *l
, const complex_float
*r
)
1074 ret
->real
= *l
- r
->real
;
1075 ret
->imag
= -r
->imag
;
1079 /* ??$?GM@std@@YA?AV?$complex@M@0@ABV10@0@Z */
1080 /* ??$?GM@std@@YA?AV?$complex@M@0@AEBV10@0@Z */
1081 complex_float
* __cdecl
complex_float_sub(complex_float
*ret
, const complex_float
*l
, const complex_float
*r
)
1083 ret
->real
= l
->real
- r
->real
;
1084 ret
->imag
= l
->imag
- r
->imag
;
1088 /* ??$?GM@std@@YA?AV?$complex@M@0@ABV10@@Z */
1089 /* ??$?GM@std@@YA?AV?$complex@M@0@AEBV10@@Z */
1090 complex_float
* __cdecl
complex_float_neg(complex_float
*ret
, const complex_float
*c
)
1092 ret
->real
= -c
->real
;
1093 ret
->imag
= -c
->imag
;
1097 /* ??$?GM@std@@YA?AV?$complex@M@0@ABV10@ABM@Z */
1098 /* ??$?GM@std@@YA?AV?$complex@M@0@AEBV10@AEBM@Z */
1099 complex_float
* __cdecl
complex_float_sub_cf(complex_float
*ret
, const complex_float
*l
, const float *r
)
1101 ret
->real
= l
->real
- *r
;
1102 ret
->imag
= l
->imag
;
1106 /* ??$?HM@std@@YA?AV?$complex@M@0@ABMABV10@@Z */
1107 /* ??$?HM@std@@YA?AV?$complex@M@0@AEBMAEBV10@@Z */
1108 complex_float
* __cdecl
complex_float_add_fc(complex_float
*ret
, const float *l
, const complex_float
*r
)
1110 ret
->real
= *l
+ r
->real
;
1111 ret
->imag
= r
->imag
;
1115 /* ??$?HM@std@@YA?AV?$complex@M@0@ABV10@0@Z */
1116 /* ??$?HM@std@@YA?AV?$complex@M@0@AEBV10@0@Z */
1117 complex_float
* __cdecl
complex_float_add(complex_float
*ret
, const complex_float
*l
, const complex_float
*r
)
1119 ret
->real
= l
->real
+ r
->real
;
1120 ret
->imag
= l
->imag
+ r
->imag
;
1124 /* ??$?HM@std@@YA?AV?$complex@M@0@ABV10@@Z */
1125 /* ??$?HM@std@@YA?AV?$complex@M@0@AEBV10@@Z */
1126 complex_float
* __cdecl
complex_float_plus(complex_float
*ret
, const complex_float
*c
)
1132 /* ??$?HM@std@@YA?AV?$complex@M@0@ABV10@ABM@Z */
1133 /* ??$?HM@std@@YA?AV?$complex@M@0@AEBV10@AEBM@Z */
1134 complex_float
* __cdecl
complex_float_add_cf(complex_float
*ret
, const complex_float
*l
, const float *r
)
1136 ret
->real
= l
->real
+ *r
;
1137 ret
->imag
= l
->imag
;
1141 /* ??$?KM@std@@YA?AV?$complex@M@0@ABV10@0@Z */
1142 /* ??$?KM@std@@YA?AV?$complex@M@0@AEBV10@0@Z */
1143 complex_float
* __cdecl
complex_float_div(complex_float
*ret
, const complex_float
*l
, const complex_float
*r
)
1146 if((!r
->real
&& !r
->imag
) || _isnan(l
->real
) || _isnan(l
->imag
)
1147 || _isnan(r
->real
) || _isnan(r
->imag
)) {
1148 ret
->real
= std_numeric_limits_float_quiet_NaN();
1149 ret
->imag
= ret
->real
;
1153 if (fabsf(r
->real
) >= fabsf(r
->imag
)) {
1154 tmp
= r
->imag
/ r
->real
;
1155 den
= r
->real
+ r
->imag
*tmp
;
1156 ret
->real
= (l
->real
+ l
->imag
*tmp
) / den
;
1157 ret
->imag
= (l
->imag
- l
->real
*tmp
) / den
;
1159 tmp
= r
->real
/ r
->imag
;
1160 den
= r
->real
*tmp
+ r
->imag
;
1161 ret
->real
= (l
->real
*tmp
+ l
->imag
) / den
;
1162 ret
->imag
= (l
->imag
*tmp
- l
->real
) / den
;
1167 /* ??$?KM@std@@YA?AV?$complex@M@0@ABMABV10@@Z */
1168 /* ??$?KM@std@@YA?AV?$complex@M@0@AEBMAEBV10@@Z */
1169 complex_float
* __cdecl
complex_float_div_fc(complex_float
*ret
, const float *l
, const complex_float
*r
)
1171 complex_float c
= {*l
, 0};
1172 return complex_float_div(ret
, &c
, r
);
1175 /* ??$?KM@std@@YA?AV?$complex@M@0@ABV10@ABM@Z */
1176 /* ??$?KM@std@@YA?AV?$complex@M@0@AEBV10@AEBM@Z */
1177 complex_float
* __cdecl
complex_float_div_cf(complex_float
*ret
, const complex_float
*l
, const float *r
)
1179 ret
->real
= l
->real
/ *r
;
1180 ret
->imag
= l
->imag
/ *r
;
1184 /* ??4?$_Complex_base@MU_C_float_complex@@@std@@QAEAAV01@ABV01@@Z */
1185 /* ??4?$_Complex_base@MU_C_float_complex@@@std@@QEAAAEAV01@AEBV01@@Z */
1186 /* ??4?$complex@M@std@@QAEAAV01@ABV01@@Z */
1187 /* ??4?$complex@M@std@@QEAAAEAV01@AEBV01@@Z */
1188 DEFINE_THISCALL_WRAPPER(complex_float_assign
, 8)
1189 complex_float
* __thiscall
complex_float_assign(complex_float
*this, const complex_float
*r
)
1195 /* ??4?$complex@M@std@@QAEAAV01@ABM@Z */
1196 /* ??4?$complex@M@std@@QEAAAEAV01@AEBM@Z */
1197 DEFINE_THISCALL_WRAPPER(complex_float_assign_float
, 8)
1198 complex_float
* __thiscall
complex_float_assign_float(complex_float
*this, const float *r
)
1205 /* ??X?$complex@M@std@@QAEAAV01@ABM@Z */
1206 /* ??X?$complex@M@std@@QEAAAEAV01@AEBM@Z */
1207 DEFINE_THISCALL_WRAPPER(complex_float_mult_assign_float
, 8)
1208 complex_float
* __thiscall
complex_float_mult_assign_float(complex_float
*this, const float *r
)
1215 /* ??X?$complex@M@std@@QAEAAV01@ABV01@@Z */
1216 /* ??X?$complex@M@std@@QEAAAEAV01@AEBV01@@Z */
1217 DEFINE_THISCALL_WRAPPER(complex_float_mult_assign
, 8)
1218 complex_float
* __thiscall
complex_float_mult_assign(complex_float
*this, const complex_float
*r
)
1222 tmp
.real
= this->real
*r
->real
- this->imag
*r
->imag
;
1223 tmp
.imag
= this->real
*r
->imag
+ this->imag
*r
->real
;
1228 /* ??Y?$complex@M@std@@QAEAAV01@ABM@Z */
1229 /* ??Y?$complex@M@std@@QEAAAEAV01@AEBM@Z */
1230 DEFINE_THISCALL_WRAPPER(complex_float_add_assign_float
, 8)
1231 complex_float
* __thiscall
complex_float_add_assign_float(complex_float
*this, const float *r
)
1237 /* ??Y?$complex@M@std@@QAEAAV01@ABV01@@Z */
1238 /* ??Y?$complex@M@std@@QEAAAEAV01@AEBV01@@Z */
1239 DEFINE_THISCALL_WRAPPER(complex_float_add_assign
, 8)
1240 complex_float
* __thiscall
complex_float_add_assign(complex_float
*this, const complex_float
*r
)
1242 this->real
+= r
->real
;
1243 this->imag
+= r
->imag
;
1247 /* ??Z?$complex@M@std@@QAEAAV01@ABM@Z */
1248 /* ??Z?$complex@M@std@@QEAAAEAV01@AEBM@Z */
1249 DEFINE_THISCALL_WRAPPER(complex_float_sub_assign_float
, 8)
1250 complex_float
* __thiscall
complex_float_sub_assign_float(complex_float
*this, const float *r
)
1256 /* ??Z?$complex@M@std@@QAEAAV01@ABV01@@Z */
1257 /* ??Z?$complex@M@std@@QEAAAEAV01@AEBV01@@Z */
1258 DEFINE_THISCALL_WRAPPER(complex_float_sub_assign
, 8)
1259 complex_float
* __thiscall
complex_float_sub_assign(complex_float
*this, const complex_float
*r
)
1261 this->real
-= r
->real
;
1262 this->imag
-= r
->imag
;
1266 /* ??_0?$complex@M@std@@QAEAAV01@ABM@Z */
1267 /* ??_0?$complex@M@std@@QEAAAEAV01@AEBM@Z */
1268 DEFINE_THISCALL_WRAPPER(complex_float_div_assign_float
, 8)
1269 complex_float
* __thiscall
complex_float_div_assign_float(complex_float
*this, const float *r
)
1276 /* ??_0?$complex@M@std@@QAEAAV01@ABV01@@Z */
1277 /* ??_0?$complex@M@std@@QEAAAEAV01@AEBV01@@Z */
1278 DEFINE_THISCALL_WRAPPER(complex_float_div_assign
, 8)
1279 complex_float
* __thiscall
complex_float_div_assign(complex_float
*this, const complex_float
*r
)
1281 complex_float tmp
= *this;
1282 return complex_float_div(this, &tmp
, r
);
1285 /* ??$arg@M@std@@YAMABV?$complex@M@0@@Z */
1286 /* ??$arg@M@std@@YAMAEBV?$complex@M@0@@Z */
1287 float __cdecl
complex_float_arg(const complex_float
*c
)
1289 return atan2(c
->imag
, c
->real
);
1292 /* ??$imag@M@std@@YAMABV?$complex@M@0@@Z */
1293 /* ??$imag@M@std@@YAMAEBV?$complex@M@0@@Z */
1294 float __cdecl
complex_float_imag(const complex_float
*c
)
1299 /* ?imag@?$_Complex_base@MU_C_float_complex@@@std@@QAEMABM@Z */
1300 /* ?imag@?$_Complex_base@MU_C_float_complex@@@std@@QEAAMAEBM@Z */
1301 DEFINE_THISCALL_WRAPPER(complex_float_imag_set
, 8)
1302 float __thiscall
complex_float_imag_set(complex_float
*this, const float *f
)
1304 return (this->imag
= *f
);
1307 /* ?imag@?$_Complex_base@MU_C_float_complex@@@std@@QBEMXZ */
1308 /* ?imag@?$_Complex_base@MU_C_float_complex@@@std@@QEBAMXZ */
1309 DEFINE_THISCALL_WRAPPER(complex_float_imag_get
, 4)
1310 float __thiscall
complex_float_imag_get(const complex_float
*this)
1315 /* ??$real@M@std@@YAMABV?$complex@M@0@@Z */
1316 /* ??$real@M@std@@YAMAEBV?$complex@M@0@@Z */
1317 float __cdecl
complex_float_real(const complex_float
*c
)
1322 /* ?real@?$_Complex_base@MU_C_float_complex@@@std@@QAEMABM@Z */
1323 /* ?real@?$_Complex_base@MU_C_float_complex@@@std@@QEAAMAEBM@Z */
1324 DEFINE_THISCALL_WRAPPER(complex_float_real_set
, 8)
1325 float __thiscall
complex_float_real_set(complex_float
*this, const float *f
)
1327 return (this->real
= *f
);
1330 /* ?real@?$_Complex_base@MU_C_float_complex@@@std@@QBEMXZ */
1331 /* ?real@?$_Complex_base@MU_C_float_complex@@@std@@QEBAMXZ */
1332 DEFINE_THISCALL_WRAPPER(complex_float_real_get
, 4)
1333 float __thiscall
complex_float_real_get(const complex_float
*this)
1338 /* ??$_Fabs@M@std@@YAMABV?$complex@M@0@PAH@Z */
1339 /* ??$_Fabs@M@std@@YAMAEBV?$complex@M@0@PEAH@Z */
1340 float __cdecl
complex_float__Fabs(const complex_float
*c
, int *scale
)
1344 ret
= hypotf(c
->real
, c
->imag
);
1345 if(_isnan(ret
) || ret
==0) {
1347 }else if(ret
>= 1) {
1358 /* ??$abs@M@std@@YAMABV?$complex@M@0@@Z */
1359 /* ??$abs@M@std@@YAMAEBV?$complex@M@0@@Z */
1360 float __cdecl
complex_float_abs(const complex_float
*c
)
1362 return hypotf(c
->real
, c
->imag
);
1365 /* ??$conj@M@std@@YA?AV?$complex@M@0@ABV10@@Z */
1366 /* ??$conj@M@std@@YA?AV?$complex@M@0@AEBV10@@Z */
1367 complex_float
* __cdecl
complex_float_conj(complex_float
*ret
, const complex_float
*c
)
1369 ret
->real
= c
->real
;
1370 ret
->imag
= -c
->imag
;
1374 /* ??$cos@M@std@@YA?AV?$complex@M@0@ABV10@@Z */
1375 /* ??$cos@M@std@@YA?AV?$complex@M@0@AEBV10@@Z */
1376 complex_float
* __cdecl
complex_float_cos(complex_float
*ret
, const complex_float
*c
)
1378 ret
->real
= cos(c
->real
)*cosh(c
->imag
);
1379 ret
->imag
= -sin(c
->real
)*sinh(c
->imag
);
1383 /* ??$sin@M@std@@YA?AV?$complex@M@0@ABV10@@Z */
1384 /* ??$sin@M@std@@YA?AV?$complex@M@0@AEBV10@@Z */
1385 complex_float
* __cdecl
complex_float_sin(complex_float
*ret
, const complex_float
*c
)
1387 ret
->real
= sin(c
->real
)*cosh(c
->imag
);
1388 ret
->imag
= cos(c
->real
)*sinh(c
->imag
);
1392 /* ??$tan@M@std@@YA?AV?$complex@M@0@ABV10@@Z */
1393 /* ??$tan@M@std@@YA?AV?$complex@M@0@AEBV10@@Z */
1394 complex_float
* __cdecl
complex_float_tan(complex_float
*ret
, const complex_float
*c
)
1396 double denom
= cos(2*c
->real
) + cosh(2*c
->imag
);
1397 ret
->real
= sin(2*c
->real
) / denom
;
1398 ret
->imag
= sinh(2*c
->imag
) / denom
;
1402 /* ??$cosh@M@std@@YA?AV?$complex@M@0@ABV10@@Z */
1403 /* ??$cosh@M@std@@YA?AV?$complex@M@0@AEBV10@@Z */
1404 complex_float
* __cdecl
complex_float_cosh(complex_float
*ret
, const complex_float
*c
)
1406 ret
->real
= cosh(c
->real
)*cos(c
->imag
);
1407 ret
->imag
= sinh(c
->real
)*sin(c
->imag
);
1411 /* ??$sinh@M@std@@YA?AV?$complex@M@0@ABV10@@Z */
1412 /* ??$sinh@M@std@@YA?AV?$complex@M@0@AEBV10@@Z */
1413 complex_float
* __cdecl
complex_float_sinh(complex_float
*ret
, const complex_float
*c
)
1415 ret
->real
= sinh(c
->real
)*cos(c
->imag
);
1416 ret
->imag
= cosh(c
->real
)*sin(c
->imag
);
1420 /* ??$tanh@M@std@@YA?AV?$complex@M@0@ABV10@@Z */
1421 /* ??$tanh@M@std@@YA?AV?$complex@M@0@AEBV10@@Z */
1422 complex_float
* __cdecl
complex_float_tanh(complex_float
*ret
, const complex_float
*c
)
1426 ret
->real
= -c
->imag
;
1427 ret
->imag
= c
->real
;
1428 complex_float_tan(&tmp
, ret
);
1429 ret
->real
= tmp
.imag
;
1430 ret
->imag
= -tmp
.real
;
1434 /* ??$exp@M@std@@YA?AV?$complex@M@0@ABV10@@Z */
1435 /* ??$exp@M@std@@YA?AV?$complex@M@0@AEBV10@@Z */
1436 complex_float
* __cdecl
complex_float_exp(complex_float
*ret
, const complex_float
*c
)
1438 ret
->real
= ret
->imag
= exp(c
->real
);
1439 ret
->real
*= cos(c
->imag
);
1440 ret
->imag
*= sin(c
->imag
);
1444 /* ??$log@M@std@@YA?AV?$complex@M@0@ABV10@@Z */
1445 /* ??$log@M@std@@YA?AV?$complex@M@0@AEBV10@@Z */
1446 complex_float
* __cdecl
complex_float_log(complex_float
*ret
, const complex_float
*c
)
1448 ret
->real
= log(complex_float_abs(c
));
1449 ret
->imag
= complex_float_arg(c
);
1453 /* ??$log10@M@std@@YA?AV?$complex@M@0@ABV10@@Z */
1454 /* ??$log10@M@std@@YA?AV?$complex@M@0@AEBV10@@Z */
1455 complex_float
* __cdecl
complex_float_log10(complex_float
*ret
, const complex_float
*c
)
1457 complex_float_log(ret
, c
);
1458 ret
->real
*= M_LOG10E
;
1459 ret
->imag
*= M_LOG10E
;
1463 /* ??$norm@M@std@@YAMABV?$complex@M@0@@Z */
1464 /* ??$norm@M@std@@YAMAEBV?$complex@M@0@@Z */
1465 float __cdecl
complex_float_norm(const complex_float
*c
)
1467 return c
->real
*c
->real
+ c
->imag
*c
->imag
;
1470 /* ??$polar@M@std@@YA?AV?$complex@M@0@ABM0@Z */
1471 /* ??$polar@M@std@@YA?AV?$complex@M@0@AEBM0@Z */
1472 complex_float
* __cdecl
complex_float_polar_theta(complex_float
*ret
, const float *mod
, const float *theta
)
1474 ret
->real
= *mod
* cos(*theta
);
1475 ret
->imag
= *mod
* sin(*theta
);
1479 /* ??$polar@M@std@@YA?AV?$complex@M@0@ABM@Z */
1480 /* ??$polar@M@std@@YA?AV?$complex@M@0@AEBM@Z */
1481 complex_float
* __cdecl
complex_float_polar(complex_float
*ret
, const float *mod
)
1488 /* ??$pow@M@std@@YA?AV?$complex@M@0@ABV10@0@Z */
1489 /* ??$pow@M@std@@YA?AV?$complex@M@0@AEBV10@0@Z */
1490 complex_float
* __cdecl
complex_float_pow(complex_float
*ret
, const complex_float
*l
, const complex_float
*r
)
1492 float abs
= complex_float_abs(l
), arg
= complex_float_arg(l
);
1493 float rad
= pow(abs
, r
->real
), theta
= r
->real
*arg
;
1496 rad
*= exp(-r
->imag
* arg
);
1497 theta
+= r
->imag
* log(abs
);
1500 ret
->real
= rad
* cos(theta
);
1501 ret
->imag
= rad
* sin(theta
);
1505 /* ??$pow@M@std@@YA?AV?$complex@M@0@ABMABV10@@Z */
1506 /* ??$pow@M@std@@YA?AV?$complex@M@0@AEBMAEBV10@@Z */
1507 complex_float
* __cdecl
complex_float_pow_fc(complex_float
*ret
, const float *l
, const complex_float
*r
)
1509 complex_float c
= { *l
, 0 };
1510 return complex_float_pow(ret
, &c
, r
);
1513 /* ??$pow@M@std@@YA?AV?$complex@M@0@ABV10@ABM@Z */
1514 /* ??$pow@M@std@@YA?AV?$complex@M@0@AEBV10@AEBM@Z */
1515 complex_float
* __cdecl
complex_float_pow_cf(complex_float
*ret
, const complex_float
*l
, const float *r
)
1517 complex_float c
= { *r
, 0 };
1518 return complex_float_pow(ret
, l
, &c
);
1521 /* ??$pow@M@std@@YA?AV?$complex@M@0@ABV10@H@Z */
1522 /* ??$pow@M@std@@YA?AV?$complex@M@0@AEBV10@H@Z */
1523 complex_float
* __cdecl
complex_float_pow_ci(complex_float
*ret
, const complex_float
*l
, int r
)
1525 complex_float c
= *l
;
1526 complex_float unit_value
= { 1.0, 0 };
1527 complex_float_assign(ret
, &unit_value
);
1531 complex_float_div(&c
, &unit_value
, l
);
1536 complex_float_mult_assign(ret
, &c
);
1538 complex_float_mult_assign(&c
, &c
);
1544 /* ??$sqrt@M@std@@YA?AV?$complex@M@0@ABV10@@Z */
1545 /* ??$sqrt@M@std@@YA?AV?$complex@M@0@AEBV10@@Z */
1546 complex_float
* __cdecl
complex_float_sqrt(complex_float
*ret
, const complex_float
*l
)
1548 complex_float c
= { 0.5, 0 };
1549 return complex_float_pow(ret
, l
, &c
);
1552 /* ??0?$_Complex_base@NU_C_double_complex@@@std@@QAE@ABN0@Z */
1553 /* ??0?$_Complex_base@NU_C_double_complex@@@std@@QEAA@AEBN0@Z */
1554 /* ??0?$_Complex_base@OU_C_ldouble_complex@@@std@@QAE@ABO0@Z */
1555 /* ??0?$_Complex_base@OU_C_ldouble_complex@@@std@@QEAA@AEBO0@Z */
1556 /* ??0?$complex@N@std@@QAE@ABN0@Z */
1557 /* ??0?$complex@N@std@@QEAA@AEBN0@Z */
1558 /* ??0?$complex@O@std@@QAE@ABO0@Z */
1559 /* ??0?$complex@O@std@@QEAA@AEBO0@Z */
1560 DEFINE_THISCALL_WRAPPER(complex_double_ctor
, 12)
1561 complex_double
* __thiscall
complex_double_ctor(complex_double
*this, const double *real
, const double *imag
)
1568 /* ??0?$complex@N@std@@QAE@ABU_C_double_complex@@@Z */
1569 /* ??0?$complex@N@std@@QEAA@AEBU_C_double_complex@@@Z */
1570 /* ??0?$complex@N@std@@QAE@ABU_C_ldouble_complex@@@Z */
1571 /* ??0?$complex@N@std@@QEAA@AEBU_C_ldouble_complex@@@Z */
1572 /* ??0?$complex@N@std@@QAE@ABV?$complex@O@1@@Z */
1573 /* ??0?$complex@N@std@@QEAA@AEBV?$complex@O@1@@Z */
1574 /* ??0?$complex@O@std@@QAE@ABU_C_ldouble_complex@@@Z */
1575 /* ??0?$complex@O@std@@QEAA@AEBU_C_ldouble_complex@@@Z */
1576 /* ??0?$complex@O@std@@QAE@ABV?$complex@N@1@@Z */
1577 /* ??0?$complex@O@std@@QEAA@AEBV?$complex@N@1@@Z */
1578 DEFINE_THISCALL_WRAPPER(complex_double_ctor_double
, 8)
1579 complex_double
* __thiscall
complex_double_ctor_double(complex_double
*this, const complex_double
*c
)
1581 this->real
= c
->real
;
1582 this->imag
= c
->imag
;
1586 /* ??0?$complex@N@std@@QAE@ABV?$complex@M@1@@Z */
1587 /* ??0?$complex@N@std@@QEAA@AEBV?$complex@M@1@@Z */
1588 /* ??0?$complex@O@std@@QAE@ABV?$complex@M@1@@Z */
1589 /* ??0?$complex@O@std@@QEAA@AEBV?$complex@M@1@@Z */
1590 DEFINE_THISCALL_WRAPPER(complex_double_ctor_float
, 8)
1591 complex_double
* __thiscall
complex_double_ctor_float(complex_double
*this, const complex_float
*c
)
1593 this->real
= c
->real
;
1594 this->imag
= c
->imag
;
1598 /* ??_F?$complex@N@std@@QAEXXZ */
1599 /* ??_F?$complex@N@std@@QEAAXXZ */
1600 /* ??_F?$complex@O@std@@QAEXXZ */
1601 /* ??_F?$complex@O@std@@QEAAXXZ */
1602 DEFINE_THISCALL_WRAPPER(complex_double_ctor_def
, 4)
1603 complex_double
* __thiscall
complex_double_ctor_def(complex_double
*this)
1605 this->real
= this->imag
= 0;
1609 /* ??$?8N@std@@YA_NABNABV?$complex@N@0@@Z */
1610 /* ??$?8N@std@@YA_NAEBNAEBV?$complex@N@0@@Z */
1611 /* ??$?8O@std@@YA_NABOABV?$complex@O@0@@Z */
1612 /* ??$?8O@std@@YA_NAEBOAEBV?$complex@O@0@@Z */
1613 bool __cdecl
complex_double_equal_dc(const double *l
, const complex_double
*r
)
1615 return *l
==r
->real
&& r
->imag
==0;
1618 /* ??$?8N@std@@YA_NABV?$complex@N@0@0@Z */
1619 /* ??$?8N@std@@YA_NAEBV?$complex@N@0@0@Z */
1620 /* ??$?8O@std@@YA_NABV?$complex@O@0@0@Z */
1621 /* ??$?8O@std@@YA_NAEBV?$complex@O@0@0@Z */
1622 bool __cdecl
complex_double_equal(const complex_double
*l
, const complex_double
*r
)
1624 return l
->real
==r
->real
&& l
->imag
==r
->imag
;
1627 /* ??$?8N@std@@YA_NABV?$complex@N@0@ABN@Z */
1628 /* ??$?8N@std@@YA_NAEBV?$complex@N@0@AEBN@Z */
1629 /* ??$?8O@std@@YA_NABV?$complex@O@0@ABO@Z */
1630 /* ??$?8O@std@@YA_NAEBV?$complex@O@0@AEBO@Z */
1631 bool __cdecl
complex_double_equal_cd(const complex_double
*l
, double *r
)
1633 return l
->real
==*r
&& l
->imag
==0;
1636 /* ??$?9N@std@@YA_NABNABV?$complex@N@0@@Z */
1637 /* ??$?9N@std@@YA_NAEBNAEBV?$complex@N@0@@Z */
1638 /* ??$?9O@std@@YA_NABOABV?$complex@O@0@@Z */
1639 /* ??$?9O@std@@YA_NAEBOAEBV?$complex@O@0@@Z */
1640 bool __cdecl
complex_double_not_equal_dc(const double *l
, const complex_double
*r
)
1642 return !complex_double_equal_dc(l
, r
);
1645 /* ??$?9N@std@@YA_NABV?$complex@N@0@0@Z */
1646 /* ??$?9N@std@@YA_NAEBV?$complex@N@0@0@Z */
1647 /* ??$?9O@std@@YA_NABV?$complex@O@0@0@Z */
1648 /* ??$?9O@std@@YA_NAEBV?$complex@O@0@0@Z */
1649 bool __cdecl
complex_double_not_equal(const complex_double
*l
, const complex_double
*r
)
1651 return !complex_double_equal(l
, r
);
1654 /* ??$?9N@std@@YA_NABV?$complex@N@0@ABN@Z */
1655 /* ??$?9N@std@@YA_NAEBV?$complex@N@0@AEBN@Z */
1656 /* ??$?9O@std@@YA_NABV?$complex@O@0@ABO@Z */
1657 /* ??$?9O@std@@YA_NAEBV?$complex@O@0@AEBO@Z */
1658 bool __cdecl
complex_double_not_equal_cd(const complex_double
*l
, double *r
)
1660 return !complex_double_equal_cd(l
, r
);
1663 /* ??$?DN@std@@YA?AV?$complex@N@0@ABNABV10@@Z */
1664 /* ??$?DN@std@@YA?AV?$complex@N@0@AEBNAEBV10@@Z */
1665 /* ??$?DO@std@@YA?AV?$complex@O@0@ABOABV10@@Z */
1666 /* ??$?DO@std@@YA?AV?$complex@O@0@AEBOAEBV10@@Z */
1667 complex_double
* __cdecl
complex_double_mult_dc(complex_double
*ret
, const double *l
, const complex_double
*r
)
1669 ret
->real
= *l
* r
->real
;
1670 ret
->imag
= *l
* r
->imag
;
1674 /* ??$?DN@std@@YA?AV?$complex@N@0@ABV10@0@Z */
1675 /* ??$?DN@std@@YA?AV?$complex@N@0@AEBV10@0@Z */
1676 /* ??$?DO@std@@YA?AV?$complex@O@0@ABV10@0@Z */
1677 /* ??$?DO@std@@YA?AV?$complex@O@0@AEBV10@0@Z */
1678 complex_double
* __cdecl
complex_double_mult(complex_double
*ret
, const complex_double
*l
, const complex_double
*r
)
1680 ret
->real
= l
->real
*r
->real
- l
->imag
*r
->imag
;
1681 ret
->imag
= l
->imag
*r
->real
+ l
->real
*r
->imag
;
1685 /* ??$?DN@std@@YA?AV?$complex@N@0@ABV10@ABN@Z */
1686 /* ??$?DN@std@@YA?AV?$complex@N@0@AEBV10@AEBN@Z */
1687 /* ??$?DO@std@@YA?AV?$complex@O@0@ABV10@ABO@Z */
1688 /* ??$?DO@std@@YA?AV?$complex@O@0@AEBV10@AEBO@Z */
1689 complex_double
* __cdecl
complex_double_mult_cd(complex_double
*ret
, const complex_double
*l
, double *r
)
1691 ret
->real
= l
->real
* *r
;
1692 ret
->imag
= l
->imag
* *r
;
1696 /* ??$?GN@std@@YA?AV?$complex@N@0@ABNABV10@@Z */
1697 /* ??$?GN@std@@YA?AV?$complex@N@0@AEBNAEBV10@@Z */
1698 /* ??$?GO@std@@YA?AV?$complex@O@0@ABOABV10@@Z */
1699 /* ??$?GO@std@@YA?AV?$complex@O@0@AEBOAEBV10@@Z */
1700 complex_double
* __cdecl
complex_double_sub_dc(complex_double
*ret
, const double *l
, const complex_double
*r
)
1702 ret
->real
= *l
- r
->real
;
1703 ret
->imag
= -r
->imag
;
1707 /* ??$?GN@std@@YA?AV?$complex@N@0@ABV10@0@Z */
1708 /* ??$?GN@std@@YA?AV?$complex@N@0@AEBV10@0@Z */
1709 /* ??$?GO@std@@YA?AV?$complex@O@0@ABV10@0@Z */
1710 /* ??$?GO@std@@YA?AV?$complex@O@0@AEBV10@0@Z */
1711 complex_double
* __cdecl
complex_double_sub(complex_double
*ret
, const complex_double
*l
, const complex_double
*r
)
1713 ret
->real
= l
->real
- r
->real
;
1714 ret
->imag
= l
->imag
- r
->imag
;
1718 /* ??$?GN@std@@YA?AV?$complex@N@0@ABV10@@Z */
1719 /* ??$?GN@std@@YA?AV?$complex@N@0@AEBV10@@Z */
1720 /* ??$?GO@std@@YA?AV?$complex@O@0@ABV10@@Z */
1721 /* ??$?GO@std@@YA?AV?$complex@O@0@AEBV10@@Z */
1722 complex_double
* __cdecl
complex_double_neg(complex_double
*ret
, const complex_double
*c
)
1724 ret
->real
= -c
->real
;
1725 ret
->imag
= -c
->imag
;
1729 /* ??$?GN@std@@YA?AV?$complex@N@0@ABV10@ABN@Z */
1730 /* ??$?GN@std@@YA?AV?$complex@N@0@AEBV10@AEBN@Z */
1731 /* ??$?GO@std@@YA?AV?$complex@O@0@ABV10@ABO@Z */
1732 /* ??$?GO@std@@YA?AV?$complex@O@0@AEBV10@AEBO@Z */
1733 complex_double
* __cdecl
complex_double_sub_cd(complex_double
*ret
, const complex_double
*l
, double *r
)
1735 ret
->real
= l
->real
- *r
;
1736 ret
->imag
= l
->imag
;
1740 /* ??$?HN@std@@YA?AV?$complex@N@0@ABNABV10@@Z */
1741 /* ??$?HN@std@@YA?AV?$complex@N@0@AEBNAEBV10@@Z */
1742 /* ??$?HO@std@@YA?AV?$complex@O@0@ABOABV10@@Z */
1743 /* ??$?HO@std@@YA?AV?$complex@O@0@AEBOAEBV10@@Z */
1744 complex_double
* __cdecl
complex_double_add_dc(complex_double
*ret
, const double *l
, const complex_double
*r
)
1746 ret
->real
= *l
+ r
->real
;
1747 ret
->imag
= r
->imag
;
1751 /* ??$?HN@std@@YA?AV?$complex@N@0@ABV10@0@Z */
1752 /* ??$?HN@std@@YA?AV?$complex@N@0@AEBV10@0@Z */
1753 /* ??$?HO@std@@YA?AV?$complex@O@0@ABV10@0@Z */
1754 /* ??$?HO@std@@YA?AV?$complex@O@0@AEBV10@0@Z */
1755 complex_double
* __cdecl
complex_double_add(complex_double
*ret
, const complex_double
*l
, const complex_double
*r
)
1757 ret
->real
= l
->real
+ r
->real
;
1758 ret
->imag
= l
->imag
+ r
->imag
;
1762 /* ??$?HN@std@@YA?AV?$complex@N@0@ABV10@@Z */
1763 /* ??$?HN@std@@YA?AV?$complex@N@0@AEBV10@@Z */
1764 /* ??$?HO@std@@YA?AV?$complex@O@0@ABV10@@Z */
1765 /* ??$?HO@std@@YA?AV?$complex@O@0@AEBV10@@Z */
1766 complex_double
* __cdecl
complex_double_plus(complex_double
*ret
, const complex_double
*c
)
1772 /* ??$?HN@std@@YA?AV?$complex@N@0@ABV10@ABN@Z */
1773 /* ??$?HN@std@@YA?AV?$complex@N@0@AEBV10@AEBN@Z */
1774 /* ??$?HO@std@@YA?AV?$complex@O@0@ABV10@ABO@Z */
1775 /* ??$?HO@std@@YA?AV?$complex@O@0@AEBV10@AEBO@Z */
1776 complex_double
* __cdecl
complex_double_add_cd(complex_double
*ret
, const complex_double
*l
, double *r
)
1778 ret
->real
= l
->real
+ *r
;
1779 ret
->imag
= l
->imag
;
1783 /* ??$?KN@std@@YA?AV?$complex@N@0@ABV10@0@Z */
1784 /* ??$?KN@std@@YA?AV?$complex@N@0@AEBV10@0@Z */
1785 /* ??$?KO@std@@YA?AV?$complex@O@0@ABV10@0@Z */
1786 /* ??$?KO@std@@YA?AV?$complex@O@0@AEBV10@0@Z */
1787 complex_double
* __cdecl
complex_double_div(complex_double
*ret
, const complex_double
*l
, const complex_double
*r
)
1790 if((!r
->real
&& !r
->imag
) || _isnan(l
->real
) || _isnan(l
->imag
)
1791 || _isnan(r
->real
) || _isnan(r
->imag
)) {
1792 ret
->real
= std_numeric_limits_double_quiet_NaN();
1793 ret
->imag
= ret
->real
;
1797 if (fabs(r
->real
) >= fabs(r
->imag
)) {
1798 tmp
= r
->imag
/ r
->real
;
1799 den
= r
->real
+ r
->imag
*tmp
;
1800 ret
->real
= (l
->real
+ l
->imag
*tmp
) / den
;
1801 ret
->imag
= (l
->imag
- l
->real
*tmp
) / den
;
1803 tmp
= r
->real
/ r
->imag
;
1804 den
= r
->real
*tmp
+ r
->imag
;
1805 ret
->real
= (l
->real
*tmp
+ l
->imag
) / den
;
1806 ret
->imag
= (l
->imag
*tmp
- l
->real
) / den
;
1811 /* ??$?KN@std@@YA?AV?$complex@N@0@ABNABV10@@Z */
1812 /* ??$?KN@std@@YA?AV?$complex@N@0@AEBNAEBV10@@Z */
1813 /* ??$?KO@std@@YA?AV?$complex@O@0@ABOABV10@@Z */
1814 /* ??$?KO@std@@YA?AV?$complex@O@0@AEBOAEBV10@@Z */
1815 complex_double
* __cdecl
complex_double_div_dc(complex_double
*ret
, const double *l
, const complex_double
*r
)
1817 complex_double c
= {*l
, 0};
1818 return complex_double_div(ret
, &c
, r
);
1821 /* ??$?KN@std@@YA?AV?$complex@N@0@ABV10@ABN@Z */
1822 /* ??$?KN@std@@YA?AV?$complex@N@0@AEBV10@AEBN@Z */
1823 /* ??$?KO@std@@YA?AV?$complex@O@0@ABV10@ABO@Z */
1824 /* ??$?KO@std@@YA?AV?$complex@O@0@AEBV10@AEBO@Z */
1825 complex_double
* __cdecl
complex_double_div_cd(complex_double
*ret
, const complex_double
*l
, double *r
)
1827 ret
->real
= l
->real
/ *r
;
1828 ret
->imag
= l
->imag
/ *r
;
1832 /* ??4?$_Complex_base@NU_C_double_complex@@@std@@QAEAAV01@ABV01@@Z */
1833 /* ??4?$_Complex_base@NU_C_double_complex@@@std@@QEAAAEAV01@AEBV01@@Z */
1834 /* ??4?$_Complex_base@OU_C_ldouble_complex@@@std@@QAEAAV01@ABV01@@Z */
1835 /* ??4?$_Complex_base@OU_C_ldouble_complex@@@std@@QEAAAEAV01@AEBV01@@Z */
1836 /* ??4?$complex@N@std@@QAEAAV01@ABV01@@Z */
1837 /* ??4?$complex@N@std@@QEAAAEAV01@AEBV01@@Z */
1838 /* ??4?$complex@O@std@@QAEAAV01@ABV01@@Z */
1839 /* ??4?$complex@O@std@@QEAAAEAV01@AEBV01@@Z */
1840 DEFINE_THISCALL_WRAPPER(complex_double_assign
, 8)
1841 complex_double
* __thiscall
complex_double_assign(complex_double
*this, const complex_double
*r
)
1847 /* ??4?$complex@N@std@@QAEAAV01@ABN@Z */
1848 /* ??4?$complex@N@std@@QEAAAEAV01@AEBN@Z */
1849 /* ??4?$complex@O@std@@QAEAAV01@ABO@Z */
1850 /* ??4?$complex@O@std@@QEAAAEAV01@AEBO@Z */
1851 DEFINE_THISCALL_WRAPPER(complex_double_assign_double
, 8)
1852 complex_double
* __thiscall
complex_double_assign_double(complex_double
*this, double *r
)
1859 /* ??X?$complex@N@std@@QAEAAV01@ABN@Z */
1860 /* ??X?$complex@N@std@@QEAAAEAV01@AEBN@Z */
1861 /* ??X?$complex@O@std@@QAEAAV01@ABO@Z */
1862 /* ??X?$complex@O@std@@QEAAAEAV01@AEBO@Z */
1863 DEFINE_THISCALL_WRAPPER(complex_double_mult_assign_double
, 8)
1864 complex_double
* __thiscall
complex_double_mult_assign_double(complex_double
*this, const double *r
)
1871 /* ??X?$complex@N@std@@QAEAAV01@ABV01@@Z */
1872 /* ??X?$complex@N@std@@QEAAAEAV01@AEBV01@@Z */
1873 /* ??X?$complex@O@std@@QAEAAV01@ABV01@@Z */
1874 /* ??X?$complex@O@std@@QEAAAEAV01@AEBV01@@Z */
1875 DEFINE_THISCALL_WRAPPER(complex_double_mult_assign
, 8)
1876 complex_double
* __thiscall
complex_double_mult_assign(complex_double
*this, const complex_double
*r
)
1880 tmp
.real
= this->real
*r
->real
- this->imag
*r
->imag
;
1881 tmp
.imag
= this->real
*r
->imag
+ this->imag
*r
->real
;
1886 /* ??Y?$complex@N@std@@QAEAAV01@ABN@Z */
1887 /* ??Y?$complex@N@std@@QEAAAEAV01@AEBN@Z */
1888 /* ??Y?$complex@O@std@@QAEAAV01@ABO@Z */
1889 /* ??Y?$complex@O@std@@QEAAAEAV01@AEBO@Z */
1890 DEFINE_THISCALL_WRAPPER(complex_double_add_assign_double
, 8)
1891 complex_double
* __thiscall
complex_double_add_assign_double(complex_double
*this, const double *r
)
1897 /* ??Y?$complex@N@std@@QAEAAV01@ABV01@@Z */
1898 /* ??Y?$complex@N@std@@QEAAAEAV01@AEBV01@@Z */
1899 /* ??Y?$complex@O@std@@QAEAAV01@ABV01@@Z */
1900 /* ??Y?$complex@O@std@@QEAAAEAV01@AEBV01@@Z */
1901 DEFINE_THISCALL_WRAPPER(complex_double_add_assign
, 8)
1902 complex_double
* __thiscall
complex_double_add_assign(complex_double
*this, const complex_double
*r
)
1904 this->real
+= r
->real
;
1905 this->imag
+= r
->imag
;
1909 /* ??Z?$complex@N@std@@QAEAAV01@ABN@Z */
1910 /* ??Z?$complex@N@std@@QEAAAEAV01@AEBN@Z */
1911 /* ??Z?$complex@O@std@@QAEAAV01@ABO@Z */
1912 /* ??Z?$complex@O@std@@QEAAAEAV01@AEBO@Z */
1913 DEFINE_THISCALL_WRAPPER(complex_double_sub_assign_double
, 8)
1914 complex_double
* __thiscall
complex_double_sub_assign_double(complex_double
*this, const double *r
)
1920 /* ??Z?$complex@N@std@@QAEAAV01@ABV01@@Z */
1921 /* ??Z?$complex@N@std@@QEAAAEAV01@AEBV01@@Z */
1922 /* ??Z?$complex@O@std@@QAEAAV01@ABV01@@Z */
1923 /* ??Z?$complex@O@std@@QEAAAEAV01@AEBV01@@Z */
1924 DEFINE_THISCALL_WRAPPER(complex_double_sub_assign
, 8)
1925 complex_double
* __thiscall
complex_double_sub_assign(complex_double
*this, const complex_double
*r
)
1927 this->real
-= r
->real
;
1928 this->imag
-= r
->imag
;
1932 /* ??_0?$complex@N@std@@QAEAAV01@ABN@Z */
1933 /* ??_0?$complex@N@std@@QEAAAEAV01@AEBN@Z */
1934 /* ??_0?$complex@O@std@@QAEAAV01@ABO@Z */
1935 /* ??_0?$complex@O@std@@QEAAAEAV01@AEBO@Z */
1936 DEFINE_THISCALL_WRAPPER(complex_double_div_assign_double
, 8)
1937 complex_double
* __thiscall
complex_double_div_assign_double(complex_double
*this, const double *r
)
1944 /* ??_0?$complex@N@std@@QAEAAV01@ABV01@@Z */
1945 /* ??_0?$complex@N@std@@QEAAAEAV01@AEBV01@@Z */
1946 /* ??_0?$complex@O@std@@QAEAAV01@ABV01@@Z */
1947 /* ??_0?$complex@O@std@@QEAAAEAV01@AEBV01@@Z */
1948 DEFINE_THISCALL_WRAPPER(complex_double_div_assign
, 8)
1949 complex_double
* __thiscall
complex_double_div_assign(complex_double
*this, const complex_double
*r
)
1951 complex_double tmp
= *this;
1952 return complex_double_div(this, &tmp
, r
);
1955 /* ??$arg@N@std@@YANABV?$complex@N@0@@Z */
1956 /* ??$arg@N@std@@YANAEBV?$complex@N@0@@Z */
1957 /* ??$arg@O@std@@YAOABV?$complex@O@0@@Z */
1958 /* ??$arg@O@std@@YAOAEBV?$complex@O@0@@Z */
1959 double __cdecl
complex_double_arg(const complex_double
*c
)
1961 return atan2(c
->imag
, c
->real
);
1964 /* ??$imag@N@std@@YANABV?$complex@N@0@@Z */
1965 /* ??$imag@N@std@@YANAEBV?$complex@N@0@@Z */
1966 /* ??$imag@O@std@@YAOABV?$complex@O@0@@Z */
1967 /* ??$imag@O@std@@YAOAEBV?$complex@O@0@@Z */
1968 double __cdecl
complex_double_imag(const complex_double
*c
)
1973 /* ?imag@?$_Complex_base@NU_C_double_complex@@@std@@QAENABN@Z */
1974 /* ?imag@?$_Complex_base@NU_C_double_complex@@@std@@QEAANAEBN@Z */
1975 /* ?imag@?$_Complex_base@OU_C_ldouble_complex@@@std@@QAEOABO@Z */
1976 /* ?imag@?$_Complex_base@OU_C_ldouble_complex@@@std@@QEAAOAEBO@Z */
1977 DEFINE_THISCALL_WRAPPER(complex_double_imag_set
, 8)
1978 double __thiscall
complex_double_imag_set(complex_double
*this, const double *d
)
1980 return (this->imag
= *d
);
1983 /* ?imag@?$_Complex_base@NU_C_double_complex@@@std@@QBENXZ */
1984 /* ?imag@?$_Complex_base@NU_C_double_complex@@@std@@QEBANXZ */
1985 /* ?imag@?$_Complex_base@OU_C_ldouble_complex@@@std@@QBEOXZ */
1986 /* ?imag@?$_Complex_base@OU_C_ldouble_complex@@@std@@QEBAOXZ */
1987 DEFINE_THISCALL_WRAPPER(complex_double_imag_get
, 4)
1988 double __thiscall
complex_double_imag_get(const complex_double
*this)
1993 /* ??$real@N@std@@YANABV?$complex@N@0@@Z */
1994 /* ??$real@N@std@@YANAEBV?$complex@N@0@@Z */
1995 /* ??$real@O@std@@YAOABV?$complex@O@0@@Z */
1996 /* ??$real@O@std@@YAOAEBV?$complex@O@0@@Z */
1997 double __cdecl
complex_double_real(const complex_double
*c
)
2002 /* ?real@?$_Complex_base@NU_C_double_complex@@@std@@QAENABN@Z */
2003 /* ?real@?$_Complex_base@NU_C_double_complex@@@std@@QEAANAEBN@Z */
2004 /* ?real@?$_Complex_base@OU_C_ldouble_complex@@@std@@QAEOABO@Z */
2005 /* ?real@?$_Complex_base@OU_C_ldouble_complex@@@std@@QEAAOAEBO@Z */
2006 DEFINE_THISCALL_WRAPPER(complex_double_real_set
, 8)
2007 double __thiscall
complex_double_real_set(complex_double
*this, const double *d
)
2009 return (this->real
= *d
);
2012 /* ?real@?$_Complex_base@NU_C_double_complex@@@std@@QBENXZ */
2013 /* ?real@?$_Complex_base@NU_C_double_complex@@@std@@QEBANXZ */
2014 /* ?real@?$_Complex_base@OU_C_ldouble_complex@@@std@@QBEOXZ */
2015 /* ?real@?$_Complex_base@OU_C_ldouble_complex@@@std@@QEBAOXZ */
2016 DEFINE_THISCALL_WRAPPER(complex_double_real_get
, 4)
2017 double __thiscall
complex_double_real_get(const complex_double
*this)
2022 /* ??$_Fabs@N@std@@YANABV?$complex@N@0@PAH@Z */
2023 /* ??$_Fabs@N@std@@YANAEBV?$complex@N@0@PEAH@Z */
2024 /* ??$_Fabs@O@std@@YAOABV?$complex@O@0@PAH@Z */
2025 /* ??$_Fabs@O@std@@YAOAEBV?$complex@O@0@PEAH@Z */
2026 double __cdecl
complex_double__Fabs(const complex_double
*c
, int *scale
)
2030 ret
= hypot(c
->real
, c
->imag
);
2031 if(_isnan(ret
) || ret
==0) {
2033 }else if(ret
>= 1) {
2044 /* ??$abs@N@std@@YANABV?$complex@N@0@@Z */
2045 /* ??$abs@N@std@@YANAEBV?$complex@N@0@@Z */
2046 /* ??$abs@O@std@@YAOABV?$complex@O@0@@Z */
2047 /* ??$abs@O@std@@YAOAEBV?$complex@O@0@@Z */
2048 double __cdecl
complex_double_abs(const complex_double
*c
)
2050 return hypot(c
->real
, c
->imag
);
2053 /* ??$conj@N@std@@YA?AV?$complex@N@0@ABV10@@Z */
2054 /* ??$conj@N@std@@YA?AV?$complex@N@0@AEBV10@@Z */
2055 /* ??$conj@O@std@@YA?AV?$complex@O@0@ABV10@@Z */
2056 /* ??$conj@O@std@@YA?AV?$complex@O@0@AEBV10@@Z */
2057 complex_double
* __cdecl
complex_double_conj(complex_double
*ret
, const complex_double
*c
)
2059 ret
->real
= c
->real
;
2060 ret
->imag
= -c
->imag
;
2064 /* ??$cos@N@std@@YA?AV?$complex@N@0@ABV10@@Z */
2065 /* ??$cos@N@std@@YA?AV?$complex@N@0@AEBV10@@Z */
2066 /* ??$cos@O@std@@YA?AV?$complex@O@0@ABV10@@Z */
2067 /* ??$cos@O@std@@YA?AV?$complex@O@0@AEBV10@@Z */
2068 complex_double
* __cdecl
complex_double_cos(complex_double
*ret
, const complex_double
*c
)
2070 ret
->real
= cos(c
->real
)*cosh(c
->imag
);
2071 ret
->imag
= -sin(c
->real
)*sinh(c
->imag
);
2075 /* ??$sin@N@std@@YA?AV?$complex@N@0@ABV10@@Z */
2076 /* ??$sin@N@std@@YA?AV?$complex@N@0@AEBV10@@Z */
2077 /* ??$sin@O@std@@YA?AV?$complex@O@0@ABV10@@Z */
2078 /* ??$sin@O@std@@YA?AV?$complex@O@0@AEBV10@@Z */
2079 complex_double
* __cdecl
complex_double_sin(complex_double
*ret
, const complex_double
*c
)
2081 ret
->real
= sin(c
->real
)*cosh(c
->imag
);
2082 ret
->imag
= cos(c
->real
)*sinh(c
->imag
);
2086 /* ??$tan@N@std@@YA?AV?$complex@N@0@ABV10@@Z */
2087 /* ??$tan@N@std@@YA?AV?$complex@N@0@AEBV10@@Z */
2088 /* ??$tan@O@std@@YA?AV?$complex@O@0@ABV10@@Z */
2089 /* ??$tan@O@std@@YA?AV?$complex@O@0@AEBV10@@Z */
2090 complex_double
* __cdecl
complex_double_tan(complex_double
*ret
, const complex_double
*c
)
2092 double denom
= cos(2*c
->real
) + cosh(2*c
->imag
);
2093 ret
->real
= sin(2*c
->real
) / denom
;
2094 ret
->imag
= sinh(2*c
->imag
) / denom
;
2098 /* ??$cosh@N@std@@YA?AV?$complex@N@0@ABV10@@Z */
2099 /* ??$cosh@N@std@@YA?AV?$complex@N@0@AEBV10@@Z */
2100 /* ??$cosh@O@std@@YA?AV?$complex@O@0@ABV10@@Z */
2101 /* ??$cosh@O@std@@YA?AV?$complex@O@0@AEBV10@@Z */
2102 complex_double
* __cdecl
complex_double_cosh(complex_double
*ret
, const complex_double
*c
)
2104 ret
->real
= cosh(c
->real
)*cos(c
->imag
);
2105 ret
->imag
= sinh(c
->real
)*sin(c
->imag
);
2109 /* ??$sinh@N@std@@YA?AV?$complex@N@0@ABV10@@Z */
2110 /* ??$sinh@N@std@@YA?AV?$complex@N@0@AEBV10@@Z */
2111 /* ??$sinh@O@std@@YA?AV?$complex@O@0@ABV10@@Z */
2112 /* ??$sinh@O@std@@YA?AV?$complex@O@0@AEBV10@@Z */
2113 complex_double
* __cdecl
complex_double_sinh(complex_double
*ret
, const complex_double
*c
)
2115 ret
->real
= sinh(c
->real
)*cos(c
->imag
);
2116 ret
->imag
= cosh(c
->real
)*sin(c
->imag
);
2120 /* ??$tanh@N@std@@YA?AV?$complex@N@0@ABV10@@Z */
2121 /* ??$tanh@N@std@@YA?AV?$complex@N@0@AEBV10@@Z */
2122 /* ??$tanh@O@std@@YA?AV?$complex@O@0@ABV10@@Z */
2123 /* ??$tanh@O@std@@YA?AV?$complex@O@0@AEBV10@@Z */
2124 complex_double
* __cdecl
complex_double_tanh(complex_double
*ret
, const complex_double
*c
)
2128 ret
->real
= -c
->imag
;
2129 ret
->imag
= c
->real
;
2130 complex_double_tan(&tmp
, ret
);
2131 ret
->real
= tmp
.imag
;
2132 ret
->imag
= -tmp
.real
;
2136 /* ??$exp@N@std@@YA?AV?$complex@N@0@ABV10@@Z */
2137 /* ??$exp@N@std@@YA?AV?$complex@N@0@AEBV10@@Z */
2138 /* ??$exp@O@std@@YA?AV?$complex@O@0@ABV10@@Z */
2139 /* ??$exp@O@std@@YA?AV?$complex@O@0@AEBV10@@Z */
2140 complex_double
* __cdecl
complex_double_exp(complex_double
*ret
, const complex_double
*c
)
2142 ret
->real
= ret
->imag
= exp(c
->real
);
2143 ret
->real
*= cos(c
->imag
);
2144 ret
->imag
*= sin(c
->imag
);
2148 /* ??$log@N@std@@YA?AV?$complex@N@0@ABV10@@Z */
2149 /* ??$log@N@std@@YA?AV?$complex@N@0@AEBV10@@Z */
2150 /* ??$log@O@std@@YA?AV?$complex@O@0@ABV10@@Z */
2151 /* ??$log@O@std@@YA?AV?$complex@O@0@AEBV10@@Z */
2152 complex_double
* __cdecl
complex_double_log(complex_double
*ret
, const complex_double
*c
)
2154 ret
->real
= log(complex_double_abs(c
));
2155 ret
->imag
= complex_double_arg(c
);
2159 /* ??$log10@N@std@@YA?AV?$complex@N@0@ABV10@@Z */
2160 /* ??$log10@N@std@@YA?AV?$complex@N@0@AEBV10@@Z */
2161 /* ??$log10@O@std@@YA?AV?$complex@O@0@ABV10@@Z */
2162 /* ??$log10@O@std@@YA?AV?$complex@O@0@AEBV10@@Z */
2163 complex_double
* __cdecl
complex_double_log10(complex_double
*ret
, const complex_double
*c
)
2165 complex_double_log(ret
, c
);
2166 ret
->real
*= M_LOG10E
;
2167 ret
->imag
*= M_LOG10E
;
2171 /* ??$norm@N@std@@YANABV?$complex@N@0@@Z */
2172 /* ??$norm@N@std@@YANAEBV?$complex@N@0@@Z */
2173 /* ??$norm@O@std@@YAOABV?$complex@O@0@@Z */
2174 /* ??$norm@O@std@@YAOAEBV?$complex@O@0@@Z */
2175 double __cdecl
complex_double_norm(const complex_double
*c
)
2177 return c
->real
*c
->real
+ c
->imag
*c
->imag
;
2180 /* ??$polar@N@std@@YA?AV?$complex@N@0@ABN0@Z */
2181 /* ??$polar@N@std@@YA?AV?$complex@N@0@AEBN0@Z */
2182 /* ??$polar@O@std@@YA?AV?$complex@O@0@ABO0@Z */
2183 /* ??$polar@O@std@@YA?AV?$complex@O@0@AEBO0@Z */
2184 complex_double
* __cdecl
complex_double_polar_theta(complex_double
*ret
, const double *mod
, const double *theta
)
2186 ret
->real
= *mod
* cos(*theta
);
2187 ret
->imag
= *mod
* sin(*theta
);
2191 /* ??$polar@N@std@@YA?AV?$complex@N@0@ABN@Z */
2192 /* ??$polar@N@std@@YA?AV?$complex@N@0@AEBN@Z */
2193 /* ??$polar@O@std@@YA?AV?$complex@O@0@ABO@Z */
2194 /* ??$polar@O@std@@YA?AV?$complex@O@0@AEBO@Z */
2195 complex_double
* __cdecl
complex_double_polar(complex_double
*ret
, const double *mod
)
2202 /* ??$pow@N@std@@YA?AV?$complex@N@0@ABV10@0@Z */
2203 /* ??$pow@N@std@@YA?AV?$complex@N@0@AEBV10@0@Z */
2204 /* ??$pow@O@std@@YA?AV?$complex@O@0@ABV10@0@Z */
2205 /* ??$pow@O@std@@YA?AV?$complex@O@0@AEBV10@0@Z */
2206 complex_double
* __cdecl
complex_double_pow(complex_double
*ret
, const complex_double
*l
, const complex_double
*r
)
2208 double abs
= complex_double_abs(l
), arg
= complex_double_arg(l
);
2209 double rad
= pow(abs
, r
->real
), theta
= r
->real
*arg
;
2212 rad
*= exp(-r
->imag
* arg
);
2213 theta
+= r
->imag
* log(abs
);
2216 ret
->real
= rad
* cos(theta
);
2217 ret
->imag
= rad
* sin(theta
);
2221 /* ??$pow@N@std@@YA?AV?$complex@N@0@ABNABV10@@Z */
2222 /* ??$pow@N@std@@YA?AV?$complex@N@0@AEBNAEBV10@@Z */
2223 /* ??$pow@O@std@@YA?AV?$complex@O@0@ABOABV10@@Z */
2224 /* ??$pow@O@std@@YA?AV?$complex@O@0@AEBOAEBV10@@Z */
2225 complex_double
* __cdecl
complex_double_pow_dc(complex_double
*ret
, const double *l
, const complex_double
*r
)
2227 complex_double c
= { *l
, 0 };
2228 return complex_double_pow(ret
, &c
, r
);
2231 /* ??$pow@N@std@@YA?AV?$complex@N@0@ABV10@ABN@Z */
2232 /* ??$pow@N@std@@YA?AV?$complex@N@0@AEBV10@AEBN@Z */
2233 /* ??$pow@O@std@@YA?AV?$complex@O@0@ABV10@ABO@Z */
2234 /* ??$pow@O@std@@YA?AV?$complex@O@0@AEBV10@AEBO@Z */
2235 complex_double
* __cdecl
complex_double_pow_cd(complex_double
*ret
, const complex_double
*l
, const double *r
)
2237 complex_double c
= { *r
, 0 };
2238 return complex_double_pow(ret
, l
, &c
);
2241 /* ??$pow@N@std@@YA?AV?$complex@N@0@ABV10@H@Z */
2242 /* ??$pow@N@std@@YA?AV?$complex@N@0@AEBV10@H@Z */
2243 /* ??$pow@O@std@@YA?AV?$complex@O@0@ABV10@H@Z */
2244 /* ??$pow@O@std@@YA?AV?$complex@O@0@AEBV10@H@Z */
2245 complex_double
* __cdecl
complex_double_pow_ci(complex_double
*ret
, const complex_double
*l
, int r
)
2247 complex_double c
= *l
;
2248 complex_double unit_value
= { 1.0, 0 };
2249 complex_double_assign(ret
, &unit_value
);
2253 complex_double_div(&c
, &unit_value
, l
);
2258 complex_double_mult_assign(ret
, &c
);
2260 complex_double_mult_assign(&c
, &c
);
2266 /* ??$sqrt@N@std@@YA?AV?$complex@N@0@ABV10@@Z */
2267 /* ??$sqrt@N@std@@YA?AV?$complex@N@0@AEBV10@@Z */
2268 /* ??$sqrt@O@std@@YA?AV?$complex@O@0@ABV10@@Z */
2269 /* ??$sqrt@O@std@@YA?AV?$complex@O@0@AEBV10@@Z */
2270 complex_double
* __cdecl
complex_double_sqrt(complex_double
*ret
, const complex_double
*l
)
2272 complex_double c
= { 0.5, 0 };
2273 return complex_double_pow(ret
, l
, &c
);
2276 static short dclass(double x
)
2278 switch(_fpclass(x
)) {
2287 return FP_SUBNORMAL
;
2299 short __cdecl
_Dtest(double *x
)
2305 short __cdecl
_FDtest(float *x
)
2311 short __cdecl
_Dscale(double *x
, int exp
)
2318 short __cdecl
_FDscale(float *x
, int exp
)
2325 /* computes y * e^(*x) * 2^scale */
2326 short __cdecl
_Exp(double *x
, double y
, int scale
)
2343 else if(ed
!=e
&& ed
<0)
2345 else if(scale
>0 && e
>0 && scale
+e
<=0)
2347 else if(scale
<0 && e
<0 && scale
+e
>=0)
2352 *x
= y
* pow(2.0, *x
);
2353 return _Dscale(x
, scale
);
2357 short __cdecl
_FExp(float *x
, float y
, short scale
)
2366 /* ?_XLgamma@std@@YANN@Z */
2367 double __cdecl
std__XLgamma_double(double z
)
2369 /* Lanczos coefficients g=5, n=6 */
2370 static const double lc
[] = {
2376 0.1208650973866179e-2,
2379 static const double log_sqrt_2pi
= 0.91893853320467274178;
2381 double base
= z
+ 4.5, sum
= 0;
2384 if (z
< 0.5) return log(M_PI
/ sin(M_PI
* z
)) - std__XLgamma_double(1 - z
);
2387 for(i
= ARRAY_SIZE(lc
) - 1; i
>= 1; i
--)
2388 sum
+= lc
[i
] / (z
+ i
);
2390 return log_sqrt_2pi
+ log(sum
) - base
+ log(base
) * (z
+ 0.5);
2393 /* ?_XLgamma@tr1@std@@YAMM@Z */
2394 float __cdecl
std__XLgamma_float(float z
)
2396 return std__XLgamma_double(z
);