Lines Matching refs:dp

10 static PetscErrorCode Tao_mcstep(TaoLineSearch ls, PetscReal *stx, PetscReal *fx, PetscReal *dx, PetscReal *sty, PetscReal *fy, PetscReal *dy, PetscReal *stp, PetscReal *fp, PetscReal *dp);
320 subroutine mcstep(stx,fx,dx,sty,fy,dy,stp,fp,dp,bracket,
336 stp, fp, and dp are variables which specify the step,
363 static PetscErrorCode Tao_mcstep(TaoLineSearch ls, PetscReal *stx, PetscReal *fx, PetscReal *dx, PetscReal *sty, PetscReal *fy, PetscReal *dy, PetscReal *stp, PetscReal *fp, PetscReal *dp)
377 sgnd = *dp * (*dx / PetscAbsReal(*dx));
387 theta = 3 * (*fx - *fp) / (*stp - *stx) + *dx + *dp;
389 s = PetscMax(s, PetscAbsReal(*dp));
390 gamma1 = s * PetscSqrtScalar(PetscPowScalar(theta / s, 2.0) - (*dx / s) * (*dp / s));
394 q = ((gamma1 - *dx) + gamma1) + *dp;
410 theta = 3 * (*fx - *fp) / (*stp - *stx) + *dx + *dp;
412 s = PetscMax(s, PetscAbsReal(*dp));
413 gamma1 = s * PetscSqrtScalar(PetscPowScalar(theta / s, 2.0) - (*dx / s) * (*dp / s));
415 p = (gamma1 - *dp) + theta;
416 q = ((gamma1 - *dp) + gamma1) + *dx;
419 stpq = *stp + (*dp / (*dp - *dx)) * (*stx - *stp);
424 } else if (PetscAbsReal(*dp) < PetscAbsReal(*dx)) {
436 theta = 3 * (*fx - *fp) / (*stp - *stx) + *dx + *dp;
438 s = PetscMax(s, PetscAbsReal(*dp));
442 gamma1 = s * PetscSqrtScalar(PetscMax(0.0, PetscPowScalar(theta / s, 2.0) - (*dx / s) * (*dp / s)));
444 p = (gamma1 - *dp) + theta;
445 q = (gamma1 + (*dx - *dp)) + gamma1;
450 stpq = *stp + (*dp / (*dp - *dx)) * (*stx - *stp);
468 theta = 3 * (*fp - *fy) / (*sty - *stp) + *dy + *dp;
470 s = PetscMax(s, PetscAbsReal(*dp));
471 gamma1 = s * PetscSqrtScalar(PetscPowScalar(theta / s, 2.0) - (*dy / s) * (*dp / s));
473 p = (gamma1 - *dp) + theta;
474 q = ((gamma1 - *dp) + gamma1) + *dy;
491 *dy = *dp;
500 *dx = *dp;