1 /* Copyright (C) 2007 Free Software Foundation, Inc.
3 This file is part of GCC.
5 GCC is free software; you can redistribute it and/or modify it under
6 the terms of the GNU General Public License as published by the Free
7 Software Foundation; either version 2, or (at your option) any later
10 In addition to the permissions in the GNU General Public License, the
11 Free Software Foundation gives you unlimited permission to link the
12 compiled version of this file into combinations with other programs,
13 and to distribute those combinations without any restriction coming
14 from the use of this file. (The General Public License restrictions
15 do apply in other respects; for example, they cover modification of
16 the file, and distribution when not linked into a combine
19 GCC is distributed in the hope that it will be useful, but WITHOUT ANY
20 WARRANTY; without even the implied warranty of MERCHANTABILITY or
21 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
24 You should have received a copy of the GNU General Public License
25 along with GCC; see the file COPYING. If not, write to the Free
26 Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
29 #ifndef _BID_FUNCTIONS_H
30 #define _BID_FUNCTIONS_H
33 #if defined _M_IX86 && !defined __INTEL_COMPILER // Win IA-32, MS compiler
36 #define ALIGN(n) __declspec(align(n))
39 #define ALIGN(n) __attribute__ ((aligned(n)))
43 #if !defined _MSC_VER || defined __INTEL_COMPILER
44 #define __ENABLE_BINARY80__ 1
47 #define _i_quad_t_ UINT128
61 typedef unsigned int FPSC; // floating-point status and control
64 #define BID128_MAXDIGITS 34
65 #define BID64_MAXDIGITS 16
66 #define BID32_MAXDIGITS 7
69 #define ROUNDING_TO_NEAREST 0x00000
70 #define ROUNDING_DOWN 0x00001
71 #define ROUNDING_UP 0x00002
72 #define ROUNDING_TO_ZERO 0x00003
73 #define ROUNDING_TIES_AWAY 0x00004
76 #define FLAG_MASK 0x0000003f
77 #define EXACT_STATUS 0x00000000
78 #define INEXACT_EXCEPTION 0x00000020
79 #define UNDERFLOW_EXCEPTION 0x00000010
80 #define OVERFLOW_EXCEPTION 0x00000008
81 #define ZERO_DIVIDE_EXCEPTION 0x00000004
82 #define DENORMAL_EXCEPTION 0x00000002
83 #define INVALID_EXCEPTION 0x00000001
85 #define MODE_MASK 0x00001f80
86 #define INEXACT_MODE 0x00001000
87 #define UNDERFLOW_MODE 0x00000800
88 #define OVERFLOW_MODE 0x00000400
89 #define ZERO_DIVIDE_MODE 0x00000200
90 #define DENORMAL_MODE 0x00000100
91 #define INVALID_MODE 0x00000080
93 #if defined IN_LIBGCC2 || defined LINUX || defined SUNOS
94 #define LX16 "%016llx"
97 #define LD16 "%016lld"
100 #define LUD16 "%016llu"
104 #define FMT_LLX16 "%016llx"
105 #define FMT_LLX "%llx"
106 #define FMT_LLU4 "%4llu"
107 #define FMT_LLD16 "%016lld"
108 #define FMT_LLD "%lld"
109 #define FMT_LLU "%llu"
110 #define FMT_LLU16 "%016llu"
111 #define FMT_X8 "%08x"
112 #define FMT_X4 "%04x"
114 #define LX16 "%016I64x"
116 #define LD16 "%016I64d"
120 #define LUD16 "%016I64u"
124 #define FMT_LLX16 "%016I64x"
125 #define FMT_LLX "%I64x"
126 #define FMT_LLD16 "%016I64d"
127 #define FMT_LLU4 "%4I64u"
128 #define FMT_LLD "%I64d"
129 #define FMT_LLU "%I64u"
130 #define FMT_LLU16 "%016I64u"
131 #define FMT_X8 "%08x"
132 #define FMT_X4 "%04x"
135 #define decNumberIsSNaN(dn) (((dn)->bits&(DECSNAN))!=0)
136 int __signbitf (float);
137 int __signbit (double);
139 #define __IMFC99MACRO_( __x__, __func__ ) \
140 (( sizeof( __x__ ) > sizeof( float )) \
141 ? __func__( (double)(__x__) ) \
142 : __func__##f( (float)(__x__) ))
144 #define signbit( __x__ ) __IMFC99MACRO_( __x__, __signbit )
146 #if !defined(__INTEL_COMPILER)
150 #define isinf( __x__ ) __IMFC99MACRO_( __x__, __isinf )
151 #define isnan( __x__ ) __IMFC99MACRO_( __x__, __isnan )
153 int __isnanf (float);
154 int __isnan (double);
156 int __isinff (float);
157 int __isinf (double);
161 /* Used by intrinsics. */
189 // typedef unsigned int _IDEC_round;
190 extern _IDEC_round _IDEC_gblround; // initialized to ROUNDING_TO_NEAREST
192 /* exception flags */
193 // typedef unsigned int _IDEC_flags; // could be a struct with diagnostic info
194 extern _IDEC_flags _IDEC_gblflags; // initialized to EXACT_STATUS
196 /* exception masks */
197 typedef unsigned int _IDEC_exceptionmasks;
198 extern _IDEC_exceptionmasks _IDEC_gblexceptionmasks; // initialized to MODE_MASK
200 #if DECIMAL_ALTERNATE_EXCEPTION_HANDLING
202 /* exception information */
205 unsigned int inexact_result:1;
206 unsigned int underflow:1;
207 unsigned int overflow:1;
208 unsigned int zero_divide:1;
209 unsigned int invalid_operation:1;
210 } fpieee_exception_flags_t;
214 _fp_round_minus_infinity,
215 _fp_round_plus_infinity,
218 } fpieee_rounding_mode_t;
227 } _fpieee_precision_t;
230 _fp_code_unspecified,
235 _fp_code_square_root,
238 _fp_code_convert_to_integer_neareven,
239 _fp_code_convert_to_integer_down,
240 _fp_code_convert_to_integer_up,
241 _fp_code_convert_to_integer_truncate,
242 _fp_code_convert_to_integer_nearaway,
248 _fp_code_round_to_integral,
260 } fp_operation_code_t;
266 _fp_compare_unordered
267 } fpieee_compare_result_t;
276 _fp_format_dec_fp128,
277 _fp_format_i8, /* 8-bit integer */
278 _fp_format_i16, /* 16-bit integer */
279 _fp_format_i32, /* 32-bit integer */
280 _fp_format_i64, /* 64-bit integer */
281 _fp_format_u8, /* 8-bit unsigned integer */
282 _fp_format_u16, /* 16-bit unsigned integer */
283 _fp_format_u32, /* 32-bit unsigned integer */
284 _fp_format_u64, /* 64-bit unsigned integer */
285 _fp_format_compare, /* compare value format */
286 _fp_format_decimal_char, /* decimal character */
287 _fp_format_string /* string */
302 _float80_t fp80_value;
303 _float128_t fp128_value;
304 UINT32 decfp32_value;
305 UINT64 decfp64_value;
306 UINT128 decfp128_value;
311 unsigned char u8_value;
312 unsigned short u16_value;
313 unsigned int u32_value;
314 unsigned long u64_value;
315 fpieee_compare_result_t compare_value;
316 unsigned char s[256];
318 unsigned int operand_valid:1;
319 fpieee_format_t format:5;
323 unsigned int rounding_mode:3;
324 unsigned int precision:3;
325 unsigned int operation:26;
326 fpieee_exception_flags_t cause;
327 fpieee_exception_flags_t enable;
328 fpieee_exception_flags_t status;
329 fpieee_value_t operand1;
330 fpieee_value_t operand2;
331 fpieee_value_t operand3;
332 fpieee_value_t result;
333 } _IDEC_excepthandling;
334 extern _IDEC_excepthandling _IDEC_glbexcepthandling;
338 #if DECIMAL_CALL_BY_REFERENCE
340 extern void __bid128dd_add (UINT128 *pres, UINT64 *px,
342 _RND_MODE_PARAM _EXC_FLAGS_PARAM
343 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
344 extern void __bid128dq_add (UINT128 *pres, UINT64 *px,
346 _RND_MODE_PARAM _EXC_FLAGS_PARAM
347 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
348 extern void __bid128qd_add (UINT128 *pres, UINT128 *px,
350 _RND_MODE_PARAM _EXC_FLAGS_PARAM
351 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
352 extern void __bid128_add (UINT128 * pres, UINT128 * px,
354 py _RND_MODE_PARAM _EXC_FLAGS_PARAM
355 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
356 extern void __bid128dd_sub (UINT128 *pres, UINT64 *px,
358 _RND_MODE_PARAM _EXC_FLAGS_PARAM
359 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
360 extern void __bid128dq_sub (UINT128 *pres, UINT64 *px,
362 _RND_MODE_PARAM _EXC_FLAGS_PARAM
363 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
364 extern void __bid128qd_sub (UINT128 *pres, UINT128 *px,
366 _RND_MODE_PARAM _EXC_FLAGS_PARAM
367 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
368 extern void __bid128_sub (UINT128 * pres, UINT128 * px,
370 py _RND_MODE_PARAM _EXC_FLAGS_PARAM
371 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
372 extern void __bid128dd_mul (UINT128 *pres, UINT64 *px,
374 _RND_MODE_PARAM _EXC_FLAGS_PARAM
375 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
376 extern void __bid128dq_mul (UINT128 *pres, UINT64 *px,
378 _RND_MODE_PARAM _EXC_FLAGS_PARAM
379 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
380 extern void __bid128qd_mul (UINT128 *pres, UINT128 *px,
382 _RND_MODE_PARAM _EXC_FLAGS_PARAM
383 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
384 extern void __bid128_mul (UINT128 *pres, UINT128 *px,
386 _RND_MODE_PARAM _EXC_FLAGS_PARAM
387 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
388 extern void __bid128_div (UINT128 * pres, UINT128 * px,
390 py _RND_MODE_PARAM _EXC_FLAGS_PARAM
391 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
392 extern void __bid128dd_div (UINT128 *pres, UINT64 *px,
394 _RND_MODE_PARAM _EXC_FLAGS_PARAM
395 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
396 extern void __bid128dq_div (UINT128 *pres, UINT64 *px,
398 _RND_MODE_PARAM _EXC_FLAGS_PARAM
399 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
400 extern void __bid128qd_div (UINT128 *pres, UINT128 *px,
402 _RND_MODE_PARAM _EXC_FLAGS_PARAM
403 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
404 extern void __bid128_fma (UINT128 *pres, UINT128 *px,
405 UINT128 *py, UINT128 *pz
406 _RND_MODE_PARAM _EXC_FLAGS_PARAM
407 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
408 extern void __bid128ddd_fma (UINT128 *pres, UINT64 *px,
409 UINT64 *py, UINT64 *pz
410 _RND_MODE_PARAM _EXC_FLAGS_PARAM
411 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
412 extern void __bid128ddq_fma (UINT128 *pres, UINT64 *px,
413 UINT64 *py, UINT128 *pz
414 _RND_MODE_PARAM _EXC_FLAGS_PARAM
415 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
416 extern void __bid128dqd_fma (UINT128 *pres, UINT64 *px,
417 UINT128 *py, UINT64 *pz
418 _RND_MODE_PARAM _EXC_FLAGS_PARAM
419 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
420 extern void __bid128dqq_fma (UINT128 *pres, UINT64 *px,
421 UINT128 *py, UINT128 *pz
422 _RND_MODE_PARAM _EXC_FLAGS_PARAM
423 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
424 extern void __bid128qdd_fma (UINT128 *pres, UINT128 *px,
425 UINT64 *py, UINT64 *pz
426 _RND_MODE_PARAM _EXC_FLAGS_PARAM
427 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
428 extern void __bid128qdq_fma (UINT128 *pres, UINT128 *px,
429 UINT64 *py, UINT128 *pz
430 _RND_MODE_PARAM _EXC_FLAGS_PARAM
431 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
432 extern void __bid128qqd_fma (UINT128 *pres, UINT128 *px,
433 UINT128 *py, UINT64 *pz
434 _RND_MODE_PARAM _EXC_FLAGS_PARAM
435 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
436 // Note: __bid128qqq_fma is represented by bid128_fma
437 // Note: __bid64ddd_fma is represented by bid64_fma
438 extern void __bid64ddq_fma (UINT64 *pres, UINT64 *px,
439 UINT64 *py, UINT128 *pz
440 _RND_MODE_PARAM _EXC_FLAGS_PARAM
441 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
442 extern void __bid64dqd_fma (UINT64 *pres, UINT64 *px,
443 UINT128 *py, UINT64 *pz
444 _RND_MODE_PARAM _EXC_FLAGS_PARAM
445 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
446 extern void __bid64dqq_fma (UINT64 *pres, UINT64 *px,
447 UINT128 *py, UINT128 *pz
448 _RND_MODE_PARAM _EXC_FLAGS_PARAM
449 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
450 extern void __bid64qdd_fma (UINT64 *pres, UINT128 *px,
451 UINT64 *py, UINT64 *pz
452 _RND_MODE_PARAM _EXC_FLAGS_PARAM
453 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
454 extern void __bid64qdq_fma (UINT64 *pres, UINT128 *px,
455 UINT64 *py, UINT128 *pz
456 _RND_MODE_PARAM _EXC_FLAGS_PARAM
457 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
458 extern void __bid64qqd_fma (UINT64 *pres, UINT128 *px,
459 UINT128 *py, UINT64 *pz
460 _RND_MODE_PARAM _EXC_FLAGS_PARAM
461 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
462 extern void __bid64qqq_fma (UINT64 *pres, UINT128 *px,
463 UINT128 *py, UINT128 *pz
464 _RND_MODE_PARAM _EXC_FLAGS_PARAM
465 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
467 extern void __bid128_sqrt (UINT128 * pres,
469 px _RND_MODE_PARAM _EXC_FLAGS_PARAM
470 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
471 extern void __bid128d_sqrt (UINT128 *pres, UINT64 *px
472 _RND_MODE_PARAM _EXC_FLAGS_PARAM
473 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
475 extern void __bid64_add (UINT64 * pres, UINT64 * px,
477 py _RND_MODE_PARAM _EXC_FLAGS_PARAM
478 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
479 extern void __bid64dq_add (UINT64 *pres, UINT64 *px,
481 _RND_MODE_PARAM _EXC_FLAGS_PARAM
482 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
483 extern void __bid64qd_add (UINT64 *pres, UINT128 *px,
485 _RND_MODE_PARAM _EXC_FLAGS_PARAM
486 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
487 extern void __bid64qq_add (UINT64 *pres, UINT128 *px,
489 _RND_MODE_PARAM _EXC_FLAGS_PARAM
490 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
491 extern void __bid64_sub (UINT64 * pres, UINT64 * px,
493 py _RND_MODE_PARAM _EXC_FLAGS_PARAM
494 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
495 extern void __bid64dq_sub (UINT64 *pres, UINT64 *px,
497 _RND_MODE_PARAM _EXC_FLAGS_PARAM
498 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
499 extern void __bid64qd_sub (UINT64 *pres, UINT128 *px,
501 _RND_MODE_PARAM _EXC_FLAGS_PARAM
502 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
503 extern void __bid64qq_sub (UINT64 *pres, UINT128 *px,
505 _RND_MODE_PARAM _EXC_FLAGS_PARAM
506 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
507 extern void __bid64_mul (UINT64 * pres, UINT64 * px,
509 _RND_MODE_PARAM _EXC_FLAGS_PARAM
510 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
511 extern void __bid64dq_mul (UINT64 *pres, UINT64 *px,
513 _RND_MODE_PARAM _EXC_FLAGS_PARAM
514 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
515 extern void __bid64qd_mul (UINT64 *pres, UINT128 *px,
517 _RND_MODE_PARAM _EXC_FLAGS_PARAM
518 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
519 extern void __bid64qq_mul (UINT64 *pres, UINT128 *px,
521 _RND_MODE_PARAM _EXC_FLAGS_PARAM
522 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
523 extern void __bid64_div (UINT64 * pres, UINT64 * px,
525 py _RND_MODE_PARAM _EXC_FLAGS_PARAM
526 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
527 extern void __bid64dq_div (UINT64 *pres, UINT64 *px,
529 _RND_MODE_PARAM _EXC_FLAGS_PARAM
530 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
531 extern void __bid64qd_div (UINT64 *pres, UINT128 *px,
533 _RND_MODE_PARAM _EXC_FLAGS_PARAM
534 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
535 extern void __bid64qq_div (UINT64 *pres, UINT128 *px,
537 _RND_MODE_PARAM _EXC_FLAGS_PARAM
538 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
539 extern void __bid64_fma (UINT64 * pres, UINT64 * px,
542 pz _RND_MODE_PARAM _EXC_FLAGS_PARAM
543 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
544 extern void __bid64_sqrt (UINT64 * pres,
546 px _RND_MODE_PARAM _EXC_FLAGS_PARAM
547 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
548 extern void __bid64q_sqrt (UINT64 *pres, UINT128 *px
549 _RND_MODE_PARAM _EXC_FLAGS_PARAM
550 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
552 extern void __bid128_to_int32_rnint (int *pres,
557 extern void __bid128_to_int32_xrnint (int *pres,
562 extern void __bid128_to_int32_rninta (int *pres,
567 extern void __bid128_to_int32_xrninta (int *pres,
572 extern void __bid128_to_int32_int (int *pres,
575 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
576 extern void __bid128_to_int32_xint (int *pres,
581 extern void __bid128_to_int32_floor (int *pres,
586 extern void __bid128_to_int32_xfloor (int *pres,
591 extern void __bid128_to_int32_ceil (int *pres,
596 extern void __bid128_to_int32_xceil (int *pres,
601 extern void __bid128_to_uint32_rnint (unsigned int *pres,
606 extern void __bid128_to_uint32_xrnint (unsigned int *pres,
611 extern void __bid128_to_uint32_rninta (unsigned int *pres,
616 extern void __bid128_to_uint32_xrninta (unsigned int *pres,
621 extern void __bid128_to_uint32_int (unsigned int *pres,
626 extern void __bid128_to_uint32_xint (unsigned int *pres,
631 extern void __bid128_to_uint32_floor (unsigned int *pres,
636 extern void __bid128_to_uint32_xfloor (unsigned int *pres,
641 extern void __bid128_to_uint32_ceil (unsigned int *pres,
646 extern void __bid128_to_uint32_xceil (unsigned int *pres,
651 extern void __bid128_to_int64_rnint (SINT64 * pres,
656 extern void __bid128_to_int64_xrnint (SINT64 * pres,
661 extern void __bid128_to_int64_rninta (SINT64 * pres,
666 extern void __bid128_to_int64_xrninta (SINT64 * pres,
671 extern void __bid128_to_int64_int (SINT64 * pres,
674 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
675 extern void __bid128_to_int64_xint (SINT64 * pres,
680 extern void __bid128_to_int64_floor (SINT64 * pres,
685 extern void __bid128_to_int64_xfloor (SINT64 * pres,
690 extern void __bid128_to_int64_ceil (SINT64 * pres,
695 extern void __bid128_to_int64_xceil (SINT64 * pres,
700 extern void __bid128_to_uint64_rnint (UINT64 * pres,
705 extern void __bid128_to_uint64_xrnint (UINT64 * pres,
710 extern void __bid128_to_uint64_rninta (UINT64 * pres,
715 extern void __bid128_to_uint64_xrninta (UINT64 * pres,
720 extern void __bid128_to_uint64_int (UINT64 * pres,
725 extern void __bid128_to_uint64_xint (UINT64 * pres,
730 extern void __bid128_to_uint64_floor (UINT64 * pres,
735 extern void __bid128_to_uint64_xfloor (UINT64 * pres,
740 extern void __bid128_to_uint64_ceil (UINT64 * pres,
745 extern void __bid128_to_uint64_xceil (UINT64 * pres,
750 extern void __bid64_to_int32_rnint (int *pres,
755 extern void __bid64_to_int32_xrnint (int *pres,
760 extern void __bid64_to_int32_rninta (int *pres,
765 extern void __bid64_to_int32_xrninta (int *pres,
770 extern void __bid64_to_int32_int (int *pres,
773 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
774 extern void __bid64_to_int32_xint (int *pres,
777 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
778 extern void __bid64_to_int32_floor (int *pres,
783 extern void __bid64_to_int32_xfloor (int *pres,
788 extern void __bid64_to_int32_ceil (int *pres,
791 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
792 extern void __bid64_to_int32_xceil (int *pres,
797 extern void __bid64_to_uint32_rnint (unsigned int *pres,
802 extern void __bid64_to_uint32_xrnint (unsigned int *pres,
807 extern void __bid64_to_uint32_rninta (unsigned int *pres,
812 extern void __bid64_to_uint32_xrninta (unsigned int *pres,
817 extern void __bid64_to_uint32_int (unsigned int *pres,
820 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
821 extern void __bid64_to_uint32_xint (unsigned int *pres,
826 extern void __bid64_to_uint32_floor (unsigned int *pres,
831 extern void __bid64_to_uint32_xfloor (unsigned int *pres,
836 extern void __bid64_to_uint32_ceil (unsigned int *pres,
841 extern void __bid64_to_uint32_xceil (unsigned int *pres,
846 extern void __bid64_to_int64_rnint (SINT64 * pres,
851 extern void __bid64_to_int64_xrnint (SINT64 * pres,
856 extern void __bid64_to_int64_rninta (SINT64 * pres,
861 extern void __bid64_to_int64_xrninta (SINT64 * pres,
866 extern void __bid64_to_int64_int (SINT64 * pres,
869 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
870 extern void __bid64_to_int64_xint (SINT64 * pres,
873 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
874 extern void __bid64_to_int64_floor (SINT64 * pres,
879 extern void __bid64_to_int64_xfloor (SINT64 * pres,
884 extern void __bid64_to_int64_ceil (SINT64 * pres,
887 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
888 extern void __bid64_to_int64_xceil (SINT64 * pres,
893 extern void __bid64_to_uint64_rnint (UINT64 * pres,
898 extern void __bid64_to_uint64_xrnint (UINT64 * pres,
903 extern void __bid64_to_uint64_rninta (UINT64 * pres,
908 extern void __bid64_to_uint64_xrninta (UINT64 * pres,
913 extern void __bid64_to_uint64_int (UINT64 * pres,
916 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
917 extern void __bid64_to_uint64_xint (UINT64 * pres,
922 extern void __bid64_to_uint64_floor (UINT64 * pres,
927 extern void __bid64_to_uint64_xfloor (UINT64 * pres,
932 extern void __bid64_to_uint64_ceil (UINT64 * pres,
937 extern void __bid64_to_uint64_xceil (UINT64 * pres,
943 extern void __bid64_quiet_equal (int *pres, UINT64 * px, UINT64 * py
944 _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
946 extern void __bid64_quiet_greater (int *pres, UINT64 * px,
949 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
950 extern void __bid64_quiet_greater_equal (int *pres, UINT64 * px,
955 extern void __bid64_quiet_greater_unordered (int *pres, UINT64 * px,
960 extern void __bid64_quiet_less (int *pres, UINT64 * px,
962 py _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
964 extern void __bid64_quiet_less_equal (int *pres, UINT64 * px,
969 extern void __bid64_quiet_less_unordered (int *pres, UINT64 * px,
974 extern void __bid64_quiet_not_equal (int *pres, UINT64 * px,
979 extern void __bid64_quiet_not_greater (int *pres, UINT64 * px,
984 extern void __bid64_quiet_not_less (int *pres, UINT64 * px,
989 extern void __bid64_quiet_ordered (int *pres, UINT64 * px,
992 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
993 extern void __bid64_quiet_unordered (int *pres, UINT64 * px,
998 extern void __bid64_signaling_equal (int *pres, UINT64 * px,
1003 extern void __bid64_signaling_greater (int *pres, UINT64 * px,
1008 extern void __bid64_signaling_greater_equal (int *pres, UINT64 * px,
1013 extern void __bid64_signaling_greater_unordered (int *pres,
1019 extern void __bid64_signaling_less (int *pres, UINT64 * px,
1024 extern void __bid64_signaling_less_equal (int *pres, UINT64 * px,
1029 extern void __bid64_signaling_less_unordered (int *pres, UINT64 * px,
1034 extern void __bid64_signaling_not_equal (int *pres, UINT64 * px,
1039 extern void __bid64_signaling_not_greater (int *pres, UINT64 * px,
1044 extern void __bid64_signaling_not_less (int *pres, UINT64 * px,
1049 extern void __bid64_signaling_ordered (int *pres, UINT64 * px,
1054 extern void __bid64_signaling_unordered (int *pres, UINT64 * px,
1060 extern void __bid128_quiet_equal (int *pres, UINT128 * px,
1063 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1064 extern void __bid128_quiet_greater (int *pres, UINT128 * px,
1069 extern void __bid128_quiet_greater_equal (int *pres, UINT128 * px,
1074 extern void __bid128_quiet_greater_unordered (int *pres,
1080 extern void __bid128_quiet_less (int *pres, UINT128 * px,
1082 py _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
1084 extern void __bid128_quiet_less_equal (int *pres, UINT128 * px,
1089 extern void __bid128_quiet_less_unordered (int *pres, UINT128 * px,
1094 extern void __bid128_quiet_not_equal (int *pres, UINT128 * px,
1099 extern void __bid128_quiet_not_greater (int *pres, UINT128 * px,
1104 extern void __bid128_quiet_not_less (int *pres, UINT128 * px,
1109 extern void __bid128_quiet_ordered (int *pres, UINT128 * px,
1114 extern void __bid128_quiet_unordered (int *pres, UINT128 * px,
1119 extern void __bid128_signaling_equal (int *pres, UINT128 * px,
1124 extern void __bid128_signaling_greater (int *pres, UINT128 * px,
1129 extern void __bid128_signaling_greater_equal (int *pres,
1135 extern void __bid128_signaling_greater_unordered (int *pres,
1141 extern void __bid128_signaling_less (int *pres, UINT128 * px,
1146 extern void __bid128_signaling_less_equal (int *pres, UINT128 * px,
1151 extern void __bid128_signaling_less_unordered (int *pres,
1157 extern void __bid128_signaling_not_equal (int *pres, UINT128 * px,
1162 extern void __bid128_signaling_not_greater (int *pres, UINT128 * px,
1167 extern void __bid128_signaling_not_less (int *pres, UINT128 * px,
1172 extern void __bid128_signaling_ordered (int *pres, UINT128 * px,
1177 extern void __bid128_signaling_unordered (int *pres, UINT128 * px,
1183 extern void __bid64_round_integral_exact (UINT64 * pres, UINT64 * px
1188 extern void __bid64_round_integral_nearest_even (UINT64 * pres,
1193 extern void __bid64_round_integral_negative (UINT64 * pres,
1198 extern void __bid64_round_integral_positive (UINT64 * pres,
1203 extern void __bid64_round_integral_zero (UINT64 * pres,
1208 extern void __bid64_round_integral_nearest_away (UINT64 * pres,
1214 extern void __bid128_round_integral_exact (UINT128 * pres,
1220 extern void __bid128_round_integral_nearest_even (UINT128 * pres,
1225 extern void __bid128_round_integral_negative (UINT128 * pres,
1230 extern void __bid128_round_integral_positive (UINT128 * pres,
1235 extern void __bid128_round_integral_zero (UINT128 * pres,
1240 extern void __bid128_round_integral_nearest_away (UINT128 * pres,
1246 extern void __bid64_nextup (UINT64 * pres, UINT64 * px
1247 _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
1249 extern void __bid64_nextdown (UINT64 * pres,
1251 px _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
1253 extern void __bid64_nextafter (UINT64 * pres, UINT64 * px,
1255 py _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
1258 extern void __bid128_nextup (UINT128 * pres, UINT128 * px
1259 _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
1261 extern void __bid128_nextdown (UINT128 * pres,
1263 px _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
1265 extern void __bid128_nextafter (UINT128 * pres, UINT128 * px,
1267 py _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
1270 extern void __bid64_minnum (UINT64 * pres, UINT64 * px, UINT64 * py);
1271 extern void __bid64_minnum_mag (UINT64 * pres, UINT64 * px,
1273 extern void __bid64_maxnum (UINT64 * pres, UINT64 * px, UINT64 * py);
1274 extern void __bid64_maxnum_mag (UINT64 * pres, UINT64 * px,
1277 extern void __bid128_minnum (UINT128 * pres, UINT128 * px,
1279 extern void __bid128_minnum_mag (UINT128 * pres, UINT128 * px,
1281 extern void __bid128_maxnum (UINT128 * pres, UINT128 * px,
1283 extern void __bid128_maxnum_mag (UINT128 * pres, UINT128 * px,
1286 extern void __bid64_from_int32 (UINT64 * pres, int *px
1287 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1288 extern void __bid64_from_uint32 (UINT64 * pres, unsigned int *px
1289 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1290 extern void __bid64_from_int64 (UINT64 * pres, SINT64 * px
1291 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1292 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1293 extern void __bid64_from_uint64 (UINT64 * pres,
1295 px _RND_MODE_PARAM _EXC_FLAGS_PARAM
1296 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1297 extern void __bid128_from_int32 (UINT128 * pres,
1298 int *px _EXC_MASKS_PARAM
1300 extern void __bid128_from_uint32 (UINT128 * pres,
1301 unsigned int *px _EXC_MASKS_PARAM
1303 extern void __bid128_from_int64 (UINT128 * pres,
1307 extern void __bid128_from_uint64 (UINT128 * pres,
1312 extern void __bid64_isSigned (int *pres, UINT64 * px
1313 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1314 extern void __bid64_isNormal (int *pres, UINT64 * px
1315 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1316 extern void __bid64_isSubnormal (int *pres, UINT64 * px
1317 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1318 extern void __bid64_isFinite (int *pres, UINT64 * px
1319 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1320 extern void __bid64_isFinite (int *pres, UINT64 * px
1321 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1322 extern void __bid64_isZero (int *pres, UINT64 * px
1323 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1324 extern void __bid64_isInf (int *pres, UINT64 * px
1325 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1326 extern void __bid64_isInf (int *pres, UINT64 * px
1327 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1328 extern void __bid64_isSignaling (int *pres, UINT64 * px
1329 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1330 extern void __bid64_isCanonical (int *pres, UINT64 * px
1331 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1332 extern void __bid64_isNaN (int *pres, UINT64 * px
1333 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1334 extern void __bid64_copy (UINT64 * pres, UINT64 * px
1335 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1336 extern void __bid64_negate (UINT64 * pres, UINT64 * px
1337 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1338 extern void __bid64_abs (UINT64 * pres, UINT64 * px
1339 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1340 extern void __bid64_copySign (UINT64 * pres, UINT64 * px, UINT64 * py
1341 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1342 extern void __bid64_class (int *pres, UINT64 * px
1343 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1344 extern void __bid64_sameQuantum (int *pres, UINT64 * px, UINT64 * py
1345 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1346 extern void __bid64_totalOrder (int *pres, UINT64 * px, UINT64 * py
1347 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1348 extern void __bid64_totalOrderMag (int *pres, UINT64 * px,
1352 extern void __bid64_radix (int *pres,
1354 px _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1356 extern void __bid128_isSigned (int *pres, UINT128 * px
1357 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1358 extern void __bid128_isNormal (int *pres, UINT128 * px
1359 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1360 extern void __bid128_isSubnormal (int *pres, UINT128 * px
1361 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1362 extern void __bid128_isFinite (int *pres, UINT128 * px
1363 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1364 extern void __bid128_isFinite (int *pres, UINT128 * px
1365 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1366 extern void __bid128_isZero (int *pres, UINT128 * px
1367 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1368 extern void __bid128_isInf (int *pres, UINT128 * px
1369 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1370 extern void __bid128_isInf (int *pres, UINT128 * px
1371 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1372 extern void __bid128_isSignaling (int *pres, UINT128 * px
1373 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1374 extern void __bid128_isCanonical (int *pres, UINT128 * px
1375 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1376 extern void __bid128_isNaN (int *pres, UINT128 * px
1377 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1378 extern void __bid128_copy (UINT128 * pres, UINT128 * px
1379 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1380 extern void __bid128_negate (UINT128 * pres, UINT128 * px
1381 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1382 extern void __bid128_abs (UINT128 * pres, UINT128 * px
1383 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1384 extern void __bid128_copySign (UINT128 * pres, UINT128 * px,
1386 py _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1387 extern void __bid128_class (int *pres,
1389 px _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1390 extern void __bid128_sameQuantum (int *pres, UINT128 * px,
1394 extern void __bid128_totalOrder (int *pres, UINT128 * px,
1398 extern void __bid128_totalOrderMag (int *pres, UINT128 * px,
1402 extern void __bid128_radix (int *pres,
1404 px _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1406 extern void __bid64_rem (UINT64 * pres, UINT64 * px, UINT64 * py
1407 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1408 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1409 extern void __bid64_logb (UINT64 * pres,
1411 px _RND_MODE_PARAM _EXC_FLAGS_PARAM
1412 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1413 extern void __bid64_scalb (UINT64 * pres, UINT64 * px,
1414 int *pn _RND_MODE_PARAM _EXC_FLAGS_PARAM
1415 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1417 extern void __bid128_rem (UINT128 * pres, UINT128 * px, UINT128 * py
1418 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1419 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1420 extern void __bid128_logb (UINT128 * pres,
1422 px _RND_MODE_PARAM _EXC_FLAGS_PARAM
1423 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1424 extern void __bid128_scalb (UINT128 * pres, UINT128 * px,
1425 int *pn _RND_MODE_PARAM _EXC_FLAGS_PARAM
1426 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1428 extern void __bid32_to_bid64 (UINT64 * pres, UINT32 * px _EXC_FLAGS_PARAM
1429 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1430 extern void __bid32_to_bid128 (UINT128 * pres, UINT32 * px _EXC_FLAGS_PARAM
1431 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1432 extern void __bid64_to_bid128 (UINT128 * pres, UINT64 * px _EXC_FLAGS_PARAM
1433 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1434 extern void __bid64_to_bid32 (UINT32 * pres, UINT64 * px
1435 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1436 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1437 extern void __bid128_to_bid32 (UINT32 * pres,
1439 px _RND_MODE_PARAM _EXC_FLAGS_PARAM
1440 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1441 extern void __bid128_to_bid64 (UINT64 * pres,
1443 px _RND_MODE_PARAM _EXC_FLAGS_PARAM
1444 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1446 extern void __bid64_from_string (UINT64 * pres, char *ps
1447 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1448 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1449 extern void __bid64_to_string (char *ps,
1451 px _RND_MODE_PARAM _EXC_FLAGS_PARAM
1452 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1453 extern void __bid128_from_string (UINT128 * pres,
1454 char *ps _RND_MODE_PARAM
1455 _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
1457 extern void __bid128_to_string (char *str,
1459 px _RND_MODE_PARAM _EXC_FLAGS_PARAM
1460 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1462 extern void __bid64_quantize (UINT64 * pres, UINT64 * px,
1464 py _RND_MODE_PARAM _EXC_FLAGS_PARAM
1465 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1467 extern void __bid128_quantize (UINT128 * pres, UINT128 * px,
1469 py _RND_MODE_PARAM _EXC_FLAGS_PARAM
1470 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1472 extern void __bid128_to_binary32 (float *pres, UINT128 * px
1473 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1474 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1476 extern void __bid128_to_binary64 (double *pres, UINT128 * px
1477 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1478 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1480 extern void __bid128_to_binary80 (long double *pres, UINT128 * px
1481 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1482 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1484 extern void __bid128_to_binary128 (_i_quad_t_ * pres, UINT128 * px
1485 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1486 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1488 extern void __binary128_to_bid32 (UINT32 * pres, _i_quad_t_ * px
1489 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1490 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1492 extern void __binary128_to_bid64 (UINT64 * pres, _i_quad_t_ * px
1493 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1494 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1496 extern void __binary128_to_bid128 (UINT128 * pres, _i_quad_t_ * px
1497 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1498 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1500 extern void __bid64_to_binary32 (float *pres, UINT64 * px
1501 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1502 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1504 extern void __bid64_to_binary64 (double *pres, UINT64 * px
1505 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1506 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1508 extern void __bid64_to_binary80 (long double *pres, UINT64 * px
1509 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1510 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1512 extern void __bid64_to_binary128 (_i_quad_t_ * pres, UINT64 * px
1513 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1514 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1516 extern void __binary64_to_bid32 (UINT32 * pres, double *px
1517 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1518 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1520 extern void __binary64_to_bid64 (UINT64 * pres, double *px
1521 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1522 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1524 extern void __binary64_to_bid128 (UINT128 * pres, double *px
1525 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1526 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1528 extern void __bid32_to_binary32 (float *pres, UINT32 * px
1529 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1530 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1532 extern void __bid32_to_binary64 (double *pres, UINT32 * px
1533 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1534 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1536 extern void __bid32_to_binary80 (long double *pres, UINT32 * px
1537 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1538 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1540 extern void __bid32_to_binary128 (_i_quad_t_ * pres, UINT32 * px
1541 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1542 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1544 extern void __binary32_to_bid32 (UINT32 * pres, float *px
1545 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1546 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1548 extern void __binary32_to_bid64 (UINT64 * pres, float *px
1549 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1550 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1552 extern void __binary32_to_bid128 (UINT128 * pres, float *px
1553 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1554 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1556 extern void __binary80_to_bid32 (UINT32 * pres, long double *px
1557 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1558 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1560 extern void __binary80_to_bid64 (UINT64 * pres, long double *px
1561 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1562 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1564 extern void __binary80_to_bid128 (UINT128 * pres, long double *px
1565 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1566 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1568 extern void __bid_is754 (int *retval);
1570 extern void __bid_is754R (int *retval);
1572 extern void __bid_lowerFlags (_IDEC_flags * pflagsmask _EXC_FLAGS_PARAM);
1574 extern void __bid_testFlags (_IDEC_flags * praised,
1575 _IDEC_flags * pflagsmask _EXC_FLAGS_PARAM);
1577 extern void __bid_testSavedFlags (_IDEC_flags * praised,
1578 _IDEC_flags * psavedflags,
1579 _IDEC_flags * pflagsmask);
1581 extern void __bid_restoreFlags (_IDEC_flags * pflagsvalues,
1583 pflagsmask _EXC_FLAGS_PARAM);
1585 extern void __bid_saveFlags (_IDEC_flags * pflagsvalues,
1586 _IDEC_flags * pflagsmask _EXC_FLAGS_PARAM);
1588 extern void __bid_saveFlags (_IDEC_flags * pflagsvalues,
1589 _IDEC_flags * pflagsmask _EXC_FLAGS_PARAM);
1591 void __bid_getDecimalRoundingDirection (_IDEC_round *
1592 rounding_mode _RND_MODE_PARAM);
1594 void __bid_setDecimalRoundingDirection (_IDEC_round *
1595 rounding_mode _RND_MODE_PARAM);
1599 extern UINT128 __bid128dd_add (UINT64 x, UINT64 y
1600 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1601 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1602 extern UINT128 __bid128dq_add (UINT64 x, UINT128 y
1603 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1604 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1605 extern UINT128 __bid128qd_add (UINT128 x, UINT64 y
1606 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1607 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1608 extern UINT128 __bid128_add (UINT128 x, UINT128 y
1609 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1610 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1611 extern UINT128 __bid128dd_sub (UINT64 x, UINT64 y
1612 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1613 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1614 extern UINT128 __bid128dq_sub (UINT64 x, UINT128 y
1615 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1616 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1617 extern UINT128 __bid128qd_sub (UINT128 x, UINT64 y
1618 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1619 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1620 extern UINT128 __bid128_sub (UINT128 x,
1621 UINT128 y _RND_MODE_PARAM
1622 _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
1624 extern UINT128 __bid128dd_mul (UINT64 x, UINT64 y
1625 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1626 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1627 extern UINT128 __bid128dq_mul (UINT64 x, UINT128 y
1628 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1629 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1630 extern UINT128 __bid128qd_mul (UINT128 x, UINT64 y
1631 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1632 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1633 extern UINT128 __bid128_mul (UINT128 x, UINT128 y
1634 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1635 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1636 extern UINT128 __bid128_div (UINT128 x,
1637 UINT128 y _RND_MODE_PARAM
1638 _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
1640 extern UINT128 __bid128dd_div (UINT64 x, UINT64 y
1641 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1642 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1643 extern UINT128 __bid128dq_div (UINT64 x, UINT128 y
1644 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1645 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1646 extern UINT128 __bid128qd_div (UINT128 x, UINT64 y
1647 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1648 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1649 extern UINT128 __bid128_fma (UINT128 x, UINT128 y, UINT128 z
1650 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1651 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1652 extern UINT128 __bid128ddd_fma (UINT64 x, UINT64 y, UINT64 z
1653 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1654 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1655 extern UINT128 __bid128ddq_fma (UINT64 x, UINT64 y, UINT128 z
1656 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1657 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1658 extern UINT128 __bid128dqd_fma (UINT64 x, UINT128 y, UINT64 z
1659 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1660 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1661 extern UINT128 __bid128dqq_fma (UINT64 x, UINT128 y,
1663 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1664 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1665 extern UINT128 __bid128qdd_fma (UINT128 x, UINT64 y, UINT64 z
1666 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1667 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1668 extern UINT128 __bid128qdq_fma (UINT128 x, UINT64 y,
1670 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1671 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1672 extern UINT128 __bid128qqd_fma (UINT128 x, UINT128 y,
1674 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1675 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1676 // Note: __bid128qqq_fma is represented by bid128_fma
1677 // Note: __bid64ddd_fma is represented by bid64_fma
1678 extern UINT64 __bid64ddq_fma (UINT64 x, UINT64 y,
1680 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1681 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1682 extern UINT64 __bid64dqd_fma (UINT64 x, UINT128 y,
1684 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1685 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1686 extern UINT64 __bid64dqq_fma (UINT64 x, UINT128 y,
1688 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1689 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1690 extern UINT64 __bid64qdd_fma (UINT128 x, UINT64 y,
1692 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1693 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1694 extern UINT64 __bid64qdq_fma (UINT128 x, UINT64 y,
1696 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1697 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1698 extern UINT64 __bid64qqd_fma (UINT128 x, UINT128 y,
1700 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1701 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1702 extern UINT64 __bid64qqq_fma (UINT128 x, UINT128 y,
1704 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1705 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1707 extern UINT128 __bid128_sqrt (UINT128 x _RND_MODE_PARAM
1708 _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
1710 extern UINT128 __bid128d_sqrt (UINT64 x
1711 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1712 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1714 extern UINT64 __bid64_add (UINT64 x, UINT64 y
1715 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1716 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1717 extern UINT64 __bid64dq_add (UINT64 x, UINT128 y
1718 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1719 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1720 extern UINT64 __bid64qd_add (UINT128 x, UINT64 y
1721 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1722 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1723 extern UINT64 __bid64qq_add (UINT128 x, UINT128 y
1724 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1725 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1726 extern UINT64 __bid64_sub (UINT64 x,
1727 UINT64 y _RND_MODE_PARAM
1728 _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
1730 extern UINT64 __bid64dq_sub (UINT64 x, UINT128 y
1731 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1732 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1733 extern UINT64 __bid64qd_sub (UINT128 x, UINT64 y
1734 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1735 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1736 extern UINT64 __bid64qq_sub (UINT128 x, UINT128 y
1737 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1738 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1739 extern UINT64 __bid64_mul (UINT64 x, UINT64 y
1740 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1741 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1742 extern UINT64 __bid64dq_mul (UINT64 x, UINT128 y
1743 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1744 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1745 extern UINT64 __bid64qd_mul (UINT128 x, UINT64 y
1746 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1747 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1748 extern UINT64 __bid64qq_mul (UINT128 x, UINT128 y
1749 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1750 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1751 extern UINT64 __bid64_div (UINT64 x,
1752 UINT64 y _RND_MODE_PARAM
1753 _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
1755 extern UINT64 __bid64dq_div (UINT64 x, UINT128 y
1756 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1757 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1758 extern UINT64 __bid64qd_div (UINT128 x, UINT64 y
1759 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1760 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1761 extern UINT64 __bid64qq_div (UINT128 x, UINT128 y
1762 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1763 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1764 extern UINT64 __bid64_fma (UINT64 x, UINT64 y,
1765 UINT64 z _RND_MODE_PARAM
1766 _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
1768 extern UINT64 __bid64_sqrt (UINT64 x _RND_MODE_PARAM
1769 _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
1771 extern UINT64 __bid64q_sqrt (UINT128 x
1772 _RND_MODE_PARAM _EXC_FLAGS_PARAM
1773 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1775 extern int __bid128_to_int32_rnint (UINT128 x _EXC_FLAGS_PARAM
1778 extern int __bid128_to_int32_xrnint (UINT128 x _EXC_FLAGS_PARAM
1781 extern int __bid128_to_int32_rninta (UINT128 x _EXC_FLAGS_PARAM
1784 extern int __bid128_to_int32_xrninta (UINT128 x _EXC_FLAGS_PARAM
1787 extern int __bid128_to_int32_int (UINT128 x _EXC_FLAGS_PARAM
1788 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1789 extern int __bid128_to_int32_xint (UINT128 x _EXC_FLAGS_PARAM
1790 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1791 extern int __bid128_to_int32_floor (UINT128 x _EXC_FLAGS_PARAM
1794 extern int __bid128_to_int32_xfloor (UINT128 x _EXC_FLAGS_PARAM
1797 extern int __bid128_to_int32_ceil (UINT128 x _EXC_FLAGS_PARAM
1798 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1799 extern int __bid128_to_int32_xceil (UINT128 x _EXC_FLAGS_PARAM
1802 extern unsigned int __bid128_to_uint32_rnint (UINT128 x
1806 extern unsigned int __bid128_to_uint32_xrnint (UINT128 x
1810 extern unsigned int __bid128_to_uint32_rninta (UINT128 x
1814 extern unsigned int __bid128_to_uint32_xrninta (UINT128 x
1818 extern unsigned int __bid128_to_uint32_int (UINT128 x
1822 extern unsigned int __bid128_to_uint32_xint (UINT128 x
1826 extern unsigned int __bid128_to_uint32_floor (UINT128 x
1830 extern unsigned int __bid128_to_uint32_xfloor (UINT128 x
1834 extern unsigned int __bid128_to_uint32_ceil (UINT128 x
1838 extern unsigned int __bid128_to_uint32_xceil (UINT128 x
1842 extern SINT64 __bid128_to_int64_rnint (UINT128 x _EXC_FLAGS_PARAM
1845 extern SINT64 __bid128_to_int64_xrnint (UINT128 x _EXC_FLAGS_PARAM
1848 extern SINT64 __bid128_to_int64_rninta (UINT128 x _EXC_FLAGS_PARAM
1851 extern SINT64 __bid128_to_int64_xrninta (UINT128 x _EXC_FLAGS_PARAM
1854 extern SINT64 __bid128_to_int64_int (UINT128 x _EXC_FLAGS_PARAM
1857 extern SINT64 __bid128_to_int64_xint (UINT128 x _EXC_FLAGS_PARAM
1860 extern SINT64 __bid128_to_int64_floor (UINT128 x _EXC_FLAGS_PARAM
1863 extern SINT64 __bid128_to_int64_xfloor (UINT128 x _EXC_FLAGS_PARAM
1866 extern SINT64 __bid128_to_int64_ceil (UINT128 x _EXC_FLAGS_PARAM
1869 extern SINT64 __bid128_to_int64_xceil (UINT128 x _EXC_FLAGS_PARAM
1872 extern UINT64 __bid128_to_uint64_rnint (UINT128 x _EXC_FLAGS_PARAM
1875 extern UINT64 __bid128_to_uint64_xrnint (UINT128 x _EXC_FLAGS_PARAM
1878 extern UINT64 __bid128_to_uint64_rninta (UINT128 x _EXC_FLAGS_PARAM
1881 extern UINT64 __bid128_to_uint64_xrninta (UINT128 x _EXC_FLAGS_PARAM
1884 extern UINT64 __bid128_to_uint64_int (UINT128 x _EXC_FLAGS_PARAM
1887 extern UINT64 __bid128_to_uint64_xint (UINT128 x _EXC_FLAGS_PARAM
1890 extern UINT64 __bid128_to_uint64_floor (UINT128 x _EXC_FLAGS_PARAM
1893 extern UINT64 __bid128_to_uint64_xfloor (UINT128 x _EXC_FLAGS_PARAM
1896 extern UINT64 __bid128_to_uint64_ceil (UINT128 x _EXC_FLAGS_PARAM
1899 extern UINT64 __bid128_to_uint64_xceil (UINT128 x _EXC_FLAGS_PARAM
1902 extern int __bid64_to_int32_rnint (UINT64 x _EXC_FLAGS_PARAM
1903 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1904 extern int __bid64_to_int32_xrnint (UINT64 x _EXC_FLAGS_PARAM
1907 extern int __bid64_to_int32_rninta (UINT64 x _EXC_FLAGS_PARAM
1910 extern int __bid64_to_int32_xrninta (UINT64 x _EXC_FLAGS_PARAM
1913 extern int __bid64_to_int32_int (UINT64 x _EXC_FLAGS_PARAM
1914 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1915 extern int __bid64_to_int32_xint (UINT64 x _EXC_FLAGS_PARAM
1916 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1917 extern int __bid64_to_int32_floor (UINT64 x _EXC_FLAGS_PARAM
1918 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1919 extern int __bid64_to_int32_xfloor (UINT64 x _EXC_FLAGS_PARAM
1922 extern int __bid64_to_int32_ceil (UINT64 x _EXC_FLAGS_PARAM
1923 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1924 extern int __bid64_to_int32_xceil (UINT64 x _EXC_FLAGS_PARAM
1925 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
1926 extern unsigned int __bid64_to_uint32_rnint (UINT64 x
1930 extern unsigned int __bid64_to_uint32_xrnint (UINT64 x
1934 extern unsigned int __bid64_to_uint32_rninta (UINT64 x
1938 extern unsigned int __bid64_to_uint32_xrninta (UINT64 x
1942 extern unsigned int __bid64_to_uint32_int (UINT64 x _EXC_FLAGS_PARAM
1945 extern unsigned int __bid64_to_uint32_xint (UINT64 x _EXC_FLAGS_PARAM
1948 extern unsigned int __bid64_to_uint32_floor (UINT64 x
1952 extern unsigned int __bid64_to_uint32_xfloor (UINT64 x
1956 extern unsigned int __bid64_to_uint32_ceil (UINT64 x _EXC_FLAGS_PARAM
1959 extern unsigned int __bid64_to_uint32_xceil (UINT64 x
1963 extern SINT64 __bid64_to_int64_rnint (UINT64 x _EXC_FLAGS_PARAM
1966 extern SINT64 __bid64_to_int64_xrnint (UINT64 x _EXC_FLAGS_PARAM
1969 extern SINT64 __bid64_to_int64_rninta (UINT64 x _EXC_FLAGS_PARAM
1972 extern SINT64 __bid64_to_int64_xrninta (UINT64 x _EXC_FLAGS_PARAM
1975 extern SINT64 __bid64_to_int64_int (UINT64 x _EXC_FLAGS_PARAM
1978 extern SINT64 __bid64_to_int64_xint (UINT64 x _EXC_FLAGS_PARAM
1981 extern SINT64 __bid64_to_int64_floor (UINT64 x _EXC_FLAGS_PARAM
1984 extern SINT64 __bid64_to_int64_xfloor (UINT64 x _EXC_FLAGS_PARAM
1987 extern SINT64 __bid64_to_int64_ceil (UINT64 x _EXC_FLAGS_PARAM
1990 extern SINT64 __bid64_to_int64_xceil (UINT64 x _EXC_FLAGS_PARAM
1993 extern UINT64 __bid64_to_uint64_rnint (UINT64 x _EXC_FLAGS_PARAM
1996 extern UINT64 __bid64_to_uint64_xrnint (UINT64 x _EXC_FLAGS_PARAM
1999 extern UINT64 __bid64_to_uint64_rninta (UINT64 x _EXC_FLAGS_PARAM
2002 extern UINT64 __bid64_to_uint64_xrninta (UINT64 x _EXC_FLAGS_PARAM
2005 extern UINT64 __bid64_to_uint64_int (UINT64 x _EXC_FLAGS_PARAM
2008 extern UINT64 __bid64_to_uint64_xint (UINT64 x _EXC_FLAGS_PARAM
2011 extern UINT64 __bid64_to_uint64_floor (UINT64 x _EXC_FLAGS_PARAM
2014 extern UINT64 __bid64_to_uint64_xfloor (UINT64 x _EXC_FLAGS_PARAM
2017 extern UINT64 __bid64_to_uint64_ceil (UINT64 x _EXC_FLAGS_PARAM
2020 extern UINT64 __bid64_to_uint64_xceil (UINT64 x _EXC_FLAGS_PARAM
2024 extern int __bid64_quiet_equal (UINT64 x, UINT64 y
2025 _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
2027 extern int __bid64_quiet_greater (UINT64 x,
2028 UINT64 y _EXC_FLAGS_PARAM
2029 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
2030 extern int __bid64_quiet_greater_equal (UINT64 x,
2031 UINT64 y _EXC_FLAGS_PARAM
2034 extern int __bid64_quiet_greater_unordered (UINT64 x,
2035 UINT64 y _EXC_FLAGS_PARAM
2038 extern int __bid64_quiet_less (UINT64 x,
2039 UINT64 y _EXC_FLAGS_PARAM
2040 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
2041 extern int __bid64_quiet_less_equal (UINT64 x,
2042 UINT64 y _EXC_FLAGS_PARAM
2045 extern int __bid64_quiet_less_unordered (UINT64 x,
2046 UINT64 y _EXC_FLAGS_PARAM
2049 extern int __bid64_quiet_not_equal (UINT64 x,
2050 UINT64 y _EXC_FLAGS_PARAM
2053 extern int __bid64_quiet_not_greater (UINT64 x,
2054 UINT64 y _EXC_FLAGS_PARAM
2057 extern int __bid64_quiet_not_less (UINT64 x,
2058 UINT64 y _EXC_FLAGS_PARAM
2059 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
2060 extern int __bid64_quiet_ordered (UINT64 x,
2061 UINT64 y _EXC_FLAGS_PARAM
2062 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
2063 extern int __bid64_quiet_unordered (UINT64 x,
2064 UINT64 y _EXC_FLAGS_PARAM
2067 extern int __bid64_signaling_equal (UINT64 x,
2068 UINT64 y _EXC_FLAGS_PARAM
2071 extern int __bid64_signaling_greater (UINT64 x,
2072 UINT64 y _EXC_FLAGS_PARAM
2075 extern int __bid64_signaling_greater_equal (UINT64 x,
2076 UINT64 y _EXC_FLAGS_PARAM
2079 extern int __bid64_signaling_greater_unordered (UINT64 x,
2084 extern int __bid64_signaling_less (UINT64 x,
2085 UINT64 y _EXC_FLAGS_PARAM
2086 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
2087 extern int __bid64_signaling_less_equal (UINT64 x,
2088 UINT64 y _EXC_FLAGS_PARAM
2091 extern int __bid64_signaling_less_unordered (UINT64 x,
2096 extern int __bid64_signaling_not_equal (UINT64 x,
2097 UINT64 y _EXC_FLAGS_PARAM
2100 extern int __bid64_signaling_not_greater (UINT64 x,
2101 UINT64 y _EXC_FLAGS_PARAM
2104 extern int __bid64_signaling_not_less (UINT64 x,
2105 UINT64 y _EXC_FLAGS_PARAM
2108 extern int __bid64_signaling_ordered (UINT64 x,
2109 UINT64 y _EXC_FLAGS_PARAM
2112 extern int __bid64_signaling_unordered (UINT64 x,
2113 UINT64 y _EXC_FLAGS_PARAM
2117 extern int __bid128_quiet_equal (UINT128 x, UINT128 y
2118 _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
2120 extern int __bid128_quiet_greater (UINT128 x,
2121 UINT128 y _EXC_FLAGS_PARAM
2122 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
2123 extern int __bid128_quiet_greater_equal (UINT128 x,
2124 UINT128 y _EXC_FLAGS_PARAM
2127 extern int __bid128_quiet_greater_unordered (UINT128 x,
2132 extern int __bid128_quiet_less (UINT128 x,
2133 UINT128 y _EXC_FLAGS_PARAM
2134 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
2135 extern int __bid128_quiet_less_equal (UINT128 x,
2136 UINT128 y _EXC_FLAGS_PARAM
2139 extern int __bid128_quiet_less_unordered (UINT128 x,
2140 UINT128 y _EXC_FLAGS_PARAM
2143 extern int __bid128_quiet_not_equal (UINT128 x,
2144 UINT128 y _EXC_FLAGS_PARAM
2147 extern int __bid128_quiet_not_greater (UINT128 x,
2148 UINT128 y _EXC_FLAGS_PARAM
2151 extern int __bid128_quiet_not_less (UINT128 x,
2152 UINT128 y _EXC_FLAGS_PARAM
2155 extern int __bid128_quiet_ordered (UINT128 x,
2156 UINT128 y _EXC_FLAGS_PARAM
2157 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
2158 extern int __bid128_quiet_unordered (UINT128 x,
2159 UINT128 y _EXC_FLAGS_PARAM
2162 extern int __bid128_signaling_equal (UINT128 x,
2163 UINT128 y _EXC_FLAGS_PARAM
2166 extern int __bid128_signaling_greater (UINT128 x,
2167 UINT128 y _EXC_FLAGS_PARAM
2170 extern int __bid128_signaling_greater_equal (UINT128 x,
2175 extern int __bid128_signaling_greater_unordered (UINT128 x,
2180 extern int __bid128_signaling_less (UINT128 x,
2181 UINT128 y _EXC_FLAGS_PARAM
2184 extern int __bid128_signaling_less_equal (UINT128 x,
2185 UINT128 y _EXC_FLAGS_PARAM
2188 extern int __bid128_signaling_less_unordered (UINT128 x,
2193 extern int __bid128_signaling_not_equal (UINT128 x,
2194 UINT128 y _EXC_FLAGS_PARAM
2197 extern int __bid128_signaling_not_greater (UINT128 x,
2198 UINT128 y _EXC_FLAGS_PARAM
2201 extern int __bid128_signaling_not_less (UINT128 x,
2202 UINT128 y _EXC_FLAGS_PARAM
2205 extern int __bid128_signaling_ordered (UINT128 x,
2206 UINT128 y _EXC_FLAGS_PARAM
2209 extern int __bid128_signaling_unordered (UINT128 x,
2210 UINT128 y _EXC_FLAGS_PARAM
2214 extern UINT64 __bid64_round_integral_exact (UINT64 x
2219 extern UINT64 __bid64_round_integral_nearest_even (UINT64 x
2223 extern UINT64 __bid64_round_integral_negative (UINT64 x
2227 extern UINT64 __bid64_round_integral_positive (UINT64 x
2231 extern UINT64 __bid64_round_integral_zero (UINT64 x _EXC_FLAGS_PARAM
2234 extern UINT64 __bid64_round_integral_nearest_away (UINT64 x
2239 extern UINT128 __bid128_round_integral_exact (UINT128 x
2244 extern UINT128 __bid128_round_integral_nearest_even (UINT128 x
2248 extern UINT128 __bid128_round_integral_negative (UINT128 x
2252 extern UINT128 __bid128_round_integral_positive (UINT128 x
2256 extern UINT128 __bid128_round_integral_zero (UINT128 x
2260 extern UINT128 __bid128_round_integral_nearest_away (UINT128 x
2265 extern UINT64 __bid64_nextup (UINT64 x
2266 _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
2268 extern UINT64 __bid64_nextdown (UINT64 x _EXC_FLAGS_PARAM
2269 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
2270 extern UINT64 __bid64_nextafter (UINT64 x,
2271 UINT64 y _EXC_FLAGS_PARAM
2272 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
2274 extern UINT128 __bid128_nextup (UINT128 x
2275 _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
2277 extern UINT128 __bid128_nextdown (UINT128 x _EXC_FLAGS_PARAM
2278 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
2279 extern UINT128 __bid128_nextafter (UINT128 x,
2280 UINT128 y _EXC_FLAGS_PARAM
2281 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
2283 extern UINT64 __bid64_minnum (UINT64 x, UINT64 y);
2284 extern UINT64 __bid64_minnum_mag (UINT64 x, UINT64 y);
2285 extern UINT64 __bid64_maxnum (UINT64 x, UINT64 y);
2286 extern UINT64 __bid64_maxnum_mag (UINT64 x, UINT64 y);
2288 extern UINT128 __bid128_minnum (UINT128 x, UINT128 y);
2289 extern UINT128 __bid128_minnum_mag (UINT128 x, UINT128 y);
2290 extern UINT128 __bid128_maxnum (UINT128 x, UINT128 y);
2291 extern UINT128 __bid128_maxnum_mag (UINT128 x, UINT128 y);
2293 extern UINT64 __bid64_from_int32 (int x _EXC_MASKS_PARAM
2295 extern UINT64 __bid64_from_uint32 (unsigned int x _EXC_MASKS_PARAM
2297 extern UINT64 __bid64_from_int64 (SINT64 x _RND_MODE_PARAM
2298 _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
2300 extern UINT64 __bid64_from_uint64 (UINT64 _RND_MODE_PARAM
2301 _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
2303 extern UINT128 __bid128_from_int32 (int x _EXC_MASKS_PARAM
2305 extern UINT128 __bid128_from_uint32 (unsigned int x _EXC_MASKS_PARAM
2307 extern UINT128 __bid128_from_int64 (SINT64 x _EXC_MASKS_PARAM
2309 extern UINT128 __bid128_from_uint64 (UINT64 x _EXC_MASKS_PARAM
2312 extern int __bid64_isSigned (UINT64 x _EXC_MASKS_PARAM
2314 extern int __bid64_isNormal (UINT64 x _EXC_MASKS_PARAM
2316 extern int __bid64_isSubnormal (UINT64 x _EXC_MASKS_PARAM
2318 extern int __bid64_isFinite (UINT64 x _EXC_MASKS_PARAM
2320 extern int __bid64_isFinite (UINT64 x _EXC_MASKS_PARAM
2322 extern int __bid64_isZero (UINT64 x _EXC_MASKS_PARAM
2324 extern int __bid64_isInf (UINT64 x _EXC_MASKS_PARAM _EXC_INFO_PARAM);
2325 extern int __bid64_isInf (UINT64 x _EXC_MASKS_PARAM _EXC_INFO_PARAM);
2326 extern int __bid64_isSignaling (UINT64 x _EXC_MASKS_PARAM
2328 extern int __bid64_isCanonical (UINT64 x _EXC_MASKS_PARAM
2330 extern int __bid64_isNaN (UINT64 x _EXC_MASKS_PARAM _EXC_INFO_PARAM);
2331 extern UINT64 __bid64_copy (UINT64 x _EXC_MASKS_PARAM
2333 extern UINT64 __bid64_negate (UINT64 x _EXC_MASKS_PARAM
2335 extern UINT64 __bid64_abs (UINT64 x _EXC_MASKS_PARAM
2337 extern UINT64 __bid64_copySign (UINT64 x,
2338 UINT64 y _EXC_MASKS_PARAM
2340 extern int __bid64_class (UINT64 x _EXC_MASKS_PARAM _EXC_INFO_PARAM);
2341 extern int __bid64_sameQuantum (UINT64 x, UINT64 y
2342 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
2343 extern int __bid64_totalOrder (UINT64 x, UINT64 y
2344 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
2345 extern int __bid64_totalOrderMag (UINT64 x, UINT64 y
2346 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
2347 extern int __bid64_radix (UINT64 x _EXC_MASKS_PARAM _EXC_INFO_PARAM);
2349 extern int __bid128_isSigned (UINT128 x _EXC_MASKS_PARAM
2351 extern int __bid128_isNormal (UINT128 x _EXC_MASKS_PARAM
2353 extern int __bid128_isSubnormal (UINT128 x _EXC_MASKS_PARAM
2355 extern int __bid128_isFinite (UINT128 x _EXC_MASKS_PARAM
2357 extern int __bid128_isFinite (UINT128 x _EXC_MASKS_PARAM
2359 extern int __bid128_isZero (UINT128 x _EXC_MASKS_PARAM
2361 extern int __bid128_isInf (UINT128 x _EXC_MASKS_PARAM
2363 extern int __bid128_isInf (UINT128 x _EXC_MASKS_PARAM
2365 extern int __bid128_isSignaling (UINT128 x _EXC_MASKS_PARAM
2367 extern int __bid128_isCanonical (UINT128 x _EXC_MASKS_PARAM
2369 extern int __bid128_isNaN (UINT128 x _EXC_MASKS_PARAM
2371 extern UINT128 __bid128_copy (UINT128 x _EXC_MASKS_PARAM
2373 extern UINT128 __bid128_negate (UINT128 x _EXC_MASKS_PARAM
2375 extern UINT128 __bid128_abs (UINT128 x _EXC_MASKS_PARAM
2377 extern UINT128 __bid128_copySign (UINT128 x,
2378 UINT128 y _EXC_MASKS_PARAM
2380 extern int __bid128_class (UINT128 x _EXC_MASKS_PARAM
2382 extern int __bid128_sameQuantum (UINT128 x,
2383 UINT128 y _EXC_MASKS_PARAM
2385 extern int __bid128_totalOrder (UINT128 x,
2386 UINT128 y _EXC_MASKS_PARAM
2388 extern int __bid128_totalOrderMag (UINT128 x,
2389 UINT128 y _EXC_MASKS_PARAM
2391 extern int __bid128_radix (UINT128 x _EXC_MASKS_PARAM
2394 extern UINT64 __bid64_rem (UINT64 x, UINT64 y
2395 _RND_MODE_PARAM _EXC_FLAGS_PARAM
2396 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
2397 extern UINT64 __bid64_logb (UINT64 x _RND_MODE_PARAM _EXC_FLAGS_PARAM
2398 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
2399 extern UINT64 __bid64_scalb (UINT64 x,
2400 int n _RND_MODE_PARAM _EXC_FLAGS_PARAM
2401 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
2403 extern UINT128 __bid128_rem (UINT128 x, UINT128 y
2404 _RND_MODE_PARAM _EXC_FLAGS_PARAM
2405 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
2406 extern UINT128 __bid128_logb (UINT128 x _RND_MODE_PARAM
2407 _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
2409 extern UINT128 __bid128_scalb (UINT128 x,
2410 int n _RND_MODE_PARAM _EXC_FLAGS_PARAM
2411 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
2413 extern UINT64 __bid32_to_bid64 (UINT32 x _EXC_FLAGS_PARAM
2414 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
2415 extern UINT128 __bid32_to_bid128 (UINT32 x _EXC_FLAGS_PARAM
2416 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
2417 extern UINT128 __bid64_to_bid128 (UINT64 x _EXC_FLAGS_PARAM
2418 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
2419 extern UINT32 __bid64_to_bid32 (UINT64 x
2420 _RND_MODE_PARAM _EXC_FLAGS_PARAM
2423 extern UINT32 __bid128_to_bid32 (UINT128 x _RND_MODE_PARAM
2427 extern UINT64 __bid128_to_bid64 (UINT128 x _RND_MODE_PARAM
2432 extern void __bid64_to_string (char *ps, UINT64 x
2433 _RND_MODE_PARAM _EXC_FLAGS_PARAM
2434 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
2435 extern UINT64 __bid64_from_string (char *ps _RND_MODE_PARAM
2439 extern void __bid128_to_string (char *str,
2440 UINT128 x _RND_MODE_PARAM
2441 _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
2443 extern UINT128 __bid128_from_string (char *ps _RND_MODE_PARAM
2448 extern UINT64 __bid64_quantize (UINT64 x, UINT64 y
2449 _RND_MODE_PARAM _EXC_FLAGS_PARAM
2453 extern UINT128 __bid128_quantize (UINT128 x, UINT128 y
2460 extern UINT32 __binary128_to_bid32 (_i_quad_t_ x
2466 extern UINT64 __binary128_to_bid64 (_i_quad_t_ x
2472 extern UINT128 __binary128_to_bid128 (_i_quad_t_ x
2478 extern UINT32 __binary64_to_bid32 (double x
2484 extern UINT64 __binary64_to_bid64 (double x
2490 extern UINT128 __binary64_to_bid128 (double x
2496 extern UINT32 __binary80_to_bid32 (long double x
2502 extern UINT64 __binary80_to_bid64 (long double x
2508 extern UINT128 __binary80_to_bid128 (long double x
2514 extern UINT32 __binary32_to_bid32 (float x
2520 extern UINT64 __binary32_to_bid64 (float x
2526 extern UINT128 __binary32_to_bid128 (float x
2532 extern float __bid128_to_binary32 (UINT128 x
2533 _RND_MODE_PARAM _EXC_FLAGS_PARAM
2534 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
2536 extern double __bid128_to_binary64 (UINT128 x
2537 _RND_MODE_PARAM _EXC_FLAGS_PARAM
2541 extern long double __bid128_to_binary80 (UINT128 x
2547 extern _i_quad_t_ __bid128_to_binary128 (UINT128 x
2548 _RND_MODE_PARAM _EXC_FLAGS_PARAM
2549 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
2551 extern float __bid64_to_binary32 (UINT64 x
2552 _RND_MODE_PARAM _EXC_FLAGS_PARAM
2553 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
2555 extern double __bid64_to_binary64 (UINT64 x
2556 _RND_MODE_PARAM _EXC_FLAGS_PARAM
2557 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
2559 extern long double __bid64_to_binary80 (UINT64 x
2565 extern _i_quad_t_ __bid64_to_binary128 (UINT64 x
2566 _RND_MODE_PARAM _EXC_FLAGS_PARAM
2567 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
2569 extern float __bid32_to_binary32 (UINT32 x
2570 _RND_MODE_PARAM _EXC_FLAGS_PARAM
2571 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
2573 extern double __bid32_to_binary64 (UINT32 x
2574 _RND_MODE_PARAM _EXC_FLAGS_PARAM
2575 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
2577 extern long double __bid32_to_binary80 (UINT32 x
2583 extern _i_quad_t_ __bid32_to_binary128 (UINT32 x
2584 _RND_MODE_PARAM _EXC_FLAGS_PARAM
2585 _EXC_MASKS_PARAM _EXC_INFO_PARAM);
2587 extern int __bid_is754 (void);
2589 extern int __bid_is754R (void);
2591 extern void __bid_lowerFlags (_IDEC_flags flagsmask _EXC_FLAGS_PARAM);
2593 extern _IDEC_flags __bid_testFlags (_IDEC_flags flagsmask
2596 extern _IDEC_flags __bid_testSavedFlags (_IDEC_flags savedflags,
2597 _IDEC_flags flagsmask);
2599 extern void __bid_restoreFlags (_IDEC_flags flagsvalues,
2600 _IDEC_flags flagsmask _EXC_FLAGS_PARAM);
2602 extern _IDEC_flags __bid_saveFlags (_IDEC_flags flagsmask
2605 extern _IDEC_flags __bid_saveFlags (_IDEC_flags flagsmask
2608 #if !DECIMAL_GLOBAL_ROUNDING
2609 _IDEC_round __bid_getDecimalRoundingDirection (_IDEC_round rnd_mode);
2611 _IDEC_round __bid_getDecimalRoundingDirection (void);
2614 #if !DECIMAL_GLOBAL_ROUNDING
2615 _IDEC_round __bid_setDecimalRoundingDirection (_IDEC_round
2618 void __bid_setDecimalRoundingDirection (_IDEC_round rounding_mode);
2623 // Internal Functions
2626 __bid_round64_2_18 (int q,
2631 int *ptr_is_midpoint_lt_even,
2632 int *ptr_is_midpoint_gt_even,
2633 int *ptr_is_inexact_lt_midpoint,
2634 int *ptr_is_inexact_gt_midpoint);
2637 __bid_round128_19_38 (int q,
2640 UINT128 * ptr_Cstar,
2642 int *ptr_is_midpoint_lt_even,
2643 int *ptr_is_midpoint_gt_even,
2644 int *ptr_is_inexact_lt_midpoint,
2645 int *ptr_is_inexact_gt_midpoint);
2648 __bid_round192_39_57 (int q,
2651 UINT192 * ptr_Cstar,
2653 int *ptr_is_midpoint_lt_even,
2654 int *ptr_is_midpoint_gt_even,
2655 int *ptr_is_inexact_lt_midpoint,
2656 int *ptr_is_inexact_gt_midpoint);
2659 __bid_round256_58_76 (int q,
2662 UINT256 * ptr_Cstar,
2664 int *ptr_is_midpoint_lt_even,
2665 int *ptr_is_midpoint_gt_even,
2666 int *ptr_is_inexact_lt_midpoint,
2667 int *ptr_is_inexact_gt_midpoint);
2671 // Prototypes for internal functions
2673 __bid_full_round64_remainder (UINT64 sign, int exponent, UINT128 P,
2674 int extra_digits, UINT64 remainder_P,
2675 int rounding_mode, unsigned *fpsc,
2676 unsigned uf_status);