Skip to content
Snippets Groups Projects
Commit e1c6e43b authored by Thomas Toulorge's avatar Thomas Toulorge
Browse files

Removed the (now useless) normalization of scaling vector in OptHOM. Minor cleaning.

parent cfcf391d
No related branches found
No related tags found
No related merge requests found
...@@ -172,12 +172,6 @@ void OptHOM::calcScale(alglib::real_1d_array &scale) ...@@ -172,12 +172,6 @@ void OptHOM::calcScale(alglib::real_1d_array &scale)
for (int iPC = 0; iPC < mesh.nPCFV(iFV); iPC++) scale[mesh.indPCFV(iFV,iPC)] = scaleFV[iPC]; for (int iPC = 0; iPC < mesh.nPCFV(iFV); iPC++) scale[mesh.indPCFV(iFV,iPC)] = scaleFV[iPC];
} }
// Normalize scale vector (otherwise ALGLIB routines may fail)
double scaleNormSq = 0.;
for (int i = 0; i < mesh.nPC(); i++) scaleNormSq += scale[i]*scale[i];
const double scaleNorm = sqrt(scaleNormSq);
for (int i = 0; i < mesh.nPC(); i++) scale[i] /= scaleNorm;
} }
...@@ -194,13 +188,14 @@ void OptHOM::OptimPass(alglib::real_1d_array &x, const alglib::real_1d_array &in ...@@ -194,13 +188,14 @@ void OptHOM::OptimPass(alglib::real_1d_array &x, const alglib::real_1d_array &in
iter = 0; iter = 0;
alglib::real_1d_array scale;
calcScale(scale);
int iterationscount = 0, nfev = 0, terminationtype = -1; int iterationscount = 0, nfev = 0, terminationtype = -1;
if (OPTMETHOD == 1) { if (OPTMETHOD == 1) {
alglib::mincgstate state; alglib::mincgstate state;
alglib::mincgreport rep; alglib::mincgreport rep;
mincgcreate(x, state); mincgcreate(x, state);
alglib::real_1d_array scale;
calcScale(scale);
mincgsetscale(state,scale); mincgsetscale(state,scale);
mincgsetprecscale(state); mincgsetprecscale(state);
mincgsetcond(state, EPSG, EPSF, EPSX, itMax); mincgsetcond(state, EPSG, EPSF, EPSX, itMax);
...@@ -215,8 +210,6 @@ void OptHOM::OptimPass(alglib::real_1d_array &x, const alglib::real_1d_array &in ...@@ -215,8 +210,6 @@ void OptHOM::OptimPass(alglib::real_1d_array &x, const alglib::real_1d_array &in
alglib::minlbfgsstate state; alglib::minlbfgsstate state;
alglib::minlbfgsreport rep; alglib::minlbfgsreport rep;
minlbfgscreate(3, x, state); minlbfgscreate(3, x, state);
alglib::real_1d_array scale;
calcScale(scale);
minlbfgssetscale(state,scale); minlbfgssetscale(state,scale);
minlbfgssetprecscale(state); minlbfgssetprecscale(state);
minlbfgssetcond(state, EPSG, EPSF, EPSX, itMax); minlbfgssetcond(state, EPSG, EPSF, EPSX, itMax);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment