Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

blas_view.cpp File Reference

Source code for the interface between dataviews and BLAS. More...

#include "linalg/blas_view.h"
#include <cblas.h>

Include dependency graph for blas_view.cpp:


Namespaces

namespace  BLAS

Functions

itype min (itype a, itype b)
 A tiny method to compute the minimum of two indices.
bool ScalarVectorMultiply (const double &scalar, dataview_interface< double > &vec)
 Multiply a double vector by a double scalar (BLAS routine DSCAL()).
bool ScalarVectorMultiply (const std::complex< double > &scalar, dataview_interface< std::complex< double > > &vec)
 Multiply a complex vector by a complex scalar (BLAS routine ZSCAL()).
bool VectorCopy (dataview_interface< double > &dest, const dataview_interface< double > &src)
 Copy one double vector into another (BLAS routine DCOPY()).
bool VectorCopy (dataview_interface< std::complex< double > > &dest, const dataview_interface< std::complex< double > > &src)
 Copy one complex vector into another (BLAS routine ZCOPY()).
bool VectorScaleAdd (dataview_interface< double > &dest, const dataview_interface< double > &src, const double &scalar)
 Add a scalar double multiple of one double vector to another (BLAS routine DAXPY()).
bool VectorScaleAdd (dataview_interface< std::complex< double > > &dest, const dataview_interface< std::complex< double > > &src, const std::complex< double > &scalar)
 Add a scalar complex multiple of one complex vector to another (BLAS routine ZAXPY()).
double VectorVectorDot (const dataview_interface< double > &v1, const dataview_interface< double > &v2)
 Compute the dot product of two vectors of double (BLAS routine DDOT()).
std::complex< double > VectorVectorDot (const dataview_interface< std::complex< double > > &v1, const dataview_interface< std::complex< double > > &v2)
 Compute the dot product of two vectors of complex (BLAS routine ZDOTU_SUB()).
std::complex< double > VectorVectorConjugateDot (const dataview_interface< std::complex< double > > &conjv, const dataview_interface< std::complex< double > > &regv)
 Compute the conjugate dot product of two vectors of complex (BLAS routine ZDOTC_SUB()).
double VectorNorm (const dataview_interface< double > &v)
 Compute the squared 2-norm of a vector of double (BLAS routine DNRM2()).
double VectorNorm (const dataview_interface< std::complex< double > > &v)
 Compute the squared 2-norm of a vector of complex (BLAS routine DZNRM2()).
bool ScalarMatrixMultiply (const double &scalar, dataview_interface< double > &mat)
 Multiply a double matrix by a double scalar (multiple calls to BLAS routine DSCAL()).
bool ScalarMatrixMultiply (const std::complex< double > &scalar, dataview_interface< std::complex< double > > &mat)
 Multiply a complex matrix by a complex scalar (multiple calls to BLAS routine ZSCAL()).
bool MatrixCopy (dataview_interface< double > &dest, const dataview_interface< double > &src)
 Copy one double matrix to another (multiple calls to BLAS routine DCOPY()).
bool MatrixCopy (dataview_interface< std::complex< double > > &dest, const dataview_interface< std::complex< double > > &src)
 Copy one complex matrix to another (multiple calls to BLAS routine ZCOPY()).
bool MatrixScaleAdd (dataview_interface< double > &dest, const dataview_interface< double > &src, const double &scalar)
 Add a scalar double multiple of one double matrix to another (multiple calls to BLAS routine DAXPY()).
bool MatrixScaleAdd (dataview_interface< std::complex< double > > &dest, const dataview_interface< std::complex< double > > &src, const std::complex< double > &scalar)
 Add a scalar complex multiple of one complex matrix to another (multiple calls to BLAS routine ZAXPY()).
double MatrixMatrixDot (const dataview_interface< double > &m1, const dataview_interface< double > &m2)
 Compute the dot product of two matrices of double (multiple calls to BLAS routine DDOT()).
std::complex< double > MatrixMatrixDot (const dataview_interface< std::complex< double > > &m1, const dataview_interface< std::complex< double > > &m2)
 Compute the dot product of two matrices of complex (multiple calls to BLAS routine ZDOTC_SUB()).
std::complex< double > MatrixMatrixConjugateDot (const dataview_interface< std::complex< double > > &m1, const dataview_interface< std::complex< double > > &m2)
 Compute the conjugate dot product of two matrices of complex (multiple calls to BLAS routine ZDOTC_SUB()).
double MatrixNorm (const dataview_interface< double > &m)
 Compute the squared 2-norm of a matrix of double (multiple calls to BLAS routine DNRM2()).
double MatrixNorm (const dataview_interface< std::complex< double > > &m)
 Compute the squared 2-norm of a matrix of complex (multiple calls to BLAS routine DZNRM2()).
bool MatrixVectorMultiplyAdd (dataview_interface< double > &accumulator_v, const double &accumulator_scalar, const dataview_interface< double > &mat, const dataview_interface< double > &vec, const double &multiplication_scalar, bool VectorOnLeft)
 Multiply a double vector by a double matrix on either the left or the right, and add a double scalar multiple of the result to a double scalar multiple of another vector (BLAS routine DGEMV()).
bool MatrixVectorMultiplyAdd (dataview_interface< std::complex< double > > &accumulator_v, const std::complex< double > &accumulator_scalar, const dataview_interface< std::complex< double > > &mat, const dataview_interface< std::complex< double > > &vec, const std::complex< double > &multiplication_scalar, bool VectorOnLeft)
 Multiply a complex vector by a complex matrix on either the left or the right, and add a complex scalar multiple of the result to a complex scalar multiple of another vector (BLAS routine ZGEMV()).
bool VectorVectorMultiplyAdd (dataview_interface< double > &accumulator_m, const dataview_interface< double > &colvec, const dataview_interface< double > &rowvec, const double &scalar)
 Add a scalar double multiple of the outer product of two double vectors to another vector (BLAS routine DGER).
bool VectorVectorMultiplyAdd (dataview_interface< std::complex< double > > &accumulator_m, const dataview_interface< std::complex< double > > &colvec, const dataview_interface< std::complex< double > > &rowvec, const std::complex< double > &scalar)
 Add a scalar complex multiple of the outer product of two complex vectors to another vector (BLAS routine ZGERU).
bool VectorVectorConjugateMultiplyAdd (dataview_interface< std::complex< double > > &accumulator_m, const dataview_interface< std::complex< double > > &colvec, const dataview_interface< std::complex< double > > &rowvec, const std::complex< double > &scalar)
 Add a scalar complex multiple of the adjoint outer product of two complex vectors to another vector (BLAS routine ZGERC).
bool MatrixMatrixMultiplyAdd (dataview_interface< double > &accumulator_m, const double &accumulator_scalar, const dataview_interface< double > &mat1, const dataview_interface< double > &mat2, const double &multiplication_scalar)
 Add a scalar double multiple of the product of two double matrices to another double matrix (BLAS routine DGEMM).
bool MatrixMatrixMultiplyAdd (dataview_interface< std::complex< double > > &accumulator_m, const std::complex< double > &accumulator_scalar, const dataview_interface< std::complex< double > > &mat1, const dataview_interface< std::complex< double > > &mat2, const std::complex< double > &multiplication_scalar)
 Add a scalar complex multiple of the product of two complex matrices to another complex matrix (BLAS routine ZGEMM).

Detailed Description

Source code for the interface between dataviews and BLAS.


Generated on Wed Jun 14 22:25:26 2006 for linalg by  doxygen 1.4.4