=================================================================== ======== Intel(R) Decimal Floating-Point Math Library v1.0 ======== =================================================================== Jan. 21, 2008 1. INTRODUCTION =============== This package contains Release 1.0 of the Intel(R) Decimal Floating-Point Math Library, which is an evolution of the Intel IEEE 754R Decimal Floating-Point BID* Library v1.0 released in 2007, and posted at http://www3.intel.com/cd/software/products/asmo-na/eng/219861.htm. Changes from v1.0 include: a unified way to print the NaN sign for all 64-bit and 128-bit decimal FP formats; one error fixed in the test vector set associated with the library in readtest.in (does not affect the library code); one error fixed in the 128-bit fma function (which was causing the result to be off by 1 ulp in one special case, but only when rounding to nearest-away); one error fixed in the test code for signalException. The library implements the functions defined for decimal floating-point arithmetic operations in the 'DRAFT Standard for Floating-Point Arithmetic P754', which is a revision of the IEEE Standard 754-1985 for Binary Floating-Point Arithmetic. There is no IEEE publication of the revised standard draft at the present time, but on-line resources such as Wikipedia (search for 'IEEE 754r') offer ample information and links to relevant sites. The 'DRAFT Standard for Floating-Point Arithmetic P754' supports two encoding formats: the decimal encoding format, and the binary encoding format. The Intel(R) Decimal Floating-Point Math Library supports primarily the binary encoding format for decimal floating-point values, but the decimal encoding format is supported too in the library, by means of conversion functions(*) between the two encoding formats. Release 1.0 of the library contained in this package implements all the operations mandated by the 'DRAFT Standard for Floating-Point Arithmetic P754'. Alternate exception handling (not a mandatory feature) is not supported currently in the library, but the design facilitates adding it in the future. It is worth noting that several useful functions (not part of the IEEE 754R definition) are provided in LIBRARY/bid_round.c. They can be used to round a q-digit decimal integer number represented in binary to q - x digits (1 <= x <= q - 1). For operations involving integer operands or results, the library supports signed and unsigned 8-, 16-, 32-, and 64-bit integers. 2. PACKAGE CONTENTS =================== This package contains: - eula.txt, a copy of the end user license agreement that applies to this package - this README FILE - the LIBRARY subdirectory with all the source files necessary to build the library, and a README file which specifies how to build the library in Linux**, HP-UX**, Windows***, and other operating systems; a small set of command files (RUNLINUX, RUNWINDOWS, etc.) can be used to build the library with different options - the TESTS subdirectory with source and input files necessary to build and run a reduced set of tests for the library (20k+ test cases), and a README file which specifies how to build and run these tests; the test program will print the number of errors detected; note that tests involving 80-bit binary floating-point values (these are only conversions to and from decimal floating-point formats) are skipped if the 80-bit floating-point data type is not supported; a small set of command files (RUNLINUX, RUNWINDOWS, etc.) can be used to build and run the tests with different options - the EXAMPLES subdirectory containing eight examples of calls to library functions with various combinations of build options (see Section 8 below); a README file is included; a small set of command files (RUNLINUX, RUNWINDOWS, etc.) can be used to build and run the examples with different options 3. FUNCTION NAMES ================= The function names used in the library are not identical to the names from the 'DRAFT Standard for Floating-Point Arithmetic P754'. The mapping between the two sets is given in Section 10 below. The function names can be changed by editing the #define statements at the beginning of bid_conf.h. 4. LIBRARY BUILD OPTIONS ======================== The API for the library functions is intended to support constant modes, global dynamic modes, and scoped dynamic modes. It should be convenient for compilers with various requirements, even where default modes and no flag tests can be assumed, as in C99 FENV_ACCESS OFF. Three build options are provided, that can be set by editing LIBRARY/bid_conf.h, or (more conveniently) can be set on the compile command line. (a) Function arguments and return values can be passed by reference if DECIMAL_CALL_BY_REFERENCE is set to 1, or by value otherwise. However, the floating-point status flags argument is passed by reference even when DECIMAL_CALL_BY_REFERENCE is 0, unless it is stored in a global variable (see (c) below). (b) The value of the rounding mode can be passed by reference or by value, or it can be stored in a global variable if DECIMAL_GLOBAL_ROUNDING is set to 1. If DECIMAL_GLOBAL_ROUNDING is set to 1 then the rounding mode is stored in a global variable that must be declared as _IDEC_round __bid_IDEC_glbround; In this case __bid_IDEC_glbround is a fixed name that *must* be used (but it can be changed by editing the corresponding #define in bid_conf.h). Its initial value should be ROUNDING_TO_NEAREST (or an equivalent value with a name chosen by the user, as shown in code samples from EXAMPLES where _IDEC_nearesteven is used). The _IDEC_round type name can be different (but equivalent), chosen by the user. (c) The value of the exception status flags is passed by reference if they are not represented by a global variable, or it can be stored in a global variable if DECIMAL_GLOBAL_EXCEPTION_FLAGS is set to 1. If DECIMAL_GLOBAL_EXCEPTION_FLAGS is set to 1 then the exception status flags are stored in a global variable that must be declared as _IDEC_flags __bid_IDEC_glbflags; In this case __bid_IDEC_glbflags is a fixed name that *must* be used but it can be changed by editing the corresponding #define in bid_conf.h). Its initial value should be EXACT_STATUS (or an equivalent value with a name chosen by the user, as shown in code samples from EXAMPLES where _IDEC_allflagsclear is used). The _IDEC_flags type name can be different (but equivalent), chosen by the user. The three build options supported in this release are selected on the 'make' command line when building the library in LIBRARY and the tests in TESTS using the makefile-s provided here (so editing bid_conf.h is not necessary). For example when using the Intel(R) C++ Compiler in Linux**: make OS_TYPE=LINUX CC=icc CALL_BY_REF=0 GLOBAL_RND=0 GLOBAL_FLAGS=0 selects parameter passing by value; the rounding mode is a parameter passed to each function that requires it; the status flags are passed as a parameter to functions that may modify them (note however that the status flags represent an exception in that the CALL_BY_REF setting is ignored - if not global, they are always passed by reference). Another example, when using the Intel(R) C++ Compiler in Windows*** is: make OS_TYPE=WIN CC=icl CALL_BY_REF=1 GLOBAL_RND=1 GLOBAL_FLAGS=1 where parameters are passed by reference; the rounding mode is a global variable; the status flags are stored in a global variable. 5. FUNCTION PROTOTYPES ====================== Function prototypes are provided in LIBRARY/bid_functions.h (shown separately if parameters are passed by reference, and if they are passed by value). 6. TESTING ========== The library was tested to date on several different platforms (IA-32 Architecture, Intel(R) 64, and IA-64 Architecture running Linux**, Windows***, HP-UX**, and OSX**). For example in Linux** icc (Intel(R) C++ Compiler 9.1 or newer) and gcc** were used. In Windows*** icl (Intel(R) C++ Compiler 9.1 or newer) and cl (Microsoft*** Visual C++ Compiler) were used. For each of these combinations eight combinations of parameter passing method and global or local rounding mode and status flags were tested. 7. CHANGES FROM THE BETA RELEASE ================================= Support was added for all 'FormatOf' decimal floating-point operations that may have operands and results of different formats, and were implemented only as homogeneous operations in the beta release (add, sub, mul, div, sqrt, fma). Adjustments were made to comply with the most recent version of the 'DRAFT Standard for Floating-Point Arithmetic P754'. Conversions from decimal to string format are exact, and do not have a rounding mode parameter anymore. The library footprint was reduced. (Note that much of the space in the library is taken by tables that allow for correctly rounded conversions between binary and decimal floating-point formats, used by functions contained in bid_binarydecimal.h). 8. USAGE EXAMPLES ================= Eight usage examples are given in the EXAMPLES subdirectory, which illustrate calls to library functions with various combinations of build options (see Section 4 above). A README file is included. Note that these examples do not use any include files from the library: the necessary data types are defined instead directly in the user-defined decimal.h. However, if the rounding mode or exception status flags are stored in global variables, then these must have the fixed names of _IDEC_glbround and _IDEC_glbflags. Alternatively - and this is the preferred method, one could use the data types defined in the library by including two header files (and in this case DECIMAL_CALL_BY_REFERENCE, DECIMAL_GLOBAL_ROUNDING, and DECIMAL_GLOBAL_EXCEPTION_FLAGS would have to be properly defined not only when building the library, but also for the application calling the library functions): #include "../LIBRARY/bid_conf.h" #include "../LIBRARY/bid_functions.h" Such an example is represented by the readtest program in TESTS/readtest.c. 9. DECIMAL AND BINARY STATUS FLAGS ================================== The IEEE Standard Draft P754 specifies distinct rounding modes for binary and for decimal floating-point operations. However, the floating-point status flags may be identical for decimal and binary computations. In this implementation of the decimal arithmetic, the decimal floating-point status flags are kept separate from the binary flags. However, it is possible to merge the two sets (outside the library). One issue that has to be pointed out is that the current implementation of the decimal floating-point library may set the binary inexact status flag for certain operations: division, square root, and several other operations where internally integers are converted to floating-point values, and the conversion is inexact. In order to avoid setting the binary inexact flag by decimal division and square root operations, uncomment the following line in bid_conf.h prior to building the library: // #define UNCHANGED_BINARY_STATUS_FLAGS However, there is no provision to avoid setting the binary inexact status flag due to inexact integer-to-floating-point conversions - this depends also on the compiler being used - in a subset of the following: 128-bit remainder/logb/quantize 64-bit addition/subtraction/multiplication/fused multiply-add/quantize, decimal conversion from a wider to a narrower format It is expected that code will be added to the library to avoid setting the binary inexact status flag by the time the Draft Standard IEEE 754R is adopted, and all possible changes to it are finalized. 10. MAPPING OF IEEE 754R NAMES TO INTEL IEEE (R) DECIMAL FP MATH LIBRARY FUNCTION NAMES ========================================================================= Operand and result types are included, where: BID64 = the 64-bit decimal floating-point format using the binary encoding; this becomes UINT64 in the library BID128 = the 128-bit decimal floating-point format using the binary encoding ; this becomes UINT128 in the library binary32 = 32-bit binary floating-point data format binary64 = 64-bit binary floating-point data format binary80 = 80-bit binary floating-point data format binary128 = 128-bit binary floating-point data format string = char * boolean = int enum = int _IDEC_flags = int _IDEC_round = int The following list will be finalized after the Draft Standard IEEE 754R is adopted. The library function names shown here can be changed by editing #define statements in bid_conf.h. ================================================================================ IEEE 754R Name Opd1 Opd2 Opd3 Result Intel IEEE 754R DFP BID Library Name ================================================================================ roundToIntegralTiesToEven BID64 BID64 __bid64_round_integral_nearest_even BID128 BID128 __bid128_round_integral_nearest_even roundToIntegralTiesToAway BID64 BID64 __bid64_round_integral_nearest_away BID128 BID128 __bid128_round_integral_nearest_away roundToIntegralTiesTowardZero BID64 BID64 __bid64_round_integral_zero BID128 BID128 __bid128_round_integral_zero roundToIntegralTiesTowardPositive BID64 BID64 __bid64_round_integral_positive BID128 BID128 __bid128_round_integral_positive roundToIntegralTiesTowardNegative BID64 BID64 __bid64_round_integral_negative BID128 BID128 __bid128_round_integral_negative roundToIntegralExact BID64 BID64 __bid64_round_integral_inexact BID128 BID128 __bid128_round_integral_inexact nextUp BID64 BID64 __bid64_nextup BID128 BID128 __bid128_nextup nextDown BID64 BID64 __bid64_nextdown BID128 BID128 __bid128_nextdown nextAfter BID64 BID64 BID64 __bid64_nextafter BID128 BID128 BID128 __bid128_nextafter remainder BID64 BID64 BID64 __bid64_rem BID128 BID128 BID128 __bid128_rem minNum BID64 BID64 BID64 __bid64_minnum BID128 BID128 BID128 __bid128_minnum maxNum BID64 BID64 BID64 __bid64_maxnum BID128 BID128 BID128 __bid128_maxnum minNumMag BID64 BID64 BID64 __bid64_minnum_mag BID128 BID128 BID128 __bid128_minnum_mag maxNumMag BID64 BID64 BID64 __bid64_maxnum_mag BID128 BID128 BID128 __bid128_maxnum_mag quantize BID64 BID64 BID64 __bid64_quantize BID128 BID128 BID128 __bid128_quantize logB BID64 BID64 __bid64_logb BID128 BID128 __bid128_logb scaleB BID64 BID64 BID64 __bid64_scalb BID128 BID128 BID128 __bid128_scalb addition BID64 BID64 BID64 __bid64_add BID128 BID128 BID128 __bid128_add subtraction BID64 BID64 BID64 __bid64_sub BID128 BID128 BID128 __bid128_sub multiplication BID64 BID64 BID64 __bid64_mul BID128 BID128 BID128 __bid128_mul division BID64 BID64 BID64 __bid64_div BID128 BID128 BID128 __bid128_div square Root BID64 BID64 __bid64_sqrt BID128 BID128 __bid128_sqrt fusedMultiplyAdd BID64 BID64 BID64 BID64 __bid64_fma BID128 BID128 BID128 BID128 __bid128_fma convert int32 BID64 __bid64_from_int32 uint32 BID64 __bid64_from_uint32 int64 BID64 __bid64_from_int64 uint64 BID64 __bid64_from_uint64 int32 BID128 __bid128_from_int32 uint32 BID128 __bid128_from_uint32 int64 BID128 __bid128_from_int64 uint64 BID128 __bid128_from_uint64 convertToIntegerTiesToEven BID64 int32 __bid64_to_int32_rnint BID64 uint32 __bid64_to_uint32_rnint BID64 int64 __bid64_to_int64_rnint BID64 uint64 __bid64_to_uint64_rnint BID128 int32 __bid128_to_int32_rnint BID128 uint32 __bid128_to_uint32_rnint BID128 int64 __bid128_to_int64_rnint BID128 uint64 __bid128_to_uint64_rnint convertToIntegerTowardZero BID64 int32 __bid64_to_int32_int BID64 uint32 __bid64_to_uint32_int BID64 int64 __bid64_to_int64_int BID64 uint64 __bid64_to_uint64_int BID128 int32 __bid128_to_int32_int BID128 uint32 __bid128_to_uint32_int BID128 int64 __bid128_to_int64_int BID128 uint64 __bid128_to_uint64_int convertToIntegerTowardPositive BID64 int32 __bid64_to_int32_ceil BID64 uint32 __bid64_to_uint32_ceil BID64 int64 __bid64_to_int64_ceil BID64 uint64 __bid64_to_uint64_ceil BID128 int32 __bid128_to_int32_ceil BID128 uint32 __bid128_to_uint32_ceil BID128 int64 __bid128_to_int64_ceil BID128 uint64 __bid128_to_uint64_ceil convertToIntegerTowardNegative BID64 int32 __bid64_to_int32_floor BID64 int32 __bid64_to_uint32_floor BID64 int64 __bid64_to_int64_floor BID64 uint64 __bid64_to_uint64_floor BID128 int32 __bid128_to_int32_floor BID128 uint32 __bid128_to_uint32_floor BID128 int64 __bid128_to_int64_floor BID128 uint64 __bid128_to_uint64_floor convertToIntegerTiesToAway BID64 int32 __bid64_to_int32_rninta BID64 uint32 __bid64_to_uint32_rninta BID64 int64 __bid64_to_int64_rninta BID64 uint64 __bid64_to_uint64_rninta BID128 int32 __bid128_to_int32_rninta BID128 uint32 __bid128_to_uint32_rninta BID128 int64 __bid128_to_int64_rninta BID128 uint64 __bid128_to_uint64_rninta convertToIntegerExactTiesToEven BID64 int32 __bid64_to_int32_xrnint BID64 uint32 __bid64_to_uint32_xrnint BID64 int64 __bid64_to_int64_xrnint BID64 uint64 __bid64_to_uint64_xrnint BID128 int32 __bid128_to_int32_xrnint BID128 uint32 __bid128_to_uint32_xrnint BID128 int64 __bid128_to_int64_xrnint BID128 uint64 __bid128_to_uint64_xrnint convertToIntegerExactTowardZero BID64 int32 __bid64_to_int32_xint BID64 uint32 __bid64_to_uint32_xint BID64 int64 __bid64_to_int64_xint BID64 uint64 __bid64_to_uint64_xint BID128 int32 __bid128_to_int32_xint BID128 uint32 __bid128_to_uint32_xint BID128 int64 __bid128_to_int64_xint BID128 uint64 __bid128_to_uint64_xint convertToIntegerExactTowardPositive BID64 int32 __bid64_to_int32_xceil BID64 uint32 __bid64_to_uint32_xceil BID64 int64 __bid64_to_int64_xceil BID64 uint64 __bid64_to_uint64_xceil BID128 int32 __bid128_to_int32_xceil BID128 uint32 __bid128_to_uint32_xceil BID128 int64 __bid128_to_int64_xceil BID128 uint64 __bid128_to_uint64_xceil convertToIntegerExactTowardNegative BID64 int32 __bid64_to_int32_xfloor BID64 uint32 __bid64_to_uint32_xfloor BID64 int64 __bid64_to_int64_xfloor BID64 uint64 __bid64_to_uint64_xfloor BID128 int32 __bid128_to_int32_xfloor BID128 uint32 __bid128_to_uint32_xfloor BID128 int64 __bid128_to_int64_xfloor BID128 uint64 __bid128_to_uint64_xfloor convertToIntegerExactTiesToAway BID64 int32 __bid64_to_int32_xrninta BID64 uint32 __bid64_to_uint32_xrninta BID64 int64 __bid64_to_int64_rninta BID64 uint64 __bid64_to_uint64_xrninta BID128 int32 __bid128_to_int32_xrninta BID128 uint32 __bid128_to_uint32_xrninta BID128 int64 __bid128_to_int64_xrninta BID128 uint64 __bid128_to_uint64_xrninta convert BID32 BID64 __bid32_to_bid64 BID32 BID128 __bid32_to_bid128 BID32 bin32 __bid32_to_binary32 BID32 bin64 __bid32_to_binary64 BID32 bin80 __bid32_to_binary80 BID32 bin128 __bid32_to_binary128 BID64 BID32 __bid64_to_bid32 BID64 BID128 __bid64_to_bid128 BID64 bin32 __bid64_to_binary32 BID64 bin64 __bid64_to_binary64 BID64 bin80 __bid64_to_binary80 BID64 bin128 __bid64_to_binary128 BID128 BID32 __bid128_to_bid32 BID128 BID64 __bid128_to_bid64 BID128 bin32 __bid128_to_binary32 BID128 bin64 __bid128_to_binary64 BID128 bin80 __bid128_to_binary80 BID128 bin128 __bid128_to_binary128 bin32 BID32 __binary32_to_bid32 bin32 BID64 __binary32_to_bid64 bin32 BID128 __binary32_to_bid128 bin64 BID32 __binary64_to_bid32 bin64 BID64 __binary64_to_bid64 bin64 BID128 __binary64_to_bid128 bin80 BID32 __binary80_to_bid32 bin80 BID64 __binary80_to_bid64 bin80 BID128 __binary80_to_bid128 bin128 BID32 __binary128_to_bid32 bin128 BID64 __binary128_to_bid64 bin128 BID128 __binary128_to_bid128 convertFromDecimalCharacter string BID64 __bid64_from_string string BID128 __bid128_from_string convertToDecimalCharacter BID64 string __bid64_to_string BID128 string __bid128_to_string copy BID64 BID64 __bid64_copy BID128 BID128 __bid128_copy negate BID64 BID64 __bid64_negate BID128 BID128 __bid128_negate abs BID64 BID64 __bid64_abs BID128 BID128 __bid128_abs copySign BID64 BID64 BID64 __bid64_copySign BID128 BID128 BID128 __bid128_copySign encodeDecimal BID32 DPD32 __bid_to_dpd32 (*) BID64 DPD64 __bid_to_dpd64 (*) BID128 DPD128 __bid_to_dpd128 (*) decodeDecimal DPD32 BID32 __dpd_to_bid32 (*) DPD64 BID64 __dpd_to_bid64 (*) DPD128 BID128 __dpd_to_bid128 (*) compareEqual BID64 BID64 boolean __bid64_quiet_equal BID128 BID128 boolean __bid128_quiet_equal compareNotEqual BID64 BID64 boolean __bid64_quiet_not_equal BID128 BID128 boolean __bid128_quiet_not_equal compareGreater BID64 BID64 boolean __bid64_signaling_greater BID128 BID128 boolean __bid128_signaling_greater compareGreaterEqual BID64 BID64 boolean __bid64_signaling_greater_equal BID128 BID128 boolean __bid128_signaling_greater_equal compareLess BID64 BID64 boolean __bid64_signaling_less BID128 BID128 boolean __bid128_signaling_less compareLessEqual BID64 BID64 boolean __bid64_signaling_less_equal BID128 BID128 boolean __bid128_signaling_less_equal compareSignalingNotGreater BID64 BID64 boolean __bid64_signaling_not_greater BID128 BID128 boolean __bid128_signaling_not_greater compareSignalingLessUnordered BID64 BID64 boolean __bid64_signaling_less_unordered BID128 BID128 boolean __bid128_signaling_less_unordered compareSignalingNotLess BID64 BID64 boolean __bid64_signaling_not_less BID128 BID128 boolean __bid128_signaling_not_less compareSignalingGreaterUnordered BID64 BID64 boolean __bid64_signaling_greater_unordered BID128 BID128 boolean __bid128_signaling_greater_unordered compareQuietGreater BID64 BID64 boolean __bid64_quiet_greater BID128 BID128 boolean __bid128_quiet_greater compareQuietGreaterEqual BID64 BID64 boolean __bid64_quiet_greater BID128 BID128 boolean __bid128_quiet_greater compareQuietLess BID64 BID64 boolean __bid64_quiet_less BID128 BID128 boolean __bid128_quiet_less compareQuietLessEqual BID64 BID64 boolean __bid64_quiet_less_equal BID128 BID128 boolean __bid128_quiet_less_equal compareUnordered BID64 BID64 boolean __bid64_quiet_unordered BID128 BID128 boolean __bid128_quiet_unordered compareQuietNotGreater BID64 BID64 boolean __bid64_quiet_not_greater BID128 BID128 boolean __bid128_quiet_not_greater compareQuietLessUnordered BID64 BID64 boolean __bid64_quiet_less_unordered BID128 BID128 boolean __bid128_quiet_less_unordered compareQuietNotLess BID64 BID64 boolean __bid64_quiet_not_less BID128 BID128 boolean __bid128_quiet_not_less compareQuietGreaterUnordered BID64 BID64 boolean __bid64_quiet_greater_unordered BID128 BID128 boolean __bid128_quiet_greater_unordered compareOrdered BID64 BID64 boolean __bid64_quiet_ordered BID128 BID128 boolean __bid128_quiet_ordered N/A BID64 BID64 boolean __bid64_signaling_equal BID128 BID128 boolean __bid128_signaling_equal N/A BID64 BID64 boolean __bid64_signaling_not_equal BID128 BID128 boolean __bid128_signaling_not_equal N/A BID64 BID64 boolean __bid64_signaling_unordered BID128 BID128 boolean __bid128_signaling_unordered N/A BID64 BID64 boolean __bid64_signaling_ordered BID128 BID128 boolean __bid128_signaling_ordered signalException IDEC_flags *IDEC_flags __bid__signalException is754version1985 int __bid_is754 is754version2007 int __bid_is754R isSigned BID64 boolean __bid64_isSigned BID128 boolean __bid128_isSigned isNormal BID64 boolean __bid64_isNormal BID128 boolean __bid128_isNormal isFinite BID64 boolean __bid64_isFinite BID128 boolean __bid128_isFinite isZero BID64 boolean __bid64_isZero BID128 boolean __bid128_isZero isSubnormal BID64 boolean __bid64_isSubnormal BID128 boolean __bid128_isSubnormal isInfinity BID64 boolean __bid64_isInf BID128 boolean __bid128_isInf isNaN BID64 boolean __bid64_isNaN BID128 boolean __bid128_isNaN isSignaling BID64 boolean __bid64_isSignaling BID128 boolean __bid128_isSignaling isCanonical BID64 boolean __bid64_isCanonical BID128 boolean __bid128_isCanonical radix BID64 boolean __bid64_radix BID128 boolean __bid128_radix class BID64 enum __bid64_class BID128 enum __bid128_class totalOrder BID64 BID64 boolean __bid64_totalOrder BID128 BID128 boolean __bid128_totalOrder totalOrderMag BID64 BID64 boolean __bid64_totalOrderMag BID128 BID128 boolean __bid128_totalOrderMag sameQuantum BID64 BID64 boolean __bid64_sameQuantum BID128 BID128 boolean __bid128_sameQuantum lowerFlags _IDEC_flags __bid_lowerFlags testFlags _IDEC_flags boolean __bid_testFlags testSavedFlags _IDEC_flags _IDEC_flags boolean __bid_testSavedFlags restoreFlags _IDEC_flags _IDEC_flags __bid_restoreFlags saveFlags _IDEC_flags IDEC_flags __bid_saveFlags getDecimalRoundingDirection _IDEC_round __bid_getDecimalRoundingDirection setDecimalRoundingDirection _IDEC_round __bid_setDecimalRoundingDirection 11. DESCRIPTION OF THE INTEL (R) DECIMAL FP MATH LIBRARY FUNCTIONS This section gives brief descriptions of the functions available in the Intel (R) Decimal Floating-Point Math Library v1.0. The prototypes are shown assuming all arguments are passed by value, the rounding mode variable is passed as an argument to each function that requires it, a pointer to a variable containing the status flags is passed to each function that requires it, and alternate exception handling is not supported. The function prototypes for other variants allowed for building the library can be determined from header files bid_functions.h and bid_conf.h, which contain also all the type definitions used in the following description, as well as the possible values of the rounding mode variable rnd_mode and the positions of the individual status flags in the status word *pfpsf. Notes: 1. Three decimal floating-point formats are supported, as defined in Draft Standard IEEE 754-2007: 32-bit (storage only), 64-bit, and 128-bit. The data types used in the library for entities in the three formats are UINT32, UINT64, and UINT128 which can be mapped externally to types of appropriate sizes and alignments but having different names, for example _Decimal32, _Decimal64, and _Decimal128. The maximum numbers of decimal digits in the significand of numerical values represented in these three formats are: P = 7 decimal digits for the 32-bit decimal floating-point format P = 16 decimal digits for the 64-bit decimal floating-point format P = 34 decimal digits for the 128-bit decimal floating-point format The ranges for normal decimal floating-point numbers are (in magnitude): 1.000000 * 10^(-95) <= x <= 9.999999 * 10^96 for 32-bit format 1.0...0 * 10^(-383) <= x <= 9.9...9 * 10^384 for 64-bit format 1.0...0 * 10^(-6143) <= x <= 9.9...9 * 10^6144 for 128-bit format The ranges for subnormal decimal floating-point numbers are (in magnitude): 0.000001 * 10^(-95) <= x <= 0.999999 * 10^(-95) for 32-bit format 0.0...01 * 10^(-383) <= x <= 0.9...9 * 10^(-383) for 64-bit format 0.0...01 * 10^(-6144) <= x <= 0.9...9 * 10^(-6144) for 128-bit format Operations with decimal floating-point results usually choose one representation of the result from among several possible that have the same numerical value (constituting a 'cohort'). The chosen representation must have the 'preferred exponent' specified in the Draft Standard 754R. (For example 1.0 * 10^(-2) + 10.0 * 10^(-3) = 20.0 * 10^(-3), and not 2.0 * 10^(-2).) The encoding methods for decimal floating-point values are not explained here. Decimal floating-point values can be encoded using the string-to-decimal conversion functions (__bid64_from_string and __bid64_from_string), or decoded using the decimal-to-string conversion functions (__bid64_to_string and __bid64_to_string). 2. The acronym 'dpd' or 'DPD' is used to identify the decimal encoding method for decimal floating-point values, defined in Draft Standard IEEE 754-2007. The acronym 'bid' or 'BID' is used to identify the binary encoding method for decimal floating-point values, defined in Draft Standard IEEE 754-2007. 3. The library functions that operate on decimal floating-point values do so on values encoded in BID format. 4. The floating-point status flags for inexact result, underflow, overflow, division by zero and invalid operation are denoted by P, U, O, Z, I respectively The following list will be finalized after the Draft Standard IEEE 754R is adopted. The function names can be changed by editing #define statements in bid_conf.h. =============================================================================== FUNCTION: Convert a 32-bit decimal floating-point value encoded in BID format to the same value encoded in DPD format PROTOTYPE: UINT32 __bid_to_dpd32 ( UINT32 px); FLOATING-POINT EXCEPTIONS: none FUNCTION: Convert a 64-bit decimal floating-point value encoded in BID format to the same value encoded in DPD format PROTOTYPE: UINT64 __bid_to_dpd64 ( UINT64 px); FLOATING-POINT EXCEPTIONS: none FUNCTION: Convert a 128-bit decimal floating-point value encoded in BID format to the same value encoded in DPD format PROTOTYPE: UINT128 __bid_to_dpd128 ( UINT128 px); FLOATING-POINT EXCEPTIONS: none FUNCTION: Convert a 32-bit decimal floating-point value encoded in DPD format to the same value encoded in BID format PROTOTYPE: UINT32 __bid_dpd_to_bid32 ( UINT32 px); FLOATING-POINT EXCEPTIONS: none FUNCTION: Convert a 64-bit decimal floating-point value encoded in DPD format to the same value encoded in BID format PROTOTYPE: UINT64 __bid_dpd_to_bid64 ( UINT64 px); FLOATING-POINT EXCEPTIONS: none FUNCTION: Convert a 128-bit decimal floating-point value encoded in DPD format to the same value encoded in BID format PROTOTYPE: UINT128 __bid_dpd_to_bid128 ( UINT128 px); FLOATING-POINT EXCEPTIONS: none FUNCTION: Decimal floating-point addition, UINT64 + UINT64 -> UINT128 PROTOTYPE: UINT128 __bid128dd_add ( UINT64 x, UINT64 y, _IDEC_round rnd_mode, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, U, O, I FUNCTION: Decimal floating-point addition, UINT64 + UINT128 -> UINT128 PROTOTYPE: UINT128 __bid128dq_add ( UINT64 x, UINT128 y, _IDEC_round rnd_mode, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, U, O, I FUNCTION: Decimal floating-point addition, UINT128 + UINT64 -> UINT128 PROTOTYPE: UINT128 __bid128qd_add ( UINT128 x, UINT64 y, _IDEC_round rnd_mode, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, U, O, I FUNCTION: Decimal floating-point addition, UINT128 + UINT128 -> UINT128 PROTOTYPE: UINT128 __bid128_add ( UINT128 x, UINT128 y, _IDEC_round rnd_mode, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, U, O, I FUNCTION: Decimal floating-point subtraction, UINT64 - UINT64 -> UINT128 PROTOTYPE: UINT128 __bid128dd_sub ( UINT64 x, UINT64 y, _IDEC_round rnd_mode, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, U, O, I FUNCTION: Decimal floating-point subtraction, UINT64 - UINT128 -> UINT128 PROTOTYPE: UINT128 __bid128dq_sub ( UINT64 x, UINT128 y, _IDEC_round rnd_mode, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, U, O, I FUNCTION: Decimal floating-point subtraction, UINT128 - UINT64 -> UINT128 PROTOTYPE: UINT128 __bid128qd_sub ( UINT128 x, UINT64 y, _IDEC_round rnd_mode, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, U, O, I FUNCTION: Decimal floating-point subtraction, UINT128 - UINT128 -> UINT128 PROTOTYPE: UINT128 __bid128_sub ( UINT128 x, UINT128 y, _IDEC_round rnd_mode, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, U, O, I FUNCTION: Decimal floating-point multiplication, UINT64 * UINT64 -> UINT128 PROTOTYPE: UINT128 __bid128dd_mul ( UINT64 x, UINT64 y, _IDEC_round rnd_mode, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, U, O, I FUNCTION: Decimal floating-point multiplication, UINT64 * UINT128 -> UINT128 PROTOTYPE: UINT128 __bid128dq_mul ( UINT64 x, UINT128 y, _IDEC_round rnd_mode, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, U, O, I FUNCTION: Decimal floating-point multiplication, UINT128 * UINT64 -> UINT128 PROTOTYPE: UINT128 __bid128qd_mul ( UINT128 x, UINT64 y, _IDEC_round rnd_mode, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, U, O, I FUNCTION: Decimal floating-point multiplication, UINT128 * UINT128 -> UINT128 PROTOTYPE: UINT128 __bid128_mul ( UINT128 x, UINT128 y, _IDEC_round rnd_mode, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, U, O, I FUNCTION: Decimal floating-point division, UINT128 / UINT128 -> UINT128 PROTOTYPE: UINT128 __bid128_div ( UINT128 x, UINT128 y, _IDEC_round rnd_mode, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, U, O, I FUNCTION: Decimal floating-point division, UINT64 / UINT64 -> UINT128 PROTOTYPE: UINT128 __bid128dd_div ( UINT64 x, UINT64 y, _IDEC_round rnd_mode, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, U, O, Z, I FUNCTION: Decimal floating-point division, UINT64 / UINT128 -> UINT128 PROTOTYPE: UINT128 __bid128dq_div ( UINT64 x, UINT128 y, _IDEC_round rnd_mode, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, U, O, Z, I FUNCTION: Decimal floating-point division, UINT128 / UINT64 -> UINT128 PROTOTYPE: UINT128 __bid128qd_div ( UINT128 x, UINT64 y, _IDEC_round rnd_mode, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, U, O, Z, I FUNCTION: Decimal floating-point fused multiply-add, UINT128 * UINT128 + UINT128 -> UINT128 PROTOTYPE: UINT128 __bid128_fma ( UINT128 x, UINT128 y, UINT128 z, _IDEC_round rnd_mode, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, U, O, I FUNCTION: Decimal floating-point fused multiply-add, UINT64 * UINT64 + UINT64 -> UINT128 PROTOTYPE: UINT128 __bid128ddd_fma ( UINT64 x, UINT64 y, UINT64 z, _IDEC_round rnd_mode, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, U, O, I FUNCTION: Decimal floating-point fused multiply-add, UINT64 * UINT64 + UINT128 -> UINT128 PROTOTYPE: UINT128 __bid128ddq_fma ( UINT64 x, UINT64 y, UINT128 z, _IDEC_round rnd_mode, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, U, O, I FUNCTION: Decimal floating-point fused multiply-add, UINT64 * UINT128 + UINT64 -> UINT128 PROTOTYPE: UINT128 __bid128dqd_fma ( UINT64 x, UINT128 y, UINT64 z, _IDEC_round rnd_mode, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, U, O, I FUNCTION: Decimal floating-point fused multiply-add, UINT64 * UINT128 + UINT128 -> UINT128 PROTOTYPE: UINT128 __bid128dqq_fma ( UINT64 x, UINT128 y, UINT128 z, _IDEC_round rnd_mode, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, U, O, I FUNCTION: Decimal floating-point fused multiply-add, UINT128 * UINT64 + UINT64 -> UINT128 PROTOTYPE: UINT128 __bid128qdd_fma ( UINT128 x, UINT64 y, UINT64 z, _IDEC_round rnd_mode, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, U, O, I FUNCTION: Decimal floating-point fused multiply-add, UINT128 * UINT64 + UINT128 -> UINT128 PROTOTYPE: UINT128 __bid128qdq_fma ( UINT128 x, UINT64 y, UINT128 z, _IDEC_round rnd_mode, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, U, O, I FUNCTION: Decimal floating-point fused multiply-add, UINT128 * UINT128 + UINT64 -> UINT128 PROTOTYPE: UINT128 __bid128qqd_fma ( UINT128 x, UINT128 y, UINT64 z, _IDEC_round rnd_mode, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, U, O, I FUNCTION: Decimal floating-point fused multiply-add, UINT64 * UINT64 + UINT128 -> UINT64 PROTOTYPE: UINT64 __bid64ddq_fma ( UINT64 x, UINT64 y, UINT128 z, _IDEC_round rnd_mode, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, U, O, I FUNCTION: Decimal floating-point fused multiply-add, UINT64 * UINT128 + UINT64 -> UINT64 PROTOTYPE: UINT64 __bid64dqd_fma ( UINT64 x, UINT128 y, UINT64 z, _IDEC_round rnd_mode, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, U, O, I FUNCTION: Decimal floating-point fused multiply-add, UINT64 * UINT128 + UINT128 -> UINT64 PROTOTYPE: UINT64 __bid64dqq_fma ( UINT64 x, UINT128 y, UINT128 z, _IDEC_round rnd_mode, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, U, O, I FUNCTION: Decimal floating-point fused multiply-add, UINT128 * UINT64 + UINT64 -> UINT64 PROTOTYPE: UINT64 __bid64qdd_fma ( UINT128 x, UINT64 y, UINT64 z, _IDEC_round rnd_mode, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, U, O, I FUNCTION: Decimal floating-point fused multiply-add, UINT128 * UINT64 + UINT128 -> UINT64 PROTOTYPE: UINT64 __bid64qdq_fma ( UINT128 x, UINT64 y, UINT128 z, _IDEC_round rnd_mode, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, U, O, I FUNCTION: Decimal floating-point fused multiply-add, UINT128 * UINT128 + UINT64 -> UINT64 PROTOTYPE: UINT64 __bid64qqd_fma ( UINT128 x, UINT128 y, UINT64 z, _IDEC_round rnd_mode, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, U, O, I FUNCTION: Decimal floating-point fused multiply-add, UINT128 * UINT128 + UINT128 -> UINT64 PROTOTYPE: UINT64 __bid64qqq_fma ( UINT128 x, UINT128 y, UINT128 z, _IDEC_round rnd_mode, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, U, O, I FUNCTION: Decimal floating-point square root, UINT128 -> UINT128 PROTOTYPE: UINT128 __bid128_sqrt ( UINT128 x, _IDEC_round rnd_mode, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, U, I FUNCTION: Decimal floating-point square root, UINT64 -> UINT128 PROTOTYPE: UINT128 __bid128d_sqrt ( UINT64 x, _IDEC_round rnd_mode, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, U, I FUNCTION: Decimal floating-point addition, UINT64 + UINT64 -> UINT64 PROTOTYPE: UINT64 __bid64_add ( UINT64 x, UINT64 y, _IDEC_round rnd_mode, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, O , I FUNCTION: Decimal floating-point addition, UINT64 + UINT128 -> UINT64 PROTOTYPE: UINT64 __bid64dq_add ( UINT64 x, UINT128 y, _IDEC_round rnd_mode, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, U, O, I FUNCTION: Decimal floating-point addition, UINT128 + UINT64 -> UINT64 PROTOTYPE: UINT64 __bid64qd_add ( UINT128 x, UINT64 y, _IDEC_round rnd_mode, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, U, O, I FUNCTION: Decimal floating-point addition, UINT128 + UINT128 -> UINT64 PROTOTYPE: UINT64 __bid64qq_add ( UINT128 x, UINT128 y, _IDEC_round rnd_mode, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, U, O, I FUNCTION: Decimal floating-point subtraction, UINT64 - UINT64 -> UINT64 PROTOTYPE: UINT64 __bid64_sub ( UINT64 x, UINT64 y, _IDEC_round rnd_mode, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, O, I FUNCTION: Decimal floating-point subtraction, UINT64 - UINT128 -> UINT64 PROTOTYPE: UINT64 __bid64dq_sub ( UINT64 x, UINT128 y, _IDEC_round rnd_mode, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, U, O, I FUNCTION: Decimal floating-point subtraction, UINT128 - UINT64 -> UINT64 PROTOTYPE: UINT64 __bid64qd_sub ( UINT128 x, UINT64 y, _IDEC_round rnd_mode, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, U, O, I FUNCTION: Decimal floating-point subtraction, UINT128 - UINT128 -> UINT64 PROTOTYPE: UINT64 __bid64qq_sub ( UINT128 x, UINT128 y, _IDEC_round rnd_mode, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, U, O, I FUNCTION: Decimal floating-point multiplication, UINT64 * UINT64 -> UINT64 PROTOTYPE: UINT64 __bid64_mul ( UINT64 x, UINT64 y, _IDEC_round rnd_mode, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, U, O, I FUNCTION: Decimal floating-point multiplication, UINT64 * UINT128 -> UINT64 PROTOTYPE: UINT64 __bid64dq_mul ( UINT64 x, UINT128 y, _IDEC_round rnd_mode, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, U, O, I FUNCTION: Decimal floating-point multiplication, UINT128 * UINT64 -> UINT64 PROTOTYPE: UINT64 __bid64qd_mul ( UINT128 x, UINT64 y, _IDEC_round rnd_mode, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, U, O, I FUNCTION: Decimal floating-point multiplication, UINT128 * UINT128 -> UINT64 PROTOTYPE: UINT64 __bid64qq_mul ( UINT128 x, UINT128 y, _IDEC_round rnd_mode, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, U, O, I FUNCTION: Decimal floating-point division, UINT64 / UINT64 -> UINT64 PROTOTYPE: UINT64 __bid64_div ( UINT64 x, UINT64 y, _IDEC_round rnd_mode, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, U, O, Z, I FUNCTION: Decimal floating-point division, UINT64 / UINT128 -> UINT64 PROTOTYPE: UINT64 __bid64dq_div ( UINT64 x, UINT128 y, _IDEC_round rnd_mode, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, U, O, Z, I FUNCTION: Decimal floating-point division, UINT128 / UINT64 -> UINT64 PROTOTYPE: UINT64 __bid64qd_div ( UINT128 x, UINT64 y, _IDEC_round rnd_mode, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, U, O, Z, I FUNCTION: Decimal floating-point division, UINT128 / UINT128 -> UINT64 PROTOTYPE: UINT64 __bid64qq_div ( UINT128 x, UINT128 y, _IDEC_round rnd_mode, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, U, O, Z, I FUNCTION: Decimal floating-point fused multiply-add, UINT64 * UINT64 + UINT64 -> UINT64 PROTOTYPE: UINT64 __bid64_fma ( UINT64 x, UINT64 y, UINT64 z, _IDEC_round rnd_mode, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, U, O, I FUNCTION: Decimal floating-point square root, UINT64 -> UINT64 PROTOTYPE: UINT64 __bid64_sqrt ( UINT64 x, _IDEC_round rnd_mode, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, U, I FUNCTION: Decimal floating-point square root, UINT128 -> UINT64 PROTOTYPE: UINT64 __bid64q_sqrt ( UINT128 x, _IDEC_round rnd_mode, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, U, I FUNCTION: Convert 128-bit decimal floating-point value to 8-bit signed integer in rounding-to-nearest even mode; inexact exceptions not signaled PROTOTYPE: char __bid128_to_int8_rnint ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 128-bit decimal floating-point value to 8-bit signed integer in rounding-to-nearest even mode; inexact exceptions signaled PROTOTYPE: char __bid128_to_int8_xrnint ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 128-bit decimal floating-point value to 8-bit signed integer in rounding-to-nearest away mode; inexact exceptions not signaled PROTOTYPE: char __bid128_to_int8_rninta ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 128-bit decimal floating-point value to 8-bit signed integer in rounding-to-nearest away mode; inexact exceptions signaled PROTOTYPE: char __bid128_to_int8_xrninta ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 128-bit decimal floating-point value to 8-bit signed integer in rounding-to-zero mode; inexact exceptions not signaled PROTOTYPE: char __bid128_to_int8_int ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 128-bit decimal floating-point value to 8-bit signed integer in rounding-to-zero mode; inexact exceptions signaled PROTOTYPE: char __bid128_to_int8_xint ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 128-bit decimal floating-point value to 8-bit signed integer in rounding-down mode; inexact exceptions not signaled PROTOTYPE: char __bid128_to_int8_floor ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 128-bit decimal floating-point value to 8-bit signed integer in rounding-down mode; inexact exceptions signaled PROTOTYPE: char __bid128_to_int8_xfloor ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 128-bit decimal floating-point value to 8-bit signed integer in rounding-up mode; inexact exceptions not signaled PROTOTYPE: char __bid128_to_int8_ceil ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 128-bit decimal floating-point value to 8-bit signed integer in rounding-up mode; inexact exceptions signaled PROTOTYPE: char __bid128_to_int8_xceil ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 128-bit decimal floating-point value to 16-bit signed integer in rounding-to-zero mode; inexact exceptions not signaled PROTOTYPE: short __bid128_to_int16_rnint ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 128-bit decimal floating-point value to 16-bit signed integer in rounding-to-nearest-even mode; inexact exceptions signaled PROTOTYPE: short __bid128_to_int16_xrnint ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 128-bit decimal floating-point value to 16-bit signed integer in rounding-to-nearest-even mode; inexact exceptions not signaled PROTOTYPE: short __bid128_to_int16_rninta ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 128-bit decimal floating-point value to 16-bit signed integer in rounding-to-nearest-away; inexact exceptions signaled PROTOTYPE: short __bid128_to_int16_xrninta ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 128-bit decimal floating-point value to 16-bit signed integer in rounding-to-zero; inexact exceptions not signaled PROTOTYPE: short __bid128_to_int16_int ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 128-bit decimal floating-point value to 16-bit signed integer in rounding-to-zero mode; inexact exceptions signaled PROTOTYPE: short __bid128_to_int16_xint ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 128-bit decimal floating-point value to 16-bit signed integer in rounding-down mode; inexact exceptions not signaled PROTOTYPE: short __bid128_to_int16_floor ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 128-bit decimal floating-point value to 16-bit signed integer in rounding-down mode; inexact exceptions signaled PROTOTYPE: short __bid128_to_int16_xfloor ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 128-bit decimal floating-point value to 16-bit signed integer in rounding-up mode; inexact exceptions not signaled PROTOTYPE: short __bid128_to_int16_ceil ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 128-bit decimal floating-point value to 16-bit signed integer in rounding-up mode; inexact exceptions signaled PROTOTYPE: short __bid128_to_int16_xceil ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 128-bit decimal floating-point value to 8-bit signed integer in rounding-to-nearest-even mode; inexact exceptions P, signaled PROTOTYPE: unsigned char __bid128_to_uint8_rnint ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 128-bit decimal floating-point value to 8-bit signed integer in rounding-to-nearest-even mode; inexact exceptions signaled PROTOTYPE: unsigned char __bid128_to_uint8_xrnint ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 128-bit decimal floating-point value to 8-bit signed integer in rounding-to-nearest-away; inexact exceptions not signaled PROTOTYPE: unsigned char __bid128_to_uint8_rninta ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 128-bit decimal floating-point value to 8-bit signed integer in rounding-to-nearest-away; inexact exceptions signaled PROTOTYPE: unsigned char __bid128_to_uint8_xrninta ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 128-bit decimal floating-point value to 8-bit signed integer in rounding-to-zero; inexact exceptions not signaled PROTOTYPE: unsigned char __bid128_to_uint8_int ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 128-bit decimal floating-point value to 8-bit unsigned integer in rounding-to-zero; inexact exceptions signaled PROTOTYPE: unsigned char __bid128_to_uint8_xint ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 128-bit decimal floating-point value to 8-bit unsigned integer in rounding-down mode; inexact exceptions not signaled PROTOTYPE: unsigned char __bid128_to_uint8_floor ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 128-bit decimal floating-point value to 8-bit unsigned integer in rounding-down mode; inexact exceptions signaled PROTOTYPE: unsigned char __bid128_to_uint8_xfloor ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 128-bit decimal floating-point value to 8-bit unsigned integer in rounding-up mode; inexact exceptions not signaled PROTOTYPE: unsigned char __bid128_to_uint8_ceil ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 128-bit decimal floating-point value to 8-bit unsigned integer in rounding-up mode; inexact exceptions signaled PROTOTYPE: unsigned char __bid128_to_uint8_xceil ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 128-bit decimal floating-point value to 16-bit unsigned integer in rounding-to-nearest-even mode; inexact exceptions not signaled PROTOTYPE: unsigned short __bid128_to_uint16_rnint ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 128-bit decimal floating-point value to 16-bit unsigned integer in rounding-to-nearest-even mode; inexact exceptions signaled PROTOTYPE: unsigned short __bid128_to_uint16_xrnint ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 128-bit decimal floating-point value to 16-bit unsigned integer in rounding-to-nearest-away; inexact exceptions not signaled PROTOTYPE: unsigned short __bid128_to_uint16_rninta ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 128-bit decimal floating-point value to 16-bit unsigned integer in rounding-to-nearest-away; inexact exceptions signaled PROTOTYPE: unsigned short __bid128_to_uint16_xrninta ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 128-bit decimal floating-point value to 16-bit unsigned integer in rounding-to-zero; inexact exceptions not signaled PROTOTYPE: unsigned short __bid128_to_uint16_int ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 128-bit decimal floating-point value to 16-bit unsigned integer in rounding-to-zero; inexact exceptions signaled PROTOTYPE: unsigned short __bid128_to_uint16_xint ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 128-bit decimal floating-point value to 16-bit unsigned integer in rounding-down mode; inexact exceptions not signaled PROTOTYPE: unsigned short __bid128_to_uint16_floor ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 128-bit decimal floating-point value to 16-bit unsigned integer in rounding-down mode; inexact exceptions signaled PROTOTYPE: unsigned short __bid128_to_uint16_xfloor ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 128-bit decimal floating-point value to 16-bit unsigned integer in rounding-up mode; inexact exceptions not signaled PROTOTYPE: unsigned short __bid128_to_uint16_ceil ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 128-bit decimal floating-point value to 16-bit unsigned integer in rounding-up mode; inexact exceptions signaled PROTOTYPE: unsigned short __bid128_to_uint16_xceil ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 128-bit decimal floating-point value to 32-bit signed integer in rounding-to-nearest-even mode; inexact exceptions not signaled PROTOTYPE: int __bid128_to_int32_rnint ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 128-bit decimal floating-point value to 32-bit signed integer in rounding-to-nearest-even mode; inexact exceptions signaled PROTOTYPE: int __bid128_to_int32_xrnint ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 128-bit decimal floating-point value to 32-bit signed integer in rounding-to-nearest-away; inexact exceptions not signaled PROTOTYPE: int __bid128_to_int32_rninta ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 128-bit decimal floating-point value to 32-bit signed integer in rounding-to-nearest-away; inexact exceptions signaled PROTOTYPE: int __bid128_to_int32_xrninta ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 128-bit decimal floating-point value to 32-bit signed integer in rounding-to-zero; inexact exceptions not signaled PROTOTYPE: int __bid128_to_int32_int ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 128-bit decimal floating-point value to 32-bit signed integer in rounding-to-zero; inexact exceptions signaled PROTOTYPE: int __bid128_to_int32_xint ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 128-bit decimal floating-point value to 32-bit signed integer in rounding-down mode; inexact exceptions not signaled PROTOTYPE: int __bid128_to_int32_floor ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 128-bit decimal floating-point value to 32-bit signed integer in rounding-down mode; inexact exceptions signaled PROTOTYPE: int __bid128_to_int32_xfloor ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 128-bit decimal floating-point value to 32-bit signed integer in rounding-up mode; inexact exceptions not signaled PROTOTYPE: int __bid128_to_int32_ceil ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 128-bit decimal floating-point value to 32-bit signed integer in rounding-up mode; inexact exceptions signaled PROTOTYPE: int __bid128_to_int32_xceil ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 128-bit decimal floating-point value to 32-bit unsigned integer in rounding-to-nearest-even mode; inexact exceptions not signaled PROTOTYPE: unsigned int __bid128_to_uint32_rnint ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 128-bit decimal floating-point value to 32-bit unsigned integer in rounding-to-nearest-even mode; inexact exceptions signaled PROTOTYPE: unsigned int __bid128_to_uint32_xrnint ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 128-bit decimal floating-point value to 32-bit unsigned integer in rounding-to-nearest-away; inexact exceptions not signaled PROTOTYPE: unsigned int __bid128_to_uint32_rninta ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 128-bit decimal floating-point value to 32-bit unsigned integer in rounding-to-nearest-away; inexact exceptions signaled PROTOTYPE: unsigned int __bid128_to_uint32_xrninta ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 128-bit decimal floating-point value to 32-bit unsigned integer in rounding-to-zero; inexact exceptions not signaled PROTOTYPE: unsigned int __bid128_to_uint32_int ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 128-bit decimal floating-point value to 32-bit unsigned integer in rounding-to-zero; inexact exceptions signaled PROTOTYPE: unsigned int __bid128_to_uint32_xint ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 128-bit decimal floating-point value to 32-bit unsigned integer in rounding-down mode; inexact exceptions not signaled PROTOTYPE: unsigned int __bid128_to_uint32_floor ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 128-bit decimal floating-point value to 32-bit unsigned integer in rounding-down mode; inexact exceptions signaled PROTOTYPE: unsigned int __bid128_to_uint32_xfloor ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 128-bit decimal floating-point value to 32-bit unsigned integer in rounding-up mode; inexact exceptions not signaled PROTOTYPE: unsigned int __bid128_to_uint32_ceil ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 128-bit decimal floating-point value to 32-bit unsigned integer in rounding-up mode; inexact exceptions signaled PROTOTYPE: unsigned int __bid128_to_uint32_xceil ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 128-bit decimal floating-point value to 64-bit signed integer in rounding-to-nearest-even mode; inexact exceptions not signaled PROTOTYPE: SINT64 __bid128_to_int64_rnint ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 128-bit decimal floating-point value to 64-bit signed integer in rounding-to-nearest-even mode; inexact exceptions signaled PROTOTYPE: SINT64 __bid128_to_int64_xrnint ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 128-bit decimal floating-point value to 64-bit signed integer in rounding-to-nearest-away; inexact exceptions not signaled PROTOTYPE: SINT64 __bid128_to_int64_rninta ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 128-bit decimal floating-point value to 64-bit signed integer in rounding-to-nearest-away; inexact exceptions signaled PROTOTYPE: SINT64 __bid128_to_int64_xrninta ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 128-bit decimal floating-point value to 64-bit signed integer in rounding-to-zero; inexact exceptions not signaled PROTOTYPE: SINT64 __bid128_to_int64_int ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 128-bit decimal floating-point value to 64-bit signed integer in rounding-to-zero; inexact exceptions signaled PROTOTYPE: SINT64 __bid128_to_int64_xint ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 128-bit decimal floating-point value to 64-bit signed integer in rounding-down mode; inexact exceptions not signaled PROTOTYPE: SINT64 __bid128_to_int64_floor ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 128-bit decimal floating-point value to 64-bit signed integer in rounding-down mode; inexact exceptions signaled PROTOTYPE: SINT64 __bid128_to_int64_xfloor ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 128-bit decimal floating-point value to 64-bit signed integer in rounding-up mode; inexact exceptions not signaled PROTOTYPE: SINT64 __bid128_to_int64_ceil ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 128-bit decimal floating-point value to 64-bit signed integer in rounding-up mode; inexact exceptions signaled PROTOTYPE: SINT64 __bid128_to_int64_xceil ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 128-bit decimal floating-point value to 64-bit unsigned integer in rounding-to-nearest-even mode; inexact exceptions not signaled PROTOTYPE: UINT64 __bid128_to_uint64_rnint ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 128-bit decimal floating-point value to 64-bit unsigned integer in rounding-to-nearest-even mode; inexact exceptions signaled PROTOTYPE: UINT64 __bid128_to_uint64_xrnint ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 128-bit decimal floating-point value to 64-bit unsigned integer in rounding-to-nearest-away; inexact exceptions not signaled PROTOTYPE: UINT64 __bid128_to_uint64_rninta ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 128-bit decimal floating-point value to 64-bit unsigned integer in rounding-to-nearest-away; inexact exceptions signaled PROTOTYPE: UINT64 __bid128_to_uint64_xrninta ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 128-bit decimal floating-point value to 64-bit unsigned integer in rounding-to-zero; inexact exceptions not signaled PROTOTYPE: UINT64 __bid128_to_uint64_int ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 128-bit decimal floating-point value to 64-bit unsigned integer in rounding-to-zero; inexact exceptions signaled PROTOTYPE: UINT64 __bid128_to_uint64_xint ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 128-bit decimal floating-point value to 64-bit unsigned integer in rounding-down mode; inexact exceptions not signaled PROTOTYPE: UINT64 __bid128_to_uint64_floor ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 128-bit decimal floating-point value to 64-bit unsigned integer in rounding-down mode; inexact exceptions signaled PROTOTYPE: UINT64 __bid128_to_uint64_xfloor ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 128-bit decimal floating-point value to 64-bit unsigned integer in rounding-up mode; inexact exceptions not signaled PROTOTYPE: UINT64 __bid128_to_uint64_ceil ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 128-bit decimal floating-point value to 64-bit unsigned integer in rounding-up mode; inexact exceptions signaled PROTOTYPE: UINT64 __bid128_to_uint64_xceil ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 64-bit decimal floating-point value to 32-bit signed integer in rounding-to-nearest-even mode; inexact exceptions not signaled PROTOTYPE: int __bid64_to_int32_rnint ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 64-bit decimal floating-point value to 32-bit signed integer in rounding-to-nearest-even mode; inexact exceptions signaled PROTOTYPE: int __bid64_to_int32_xrnint ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 64-bit decimal floating-point value to 32-bit signed integer in rounding-to-nearest-away; inexact exceptions not signaled PROTOTYPE: int __bid64_to_int32_rninta ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 64-bit decimal floating-point value to 32-bit signed integer in rounding-to-nearest-away; inexact exceptions signaled PROTOTYPE: int __bid64_to_int32_xrninta ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 64-bit decimal floating-point value to 32-bit signed integer in rounding-to-zero; inexact exceptions not signaled PROTOTYPE: int __bid64_to_int32_int ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 64-bit decimal floating-point value to 32-bit signed integer in rounding-to-zero; inexact exceptions signaled PROTOTYPE: int __bid64_to_int32_xint ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 64-bit decimal floating-point value to 32-bit signed integer in rounding-down mode; inexact exceptions not signaled PROTOTYPE: int __bid64_to_int32_floor ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 64-bit decimal floating-point value to 32-bit signed integer in rounding-down mode; inexact exceptions signaled PROTOTYPE: int __bid64_to_int32_xfloor ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 64-bit decimal floating-point value to 32-bit signed integer in rounding-up mode; inexact exceptions not signaled PROTOTYPE: int __bid64_to_int32_ceil ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 64-bit decimal floating-point value to 32-bit signed integer in rounding-up mode; inexact exceptions signaled PROTOTYPE: int __bid64_to_int32_xceil ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 64-bit decimal floating-point value to 8-bit signed integer in rounding-to-nearest-even mode; inexact exceptions not signaled PROTOTYPE: char __bid64_to_int8_rnint ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 64-bit decimal floating-point value to 8-bit signed integer in rounding-to-nearest-even mode; inexact exceptions signaled PROTOTYPE: char __bid64_to_int8_xrnint ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 64-bit decimal floating-point value to 8-bit signed integer in rounding-to-nearest-away; inexact exceptions not signaled PROTOTYPE: char __bid64_to_int8_rninta ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 64-bit decimal floating-point value to 8-bit signed integer in rounding-to-nearest-away; inexact exceptions signaled PROTOTYPE: char __bid64_to_int8_xrninta ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 64-bit decimal floating-point value to 8-bit signed integer in rounding-to-zero; inexact exceptions not signaled PROTOTYPE: char __bid64_to_int8_int ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 64-bit decimal floating-point value to 8-bit signed integer in rounding-to-zero; inexact exceptions signaled PROTOTYPE: char __bid64_to_int8_xint ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 64-bit decimal floating-point value to 8-bit signed integer in rounding-down mode; inexact exceptions not signaled PROTOTYPE: char __bid64_to_int8_floor ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 64-bit decimal floating-point value to 8-bit signed integer in rounding-down mode; inexact exceptions signaled PROTOTYPE: char __bid64_to_int8_xfloor ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 64-bit decimal floating-point value to 8-bit signed integer in rounding-up mode; inexact exceptions not signaled PROTOTYPE: char __bid64_to_int8_ceil ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 64-bit decimal floating-point value to 8-bit signed integer in rounding-up mode; inexact exceptions signaled PROTOTYPE: char __bid64_to_int8_xceil ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 64-bit decimal floating-point value to 16-bit signed integer in rounding-to-nearest-even mode; inexact exceptions not signaled PROTOTYPE: short __bid64_to_int16_rnint ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 64-bit decimal floating-point value to 16-bit signed integer in rounding-to-nearest-even mode; inexact exceptions signaled PROTOTYPE: short __bid64_to_int16_xrnint ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 64-bit decimal floating-point value to 16-bit signed integer in rounding-to-nearest-away; inexact exceptions not signaled PROTOTYPE: short __bid64_to_int16_rninta ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 64-bit decimal floating-point value to 16-bit signed integer in rounding-to-nearest-away; inexact exceptions signaled PROTOTYPE: short __bid64_to_int16_xrninta ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 64-bit decimal floating-point value to 16-bit signed integer in rounding-to-zero; inexact exceptions not signaled PROTOTYPE: short __bid64_to_int16_int ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 64-bit decimal floating-point value to 16-bit signed integer in rounding-to-zero; inexact exceptions signaled PROTOTYPE: short __bid64_to_int16_xint ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 64-bit decimal floating-point value to 16-bit signed integer in rounding-down mode; inexact exceptions not signaled PROTOTYPE: short __bid64_to_int16_floor ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 64-bit decimal floating-point value to 16-bit signed integer in rounding-down mode; inexact exceptions signaled PROTOTYPE: short __bid64_to_int16_xfloor ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 64-bit decimal floating-point value to 16-bit signed integer in rounding-up mode; inexact exceptions not signaled PROTOTYPE: short __bid64_to_int16_ceil ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 64-bit decimal floating-point value to 16-bit signed integer in rounding-up mode; inexact exceptions signaled PROTOTYPE: short __bid64_to_int16_xceil ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 64-bit decimal floating-point value to 8-bit unsigned integer in rounding-to-nearest-even mode; inexact exceptions not signaled PROTOTYPE: unsigned char __bid64_to_uint8_rnint ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 64-bit decimal floating-point value to 8-bit unsigned integer in rounding-to-nearest-even mode; inexact exceptions signaled PROTOTYPE: unsigned char __bid64_to_uint8_xrnint ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 64-bit decimal floating-point value to 8-bit unsigned integer in rounding-to-nearest-away; inexact exceptions not signaled PROTOTYPE: unsigned char __bid64_to_uint8_rninta ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 64-bit decimal floating-point value to 8-bit unsigned integer in rounding-to-nearest-away; inexact exceptions signaled PROTOTYPE: unsigned char __bid64_to_uint8_xrninta ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 64-bit decimal floating-point value to 8-bit unsigned integer in rounding-to-zero; inexact exceptions not signaled PROTOTYPE: unsigned char __bid64_to_uint8_int ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 64-bit decimal floating-point value to 8-bit unsigned integer in rounding-to-zero; inexact exceptions signaled PROTOTYPE: unsigned char __bid64_to_uint8_xint ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 64-bit decimal floating-point value to 8-bit unsigned integer in rounding-down mode; inexact exceptions not signaled PROTOTYPE: unsigned char __bid64_to_uint8_floor ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 64-bit decimal floating-point value to 8-bit unsigned integer in rounding-down mode; inexact exceptions signaled PROTOTYPE: unsigned char __bid64_to_uint8_xfloor ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 64-bit decimal floating-point value to 8-bit unsigned integer in rounding-up mode; inexact exceptions not signaled PROTOTYPE: unsigned char __bid64_to_uint8_ceil ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 64-bit decimal floating-point value to 8-bit unsigned integer in rounding-up mode; inexact exceptions signaled PROTOTYPE: unsigned char __bid64_to_uint8_xceil ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 64-bit decimal floating-point value to 16-bit unsigned integer in rounding-to-nearest-even mode; inexact exceptions not signaled PROTOTYPE: unsigned short __bid64_to_uint16_rnint ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 64-bit decimal floating-point value to 16-bit unsigned integer in rounding-to-nearest-even mode; inexact exceptions signaled PROTOTYPE: unsigned short __bid64_to_uint16_xrnint ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 64-bit decimal floating-point value to 16-bit unsigned integer in rounding-to-nearest-away; inexact exceptions not signaled PROTOTYPE: unsigned short __bid64_to_uint16_rninta ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 64-bit decimal floating-point value to 16-bit unsigned integer in rounding-to-nearest-away; inexact exceptions signaled PROTOTYPE: unsigned short __bid64_to_uint16_xrninta ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 64-bit decimal floating-point value to 16-bit unsigned integer in rounding-to-zero; inexact exceptions not signaled PROTOTYPE: unsigned short __bid64_to_uint16_int ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 64-bit decimal floating-point value to 16-bit unsigned integer in rounding-to-zero; inexact exceptions signaled PROTOTYPE: unsigned short __bid64_to_uint16_xint ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 64-bit decimal floating-point value to 16-bit unsigned integer in rounding-down mode; inexact exceptions not signaled PROTOTYPE: unsigned short __bid64_to_uint16_floor ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 64-bit decimal floating-point value to 16-bit unsigned integer in rounding-down mode; inexact exceptions signaled PROTOTYPE: unsigned short __bid64_to_uint16_xfloor ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 64-bit decimal floating-point value to 16-bit unsigned integer in rounding-up mode; inexact exceptions not signaled PROTOTYPE: unsigned short __bid64_to_uint16_ceil ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 64-bit decimal floating-point value to 16-bit unsigned integer in rounding-up mode; inexact exceptions signaled PROTOTYPE: unsigned short __bid64_to_uint16_xceil ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 64-bit decimal floating-point value to 32-bit unsigned integer in rounding-to-nearest-even mode; inexact exceptions not signaled PROTOTYPE: unsigned int __bid64_to_uint32_rnint ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 64-bit decimal floating-point value to 32-bit unsigned integer in rounding-to-nearest-even mode; inexact exceptions signaled PROTOTYPE: unsigned int __bid64_to_uint32_xrnint ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 64-bit decimal floating-point value to 32-bit unsigned integer in rounding-to-nearest-away; inexact exceptions not signaled PROTOTYPE: unsigned int __bid64_to_uint32_rninta ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 64-bit decimal floating-point value to 32-bit unsigned integer in rounding-to-nearest-away; inexact exceptions signaled PROTOTYPE: unsigned int __bid64_to_uint32_xrninta ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 64-bit decimal floating-point value to 32-bit unsigned integer in rounding-to-zero; inexact exceptions not signaled PROTOTYPE: unsigned int __bid64_to_uint32_int ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 64-bit decimal floating-point value to 32-bit unsigned integer in rounding-to-zero; inexact exceptions signaled PROTOTYPE: unsigned int __bid64_to_uint32_xint ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 64-bit decimal floating-point value to 32-bit unsigned integer in rounding-down mode; inexact exceptions not signaled PROTOTYPE: unsigned int __bid64_to_uint32_floor ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 64-bit decimal floating-point value to 32-bit unsigned integer in rounding-down mode; inexact exceptions signaled PROTOTYPE: unsigned int __bid64_to_uint32_xfloor ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 64-bit decimal floating-point value to 32-bit unsigned integer in rounding-up mode; inexact exceptions not signaled PROTOTYPE: unsigned int __bid64_to_uint32_ceil ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 64-bit decimal floating-point value to 32-bit unsigned integer in rounding-up mode; inexact exceptions signaled PROTOTYPE: unsigned int __bid64_to_uint32_xceil ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 64-bit decimal floating-point value to 64-bit signed integer in rounding-to-nearest-even mode; inexact exceptions not signaled PROTOTYPE: SINT64 __bid64_to_int64_rnint ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 64-bit decimal floating-point value to 64-bit signed integer in rounding-to-nearest-even mode; inexact exceptions signaled PROTOTYPE: SINT64 __bid64_to_int64_xrnint ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 64-bit decimal floating-point value to 64-bit signed integer in rounding-to-nearest-away; inexact exceptions not signaled PROTOTYPE: SINT64 __bid64_to_int64_rninta ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 64-bit decimal floating-point value to 64-bit signed integer in rounding-to-nearest-away; inexact exceptions signaled PROTOTYPE: SINT64 __bid64_to_int64_xrninta ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 64-bit decimal floating-point value to 64-bit signed integer in rounding-to-zero; inexact exceptions not signaled PROTOTYPE: SINT64 __bid64_to_int64_int ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 64-bit decimal floating-point value to 64-bit signed integer in rounding-to-zero; inexact exceptions signaled PROTOTYPE: SINT64 __bid64_to_int64_xint ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 64-bit decimal floating-point value to 64-bit signed integer in rounding-down mode; inexact exceptions not signaled PROTOTYPE: SINT64 __bid64_to_int64_floor ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 64-bit decimal floating-point value to 64-bit signed integer in rounding-down mode; inexact exceptions signaled PROTOTYPE: SINT64 __bid64_to_int64_xfloor ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 64-bit decimal floating-point value to 64-bit signed integer in rounding-up mode; inexact exceptions not signaled PROTOTYPE: SINT64 __bid64_to_int64_ceil ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 64-bit decimal floating-point value to 64-bit signed integer in rounding-up mode; inexact exceptions signaled PROTOTYPE: SINT64 __bid64_to_int64_xceil ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 64-bit decimal floating-point value to 64-bit unsigned integer in rounding-to-nearest-even mode; inexact exceptions not signaled PROTOTYPE: UINT64 __bid64_to_uint64_rnint ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 64-bit decimal floating-point value to 64-bit unsigned integer in rounding-to-nearest-even mode; inexact exceptions signaled PROTOTYPE: UINT64 __bid64_to_uint64_xrnint ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 64-bit decimal floating-point value to 64-bit unsigned integer in rounding-to-nearest-away; inexact exceptions not signaled PROTOTYPE: UINT64 __bid64_to_uint64_rninta ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 64-bit decimal floating-point value to 64-bit unsigned integer in rounding-to-nearest-away; inexact exceptions signaled PROTOTYPE: UINT64 __bid64_to_uint64_xrninta ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 64-bit decimal floating-point value to 64-bit unsigned integer in rounding-to-zero; inexact exceptions not signaled PROTOTYPE: UINT64 __bid64_to_uint64_int ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 64-bit decimal floating-point value to 64-bit unsigned integer in rounding-to-zero mode; inexact exceptions signaled PROTOTYPE: UINT64 __bid64_to_uint64_xint ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 64-bit decimal floating-point value to 64-bit unsigned integer in rounding-down mode; inexact exceptions not signaled PROTOTYPE: UINT64 __bid64_to_uint64_floor ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 64-bit decimal floating-point value to 64-bit unsigned integer in rounding-down mode; inexact exceptions signaled PROTOTYPE: UINT64 __bid64_to_uint64_xfloor ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Convert 64-bit decimal floating-point value to 64-bit unsigned integer in rounding-up mode; inexact exceptions not signaled PROTOTYPE: UINT64 __bid64_to_uint64_ceil ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 64-bit decimal floating-point value to 64-bit unsigned integer in rounding-up mode; inexact exceptions signaled PROTOTYPE: UINT64 __bid64_to_uint64_xceil ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Compare 64-bit decimal floating-point numbers for specified relation; do not signal invalid exception for quiet NaNs PROTOTYPE: int __bid64_quiet_equal ( UINT64 x, UINT64 y, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Compare 64-bit decimal floating-point numbers for specified relation; do not signal invalid exception for quiet NaNs PROTOTYPE: int __bid64_quiet_greater ( UINT64 x, UINT64 y, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Compare 64-bit decimal floating-point numbers for specified relation; do not signal invalid exception for quiet NaNs PROTOTYPE: int __bid64_quiet_greater_equal ( UINT64 x, UINT64 y, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Compare 64-bit decimal floating-point numbers for specified relation; do not signal invalid exception for quiet NaNs PROTOTYPE: int __bid64_quiet_greater_unordered ( UINT64 x, UINT64 y, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Compare 64-bit decimal floating-point numbers for specified relation; do not signal invalid exception for quiet NaNs PROTOTYPE: int __bid64_quiet_less ( UINT64 x, UINT64 y, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Compare 64-bit decimal floating-point numbers for specified relation; do not signal invalid exception for quiet NaNs PROTOTYPE: int __bid64_quiet_less_equal ( UINT64 x, UINT64 y, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Compare 64-bit decimal floating-point numbers for specified relation; do not signal invalid exception for quiet NaNs PROTOTYPE: int __bid64_quiet_less_unordered ( UINT64 x, UINT64 y, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Compare 64-bit decimal floating-point numbers for specified relation; do not signal invalid exception for quiet NaNs PROTOTYPE: int __bid64_quiet_not_equal ( UINT64 x, UINT64 y, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Compare 64-bit decimal floating-point numbers for specified relation; do not signal invalid exception for quiet NaNs PROTOTYPE: int __bid64_quiet_not_greater ( UINT64 x, UINT64 y, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Compare 64-bit decimal floating-point numbers for specified relation; do not signal invalid exception for quiet NaNs PROTOTYPE: int __bid64_quiet_not_less ( UINT64 x, UINT64 y, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Compare 64-bit decimal floating-point numbers for specified relation; do not signal invalid exception for quiet NaNs PROTOTYPE: int __bid64_quiet_ordered ( UINT64 x, UINT64 y, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Compare 64-bit decimal floating-point numbers for specified relation; do not signal invalid exception for quiet NaNs PROTOTYPE: int __bid64_quiet_unordered ( UINT64 x, UINT64 y, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Compare 64-bit decimal floating-point numbers for specified relation; signal invalid exception for quiet NaNs PROTOTYPE: int __bid64_signaling_greater ( UINT64 x, UINT64 y, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Compare 64-bit decimal floating-point numbers for specified relation; signal invalid exception for quiet NaNs PROTOTYPE: int __bid64_signaling_greater_equal ( UINT64 x, UINT64 y, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Compare 64-bit decimal floating-point numbers for specified relation; signal invalid exception for quiet NaNs PROTOTYPE: int __bid64_signaling_greater_unordered ( UINT64 x, UINT64 y, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Compare 64-bit decimal floating-point numbers for specified relation; signal invalid exception for quiet NaNs PROTOTYPE: int __bid64_signaling_less ( UINT64 x, UINT64 y, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Compare 64-bit decimal floating-point numbers for specified relation; signal invalid exception for quiet NaNs PROTOTYPE: int __bid64_signaling_less_equal ( UINT64 x, UINT64 y, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Compare 64-bit decimal floating-point numbers for specified relation; signal invalid exception for quiet NaNs PROTOTYPE: int __bid64_signaling_less_unordered ( UINT64 x, UINT64 y, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Compare 64-bit decimal floating-point numbers for specified relation; signal invalid exception for quiet NaNs PROTOTYPE: int __bid64_signaling_not_greater ( UINT64 x, UINT64 y, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Compare 64-bit decimal floating-point numbers for specified relation; signal invalid exception for quiet NaNs PROTOTYPE: int __bid64_signaling_not_less ( UINT64 x, UINT64 y, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Compare 128-bit decimal floating-point numbers for specified relation; do not signal invalid exception for quiet NaNs PROTOTYPE: int __bid128_quiet_equal ( UINT128 x, UINT128 y, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Compare 128-bit decimal floating-point numbers for specified relation; do not signal invalid exception for quiet NaNs PROTOTYPE: int __bid128_quiet_greater ( UINT128 x, UINT128 y, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Compare 128-bit decimal floating-point numbers for specified relation; do not signal invalid exception for quiet NaNs PROTOTYPE: int __bid128_quiet_greater_equal ( UINT128 x, UINT128 y, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Compare 128-bit decimal floating-point numbers for specified relation; do not signal invalid exception for quiet NaNs PROTOTYPE: int __bid128_quiet_greater_unordered ( UINT128 x, UINT128 y, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Compare 128-bit decimal floating-point numbers for specified relation; do not signal invalid exception for quiet NaNs PROTOTYPE: int __bid128_quiet_less ( UINT128 x, UINT128 y, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Compare 128-bit decimal floating-point numbers for specified relation; do not signal invalid exception for quiet NaNs PROTOTYPE: int __bid128_quiet_less_equal ( UINT128 x, UINT128 y, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Compare 128-bit decimal floating-point numbers for specified relation; do not signal invalid exception for quiet NaNs PROTOTYPE: int __bid128_quiet_less_unordered ( UINT128 x, UINT128 y, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Compare 128-bit decimal floating-point numbers for specified relation; do not signal invalid exception for quiet NaNs PROTOTYPE: int __bid128_quiet_not_equal ( UINT128 x, UINT128 y, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Compare 128-bit decimal floating-point numbers for specified relation; do not signal invalid exception for quiet NaNs PROTOTYPE: int __bid128_quiet_not_greater ( UINT128 x, UINT128 y, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Compare 128-bit decimal floating-point numbers for specified relation; do not signal invalid exception for quiet NaNs PROTOTYPE: int __bid128_quiet_not_less ( UINT128 x, UINT128 y, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Compare 128-bit decimal floating-point numbers for specified relation; do not signal invalid exception for quiet NaNs PROTOTYPE: int __bid128_quiet_ordered ( UINT128 x, UINT128 y, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Compare 128-bit decimal floating-point numbers for specified relation; do not signal invalid exception for quiet NaNs PROTOTYPE: int __bid128_quiet_unordered ( UINT128 x, UINT128 y, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Compare 128-bit decimal floating-point numbers for specified relation; signal invalid exception for quiet NaNs PROTOTYPE: int __bid128_signaling_greater ( UINT128 x, UINT128 y, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Compare 128-bit decimal floating-point numbers for specified relation; signal invalid exception for quiet NaNs PROTOTYPE: int __bid128_signaling_greater_equal ( UINT128 x, UINT128 y, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Compare 128-bit decimal floating-point numbers for specified relation; signal invalid exception for quiet NaNs PROTOTYPE: int __bid128_signaling_greater_unordered ( UINT128 x, UINT128 y, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Compare 128-bit decimal floating-point numbers for specified relation; signal invalid exception for quiet NaNs PROTOTYPE: int __bid128_signaling_less ( UINT128 x, UINT128 y, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Compare 128-bit decimal floating-point numbers for specified relation; signal invalid exception for quiet NaNs PROTOTYPE: int __bid128_signaling_less_equal ( UINT128 x, UINT128 y, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Compare 128-bit decimal floating-point numbers for specified relation; signal invalid exception for quiet NaNs PROTOTYPE: int __bid128_signaling_less_unordered ( UINT128 x, UINT128 y, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Compare 128-bit decimal floating-point numbers for specified relation; signal invalid exception for quiet NaNs PROTOTYPE: int __bid128_signaling_not_greater ( UINT128 x, UINT128 y, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Compare 128-bit decimal floating-point numbers for specified relation; signal invalid exception for quiet NaNs PROTOTYPE: int __bid128_signaling_not_less ( UINT128 x, UINT128 y, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Round 64-bit decimal floating-point value to integral-valued decimal floating-point value in the same format, using the current rounding mode; signal inexact exceptions PROTOTYPE: UINT64 __bid64_round_integral_exact ( UINT64 x, _IDEC_round rnd_mode, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Round 64-bit decimal floating-point value to integral-valued decimal floating-point value in the same format, using the rounding-to-nearest-even mode; do not signal inexact exceptions PROTOTYPE: UINT64 __bid64_round_integral_nearest_even ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Round 64-bit decimal floating-point value to integral-valued decimal floating-point value in the same format, using the rounding-down mode; do not signal inexact exceptions PROTOTYPE: UINT64 __bid64_round_integral_negative ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Round 64-bit decimal floating-point value to integral-valued decimal floating-point value in the same format, using the rounding-up mode; do not signal inexact exceptions PROTOTYPE: UINT64 __bid64_round_integral_positive ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Round 64-bit decimal floating-point value to integral-valued decimal floating-point value in the same format, using the rounding-to-zero mode; do not signal inexact exceptions PROTOTYPE: UINT64 __bid64_round_integral_zero ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Round 64-bit decimal floating-point value to integral-valued decimal floating-point value in the same format, using the rounding-to-nearest-away mode; do not signal inexact exceptions PROTOTYPE: UINT64 __bid64_round_integral_nearest_away ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Round 128-bit decimal floating-point value to integral-valued decimal floating-point value in the same format, using the current rounding mode; signal inexact exceptions PROTOTYPE: UINT128 __bid128_round_integral_exact ( UINT128 x, _IDEC_round rnd_mode, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, I FUNCTION: Round 128-bit decimal floating-point value to integral-valued decimal floating-point value in the same format, using the rounding-to-nearest-even mode; do not signal inexact exceptions PROTOTYPE: UINT128 __bid128_round_integral_nearest_even ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Round 128-bit decimal floating-point value to integral-valued decimal floating-point value in the same format, using the rounding-down mode; do not signal inexact exceptions PROTOTYPE: UINT128 __bid128_round_integral_negative ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Round 128-bit decimal floating-point value to integral-valued decimal floating-point value in the same format, using the rounding-up mode; do not signal inexact exceptions PROTOTYPE: UINT128 __bid128_round_integral_positive ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Round 128-bit decimal floating-point value to integral-valued decimal floating-point value in the same format, using the rounding-to-zero mode; do not signal inexact exceptions PROTOTYPE: UINT128 __bid128_round_integral_zero ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Round 128-bit decimal floating-point value to integral-valued decimal floating-point value in the same format, using the rounding-to-nearest-away mode; do not signal inexact exceptions PROTOTYPE: UINT128 __bid128_round_integral_nearest_away ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Returns the least 64-bit decimal floating-point number that compares greater than the operand PROTOTYPE: UINT64 __bid64_nextup ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Returns the greatest 64-bit decimal floating-point number that compares less than the operand PROTOTYPE: UINT64 __bid64_nextdown ( UINT64 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Returns the next 64-bit decimal floating-point number that neighbors the first operand in the direction toward the second operand PROTOTYPE: UINT64 __bid64_nextafter ( UINT64 x, UINT64 y, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, U, O, I FUNCTION: Returns the least 128-bit decimal floating-point number that compares greater than the operand PROTOTYPE: UINT128 __bid128_nextup ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Returns the greatest 128-bit decimal floating-point number that compares less than the operand PROTOTYPE: UINT128 __bid128_nextdown ( UINT128 x, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Returns the next 128-bit decimal floating-point number that neighbors the first operand in the direction toward the second operand PROTOTYPE: UINT128 __bid128_nextafter ( UINT128 x, UINT128 y, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P, U, O, I FUNCTION: Returns the canonicalized floating-point number x if x < y, y if y < x, the canonicalized floating-point number if one operand is a floating-point number and the other a quiet NaN. Otherwise it is either x or y, canonicalized. PROTOTYPE: UINT64 __bid64_minnum ( UINT64 x, UINT64 y, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Returns the canonicalized floating-point number x if |x| < |y|, y if |y| < |x|, otherwise this function is identical to __bid64_minnum PROTOTYPE: UINT64 __bid64_minnum_mag ( UINT64 x, UINT64 y, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Returns the canonicalized floating-point number y if x < y, x if y < x, the canonicalized floating-point number if one operand is a floating-point number and the other a quiet NaN. Otherwise it is either x or y, canonicalized. PROTOTYPE: UINT64 __bid64_maxnum ( UINT64 x, UINT64 y, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Returns the canonicalized floating-point number x if |x| > |y|, y if |y| > |x|, otherwise this function is identical to __bid64_maxnum PROTOTYPE: UINT64 __bid64_maxnum_mag ( UINT64 x, UINT64 y, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Returns the canonicalized floating-point number x if x < y, y if y < x, the canonicalized floating-point number if one operand is a floating-point number and the other a quiet NaN. Otherwise it is either x or y, canonicalized. PROTOTYPE: UINT128 __bid128_minnum ( UINT128 x, UINT128 y, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Returns the canonicalized floating-point number x if |x| < |y|, y if |y| < |x|, otherwise this function is identical to __bid128_minnum PROTOTYPE: UINT128 __bid128_minnum_mag ( UINT128 x, UINT128 y, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Returns the canonicalized floating-point number y if x < y, x if y < x, the canonicalized floating-point number if one operand is a floating-point number and the other a quiet NaN. Otherwise it is either x or y, canonicalized. PROTOTYPE: UINT128 __bid128_maxnum ( UINT128 x, UINT128 y, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Returns the canonicalized floating-point number x if |x| > |y|, y if |y| > |x|, otherwise this function is identical to __bid128_maxnum PROTOTYPE: UINT128 __bid128_maxnum_mag ( UINT128 x, UINT128 y, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: I FUNCTION: Convert 32-bit signed integer to 64-bit decimal floating-point number PROTOTYPE: UINT64 __bid64_from_int32 ( int x); FLOATING-POINT EXCEPTIONS: none FUNCTION: Convert 32-bit unsigned integer to 64-bit decimal floating-point number PROTOTYPE: UINT64 __bid64_from_uint32 ( unsigned int x); FLOATING-POINT EXCEPTIONS: none FUNCTION: Convert 64-bit signed integer to 64-bit decimal floating-point number PROTOTYPE: UINT64 __bid64_from_int64 ( SINT64 x, _IDEC_round rnd_mode, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P FUNCTION: Convert 64-bit unsigned integer to 64-bit decimal floating-point number PROTOTYPE: UINT64 __bid64_from_uint64 ( UINT64, _IDEC_round rnd_mode, _IDEC_flags *pfpsf); FLOATING-POINT EXCEPTIONS: P FUNCTION: Convert 32-bit signed integer to 128-bit decimal floating-point number PROTOTYPE: UINT128 __bid128_from_int32 ( int x); FLOATING-POINT EXCEPTIONS: none FUNCTION: Convert 32-bit unsigned integer to 128-bit decimal floating-point number PROTOTYPE: UINT128 __bid128_from_uint32 ( unsigned int x); FLOATING-POINT EXCEPTIONS: none FUNCTION: Convert 64-bit signed integer to 128-bit decimal floating-point number PROTOTYPE: UINT128 __bid128_from_int64 ( SINT64 x); FLOATING-POINT EXCEPTIONS: none FUNCTION: Convert 64-bit unsigned integer to 128-bit decimal floating-point number PROTOTYPE: UINT128 __bid128_from_uint64 ( UINT64 x); FLOATING-POINT EXCEPTIONS: none FUNCTION: Return true if and only if x has negative sign PROTOTYPE: int __bid64_isSigned ( UINT64 x); FLOATING-POINT EXCEPTIONS: none FUNCTION: Return true if and only if x is normal (not zero, subnormal, infinite, or NaN) PROTOTYPE: int __bid64_isNormal ( UINT64 x); FLOATING-POINT EXCEPTIONS: none FUNCTION: Return true if and only if x is subnormal PROTOTYPE: int __bid64_isSubnormal ( UINT64 x); FLOATING-POINT EXCEPTIONS: none FUNCTION: Return true if and only if x is zero, subnormal or normal (not infinite or NaN) PROTOTYPE: int __bid64_isFinite ( UINT64 x); FLOATING-POINT EXCEPTIONS: none FUNCTION: Return true if and only if x is +0 or -0 PROTOTYPE: int __bid64_isZero ( UINT64 x); FLOATING-POINT EXCEPTIONS: none FUNCTION: Return true if and only if x is infinite PROTOTYPE: int __bid64_isInf ( UINT64 x); FLOATING-POINT EXCEPTIONS: none FUNCTION: Return true if and only if x is a signaling NaN PROTOTYPE: int __bid64_isSignaling ( UINT64 x); FLOATING-POINT EXCEPTIONS: none FUNCTION: Return true if and only if x is a finite number, infinity, or NaN that is canonical. PROTOTYPE: int __bid64_isCanonical ( UINT64 x); FLOATING-POINT EXCEPTIONS: none FUNCTION: Return true if and only if x is a NaN PROTOTYPE: int __bid64_isNaN ( UINT64 x); FLOATING-POINT EXCEPTIONS: none FUNCTION: Copies a decimal floating-point operand x to a destination in the same format, with no change PROTOTYPE: UINT64 __bid64_copy ( UINT64 x); FLOATING-POINT EXCEPTIONS: none FUNCTION: Copies a 64-bit decimal floating-point operand x to a destination in the same format, reversing the sign PROTOTYPE: UINT64 __bid64_negate ( UINT64 x); FLOATING-POINT EXCEPTIONS: none FUNCTION: Copies a 64-bit decimal floating-point operand x to a destination in the same format, changing the sign to positive PROTOTYPE: UINT64 __bid64_abs ( UINT64 x); FLOATING-POINT EXCEPTIONS: none FUNCTION: Copies a 64-bit decimal floating-point operand x to a destination in the same format as x, but with the sign of y PROTOTYPE: UINT64 __bid64_copySign ( UINT64 x, UINT64 y); FLOATING-POINT EXCEPTIONS: none FUNCTION: Tells which of the following ten classes x falls into (details in the Draft Standard IEEE 754R): signalingNaN, quietNaN, negativeInfinity, negativeNormal, negativeSubnormal, negativeZero, positiveZero, positiveSubnormal, positiveNormal, positiveInfinity PROTOTYPE: int __bid64_class ( UINT64 x); FLOATING-POINT EXCEPTIONS: none FUNCTION: sameQuantum(x, y) is true if the exponents of x and y are the same, and false otherwise; sameQuantum(NaN, NaN) and sameQuantum(inf, inf) are true; if exactly one operand is infinite or exactly one operand is NaN, sameQuantum is false PROTOTYPE: int __bid64_sameQuantum ( UINT64 x, UINT64 y); FLOATING-POINT EXCEPTIONS: none FUNCTION: Return true if x and y are ordered (see the Draft Standard IEEE 754R) PROTOTYPE: int __bid64_totalOrder ( UINT64 x, UINT64 y); FLOATING-POINT EXCEPTIONS: none FUNCTION: Return true if the absolute values of x and y are ordered (see the Draft Standard IEEE 754R) PROTOTYPE: int __bid64_totalOrderMag ( UINT64 x, UINT64 y); FLOATING-POINT EXCEPTIONS: none FUNCTION: Return the radix b of the format of x, 2 or 10 PROTOTYPE: int __bid64_radix ( UINT64 x); FLOATING-POINT EXCEPTIONS: none FUNCTION: Return true if and only if x has negative sign PROTOTYPE: int __bid128_isSigned ( UINT128 x); FLOATING-POINT EXCEPTIONS: none FUNCTION: Return true if and only if x is normal (not zero, subnormal, infinite, or NaN) PROTOTYPE: int __bid128_isNormal ( UINT128 x); FLOATING-POINT EXCEPTIONS: none FUNCTION: Return true if and only if x is subnormal PROTOTYPE: int __bid128_isSubnormal ( UINT128 x); FLOATING-POINT EXCEPTIONS: none FUNCTION: Return true if and only if x is zero, subnormal or normal (not infinite or NaN) PROTOTYPE: int __bid128_isFinite ( UINT128 x); FLOATING-POINT EXCEPTIONS: none FUNCTION: Return true if and only if x is +0 or -0 PROTOTYPE: int __bid128_isZero ( UINT128 x); FLOATING-POINT EXCEPTIONS: none FUNCTION: Return true if and only if x is infinite PROTOTYPE: int __bid128_isInf ( UINT128 x); FLOATING-POINT EXCEPTIONS: none FUNCTION: Return true if and only if x is a signaling NaN PROTOTYPE: int __bid128_isSignaling ( UINT128 x); FLOATING-POINT EXCEPTIONS: none FUNCTION: Return Return true if and only if x is a finite number, infinity, or NaN that is canonical. PROTOTYPE: int __bid128_isCanonical ( UINT128 x); FLOATING-POINT EXCEPTIONS: none FUNCTION: Return true if and only if x is a NaN PROTOTYPE: int __bid128_isNaN ( UINT128 x); FLOATING-POINT EXCEPTIONS: none FUNCTION: Copies a decimal floating-point operand x to a destination in the same format, with no change PROTOTYPE: UINT128 __bid128_copy ( UINT128 x); FLOATING-POINT EXCEPTIONS: none FUNCTION: Copies a 128-bit decimal floating-point operand x to a destination in the same format, reversing the sign PROTOTYPE: UINT128 __bid128_negate ( UINT128 x); FLOATING-POINT EXCEPTIONS: none FUNCTION: Copies a 128-bit decimal floating-point operand x to a destination in the same format, changing the sign to positive PROTOTYPE: UINT128 __bid128_abs ( UINT128 x); FLOATING-POINT EXCEPTIONS: none FUNCTION: Copies a 128-bit decimal floating-point operand x to a destination in the same format as x, but with the sign of y PROTOTYPE: UINT128 __bid128_copySign ( UINT128 x, UINT128 y); FLOATING-POINT EXCEPTIONS: none FUNCTION: Tells which of the following ten classes x falls into (details in the Draft Standard IEEE 754R): signalingNaN, quietNaN, negativeInfini