#include "arith.h"#include <limits.h>

Go to the source code of this file.
Classes | |
| struct | AR_INT_8_64 |
| struct | AR_INT_64 |
| struct | AR_INT_128 |
| struct | AR_IEEE_32 |
| struct | AR_IEEE_64 |
| struct | AR_IEEE_128 |
| struct | AR_MIPS_128 |
| struct | AR_CPLX_IEEE_32 |
| struct | AR_CPLX_IEEE_64 |
| struct | AR_CPLX_IEEE_128 |
| struct | AR_CPLX_MIPS_128 |
| struct | AR_CRAY_64 |
| struct | AR_CRAY_128 |
| struct | AR_CPLX_CRAY_64 |
| struct | AR_CPLX_CRAY_128 |
| union | ar_data |
| struct | ar_state_info |
Defines | |
| #define | AR_CLASS(type) (type & 0x1c0) |
| #define | AR_INT_SIZE(type) (type & 0x3c) |
| #define | AR_POINTER_FORMAT(type) (type & 0x3c) |
| #define | AR_POINTER_SIZE(type) (type & 0x3) |
| #define | AR_SIGNEDNESS(type) (type & 0x1) |
| #define | AR_FLOAT_FORMAT(type) (type & 0x20) |
| #define | AR_FLOAT_ROUND(type) (type & 0x18) |
| #define | AR_FLOAT_SIZE(type) (type & 0x6) |
| #define | AR_FLOAT_IS_COMPLEX(type) (type & 0x1) |
| #define | AR_IEEE32_ZERO_BITS 32 |
| #define | AR_IEEE32_EXPO_BITS 8 |
| #define | AR_IEEE32_C0_BITS 7 |
| #define | AR_IEEE32_C1_BITS 16 |
| #define | AR_IEEE64_EXPO_BITS 11 |
| #define | AR_IEEE64_C0_BITS 4 |
| #define | AR_IEEE64_C1_BITS 16 |
| #define | AR_IEEE64_C2_BITS 16 |
| #define | AR_IEEE64_C3_BITS 16 |
| #define | AR_IEEE128_EXPO_BITS 15 |
| #define | AR_IEEE128_C0_BITS 16 |
| #define | AR_IEEE128_C1_BITS 16 |
| #define | AR_IEEE128_C2_BITS 16 |
| #define | AR_IEEE128_C3_BITS 16 |
| #define | AR_IEEE128_C4_BITS 16 |
| #define | AR_IEEE128_C5_BITS 16 |
| #define | AR_IEEE128_C6_BITS 16 |
| #define | AR_IEEE32_MIN_EXPO 0000 |
| #define | AR_IEEE32_EXPO_BIAS 0177 |
| #define | AR_IEEE32_MAX_EXPO 0376 |
| #define | AR_IEEE32_COEFF_BITS 23 |
| #define | AR_IEEE64_MIN_EXPO 00000 |
| #define | AR_IEEE64_EXPO_BIAS 01777 |
| #define | AR_IEEE64_MAX_EXPO 03776 |
| #define | AR_IEEE64_COEFF_BITS 52 |
| #define | AR_IEEE128_MIN_EXPO 000000 |
| #define | AR_IEEE128_EXPO_BIAS 037777 |
| #define | AR_IEEE128_MAX_EXPO 077776 |
| #define | AR_IEEE128_COEFF_BITS 112 |
| #define | AR_IEEE32_ROUND_BITS 3 |
| #define | AR_IEEE64_ROUND_BITS 3 |
| #define | AR_IEEE128_ROUND_BITS 3 |
| #define | AR_MIPS128_MIN_EXPO AR_IEEE64_MIN_EXPO |
| #define | AR_MIPS128_MAX_EXPO AR_IEEE64_MAX_EXPO |
| #define | AR_MIPS128_EXPO_BIAS AR_IEEE64_EXPO_BIAS |
| #define | AR_CRAY_EXPO_BITS 15 |
| #define | AR_CRAY_C0_BITS 16 |
| #define | AR_CRAY_C1_BITS 16 |
| #define | AR_CRAY_C2_BITS 16 |
| #define | AR_CRAY_ZERO_BITS 16 |
| #define | AR_CRAY_C3_BITS 16 |
| #define | AR_CRAY_C4_BITS 16 |
| #define | AR_CRAY_C5_BITS 16 |
| #define | AR_CRAY_MIN_EXPO 020000 |
| #define | AR_CRAY_EXPO_BIAS 040001 |
| #define | AR_CRAY_MAX_EXPO 057777 |
| #define | AR_CRAY64_COEFF_BITS 48 |
| #define | AR_CRAY128_COEFF_BITS 96 |
| #define | MASKL(bits) |
| #define | MASKR(bits) |
| #define | MASKM(bits, where) ((unsigned long) (MASKR(bits) << (where))) |
| #define | HOST_IS_UNKNOWN (ar_host() == AR_Arch_Unknown ) |
| #define | HOST_IS_PVP (ar_host() == AR_Arch_PVP ) |
| #define | HOST_IS_PVP_IEEE (ar_host() == AR_Arch_PVP_IEEE) |
| #define | HOST_IS_T3D (ar_host() == AR_Arch_T3D ) |
| #define | HOST_IS_T3E (ar_host() == AR_Arch_T3E ) |
| #define | HOST_IS_SPARC (ar_host() == AR_Arch_SPARC ) |
| #define | HOST_IS_MIPS (ar_host() == AR_Arch_MIPS ) |
| #define | HOST_IS_MPP (HOST_IS_T3D || HOST_IS_T3E) |
| #define | HOST_IS_CRAY_FLOAT (HOST_IS_PVP) |
| #define | HOST_IS_IEEE_FLOAT |
| #define | _Solaris 0 |
| #define | ROUND_MODE(t) ((t >> 3) & 3) |
| #define | UNROUNDED_TYPE(t) (t &~ 0x18) |
| #define | IS_ERROR_STATUS(s) (((s) & AR_ERROR_STATUS) != 0) |
| #define | INT_OVERFLOWS_46_BITS(OPND) |
| #define | IS_INT8_ZERO(i) ((i)->ar_i8.part5 == 0) |
| #define | IS_INT16_ZERO(i) ((i)->ar_i64.part4 == 0) |
| #define | IS_INT24_ZERO(i) |
| #define | IS_INT32_ZERO(i) |
| #define | IS_INT46_ZERO(i) |
| #define | IS_INT64_ZERO(i) |
| #define | IS_INT128_ZERO(i) |
| #define | IS_INT8_UPPER_ZERO(i) |
| #define | IS_INT16_UPPER_ZERO(i) |
| #define | IS_INT24_UPPER_ZERO(i) |
| #define | IS_INT32_UPPER_ZERO(i) |
| #define | IS_INT46_UPPER_ZERO(i) |
| #define | ZERO_INT8(i) (i)->ar_i8.part5 = 0 |
| #define | ZERO_INT16(i) (i)->ar_i64.part4 = 0 |
| #define | ZERO_INT24(i) |
| #define | ZERO_INT32(i) |
| #define | ZERO_INT64(i) |
| #define | ZERO_INT128(i) |
| #define | ZERO_INT8_UPPER(i) |
| #define | ZERO_INT16_UPPER(i) |
| #define | ZERO_INT24_UPPER(i) |
| #define | ZERO_INT32_UPPER(i) |
| #define | ZERO_INT8_ALL(i) |
| #define | ZERO_INT16_ALL(i) |
| #define | ZERO_INT24_ALL(i) ZERO_INT16_ALL(i) |
| #define | ZERO_INT32_ALL(i) ZERO_INT16_ALL(i) |
| #define | ZERO_INT64_ALL(i) ZERO_INT16_ALL(i) |
| #define | ZERO_INT128_ALL(i) |
| #define | IS_INT8_UPPER_ONES(i) |
| #define | IS_INT16_UPPER_ONES(i) |
| #define | IS_INT24_UPPER_ONES(i) |
| #define | IS_INT32_UPPER_ONES(i) |
| #define | IS_INT46_UPPER_ONES(i) |
| #define | INT8_SIGN(i) ((i)->ar_i8.part5 & 0x80 ) |
| #define | INT16_SIGN(i) ((i)->ar_i64.part4 & 0x8000) |
| #define | INT24_SIGN(i) ((i)->ar_i64.part3 & 0x80 ) |
| #define | INT32_SIGN(i) ((i)->ar_i64.part3 & 0x8000) |
| #define | INT64_SIGN(i) ((i)->ar_i64.part1 & 0x8000) |
| #define | INT128_SIGN(i) ((i)->ar_i128.part1 & 0x8000) |
| #define | INT_SIGN(t, i) |
| #define | COPY_INT8(i, j) (i)->ar_i8.part5 = (j)->ar_i8.part5 |
| #define | COPY_INT16(i, j) (i)->ar_i64.part4 = (j)->ar_i64.part4 |
| #define | COPY_INT24(i, j) |
| #define | COPY_INT32(i, j) |
| #define | COPY_INT46(i, j) |
| #define | COPY_INT64(i, j) |
| #define | COPY_INT128(i, j) |
| #define | INT8_TO_HOST_SINT64(i, a) |
| #define | INT16_TO_HOST_SINT64(i, a) |
| #define | INT32_TO_HOST_SINT64(i, a) |
| #define | INT64_TO_HOST_SINT64(i, a) |
| #define | IS_IEEE32_NZ_COEFF(x) |
| #define | IS_IEEE64_NZ_COEFF(x) |
| #define | IS_IEEE128_NZ_COEFF(x) |
| #define | IS_MIPS128_NZ_COEFF(x) |
| #define | IS_IEEE32_NaN(x) ((x)->expo > AR_IEEE32_MAX_EXPO && IS_IEEE32_NZ_COEFF(x)) |
| #define | IS_IEEE64_NaN(x) ((x)->expo > AR_IEEE64_MAX_EXPO && IS_IEEE64_NZ_COEFF(x)) |
| #define | IS_IEEE128_NaN(x) ((x)->expo > AR_IEEE128_MAX_EXPO && IS_IEEE128_NZ_COEFF(x)) |
| #define | IS_MIPS128_NaN(x) |
| #define | ADDIEEE32(sum, carry, a, b) |
| #define | ADDIEEE64(sum, carry, a, b) |
| #define | ADDIEEE128(sum, carry, a, b) |
| #define | CPLX32_IMAG_TO_IEEE32(s, c) |
| #define | CPLX32_REAL_TO_IEEE32(s, c) |
| #define | IEEE32_TO_CPLX32_REAL(c, s) |
| #define | IEEE32_TO_CPLX32_IMAG(c, s) |
| #define | IEEE32TOINT64(i, f) |
| #define | IEEE64TOINT64(i, f) |
| #define | INCIEEE32(sum, carry) |
| #define | INCIEEE64(sum, carry) |
| #define | INCIEEE128(sum, carry) |
| #define | INT64TOIEEE32(f, i) |
| #define | INT64TOIEEE64(f, i) |
| #define | INT64TOIEEE128(f, i) |
| #define | NOTIEEE32(x) |
| #define | NOTIEEE64(x) |
| #define | NOTIEEE128(x) |
| #define | SHLEFTIEEE32(x) |
| #define | SHLEFTIEEE64(x) |
| #define | SHLEFTIEEE128(x) |
| #define | SHLEFTIEEE32_2(x, y) |
| #define | SHLEFTIEEE64_2(x, y) |
| #define | SHLEFTIEEE128_2(x, y) |
| #define | SHRIGHTIEEE32(x) |
| #define | SHRIGHTIEEE64(x) |
| #define | SHRIGHTIEEE128(x) |
| #define | SHRIGHTIEEE32_2(x, y) |
| #define | SHRIGHTIEEE64_2(x, y) |
| #define | SHRIGHTIEEE128_2(x, y) |
| #define | ZEROIEEE32(x) |
| #define | ZEROIEEE64(x) |
| #define | ZEROIEEE128(x) |
| #define | ZEROIEEE128M(x) |
| #define | QNaNIEEE32(x) |
| #define | QNaNIEEE64(x) |
| #define | QNaNIEEE128(x) |
| #define | ADDCRAY64(sum, carry, a, b) |
| #define | ADDCRAY128(sum, carry, a, b) |
| #define | CRAY64TO128(d, s) |
| #define | CRAY128TO64(s, d) |
| #define | CRAY64TOINT64(i, c) |
| #define | INCCRAY64(sum, carry) |
| #define | INCCRAY128(sum, carry) |
| #define | INT64TOCRAY64(c, i) |
| #define | NOTCRAY64(x) |
| #define | NOTCRAY128(x) |
| #define | SHLEFTCRAY64(x) |
| #define | SHLEFTCRAY128(x) |
| #define | SHRIGHTCRAY64(x) |
| #define | SHRIGHTCRAY128(x) |
| #define | ZEROCRAY64(x) ((x).sign = (x).expo = (x).coeff0 = (x).coeff1 = (x).coeff2 = 0) |
| #define | ZEROCRAY128(x) |
Enumerations | |
| enum | message_types { Comment, Note, Caution, Warning, Error, Internal, Vector_Info, Scalar_Info, Table, Ansi, Logfile_Warning, Inline_Info, Info, Tasking_Info, Limit, Logfile_Error, Logfile_Summary, F77_ANSI, Unknown } |
| enum | AR_ARCHITECTURE { AR_Arch_Unknown, AR_Arch_PVP, AR_Arch_PVP_IEEE, AR_Arch_T3D, AR_Arch_T3E, AR_Arch_SPARC, AR_Arch_MIPS } |
Functions | |
| int | ar_add_integer (ar_data *, const AR_TYPE *, const ar_data *, const AR_TYPE *, const ar_data *, const AR_TYPE *) |
| void | ar_dblshift (ar_data *, const AR_TYPE *resulttype, const ar_data *, const ar_data *, int) |
| int | ar_divide_integer (ar_data *, const AR_TYPE *, ar_data *, const AR_TYPE *, const ar_data *, const AR_TYPE *, const ar_data *, const AR_TYPE *) |
| int | ar_negate_integer (ar_data *, const AR_TYPE *, const ar_data *, const AR_TYPE *) |
| int | ar_multiply_integer (ar_data *, const AR_TYPE *, const ar_data *, const AR_TYPE *, const ar_data *, const AR_TYPE *) |
| int | ar_subtract_integer (ar_data *, const AR_TYPE *, int *, const ar_data *, const AR_TYPE *, const ar_data *, const AR_TYPE *) |
| int | ar_i32norm (signed int, unsigned long, unsigned long, AR_IEEE_32 *, int) |
| int | ar_i64norm (signed int, unsigned long, unsigned long, AR_IEEE_64 *, int) |
| int | ar_i128norm (signed int, unsigned long, unsigned long, AR_IEEE_128 *, int) |
| int | ar_i32to64 (AR_IEEE_64 *, const AR_IEEE_32 *) |
| int | ar_i64to32 (AR_IEEE_32 *, const AR_IEEE_64 *, const int) |
| int | ar_i64to128 (AR_IEEE_128 *, const AR_IEEE_64 *) |
| int | ar_i128to64 (AR_IEEE_64 *, const AR_IEEE_128 *, const int) |
| int | ar_ifadd32 (AR_IEEE_32 *, const AR_IEEE_32 *, const AR_IEEE_32 *, int) |
| int | ar_ifadd64 (AR_IEEE_64 *, const AR_IEEE_64 *, const AR_IEEE_64 *, int) |
| int | ar_ifadd128 (AR_IEEE_128 *, const AR_IEEE_128 *, const AR_IEEE_128 *, int) |
| int | ar_ifdiv32 (AR_IEEE_32 *, const AR_IEEE_32 *, const AR_IEEE_32 *, int) |
| int | ar_ifdiv64 (AR_IEEE_64 *, const AR_IEEE_64 *, const AR_IEEE_64 *, int) |
| int | ar_ifdiv128 (AR_IEEE_128 *, const AR_IEEE_128 *, const AR_IEEE_128 *, int) |
| int | ar_ifix32 (AR_INT_64 *, const AR_IEEE_32 *, int, int) |
| int | ar_ifix64 (AR_INT_64 *, const AR_IEEE_64 *, int, int) |
| int | ar_ifix128 (AR_INT_64 *, const AR_IEEE_128 *, int, int) |
| int | ar_iflt32 (AR_IEEE_32 *, const AR_INT_64 *, int, int) |
| int | ar_iflt64 (AR_IEEE_64 *, const AR_INT_64 *, int, int) |
| int | ar_iflt128 (AR_IEEE_128 *, const AR_INT_64 *, int, int) |
| int | ar_ifmul32 (AR_IEEE_32 *, const AR_IEEE_32 *, const AR_IEEE_32 *, int) |
| int | ar_ifmul64 (AR_IEEE_64 *, const AR_IEEE_64 *, const AR_IEEE_64 *, int) |
| int | ar_ifmul128 (AR_IEEE_128 *, const AR_IEEE_128 *, const AR_IEEE_128 *, int) |
| int | ar_ifsub32 (AR_IEEE_32 *, const AR_IEEE_32 *, const AR_IEEE_32 *, int) |
| int | ar_ifsub64 (AR_IEEE_64 *, const AR_IEEE_64 *, const AR_IEEE_64 *, int) |
| int | ar_ifsub128 (AR_IEEE_128 *, const AR_IEEE_128 *, const AR_IEEE_128 *, int) |
| int | ar_isqrt64 (AR_IEEE_64 *, const AR_IEEE_64 *, int) |
| int | ar_c64to128 (AR_CRAY_128 *, const AR_CRAY_64 *) |
| int | ar_c128to64 (AR_CRAY_64 *, const AR_CRAY_128 *) |
| int | ar_c1frecip (AR_CRAY_64 *, const AR_CRAY_64 *) |
| int | ar_cfadd64 (AR_CRAY_64 *, const AR_CRAY_64 *, const AR_CRAY_64 *) |
| int | ar_cfadd128 (AR_CRAY_128 *, const AR_CRAY_128 *, const AR_CRAY_128 *) |
| int | ar_cfdiv64 (AR_CRAY_64 *, const AR_CRAY_64 *, const AR_CRAY_64 *, int) |
| int | ar_cfdiv128 (AR_CRAY_128 *, const AR_CRAY_128 *, const AR_CRAY_128 *, int) |
| int | ar_cfix64 (AR_INT_64 *, const AR_CRAY_64 *, int) |
| int | ar_cfix128 (AR_INT_64 *, const AR_CRAY_128 *, int) |
| int | ar_cflt64 (AR_CRAY_64 *, const AR_INT_64 *, int) |
| int | ar_cflt128 (AR_CRAY_128 *, const AR_INT_64 *, int) |
| int | ar_cfmul64 (AR_CRAY_64 *, const AR_CRAY_64 *, const AR_CRAY_64 *, int) |
| int | ar_cfmul128 (AR_CRAY_128 *, const AR_CRAY_128 *, const AR_CRAY_128 *, int) |
| int | ar_crnd64 (AR_CRAY_64 *, const AR_CRAY_64 *) |
| int | ar_crnd128 (AR_CRAY_128 *, const AR_CRAY_128 *) |
| int | ar_cfsub64 (AR_CRAY_64 *, const AR_CRAY_64 *, const AR_CRAY_64 *) |
| int | ar_cfsub128 (AR_CRAY_128 *, const AR_CRAY_128 *, const AR_CRAY_128 *) |
| void | ar_CRAY_64_trunc (AR_CRAY_64 *opnd) |
| int | ar_convert_to_integral (ar_data *, const AR_TYPE *, const ar_data *, const AR_TYPE *) |
| int | ar_compose_complex (ar_data *, AR_TYPE *, const ar_data *, const ar_data *, const AR_TYPE *) |
| int | ar_decompose_complex (ar_data *, ar_data *, AR_TYPE *, const ar_data *, const AR_TYPE *) |
| int | ar_negate_float (ar_data *, const AR_TYPE *, const ar_data *, const AR_TYPE *) |
| int | ar_c128toi64 (AR_IEEE_64 *, const AR_CRAY_128 *) |
| int | ar_i64toc128 (AR_CRAY_128 *, const AR_IEEE_64 *) |
| int | ar_ctoi64 (AR_IEEE_64 *, const AR_CRAY_64 *) |
| int | ar_ctoi128 (AR_IEEE_128 *, const AR_CRAY_128 *) |
| int | ar_itoc64 (AR_CRAY_64 *, const AR_IEEE_64 *, int) |
| int | ar_itoc128 (AR_CRAY_128 *, const AR_IEEE_128 *, int) |
| void | ar_internal_error (int msgnum, char *file, int line) |
| void | ar_set_invalid_result (ar_data *result, const AR_TYPE *resulttype) |
| void | ar_clear_unused_bits (ar_data *opnd, const AR_TYPE *opndtype) |
| void | PRINTMSG (int pseudo_line_num, int msg_number, enum message_types msg_severity, int column_num,...) |
| AR_ARCHITECTURE | ar_host (void) |
Variables | |
| ar_state_info | ar_state_register |
| int | ar_simulate |
| int | ar_rounding_modes |
| int | ar_underflow_modes |
| #define _Solaris 0 |
Definition at line 719 of file arith.internal.h.
| #define ADDCRAY128 | ( | sum, | |||
| carry, | |||||
| a, | |||||
| b | ) |
do { \ (sum).coeff5 = (carry) += (a).coeff5 + (b).coeff5; \ (carry) >>= AR_CRAY_C5_BITS; \ (sum).coeff4 = (carry) += (a).coeff4 + (b).coeff4; \ (carry) >>= AR_CRAY_C4_BITS; \ (sum).coeff3 = (carry) += (a).coeff3 + (b).coeff3; \ (carry) >>= AR_CRAY_C3_BITS; \ (sum).coeff2 = (carry) += (a).coeff2 + (b).coeff2; \ (carry) >>= AR_CRAY_C2_BITS; \ (sum).coeff1 = (carry) += (a).coeff1 + (b).coeff1; \ (carry) >>= AR_CRAY_C1_BITS; \ (sum).coeff0 = (carry) += (a).coeff0 + (b).coeff0; \ (carry) >>= AR_CRAY_C0_BITS; \ } while (0)
Definition at line 1434 of file arith.internal.h.
Referenced by ar_cfadd128(), and ar_cfmul128().
| #define ADDCRAY64 | ( | sum, | |||
| carry, | |||||
| a, | |||||
| b | ) |
do { \ (sum).coeff2 = (carry) += (a).coeff2 + (b).coeff2; \ (carry) >>= AR_CRAY_C2_BITS; \ (sum).coeff1 = (carry) += (a).coeff1 + (b).coeff1; \ (carry) >>= AR_CRAY_C1_BITS; \ (sum).coeff0 = (carry) += (a).coeff0 + (b).coeff0; \ (carry) >>= AR_CRAY_C0_BITS; \ } while (0)
Definition at line 1425 of file arith.internal.h.
Referenced by ar_cfadd64(), and ar_cfmul64().
| #define ADDIEEE128 | ( | sum, | |||
| carry, | |||||
| a, | |||||
| b | ) |
do { \ (sum).coeff6 = (carry) += (a).coeff6 + (b).coeff6; \ (carry) >>= AR_IEEE128_C6_BITS; \ (sum).coeff5 = (carry) += (a).coeff5 + (b).coeff5; \ (carry) >>= AR_IEEE128_C5_BITS; \ (sum).coeff4 = (carry) += (a).coeff4 + (b).coeff4; \ (carry) >>= AR_IEEE128_C4_BITS; \ (sum).coeff3 = (carry) += (a).coeff3 + (b).coeff3; \ (carry) >>= AR_IEEE128_C3_BITS; \ (sum).coeff2 = (carry) += (a).coeff2 + (b).coeff2; \ (carry) >>= AR_IEEE128_C2_BITS; \ (sum).coeff1 = (carry) += (a).coeff1 + (b).coeff1; \ (carry) >>= AR_IEEE128_C1_BITS; \ (sum).coeff0 = (carry) += (a).coeff0 + (b).coeff0; \ (carry) >>= AR_IEEE128_C0_BITS; \ } while (0)
Definition at line 1056 of file arith.internal.h.
Referenced by ar_ifadd128(), and ar_ifmul128().
| #define ADDIEEE32 | ( | sum, | |||
| carry, | |||||
| a, | |||||
| b | ) |
do { \ (sum).coeff1 = (carry) += (a).coeff1 + (b).coeff1; \ (carry) >>= AR_IEEE32_C1_BITS; \ (sum).coeff0 = (carry) += (a).coeff0 + (b).coeff0; \ (carry) >>= AR_IEEE32_C0_BITS; \ } while (0)
Definition at line 1038 of file arith.internal.h.
Referenced by ar_ifadd32(), and ar_ifmul32().
| #define ADDIEEE64 | ( | sum, | |||
| carry, | |||||
| a, | |||||
| b | ) |
do { \ (sum).coeff3 = (carry) += (a).coeff3 + (b).coeff3; \ (carry) >>= AR_IEEE64_C3_BITS; \ (sum).coeff2 = (carry) += (a).coeff2 + (b).coeff2; \ (carry) >>= AR_IEEE64_C2_BITS; \ (sum).coeff1 = (carry) += (a).coeff1 + (b).coeff1; \ (carry) >>= AR_IEEE64_C1_BITS; \ (sum).coeff0 = (carry) += (a).coeff0 + (b).coeff0; \ (carry) >>= AR_IEEE64_C0_BITS; \ } while (0)
Definition at line 1045 of file arith.internal.h.
Referenced by ar_ifadd64(), and ar_ifmul64().
| #define AR_CLASS | ( | type | ) | (type & 0x1c0) |
Definition at line 85 of file arith.internal.h.
| #define AR_CRAY128_COEFF_BITS 96 |
Definition at line 267 of file arith.internal.h.
Referenced by ar_cfadd128(), ar_cfmul128(), and ar_ctoi128().
| #define AR_CRAY64_COEFF_BITS 48 |
Definition at line 266 of file arith.internal.h.
Referenced by ar_c128toi64(), ar_cfadd64(), ar_cfix128(), ar_cfix64(), ar_cflt128(), ar_cflt64(), ar_cfmul64(), AR_CRAY_64_trunc_bits(), ar_ctoi64(), ar_i64toc128(), and ar_itoc64().
| #define AR_CRAY_C0_BITS 16 |
Definition at line 255 of file arith.internal.h.
Referenced by ar_c1frecip(), ar_cfadd128(), ar_cfadd64(), ar_cfdiv128(), ar_cflt128(), ar_cflt64(), ar_cfmul128(), ar_cfmul64(), ar_i64toc128(), ar_itoc128(), ar_itoc64(), and AR_one().
| #define AR_CRAY_C1_BITS 16 |
Definition at line 256 of file arith.internal.h.
Referenced by ar_cfmul64().
| #define AR_CRAY_C2_BITS 16 |
Definition at line 257 of file arith.internal.h.
| #define AR_CRAY_C3_BITS 16 |
Definition at line 259 of file arith.internal.h.
Referenced by ar_c128toi64(), ar_cfdiv128(), and ar_cflt128().
| #define AR_CRAY_C4_BITS 16 |
Definition at line 260 of file arith.internal.h.
| #define AR_CRAY_C5_BITS 16 |
Definition at line 261 of file arith.internal.h.
| #define AR_CRAY_EXPO_BIAS 040001 |
Definition at line 264 of file arith.internal.h.
Referenced by ar_c128toi64(), ar_c1frecip(), ar_cfdiv128(), ar_cfix128(), ar_cfix64(), ar_cflt128(), ar_cflt64(), ar_cfmul128(), ar_cfmul64(), ar_ctoi128(), ar_ctoi64(), ar_i64toc128(), ar_itoc128(), ar_itoc64(), and AR_one().
| #define AR_CRAY_EXPO_BITS 15 |
Definition at line 254 of file arith.internal.h.
Referenced by ar_cflt128(), ar_cflt64(), and ar_cfmul128().
| #define AR_CRAY_MAX_EXPO 057777 |
Definition at line 265 of file arith.internal.h.
Referenced by ar_c128toi64(), ar_c1frecip(), ar_cfadd128(), ar_cfadd64(), ar_cfmul128(), ar_cfmul64(), ar_ctoi128(), ar_ctoi64(), ar_i64toc128(), ar_itoc128(), ar_itoc64(), ar_set_invalid_result(), and AR_status().
| #define AR_CRAY_MIN_EXPO 020000 |
Definition at line 263 of file arith.internal.h.
Referenced by ar_c1frecip(), ar_cfadd128(), ar_cfadd64(), ar_cfmul128(), ar_cfmul64(), and AR_status().
| #define AR_CRAY_ZERO_BITS 16 |
Definition at line 258 of file arith.internal.h.
| #define AR_FLOAT_FORMAT | ( | type | ) | (type & 0x20) |
Definition at line 127 of file arith.internal.h.
Referenced by AR_abs(), ar_clear_sim_state(), ar_compose_complex(), ar_convert_to_float(), ar_decompose_complex(), ar_negate_float(), and ar_set_invalid_result().
| #define AR_FLOAT_IS_COMPLEX | ( | type | ) | (type & 0x1) |
Definition at line 133 of file arith.internal.h.
Referenced by AR_abs(), AR_cabs(), ar_compare_float(), ar_compose_complex(), AR_convert(), AR_convert_str_to_float(), ar_convert_to_complex(), ar_convert_to_float(), ar_decompose_complex(), AR_divide(), ar_exp(), AR_leadz(), ar_log(), AR_make_complex(), AR_multiply(), AR_negate(), ar_negate_complex(), AR_popcnt(), AR_poppar(), ar_power(), and ar_sqrt().
| #define AR_FLOAT_ROUND | ( | type | ) | (type & 0x18) |
Definition at line 129 of file arith.internal.h.
| #define AR_FLOAT_SIZE | ( | type | ) | (type & 0x6) |
Definition at line 131 of file arith.internal.h.
Referenced by AR_abs(), ar_compose_complex(), ar_convert_str_to_float(), ar_convert_to_float(), ar_cvt_str_to_float(), ar_decompose_complex(), AR_leadz(), ar_negate_float(), AR_popcnt(), AR_poppar(), ar_power(), and ar_set_invalid_result().
| #define AR_IEEE128_C0_BITS 16 |
Definition at line 150 of file arith.internal.h.
Referenced by ar_ctoi128(), ar_i128norm(), ar_ifadd128(), ar_ifdiv128(), and ar_ifmul128().
| #define AR_IEEE128_C1_BITS 16 |
Definition at line 151 of file arith.internal.h.
Referenced by ar_ifdiv128().
| #define AR_IEEE128_C2_BITS 16 |
Definition at line 152 of file arith.internal.h.
Referenced by ar_ifdiv128().
| #define AR_IEEE128_C3_BITS 16 |
Definition at line 153 of file arith.internal.h.
Referenced by ar_ifdiv128().
| #define AR_IEEE128_C4_BITS 16 |
Definition at line 154 of file arith.internal.h.
Referenced by ar_ifdiv128().
| #define AR_IEEE128_C5_BITS 16 |
Definition at line 155 of file arith.internal.h.
Referenced by ar_ifdiv128().
| #define AR_IEEE128_C6_BITS 16 |
Definition at line 156 of file arith.internal.h.
Referenced by ar_ifdiv128().
| #define AR_IEEE128_COEFF_BITS 112 |
Definition at line 171 of file arith.internal.h.
Referenced by ar_ctoi128(), ar_ifadd128(), ar_ifdiv128(), ar_ifix128(), ar_iflt128(), ar_ifmul128(), and ar_itoc128().
| #define AR_IEEE128_EXPO_BIAS 037777 |
Definition at line 169 of file arith.internal.h.
Referenced by ar_ctoi128(), ar_i128to64(), ar_i64to128(), ar_ifdiv128(), ar_ifix128(), ar_iflt128(), ar_ifmul128(), ar_itoc128(), and AR_one().
| #define AR_IEEE128_EXPO_BITS 15 |
Definition at line 149 of file arith.internal.h.
Referenced by ar_iflt128().
| #define AR_IEEE128_MAX_EXPO 077776 |
Definition at line 170 of file arith.internal.h.
Referenced by ar_ctoi128(), ar_i128norm(), ar_i128to64(), ar_i64to128(), ar_ifadd128(), ar_ifdiv128(), ar_ifmul128(), ar_itoc128(), ar_set_invalid_result(), and AR_status().
| #define AR_IEEE128_MIN_EXPO 000000 |
Definition at line 168 of file arith.internal.h.
Referenced by ar_i128norm().
| #define AR_IEEE128_ROUND_BITS 3 |
Definition at line 175 of file arith.internal.h.
Referenced by ar_i128norm(), ar_ifadd128(), ar_ifdiv128(), ar_ifix128(), and ar_ifmul128().
| #define AR_IEEE32_C0_BITS 7 |
Definition at line 140 of file arith.internal.h.
Referenced by ar_i32norm(), ar_ifadd32(), ar_ifdiv32(), and ar_ifmul32().
| #define AR_IEEE32_C1_BITS 16 |
Definition at line 141 of file arith.internal.h.
Referenced by ar_ifdiv32().
| #define AR_IEEE32_COEFF_BITS 23 |
Definition at line 161 of file arith.internal.h.
Referenced by ar_ifadd32(), ar_ifdiv32(), ar_ifix32(), ar_iflt32(), and ar_ifmul32().
| #define AR_IEEE32_EXPO_BIAS 0177 |
Definition at line 159 of file arith.internal.h.
Referenced by ar_i32to64(), ar_i64to32(), ar_ifdiv32(), ar_ifix32(), ar_iflt32(), ar_ifmul32(), and AR_one().
| #define AR_IEEE32_EXPO_BITS 8 |
Definition at line 139 of file arith.internal.h.
Referenced by ar_iflt32().
| #define AR_IEEE32_MAX_EXPO 0376 |
Definition at line 160 of file arith.internal.h.
Referenced by ar_i32norm(), ar_i32to64(), ar_i64to32(), ar_ifadd32(), ar_ifdiv32(), ar_ifmul32(), ar_set_invalid_result(), and AR_status().
| #define AR_IEEE32_MIN_EXPO 0000 |
Definition at line 158 of file arith.internal.h.
| #define AR_IEEE32_ROUND_BITS 3 |
Definition at line 173 of file arith.internal.h.
Referenced by ar_i32norm(), ar_ifadd32(), ar_ifdiv32(), ar_ifix32(), ar_iflt32(), and ar_ifmul32().
| #define AR_IEEE32_ZERO_BITS 32 |
Definition at line 138 of file arith.internal.h.
| #define AR_IEEE64_C0_BITS 4 |
Definition at line 144 of file arith.internal.h.
Referenced by ar_c128toi64(), ar_ctoi64(), ar_i128to64(), ar_i64norm(), ar_i64to128(), ar_ifadd64(), ar_ifdiv64(), ar_ifmul64(), and ar_isqrt64().
| #define AR_IEEE64_C1_BITS 16 |
Definition at line 145 of file arith.internal.h.
Referenced by ar_i32to64(), ar_i64to32(), and ar_ifdiv64().
| #define AR_IEEE64_C2_BITS 16 |
Definition at line 146 of file arith.internal.h.
Referenced by ar_i32to64(), ar_i64to32(), and ar_ifdiv64().
| #define AR_IEEE64_C3_BITS 16 |
Definition at line 147 of file arith.internal.h.
Referenced by ar_ifdiv64().
| #define AR_IEEE64_COEFF_BITS 52 |
Definition at line 166 of file arith.internal.h.
Referenced by ar_c128toi64(), ar_ctoi64(), ar_i64toc128(), ar_ifadd64(), ar_ifdiv64(), ar_ifix64(), ar_iflt64(), ar_ifmul64(), and ar_itoc64().
| #define AR_IEEE64_EXPO_BIAS 01777 |
Definition at line 164 of file arith.internal.h.
Referenced by ar_c128toi64(), ar_ctoi64(), ar_i128to64(), ar_i32to64(), ar_i64to128(), ar_i64to32(), ar_i64toc128(), ar_ifdiv64(), ar_ifix64(), ar_iflt64(), ar_ifmul64(), ar_itoc64(), and AR_one().
| #define AR_IEEE64_EXPO_BITS 11 |
Definition at line 143 of file arith.internal.h.
Referenced by ar_iflt64().
| #define AR_IEEE64_MAX_EXPO 03776 |
Definition at line 165 of file arith.internal.h.
Referenced by ar_c128toi64(), ar_check_status(), ar_ctoi64(), ar_i128to64(), ar_i32to64(), ar_i64norm(), ar_i64to128(), ar_i64to32(), ar_i64toc128(), ar_ifadd64(), ar_ifdiv64(), ar_ifmul64(), ar_isqrt64(), ar_itoc64(), ar_set_invalid_result(), and AR_status().
| #define AR_IEEE64_MIN_EXPO 00000 |
Definition at line 163 of file arith.internal.h.
Referenced by ar_i32norm(), and ar_i64norm().
| #define AR_IEEE64_ROUND_BITS 3 |
Definition at line 174 of file arith.internal.h.
Referenced by ar_c128toi64(), ar_i64norm(), ar_ifadd64(), ar_ifdiv64(), ar_ifix64(), and ar_ifmul64().
| #define AR_INT_SIZE | ( | type | ) | (type & 0x3c) |
Definition at line 116 of file arith.internal.h.
| #define AR_MIPS128_EXPO_BIAS AR_IEEE64_EXPO_BIAS |
Definition at line 179 of file arith.internal.h.
Referenced by AR_one().
| #define AR_MIPS128_MAX_EXPO AR_IEEE64_MAX_EXPO |
Definition at line 178 of file arith.internal.h.
Referenced by AR_status().
| #define AR_MIPS128_MIN_EXPO AR_IEEE64_MIN_EXPO |
Definition at line 177 of file arith.internal.h.
| #define AR_POINTER_FORMAT | ( | type | ) | (type & 0x3c) |
Definition at line 118 of file arith.internal.h.
Referenced by ar_add_pointer(), AR_add_ptr_int(), ar_clear_unused_bits(), AR_compare(), ar_convert_to_pointer(), ar_subtract_pointer(), and AR_subtract_ptr_ptr().
| #define AR_POINTER_SIZE | ( | type | ) | (type & 0x3) |
Definition at line 120 of file arith.internal.h.
Referenced by AR_add_ptr_int(), and ar_clear_unused_bits().
| #define AR_SIGNEDNESS | ( | type | ) | (type & 0x1) |
Definition at line 122 of file arith.internal.h.
| #define COPY_INT128 | ( | i, | |||
| j | ) |
do { \ (i)->ar_i128.part1 = (j)->ar_i128.part1; \ (i)->ar_i128.part2 = (j)->ar_i128.part2; \ (i)->ar_i128.part3 = (j)->ar_i128.part3; \ (i)->ar_i128.part4 = (j)->ar_i128.part4; \ (i)->ar_i128.part5 = (j)->ar_i128.part5; \ (i)->ar_i128.part6 = (j)->ar_i128.part6; \ (i)->ar_i128.part7 = (j)->ar_i128.part7; \ (i)->ar_i128.part8 = (j)->ar_i128.part8; \ } while(0)
Definition at line 934 of file arith.internal.h.
| #define COPY_INT16 | ( | i, | |||
| j | ) | (i)->ar_i64.part4 = (j)->ar_i64.part4 |
Definition at line 909 of file arith.internal.h.
Referenced by AR_abs().
| #define COPY_INT24 | ( | i, | |||
| j | ) |
do { \ (i)->ar_i64.part3 = (j)->ar_i64.part3 & 0xFF00; \ (i)->ar_i64.part4 = (j)->ar_i64.part4; \ } while(0)
Definition at line 911 of file arith.internal.h.
| #define COPY_INT32 | ( | i, | |||
| j | ) |
do { \ (i)->ar_i64.part3 = (j)->ar_i64.part3; \ (i)->ar_i64.part4 = (j)->ar_i64.part4; \ } while(0)
Definition at line 916 of file arith.internal.h.
Referenced by AR_abs().
| #define COPY_INT46 | ( | i, | |||
| j | ) |
do { \ (i)->ar_i64.part2 = (j)->ar_i64.part2 & 0x3FFF; \ (i)->ar_i64.part3 = (j)->ar_i64.part3; \ (i)->ar_i64.part4 = (j)->ar_i64.part4; \ } while(0)
Definition at line 921 of file arith.internal.h.
| #define COPY_INT64 | ( | i, | |||
| j | ) |
do { \ (i)->ar_i64.part1 = (j)->ar_i64.part1; \ (i)->ar_i64.part2 = (j)->ar_i64.part2; \ (i)->ar_i64.part3 = (j)->ar_i64.part3; \ (i)->ar_i64.part4 = (j)->ar_i64.part4; \ } while(0)
Definition at line 927 of file arith.internal.h.
Referenced by AR_abs().
| #define COPY_INT8 | ( | i, | |||
| j | ) | (i)->ar_i8.part5 = (j)->ar_i8.part5 |
Definition at line 907 of file arith.internal.h.
Referenced by AR_abs().
( \
(s).sign = (c).isign, \
(s).expo = (c).iexpo, \
(s).coeff0 = (c).icoeff0, \
(s).coeff1 = (c).icoeff1, \
(s).zero = 0 )
Definition at line 1074 of file arith.internal.h.
Referenced by AR_add(), ar_decompose_complex(), and AR_subtract().
( \
(s).sign = (c).rsign, \
(s).expo = (c).rexpo, \
(s).coeff0 = (c).rcoeff0, \
(s).coeff1 = (c).rcoeff1, \
(s).zero = 0 )
Definition at line 1081 of file arith.internal.h.
Referenced by AR_add(), ar_convert_to_integral(), ar_decompose_complex(), and AR_subtract().
( \
(s).sign = (d).sign, \
(s).expo = (d).expo, \
(s).coeff0 = (d).coeff0, \
(s).coeff1 = (d).coeff1, \
(s).coeff2 = (d).coeff2 )
Definition at line 1457 of file arith.internal.h.
Referenced by ar_c128to64(), ar_c128toi64(), ar_cfdiv128(), and ar_cfix128().
( \
(d).sign = (s).sign, \
(d).expo = (s).expo, \
(d).coeff0 = (s).coeff0, \
(d).coeff1 = (s).coeff1, \
(d).coeff2 = (s).coeff2, \
(d).zero = (d).coeff3 = (d).coeff4 = (d).coeff5 = 0 )
Definition at line 1449 of file arith.internal.h.
Referenced by ar_c64to128(), ar_cfdiv128(), ar_cflt128(), and ar_i64toc128().
| #define CRAY64TOINT64 | ( | i, | |||
| c | ) |
( \
(i).part1 = (c).sign << 15 | (c).expo, \
(i).part2 = (c).coeff0, \
(i).part3 = (c).coeff1, \
(i).part4 = (c).coeff2 )
Definition at line 1464 of file arith.internal.h.
Referenced by ar_c128toi64(), ar_cfix128(), ar_cfix64(), and ar_ctoi64().
| #define HOST_IS_CRAY_FLOAT (HOST_IS_PVP) |
Definition at line 705 of file arith.internal.h.
| #define HOST_IS_IEEE_FLOAT |
(HOST_IS_PVP_IEEE || \ HOST_IS_MPP || \ HOST_IS_SPARC || \ HOST_IS_MIPS)
Definition at line 706 of file arith.internal.h.
Referenced by AR_convert_float_to_str().
| #define HOST_IS_MIPS (ar_host() == AR_Arch_MIPS ) |
Definition at line 701 of file arith.internal.h.
Referenced by AR_abs(), ar_c128toi64(), ar_ctoi128(), ar_ctoi64(), ar_i128to64(), ar_i64to128(), ar_ifadd128(), ar_ifcmp128(), ar_ifdiv128(), ar_ifix128(), ar_iflt128(), ar_ifmul128(), ar_isqrt64(), ar_negate_float(), AR_one(), and AR_status().
| #define HOST_IS_MPP (HOST_IS_T3D || HOST_IS_T3E) |
Definition at line 703 of file arith.internal.h.
| #define HOST_IS_PVP (ar_host() == AR_Arch_PVP ) |
Definition at line 696 of file arith.internal.h.
| #define HOST_IS_PVP_IEEE (ar_host() == AR_Arch_PVP_IEEE) |
Definition at line 697 of file arith.internal.h.
| #define HOST_IS_SPARC (ar_host() == AR_Arch_SPARC ) |
Definition at line 700 of file arith.internal.h.
| #define HOST_IS_T3D (ar_host() == AR_Arch_T3D ) |
Definition at line 698 of file arith.internal.h.
| #define HOST_IS_T3E (ar_host() == AR_Arch_T3E ) |
Definition at line 699 of file arith.internal.h.
| #define HOST_IS_UNKNOWN (ar_host() == AR_Arch_Unknown ) |
Definition at line 695 of file arith.internal.h.
( \
(c).isign = (s).sign, \
(c).iexpo = (s).expo, \
(c).icoeff0 = (s).coeff0, \
(c).icoeff1 = (s).coeff1 )
Definition at line 1094 of file arith.internal.h.
Referenced by AR_add(), ar_compose_complex(), AR_make_complex(), and AR_subtract().
( \
(c).rsign = (s).sign, \
(c).rexpo = (s).expo, \
(c).rcoeff0 = (s).coeff0, \
(c).rcoeff1 = (s).coeff1 )
Definition at line 1088 of file arith.internal.h.
Referenced by AR_add(), ar_compose_complex(), ar_convert_to_complex(), AR_make_complex(), and AR_subtract().
| #define IEEE32TOINT64 | ( | i, | |||
| f | ) |
( \
(i).part1 = (i).part2 = 0, \
(i).part3 = (f).sign << 15 | (f).expo << 7 | (f).coeff0, \
(i).part4 = (f).coeff1 )
Definition at line 1100 of file arith.internal.h.
Referenced by ar_ifix32().
| #define IEEE64TOINT64 | ( | i, | |||
| f | ) |
( \
(i).part1 = (f).sign << 15 | (f).expo << 4 | (f).coeff0, \
(i).part2 = (f).coeff1, \
(i).part3 = (f).coeff2, \
(i).part4 = (f).coeff3 )
Definition at line 1105 of file arith.internal.h.
Referenced by ar_ifix64().
| #define INCCRAY128 | ( | sum, | |||
| carry | ) |
do { \ (sum).coeff5 = (carry) += (sum).coeff5; \ (carry) >>= AR_CRAY_C5_BITS; \ (sum).coeff4 = (carry) += (sum).coeff4; \ (carry) >>= AR_CRAY_C4_BITS; \ (sum).coeff3 = (carry) += (sum).coeff3; \ (carry) >>= AR_CRAY_C3_BITS; \ (sum).coeff2 = (carry) += (sum).coeff2; \ (carry) >>= AR_CRAY_C2_BITS; \ (sum).coeff1 = (carry) += (sum).coeff1; \ (carry) >>= AR_CRAY_C1_BITS; \ (sum).coeff0 = (carry) += (sum).coeff0; \ (carry) >>= AR_CRAY_C0_BITS; \ } while (0)
Definition at line 1479 of file arith.internal.h.
Referenced by ar_cfdiv128(), and ar_cfmul128().
| #define INCCRAY64 | ( | sum, | |||
| carry | ) |
do { \ (sum).coeff2 = (carry) += (sum).coeff2; \ (carry) >>= AR_CRAY_C2_BITS; \ (sum).coeff1 = (carry) += (sum).coeff1; \ (carry) >>= AR_CRAY_C1_BITS; \ (sum).coeff0 = (carry) += (sum).coeff0; \ (carry) >>= AR_CRAY_C0_BITS; \ } while (0)
Definition at line 1470 of file arith.internal.h.
Referenced by ar_cfadd64(), and ar_cfdiv128().
| #define INCIEEE128 | ( | sum, | |||
| carry | ) |
do { \ (sum).coeff6 = (carry) += (sum).coeff6; \ (carry) >>= AR_IEEE128_C6_BITS; \ (sum).coeff5 = (carry) += (sum).coeff5; \ (carry) >>= AR_IEEE128_C5_BITS; \ (sum).coeff4 = (carry) += (sum).coeff4; \ (carry) >>= AR_IEEE128_C4_BITS; \ (sum).coeff3 = (carry) += (sum).coeff3; \ (carry) >>= AR_IEEE128_C3_BITS; \ (sum).coeff2 = (carry) += (sum).coeff2; \ (carry) >>= AR_IEEE128_C2_BITS; \ (sum).coeff1 = (carry) += (sum).coeff1; \ (carry) >>= AR_IEEE128_C1_BITS; \ (sum).coeff0 = (carry) += (sum).coeff0; \ (carry) >>= AR_IEEE128_C0_BITS; \ } while (0)
Definition at line 1130 of file arith.internal.h.
Referenced by ar_i128norm(), and ar_ifadd128().
| #define INCIEEE32 | ( | sum, | |||
| carry | ) |
do { \ (sum).coeff1 = (carry) += (sum).coeff1; \ (carry) >>= AR_IEEE32_C1_BITS; \ (sum).coeff0 = (carry) += (sum).coeff0; \ (carry) >>= AR_IEEE32_C0_BITS; \ } while (0)
Definition at line 1112 of file arith.internal.h.
Referenced by ar_i32norm(), and ar_ifadd32().
| #define INCIEEE64 | ( | sum, | |||
| carry | ) |
do { \ (sum).coeff3 = (carry) += (sum).coeff3; \ (carry) >>= AR_IEEE64_C3_BITS; \ (sum).coeff2 = (carry) += (sum).coeff2; \ (carry) >>= AR_IEEE64_C2_BITS; \ (sum).coeff1 = (carry) += (sum).coeff1; \ (carry) >>= AR_IEEE64_C1_BITS; \ (sum).coeff0 = (carry) += (sum).coeff0; \ (carry) >>= AR_IEEE64_C0_BITS; \ } while (0)
Definition at line 1119 of file arith.internal.h.
Referenced by ar_i64norm(), and ar_ifadd64().
| #define INT128_SIGN | ( | i | ) | ((i)->ar_i128.part1 & 0x8000) |
Definition at line 888 of file arith.internal.h.
| #define INT16_SIGN | ( | i | ) | ((i)->ar_i64.part4 & 0x8000) |
Definition at line 880 of file arith.internal.h.
Referenced by AR_abs(), ar_add_integer(), ar_convert_to_integral(), AR_divide(), ar_divide_integer(), AR_mod(), ar_multiply_integer(), AR_status(), and ar_subtract_integer().
| #define INT16_TO_HOST_SINT64 | ( | i, | |||
| a | ) |
do { \ if (INT16_SIGN(a)) \ i = -(((~((AR_HOST_SINT64) ((a)->ar_i64.part4))) + \ 1 \ ) & \ ~(-((AR_HOST_SINT64) 1) << 16) \ ); \ else \ i = (AR_HOST_SINT64) (a)->ar_i64.part4; \ } while (0)
Definition at line 957 of file arith.internal.h.
Referenced by AR_ibits(), AR_ishft(), and AR_ishftc().
| #define INT24_SIGN | ( | i | ) | ((i)->ar_i64.part3 & 0x80 ) |
Definition at line 882 of file arith.internal.h.
Referenced by ar_convert_to_integral(), and AR_status().
| #define INT32_SIGN | ( | i | ) | ((i)->ar_i64.part3 & 0x8000) |
Definition at line 884 of file arith.internal.h.
Referenced by AR_abs(), ar_add_integer(), ar_convert_to_integral(), AR_divide(), ar_divide_integer(), AR_mod(), ar_multiply_integer(), AR_status(), and ar_subtract_integer().
| #define INT32_TO_HOST_SINT64 | ( | i, | |||
| a | ) |
do { \ if (INT32_SIGN(a)) \ i = -(((~((((AR_HOST_SINT64) (a)->ar_i64.part3) << 16) \ | \ (((AR_HOST_SINT64) (a)->ar_i64.part4) ) \ ) \ ) + \ 1 \ ) & \ ~(-((AR_HOST_SINT64) 1) << 32) \ ); \ else \ i = (((AR_HOST_SINT64) (a)->ar_i64.part3) << 16) | \ (((AR_HOST_SINT64) (a)->ar_i64.part4) ); \ } while (0)
Definition at line 968 of file arith.internal.h.
Referenced by AR_ibits(), AR_ishft(), and AR_ishftc().
| #define INT64_SIGN | ( | i | ) | ((i)->ar_i64.part1 & 0x8000) |
Definition at line 886 of file arith.internal.h.
Referenced by AR_abs(), ar_add_integer(), AR_add_ptr_int(), AR_convert_int_to_str(), ar_convert_to_integral(), AR_divide(), ar_divide_integer(), AR_mod(), ar_multiply_integer(), AR_status(), and ar_subtract_integer().
| #define INT64_TO_HOST_SINT64 | ( | i, | |||
| a | ) |
do { \ i = (((AR_HOST_SINT64) (a)->ar_i64.part1) << 48) | \ (((AR_HOST_SINT64) (a)->ar_i64.part2) << 32) | \ (((AR_HOST_SINT64) (a)->ar_i64.part3) << 16) | \ (((AR_HOST_SINT64) (a)->ar_i64.part4) ); \ } while (0)
Definition at line 984 of file arith.internal.h.
Referenced by AR_ibits(), AR_ishft(), and AR_ishftc().
| #define INT64TOCRAY64 | ( | c, | |||
| i | ) |
( \
(c).sign = (i).part1 >> 15, \
(c).expo = (i).part1, \
(c).coeff0 = (i).part2, \
(c).coeff1 = (i).part3, \
(c).coeff2 = (i).part4 )
Definition at line 1494 of file arith.internal.h.
Referenced by ar_cflt128(), ar_cflt64(), ar_i64toc128(), and ar_itoc64().
| #define INT64TOIEEE128 | ( | f, | |||
| i | ) |
( \
(f).sign = (i).part1 >> 15, \
(f).expo = (i).part1, \
(f).coeff0 = (i).part2, \
(f).coeff1 = (i).part3, \
(f).coeff2 = (i).part4 )
Definition at line 1163 of file arith.internal.h.
Referenced by ar_iflt128().
| #define INT64TOIEEE32 | ( | f, | |||
| i | ) |
( \
(f).zero = 0, \
(f).sign = (i).part3 >> 15, \
(f).expo = (i).part3 >> 7, \
(f).coeff0 = (i).part3, \
(f).coeff1 = (i).part4 )
Definition at line 1148 of file arith.internal.h.
Referenced by ar_iflt32().
| #define INT64TOIEEE64 | ( | f, | |||
| i | ) |
( \
(f).sign = (i).part1 >> 15, \
(f).expo = (i).part1 >> 4, \
(f).coeff0 = (i).part1, \
(f).coeff1 = (i).part2, \
(f).coeff2 = (i).part3, \
(f).coeff3 = (i).part4 )
Definition at line 1155 of file arith.internal.h.
Referenced by ar_c128toi64(), ar_ctoi64(), and ar_iflt64().
| #define INT8_SIGN | ( | i | ) | ((i)->ar_i8.part5 & 0x80 ) |
Definition at line 878 of file arith.internal.h.
Referenced by AR_abs(), ar_add_integer(), ar_convert_to_integral(), AR_divide(), ar_divide_integer(), AR_mod(), ar_multiply_integer(), AR_status(), and ar_subtract_integer().
| #define INT8_TO_HOST_SINT64 | ( | i, | |||
| a | ) |
do { \ if (INT8_SIGN(a)) \ i = -(((~((AR_HOST_SINT64) ((a)->ar_i8.part5))) + \ 1 \ ) & \ ~(-((AR_HOST_SINT64) 1) << 8) \ ); \ else \ i = (AR_HOST_SINT64) (a)->ar_i8.part5; \ } while (0)
Definition at line 946 of file arith.internal.h.
Referenced by AR_ibits(), AR_ishft(), and AR_ishftc().
| #define INT_OVERFLOWS_46_BITS | ( | OPND | ) |
((((OPND).ar_i64.part1 & 0xffff) != 0xffff || \ ((OPND).ar_i64.part2 & 0xe000) != 0xe000) && \ (((OPND).ar_i64.part1 & 0xffff) != 0 || \ ((OPND).ar_i64.part2 & 0xe000) != 0))
Definition at line 727 of file arith.internal.h.
Referenced by ar_convert_to_integral(), AR_divide(), and ar_multiply_integer().
| #define INT_SIGN | ( | t, | |||
| i | ) |
((AR_INT_SIZE(t) == AR_INT_SIZE_8 && \ INT8_SIGN(i)) || \ (AR_INT_SIZE(t) == AR_INT_SIZE_16 && \ INT16_SIGN(i)) || \ (AR_INT_SIZE(t) == AR_INT_SIZE_24 && \ INT24_SIGN(i)) || \ (AR_INT_SIZE(t) == AR_INT_SIZE_32 && \ INT32_SIGN(i)) || \ (AR_INT_SIZE(t) == AR_INT_SIZE_46 && \ INT64_SIGN(i)) || \ (AR_INT_SIZE(t) == AR_INT_SIZE_64 && \ INT64_SIGN(i)) || \ (AR_INT_SIZE(t) == AR_INT_SIZE_128 && \ INT128_SIGN(i)))
Definition at line 891 of file arith.internal.h.
Referenced by ar_power().
Definition at line 724 of file arith.internal.h.
Referenced by ar_cabs(), AR_cabs(), ar_check_status(), ar_convert_str_to_float(), AR_convert_str_to_float(), ar_cvt_str_to_float(), ar_exp(), AR_exp(), ar_index(), AR_index(), ar_log(), AR_log(), ar_modulo(), AR_Modulo(), ar_pass_ext_address(), ar_pass_fcd_address(), ar_power(), AR_power(), ar_reshape(), ar_scan(), AR_scan(), ar_selected_real_kind(), AR_selected_real_kind(), ar_sim(), ar_sqrt(), AR_sqrt(), ar_transfer(), ar_verify(), and AR_verify().
| #define IS_IEEE128_NaN | ( | x | ) | ((x)->expo > AR_IEEE128_MAX_EXPO && IS_IEEE128_NZ_COEFF(x)) |
Definition at line 1030 of file arith.internal.h.
Referenced by ar_ifadd128(), ar_ifcmp128(), ar_ifdiv128(), ar_ifmul128(), and ar_ifsub128().
| #define IS_IEEE128_NZ_COEFF | ( | x | ) |
((x)->coeff0 != 0 || \
(x)->coeff1 != 0 || \
(x)->coeff2 != 0 || \
(x)->coeff3 != 0 || \
(x)->coeff4 != 0 || \
(x)->coeff5 != 0 || \
(x)->coeff6 != 0)
Definition at line 1004 of file arith.internal.h.
Referenced by ar_i128to64(), ar_i64to128(), ar_ifadd128(), ar_ifcmp128(), ar_ifdiv128(), ar_ifix128(), ar_ifmul128(), and AR_status().
| #define IS_IEEE32_NaN | ( | x | ) | ((x)->expo > AR_IEEE32_MAX_EXPO && IS_IEEE32_NZ_COEFF(x)) |
Definition at line 1024 of file arith.internal.h.
Referenced by ar_ifadd32(), ar_ifcmp32(), ar_ifdiv32(), ar_ifmul32(), and ar_ifsub32().
| #define IS_IEEE32_NZ_COEFF | ( | x | ) |
((x)->coeff0 != 0 || \
(x)->coeff1 != 0)
Definition at line 994 of file arith.internal.h.
Referenced by ar_i32to64(), ar_i64to32(), ar_ifadd32(), ar_ifcmp32(), ar_ifdiv32(), ar_ifix32(), ar_ifmul32(), and AR_status().
| #define IS_IEEE64_NaN | ( | x | ) | ((x)->expo > AR_IEEE64_MAX_EXPO && IS_IEEE64_NZ_COEFF(x)) |
Definition at line 1027 of file arith.internal.h.
Referenced by ar_ifadd64(), ar_ifcmp64(), ar_ifdiv64(), ar_ifmul64(), and ar_ifsub64().
| #define IS_IEEE64_NZ_COEFF | ( | x | ) |
((x)->coeff0 != 0 || \
(x)->coeff1 != 0 || \
(x)->coeff2 != 0 || \
(x)->coeff3 != 0)
Definition at line 998 of file arith.internal.h.
Referenced by ar_i128to64(), ar_i32to64(), ar_i64to128(), ar_i64to32(), ar_ifadd64(), ar_ifcmp64(), ar_ifdiv64(), ar_ifix64(), ar_ifmul64(), ar_isqrt64(), and AR_status().
| #define IS_INT128_ZERO | ( | i | ) |
((i)->ar_i128.part1 == 0 && \
(i)->ar_i128.part2 == 0 && \
(i)->ar_i128.part3 == 0 && \
(i)->ar_i128.part4 == 0 && \
(i)->ar_i128.part5 == 0 && \
(i)->ar_i128.part6 == 0 && \
(i)->ar_i128.part7 == 0 && \
(i)->ar_i128.part8 == 0)
Definition at line 755 of file arith.internal.h.
| #define IS_INT16_UPPER_ONES | ( | i | ) |
((i)->ar_i64.part1 == 0xFFFF && \
(i)->ar_i64.part2 == 0xFFFF && \
(i)->ar_i64.part3 == 0xFFFF)
Definition at line 863 of file arith.internal.h.
| #define IS_INT16_UPPER_ZERO | ( | i | ) |
((i)->ar_i64.part1 == 0 && \
(i)->ar_i64.part2 == 0 && \
(i)->ar_i64.part3 == 0)
Definition at line 770 of file arith.internal.h.
Referenced by AR_convert_str_to_int(), and ar_convert_to_integral().
| #define IS_INT16_ZERO | ( | i | ) | ((i)->ar_i64.part4 == 0) |
Definition at line 738 of file arith.internal.h.
Referenced by ar_add_integer(), AR_convert_str_to_int(), AR_divide(), ar_divide_integer(), ar_multiply_integer(), AR_status(), and ar_subtract_integer().
| #define IS_INT24_UPPER_ONES | ( | i | ) |
((i)->ar_i64.part1 == 0xFFFF && \
(i)->ar_i64.part2 == xxFFFF && \
((i)->ar_i64.part3 & 0xFF00) == 0xFF00)
Definition at line 867 of file arith.internal.h.
| #define IS_INT24_UPPER_ZERO | ( | i | ) |
((i)->ar_i64.part1 == 0 && \
(i)->ar_i64.part2 == 0 && \
((i)->ar_i64.part3 & 0xFF00) == 0)
Definition at line 774 of file arith.internal.h.
Referenced by AR_convert_str_to_int(), and ar_convert_to_integral().
| #define IS_INT24_ZERO | ( | i | ) |
(((i)->ar_i64.part3 & 0xFF) == 0 && \
(i)->ar_i64.part4 == 0)
Definition at line 740 of file arith.internal.h.
Referenced by AR_convert_str_to_int(), and AR_status().
| #define IS_INT32_UPPER_ONES | ( | i | ) |
((i)->ar_i64.part1 == 0xFFFF && \
(i)->ar_i64.part2 == 0xFFFF)
Definition at line 871 of file arith.internal.h.
| #define IS_INT32_UPPER_ZERO | ( | i | ) |
((i)->ar_i64.part1 == 0 && \
(i)->ar_i64.part2 == 0)
Definition at line 778 of file arith.internal.h.
Referenced by AR_convert_str_to_int(), and ar_convert_to_integral().
| #define IS_INT32_ZERO | ( | i | ) |
((i)->ar_i64.part3 == 0 && \
(i)->ar_i64.part4 == 0)
Definition at line 743 of file arith.internal.h.
Referenced by ar_add_integer(), AR_convert_str_to_int(), AR_divide(), ar_divide_integer(), ar_multiply_integer(), AR_status(), and ar_subtract_integer().
| #define IS_INT46_UPPER_ONES | ( | i | ) |
((i)->ar_i64.part1 == 0xFFFF && \
((i)->ar_i64.part2 & 0xC000) == 0xC000)
Definition at line 874 of file arith.internal.h.
| #define IS_INT46_UPPER_ZERO | ( | i | ) |
((i)->ar_i64.part1 == 0 && \
((i)->ar_i64.part2 & 0xC000) == 0)
Definition at line 781 of file arith.internal.h.
Referenced by AR_convert_str_to_int().
| #define IS_INT46_ZERO | ( | i | ) |
(((i)->ar_i64.part2 & 0x3FFF) == 0 && \
(i)->ar_i64.part3 == 0 && \
(i)->ar_i64.part4 == 0)
Definition at line 746 of file arith.internal.h.
Referenced by AR_convert_str_to_int().
| #define IS_INT64_ZERO | ( | i | ) |
((i)->ar_i64.part1 == 0 && \
(i)->ar_i64.part2 == 0 && \
(i)->ar_i64.part3 == 0 && \
(i)->ar_i64.part4 == 0)
Definition at line 750 of file arith.internal.h.
Referenced by ar_add_integer(), AR_convert_int_to_str(), AR_convert_str_to_int(), ar_convert_to_integral(), AR_divide(), ar_divide_integer(), ar_multiply_integer(), ar_power(), AR_status(), and ar_subtract_integer().
| #define IS_INT8_UPPER_ONES | ( | i | ) |
((i)->ar_i8.part1 == 0xFFFF && \
(i)->ar_i8.part2 == 0xFFFF && \
(i)->ar_i8.part3 == 0xFFFF && \
(i)->ar_i8.part4 == 0xFF)
Definition at line 858 of file arith.internal.h.
| #define IS_INT8_UPPER_ZERO | ( | i | ) |
((i)->ar_i8.part1 == 0 && \
(i)->ar_i8.part2 == 0 && \
(i)->ar_i8.part3 == 0 && \
(i)->ar_i8.part4 == 0)
Definition at line 765 of file arith.internal.h.
Referenced by AR_convert_str_to_int(), and ar_convert_to_integral().
| #define IS_INT8_ZERO | ( | i | ) | ((i)->ar_i8.part5 == 0) |
Definition at line 736 of file arith.internal.h.
Referenced by ar_add_integer(), AR_convert_str_to_int(), AR_divide(), ar_divide_integer(), ar_multiply_integer(), AR_status(), and ar_subtract_integer().
| #define IS_MIPS128_NaN | ( | x | ) |
(((x)->expo > AR_MIPS128_MAX_EXPO || \ (x)->expol > AR_MIPS128_MAX_EXPO) && IS_MIPS128_NZ_COEFF(x))
Definition at line 1033 of file arith.internal.h.
Referenced by ar_ifcmp128().
| #define IS_MIPS128_NZ_COEFF | ( | x | ) |
((x)->coeff0 != 0 || \
(x)->coeff1 != 0 || \
(x)->coeff2 != 0 || \
(x)->coeff3 != 0 || \
(x)->coeff0l != 0 || \
(x)->coeff1l != 0 || \
(x)->coeff2l != 0 || \
(x)->coeff3l != 0 )
Definition at line 1013 of file arith.internal.h.
Referenced by AR_status().
| #define MASKL | ( | bits | ) |
((unsigned long) \ (~((~(unsigned long) 0) >> (bits))))
Definition at line 344 of file arith.internal.h.
Referenced by test_ishftc_signed().
| #define MASKM | ( | bits, | |||
| where | ) | ((unsigned long) (MASKR(bits) << (where))) |
Definition at line 348 of file arith.internal.h.
| #define MASKR | ( | bits | ) |
((unsigned long) \ (~((~(unsigned long) 0) << (bits))))
Definition at line 346 of file arith.internal.h.
Referenced by ar_c128toi64(), ar_c1frecip(), ar_cfmul64(), ar_i128norm(), ar_i128to64(), ar_i32norm(), ar_i64norm(), ar_i64to32(), ar_ifadd128(), ar_ifadd32(), ar_ifadd64(), ar_ifdiv128(), ar_ifdiv32(), ar_ifdiv64(), ar_ifix128(), ar_ifix32(), ar_ifix64(), ar_ifmul128(), ar_ifmul32(), ar_ifmul64(), ar_isqrt64(), prcray128(), prcray64(), prieee32(), prieee64(), print64(), and test_ibits_signed().
| #define NOTCRAY128 | ( | x | ) |
( (x).coeff0 ^= MASKR (AR_CRAY_C0_BITS), \ (x).coeff1 ^= MASKR (AR_CRAY_C1_BITS), \ (x).coeff2 ^= MASKR (AR_CRAY_C2_BITS), \ (x).coeff3 ^= MASKR (AR_CRAY_C3_BITS), \ (x).coeff4 ^= MASKR (AR_CRAY_C4_BITS), \ (x).coeff5 ^= MASKR (AR_CRAY_C5_BITS) )
Definition at line 1505 of file arith.internal.h.
Referenced by ar_cfadd128().
| #define NOTCRAY64 | ( | x | ) |
( (x).coeff0 ^= MASKR (AR_CRAY_C0_BITS), \ (x).coeff1 ^= MASKR (AR_CRAY_C1_BITS), \ (x).coeff2 ^= MASKR (AR_CRAY_C2_BITS) )
Definition at line 1501 of file arith.internal.h.
Referenced by ar_cfadd64(), and ar_cfmul64().
| #define NOTIEEE128 | ( | x | ) |
( (x).coeff0 ^= MASKR (AR_IEEE128_C0_BITS), \ (x).coeff1 ^= MASKR (AR_IEEE128_C1_BITS), \ (x).coeff2 ^= MASKR (AR_IEEE128_C2_BITS), \ (x).coeff3 ^= MASKR (AR_IEEE128_C3_BITS), \ (x).coeff4 ^= MASKR (AR_IEEE128_C4_BITS), \ (x).coeff5 ^= MASKR (AR_IEEE128_C5_BITS), \ (x).coeff6 ^= MASKR (AR_IEEE128_C6_BITS) )
Definition at line 1179 of file arith.internal.h.
Referenced by ar_ifadd128().
| #define NOTIEEE32 | ( | x | ) |
( (x).coeff0 ^= MASKR (AR_IEEE32_C0_BITS), \ (x).coeff1 ^= MASKR (AR_IEEE32_C1_BITS) )
Definition at line 1171 of file arith.internal.h.
Referenced by ar_ifadd32().
| #define NOTIEEE64 | ( | x | ) |
( (x).coeff0 ^= MASKR (AR_IEEE64_C0_BITS), \ (x).coeff1 ^= MASKR (AR_IEEE64_C1_BITS), \ (x).coeff2 ^= MASKR (AR_IEEE64_C2_BITS), \ (x).coeff3 ^= MASKR (AR_IEEE64_C3_BITS) )
Definition at line 1174 of file arith.internal.h.
Referenced by ar_ifadd64().
| #define QNaNIEEE128 | ( | x | ) |
do { \ if (HOST_IS_MIPS) { \ ZEROIEEE128M(*((AR_MIPS_128 *) x)); \ ((AR_MIPS_128 *) x)->coeff0 = MASKR (AR_IEEE64_C0_BITS - 1); \ ((AR_MIPS_128 *) x)->coeff1 = MASKR (AR_IEEE64_C1_BITS ); \ ((AR_MIPS_128 *) x)->coeff2 = MASKR (AR_IEEE64_C2_BITS ); \ ((AR_MIPS_128 *) x)->coeff3 = MASKR (AR_IEEE64_C3_BITS ); \ ((AR_MIPS_128 *) x)->expo = AR_IEEE64_MAX_EXPO + 1; \ } \ else { \ ZEROIEEE128(*x); \ NOTIEEE128(*x); \ (x)->expo = AR_IEEE128_MAX_EXPO + 1; \ } \ } while (0)
Definition at line 1406 of file arith.internal.h.
Referenced by ar_ctoi128(), ar_ifadd128(), ar_ifdiv128(), and ar_ifmul128().
| #define QNaNIEEE32 | ( | x | ) |
do { \ ZEROIEEE32(*x); \ NOTIEEE32(*x); \ if (HOST_IS_MIPS) { \ (x)->coeff0 ^= (1 << (AR_IEEE32_C0_BITS - 1)); \ } \ (x)->expo = AR_IEEE32_MAX_EXPO + 1; \ } while (0)
Definition at line 1388 of file arith.internal.h.
Referenced by ar_ifadd32(), ar_ifdiv32(), and ar_ifmul32().
| #define QNaNIEEE64 | ( | x | ) |
do { \ ZEROIEEE64(*x); \ NOTIEEE64(*x); \ if (HOST_IS_MIPS) { \ (x)->coeff0 ^= (1 << (AR_IEEE64_C0_BITS - 1)); \ } \ (x)->expo = AR_IEEE64_MAX_EXPO + 1; \ } while (0)
Definition at line 1397 of file arith.internal.h.
Referenced by ar_c128toi64(), ar_ctoi64(), ar_ifadd64(), ar_ifdiv64(), and ar_ifmul64().
| #define ROUND_MODE | ( | t | ) | ((t >> 3) & 3) |
Definition at line 721 of file arith.internal.h.
Referenced by AR_add(), ar_compare_float(), ar_convert_to_float(), ar_convert_to_integral(), ar_divide_float(), ar_multiply_float(), ar_pass_arg_address(), ar_pass_arg_value(), and AR_subtract().
| #define SHLEFTCRAY128 | ( | x | ) |
do { \ (x).coeff0 = ((x).coeff0 << 1) | \ ((x).coeff1 >> (AR_CRAY_C1_BITS - 1)); \ (x).coeff1 = ((x).coeff1 << 1) | \ ((x).coeff2 >> (AR_CRAY_C2_BITS - 1)); \ (x).coeff2 = ((x).coeff2 << 1) | \ ((x).coeff3 >> (AR_CRAY_C3_BITS - 1)); \ (x).coeff3 = ((x).coeff3 << 1) | \ ((x).coeff4 >> (AR_CRAY_C4_BITS - 1)); \ (x).coeff4 = ((x).coeff4 << 1) | \ ((x).coeff5 >> (AR_CRAY_C5_BITS - 1)); \ (x).coeff5 <<= 1; \ } while (0)
Definition at line 1527 of file arith.internal.h.
Referenced by ar_cfadd128(), ar_cfdiv128(), ar_cfix128(), ar_cflt128(), and ar_cfmul128().
| #define SHLEFTCRAY64 | ( | x | ) |
do { \ (x).coeff0 = ((x).coeff0 << 1) | \ ((x).coeff1 >> (AR_CRAY_C1_BITS - 1)); \ (x).coeff1 = ((x).coeff1 << 1) | \ ((x).coeff2 >> (AR_CRAY_C2_BITS - 1)); \ (x).coeff2 <<= 1; \ } while (0)
Definition at line 1518 of file arith.internal.h.
Referenced by ar_c1frecip(), ar_cfadd64(), ar_cflt64(), and ar_cfmul64().
| #define SHLEFTIEEE128 | ( | x | ) |
do { \ (x).coeff0 = ((x).coeff0 << 1) | \ ((x).coeff1 >> (AR_IEEE128_C1_BITS - 1)); \ (x).coeff1 = ((x).coeff1 << 1) | \ ((x).coeff2 >> (AR_IEEE128_C2_BITS - 1)); \ (x).coeff2 = ((x).coeff2 << 1) | \ ((x).coeff3 >> (AR_IEEE128_C3_BITS - 1)); \ (x).coeff3 = ((x).coeff3 << 1) | \ ((x).coeff4 >> (AR_IEEE128_C4_BITS - 1)); \ (x).coeff4 = ((x).coeff4 << 1) | \ ((x).coeff5 >> (AR_IEEE128_C5_BITS - 1)); \ (x).coeff5 = ((x).coeff5 << 1) | \ ((x).coeff6 >> (AR_IEEE128_C6_BITS - 1)); \ (x).coeff6 <<= 1; \ } while (0)
Definition at line 1204 of file arith.internal.h.
Referenced by ar_i128norm(), and ar_ifdiv128().
| #define SHLEFTIEEE128_2 | ( | x, | |||
| y | ) |
do { \ (x).coeff0 = ((x).coeff0 << 1) | \ ((x).coeff1 >> (AR_IEEE128_C1_BITS - 1)); \ (x).coeff1 = ((x).coeff1 << 1) | \ ((x).coeff2 >> (AR_IEEE128_C2_BITS - 1)); \ (x).coeff2 = ((x).coeff2 << 1) | \ ((x).coeff3 >> (AR_IEEE128_C3_BITS - 1)); \ (x).coeff3 = ((x).coeff3 << 1) | \ ((x).coeff4 >> (AR_IEEE128_C4_BITS - 1)); \ (x).coeff4 = ((x).coeff4 << 1) | \ ((x).coeff5 >> (AR_IEEE128_C5_BITS - 1)); \ (x).coeff5 = ((x).coeff5 << 1) | \ ((x).coeff6 >> (AR_IEEE128_C6_BITS - 1)); \ (x).coeff6 = ((x).coeff6 << 1) | \ ((y).coeff0 >> (AR_IEEE128_C0_BITS - 1)); \ (y).coeff0 = ((y).coeff0 << 1) | \ ((y).coeff1 >> (AR_IEEE128_C1_BITS - 1)); \ (y).coeff1 = ((y).coeff1 << 1) | \ ((y).coeff2 >> (AR_IEEE128_C2_BITS - 1)); \ (y).coeff2 = ((y).coeff2 << 1) | \ ((y).coeff3 >> (AR_IEEE128_C3_BITS - 1)); \ (y).coeff3 = ((y).coeff3 << 1) | \ ((y).coeff4 >> (AR_IEEE128_C4_BITS - 1)); \ (y).coeff4 = ((y).coeff4 << 1) | \ ((y).coeff5 >> (AR_IEEE128_C5_BITS - 1)); \ (y).coeff5 = ((y).coeff5 << 1) | \ ((y).coeff6 >> (AR_IEEE128_C6_BITS - 1)); \ (y).coeff6 <<= 1; \ } while (0)
Definition at line 1249 of file arith.internal.h.
Referenced by ar_ifmul128().
| #define SHLEFTIEEE32 | ( | x | ) |
do { \ (x).coeff0 = ((x).coeff0 << 1) | \ ((x).coeff1 >> (AR_IEEE32_C1_BITS - 1)); \ (x).coeff1 <<= 1; \ } while (0)
Definition at line 1188 of file arith.internal.h.
Referenced by ar_i32norm(), and ar_ifdiv32().
| #define SHLEFTIEEE32_2 | ( | x, | |||
| y | ) |
do { \ (x).coeff0 = ((x).coeff0 << 1) | \ ((x).coeff1 >> (AR_IEEE32_C1_BITS - 1)); \ (x).coeff1 = ((x).coeff1 << 1) | \ ((y).coeff0 >> (AR_IEEE32_C0_BITS - 1)); \ (y).coeff0 = ((y).coeff0 << 1) | \ ((y).coeff1 >> (AR_IEEE32_C1_BITS - 1)); \ (y).coeff1 <<= 1; \ } while (0)
Definition at line 1221 of file arith.internal.h.
Referenced by ar_ifmul32().
| #define SHLEFTIEEE64 | ( | x | ) |
do { \ (x).coeff0 = ((x).coeff0 << 1) | \ ((x).coeff1 >> (AR_IEEE64_C1_BITS - 1)); \ (x).coeff1 = ((x).coeff1 << 1) | \ ((x).coeff2 >> (AR_IEEE64_C2_BITS - 1)); \ (x).coeff2 = ((x).coeff2 << 1) | \ ((x).coeff3 >> (AR_IEEE64_C3_BITS - 1)); \ (x).coeff3 <<= 1; \ } while (0)
Definition at line 1194 of file arith.internal.h.
Referenced by ar_c128toi64(), ar_i64norm(), and ar_ifdiv64().
| #define SHLEFTIEEE64_2 | ( | x, | |||
| y | ) |
do { \ (x).coeff0 = ((x).coeff0 << 1) | \ ((x).coeff1 >> (AR_IEEE64_C1_BITS - 1)); \ (x).coeff1 = ((x).coeff1 << 1) | \ ((x).coeff2 >> (AR_IEEE64_C2_BITS - 1)); \ (x).coeff2 = ((x).coeff2 << 1) | \ ((x).coeff3 >> (AR_IEEE64_C3_BITS - 1)); \ (x).coeff3 = ((x).coeff3 << 1) | \ ((y).coeff0 >> (AR_IEEE64_C0_BITS - 1)); \ (y).coeff0 = ((y).coeff0 << 1) | \ ((y).coeff1 >> (AR_IEEE64_C1_BITS - 1)); \ (y).coeff1 = ((y).coeff1 << 1) | \ ((y).coeff2 >> (AR_IEEE64_C2_BITS - 1)); \ (y).coeff2 = ((y).coeff2 << 1) | \ ((y).coeff3 >> (AR_IEEE64_C3_BITS - 1)); \ (y).coeff3 <<= 1; \ } while (0)
Definition at line 1231 of file arith.internal.h.
Referenced by ar_ifmul64().
| #define SHRIGHTCRAY128 | ( | x | ) |
do { \ (x).coeff5 = ((x).coeff5 >> 1) | \ ((x).coeff4 << (AR_CRAY_C5_BITS - 1)); \ (x).coeff4 = ((x).coeff4 >> 1) | \ ((x).coeff3 << (AR_CRAY_C4_BITS - 1)); \ (x).coeff3 = ((x).coeff3 >> 1) | \ ((x).coeff2 << (AR_CRAY_C3_BITS - 1)); \ (x).coeff2 = ((x).coeff2 >> 1) | \ ((x).coeff1 << (AR_CRAY_C2_BITS - 1)); \ (x).coeff1 = ((x).coeff1 >> 1) | \ ((x).coeff0 << (AR_CRAY_C1_BITS - 1)); \ (x).coeff0 >>= 1; \ } while (0)
Definition at line 1556 of file arith.internal.h.
Referenced by ar_cfadd128(), ar_cfdiv128(), ar_cfmul128(), ar_i64toc128(), and ar_itoc128().
| #define SHRIGHTCRAY64 | ( | x | ) |
do { \ (x).coeff2 = ((x).coeff2 >> 1) | \ ((x).coeff1 << (AR_CRAY_C2_BITS - 1)); \ (x).coeff1 = ((x).coeff1 >> 1) | \ ((x).coeff0 << (AR_CRAY_C1_BITS - 1)); \ (x).coeff0 >>= 1; \ } while (0)
Definition at line 1547 of file arith.internal.h.
Referenced by ar_c1frecip(), ar_cfadd64(), ar_cfmul64(), and ar_itoc64().
| #define SHRIGHTIEEE128 | ( | x | ) |
do { \ (x).coeff6 = ((x).coeff6 >> 1) | \ ((x).coeff5 << (AR_IEEE128_C6_BITS - 1)); \ (x).coeff5 = ((x).coeff5 >> 1) | \ ((x).coeff4 << (AR_IEEE128_C5_BITS - 1)); \ (x).coeff4 = ((x).coeff4 >> 1) | \ ((x).coeff3 << (AR_IEEE128_C4_BITS - 1)); \ (x).coeff3 = ((x).coeff3 >> 1) | \ ((x).coeff2 << (AR_IEEE128_C3_BITS - 1)); \ (x).coeff2 = ((x).coeff2 >> 1) | \ ((x).coeff1 << (AR_IEEE128_C2_BITS - 1)); \ (x).coeff1 = ((x).coeff1 >> 1) | \ ((x).coeff0 << (AR_IEEE128_C1_BITS - 1)); \ (x).coeff0 >>= 1; \ } while (0)
Definition at line 1296 of file arith.internal.h.
Referenced by ar_i128norm(), ar_ifadd128(), and ar_ifmul128().
| #define SHRIGHTIEEE128_2 | ( | x, | |||
| y | ) |
do { \ (y).coeff6 = ((y).coeff6 >> 1) | \ ((y).coeff5 << (AR_IEEE128_C6_BITS - 1)); \ (y).coeff5 = ((y).coeff5 >> 1) | \ ((y).coeff4 << (AR_IEEE128_C5_BITS - 1)); \ (y).coeff4 = ((y).coeff4 >> 1) | \ ((y).coeff3 << (AR_IEEE128_C4_BITS - 1)); \ (y).coeff3 = ((y).coeff3 >> 1) | \ ((y).coeff2 << (AR_IEEE128_C3_BITS - 1)); \ (y).coeff2 = ((y).coeff2 >> 1) | \ ((y).coeff1 << (AR_IEEE128_C2_BITS - 1)); \ (y).coeff1 = ((y).coeff1 >> 1) | \ ((y).coeff0 << (AR_IEEE128_C1_BITS - 1)); \ (y).coeff0 = ((y).coeff0 >> 1) | \ ((x).coeff6 << (AR_IEEE128_C0_BITS - 1)); \ (x).coeff6 = ((x).coeff6 >> 1) | \ ((x).coeff5 << (AR_IEEE128_C6_BITS - 1)); \ (x).coeff5 = ((x).coeff5 >> 1) | \ ((x).coeff4 << (AR_IEEE128_C5_BITS - 1)); \ (x).coeff4 = ((x).coeff4 >> 1) | \ ((x).coeff3 << (AR_IEEE128_C4_BITS - 1)); \ (x).coeff3 = ((x).coeff3 >> 1) | \ ((x).coeff2 << (AR_IEEE128_C3_BITS - 1)); \ (x).coeff2 = ((x).coeff2 >> 1) | \ ((x).coeff1 << (AR_IEEE128_C2_BITS - 1)); \ (x).coeff1 = ((x).coeff1 >> 1) | \ ((x).coeff0 << (AR_IEEE128_C1_BITS - 1)); \ (x).coeff0 >>= 1; \ } while (0)
Definition at line 1341 of file arith.internal.h.
Referenced by ar_ifdiv128().
| #define SHRIGHTIEEE32 | ( | x | ) |
do { \ (x).coeff1 = ((x).coeff1 >> 1) | \ ((x).coeff0 << (AR_IEEE32_C1_BITS - 1)); \ (x).coeff0 >>= 1; \ } while (0)
Definition at line 1280 of file arith.internal.h.
Referenced by ar_i32norm(), ar_ifadd32(), and ar_ifmul32().
| #define SHRIGHTIEEE32_2 | ( | x, | |||
| y | ) |
do { \ (y).coeff1 = ((y).coeff1 >> 1) | \ ((y).coeff0 << (AR_IEEE32_C1_BITS - 1)); \ (y).coeff0 = ((y).coeff0 >> 1) | \ ((x).coeff1 << (AR_IEEE32_C0_BITS - 1)); \ (x).coeff1 = ((x).coeff1 >> 1) | \ ((x).coeff0 << (AR_IEEE32_C1_BITS - 1)); \ (x).coeff0 >>= 1; \ } while (0)
Definition at line 1313 of file arith.internal.h.
Referenced by ar_ifdiv32().
| #define SHRIGHTIEEE64 | ( | x | ) |
do { \ (x).coeff3 = ((x).coeff3 >> 1) | \ ((x).coeff2 << (AR_IEEE64_C3_BITS - 1)); \ (x).coeff2 = ((x).coeff2 >> 1) | \ ((x).coeff1 << (AR_IEEE64_C2_BITS - 1)); \ (x).coeff1 = ((x).coeff1 >> 1) | \ ((x).coeff0 << (AR_IEEE64_C1_BITS - 1)); \ (x).coeff0 >>= 1; \ } while (0)
Definition at line 1286 of file arith.internal.h.
Referenced by ar_i64norm(), ar_ifadd64(), and ar_ifmul64().
| #define SHRIGHTIEEE64_2 | ( | x, | |||
| y | ) |
do { \ (y).coeff3 = ((y).coeff3 >> 1) | \ ((y).coeff2 << (AR_IEEE64_C3_BITS - 1)); \ (y).coeff2 = ((y).coeff2 >> 1) | \ ((y).coeff1 << (AR_IEEE64_C2_BITS - 1)); \ (y).coeff1 = ((y).coeff1 >> 1) | \ ((y).coeff0 << (AR_IEEE64_C1_BITS - 1)); \ (y).coeff0 = ((y).coeff0 >> 1) | \ ((x).coeff3 << (AR_IEEE64_C0_BITS - 1)); \ (x).coeff3 = ((x).coeff3 >> 1) | \ ((x).coeff2 << (AR_IEEE64_C3_BITS - 1)); \ (x).coeff2 = ((x).coeff2 >> 1) | \ ((x).coeff1 << (AR_IEEE64_C2_BITS - 1)); \ (x).coeff1 = ((x).coeff1 >> 1) | \ ((x).coeff0 << (AR_IEEE64_C1_BITS - 1)); \ (x).coeff0 >>= 1; \ } while (0)
Definition at line 1323 of file arith.internal.h.
Referenced by ar_ifdiv64().
| #define UNROUNDED_TYPE | ( | t | ) | (t &~ 0x18) |
Definition at line 722 of file arith.internal.h.
Referenced by ar_cabs(), ar_convert_str_to_float(), ar_cvt_str_to_float(), ar_exp(), ar_get_function_value(), ar_log(), ar_modulo(), ar_pass_arg_address(), ar_pass_arg_value(), ar_power(), and ar_sqrt().
| #define ZERO_INT128 | ( | i | ) |
(i)->ar_i128.part1 = \
(i)->ar_i128.part2 = \
(i)->ar_i128.part3 = \
(i)->ar_i128.part4 = \
(i)->ar_i128.part5 = \
(i)->ar_i128.part6 = \
(i)->ar_i128.part7 = \
(i)->ar_i128.part8 = 0
Definition at line 802 of file arith.internal.h.
| #define ZERO_INT128_ALL | ( | i | ) |
(i)->ar_i128.part1 = \
(i)->ar_i128.part2 = \
(i)->ar_i128.part3 = \
(i)->ar_i128.part4 = \
(i)->ar_i128.part5 = \
(i)->ar_i128.part6 = \
(i)->ar_i128.part7 = \
(i)->ar_i128.part8 = 0
Definition at line 848 of file arith.internal.h.
| #define ZERO_INT16 | ( | i | ) | (i)->ar_i64.part4 = 0 |
Definition at line 787 of file arith.internal.h.
Referenced by ar_divide_integer(), AR_dshiftl(), AR_dshiftr(), AR_mask(), AR_shiftl(), and AR_shiftr().
| #define ZERO_INT16_ALL | ( | i | ) |
(i)->ar_i64.part1 = \
(i)->ar_i64.part2 = \
(i)->ar_i64.part3 = \
(i)->ar_i64.part4 = 0
Definition at line 837 of file arith.internal.h.
Referenced by ar_divide_integer().
| #define ZERO_INT16_UPPER | ( | i | ) |
(i)->ar_i64.part1 = \
(i)->ar_i64.part2 = \
(i)->ar_i64.part3 = 0
Definition at line 817 of file arith.internal.h.
Referenced by AR_abs(), ar_add_integer(), ar_clear_unused_bits(), AR_convert_int_to_str(), AR_convert_str_to_int(), ar_dblshift(), ar_divide_integer(), AR_leadz(), ar_multiply_integer(), AR_poppar(), ar_subtract_integer(), test_ibits_signed(), and test_ishftc_signed().
| #define ZERO_INT24 | ( | i | ) |
do { \ (i)->ar_i64.part3 &= 0xFF00; \ (i)->ar_i64.part4 = 0; \ } while(0)
Definition at line 789 of file arith.internal.h.
| #define ZERO_INT24_ALL | ( | i | ) | ZERO_INT16_ALL(i) |
Definition at line 842 of file arith.internal.h.
| #define ZERO_INT24_UPPER | ( | i | ) |
do { \ (i)->ar_i64.part1 = \ (i)->ar_i64.part2 = 0; \ (i)->ar_i64.part3 &= 0xFF; \ } while(0)
Definition at line 821 of file arith.internal.h.
Referenced by ar_clear_unused_bits().
| #define ZERO_INT32 | ( | i | ) |
(i)->ar_i64.part3 = \
(i)->ar_i64.part4 = 0
Definition at line 794 of file arith.internal.h.
Referenced by ar_divide_integer(), AR_dshiftl(), AR_dshiftr(), AR_mask(), AR_shiftl(), and AR_shiftr().
| #define ZERO_INT32_ALL | ( | i | ) | ZERO_INT16_ALL(i) |
Definition at line 844 of file arith.internal.h.
Referenced by ar_divide_integer().
| #define ZERO_INT32_UPPER | ( | i | ) |
(i)->ar_i64.part1 = \
(i)->ar_i64.part2 = 0
Definition at line 827 of file arith.internal.h.
Referenced by AR_abs(), ar_add_integer(), ar_clear_unused_bits(), ar_dblshift(), ar_divide_integer(), ar_multiply_integer(), ar_subtract_integer(), test_ibits_signed(), and test_ishftc_signed().
| #define ZERO_INT64 | ( | i | ) |
(i)->ar_i64.part1 = \
(i)->ar_i64.part2 = \
(i)->ar_i64.part3 = \
(i)->ar_i64.part4 = 0
Definition at line 797 of file arith.internal.h.
Referenced by AR_convert_str_to_int(), ar_divide_integer(), AR_dshiftl(), AR_dshiftr(), AR_ishft(), AR_mask(), AR_shiftl(), and AR_shiftr().
| #define ZERO_INT64_ALL | ( | i | ) | ZERO_INT16_ALL(i) |
Definition at line 846 of file arith.internal.h.
Referenced by ar_divide_integer().
| #define ZERO_INT8 | ( | i | ) | (i)->ar_i8.part5 = 0 |
Definition at line 785 of file arith.internal.h.
Referenced by ar_divide_integer(), AR_dshiftl(), AR_dshiftr(), AR_mask(), AR_shiftl(), and AR_shiftr().
| #define ZERO_INT8_ALL | ( | i | ) |
(i)->ar_i8.part1 = \
(i)->ar_i8.part2 = \
(i)->ar_i8.part3 = \
(i)->ar_i8.part4 = \
(i)->ar_i8.part5 = 0
Definition at line 831 of file arith.internal.h.
Referenced by ar_divide_integer().
| #define ZERO_INT8_UPPER | ( | i | ) |
(i)->ar_i8.part1 = \
(i)->ar_i8.part2 = \
(i)->ar_i8.part3 = \
(i)->ar_i8.part4 = 0
Definition at line 812 of file arith.internal.h.
Referenced by AR_abs(), ar_add_integer(), ar_clear_unused_bits(), ar_dblshift(), ar_divide_integer(), ar_multiply_integer(), ar_subtract_integer(), test_ibits_signed(), and test_ishftc_signed().
| #define ZEROCRAY128 | ( | x | ) |
((x).sign = (x).expo = (x).coeff0 = (x).coeff1 = (x).coeff2 = \
(x).zero = (x).coeff3 = (x).coeff4 = (x).coeff5 = 0)
Definition at line 1573 of file arith.internal.h.
Referenced by ar_cfadd128(), ar_cflt128(), ar_cfmul128(), ar_convert_to_complex(), ar_i64toc128(), ar_itoc128(), AR_one(), and ar_set_invalid_result().
| #define ZEROCRAY64 | ( | x | ) | ((x).sign = (x).expo = (x).coeff0 = (x).coeff1 = (x).coeff2 = 0) |
Definition at line 1570 of file arith.internal.h.
Referenced by ar_c1frecip(), ar_cfadd64(), ar_cflt64(), ar_cfmul64(), ar_convert_to_complex(), ar_itoc64(), AR_one(), and ar_set_invalid_result().
| #define ZEROIEEE128 | ( | x | ) |
((x).sign = (x).expo = (x).coeff0 = \
(x).coeff1 = (x).coeff2 = (x).coeff3 = \
(x).coeff4 = (x).coeff5 = (x).coeff6 = 0)
Definition at line 1378 of file arith.internal.h.
Referenced by ar_convert_to_complex(), ar_ctoi128(), ar_cvt_str_to_float(), ar_i64to128(), ar_ifdiv128(), ar_ifmul128(), ar_itoc128(), AR_one(), and ar_set_invalid_result().
| #define ZEROIEEE128M | ( | x | ) |
((x).sign = (x).expo = (x).coeff0 = \
(x).coeff1 = (x).coeff2 = (x).coeff3 = \
(x).signl = (x).expol = (x).coeff0l = \
(x).coeff1l = (x).coeff2l = (x).coeff3l = 0)
Definition at line 1382 of file arith.internal.h.
| #define ZEROIEEE32 | ( | x | ) |
((x).zero = (x).sign = (x).expo = (x).coeff0 =\ (x).coeff1 = 0)
Definition at line 1372 of file arith.internal.h.
Referenced by ar_cvt_str_to_float(), ar_i64to32(), ar_ifdiv32(), ar_ifmul32(), AR_one(), and ar_set_invalid_result().
| #define ZEROIEEE64 | ( | x | ) |
((x).sign = (x).expo = (x).coeff0 = \
(x).coeff1 = (x).coeff2 = (x).coeff3 = 0)
Definition at line 1375 of file arith.internal.h.
Referenced by ar_c128toi64(), ar_convert_to_complex(), ar_ctoi64(), ar_cvt_str_to_float(), ar_i128to64(), ar_i32to64(), ar_i64toc128(), ar_ifdiv64(), ar_ifmul64(), ar_itoc64(), AR_one(), and ar_set_invalid_result().
| enum AR_ARCHITECTURE |
| AR_Arch_Unknown | |
| AR_Arch_PVP | |
| AR_Arch_PVP_IEEE | |
| AR_Arch_T3D | |
| AR_Arch_T3E | |
| AR_Arch_SPARC | |
| AR_Arch_MIPS |
Definition at line 683 of file arith.internal.h.
| enum message_types |
| Comment | |
| Note | |
| Caution | |
| Warning | |
| Error | |
| Internal | |
| Vector_Info | |
| Scalar_Info | |
| Table | |
| Ansi | |
| Logfile_Warning | |
| Inline_Info | |
| Info | |
| Tasking_Info | |
| Limit | |
| Logfile_Error | |
| Logfile_Summary | |
| F77_ANSI | |
| Unknown |
Definition at line 354 of file arith.internal.h.
| int ar_add_integer | ( | ar_data * | , | |
| const AR_TYPE * | , | |||
| const ar_data * | , | |||
| const AR_TYPE * | , | |||
| const ar_data * | , | |||
| const AR_TYPE * | ||||
| ) |
Definition at line 46 of file math.c.
References ar_data::ar_i64, ar_data::ar_i8, AR_INT_SIZE, AR_INT_SIZE_16, AR_INT_SIZE_32, AR_INT_SIZE_46, AR_INT_SIZE_64, AR_INT_SIZE_8, AR_SIGNED, AR_SIGNEDNESS, AR_STAT_INVALID_TYPE, AR_STAT_NEGATIVE, AR_STAT_OK, AR_STAT_OVERFLOW, AR_STAT_ZERO, AR_UNSIGNED, INT16_SIGN, INT32_SIGN, INT64_SIGN, INT8_SIGN, IS_INT16_ZERO, IS_INT32_ZERO, IS_INT64_ZERO, IS_INT8_ZERO, AR_INT_64::part1, AR_INT_64::part2, AR_INT_64::part3, AR_INT_64::part4, AR_INT_8_64::part5, ZERO_INT16_UPPER, ZERO_INT32_UPPER, and ZERO_INT8_UPPER.
Referenced by AR_add(), ar_add_pointer(), AR_add_ptr_int(), AR_convert_str_to_int(), ar_isqrt64(), ar_multiply_integer(), and ar_negate_integer().
| int ar_c128to64 | ( | AR_CRAY_64 * | , | |
| const AR_CRAY_128 * | ||||
| ) |
Definition at line 901 of file convert.c.
References AR_STAT_NEGATIVE, AR_STAT_OK, AR_STAT_ZERO, AR_CRAY_128::coeff0, AR_CRAY_128::coeff1, AR_CRAY_128::coeff2, CRAY128TO64, AR_CRAY_128::expo, and AR_CRAY_128::sign.
Referenced by ar_convert_to_float(), and main().
| int ar_c128toi64 | ( | AR_IEEE_64 * | , | |
| const AR_CRAY_128 * | ||||
| ) |
Definition at line 839 of file convert.c.
References AR_CRAY64_COEFF_BITS, AR_CRAY_C3_BITS, AR_CRAY_EXPO_BIAS, AR_CRAY_MAX_EXPO, ar_i64norm(), AR_IEEE64_C0_BITS, AR_IEEE64_COEFF_BITS, AR_IEEE64_EXPO_BIAS, AR_IEEE64_MAX_EXPO, AR_IEEE64_ROUND_BITS, AR_ROUND_NEAREST, AR_STAT_NEGATIVE, AR_STAT_OK, AR_STAT_OVERFLOW, AR_IEEE_64::coeff0, AR_CRAY_128::coeff3, AR_IEEE_64::coeff3, AR_CRAY_128::coeff4, AR_CRAY_128::coeff5, CRAY128TO64, CRAY64TOINT64, AR_IEEE_64::expo, AR_CRAY_128::expo, HOST_IS_MIPS, INT64TOIEEE64, MASKR, QNaNIEEE64, SHLEFTIEEE64, AR_CRAY_128::sign, AR_IEEE_64::sign, and ZEROIEEE64.
Referenced by ar_convert_to_float(), and main().

| int ar_c1frecip | ( | AR_CRAY_64 * | , | |
| const AR_CRAY_64 * | ||||
| ) |
Definition at line 279 of file cray_fdiv.c.
References a2, ADD64, AR_CRAY_C0_BITS, AR_CRAY_EXPO_BIAS, AR_CRAY_MAX_EXPO, AR_CRAY_MIN_EXPO, AR_STAT_INEXACT, AR_STAT_NEGATIVE, AR_STAT_OK, AR_STAT_OVERFLOW, AR_CRAY_64::coeff0, COPY64, AR_CRAY_64::expo, INC64, LOOKUP_KEY_BITS, MASKR, MULSTEP, NOT64, AR_INT_64::part1, AR_INT_64::part2, AR_INT_64::part3, AR_INT_64::part4, recip_lookup, SHLEFT64, SHLEFTCRAY64, SHRIGHT64, SHRIGHTCRAY64, AR_CRAY_64::sign, t1, ZERO64, and ZEROCRAY64.
Referenced by ar_cfdiv128(), ar_cfdiv64(), ar_sim(), and main().
| int ar_c64to128 | ( | AR_CRAY_128 * | , | |
| const AR_CRAY_64 * | ||||
| ) |
Definition at line 918 of file convert.c.
References AR_STAT_NEGATIVE, AR_STAT_OK, AR_STAT_ZERO, AR_CRAY_64::coeff0, AR_CRAY_64::coeff1, AR_CRAY_64::coeff2, CRAY64TO128, AR_CRAY_64::expo, and AR_CRAY_64::sign.
Referenced by ar_convert_to_float().
| int ar_cfadd128 | ( | AR_CRAY_128 * | , | |
| const AR_CRAY_128 * | , | |||
| const AR_CRAY_128 * | ||||
| ) |
Definition at line 150 of file cray_fadd.c.
References ADDCRAY128, AR_CRAY128_COEFF_BITS, AR_CRAY_C0_BITS, AR_CRAY_MAX_EXPO, AR_CRAY_MIN_EXPO, AR_STAT_INEXACT, AR_STAT_NEGATIVE, AR_STAT_OK, AR_STAT_OVERFLOW, AR_STAT_UNDERFLOW, AR_STAT_ZERO, AR_CRAY_128::coeff0, AR_CRAY_128::coeff1, AR_CRAY_128::coeff2, AR_CRAY_128::coeff3, AR_CRAY_128::coeff4, AR_CRAY_128::coeff5, AR_CRAY_128::expo, NOTCRAY128, SHLEFTCRAY128, SHRIGHTCRAY128, AR_CRAY_128::sign, AR_CRAY_128::zero, and ZEROCRAY128.
Referenced by AR_add(), ar_cfsub128(), ar_crnd128(), ar_i64toc128(), ar_itoc128(), and main().
| int ar_cfadd64 | ( | AR_CRAY_64 * | , | |
| const AR_CRAY_64 * | , | |||
| const AR_CRAY_64 * | ||||
| ) |
Definition at line 44 of file cray_fadd.c.
References ADDCRAY64, AR_CRAY64_COEFF_BITS, AR_CRAY_C0_BITS, AR_CRAY_MAX_EXPO, AR_CRAY_MIN_EXPO, AR_STAT_INEXACT, AR_STAT_NEGATIVE, AR_STAT_OK, AR_STAT_OVERFLOW, AR_STAT_UNDERFLOW, AR_STAT_ZERO, AR_CRAY_64::coeff2, AR_CRAY_64::expo, INCCRAY64, NOTCRAY64, SHLEFTCRAY64, SHRIGHTCRAY64, AR_CRAY_64::sign, and ZEROCRAY64.
Referenced by AR_add(), ar_cfdiv128(), ar_cfsub64(), ar_crnd64(), ar_itoc64(), ar_sim(), and main().
| int ar_cfdiv128 | ( | AR_CRAY_128 * | , | |
| const AR_CRAY_128 * | , | |||
| const AR_CRAY_128 * | , | |||
| int | ||||
| ) |
Definition at line 69 of file cray_fdiv.c.
References ar_c1frecip(), ar_cfadd64(), ar_cfmul128(), ar_cfmul64(), ar_cfsub64(), AR_CRAY_C0_BITS, AR_CRAY_C3_BITS, AR_CRAY_EXPO_BIAS, AR_STAT_NEGATIVE, AR_STAT_OK, AR_STAT_ZERO, AR_CRAY_128::coeff0, AR_CRAY_64::coeff0, AR_CRAY_128::coeff1, AR_CRAY_128::coeff2, AR_CRAY_128::coeff3, AR_CRAY_128::coeff4, AR_CRAY_128::coeff5, CRAY128TO64, CRAY64TO128, AR_CRAY_128::expo, AR_CRAY_64::expo, INCCRAY128, INCCRAY64, SHLEFTCRAY128, SHRIGHTCRAY128, AR_CRAY_128::sign, t1, and AR_CRAY_128::zero.
Referenced by ar_divide_float(), and main().

| int ar_cfdiv64 | ( | AR_CRAY_64 * | , | |
| const AR_CRAY_64 * | , | |||
| const AR_CRAY_64 * | , | |||
| int | ||||
| ) |
Definition at line 47 of file cray_fdiv.c.
References ar_c1frecip(), ar_cfmul64(), ar_CRAY_64_trunc(), AR_RECIPROCAL_ITERATION, AR_STAT_NEGATIVE, AR_STAT_OK, AR_STAT_ZERO, ar_state_register, ar_state_info::ar_truncate_bits, and AR_UNROUNDED.
Referenced by ar_divide_float(), and main().

| int ar_cfix128 | ( | AR_INT_64 * | , | |
| const AR_CRAY_128 * | , | |||
| int | ||||
| ) |
Definition at line 141 of file convert.c.
References AR_CRAY64_COEFF_BITS, AR_CRAY_EXPO_BIAS, AR_STAT_INEXACT, AR_STAT_NEGATIVE, AR_STAT_OK, AR_STAT_OVERFLOW, AR_STAT_SEMIVALID, AR_STAT_UNDERFLOW, AR_STAT_ZERO, AR_CRAY_128::coeff0, AR_CRAY_128::coeff1, AR_CRAY_128::coeff2, AR_CRAY_128::coeff3, AR_CRAY_128::coeff4, AR_CRAY_128::coeff5, CRAY128TO64, CRAY64TOINT64, AR_CRAY_128::expo, INC64, NOT64, AR_INT_64::part1, AR_INT_64::part2, AR_INT_64::part3, AR_INT_64::part4, SHLEFT64, SHLEFTCRAY128, SHRIGHT64X, AR_CRAY_128::sign, and ZERO64.
Referenced by ar_convert_to_integral(), and main().
| int ar_cfix64 | ( | AR_INT_64 * | , | |
| const AR_CRAY_64 * | , | |||
| int | ||||
| ) |
Definition at line 49 of file convert.c.
References AR_CRAY64_COEFF_BITS, AR_CRAY_EXPO_BIAS, AR_STAT_INEXACT, AR_STAT_NEGATIVE, AR_STAT_OK, AR_STAT_OVERFLOW, AR_STAT_SEMIVALID, AR_STAT_UNDERFLOW, AR_STAT_ZERO, AR_CRAY_64::coeff0, AR_CRAY_64::coeff1, AR_CRAY_64::coeff2, CRAY64TOINT64, AR_CRAY_64::expo, INC64, NOT64, AR_INT_64::part1, AR_INT_64::part2, AR_INT_64::part3, AR_INT_64::part4, SHLEFT64, SHRIGHT64X, AR_CRAY_64::sign, and ZERO64.
Referenced by ar_convert_to_integral(), and main().
| int ar_cflt128 | ( | AR_CRAY_128 * | , | |
| const AR_INT_64 * | , | |||
| int | ||||
| ) |
Definition at line 200 of file convert.c.
References AR_CRAY64_COEFF_BITS, AR_CRAY_C0_BITS, AR_CRAY_C3_BITS, AR_CRAY_EXPO_BIAS, AR_CRAY_EXPO_BITS, AR_STAT_NEGATIVE, AR_STAT_OK, AR_STAT_ZERO, AR_CRAY_128::coeff0, AR_CRAY_128::coeff3, COPY64, CRAY64TO128, AR_CRAY_128::expo, INT64TOCRAY64, NEG64, AR_INT_64::part1, AR_INT_64::part2, AR_INT_64::part3, AR_INT_64::part4, SHLEFTCRAY128, SHRIGHT64, AR_CRAY_128::sign, SIGNBIT, val, and ZEROCRAY128.
Referenced by ar_convert_to_float(), and main().
| int ar_cflt64 | ( | AR_CRAY_64 * | , | |
| const AR_INT_64 * | , | |||
| int | ||||
| ) |
Definition at line 100 of file convert.c.
References AR_CRAY64_COEFF_BITS, AR_CRAY_C0_BITS, AR_CRAY_EXPO_BIAS, AR_CRAY_EXPO_BITS, AR_STAT_INEXACT, AR_STAT_NEGATIVE, AR_STAT_OK, AR_STAT_ZERO, AR_CRAY_64::coeff0, COPY64, AR_CRAY_64::expo, INT64TOCRAY64, NEG64, AR_INT_64::part1, AR_INT_64::part2, AR_INT_64::part3, AR_INT_64::part4, SHLEFTCRAY64, SHRIGHT64, AR_CRAY_64::sign, SIGNBIT, val, and ZEROCRAY64.
Referenced by ar_convert_to_float(), and main().
| int ar_cfmul128 | ( | AR_CRAY_128 * | , | |
| const AR_CRAY_128 * | , | |||
| const AR_CRAY_128 * | , | |||
| int | ||||
| ) |
Definition at line 198 of file cray_fmul.c.
References ADDCRAY128, AR_CRAY128_COEFF_BITS, AR_CRAY_C0_BITS, AR_CRAY_EXPO_BIAS, AR_CRAY_EXPO_BITS, AR_CRAY_MAX_EXPO, AR_CRAY_MIN_EXPO, AR_STAT_INEXACT, AR_STAT_NEGATIVE, AR_STAT_OK, AR_STAT_OVERFLOW, AR_STAT_UNDERFLOW, AR_STAT_ZERO, AR_CRAY_128::coeff0, AR_CRAY_128::coeff1, AR_CRAY_128::coeff2, AR_CRAY_128::coeff3, AR_CRAY_128::coeff4, AR_CRAY_128::coeff5, AR_CRAY_128::expo, INCCRAY128, SHLEFTCRAY128, SHRIGHTCRAY128, AR_CRAY_128::sign, and ZEROCRAY128.
Referenced by ar_cfdiv128(), ar_multiply_float(), and main().
| int ar_cfmul64 | ( | AR_CRAY_64 * | , | |
| const AR_CRAY_64 * | , | |||
| const AR_CRAY_64 * | , | |||
| int | ||||
| ) |
Definition at line 48 of file cray_fmul.c.
References ADDCRAY64, AR_CRAY64_COEFF_BITS, AR_CRAY_C0_BITS, AR_CRAY_C1_BITS, AR_CRAY_EXPO_BIAS, AR_CRAY_MAX_EXPO, AR_CRAY_MIN_EXPO, AR_RECIPROCAL_ITERATION, AR_ROUNDED, AR_STAT_NEGATIVE, AR_STAT_OK, AR_STAT_OVERFLOW, AR_STAT_UNDERFLOW, AR_STAT_ZERO, AR_UNROUNDED, AR_CRAY_64::coeff0, AR_CRAY_64::coeff1, AR_CRAY_64::coeff2, AR_CRAY_64::expo, MASKR, NOTCRAY64, SHLEFTCRAY64, SHRIGHTCRAY64, AR_CRAY_64::sign, and ZEROCRAY64.
Referenced by ar_cfdiv128(), ar_cfdiv64(), ar_multiply_float(), ar_sim(), and main().
| int ar_cfsub128 | ( | AR_CRAY_128 * | , | |
| const AR_CRAY_128 * | , | |||
| const AR_CRAY_128 * | ||||
| ) |
Definition at line 272 of file cray_fadd.c.
References ar_cfadd128(), and AR_CRAY_128::sign.
Referenced by ar_cfcmp128(), AR_subtract(), and main().

