Namespaces | |
namespace | blasLapackKernelsInternal |
Classes | |
struct | BlasQueueTypedef |
struct | BlasQueueTypedef< dftefe::utils::MemorySpace::DEVICE > |
struct | BlasQueueTypedef< dftefe::utils::MemorySpace::HOST > |
struct | BlasQueueTypedef< dftefe::utils::MemorySpace::HOST_PINNED > |
class | KernelsOneValueType |
class | KernelsTwoValueTypes |
namespace class for BlasLapack kernels not present in blaspp. More... | |
struct | LapackQueueTypedef |
struct | LapackQueueTypedef< dftefe::utils::MemorySpace::DEVICE > |
struct | LapackQueueTypedef< dftefe::utils::MemorySpace::HOST > |
struct | LapackQueueTypedef< dftefe::utils::MemorySpace::HOST_PINNED > |
Typedefs | |
using | Side = blas::Side |
using | Op = blas::Op |
using | Diag = blas::Diag |
using | Uplo = blas::Uplo |
using | Layout = blas::Layout |
using | Job = lapack::Job |
using | LapackInt = int64_t |
template<typename ValueType > | |
using | real_type = blas::real_type< ValueType > |
template<typename ValueType1 , typename ValueType2 > | |
using | scalar_type = blas::scalar_type< ValueType1, ValueType2 > |
template<dftefe::utils::MemorySpace memorySpace> | |
using | BlasQueue = typename BlasQueueTypedef< memorySpace >::TYPE |
template<dftefe::utils::MemorySpace memorySpace> | |
using | LapackQueue = typename LapackQueueTypedef< memorySpace >::LAPACKTYPE |
Enumerations | |
enum class | ScalarOp { Identity , Conj } |
Functions | |
template<typename ValueType , typename dftefe::utils::MemorySpace memorySpace> | |
real_type< ValueType > | asum (size_type n, ValueType const *x, size_type incx, LinAlgOpContext< memorySpace > &context) |
template<typename ValueType , typename dftefe::utils::MemorySpace memorySpace> | |
real_type< ValueType > | amax (size_type n, ValueType const *x, size_type incx, LinAlgOpContext< memorySpace > &context) |
template<typename ValueType , typename dftefe::utils::MemorySpace memorySpace> | |
std::vector< double > | amaxsMultiVector (size_type vecSize, size_type numVec, ValueType const *multiVecData, LinAlgOpContext< memorySpace > &context) |
Template for computing \( l_{\inf} \) norms of all the numVec vectors in a multi Vector. More... | |
template<typename ValueType1 , typename ValueType2 , typename dftefe::utils::MemorySpace memorySpace> | |
void | axpy (size_type n, scalar_type< ValueType1, ValueType2 > alpha, ValueType1 const *x, size_type incx, ValueType2 *y, size_type incy, LinAlgOpContext< memorySpace > &context) |
template<typename ValueType1 , typename ValueType2 , typename dftefe::utils::MemorySpace memorySpace> | |
void | reciprocalX (size_type n, const ValueType1 alpha, ValueType2 const *x, scalar_type< ValueType1, ValueType2 > *y, LinAlgOpContext< memorySpace > &context) |
Template for computing the multiplicative inverse of all the elements of x, does not check if any element is zero computes \f $ y[i] = \frac{alpha}{x[i]} $ \f. More... | |
template<typename ValueType1 , typename ValueType2 , typename dftefe::utils::MemorySpace memorySpace> | |
void | hadamardProduct (size_type n, const ValueType1 *x, const ValueType2 *y, scalar_type< ValueType1, ValueType2 > *z, LinAlgOpContext< memorySpace > &context) |
Template for performing \( z = \alpha x$
@param[in] size size of the array
@param[in] \) alpha \( scalar
@param[in] x array
@param[out] z array
*/
template <typename ValueType1,
typename ValueType2,
typename dftefe::utils::MemorySpace memorySpace>
void
ascale(size_type n,
ValueType1 alpha,
const ValueType2 * x,
scalar_type<ValueType1, ValueType2> *z,
LinAlgOpContext<memorySpace> & context);
/**
@brief Template for performing \) z_i = x_i * y_i$. More... | |
template<typename ValueType1 , typename ValueType2 , dftefe::utils::MemorySpace memorySpace> | |
void | ascale (const size_type n, const ValueType1 alpha, const ValueType2 *x, scalar_type< ValueType1, ValueType2 > *z, LinAlgOpContext< memorySpace > &context) |
template<typename ValueType1 , typename ValueType2 , typename dftefe::utils::MemorySpace memorySpace> | |
void | hadamardProduct (size_type n, const ValueType1 *x, const ValueType2 *y, const ScalarOp &opx, const ScalarOp &opy, scalar_type< ValueType1, ValueType2 > *z, LinAlgOpContext< memorySpace > &context) |
template<typename ValueType1 , typename ValueType2 , dftefe::utils::MemorySpace memorySpace> | |
void | scaleStridedVarBatched (const size_type numMats, const ScalarOp *scalarOpA, const ScalarOp *scalarOpB, const size_type *stridea, const size_type *strideb, const size_type *stridec, const size_type *m, const size_type *n, const size_type *k, const ValueType1 *dA, const ValueType2 *dB, scalar_type< ValueType1, ValueType2 > *dC, LinAlgOpContext< memorySpace > &context) |
template<typename ValueType1 , typename ValueType2 , typename dftefe::utils::MemorySpace memorySpace> | |
void | khatriRaoProduct (const Layout layout, const size_type sizeI, const size_type sizeJ, const size_type sizeK, const ValueType1 *A, const ValueType2 *B, scalar_type< ValueType1, ValueType2 > *Z, LinAlgOpContext< memorySpace > &context) |
template<typename ValueType1 , typename ValueType2 , typename dftefe::utils::MemorySpace memorySpace> | |
void | transposedKhatriRaoProduct (const Layout layout, const size_type sizeI, const size_type sizeJ, const size_type sizeK, const ValueType1 *A, const ValueType2 *B, scalar_type< ValueType1, ValueType2 > *Z, LinAlgOpContext< memorySpace > &context) |
template<typename ValueType1 , typename ValueType2 , dftefe::utils::MemorySpace memorySpace> | |
void | axpby (const size_type n, const scalar_type< ValueType1, ValueType2 > alpha, const ValueType1 *x, const scalar_type< ValueType1, ValueType2 > beta, const ValueType2 *y, scalar_type< ValueType1, ValueType2 > *z, LinAlgOpContext< memorySpace > &context) |
template<typename ValueType1 , typename ValueType2 , typename dftefe::utils::MemorySpace memorySpace> | |
void | axpbyBlocked (const size_type n, const size_type blockSize, const scalar_type< ValueType1, ValueType2 > *alpha, const ValueType1 *x, const scalar_type< ValueType1, ValueType2 > *beta, const ValueType2 *y, scalar_type< ValueType1, ValueType2 > *z, LinAlgOpContext< memorySpace > &context) |
template<typename ValueType1 , typename ValueType2 , dftefe::utils::MemorySpace memorySpace> | |
scalar_type< ValueType1, ValueType2 > | dot (const size_type n, ValueType1 const *x, const size_type incx, ValueType2 const *y, const size_type incy, LinAlgOpContext< memorySpace > &context) |
template<typename ValueType1 , typename ValueType2 , dftefe::utils::MemorySpace memorySpace> | |
void | dotMultiVector (const size_type vecSize, const size_type numVec, const ValueType1 *multiVecDataX, const ValueType2 *multiVecDataY, const ScalarOp &opX, const ScalarOp &opY, scalar_type< ValueType1, ValueType2 > *multiVecDotProduct, LinAlgOpContext< memorySpace > &context) |
template<typename ValueType , dftefe::utils::MemorySpace memorySpace> | |
real_type< ValueType > | nrm2 (const size_type n, ValueType const *x, const size_type incx, LinAlgOpContext< memorySpace > &context) |
template<typename ValueType , dftefe::utils::MemorySpace memorySpace> | |
std::vector< double > | nrms2MultiVector (const size_type vecSize, const size_type numVec, const ValueType *multiVecData, LinAlgOpContext< memorySpace > &context) |
template<typename ValueType1 , typename ValueType2 , dftefe::utils::MemorySpace memorySpace> | |
void | gemm (const Layout layout, const Op transA, const Op transB, const size_type m, const size_type n, const size_type k, const scalar_type< ValueType1, ValueType2 > alpha, ValueType1 const *dA, const size_type ldda, ValueType2 const *dB, const size_type lddb, const scalar_type< ValueType1, ValueType2 > beta, scalar_type< ValueType1, ValueType2 > *dC, const size_type lddc, LinAlgOpContext< memorySpace > &context) |
template<typename ValueType1 , typename ValueType2 > | |
void | gemm (const Layout layout, const Op transA, const Op transB, const size_type m, const size_type n, const size_type k, const scalar_type< ValueType1, ValueType2 > alpha, ValueType1 const *dA, const size_type ldda, ValueType2 const *dB, const size_type lddb, const scalar_type< ValueType1, ValueType2 > beta, scalar_type< ValueType1, ValueType2 > *dC, const size_type lddc, LinAlgOpContext< dftefe::utils::MemorySpace::DEVICE > &context) |
template<typename ValueType1 , typename ValueType2 , dftefe::utils::MemorySpace memorySpace> | |
void | gemmStridedVarBatched (const Layout layout, const size_type numMats, const Op *transA, const Op *transB, const size_type *stridea, const size_type *strideb, const size_type *stridec, const size_type *m, const size_type *n, const size_type *k, const scalar_type< ValueType1, ValueType2 > alpha, const ValueType1 *dA, const size_type *ldda, const ValueType2 *dB, const size_type *lddb, const scalar_type< ValueType1, ValueType2 > beta, scalar_type< ValueType1, ValueType2 > *dC, const size_type *lddc, LinAlgOpContext< memorySpace > &context) |
template<typename ValueType1 , typename ValueType2 > | |
void | gemmStridedVarBatched (const Layout layout, const size_type numMats, const Op *transA, const Op *transB, const size_type *stridea, const size_type *strideb, const size_type *stridec, const size_type *m, const size_type *n, const size_type *k, const scalar_type< ValueType1, ValueType2 > alpha, const ValueType1 *dA, const size_type *ldda, const ValueType2 *dB, const size_type *lddb, const scalar_type< ValueType1, ValueType2 > beta, scalar_type< ValueType1, ValueType2 > *dC, const size_type *lddc, LinAlgOpContext< dftefe::utils::MemorySpace::DEVICE > &context) |
template<typename ValueType , typename dftefe::utils::MemorySpace memorySpace> | |
LapackError | inverse (size_type n, ValueType *A, LinAlgOpContext< memorySpace > &context) |
template<typename ValueType , typename dftefe::utils::MemorySpace memorySpace> | |
LapackError | trtri (Uplo uplo, Diag diag, size_type n, ValueType *A, size_type lda, LinAlgOpContext< memorySpace > &context) |
template<typename ValueType , typename dftefe::utils::MemorySpace memorySpace> | |
LapackError | potrf (Uplo uplo, size_type n, ValueType *A, size_type lda, LinAlgOpContext< memorySpace > &context) |
template<typename ValueType , typename dftefe::utils::MemorySpace memorySpace> | |
LapackError | steqr (Job jobz, size_type n, real_type< ValueType > *D, real_type< ValueType > *E, ValueType *Z, size_type ldz, LinAlgOpContext< memorySpace > &context) |
template<typename ValueType , typename dftefe::utils::MemorySpace memorySpace> | |
LapackError | heevd (Job jobz, Uplo uplo, size_type n, ValueType *A, size_type lda, real_type< ValueType > *W, LinAlgOpContext< memorySpace > &context) |
template<typename ValueType , typename dftefe::utils::MemorySpace memorySpace> | |
LapackError | hegv (size_type itype, Job jobz, Uplo uplo, size_type n, ValueType *A, size_type lda, ValueType *B, size_type ldb, real_type< ValueType > *W, LinAlgOpContext< memorySpace > &context) |
template<typename ValueType , typename dftefe::utils::MemorySpace memorySpace> | |
LapackError | gesv (size_type n, size_type nrhs, ValueType *A, size_type lda, LapackInt *ipiv, ValueType *B, size_type ldb, LinAlgOpContext< memorySpace > &context) |
template<typename ValueType > | |
LapackError | inverse (size_type n, ValueType *A, LinAlgOpContext< dftefe::utils::MemorySpace::DEVICE > &context) |
template<typename ValueType > | |
LapackError | trtri (Uplo uplo, Diag diag, size_type n, ValueType *A, size_type lda, LinAlgOpContext< dftefe::utils::MemorySpace::DEVICE > &context) |
template<typename ValueType > | |
LapackError | potrf (Uplo uplo, size_type n, ValueType *A, size_type lda, LinAlgOpContext< dftefe::utils::MemorySpace::DEVICE > &context) |
template<typename ValueType > | |
LapackError | steqr (Job jobz, size_type n, real_type< ValueType > *D, real_type< ValueType > *E, ValueType *Z, size_type ldz, LinAlgOpContext< dftefe::utils::MemorySpace::DEVICE > &context) |
template<typename ValueType > | |
LapackError | heevd (Job jobz, Uplo uplo, size_type n, ValueType *A, size_type lda, real_type< ValueType > *W, LinAlgOpContext< dftefe::utils::MemorySpace::DEVICE > &context) |
template<typename ValueType > | |
LapackError | hegv (size_type itype, Job jobz, Uplo uplo, size_type n, ValueType *A, size_type lda, ValueType *B, size_type ldb, real_type< ValueType > *W, LinAlgOpContext< dftefe::utils::MemorySpace::DEVICE > &context) |
template<typename ValueType > | |
LapackError | gesv (size_type n, size_type nrhs, ValueType *A, size_type lda, LapackInt *ipiv, ValueType *B, size_type ldb, LinAlgOpContext< dftefe::utils::MemorySpace::DEVICE > &context) |
EXPLICITLY_INSTANTIATE_1T (float, dftefe::utils::MemorySpace::HOST) | |
EXPLICITLY_INSTANTIATE_1T (double, dftefe::utils::MemorySpace::HOST) | |
EXPLICITLY_INSTANTIATE_1T (std::complex< float >, dftefe::utils::MemorySpace::HOST) | |
EXPLICITLY_INSTANTIATE_1T (std::complex< double >, dftefe::utils::MemorySpace::HOST) | |
EXPLICITLY_INSTANTIATE_2T (float, float, dftefe::utils::MemorySpace::HOST) | |
EXPLICITLY_INSTANTIATE_2T (float, double, dftefe::utils::MemorySpace::HOST) | |
EXPLICITLY_INSTANTIATE_2T (float, std::complex< float >, dftefe::utils::MemorySpace::HOST) | |
EXPLICITLY_INSTANTIATE_2T (float, std::complex< double >, dftefe::utils::MemorySpace::HOST) | |
EXPLICITLY_INSTANTIATE_2T (double, float, dftefe::utils::MemorySpace::HOST) | |
EXPLICITLY_INSTANTIATE_2T (double, double, dftefe::utils::MemorySpace::HOST) | |
EXPLICITLY_INSTANTIATE_2T (double, std::complex< float >, dftefe::utils::MemorySpace::HOST) | |
EXPLICITLY_INSTANTIATE_2T (double, std::complex< double >, dftefe::utils::MemorySpace::HOST) | |
EXPLICITLY_INSTANTIATE_2T (std::complex< float >, float, dftefe::utils::MemorySpace::HOST) | |
EXPLICITLY_INSTANTIATE_2T (std::complex< float >, double, dftefe::utils::MemorySpace::HOST) | |
EXPLICITLY_INSTANTIATE_2T (std::complex< float >, std::complex< float >, dftefe::utils::MemorySpace::HOST) | |
EXPLICITLY_INSTANTIATE_2T (std::complex< float >, std::complex< double >, dftefe::utils::MemorySpace::HOST) | |
EXPLICITLY_INSTANTIATE_2T (std::complex< double >, float, dftefe::utils::MemorySpace::HOST) | |
EXPLICITLY_INSTANTIATE_2T (std::complex< double >, double, dftefe::utils::MemorySpace::HOST) | |
EXPLICITLY_INSTANTIATE_2T (std::complex< double >, std::complex< float >, dftefe::utils::MemorySpace::HOST) | |
EXPLICITLY_INSTANTIATE_2T (std::complex< double >, std::complex< double >, dftefe::utils::MemorySpace::HOST) | |
using dftefe::linearAlgebra::blasLapack::BlasQueue = typedef typename BlasQueueTypedef<memorySpace>::TYPE |
typedef lapack::Diag dftefe::linearAlgebra::blasLapack::Diag |
using dftefe::linearAlgebra::blasLapack::Job = typedef lapack::Job |
using dftefe::linearAlgebra::blasLapack::LapackInt = typedef int64_t |
using dftefe::linearAlgebra::blasLapack::LapackQueue = typedef typename LapackQueueTypedef<memorySpace>::LAPACKTYPE |
using dftefe::linearAlgebra::blasLapack::Layout = typedef blas::Layout |
using dftefe::linearAlgebra::blasLapack::Op = typedef blas::Op |
using dftefe::linearAlgebra::blasLapack::real_type = typedef blas::real_type<ValueType> |
using dftefe::linearAlgebra::blasLapack::scalar_type = typedef blas::scalar_type<ValueType1, ValueType2> |
using dftefe::linearAlgebra::blasLapack::Side = typedef blas::Side |
typedef lapack::Uplo dftefe::linearAlgebra::blasLapack::Uplo |
|
strong |
real_type< ValueType > dftefe::linearAlgebra::blasLapack::amax | ( | size_type | n, |
ValueType const * | x, | ||
size_type | incx, | ||
LinAlgOpContext< memorySpace > & | context | ||
) |
std::vector< double > dftefe::linearAlgebra::blasLapack::amaxsMultiVector | ( | size_type | vecSize, |
size_type | numVec, | ||
ValueType const * | multiVecData, | ||
LinAlgOpContext< memorySpace > & | context | ||
) |
Template for computing \( l_{\inf} \) norms of all the numVec vectors in a multi Vector.
[in] | vecSize | size of each vector |
[in] | numVec | number of vectors in the multi Vector |
[in] | multiVecData | multi vector data in row major format i.e. vector index is the fastest index |
void dftefe::linearAlgebra::blasLapack::ascale | ( | const size_type | n, |
const ValueType1 | alpha, | ||
const ValueType2 * | x, | ||
scalar_type< ValueType1, ValueType2 > * | z, | ||
LinAlgOpContext< memorySpace > & | context | ||
) |
real_type< ValueType > dftefe::linearAlgebra::blasLapack::asum | ( | size_type | n, |
ValueType const * | x, | ||
size_type | incx, | ||
LinAlgOpContext< memorySpace > & | context | ||
) |
void dftefe::linearAlgebra::blasLapack::axpby | ( | const size_type | n, |
const scalar_type< ValueType1, ValueType2 > | alpha, | ||
const ValueType1 * | x, | ||
const scalar_type< ValueType1, ValueType2 > | beta, | ||
const ValueType2 * | y, | ||
scalar_type< ValueType1, ValueType2 > * | z, | ||
LinAlgOpContext< memorySpace > & | context | ||
) |
void dftefe::linearAlgebra::blasLapack::axpbyBlocked | ( | const size_type | n, |
const size_type | blockSize, | ||
const scalar_type< ValueType1, ValueType2 > * | alpha, | ||
const ValueType1 * | x, | ||
const scalar_type< ValueType1, ValueType2 > * | beta, | ||
const ValueType2 * | y, | ||
scalar_type< ValueType1, ValueType2 > * | z, | ||
LinAlgOpContext< memorySpace > & | context | ||
) |
void dftefe::linearAlgebra::blasLapack::axpy | ( | size_type | n, |
scalar_type< ValueType1, ValueType2 > | alpha, | ||
ValueType1 const * | x, | ||
size_type | incx, | ||
ValueType2 * | y, | ||
size_type | incy, | ||
LinAlgOpContext< memorySpace > & | context | ||
) |
scalar_type< ValueType1, ValueType2 > dftefe::linearAlgebra::blasLapack::dot | ( | const size_type | n, |
ValueType1 const * | x, | ||
const size_type | incx, | ||
ValueType2 const * | y, | ||
const size_type | incy, | ||
LinAlgOpContext< memorySpace > & | context | ||
) |
void dftefe::linearAlgebra::blasLapack::dotMultiVector | ( | const size_type | vecSize, |
const size_type | numVec, | ||
const ValueType1 * | multiVecDataX, | ||
const ValueType2 * | multiVecDataY, | ||
const ScalarOp & | opX, | ||
const ScalarOp & | opY, | ||
scalar_type< ValueType1, ValueType2 > * | multiVecDotProduct, | ||
LinAlgOpContext< memorySpace > & | context | ||
) |
dftefe::linearAlgebra::blasLapack::EXPLICITLY_INSTANTIATE_1T | ( | double | , |
dftefe::utils::MemorySpace::HOST | |||
) |
dftefe::linearAlgebra::blasLapack::EXPLICITLY_INSTANTIATE_1T | ( | float | , |
dftefe::utils::MemorySpace::HOST | |||
) |
dftefe::linearAlgebra::blasLapack::EXPLICITLY_INSTANTIATE_1T | ( | std::complex< double > | , |
dftefe::utils::MemorySpace::HOST | |||
) |
dftefe::linearAlgebra::blasLapack::EXPLICITLY_INSTANTIATE_1T | ( | std::complex< float > | , |
dftefe::utils::MemorySpace::HOST | |||
) |
dftefe::linearAlgebra::blasLapack::EXPLICITLY_INSTANTIATE_2T | ( | double | , |
double | , | ||
dftefe::utils::MemorySpace::HOST | |||
) |
dftefe::linearAlgebra::blasLapack::EXPLICITLY_INSTANTIATE_2T | ( | double | , |
float | , | ||
dftefe::utils::MemorySpace::HOST | |||
) |
dftefe::linearAlgebra::blasLapack::EXPLICITLY_INSTANTIATE_2T | ( | double | , |
std::complex< double > | , | ||
dftefe::utils::MemorySpace::HOST | |||
) |
dftefe::linearAlgebra::blasLapack::EXPLICITLY_INSTANTIATE_2T | ( | double | , |
std::complex< float > | , | ||
dftefe::utils::MemorySpace::HOST | |||
) |
dftefe::linearAlgebra::blasLapack::EXPLICITLY_INSTANTIATE_2T | ( | float | , |
double | , | ||
dftefe::utils::MemorySpace::HOST | |||
) |
dftefe::linearAlgebra::blasLapack::EXPLICITLY_INSTANTIATE_2T | ( | float | , |
float | , | ||
dftefe::utils::MemorySpace::HOST | |||
) |
dftefe::linearAlgebra::blasLapack::EXPLICITLY_INSTANTIATE_2T | ( | float | , |
std::complex< double > | , | ||
dftefe::utils::MemorySpace::HOST | |||
) |
dftefe::linearAlgebra::blasLapack::EXPLICITLY_INSTANTIATE_2T | ( | float | , |
std::complex< float > | , | ||
dftefe::utils::MemorySpace::HOST | |||
) |
dftefe::linearAlgebra::blasLapack::EXPLICITLY_INSTANTIATE_2T | ( | std::complex< double > | , |
double | , | ||
dftefe::utils::MemorySpace::HOST | |||
) |
dftefe::linearAlgebra::blasLapack::EXPLICITLY_INSTANTIATE_2T | ( | std::complex< double > | , |
float | , | ||
dftefe::utils::MemorySpace::HOST | |||
) |
dftefe::linearAlgebra::blasLapack::EXPLICITLY_INSTANTIATE_2T | ( | std::complex< double > | , |
std::complex< double > | , | ||
dftefe::utils::MemorySpace::HOST | |||
) |
dftefe::linearAlgebra::blasLapack::EXPLICITLY_INSTANTIATE_2T | ( | std::complex< double > | , |
std::complex< float > | , | ||
dftefe::utils::MemorySpace::HOST | |||
) |
dftefe::linearAlgebra::blasLapack::EXPLICITLY_INSTANTIATE_2T | ( | std::complex< float > | , |
double | , | ||
dftefe::utils::MemorySpace::HOST | |||
) |
dftefe::linearAlgebra::blasLapack::EXPLICITLY_INSTANTIATE_2T | ( | std::complex< float > | , |
float | , | ||
dftefe::utils::MemorySpace::HOST | |||
) |
dftefe::linearAlgebra::blasLapack::EXPLICITLY_INSTANTIATE_2T | ( | std::complex< float > | , |
std::complex< double > | , | ||
dftefe::utils::MemorySpace::HOST | |||
) |
dftefe::linearAlgebra::blasLapack::EXPLICITLY_INSTANTIATE_2T | ( | std::complex< float > | , |
std::complex< float > | , | ||
dftefe::utils::MemorySpace::HOST | |||
) |
void dftefe::linearAlgebra::blasLapack::gemm | ( | const Layout | layout, |
const Op | transA, | ||
const Op | transB, | ||
const size_type | m, | ||
const size_type | n, | ||
const size_type | k, | ||
const scalar_type< ValueType1, ValueType2 > | alpha, | ||
ValueType1 const * | dA, | ||
const size_type | ldda, | ||
ValueType2 const * | dB, | ||
const size_type | lddb, | ||
const scalar_type< ValueType1, ValueType2 > | beta, | ||
scalar_type< ValueType1, ValueType2 > * | dC, | ||
const size_type | lddc, | ||
LinAlgOpContext< dftefe::utils::MemorySpace::DEVICE > & | context | ||
) |
void dftefe::linearAlgebra::blasLapack::gemm | ( | const Layout | layout, |
const Op | transA, | ||
const Op | transB, | ||
const size_type | m, | ||
const size_type | n, | ||
const size_type | k, | ||
const scalar_type< ValueType1, ValueType2 > | alpha, | ||
ValueType1 const * | dA, | ||
const size_type | ldda, | ||
ValueType2 const * | dB, | ||
const size_type | lddb, | ||
const scalar_type< ValueType1, ValueType2 > | beta, | ||
scalar_type< ValueType1, ValueType2 > * | dC, | ||
const size_type | lddc, | ||
LinAlgOpContext< memorySpace > & | context | ||
) |
void dftefe::linearAlgebra::blasLapack::gemmStridedVarBatched | ( | const Layout | layout, |
const size_type | numMats, | ||
const Op * | transA, | ||
const Op * | transB, | ||
const size_type * | stridea, | ||
const size_type * | strideb, | ||
const size_type * | stridec, | ||
const size_type * | m, | ||
const size_type * | n, | ||
const size_type * | k, | ||
const scalar_type< ValueType1, ValueType2 > | alpha, | ||
const ValueType1 * | dA, | ||
const size_type * | ldda, | ||
const ValueType2 * | dB, | ||
const size_type * | lddb, | ||
const scalar_type< ValueType1, ValueType2 > | beta, | ||
scalar_type< ValueType1, ValueType2 > * | dC, | ||
const size_type * | lddc, | ||
LinAlgOpContext< dftefe::utils::MemorySpace::DEVICE > & | context | ||
) |
void dftefe::linearAlgebra::blasLapack::gemmStridedVarBatched | ( | const Layout | layout, |
const size_type | numMats, | ||
const Op * | transA, | ||
const Op * | transB, | ||
const size_type * | stridea, | ||
const size_type * | strideb, | ||
const size_type * | stridec, | ||
const size_type * | m, | ||
const size_type * | n, | ||
const size_type * | k, | ||
const scalar_type< ValueType1, ValueType2 > | alpha, | ||
const ValueType1 * | dA, | ||
const size_type * | ldda, | ||
const ValueType2 * | dB, | ||
const size_type * | lddb, | ||
const scalar_type< ValueType1, ValueType2 > | beta, | ||
scalar_type< ValueType1, ValueType2 > * | dC, | ||
const size_type * | lddc, | ||
LinAlgOpContext< memorySpace > & | context | ||
) |
LapackError dftefe::linearAlgebra::blasLapack::gesv | ( | size_type | n, |
size_type | nrhs, | ||
ValueType * | A, | ||
size_type | lda, | ||
LapackInt * | ipiv, | ||
ValueType * | B, | ||
size_type | ldb, | ||
LinAlgOpContext< dftefe::utils::MemorySpace::DEVICE > & | context | ||
) |
LapackError dftefe::linearAlgebra::blasLapack::gesv | ( | size_type | n, |
size_type | nrhs, | ||
ValueType * | A, | ||
size_type | lda, | ||
LapackInt * | ipiv, | ||
ValueType * | B, | ||
size_type | ldb, | ||
LinAlgOpContext< memorySpace > & | context | ||
) |
void dftefe::linearAlgebra::blasLapack::hadamardProduct | ( | size_type | n, |
const ValueType1 * | x, | ||
const ValueType2 * | y, | ||
const ScalarOp & | opx, | ||
const ScalarOp & | opy, | ||
scalar_type< ValueType1, ValueType2 > * | z, | ||
LinAlgOpContext< memorySpace > & | context | ||
) |
void dftefe::linearAlgebra::blasLapack::hadamardProduct | ( | size_type | n, |
const ValueType1 * | x, | ||
const ValueType2 * | y, | ||
scalar_type< ValueType1, ValueType2 > * | z, | ||
LinAlgOpContext< memorySpace > & | context | ||
) |
Template for performing \( z = \alpha x$ @param[in] size size of the array @param[in] \) alpha \( scalar @param[in] x array @param[out] z array */ template <typename ValueType1, typename ValueType2, typename dftefe::utils::MemorySpace memorySpace> void ascale(size_type n, ValueType1 alpha, const ValueType2 * x, scalar_type<ValueType1, ValueType2> *z, LinAlgOpContext<memorySpace> & context); /** @brief Template for performing \) z_i = x_i * y_i$.
[in] | n | size of the array |
[in] | x | array |
[in] | y | array |
[out] | z | array |
LapackError dftefe::linearAlgebra::blasLapack::heevd | ( | Job | jobz, |
Uplo | uplo, | ||
size_type | n, | ||
ValueType * | A, | ||
size_type | lda, | ||
real_type< ValueType > * | W, | ||
LinAlgOpContext< dftefe::utils::MemorySpace::DEVICE > & | context | ||
) |
LapackError dftefe::linearAlgebra::blasLapack::heevd | ( | Job | jobz, |
Uplo | uplo, | ||
size_type | n, | ||
ValueType * | A, | ||
size_type | lda, | ||
real_type< ValueType > * | W, | ||
LinAlgOpContext< memorySpace > & | context | ||
) |
LapackError dftefe::linearAlgebra::blasLapack::hegv | ( | size_type | itype, |
Job | jobz, | ||
Uplo | uplo, | ||
size_type | n, | ||
ValueType * | A, | ||
size_type | lda, | ||
ValueType * | B, | ||
size_type | ldb, | ||
real_type< ValueType > * | W, | ||
LinAlgOpContext< dftefe::utils::MemorySpace::DEVICE > & | context | ||
) |
LapackError dftefe::linearAlgebra::blasLapack::hegv | ( | size_type | itype, |
Job | jobz, | ||
Uplo | uplo, | ||
size_type | n, | ||
ValueType * | A, | ||
size_type | lda, | ||
ValueType * | B, | ||
size_type | ldb, | ||
real_type< ValueType > * | W, | ||
LinAlgOpContext< memorySpace > & | context | ||
) |
LapackError dftefe::linearAlgebra::blasLapack::inverse | ( | size_type | n, |
ValueType * | A, | ||
LinAlgOpContext< dftefe::utils::MemorySpace::DEVICE > & | context | ||
) |
LapackError dftefe::linearAlgebra::blasLapack::inverse | ( | size_type | n, |
ValueType * | A, | ||
LinAlgOpContext< memorySpace > & | context | ||
) |
void dftefe::linearAlgebra::blasLapack::khatriRaoProduct | ( | const Layout | layout, |
const size_type | sizeI, | ||
const size_type | sizeJ, | ||
const size_type | sizeK, | ||
const ValueType1 * | A, | ||
const ValueType2 * | B, | ||
scalar_type< ValueType1, ValueType2 > * | Z, | ||
LinAlgOpContext< memorySpace > & | context | ||
) |
real_type< ValueType > dftefe::linearAlgebra::blasLapack::nrm2 | ( | const size_type | n, |
ValueType const * | x, | ||
const size_type | incx, | ||
LinAlgOpContext< memorySpace > & | context | ||
) |
std::vector< double > dftefe::linearAlgebra::blasLapack::nrms2MultiVector | ( | const size_type | vecSize, |
const size_type | numVec, | ||
const ValueType * | multiVecData, | ||
LinAlgOpContext< memorySpace > & | context | ||
) |
LapackError dftefe::linearAlgebra::blasLapack::potrf | ( | Uplo | uplo, |
size_type | n, | ||
ValueType * | A, | ||
size_type | lda, | ||
LinAlgOpContext< dftefe::utils::MemorySpace::DEVICE > & | context | ||
) |
LapackError dftefe::linearAlgebra::blasLapack::potrf | ( | Uplo | uplo, |
size_type | n, | ||
ValueType * | A, | ||
size_type | lda, | ||
LinAlgOpContext< memorySpace > & | context | ||
) |
void dftefe::linearAlgebra::blasLapack::reciprocalX | ( | size_type | n, |
const ValueType1 | alpha, | ||
ValueType2 const * | x, | ||
scalar_type< ValueType1, ValueType2 > * | y, | ||
LinAlgOpContext< memorySpace > & | context | ||
) |
Template for computing the multiplicative inverse of all the elements of x, does not check if any element is zero computes \f $ y[i] = \frac{alpha}{x[i]} $ \f.
[in] | n | size of each vector |
[in] | alpha | scalr input for the numerator |
[in] | x | input vector |
[out] | y | output vector |
[in] | context | Blas context for GPU operations |
void dftefe::linearAlgebra::blasLapack::scaleStridedVarBatched | ( | const size_type | numMats, |
const ScalarOp * | scalarOpA, | ||
const ScalarOp * | scalarOpB, | ||
const size_type * | stridea, | ||
const size_type * | strideb, | ||
const size_type * | stridec, | ||
const size_type * | m, | ||
const size_type * | n, | ||
const size_type * | k, | ||
const ValueType1 * | dA, | ||
const ValueType2 * | dB, | ||
scalar_type< ValueType1, ValueType2 > * | dC, | ||
LinAlgOpContext< memorySpace > & | context | ||
) |
LapackError dftefe::linearAlgebra::blasLapack::steqr | ( | Job | jobz, |
size_type | n, | ||
real_type< ValueType > * | D, | ||
real_type< ValueType > * | E, | ||
ValueType * | Z, | ||
size_type | ldz, | ||
LinAlgOpContext< dftefe::utils::MemorySpace::DEVICE > & | context | ||
) |
LapackError dftefe::linearAlgebra::blasLapack::steqr | ( | Job | jobz, |
size_type | n, | ||
real_type< ValueType > * | D, | ||
real_type< ValueType > * | E, | ||
ValueType * | Z, | ||
size_type | ldz, | ||
LinAlgOpContext< memorySpace > & | context | ||
) |
void dftefe::linearAlgebra::blasLapack::transposedKhatriRaoProduct | ( | const Layout | layout, |
const size_type | sizeI, | ||
const size_type | sizeJ, | ||
const size_type | sizeK, | ||
const ValueType1 * | A, | ||
const ValueType2 * | B, | ||
scalar_type< ValueType1, ValueType2 > * | Z, | ||
LinAlgOpContext< memorySpace > & | context | ||
) |
LapackError dftefe::linearAlgebra::blasLapack::trtri | ( | Uplo | uplo, |
Diag | diag, | ||
size_type | n, | ||
ValueType * | A, | ||
size_type | lda, | ||
LinAlgOpContext< dftefe::utils::MemorySpace::DEVICE > & | context | ||
) |
LapackError dftefe::linearAlgebra::blasLapack::trtri | ( | Uplo | uplo, |
Diag | diag, | ||
size_type | n, | ||
ValueType * | A, | ||
size_type | lda, | ||
LinAlgOpContext< memorySpace > & | context | ||
) |