|
| | _MSTD_MAKE_VECS_TYPES (2) |
| | _MSTD_MAKE_VECS_TYPES (3) |
| | _MSTD_MAKE_VECS_TYPES (4) |
| | _MSTD_MAKE_TWO_MAT_NOT_SQR_TYPES (2, 3) |
| | _MSTD_MAKE_TWO_MAT_NOT_SQR_TYPES (2, 4) |
| | _MSTD_MAKE_TWO_MAT_NOT_SQR_TYPES (3, 4) |
| | _MSTD_MAKE_MAT_SQR_TYPES (2) |
| | _MSTD_MAKE_MAT_SQR_TYPES (3) |
| | _MSTD_MAKE_MAT_SQR_TYPES (4) |
| _MSTD_INLINE17 _MSTD_CONSTEXPR20 uint32_t | swap_endians (uint32_t value) noexcept |
| template<size_t C, size_t R, arithmetic T> |
| _MSTD_INLINE17 _MSTD_CONSTEXPR20 mat< C, R, T > | clamp (const mat< C, R, T > &a, const T &minVal, const T &maxVal) |
| template<size_t C, size_t R, arithmetic T> |
| _MSTD_INLINE17 _MSTD_CONSTEXPR20 mat< C, R, T > | clamp (const mat< C, R, T > &a, const mat< C, R, T > &minVal, const mat< C, R, T > &maxVal) |
| template<arithmetic T> |
| _MSTD_INLINE17 _MSTD_CONSTEXPR20 T | signum (const T &x) noexcept |
| template<arithmetic T> |
| _MSTD_INLINE17 _MSTD_CONSTEXPR20 T | step (const T &edge, const T &x) noexcept |
| template<arithmetic T> |
| _MSTD_INLINE17 _MSTD_CONSTEXPR20 T | remap (const T &input, const T &currStart, const T &currEnd, const T &expectedStart, const T &expectedEnd) noexcept |
| template<arithmetic T> |
| _MSTD_INLINE17 _MSTD_CONSTEXPR20 T | deg_to_rad (const T &angle) noexcept |
| template<arithmetic T> |
| _MSTD_INLINE17 _MSTD_CONSTEXPR20 T | rad_to_deg (const T &rad) noexcept |
| template<floating_point AT, floating_point BT, floating_point EpsT> |
| _MSTD_INLINE17 _MSTD_CONSTEXPR20 bool | epsilon_equal (const AT &a, const BT &b, const EpsT &epsilon=default_epsilon) noexcept |
| template<arithmetic AT, arithmetic BT, floating_point EpsT = double> |
| _MSTD_INLINE17 _MSTD_CONSTEXPR20 bool | is_equal (const AT &a, const BT &b, const EpsT &eps=default_epsilon) |
| template<arithmetic AT, arithmetic BT, floating_point EpsT = double> |
| _MSTD_INLINE17 _MSTD_CONSTEXPR20 bool | is_not_equal (const AT &a, const BT &b, const EpsT &eps=default_epsilon) |
| template<arithmetic T> |
| _MSTD_INLINE17 _MSTD_CONSTEXPR20 T | saturate (const T &a) noexcept |
| template<arithmetic T> |
| _MSTD_INLINE17 _MSTD_CONSTEXPR20 T | fract (const T &x) |
| _MSTD_INLINE17 _MSTD_CONSTEXPR20 float | q_rsqrt (float number) noexcept |
| template<arithmetic N, arithmetic Na, arithmetic Nb> |
| _MSTD_INLINE17 _MSTD_CONSTEXPR20 bool | add_overflow (const Na &a, const Nb &b, N &out) |
| template<arithmetic N, arithmetic Na, arithmetic Nb> |
| _MSTD_INLINE17 _MSTD_CONSTEXPR20 bool | sub_overflow (const Na &a, const Nb &b, N &out) |
| template<arithmetic N, arithmetic Na, arithmetic Nb> |
| _MSTD_INLINE17 _MSTD_CONSTEXPR20 bool | mul_overflow (const Na &a, const Nb &b, N &out) |
| template<arithmetic N, arithmetic Na, arithmetic Nb> |
| _MSTD_INLINE17 _MSTD_CONSTEXPR20 bool | div_overflow (const Na &a, const Nb &b, N &out) |
| template<class T, size_t N> |
| _MSTD_INLINE17 _MSTD_CONSTEXPR20 T | length (const vec< N, T > &a) noexcept |
| template<class T, size_t N> |
| _MSTD_INLINE17 _MSTD_CONSTEXPR20 vec< N, T > | normalize (const vec< N, T > &a) noexcept |
| template<class T, size_t N> |
| _MSTD_INLINE17 _MSTD_CONSTEXPR20 vec< N, T > | max (const vec< N, T > &a, const vec< N, T > &b) noexcept |
| template<class T, size_t N> |
| _MSTD_INLINE17 _MSTD_CONSTEXPR20 vec< N, T > | min (const vec< N, T > &a, const vec< N, T > &b) noexcept |
| template<class T, size_t N> |
| _MSTD_INLINE17 _MSTD_CONSTEXPR20 T | dot (const vec< N, T > &a, const vec< N, T > &b) |
| template<class T, size_t N> |
| _MSTD_INLINE17 _MSTD_CONSTEXPR20 vec< N, T > | cross (const vec< N, T > &a, const vec< N, T > &b) |
| template<class T, size_t N> |
| _MSTD_INLINE17 _MSTD_CONSTEXPR20 T | angle_between (const vec< N, T > &a, const vec< N, T > &b) |
| template<class T, size_t N> |
| _MSTD_INLINE17 _MSTD_CONSTEXPR20 vec< N, T > | reflect (const vec< N, T > &dir, const vec< N, T > &normal) |
| template<class T, size_t N> |
| _MSTD_INLINE17 _MSTD_CONSTEXPR20 vec< N, T > | refract (const vec< N, T > &dir, const vec< N, T > &normal, const T &eta) |
| template<class T, size_t N> |
| _MSTD_INLINE17 _MSTD_CONSTEXPR20 vec< N, T > | saturate (const vec< N, T > &a) |
| template<class T, size_t N> |
| _MSTD_INLINE17 _MSTD_CONSTEXPR20 vec< N, T > | fract (const vec< N, T > &a) |
| template<class T, size_t N> |
| _MSTD_INLINE17 _MSTD_CONSTEXPR20 vec< N, T > | mod (const vec< N, T > &a, const T &y) |
| template<class T, size_t N> |
| _MSTD_INLINE17 _MSTD_CONSTEXPR20 vec< N, T > | mod (const vec< N, T > &a, const vec< N, T > &b) |
| template<class T, size_t N> |
| _MSTD_INLINE17 _MSTD_CONSTEXPR20 vec< N, T > | pow (const vec< N, T > &a, const T &y) |
| template<class T, size_t N> |
| _MSTD_INLINE17 _MSTD_CONSTEXPR20 vec< N, T > | pow (const vec< N, T > &a, const vec< N, T > &b) |
| template<class T, size_t N> |
| _MSTD_INLINE17 _MSTD_CONSTEXPR20 vec< N, T > | clamp (const vec< N, T > &a, const T &minVal, const T &maxVal) |
| template<class T, size_t N> |
| _MSTD_INLINE17 _MSTD_CONSTEXPR20 vec< N, T > | clamp (const vec< N, T > &a, const vec< N, T > &minVal, const vec< N, T > &maxVal) |
| template<class T, size_t N> |
| _MSTD_INLINE17 _MSTD_CONSTEXPR20 vec< N, T > | step (const T &edge, const vec< N, T > &a) |
| template<class T, size_t N> |
| _MSTD_INLINE17 _MSTD_CONSTEXPR20 vec< N, T > | step (const vec< N, T > &edge, const vec< N, T > &a) |
| std::string | format_log (const std::string_view expression, _MSTD_SOURCE_LOCATION_ARG, const std::string_view message="") noexcept |
| void | log_assert_handler (const std::string_view expression, const mstd::function_view< void(const std::string_view)> &errorLogger, _MSTD_SOURCE_LOCATION_ARG) noexcept |
| bool | stop_assert_handler (const std::string_view expression, const mstd::function_view< void(const std::string_view)> &errorLogger, _MSTD_SOURCE_LOCATION_ARG) noexcept |
| template<class... Args> |
| void | log_assert_handler (const std::string_view expression, const mstd::function_view< void(const std::string_view)> &errorLogger, _MSTD_SOURCE_LOCATION_ARG, fmt::format_string< Args... > fmtFormat, Args &&... args) noexcept |
| template<class... Args> |
| bool | stop_assert_handler (const std::string_view expression, const mstd::function_view< void(const std::string_view)> &errorLogger, _MSTD_SOURCE_LOCATION_ARG, fmt::format_string< Args... > fmtFormat, Args &&... args) noexcept |
| template<class BitsEnum> |
| _MSTD_CONSTEXPR17 flags< BitsEnum > | operator| (const BitsEnum bit, const BitsEnum otherBit) noexcept |
| template<class T, class... Ts> |
| void | hash_append (size_t &hashValue, const T &value, const Ts &... values) |
| template<class T0, class T1, class... Ts> |
| size_t | hash_combine (const T0 &value0, const T1 &value1, const Ts &... values) |
| template<class Iter> |
| void | hash_range (size_t &seed, const Iter &begin, const Iter &end) |
| template<size_t Start, size_t... Indices> |
| _MSTD_CONSTEXPR20 std::index_sequence<(Start+Indices)... > | shift_index_sequence (const std::index_sequence< Indices... > &) |
| bool | isstrhex (const std::string_view str) |
| bool | isstroct (const std::string_view str) |
| bool | isstrbin (const std::string_view str) |
| bool | isstrnum (const std::string_view str) |
| bool | isstrunum (const std::string_view str) |
| bool | isstrfp (const std::string_view str) |
| template<class... Strings> |
| std::string & | concat_to (std::string &out, Strings &&... strs) |
| template<class... Strings> |
| std::string | concat (Strings &&... strs) |
| std::string | trim (const std::string_view str) |
| template<mstd::integral N> |
| _MSTD_INLINE17 _MSTD_CONSTEXPR20 bool | strxtonum (const std::string_view hexStr, N &num) |
| template<mstd::integral N> |
| _MSTD_INLINE17 _MSTD_CONSTEXPR20 bool | strctonum (const std::string_view octStr, N &num) |
| template<mstd::integral N> |
| _MSTD_INLINE17 _MSTD_CONSTEXPR20 bool | strbtonum (const std::string_view binStr, N &num) |
| template<mstd::signed_integral SN> |
| _MSTD_INLINE17 _MSTD_CONSTEXPR20 bool | strtonum (const std::string_view str, SN &num) |
| template<mstd::unsigned_integral UN> |
| _MSTD_INLINE17 _MSTD_CONSTEXPR20 bool | strtounum (const std::string_view str, UN &num) |
| template<mstd::floating_point FP> |
| _MSTD_INLINE17 _MSTD_CONSTEXPR20 bool | strtofp (const std::string_view str, FP &num) |
| void | get_terminal_size (int &width, int &height) |
| void | clear_terminal () |
|
| static _MSTD_CONSTEXPR17 const float | default_epsilon = 1e-4f |
| template<class T> |
| _MSTD_CONSTEXPR17 bool | is_iterator_v = is_iterator<T>::value |
| template<class Iter, class T> |
| _MSTD_CONSTEXPR17 bool | is_iterator_of_v = is_iterator_of<Iter, T>::value |
| template<class T, class U> |
| _MSTD_CONSTEXPR17 bool | is_same_without_cvref_v = is_same_without_cvref<T, U>::value |
| template<class F> |
| static _MSTD_CONSTEXPR17 const bool | is_std_function_v = function_traits<F>::is_std_function |
| template<class F> |
| static _MSTD_CONSTEXPR17 const bool | is_function_ptr_v = function_traits<F>::is_ptr |
| template<class F> |
| static _MSTD_CONSTEXPR17 const bool | is_function_ref_v = function_traits<F>::is_ref |
| template<class F> |
| static _MSTD_CONSTEXPR17 const bool | is_function_moved_v = function_traits<F>::is_moved |
| template<class F> |
| static _MSTD_CONSTEXPR17 const bool | is_functor_v = function_traits<F>::is_functor |
| template<class F> |
| static _MSTD_CONSTEXPR17 const bool | is_member_function_v = function_traits<F>::is_member |
| template<class F> |
| static _MSTD_CONSTEXPR17 const bool | is_free_function_v = function_traits<F>::is_free |
| template<class F> |
| static _MSTD_CONSTEXPR17 const bool | is_parent_ref_function_v = function_traits<F>::is_parent_ref |
| template<class F> |
| static _MSTD_CONSTEXPR17 const bool | is_parent_moved_function_v = function_traits<F>::is_parent_moved |
| template<class F> |
| static _MSTD_CONSTEXPR17 const bool | is_const_function_v = function_traits<F>::is_const |
| template<class F> |
| static _MSTD_CONSTEXPR17 const bool | is_noexcept_function_v = function_traits<F>::is_noexcept |
| template<class F> |
| static _MSTD_CONSTEXPR17 const bool | is_volatile_function_v = function_traits<F>::is_volatile |
| template<class F> |
| static _MSTD_CONSTEXPR17 const size_t | function_args_num_v = function_traits<F>::args_num |
| template<class F> |
| _MSTD_CONSTEXPR17 bool | is_callable_v = is_callable<F>::value |
| template<class F> |
| static _MSTD_CONSTEXPR17 const bool | is_function_v |
| template<class F> |
| static _MSTD_CONSTEXPR17 const bool | is_action_v = is_function_v<F> && std::is_void_v<function_return_t<F> > |
| template<class F> |
| static _MSTD_CONSTEXPR17 const bool | is_method_v = is_action_v<F> && function_args_num_v<F> == 0 |
| template<class Fa, class Fb> |
| _MSTD_CONSTEXPR17 bool | is_same_function_v = is_same_function<Fa, Fb>::value |
| template<template< class > class Test, class... Ts> |
| static _MSTD_CONSTEXPR17 const bool | are_all_v = (Test<Ts>::value && ...) |
| template<template< class > class Check, class... Ts> |
| constexpr bool | all_check_v = all_check<Check, Ts...>::value |
| template<template< class > class Check, class... Ts> |
| constexpr bool | any_check_v = any_check<Check, Ts...>::value |
| template<class T> |
| constexpr bool | is_signed_integral_v = std::is_integral_v<T> && std::is_signed_v<T> |
| template<class T> |
| constexpr bool | is_unsigned_integral_v = std::is_integral_v<T> && std::is_unsigned_v<T> |
| template<class... Ns> |
| constexpr bool | are_arithmetic_v = are_arithmetic<Ns...>::value |
| template<class... Ns> |
| constexpr bool | are_signed_v = are_signed<Ns...>::value |
| template<class... Ns> |
| constexpr bool | are_unsigned_v = are_unsigned<Ns...>::value |
| template<class... Ns> |
| constexpr bool | are_floating_points_v = are_floating_points<Ns...>::value |
| template<class... Ns> |
| constexpr bool | are_integrals_v = are_integrals<Ns...>::value |
| template<class... Ns> |
| constexpr bool | are_signed_integrals_v = are_signed_integrals<Ns...>::value |
| template<class... Ns> |
| constexpr bool | are_unsigned_integrals_v = are_unsigned_integrals<Ns...>::value |
| template<auto A> |
| static _MSTD_CONSTEXPR17 const auto | abs_v = utils::abs_impl<A>::value |
| template<auto A, auto B, auto Eps, arithmetic AT = decltype(A), arithmetic BT = decltype(B), floating_point EpsT = decltype(Eps)> |
| _MSTD_CONSTEXPR17 const bool | is_eq_arithmetic_v |
| template<auto A, auto B, auto Eps, arithmetic AT = decltype(A), arithmetic BT = decltype(B), floating_point EpsT = decltype(Eps)> |
| _MSTD_CONSTEXPR17 const bool | is_neq_arithmetic_v = !is_eq_arithmetic_v<A, B, Eps> |
| template<auto A, auto B> |
| _MSTD_CONSTEXPR17 const bool | is_eq_v = is_eq<A, B>::value |
| template<auto A, auto B> |
| _MSTD_CONSTEXPR17 const bool | is_neq_v = is_neq<A, B>::value |
| template<auto A, auto B> |
| _MSTD_CONSTEXPR17 const bool | is_gt_v = is_gt<A, B>::value |
| template<auto A, auto B> |
| _MSTD_CONSTEXPR17 const bool | is_gteq_v = is_gteq<A, B>::value |
| template<auto A, auto B> |
| _MSTD_CONSTEXPR17 const bool | is_lt_v = is_lt<A, B>::value |
| template<auto A, auto B> |
| _MSTD_CONSTEXPR17 const bool | is_lteq_v = is_lteq<A, B>::value |
| template<template< class, class > class Cmp, class T, class U, class... Us> |
| _MSTD_CONSTEXPR17 const bool | is_type_in_v = (Cmp<T, U>::value || (sizeof...(Us) > 0 ? (Cmp<T, Us>::value || ...) : false)) |
| template<template< auto, auto > class Cmp, auto A, auto B, auto... Cs> |
| _MSTD_CONSTEXPR17 const bool | is_value_in_v = (Cmp<A, B>::value || (sizeof...(Cs) > 0 ? (Cmp<A, Cs>::value || ...) : false)) |
| template<class T, class U, class... Us> |
| _MSTD_CONSTEXPR17 const bool | is_same_type_in_v = is_type_in_v<std::is_same, T, U, Us...> |
| template<auto A, auto B, auto... Cs> |
| _MSTD_CONSTEXPR17 const bool | is_eq_value_in_v = is_value_in_v<is_eq, A, B, Cs...> |
| template<auto A, auto Min, auto Max> |
| _MSTD_CONSTEXPR17 const bool | is_in_range_v = (is_gteq_v<A, Min> && is_lteq_v<A, Max>) |
| template<class T, template< class... > class U> |
| _MSTD_CONSTEXPR17 const bool | is_based_on_v = false |
| template<template< class... > class U, class... Vs> |
| _MSTD_CONSTEXPR17 const bool | is_based_on_v< U< Vs... >, U > = true |
| template<bool Condition, auto TrueValue, auto FalseValue> |
| static _MSTD_CONSTEXPR17 const auto | if_v = utils::if_impl<Condition, TrueValue, FalseValue>::value |