| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 | /********************************************************************************                                                                              **      File fp_private.h,                                                      **      All pack 4 dependencies for the MathLib elems plus some defines used    **      throughout MathLib.                                                     **                                                                              **      Copyright © 1991 Apple Computer, Inc.  All rights reserved.             **                                                                              **      Written by Ali Sazegari, started on October 1991,                       **                                                                              **      W A R N I N G:  This routine expects a 64 bit double model.             **                                                                              ********************************************************************************/#define      NoException            0/********************************************************************************                              Values of constants.                            ********************************************************************************///#define    SgnMask            0x8000#define      dSgnMask           0x80000000#define      sSgnMask           0x7FFFFFFF//#define    ExpMask            0x7FFF#define      dExpMask           0x7FF00000#define      sExpMask           0xFF000000                                          /* according to rounding BIG & SMALL are:  */#define      BIG               1.1e+300   /* used to deliver ±° or largest number,   */#define      SMALL             1.1e-300   /* used to deliver ±0 or smallest number.  */#define      InfExp            0x7FF#define      dMaxExp           0x7FF00000#define      MaxExpP1          1024#define      MaxExp            1023#define      DenormLimit       -52//#define    ManMask           0x80000000#define      dManMask          0x00080000//#define    IsItDenorm         0x80000000#define      dIsItDenorm        0x00080000//#define    xIsItSNaN          0x40000000#define      dIsItSNaN          0x00080000#define      dHighMan           0x000FFFFF#define      dFirstBitSet       0x00080000#define      BIAS               0x3FF//#define    GetSign            0x8000#define      dGetSign           0x80000000#define      sGetSign           0x80000000//#define    Infinity(x)       ( x.hex.exponent & ExpMask ) == ExpMask#define      dInfinity(x)      ( x.hex.high & dExpMask ) == dExpMask#define      sInfinity(x)      ( ( x.hexsgl << 1 ) & sExpMask ) == sExpMask//#define    Exponent(x)       x.hex.exponent & ExpMask#define      dExponent(x)      x.hex.high & dExpMask#define      sExponent(x)      ( ( x.hexsgl << 1 ) & sExpMask )#define      sZero(x)          ( x.hexsgl & sSgnMask ) == 0//#define    Sign(x)           ( x.hex.exponent & SgnMask ) == SgnMask/********************************************************************************                        Types used in the auxiliary functions.                ********************************************************************************/#include <stdint.h>typedef struct                   /*      Hex representation of a double.      */      {#if defined(__BIG_ENDIAN__)      uint32_t high;      uint32_t low;#else      uint32_t low;      uint32_t high;#endif      } dHexParts;typedef union      {      unsigned char byties[8];      double dbl;      } DblInHex;
 |