#include <Teuchos_BLAS.hpp>
Inheritance diagram for Teuchos::BLAS< OrdinalType, ScalarType >:

Public Member Functions | |
Constructor/Destructor. | |
| BLAS (void) | |
| Default constructor. | |
| BLAS (const BLAS< OrdinalType, ScalarType > &BLAS_source) | |
| Copy constructor. | |
| virtual | ~BLAS (void) |
| Destructor. | |
Level 1 BLAS Routines. | |
| void | ROTG (ScalarType *da, ScalarType *db, MagnitudeType *c, ScalarType *s) const |
| Computes a Givens plane rotation. | |
| void | ROT (const OrdinalType n, ScalarType *dx, const OrdinalType incx, ScalarType *dy, const OrdinalType incy, MagnitudeType *c, ScalarType *s) const |
| Applies a Givens plane rotation. | |
| void | SCAL (const OrdinalType n, const ScalarType alpha, ScalarType *x, const OrdinalType incx) const |
Scale the vector x by the constant alpha. | |
| void | COPY (const OrdinalType n, const ScalarType *x, const OrdinalType incx, ScalarType *y, const OrdinalType incy) const |
Copy the vector x to the vector y. | |
| void | AXPY (const OrdinalType n, const ScalarType alpha, const ScalarType *x, const OrdinalType incx, ScalarType *y, const OrdinalType incy) const |
Perform the operation: y <- y+alpha*x. | |
| ScalarTraits< ScalarType >::magnitudeType | ASUM (const OrdinalType n, const ScalarType *x, const OrdinalType incx) const |
Sum the absolute values of the entries of x. | |
| ScalarType | DOT (const OrdinalType n, const ScalarType *x, const OrdinalType incx, const ScalarType *y, const OrdinalType incy) const |
Form the dot product of the vectors x and y. | |
| ScalarTraits< ScalarType >::magnitudeType | NRM2 (const OrdinalType n, const ScalarType *x, const OrdinalType incx) const |
Compute the 2-norm of the vector x. | |
| OrdinalType | IAMAX (const OrdinalType n, const ScalarType *x, const OrdinalType incx) const |
Return the index of the element of x with the maximum magnitude. | |
Level 2 BLAS Routines. | |
| void | GEMV (ETransp trans, const OrdinalType m, const OrdinalType n, const ScalarType alpha, const ScalarType *A, const OrdinalType lda, const ScalarType *x, const OrdinalType incx, const ScalarType beta, ScalarType *y, const OrdinalType incy) const |
Performs the matrix-vector operation: y <- alpha*A*x+beta*y or y <- alpha*A'*x+beta*y where A is a general m by n matrix. | |
| void | TRMV (EUplo uplo, ETransp trans, EDiag diag, const OrdinalType n, const ScalarType *A, const OrdinalType lda, ScalarType *x, const OrdinalType incx) const |
Performs the matrix-vector operation: x <- A*x or x <- A'*x where A is a unit/non-unit n by n upper/lower triangular matrix. | |
| void | GER (const OrdinalType m, const OrdinalType n, const ScalarType alpha, const ScalarType *x, const OrdinalType incx, const ScalarType *y, const OrdinalType incy, ScalarType *A, const OrdinalType lda) const |
Performs the rank 1 operation: A <- alpha*x*y'+A. | |
Level 3 BLAS Routines. | |
| void | GEMM (ETransp transa, ETransp transb, const OrdinalType m, const OrdinalType n, const OrdinalType k, const ScalarType alpha, const ScalarType *A, const OrdinalType lda, const ScalarType *B, const OrdinalType ldb, const ScalarType beta, ScalarType *C, const OrdinalType ldc) const |
Performs the matrix-matrix operation: C <- alpha*op(A)*op(B)+beta*C where op(A) is either A or A', op(B) is either B or B', and C is an m by k matrix. | |
| void | SYMM (ESide side, EUplo uplo, const OrdinalType m, const OrdinalType n, const ScalarType alpha, const ScalarType *A, const OrdinalType lda, const ScalarType *B, const OrdinalType ldb, const ScalarType beta, ScalarType *C, const OrdinalType ldc) const |
Performs the matrix-matrix operation: C <- alpha*A*B+beta*C or C <- alpha*B*A+beta*C where A is an m by m or n by n symmetric matrix and B is a general matrix. | |
| void | TRMM (ESide side, EUplo uplo, ETransp transa, EDiag diag, const OrdinalType m, const OrdinalType n, const ScalarType alpha, const ScalarType *A, const OrdinalType lda, ScalarType *B, const OrdinalType ldb) const |
Performs the matrix-matrix operation: C <- alpha*op(A)*B+beta*C or C <- alpha*B*op(A)+beta*C where op(A) is an unit/non-unit, upper/lower triangular matrix and B is a general matrix. | |
| void | TRSM (ESide side, EUplo uplo, ETransp transa, EDiag diag, const OrdinalType m, const OrdinalType n, const ScalarType alpha, const ScalarType *A, const OrdinalType lda, ScalarType *B, const OrdinalType ldb) const |
Solves the matrix equations: op(A)*X=alpha*B or X*op(A)=alpha*B where X and B are m by n matrices, A is a unit/non-unit, upper/lower triangular matrix and op(A) is A or A'. The matrix X is overwritten on B. | |
The Teuchos::BLAS class provides functionality similar to the BLAS (Basic Linear Algebra Subprograms). The BLAS provide portable, high- performance implementations of kernels such as dense vector 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 Teuchos_BLAS class provides C++ bindings for the BLAS kernels in order to insulate the rest of Petra from the details of C++ to Fortran translation.
In addition to giving access the standard BLAS functionality. Teuchos::BLAS also provide functionality for any <scalartype> class that defines the +, - * and / operators.
Teuchos::BLAS is a single memory image interface only. This is appropriate since the standard BLAS are only specified for serial execution (or shared memory parallel).
Definition at line 120 of file Teuchos_BLAS.hpp.
|
||||||||||
|
Default constructor.
Definition at line 130 of file Teuchos_BLAS.hpp. |
|
||||||||||
|
Copy constructor.
Definition at line 133 of file Teuchos_BLAS.hpp. |
|
||||||||||
|
Destructor.
Definition at line 136 of file Teuchos_BLAS.hpp. |
|
||||||||||||||||||||||||
|
Computes a Givens plane rotation.
Definition at line 211 of file Teuchos_BLAS.hpp. |
|
||||||||||||||||||||||||||||||||||||
|
Applies a Givens plane rotation.
Definition at line 238 of file Teuchos_BLAS.hpp. |
|
||||||||||||||||||||||||
|
Scale the vector
Definition at line 244 of file Teuchos_BLAS.hpp. |
|
||||||||||||||||||||||||||||
|
Copy the vector
Definition at line 262 of file Teuchos_BLAS.hpp. |
|
||||||||||||||||||||||||||||||||
|
Perform the operation:
Definition at line 282 of file Teuchos_BLAS.hpp. |
|
||||||||||||||||||||
|
Sum the absolute values of the entries of
Definition at line 303 of file Teuchos_BLAS.hpp. |
|
||||||||||||||||||||||||||||
|
Form the dot product of the vectors
Definition at line 324 of file Teuchos_BLAS.hpp. |
|
||||||||||||||||||||
|
Compute the 2-norm of the vector
Definition at line 347 of file Teuchos_BLAS.hpp. |
|
||||||||||||||||||||
|
Return the index of the element of
Definition at line 370 of file Teuchos_BLAS.hpp. |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Performs the matrix-vector operation:
Definition at line 400 of file Teuchos_BLAS.hpp. |
|
||||||||||||||||||||||||||||||||||||||||
|
Performs the matrix-vector operation:
Definition at line 532 of file Teuchos_BLAS.hpp. |
|
||||||||||||||||||||||||||||||||||||||||||||
|
Performs the rank 1 operation:
Definition at line 689 of file Teuchos_BLAS.hpp. |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Performs the matrix-matrix operation:
Definition at line 763 of file Teuchos_BLAS.hpp. |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Performs the matrix-matrix operation:
Definition at line 912 of file Teuchos_BLAS.hpp. |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Performs the matrix-matrix operation:
Definition at line 1039 of file Teuchos_BLAS.hpp. |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Solves the matrix equations:
Definition at line 1238 of file Teuchos_BLAS.hpp. |
1.3.9.1