Back to index

glibc  2.9
Classes | Defines | Typedefs | Enumerations | Functions | Variables
libm_support.h File Reference
#include "libm_cpu_defs.h"
#include "libm_dll.h"
#include "libm_dispatch.h"
#include "libm_error_codes.h"
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  exceptionf
struct  exception
struct  exceptionl
struct  fp32
struct  fp64
struct  fp80
struct  ker80
union  ker80.__unnamed__
union  ker80.__unnamed__

Defines

#define DOUBLE_HEX(hi, lo)   0x##lo,0x##hi /*LITTLE_ENDIAN*/
#define MATHERR_F   matherrf
#define MATHERR_D   matherr
#define EXC_DECL_D   exception
#define BIAS_32   0x007F
#define BIAS_64   0x03FF
#define BIAS_80   0x3FFF
#define MAXEXP_32   0x00FE
#define MAXEXP_64   0x07FE
#define MAXEXP_80   0x7FFE
#define EXPINF_32   0x00FF
#define EXPINF_64   0x07FF
#define EXPINF_80   0x7FFF
#define I64CONST(bits)   0x##bits##LL
#define U64CONST(bits)   0x##bits##uLL
#define __LIBM_ADDL1_K80(rhi, rlo, x, y, t1)
#define __LIBM_ADDL2_K80(rhi, rlo, xhi, xlo, yhi, ylo, t1)
#define __LIBM_ADDL_NORM_K80(r, x, y, t1)
#define __LIBM_SUBL1_K80(rhi, rlo, x, y, t1)
#define __LIBM_SUBL2_K80(rhi, rlo, xhi, xlo, yhi, ylo, t1)
#define __LIBM_SUBL_NORM_K80(r, x, y, t1)
#define __LIBM_MULL1_K80(rhi, rlo, x, y,t32, t1, t2, t3, t4, t5, t6)
#define __LIBM_MULL2_K80(rhi, rlo, xhi, xlo, yhi, ylo,t32, t1, t2, t3, t4, t5, t6, t7, t8)
#define __LIBM_MULL_K80(r, x, y, t32, t1, t2, t3, t4, t5, t6, t7, t8)
#define __LIBM_MULL_NORM_K80(r, x, y,t32, t1, t2, t3, t4, t5, t6, t7, t8)
#define __LIBM_DIVL2_K80(rhi, rlo, xhi, xlo, yhi, ylo,t32, t1, t2, t3, t4, t5, t6, t7, t8, t9)
#define __LIBM_DIVL_K80(r, x, y,t32, t1, t2, t3, t4, t5, t6, t7, t8, t9)
#define __LIBM_DIVL_NORM_K80(r, x, y,t32, t1, t2, t3, t4, t5, t6, t7, t8, t9)
#define __LIBM_SQRTL2_NORM_K80(rhi, rlo, xhi, xlo,t32, half, t1, t2, t3, t4, t5, t6, t7, t8, t9)
#define __LIBM_SQRTL_K80(r, x,t32, half, t1, t2, t3, t4, t5, t6, t7, t8, t9)
#define __LIBM_SQRTL_NORM_K80(r, x,t32, half, t1, t2, t3, t4, t5, t6, t7, t8, t9)
#define ALIGN(n)
#define LDOUBLE_ALIGN   16 /* EFI2/IA32 Win or IPF Win/Linux: 16-byte alignment */
#define _XPD_   ,0x0000,0x0000,0x0000
#define LDOUBLE_HEX(w4, w3, w2, w1, w0)   0x##w0,0x##w1,0x##w2,0x##w3,0x##w4 _XPD_ /*LITTLE_ENDIAN*/
#define FP32(f)   ((struct fp32 *)&f)
#define FP64(d)   ((struct fp64 *)&d)
#define FP80(ld)   ((struct fp80 *)&ld)
#define SIGNIFICAND_ZERO_32(X)   ((X)->significand == 0)
#define SIGNIFICAND_NONZERO_32(X)   ((X)->significand != 0)
#define SIGNIFICAND_EQ_HEX_32(X, BITS)   ((X)->significand == 0x ## BITS)
#define SIGNIFICAND_GT_HEX_32(X, BITS)   ((X)->significand > 0x ## BITS)
#define SIGNIFICAND_GE_HEX_32(X, BITS)   ((X)->significand >= 0x ## BITS)
#define SIGNIFICAND_LT_HEX_32(X, BITS)   ((X)->significand < 0x ## BITS)
#define SIGNIFICAND_LE_HEX_32(X, BITS)   ((X)->significand <= 0x ## BITS)
#define VALUE_EQ_HEX_32(X, EXP, BITS)   (((X)->exponent == (EXP)) && (SIGNIFICAND_EQ_HEX_32(X, BITS)))
#define VALUE_GT_HEX_32(X, EXP, BITS)
#define VALUE_GE_HEX_32(X, EXP, BITS)
#define VALUE_LT_HEX_32(X, EXP, BITS)
#define VALUE_LE_HEX_32(X, EXP, BITS)
#define VALUE_EQ_HEX_64(X, EXP, HI, LO)   (((X)->exponent == (EXP)) && (SIGNIFICAND_EQ_HEX_64(X, HI, LO)))
#define VALUE_GT_HEX_64(X, EXP, HI, LO)
#define VALUE_GE_HEX_64(X, EXP, HI, LO)
#define VALUE_LT_HEX_64(X, EXP, HI, LO)
#define VALUE_LE_HEX_64(X, EXP, HI, LO)
#define VALUE_EQ_HEX_80(X, EXP, HI, LO)   (((X)->exponent == (EXP)) && (SIGNIFICAND_EQ_HEX_80(X, HI, LO)))
#define VALUE_GT_HEX_80(X, EXP, HI, LO)
#define VALUE_GE_HEX_80(X, EXP, HI, LO)
#define VALUE_LT_HEX_80(X, EXP, HI, LO)
#define VALUE_LE_HEX_80(X, EXP, HI, LO)
#define SIGNIFICAND_EQ_32(X, Y)   ((X)->significand == (Y)->significand)
#define SIGNIFICAND_GT_32(X, Y)   ((X)->significand > (Y)->significand)
#define SIGNIFICAND_GE_32(X, Y)   ((X)->significand >= (Y)->significand)
#define SIGNIFICAND_LT_32(X, Y)   ((X)->significand < (Y)->significand)
#define SIGNIFICAND_LE_32(X, Y)   ((X)->significand <= (Y)->significand)
#define VALUE_EQ_32(X, Y)   (((X)->exponent == (Y)->exponent) && (SIGNIFICAND_EQ_32(X, Y)))
#define VALUE_GT_32(X, Y)
#define VALUE_GE_32(X, Y)
#define VALUE_LT_32(X, Y)
#define VALUE_LE_32(X, Y)
#define VALUE_EQ_64(X, Y)   (((X)->exponent == (Y)->exponent) && (SIGNIFICAND_EQ_64(X, Y)))
#define VALUE_GT_64(X, Y)
#define VALUE_GE_64(X, Y)
#define VALUE_LT_64(X, Y)
#define VALUE_LE_64(X, Y)
#define VALUE_EQ_80(X, Y)   (((X)->exponent == (Y)->exponent) && (SIGNIFICAND_EQ_80(X, Y)))
#define VALUE_GT_80(X, Y)
#define VALUE_GE_80(X, Y)
#define VALUE_LT_80(X, Y)
#define VALUE_LE_80(X, Y)
#define DOMAIN   1 /* argument domain error */
#define SING   2 /* argument singularity */
#define OVERFLOW   3 /* overflow range error */
#define UNDERFLOW   4 /* underflow range error */
#define TLOSS   5 /* total loss of precision */
#define PLOSS   6 /* partial loss of precision */
#define VOLATILE_32   /*volatile*/
#define VOLATILE_64   /*volatile*/
#define VOLATILE_80   /*volatile*/
#define QUAD_TYPE   _Quad

