sead
Loading...
Searching...
No Matches
sead::MathCalcCommon< T > Class Template Reference

#include <seadMathCalcCommon.h>

Classes

struct  AtanSample
struct  ExpSample
struct  LogSample
struct  SinCosSample

Public Member Functions

s32 gcd (s32 m, s32 n)
s32 lcm (s32 m, s32 n)
f32 expTable (f32 x)
f32 logTable (f32 x)
constexpr f32 sqrt (f32 t)
constexpr f32 rsqrt (f32 t)
f32 sinIdx (u32 idx)
f32 cosIdx (u32 idx)
f32 tanIdx (u32 idx)
u32 asinIdx (f32 s)
u32 acosIdx (f32 c)
u32 atanIdx (f32 t)
u32 atan2Idx (f32 y, f32 x)
void sinCosIdx (f32 *p_sin, f32 *p_cos, u32 idx)
constexpr float minNumber ()
constexpr float maxNumber ()
constexpr double minNumber ()
constexpr double maxNumber ()
constexpr long double minNumber ()
constexpr long double maxNumber ()
constexpr f32 nan ()
constexpr f64 nan ()
constexpr s32 abs (s32 t)
constexpr u32 abs (u32 t)
constexpr f32 abs (f32 t)
constexpr f64 abs (f64 t)
constexpr s32 roundOff (s32 val)
constexpr s32 floor (s32 val)
constexpr s32 ceil (s32 val)
constexpr s32 roundUpPow2 (s32 val, s32 base)
constexpr u32 roundUpPow2 (u32 val, s32 base)
const MathCalcCommon< f32 >::SinCosSample cSinCosTbl [256+1]
const MathCalcCommon< f32 >::AtanSample cAtanTbl [128+1]

Static Public Member Functions

static constexpr T piHalf ()
static constexpr T pi ()
static constexpr T pi2 ()
static constexpr T zero ()
static constexpr T one ()
static constexpr T ln2 ()
static constexpr T ln2Inv ()
static constexpr T neg (T t)
static constexpr T inv (T t)
static constexpr T sign (T t)
static constexpr T fitSign (T x, T y)
static constexpr T square (T t)
static constexpr T sqrt (T t)
static constexpr T rsqrt (T t)
static constexpr T pow (T x, T y)
static T powTable (T, T)
static constexpr T sin (T t)
static constexpr T cos (T t)
static constexpr T tan (T t)
static constexpr T asin (T s)
static constexpr T acos (T c)
static constexpr T atan (T t)
static constexpr T atan2 (T y, T x)
static T sinIdx (u32 idx)
static T cosIdx (u32 idx)
static T tanIdx (u32 idx)
static u32 asinIdx (T s)
static u32 acosIdx (T c)
static u32 atanIdx (T t)
static u32 atan2Idx (T y, T x)
static void sinCosIdx (T *p_sin, T *p_cos, u32 idx)
static constexpr T exp (T t)
static constexpr T log (T t)
static constexpr T log2 (T t)
static constexpr T log10 (T t)
static T expTable (T x)
static T logTable (T x)
static constexpr T minNumber ()
static constexpr T maxNumber ()
static constexpr T infinity ()
static constexpr T nan ()
static constexpr T epsilon ()
static constexpr bool equalsEpsilon (T a, T b, T eps=epsilon())
static constexpr T abs (T x)
static constexpr T max (T a, T b)
static constexpr T min (T a, T b)
static constexpr T max3 (T a, T b, T c)
static constexpr T min3 (T a, T b, T c)
static constexpr T deg2rad (T a)
static constexpr T rad2deg (T a)
static constexpr u32 deg2idx (T a)
static constexpr u32 rad2idx (T a)
static constexpr T idx2deg (u32 a)
static constexpr T idx2rad (u32 a)
static T roundAngle (T)
static T angleDist (T, T)
static T random ()
static T getRand (T)
static T getRandRange (T, T)
static T getRandSign ()
static constexpr s32 roundOff (T val)
static constexpr s32 floor (T val)
static constexpr s32 ceil (T val)
static T constexpr roundUpN (T val, s32 multNumber)
static T constexpr roundUpPow2 (T val, s32 base)
static T constexpr roundDownN (T val, s32 multNumber)
static T constexpr roundDownPow2 (T val, s32 base)
static T constexpr clampMax (T val, T max_)
static T constexpr clampMin (T val, T min_)
static T constexpr clamp2 (T min_, T val, T max_)
static T gcd (T m, T n)
static T lcm (T m, T n)
static bool isZero (T, T)
static bool isNan (T)
static bool isPow2 (T)
static bool isMultiplePow2 (T, T)
static bool isInfinity (T)
static bool isIntersect1d (T, T, T, T)
static bool chase (T *, T, T)
static bool chaseAngle (T *, T, T)
static bool chaseAngleIdx (u32 *, u32, T)
static constexpr T lerp (T a, T b, f32 ratio)

Static Public Attributes

static constexpr u32 cQuarterRoundIdx = 0x40000000
static constexpr u32 cHalfRoundIdx = 0x80000000
static const SinCosSample cSinCosTbl [256+1]
static const AtanSample cAtanTbl [128+1]
static const ExpSample cExpTbl [32+1]
static const LogSample cLogTbl [256+1]

Protected Member Functions

u32 atanIdx_ (f32 t)
u32 atanIdx_ (f32 t)

Static Protected Member Functions

static u32 atanIdx_ (T t)
static T expLn2_ (T x)
static T log1_2_ (T x)
static void assertGreaterThanOrEqualToZero_ (T)

Member Function Documentation

◆ piHalf()

template<typename T>
constexpr T sead::MathCalcCommon< T >::piHalf ( )
inlinestaticconstexpr

◆ pi()

template<typename T>
constexpr T sead::MathCalcCommon< T >::pi ( )
inlinestaticconstexpr

◆ pi2()

template<typename T>
constexpr T sead::MathCalcCommon< T >::pi2 ( )
inlinestaticconstexpr

◆ zero()

template<typename T>
constexpr T sead::MathCalcCommon< T >::zero ( )
inlinestaticconstexpr

◆ one()

template<typename T>
constexpr T sead::MathCalcCommon< T >::one ( )
inlinestaticconstexpr

◆ ln2()

template<typename T>
constexpr T sead::MathCalcCommon< T >::ln2 ( )
inlinestaticconstexpr

◆ ln2Inv()

template<typename T>
constexpr T sead::MathCalcCommon< T >::ln2Inv ( )
inlinestaticconstexpr

◆ neg()

template<typename T>
constexpr T sead::MathCalcCommon< T >::neg ( T t)
inlinestaticconstexpr

◆ inv()

template<typename T>
constexpr T sead::MathCalcCommon< T >::inv ( T t)
inlinestaticconstexpr

◆ sign()

template<typename T>
constexpr T sead::MathCalcCommon< T >::sign ( T t)
inlinestaticconstexpr

◆ fitSign()

template<typename T>
constexpr T sead::MathCalcCommon< T >::fitSign ( T x,
T y )
inlinestaticconstexpr

◆ square()

template<typename T>
constexpr T sead::MathCalcCommon< T >::square ( T t)
inlinestaticconstexpr

◆ sqrt() [1/2]

template<typename T>
T sead::MathCalcCommon< T >::sqrt ( T t)
inlinestaticconstexpr

◆ rsqrt() [1/2]

template<typename T>
T sead::MathCalcCommon< T >::rsqrt ( T t)
inlinestaticconstexpr

◆ pow()

template<typename T>
T sead::MathCalcCommon< T >::pow ( T x,
T y )
inlinestaticconstexpr

◆ powTable()

template<typename T>
T sead::MathCalcCommon< T >::powTable ( T ,
T  )
static

◆ sin()

template<typename T>
T sead::MathCalcCommon< T >::sin ( T t)
inlinestaticconstexpr

◆ cos()

template<typename T>
T sead::MathCalcCommon< T >::cos ( T t)
inlinestaticconstexpr

◆ tan()

template<typename T>
T sead::MathCalcCommon< T >::tan ( T t)
inlinestaticconstexpr

◆ asin()

template<typename T>
T sead::MathCalcCommon< T >::asin ( T s)
inlinestaticconstexpr

◆ acos()

template<typename T>
T sead::MathCalcCommon< T >::acos ( T c)
inlinestaticconstexpr

◆ atan()

template<typename T>
T sead::MathCalcCommon< T >::atan ( T t)
inlinestaticconstexpr

◆ atan2()

template<typename T>
T sead::MathCalcCommon< T >::atan2 ( T y,
T x )
inlinestaticconstexpr

◆ sinIdx() [1/2]

template<typename T>
T sead::MathCalcCommon< T >::sinIdx ( u32 idx)
static

◆ cosIdx() [1/2]

template<typename T>
T sead::MathCalcCommon< T >::cosIdx ( u32 idx)
static

◆ tanIdx() [1/2]

template<typename T>
T sead::MathCalcCommon< T >::tanIdx ( u32 idx)
static

◆ asinIdx() [1/2]

template<typename T>
u32 sead::MathCalcCommon< T >::asinIdx ( T s)
static

◆ acosIdx() [1/2]

template<typename T>
u32 sead::MathCalcCommon< T >::acosIdx ( T c)
static

◆ atanIdx() [1/2]

template<typename T>
u32 sead::MathCalcCommon< T >::atanIdx ( T t)
static

◆ atan2Idx() [1/2]

template<typename T>
u32 sead::MathCalcCommon< T >::atan2Idx ( T y,
T x )
static

◆ sinCosIdx() [1/2]

template<typename T>
void sead::MathCalcCommon< T >::sinCosIdx ( T * p_sin,
T * p_cos,
u32 idx )
static

◆ exp()

template<typename T>
T sead::MathCalcCommon< T >::exp ( T t)
inlinestaticconstexpr

◆ log()

template<typename T>
T sead::MathCalcCommon< T >::log ( T t)
inlinestaticconstexpr

◆ log2()

template<typename T>
T sead::MathCalcCommon< T >::log2 ( T t)
inlinestaticconstexpr

◆ log10()

template<typename T>
T sead::MathCalcCommon< T >::log10 ( T t)
inlinestaticconstexpr

◆ expTable() [1/2]

template<typename T>
T sead::MathCalcCommon< T >::expTable ( T x)
static

◆ logTable() [1/2]

template<typename T>
T sead::MathCalcCommon< T >::logTable ( T x)
static

◆ minNumber() [1/4]

template<typename T>
T sead::MathCalcCommon< T >::minNumber ( )
inlinestaticconstexpr

◆ maxNumber() [1/4]

template<typename T>
T sead::MathCalcCommon< T >::maxNumber ( )
inlinestaticconstexpr

◆ infinity()

template<typename T>
T sead::MathCalcCommon< T >::infinity ( )
inlinestaticconstexpr

◆ nan() [1/3]

template<typename T>
constexpr T sead::MathCalcCommon< T >::nan ( )
staticconstexpr

◆ epsilon()

template<typename T>
T sead::MathCalcCommon< T >::epsilon ( )
inlinestaticconstexpr

◆ equalsEpsilon()

template<typename T>
constexpr bool sead::MathCalcCommon< T >::equalsEpsilon ( T a,
T b,
T eps = epsilon() )
inlinestaticconstexpr

◆ abs() [1/5]

template<typename T>
constexpr T sead::MathCalcCommon< T >::abs ( T x)
inlinestaticconstexpr

◆ max()

template<typename T>
constexpr T sead::MathCalcCommon< T >::max ( T a,
T b )
inlinestaticconstexpr

◆ min()

template<typename T>
constexpr T sead::MathCalcCommon< T >::min ( T a,
T b )
inlinestaticconstexpr

◆ max3()

template<typename T>
constexpr T sead::MathCalcCommon< T >::max3 ( T a,
T b,
T c )
inlinestaticconstexpr

◆ min3()

template<typename T>
constexpr T sead::MathCalcCommon< T >::min3 ( T a,
T b,
T c )
inlinestaticconstexpr

◆ deg2rad()

template<typename T>
constexpr T sead::MathCalcCommon< T >::deg2rad ( T a)
inlinestaticconstexpr

◆ rad2deg()

template<typename T>
constexpr T sead::MathCalcCommon< T >::rad2deg ( T a)
inlinestaticconstexpr

◆ deg2idx()

template<typename T>
constexpr u32 sead::MathCalcCommon< T >::deg2idx ( T a)
inlinestaticconstexpr

◆ rad2idx()

template<typename T>
constexpr u32 sead::MathCalcCommon< T >::rad2idx ( T a)
inlinestaticconstexpr

◆ idx2deg()

template<typename T>
constexpr T sead::MathCalcCommon< T >::idx2deg ( u32 a)
inlinestaticconstexpr

◆ idx2rad()

template<typename T>
constexpr T sead::MathCalcCommon< T >::idx2rad ( u32 a)
inlinestaticconstexpr

◆ roundAngle()

template<typename T>
T sead::MathCalcCommon< T >::roundAngle ( T )
static

◆ angleDist()

template<typename T>
T sead::MathCalcCommon< T >::angleDist ( T ,
T  )
static

◆ random()

template<typename T>
T sead::MathCalcCommon< T >::random ( )
static

◆ getRand()

template<typename T>
T sead::MathCalcCommon< T >::getRand ( T )
static

◆ getRandRange()

template<typename T>
T sead::MathCalcCommon< T >::getRandRange ( T ,
T  )
static

◆ getRandSign()

template<typename T>
T sead::MathCalcCommon< T >::getRandSign ( )
static

◆ roundOff() [1/2]

template<typename T>
s32 sead::MathCalcCommon< T >::roundOff ( T val)
inlinestaticconstexpr

