Mentions légales du service

Skip to content
Snippets Groups Projects
Commit 741d8f8c authored by Olivier COULAUD's avatar Olivier COULAUD
Browse files

Fix SonarQube problem

parent d70d77e1
Branches
Tags
No related merge requests found
Pipeline #
...@@ -474,15 +474,17 @@ unsigned int Compress(const FReal epsilon, const unsigned int ninteractions, ...@@ -474,15 +474,17 @@ unsigned int Compress(const FReal epsilon, const unsigned int ninteractions,
// init SVD // init SVD
const unsigned int LWORK = 2 * (3*nnodes + ninteractions*nnodes); const unsigned int LWORK = 2 * (3*nnodes + ninteractions*nnodes);
FReal *const WORK = new FReal [LWORK]; FReal *const WORK = new FReal [LWORK]{};
// K_col /////////////////////////////////////////////////////////// // K_col ///////////////////////////////////////////////////////////
FReal *const K_col = new FReal [ninteractions * nnodes*nnodes]; FReal *const K_col = new FReal [ninteractions * nnodes*nnodes];
for (unsigned int i=0; i<ninteractions; ++i) for (unsigned int i=0; i<ninteractions; ++i){
for (unsigned int j=0; j<nnodes; ++j) for (unsigned int j=0; j<nnodes; ++j){
FBlas::copy(nnodes, FBlas::copy(nnodes,
C + i*nnodes*nnodes + j*nnodes, C + i*nnodes*nnodes + j*nnodes,
K_col + j*ninteractions*nnodes + i*nnodes); K_col + j*ninteractions*nnodes + i*nnodes);
}
}
// singular value decomposition // singular value decomposition
FReal *const Q = new FReal [nnodes*nnodes]; FReal *const Q = new FReal [nnodes*nnodes];
FReal *const S = new FReal [nnodes]; FReal *const S = new FReal [nnodes];
...@@ -499,8 +501,8 @@ unsigned int Compress(const FReal epsilon, const unsigned int ninteractions, ...@@ -499,8 +501,8 @@ unsigned int Compress(const FReal epsilon, const unsigned int ninteractions,
// Q' -> B // Q' -> B
B = new FReal [nnodes*k_col]; B = new FReal [nnodes*k_col];
for (unsigned int i=0; i<k_col; ++i) for (unsigned int i=0; i<k_col; ++i){
FBlas::copy(nnodes, Q+i, nnodes, B+i*nnodes, 1); FBlas::copy(nnodes, Q+i, nnodes, B+i*nnodes, 1);}
// K_row ////////////////////////////////////////////////////////////// // K_row //////////////////////////////////////////////////////////////
FReal *const K_row = C; FReal *const K_row = C;
...@@ -511,6 +513,10 @@ unsigned int Compress(const FReal epsilon, const unsigned int ninteractions, ...@@ -511,6 +513,10 @@ unsigned int Compress(const FReal epsilon, const unsigned int ninteractions,
if (info_row!=0){ if (info_row!=0){
std::stringstream stream; std::stringstream stream;
stream << info_row; stream << info_row;
delete [] WORK ;
delete [] B ;
delete [] Q ;
delete [] S ;
throw std::runtime_error("SVD did not converge with " + stream.str()); throw std::runtime_error("SVD did not converge with " + stream.str());
} }
const unsigned int k_row = FSvd::getRank<FReal, ORDER>(S, epsilon); const unsigned int k_row = FSvd::getRank<FReal, ORDER>(S, epsilon);
...@@ -540,7 +546,6 @@ unsigned int Compress(const FReal epsilon, const unsigned int ninteractions, ...@@ -540,7 +546,6 @@ unsigned int Compress(const FReal epsilon, const unsigned int ninteractions,
B + j*nnodes); B + j*nnodes);
} }
} }
delete [] V; delete [] V;
delete [] S; delete [] S;
delete [] K_row; delete [] K_row;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment