Iros
 
Loading...
Searching...
No Matches
di::math::linalg::Vec< Tag > Class Template Reference

#include <di/math/linalg/vec.h>

Inheritance diagram for di::math::linalg::Vec< Tag >:
[legend]

Public Member Functions

 Vec ()=default
 
template<concepts::ConvertibleTo< T >... Ts>
requires (sizeof...(Ts) == extent)
constexpr Vec (Ts &&... values)
 
constexpr auto values () -> Storage &
 
constexpr auto values () const -> Storage const &
 
constexpr auto begin ()
 
constexpr auto begin () const
 
constexpr auto end ()
 
constexpr auto end () const
 
constexpr auto operator+= (Vec const &other) -> Vec &
 
constexpr auto operator+= (T const &value) -> Vec &
 
constexpr auto operator+= (SignedT const &value) -> Vec &requires(!di::SameAs< SignedT, T >)
 
constexpr auto operator-= (Vec const &other) -> Vec &
 
constexpr auto operator-= (T const &value) -> Vec &
 
constexpr auto operator-= (SignedT const &value) -> Vec &requires(!di::SameAs< SignedT, T >)
 
constexpr auto operator*= (T const &value) -> Vec &
 
constexpr auto operator/= (T const &value) -> Vec &
 
- Public Member Functions inherited from di::util::AddMemberGet< Vec< Tag > >
constexpr auto get () &-> decltype(auto)
 
constexpr auto get () const &-> decltype(auto)
 
constexpr auto get () &&-> decltype(auto)
 
constexpr auto get () const &&-> decltype(auto)
 
constexpr auto get () &-> decltype(auto)
 
constexpr auto get () const &-> decltype(auto)
 
constexpr auto get () &&-> decltype(auto)
 
constexpr auto get () const &&-> decltype(auto)
 

Friends

constexpr friend auto operator== (Vec const &a, Vec const &b) -> bool requires(concepts::EqualityComparable< T >)
 
constexpr friend auto operator<=> (Vec const &a, Vec const &b)
 
constexpr friend auto operator+ (Vec const &a, Vec const &b) -> Vec requires(concepts::Copyable< T >)
 
constexpr friend auto operator+ (Vec const &a, T const &b) -> Vec requires(concepts::Copyable< T >)
 
constexpr friend auto operator+ (Vec const &a, SignedT const &b) -> Vec requires(concepts::Copyable< T > &&!di::SameAs< T, SignedT >)
 
constexpr friend auto operator+ (T const &b, Vec const &a) -> Vec requires(concepts::Copyable< T >)
 
constexpr friend auto operator+ (SignedT const &b, Vec const &a) -> Vec requires(concepts::Copyable< T > &&!di::SameAs< T, SignedT >)
 
constexpr friend auto operator- (Vec const &a, Vec const &b) -> Vec requires(concepts::Copyable< T >)
 
constexpr friend auto operator- (Vec const &a, T const &b) -> Vec requires(concepts::Copyable< T >)
 
constexpr friend auto operator- (Vec const &a, SignedT const &b) -> Vec requires(concepts::Copyable< T > &&!di::SameAs< T, SignedT >)
 
constexpr friend auto operator- (T const &b, Vec const &a) -> Vec requires(concepts::Copyable< T >)
 
constexpr friend auto operator- (SignedT const &b, Vec const &a) -> Vec requires(concepts::Copyable< T > &&!di::SameAs< T, SignedT >)
 
constexpr friend auto operator* (Vec const &a, T const &b) -> Vec
 
constexpr friend auto operator* (T const &b, Vec &a) -> Vec
 
constexpr friend auto operator/ (Vec const &a, T const &b) -> Vec
 
constexpr friend auto operator/ (T const &b, Vec &a) -> Vec
 
constexpr friend auto tag_invoke (di::Tag< vocab::tuple_size >, di::InPlaceType< Vec >)
 
template<usize index>
requires (index < extent)
constexpr friend auto tag_invoke (di::Tag< vocab::tuple_element >, di::InPlaceType< Vec >, Constexpr< index >) -> InPlaceType< T >
 
template<usize index>
requires (index < extent)
constexpr friend auto tag_invoke (di::Tag< vocab::tuple_element >, di::InPlaceType< Vec const >, Constexpr< index >) -> InPlaceType< T const >
 
template<concepts::DecaySameAs< Vec > Self, usize index>
requires (index < extent)
constexpr friend auto tag_invoke (di::Tag< util::get_in_place >, Constexpr< index >, Self &&self) -> decltype(auto)
 

Constructor & Destructor Documentation

◆ Vec() [1/2]

template<detail::Tag Tag>
di::math::linalg::Vec< Tag >::Vec ( )
default

◆ Vec() [2/2]

template<detail::Tag Tag>
template<concepts::ConvertibleTo< T >... Ts>
requires (sizeof...(Ts) == extent)
di::math::linalg::Vec< Tag >::Vec ( Ts &&... values)
inlineconstexpr

Member Function Documentation

◆ begin() [1/2]

template<detail::Tag Tag>
auto di::math::linalg::Vec< Tag >::begin ( )
inlineconstexpr

◆ begin() [2/2]

template<detail::Tag Tag>
auto di::math::linalg::Vec< Tag >::begin ( ) const
inlineconstexpr

◆ end() [1/2]

template<detail::Tag Tag>
auto di::math::linalg::Vec< Tag >::end ( )
inlineconstexpr

◆ end() [2/2]

template<detail::Tag Tag>
auto di::math::linalg::Vec< Tag >::end ( ) const
inlineconstexpr

◆ operator*=()

template<detail::Tag Tag>
auto di::math::linalg::Vec< Tag >::operator*= ( T const & value) -> Vec&
inlineconstexpr

◆ operator+=() [1/3]

template<detail::Tag Tag>
auto di::math::linalg::Vec< Tag >::operator+= ( SignedT const & value) -> Vec& requires(!di::SameAs<SignedT, T>)
inlineconstexpr

◆ operator+=() [2/3]

template<detail::Tag Tag>
auto di::math::linalg::Vec< Tag >::operator+= ( T const & value) -> Vec&
inlineconstexpr

◆ operator+=() [3/3]

template<detail::Tag Tag>
auto di::math::linalg::Vec< Tag >::operator+= ( Vec< Tag > const & other) -> Vec&
inlineconstexpr

◆ operator-=() [1/3]

template<detail::Tag Tag>
auto di::math::linalg::Vec< Tag >::operator-= ( SignedT const & value) -> Vec& requires(!di::SameAs<SignedT, T>)
inlineconstexpr

◆ operator-=() [2/3]

template<detail::Tag Tag>
auto di::math::linalg::Vec< Tag >::operator-= ( T const & value) -> Vec&
inlineconstexpr

◆ operator-=() [3/3]

template<detail::Tag Tag>
auto di::math::linalg::Vec< Tag >::operator-= ( Vec< Tag > const & other) -> Vec&
inlineconstexpr

◆ operator/=()

template<detail::Tag Tag>
auto di::math::linalg::Vec< Tag >::operator/= ( T const & value) -> Vec&
inlineconstexpr

◆ values() [1/2]

template<detail::Tag Tag>
auto di::math::linalg::Vec< Tag >::values ( ) -> Storage&
inlineconstexpr

◆ values() [2/2]

template<detail::Tag Tag>
auto di::math::linalg::Vec< Tag >::values ( ) const -> Storage const&
inlineconstexpr

Friends And Related Symbol Documentation

◆ operator* [1/2]

template<detail::Tag Tag>
friend auto operator* ( T const & b,
Vec< Tag > & a ) -> Vec
friend

◆ operator* [2/2]

template<detail::Tag Tag>
friend auto operator* ( Vec< Tag > const & a,
T const & b ) -> Vec
friend

◆ operator+ [1/5]

template<detail::Tag Tag>
friend auto operator+ ( SignedT const & b,
Vec< Tag > const & a ) -> Vec requires(concepts::Copyable<T> && !di::SameAs<T, SignedT>)
friend

◆ operator+ [2/5]

template<detail::Tag Tag>
friend auto operator+ ( T const & b,
Vec< Tag > const & a ) -> Vec requires(concepts::Copyable<T>)
friend

◆ operator+ [3/5]

template<detail::Tag Tag>
friend auto operator+ ( Vec< Tag > const & a,
SignedT const & b ) -> Vec requires(concepts::Copyable<T> && !di::SameAs<T, SignedT>)
friend

◆ operator+ [4/5]

template<detail::Tag Tag>
friend auto operator+ ( Vec< Tag > const & a,
T const & b ) -> Vec requires(concepts::Copyable<T>)
friend

◆ operator+ [5/5]

template<detail::Tag Tag>
friend auto operator+ ( Vec< Tag > const & a,
Vec< Tag > const & b ) -> Vec requires(concepts::Copyable<T>)
friend

◆ operator- [1/5]

template<detail::Tag Tag>
friend auto operator- ( SignedT const & b,
Vec< Tag > const & a ) -> Vec requires(concepts::Copyable<T> && !di::SameAs<T, SignedT>)
friend

◆ operator- [2/5]

template<detail::Tag Tag>
friend auto operator- ( T const & b,
Vec< Tag > const & a ) -> Vec requires(concepts::Copyable<T>)
friend

◆ operator- [3/5]

template<detail::Tag Tag>
friend auto operator- ( Vec< Tag > const & a,
SignedT const & b ) -> Vec requires(concepts::Copyable<T> && !di::SameAs<T, SignedT>)
friend

◆ operator- [4/5]

template<detail::Tag Tag>
friend auto operator- ( Vec< Tag > const & a,
T const & b ) -> Vec requires(concepts::Copyable<T>)
friend

◆ operator- [5/5]

template<detail::Tag Tag>
friend auto operator- ( Vec< Tag > const & a,
Vec< Tag > const & b ) -> Vec requires(concepts::Copyable<T>)
friend

◆ operator/ [1/2]

template<detail::Tag Tag>
friend auto operator/ ( T const & b,
Vec< Tag > & a ) -> Vec
friend

◆ operator/ [2/2]

template<detail::Tag Tag>
friend auto operator/ ( Vec< Tag > const & a,
T const & b ) -> Vec
friend

◆ operator<=>

template<detail::Tag Tag>
friend auto operator<=> ( Vec< Tag > const & a,
Vec< Tag > const & b )
friend

◆ operator==

template<detail::Tag Tag>
friend auto operator== ( Vec< Tag > const & a,
Vec< Tag > const & b ) -> bool requires(concepts::EqualityComparable<T>)
friend

◆ tag_invoke [1/4]

template<detail::Tag Tag>
template<concepts::DecaySameAs< Vec > Self, usize index>
requires (index < extent)
friend auto tag_invoke ( di::Tag< util::get_in_place > ,
Constexpr< index > ,
Self && self ) -> decltype(auto)
friend

◆ tag_invoke [2/4]

template<detail::Tag Tag>
template<usize index>
requires (index < extent)
friend auto tag_invoke ( di::Tag< vocab::tuple_element > ,
di::InPlaceType< Vec< Tag > > ,
Constexpr< index >  ) -> InPlaceType<T>
friend

◆ tag_invoke [3/4]

template<detail::Tag Tag>
template<usize index>
requires (index < extent)
friend auto tag_invoke ( di::Tag< vocab::tuple_element > ,
di::InPlaceType< Vec< Tag > const > ,
Constexpr< index >  ) -> InPlaceType<T const>
friend

◆ tag_invoke [4/4]

template<detail::Tag Tag>
friend auto tag_invoke ( di::Tag< vocab::tuple_size > ,
di::InPlaceType< Vec< Tag > >  )
friend

The documentation for this class was generated from the following file: