Skip to content

Commit 4216ef8

Browse files
committed
use provided gradient for dphi_0 in HZ
1 parent 8d9540a commit 4216ef8

2 files changed

Lines changed: 8 additions & 1 deletion

File tree

src/plans/stepsize/stepsize.jl

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2594,7 +2594,12 @@ function (hzls::HagerZhangLinesearchStepsize)(
25942594
M = get_manifold(mp)
25952595
p = get_iterate(s)
25962596

2597-
dphi_0 = get_differential(mp, p, η; Y = hzls.temporary_tangent)
2597+
local dphi_0 # COV_EXCL_LINE
2598+
if :gradient in keys(kwargs)
2599+
dphi_0 = real(inner(M, p, η, kwargs[:gradient]))
2600+
else
2601+
dphi_0 = get_differential(mp, p, η; Y = hzls.temporary_tangent)
2602+
end
25982603
hzls.triples[1] = UnivariateTriple(0.0, fp, dphi_0)
25992604
hzls.last_evaluation_index = 1
26002605

test/plans/test_stepsize.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -293,6 +293,8 @@ end
293293
α = hzls(dmp, gs, 1, η)
294294
@test isfinite(α)
295295
@test α > 0
296+
α2 = hzls(dmp, gs, 1, η; gradient = grad_f_sum_sq(M, p))
297+
@test α2 α
296298
@test hzls.last_stepsize == α
297299
@test hzls.last_cost <= f_sum_sq(M, p) + 1.0e-12
298300

0 commit comments

Comments
 (0)