20 std::mt19937_64&
Get();
23 std::mt19937_64 mSystemRandom;
44 std::uniform_int_distribution<int_t> range;
50 std::uniform_real_distribution<float_t> range;
57 return static_cast<T
>(3.1415926535897932384626433832795028841971693993751);
63 return degree * (Pi<T>() /
static_cast<T
>(180.0));
69 return radian * (
static_cast<T
>(180.0) / Pi<T>());
75 const T div2 = div *
static_cast<T
>(2);
76 return x -
static_cast<intptr_t
>(((x >= 0) ? (x + div) : (x - div)) / div2) * div2;
82 return (value + alignment - 1) / alignment;
86 T
AlignUp(
const T value,
const T alignment)
88 return Alignment(value, alignment) * alignment;
std::mt19937_64 & Get()
Definition: Math.h:32
static SystemRandom & GetInstance()
Definition: Math.h:26
Definition: CodeBuffer.cpp:12
void srand(const int_t seed)
Definition: Math.h:37
constexpr T Pi()
Definition: Math.h:55
constexpr T ToRadian(T degree)
Definition: Math.h:61
T AngleMod(const T x, const T div)
Definition: Math.h:73
float_t frand()
Definition: Math.h:48
std::int32_t int_t
Definition: Type.h:29
int_t irand()
Definition: Math.h:42
constexpr T ToDegree(T radian)
Definition: Math.h:67
T Alignment(const T value, const T alignment)
Definition: Math.h:80
float float_t
Definition: Type.h:28
T AlignUp(const T value, const T alignment)
Definition: Math.h:86
Definition: Noncopyable.h:18