Typedefs

typedef __int32 INT32
typedef signed __int32 SINT32
typedef unsigned __int32 UINT32
typedef __int64 INT64
typedef signed __int64 SINT64
typedef unsigned __int64 UINT64

Enumerations

enum  _LIB_VERSION_TYPE {
  _IEEE_ = -1, _SVID_, _XOPEN_, _POSIX_,
  _ISOC_
}

Functions

int MATHERR_F (struct exceptionf *)
int MATHERR_D (struct EXC_DECL_D *)
int matherrl (struct exceptionl *)

Variables

_LIB_VERSION_TYPE _LIB_VERSIONIMF

Class Documentation

struct exceptionf

Definition at line 110 of file libm_support.h.

Class Members
float arg1
float arg2
char * name
float retval
int type
struct exception

Definition at line 127 of file libm_support.h.

Class Members
double arg1
double arg2
char * name
double retval
int type
struct exceptionl

Definition at line 136 of file libm_support.h.

Class Members
long double arg1
long double arg2
char * name
long double retval
int type
struct fp32

Definition at line 221 of file libm_support.h.

struct fp64

Definition at line 233 of file libm_support.h.

struct fp80

Definition at line 246 of file libm_support.h.

Class Members
unsigned pad:16
unsigned padwin:32
struct ker80

