tetl 0.1.0
Embedded Template Library
Loading...
Searching...
No Matches
etl::linalg Namespace Reference

Classes

struct  accessor_conjugate
 
struct  accessor_scaled
 
struct  column_major_t
 
struct  explicit_diagonal_t
 
struct  implicit_unit_diagonal_t
 
struct  layout_transpose
 
struct  lower_triangle_t
 
struct  row_major_t
 
struct  upper_triangle_t
 

Concepts

concept  in_vector
 
concept  out_vector
 
concept  inout_vector
 
concept  in_matrix
 
concept  out_matrix
 
concept  inout_matrix
 
concept  in_object
 
concept  out_object
 
concept  inout_object
 

Functions

template<in_object InObj1, in_object InObj2, out_object OutObj>
requires (InObj1::rank() == OutObj::rank() and InObj2::rank() == OutObj::rank())
constexpr auto add (InObj1 x, InObj2 y, OutObj z) -> void
 
template<typename ElementType, typename Extents, typename Layout, typename Accessor>
constexpr auto conjugated (mdspan< ElementType, Extents, Layout, Accessor > a)
 
template<typename ElementType, typename Extents, typename Layout, typename NestedAccessor>
constexpr auto conjugated (mdspan< ElementType, Extents, Layout, accessor_conjugate< NestedAccessor > > a)
 
template<in_object InObj, out_object OutObj>
requires (InObj::rank() == OutObj::rank())
constexpr auto copy (InObj x, OutObj y) -> void
 
template<in_vector InVec>
constexpr auto idx_abs_max (InVec v) -> typename InVec::size_type
 
template<in_matrix InMat>
constexpr auto matrix_frob_norm (InMat a)
 
template<in_matrix InMat, typename Scalar>
constexpr auto matrix_frob_norm (InMat a, Scalar init) -> Scalar
 
template<in_matrix InMat, in_vector InVec, out_vector OutVec>
constexpr auto matrix_vector_product (InMat a, InVec x, OutVec y) noexcept -> void
 
template<typename Scalar, inout_object InOutObj>
constexpr auto scale (Scalar alpha, InOutObj x) -> void
 
template<typename ScalingFactor, typename ElementType, typename Extents, typename Layout, typename Accessor>
constexpr auto scaled (ScalingFactor alpha, mdspan< ElementType, Extents, Layout, Accessor > x)
 
template<inout_object InOutObj1, inout_object InOutObj2>
requires (InOutObj1::rank() == InOutObj1::rank())
constexpr auto swap_elements (InOutObj1 x, InOutObj2 y) -> void
 
template<in_vector InVec>
constexpr auto vector_abs_sum (InVec v) noexcept -> typename InVec::value_type
 
template<in_vector InVec, typename Scalar>
constexpr auto vector_abs_sum (InVec v, Scalar init) noexcept -> Scalar
 
template<in_vector InVec>
constexpr auto vector_two_norm (InVec v) noexcept -> typename InVec::value_type
 
template<in_vector InVec, typename Scalar>
constexpr auto vector_two_norm (InVec v, Scalar init) noexcept -> Scalar