guanaqo 1.0.0-alpha.26
Utilities for scientific software
Loading...
Searching...
No Matches
Low-Level BLAS Wrappers

Detailed Description

Simple overloaded wrappers around BLAS and LAPACK functions.

Collaboration diagram for Low-Level BLAS Wrappers:

Files

file  blas-interface.hpp
 This file provides simple overloaded wrappers around standard BLAS functions.
file  lapack.hpp
 LAPACK error handling.

Classes

struct  guanaqo::blas::lapack_error

Functions

template<class T, class I>
void guanaqo::blas::xgemv (CBLAS_LAYOUT Layout, CBLAS_TRANSPOSE TransA, I M, I N, std::type_identity_t< T > alpha, std::type_identity_t< const T * > A, I lda, std::type_identity_t< const T * > X, I incX, std::type_identity_t< T > beta, T *Y, I incY)
template<class T, class I>
void guanaqo::blas::xgemm (CBLAS_LAYOUT Layout, CBLAS_TRANSPOSE TransA, CBLAS_TRANSPOSE TransB, I M, I N, I K, std::type_identity_t< T > alpha, std::type_identity_t< const T * > A, I lda, std::type_identity_t< const T * > B, I ldb, std::type_identity_t< T > beta, T *C, I ldc)
template<class T, class I>
void guanaqo::blas::xgemmt (CBLAS_LAYOUT Layout, CBLAS_UPLO uplo, CBLAS_TRANSPOSE TransA, CBLAS_TRANSPOSE TransB, I N, I K, std::type_identity_t< T > alpha, std::type_identity_t< const T * > A, I lda, std::type_identity_t< const T * > B, I ldb, std::type_identity_t< T > beta, T *C, I ldc)
template<class T, class I>
void guanaqo::blas::xsymv (CBLAS_LAYOUT Layout, CBLAS_UPLO uplo, I N, std::type_identity_t< T > alpha, std::type_identity_t< const T * > A, I lda, std::type_identity_t< const T * > X, I incX, std::type_identity_t< T > beta, T *Y, I incY)
template<class T, class I>
void guanaqo::blas::xtrmv (CBLAS_LAYOUT Layout, CBLAS_UPLO Uplo, CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag, I N, std::type_identity_t< const T * > A, I lda, T *X, I incX)
template<class T, class I>
void guanaqo::blas::xtrsv (CBLAS_LAYOUT Layout, CBLAS_UPLO Uplo, CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag, I N, std::type_identity_t< const T * > A, I lda, T *X, I incX)
template<class T, class I>
void guanaqo::blas::xtrmm (CBLAS_LAYOUT Layout, CBLAS_SIDE Side, CBLAS_UPLO Uplo, CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag, I M, I N, std::type_identity_t< T > alpha, std::type_identity_t< const T * > A, I lda, T *B, I ldb)
template<class T, class I>
void guanaqo::blas::xsyrk (CBLAS_LAYOUT Layout, CBLAS_UPLO Uplo, CBLAS_TRANSPOSE Trans, I N, I K, std::type_identity_t< T > alpha, std::type_identity_t< const T * > A, I lda, std::type_identity_t< T > beta, T *C, I ldc)
template<class T, class I>
void guanaqo::blas::xtrsm (CBLAS_LAYOUT Layout, CBLAS_SIDE Side, CBLAS_UPLO Uplo, CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag, I M, I N, std::type_identity_t< T > alpha, std::type_identity_t< const T * > A, I lda, T *B, I ldb)
template<class T, class I>
void guanaqo::blas::xsytrf_rk (const char *uplo, const I *n, T *a, const I *lda, T *e, I *ipiv, T *work, const I *lwork, I *info)
template<class T, class I>
void guanaqo::blas::xtrtrs (const char *uplo, const char *trans, const char *diag, const I *n, const I *nrhs, std::type_identity_t< const T * > A, const I *ldA, T *B, const I *ldB, I *info)
template<class T, class I>
void guanaqo::blas::xscal (I N, std::type_identity_t< T > alpha, T *X, I incX)
template<class T, class I>
void guanaqo::blas::xpotrf (const char *uplo, I n, T *a, I lda, I *info)
template<class T, class I>
void guanaqo::blas::xlauum (const char *uplo, I n, T *a, I lda, I *info)
template<class T, class I>
void guanaqo::blas::xtrtri (const char *uplo, const char *diag, I n, T *a, I lda, I *info)
template<class T, class I>
void guanaqo::blas::xgemv_batch_strided (CBLAS_LAYOUT layout, CBLAS_TRANSPOSE trans, I m, I n, std::type_identity_t< T > alpha, std::type_identity_t< const T * > a, I lda, I stridea, std::type_identity_t< const T * > x, I incx, I stridex, std::type_identity_t< T > beta, T *y, I incy, I stridey, I batch_size)
template<class T, class I>
void guanaqo::blas::xgemm_batch_strided (CBLAS_LAYOUT Layout, CBLAS_TRANSPOSE TransA, CBLAS_TRANSPOSE TransB, I M, I N, I K, std::type_identity_t< T > alpha, std::type_identity_t< const T * > A, I lda, I stridea, std::type_identity_t< const T * > B, I ldb, I strideb, std::type_identity_t< T > beta, T *C, I ldc, I stridec, I batch_size)
template<class T, class I>
void guanaqo::blas::xsyrk_batch_strided (CBLAS_LAYOUT Layout, CBLAS_UPLO Uplo, CBLAS_TRANSPOSE Trans, I N, I K, std::type_identity_t< T > alpha, std::type_identity_t< const T * > A, I lda, I stridea, std::type_identity_t< T > beta, T *C, I ldc, I stridec, I batch_size)
template<class T, class I>
void guanaqo::blas::xtrsm_batch_strided (CBLAS_LAYOUT Layout, CBLAS_SIDE Side, CBLAS_UPLO Uplo, CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag, I M, I N, std::type_identity_t< T > alpha, std::type_identity_t< const T * > A, I lda, I stridea, T *B, I ldb, I strideb, I batch_size)
template<class T, class I>
void guanaqo::blas::xpotrf_batch_strided (const char *Uplo, I N, T *A, I lda, I stridea, I batch_size)
template<class Name>
void guanaqo::blas::lapack_throw_on_err (Name &&name, index_t info)

Function Documentation

◆ xgemv()

template<class T, class I>
void guanaqo::blas::xgemv ( CBLAS_LAYOUT Layout,
CBLAS_TRANSPOSE TransA,
I M,
I N,
std::type_identity_t< T > alpha,
std::type_identity_t< const T * > A,
I lda,
std::type_identity_t< const T * > X,
I incX,
std::type_identity_t< T > beta,
T * Y,
I incY )

#include <guanaqo/blas/blas-interface.hpp>

Here is the caller graph for this function:

◆ xgemm()

template<class T, class I>
void guanaqo::blas::xgemm ( CBLAS_LAYOUT Layout,
CBLAS_TRANSPOSE TransA,
CBLAS_TRANSPOSE TransB,
I M,
I N,
I K,
std::type_identity_t< T > alpha,
std::type_identity_t< const T * > A,
I lda,
std::type_identity_t< const T * > B,
I ldb,
std::type_identity_t< T > beta,
T * C,
I ldc )

#include <guanaqo/blas/blas-interface.hpp>

Here is the caller graph for this function:

◆ xgemmt()

template<class T, class I>
void guanaqo::blas::xgemmt ( CBLAS_LAYOUT Layout,
CBLAS_UPLO uplo,
CBLAS_TRANSPOSE TransA,
CBLAS_TRANSPOSE TransB,
I N,
I K,
std::type_identity_t< T > alpha,
std::type_identity_t< const T * > A,
I lda,
std::type_identity_t< const T * > B,
I ldb,
std::type_identity_t< T > beta,
T * C,
I ldc )

