Sacado  Development
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Pages
Protected Member Functions | Protected Attributes | List of all members
Sacado::Fad::BLAS< OrdinalType, FadType > Class Template Reference

Fad specializations for Teuchos::BLAS wrappers. More...

#include <Sacado_Fad_BLAS.hpp>

Inheritance diagram for Sacado::Fad::BLAS< OrdinalType, FadType >:
Inheritance graph
[legend]
Collaboration diagram for Sacado::Fad::BLAS< OrdinalType, FadType >:
Collaboration graph
[legend]

Public Member Functions

Constructor/Destructor.
 BLAS (bool use_default_impl=true, bool use_dynamic=true, OrdinalType static_workspace_size=0)
 Default constructor.
 
 BLAS (const BLAS &x)
 Copy constructor.
 
virtual ~BLAS ()
 Destructor.
 
Level 1 BLAS Routines.
void ROTG (FadType *da, FadType *db, MagnitudeType *c, FadType *s) const
 Computes a Givens plane rotation.
 
void ROT (const OrdinalType n, FadType *dx, const OrdinalType incx, FadType *dy, const OrdinalType incy, MagnitudeType *c, FadType *s) const
 Applies a Givens plane rotation.
 
void SCAL (const OrdinalType n, const FadType &alpha, FadType *x, const OrdinalType incx) const
 Scale the std::vector x by the constant alpha.
 
void COPY (const OrdinalType n, const FadType *x, const OrdinalType incx, FadType *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, FadType *y, const OrdinalType incy) const
 Perform the operation: y <- y+alpha*x.
 
Teuchos::ScalarTraits< FadType >
::magnitudeType 
ASUM (const OrdinalType n, const FadType *x, const OrdinalType incx) const
 Sum the absolute values of the entries of x.
 
template<typename x_type , typename y_type >
FadType 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.
 
MagnitudeType NRM2 (const OrdinalType n, const FadType *x, const OrdinalType incx) const
 Compute the 2-norm of the std::vector x.
 
