arith.internal.h File Reference

#include "arith.h"
#include <limits.h>
Include dependency graph for arith.internal.h:
This graph shows which files directly or indirectly include this file:

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 Documentation

#define _Solaris   0

Definition at line 719 of file arith.internal.h.

#define ADDCRAY128 ( sum,
carry,
a,
 ) 
Value:
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,
 ) 
Value:
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,
 ) 
Value:
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,
 ) 
Value:
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,
 ) 
Value:
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
#define AR_CRAY_C0_BITS   16
#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
#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
#define AR_CRAY_MIN_EXPO   020000
#define AR_CRAY_ZERO_BITS   16

Definition at line 258 of file arith.internal.h.

#define AR_FLOAT_FORMAT ( type   )     (type & 0x20)
#define AR_FLOAT_IS_COMPLEX ( type   )     (type & 0x1)
#define AR_FLOAT_ROUND ( type   )     (type & 0x18)

Definition at line 129 of file arith.internal.h.

#define AR_FLOAT_SIZE ( type   )     (type & 0x6)
#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
#define AR_IEEE128_EXPO_BIAS   037777
#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
#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
#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
#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
#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
#define AR_IEEE64_EXPO_BIAS   01777
#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
#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
#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)
#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,
 ) 
Value:
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,
 )     (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,
 ) 
Value:
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,
 ) 
Value:
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,
 ) 
Value:
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,
 ) 
Value:
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,
 )     (i)->ar_i8.part5 = (j)->ar_i8.part5

Definition at line 907 of file arith.internal.h.

Referenced by AR_abs().

#define CPLX32_IMAG_TO_IEEE32 ( s,
c   ) 
Value:
(                                                               \
                (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().

#define CPLX32_REAL_TO_IEEE32 ( s,
c   ) 
Value:
(                                                               \
                (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().

#define CRAY128TO64 ( s,
d   ) 
Value:
(                                                                                       \
                (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().

#define CRAY64TO128 ( d,
s   ) 
Value:
(                                                                                       \
                (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   ) 
Value:
(                                                                               \
                (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
Value:

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 )
#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.

#define IEEE32_TO_CPLX32_IMAG ( c,
s   ) 
Value:
(                                                               \
                (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().

#define IEEE32_TO_CPLX32_REAL ( c,
s   ) 
Value:
(                                                               \
                (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   ) 
Value:
(                                                                               \
                (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   ) 
Value:
(                                                                               \
                (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   ) 
Value:
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   ) 
Value:
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   ) 
Value:
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   ) 
Value:
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   ) 
Value:
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)->ar_i128.part1 & 0x8000)

Definition at line 888 of file arith.internal.h.

#define INT16_SIGN (  )     ((i)->ar_i64.part4 & 0x8000)
#define INT16_TO_HOST_SINT64 ( i,
 ) 
Value:
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)->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)->ar_i64.part3 & 0x8000)
#define INT32_TO_HOST_SINT64 ( i,
 ) 
Value:
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)->ar_i64.part1 & 0x8000)
#define INT64_TO_HOST_SINT64 ( i,
 ) 
Value:
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,
 ) 
