Sacado Package Browser (Single Doxygen Collection)  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Protected Member Functions | Protected Attributes | Private Types | 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]

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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 

Protected Attributes

ArrayTraits< OrdinalType, FadTypearrayTraits
 ArrayTraits for packing/unpacking value/derivative arrays. More...
 
Teuchos::BLAS< OrdinalType,
ValueType
blas
 BLAS for values. More...
 
bool use_default_impl
 Use custom or default implementation. More...
 
std::vector< ValueTypegemv_Ax
 Temporary array for GEMV. More...
 
std::vector< ValueTypegemm_AB
 Temporary array for GEMM. More...
 

Private Types

typedef Teuchos::ScalarTraits
< FadType >::magnitudeType 
MagnitudeType
 
typedef Sacado::ValueType
< FadType >::type 
ValueType
 
typedef Sacado::ScalarType
< FadType >::type 
scalar_type
 
typedef Sacado::dummy
< ValueType, scalar_type >
::type 
ScalarType
 
typedef
Teuchos::DefaultBLASImpl
< OrdinalType, FadType
BLASType
 

Constructor/Destructor.

 BLAS (bool use_default_impl=true, bool use_dynamic=true, OrdinalType static_workspace_size=0)
 Default constructor. More...
 
 BLAS (const BLAS &x)
 Copy constructor. More...
 
virtual ~BLAS ()
 Destructor. More...
 

Level 1 BLAS Routines.

void ROTG (FadType *da, FadType *db, MagnitudeType *c, FadType *s) const
 Computes a Givens plane rotation. More...
 
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. More...
 
void SCAL (const OrdinalType n, const FadType &alpha, FadType *x, const OrdinalType incx) const
 Scale the std::vector x by the constant alpha. More...
 
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. More...
 
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. More...
 
Teuchos::ScalarTraits< FadType >
::magnitudeType 
ASUM (const OrdinalType n, const FadType *x, const OrdinalType incx) const
 Sum the absolute values of the entries of x. More...
 
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. More...
 
MagnitudeType NRM2 (const OrdinalType n, const FadType *x, const OrdinalType incx) const
 Compute the 2-norm of the std::vector x. More...
 
OrdinalType IAMAX (const OrdinalType n, const FadType *x, const OrdinalType incx) const
 Return the index of the element of x with the maximum magnitude. More...
 

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. More...
 
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. More...
 
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. More...
 

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. More...
 
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. More...
 
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. More...
 
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. More...
 

Additional Inherited Members

- Public Types inherited from Teuchos::DefaultBLASImpl< OrdinalType, FadType >
typedef details::GivensRotator
< ScalarType >::c_type 
rotg_c_type
 
- Public Member Functions inherited from Teuchos::DefaultBLASImpl< OrdinalType, FadType >
 DefaultBLASImpl (void)
 
 DefaultBLASImpl (const DefaultBLASImpl< OrdinalType, ScalarType > &)
 
virtual ~DefaultBLASImpl (void)
 
void ROTG (ScalarType *da, ScalarType *db, rotg_c_type *c, ScalarType *s) const
 
void ROT (const OrdinalType &n, ScalarType *dx, const OrdinalType &incx, ScalarType *dy, const OrdinalType &incy, MagnitudeType *c, ScalarType *s) const
 
void SCAL (const OrdinalType &n, const ScalarType &alpha, ScalarType *x, const OrdinalType &incx) const
 
void COPY (const OrdinalType &n, const ScalarType *x, const OrdinalType &incx, ScalarType *y, const OrdinalType &incy) const
 
void AXPY (const OrdinalType &n, const alpha_type alpha, const x_type *x, const OrdinalType &incx, ScalarType *y, const OrdinalType &incy) const
 
ScalarTraits< ScalarType >
::magnitudeType 
ASUM (const OrdinalType &n, const ScalarType *x, const OrdinalType &incx) const
 
ScalarType DOT (const OrdinalType &n, const x_type *x, const OrdinalType &incx, const y_type *y, const OrdinalType &incy) const
 
ScalarTraits< ScalarType >
::magnitudeType 
NRM2 (const OrdinalType &n, const ScalarType *x, const OrdinalType &incx) const
 
OrdinalType IAMAX (const OrdinalType &n, const ScalarType *x, const OrdinalType &incx) const
 
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
 
void TRMV (EUplo uplo, ETransp trans, EDiag diag, const OrdinalType &n, const A_type *A, const OrdinalType &lda, ScalarType *x, const OrdinalType &incx) const
 
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
 
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
 
void SWAP (const OrdinalType &n, ScalarType *const x, const OrdinalType &incx, ScalarType *const y, const OrdinalType &incy) const
 
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
 
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
 
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
 
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
 

Detailed Description

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

Fad specializations for Teuchos::BLAS wrappers.

Definition at line 162 of file Sacado_Fad_BLAS.hpp.

Member Typedef Documentation

template<typename OrdinalType, typename FadType>
typedef Teuchos::ScalarTraits<FadType>::magnitudeType Sacado::Fad::BLAS< OrdinalType, FadType >::MagnitudeType
private

