diff --git a/src/initialguess.jl b/src/initialguess.jl index 1c842a6..34d6a6a 100644 --- a/src/initialguess.jl +++ b/src/initialguess.jl @@ -225,15 +225,16 @@ function _hzI12(alpha::T, iterfinite = 1 while !isfinite(phitest) - alphatest = psi3 * alphatest + if iterfinite >= iterfinitemax + mayterminate[] = true + return T(0) + # TODO: Throw error / LineSearchException instead? + # error("Failed to achieve finite test value; alphatest = ", alphatest) + end + alphatest = psi3 * alphatest phitest = ϕ(alphatest) - iterfinite += 1 - if iterfinite >= iterfinitemax - return T(0), true - # error("Failed to achieve finite test value; alphatest = ", alphatest) - end end a = ((phitest-phi_0)/alphatest - dphi_0)/alphatest # quadratic fit diff --git a/test/initial.jl b/test/initial.jl index c69bb2e..a96246e 100644 --- a/test/initial.jl +++ b/test/initial.jl @@ -29,6 +29,11 @@ is(ls, state, phi_0, dphi_0, df) @test state.alpha == 0.4999999999999999 @test ls.mayterminate[] == true + dfinf = NLSolversBase.NonDifferentiable(x->Inf, x) + is = InitialHagerZhang(α0 = 1.0) + is(ls, state, phi_0, dphi_0, dfinf) + @test state.alpha == 0 + @test ls.mayterminate[] == true # Test Static unscaled ls = HagerZhang()