cblas_base.h File Reference

O2scl basic linear algebra function templates. More...

Go to the source code of this file.


Detailed Description

O2scl basic linear algebra function templates.

Idea for future:
Convert to size_t and add float and complex versions

Definition in file cblas_base.h.


Namespaces

namespace  o2scl_cblas
 Namespace for O2scl CBLAS function templates with operator[].

Enumerations

enum  O2CBLAS_ORDER { O2cblasRowMajor = 101, O2cblasColMajor = 102 }
 Matrix order, either column-major or row-major.
enum  O2CBLAS_TRANSPOSE { O2cblasNoTrans = 111, O2cblasTrans = 112, O2cblasConjTrans = 113 }
 Transpose operations.
enum  O2CBLAS_UPLO { O2cblasUpper = 121, O2cblasLower = 122 }
 Upper- or lower-triangular.
enum  O2CBLAS_DIAG { O2cblasNonUnit = 131, O2cblasUnit = 132 }
 Unit or generic diagonal.
enum  O2CBLAS_SIDE { O2cblasLeft = 141, O2cblasRight = 142 }
 Left or right sided operation.

Functions

template<class mat_t >
int dgemm (const enum O2CBLAS_ORDER Order, const enum O2CBLAS_TRANSPOSE TransA, const enum O2CBLAS_TRANSPOSE TransB, const int M, const int N, const int K, const double alpha, const mat_t &A, const mat_t &B, const double beta, mat_t &C)
 Compute $ y = \alpha \mathrm{op}(A) x + \beta y $.
Standard BLAS functions
template<class vec_t , class vec2_t >
void daxpy (const int N, const double alpha, const vec_t &X, vec2_t &Y)
 Compute $ y= \alpha x + y $.
template<class vec_t , class vec2_t >
double ddot (const int N, const vec_t &X, const vec2_t &Y)
 Compute $ r = x \cdot y $.
template<class vec_t >
void dscal (const int N, const double alpha, vec_t &X)
 Compute $ x = \alpha x $.
template<class vec_t >
double dnrm2 (const int N, const vec_t &X)
 Compute the squared norm of the vector X.
template<class mat_t , class vec_t >
int dgemv (const enum O2CBLAS_ORDER order, const enum O2CBLAS_TRANSPOSE TransA, const int M, const int N, const double alpha, const mat_t &A, const vec_t &X, const double beta, vec_t &Y)
 Compute $ y = \alpha \mathrm{op}(A) x + \beta y $.
template<class mat_t , class vec_t >
int dtrsv (const enum O2CBLAS_ORDER order, const enum O2CBLAS_UPLO Uplo, const enum O2CBLAS_TRANSPOSE TransA, const enum O2CBLAS_DIAG Diag, const int M, const int N, const mat_t &A, vec_t &X)
 Compute $ x = \mathrm{op} (A)^{-1} x $.
Helper BLAS functions
template<class vec_t , class vec2_t >
void daxpy_subvec (const int N, const double alpha, const vec_t &X, vec2_t &Y, const int ie)
 Compute $ x = \alpha x $ beginning with index ie and ending with index N-1.
template<class vec_t , class vec2_t >
double ddot_subvec (const int N, const vec_t &X, const vec2_t &Y, const int ie)
 Compute $ r = x \cdot y $ beginning with index ie and ending with index N-1.
template<class vec_t >
void dscal_subvec (const int N, const double alpha, vec_t &X, const int ie)
 Compute $ x = \alpha x $ beginning with index ie and ending with index N-1.
template<class vec_t >
double dnrm2_subvec (const int N, const vec_t &X, const int ie)
 Compute the squared norm of the vector X beginning with index ie and ending with index N-1.
template<class mat_t >
double dnrm2_subcol (const mat_t &M, const size_t ir, const size_t ic, const size_t N)
 Compute the squared norm of the last N rows of a column of a matrix.
template<class mat_t >
void dscal_subcol (mat_t &A, const size_t ir, const size_t ic, const size_t n, const double alpha)
 Compute $ x = \alpha x $.
template<class mat_t , class vec_t >
void daxpy_hv_sub (const int N, const double alpha, const mat_t &X, vec_t &Y, const int ie)
 Compute $ x = \alpha x $ for householder_hv_sub().
template<class mat_t , class vec_t >
double ddot_hv_sub (const int N, const mat_t &X, const vec_t &Y, const int ie)
 Compute $ r = x \cdot y $ for householder_hv_sub().

Documentation generated with Doxygen and provided under the GNU Free Documentation License. See License Information for details.

Project hosting provided by SourceForge.net Logo, O2scl Sourceforge Project Page