Project
Loading...
Searching...
No Matches
SI::internal Namespace Reference

Namespaces

namespace  detail

Classes

struct  vec
struct  vec< 2, T >
struct  vec< 2, detail::vec_trivally_constructible< T > >
struct  vec< 3, T >
struct  vec< 3, detail::vec_trivally_constructible< T > >

Typedefs

template<class T>
using vec2 = vec<2, T>
template<class T>
using vec3 = vec<3, T>

Functions

template<class T>
SI_INLINE_CONSTEXPR vec2< T > operator- (const vec2< T > &v)
template<class T>
SI_INLINE_CONSTEXPR vec3< T > operator- (const vec3< T > &v)
template<class T, class U>
SI_INLINE_CONSTEXPR bool operator== (const vec2< T > &lhs, const vec2< U > &rhs)
template<class T, class U>
SI_INLINE_CONSTEXPR bool operator== (const vec3< T > &lhs, const vec3< U > &rhs)
template<class T, class U>
SI_INLINE_CONSTEXPR bool operator!= (const vec2< T > &lhs, const vec2< U > &rhs)
template<class T, class U>
SI_INLINE_CONSTEXPR bool operator!= (const vec3< T > &lhs, const vec3< U > &rhs)
template<class T, class U>
SI_INLINE_CONSTEXPR vec2< T > & operator+= (vec2< T > &lhs, const vec2< U > &rhs)
template<class T, class U>
SI_INLINE_CONSTEXPR vec3< T > & operator+= (vec3< T > &lhs, const vec3< U > &rhs)
template<class T, class U>
SI_INLINE_CONSTEXPR vec2< T > & operator-= (vec2< T > &lhs, const vec2< U > &rhs)
template<class T, class U>
SI_INLINE_CONSTEXPR vec3< T > & operator-= (vec3< T > &lhs, const vec3< U > &rhs)
template<class T, class U>
SI_INLINE_CONSTEXPR vec2< T > & operator*= (vec2< T > &lhs, const vec2< U > &rhs)
template<class T, class U>
SI_INLINE_CONSTEXPR vec3< T > & operator*= (vec3< T > &lhs, const vec3< U > &rhs)
template<class T, class U>
SI_INLINE_CONSTEXPR vec2< T > & operator/= (vec2< T > &lhs, const vec2< U > &rhs)
template<class T, class U>
SI_INLINE_CONSTEXPR vec3< T > & 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 > & > 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 > & > 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 > & > 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 > & > 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 > & > 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 > & > 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 > & > 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 > & > operator/= (vec3< T > &lhs, U rhs)
template<class T, class U>
SI_INLINE_CONSTEXPR vec2< detail::vec_common_type_t< T, U > > 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 > > 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 > > 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 > > 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 > > 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 > > 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 > > 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 > > 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 > > operator+ (const vec2< T > &lhs, U rhs)
template<class T, class U>
SI_INLINE_CONSTEXPR vec3< detail::vec_common_type_t< T, U > > operator+ (const vec3< T > &lhs, U rhs)
template<class T, class U>
SI_INLINE_CONSTEXPR vec2< detail::vec_common_type_t< T, U > > operator- (const vec2< T > &lhs, U rhs)
template<class T, class U>
SI_INLINE_CONSTEXPR vec3< detail::vec_common_type_t< T, U > > operator- (const vec3< T > &lhs, U rhs)
template<class T, class U>
SI_INLINE_CONSTEXPR vec2< detail::vec_common_type_t< T, U > > operator* (const vec2< T > &lhs, U rhs)
template<class T, class U>
SI_INLINE_CONSTEXPR vec3< detail::vec_common_type_t< T, U > > operator* (const vec3< T > &lhs, U rhs)
template<class T, class U>
SI_INLINE_CONSTEXPR vec2< detail::vec_common_type_t< T, U > > operator/ (const vec2< T > &lhs, U rhs)
template<class T, class U>
SI_INLINE_CONSTEXPR vec3< detail::vec_common_type_t< T, U > > operator/ (const vec3< T > &lhs, U rhs)
template<class T, class U>
SI_INLINE_CONSTEXPR vec2< detail::vec_common_type_t< T, U > > operator+ (T lhs, const vec2< U > &rhs)
template<class T, class U>
SI_INLINE_CONSTEXPR vec3< detail::vec_common_type_t< T, U > > operator+ (T lhs, const vec3< U > &rhs)
template<class T, class U>
SI_INLINE_CONSTEXPR vec2< detail::vec_common_type_t< T, U > > operator- (T lhs, const vec2< U > &rhs)
template<class T, class U>
SI_INLINE_CONSTEXPR vec3< detail::vec_common_type_t< T, U > > operator- (T lhs, const vec3< U > &rhs)
template<class T, class U>
SI_INLINE_CONSTEXPR vec2< detail::vec_common_type_t< T, U > > operator* (T lhs, const vec2< U > &rhs)
template<class T, class U>
SI_INLINE_CONSTEXPR vec3< detail::vec_common_type_t< T, U > > operator* (T lhs, const vec3< U > &rhs)
template<class T, class U>
SI_INLINE_CONSTEXPR vec2< detail::vec_common_type_t< T, U > > operator/ (T lhs, const vec2< U > &rhs)
template<class T, class U>
SI_INLINE_CONSTEXPR vec3< detail::vec_common_type_t< T, U > > operator/ (T lhs, const vec3< U > &rhs)
template<class T>
SI_INLINE_CONSTEXPR vec2< detail::vec_common_type_t< T > > abs (const vec2< T > &v)
template<class T>
SI_INLINE_CONSTEXPR vec3< detail::vec_common_type_t< T > > abs (const vec3< T > &v)
template<class T>
SI_INLINE_CONSTEXPR std::enable_if_t< std::is_arithmetic_v< T >, T > sign (T x)
template<class T>
SI_INLINE_CONSTEXPR vec2< detail::vec_common_type_t< T > > sign (const vec2< T > &v)
template<class T>
SI_INLINE_CONSTEXPR vec3< detail::vec_common_type_t< T > > 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 > > 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 > > max (T lhs, U rhs)
template<class T, class U>
SI_INLINE_CONSTEXPR vec2< detail::vec_common_type_t< T, U > > 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 > > 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 > > 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 > > 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 > > 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 > > 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 > > 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 > > 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 > > clamp (const vec3< T > &value, const vec3< U > &min, const vec3< V > &max)
template<class T, class U>
SI_INLINE_CONSTEXPR auto dot (const vec2< T > &lhs, const vec2< U > &rhs)
template<class T, class U>
SI_INLINE_CONSTEXPR auto dot (const vec3< T > &lhs, const vec3< U > &rhs)
template<class T>
SI_INLINE auto length (const vec2< T > &v)
template<class T>
SI_INLINE auto length (const vec3< T > &v)
template<class T>
SI_INLINE auto normalize (const vec2< T > &v)
template<class T>
SI_INLINE auto normalize (const vec3< T > &v)
template<class T, class U>
SI_INLINE auto distance (const vec2< T > &a, const vec2< U > &b)
template<class T, class U>
SI_INLINE auto 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 > > 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 > 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 > > 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 > > mix (const vec3< T > &a, const vec3< U > &b, V t)

Typedef Documentation

◆ vec2

template<class T>
using SI::internal::vec2 = vec<2, T>

◆ vec3

template<class T>
using SI::internal::vec3 = vec<3, T>

Function Documentation

◆ abs() [1/2]

template<class T>
SI_INLINE_CONSTEXPR vec2< detail::vec_common_type_t< T > > SI::internal::abs ( const vec2< T > & v)
nodiscard

◆ abs() [2/2]

template<class T>
SI_INLINE_CONSTEXPR vec3< detail::vec_common_type_t< T > > SI::internal::abs ( const vec3< T > & v)
nodiscard

◆ clamp() [1/5]

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 )
nodiscard

◆ clamp() [2/5]

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 )
nodiscard

◆ clamp() [3/5]

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 )
nodiscard

◆ clamp() [4/5]

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 )
nodiscard

◆ clamp() [5/5]

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 )
nodiscard

◆ cross()

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 )
nodiscard

◆ distance() [1/2]

template<class T, class U>
SI_INLINE auto SI::internal::distance ( const vec2< T > & a,
const vec2< U > & b )
nodiscard

◆ distance() [2/2]

template<class T, class U>
SI_INLINE auto SI::internal::distance ( const vec3< T > & a,
const vec3< U > & b )
nodiscard

◆ dot() [1/2]

template<class T, class U>
SI_INLINE_CONSTEXPR auto SI::internal::dot ( const vec2< T > & lhs,
const vec2< U > & rhs )
nodiscard

◆ dot() [2/2]

template<class T, class U>
SI_INLINE_CONSTEXPR auto SI::internal::dot ( const vec3< T > & lhs,
const vec3< U > & rhs )
nodiscard

◆ length() [1/2]

template<class T>
SI_INLINE auto SI::internal::length ( const vec2< T > & v)
nodiscard

◆ length() [2/2]

template<class T>
SI_INLINE auto SI::internal::length ( const vec3< T > & v)
nodiscard

◆ max() [1/3]

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 )
nodiscard

◆ max() [2/3]

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 )
nodiscard

◆ max() [3/3]

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 )
nodiscard

◆ min() [1/3]

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 )
nodiscard

◆ min() [2/3]

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 )
nodiscard

◆ min() [3/3]

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 )
nodiscard

◆ mix() [1/3]

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 )
nodiscard

◆ mix() [2/3]

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 )
nodiscard

◆ mix() [3/3]

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 )
nodiscard

◆ normalize() [1/2]

template<class T>
SI_INLINE auto SI::internal::normalize ( const vec2< T > & v)
nodiscard

◆ normalize() [2/2]

template<class T>
SI_INLINE auto SI::internal::normalize ( const vec3< T > & v)
nodiscard

◆ operator!=() [1/2]

template<class T, class U>
SI_INLINE_CONSTEXPR bool SI::internal::operator!= ( const vec2< T > & lhs,
const vec2< U > & rhs )
nodiscard

◆ operator!=() [2/2]

template<class T, class U>
SI_INLINE_CONSTEXPR bool SI::internal::operator!= ( const vec3< T > & lhs,
const vec3< U > & rhs )
nodiscard

◆ operator*() [1/6]

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 )
nodiscard

◆ operator*() [2/6]

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 )
nodiscard

◆ operator*() [3/6]

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 )
nodiscard

◆ operator*() [4/6]

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 )
nodiscard

◆ operator*() [5/6]

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 )
nodiscard

◆ operator*() [6/6]

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 )
nodiscard

◆ operator*=() [1/4]

template<class T, class U>
SI_INLINE_CONSTEXPR vec2< T > & SI::internal::operator*= ( vec2< T > & lhs,
const vec2< U > & rhs )

◆ operator*=() [2/4]

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 )

◆ operator*=() [3/4]

template<class T, class U>
SI_INLINE_CONSTEXPR vec3< T > & SI::internal::operator*= ( vec3< T > & lhs,
const vec3< U > & rhs )

◆ operator*=() [4/4]

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 )

◆ operator+() [1/6]

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 )
nodiscard

◆ operator+() [2/6]

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 )
nodiscard

◆ operator+() [3/6]

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 )
nodiscard

◆ operator+() [4/6]

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 )
nodiscard

◆ operator+() [5/6]

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 )
nodiscard

◆ operator+() [6/6]

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 )
nodiscard

◆ operator+=() [1/4]

template<class T, class U>
SI_INLINE_CONSTEXPR vec2< T > & SI::internal::operator+= ( vec2< T > & lhs,
const vec2< U > & rhs )

◆ operator+=() [2/4]

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 )

◆ operator+=() [3/4]

template<class T, class U>
SI_INLINE_CONSTEXPR vec3< T > & SI::internal::operator+= ( vec3< T > & lhs,
const vec3< U > & rhs )

◆ operator+=() [4/4]

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 )

◆ operator-() [1/8]

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 )
nodiscard

◆ operator-() [2/8]

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 )
nodiscard

◆ operator-() [3/8]

template<class T>
SI_INLINE_CONSTEXPR vec2< T > SI::internal::operator- ( const vec2< T > & v)
nodiscard

◆ operator-() [4/8]

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 )
nodiscard

◆ operator-() [5/8]

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 )
nodiscard

◆ operator-() [6/8]

template<class T>
SI_INLINE_CONSTEXPR vec3< T > SI::internal::operator- ( const vec3< T > & v)
nodiscard

◆ operator-() [7/8]

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 )
nodiscard

◆ operator-() [8/8]

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 )
nodiscard

◆ operator-=() [1/4]

template<class T, class U>
SI_INLINE_CONSTEXPR vec2< T > & SI::internal::operator-= ( vec2< T > & lhs,
const vec2< U > & rhs )

◆ operator-=() [2/4]

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 )

◆ operator-=() [3/4]

template<class T, class U>
SI_INLINE_CONSTEXPR vec3< T > & SI::internal::operator-= ( vec3< T > & lhs,
const vec3< U > & rhs )

◆ operator-=() [4/4]

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 )

◆ operator/() [1/6]

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 )
nodiscard

◆ operator/() [2/6]

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 )
nodiscard

◆ operator/() [3/6]

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 )
nodiscard

◆ operator/() [4/6]

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 )
nodiscard

◆ operator/() [5/6]

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 )
nodiscard

◆ operator/() [6/6]

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 )
nodiscard

◆ operator/=() [1/4]

template<class T, class U>
SI_INLINE_CONSTEXPR vec2< T > & SI::internal::operator/= ( vec2< T > & lhs,
const vec2< U > & rhs )

◆ operator/=() [2/4]

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 )

◆ operator/=() [3/4]

template<class T, class U>
SI_INLINE_CONSTEXPR vec3< T > & SI::internal::operator/= ( vec3< T > & lhs,
const vec3< U > & rhs )

◆ operator/=() [4/4]

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 )

◆ operator==() [1/2]

template<class T, class U>
SI_INLINE_CONSTEXPR bool SI::internal::operator== ( const vec2< T > & lhs,
const vec2< U > & rhs )
nodiscard

◆ operator==() [2/2]

template<class T, class U>
SI_INLINE_CONSTEXPR bool SI::internal::operator== ( const vec3< T > & lhs,
const vec3< U > & rhs )
nodiscard

◆ sign() [1/3]

template<class T>
SI_INLINE_CONSTEXPR vec2< detail::vec_common_type_t< T > > SI::internal::sign ( const vec2< T > & v)
nodiscard

◆ sign() [2/3]

template<class T>
SI_INLINE_CONSTEXPR vec3< detail::vec_common_type_t< T > > SI::internal::sign ( const vec3< T > & v)
nodiscard

◆ sign() [3/3]

template<class T>
SI_INLINE_CONSTEXPR std::enable_if_t< std::is_arithmetic_v< T >, T > SI::internal::sign ( T x)
nodiscard