Files
2026-07-30 11:19:44 +05:30

232 lines
6.2 KiB
C

/* math.h - math routines */
/* Copyright 1989-1995, 2010, 2017 Wind River Systems, Inc. */
/*
modification history
--------------------
01q,09nov17,lau added prototype for ldexpf (VXW6-86052)
01p,29apr10,pad Moved extern C statement after include statements.
01o,08jul96,ms fixed prototype for fmodf (SPR 6856)
01n,29mar95,kdl added prototype for __fixunssfsi() (gcc callout routine).
01m,15oct92,rrr silenced warnings
01l,22sep92,rrr added support for c++
01k,19sep92,kdl added prototypes for gccMathInit, gccUssInit, gccUss040Init.
01j,30jul92,kdl changed to ANSI single precision names (e.g. fsin -> sinf);
merged various architectures; fixed 01i mod history.
01i,08jul92,smb merged with ANSI math.h
01h,04jul92,jcf cleaned up.
01g,26may92,rrr the tree shuffle
01f,04oct91,rrr passed through the ansification filter
-fixed #else and #endif
-changed copyright notice
01e,16jul91,ajm added MIPS specific externs, and made MIPS unsupported
functions 68k dependent
01d,28jan91,kdl added single-precision, cbrt(), hypot(); changed def's of
irint() and iround() to int; changed def of sincos() to void.
01c,19oct90,elr ANSI cleaned up
01b,05oct90,dnw deleted private routines.
01a,23aug90,elr written.
*/
#ifndef __INCmathh
#define __INCmathh
#include "types/vxANSI.h"
#ifdef __cplusplus
extern "C" {
#endif
/* ANSI-compatible definitions */
#define HUGE_VAL _ARCH_HUGH_VAL
#if defined(__STDC__) || defined(__cplusplus)
/* ANSI-compatible functions */
extern double acos (double x);
extern double asin (double x);
extern double atan (double x);
extern double atan2 (double y, double x);
extern double ceil (double x);
extern double cos (double x);
extern double cosh (double x);
extern double exp (double x);
extern double fabs (double x);
extern double floor (double x);
extern double fmod (double x, double y);
extern double frexp (double x, int *exponent);
extern double ldexp (double x, int __exp);
extern double log (double x);
extern double log10 (double x);
extern double modf (double x, double *pIntResult);
extern double pow (double x, double y);
extern double sin (double x);
extern double sinh (double x);
extern double sqrt (double x);
extern double tan (double x);
extern double tanh (double x);
/* Single-precision versions of ANSI functions *
* Not available on all VxWorks architectures. */
extern float acosf (float x);
extern float asinf (float x);
extern float atanf (float x);
extern float atan2f (float x, float y);
extern float ceilf (float x);
extern float cosf (float x);
extern float coshf (float x);
extern float expf (float x);
extern float fabsf (float x);
extern float floorf (float x);
extern float fmodf (float x, float y);
extern float logf (float x);
extern float log10f (float x);
extern float powf (float x, float y);
extern float sinf (float x);
extern float sinhf (float x);
extern float sqrtf (float x);
extern float tanf (float x);
extern float tanhf (float x);
/* Miscellaneous math functions *
* Not available on all VxWorks architectures. */
extern double cbrt (double x);
extern double hypot (double x, double y);
extern double infinity (void);
extern int irint (double x);
extern int iround (double x);
extern double log2 (double x);
extern double rint (double x);
extern double round (double x);
extern void sincos (double x, double *pSinResult, double *pCosResult);
extern double trunc (double x);
extern float cbrtf (float x);
extern float hypotf (float x, float y);
extern float infinityf (void);
extern int irintf (float x);
extern int iroundf (float x);
extern float log2f (float x);
extern float roundf (float x);
extern void sincosf (float x, float *pSinResult, float *pCosResult);
extern float truncf (float x);
/* VxWorks math library calls */
extern void floatInit (void);
extern void mathHardInit (void);
extern void mathSoftInit (void);
extern void gccMathInit (void);
extern void gccUssInit (void);
extern void gccUss040Init (void);
extern unsigned __fixunssfsi (long a);
/* C99 additions */
extern float ldexpf(float y, int x);
extern long double ldexpl(long double y, int x);
#else /* !__STDC__ */
/* ANSI-compatible functions */
extern double acos ();
extern double asin ();
extern double atan ();
extern double atan2 ();
extern double ceil ();
extern double cos ();
extern double cosh ();
extern double exp ();
extern double fabs ();
extern double floor ();
extern double fmod ();
extern double frexp ();
extern double ldexp ();
extern double log ();
extern double log10 ();
extern double modf ();
extern double pow ();
extern double sin ();
extern double sinh ();
extern double sqrt ();
extern double tan ();
extern double tanh ();
/* Single-precision versions of ANSI functions *
* Not available on all VxWorks architectures. */
extern float acosf ();
extern float asinf ();
extern float atanf ();
extern float atan2f ();
extern float ceilf ();
extern float cosf ();
extern float coshf ();
extern float expf ();
extern float fabsf ();
extern float floorf ();
extern float fmodf ();
extern float logf ();
extern float log10f ();
extern float powf ();
extern float sinf ();
extern float sinhf ();
extern float sqrtf ();
extern float tanf ();
extern float tanhf ();
/* Miscellaneous math functions *
* Not available on all VxWorks architectures. */
extern double cbrt ();
extern double hypot ();
extern double infinity ();
extern int irint ();
extern int iround ();
extern double log2 ();
extern double rint ();
extern double round ();
extern void sincos ();
extern double trunc ();
extern float cbrtf ();
extern float hypotf ();
extern float infinityf ();
extern int irintf ();
extern int iroundf ();
extern float log2f ();
extern float roundf ();
extern void sincosf ();
extern float truncf ();
/* VxWorks math library calls */
extern void floatInit ();
extern void mathHardInit ();
extern void mathSoftInit ();
extern void gccMathInit ();
extern void gccUssInit ();
extern void gccUss040Init ();
extern unsigned __fixunssfsi();
/* C99 additions */
extern float ldexpf();
extern long double ldexpl();
#endif /* __STDC__ */
#ifdef __cplusplus
}
#endif
#endif /* __INCmathh */