Definition at line 294 of file libm_support.h.

Class Members
union ker80 __unnamed__
union ker80 __unnamed__
int ex
union ker80.__unnamed__

Definition at line 295 of file libm_support.h.

Class Members
long double ldhi
union ker80.__unnamed__

Definition at line 299 of file libm_support.h.

Class Members
long double ldlo

Define Documentation

#define __LIBM_ADDL1_K80 (   rhi,
  rlo,
  x,
  y,
  t1 
)
Value:
rhi = x   + y;                                          \
    rlo = rhi - x;                                          \
    t1  = rhi - rlo;                                        \
    rlo = y   - rlo;                                        \
    t1  = x   - t1;                                         \
    rlo = rlo + t1;

Definition at line 311 of file libm_support.h.

#define __LIBM_ADDL2_K80 (   rhi,
  rlo,
  xhi,
  xlo,
  yhi,
  ylo,
  t1 
)
Value:
rlo = xhi+yhi;                                          \
    if ( VALUE_GT_80(FP80(xhi),FP80(yhi)) ) {               \
        t1=xhi-rlo;t1=t1+yhi;t1=t1+ylo;t1=t1+xlo;           \
    } else {                                                \
        t1=yhi-rlo;t1=t1+xhi;t1=t1+xlo;t1=t1+ylo;           \
    }                                                       \
    rhi=rlo+t1;                                             \
    rlo=rlo-rhi;rlo=rlo+t1;

Definition at line 324 of file libm_support.h.

#define __LIBM_ADDL_NORM_K80 (   r,
  x,
  y,
  t1 
)
Value:
if ( ((x)->fphi.exponent-BIAS_80<-8000) ||              \
         ((x)->fphi.exponent-BIAS_80>+8000) ||              \
         ((y)->fphi.exponent-BIAS_80<-8000) ||              \
         ((y)->fphi.exponent-BIAS_80>+8000) )               \
    {                                                       \
        __libm_normalizel_k80(x);                           \
        __libm_normalizel_k80(y);                           \
    }                                                       \
    __LIBM_ADDL_K80(r,x,y, t1)

Definition at line 440 of file libm_support.h.

#define __LIBM_DIVL2_K80 (   rhi,
  rlo,
  xhi,
  xlo,
  yhi,
  ylo,
  t32,
  t1,
  t2,
  t3,
  t4,
  t5,
  t6,
  t7,
  t8,
  t9 
)
Value:
t7=(xhi)/(yhi);                                         \
    __LIBM_MULL1_K80(t8,t9,t7,yhi, t32,t1,t2,t3,t4,t5,t6)   \
    t1=xhi-t8; t1=t1-t9; t1=t1+xlo; t1=t1-(t7)*(ylo);       \
    t1=(t1)/(yhi);                                          \
    rhi=t7+t1;                                              \
    rlo=t7-rhi; rlo=rlo+t1;

Definition at line 664 of file libm_support.h.

#define __LIBM_DIVL_K80 (   r,
  x,
  y,
  t32,
  t1,
  t2,
  t3,
  t4,
  t5,
  t6,
  t7,
  t8,
  t9 
)
Value:
(r)->ex = (x)->ex - (y)->ex;                            \
    __LIBM_DIVL2_K80( (r)->ldhi,(r)->ldlo,                  \
        (x)->ldhi,(x)->ldlo,(y)->ldhi,(y)->ldlo,            \
        t32,t1,t2,t3,t4,t5,t6,t7,t8,t9)

Definition at line 679 of file libm_support.h.

#define __LIBM_DIVL_NORM_K80 (   r,
  x,
  y,
  t32,
  t1,
  t2,
  t3,
  t4,
  t5,
  t6,
  t7,
  t8,
  t9 
)
Value:
if ( ((x)->fphi.exponent-BIAS_80<-8000) ||              \
         ((x)->fphi.exponent-BIAS_80>+8000) ||              \
         ((y)->fphi.exponent-BIAS_80<-8000) ||              \
         ((y)->fphi.exponent-BIAS_80>+8000) )               \
    {                                                       \
        __libm_normalizel_k80(x);                           \
        __libm_normalizel_k80(y);                           \
    }                                                       \
    __LIBM_DIVL_K80(r,x,y, t32,t1,t2,t3,t4,t5,t6,t7,t8,t9)

