Lines Matching refs:gd
413 PetscErrorCode TaoBNCGCheckDynamicRestart(Tao tao, PetscReal stepsize, PetscReal gd, PetscReal gd_o… in TaoBNCGCheckDynamicRestart() argument
423 quadinterp = 2.0 * (cg->f - fold) / (stepsize * (gd + gd_old)); in TaoBNCGCheckDynamicRestart()
440 PetscReal tmp = 1.0, ynorm, ynorm2 = 1.0, snorm = 1.0, dk_yk = 1.0, gd; in TaoBNCGStepDirectionUpdate() local
592 PetscCall(VecDot(tao->stepdirection, tao->gradient, &gd)); in TaoBNCGStepDirectionUpdate()
595 beta = tau_k * gnorm2 / (gd - gd_old); in TaoBNCGStepDirectionUpdate()
613 PetscCall(VecDot(tao->gradient, tao->stepdirection, &gd)); in TaoBNCGStepDirectionUpdate()
618 …if (cg->use_dynamic_restart) PetscCall(TaoBNCGCheckDynamicRestart(tao, step, gd, gd_old, &cg->dyna… in TaoBNCGStepDirectionUpdate()
626 tmp = gd / dk_yk; in TaoBNCGStepDirectionUpdate()
627 beta = tau_k * (gkp1_yk / dk_yk - ynorm2 * gd / (dk_yk * dk_yk)); in TaoBNCGStepDirectionUpdate()
629 …x(beta, cg->hz_eta * tau_k * gd_old / (dnorm * dnorm)), cg->dk_eta * tau_k * gd / (dnorm * dnorm)); in TaoBNCGStepDirectionUpdate()
643 tmp = gd / dk_yk; in TaoBNCGStepDirectionUpdate()
645 tau_k = -tau_k * gd / (dk_yk * dk_yk); in TaoBNCGStepDirectionUpdate()
650 PetscCall(VecDot(tao->stepdirection, cg->g_work, &gd)); in TaoBNCGStepDirectionUpdate()
651 …beta = PetscMax(PetscMax(beta, cg->hz_eta * gd_old / (dnorm * dnorm)), cg->dk_eta * gd / (dnorm * … in TaoBNCGStepDirectionUpdate()
661 PetscCall(VecDot(tao->gradient, tao->stepdirection, &gd)); in TaoBNCGStepDirectionUpdate()
670 tmp = gd / dk_yk; in TaoBNCGStepDirectionUpdate()
671 …beta = tau_k * (gkp1_yk / dk_yk - ynorm2 * gd / (dk_yk * dk_yk) + gd / (dnorm * dnorm)) - step * g… in TaoBNCGStepDirectionUpdate()
672 …x(beta, cg->hz_eta * tau_k * gd_old / (dnorm * dnorm)), cg->dk_eta * tau_k * gd / (dnorm * dnorm)); in TaoBNCGStepDirectionUpdate()
685 tau_k = tau_k * gd / (dk_yk * dk_yk); in TaoBNCGStepDirectionUpdate()
686 tmp = gd / dk_yk; in TaoBNCGStepDirectionUpdate()
692 PetscCall(VecDot(tao->stepdirection, cg->g_work, &gd)); in TaoBNCGStepDirectionUpdate()
694 …beta = PetscMax(PetscMax(beta, cg->hz_eta * gd_old / (dnorm * dnorm)), cg->dk_eta * gd / (dnorm * … in TaoBNCGStepDirectionUpdate()
703 PetscCall(VecDot(tao->gradient, tao->stepdirection, &gd)); in TaoBNCGStepDirectionUpdate()
708 …if (cg->use_dynamic_restart) PetscCall(TaoBNCGCheckDynamicRestart(tao, step, gd, gd_old, &cg->dyna… in TaoBNCGStepDirectionUpdate()
715 beta = tau_k * (gkp1_yk / dk_yk - ynorm2 * gd / (dk_yk * dk_yk)) - step * gd / dk_yk; in TaoBNCGStepDirectionUpdate()
716 if (beta < cg->zeta * tau_k * gd / (dnorm * dnorm)) /* 0.1 is KD's zeta parameter */ in TaoBNCGStepDirectionUpdate()
718 beta = cg->zeta * tau_k * gd / (dnorm * dnorm); in TaoBNCGStepDirectionUpdate()
721 if (gkp1_yk < 0 && cg->neg_xi) gamma = -1.0 * gd / dk_yk; in TaoBNCGStepDirectionUpdate()
724 else gamma = cg->xi * gd / dk_yk; in TaoBNCGStepDirectionUpdate()
737 gamma = gd / dk_yk; in TaoBNCGStepDirectionUpdate()
740 tau_k = tau_k * gd / (dk_yk * dk_yk); in TaoBNCGStepDirectionUpdate()
747 if (gkp1D_yk / dk_yk < 0) gamma = -1.0 * gd / dk_yk; in TaoBNCGStepDirectionUpdate()
748 else gamma = cg->xi * gd / dk_yk; in TaoBNCGStepDirectionUpdate()
757 } else gamma = cg->xi * gd / dk_yk; in TaoBNCGStepDirectionUpdate()
769 PetscCall(VecDot(tao->gradient, tao->stepdirection, &gd)); in TaoBNCGStepDirectionUpdate()
778 tmp = gd / dk_yk; in TaoBNCGStepDirectionUpdate()
779 beta = tau_k * (gkp1_yk / dk_yk - cg->yty * gd / (dk_yk * dk_yk)) - step * tmp; in TaoBNCGStepDirectionUpdate()
789 gamma = gd / dk_yk; in TaoBNCGStepDirectionUpdate()
791 beta = (gkp1_yk / dk_yk - gd * tmp / (dk_yk * dk_yk)) - step * gd / dk_yk; in TaoBNCGStepDirectionUpdate()
798 PetscCall(VecDot(tao->gradient, tao->stepdirection, &gd)); in TaoBNCGStepDirectionUpdate()
810 beta = -step * gd / dk_yk; in TaoBNCGStepDirectionUpdate()
822 beta = -step * gd / dk_yk; in TaoBNCGStepDirectionUpdate()
829 PetscCall(VecDot(tao->gradient, tao->stepdirection, &gd)); in TaoBNCGStepDirectionUpdate()
843 tmp = cg->theta * tau_bfgs * gd / dk_yk + (1 - cg->theta) * tau_dfp * gkp1_yk / cg->yty; in TaoBNCGStepDirectionUpdate()
844 …beta = cg->theta * tau_bfgs * (gkp1_yk / dk_yk - cg->yty * gd / (dk_yk * dk_yk)) - step * gd / dk_… in TaoBNCGStepDirectionUpdate()
854 gamma = cg->theta * gd / dk_yk + (1 - cg->theta) * (gkp1_yk / tmp); in TaoBNCGStepDirectionUpdate()
856 beta = cg->theta * (gkp1_yk / dk_yk - gd * tmp / (dk_yk * dk_yk)) - step * gd / dk_yk; in TaoBNCGStepDirectionUpdate()
873 PetscReal step = 1.0, gnorm2, gd, dnorm = 0.0; in TaoBNCGConductIteration() local
994 PetscCall(VecDot(tao->gradient, tao->stepdirection, &gd)); in TaoBNCGConductIteration()
996 …if (PetscIsInfOrNanReal(gd) || (gd / (dnorm * dnorm) <= -1e10 || gd / (dnorm * dnorm) >= -1e-10)) { in TaoBNCGConductIteration()