o2scl_cblas Namespace Reference

Namespace for O2scl CBLAS function templates with operator[]. More...


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().


Detailed Description

Namespace for O2scl CBLAS function templates with operator[].


Function Documentation

void o2scl_cblas::daxpy_hv_sub ( const int  N,
const double  alpha,
const mat_t &  X,
vec_t &  Y,
const int  ie 
) [inline]

Compute $ x = \alpha x $ for householder_hv_sub().

Used in householder_hv_sub().

Idea for future:
Implement explicit loop unrolling

Definition at line 590 of file cblas_base.h.

void o2scl_cblas::daxpy_subvec ( const int  N,
const double  alpha,
const vec_t &  X,
vec2_t &  Y,
const int  ie 
) [inline]

Compute $ x = \alpha x $ beginning with index ie and ending with index N-1.

Used in householder_hv().

Definition at line 398 of file cblas_base.h.

double o2scl_cblas::ddot_hv_sub ( const int  N,
const mat_t &  X,
const vec_t &  Y,
const int  ie 
) [inline]

Compute $ r = x \cdot y $ for householder_hv_sub().

Used in householder_hv_sub().

Idea for future:
Implement explicit loop unrolling

Definition at line 625 of file cblas_base.h.

double o2scl_cblas::ddot_subvec ( const int  N,
const vec_t &  X,
const vec2_t &  Y,
const int  ie 
) [inline]

Compute $ r = x \cdot y $ beginning with index ie and ending with index N-1.

Used in householder_hv().

Definition at line 428 of file cblas_base.h.

double o2scl_cblas::dnrm2_subcol ( const mat_t &  M,
const size_t  ir,
const size_t  ic,
const size_t  N 
) [inline]

Compute the squared norm of the last N rows of a column of a matrix.

Given matrix M, this computes the norm of the last N rows of the column with index ic, beginning with the element with index ir. If the matrix M has r rows, and c columns, then the parameter N should be r-ir.

Used in householder_transform_subcol().

Definition at line 523 of file cblas_base.h.

double o2scl_cblas::dnrm2_subvec ( const int  N,
const vec_t &  X,
const int  ie 
) [inline]

Compute the squared norm of the vector X beginning with index ie and ending with index N-1.

Used in householder_transform().

Definition at line 480 of file cblas_base.h.

void o2scl_cblas::dscal_subcol ( mat_t &  A,
const size_t  ir,
const size_t  ic,
const size_t  n,
const double  alpha 
) [inline]

Compute $ x = \alpha x $.

Used in householder_transform_subcol().

Definition at line 562 of file cblas_base.h.

void o2scl_cblas::dscal_subvec ( const int  N,
const double  alpha,
vec_t &  X,
const int  ie 
) [inline]

Compute $ x = \alpha x $ beginning with index ie and ending with index N-1.

Used in householder_transform().

Definition at line 456 of file cblas_base.h.


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