Definition at line 692 of file libm_support.h.

#define __LIBM_MULL1_K80 (   rhi,
  rlo,
  x,
  y,
  t32,
  t1,
  t2,
  t3,
  t4,
  t5,
  t6 
)
Value:
t1=(x)*(t32); t3=x-t1; t3=t3+t1; t4=x-t3;               \
    t1=(y)*(t32); t5=y-t1; t5=t5+t1; t6=y-t5;               \
    t1=(t3)*(t5);                                           \
    t2=(t3)*(t6)+(t4)*(t5);                                 \
    rhi=t1+t2;                                              \
    rlo=t1-rhi; rlo=rlo+t2; rlo=rlo+(t4*t6);

Definition at line 606 of file libm_support.h.

#define __LIBM_MULL2_K80 (   rhi,
  rlo,
  xhi,
  xlo,
  yhi,
  ylo,
  t32,
  t1,
  t2,
  t3,
  t4,
  t5,
  t6,
  t7,
  t8 
)
Value:
__LIBM_MULL1_K80(t7,t8,xhi,yhi, t32,t1,t2,t3,t4,t5,t6)  \
    t1=(xhi)*(ylo)+(xlo)*(yhi); t1=t1+t8;                   \
    rhi=t7+t1;                                              \
    rlo=t7-rhi; rlo=rlo+t1;

Definition at line 621 of file libm_support.h.

#define __LIBM_MULL_K80 (   r,
  x,
  y,
  t32,
  t1,
  t2,
  t3,
  t4,
  t5,
  t6,
  t7,
  t8 
)
Value:
(r)->ex = (x)->ex + (y)->ex;                            \
    __LIBM_MULL2_K80((r)->ldhi,(r)->ldlo,                   \
        (x)->ldhi,(x)->ldlo,(y)->ldhi,(y)->ldlo,            \
        t32,t1,t2,t3,t4,t5,t6,t7,t8)

Definition at line 634 of file libm_support.h.

#define __LIBM_MULL_NORM_K80 (   r,
  x,
  y,
  t32,
  t1,
  t2,
  t3,
  t4,
  t5,
  t6,
  t7,
  t8 
)
Value:
if ( ((x)->fphi.exponent-BIAS_80<-8000) ||              \
         ((x)->fphi.exponent-BIAS_80>+8000) ||              \
         ((y)->fphi.exponent-BIAS_80<-8000) ||              \
         ((y)->fphi.exponent-BIAS_80>+8000) )               \
    {                                                       \
        __libm_normalizel_k80(x);                           \
        __libm_normalizel_k80(y);                           \
    }                                                       \
    __LIBM_MULL_K80(r,x,y, t32,t1,t2,t3,t4,t5,t6,t7,t8)

Definition at line 646 of file libm_support.h.

#define __LIBM_SQRTL2_NORM_K80 (   rhi,
  rlo,
  xhi,
  xlo,
  t32,
  half,
  t1,
  t2,
  t3,
  t4,
  t5,
  t6,
  t7,
  t8,
  t9 
)
Value:
t7=sqrtl(xhi);                                          \
    __LIBM_MULL1_K80(t8,t9,t7,t7, t32,t1,t2,t3,t4,t5,t6)    \
    t1=xhi-t8; t1=t1-t9; t1=t1+xlo; t1=(t1)*(half);         \
    t1=(t1)/(t7);                                           \
    rhi=t7+t1;                                              \
    rlo=t7-rhi; rlo=rlo+t1;

Definition at line 711 of file libm_support.h.

#define __LIBM_SQRTL_K80 (   r,
  x,
  t32,
  half,
  t1,
  t2,
  t3,
  t4,
  t5,
  t6,
  t7,
  t8,
  t9 
)
Value:
if ( ((x)->ex & 1) == 1 ) {                             \
        (x)->ex    = (x)->ex + 1;                           \
        (x)->ldhi *= half;                                  \
        (x)->ldlo *= half;                                  \
    }                                                       \
    (r)->ex = (x)->ex >> 1;                                 \
    __LIBM_SQRTL2_NORM_K80( (r)->ldhi,(r)->ldlo,            \
        (x)->ldhi,(x)->ldlo,                                \
        t32,half,t1,t2,t3,t4,t5,t6,t7,t8,t9)

