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())
constexpr auto add ( InObj1  x,
InObj2  y,
OutObj  z 
) -> void
constexpr

◆ conjugated() [1/2]

◆ conjugated() [2/2]

◆ copy()

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

◆ idx_abs_max()

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

◆ matrix_frob_norm() [1/2]

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

◆ matrix_frob_norm() [2/2]

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

◆ matrix_vector_product()

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

◆ scale()

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

◆ scaled()

◆ swap_elements()

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

◆ vector_abs_sum() [1/2]

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

◆ vector_abs_sum() [2/2]

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

◆ vector_two_norm() [1/2]

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

◆ vector_two_norm() [2/2]

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