11 namespace linearAlgebra
18 template <
typename ValueType1,
60 const ValueType1 alpha,
137 const ValueType1 * dA,
138 const ValueType2 * dB,
171 const ValueType1 * A,
172 const ValueType2 * B,
209 const ValueType1 * dA,
210 const ValueType2 * dB,
243 const ValueType1 * A,
244 const ValueType2 * B,
259 const ValueType1 * x,
261 const ValueType2 * y,
278 const ValueType1 * x,
281 const ValueType2 * y,
305 const ValueType1 * multiVecDataX,
306 const ValueType2 * multiVecDataY,
313 template <
typename ValueType, dftefe::utils::MemorySpace memorySpace>
326 static std::vector<double>
329 const ValueType *multiVecData);
340 static std::vector<double>
343 const ValueType * multiVecData,
347#ifdef DFTEFE_WITH_DEVICE
348 template <
typename ValueType1,
typename ValueType2>
357 const ValueType2 * x,
368 const ValueType1 alpha,
369 const ValueType2 * x,
374 const ValueType1 * x,
375 const ValueType2 * y,
380 const ValueType1 * x,
381 const ValueType2 * y,
392 const ValueType1 * A,
393 const ValueType2 * B,
399 const ValueType1 * x,
401 const ValueType2 * y,
408 const ValueType1 * multiVecDataX,
409 const ValueType2 * multiVecDataY,
416 template <
typename ValueType>
420 static std::vector<double>
423 const ValueType *multiVecData);
426 static std::vector<double>
430 const ValueType * multiVecData,
Definition: LinAlgOpContext.h:38
Definition: BlasLapackKernels.h:315
static std::vector< double > nrms2MultiVector(size_type vecSize, size_type numVec, const ValueType *multiVecData, LinAlgOpContext< memorySpace > &context)
Template for computing norms of all the numVec vectors in a multi Vector.
Definition: BlasLapackKernels.cpp:622
static std::vector< double > amaxsMultiVector(size_type vecSize, size_type numVec, const ValueType *multiVecData)
Template for computing norms of all the numVec vectors in a multi Vector.
Definition: BlasLapackKernels.cpp:595
namespace class for BlasLapack kernels not present in blaspp.
Definition: BlasLapackKernels.h:22
static void khatriRaoProductStridedVarBatched(const Layout layout, const size_type numMats, 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 for performing khatriRao but with variable stride In column major storage format: ,...
Definition: BlasLapackKernels.cpp:389
static void axpby(size_type size, scalar_type< ValueType1, ValueType2 > alpha, const ValueType1 *x, scalar_type< ValueType1, ValueType2 > beta, const ValueType2 *y, scalar_type< ValueType1, ValueType2 > *z)
Template for performing .
Definition: BlasLapackKernels.cpp:456
static void scaleStridedVarBatched(const size_type numMats, const Layout layout, 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 for performing hadamard product of two columns of batches of matrix A and B having num col A...
Definition: BlasLapackKernels.cpp:282
static 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)
Template for performing In column major storage format: , where is matrix, is ,...
Definition: BlasLapackKernels.cpp:424
static void hadamardProduct(size_type size, const ValueType1 *x, const ValueType2 *y, scalar_type< ValueType1, ValueType2 > *z)
Template for performing z_i = x_i * y_i$.
Definition: BlasLapackKernels.cpp:184
static 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)
Template for performing In column major storage format: , where is matrix, is ,...
Definition: BlasLapackKernels.cpp:356
static void dotMultiVector(size_type vecSize, size_type numVec, const ValueType1 *multiVecDataX, const ValueType2 *multiVecDataY, const ScalarOp &opX, const ScalarOp &opY, scalar_type< ValueType1, ValueType2 > *multiVecDotProduct, LinAlgOpContext< memorySpace > &context)
Template for computing dot products numVec vectors in a multi Vector.
Definition: BlasLapackKernels.cpp:508
static void axpbyBlocked(const size_type size, const size_type blockSize, const scalar_type< ValueType1, ValueType2 > alpha1, const scalar_type< ValueType1, ValueType2 > *alpha, const ValueType1 *x, const scalar_type< ValueType1, ValueType2 > beta1, const scalar_type< ValueType1, ValueType2 > *beta, const ValueType2 *y, scalar_type< ValueType1, ValueType2 > *z)
Template for performing .
Definition: BlasLapackKernels.cpp:477
static void ascale(size_type size, ValueType1 alpha, const ValueType2 *x, const ScalarOp &opalpha, const ScalarOp &opx, scalar_type< ValueType1, ValueType2 > *z)
Template for performing alpha z = \alpha x$.
Definition: BlasLapackKernels.cpp:91
Layout
Definition: BlasLapackTypedef.h:161
typeInternal::scalar_type< ValueType1, ValueType2 > scalar_type
Definition: BlasLapackTypedef.h:183
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:78
ScalarOp
Definition: BlasLapackTypedef.h:169
MemorySpace
Definition: MemorySpaceType.h:37
dealii includes
Definition: AtomFieldDataSpherical.cpp:31
unsigned int size_type
Definition: TypeConfig.h:8