@@ -44,7 +44,8 @@ function aredpred_common(
4444 x_trial:: V ,
4545 step:: V ,
4646 g_trial:: V ,
47- slope:: T ,
47+ slope:: T ;
48+ use_only_objgrad:: Bool = false ,
4849) where {T, V}
4950 absf = abs (f)
5051 ϵ = eps (T)
@@ -54,7 +55,11 @@ function aredpred_common(
5455 ared = f_trial - f + max (one (T), absf) * 10 * ϵ
5556 if (abs (Δm) < 10_000 * ϵ) || (abs (ared) < 10_000 * ϵ * absf)
5657 # correct for roundoff error
57- grad! (nlp, x_trial, g_trial)
58+ if use_only_objgrad
59+ objgrad! (nlp, x_trial, g_trial)
60+ else
61+ grad! (nlp, x_trial, g_trial)
62+ end
5863 good_grad = true
5964 slope_trial = dot (g_trial, step)
6065 ared = (slope_trial + slope) / 2
@@ -71,7 +76,8 @@ function aredpred_common(
7176 x_trial:: V ,
7277 step:: V ,
7378 g_trial:: V ,
74- slope:: T ,
79+ slope:: T ;
80+ kwargs... ,
7581) where {T, V}
7682 absf = abs (f)
7783 ϵ = eps (T)
@@ -110,9 +116,10 @@ function aredpred!(
110116 Δm:: T ,
111117 x_trial:: V ,
112118 step:: V ,
113- slope:: T ,
119+ slope:: T ;
120+ kwargs...
114121) where {T, V}
115- ared, pred, tr. good_grad = aredpred_common (nlp, f, f_trial, Δm, x_trial, step, tr. gt, slope)
122+ ared, pred, tr. good_grad = aredpred_common (nlp, f, f_trial, Δm, x_trial, step, tr. gt, slope; kwargs ... )
116123 return ared, pred
117124end
118125
@@ -124,10 +131,11 @@ function aredpred!(
124131 Δm:: T ,
125132 x_trial:: V ,
126133 step:: V ,
127- slope:: T ,
134+ slope:: T ;
135+ kwargs...
128136) where {T, V}
129137 Fx = similar (x_trial, nls. nls_meta. nequ)
130- ared, pred, tr. good_grad = aredpred_common (nls, Fx, f, f_trial, Δm, x_trial, step, tr. gt, slope)
138+ ared, pred, tr. good_grad = aredpred_common (nls, Fx, f, f_trial, Δm, x_trial, step, tr. gt, slope; kwargs ... )
131139 return ared, pred
132140end
133141
@@ -140,9 +148,10 @@ function aredpred!(
140148 Δm:: T ,
141149 x_trial:: V ,
142150 step:: V ,
143- slope:: T ,
151+ slope:: T ;
152+ kwargs...
144153) where {T, V}
145- ared, pred, tr. good_grad = aredpred_common (nls, Fx, f, f_trial, Δm, x_trial, step, tr. gt, slope)
154+ ared, pred, tr. good_grad = aredpred_common (nls, Fx, f, f_trial, Δm, x_trial, step, tr. gt, slope; kwargs ... )
146155 return ared, pred
147156end
148157
0 commit comments