|
Teuchos Package Browser (Single Doxygen Collection)
Version of the Day
|
Default implementation for BLAS routines. More...
#include <Teuchos_BLAS.hpp>

Private Types | |
| typedef Teuchos::ScalarTraits < ScalarType >::magnitudeType | MagnitudeType |
Constructor/Destructor. | |
| DefaultBLASImpl (void) | |
| Default constructor. | |
| DefaultBLASImpl (const DefaultBLASImpl< OrdinalType, ScalarType > &) | |
| Copy constructor. | |
| virtual | ~DefaultBLASImpl (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. | |
| template<typename alpha_type , typename x_type > | |
| void | AXPY (const OrdinalType n, const alpha_type alpha, const x_type *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. | |
| template<typename x_type , typename y_type > | |
| ScalarType | DOT (const OrdinalType n, const x_type *x, const OrdinalType incx, const y_type *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. | |
| template<typename alpha_type , typename A_type , typename x_type , typename beta_type > | |
| void | GEMV (ETransp trans, const OrdinalType m, const OrdinalType n, const alpha_type alpha, const A_type *A, const OrdinalType lda, const x_type *x, const OrdinalType incx, const beta_type 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. | |
| template<typename A_type > | |
| void | TRMV (EUplo uplo, ETransp trans, EDiag diag, const OrdinalType n, const A_type *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. | |
| template<typename alpha_type , typename x_type , typename y_type > | |
| void | GER (const OrdinalType m, const OrdinalType n, const alpha_type alpha, const x_type *x, const OrdinalType incx, const y_type *y, const OrdinalType incy, ScalarType *A, const OrdinalType lda) const |
Performs the rank 1 operation: A <- alpha*x*y'+A. | |
Level 3 BLAS Routines. | |
| template<typename alpha_type , typename A_type , typename B_type , typename beta_type > | |
| void | GEMM (ETransp transa, ETransp transb, const OrdinalType m, const OrdinalType n, const OrdinalType k, const alpha_type alpha, const A_type *A, const OrdinalType lda, const B_type *B, const OrdinalType ldb, const beta_type beta, ScalarType *C, const OrdinalType ldc) const |
| General matrix-matrix multiply. | |
| template<typename alpha_type , typename A_type , typename B_type , typename beta_type > | |
| void | SYMM (ESide side, EUplo uplo, const OrdinalType m, const OrdinalType n, const alpha_type alpha, const A_type *A, const OrdinalType lda, const B_type *B, const OrdinalType ldb, const beta_type 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. | |
| template<typename alpha_type , typename A_type , typename beta_type > | |
| void | SYRK (EUplo uplo, ETransp trans, const OrdinalType n, const OrdinalType k, const alpha_type alpha, const A_type *A, const OrdinalType lda, const beta_type beta, ScalarType *C, const OrdinalType ldc) const |
Performs the symmetric rank k operation: C <- alpha*A*A'+beta*C or C <- alpha*A'*A+beta*C, where alpha and beta are scalars, C is an n by n symmetric matrix and A is an n by k matrix in the first case or k by n matrix in the second case. | |
| template<typename alpha_type , typename A_type > | |
| void | TRMM (ESide side, EUplo uplo, ETransp transa, EDiag diag, const OrdinalType m, const OrdinalType n, const alpha_type alpha, const A_type *A, const OrdinalType lda, ScalarType *B, const OrdinalType ldb) const |
Performs the matrix-matrix operation: B <- alpha*op(A)*B or B <- alpha*B*op(A) where op(A) is an unit/non-unit, upper/lower triangular matrix and B is a general matrix. | |
| template<typename alpha_type , typename A_type > | |
| void | TRSM (ESide side, EUplo uplo, ETransp transa, EDiag diag, const OrdinalType m, const OrdinalType n, const alpha_type alpha, const A_type *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. | |
Default implementation for BLAS routines.
This class provides the default implementation for the BLAS routines. It is put in a separate class so that specializations of BLAS for other types still have this implementation available.
Definition at line 122 of file Teuchos_BLAS.hpp.
typedef Teuchos::ScalarTraits<ScalarType>::magnitudeType Teuchos::DefaultBLASImpl< OrdinalType, ScalarType >::MagnitudeType [private] |
Reimplemented in Teuchos::BLAS< OrdinalType, ScalarType >, Teuchos::SerialBandDenseSolver< OrdinalType, ScalarType >, Teuchos::SerialDenseSolver< OrdinalType, ScalarType >, Teuchos::SerialQRDenseSolver< OrdinalType, ScalarType >, and Teuchos::SerialSpdDenseSolver< OrdinalType, ScalarType >.
Definition at line 125 of file Teuchos_BLAS.hpp.
| Teuchos::DefaultBLASImpl< OrdinalType, ScalarType >::DefaultBLASImpl | ( | void | ) | [inline] |
Default constructor.
Definition at line 132 of file Teuchos_BLAS.hpp.
| Teuchos::DefaultBLASImpl< OrdinalType, ScalarType >::DefaultBLASImpl | ( | const DefaultBLASImpl< OrdinalType, ScalarType > & | ) | [inline] |
Copy constructor.
Definition at line 135 of file Teuchos_BLAS.hpp.
| virtual Teuchos::DefaultBLASImpl< OrdinalType, ScalarType >::~DefaultBLASImpl | ( | void | ) | [inline, virtual] |
Destructor.
Definition at line 138 of file Teuchos_BLAS.hpp.
| void Teuchos::DefaultBLASImpl< OrdinalType, ScalarType >::ROTG | ( | ScalarType * | da, |
| ScalarType * | db, | ||
| MagnitudeType * | c, | ||
| ScalarType * | s | ||
| ) | const |
Computes a Givens plane rotation.
Definition at line 505 of file Teuchos_BLAS.hpp.
| void Teuchos::DefaultBLASImpl< OrdinalType, ScalarType >::ROT | ( | const OrdinalType | n, |
| ScalarType * | dx, | ||
| const OrdinalType | incx, | ||
| ScalarType * | dy, | ||
| const OrdinalType | incy, | ||
| MagnitudeType * | c, | ||
| ScalarType * | s | ||
| ) | const |
Applies a Givens plane rotation.
Definition at line 516 of file Teuchos_BLAS.hpp.
| void Teuchos::DefaultBLASImpl< OrdinalType, ScalarType >::SCAL | ( | const OrdinalType | n, |
| const ScalarType | alpha, | ||
| ScalarType * | x, | ||
| const OrdinalType | incx | ||
| ) | const |
Scale the vector x by the constant alpha.
Definition at line 543 of file Teuchos_BLAS.hpp.
| void Teuchos::DefaultBLASImpl< OrdinalType, ScalarType >::COPY | ( | const OrdinalType | n, |
| const ScalarType * | x, | ||
| const OrdinalType | incx, | ||
| ScalarType * | y, | ||
| const OrdinalType | incy | ||
| ) | const |
Copy the vector x to the vector y.
Definition at line 561 of file Teuchos_BLAS.hpp.
| void Teuchos::DefaultBLASImpl< OrdinalType, ScalarType >::AXPY | ( | const OrdinalType | n, |
| const alpha_type | alpha, | ||
| const x_type * | x, | ||
| const OrdinalType | incx, | ||
| ScalarType * | y, | ||
| const OrdinalType | incy | ||
| ) | const |
Perform the operation: y <- y+alpha*x.
Definition at line 582 of file Teuchos_BLAS.hpp.
| ScalarTraits< ScalarType >::magnitudeType Teuchos::DefaultBLASImpl< OrdinalType, ScalarType >::ASUM | ( | const OrdinalType | n, |
| const ScalarType * | x, | ||
| const OrdinalType | incx | ||
| ) | const |
Sum the absolute values of the entries of x.
Definition at line 603 of file Teuchos_BLAS.hpp.
| ScalarType Teuchos::DefaultBLASImpl< OrdinalType, ScalarType >::DOT | ( | const OrdinalType | n, |
| const x_type * | x, | ||
| const OrdinalType | incx, | ||
| const y_type * | y, | ||
| const OrdinalType | incy | ||
| ) | const |
Form the dot product of the vectors x and y.
Definition at line 627 of file Teuchos_BLAS.hpp.
| ScalarTraits< ScalarType >::magnitudeType Teuchos::DefaultBLASImpl< OrdinalType, ScalarType >::NRM2 | ( | const OrdinalType | n, |
| const ScalarType * | x, | ||
| const OrdinalType | incx | ||
| ) | const |
Compute the 2-norm of the vector x.
Definition at line 650 of file Teuchos_BLAS.hpp.
| OrdinalType Teuchos::DefaultBLASImpl< OrdinalType, ScalarType >::IAMAX | ( | const OrdinalType | n, |
| const ScalarType * | x, | ||
| const OrdinalType | incx | ||
| ) | const |
Return the index of the element of x with the maximum magnitude.
Definition at line 671 of file Teuchos_BLAS.hpp.
| void Teuchos::DefaultBLASImpl< OrdinalType, ScalarType >::GEMV | ( | ETransp | trans, |
| const OrdinalType | m, | ||
| const OrdinalType | n, | ||
| const alpha_type | alpha, | ||
| const A_type * | A, | ||
| const OrdinalType | lda, | ||
| const x_type * | x, | ||
| const OrdinalType | incx, | ||
| const beta_type | 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.
Definition at line 707 of file Teuchos_BLAS.hpp.
| void Teuchos::DefaultBLASImpl< OrdinalType, ScalarType >::TRMV | ( | EUplo | uplo, |
| ETransp | trans, | ||
| EDiag | diag, | ||
| const OrdinalType | n, | ||
| const A_type * | 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.
Definition at line 860 of file Teuchos_BLAS.hpp.
| void Teuchos::DefaultBLASImpl< OrdinalType, ScalarType >::GER | ( | const OrdinalType | m, |
| const OrdinalType | n, | ||
| const alpha_type | alpha, | ||
| const x_type * | x, | ||
| const OrdinalType | incx, | ||
| const y_type * | y, | ||
| const OrdinalType | incy, | ||
| ScalarType * | A, | ||
| const OrdinalType | lda | ||
| ) | const |
Performs the rank 1 operation: A <- alpha*x*y'+A.
Definition at line 1055 of file Teuchos_BLAS.hpp.
| void Teuchos::DefaultBLASImpl< OrdinalType, ScalarType >::GEMM | ( | ETransp | transa, |
| ETransp | transb, | ||
| const OrdinalType | m, | ||
| const OrdinalType | n, | ||
| const OrdinalType | k, | ||
| const alpha_type | alpha, | ||
| const A_type * | A, | ||
| const OrdinalType | lda, | ||
| const B_type * | B, | ||
| const OrdinalType | ldb, | ||
| const beta_type | beta, | ||
| ScalarType * | C, | ||
| const OrdinalType | ldc | ||
| ) | const |
General matrix-matrix multiply.
This computes C = alpha*op(A)*op(B) + beta*C. op(X) here may be either X, the transpose of X, or the conjugate transpose of X. op(A) has m rows and k columns, op(B) has k rows and n columns, and C has m rows and n columns.
Definition at line 1130 of file Teuchos_BLAS.hpp.
| void Teuchos::DefaultBLASImpl< OrdinalType, ScalarType >::SYMM | ( | ESide | side, |
| EUplo | uplo, | ||
| const OrdinalType | m, | ||
| const OrdinalType | n, | ||
| const alpha_type | alpha, | ||
| const A_type * | A, | ||
| const OrdinalType | lda, | ||
| const B_type * | B, | ||
| const OrdinalType | ldb, | ||
| const beta_type | beta, | ||
| ScalarType * | C, | ||
| const OrdinalType | ldc | ||
| ) | const |
| void Teuchos::DefaultBLASImpl< OrdinalType, ScalarType >::SYRK | ( | EUplo | uplo, |
| ETransp | trans, | ||
| const OrdinalType | n, | ||
| const OrdinalType | k, | ||
| const alpha_type | alpha, | ||
| const A_type * | A, | ||
| const OrdinalType | lda, | ||
| const beta_type | beta, | ||
| ScalarType * | C, | ||
| const OrdinalType | ldc | ||
| ) | const |
| void Teuchos::DefaultBLASImpl< OrdinalType, ScalarType >::TRMM | ( | ESide | side, |
| EUplo | uplo, | ||
| ETransp | transa, | ||
| EDiag | diag, | ||
| const OrdinalType | m, | ||
| const OrdinalType | n, | ||
| const alpha_type | alpha, | ||
| const A_type * | A, | ||
| const OrdinalType | lda, | ||
| ScalarType * | B, | ||
| const OrdinalType | ldb | ||
| ) | const |
| void Teuchos::DefaultBLASImpl< OrdinalType, ScalarType >::TRSM | ( | ESide | side, |
| EUplo | uplo, | ||
| ETransp | transa, | ||
| EDiag | diag, | ||
| const OrdinalType | m, | ||
| const OrdinalType | n, | ||
| const alpha_type | alpha, | ||
| const A_type * | A, | ||
| const OrdinalType | lda, | ||
| ScalarType * | B, | ||
| const OrdinalType | ldb | ||
| ) | const |
1.7.6.1