xerus
a general purpose tensor library
blasLapackWrapper.h File Reference

Header file for the blas and lapack wrapper functions. More...

#include "misc/standard.h"
#include <memory>

Go to the source code of this file.

Namespaces

 xerus
 The main namespace of xerus.
 
 xerus::blasWrapper
 In this namespace the minimal wrappers for the BLAS and LAPACK functions are collected.
 

Functions

std::tuple< std::unique_ptr< double[]>, std::unique_ptr< double[]>, size_t > xerus::blasWrapper::cq (const double *const _A, const size_t _m, const size_t _n)
 : splits A = C*Q, with _C an rxm matrix (where r is the rank of _A) and _Q orthogonal. More...
 
std::tuple< std::unique_ptr< double[]>, std::unique_ptr< double[]>, size_t > xerus::blasWrapper::cq_destructive (double *const _A, const size_t _m, const size_t _n)
 : splits A = C*Q, with _C an rxm matrix (where r is the rank of _A) and _Q orthogonal. Destroys A. More...
 
double xerus::blasWrapper::dot_product (const double *const _x, const size_t _n, const double *const _y)
 : Computes the dot product = x^T*y More...
 
void xerus::blasWrapper::dyadic_vector_product (double *_A, const size_t _m, const size_t _n, const double _alpha, const double *const _x, const double *const _y)
 : Performs A = alpha*x*y^T More...
 
void xerus::blasWrapper::inplace_qr (double *const _AtoQ, double *const _R, const size_t _m, const size_t _n)
 : Performs (AtoQ,R) = QR(AtoQ) More...
 
void xerus::blasWrapper::inplace_rq (double *const _R, double *const _AtoQ, const size_t _m, const size_t _n)
 : Performs (R,AtoQ) = RQ(AtoQ) More...
 
void xerus::blasWrapper::inverse (double *const _B, const double *const _A, const size_t _m, const size_t _n)
 : Performs B = A^-1 More...
 
void xerus::blasWrapper::matrix_matrix_product (double *const _C, const size_t _leftDim, const size_t _rightDim, const double _alpha, const double *const _A, const size_t _lda, const bool _transposeA, const size_t _middleDim, const double *const _B, const size_t _ldb, const bool _transposeB)
 : Performs the Matrix-Matrix product C = alpha*OP(A) * OP(B) More...
 
static XERUS_force_inline void xerus::blasWrapper::matrix_matrix_product (double *const _C, const size_t _leftDim, const size_t _rightDim, const double _alpha, const double *const _A, const bool _transposeA, const size_t _middleDim, const double *const _B, const bool _transposeB)
 : Performs the Matrix-Matrix product C = alpha*OP(A) * OP(B) More...
 
void xerus::blasWrapper::matrix_vector_product (double *const _x, const size_t _m, const double _alpha, const double *const _A, const size_t _n, const bool _transposed, const double *const _y)
 : Perfroms x = alpha*OP(A)*y More...
 
double xerus::blasWrapper::one_norm (const double *const _x, const size_t _n)
 : Computes the one norm =||x||_1 More...
 
std::tuple< std::unique_ptr< double[]>, std::unique_ptr< double[]>, size_t > xerus::blasWrapper::qc (const double *const _A, const size_t _m, const size_t _n)
 : splits A = Q*C, with _C an rxn matrix (where r is the rank of _A) and _Q orthogonal. More...
 
std::tuple< std::unique_ptr< double[]>, std::unique_ptr< double[]>, size_t > xerus::blasWrapper::qc_destructive (double *const _A, const size_t _m, const size_t _n)
 : splits A = Q*C, with _C an rxn matrix (where r is the rank of _A) and _Q orthogonal. Destroys A. More...
 
void xerus::blasWrapper::qr (double *const _Q, double *const _R, const double *const _A, const size_t _m, const size_t _n)
 : Performs (Q,R) = QR(A) More...
 
void xerus::blasWrapper::qr_destructive (double *const _Q, double *const _R, double *const _A, const size_t _m, const size_t _n)
 : Performs (Q,R) = QR(A), destroys A in the process More...
 
void xerus::blasWrapper::rq (double *const _R, double *const _Q, const double *const _A, const size_t _m, const size_t _n)
 : Performs (R,Q) = RQ(A) More...
 
void xerus::blasWrapper::rq_destructive (double *const _R, double *const _Q, double *const _A, const size_t _m, const size_t _n)
 : Performs (R,Q) = RQ(A), destroys A in the process More...
 
void xerus::blasWrapper::solve (double *_x, const double *_A, size_t _m, size_t _n, const double *_b, size_t _p)
 : Solves Ax = b for x More...
 
void xerus::blasWrapper::solve_least_squares (double *const _x, const double *const _A, const size_t _m, const size_t _n, const double *const _b, const size_t _p)
 : Solves min ||Ax - b||_2 for x More...
 
void xerus::blasWrapper::solve_least_squares_destructive (double *const _x, double *const _A, const size_t _m, const size_t _n, double *const _b, const size_t _p)
 : Solves min ||Ax - b||_2 for x More...
 
void xerus::blasWrapper::svd (double *const _U, double *const _S, double *const _Vt, const double *const _A, const size_t _m, const size_t _n)
 : Performs (U,S,V) = SVD(A) More...
 
void xerus::blasWrapper::svd_destructive (double *const _U, double *const _S, double *const _Vt, double *const _A, const size_t _m, const size_t _n)
 : Performs (U,S,V) = SVD(A). Destroys A. More...
 
double xerus::blasWrapper::two_norm (const double *const _x, const size_t _n)
 : Computes the two norm =||x||_2 More...
 

Detailed Description

Header file for the blas and lapack wrapper functions.

Definition in file blasLapackWrapper.h.