Value:
(                                                                               \
                (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,
 ) 
Value:
(                                                                               \
                (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,
 ) 
Value:
(                                                                               \
                (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,
 ) 
Value:
(                                                                               \
                (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)->ar_i8.part5 & 0x80 )
#define INT8_TO_HOST_SINT64 ( i,
 ) 
Value:
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   ) 
Value:
((((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,
 ) 
Value:
((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().

#define IS_ERROR_STATUS ( s   )     (((s) & AR_ERROR_STATUS) != 0)
#define IS_IEEE128_NaN (  )     ((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 (  ) 
Value:
((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)->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 (  ) 
Value:
((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)->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 (  ) 
Value:
((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 (  ) 
Value:
((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 (  ) 
Value:
((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 (  ) 
Value:
((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)->ar_i64.part4 == 0)
#define IS_INT24_UPPER_ONES (  ) 
Value:
((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 (  ) 
Value:
((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 (  ) 
Value:
(((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 (  ) 
Value:
((i)->ar_i64.part1 == 0xFFFF &&                 \
                 (i)->ar_i64.part2 == 0xFFFF)

Definition at line 871 of file arith.internal.h.

#define IS_INT32_UPPER_ZERO (  ) 
Value:
((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 (  ) 
Value:
((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 (  ) 
Value:
((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 (  ) 
Value:
((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 (  ) 
Value:
(((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 (  ) 
Value:
((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 (  ) 
Value:
((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 (  ) 
Value:
((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)->ar_i8.part5 == 0)
#define IS_MIPS128_NaN (  ) 
Value:
(((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 (  ) 
Value:
((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   ) 
Value:
((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   ) 
#define NOTCRAY128 (  ) 
Value:
( (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 (  ) 
Value:
( (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 (  ) 
Value:
( (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 (  ) 
Value:
( (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 (  ) 
Value:
( (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 (  ) 
Value:
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 (  ) 
Value:
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 (  ) 
Value:
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 >> 3) & 3)
#define SHLEFTCRAY128 (  ) 
Value:
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 (  ) 
Value:
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 (  ) 
Value:
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,
 ) 
Value:
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 (  ) 
Value:
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,
 ) 
Value:
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 (  ) 
Value:
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,
 ) 
Value:
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 (  ) 
Value:
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 (  ) 
Value:
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 (  ) 
Value:
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,
 ) 
Value:
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 (  ) 
Value:
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,
 ) 
Value:
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 (  ) 
Value:
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,
 ) 
Value:
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 &~ 0x18)
#define ZERO_INT128 (  ) 
Value:
(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 (  ) 
Value:
(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)->ar_i64.part4 = 0
#define ZERO_INT16_ALL (  ) 
Value:
(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 (  ) 
#define ZERO_INT24 (  ) 
Value:
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 (  )     ZERO_INT16_ALL(i)

Definition at line 842 of file arith.internal.h.

#define ZERO_INT24_UPPER (  ) 
Value:
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 (  ) 
Value:
(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 (  )     ZERO_INT16_ALL(i)

Definition at line 844 of file arith.internal.h.

Referenced by ar_divide_integer().

#define ZERO_INT32_UPPER (  ) 
#define ZERO_INT64 (  ) 
Value:
(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 (  )     ZERO_INT16_ALL(i)

Definition at line 846 of file arith.internal.h.

Referenced by ar_divide_integer().

#define ZERO_INT8 (  )     (i)->ar_i8.part5 = 0
#define ZERO_INT8_ALL (  ) 
Value:
(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 (  ) 
Value:
(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 (  ) 
Value:
((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).sign = (x).expo = (x).coeff0 = (x).coeff1 = (x).coeff2 = 0)
#define ZEROIEEE128 (  ) 
Value:
((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 (  ) 
Value:
((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 (  ) 
Value:
((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 (  ) 
Value:
((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().


Enumeration Type Documentation

Enumerator:
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.

Enumerator:
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.


Function Documentation

int ar_add_integer ( ar_data ,
const AR_TYPE ,
const ar_data ,
const AR_TYPE ,
const ar_data ,
const AR_TYPE  
)
int ar_c128to64 ( AR_CRAY_64 ,
const AR_CRAY_128  
)
int ar_c128toi64 ( AR_IEEE_64 ,
const AR_CRAY_128  
)
int ar_c1frecip ( AR_CRAY_64 ,
const AR_CRAY_64  
)
int ar_c64to128 ( AR_CRAY_128 ,
const AR_CRAY_64  
)
int ar_cfadd128 ( AR_CRAY_128 ,
const AR_CRAY_128 ,
const AR_CRAY_128  
)
int ar_cfadd64 ( AR_CRAY_64 ,
const AR_CRAY_64 ,
const AR_CRAY_64  
)
int ar_cfdiv128 ( AR_CRAY_128 ,
const AR_CRAY_128 ,
const AR_CRAY_128 ,
int   
)
int ar_cfdiv64 ( AR_CRAY_64 ,
const AR_CRAY_64 ,
const AR_CRAY_64 ,
int   
)
int ar_cfix128 ( AR_INT_64 ,
const AR_CRAY_128 ,
int   
)
int ar_cfix64 ( AR_INT_64 ,
const AR_CRAY_64 ,
int   
)
int ar_cflt128 ( AR_CRAY_128 ,
const AR_INT_64 ,
int   
)
int ar_cflt64 ( AR_CRAY_64 ,
const AR_INT_64 ,
int   
)
int ar_cfmul128 ( AR_CRAY_128 ,
const AR_CRAY_128 ,
const AR_CRAY_128 ,
int   
)
int ar_cfmul64 ( AR_CRAY_64 ,
const AR_CRAY_64 ,
const AR_CRAY_64 ,
int   
)
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().

Here is the call graph for this function:

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().

Here is the call graph for this function:

void ar_clear_unused_bits ( ar_data opnd,
const AR_TYPE opndtype 
)
int ar_compose_complex ( ar_data ,
AR_TYPE ,
const ar_data ,
const ar_data ,
const AR_TYPE  
)
int ar_convert_to_integral ( ar_data ,
const AR_TYPE ,
const ar_data ,
const AR_TYPE  
)

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().

Here is the call graph for this function:

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().

Here is the call graph for this function:

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().

Here is the call graph for this function:

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().

Here is the call graph for this function:

int ar_ctoi128 ( AR_IEEE_128 ,
const AR_CRAY_128  
)
int ar_ctoi64 ( AR_IEEE_64 ,
const AR_CRAY_64  
)
void ar_dblshift ( ar_data ,
const AR_TYPE resulttype,
const ar_data ,
const ar_data ,
int   
)
int ar_decompose_complex ( ar_data ,
ar_data ,
AR_TYPE ,
const ar_data ,
const AR_TYPE  
)
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  
)
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.

Here is the call graph for this function:

int ar_i128norm ( signed  int,
unsigned  long,
unsigned  long,
AR_IEEE_128 ,
int   
)
int ar_i128to64 ( AR_IEEE_64 ,
const AR_IEEE_128 ,
const   int 
)
int ar_i32norm ( signed  int,
unsigned  long,
unsigned  long,
AR_IEEE_32 ,
int   
)
int ar_i32to64 ( AR_IEEE_64 ,
const AR_IEEE_32  
)
int ar_i64norm ( signed  int,
unsigned  long,
unsigned  long,
AR_IEEE_64 ,
int   
)