Sacado Package Browser (Single Doxygen Collection) Version of the Day
Loading...
Searching...
No Matches
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>

Inherits Teuchos::DefaultBLASImpl< OrdinalType, FadType >.

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, FadTypeBLASType
 

Level 3 BLAS Routines.

ArrayTraits< OrdinalType, FadTypearrayTraits
 ArrayTraits for packing/unpacking value/derivative arrays.
 
Teuchos::BLAS< OrdinalType, ValueTypeblas
 BLAS for values.
 
bool use_default_impl
 Use custom or default implementation.
 
std::vector< ValueTypegemv_Ax
 Temporary array for GEMV.
 
std::vector< ValueTypegemm_AB
 Temporary array for GEMM.
 
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.
 
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.
 

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.
 

Detailed Description

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

Fad specializations for Teuchos::BLAS wrappers.

Definition at line 184 of file Sacado_Fad_BLAS.hpp.

Member Typedef Documentation

◆ MagnitudeType

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

Definition at line 186 of file Sacado_Fad_BLAS.hpp.

◆ ValueType

Definition at line 187 of file Sacado_Fad_BLAS.hpp.

◆ scalar_type

Definition at line 188 of file Sacado_Fad_BLAS.hpp.

◆ ScalarType

Definition at line 189 of file Sacado_Fad_BLAS.hpp.

◆ BLASType

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

Definition at line 190 of file Sacado_Fad_BLAS.hpp.

Constructor & Destructor Documentation

◆ BLAS() [1/2]

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 595 of file Sacado_Fad_BLASImp.hpp.

◆ BLAS() [2/2]

Copy constructor.

Definition at line 606 of file Sacado_Fad_BLASImp.hpp.

◆ ~BLAS()

Destructor.

Definition at line 616 of file Sacado_Fad_BLASImp.hpp.

Member Function Documentation

◆ ROTG()

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 213 of file Sacado_Fad_BLAS.hpp.

◆ ROT()

Applies a Givens plane rotation.

Definition at line 218 of file Sacado_Fad_BLAS.hpp.

◆ SCAL()

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

Definition at line 623 of file Sacado_Fad_BLASImp.hpp.

◆ COPY()

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

Definition at line 669 of file Sacado_Fad_BLASImp.hpp.

◆ AXPY()

Perform the operation: y <- y+alpha*x.

Definition at line 697 of file Sacado_Fad_BLASImp.hpp.

◆ ASUM()

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 241 of file Sacado_Fad_BLAS.hpp.

◆ DOT()

Form the dot product of the vectors x and y.

Definition at line 756 of file Sacado_Fad_BLASImp.hpp.

◆ NRM2()

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

Definition at line 797 of file Sacado_Fad_BLASImp.hpp.

◆ IAMAX()

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

Definition at line 257 of file Sacado_Fad_BLAS.hpp.

◆ GEMV()

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 831 of file Sacado_Fad_BLASImp.hpp.

◆ TRMV()

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 901 of file Sacado_Fad_BLASImp.hpp.

◆ GER()

Performs the rank 1 operation: A <- alpha*x*y'+A.

Definition at line 966 of file Sacado_Fad_BLASImp.hpp.

◆ GEMM()

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 1021 of file Sacado_Fad_BLASImp.hpp.

◆ SYMM()

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 1104 of file Sacado_Fad_BLASImp.hpp.

◆ TRMM()

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 1177 of file Sacado_Fad_BLASImp.hpp.

◆ TRSM()

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 1237 of file Sacado_Fad_BLASImp.hpp.

◆ Fad_DOT()

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 1297 of file Sacado_Fad_BLASImp.hpp.

◆ Fad_GEMV()

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 1351 of file Sacado_Fad_BLASImp.hpp.

◆ Fad_GER()

Implementation of GER.

Definition at line 1448 of file Sacado_Fad_BLASImp.hpp.

◆ Fad_GEMM()

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 1503 of file Sacado_Fad_BLASImp.hpp.

◆ Fad_SYMM()

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 1622 of file Sacado_Fad_BLASImp.hpp.

◆ Fad_TRMM()

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 1733 of file Sacado_Fad_BLASImp.hpp.

◆ Fad_TRSM()

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 1839 of file Sacado_Fad_BLASImp.hpp.

Member Data Documentation

◆ arrayTraits

ArrayTraits for packing/unpacking value/derivative arrays.

Definition at line 369 of file Sacado_Fad_BLAS.hpp.

◆ blas

BLAS for values.

Definition at line 372 of file Sacado_Fad_BLAS.hpp.

◆ use_default_impl

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

Use custom or default implementation.

Definition at line 375 of file Sacado_Fad_BLAS.hpp.

◆ gemv_Ax

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

Temporary array for GEMV.

Definition at line 378 of file Sacado_Fad_BLAS.hpp.

◆ gemm_AB

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

Temporary array for GEMM.

Definition at line 381 of file Sacado_Fad_BLAS.hpp.


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