Epetra_BLAS Class Reference

Epetra_BLAS: The Epetra BLAS Wrapper Class. More...

#include <Epetra_BLAS.h>

Inheritance diagram for Epetra_BLAS:

Inheritance graph
[legend]

List of all members.

Constructors/Destructor

 Epetra_BLAS (void)
 Epetra_BLAS Constructor.
 Epetra_BLAS (const Epetra_BLAS &BLAS)
 Epetra_BLAS Copy Constructor.
virtual ~Epetra_BLAS (void)
 Epetra_BLAS Destructor.

Level 1 BLAS

float ASUM (const int N, const float *X, const int INCX=1) const
 Epetra_BLAS one norm function (SASUM).
double ASUM (const int N, const double *X, const int INCX=1) const
 Epetra_BLAS one norm function (DASUM).
float DOT (const int N, const float *X, const float *Y, const int INCX=1, const int INCY=1) const
 Epetra_BLAS dot product function (SDOT).
double DOT (const int N, const double *X, const double *Y, const int INCX=1, const int INCY=1) const
 Epetra_BLAS dot product function (DDOT).
float NRM2 (const int N, const float *X, const int INCX=1) const
 Epetra_BLAS norm function (SNRM2).
double NRM2 (const int N, const double *X, const int INCX=1) const
 Epetra_BLAS norm function (DNRM2).
void SCAL (const int N, const float ALPHA, float *X, const int INCX=1) const
 Epetra_BLAS vector scale function (SSCAL).
void SCAL (const int N, const double ALPHA, double *X, const int INCX=1) const
 Epetra_BLAS vector scale function (DSCAL).
void COPY (const int N, const float *X, float *Y, const int INCX=1, const int INCY=1) const
 Epetra_BLAS vector copy function (SCOPY).
void COPY (const int N, const double *X, double *Y, const int INCX=1, const int INCY=1) const
 Epetra_BLAS vector scale function (DCOPY).
int IAMAX (const int N, const float *X, const int INCX=1) const
 Epetra_BLAS arg maximum of absolute value function (ISAMAX).
int IAMAX (const int N, const double *X, const int INCX=1) const
 Epetra_BLAS arg maximum of absolute value function (IDAMAX).
void AXPY (const int N, const float ALPHA, const float *X, float *Y, const int INCX=1, const int INCY=1) const
 Epetra_BLAS vector update function (SAXPY).
void AXPY (const int N, const double ALPHA, const double *X, double *Y, const int INCX=1, const int INCY=1) const
 Epetra_BLAS vector update function (DAXPY).

Level 2 BLAS

void GEMV (const char TRANS, const int M, const int N, const float ALPHA, const float *A, const int LDA, const float *X, const float BETA, float *Y, const int INCX=1, const int INCY=1) const
 Epetra_BLAS matrix-vector multiply function (SGEMV).
void GEMV (const char TRANS, const int M, const int N, const double ALPHA, const double *A, const int LDA, const double *X, const double BETA, double *Y, const int INCX=1, const int INCY=1) const
 Epetra_BLAS matrix-vector multiply function (DGEMV).

Level 3 BLAS

void GEMM (const char TRANSA, const char TRANSB, const int M, const int N, const int K, const float ALPHA, const float *A, const int LDA, const float *B, const int LDB, const float BETA, float *C, const int LDC) const
 Epetra_BLAS matrix-matrix multiply function (SGEMM).
void GEMM (const char TRANSA, const char TRANSB, const int M, const int N, const int K, const double ALPHA, const double *A, const int LDA, const double *B, const int LDB, const double BETA, double *C, const int LDC) const
 Epetra_BLAS matrix-matrix multiply function (DGEMM).
void SYMM (const char SIDE, const char UPLO, const int M, const int N, const float ALPHA, const float *A, const int LDA, const float *B, const int LDB, const float BETA, float *C, const int LDC) const
 Epetra_BLAS symmetric matrix-matrix multiply function (SSYMM).
void SYMM (const char SIDE, const char UPLO, const int M, const int N, const double ALPHA, const double *A, const int LDA, const double *B, const int LDB, const double BETA, double *C, const int LDC) const
 Epetra_BLAS matrix-matrix multiply function (DSYMM).
void TRMM (const char SIDE, const char UPLO, const char TRANSA, const char DIAG, const int M, const int N, const float ALPHA, const float *A, const int LDA, float *B, const int LDB) const
 Epetra_BLAS triangular matrix-matrix multiply function (STRMM).