Definition at line 727 of file libm_support.h.

#define __LIBM_SQRTL_NORM_K80 (   r,
  x,
  t32,
  half,
  t1,
  t2,
  t3,
  t4,
  t5,
  t6,
  t7,
  t8,
  t9 
)
Value:
if ( ((x)->fphi.exponent-BIAS_80<-16000) ||             \
         ((x)->fphi.exponent-BIAS_80>+16000) )              \
    {                                                       \
        __libm_normalizel_k80(x);                           \
    }                                                       \
    __LIBM_SQRTL_K80(r,x, t32,half,t1,t2,t3,t4,t5,t6,t7,t8,t9)

Definition at line 746 of file libm_support.h.

#define __LIBM_SUBL1_K80 (   rhi,
  rlo,
  x,
  y,
  t1 
)
Value:
rhi = x   - y;                                          \
    rlo = rhi - x;                                          \
    t1  = rhi - rlo;                                        \
    rlo = y   + rlo;                                        \
    t1  = x   - t1;                                         \
    rlo = t1  - rlo;

Definition at line 456 of file libm_support.h.

#define __LIBM_SUBL2_K80 (   rhi,
  rlo,
  xhi,
  xlo,
  yhi,
  ylo,
  t1 
)
Value:
rlo = xhi-yhi;                                          \
    if ( VALUE_GT_80(FP80(xhi),FP80(yhi)) ) {               \
        t1=xhi-rlo;t1=t1-yhi;t1=t1-ylo;t1=t1+xlo;           \
    } else {                                                \
        t1=yhi+rlo;t1=xhi-t1;t1=t1+xlo;t1=t1-ylo;           \
    }                                                       \
    rhi=rlo+t1;                                             \
    rlo=rlo-rhi;rlo=rlo+t1;

Definition at line 469 of file libm_support.h.

#define __LIBM_SUBL_NORM_K80 (   r,
  x,
  y,
  t1 
)
Value:
if ( ((x)->fphi.exponent-BIAS_80<-8000) ||              \
         ((x)->fphi.exponent-BIAS_80>+8000) ||              \
         ((y)->fphi.exponent-BIAS_80<-8000) ||              \
         ((y)->fphi.exponent-BIAS_80>+8000) )               \
    {                                                       \
        __libm_normalizel_k80(x);                           \
        __libm_normalizel_k80(y);                           \
    }                                                       \
    __LIBM_SUBL_K80(r,x,y, t1)

Definition at line 589 of file libm_support.h.

#define _XPD_   ,0x0000,0x0000,0x0000

Definition at line 771 of file libm_support.h.

#define ALIGN (   n)

Definition at line 759 of file libm_support.h.

#define BIAS_32   0x007F

Definition at line 209 of file libm_support.h.

#define BIAS_64   0x03FF

Definition at line 210 of file libm_support.h.

#define BIAS_80   0x3FFF

Definition at line 211 of file libm_support.h.

#define DOMAIN   1 /* argument domain error */

Definition at line 1036 of file libm_support.h.

#define DOUBLE_HEX (   hi,
  lo 
)    0x##lo,0x##hi /*LITTLE_ENDIAN*/

Definition at line 99 of file libm_support.h.

#define EXC_DECL_D   exception

Definition at line 155 of file libm_support.h.

#define EXPINF_32   0x00FF

Definition at line 217 of file libm_support.h.

#define EXPINF_64   0x07FF

Definition at line 218 of file libm_support.h.

#define EXPINF_80   0x7FFF

Definition at line 219 of file libm_support.h.

#define FP32 (   f)    ((struct fp32 *)&f)

Definition at line 788 of file libm_support.h.

#define FP64 (   d)    ((struct fp64 *)&d)

Definition at line 789 of file libm_support.h.

#define FP80 (   ld)    ((struct fp80 *)&ld)

Definition at line 790 of file libm_support.h.

#define I64CONST (   bits)    0x##bits##LL

Definition at line 290 of file libm_support.h.

#define LDOUBLE_ALIGN   16 /* EFI2/IA32 Win or IPF Win/Linux: 16-byte alignment */

Definition at line 767 of file libm_support.h.

#define LDOUBLE_HEX (   w4,
  w3,
  w2,
  w1,
  w0 
)    0x##w0,0x##w1,0x##w2,0x##w3,0x##w4 _XPD_ /*LITTLE_ENDIAN*/

