Harlinn.Windows 0.1
|
#include <VectorMath.h>
Public Types | |
using | Indices = std::make_index_sequence<N> |
using | ValueType = std::remove_cvref_t<ValueT> |
using | UIntType = MakeUnsigned<ValueType> |
using | Traits = SIMD::Traits<ValueType, N> |
Public Member Functions | |
constexpr | Vector () noexcept |
template<typename T > requires ( N > 1 ) | |
constexpr | Vector (T x) noexcept |
template<typename... Args> requires std::conjunction_v<std::is_same<ValueType, std::remove_cvref_t<Args>>...> && ( sizeof...( Args ) == N ) | |
constexpr | Vector (Args ...args) |
constexpr size_t | size () const noexcept |
constexpr size_t | capacity () const noexcept |
constexpr ValueType & | operator[] (size_t index) noexcept |
constexpr const ValueType & | operator[] (size_t index) const noexcept |
constexpr Vector | operator- () const |
constexpr Vector | operator+ (const Vector &other) const |
constexpr Vector | operator- (const Vector &other) const |
constexpr Vector | operator+ (const ValueType(&other)[N]) const |
constexpr Vector | operator- (const ValueType(&other)[N]) const |
constexpr Vector | operator+ (const ValueType value) const |
constexpr Vector | operator- (const ValueType value) const |
constexpr Vector | operator* (const ValueType value) const |
constexpr Vector | operator/ (const ValueType value) const |
constexpr Vector & | operator+= (const Vector &other) |
constexpr Vector & | operator-= (const Vector &other) |
constexpr Vector & | operator+= (ValueType value) |
constexpr Vector & | operator-= (ValueType value) |
constexpr Vector & | operator*= (ValueType value) |
constexpr Vector & | operator/= (ValueType value) |
std::string | ToString () const |
Static Public Attributes | |
static constexpr size_t | Size = N |
Protected Types | |
using | SIMDType = typename Traits::SIMDType |
Protected Attributes | |
ValueType | values_ [Capacity] = { } |
Static Protected Attributes | |
static constexpr size_t | Capacity = Traits::Capacity |
static constexpr size_t | SIMDIterations = Traits::SIMDIterations |
static constexpr size_t | SIMDValuesPerIteration = Traits::SIMDTypeSize / sizeof( ValueType ) |
Private Member Functions | |
template<size_t S, size_t... I> | |
constexpr Vector | NegImpl (std::index_sequence< I... >) const |
Vector | NegImpl () const |
template<size_t S, size_t... I> | |
constexpr Vector | AddImpl (const ValueType(&other)[S], std::index_sequence< I... >) const |
Vector | AddImpl (const Vector &other) const |
template<size_t... I> | |
constexpr Vector | AddImpl (ValueType value, std::index_sequence< I... >) const |
Vector | AddImpl (ValueType value) const |
template<size_t S, size_t... I> | |
constexpr Vector | SubImpl (const ValueType(&other)[S], std::index_sequence< I... >) const |
Vector | SubImpl (const Vector &other) const |
template<size_t... I> | |
constexpr Vector | SubImpl (ValueType value, std::index_sequence< I... >) const |
Vector | SubImpl (ValueType value) const |
template<size_t... I> | |
constexpr Vector | MulImpl (ValueType value, std::index_sequence< I... >) const |
Vector | MulImpl (ValueType value) const |
template<size_t... I> | |
constexpr Vector | DivImpl (ValueType value, std::index_sequence< I... >) const |
Vector | DivImpl (ValueType value) const |
template<size_t... I> | |
constexpr ValueType | MagnitudeImpl (std::index_sequence< I... >) const |
template<size_t... I> | |
constexpr bool | EqualsImpl (const ValueType(&other)[N], std::index_sequence< I... >) const |
constexpr bool | EqualsImpl (const Vector &other) const |
template<size_t S, size_t... I> | |
constexpr void | AddAssignImpl (const ValueType(&other)[S], std::index_sequence< I... >) |
constexpr void | AddAssignImpl (const Vector &other) |
template<size_t S, size_t... I> | |
constexpr void | SubAssignImpl (const ValueType(&other)[N], std::index_sequence< I... >) |
constexpr void | SubAssignImpl (const Vector &other) |
template<size_t... I> | |
constexpr void | AddAssignImpl (ValueType value, std::index_sequence< I... >) |
constexpr void | AddAssignImpl (ValueType value) |
template<size_t... I> | |
constexpr void | SubAssignImpl (ValueType value, std::index_sequence< I... >) |
constexpr void | SubAssignImpl (ValueType value) |
template<size_t... I> | |
constexpr void | MulAssignImpl (ValueType value, std::index_sequence< I... >) |
constexpr void | MulAssignImpl (ValueType value) |
template<size_t... I> | |
constexpr void | DivAssignImpl (ValueType value, std::index_sequence< I... >) |
constexpr void | DivAssignImpl (ValueType value) |
Vector is specialized for:
The specializations are crafted for use in graphic apps.
ValueT |
N | The size of the Vector |
using Harlinn::Math::Vector< ValueT, N >::Indices = std::make_index_sequence<N> |
|
protected |
using Harlinn::Math::Vector< ValueT, N >::Traits = SIMD::Traits<ValueType, N> |
using Harlinn::Math::Vector< ValueT, N >::UIntType = MakeUnsigned<ValueType> |
using Harlinn::Math::Vector< ValueT, N >::ValueType = std::remove_cvref_t<ValueT> |
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
|
inlineconstexpr |
|
inlineconstexprprivate |
|
inlineconstexprprivate |
|
inlineconstexprprivate |
|
inlineconstexprprivate |
|
inlinenodiscardconstexprprivate |
|
inlinenodiscardprivate |
|
inlinenodiscardprivate |
|
inlinenodiscardconstexprprivate |
|
inlineconstexprnoexcept |
|
inlineconstexprprivate |
|
inlineconstexprprivate |
|
inlinenodiscardprivate |
|
inlinenodiscardconstexprprivate |
|
inlinenodiscardconstexprprivate |
|
inlinenodiscardconstexprprivate |
|
inlinenodiscardconstexprprivate |
|
inlineconstexprprivate |
|
inlineconstexprprivate |
|
inlinenodiscardprivate |
|
inlinenodiscardconstexprprivate |
|
inlinenodiscardprivate |
|
inlinenodiscardconstexprprivate |
|
inlinenodiscardconstexpr |
|
inlineconstexpr |
|
inlinenodiscardconstexpr |
|
inlinenodiscardconstexpr |
|
inlinenodiscardconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlinenodiscardconstexpr |
|
inlinenodiscardconstexpr |
|
inlinenodiscardconstexpr |
|
inlinenodiscardconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlinenodiscardconstexpr |
|
inlineconstexpr |
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
|
inlineconstexprprivate |
|
inlineconstexprprivate |
|
inlineconstexprprivate |
|
inlineconstexprprivate |
|
inlinenodiscardconstexprprivate |
|
inlinenodiscardprivate |
|
inlinenodiscardprivate |
|
inlinenodiscardconstexprprivate |
|
inlinenodiscard |
|
staticconstexprprotected |
|
staticconstexprprotected |
|
staticconstexprprotected |
|
staticconstexpr |
|
protected |