Révision | 7c76152af3a4c8570688a9e9ced4cb5f9161c3f9 (tree) |
---|---|
l'heure | 2013-03-10 07:12:23 |
Auteur | Mikiya Fujii <mikiya.fujii@gmai...> |
Commiter | Mikiya Fujii |
refactoring Cndo2::RotateDiatmicOverlapAOsToSpaceFrame #30829
git-svn-id: https://svn.sourceforge.jp/svnroot/molds/trunk@1313 1136aad2-a195-0410-b898-f5ea1d11b9d8
@@ -5815,18 +5815,20 @@ void Cndo2::RotateDiatmicOverlapAOsToSpaceFrame(double** diatomicOverlapAOs, | ||
5815 | 5815 | } |
5816 | 5816 | } |
5817 | 5817 | // rotate |
5818 | - for(int i=0; i<OrbitalType_end; i++){ | |
5819 | - for(int j=0; j<OrbitalType_end; j++){ | |
5820 | - diatomicOverlapAOs[i][j] = 0.0; | |
5821 | - for(int k=0; k<OrbitalType_end; k++){ | |
5822 | - for(int l=0; l<OrbitalType_end; l++){ | |
5823 | - diatomicOverlapAOs[i][j] += oldDiatomicOverlapAOs[k][l] | |
5824 | - *rotatingMatrix[i][k] | |
5825 | - *rotatingMatrix[j][l]; | |
5826 | - } | |
5827 | - } | |
5828 | - } | |
5829 | - } | |
5818 | + bool isColumnMajorRotatingMatrix = false; | |
5819 | + bool isColumnMajorOldDiatomicOverlap = false; | |
5820 | + double alpha = 1.0; | |
5821 | + double beta = 0.0; | |
5822 | + MolDS_wrappers::Blas::GetInstance()->Dgemmm(isColumnMajorRotatingMatrix, | |
5823 | + isColumnMajorOldDiatomicOverlap, | |
5824 | + !isColumnMajorRotatingMatrix, | |
5825 | + OrbitalType_end, OrbitalType_end, OrbitalType_end, OrbitalType_end, | |
5826 | + alpha, | |
5827 | + rotatingMatrix, | |
5828 | + oldDiatomicOverlapAOs, | |
5829 | + rotatingMatrix, | |
5830 | + beta, | |
5831 | + diatomicOverlapAOs); | |
5830 | 5832 | } |
5831 | 5833 | catch(MolDSException ex){ |
5832 | 5834 | MallocerFreer::GetInstance()->Free<double>(&oldDiatomicOverlapAOs, OrbitalType_end, OrbitalType_end); |