26#ifndef dftefeBlasWrappers_h
27#define dftefeBlasWrappers_h
36 namespace linearAlgebra
40 template <
typename ValueType,
48 template <
typename ValueType,
65 template <
typename ValueType,
70 ValueType
const * multiVecData,
74 template <
typename ValueType1,
98 template <
typename ValueType1,
103 const ValueType1 alpha,
104 ValueType2
const * x,
116 template <
typename ValueType1,
122 const ValueType2 * x,
134 template <
typename ValueType1,
139 const ValueType1 * x,
140 const ValueType2 * y,
179 template <
typename ValueType1,
184 const ValueType1 * x,
185 const ValueType2 * y,
216 template <
typename ValueType1,
229 const ValueType1 * dA,
230 const ValueType2 * dB,
256 template <
typename ValueType1,
264 const ValueType1 * A,
265 const ValueType2 * B,
292 template <
typename ValueType1,
300 const ValueType1 * A,
301 const ValueType2 * B,
315 template <
typename ValueType1,
321 ValueType1
const * x,
323 const ValueType2 * y,
336 template <
typename ValueType1,
343 const ValueType1 * x,
345 const ValueType2 * y,
350 template <
typename ValueType1,
355 ValueType1
const * x,
357 ValueType2
const * y,
379 template <
typename ValueType1,
385 const ValueType1 * multiVecDataX,
386 const ValueType2 * multiVecDataY,
393 template <
typename ValueType,
410 template <
typename ValueType,
415 ValueType
const * multiVecData,
418 template <
typename ValueType1,
429 ValueType1
const * dA,
431 ValueType2
const * dB,
444 template <
typename ValueType1,
459 const ValueType1 * dA,
461 const ValueType2 * dB,
472 template <
typename ValueType,
480 template <
typename ValueType,
493 template <
typename ValueType,
505 template <
typename ValueType,
519 template <
typename ValueType,
533 template <
typename ValueType,
551 template <
typename ValueType,
Definition: LinAlgOpContext.h:38
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)
Definition: BlasLapack.t.cpp:213
real_type< ValueType > amax(size_type n, ValueType const *x, size_type incx, LinAlgOpContext< memorySpace > &context)
Definition: BlasLapack.t.cpp:31
blas::Diag Diag
Definition: BlasLapackTypedef.h:44
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)
Definition: BlasLapack.t.cpp:411
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)
Definition: BlasLapack.t.cpp:285
LapackError gesv(size_type n, size_type nrhs, ValueType *A, size_type lda, LapackInt *ipiv, ValueType *B, size_type ldb, LinAlgOpContext< memorySpace > &context)
Definition: BlasLapack.t.cpp:678
void hadamardProduct(size_type n, const ValueType1 *x, const ValueType2 *y, scalar_type< ValueType1, ValueType2 > *z, LinAlgOpContext< memorySpace > &context)
Template for performing alpha z_i = x_i * y_i$.
Definition: BlasLapack.t.cpp:113
void axpy(size_type n, scalar_type< ValueType1, ValueType2 > alpha, ValueType1 const *x, size_type incx, ValueType2 *y, size_type incy, LinAlgOpContext< memorySpace > &context)
Definition: BlasLapack.t.cpp:65
blas::Uplo Uplo
Definition: BlasLapackTypedef.h:45
blas::Layout Layout
Definition: BlasLapackTypedef.h:46
std::vector< double > amaxsMultiVector(size_type vecSize, size_type numVec, ValueType const *multiVecData, LinAlgOpContext< memorySpace > &context)
Template for computing norms of all the numVec vectors in a multi Vector.
Definition: BlasLapack.t.cpp:47
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)
Definition: BlasLapack.t.cpp:196
blas::Op Op
Definition: BlasLapackTypedef.h:43
LapackError steqr(Job jobz, size_type n, real_type< ValueType > *D, real_type< ValueType > *E, ValueType *Z, size_type ldz, LinAlgOpContext< memorySpace > &context)
Definition: BlasLapack.t.cpp:591
int64_t LapackInt
Definition: BlasLapackTypedef.h:53
real_type< ValueType > nrm2(const size_type n, ValueType const *x, const size_type incx, LinAlgOpContext< memorySpace > &context)
Definition: BlasLapack.t.cpp:308
LapackError potrf(Uplo uplo, size_type n, ValueType *A, size_type lda, LinAlgOpContext< memorySpace > &context)
Definition: BlasLapack.t.cpp:565
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)
Definition: BlasLapack.t.cpp:247
blas::scalar_type< ValueType1, ValueType2 > scalar_type
Definition: BlasLapackTypedef.h:70
std::vector< double > nrms2MultiVector(const size_type vecSize, const size_type numVec, const ValueType *multiVecData, LinAlgOpContext< memorySpace > &context)
Definition: BlasLapack.t.cpp:324
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)
Definition: BlasLapack.t.cpp:647
real_type< ValueType > asum(size_type n, ValueType const *x, size_type incx, LinAlgOpContext< memorySpace > &context)
Definition: BlasLapack.t.cpp:15
blas::real_type< ValueType > real_type
Definition: BlasLapackTypedef.h:64
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)
Definition: BlasLapack.t.cpp:231
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)
Definition: BlasLapack.t.cpp:338
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)
Definition: BlasLapack.t.cpp:265
LapackError trtri(Uplo uplo, Diag diag, size_type n, ValueType *A, size_type lda, LinAlgOpContext< memorySpace > &context)
Definition: BlasLapack.t.cpp:538
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 ele...
Definition: BlasLapack.t.cpp:83
ScalarOp
Definition: BlasLapackTypedef.h:56
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)
Definition: BlasLapack.t.cpp:162
LapackError heevd(Job jobz, Uplo uplo, size_type n, ValueType *A, size_type lda, real_type< ValueType > *W, LinAlgOpContext< memorySpace > &context)
Definition: BlasLapack.t.cpp:619
lapack::Job Job
Definition: BlasLapackTypedef.h:49
LapackError inverse(size_type n, ValueType *A, LinAlgOpContext< memorySpace > &context)
Definition: BlasLapack.t.cpp:512
void ascale(const size_type n, const ValueType1 alpha, const ValueType2 *x, scalar_type< ValueType1, ValueType2 > *z, LinAlgOpContext< memorySpace > &context)
Definition: BlasLapack.t.cpp:97
MemorySpace
Definition: MemorySpaceType.h:37
dealii includes
Definition: AtomFieldDataSpherical.cpp:31
unsigned int size_type
Definition: TypeConfig.h:8
Definition: LinearAlgebraTypes.h:113