1#ifndef SEAD_MATHCALCCOMMON_H_
2#define SEAD_MATHCALCCOMMON_H_
4#include <basis/seadTypes.h>
45 static constexpr T
piHalf() {
return std::numbers::pi_v<T> / T(2); }
46 static constexpr T
pi() {
return std::numbers::pi_v<T>; }
47 static constexpr T
pi2() {
return std::numbers::pi_v<T> * T(2); }
48 static constexpr T
zero() {
return 0; }
49 static constexpr T
one() {
return 1; }
50 static constexpr T
ln2() {
return std::numbers::ln2_v<T>; }
51 static constexpr T
ln2Inv() {
return std::numbers::log2e_v<T>; }
53 static constexpr T
neg(T t)
58 static constexpr T
inv(T t)
63 static constexpr T
sign(T t)
81 static constexpr T
sqrt(T t);
84 static constexpr T
pow(T x, T y);
87 static constexpr T
sin(T t);
88 static constexpr T
cos(T t);
89 static constexpr T
tan(T t);
91 static constexpr T
asin(T s);
92 static constexpr T
acos(T c);
93 static constexpr T
atan(T t);
94 static constexpr T
atan2(T y, T x);
107 static constexpr T
exp(T t);
108 static constexpr T
log(T t);
123 return abs(a - b
) <= eps;
126 static constexpr T
abs(T x)
132 static constexpr T
max(T a, T b)
138 static constexpr T
min(T a, T b)
144 static constexpr T
max3(T a, T b, T c)
149 static constexpr T
min3(T a, T b, T c)
156 return a * (
pi() / 180.0f);
161 return a * (180.0f /
pi());
166 return (s32)(a * cHalfRoundIdx / 180.0f);
171 return (s32)(a * cHalfRoundIdx / pi());
176 return static_cast<
float>(
static_cast<s32>(a)) * 180.0f / cHalfRoundIdx;
181 return (s32)a * pi() / cHalfRoundIdx;
196 static T
constexpr roundUpN(T val, s32 multNumber);
203 static T
constexpr clamp2(T min_, T val, T max_);
219 static constexpr T
lerp(T a, T b, f32 ratio)
221 return a + (b - a) * ratio;
271#include <math/seadMathCalcCommon.hpp>
Definition seadMathCalcCommon.h:12
static constexpr T maxNumber()
Definition seadMathCalcCommon.hpp:307
static T constexpr clampMax(T val, T max_)
Definition seadMathCalcCommon.hpp:495
static constexpr T atan2(T y, T x)
Definition seadMathCalcCommon.hpp:98
static constexpr T sign(T t)
Definition seadMathCalcCommon.h:63
static constexpr T acos(T c)
Definition seadMathCalcCommon.hpp:84
static constexpr T log2(T t)
Definition seadMathCalcCommon.hpp:286
static constexpr T minNumber()
Definition seadMathCalcCommon.hpp:300
static constexpr T pow(T x, T y)
Definition seadMathCalcCommon.hpp:49
static constexpr u32 rad2idx(T a)
Definition seadMathCalcCommon.h:169
static constexpr T deg2rad(T a)
Definition seadMathCalcCommon.h:154
static constexpr T one()
Definition seadMathCalcCommon.h:49
static constexpr T max3(T a, T b, T c)
Definition seadMathCalcCommon.h:144
static constexpr T idx2rad(u32 a)
Definition seadMathCalcCommon.h:179
static u32 atan2Idx(T y, T x)
static constexpr T sin(T t)
Definition seadMathCalcCommon.hpp:56
static bool isInfinity(T)
static constexpr T atan(T t)
Definition seadMathCalcCommon.hpp:91
static constexpr T log10(T t)
Definition seadMathCalcCommon.hpp:293
static T getRandRange(T, T)
static const ExpSample cExpTbl[32+1]
Definition seadMathCalcCommon.h:233
static constexpr T min(T a, T b)
Definition seadMathCalcCommon.h:138
static constexpr T pi2()
Definition seadMathCalcCommon.h:47
static void assertGreaterThanOrEqualToZero_(T)
static bool chase(T *, T, T)
static bool isIntersect1d(T, T, T, T)
static constexpr u32 cHalfRoundIdx
Definition seadMathCalcCommon.h:15
static constexpr T lerp(T a, T b, f32 ratio)
Definition seadMathCalcCommon.h:219
static constexpr T piHalf()
Definition seadMathCalcCommon.h:45
static bool chaseAngle(T *, T, T)
static const LogSample cLogTbl[256+1]
Definition seadMathCalcCommon.h:234
static constexpr T asin(T s)
Definition seadMathCalcCommon.hpp:77
static constexpr T square(T t)
Definition seadMathCalcCommon.h:75
static void sinCosIdx(T *p_sin, T *p_cos, u32 idx)
static constexpr T neg(T t)
Definition seadMathCalcCommon.h:53
static bool chaseAngleIdx(u32 *, u32, T)
static constexpr T sqrt(T t)
Definition seadMathCalcCommon.hpp:17
static constexpr bool equalsEpsilon(T a, T b, T eps=epsilon())
Definition seadMathCalcCommon.h:121
static constexpr T pi()
Definition seadMathCalcCommon.h:46
static T constexpr clampMin(T val, T min_)
Definition seadMathCalcCommon.hpp:504
static T constexpr roundDownN(T val, s32 multNumber)
static constexpr s32 roundOff(T val)
Definition seadMathCalcCommon.hpp:416
static constexpr T cos(T t)
Definition seadMathCalcCommon.hpp:63
static constexpr T fitSign(T x, T y)
Definition seadMathCalcCommon.h:69
static constexpr T log(T t)
Definition seadMathCalcCommon.hpp:279
static constexpr T ln2()
Definition seadMathCalcCommon.h:50
static constexpr u32 cQuarterRoundIdx
Definition seadMathCalcCommon.h:14
static T constexpr roundDownPow2(T val, s32 base)
static T constexpr roundUpPow2(T val, s32 base)
static const AtanSample cAtanTbl[128+1]
Definition seadMathCalcCommon.h:232
static bool isMultiplePow2(T, T)
static constexpr T ln2Inv()
Definition seadMathCalcCommon.h:51
static constexpr T epsilon()
Definition seadMathCalcCommon.hpp:377
static constexpr T rsqrt(T t)
Definition seadMathCalcCommon.hpp:24
static constexpr s32 floor(T val)
Definition seadMathCalcCommon.hpp:437
static constexpr T abs(T x)
Definition seadMathCalcCommon.h:126
static constexpr T infinity()
Definition seadMathCalcCommon.hpp:356
static constexpr T min3(T a, T b, T c)
Definition seadMathCalcCommon.h:149
static constexpr T tan(T t)
Definition seadMathCalcCommon.hpp:70
static T constexpr clamp2(T min_, T val, T max_)
Definition seadMathCalcCommon.hpp:513
static const SinCosSample cSinCosTbl[256+1]
Definition seadMathCalcCommon.h:231
static constexpr u32 deg2idx(T a)
Definition seadMathCalcCommon.h:164
static constexpr T zero()
Definition seadMathCalcCommon.h:48
static constexpr T exp(T t)
Definition seadMathCalcCommon.hpp:272
static constexpr T idx2deg(u32 a)
Definition seadMathCalcCommon.h:174
static constexpr T inv(T t)
Definition seadMathCalcCommon.h:58
static constexpr T max(T a, T b)
Definition seadMathCalcCommon.h:132
static T constexpr roundUpN(T val, s32 multNumber)
static constexpr T rad2deg(T a)
Definition seadMathCalcCommon.h:159
static constexpr s32 ceil(T val)
Definition seadMathCalcCommon.hpp:458
Definition seadAssert.h:44
MathCalcCommon< u32 > Mathu
Definition seadMathCalcCommon.h:266
MathCalcCommon< s32 > Mathi
Definition seadMathCalcCommon.h:265
MathCalcCommon< f32 > Mathf
Definition seadMathCalcCommon.h:267
Definition seadMathCalcCommon.h:27
T atan_delta
Definition seadMathCalcCommon.h:29
u32 atan_val
Definition seadMathCalcCommon.h:28
Definition seadMathCalcCommon.h:33
T exp_val
Definition seadMathCalcCommon.h:34
T exp_delta
Definition seadMathCalcCommon.h:35
Definition seadMathCalcCommon.h:39
T log_val
Definition seadMathCalcCommon.h:40
T log_delta
Definition seadMathCalcCommon.h:41
Definition seadMathCalcCommon.h:19
T sin_delta
Definition seadMathCalcCommon.h:21
T cos_delta
Definition seadMathCalcCommon.h:23
T sin_val
Definition seadMathCalcCommon.h:20
T cos_val
Definition seadMathCalcCommon.h:22