| int ar_cfsub64 | ( | AR_CRAY_64 * | , | |
| const AR_CRAY_64 * | , | |||
| const AR_CRAY_64 * | ||||
| ) |
Definition at line 138 of file cray_fadd.c.
References ar_cfadd64(), and AR_CRAY_64::sign.
Referenced by ar_cfcmp64(), ar_cfdiv128(), ar_sim(), AR_subtract(), and main().

Definition at line 860 of file miscmath.c.
References AR_CLASS, AR_CLASS_INT, AR_CLASS_POINTER, ar_data::ar_i64, AR_INT_SIZE, AR_INT_SIZE_16, AR_INT_SIZE_24, AR_INT_SIZE_32, AR_INT_SIZE_8, ar_internal_error(), AR_POINTER_24, AR_POINTER_32, AR_POINTER_FORMAT, AR_POINTER_SIZE, AR_POINTER_WORD, AR_INT_64::part1, AR_INT_64::part2, AR_INT_64::part3, ZERO_INT16_UPPER, ZERO_INT24_UPPER, ZERO_INT32_UPPER, and ZERO_INT8_UPPER.
Referenced by ar_add_pointer(), AR_add_ptr_int(), AR_convert_str_to_int(), ar_convert_to_integral(), ar_convert_to_pointer(), and ar_subtract_pointer().