Definition at line 776 of file libm_support.h.

#define MATHERR_D   matherr

Definition at line 148 of file libm_support.h.

#define MATHERR_F   matherrf

Definition at line 147 of file libm_support.h.

#define MAXEXP_32   0x00FE

Definition at line 213 of file libm_support.h.

#define MAXEXP_64   0x07FE

Definition at line 214 of file libm_support.h.

#define MAXEXP_80   0x7FFE

Definition at line 215 of file libm_support.h.

#define OVERFLOW   3 /* overflow range error */

Definition at line 1038 of file libm_support.h.

#define PLOSS   6 /* partial loss of precision */

Definition at line 1041 of file libm_support.h.

#define QUAD_TYPE   _Quad

Definition at line 1049 of file libm_support.h.

#define SIGNIFICAND_EQ_32 (   X,
  Y 
)    ((X)->significand == (Y)->significand)

Definition at line 918 of file libm_support.h.

#define SIGNIFICAND_EQ_HEX_32 (   X,
  BITS 
)    ((X)->significand == 0x ## BITS)

Definition at line 839 of file libm_support.h.

#define SIGNIFICAND_GE_32 (   X,
  Y 
)    ((X)->significand >= (Y)->significand)

Definition at line 920 of file libm_support.h.

#define SIGNIFICAND_GE_HEX_32 (   X,
  BITS 
)    ((X)->significand >= 0x ## BITS)

Definition at line 841 of file libm_support.h.

#define SIGNIFICAND_GT_32 (   X,
  Y 
)    ((X)->significand > (Y)->significand)

Definition at line 919 of file libm_support.h.

#define SIGNIFICAND_GT_HEX_32 (   X,
  BITS 
)    ((X)->significand > 0x ## BITS)

Definition at line 840 of file libm_support.h.

#define SIGNIFICAND_LE_32 (   X,
  Y 
)    ((X)->significand <= (Y)->significand)

Definition at line 922 of file libm_support.h.

#define SIGNIFICAND_LE_HEX_32 (   X,
  BITS 
)    ((X)->significand <= 0x ## BITS)

Definition at line 843 of file libm_support.h.

#define SIGNIFICAND_LT_32 (   X,
  Y 
)    ((X)->significand < (Y)->significand)

Definition at line 921 of file libm_support.h.

#define SIGNIFICAND_LT_HEX_32 (   X,
  BITS 
)    ((X)->significand < 0x ## BITS)

Definition at line 842 of file libm_support.h.

#define SIGNIFICAND_NONZERO_32 (   X)    ((X)->significand != 0)

Definition at line 819 of file libm_support.h.

#define SIGNIFICAND_ZERO_32 (   X)    ((X)->significand == 0)

Definition at line 818 of file libm_support.h.

#define SING   2 /* argument singularity */

Definition at line 1037 of file libm_support.h.

#define TLOSS   5 /* total loss of precision */

Definition at line 1040 of file libm_support.h.

#define U64CONST (   bits)    0x##bits##uLL

Definition at line 291 of file libm_support.h.

#define UNDERFLOW   4 /* underflow range error */

Definition at line 1039 of file libm_support.h.

#define VALUE_EQ_32 (   X,
  Y 
)    (((X)->exponent == (Y)->exponent) && (SIGNIFICAND_EQ_32(X, Y)))

Definition at line 962 of file libm_support.h.

#define VALUE_EQ_64 (   X,
  Y 
)    (((X)->exponent == (Y)->exponent) && (SIGNIFICAND_EQ_64(X, Y)))

Definition at line 973 of file libm_support.h.

#define VALUE_EQ_80 (   X,
  Y 
)    (((X)->exponent == (Y)->exponent) && (SIGNIFICAND_EQ_80(X, Y)))

Definition at line 984 of file libm_support.h.

#define VALUE_EQ_HEX_32 (   X,
  EXP,
  BITS 
)    (((X)->exponent == (EXP)) && (SIGNIFICAND_EQ_HEX_32(X, BITS)))

Definition at line 883 of file libm_support.h.

#define VALUE_EQ_HEX_64 (   X,
  EXP,
  HI,
  LO 
)    (((X)->exponent == (EXP)) && (SIGNIFICAND_EQ_HEX_64(X, HI, LO)))

Definition at line 894 of file libm_support.h.

