mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-06-07 17:35:22 +08:00
mathlib: replace math::{min,max,constrain} with template methods
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -50,40 +50,28 @@
|
||||
# define UINT64_C(c) c ## ULL
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
||||
namespace math
|
||||
{
|
||||
|
||||
template<typename _Tp>
|
||||
inline const _Tp &min(const _Tp &a, const _Tp &b)
|
||||
{
|
||||
return (a < b) ? a : b;
|
||||
}
|
||||
|
||||
float __EXPORT min(float val1, float val2);
|
||||
template<typename _Tp>
|
||||
inline const _Tp &max(const _Tp &a, const _Tp &b)
|
||||
{
|
||||
return (a > b) ? a : b;
|
||||
}
|
||||
|
||||
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);
|
||||
|
||||
unsigned __EXPORT constrain(unsigned val, unsigned min, unsigned max);
|
||||
|
||||
uint64_t __EXPORT constrain(uint64_t val, uint64_t min, uint64_t max);
|
||||
|
||||
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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user