#include "Math.hpp"
namespace yasim {
+float Math::clamp(float val, float min, float max)
+{
+ if(val < min) return min;
+ if(val > max) return max;
+ return val;
+}
+
float Math::abs(float f)
{
- return ::fabs(f);
+ return (float)::fabs(f);
}
float Math::sqrt(float f)
{
- return ::sqrt(f);
+ return (float)::sqrt(f);
}
-float Math::pow(float base, float exp)
+float Math::ceil(float f)
{
- return ::pow(base, exp);
+ return (float)::ceil(f);
}
-float Math::ceil(float f)
+float Math::acos(float f)
{
- return ::ceil(f);
+ return (float)::acos(f);
+}
+
+float Math::asin(float f)
+{
+ return (float)::asin(f);
}
float Math::cos(float f)
{
- return ::cos(f);
+ return (float)::cos(f);
}
float Math::sin(float f)
{
- return ::sin(f);
+ return (float)::sin(f);
}
float Math::tan(float f)
{
- return ::tan(f);
+ return (float)::tan(f);
+}
+
+float Math::atan(float f)
+{
+ return (float)::atan(f);
}
float Math::atan2(float y, float x)
{
- return ::atan2(y, x);
+ return (float)::atan2(y, x);
+}
+
+double Math::floor(double x)
+{
+ return ::floor(x);
}
double Math::abs(double f)
return ::sqrt(f);
}
-double Math::pow(double base, double exp)
+float Math::pow(double base, double exp)
{
- return ::pow(base, exp);
+ return (float)::pow(base, exp);
}
double Math::ceil(double f)
return sqrt(dot3(v, v));
}
-
void Math::unit3(float* v, float* out)
{
float imag = 1/mag3(v);
tmp[5] = a[3]*b[2] + a[4]*b[5] + a[5]*b[8];
tmp[8] = a[6]*b[2] + a[7]*b[5] + a[8]*b[8];
- for(int i=0; i<9; i++)
+ int i;
+ for(i=0; i<9; i++)
out[i] = tmp[i];
}