Sacado Package Browser (Single Doxygen Collection)
Version of the Day
|
Fad specializations for Teuchos::BLAS wrappers. More...
#include <Sacado_Fad_BLAS.hpp>
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, FadType > | arrayTraits |
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< ValueType > | gemv_Ax |
Temporary array for GEMV. More... | |
std::vector< ValueType > | gemm_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 |
Fad specializations for Teuchos::BLAS wrappers.
Definition at line 184 of file Sacado_Fad_BLAS.hpp.
|
private |
Definition at line 186 of file Sacado_Fad_BLAS.hpp.
|
private |
Definition at line 187 of file Sacado_Fad_BLAS.hpp.
|
private |
Definition at line 188 of file Sacado_Fad_BLAS.hpp.
|
private |
Definition at line 189 of file Sacado_Fad_BLAS.hpp.
|
private |
Definition at line 190 of file Sacado_Fad_BLAS.hpp.
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 592 of file Sacado_Fad_BLASImp.hpp.
Sacado::Fad::BLAS< OrdinalType, FadType >::BLAS | ( | const BLAS< OrdinalType, FadType > & | x | ) |
Copy constructor.
Definition at line 603 of file Sacado_Fad_BLASImp.hpp.
|
virtual |
Destructor.
Definition at line 613 of file Sacado_Fad_BLASImp.hpp.
|
inline |
Computes a Givens plane rotation.
Definition at line 213 of file Sacado_Fad_BLAS.hpp.
|
inline |
Applies a Givens plane rotation.
Definition at line 218 of file Sacado_Fad_BLAS.hpp.
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 620 of file Sacado_Fad_BLASImp.hpp.
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 666 of file Sacado_Fad_BLASImp.hpp.
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 694 of file Sacado_Fad_BLASImp.hpp.
|
inline |
Sum the absolute values of the entries of x
.
Definition at line 241 of file Sacado_Fad_BLAS.hpp.
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 753 of file Sacado_Fad_BLASImp.hpp.
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 794 of file Sacado_Fad_BLASImp.hpp.
|
inline |
Return the index of the element of x
with the maximum magnitude.
Definition at line 257 of file Sacado_Fad_BLAS.hpp.
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 828 of file Sacado_Fad_BLASImp.hpp.
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 898 of file Sacado_Fad_BLASImp.hpp.
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 963 of file Sacado_Fad_BLASImp.hpp.
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 |
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 |
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 |
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 |
|
protected |
Implementation of DOT.
Definition at line 1294 of file Sacado_Fad_BLASImp.hpp.
|
protected |
Implementation of GEMV.
Definition at line 1348 of file Sacado_Fad_BLASImp.hpp.
|
protected |
Implementation of GER.
Definition at line 1445 of file Sacado_Fad_BLASImp.hpp.
|
protected |
Implementation of GEMM.
Definition at line 1500 of file Sacado_Fad_BLASImp.hpp.
|
protected |
Implementation of SYMM.
Definition at line 1619 of file Sacado_Fad_BLASImp.hpp.
|
protected |
Implementation of TRMM.
Definition at line 1730 of file Sacado_Fad_BLASImp.hpp.
|
protected |
Implementation of TRMM.
Definition at line 1836 of file Sacado_Fad_BLASImp.hpp.
|
protected |
ArrayTraits for packing/unpacking value/derivative arrays.
Definition at line 369 of file Sacado_Fad_BLAS.hpp.
|
protected |
BLAS for values.
Definition at line 372 of file Sacado_Fad_BLAS.hpp.
|
protected |
Use custom or default implementation.
Definition at line 375 of file Sacado_Fad_BLAS.hpp.
|
mutableprotected |
Temporary array for GEMV.
Definition at line 378 of file Sacado_Fad_BLAS.hpp.
|
mutableprotected |
Temporary array for GEMM.
Definition at line 381 of file Sacado_Fad_BLAS.hpp.