| int ar_compose_complex | ( | ar_data * | , | |
| AR_TYPE * | , | |||
| const ar_data * | , | |||
| const ar_data * | , | |||
| const AR_TYPE * | ||||
| ) |
Definition at line 220 of file miscmath.c.
References AR_CLASS, AR_CLASS_FLOAT, ar_data::ar_cplx_f128, ar_data::ar_cplx_f64, ar_data::ar_cplx_ieee128, ar_data::ar_cplx_ieee32, ar_data::ar_cplx_ieee64, ar_data::ar_f128, ar_data::ar_f64, AR_FLOAT_128, AR_FLOAT_32, AR_FLOAT_64, AR_FLOAT_COMPLEX, AR_FLOAT_CRAY, AR_FLOAT_FORMAT, AR_FLOAT_IEEE, AR_FLOAT_IS_COMPLEX, AR_FLOAT_SIZE, ar_data::ar_ieee128, ar_data::ar_ieee32, ar_data::ar_ieee64, AR_STAT_INVALID_TYPE, AR_STAT_OK, IEEE32_TO_CPLX32_IMAG, IEEE32_TO_CPLX32_REAL, AR_CPLX_IEEE_128::imag, AR_CPLX_IEEE_64::imag, AR_CPLX_CRAY_128::imag, AR_CPLX_CRAY_64::imag, AR_CPLX_IEEE_128::real, AR_CPLX_IEEE_64::real, AR_CPLX_CRAY_128::real, and AR_CPLX_CRAY_64::real.
Referenced by AR_conj(), ar_convert_to_complex(), AR_divide(), ar_divide_complex(), ar_multiply_complex(), and ar_negate_complex().
Definition at line 43 of file cvt.c.
References ar_cfix128(), ar_cfix64(), AR_CLASS, AR_CLASS_FLOAT, AR_CLASS_INT, AR_CLASS_POINTER, ar_clear_unused_bits(), AR_Complex_Cray1_128, AR_Complex_Cray1_64, AR_Complex_Cray1_64_F, AR_Complex_IEEE_DN_128, AR_Complex_IEEE_DN_32, AR_Complex_IEEE_DN_64, AR_Complex_IEEE_NR_128, AR_Complex_IEEE_NR_32, AR_Complex_IEEE_NR_64, AR_Complex_IEEE_UP_128, AR_Complex_IEEE_UP_32, AR_Complex_IEEE_UP_64, AR_Complex_IEEE_ZE_128, AR_Complex_IEEE_ZE_32, AR_Complex_IEEE_ZE_64, ar_data::ar_cplx_f128, ar_data::ar_cplx_f64, ar_data::ar_cplx_ieee128, ar_data::ar_cplx_ieee32, ar_data::ar_cplx_ieee64, ar_data::ar_f128, ar_data::ar_f64, AR_Float_Cray1_128, AR_Float_Cray1_64, AR_Float_Cray1_64_F, AR_Float_IEEE_DN_128, AR_Float_IEEE_DN_32, AR_Float_IEEE_DN_64, AR_Float_IEEE_NR_128, AR_Float_IEEE_NR_32, AR_Float_IEEE_NR_64, AR_Float_IEEE_UP_128, AR_Float_IEEE_UP_32, AR_Float_IEEE_UP_64, AR_Float_IEEE_ZE_128, AR_Float_IEEE_ZE_32, AR_Float_IEEE_ZE_64, ar_data::ar_i64, ar_data::ar_i8, ar_data::ar_ieee128, ar_data::ar_ieee32, ar_data::ar_ieee64, ar_ifix128(), ar_ifix32(), ar_ifix64(), AR_Int_16_S, AR_Int_16_U, AR_Int_24_S, AR_Int_24_U, AR_Int_32_S, AR_Int_32_U, AR_Int_46_S, AR_Int_64_S, AR_Int_8_S, AR_Int_8_U, AR_INT_SIZE, AR_INT_SIZE_16, AR_INT_SIZE_24, AR_INT_SIZE_32, AR_INT_SIZE_46, AR_INT_SIZE_64, AR_INT_SIZE_8, AR_SIGNED, AR_SIGNEDNESS, AR_STAT_INVALID_TYPE, AR_STAT_NEGATIVE, AR_STAT_OK, AR_STAT_OVERFLOW, AR_STAT_SEMIVALID, AR_STAT_ZERO, AR_UNSIGNED, CPLX32_REAL_TO_IEEE32, INT16_SIGN, INT24_SIGN, INT32_SIGN, INT64_SIGN, INT8_SIGN, INT_OVERFLOWS_46_BITS, IS_INT16_UPPER_ZERO, IS_INT24_UPPER_ZERO, IS_INT32_UPPER_ZERO, IS_INT64_ZERO, IS_INT8_UPPER_ZERO, AR_INT_64::part1, AR_INT_8_64::part1, AR_INT_64::part2, AR_INT_8_64::part2, AR_INT_64::part3, AR_INT_8_64::part3, AR_INT_64::part4, AR_INT_8_64::part4, AR_INT_8_64::part5, AR_CPLX_IEEE_128::real, AR_CPLX_IEEE_64::real, AR_CPLX_CRAY_128::real, AR_CPLX_CRAY_64::real, and ROUND_MODE.
Referenced by AR_add_ptr_int(), AR_convert(), AR_convert_int_to_str(), ar_convert_to_float(), ar_convert_to_pointer(), ar_get_function_value(), ar_pass_arg_value(), and AR_subtract_ptr_ptr().

