Uni20
Asynchronous tensor and runtime library.
Loading...
Searching...
No Matches
Classes | Namespaces | Functions
mdspan_vector.hpp File Reference

Lower rank-one mdspan views to provider-ready BLAS operands. More...

#include <uni20/backend/blas/blas_int.hpp>
#include <uni20/common/trace.hpp>
#include <uni20/linalg/blas/blas_vector.hpp>
#include <uni20/linalg/blas/mdspan_access.hpp>
#include <optional>
#include <type_traits>
Include dependency graph for mdspan_vector.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  uni20::linalg::blas::MdspanVectorStage< Scalar, Handle >
 Logical rank-one mdspan layout before provider-specific BLAS lowering. More...
 

Namespaces

namespace  uni20
 
namespace  uni20::linalg
 
namespace  uni20::linalg::blas
 

Functions

template<class Scalar , class Handle >
constexpr auto uni20::linalg::blas::blas_readable_vector (MdspanVectorStage< Scalar, Handle > const &stage) -> BlasReadableVector< Scalar, Handle >
 Return the provider-ready readable storage operand for a staged mdspan vector.
 
template<class Scalar , class Handle >
constexpr auto uni20::linalg::blas::blas_writable_vector (MdspanVectorStage< Scalar, Handle > const &stage) -> BlasWritableVector< Scalar, Handle >
 Return the provider-ready writable operand for a staged mdspan vector.
 
template<class Mdspan >
requires detail::blas_readable_mdspan<Mdspan, 1>
auto uni20::linalg::blas::try_blas_readable_vector (Mdspan const &span) -> std::optional< BlasReadableVector< std::remove_cv_t< typename Mdspan::element_type >, typename Mdspan::data_handle_type > >
 Try to lower a readable rank-one mdspan directly to a provider operand.
 
template<class Mdspan >
requires detail::blas_writable_mdspan<Mdspan, 1>
auto uni20::linalg::blas::try_blas_writable_vector (Mdspan const &span) -> std::optional< BlasWritableVector< std::remove_cv_t< typename Mdspan::element_type >, typename Mdspan::data_handle_type > >
 Try to lower a mutable rank-one mdspan directly to a writable provider operand.
 
template<detail::lapack_writable_vector_mdspan Mdspan>
auto uni20::linalg::blas::try_lapack_writable_vector (Mdspan const &span) -> std::optional< BlasWritableVector< std::remove_cv_t< typename Mdspan::element_type >, typename Mdspan::data_handle_type > >
 Try to lower an mdspan to the contiguous writable vector shape expected by LAPACK.
 
template<uni20::RankedStridedMdspanLike< 1 > Mdspan>
auto uni20::linalg::blas::try_mdspan_vector_stage (Mdspan const &span) -> std::optional< MdspanVectorStage< std::remove_cv_t< typename Mdspan::element_type >, typename Mdspan::data_handle_type > >
 Build an mdspan vector staging descriptor when direct BLAS lowering is possible.
 

Detailed Description

Lower rank-one mdspan views to provider-ready BLAS operands.