Files
Upsilon/liba/include/math.h
Émilie Feral e13919cca7 [poincare] Use OpenBSD function for cosh, sinh, tanh and arccosh,
arcsinh and arctanh

Change-Id: I64f6718ebdd042512ce9b9db78dffa3c943471ff
2017-03-16 17:35:36 +01:00

55 lines
1.3 KiB
C

#ifndef LIBA_MATH_H
#define LIBA_MATH_H
#include "private/macros.h"
LIBA_BEGIN_DECLS
#define NAN (0.0f/0.0f)
#define INFINITY __builtin_inff()
#define M_E 2.71828182845904523536028747135266250f
#define M_PI 3.14159265358979323846264338327950288f
/* The C99 standard requires isinf and isnan to be defined as macros that can
* handle arbitrary precision float numbers. The names of the functions called
* by those macros (depending on the argument size) are not standardized though.
* We're chosing isinff/isnanf for single-precision functions (which is the only
* case we're actually handling). */
int isinff(float x);
#define isinf(x) isinff(x)
int isnanf(float x);
#define isnan(x) isnanf(x)
float acosf(float x);
float acoshf(float x);
float asinf(float x);
float asinhf(float x);
float atanf(float x);
float atanhf(float x);
float ceilf(float x);
float copysignf(float x, float y);
float cosf(float x);
float coshf(float x);
float expf(float x);
float expm1f(float x);
float fabsf(float x);
float floorf(float x);
float lgammaf(float x);
float lgammaf_r(float x, int *signgamp);
float log1pf(float x);
float log10f(float x);
float logf(float x);
float powf(float x, float y);
float roundf(float x);
float scalbnf(float x, int n);
float sinf(float x);
float sinhf(float x);
float sqrtf(float x);
float tanf(float x);
float tanhf(float x);
LIBA_END_DECLS
#endif