#define VALUE_EQ_HEX_80 (   X,
  EXP,
  HI,
  LO 
)    (((X)->exponent == (EXP)) && (SIGNIFICAND_EQ_HEX_80(X, HI, LO)))

Definition at line 905 of file libm_support.h.

#define VALUE_GE_32 (   X,
  Y 
)
Value:
(((X)->exponent > (Y)->exponent) || \
   (((X)->exponent == (Y)->exponent) && (SIGNIFICAND_GE_32(X, Y))))

Definition at line 966 of file libm_support.h.

#define VALUE_GE_64 (   X,
  Y 
)
Value:
(((X)->exponent > (Y)->exponent) || \
   (((X)->exponent == (Y)->exponent) && (SIGNIFICAND_GE_64(X, Y))))

Definition at line 977 of file libm_support.h.

#define VALUE_GE_80 (   X,
  Y 
)
Value:
(((X)->exponent > (Y)->exponent) || \
   (((X)->exponent == (Y)->exponent) && (SIGNIFICAND_GE_80(X, Y))))

Definition at line 988 of file libm_support.h.

#define VALUE_GE_HEX_32 (   X,
  EXP,
  BITS 
)
Value:
(((X)->exponent > (EXP)) || \
   (((X)->exponent == (EXP)) && (SIGNIFICAND_GE_HEX_32(X, BITS))))

Definition at line 887 of file libm_support.h.

#define VALUE_GE_HEX_64 (   X,
  EXP,
  HI,
  LO 
)
Value:
(((X)->exponent > (EXP)) || \
   (((X)->exponent == (EXP)) && (SIGNIFICAND_GE_HEX_64(X, HI, LO))))

Definition at line 898 of file libm_support.h.

#define VALUE_GE_HEX_80 (   X,
  EXP,
  HI,
  LO 
)
Value:
(((X)->exponent > (EXP)) || \
   (((X)->exponent == (EXP)) && (SIGNIFICAND_GE_HEX_80(X, HI, LO))))

Definition at line 909 of file libm_support.h.

#define VALUE_GT_32 (   X,
  Y 
)
Value:
(((X)->exponent > (Y)->exponent) || \
   (((X)->exponent == (Y)->exponent) && (SIGNIFICAND_GT_32(X, Y))))

Definition at line 964 of file libm_support.h.

#define VALUE_GT_64 (   X,
  Y 
)
Value:
(((X)->exponent > (Y)->exponent) || \
   (((X)->exponent == (Y)->exponent) && (SIGNIFICAND_GT_64(X, Y))))

Definition at line 975 of file libm_support.h.

#define VALUE_GT_80 (   X,
  Y 
)
Value:
(((X)->exponent > (Y)->exponent) || \
   (((X)->exponent == (Y)->exponent) && (SIGNIFICAND_GT_80(X, Y))))

Definition at line 986 of file libm_support.h.

#define VALUE_GT_HEX_32 (   X,
  EXP,
  BITS 
)
Value:
(((X)->exponent > (EXP)) || \
   (((X)->exponent == (EXP)) && (SIGNIFICAND_GT_HEX_32(X, BITS))))

Definition at line 885 of file libm_support.h.

#define VALUE_GT_HEX_64 (   X,
  EXP,
  HI,
  LO 
)
Value:
(((X)->exponent > (EXP)) || \
   (((X)->exponent == (EXP)) && (SIGNIFICAND_GT_HEX_64(X, HI, LO))))

Definition at line 896 of file libm_support.h.

#define VALUE_GT_HEX_80 (   X,
  EXP,
  HI,
  LO 
)
Value:
(((X)->exponent > (EXP)) || \
   (((X)->exponent == (EXP)) && (SIGNIFICAND_GT_HEX_80(X, HI, LO))))

Definition at line 907 of file libm_support.h.

#define VALUE_LE_32 (   X,
  Y 
)
Value:
(((X)->exponent < (Y)->exponent) || \
   (((X)->exponent == (Y)->exponent) && (SIGNIFICAND_LE_32(X, Y))))

Definition at line 970 of file libm_support.h.

#define VALUE_LE_64 (   X,
  Y 
)
Value:
(((X)->exponent < (Y)->exponent) || \
   (((X)->exponent == (Y)->exponent) && (SIGNIFICAND_LE_64(X, Y))))

Definition at line 981 of file libm_support.h.

#define VALUE_LE_80 (   X,
  Y 
)
Value:
(((X)->exponent < (Y)->exponent) || \
   (((X)->exponent == (Y)->exponent) && (SIGNIFICAND_LE_80(X, Y))))

