Sequoia
|
Forward declaration for the coordinates class template. More...
#include <Spaces.hpp>
Public Types | |
using | base_type = coordinates_base< ConvexSpace, Basis, Origin, Validator > |
using | displacement_coordinates_type = base_type::displacement_coordinates_type |
using | value_type = base_type::value_type |
![]() | |
using | convex_space_type = ConvexSpace |
using | basis_type = Basis |
using | validator_type = Validator |
using | origin_type = Origin |
using | set_type = ConvexSpace::set_type |
using | free_module_type = free_module_type_of_t< ConvexSpace > |
using | commutative_ring_type = commutative_ring_type_of_t< ConvexSpace > |
using | value_type = commutative_ring_type |
using | displacement_coordinates_type = DisplacementCoordinates |
Public Member Functions | |
constexpr coordinates | operator+ () const noexcept(has_identity_validator) |
constexpr coordinates | operator- () const noexcept(has_identity_validator) |
![]() | |
constexpr | coordinates_base (std::span< const value_type, D > vals) noexcept(has_identity_validator) |
template<class... Ts> requires (D > 1) && (sizeof...(Ts) == D) && (std::convertible_to<Ts, value_type> && ...) | |
constexpr | coordinates_base (Ts... ts) noexcept(has_identity_validator) |
template<class T > requires (D == 1) && (std::convertible_to<T, value_type>) | |
constexpr | coordinates_base (T val) noexcept(has_identity_validator) |
template<class Self > | |
constexpr Self & | operator+= (this Self &self, const displacement_coordinates_type &v) noexcept(has_identity_validator) |
template<class Self > requires has_distinguished_origin | |
&&!std ::is_same_v< coordinates_base, displacement_coordinates_type > constexpr Self & | operator+= (this Self &self, const coordinates_base &v) noexcept(has_identity_validator) |
template<class Self > | |
constexpr Self & | operator-= (this Self &self, const displacement_coordinates_type &v) noexcept(has_identity_validator) |
template<class Self > requires has_distinguished_origin | |
constexpr Self & | operator*= (this Self &self, value_type u) noexcept(has_identity_validator) |
template<class Self > requires has_distinguished_origin | |
constexpr Self & | operator/= (this Self &self, value_type u) |
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) |
Static Public Attributes | |
static constexpr bool | has_identity_validator {base_type::has_identity_validator} |
![]() | |
static constexpr bool | has_distinguished_origin {std::is_same_v<Origin, distinguished_origin>} |
static constexpr bool | has_identity_validator {is_identity_validator_v<Validator>} |
static constexpr std::size_t | dimension {free_module_type::dimension} |
static constexpr std::size_t | D {dimension} |
Friends | |
constexpr displacement_coordinates_type | operator- (const coordinates &lhs, const coordinates &rhs) noexcept(has_identity_validator) |
Additional Inherited Members | |
![]() | |
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 void | 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 void | for_each_element (this Self &self, Fn f) |
Forward declaration for the coordinates class template.
Class template for representing coordinates on vector spaces, affine spaces and various generalizations.