|
Sequoia
|
Public Member Functions | |
| constexpr | coordinates_base (std::span< const value_type, D > vals) noexcept(has_identity_validator) |
| constexpr | coordinates_base (std::span< const value_type, D > vals, basis_isomorphism_type) noexcept(has_identity_validator) |
|
template<class... Ts> requires admits_canonical_basis | |
| &&D &&std::convertible_to< Ts, value_type > &&constexpr | explicit (sizeof...(Ts)==1) coordinates_base(Ts... ts) noexcept(has_identity_validator) |
|
template<class... Ts> requires (D > 1) && (sizeof...(Ts) > 1) && is_units_terminated_pack_v<basis_type, value_type, Ts...> | |
| constexpr | coordinates_base (Ts... ts) noexcept(has_identity_validator) |
| constexpr | coordinates_base (value_type val) noexcept(has_identity_validator) &&(D |
| constexpr const validator_type & | validator () const noexcept |
| constexpr std::span< const value_type, D > | values () const noexcept |
| constexpr std::span< value_type, D > | values () noexcept |
| constexpr const value_type & | value () const noexcept |
| constexpr value_type & | value () noexcept |
| constexpr | operator bool () const noexcept |
| This is explicit since otherwise, given two vectors a,b, a/b is well-formed due to implicit boolean conversion. | |
| constexpr value_type | operator[] (std::size_t i) const |
| constexpr value_type & | operator[] (std::size_t i) |
| constexpr auto | begin () const noexcept |
| constexpr auto | end () const noexcept |
| constexpr auto | rbegin () const noexcept |
| constexpr auto | rend () const noexcept |
| constexpr auto | cbegin () const noexcept |
| constexpr auto | cend () const noexcept |
| constexpr auto | crbegin () const noexcept |
| constexpr auto | crend () const noexcept |
| constexpr auto | begin () noexcept |
| constexpr auto | end () noexcept |
| constexpr auto | rbegin () noexcept |
| constexpr auto | rend () noexcept |
Static Public Attributes | |
| static constexpr bool | has_distinguished_origin {has_distinguished_origin_v<ConvexSpace>} |
| static constexpr bool | has_identity_validator {defines_identity_validator_v<Validator>} |
| static constexpr bool | has_freely_mutable_components {has_identity_validator && has_distinguished_origin} |
| static constexpr bool | admits_canonical_basis {admits_canonical_basis_v<free_module_type>} |
| static constexpr std::size_t | dimension {free_module_type::dimension} |
| static constexpr std::size_t | D {dimension} |
Protected Member Functions | |
| coordinates_base (const coordinates_base &)=default | |
| coordinates_base (coordinates_base &&) noexcept=default | |
| coordinates_base & | operator= (const coordinates_base &)=default |
| coordinates_base & | operator= (coordinates_base &&) noexcept=default |
|
template<class Self , class Fn > requires std::invocable<Fn, value_type&, value_type> | |
| constexpr Self && | apply_to_each_element (this Self &&self, std::span< const value_type, D > rhs, Fn f) |
|
template<class Self , class Fn > requires std::invocable<Fn, value_type&> | |
| constexpr Self & | for_each_element (this Self &self, Fn f) |
Friends | |
| constexpr coordinates_base &&!std ::same_as< Derived, displacement_coordinates_type > friend constexpr Derived::displacement_coordinates_type | operator- (const Derived &lhs, const Derived &rhs) noexcept(has_identity_validator) |
|
template<class Derived > requires std::derived_from<Derived, coordinates_base> | |
| constexpr Derived | operator+ (Derived c, const displacement_coordinates_type &v) noexcept(has_identity_validator) |
|
template<class Derived > requires std::derived_from<Derived, coordinates_base> && (!std::same_as<Derived, displacement_coordinates_type>) | |
| constexpr Derived | operator+ (const displacement_coordinates_type &v, Derived c) noexcept(has_identity_validator) |
|
template<class Derived > requires has_distinguished_origin | |
| constexpr Derived | operator+ (Derived c, const Derived &v) noexcept(has_identity_validator) |
|
template<class Derived > requires std::derived_from<Derived, coordinates_base> | |
| constexpr Derived | operator- (Derived c, const displacement_coordinates_type &v) noexcept(has_identity_validator) |
|
template<class Derived > requires has_distinguished_origin | |
| constexpr Derived | operator* (Derived v, value_type u) noexcept(has_identity_validator) |
|
template<class Derived > requires has_distinguished_origin | |
| constexpr Derived | operator* (value_type u, Derived v) noexcept(has_identity_validator) |
|
template<class Derived > requires has_distinguished_origin | |
| constexpr Derived | operator* (Derived c, std::span< const value_type, D > u) noexcept(has_identity_validator) |
|
template<class Derived > requires has_distinguished_origin | |
| constexpr Derived | operator* (std::span< const value_type, D > u, Derived c) noexcept(has_identity_validator) |
|
template<class Derived > requires has_distinguished_origin | |
| constexpr Derived | operator/ (Derived v, value_type u) |
|
template<class Derived > requires has_distinguished_origin | |
| constexpr Derived | operator/ (Derived c, std::span< const value_type, D > u) noexcept(has_identity_validator) |
| constexpr bool | operator== (const coordinates_base &lhs, const coordinates_base &rhs) noexcept |
| constexpr auto | operator<=> (const coordinates_base &lhs, const coordinates_base &rhs) noexcept |