Uni20
Asynchronous tensor and runtime library.
Loading...
Searching...
No Matches
Public Member Functions | List of all members
uni20::krylov::DenseHostVectorAlgebra< Scalar > Class Template Reference

Dense host vector algebra without an assembled operator. More...

#include <dense_host_vector.hpp>

Inheritance diagram for uni20::krylov::DenseHostVectorAlgebra< Scalar >:
[legend]

Public Member Functions

DenseHostVector< Scalar > allocate_like (DenseHostVector< Scalar > const &x)
 
DenseHostVector< Scalar > allocate_like (std::span< Scalar const > x)
 Allocate independent owning storage from a retained span's extent.
 
int allocation_count () const noexcept
 
void axpy (DenseHostVector< Scalar > &y, Scalar alpha, DenseHostVector< Scalar > const &x)
 
int axpy_count () const noexcept
 
void copy (DenseHostVector< Scalar > &dst, DenseHostVector< Scalar > const &src)
 
int copy_count () const noexcept
 
 DenseHostVectorAlgebra (std::size_t dimension)
 
std::size_t dimension () const noexcept
 
Scalar inner_product (DenseHostVector< Scalar > const &x, DenseHostVector< Scalar > const &y)
 
int inner_product_count () const noexcept
 
uni20::make_real_t< Scalar > norm (DenseHostVector< Scalar > const &x)
 
int norm_count () const noexcept
 
std::size_t problem_dimension () const noexcept
 
auto prototype_view (DenseHostVector< Scalar > const &&) const =delete
 
auto prototype_view (DenseHostVector< Scalar > const &x) const -> std::span< Scalar const >
 Retain a read-only allocation descriptor without copying vector elements.
 
template<class Element , std::size_t Extent>
requires std::same_as<std::remove_const_t<Element>, Scalar>
auto prototype_view (std::span< Element, Extent > x) const -> std::span< Scalar const >
 Copy a borrowed span descriptor, including a temporary span.
 
void scal (DenseHostVector< Scalar > &x, Scalar alpha)
 
int scal_count () const noexcept
 
void set_zero (DenseHostVector< Scalar > &x)
 
int set_zero_count () const noexcept
 
std::size_t vector_dimension (DenseHostVector< Scalar > const &x) const noexcept
 
std::size_t vector_dimension (std::span< Scalar const > x) const noexcept
 

Detailed Description

template<typename Scalar>
class uni20::krylov::DenseHostVectorAlgebra< Scalar >

Dense host vector algebra without an assembled operator.

Constructor & Destructor Documentation

◆ DenseHostVectorAlgebra()

template<typename Scalar >
uni20::krylov::DenseHostVectorAlgebra< Scalar >::DenseHostVectorAlgebra ( std::size_t  dimension)
inlineexplicit

Member Function Documentation

◆ allocate_like() [1/2]

template<typename Scalar >
DenseHostVector< Scalar > uni20::krylov::DenseHostVectorAlgebra< Scalar >::allocate_like ( DenseHostVector< Scalar > const &  x)
inline

◆ allocate_like() [2/2]

template<typename Scalar >
DenseHostVector< Scalar > uni20::krylov::DenseHostVectorAlgebra< Scalar >::allocate_like ( std::span< Scalar const >  x)
inline

Allocate independent owning storage from a retained span's extent.

◆ allocation_count()

template<typename Scalar >
int uni20::krylov::DenseHostVectorAlgebra< Scalar >::allocation_count ( ) const
inlinenoexcept

◆ axpy()

template<typename Scalar >
void uni20::krylov::DenseHostVectorAlgebra< Scalar >::axpy ( DenseHostVector< Scalar > &  y,
Scalar  alpha,
DenseHostVector< Scalar > const &  x 
)
inline

◆ axpy_count()

template<typename Scalar >
int uni20::krylov::DenseHostVectorAlgebra< Scalar >::axpy_count ( ) const
inlinenoexcept

◆ copy()

template<typename Scalar >
void uni20::krylov::DenseHostVectorAlgebra< Scalar >::copy ( DenseHostVector< Scalar > &  dst,
DenseHostVector< Scalar > const &  src 
)
inline

◆ copy_count()

template<typename Scalar >
int uni20::krylov::DenseHostVectorAlgebra< Scalar >::copy_count ( ) const
inlinenoexcept

◆ dimension()

template<typename Scalar >
std::size_t uni20::krylov::DenseHostVectorAlgebra< Scalar >::dimension ( ) const
inlinenoexcept

◆ inner_product()

template<typename Scalar >
Scalar uni20::krylov::DenseHostVectorAlgebra< Scalar >::inner_product ( DenseHostVector< Scalar > const &  x,
DenseHostVector< Scalar > const &  y 
)
inline

◆ inner_product_count()

template<typename Scalar >
int uni20::krylov::DenseHostVectorAlgebra< Scalar >::inner_product_count ( ) const
inlinenoexcept

◆ norm()

template<typename Scalar >
uni20::make_real_t< Scalar > uni20::krylov::DenseHostVectorAlgebra< Scalar >::norm ( DenseHostVector< Scalar > const &  x)
inline

◆ norm_count()

template<typename Scalar >
int uni20::krylov::DenseHostVectorAlgebra< Scalar >::norm_count ( ) const
inlinenoexcept

◆ problem_dimension()

template<typename Scalar >
std::size_t uni20::krylov::DenseHostVectorAlgebra< Scalar >::problem_dimension ( ) const
inlinenoexcept

◆ prototype_view() [1/3]

template<typename Scalar >
auto uni20::krylov::DenseHostVectorAlgebra< Scalar >::prototype_view ( DenseHostVector< Scalar > const &&  ) const
delete

◆ prototype_view() [2/3]

template<typename Scalar >
auto uni20::krylov::DenseHostVectorAlgebra< Scalar >::prototype_view ( DenseHostVector< Scalar > const &  x) const -> std::span<Scalar const>
inline

Retain a read-only allocation descriptor without copying vector elements.

◆ prototype_view() [3/3]

template<typename Scalar >
template<class Element , std::size_t Extent>
requires std::same_as<std::remove_const_t<Element>, Scalar>
auto uni20::krylov::DenseHostVectorAlgebra< Scalar >::prototype_view ( std::span< Element, Extent >  x) const -> std::span<Scalar const>
inline

Copy a borrowed span descriptor, including a temporary span.

◆ scal()

template<typename Scalar >
void uni20::krylov::DenseHostVectorAlgebra< Scalar >::scal ( DenseHostVector< Scalar > &  x,
Scalar  alpha 
)
inline

◆ scal_count()

template<typename Scalar >
int uni20::krylov::DenseHostVectorAlgebra< Scalar >::scal_count ( ) const
inlinenoexcept

◆ set_zero()

template<typename Scalar >
void uni20::krylov::DenseHostVectorAlgebra< Scalar >::set_zero ( DenseHostVector< Scalar > &  x)
inline

◆ set_zero_count()

template<typename Scalar >
int uni20::krylov::DenseHostVectorAlgebra< Scalar >::set_zero_count ( ) const
inlinenoexcept

◆ vector_dimension() [1/2]

template<typename Scalar >
std::size_t uni20::krylov::DenseHostVectorAlgebra< Scalar >::vector_dimension ( DenseHostVector< Scalar > const &  x) const
inlinenoexcept

◆ vector_dimension() [2/2]

template<typename Scalar >
std::size_t uni20::krylov::DenseHostVectorAlgebra< Scalar >::vector_dimension ( std::span< Scalar const >  x) const
inlinenoexcept

The documentation for this class was generated from the following file: