Commit 741d8f8c authored by COULAUD Olivier's avatar COULAUD Olivier

Fix SonarQube problem

parent d70d77e1
......@@ -474,15 +474,17 @@ unsigned int Compress(const FReal epsilon, const unsigned int ninteractions,
// init SVD
const unsigned int LWORK = 2 * (3*nnodes + ninteractions*nnodes);
FReal *const WORK = new FReal [LWORK];
FReal *const WORK = new FReal [LWORK]{};
// K_col ///////////////////////////////////////////////////////////
FReal *const K_col = new FReal [ninteractions * nnodes*nnodes];
for (unsigned int i=0; i<ninteractions; ++i)
for (unsigned int j=0; j<nnodes; ++j)
for (unsigned int i=0; i<ninteractions; ++i){
for (unsigned int j=0; j<nnodes; ++j){
FBlas::copy(nnodes,
C + i*nnodes*nnodes + j*nnodes,
K_col + j*ninteractions*nnodes + i*nnodes);
}
}
// singular value decomposition
FReal *const Q = new FReal [nnodes*nnodes];
FReal *const S = new FReal [nnodes];
......@@ -499,8 +501,8 @@ unsigned int Compress(const FReal epsilon, const unsigned int ninteractions,
// Q' -> B
B = new FReal [nnodes*k_col];
for (unsigned int i=0; i<k_col; ++i)
FBlas::copy(nnodes, Q+i, nnodes, B+i*nnodes, 1);
for (unsigned int i=0; i<k_col; ++i){
FBlas::copy(nnodes, Q+i, nnodes, B+i*nnodes, 1);}
// K_row //////////////////////////////////////////////////////////////
FReal *const K_row = C;
......@@ -511,6 +513,10 @@ unsigned int Compress(const FReal epsilon, const unsigned int ninteractions,
if (info_row!=0){
std::stringstream stream;
stream << info_row;
delete [] WORK ;
delete [] B ;
delete [] Q ;
delete [] S ;
throw std::runtime_error("SVD did not converge with " + stream.str());
}
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,
B + j*nnodes);
}
}
delete [] V;
delete [] S;
delete [] K_row;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment