|
| template<class T> |
| SI_INLINE_CONSTEXPR vec2< T > | SI::internal::operator- (const vec2< T > &v) |
| template<class T> |
| SI_INLINE_CONSTEXPR vec3< T > | SI::internal::operator- (const vec3< T > &v) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR bool | SI::internal::operator== (const vec2< T > &lhs, const vec2< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR bool | SI::internal::operator== (const vec3< T > &lhs, const vec3< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR bool | SI::internal::operator!= (const vec2< T > &lhs, const vec2< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR bool | SI::internal::operator!= (const vec3< T > &lhs, const vec3< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec2< T > & | SI::internal::operator+= (vec2< T > &lhs, const vec2< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec3< T > & | SI::internal::operator+= (vec3< T > &lhs, const vec3< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec2< T > & | SI::internal::operator-= (vec2< T > &lhs, const vec2< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec3< T > & | SI::internal::operator-= (vec3< T > &lhs, const vec3< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec2< T > & | SI::internal::operator*= (vec2< T > &lhs, const vec2< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec3< T > & | SI::internal::operator*= (vec3< T > &lhs, const vec3< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec2< T > & | SI::internal::operator/= (vec2< T > &lhs, const vec2< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec3< T > & | SI::internal::operator/= (vec3< T > &lhs, const vec3< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR std::enable_if_t< std::is_arithmetic_v< U >, vec2< T > & > | SI::internal::operator+= (vec2< T > &lhs, U rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR std::enable_if_t< std::is_arithmetic_v< U >, vec3< T > & > | SI::internal::operator+= (vec3< T > &lhs, U rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR std::enable_if_t< std::is_arithmetic_v< U >, vec2< T > & > | SI::internal::operator-= (vec2< T > &lhs, U rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR std::enable_if_t< std::is_arithmetic_v< U >, vec3< T > & > | SI::internal::operator-= (vec3< T > &lhs, U rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR std::enable_if_t< std::is_arithmetic_v< U >, vec2< T > & > | SI::internal::operator*= (vec2< T > &lhs, U rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR std::enable_if_t< std::is_arithmetic_v< U >, vec3< T > & > | SI::internal::operator*= (vec3< T > &lhs, U rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR std::enable_if_t< std::is_arithmetic_v< U >, vec2< T > & > | SI::internal::operator/= (vec2< T > &lhs, U rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR std::enable_if_t< std::is_arithmetic_v< U >, vec3< T > & > | SI::internal::operator/= (vec3< T > &lhs, U rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec2< detail::vec_common_type_t< T, U > > | SI::internal::operator+ (const vec2< T > &lhs, const vec2< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec3< detail::vec_common_type_t< T, U > > | SI::internal::operator+ (const vec3< T > &lhs, const vec3< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec2< detail::vec_common_type_t< T, U > > | SI::internal::operator- (const vec2< T > &lhs, const vec2< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec3< detail::vec_common_type_t< T, U > > | SI::internal::operator- (const vec3< T > &lhs, const vec3< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec2< detail::vec_common_type_t< T, U > > | SI::internal::operator* (const vec2< T > &lhs, const vec2< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec3< detail::vec_common_type_t< T, U > > | SI::internal::operator* (const vec3< T > &lhs, const vec3< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec2< detail::vec_common_type_t< T, U > > | SI::internal::operator/ (const vec2< T > &lhs, const vec2< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec3< detail::vec_common_type_t< T, U > > | SI::internal::operator/ (const vec3< T > &lhs, const vec3< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec2< detail::vec_common_type_t< T, U > > | SI::internal::operator+ (const vec2< T > &lhs, U rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec3< detail::vec_common_type_t< T, U > > | SI::internal::operator+ (const vec3< T > &lhs, U rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec2< detail::vec_common_type_t< T, U > > | SI::internal::operator- (const vec2< T > &lhs, U rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec3< detail::vec_common_type_t< T, U > > | SI::internal::operator- (const vec3< T > &lhs, U rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec2< detail::vec_common_type_t< T, U > > | SI::internal::operator* (const vec2< T > &lhs, U rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec3< detail::vec_common_type_t< T, U > > | SI::internal::operator* (const vec3< T > &lhs, U rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec2< detail::vec_common_type_t< T, U > > | SI::internal::operator/ (const vec2< T > &lhs, U rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec3< detail::vec_common_type_t< T, U > > | SI::internal::operator/ (const vec3< T > &lhs, U rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec2< detail::vec_common_type_t< T, U > > | SI::internal::operator+ (T lhs, const vec2< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec3< detail::vec_common_type_t< T, U > > | SI::internal::operator+ (T lhs, const vec3< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec2< detail::vec_common_type_t< T, U > > | SI::internal::operator- (T lhs, const vec2< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec3< detail::vec_common_type_t< T, U > > | SI::internal::operator- (T lhs, const vec3< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec2< detail::vec_common_type_t< T, U > > | SI::internal::operator* (T lhs, const vec2< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec3< detail::vec_common_type_t< T, U > > | SI::internal::operator* (T lhs, const vec3< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec2< detail::vec_common_type_t< T, U > > | SI::internal::operator/ (T lhs, const vec2< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec3< detail::vec_common_type_t< T, U > > | SI::internal::operator/ (T lhs, const vec3< U > &rhs) |
| template<class T> |
| SI_INLINE_CONSTEXPR vec2< detail::vec_common_type_t< T > > | SI::internal::abs (const vec2< T > &v) |
| template<class T> |
| SI_INLINE_CONSTEXPR vec3< detail::vec_common_type_t< T > > | SI::internal::abs (const vec3< T > &v) |
| template<class T> |
| SI_INLINE_CONSTEXPR std::enable_if_t< std::is_arithmetic_v< T >, T > | SI::internal::sign (T x) |
| template<class T> |
| SI_INLINE_CONSTEXPR vec2< detail::vec_common_type_t< T > > | SI::internal::sign (const vec2< T > &v) |
| template<class T> |
| SI_INLINE_CONSTEXPR vec3< detail::vec_common_type_t< T > > | SI::internal::sign (const vec3< T > &v) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR std::enable_if_t< std::is_arithmetic_v< T > &&std::is_arithmetic_v< U >, std::common_type_t< T, U > > | SI::internal::min (T lhs, U rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR std::enable_if_t< std::is_arithmetic_v< T > &&std::is_arithmetic_v< U >, std::common_type_t< T, U > > | SI::internal::max (T lhs, U rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec2< detail::vec_common_type_t< T, U > > | SI::internal::min (const vec2< T > &lhs, const vec2< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec3< detail::vec_common_type_t< T, U > > | SI::internal::min (const vec3< T > &lhs, const vec3< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec2< detail::vec_common_type_t< T, U > > | SI::internal::max (const vec2< T > &lhs, const vec2< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec3< detail::vec_common_type_t< T, U > > | SI::internal::max (const vec3< T > &lhs, const vec3< U > &rhs) |
| template<class T, class U, class V> |
| SI_INLINE_CONSTEXPR std::enable_if_t< std::is_arithmetic_v< T >, std::common_type_t< T, U, V > > | SI::internal::clamp (T value, U min, V max) |
| template<class T, class U, class V> |
| SI_INLINE_CONSTEXPR vec2< detail::vec_common_type_t< T, U, V > > | SI::internal::clamp (const vec2< T > &value, U min, V max) |
| template<class T, class U, class V> |
| SI_INLINE_CONSTEXPR vec2< detail::vec_common_type_t< T, U, V > > | SI::internal::clamp (const vec2< T > &value, const vec2< U > &min, const vec2< V > &max) |
| template<class T, class U, class V> |
| SI_INLINE_CONSTEXPR vec3< detail::vec_common_type_t< T, U, V > > | SI::internal::clamp (const vec3< T > &value, U min, V max) |
| template<class T, class U, class V> |
| SI_INLINE_CONSTEXPR vec3< detail::vec_common_type_t< T, U, V > > | SI::internal::clamp (const vec3< T > &value, const vec3< U > &min, const vec3< V > &max) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR auto | SI::internal::dot (const vec2< T > &lhs, const vec2< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR auto | SI::internal::dot (const vec3< T > &lhs, const vec3< U > &rhs) |
| template<class T> |
| SI_INLINE auto | SI::internal::length (const vec2< T > &v) |
| template<class T> |
| SI_INLINE auto | SI::internal::length (const vec3< T > &v) |
| template<class T> |
| SI_INLINE auto | SI::internal::normalize (const vec2< T > &v) |
| template<class T> |
| SI_INLINE auto | SI::internal::normalize (const vec3< T > &v) |
| template<class T, class U> |
| SI_INLINE auto | SI::internal::distance (const vec2< T > &a, const vec2< U > &b) |
| template<class T, class U> |
| SI_INLINE auto | SI::internal::distance (const vec3< T > &a, const vec3< U > &b) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec3< detail::vec_common_type_t< T, U > > | SI::internal::cross (const vec3< T > &lhs, const vec3< U > &rhs) |
| template<class T, class U, class V> |
| SI_INLINE_CONSTEXPR std::common_type_t< T, U, V > | SI::internal::mix (T a, U b, V t) |
| template<class T, class U, class V> |
| SI_INLINE_CONSTEXPR vec2< detail::vec_common_type_t< T, U, V > > | SI::internal::mix (const vec2< T > &a, const vec2< U > &b, V t) |
| template<class T, class U, class V> |
| SI_INLINE_CONSTEXPR vec3< detail::vec_common_type_t< T, U, V > > | SI::internal::mix (const vec3< T > &a, const vec3< U > &b, V t) |
| template<class T> |
| SI_INLINE_CONSTEXPR std::enable_if_t< std::is_arithmetic_v< T > > | SI::detail::fill (T &x, T value) |
| template<class T, class = std::enable_if_t<!is_si_v<T>>> |
| SI_INLINE_CONSTEXPR const T & | SI::detail::value (const T &x) |
| SI_INLINE_CONSTEXPR long | SI::detail::value (zero_t) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR decltype(auto) | SI::detail::value2 (T &&x, U) |
| template<class U> |
| SI_INLINE_CONSTEXPR auto | SI::detail::value2 (zero_t, const U &other) |
| template<class T, class Dimension> |
| SI_INLINE_CONSTEXPR quantity< Dimension, T > | SI::detail::operator- (quantity< Dimension, T > x) |
| template<class T, class Dimension, class U> |
| SI_INLINE_CONSTEXPR quantity< Dimension, T > & | SI::detail::operator+= (quantity< Dimension, T > &lhs, const U &rhs) |
| template<class T, class Dimension, class U> |
| SI_INLINE_CONSTEXPR quantity< Dimension, T > & | SI::detail::operator-= (quantity< Dimension, T > &lhs, const U &rhs) |
| template<class T, class Dimension, class U> |
| SI_INLINE_CONSTEXPR quantity< Dimension, T > & | SI::detail::operator*= (quantity< Dimension, T > &lhs, const U &rhs) |
| template<class T, class Dimension, class U> |
| SI_INLINE_CONSTEXPR quantity< Dimension, T > & | SI::detail::operator/= (quantity< Dimension, T > &lhs, const U &rhs) |
| template<class Lhs, class Rhs, class = enable_for_si<Lhs, Rhs>> |
| SI_INLINE_CONSTEXPR auto | SI::detail::operator< (const Lhs &lhs, const Rhs &rhs) |
| template<class Lhs, class Rhs, class = enable_for_si<Lhs, Rhs>> |
| SI_INLINE_CONSTEXPR auto | SI::detail::operator<= (const Lhs &lhs, const Rhs &rhs) |
| template<class Lhs, class Rhs, class = enable_for_si<Lhs, Rhs>> |
| SI_INLINE_CONSTEXPR auto | SI::detail::operator> (const Lhs &lhs, const Rhs &rhs) |
| template<class Lhs, class Rhs, class = enable_for_si<Lhs, Rhs>> |
| SI_INLINE_CONSTEXPR auto | SI::detail::operator>= (const Lhs &lhs, const Rhs &rhs) |
| template<class Lhs, class Rhs, class = enable_for_si<Lhs, Rhs>> |
| SI_INLINE_CONSTEXPR auto | SI::detail::operator== (const Lhs &lhs, const Rhs &rhs) |
| template<class Lhs, class Rhs, class = enable_for_si<Lhs, Rhs>> |
| SI_INLINE_CONSTEXPR auto | SI::detail::operator!= (const Lhs &lhs, const Rhs &rhs) |
| template<class Lhs, class Rhs, class = enable_for_si<Lhs, Rhs>> |
| SI_INLINE_CONSTEXPR auto | SI::detail::operator+ (const Lhs &lhs, const Rhs &rhs) |
| template<class Lhs, class Rhs, class = enable_for_si<Lhs, Rhs>> |
| SI_INLINE_CONSTEXPR auto | SI::detail::operator- (const Lhs &lhs, const Rhs &rhs) |
| template<class Lhs, class Rhs, class = enable_for_si<Lhs, Rhs>> |
| SI_INLINE_CONSTEXPR auto | SI::detail::operator* (const Lhs &lhs, const Rhs &rhs) |
| template<class Lhs, class Rhs, class = enable_for_si<Lhs, Rhs>> |
| SI_INLINE_CONSTEXPR auto | SI::detail::operator/ (const Lhs &lhs, const Rhs &rhs) |
| template<class Dimension, class T> |
| SI_INLINE_CONSTEXPR quantity< Dimension, T > | SI::detail::abs (const quantity< Dimension, T > &x) |
| template<class Lhs, class Rhs, class = enable_for_si<Lhs, Rhs>> |
| SI_INLINE_CONSTEXPR auto | SI::detail::dot (const Lhs &lhs, const Rhs &rhs) |
| template<class Dimension, class T> |
| SI_INLINE auto | SI::detail::normalize (const quantity< Dimension, T > &x) |
| template<class Dimension, class T> |
| SI_INLINE auto | SI::detail::norm (const quantity< Dimension, T > &x) |
| template<class T> |
| SI_INLINE auto | SI::detail::distance (const quantity< dimension< 1, 0, 0, 0, 0, 0, 0 >, T > &a, const quantity< dimension< 1, 0, 0, 0, 0, 0, 0 >, T > &b) |
| template<long Exponent, class Dimension, class T> |
| SI_INLINE auto | SI::detail::pow (const quantity< Dimension, T > &x) |
| template<long Degree, class Dimension, class T> |
| SI_INLINE auto | SI::detail::root (const quantity< Dimension, T > &x) |
| template<class Dimension, class T> |
| SI_INLINE auto | SI::detail::sqrt (const quantity< Dimension, T > &x) |
| template<class Dimension, class T> |
| SI_INLINE_CONSTEXPR auto | SI::detail::deangle (const quantity< Dimension, T > &x) |
| template<class Value, class Min, class Max> |
| SI_INLINE_CONSTEXPR auto | SI::detail::clamp (const Value &x, const Min &min, const Max &max) |
| template<class DimensionLhs, class RatioLhs, class DimensionRhs, class RatioRhs> |
| SI_INLINE_CONSTEXPR auto | SI::detail::operator* (unit< DimensionLhs, RatioLhs >, unit< DimensionRhs, RatioRhs >) |
| template<class DimensionLhs, class RatioLhs, class DimensionRhs, class RatioRhs> |
| SI_INLINE_CONSTEXPR auto | SI::detail::operator/ (unit< DimensionLhs, RatioLhs >, unit< DimensionRhs, RatioRhs >) |
| template<class Dimension, class T> |
| SI_INLINE_CONSTEXPR quantity< Dimension, T > | SI::abs (const quantity< Dimension, T > &x) |
| template<class Dimension, class T> |
| SI_INLINE auto | SI::normalize (const quantity< Dimension, T > &x) |
| template<class Dimension, class T> |
| SI_INLINE auto | SI::norm (const quantity< Dimension, T > &x) |
| template<class T> |
| SI_INLINE auto | SI::distance (const quantity< dimension< 1, 0, 0, 0, 0, 0, 0 >, T > &a, const quantity< dimension< 1, 0, 0, 0, 0, 0, 0 >, T > &b) |
| template<long Exponent, class Dimension, class T> |
| SI_INLINE auto | SI::pow (const quantity< Dimension, T > &x) |
| template<long Degree, class Dimension, class T> |
| SI_INLINE auto | SI::root (const quantity< Dimension, T > &x) |
| template<class Dimension, class T> |
| SI_INLINE auto | SI::sqrt (const quantity< Dimension, T > &x) |
| template<class Lhs, class Rhs, class = enable_for_si<Lhs, Rhs>> |
| SI_INLINE_CONSTEXPR auto | SI::dot (const Lhs &lhs, const Rhs &rhs) |
| template<class Value, class Min, class Max> |
| SI_INLINE_CONSTEXPR auto | SI::clamp (const Value &x, const Min &min, const Max &max) |
| template<class Dimension, class T> |
| SI_INLINE_CONSTEXPR auto | SI::deangle (const quantity< Dimension, T > &x) |