project_files/hwc/rtl/pmath.h
author Wuzzy <Wuzzy2@mail.ru>
Thu, 25 Apr 2019 23:01:05 +0200
changeset 14844 e239378a9400
parent 14202 3e551b0535fb
permissions -rw-r--r--
Prevent entering “/”, “\” and “:” in team and scheme names. The name of teams and schems is saved in the file name itself, so these characters would cause trouble as they are used in path names in Linux and Windows.

#ifndef PMATH_H_
#define PMATH_H_

#include <stdint.h>
#include <math.h>

#define     fpcrtl_min(a, b)                ((a) < (b) ? (a) : (b))
#define     fpcrtl_max(a, b)                ((a) > (b) ? (a) : (b))

#define     fpcrtl_power(a, b)              pow(a, b)

/* Currently the games only uses sign of an integer */
int         fpcrtl_signi(int x);

float       fpcrtl_csc(float x);

#define     fpcrtl_arctan2(y, x)            atan2(y, x)

float       __attribute__((overloadable))   fpcrtl_abs(float x);
double      __attribute__((overloadable))   fpcrtl_abs(double x);
long double __attribute__((overloadable))   fpcrtl_abs(long double x);
int         __attribute__((overloadable))   fpcrtl_abs(int x);
int64_t     __attribute__((overloadable))   fpcrtl_abs(int64_t x);

/* emscripten cannot find math.h through our cmake */
#ifdef EMSCRIPTEN
double      exp(double);
double      log(double);
double      sin(double);
double      cos(double);
double      fabs(double);
float       fabsf(float);
long double fabsl(long double);
double      ceil(double);
double      sqrt(double);
double      atan(double);
double      atan2(double, double);
#endif

#endif /* PMATH_H_ */