delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp-workers/2003/09/02/11:21:05

From: Kbwms AT aol DOT com
Message-ID: <22.3d4f25c0.2c860f55@aol.com>
Date: Tue, 2 Sep 2003 11:20:53 EDT
Subject: Re: <math.h> and <libm/math.h>
To: djgpp-workers AT delorie DOT com
MIME-Version: 1.0
X-Mailer: 8.0 for Windows sub 6015
Reply-To: djgpp-workers AT delorie DOT com

--part1_22.3d4f25c0.2c860f55_boundary
Content-Type: multipart/alternative;
	boundary="part1_22.3d4f25c0.2c860f55_alt_boundary"


--part1_22.3d4f25c0.2c860f55_alt_boundary
Content-Type: text/plain; charset="US-ASCII"
Content-Transfer-Encoding: 7bit

Attached is latest math.h that combines <math.h> and <libm/math.h>.

Tell me what you think.


KB Williams

--part1_22.3d4f25c0.2c860f55_alt_boundary
Content-Type: text/html; charset="US-ASCII"
Content-Transfer-Encoding: quoted-printable

<HTML><FONT FACE=3Darial,helvetica><FONT  SIZE=3D3 FAMILY=3D"SERIF" FACE=3D"=
Georgia" LANG=3D"0">Attached is latest math.h that combines &lt;math.h&gt; a=
nd &lt;libm/math.h&gt;.<BR>
<BR>
Tell me what you think.<BR>
<BR>
<BR>
KB Williams</FONT></HTML>

--part1_22.3d4f25c0.2c860f55_alt_boundary--

--part1_22.3d4f25c0.2c860f55_boundary
Content-Type: text/plain; name="math.h"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline; filename="math.h"

/* Copyright (C) 1999 DJ Delorie, see COPYING.DJ for details */
/* Copyright (C) 1998 DJ Delorie, see COPYING.DJ for details */
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */
#ifndef __dj_include_math_h_
#define __dj_include_math_h_

#ifdef __cplusplus
extern "C" {
#endif

#ifndef __dj_ENFORCE_ANSI_FREESTANDING

extern double __dj_huge_val;
#define HUGE_VAL  __dj_huge_val

int     ilogb(double);

double  acos(double);
double  acosh(double);
double  asin(double);
double  asinh(double);
double  atan(double);
double  atan2(double , double);
double  atanh(double);
double  cbrt(double);
double  ceil(double);
double  copysign(double, double);
double  cos(double);
double  cosh(double);
double  erf(double);
double  erfc(double);
double  exp(double);
double  exp10(double);
double  exp2(double);
double  expm1(double);
double  fabs(double);
double  floor(double);
double  fmod(double , double);
double  frexp(double , int *);
double  hypot(double, double);
int     isinf(double);
int     isnan(double);
# if !defined isinff
int     isinff(float);
# endif
# if !defined isnanf
int     isnanf(float);
# endif
double  ldexp(double , int);
double  lgamma(double);
double  log(double);
double  logb(double);
double  log10(double);
double  log1p(double);
double  log2(double);
double  modf(double , double *);
long
double  modfl(long double , long double *);
double  nextafter(double, double);
double  pow(double , double);
double  pow10(double);
double  pow2(double);
double  powi(double, int);
double  remainder(double, double);
double  rint(double);
double  scalbn(double, int);
double  sin(double);
void    sincos(double *, double *, double);
double  sinh(double);
double  sqrt(double);
double  tan(double);
double  tanh(double);

float   acosf(float);
float   acoshf(float);
float   asinf(float);
float   asinhf(float);
float   atan2f(float, float);
float   atanf(float);
float   atanhf(float);
float   cbrtf(float);
float   ceilf(float);
float   copysignf(float, float);
float   cosf(float);
float   coshf(float);
float   erfcf(float);
float   erff(float);
float   expf(float);
float   expm1f(float);
float   fabsf(float);
float   floorf(float);
float   fmodf(float, float);
float   frexpf(float, int *);
float   hypotf(float, float);
int     ilogbf(float);
float   ldexpf(float, int);
float   log10f(float);
float   log1pf(float);
float   logbf(float);
float   logf(float);
float   modff(float, float *);
float   nextafterf(float, float);
float   powf(float, float);
float   remainderf(float, float);
float   rintf(float);
float   scalbnf(float, int);
float   sinf(float);
float   sinhf(float);
float   sqrtf(float);
float   tanf(float);
float   tanhf(float);

long    double acoshl     (long double);
long    double acosl      (long double);
long    double asinhl     (long double);
long    double asinl      (long double);
long    double atan2l     (long double, long double);
long    double atanhl     (long double);
long    double atanl      (long double);
long    double cbrtl      (long double);
long    double ceill      (long double);
long    double copysignl  (long double, long double);
long    double coshl      (long double);
long    double cosl       (long double);
long    double cotl       (long double);
long    double erfcl      (long double);
long    double erfl       (long double);
long    double exp2l      (long double);
long    double expl       (long double);
long    double expm1l     (long double);
long    double fabsl      (long double);
long    double fdiml      (long double, long double);
long    double floorl     (long double);
long    double fmaxl      (long double, long double);
long    double fminl      (long double, long double);
long    double fmodl      (long double, long double);
int     fpclassifyl       (long double);
long    double frexpl     (long double, int *);
long    double hypotl     (long double, long double);
int     ilogbl            (long double);
int     isfinitel         (long double);
int     isinfl            (long double);
int     isnanl            (long double);
long    double ldexpl     (long double, int);
long    double lgammal    (long double);
long    double lgammal_r  (long double, int *);
long    long int llrintl  (long double);
long    long int llroundl (long double);
long    int lrintl        (long double);
long    int lroundl       (long double);
long    double log10l     (long double);
long    double log1pl     (long double);
long    double log2l      (long double);
long    double logbl      (long double);
long    double logl       (long double);
long    double modfl      (long double, long double *);
long    double nanl       (const char *);
long    double nearbyintl (long double);
long    double nextafterl (long double, long double);
long    double powil      (long double, int);
long    double powl       (long double, long double);
long    double remainderl (long double, long double);
long    double remquol    (long double, long double, int *);
long    double rintl      (long double);
long    double roundl     (long double);
long    double scalblnl   (long double, long int);
long    double scalbnl    (long double, int);
int     signbitl          (long double);
long    double sinhl      (long double);
long    double sinl       (long double);
long    double sqrtl      (long double);
long    double tanl       (long double);
long    double tanhl      (long double);
long    double tgammal    (long double);
long    double truncl     (long double);

#ifndef __STRICT_ANSI__

#ifndef _POSIX_SOURCE

#define M_1_PI          0.31830988618379067154          /* 1/pi         */
#define M_2_PI          0.63661977236758134308          /* 2/pi         */
#define M_2_SQRTPI      1.12837916709551257390          /* 2/sqrt(pi)   */
#define M_3PI_4         2.3561944901923448370           /* 3/4 * pi     */
#define M_E             2.7182818284590452354           /* e            */
#define M_INVLN2        1.4426950408889633870E0         /* 1 / log e2   */
#define M_IVLN10        0.43429448190325182765          /* 1 / log(10)  */
#define M_LN10          2.30258509299404568402          /* loge(10)     */
#define M_LN2           0.693147180559945309417         /* loge(2)      */
#define M_LN2HI         6.9314718036912381649E-1        /* upper bits of log=
e(2) */
#define M_LN2LO         1.9082149292705877000E-10       /* lower bits of log=
e(2) */
#define M_LOG10E        0.43429448190325182765          /* log10(e)     */
#define M_LOG2E         1.4426950408889634074           /* log(2e)      */
#define M_LOG2_E        0.693147180559945309417         /* log2(e)      */
#define M_PI            3.14159265358979323846          /* pi           */
#define M_PI_2          1.57079632679489661923          /* pi/2         */
#define M_PI_4          0.78539816339744830962          /* pi/4         */
#define M_SQRT1_2       0.70710678118654752440          /* 1/sqrt(2)    */
#define M_SQRT2         1.41421356237309504880          /* sqrt(2)      */
#define M_SQRT3         1.73205080756887719000          /* sqrt(3)      */
#define M_SQRTPI        1.77245385090551602792981       /* sqrt(pi)     */
#define M_TWOPI         6.28318530717958647692          /* 2*pi         */
#define PI              M_PI
#define PI2             M_PI_2

/*
 * XOPEN/SVID
 */


enum __fdlibm_version
{
  __fdlibm_ieee =3D -1,
  __fdlibm_svid,
  __fdlibm_xopen,
  __fdlibm_posix
};

#define _LIB_VERSION_TYPE enum __fdlibm_version
#define _LIB_VERSION __fdlib_version

/* if global variable _LIB_VERSION is not desirable, one may
 * change the following to be a constant by:
 *      #define _LIB_VERSION_TYPE const enum version
 * In that case, after one initializes the value _LIB_VERSION (see
 * s_lib_version.c) during compile time, it cannot be modified
 * in the middle of a program
 */
extern  _LIB_VERSION_TYPE  _LIB_VERSION;

#define _IEEE_  __fdlibm_ieee
#define _SVID_  __fdlibm_svid
#define _XOPEN_ __fdlibm_xopen
#define _POSIX_ __fdlibm_posix

/* These are in libm.a (Cygnus).  You must link -lm to get these */
/* See libm/math.h for comments */

extern int signgam;

/* The exception structure passed to the matherr routine.  */

#ifndef __cplusplus
struct exception
{
        int type;
        const char *name;
        double arg1;
        double arg2;
        double retval;
        int err;
};

int     matherr(struct exception *);
#endif


double  drem(double, double);
int     finite(double);
double  gamma(double);
double  gamma_r(double, int *);
double  infinity (void);
double  j0(double);
double  j1(double);
double  jn(int, double);
double  lgamma_r(double, int *);
double  nan(void);
double  scalb(double, double);
double  significand(double);
double  y0(double);
double  y1(double);
double  yn(int, double);

# if !defined finitef
int finitef(float);
# endif

float   gammaf(float);
float   gammaf_r(float, int *);
float   infinityf (void);
float   j0f(float);
float   j1f(float);
float   jnf(int, float);
float   lgammaf_r(float, int *);

#define log2f(x) (logf (x) / (float) M_LOG2_E)

float   nanf(void);
float   lgammaf(float);
float   scalbf(float, float);
float   significandf(float);
float   dremf(float, float);
float   y0f(float);
float   y1f(float);
float   ynf(int, float);

long    double _infinityl (void);
long    double j0l        (long double);
long    double j1l        (long double);
long    double jnl        (int, long double);
long    double _nanl      (void);
long    double y0l        (long double);
long    double y1l        (long double);
long    double ynl        (int, long double);


/*
 * set X_TLOSS =3D pi*2**52, which is possibly defined in <values.h>
 * (one may replace the following line by "#include <values.h>")
 */

#define X_TLOSS         1.41484755040568800000e+16

#define DOMAIN          1
#define SING            2
#define OVERFLOW        3
#define UNDERFLOW       4
#define TLOSS           5
#define PLOSS           6

#endif /* !_POSIX_SOURCE */
#endif /* !__STRICT_ANSI__ */
#endif /* !__dj_ENFORCE_ANSI_FREESTANDING */

#ifndef __dj_ENFORCE_FUNCTION_CALLS
#endif /* !__dj_ENFORCE_FUNCTION_CALLS */


#ifdef __cplusplus
}
#endif

#endif /* !__dj_include_math_h_ */


--part1_22.3d4f25c0.2c860f55_boundary--

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019