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

Concept for types that behave like block 2x2 operators. Extends OperatorLike and requires block types and accessors. More...

#include <operator.hpp>

Concept definition

template<typename T>
concept terra::linalg::Block2x2OperatorLike = OperatorLike< T > && requires( const T& self_const, T& self ) {
typename T::Block11Type;
typename T::Block12Type;
typename T::Block21Type;
typename T::Block22Type;
{ self_const.block_11() } -> std::same_as< const typename T::Block11Type& >;
{ self_const.block_12() } -> std::same_as< const typename T::Block12Type& >;
{ self_const.block_21() } -> std::same_as< const typename T::Block21Type& >;
{ self_const.block_22() } -> std::same_as< const typename T::Block22Type& >;
{ self.block_11() } -> std::same_as< typename T::Block11Type& >;
{ self.block_12() } -> std::same_as< typename T::Block12Type& >;
{ self.block_21() } -> std::same_as< typename T::Block21Type& >;
{ self.block_22() } -> std::same_as< typename T::Block22Type& >;
}
Concept for types that behave like block 2-vectors. Extends VectorLike and requires block types and a...
Definition vector.hpp:47
Concept for types that behave like block 2x2 operators. Extends OperatorLike and requires block types...
Definition operator.hpp:117
Concept for types that behave like linear operators.
Definition operator.hpp:57

Detailed Description

Concept for types that behave like block 2x2 operators. Extends OperatorLike and requires block types and accessors.