Coherent4.2.10/include/math.h

/* (-lgl
 *	Coherent 386 release 4.2
 *	Copyright (c) 1982, 1993 by Mark Williams Company.
 *	All rights reserved. May not be copied without permission.
 *	For copying permission and licensing info, write licensing@mwc.com
 -lgl) */
/*
 * Definitions for math library.
 * ANSI C Standard, section 4.5.
 */

#ifndef	__MATH_H__
#define	__MATH_H__

#include <common/feature.h>
#include <common/ccompat.h>

#if	! _STDC_SOURCE && ! _POSIX_C_SOURCE

#if	__DECVAX__
#define L2HUGE_VAL	127.0		/* log2(infinity)	*/
#define L10P		17		/* log10(precision)	*/
#define L2L2P		6		/* log2(log2(precision)) */
#elif	__IEEE__
#define L2HUGE_VAL	1023.0		/* log2(infinity)	*/
#define L10P		16		/* log10(precision)	*/
#define L2L2P		6		/* log2(log2(precision)) */
#endif

/* Constants. */
#define PI		0.31415926535897932e+01
#define SQRT2		0.14142135623730950e+01
#define LOG2B10		0.30102999566398119e+00
#define LOG10BE		0.23025850929940456e+01
#define LOG10B2		0.33219280948873623e+01
#define LOGEB2		0.14426950408889634e+01

/* Complex variables. */
typedef struct cpx {
	double	z_r;
	double	z_i;
} CPX;

#endif


#if	__DECVAX__

#define HUGE_VAL	1e+37		/* Infinity		*/

#elif	__IEEE__

#define HUGE_VAL	1e+308		/* Infinity		*/

#endif

__EXTERN_C_BEGIN__

double		acos		__PROTO ((double _x));
double		asin		__PROTO ((double _x));
double		atan		__PROTO ((double _x));
double		atan2		__PROTO ((double _y, double _x));
double		cos		__PROTO ((double _x));
double		sin		__PROTO ((double _x));
double		tan		__PROTO ((double _x));
double		cosh		__PROTO ((double _x));
double		sinh		__PROTO ((double _x));
double		tanh		__PROTO ((double _x));
double		exp		__PROTO ((double _x));
double		frexp		__PROTO ((double _x, int * _iptr));
double		ldexp		__PROTO ((double _x, int _i));
double		log		__PROTO ((double _x));
double		log10		__PROTO ((double _x));
double		modf		__PROTO ((double _value, double * _iptr));
double		pow		__PROTO ((double _x, double _y));
double		sqrt		__PROTO ((double _x));
double		ceil		__PROTO ((double _x));
double		fabs		__PROTO ((double _x));
double		floor		__PROTO ((double _x));
double		fmod		__PROTO ((double _x, double _y));

#if	! _STDC_SOURCE && ! _POSIX_C_SOURCE

/* Math library functions in /lib/libm.a. */
double		cabs		__PROTO ((struct cpx _z));
double		hypot		__PROTO ((double _x, double _y));
double		j0		__PROTO ((double _x));
double		j1		__PROTO ((double _x));
double		jn		__PROTO ((int _n, double _x));

double		atof		__PROTO ((__CONST__ char * _nptr));

#endif	/* ! _STDC_SOURCE && ! _POSIX_C_SOURCE */

__EXTERN_C_END__

#if	1

/* Internal functions. */
extern	double	_pol();
extern	double	_two();

#endif	/* not permitted in this header */

#endif	/* ! defined (__MATH__H__) */