|
|
@ -6,11 +6,18 @@ |
|
|
|
|
|
|
|
|
#include "common/common.h" |
|
|
#include "common/common.h" |
|
|
|
|
|
|
|
|
|
|
|
#include <algorithm> |
|
|
#include <vector> |
|
|
#include <vector> |
|
|
|
|
|
|
|
|
namespace MathUtil |
|
|
namespace MathUtil |
|
|
{ |
|
|
{ |
|
|
|
|
|
|
|
|
|
|
|
template<typename T> |
|
|
|
|
|
inline T Clamp(const T val, const T& min, const T& max) |
|
|
|
|
|
{ |
|
|
|
|
|
return std::max(min, std::min(max, val)); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
static const u64 DOUBLE_SIGN = 0x8000000000000000ULL, |
|
|
static const u64 DOUBLE_SIGN = 0x8000000000000000ULL, |
|
|
DOUBLE_EXP = 0x7FF0000000000000ULL, |
|
|
DOUBLE_EXP = 0x7FF0000000000000ULL, |
|
|
DOUBLE_FRAC = 0x000FFFFFFFFFFFFFULL, |
|
|
DOUBLE_FRAC = 0x000FFFFFFFFFFFFFULL, |
|
|
|