Improved limits handling

This commit is contained in:
Lorenz Meier 2013-07-05 11:43:16 +02:00
parent 05d6815401
commit 2cfe9ee1b4
2 changed files with 23 additions and 0 deletions

View File

@ -39,6 +39,7 @@
#include <math.h>
#include <stdint.h>
#include "Limits.hpp"
@ -61,6 +62,11 @@ 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;
@ -81,6 +87,11 @@ 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;
@ -102,6 +113,11 @@ 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);

View File

@ -40,6 +40,7 @@
#pragma once
#include <nuttx/config.h>
#include <stdint.h>
namespace math {
@ -50,6 +51,8 @@ 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);
@ -58,6 +61,8 @@ 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);
@ -67,6 +72,8 @@ 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);
float __EXPORT radians(float degrees);