Epetra Package Browser (Single Doxygen Collection) Development
Loading...
Searching...
No Matches
List of all members
Epetra_BLAS Class Reference

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

#include <Epetra_BLAS.h>

Inheritance diagram for Epetra_BLAS:
Inheritance graph
[legend]

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)
 
void SYRK (const char UPLO, const char TRANS, const int N, const int K, const float ALPHA, const float *A, const int LDA, const float BETA, float *C, const int LDC) const
 Eperta_BLAS symetric rank k funtion (ssyrk)
 
void SYRK (const char UPLO, const char TRANS, const int N, const int K, const double ALPHA, const double *A, const int LDA, const double BETA, double *C, const int LDC) const
 Eperta_BLAS symetric rank k funtion (dsyrk)
 

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 70 of file Epetra_BLAS.h.

Constructor & Destructor Documentation

◆ Epetra_BLAS() [1/2]

Epetra_BLAS::Epetra_BLAS ( void )
inline

Epetra_BLAS Constructor.

Builds an instance of a serial BLAS object.

Definition at line 179 of file Epetra_BLAS.h.

◆ Epetra_BLAS() [2/2]

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 181 of file Epetra_BLAS.h.

◆ ~Epetra_BLAS()

Epetra_BLAS::~Epetra_BLAS ( void )
inlinevirtual

Epetra_BLAS Destructor.

Definition at line 183 of file Epetra_BLAS.h.

Member Function Documentation

◆ ASUM() [1/2]

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

Epetra_BLAS one norm function (SASUM).

Definition at line 65 of file Epetra_BLAS.cpp.

◆ ASUM() [2/2]

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

Epetra_BLAS one norm function (DASUM).

Definition at line 69 of file Epetra_BLAS.cpp.

◆ DOT() [1/2]

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 73 of file Epetra_BLAS.cpp.

◆ DOT() [2/2]

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 77 of file Epetra_BLAS.cpp.

◆ NRM2() [1/2]

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

Epetra_BLAS norm function (SNRM2).

Definition at line 81 of file Epetra_BLAS.cpp.

◆ NRM2() [2/2]

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

Epetra_BLAS norm function (DNRM2).

Definition at line 85 of file Epetra_BLAS.cpp.

◆ SCAL() [1/2]

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 89 of file Epetra_BLAS.cpp.

◆ SCAL() [2/2]

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 94 of file Epetra_BLAS.cpp.

◆ COPY() [1/2]

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 99 of file Epetra_BLAS.cpp.

◆ COPY() [2/2]

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 104 of file Epetra_BLAS.cpp.

◆ IAMAX() [1/2]

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 109 of file Epetra_BLAS.cpp.

◆ IAMAX() [2/2]

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 113 of file Epetra_BLAS.cpp.

◆ AXPY() [1/2]

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 117 of file Epetra_BLAS.cpp.

◆ AXPY() [2/2]

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 121 of file Epetra_BLAS.cpp.

◆ GEMV() [1/2]

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 125 of file Epetra_BLAS.cpp.

◆ GEMV() [2/2]

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 132 of file Epetra_BLAS.cpp.

◆ GEMM() [1/2]

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 140 of file Epetra_BLAS.cpp.

◆ GEMM() [2/2]

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 149 of file Epetra_BLAS.cpp.

◆ SYMM() [1/2]

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 157 of file Epetra_BLAS.cpp.

◆ SYMM() [2/2]

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 166 of file Epetra_BLAS.cpp.

◆ TRMM() [1/2]

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 174 of file Epetra_BLAS.cpp.

◆ TRMM() [2/2]

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 182 of file Epetra_BLAS.cpp.

◆ SYRK() [1/2]

void Epetra_BLAS::SYRK ( const char UPLO,
const char TRANS,
const int N,
const int K,
const float ALPHA,
const float * A,
const int LDA,
const float BETA,
float * C,
const int LDC ) const

Eperta_BLAS symetric rank k funtion (ssyrk)

Definition at line 190 of file Epetra_BLAS.cpp.

◆ SYRK() [2/2]

void Epetra_BLAS::SYRK ( const char UPLO,
const char TRANS,
const int N,
const int K,
const double ALPHA,
const double * A,
const int LDA,
const double BETA,
double * C,
const int LDC ) const

Eperta_BLAS symetric rank k funtion (dsyrk)

Definition at line 195 of file Epetra_BLAS.cpp.


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