Lines Matching refs:lambda
64 PetscReal lambda, lambdatemp, lambdaprev, minlambda, initslope, alpha, stol; in SNESLineSearchApply_BT() local
77 PetscCall(SNESLineSearchGetLambda(linesearch, &lambda)); in SNESLineSearchApply_BT()
131 PetscCall(VecWAXPY(W, -lambda, Y, X)); in SNESLineSearchApply_BT()
157 …search: objective function at lambdas = %g is infinity or NaN, cutting lambda\n", (double)lambda)); in SNESLineSearchApply_BT()
160 if (lambda <= minlambda) SNESCheckFunctionDomainError(snes, g); in SNESLineSearchApply_BT()
161 lambda *= .5; in SNESLineSearchApply_BT()
165 …if (g <= f + lambda * alpha * initslope) { /* Sufficient reduction or step tolerance convergence */ in SNESLineSearchApply_BT()
188 lambdaprev = lambda; in SNESLineSearchApply_BT()
192 lambdatemp = -initslope * PetscSqr(lambda) / (2.0 * (g - f - lambda * initslope)); in SNESLineSearchApply_BT()
193 lambda = PetscClipInterval(lambdatemp, .1 * lambda, .5 * lambda); in SNESLineSearchApply_BT()
195 PetscCall(VecWAXPY(W, -lambda, Y, X)); in SNESLineSearchApply_BT()
232 …if (linesearch->order != SNES_LINESEARCH_ORDER_LINEAR && g <= f + lambda * alpha * initslope) { /*… in SNESLineSearchApply_BT()
235 …intf(monitor, " Line search: Quadratically determined step, lambda=%18.16e\n", (double)lambda)); in SNESLineSearchApply_BT()
240 if (lambda <= minlambda) { in SNESLineSearchApply_BT()
245 … (double)fnorm, (double)gnorm, (double)ynorm, (double)minlambda, (double)lambda, (double)initslope… in SNESLineSearchApply_BT()
247 ….16e\n", (double)f, (double)g, (double)ynorm, (double)minlambda, (double)lambda, (double)initslope… in SNESLineSearchApply_BT()
256 t1 = g - f - lambda * initslope; in SNESLineSearchApply_BT()
258 a = (t1 / (lambda * lambda) - t2 / (lambdaprev * lambdaprev)) / (lambda - lambdaprev); in SNESLineSearchApply_BT()
259 …b = (-lambdaprev * t1 / (lambda * lambda) + lambda * t2 / (lambdaprev * lambdaprev)) / (lambda - … in SNESLineSearchApply_BT()
265 lambdatemp = -initslope * PetscSqr(lambda) / (2.0 * (g - f - lambda * initslope)); in SNESLineSearchApply_BT()
267 lambdatemp = .5 * lambda; in SNESLineSearchApply_BT()
269 lambdaprev = lambda; in SNESLineSearchApply_BT()
272 lambda = PetscClipInterval(lambdatemp, .1 * lambda, .5 * lambda); in SNESLineSearchApply_BT()
273 PetscCall(VecWAXPY(W, -lambda, Y, X)); in SNESLineSearchApply_BT()
277 …l slope=%18.16e\n", (double)fnorm, (double)gnorm, (double)ynorm, (double)lambda, (double)initslope… in SNESLineSearchApply_BT()
296 if (g <= f + lambda * alpha * initslope) { /* is reduction enough? */ in SNESLineSearchApply_BT()
300 …nt gnorm %14.12e lambda=%18.16e\n", ordStr[linesearch->order - 1], (double)gnorm, (double)lambda)); in SNESLineSearchApply_BT()
303 …%s step, obj %14.12e lambda=%18.16e\n", ordStr[linesearch->order - 1], (double)g, (double)lambda)); in SNESLineSearchApply_BT()
311 …nt gnorm %12.12e lambda=%18.16e\n", ordStr[linesearch->order - 1], (double)gnorm, (double)lambda)); in SNESLineSearchApply_BT()
314 … lambda, obj %12.12e lambda=%18.16e\n", ordStr[linesearch->order - 1], (double)g, (double)lambda)); in SNESLineSearchApply_BT()
323 PetscCall(SNESLineSearchSetLambda(linesearch, lambda)); in SNESLineSearchApply_BT()
326 if (!changed_w) PetscCall(VecWAXPY(W, -lambda, Y, X)); in SNESLineSearchApply_BT()