Definition at line 992 of file libm_support.h.

#define VALUE_LE_HEX_32 (   X,
  EXP,
  BITS 
)
Value:
(((X)->exponent < (EXP)) || \
   (((X)->exponent == (EXP)) && (SIGNIFICAND_LE_HEX_32(X, BITS))))

Definition at line 891 of file libm_support.h.

#define VALUE_LE_HEX_64 (   X,
  EXP,
  HI,
  LO 
)
Value:
(((X)->exponent < (EXP)) || \
   (((X)->exponent == (EXP)) && (SIGNIFICAND_LE_HEX_64(X, HI, LO))))

Definition at line 902 of file libm_support.h.

#define VALUE_LE_HEX_80 (   X,
  EXP,
  HI,
  LO 
)
Value:
(((X)->exponent < (EXP)) || \
   (((X)->exponent == (EXP)) && (SIGNIFICAND_LE_HEX_80(X, HI, LO))))

Definition at line 913 of file libm_support.h.

#define VALUE_LT_32 (   X,
  Y 
)
Value:
(((X)->exponent < (Y)->exponent) || \
   (((X)->exponent == (Y)->exponent) && (SIGNIFICAND_LT_32(X, Y))))

Definition at line 968 of file libm_support.h.

#define VALUE_LT_64 (   X,
  Y 
)
Value:
(((X)->exponent < (Y)->exponent) || \
   (((X)->exponent == (Y)->exponent) && (SIGNIFICAND_LT_64(X, Y))))

Definition at line 979 of file libm_support.h.

#define VALUE_LT_80 (   X,
  Y 
)
Value:
(((X)->exponent < (Y)->exponent) || \
   (((X)->exponent == (Y)->exponent) && (SIGNIFICAND_LT_80(X, Y))))

Definition at line 990 of file libm_support.h.

#define VALUE_LT_HEX_32 (   X,
  EXP,
  BITS 
)
Value:
(((X)->exponent < (EXP)) || \
   (((X)->exponent == (EXP)) && (SIGNIFICAND_LT_HEX_32(X, BITS))))

Definition at line 889 of file libm_support.h.

#define VALUE_LT_HEX_64 (   X,
  EXP,
  HI,
  LO 
)
Value:
(((X)->exponent < (EXP)) || \
   (((X)->exponent == (EXP)) && (SIGNIFICAND_LT_HEX_64(X, HI, LO))))

Definition at line 900 of file libm_support.h.

#define VALUE_LT_HEX_80 (   X,
  EXP,
  HI,
  LO 
)
Value:
(((X)->exponent < (EXP)) || \
   (((X)->exponent == (EXP)) && (SIGNIFICAND_LT_HEX_80(X, HI, LO))))

Definition at line 911 of file libm_support.h.

#define VOLATILE_32   /*volatile*/

Definition at line 1045 of file libm_support.h.

#define VOLATILE_64   /*volatile*/

Definition at line 1046 of file libm_support.h.

#define VOLATILE_80   /*volatile*/

Definition at line 1047 of file libm_support.h.


Typedef Documentation

typedef __int32 INT32

Definition at line 266 of file libm_support.h.

typedef __int64 INT64

Definition at line 270 of file libm_support.h.

typedef signed __int32 SINT32

Definition at line 267 of file libm_support.h.

typedef signed __int64 SINT64

Definition at line 271 of file libm_support.h.

typedef unsigned __int32 UINT32

Definition at line 268 of file libm_support.h.

typedef unsigned __int64 UINT64

Definition at line 272 of file libm_support.h.


Enumeration Type Documentation

Enumerator:
_IEEE_ 
_SVID_ 
_XOPEN_ 
_POSIX_ 
_ISOC_ 

Definition at line 164 of file libm_support.h.

{
    _IEEE_ = -1, // IEEE-like behavior
    _SVID_,      // SysV, Rel. 4 behavior
    _XOPEN_,     // Unix98
    _POSIX_,     // Posix
    _ISOC_       // ISO C9X
} _LIB_VERSION_TYPE;

Function Documentation

int MATHERR_D ( struct EXC_DECL_D )

Here is the caller graph for this function:

int MATHERR_F ( struct exceptionf )

Here is the caller graph for this function:

int matherrl ( struct exceptionl )

Here is the caller graph for this function:


Variable Documentation

Definition at line 110 of file libm_error.c.