#include <Epetra_BLAS.h>
Public Member Functions | |
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). | |
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.
| 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] |
| double Epetra_BLAS::ASUM | ( | const int | N, | |
| const double * | X, | |||
| const int | INCX = 1 | |||
| ) | const |
Epetra_BLAS one norm function (DASUM).
| float Epetra_BLAS::ASUM | ( | const int | N, | |
| const float * | X, | |||
| const int | INCX = 1 | |||
| ) | const |
Epetra_BLAS one norm function (SASUM).
| 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).
| 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).
| 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).
| 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).
| 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).
| 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).
| 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).
| 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).
| 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).
| 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).
| int Epetra_BLAS::IAMAX | ( | const int | N, | |
| const double * | X, | |||
| const int | INCX = 1 | |||
| ) | const |
Epetra_BLAS arg maximum of absolute value function (IDAMAX).
| int Epetra_BLAS::IAMAX | ( | const int | N, | |
| const float * | X, | |||
| const int | INCX = 1 | |||
| ) | const |
Epetra_BLAS arg maximum of absolute value function (ISAMAX).
| double Epetra_BLAS::NRM2 | ( | const int | N, | |
| const double * | X, | |||
| const int | INCX = 1 | |||
| ) | const |
Epetra_BLAS norm function (DNRM2).
| float Epetra_BLAS::NRM2 | ( | const int | N, | |
| const float * | X, | |||
| const int | INCX = 1 | |||
| ) | const |
Epetra_BLAS norm function (SNRM2).
| void Epetra_BLAS::SCAL | ( | const int | N, | |
| const double | ALPHA, | |||
| double * | X, | |||
| const int | INCX = 1 | |||
| ) | const |
Epetra_BLAS vector scale function (DSCAL).
| void Epetra_BLAS::SCAL | ( | const int | N, | |
| const float | ALPHA, | |||
| float * | X, | |||
| const int | INCX = 1 | |||
| ) | const |
Epetra_BLAS vector scale function (SSCAL).
| 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).
| 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).
| 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).
| 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).
1.5.9