| void ar_CRAY_64_trunc | ( | AR_CRAY_64 * | opnd | ) |
Definition at line 908 of file miscmath.c.
References ar_internal_error(), ar_state_info::ar_truncate_bits, AR_CRAY_64::coeff0, AR_CRAY_64::coeff1, and AR_CRAY_64::coeff2.
Referenced by AR_add(), ar_cfdiv64(), ar_multiply_float(), and AR_subtract().

| int ar_crnd128 | ( | AR_CRAY_128 * | , | |
| const AR_CRAY_128 * | ||||
| ) |
Definition at line 1372 of file convert.c.
References ar_cfadd128(), AR_CRAY_128::coeff0, AR_CRAY_128::coeff1, AR_CRAY_128::coeff2, AR_CRAY_128::coeff3, AR_CRAY_128::coeff4, and AR_CRAY_128::coeff5.
Referenced by AR_round_int_div().

| int ar_crnd64 | ( | AR_CRAY_64 * | , | |
| const AR_CRAY_64 * | ||||
| ) |
Definition at line 1349 of file convert.c.
References ar_cfadd64(), AR_CRAY_64::coeff0, AR_CRAY_64::coeff1, and AR_CRAY_64::coeff2.
Referenced by AR_round_int_div().

| int ar_ctoi128 | ( | AR_IEEE_128 * | , | |
| const AR_CRAY_128 * | ||||
| ) |
Definition at line 794 of file convert.c.
References AR_CRAY128_COEFF_BITS, AR_CRAY_EXPO_BIAS, AR_CRAY_MAX_EXPO, ar_i128norm(), AR_IEEE128_C0_BITS, AR_IEEE128_COEFF_BITS, AR_IEEE128_EXPO_BIAS, AR_IEEE128_MAX_EXPO, AR_ROUND_NEAREST, AR_STAT_NEGATIVE, AR_STAT_OK, AR_STAT_OVERFLOW, AR_CRAY_128::coeff0, AR_IEEE_128::coeff0, AR_CRAY_128::coeff1, AR_IEEE_128::coeff1, AR_CRAY_128::coeff2, AR_IEEE_128::coeff2, AR_CRAY_128::coeff3, AR_IEEE_128::coeff3, AR_CRAY_128::coeff4, AR_IEEE_128::coeff4, AR_CRAY_128::coeff5, AR_IEEE_128::coeff5, AR_IEEE_128::coeff6, AR_IEEE_128::expo, AR_CRAY_128::expo, HOST_IS_MIPS, QNaNIEEE128, AR_CRAY_128::sign, AR_IEEE_128::sign, and ZEROIEEE128.
Referenced by ar_convert_to_float().

| int ar_ctoi64 | ( | AR_IEEE_64 * | , | |
| const AR_CRAY_64 * | ||||
| ) |
Definition at line 752 of file convert.c.
References AR_CRAY64_COEFF_BITS, AR_CRAY_EXPO_BIAS, AR_CRAY_MAX_EXPO, ar_i64norm(), AR_IEEE64_C0_BITS, AR_IEEE64_COEFF_BITS, AR_IEEE64_EXPO_BIAS, AR_IEEE64_MAX_EXPO, AR_ROUND_NEAREST, AR_STAT_NEGATIVE, AR_STAT_OK, AR_STAT_OVERFLOW, AR_IEEE_64::coeff0, CRAY64TOINT64, AR_IEEE_64::expo, AR_CRAY_64::expo, HOST_IS_MIPS, INT64TOIEEE64, QNaNIEEE64, AR_CRAY_64::sign, AR_IEEE_64::sign, and ZEROIEEE64.
Referenced by AR_convert_float_to_str(), ar_convert_to_float(), and main().

| void ar_dblshift | ( | ar_data * | , | |
| const AR_TYPE * | resulttype, | |||
| const ar_data * | , | |||
| const ar_data * | , | |||
| int | ||||
| ) |
Definition at line 145 of file bits.c.
References ar_data::ar_i64, ar_data::ar_i8, AR_INT_SIZE, AR_INT_SIZE_16, AR_INT_SIZE_32, AR_INT_SIZE_46, AR_INT_SIZE_64, AR_INT_SIZE_8, ar_internal_error(), AR_INT_64::part1, AR_INT_64::part2, AR_INT_64::part3, AR_INT_64::part4, AR_INT_8_64::part5, ZERO_INT16_UPPER, ZERO_INT32_UPPER, and ZERO_INT8_UPPER.
Referenced by ar_add_pointer(), AR_add_ptr_int(), AR_compare(), ar_convert_to_pointer(), AR_dshiftl(), AR_dshiftr(), AR_ibits(), AR_ishft(), AR_ishftc(), AR_mask(), AR_shiftl(), AR_shiftr(), ar_subtract_pointer(), and AR_subtract_ptr_ptr().

