int conv, allconv, i; double tester, val; allconv = 1; GetDoubleParm("conv_maxgrad",&val); tester=0.0; for(i=0;invar;i++)tester=max(tester,fabs(opt->g->d[i])); conv = (tester < val); allconv = (allconv && conv); printf( "maxgrad: %10.6f (tester %10.6f) converged? %s\n",tester, val, conv ? "yes" : "no" ); GetDoubleParm("conv_rmsgrad",&val); tester=0.0; for(i=0;invar;i++)tester += opt->g->d[i]*opt->g->d[i]; /* tester=sqrt(tester)/(double) opt->nvar; */ tester=sqrt(tester/(double) opt->nvar); conv = (tester < val); allconv = (allconv && conv); printf( "rmsgrad: %10.6f (tester %10.6f) converged? %s\n",tester, val, conv ? "yes" : "no" ); GetDoubleParm("conv_maxstep",&val); tester=0.0; for(i=0;invar;i++)tester=max(tester,fabs(opt->s->d[i])); conv = (tester < val); allconv = (allconv && conv); printf( "maxstep: %10.6f (tester %10.6f) converged? %s\n",tester, val, conv ? "yes" : "no" ); GetDoubleParm("conv_rmsstep",&val); tester=0.0; for(i=0;invar;i++)tester += opt->s->d[i]*opt->s->d[i]; /* tester=sqrt(tester)/(double) opt->nvar; */ tester=sqrt(tester/(double) opt->nvar); conv = (tester < val); allconv = (allconv && conv); printf( "rmsstep: %10.6f (tester %10.6f) converged? %s\n",tester, val, conv ? "yes" : "no" ); sprintf(strerr,"%d",allconv);