/*
 * Copyright (C) 1992 by Sun Microsystems, Inc.
 */

#pragma ident	"@(#)llib-lm 1.3 93/03/16 SMI"

/* LINTLIBRARY */
/* PROTOLIB1 */

typedef union _h_val {
        unsigned long _i[2];
        double _d;
} _h_val;
extern const _h_val __huge_val;

enum version {libm_ieee = -1, c_issue_4, ansi_1, strict_ansi};
extern const enum version _lib_version;

extern int signgam;

extern double acos(double);
extern double asin(double);
extern double atan(double);
extern double atan2(double, double);
extern double cos(double);
extern double sin(double);
extern double tan(double);

extern double cosh(double);
extern double sinh(double);
extern double tanh(double);

extern double exp(double);
extern double log(double);
extern double log10(double);
extern double pow(double, double);
extern double sqrt(double);

extern double ceil(double);
extern double fabs(double);
extern double floor(double);
extern double fmod(double, double);

extern double erf(double);
extern double erfc(double);
extern double gamma(double);
extern double hypot(double, double);
extern int isnan(double);
extern double j0(double);
extern double j1(double);
extern double jn(int, double);
extern double lgamma(double);
extern double y0(double);
extern double y1(double);
extern double yn(int, double);

extern double acosh(double);
extern double asinh(double);
extern double atanh(double);
extern double cbrt(double);
extern double logb(double);
extern double nextafter(double, double);
extern double remainder(double, double);
extern double scalb(double, double);

struct exception {
	int type;
	char *name;
	double arg1;
	double arg2;
	double retval;
};

extern int matherr(struct exception *);

extern double significand(double);

extern double copysign(double, double);
extern int ilogb(double);
extern double rint(double);
extern double scalbn(double, int);

extern double expm1(double);
extern double log1p(double);

extern double gamma_r(double, int *);
extern double lgamma_r(double, int *);
