Sacado Development
Loading...
Searching...
No Matches
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 >:
Collaboration diagram for Sacado::Fad::BLAS< OrdinalType, FadType >:

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.

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

Detailed Description

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

Fad specializations for Teuchos::BLAS wrappers.

Constructor & Destructor Documentation

◆ BLAS() [1/2]

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.

References arrayTraits, blas, and use_default_impl.

Referenced by BLAS().

◆ BLAS() [2/2]

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

Copy constructor.

References arrayTraits, BLAS(), blas, and use_default_impl.

◆ ~BLAS()

Member Function Documentation

◆ AXPY()

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.

References arrayTraits, blas, and use_default_impl.

◆ COPY()

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.

References arrayTraits, blas, and use_default_impl.

◆ DOT()

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.

References arrayTraits, Fad_DOT(), and use_default_impl.

◆ Fad_DOT()

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.

References blas.

Referenced by DOT().

◆ Fad_GEMM()

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.

References blas, and gemm_AB.

Referenced by GEMM().

◆ Fad_GEMV()

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.

References blas, and gemv_Ax.

Referenced by GEMV().

◆ Fad_GER()

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.

References blas.

Referenced by GER().

◆ Fad_SYMM()

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.

References blas, and gemm_AB.

Referenced by SYMM().

◆ Fad_TRMM()

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.

References blas, and gemm_AB.

Referenced by TRMM().

◆ Fad_TRSM()

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.

References blas, and gemm_AB.

Referenced by TRSM().

◆ GEMM()

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.

References arrayTraits, Fad_GEMM(), and use_default_impl.

◆ GEMV()

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.

References arrayTraits, Fad_GEMV(), and use_default_impl.

◆ GER()

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.

References arrayTraits, Fad_GER(), and use_default_impl.

◆ NRM2()

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.

References arrayTraits, blas, and use_default_impl.

◆ SCAL()

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.

References arrayTraits, blas, and use_default_impl.

◆ SYMM()

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.

References arrayTraits, Fad_SYMM(), and use_default_impl.

◆ TRMM()

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.

References arrayTraits, Fad_TRMM(), and use_default_impl.

◆ TRMV()

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.

References arrayTraits, blas, gemv_Ax, and use_default_impl.

◆ TRSM()

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.

References arrayTraits, Fad_TRSM(), and use_default_impl.

Member Data Documentation

◆ arrayTraits

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

ArrayTraits for packing/unpacking value/derivative arrays.

Referenced by AXPY(), BLAS(), BLAS(), COPY(), DOT(), GEMM(), GEMV(), GER(), NRM2(), SCAL(), SYMM(), TRMM(), TRMV(), and TRSM().

◆ blas

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

◆ gemm_AB

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

Temporary array for GEMM.

Referenced by Fad_GEMM(), Fad_SYMM(), Fad_TRMM(), and Fad_TRSM().

◆ gemv_Ax

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

Temporary array for GEMV.

Referenced by Fad_GEMV(), and TRMV().

◆ use_default_impl

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

Use custom or default implementation.

Referenced by AXPY(), BLAS(), BLAS(), COPY(), DOT(), GEMM(), GEMV(), GER(), NRM2(), SCAL(), SYMM(), TRMM(), TRMV(), and TRSM().


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