Definition at line 164 of file Sacado_Fad_BLAS.hpp.

template<typename OrdinalType, typename FadType>
typedef Sacado::ValueType<FadType>::type Sacado::Fad::BLAS< OrdinalType, FadType >::ValueType
private

Definition at line 165 of file Sacado_Fad_BLAS.hpp.

template<typename OrdinalType, typename FadType>
typedef Sacado::ScalarType<FadType>::type Sacado::Fad::BLAS< OrdinalType, FadType >::scalar_type
private

Definition at line 166 of file Sacado_Fad_BLAS.hpp.

template<typename OrdinalType, typename FadType>
typedef Sacado::dummy<ValueType,scalar_type>::type Sacado::Fad::BLAS< OrdinalType, FadType >::ScalarType
private

Definition at line 167 of file Sacado_Fad_BLAS.hpp.

template<typename OrdinalType, typename FadType>
typedef Teuchos::DefaultBLASImpl<OrdinalType,FadType> Sacado::Fad::BLAS< OrdinalType, FadType >::BLASType
private

Definition at line 168 of file Sacado_Fad_BLAS.hpp.

Constructor & Destructor Documentation

template<typename OrdinalType, typename FadType >
Sacado::Fad::BLAS< OrdinalType, FadType >::BLAS ( bool  use_default_impl = true,
bool  use_dynamic = true,
OrdinalType  static_workspace_size = 0 
)

Default constructor.

Definition at line 576 of file Sacado_Fad_BLASImp.hpp.

template<typename OrdinalType, typename FadType >
Sacado::Fad::BLAS< OrdinalType, FadType >::BLAS ( const BLAS< OrdinalType, FadType > &  x)

Copy constructor.

Definition at line 587 of file Sacado_Fad_BLASImp.hpp.

template<typename OrdinalType , typename FadType >
Sacado::Fad::BLAS< OrdinalType, FadType >::~BLAS ( void  )
virtual

Destructor.

Definition at line 597 of file Sacado_Fad_BLASImp.hpp.

Member Function Documentation

template<typename OrdinalType, typename FadType>
void Sacado::Fad::BLAS< OrdinalType, FadType >::ROTG ( FadType da,
FadType db,
MagnitudeType c,
FadType s 
) const
inline

Computes a Givens plane rotation.

Definition at line 191 of file Sacado_Fad_BLAS.hpp.

template<typename OrdinalType, typename FadType>
void Sacado::Fad::BLAS< OrdinalType, FadType >::ROT ( const OrdinalType  n,
FadType dx,
const OrdinalType  incx,
FadType dy,
const OrdinalType  incy,
MagnitudeType c,
FadType s 
) const
inline

Applies a Givens plane rotation.

Definition at line 196 of file Sacado_Fad_BLAS.hpp.

template<typename OrdinalType, typename FadType>
void Sacado::Fad::BLAS< OrdinalType, FadType >::SCAL ( const OrdinalType  n,
const FadType alpha,
FadType x,
const OrdinalType  incx 
) const

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

Definition at line 604 of file Sacado_Fad_BLASImp.hpp.

template<typename OrdinalType, typename FadType>
void Sacado::Fad::BLAS< OrdinalType, FadType >::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.

Definition at line 650 of file Sacado_Fad_BLASImp.hpp.

template<typename OrdinalType, typename FadType>
template<typename alpha_type , typename x_type >
void Sacado::Fad::BLAS< OrdinalType, FadType >::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.

Definition at line 678 of file Sacado_Fad_BLASImp.hpp.

template<typename OrdinalType, typename FadType>
Teuchos::ScalarTraits<FadType>::magnitudeType Sacado::Fad::BLAS< OrdinalType, FadType >::ASUM ( const OrdinalType  n,
const FadType x,
const OrdinalType  incx 
) const
inline

Sum the absolute values of the entries of x.

Definition at line 219 of file Sacado_Fad_BLAS.hpp.

template<typename OrdinalType, typename FadType >
template<typename x_type , typename y_type >
FadType Sacado::Fad::BLAS< OrdinalType, 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.

Definition at line 737 of file Sacado_Fad_BLASImp.hpp.

template<typename OrdinalType, typename FadType>
Sacado::Fad::BLAS< OrdinalType, FadType >::MagnitudeType Sacado::Fad::BLAS< OrdinalType, FadType >::NRM2 ( const OrdinalType  n,
const FadType x,
const OrdinalType  incx 
) const

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

Definition at line 778 of file Sacado_Fad_BLASImp.hpp.

template<typename OrdinalType, typename FadType>
OrdinalType Sacado::Fad::BLAS< OrdinalType, FadType >::IAMAX ( const OrdinalType  n,
const FadType x,
const OrdinalType  incx 
) const
inline

Return the index of the element of x with the maximum magnitude.

Definition at line 235 of file Sacado_Fad_BLAS.hpp.

template<typename OrdinalType, typename FadType>
template<typename alpha_type , typename A_type , typename x_type , typename beta_type >
void Sacado::Fad::BLAS< OrdinalType, FadType >::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.

Definition at line 812 of file Sacado_Fad_BLASImp.hpp.

template<typename OrdinalType, typename FadType>
template<typename A_type >
void Sacado::Fad::BLAS< OrdinalType, FadType >::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.

Definition at line 882 of file Sacado_Fad_BLASImp.hpp.

template<typename OrdinalType, typename FadType>
template<typename alpha_type , typename x_type , typename y_type >
void Sacado::Fad::BLAS< OrdinalType, FadType >::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.

Definition at line 947 of file Sacado_Fad_BLASImp.hpp.

template<typename OrdinalType, typename FadType>
template<typename alpha_type , typename A_type , typename B_type , typename beta_type >
void Sacado::Fad::BLAS< OrdinalType, FadType >::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.

Definition at line 1002 of file Sacado_Fad_BLASImp.hpp.

template<typename OrdinalType, typename FadType>
template<typename alpha_type , typename A_type , typename B_type , typename beta_type >
void Sacado::Fad::BLAS< OrdinalType, FadType >::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.

Definition at line 1085 of file Sacado_Fad_BLASImp.hpp.

template<typename OrdinalType, typename FadType>
template<typename alpha_type , typename A_type >
void Sacado::Fad::BLAS< OrdinalType, FadType >::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.

Definition at line 1158 of file Sacado_Fad_BLASImp.hpp.

template<typename OrdinalType, typename FadType>
template<typename alpha_type , typename A_type >
void Sacado::Fad::BLAS< OrdinalType, FadType >::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.

Definition at line 1218 of file Sacado_Fad_BLASImp.hpp.

template<typename OrdinalType, typename FadType >
template<typename x_type , typename y_type >
void Sacado::Fad::BLAS< OrdinalType, FadType >::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
protected

Implementation of DOT.

Definition at line 1278 of file Sacado_Fad_BLASImp.hpp.

template<typename OrdinalType, typename FadType >
template<typename alpha_type , typename A_type , typename x_type , typename beta_type >
void Sacado::Fad::BLAS< OrdinalType, FadType >::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
protected

Implementation of GEMV.

Definition at line 1332 of file Sacado_Fad_BLASImp.hpp.

template<typename OrdinalType, typename FadType >
template<typename alpha_type , typename x_type , typename y_type >
void Sacado::Fad::BLAS< OrdinalType, FadType >::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
protected

Implementation of GER.

Definition at line 1429 of file Sacado_Fad_BLASImp.hpp.

template<typename OrdinalType, typename FadType >
template<typename alpha_type , typename A_type , typename B_type , typename beta_type >
void Sacado::Fad::BLAS< OrdinalType, FadType >::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
protected

Implementation of GEMM.

Definition at line 1484 of file Sacado_Fad_BLASImp.hpp.

template<typename OrdinalType, typename FadType >
template<typename alpha_type , typename A_type , typename B_type , typename beta_type >
void Sacado::Fad::BLAS< OrdinalType, FadType >::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
protected

Implementation of SYMM.

Definition at line 1603 of file Sacado_Fad_BLASImp.hpp.

template<typename OrdinalType, typename FadType >
template<typename alpha_type , typename A_type >
void Sacado::Fad::BLAS< OrdinalType, FadType >::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
protected

Implementation of TRMM.

Definition at line 1714 of file Sacado_Fad_BLASImp.hpp.

template<typename OrdinalType, typename FadType >
template<typename alpha_type , typename A_type >
void Sacado::Fad::BLAS< OrdinalType, FadType >::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
protected

Implementation of TRMM.

Definition at line 1820 of file Sacado_Fad_BLASImp.hpp.

Member Data Documentation

template<typename OrdinalType, typename FadType>
ArrayTraits<OrdinalType,FadType> Sacado::Fad::BLAS< OrdinalType, FadType >::arrayTraits
protected

ArrayTraits for packing/unpacking value/derivative arrays.

Definition at line 347 of file Sacado_Fad_BLAS.hpp.

template<typename OrdinalType, typename FadType>
Teuchos::BLAS<OrdinalType, ValueType> Sacado::Fad::BLAS< OrdinalType, FadType >::blas
protected

BLAS for values.

Definition at line 350 of file Sacado_Fad_BLAS.hpp.

template<typename OrdinalType, typename FadType>
bool Sacado::Fad::BLAS< OrdinalType, FadType >::use_default_impl
protected

Use custom or default implementation.

Definition at line 353 of file Sacado_Fad_BLAS.hpp.

template<typename OrdinalType, typename FadType>
std::vector<ValueType> Sacado::Fad::BLAS< OrdinalType, FadType >::gemv_Ax
mutableprotected

Temporary array for GEMV.

Definition at line 356 of file Sacado_Fad_BLAS.hpp.

template<typename OrdinalType, typename FadType>
std::vector<ValueType> Sacado::Fad::BLAS< OrdinalType, FadType >::gemm_AB
mutableprotected

Temporary array for GEMM.

Definition at line 359 of file Sacado_Fad_BLAS.hpp.


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