SuperDex Physics C++ API
Loading...
Searching...
No Matches
basic_utils.h File Reference
#include <mochi_core/mochi_config.h>
#include <mochi_core/mochi_platform.h>
#include <mochi_core/utils/debug.h>
#include <cmath>
#include <cstring>
#include <limits>
#include <type_traits>
#include "basic_utils_inl.h"

Go to the source code of this file.

Namespaces

namespace  superdex

Functions

template<typename T>
constexpr T superdex::Abs (T a)
template<typename T>
constexpr T superdex::ACos (T a)
template<typename T>
bool superdex::AllTrue (T const &a)
template<typename T>
bool superdex::AnyTrue (T const &a)
template<typename T>
constexpr T superdex::ASin (T a)
template<typename T>
constexpr T superdex::ATan (T a)
template<typename T>
constexpr T superdex::ATan2 (T y, T x)
template<typename T>
constexpr T superdex::Ceil (T a)
template<typename ValT, typename MinT, typename MaxT>
constexpr ValT superdex::Clamp (ValT value, MinT min, MaxT max)
template<typename T>
constexpr T superdex::Cos (T a)
template<typename T>
constexpr auto superdex::Equal (T const &a, T const &b)
template<typename T>
constexpr T superdex::Exp (T a)
template<typename T>
constexpr T superdex::Floor (T a)
template<typename T>
constexpr T superdex::IntegralSqrt (T a)
template<typename T, std::enable_if_t< std::is_arithmetic_v< T >, superdex::ConceptMatch > = superdex::ConceptMatch::True>
bool superdex::IsFinite (T a)
template<typename T>
constexpr int superdex::isize (T const &a)
template<typename T, size_t N>
constexpr int superdex::isize (T const (&array)[N])
template<typename T>
constexpr bool superdex::IsPowerOfTwo (T a)
template<typename T, typename Frac>
constexpr T superdex::Lerp (T a, T b, Frac t)
template<typename T, typename... More>
constexpr T superdex::Max (T a, T b, T c, More... args)
template<typename T>
constexpr T const & superdex::Max (T const &a, T const &b)
template<typename T, typename... More>
constexpr T superdex::Min (T a, T b, T c, More... args)
template<typename T>
constexpr T const & superdex::Min (T const &a, T const &b)
template<typename A, typename B, typename C>
constexpr auto superdex::MulAdd (A a, B b, C c)
template<typename A, typename B, typename C>
constexpr auto superdex::MulSub (A a, B b, C c)
template<typename T, std::enable_if_t< std::is_arithmetic_v< T >, superdex::ConceptMatch > = superdex::ConceptMatch::True>
constexpr auto superdex::NearEqual (T const &a, T const &b, T epsilon=kDefaultNearEqualEpsilon< T >)
template<typename T, std::enable_if_t< std::is_arithmetic_v< T >, superdex::ConceptMatch > = superdex::ConceptMatch::True>
constexpr auto superdex::NearEqualRel (T const &a, T const &b, T epsilon=kDefaultNearEqualEpsilon< T >)
template<typename T, std::enable_if_t< std::is_arithmetic_v< T >, superdex::ConceptMatch > = superdex::ConceptMatch::True>
constexpr auto superdex::NearZero (T const &a, T epsilon=kDefaultNearEqualEpsilon< T >)
template<typename A, typename B, typename C>
constexpr auto superdex::NegMulAdd (A a, B b, C c)
template<typename A, typename B, typename C>
constexpr auto superdex::NegMulSub (A a, B b, C c)
template<typename T>
constexpr T superdex::NextPowerOfTwo (T a)
template<typename T>
constexpr auto superdex::NotEqual (T const &a, T const &b)
template<typename B, typename E>
constexpr B superdex::Pow (B base, E exp)
template<typename T>
constexpr T superdex::Rcp (T a)
template<typename T>
constexpr T superdex::RcpApprox (T a)
template<typename ValT, typename MinT, typename MaxT, bool kMinInclusive, bool kMaxInclusive>
constexpr ValT superdex::Rect (ValT value, MinT min, MaxT max, std::integral_constant< bool, kMinInclusive >=std::true_type{}, std::integral_constant< bool, kMaxInclusive >=std::false_type{})
template<typename T>
constexpr T superdex::Remap (T value, T inA, T inB, T outA, T outB)
template<typename T>
constexpr T superdex::RemapAndClamp (T value, T inA, T inB, T outA, T outB)
template<typename T>
constexpr T superdex::Round (T a)
template<typename T>
constexpr T superdex::RoundDown (T numToRound, T multiple)
template<typename T>
constexpr T superdex::RoundUp (T numToRound, T multiple)
template<typename T>
constexpr T superdex::Select (bool condition, T a, T b)
template<typename T>
constexpr T superdex::Sign (T x)
template<typename T>
constexpr T superdex::SignedSqr (T a)
template<typename T>
constexpr T superdex::SignedSqrt (T a)
template<typename T>
constexpr T superdex::Sin (T a)
template<typename T>
constexpr T superdex::Sinc (T a)
template<typename T>
constexpr T superdex::Sqr (T a)
template<typename T>
constexpr T superdex::Sqrt (T a)
template<typename To, typename From, std::enable_if_t< std::is_arithmetic_v< From > &&std::is_arithmetic_v< To >, superdex::ConceptMatch > = superdex::ConceptMatch::True>
constexpr To superdex::StaticCast (From const &a)
template<typename T>
constexpr T superdex::Tan (T a)

Variables

template<typename T>
constexpr T superdex::kDefaultNearEqualEpsilon {0}
template<>
constexpr double superdex::kDefaultNearEqualEpsilon< double > {1.0e-6}
template<>
constexpr float superdex::kDefaultNearEqualEpsilon< float > {1.0e-6f}