◆ floor() [1/2]

template<typename T>
s32 sead::MathCalcCommon< T >::floor ( T val)
inlinestaticconstexpr

◆ ceil() [1/2]

template<typename T>
s32 sead::MathCalcCommon< T >::ceil ( T val)
inlinestaticconstexpr

◆ roundUpN()

template<typename T>
T constexpr sead::MathCalcCommon< T >::roundUpN ( T val,
s32 multNumber )
staticconstexpr

◆ roundUpPow2() [1/3]

template<typename T>
T constexpr sead::MathCalcCommon< T >::roundUpPow2 ( T val,
s32 base )
staticconstexpr

◆ roundDownN()

template<typename T>
T constexpr sead::MathCalcCommon< T >::roundDownN ( T val,
s32 multNumber )
staticconstexpr

◆ roundDownPow2()

template<typename T>
T constexpr sead::MathCalcCommon< T >::roundDownPow2 ( T val,
s32 base )
staticconstexpr

◆ clampMax()

template<typename T>
T sead::MathCalcCommon< T >::clampMax ( T val,
T max_ )
inlinestaticconstexpr

◆ clampMin()

template<typename T>
T sead::MathCalcCommon< T >::clampMin ( T val,
T min_ )
inlinestaticconstexpr

◆ clamp2()

template<typename T>
T sead::MathCalcCommon< T >::clamp2 ( T min_,
T val,
T max_ )
inlinestaticconstexpr

◆ gcd() [1/2]

template<typename T>
T sead::MathCalcCommon< T >::gcd ( T m,
T n )
static

◆ lcm() [1/2]

template<typename T>
T sead::MathCalcCommon< T >::lcm ( T m,
T n )
static

◆ isZero()

template<typename T>
bool sead::MathCalcCommon< T >::isZero ( T ,
T  )
static

◆ isNan()

template<typename T>
bool sead::MathCalcCommon< T >::isNan ( T )
static

◆ isPow2()

template<typename T>
bool sead::MathCalcCommon< T >::isPow2 ( T )
static

◆ isMultiplePow2()

template<typename T>
bool sead::MathCalcCommon< T >::isMultiplePow2 ( T ,
T  )
static

◆ isInfinity()

template<typename T>
bool sead::MathCalcCommon< T >::isInfinity ( T )
static

◆ isIntersect1d()

template<typename T>
bool sead::MathCalcCommon< T >::isIntersect1d ( T ,
T ,
T ,
T  )
static

◆ chase()

template<typename T>
bool sead::MathCalcCommon< T >::chase ( T * ,
T ,
T  )
static

◆ chaseAngle()

template<typename T>
bool sead::MathCalcCommon< T >::chaseAngle ( T * ,
T ,
T  )
static

◆ chaseAngleIdx()

template<typename T>
bool sead::MathCalcCommon< T >::chaseAngleIdx ( u32 * ,
u32 ,
T  )
static

◆ lerp()

template<typename T>
constexpr T sead::MathCalcCommon< T >::lerp ( T a,
T b,
f32 ratio )
inlinestaticconstexpr

◆ atanIdx_() [1/3]

template<typename T>
u32 sead::MathCalcCommon< T >::atanIdx_ ( T t)
staticprotected

◆ expLn2_()

template<typename T>
T sead::MathCalcCommon< T >::expLn2_ ( T x)
staticprotected

◆ log1_2_()

template<typename T>
T sead::MathCalcCommon< T >::log1_2_ ( T x)
staticprotected

◆ assertGreaterThanOrEqualToZero_()

template<typename T>
void sead::MathCalcCommon< T >::assertGreaterThanOrEqualToZero_ ( T )
staticprotected

◆ gcd() [2/2]

s32 sead::MathCalcCommon< s32 >::gcd ( s32 m,
s32 n )

◆ lcm() [2/2]

s32 sead::MathCalcCommon< s32 >::lcm ( s32 m,
s32 n )

◆ atanIdx_() [2/3]

u32 sead::MathCalcCommon< f32 >::atanIdx_ ( f32 t)
protected

◆ expTable() [2/2]

f32 sead::MathCalcCommon< f32 >::expTable ( f32 x)

◆ logTable() [2/2]

f32 sead::MathCalcCommon< f32 >::logTable ( f32 x)

◆ sqrt() [2/2]

f32 sead::MathCalcCommon< f32 >::sqrt ( f32 t)
inlineconstexpr

◆ rsqrt() [2/2]

f32 sead::MathCalcCommon< f32 >::rsqrt ( f32 t)
inlineconstexpr

◆ sinIdx() [2/2]

f32 sead::MathCalcCommon< f32 >::sinIdx ( u32 idx)
inline

◆ cosIdx() [2/2]

f32 sead::MathCalcCommon< f32 >::cosIdx ( u32 idx)
inline

◆ tanIdx() [2/2]

f32 sead::MathCalcCommon< f32 >::tanIdx ( u32 idx)
inline

◆ asinIdx() [2/2]

u32 sead::MathCalcCommon< f32 >::asinIdx ( f32 s)
inline

◆ acosIdx() [2/2]

u32 sead::MathCalcCommon< f32 >::acosIdx ( f32 c)
inline

◆ atanIdx() [2/2]

u32 sead::MathCalcCommon< f32 >::atanIdx ( f32 t)
inline

◆ atan2Idx() [2/2]

u32 sead::MathCalcCommon< f32 >::atan2Idx ( f32 y,
f32 x )
inline

◆ sinCosIdx() [2/2]

void sead::MathCalcCommon< f32 >::sinCosIdx ( f32 * p_sin,
f32 * p_cos,
u32 idx )
inline

◆ minNumber() [2/4]

float sead::MathCalcCommon< float >::minNumber ( )
inlineconstexpr

◆ maxNumber() [2/4]

float sead::MathCalcCommon< float >::maxNumber ( )
inlineconstexpr

◆ minNumber() [3/4]

double sead::MathCalcCommon< double >::minNumber ( )
inlineconstexpr

◆ maxNumber() [3/4]

double sead::MathCalcCommon< double >::maxNumber ( )
inlineconstexpr

◆ minNumber() [4/4]

long double sead::MathCalcCommon< longdouble >::minNumber ( )
inlineconstexpr

◆ maxNumber() [4/4]

long double sead::MathCalcCommon< longdouble >::maxNumber ( )
inlineconstexpr

◆ nan() [2/3]

f32 sead::MathCalcCommon< f32 >::nan ( )
inlineconstexpr

◆ nan() [3/3]

f64 sead::MathCalcCommon< f64 >::nan ( )
inlineconstexpr

◆ abs() [2/5]

s32 sead::MathCalcCommon< s32 >::abs ( s32 t)
inlineconstexpr

◆ abs() [3/5]

u32 sead::MathCalcCommon< u32 >::abs ( u32 t)
inlineconstexpr

◆ abs() [4/5]

f32 sead::MathCalcCommon< f32 >::abs ( f32 t)
inlineconstexpr

◆ abs() [5/5]

f64 sead::MathCalcCommon< f64 >::abs ( f64 t)
inlineconstexpr

◆ roundOff() [2/2]

s32 sead::MathCalcCommon< s32 >::roundOff ( s32 val)
inlineconstexpr

◆ floor() [2/2]

s32 sead::MathCalcCommon< s32 >::floor ( s32 val)
inlineconstexpr

◆ ceil() [2/2]

s32 sead::MathCalcCommon< s32 >::ceil ( s32 val)
inlineconstexpr

◆ roundUpPow2() [2/3]

s32 sead::MathCalcCommon< s32 >::roundUpPow2 ( s32 val,
s32 base )
inlineconstexpr

◆ roundUpPow2() [3/3]

u32 sead::MathCalcCommon< u32 >::roundUpPow2 ( u32 val,
s32 base )
inlineconstexpr

◆ cSinCosTbl()

const MathCalcCommon< f32 >::SinCosSample sead::MathCalcCommon< f32 >::cSinCosTbl

◆ cAtanTbl()

const MathCalcCommon< f32 >::AtanSample sead::MathCalcCommon< f32 >::cAtanTbl

◆ atanIdx_() [3/3]

u32 sead::MathCalcCommon< f32 >::atanIdx_ ( f32 t)
protected

Member Data Documentation

◆ cQuarterRoundIdx

template<typename T>
u32 sead::MathCalcCommon< T >::cQuarterRoundIdx = 0x40000000
staticconstexpr

◆ cHalfRoundIdx

template<typename T>
u32 sead::MathCalcCommon< T >::cHalfRoundIdx = 0x80000000
staticconstexpr

◆ cSinCosTbl

template<typename T>
const SinCosSample sead::MathCalcCommon< T >::cSinCosTbl[256+1]
static

◆ cAtanTbl

template<typename T>
const AtanSample sead::MathCalcCommon< T >::cAtanTbl[128+1]
static

◆ cExpTbl

template<typename T>
const ExpSample sead::MathCalcCommon< T >::cExpTbl[32+1]
static

◆ cLogTbl

template<typename T>
const LogSample sead::MathCalcCommon< T >::cLogTbl[256+1]
static