double step = 0.5;
for(int i = 0; i < glmt._objvals.length; ++i){
if(!needLineSearch(glmt._betas[i],glmt._objvals[i],step)){
Log.info("GLM line search: found admissible step=" + step);
if(step < 1e-2) // too small a step, increase precision of the solver
<BUG>ADMM_GRAD_EPS = 1e-8;
_lastResult = null; // set last result to null so that the Iteration will not attempt to verify whether or not it should do the line search.</BUG>
new GLMIterationTask(GLM2.this,_dinfo,_glm,true,true,true,glmt._betas[i],_ymu,_reg,new Iteration()).asyncExec(_dinfo._adaptedFrame);
return;
}

double step = 0.5;
for(int i = 0; i < glmt._objvals.length; ++i){
if(!needLineSearch(glmt._betas[i],glmt._objvals[i],step)){
Log.info("GLM line search: found admissible step=" + step);
if(step < 1e-2) // too small a step, increase precision of the solver
ADMM_GRAD_EPS = MIN_ADMM_GRAD_EPS;
_lastResult = null; // set last result to null so that the Iteration will not attempt to verify whether or not it should do the line search.
new GLMIterationTask(GLM2.this,_dinfo,_glm,true,true,true,glmt._betas[i],_ymu,_reg,new Iteration()).asyncExec(_dinfo._adaptedFrame);
return;
}