void TRMM (const char SIDE, const char UPLO, const char TRANSA, const char DIAG, const int M, const int N, const double ALPHA, const double *A, const int LDA, double *B, const int LDB) const
 Epetra_BLAS triangular matrix-matrix multiply function (DTRMM).


Detailed Description

Epetra_BLAS: The Epetra BLAS Wrapper Class.

The Epetra_BLAS class is a wrapper that encapsulates the BLAS (Basic Linear Algebra Subprograms). The BLAS provide portable, high- performance implementations of kernels such as dense vectoer multiplication, dot products, dense matrix-vector multiplication and dense matrix-matrix multiplication.

The standard BLAS interface is Fortran-specific. Unfortunately, the interface between C++ and Fortran is not standard across all computer platforms. The Epetra_BLAS class provides C++ wrappers for the BLAS kernels in order to insulate the rest of Epetra from the details of C++ to Fortran translation. A Epetra_BLAS object is essentially nothing, but allows access to the BLAS wrapper functions.

Epetra_BLAS is a serial interface only. This is appropriate since the standard BLAS are only specified for serial execution (or shared memory parallel).

Definition at line 57 of file Epetra_BLAS.h.


Constructor & Destructor Documentation

Epetra_BLAS::Epetra_BLAS ( void   )  [inline]

Epetra_BLAS Constructor.

Builds an instance of a serial BLAS object.

Definition at line 160 of file Epetra_BLAS.h.

Epetra_BLAS::Epetra_BLAS ( const Epetra_BLAS BLAS  )  [inline]

Epetra_BLAS Copy Constructor.

Makes an exact copy of an existing Epetra_BLAS instance.

Definition at line 162 of file Epetra_BLAS.h.

Epetra_BLAS::~Epetra_BLAS ( void   )  [inline, virtual]

Epetra_BLAS Destructor.

Definition at line 164 of file Epetra_BLAS.h.


Member Function Documentation

float Epetra_BLAS::ASUM ( const int  N,
const float *  X,
const int  INCX = 1 
) const

Epetra_BLAS one norm function (SASUM).

Definition at line 52 of file Epetra_BLAS.cpp.

double Epetra_BLAS::ASUM ( const int  N,
const double *  X,
const int  INCX = 1 
) const

Epetra_BLAS one norm function (DASUM).

Definition at line 56 of file Epetra_BLAS.cpp.

float Epetra_BLAS::DOT ( const int  N,
const float *  X,
const float *  Y,
const int  INCX = 1,
const int  INCY = 1 
) const

Epetra_BLAS dot product function (SDOT).

Definition at line 60 of file Epetra_BLAS.cpp.

double Epetra_BLAS::DOT ( const int  N,
const double *  X,
const double *  Y,
const int  INCX = 1,
const int  INCY = 1 
) const

Epetra_BLAS dot product function (DDOT).

Definition at line 64 of file Epetra_BLAS.cpp.

float Epetra_BLAS::NRM2 ( const int  N,
const float *  X,
const int  INCX = 1 
) const

Epetra_BLAS norm function (SNRM2).

Definition at line 68 of file Epetra_BLAS.cpp.

double Epetra_BLAS::NRM2 ( const int  N,
const double *  X,
const int  INCX = 1 
) const

Epetra_BLAS norm function (DNRM2).

Definition at line 72 of file Epetra_BLAS.cpp.

void Epetra_BLAS::SCAL ( const int  N,
const float  ALPHA,
float *  X,
const int  INCX = 1 
) const

Epetra_BLAS vector scale function (SSCAL).

Definition at line 76 of file Epetra_BLAS.cpp.

void Epetra_BLAS::SCAL ( const int  N,
const double  ALPHA,
double *  X,
const int  INCX = 1 
) const

Epetra_BLAS vector scale function (DSCAL).

Definition at line 81 of file Epetra_BLAS.cpp.

void Epetra_BLAS::COPY ( const int  N,
const float *  X,
float *  Y,
const int  INCX = 1,
const int  INCY = 1 
) const

Epetra_BLAS vector copy function (SCOPY).

Definition at line 86 of file Epetra_BLAS.cpp.

void Epetra_BLAS::COPY ( const int  N,
const double *  X,
double *  Y,
const int  INCX = 1,
const int  INCY = 1 
) const

Epetra_BLAS vector scale function (DCOPY).

Definition at line 91 of file Epetra_BLAS.cpp.

int Epetra_BLAS::IAMAX ( const int  N,
const float *  X,
const int  INCX = 1 
) const

