Arene Base
Fundamental Utilities For Safety Critical C++
Loading...
Searching...
No Matches
arene::base::linalg Namespace Reference

Typedef Documentation

◆ math_accessor_t

template<class T>
using arene::base::linalg::math_accessor_t = typename math_traits<T>::accessor_type

The mdspan-equivalent accessor type of T if T is a linalg object, or a substitution error if not.

Template Parameters
TThe type to inspect

◆ math_element_t

template<class T>
using arene::base::linalg::math_element_t = typename math_traits<T>::element_type

The mdspan-equivalent element type of T if T is a linalg object, or a substitution error if not.

Template Parameters
TThe type to inspect

◆ math_extents_t

template<class T>
using arene::base::linalg::math_extents_t = typename math_traits<T>::extents_type

The mdspan-equivalent extents type of T if T is a linalg object, or a substitution error if not.

Template Parameters
TThe type to inspect

◆ math_index_t

template<class T>
using arene::base::linalg::math_index_t = typename math_traits<T>::index_type

The mdspan-equivalent index type of T if T is a linalg object, or a substitution error if not.

Template Parameters
TThe type to inspect

◆ math_layout_t

template<class T>
using arene::base::linalg::math_layout_t = typename math_traits<T>::layout_type

The mdspan-equivalent layout type of T if T is a linalg object, or a substitution error if not.

Template Parameters
TThe type to inspect

◆ math_rank_t

template<class T>
using arene::base::linalg::math_rank_t = typename math_traits<T>::rank_type

The mdspan-equivalent rank type of T if T is a linalg object, or a substitution error if not.

Template Parameters
TThe type to inspect

◆ math_reference_t

template<class T>
using arene::base::linalg::math_reference_t = typename math_traits<T>::reference

The mdspan-equivalent reference type of T if T is a linalg object, or a substitution error if not.

Template Parameters
TThe type to inspect

◆ math_size_t

template<class T>
using arene::base::linalg::math_size_t = typename math_traits<T>::size_type

The mdspan-equivalent size type of T if T is a linalg object, or a substitution error if not.

Template Parameters
TThe type to inspect

◆ math_value_t

template<class T>
using arene::base::linalg::math_value_t = typename math_traits<T>::value_type

The mdspan-equivalent value type of T if T is a linalg object, or a substitution error if not.

Template Parameters
TThe type to inspect

Variable Documentation

◆ is_in_matrix_v

template<typename T>
bool arene::base::linalg::is_in_matrix_v {linalg_traits_detail::is_in_matrix_v<std::remove_cv_t<T>>}
externconstexpr

Determine if the given type is an in-matrix, usable as an input matrix for linalg algorithms.

Template Parameters
TThe type to check

◆ is_in_object_v

template<typename T>
bool arene::base::linalg::is_in_object_v {is_in_vector_v<T> || is_in_matrix_v<T>}
externconstexpr

Determine if the given type is an in-object, i.e. an in-vector or in-matrix.

Template Parameters
TThe type to check

◆ is_in_vector_v

template<typename T>
bool arene::base::linalg::is_in_vector_v {linalg_traits_detail::is_in_vector_v<std::remove_cv_t<T>>}
externconstexpr

Determine if the given type is an in-vector, usable as an input vector for linalg algorithms.

Template Parameters
TThe type to check

◆ is_inout_matrix_v

template<typename T>
bool arene::base::linalg::is_inout_matrix_v {is_out_matrix_v<T>}
externconstexpr

Determine if the given type is an inout-matrix, usable as both input and output matrix for linalg algorithms.

Template Parameters
TThe type to check

◆ is_inout_object_v

template<typename T>
bool arene::base::linalg::is_inout_object_v {is_inout_vector_v<T> || is_inout_matrix_v<T>}
externconstexpr

Determine if the given type is an inout-object, i.e. an inout-vector or inout-matrix.

Template Parameters
TThe type to check

◆ is_inout_vector_v

template<typename T>
bool arene::base::linalg::is_inout_vector_v {is_out_vector_v<T>}
externconstexpr

Determine if the given type is an inout-vector, usable as both input and output vector for linalg algorithms.

Template Parameters
TThe type to check

◆ is_out_matrix_v

template<typename T>
bool arene::base::linalg::is_out_matrix_v {linalg_traits_detail::is_out_matrix_v<std::remove_cv_t<T>>}
externconstexpr

Determine if the given type is an out-matrix, usable as an output matrix for linalg algorithms.

Template Parameters
TThe type to check

◆ is_out_object_v

template<typename T>
bool arene::base::linalg::is_out_object_v {is_out_vector_v<T> || is_out_matrix_v<T>}
externconstexpr

Determine if the given type is an out-object, i.e. an out-vector or out-matrix.

Template Parameters
TThe type to check

◆ is_out_vector_v

template<typename T>
bool arene::base::linalg::is_out_vector_v {linalg_traits_detail::is_out_vector_v<std::remove_cv_t<T>>}
externconstexpr

Determine if the given type is an out-vector, usable as an output vector for linalg algorithms.

Template Parameters
TThe type to check

◆ is_scalar_v

template<typename T>
bool arene::base::linalg::is_scalar_v
externconstexpr
Initial value:
{
}
static constexpr value_type value
Definition integral_constant.hpp:34
constexpr bool is_mdspan_v
Type trait to determine if the given type is an mdspan of some kind.
constexpr bool is_copyable_v
Backport for the C++20 copyable concept.

Determine if the given type is a scalar for the purposes of linalg algorithms.

Template Parameters
TThe type to check
Note
To be a scalar for this purpose, the type must be semiregular (having all special member functions) and not be an mdspan. The value_types of vectors and matrices used in linalg must be scalars in this sense.
C++26 also requires !std::is_execution_policy_v<T> but there are no execution policies in C++14.