#line 1/*CED 3 0024 */
/*
 *    MATH.H      Math function declarations
 */

#ifndef MATH_H
#define  MATH_H

extern float sin(),   cos(),   cotan(), tan();
extern float asin(),  acos(),  acot(),  atan(), atan2();
extern float sinh(),  cosh(),           tanh();
extern float asinh(), acosh(),          atanh();
extern float sec(), cosec();
extern float log(), log10(), pow(), exp();
extern float sqrt();
extern float ceil(), floor(), rint();
extern float fabs(), sign();
extern int   fsgn();
extern float fmax(), fmin();
extern float ldexp(), frexp(), modf(), fmod();
extern float atof();
extern float poly(), fact();

/*** noch'n paar Namens-Definitionen ***/
#define ln(a)  log(a)
#define cot(a) cotan(a)

/*** wird (noch) nicht verwendet ***/
typedef struct cmplx {
    float real;
    float imag;
} COMPLEX;


/* Some useful constants, generally to 8-9 digits */

#define M_E          2.71828183
#define M_LOG2E      1.44269504
#define M_LOG10E     0.43429448
#define M_LN2        0.69314718
#define M_LNSQRT2    0.3465735902
#define M_LN10       2.30258509
#define M_PI         3.14159265
#define PI           M_PI           /* gebraeuchlicher ... */
#define M_2PI        6.283185307
#define M_PI_2       1.570796327
#define M_PI_4       0.785398163
#define M_PI_6       0.523598775
#define M_PI_8       0.392699081
#define M_1_PI       0.318309886
#define M_2_PI       0.636619772
#define M_1_SQRTPI   0.564189583
#define M_2_SQRTPI   1.128379167
#define M_SQRT2      1.414213562
#define M_SQRT3      1.732050807
#define M_SQRT1_2    0.70710678

/* This is what the compiler should turn into 0xFFFFFF7F... */
#define MAXFLOAT  ((float)9.2233715e+18)
#define MAXDOUBLE ((double)9.2233715e+18)
#define HUGE   MAXFLOAT

#define _ABS(x)   ((x) < 0 ? -(x) : (x))

#endif MATH_H
