|
| template<typename ValueTypeOperator , typename ValueTypeOperand , utils::MemorySpace memorySpace> |
| static void | projectImpl (MultiVectorProductSpace< ValueTypeOperand, memorySpace > &X, const bool spaceBlocked, const std::shared_ptr< const ProcessGrid > &processGrid, ScaLAPACKMatrix< blasLapack::scalar_type< ValueTypeOperator, ValueTypeOperand > > *overlapMatPars, const OperatorContext< ValueTypeOperator, ValueTypeOperand, memorySpace > &Op, const size_type eigenVecBatchSize, std::shared_ptr< MultiVector< blasLapack::scalar_type< ValueTypeOperator, ValueTypeOperand >, memorySpace > > &XinBatch, std::shared_ptr< MultiVector< blasLapack::scalar_type< ValueTypeOperator, ValueTypeOperand >, memorySpace > > &XoutBatch, std::shared_ptr< MultiVector< blasLapack::scalar_type< ValueTypeOperator, ValueTypeOperand >, memorySpace > > &XinBatchSmall, std::shared_ptr< MultiVector< blasLapack::scalar_type< ValueTypeOperator, ValueTypeOperand >, memorySpace > > &XoutBatchSmall) |
| |
| template<typename ValueType1 , typename ValueType2 , utils::MemorySpace memorySpace> |
| static void | copyBatchImpl (const ValueType1 *copyFromVec, size_type srcLeadingDim, size_type srcSpaceStride, size_type srcBase, ValueType2 *copyToVec, size_type dstLeadingDim, size_type dstSpaceStride, size_type dstBase, size_type vecSize, size_type numSpaces, size_type numVecBatch, LinAlgOpContext< memorySpace > &context) |
| |
| template<typename ValueType , utils::MemorySpace memorySpace> |
| static void | rotateImpl (MultiVectorProductSpace< ValueType, memorySpace > &X, const bool spaceBlocked, const std::shared_ptr< const ProcessGrid > &processGrid, const ScaLAPACKMatrix< ValueType > *rotationMatPars, const size_type subspaceRotDofsBlockSize, const size_type wfcBlockSize, const bool rotationMatTranspose=false, const bool isRotationMatLowerTria=false, const bool allowFullCPUMemSubspaceRot=(memorySpace==utils::MemorySpace::DEVICE ? true :false)) |
| |