Lines Matching refs:dpi
122 PetscScalar dpi = 0.0, a = 1.0, beta, betaold = 1.0, b = 0, *e = NULL, *d = NULL, dpiold;
256 dpiold = dpi;
258 PetscCall(VecXDot(P, W, &dpi)); /* dpi <- p'w */
259 KSPCheckDot(ksp, dpi);
262 if ((dpi == 0.0) || ((i > 0) && ((PetscSign(PetscRealPart(dpi)) * PetscSign(PetscRealPart(dpiold))) < 0.0))) {
276 cg->obj += PetscRealPart(a * (0.5 * a * dpi - betaold));
280 PetscCall(PetscInfo(ksp, "converged due to negative curvature: %g\n", (double)(PetscRealPart(dpi))));
283 PetscCheck(!ksp->errorifnotconverged, PetscObjectComm((PetscObject)ksp), PETSC_ERR_NOT_CONVERGED, "Diverged due to indefinite matrix, dpi %g, dpiold %g", (double)PetscRealPart(dpi), (double)PetscRealPart(dpiold));
289 a = beta / dpi; /* a = beta/p'w */
299 cg->obj += PetscRealPart(dp * (0.5 * dp * dpi - beta));
367 PetscScalar dpi = 0.0, a = 1.0, beta, betaold = 1.0, b = 0, *e = NULL, *d = NULL, delta, dpiold, tmp[2];
469 dpiold = dpi;
472 PetscCall(VecXDot(P, W, &dpi)); /* dpi <- p'w */
475 dpi = delta - beta * beta * dpiold / (betaold * betaold); /* dpi <- p'w */
480 if ((dpi == 0.0) || ((i > 0) && (PetscRealPart(dpi * dpiold) <= 0.0))) {
486 a = beta / dpi; /* a = beta/p'w */