Browse Source

mathlib: replace math::{min,max,constrain} with template methods

sbg
Beat Küng 9 years ago committed by Lorenz Meier
parent
commit
dae12f1238
  1. 76
      src/lib/mathlib/math/Limits.cpp
  2. 46
      src/lib/mathlib/math/Limits.hpp

76
src/lib/mathlib/math/Limits.cpp

@ -51,82 +51,6 @@ namespace math @@ -51,82 +51,6 @@ namespace math
#define M_PI_F 3.14159265358979323846f
#endif
float __EXPORT min(float val1, float val2)
{
return (val1 < val2) ? val1 : val2;
}
int __EXPORT min(int val1, int val2)
{
return (val1 < val2) ? val1 : val2;
}
unsigned __EXPORT min(unsigned val1, unsigned val2)
{
return (val1 < val2) ? val1 : val2;
}
uint64_t __EXPORT min(uint64_t val1, uint64_t val2)
{
return (val1 < val2) ? val1 : val2;
}
double __EXPORT min(double val1, double val2)
{
return (val1 < val2) ? val1 : val2;
}
float __EXPORT max(float val1, float val2)
{
return (val1 > val2) ? val1 : val2;
}
int __EXPORT max(int val1, int val2)
{
return (val1 > val2) ? val1 : val2;
}
unsigned __EXPORT max(unsigned val1, unsigned val2)
{
return (val1 > val2) ? val1 : val2;
}
uint64_t __EXPORT max(uint64_t val1, uint64_t val2)
{
return (val1 > val2) ? val1 : val2;
}
double __EXPORT max(double val1, double val2)
{
return (val1 > val2) ? val1 : val2;
}
float __EXPORT constrain(float val, float min, float max)
{
return (val < min) ? min : ((val > max) ? max : val);
}
int __EXPORT constrain(int val, int min, int max)
{
return (val < min) ? min : ((val > max) ? max : val);
}
unsigned __EXPORT constrain(unsigned val, unsigned min, unsigned max)
{
return (val < min) ? min : ((val > max) ? max : val);
}
uint64_t __EXPORT constrain(uint64_t val, uint64_t min, uint64_t max)
{
return (val < min) ? min : ((val > max) ? max : val);
}
double __EXPORT constrain(double val, double min, double max)
{
return (val < min) ? min : ((val > max) ? max : val);
}
float __EXPORT radians(float degrees)
{
return (degrees / 180.0f) * M_PI_F;

46
src/lib/mathlib/math/Limits.hpp

@ -50,40 +50,28 @@ @@ -50,40 +50,28 @@
# define UINT64_C(c) c ## ULL
# endif
#endif
namespace math
{
float __EXPORT min(float val1, float val2);
int __EXPORT min(int val1, int val2);
unsigned __EXPORT min(unsigned val1, unsigned val2);
uint64_t __EXPORT min(uint64_t val1, uint64_t val2);
double __EXPORT min(double val1, double val2);
float __EXPORT max(float val1, float val2);
int __EXPORT max(int val1, int val2);
unsigned __EXPORT max(unsigned val1, unsigned val2);
uint64_t __EXPORT max(uint64_t val1, uint64_t val2);
double __EXPORT max(double val1, double val2);
float __EXPORT constrain(float val, float min, float max);
int __EXPORT constrain(int val, int min, int max);
namespace math
{
unsigned __EXPORT constrain(unsigned val, unsigned min, unsigned max);
template<typename _Tp>
inline const _Tp &min(const _Tp &a, const _Tp &b)
{
return (a < b) ? a : b;
}
uint64_t __EXPORT constrain(uint64_t val, uint64_t min, uint64_t max);
template<typename _Tp>
inline const _Tp &max(const _Tp &a, const _Tp &b)
{
return (a > b) ? a : b;
}
double __EXPORT constrain(double val, double min, double max);
template<typename _Tp>
inline const _Tp &constrain(const _Tp &val, const _Tp &min_val, const _Tp &max_val)
{
return (val < min_val) ? min_val : ((val > max_val) ? max_val : val);
}
float __EXPORT radians(float degrees);

Loading…
Cancel
Save