Definition at line 179 of file miscmath.c.
References AR_CLASS, AR_CLASS_FLOAT, ar_data::ar_cplx_f128, ar_data::ar_cplx_f64, ar_data::ar_cplx_ieee128, ar_data::ar_cplx_ieee32, ar_data::ar_cplx_ieee64, ar_data::ar_f128, ar_data::ar_f64, AR_FLOAT_128, AR_FLOAT_32, AR_FLOAT_64, AR_FLOAT_COMPLEX, AR_FLOAT_CRAY, AR_FLOAT_FORMAT, AR_FLOAT_IEEE, AR_FLOAT_IS_COMPLEX, AR_FLOAT_SIZE, ar_data::ar_ieee128, ar_data::ar_ieee32, ar_data::ar_ieee64, AR_STAT_INVALID_TYPE, AR_STAT_OK, CPLX32_IMAG_TO_IEEE32, CPLX32_REAL_TO_IEEE32, AR_CPLX_IEEE_128::imag, AR_CPLX_IEEE_64::imag, AR_CPLX_CRAY_128::imag, AR_CPLX_CRAY_64::imag, AR_CPLX_IEEE_128::real, AR_CPLX_IEEE_64::real, AR_CPLX_CRAY_128::real, and AR_CPLX_CRAY_64::real.
Referenced by ar_cabs(), AR_cimag(), ar_compare_float(), AR_conj(), ar_convert_to_complex(), ar_convert_to_float(), AR_creal(), AR_divide(), ar_divide_complex(), ar_multiply_complex(), ar_negate_complex(), and AR_status().
| int ar_divide_integer | ( | ar_data * | , | |
| const AR_TYPE * | , | |||
| ar_data * | , | |||
| const AR_TYPE * | , | |||
| const ar_data * | , | |||
| const AR_TYPE * | , | |||
| const ar_data * | , | |||
| const AR_TYPE * | ||||
| ) |
Definition at line 1633 of file math.c.
References ar_data::ar_i64, ar_data::ar_i8, AR_Int_16_U, AR_Int_32_U, AR_Int_64_U, AR_Int_8_U, AR_INT_SIZE, AR_INT_SIZE_16, AR_INT_SIZE_32, AR_INT_SIZE_46, AR_INT_SIZE_64, AR_INT_SIZE_8, ar_internal_error(), AR_leadz(), ar_negate_integer(), AR_shiftl(), AR_shiftr(), AR_SIGNED, AR_SIGNEDNESS, AR_STAT_INVALID_TYPE, AR_STAT_OK, AR_STAT_OVERFLOW, AR_STAT_ZERO, ar_subtract_integer(), INT16_SIGN, INT32_SIGN, INT64_SIGN, INT8_SIGN, IS_INT16_ZERO, IS_INT32_ZERO, IS_INT64_ZERO, IS_INT8_ZERO, AR_INT_64::part1, AR_INT_64::part2, AR_INT_64::part3, AR_INT_64::part4, AR_INT_8_64::part5, ZERO_INT16, ZERO_INT16_ALL, ZERO_INT16_UPPER, ZERO_INT32, ZERO_INT32_ALL, ZERO_INT32_UPPER, ZERO_INT64, ZERO_INT64_ALL, ZERO_INT8, ZERO_INT8_ALL, and ZERO_INT8_UPPER.
Referenced by AR_convert_int_to_str(), AR_divide(), AR_mod(), and AR_subtract_ptr_ptr().

| AR_ARCHITECTURE ar_host | ( | void | ) |
Definition at line 1031 of file miscmath.c.
References AR_Arch_MIPS, AR_Arch_PVP, AR_Arch_PVP_IEEE, AR_Arch_SPARC, AR_Arch_T3D, AR_Arch_T3E, AR_Arch_Unknown, ar_internal_error(), CHECKMC(), GETPMC(), and initialized.

| int ar_i128norm | ( | signed | int, | |
| unsigned | long, | |||
| unsigned | long, | |||
| AR_IEEE_128 * | , | |||
| int | ||||
| ) |
Definition at line 300 of file ieee_norm.c.
References AR_IEEE128_C0_BITS, AR_IEEE128_MAX_EXPO, AR_IEEE128_MIN_EXPO, AR_IEEE128_ROUND_BITS, AR_ROUND_MINUS_INFINITY, AR_ROUND_PLUS_INFINITY, AR_ROUND_ZERO, AR_STAT_INEXACT, AR_STAT_NEGATIVE, AR_STAT_OK, AR_STAT_OVERFLOW, AR_STAT_UNDERFLOW, AR_STAT_ZERO, ar_state_register, ar_state_info::ar_underflow_mode, AR_UNDERFLOW_TO_DENORM, AR_UNDERFLOW_TO_PLUS_ZERO, AR_UNDERFLOW_TO_SIGNED_TINY, AR_IEEE_128::coeff0, AR_IEEE_128::coeff1, AR_IEEE_128::coeff2, AR_IEEE_128::coeff3, AR_IEEE_128::coeff4, AR_IEEE_128::coeff5, AR_IEEE_128::coeff6, AR_IEEE_128::expo, INCIEEE128, MASKR, SHLEFTIEEE128, SHRIGHTIEEE128, and AR_IEEE_128::sign.
Referenced by ar_ctoi128(), ar_i64to128(), ar_ifadd128(), ar_ifdiv128(), ar_iflt128(), and ar_ifmul128().
| int ar_i128to64 | ( | AR_IEEE_64 * | , | |
| const AR_IEEE_128 * | , | |||
| const | int | |||
| ) |
Definition at line 1094 of file convert.c.
References ar_state_info::ar_denorms_trap, AR_Float_IEEE_NR_64, ar_i64norm(), AR_IEEE128_EXPO_BIAS, AR_IEEE128_MAX_EXPO, AR_IEEE64_C0_BITS, AR_IEEE64_EXPO_BIAS, AR_IEEE64_MAX_EXPO, AR_STAT_NEGATIVE, AR_STAT_OK, AR_STAT_OVERFLOW, AR_STAT_UNDEFINED, AR_STAT_UNDERFLOW, AR_STAT_ZERO, ar_state_register, AR_status(), AR_IEEE_64::coeff0, AR_IEEE_128::coeff0, AR_IEEE_64::coeff1, AR_IEEE_128::coeff1, AR_IEEE_64::coeff2, AR_IEEE_128::coeff2, AR_IEEE_128::coeff3, AR_IEEE_64::coeff3, AR_IEEE_128::coeff4, AR_IEEE_128::coeff5, AR_IEEE_128::coeff6, COEFF_BIT_OFF, AR_IEEE_64::expo, AR_IEEE_128::expo, HOST_IS_MIPS, IS_IEEE128_NZ_COEFF, IS_IEEE64_NZ_COEFF, MASKR, AR_IEEE_128::sign, AR_IEEE_64::sign, and ZEROIEEE64.
Referenced by AR_convert_float_to_str(), and ar_convert_to_float().

| int ar_i32norm | ( | signed | int, | |
| unsigned | long, | |||
| unsigned | long, | |||
| AR_IEEE_32 * | , | |||
| int | ||||
| ) |
Definition at line 48 of file ieee_norm.c.
References AR_IEEE32_C0_BITS, AR_IEEE32_MAX_EXPO, AR_IEEE32_ROUND_BITS, AR_IEEE64_MIN_EXPO, AR_ROUND_MINUS_INFINITY, AR_ROUND_PLUS_INFINITY, AR_ROUND_ZERO, AR_STAT_INEXACT, AR_STAT_NEGATIVE, AR_STAT_OK, AR_STAT_OVERFLOW, AR_STAT_UNDERFLOW, AR_STAT_ZERO, ar_state_register, ar_state_info::ar_underflow_mode, AR_UNDERFLOW_TO_DENORM, AR_UNDERFLOW_TO_PLUS_ZERO, AR_UNDERFLOW_TO_SIGNED_TINY, AR_IEEE_32::coeff0, AR_IEEE_32::coeff1, AR_IEEE_32::expo, INCIEEE32, MASKR, SHLEFTIEEE32, SHRIGHTIEEE32, and AR_IEEE_32::sign.
Referenced by ar_i64to32(), ar_ifadd32(), ar_ifdiv32(), ar_iflt32(), and ar_ifmul32().
| int ar_i32to64 | ( | AR_IEEE_64 * | , | |
| const AR_IEEE_32 * | ||||
| ) |
Definition at line 1024 of file convert.c.
References ar_i64norm(), AR_IEEE32_EXPO_BIAS, AR_IEEE32_MAX_EXPO, AR_IEEE64_C1_BITS, AR_IEEE64_C2_BITS, AR_IEEE64_EXPO_BIAS, AR_IEEE64_MAX_EXPO, AR_ROUND_NEAREST, AR_STAT_NEGATIVE, AR_STAT_OVERFLOW, AR_STAT_UNDEFINED, AR_IEEE_32::coeff0, AR_IEEE_64::coeff0, AR_IEEE_32::coeff1, AR_IEEE_64::coeff1, AR_IEEE_64::coeff2, AR_IEEE_64::coeff3, COEFF_BIT_OFF, AR_IEEE_64::expo, AR_IEEE_32::expo, IS_IEEE32_NZ_COEFF, IS_IEEE64_NZ_COEFF, AR_IEEE_32::sign, AR_IEEE_64::sign, and ZEROIEEE64.
Referenced by AR_convert_float_to_str(), and ar_convert_to_float().

| int ar_i64norm | ( | signed | int, | |
| unsigned | long, | |||
| unsigned | long, | |||
| AR_IEEE_64 * | , | |||
| int | ||||
| ) |