#include <guanaqo/blas/blas-interface.hpp>

Here is the caller graph for this function:

◆ xsymv()

template<class T, class I>
void guanaqo::blas::xsymv ( CBLAS_LAYOUT Layout,
CBLAS_UPLO uplo,
I N,
std::type_identity_t< T > alpha,
std::type_identity_t< const T * > A,
I lda,
std::type_identity_t< const T * > X,
I incX,
std::type_identity_t< T > beta,
T * Y,
I incY )

#include <guanaqo/blas/blas-interface.hpp>

Here is the caller graph for this function:

◆ xtrmv()

template<class T, class I>
void guanaqo::blas::xtrmv ( CBLAS_LAYOUT Layout,
CBLAS_UPLO Uplo,
CBLAS_TRANSPOSE TransA,
CBLAS_DIAG Diag,
I N,
std::type_identity_t< const T * > A,
I lda,
T * X,
I incX )

#include <guanaqo/blas/blas-interface.hpp>

Here is the caller graph for this function:

◆ xtrsv()

template<class T, class I>
void guanaqo::blas::xtrsv ( CBLAS_LAYOUT Layout,
CBLAS_UPLO Uplo,
CBLAS_TRANSPOSE TransA,
CBLAS_DIAG Diag,
I N,
std::type_identity_t< const T * > A,
I lda,
T * X,
I incX )

#include <guanaqo/blas/blas-interface.hpp>

Here is the caller graph for this function:

◆ xtrmm()

template<class T, class I>
void guanaqo::blas::xtrmm ( CBLAS_LAYOUT Layout,
CBLAS_SIDE Side,
CBLAS_UPLO Uplo,
CBLAS_TRANSPOSE TransA,
CBLAS_DIAG Diag,
I M,
I N,
std::type_identity_t< T > alpha,
std::type_identity_t< const T * > A,
I lda,
T * B,
I ldb )

#include <guanaqo/blas/blas-interface.hpp>

Here is the caller graph for this function:

◆ xsyrk()

template<class T, class I>
void guanaqo::blas::xsyrk ( CBLAS_LAYOUT Layout,
CBLAS_UPLO Uplo,
CBLAS_TRANSPOSE Trans,
I N,
I K,
std::type_identity_t< T > alpha,
std::type_identity_t< const T * > A,
I lda,
std::type_identity_t< T > beta,
T * C,
I ldc )

#include <guanaqo/blas/blas-interface.hpp>

Here is the caller graph for this function:

◆ xtrsm()

template<class T, class I>
void guanaqo::blas::xtrsm ( CBLAS_LAYOUT Layout,
CBLAS_SIDE Side,
CBLAS_UPLO Uplo,
CBLAS_TRANSPOSE TransA,
CBLAS_DIAG Diag,
I M,
I N,
std::type_identity_t< T > alpha,
std::type_identity_t< const T * > A,
I lda,
T * B,
I ldb )

#include <guanaqo/blas/blas-interface.hpp>

Here is the caller graph for this function:

◆ xsytrf_rk()

template<class T, class I>
void guanaqo::blas::xsytrf_rk ( const char * uplo,
const I * n,
T * a,
const I * lda,
T * e,
I * ipiv,
T * work,
const I * lwork,
I * info )

◆ xtrtrs()

template<class T, class I>
void guanaqo::blas::xtrtrs ( const char * uplo,
const char * trans,
const char * diag,
const I * n,
const I * nrhs,
std::type_identity_t< const T * > A,
const I * ldA,
T * B,
const I * ldB,
I * info )

◆ xscal()

template<class T, class I>
void guanaqo::blas::xscal ( I N,
std::type_identity_t< T > alpha,
T * X,
I incX )

◆ xpotrf()

template<class T, class I>
void guanaqo::blas::xpotrf ( const char * uplo,
I n,
T * a,
I lda,
I * info )

#include <guanaqo/blas/blas-interface.hpp>

Here is the caller graph for this function:

◆ xlauum()

template<class T, class I>
void guanaqo::blas::xlauum ( const char * uplo,
I n,
T * a,
I lda,
I * info )

#include <guanaqo/blas/blas-interface.hpp>

Here is the caller graph for this function:

◆ xtrtri()

template<class T, class I>
void guanaqo::blas::xtrtri ( const char * uplo,
const char * diag,
I n,
T * a,
I lda,
I * info )

#include <guanaqo/blas/blas-interface.hpp>

Here is the caller graph for this function:

◆ xgemv_batch_strided()

template<class T, class I>
void guanaqo::blas::xgemv_batch_strided ( CBLAS_LAYOUT layout,
CBLAS_TRANSPOSE trans,
I m,
I n,
std::type_identity_t< T > alpha,
std::type_identity_t< const T * > a,
I lda,
I stridea,
std::type_identity_t< const T * > x,
I incx,
I stridex,
std::type_identity_t< T > beta,
T * y,
I incy,
I stridey,
I batch_size )

#include <guanaqo/blas/blas-interface.hpp>

Definition at line 252 of file blas-interface.cpp.

Here is the call graph for this function:

◆ xgemm_batch_strided()

template<class T, class I>
void guanaqo::blas::xgemm_batch_strided ( CBLAS_LAYOUT Layout,
CBLAS_TRANSPOSE TransA,
CBLAS_TRANSPOSE TransB,
I M,
I N,
I K,
std::type_identity_t< T > alpha,
std::type_identity_t< const T * > A,
I lda,
I stridea,
std::type_identity_t< const T * > B,
I ldb,
I strideb,
std::type_identity_t< T > beta,
T * C,
I ldc,
I stridec,
I batch_size )

#include <guanaqo/blas/blas-interface.hpp>

Definition at line 313 of file blas-interface.cpp.

Here is the call graph for this function:

◆ xsyrk_batch_strided()

template<class T, class I>
void guanaqo::blas::xsyrk_batch_strided ( CBLAS_LAYOUT Layout,
CBLAS_UPLO Uplo,
CBLAS_TRANSPOSE Trans,
I N,
I K,
std::type_identity_t< T > alpha,
std::type_identity_t< const T * > A,
I lda,
I stridea,
std::type_identity_t< T > beta,
T * C,
I ldc,
I stridec,
I batch_size )

#include <guanaqo/blas/blas-interface.hpp>

Definition at line 379 of file blas-interface.cpp.

Here is the call graph for this function:

◆ xtrsm_batch_strided()

template<class T, class I>
void guanaqo::blas::xtrsm_batch_strided ( CBLAS_LAYOUT Layout,
CBLAS_SIDE Side,
CBLAS_UPLO Uplo,
CBLAS_TRANSPOSE TransA,
CBLAS_DIAG Diag,
I M,
I N,
std::type_identity_t< T > alpha,
std::type_identity_t< const T * > A,
I lda,
I stridea,
T * B,
I ldb,
I strideb,
I batch_size )

#include <guanaqo/blas/blas-interface.hpp>

Definition at line 433 of file blas-interface.cpp.

Here is the call graph for this function:

◆ xpotrf_batch_strided()

template<class T, class I>
void guanaqo::blas::xpotrf_batch_strided ( const char * Uplo,
I N,
T * A,
I lda,
I stridea,
I batch_size )

#include <guanaqo/blas/blas-interface.hpp>

Definition at line 487 of file blas-interface.cpp.

Here is the call graph for this function:

◆ lapack_throw_on_err()

template<class Name>
void guanaqo::blas::lapack_throw_on_err ( Name && name,
index_t info )

#include <guanaqo/blas/lapack.hpp>

Definition at line 35 of file lapack.hpp.

Here is the caller graph for this function: