Teuchos Package Browser (Single Doxygen Collection) Version of the Day
Private Types
Teuchos::DefaultBLASImpl< OrdinalType, ScalarType > Class Template Reference

Default implementation for BLAS routines. More...

#include <Teuchos_BLAS.hpp>

Inheritance diagram for Teuchos::DefaultBLASImpl< OrdinalType, ScalarType >:
Inheritance graph
[legend]

List of all members.

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 std::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 std::vector x to the std::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 std::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-std::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-std::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
 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.
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 >
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: 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.
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.

Detailed Description

template<typename OrdinalType, typename ScalarType>
class Teuchos::DefaultBLASImpl< OrdinalType, ScalarType >

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 126 of file Teuchos_BLAS.hpp.


Member Typedef Documentation

template<typename OrdinalType , typename ScalarType >
typedef Teuchos::ScalarTraits<ScalarType>::magnitudeType Teuchos::DefaultBLASImpl< OrdinalType, ScalarType >::MagnitudeType [private]

Constructor & Destructor Documentation

template<typename OrdinalType , typename ScalarType >
Teuchos::DefaultBLASImpl< OrdinalType, ScalarType >::DefaultBLASImpl ( void  ) [inline]

Default constructor.

Definition at line 136 of file Teuchos_BLAS.hpp.

template<typename OrdinalType , typename ScalarType >
Teuchos::DefaultBLASImpl< OrdinalType, ScalarType >::DefaultBLASImpl ( const DefaultBLASImpl< OrdinalType, ScalarType > &  ) [inline]

Copy constructor.

Definition at line 139 of file Teuchos_BLAS.hpp.

template<typename OrdinalType , typename ScalarType >
virtual Teuchos::DefaultBLASImpl< OrdinalType, ScalarType >::~DefaultBLASImpl ( void  ) [inline, virtual]

Destructor.

Definition at line 142 of file Teuchos_BLAS.hpp.


Member Function Documentation

template<typename OrdinalType , typename ScalarType >
void Teuchos::DefaultBLASImpl< OrdinalType, ScalarType >::ROTG ( ScalarType *  da,
ScalarType *  db,
MagnitudeType c,
ScalarType *  s 
) const

Computes a Givens plane rotation.

Definition at line 247 of file Teuchos_BLAS.hpp.

template<typename OrdinalType , typename ScalarType >
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 286 of file Teuchos_BLAS.hpp.

template<typename OrdinalType , typename ScalarType >
void Teuchos::DefaultBLASImpl< OrdinalType, ScalarType >::SCAL ( const OrdinalType  n,
const ScalarType  alpha,
ScalarType *  x,
const OrdinalType  incx 
) const

Scale the std::vector x by the constant alpha.

Definition at line 312 of file Teuchos_BLAS.hpp.

template<typename OrdinalType , typename ScalarType >
void Teuchos::DefaultBLASImpl< OrdinalType, ScalarType >::COPY ( const OrdinalType  n,
const ScalarType *  x,
const OrdinalType  incx,
ScalarType *  y,
const OrdinalType  incy 
) const

Copy the std::vector x to the std::vector y.

Definition at line 330 of file Teuchos_BLAS.hpp.

template<typename OrdinalType , typename ScalarType >
template<typename alpha_type , typename x_type >
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 351 of file Teuchos_BLAS.hpp.

template<typename OrdinalType , typename ScalarType >
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 372 of file Teuchos_BLAS.hpp.

template<typename OrdinalType , typename ScalarType >
template<typename x_type , typename y_type >
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 394 of file Teuchos_BLAS.hpp.

template<typename OrdinalType , typename ScalarType >
ScalarTraits< ScalarType >::magnitudeType Teuchos::DefaultBLASImpl< OrdinalType, ScalarType >::NRM2 ( const OrdinalType  n,
const ScalarType *  x,
const OrdinalType  incx 
) const

Compute the 2-norm of the std::vector x.

Definition at line 417 of file Teuchos_BLAS.hpp.

template<typename OrdinalType , typename ScalarType >
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 440 of file Teuchos_BLAS.hpp.

template<typename OrdinalType , typename ScalarType >
template<typename alpha_type , typename A_type , typename x_type , typename beta_type >
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-std::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 471 of file Teuchos_BLAS.hpp.

template<typename OrdinalType , typename ScalarType >
template<typename A_type >
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-std::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 610 of file Teuchos_BLAS.hpp.

template<typename OrdinalType , typename ScalarType >
template<typename alpha_type , typename x_type , typename y_type >
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 770 of file Teuchos_BLAS.hpp.

template<typename OrdinalType , typename ScalarType >
template<typename alpha_type , typename A_type , typename B_type , typename beta_type >
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

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.

Definition at line 848 of file Teuchos_BLAS.hpp.

template<typename OrdinalType , typename ScalarType >
template<typename alpha_type , typename A_type , typename B_type , typename beta_type >
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

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.

Definition at line 1013 of file Teuchos_BLAS.hpp.

template<typename OrdinalType , typename ScalarType >
template<typename alpha_type , typename A_type >
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

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.

Definition at line 1146 of file Teuchos_BLAS.hpp.

template<typename OrdinalType , typename ScalarType >
template<typename alpha_type , typename A_type >
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

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.

Definition at line 1351 of file Teuchos_BLAS.hpp.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines