Loading...
Searching...
No Matches
terra::linalg::VectorLike Concept Reference

Concept for types that behave like vectors. Requires exposing ScalarType and implementations for linear algebra operations. More...

#include <vector.hpp>

Concept definition

template<typename T>
concept terra::linalg::VectorLike = requires(
const T& self_const,
T& self,
const std::vector< typename T::ScalarType >& c,
const T& x,
T& x_non_const,
const std::vector< T >& xx,
const typename T::ScalarType c0 ) {
typename T::ScalarType;
{ self.lincomb_impl( c, xx, c0 ) } -> std::same_as< void >;
{ self_const.dot_impl( x ) } -> std::same_as< typename T::ScalarType >;
{ self.invert_entries_impl() } -> std::same_as< void >;
{ self.scale_with_vector_impl( x ) } -> std::same_as< void >;
{ self.randomize_impl() } -> std::same_as< void >;
{ self_const.max_abs_entry_impl() } -> std::same_as< typename T::ScalarType >;
{ self_const.has_nan_or_inf_impl() } -> std::same_as< bool >;
{ self.swap_impl( x_non_const ) } -> std::same_as< void >;
}
Concept for types that behave like vectors. Requires exposing ScalarType and implementations for line...
Definition vector.hpp:8

Detailed Description

Concept for types that behave like vectors. Requires exposing ScalarType and implementations for linear algebra operations.