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

Provider-ready BLAS matrix operands and transform helpers. More...

#include <uni20/backend/backend.hpp>
#include <uni20/common/trace.hpp>
#include <uni20/core/scalar_concepts.hpp>
#include <utility>
Include dependency graph for blas_matrix.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::BlasReadableMatrix< Scalar, Handle >
 Readable matrix shape plus transform as seen by a BLAS provider. More...
 
struct  uni20::linalg::blas::BlasWritableMatrix< Scalar, Handle >
 Writable matrix shape as seen by a BLAS/LAPACK provider. More...
 

Namespaces

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

Enumerations

enum class  uni20::linalg::blas::MatrixTransform : unsigned { uni20::linalg::blas::normal = 0U , uni20::linalg::blas::transpose = 1U , uni20::linalg::blas::conjugate = 2U , uni20::linalg::blas::conjugate_transpose = 3U }
 Logical matrix transform independent of a provider-specific opcode, although it happens to coincide with the OpenBLAS cblas ordering. More...
 

Functions

template<uni20::BlasScalar Scalar>
constexpr char uni20::linalg::blas::blas_trans_char (MatrixTransform transform)
 Lower a transform to the BLAS transpose character spelling used by selected providers.
 
template<uni20::BlasScalar Scalar>
constexpr bool uni20::linalg::blas::blas_trans_char_is_supported (MatrixTransform transform)
 Return whether the current baseline provider path accepts a transform directly.
 
template<uni20::BlasScalar Scalar>
constexpr MatrixTransform uni20::linalg::blas::canonical_transform_for_scalar (MatrixTransform transform)
 Collapse conjugation-only distinctions for real scalar types.
 
constexpr MatrixTransform uni20::linalg::blas::compose (MatrixTransform outer, MatrixTransform inner)
 Compose two matrix transforms as outer(inner(A)).
 
constexpr bool uni20::linalg::blas::conjugates_values (MatrixTransform transform)
 Return whether a matrix transform applies element-wise conjugation.
 
constexpr bool uni20::linalg::blas::swaps_axes (MatrixTransform transform)
 Return whether a matrix transform swaps the logical axes.
 
constexpr blas_int uni20::linalg::blas::transformed_cols (blas_int rows, blas_int cols, MatrixTransform transform)
 Columns produced by applying transform to an untransformed matrix.
 
constexpr blas_int uni20::linalg::blas::transformed_rows (blas_int rows, blas_int cols, MatrixTransform transform)
 Rows produced by applying transform to an untransformed matrix.
 
constexpr MatrixTransform uni20::linalg::blas::transpose_result_transform (MatrixTransform transform)
 Transform induced on each GEMM operand by transposing the result.
 

Detailed Description

Provider-ready BLAS matrix operands and transform helpers.