27#ifndef CORE_SAFEMATH_H
28#define CORE_SAFEMATH_H
32#define SAFE_MATH_ZERO_TOLERANCE 1e-15
33#define SAFE_MATH_FLOAT_TOLERANCE 1e-6
42 int16
safeDivide(
float a,
float b,
float &result);
43 int16
safeDivide(
double a,
double b,
double &result);
44 int16
safeDivide(int32 a, int32 b, int32 &result);
45 int16
safeDivide(uint64 a, uint64 b, uint64 &result);
51 int16
safeSqrt(
float input,
float &result);
52 int16
safeSqrt(
double input,
double &result);
59 int16
safeNroot(
float input, int32 rt,
float &result);
60 int16
safeNroot(
double input, int32 rt,
double &result);
66 int16
safeAcos(
float input,
float &result);
67 int16
safeAcos(
double input,
double &result);
73 int16
safeAsin(
float input,
float &result);
74 int16
safeAsin(
double input,
double &result);
80 int16
safeTan(
float input,
float &result);
81 int16
safeTan(
double input,
double &result);
88 bool floatEquals(floating_point a, floating_point b,
94 int16
sgn(floating_point val);
Definition CircularBuffer.hpp:28
bool floatEquals(floating_point a, floating_point b, floating_point tolerance)
Compares if two floats are equal within a certain range.
Definition safemath.cpp:155
int16 safeAsin(float input, float &result)
Overloaded functions to perform save sine inverse.
Definition safemath.cpp:126
int16 safeAcos(float input, float &result)
Overloaded functions to perform save cosine inverse.
Definition safemath.cpp:111
int16 safeNroot(float input, int32 rt, float &result)
Overloaded functions to perform safe n root.
Definition safemath.cpp:74
int16 safeTan(float input, float &result)
Overloaded functions to perform safe tangent.
Definition safemath.cpp:141
int16 safeSqrt(float input, float &result)
Overloaded functions to perform safe square root.
Definition safemath.cpp:57
int16 safeDivide(float a, float b, float &result)
Overloaded functions to perform safe division.
Definition safemath.cpp:24
int16 sgn(floating_point val)
Return the sign of the value.
Definition safemath.cpp:164
#define SAFE_MATH_FLOAT_TOLERANCE
Definition safemath.h:33