OrdinalType IAMAX (const OrdinalType n, const FadType *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 (Teuchos::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, FadType *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 (Teuchos::EUplo uplo, Teuchos::ETransp trans, Teuchos::EDiag diag, const OrdinalType n, const A_type *A, const OrdinalType lda, FadType *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, FadType *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 (Teuchos::ETransp transa, Teuchos::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, FadType *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 (Teuchos::ESide side, Teuchos::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, FadType *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 (Teuchos::ESide side, Teuchos::EUplo uplo, Teuchos::ETransp transa, Teuchos::EDiag diag, const OrdinalType m, const OrdinalType n, const alpha_type &alpha, const A_type *A, const OrdinalType lda, FadType *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 (Teuchos::ESide side, Teuchos::EUplo uplo, Teuchos::ETransp transa, Teuchos::EDiag diag, const OrdinalType m, const OrdinalType n, const alpha_type &alpha, const A_type *A, const OrdinalType lda, FadType *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.
 

Protected Member Functions

template<typename x_type , typename y_type >
void Fad_DOT (const OrdinalType n, const x_type *x, const OrdinalType incx, const OrdinalType n_x_dot, const x_type *x_dot, const OrdinalType incx_dot, const y_type *y, const OrdinalType incy, const OrdinalType n_y_dot, const y_type *y_dot, const OrdinalType incy_dot, ValueType &z, const OrdinalType n_z_dot, ValueType *zdot) const
 Implementation of DOT.
 
template<typename alpha_type , typename A_type , typename x_type , typename beta_type >
void Fad_GEMV (Teuchos::ETransp trans, const OrdinalType m, const OrdinalType n, const alpha_type &alpha, const OrdinalType n_alpha_dot, const alpha_type *alpha_dot, const A_type *A, const OrdinalType lda, const OrdinalType n_A_dot, const A_type *A_dot, const OrdinalType lda_dot, const x_type *x, const OrdinalType incx, const OrdinalType n_x_dot, const x_type *x_dot, const OrdinalType incx_dot, const beta_type &beta, const OrdinalType n_beta_dot, const beta_type *beta_dot, ValueType *y, const OrdinalType incy, const OrdinalType n_y_dot, ValueType *y_dot, const OrdinalType incy_dot, const OrdinalType n_dot) const
 Implementation of GEMV.
 
template<typename alpha_type , typename x_type , typename y_type >
void Fad_GER (const OrdinalType m, const OrdinalType n, const alpha_type &alpha, const OrdinalType n_alpha_dot, const alpha_type *alpha_dot, const x_type *x, const OrdinalType incx, const OrdinalType n_x_dot, const x_type *x_dot, const OrdinalType incx_dot, const y_type *y, const OrdinalType incy, const OrdinalType n_y_dot, const y_type *y_dot, const OrdinalType incy_dot, ValueType *A, const OrdinalType lda, const OrdinalType n_A_dot, ValueType *A_dot, const OrdinalType lda_dot, const OrdinalType n_dot) const
 Implementation of GER.
 
template<typename alpha_type , typename A_type , typename B_type , typename beta_type >
void Fad_GEMM (Teuchos::ETransp transa, Teuchos::ETransp transb, const OrdinalType m, const OrdinalType n, const OrdinalType k, const alpha_type &alpha, const OrdinalType n_alpha_dot, const alpha_type *alpha_dot, const A_type *A, const OrdinalType lda, const OrdinalType n_A_dot, const A_type *A_dot, const OrdinalType lda_dot, const B_type *B, const OrdinalType ldb, const OrdinalType n_B_dot, const B_type *B_dot, const OrdinalType ldb_dot, const beta_type &beta, const OrdinalType n_beta_dot, const beta_type *beta_dot, ValueType *C, const OrdinalType ldc, const OrdinalType n_C_dot, ValueType *C_dot, const OrdinalType ldc_dot, const OrdinalType n_dot) const
 Implementation of GEMM.
 
template<typename alpha_type , typename A_type , typename B_type , typename beta_type >
void Fad_SYMM (Teuchos::ESide side, Teuchos::EUplo uplo, const OrdinalType m, const OrdinalType n, const alpha_type &alpha, const OrdinalType n_alpha_dot, const alpha_type *alpha_dot, const A_type *A, const OrdinalType lda, const OrdinalType n_A_dot, const A_type *A_dot, const OrdinalType lda_dot, const B_type *B, const OrdinalType ldb, const OrdinalType n_B_dot, const B_type *B_dot, const OrdinalType ldb_dot, const beta_type &beta, const OrdinalType n_beta_dot, const beta_type *beta_dot, ValueType *C, const OrdinalType ldc, const OrdinalType n_C_dot, ValueType *C_dot, const OrdinalType ldc_dot, const OrdinalType n_dot) const
 Implementation of SYMM.
 
template<typename alpha_type , typename A_type >
void Fad_TRMM (Teuchos::ESide side, Teuchos::EUplo uplo, Teuchos::ETransp transa, Teuchos::EDiag diag, const OrdinalType m, const OrdinalType n, const alpha_type &alpha, const OrdinalType n_alpha_dot, const alpha_type *alpha_dot, const A_type *A, const OrdinalType lda, const OrdinalType n_A_dot, const A_type *A_dot, const OrdinalType lda_dot, ValueType *B, const OrdinalType ldb, const OrdinalType n_B_dot, ValueType *B_dot, const OrdinalType ldb_dot, const OrdinalType n_dot) const
 Implementation of TRMM.
 
template<typename alpha_type , typename A_type >
void Fad_TRSM (Teuchos::ESide side, Teuchos::EUplo uplo, Teuchos::ETransp transa, Teuchos::EDiag diag, const OrdinalType m, const OrdinalType n, const alpha_type &alpha, const OrdinalType n_alpha_dot, const alpha_type *alpha_dot, const A_type *A, const OrdinalType lda, const OrdinalType n_A_dot, const A_type *A_dot, const OrdinalType lda_dot, ValueType *B, const OrdinalType ldb, const OrdinalType n_B_dot, ValueType *B_dot, const OrdinalType ldb_dot, const OrdinalType n_dot) const
 Implementation of TRMM.
 

Protected Attributes

ArrayTraits< OrdinalType, FadType > arrayTraits
 ArrayTraits for packing/unpacking value/derivative arrays.
 
Teuchos::BLAS< OrdinalType,
ValueType > 
blas
 BLAS for values.
 
bool use_default_impl
 Use custom or default implementation.
 
std::vector< ValueType > gemv_Ax
 Temporary array for GEMV.
 
std::vector< ValueType > gemm_AB
 Temporary array for GEMM.
 

Detailed Description

template<typename OrdinalType, typename FadType>
class Sacado::Fad::BLAS< OrdinalType, FadType >

Fad specializations for Teuchos::BLAS wrappers.


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