tetl 0.1.0
Embedded Template Library
Loading...
Searching...
No Matches

Basic linear algebra algorithms. More...

Concepts

concept  etl::linalg::in_vector
 
concept  etl::linalg::out_vector
 
concept  etl::linalg::inout_vector
 
concept  etl::linalg::in_matrix
 
concept  etl::linalg::out_matrix
 
concept  etl::linalg::inout_matrix
 
concept  etl::linalg::in_object
 
concept  etl::linalg::out_object
 
concept  etl::linalg::inout_object
 

Classes

struct  accessor_conjugate< Accessor >
 
struct  accessor_scaled< ScalingFactor, Accessor >
 
struct  column_major_t
 
struct  explicit_diagonal_t
 
struct  implicit_unit_diagonal_t
 
struct  layout_transpose< Layout >
 
struct  lower_triangle_t
 
struct  row_major_t
 
struct  upper_triangle_t
 

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
 

Detailed Description

Basic linear algebra algorithms.

Function Documentation

◆ add()

template<in_object InObj1, in_object InObj2, out_object OutObj>
requires (InObj1::rank() == OutObj::rank() and InObj2::rank() == OutObj::rank())
auto add ( InObj1 x,
InObj2 y,
OutObj z ) -> void
constexpr

◆ conjugated() [1/2]

template<typename ElementType, typename Extents, typename Layout, typename Accessor>
auto conjugated ( mdspan< ElementType, Extents, Layout, Accessor > a)
nodiscardconstexpr

◆ conjugated() [2/2]

template<typename ElementType, typename Extents, typename Layout, typename NestedAccessor>
auto conjugated ( mdspan< ElementType, Extents, Layout, accessor_conjugate< NestedAccessor > > a)
nodiscardconstexpr

◆ copy()

template<in_object InObj, out_object OutObj>
requires (InObj::rank() == OutObj::rank())
auto copy ( InObj x,
OutObj y ) -> void
constexpr

◆ idx_abs_max()

template<in_vector InVec>
auto idx_abs_max ( InVec v) -> typename InVec::size_type
constexpr

◆ matrix_frob_norm() [1/2]

template<in_matrix InMat>
auto matrix_frob_norm ( InMat a)
nodiscardconstexpr

◆ matrix_frob_norm() [2/2]

template<in_matrix InMat, typename Scalar>
auto matrix_frob_norm ( InMat a,
Scalar init ) -> Scalar
nodiscardconstexpr

◆ matrix_vector_product()

template<in_matrix InMat, in_vector InVec, out_vector OutVec>
auto matrix_vector_product ( InMat a,
InVec x,
OutVec y ) -> void
constexprnoexcept

◆ scale()

template<typename Scalar, inout_object InOutObj>
auto scale ( Scalar alpha,
InOutObj x ) -> void
constexpr

◆ scaled()

template<typename ScalingFactor, typename ElementType, typename Extents, typename Layout, typename Accessor>
auto scaled ( ScalingFactor alpha,
mdspan< ElementType, Extents, Layout, Accessor > x )
nodiscardconstexpr

◆ swap_elements()

template<inout_object InOutObj1, inout_object InOutObj2>
requires (InOutObj1::rank() == InOutObj1::rank())
auto swap_elements ( InOutObj1 x,
InOutObj2 y ) -> void
constexpr

◆ vector_abs_sum() [1/2]

template<in_vector InVec>
auto vector_abs_sum ( InVec v) -> typename InVec::value_type
constexprnoexcept

◆ vector_abs_sum() [2/2]

template<in_vector InVec, typename Scalar>
auto vector_abs_sum ( InVec v,
Scalar init ) -> Scalar
constexprnoexcept

◆ vector_two_norm() [1/2]

template<in_vector InVec>
auto vector_two_norm ( InVec v) -> typename InVec::value_type
constexprnoexcept

◆ vector_two_norm() [2/2]

template<in_vector InVec, typename Scalar>
auto vector_two_norm ( InVec v,
Scalar init ) -> Scalar
constexprnoexcept