Epetra_BLAS arg maximum of absolute value function (ISAMAX).

Definition at line 96 of file Epetra_BLAS.cpp.

int Epetra_BLAS::IAMAX ( const int  N,
const double *  X,
const int  INCX = 1 
) const

Epetra_BLAS arg maximum of absolute value function (IDAMAX).

Definition at line 100 of file Epetra_BLAS.cpp.

void Epetra_BLAS::AXPY ( const int  N,
const float  ALPHA,
const float *  X,
float *  Y,
const int  INCX = 1,
const int  INCY = 1 
) const

Epetra_BLAS vector update function (SAXPY).

Definition at line 104 of file Epetra_BLAS.cpp.

void Epetra_BLAS::AXPY ( const int  N,
const double  ALPHA,
const double *  X,
double *  Y,
const int  INCX = 1,
const int  INCY = 1 
) const

Epetra_BLAS vector update function (DAXPY).

Definition at line 108 of file Epetra_BLAS.cpp.

void Epetra_BLAS::GEMV ( const char  TRANS,
const int  M,
const int  N,
const float  ALPHA,
const float *  A,
const int  LDA,
const float *  X,
const float  BETA,
float *  Y,
const int  INCX = 1,
const int  INCY = 1 
) const

Epetra_BLAS matrix-vector multiply function (SGEMV).

Definition at line 112 of file Epetra_BLAS.cpp.

void Epetra_BLAS::GEMV ( const char  TRANS,
const int  M,
const int  N,
const double  ALPHA,
const double *  A,
const int  LDA,
const double *  X,
const double  BETA,
double *  Y,
const int  INCX = 1,
const int  INCY = 1 
) const

Epetra_BLAS matrix-vector multiply function (DGEMV).

Definition at line 119 of file Epetra_BLAS.cpp.

void Epetra_BLAS::GEMM ( const char  TRANSA,
const char  TRANSB,
const int  M,
const int  N,
const int  K,
const float  ALPHA,
const float *  A,
const int  LDA,
const float *  B,
const int  LDB,
const float  BETA,
float *  C,
const int  LDC 
) const

Epetra_BLAS matrix-matrix multiply function (SGEMM).

Definition at line 127 of file Epetra_BLAS.cpp.

void Epetra_BLAS::GEMM ( const char  TRANSA,
const char  TRANSB,
const int  M,
const int  N,
const int  K,
const double  ALPHA,
const double *  A,
const int  LDA,
const double *  B,
const int  LDB,
const double  BETA,
double *  C,
const int  LDC 
) const

Epetra_BLAS matrix-matrix multiply function (DGEMM).

Definition at line 136 of file Epetra_BLAS.cpp.

void Epetra_BLAS::SYMM ( const char  SIDE,
const char  UPLO,
const int  M,
const int  N,
const float  ALPHA,
const float *  A,
const int  LDA,
const float *  B,
const int  LDB,
const float  BETA,
float *  C,
const int  LDC 
) const

Epetra_BLAS symmetric matrix-matrix multiply function (SSYMM).

Definition at line 144 of file Epetra_BLAS.cpp.

void Epetra_BLAS::SYMM ( const char  SIDE,
const char  UPLO,
const int  M,
const int  N,
const double  ALPHA,
const double *  A,
const int  LDA,
const double *  B,
const int  LDB,
const double  BETA,
double *  C,
const int  LDC 
) const

Epetra_BLAS matrix-matrix multiply function (DSYMM).

Definition at line 153 of file Epetra_BLAS.cpp.

void Epetra_BLAS::TRMM ( const char  SIDE,
const char  UPLO,
const char  TRANSA,
const char  DIAG,
const int  M,
const int  N,
const float  ALPHA,
const float *  A,
const int  LDA,
float *  B,
const int  LDB 
) const

Epetra_BLAS triangular matrix-matrix multiply function (STRMM).

Definition at line 161 of file Epetra_BLAS.cpp.

void Epetra_BLAS::TRMM ( const char  SIDE,
const char  UPLO,
const char  TRANSA,
const char  DIAG,
const int  M,
const int  N,
const double  ALPHA,
const double *  A,
const int  LDA,
double *  B,
const int  LDB 
) const

Epetra_BLAS triangular matrix-matrix multiply function (DTRMM).

Definition at line 169 of file Epetra_BLAS.cpp.


The documentation for this class was generated from the following files:

Generated on Wed Jul 22 13:21:59 2009 for Epetra Package Browser (Single Doxygen Collection) by doxygen 1.5.8