Lines Matching refs:par

100 c     multiplier par such that either par is zero and
104 c or par is positive and
116 c par,f,x,info,z,wa1,wa2)
163 c par is a double precision variable.
164 c On entry par is an initial estimate of the Lagrange
166 c On exit par contains the final estimate of the multiplier.
220 PetscReal alpha, anorm, bnorm, parc, parf, parl, pars, par = *retpar, paru, prod, rxnorm, rznorm = 0.0, temp, xnorm;
266 /* If the input par lies outside of the interval (parl, paru),
267 set par to the closer endpoint. */
269 par = PetscMax(par, parl);
270 par = PetscMin(par, paru);
279 /* Safeguard par */
280 if (par <= pars && paru > 0) par = PetscMax(p001, PetscSqrtScalar(parl / paru)) * paru;
282 /* Copy the lower triangle of A into its upper triangle and compute A + par*I */
288 for (j = 0; j < n; j++) a[j + j * lda] = wa1[j] + par;
293 /* Case 1: A + par*I is pos. def. */
295 /* Compute an approximate solution x and save the last value of par with A + par*I pos. def. */
297 parf = par;
311 if (PetscAbs(xnorm - delta) <= rtol * delta || (par == 0 && xnorm <= (1.0 + rtol) * delta)) info = 1;
316 pars = PetscMax(pars, par - rznorm * rznorm);
331 if ((rznorm * rznorm + par * xnorm * xnorm) / (delta2) <= par) rednc = 1;
333 if (p5 * rznorm * rznorm / delta2 <= rtol * (1.0 - p5 * rtol) * (par + rxnorm * rxnorm / delta2)) {
335 } else if (info == 0 && (p5 * (par + rxnorm * rxnorm / delta2) <= atol / delta2)) {
340 /* Compute the Newton correction parc to par. */
342 parc = -par;
355 parl = PetscMax(parl, par);
357 paru = PetscMin(paru, par);
360 /* Case 2: A + par*I is not pos. def. */
362 /* Use the rank information from the Cholesky decomposition to update par. */
365 /* Restore column indef to A + par*I. */
368 a[indef - 1 + (indef - 1) * lda] = wa1[indef - 1] + par;
386 pars = PetscMax(pars, par + parc);
390 paru is the optimal value of par. */
410 par = parf;
411 f = -p5 * (rxnorm * rxnorm + par * xnorm * xnorm);
413 f = -p5 * (rxnorm * rxnorm + par * delta * delta - rznorm * rznorm);
425 par = PetscMax(parl, par + parc);
427 *retpar = par;