|
| template<class Scalar , class Handle > |
| constexpr auto | blas_readable_matrix (MdspanMatrixStage< Scalar, Handle > const &stage) -> BlasReadableMatrix< Scalar, Handle > |
| | Return the provider-ready readable operand for a staged mdspan matrix.
|
| |
| template<class Scalar , class Handle > |
| constexpr auto | blas_readable_vector (MdspanVectorStage< Scalar, Handle > const &stage) -> BlasReadableVector< Scalar, Handle > |
| | Return the provider-ready readable storage operand for a staged mdspan vector.
|
| |
| template<uni20::BlasScalar Scalar> |
| constexpr char | blas_trans_char (MatrixTransform transform) |
| | Lower a transform to the BLAS transpose character spelling used by selected providers.
|
| |
| template<uni20::BlasScalar Scalar> |
| constexpr bool | blas_trans_char_is_supported (MatrixTransform transform) |
| | Return whether the current baseline provider path accepts a transform directly.
|
| |
| template<class Scalar , class Handle > |
| constexpr auto | blas_writable_matrix (MdspanMatrixStage< Scalar, Handle > const &stage) -> BlasWritableMatrix< Scalar, Handle > |
| | Return the provider-ready writable operand for a staged mdspan matrix.
|
| |
| template<class Scalar , class Handle > |
| constexpr auto | blas_writable_vector (MdspanVectorStage< Scalar, Handle > const &stage) -> BlasWritableVector< Scalar, Handle > |
| | Return the provider-ready writable operand for a staged mdspan vector.
|
| |
| template<uni20::BlasScalar Scalar> |
| constexpr MatrixTransform | canonical_transform_for_scalar (MatrixTransform transform) |
| | Collapse conjugation-only distinctions for real scalar types.
|
| |
| constexpr MatrixTransform | compose (MatrixTransform outer, MatrixTransform inner) |
| | Compose two matrix transforms as outer(inner(A)).
|
| |
| constexpr bool | conjugates_values (MatrixTransform transform) |
| | Return whether a matrix transform applies element-wise conjugation.
|
| |
template<uni20::BlasScalar Scalar, class OutputMdspan , class LhsMdspan , class RhsMdspan >
requires detail::writable_blas_mdspan_for<std::remove_cvref_t<OutputMdspan>, Scalar> && detail::readable_blas_mdspan_for<std::remove_cvref_t<LhsMdspan>, Scalar> && detail::readable_blas_mdspan_for<std::remove_cvref_t<RhsMdspan>, Scalar> |
| void | gemm (OutputMdspan &&output, Scalar alpha, LhsMdspan &&lhs, RhsMdspan &&rhs, Scalar beta) |
| | Direct no-copy BLAS GEMM from mdspan-like operands.
|
| |
template<uni20::BlasScalar Scalar, class OutputMdspan , class MatrixMdspan , class InputMdspan >
requires detail::writable_gemv_vector_for<std::remove_cvref_t<OutputMdspan>, Scalar> && detail::readable_gemv_mdspan_for<std::remove_cvref_t<MatrixMdspan>, Scalar, 2> && detail::readable_gemv_mdspan_for<std::remove_cvref_t<InputMdspan>, Scalar, 1> |
| void | gemv (OutputMdspan &&output, Scalar alpha, MatrixMdspan &&matrix, InputMdspan &&input, Scalar beta) |
| | Direct no-copy BLAS GEMV from mdspan-like operands.
|
| |
template<uni20::BlasScalar Scalar, class OutputMdspan , class LhsMdspan , class RhsMdspan >
requires detail::writable_blas_mdspec_for<std::remove_cvref_t<OutputMdspan>, Scalar> && detail::readable_blas_mdspec_for<std::remove_cvref_t<LhsMdspan>, Scalar> && detail::readable_blas_mdspec_for<std::remove_cvref_t<RhsMdspan>, Scalar> |
| KernelAttempt | probe_gemm (OutputMdspan &&output, LhsMdspan &&lhs, RhsMdspan &&rhs) |
| | Probe direct no-copy BLAS GEMM without invoking the provider.
|
| |
| constexpr MatrixTransform | storage_transform (MdspanMatrixMetadata const &metadata) |
| | Transform from the provider matrix shape to the logical mdspan shape.
|
| |
| template<class Scalar , class Handle > |
| constexpr MatrixTransform | storage_transform (MdspanMatrixStage< Scalar, Handle > const &stage) |
| | Transform from the provider matrix shape to the logical mdspan shape.
|
| |
| constexpr bool | swaps_axes (MatrixTransform transform) |
| | Return whether a matrix transform swaps the logical axes.
|
| |
| constexpr blas_int | transformed_cols (blas_int rows, blas_int cols, MatrixTransform transform) |
| | Columns produced by applying transform to an untransformed matrix.
|
| |
| constexpr blas_int | transformed_rows (blas_int rows, blas_int cols, MatrixTransform transform) |
| | Rows produced by applying transform to an untransformed matrix.
|
| |
| constexpr MatrixTransform | transpose_result_transform (MatrixTransform transform) |
| | Transform induced on each GEMM operand by transposing the result.
|
| |
template<class Mdspan >
requires detail::blas_readable_mdspan<Mdspan, 2> |
| auto | try_blas_readable_matrix (Mdspan const &span) -> std::optional< BlasReadableMatrix< std::remove_cv_t< typename Mdspan::element_type >, typename Mdspan::data_handle_type > > |
| | Try to lower an mdspan directly to a readable provider operand.
|
| |
template<class Mdspan >
requires detail::blas_readable_mdspan<Mdspan, 1> |
| auto | 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, 2> |
| auto | try_blas_writable_matrix (Mdspan const &span) -> std::optional< BlasWritableMatrix< std::remove_cv_t< typename Mdspan::element_type >, typename Mdspan::data_handle_type > > |
| | Try to lower a mutable mdspan directly to a writable provider operand.
|
| |
template<class Mdspan >
requires detail::blas_writable_mdspan<Mdspan, 1> |
| auto | 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<uni20::BlasScalar Scalar, class OutputMdspan , class LhsMdspan , class RhsMdspan >
requires detail::writable_blas_mdspan_for<std::remove_cvref_t<OutputMdspan>, Scalar> && detail::readable_blas_mdspan_for<std::remove_cvref_t<LhsMdspan>, Scalar> && detail::readable_blas_mdspan_for<std::remove_cvref_t<RhsMdspan>, Scalar> |
| KernelAttempt | try_gemm (OutputMdspan &&output, Scalar alpha, LhsMdspan &&lhs, RhsMdspan &&rhs, Scalar beta) |
| | Try a direct no-copy BLAS GEMM from mdspan-like operands.
|
| |
template<uni20::BlasScalar Scalar, class OutputMdspan , class MatrixMdspan , class InputMdspan >
requires detail::writable_gemv_vector_for<std::remove_cvref_t<OutputMdspan>, Scalar> && detail::readable_gemv_mdspan_for<std::remove_cvref_t<MatrixMdspan>, Scalar, 2> && detail::readable_gemv_mdspan_for<std::remove_cvref_t<InputMdspan>, Scalar, 1> |
| KernelAttempt | try_gemv (OutputMdspan &&output, Scalar alpha, MatrixMdspan &&matrix, InputMdspan &&input, Scalar beta) |
| | Try a direct no-copy BLAS GEMV from mdspan-like operands.
|
| |
| template<detail::lapack_writable_mdspan Mdspan> |
| auto | try_lapack_writable_matrix (Mdspan const &span) -> std::optional< BlasWritableMatrix< std::remove_cv_t< typename Mdspan::element_type >, typename Mdspan::data_handle_type > > |
| | Try to lower an mdspan to the strict column-major shape expected by LAPACK.
|
| |
| template<detail::lapack_writable_vector_mdspan Mdspan> |
| auto | 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::RankedStridedMdspecLike< 2 > Mdspan> |
| auto | try_mdspan_matrix_metadata (Mdspan const &span) -> std::optional< MdspanMatrixMetadata > |
| | Inspect matrix layout and accessor semantics without resolving a data handle.
|
| |
| template<uni20::RankedStridedMdspecLike< 2 > Mdspan> |
| auto | try_mdspan_matrix_stage (Mdspan const &span) -> std::optional< MdspanMatrixStage< std::remove_cv_t< typename Mdspan::element_type >, detail::span_data_t< Mdspan > > > |
| | Build a matrix staging descriptor when direct provider lowering is possible.
|
| |
| template<uni20::RankedStridedMdspanLike< 1 > Mdspan> |
| auto | 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.
|
| |