From 00abb8581add68cbbeb43b5510858dc28cb0670f Mon Sep 17 00:00:00 2001 From: amrods <11388389+amrods@users.noreply.github.com> Date: Sat, 25 May 2019 09:47:46 +1000 Subject: [PATCH 1/2] rename xtol, ftol to x_tol, f_tol --- src/nlsolve/fixedpoint.jl | 6 +++--- src/nlsolve/nlsolve.jl | 30 ++++++++++++++--------------- src/nlsolve/solver_state_results.jl | 8 ++++---- src/nlsolve/utils.jl | 10 +++++----- src/solvers/anderson.jl | 20 +++++++++---------- src/solvers/broyden.jl | 16 +++++++-------- src/solvers/mcp_func_defs.jl | 18 ++++++++--------- src/solvers/newton.jl | 16 +++++++-------- src/solvers/trust_region.jl | 18 ++++++++--------- 9 files changed, 71 insertions(+), 71 deletions(-) diff --git a/src/nlsolve/fixedpoint.jl b/src/nlsolve/fixedpoint.jl index 31f2dbf..113c80e 100644 --- a/src/nlsolve/fixedpoint.jl +++ b/src/nlsolve/fixedpoint.jl @@ -3,8 +3,8 @@ function fixedpoint(f, initial_x::AbstractArray{T}; method::Symbol = :anderson, - xtol::Real = zero(T), - ftol::Real = convert(T,1e-8), + x_tol::Real = zero(T), + f_tol::Real = convert(T,1e-8), iterations::Integer = 1_000, store_trace::Bool = false, show_trace::Bool = false, @@ -32,7 +32,7 @@ function fixedpoint(f, end return nlsolve(dg, - initial_x, method = method, xtol = xtol, ftol = ftol, + initial_x, method = method, x_tol = x_tol, f_tol = f_tol, iterations = iterations, store_trace = store_trace, show_trace = show_trace, extended_trace = extended_trace, linesearch = linesearch, factor = factor, autoscale = autoscale, diff --git a/src/nlsolve/nlsolve.jl b/src/nlsolve/nlsolve.jl index 0a9ac0b..fbdf0a7 100644 --- a/src/nlsolve/nlsolve.jl +++ b/src/nlsolve/nlsolve.jl @@ -1,8 +1,8 @@ function nlsolve(df::TDF, initial_x::AbstractArray{T}; method::Symbol = :trust_region, - xtol::Real = zero(T), - ftol::Real = convert(T,1e-8), + x_tol::Real = zero(T), + f_tol::Real = convert(T,1e-8), iterations::Integer = 1_000, store_trace::Bool = false, show_trace::Bool = false, @@ -20,17 +20,17 @@ function nlsolve(df::TDF, @printf "------ -------------- --------------\n" end if method == :newton - newton(df, initial_x, xtol, ftol, iterations, + newton(df, initial_x, x_tol, f_tol, iterations, store_trace, show_trace, extended_trace, linesearch; linsolve=linsolve) elseif method == :trust_region - trust_region(df, initial_x, xtol, ftol, iterations, + trust_region(df, initial_x, x_tol, f_tol, iterations, store_trace, show_trace, extended_trace, factor, autoscale) elseif method == :anderson - anderson(df, initial_x, xtol, ftol, iterations, + anderson(df, initial_x, x_tol, f_tol, iterations, store_trace, show_trace, extended_trace, m, beta, aa_start, droptol) elseif method == :broyden - broyden(df, initial_x, xtol, ftol, iterations, + broyden(df, initial_x, x_tol, f_tol, iterations, store_trace, show_trace, extended_trace, linesearch) else throw(ArgumentError("Unknown method $method")) @@ -40,8 +40,8 @@ end function nlsolve(f, initial_x::AbstractArray{T}; method::Symbol = :trust_region, - xtol::Real = zero(T), - ftol::Real = convert(T,1e-8), + x_tol::Real = zero(T), + f_tol::Real = convert(T,1e-8), iterations::Integer = 1_000, store_trace::Bool = false, show_trace::Bool = false, @@ -71,7 +71,7 @@ function nlsolve(f, end nlsolve(df, - initial_x, method = method, xtol = xtol, ftol = ftol, + initial_x, method = method, x_tol = x_tol, f_tol = f_tol, iterations = iterations, store_trace = store_trace, show_trace = show_trace, extended_trace = extended_trace, linesearch = linesearch, factor = factor, autoscale = autoscale, @@ -83,8 +83,8 @@ function nlsolve(f, j, initial_x::AbstractArray{T}; method::Symbol = :trust_region, - xtol::Real = zero(T), - ftol::Real = convert(T, 1e-8), + x_tol::Real = zero(T), + f_tol::Real = convert(T, 1e-8), iterations::Integer = 1_000, store_trace::Bool = false, show_trace::Bool = false, @@ -104,7 +104,7 @@ function nlsolve(f, df = OnceDifferentiable(not_in_place(f, j)..., initial_x, similar(initial_x)) end nlsolve(df, - initial_x, method = method, xtol = xtol, ftol = ftol, + initial_x, method = method, x_tol = x_tol, f_tol = f_tol, iterations = iterations, store_trace = store_trace, show_trace = show_trace, extended_trace = extended_trace, linesearch = linesearch, factor = factor, autoscale = autoscale, @@ -116,8 +116,8 @@ function nlsolve(f, fj, initial_x::AbstractArray{T}; method::Symbol = :trust_region, - xtol::Real = zero(T), - ftol::Real = convert(T, 1e-8), + x_tol::Real = zero(T), + f_tol::Real = convert(T, 1e-8), iterations::Integer = 1_000, store_trace::Bool = false, show_trace::Bool = false, @@ -137,7 +137,7 @@ function nlsolve(f, df = OnceDifferentiable(not_in_place(f, j, fj)..., initial_x, similar(initial_x)) end nlsolve(df, - initial_x, method = method, xtol = xtol, ftol = ftol, + initial_x, method = method, x_tol = x_tol, f_tol = f_tol, iterations = iterations, store_trace = store_trace, show_trace = show_trace, extended_trace = extended_trace, linesearch = linesearch, factor = factor, autoscale = autoscale, diff --git a/src/nlsolve/solver_state_results.jl b/src/nlsolve/solver_state_results.jl index 8c3c694..5199ab8 100644 --- a/src/nlsolve/solver_state_results.jl +++ b/src/nlsolve/solver_state_results.jl @@ -72,9 +72,9 @@ mutable struct SolverResults{T,I<:AbstractArray{T},Z<:AbstractArray{T}} residual_norm::T iterations::Int x_converged::Bool - xtol::T + x_tol::T f_converged::Bool - ftol::T + f_tol::T trace::SolverTrace f_calls::Int g_calls::Int @@ -92,8 +92,8 @@ function Base.show(io::IO, r::SolverResults) @printf io " * Inf-norm of residuals: %f\n" r.residual_norm @printf io " * Iterations: %d\n" r.iterations @printf io " * Convergence: %s\n" converged(r) - @printf io " * |x - x'| < %.1e: %s\n" r.xtol r.x_converged - @printf io " * |f(x)| < %.1e: %s\n" r.ftol r.f_converged + @printf io " * |x - x'| < %.1e: %s\n" r.x_tol r.x_converged + @printf io " * |f(x)| < %.1e: %s\n" r.f_tol r.f_converged @printf io " * Function Calls (f): %d\n" r.f_calls @printf io " * Jacobian Calls (df/dx): %d" r.g_calls return diff --git a/src/nlsolve/utils.jl b/src/nlsolve/utils.jl index c160b7c..7840cf1 100644 --- a/src/nlsolve/utils.jl +++ b/src/nlsolve/utils.jl @@ -8,19 +8,19 @@ function wdot(wx::AbstractArray{T}, x::AbstractArray{T}, end wnorm(w, x) = sqrt(wdot(w, x, w, x)) -assess_convergence(f, ftol) = assess_convergence(NaN, NaN, f, NaN, ftol) +assess_convergence(f, f_tol) = assess_convergence(NaN, NaN, f, NaN, f_tol) function assess_convergence(x, x_previous, f, - xtol, - ftol) + x_tol, + f_tol) x_converged, f_converged = false, false - if !any(isnan, x_previous) && chebyshev(x, x_previous) <= xtol + if !any(isnan, x_previous) && chebyshev(x, x_previous) <= x_tol x_converged = true end - if maximum(abs, f) <= ftol + if maximum(abs, f) <= f_tol f_converged = true end diff --git a/src/solvers/anderson.jl b/src/solvers/anderson.jl index 0d47b6a..01ef76c 100644 --- a/src/solvers/anderson.jl +++ b/src/solvers/anderson.jl @@ -42,8 +42,8 @@ AndersonCache(df, ::Anderson{0}) = @views function anderson_(df::Union{NonDifferentiable, OnceDifferentiable}, initial_x::AbstractArray{T}, - xtol::T, - ftol::T, + x_tol::T, + f_tol::T, iterations::Integer, store_trace::Bool, show_trace::Bool, @@ -87,7 +87,7 @@ AndersonCache(df, ::Anderson{0}) = end # check convergence - x_converged, f_converged, converged = assess_convergence(cache.g, cache.x, fx, xtol, ftol) + x_converged, f_converged, converged = assess_convergence(cache.g, cache.x, fx, x_tol, f_tol) converged && break # define next iterate @@ -156,14 +156,14 @@ AndersonCache(df, ::Anderson{0}) = return SolverResults("Anderson m=$m beta=$beta aa_start=$aa_start droptol=$droptol", initial_x, copy(cache.x), norm(value(df), Inf), - iter, x_converged, xtol, f_converged, ftol, tr, + iter, x_converged, x_tol, f_converged, f_tol, tr, first(df.f_calls), 0) end function anderson(df::Union{NonDifferentiable, OnceDifferentiable}, initial_x::AbstractArray, - xtol::Real, - ftol::Real, + x_tol::Real, + f_tol::Real, iterations::Integer, store_trace::Bool, show_trace::Bool, @@ -172,13 +172,13 @@ function anderson(df::Union{NonDifferentiable, OnceDifferentiable}, beta::Real, aa_start::Integer, droptol::Real) - anderson(df, initial_x, xtol, ftol, iterations, store_trace, show_trace, extended_trace, beta, aa_start, droptol, AndersonCache(df, Anderson{m}())) + anderson(df, initial_x, x_tol, f_tol, iterations, store_trace, show_trace, extended_trace, beta, aa_start, droptol, AndersonCache(df, Anderson{m}())) end function anderson(df::Union{NonDifferentiable, OnceDifferentiable}, initial_x::AbstractArray{T}, - xtol::Real, - ftol::Real, + x_tol::Real, + f_tol::Real, iterations::Integer, store_trace::Bool, show_trace::Bool, @@ -187,5 +187,5 @@ function anderson(df::Union{NonDifferentiable, OnceDifferentiable}, aa_start::Integer, droptol::Real, cache::AndersonCache) where T - anderson_(df, initial_x, convert(T, xtol), convert(T, ftol), iterations, store_trace, show_trace, extended_trace, beta, aa_start, droptol, cache) + anderson_(df, initial_x, convert(T, x_tol), convert(T, f_tol), iterations, store_trace, show_trace, extended_trace, beta, aa_start, droptol, cache) end diff --git a/src/solvers/broyden.jl b/src/solvers/broyden.jl index 97173eb..d3df0c4 100644 --- a/src/solvers/broyden.jl +++ b/src/solvers/broyden.jl @@ -23,8 +23,8 @@ end function broyden_(df::Union{NonDifferentiable, OnceDifferentiable}, initial_x::AbstractArray{T}, - xtol::T, - ftol::T, + x_tol::T, + f_tol::T, iterations::Integer, store_trace::Bool, show_trace::Bool, @@ -46,7 +46,7 @@ function broyden_(df::Union{NonDifferentiable, OnceDifferentiable}, Jinv = Matrix{T}(I, n, n) check_isfinite(value(df)) it = 0 - x_converged, f_converged, converged = assess_convergence(value(df), ftol) + x_converged, f_converged, converged = assess_convergence(value(df), f_tol) # FIXME: How should this flag be set? mayterminate = false @@ -99,7 +99,7 @@ function broyden_(df::Union{NonDifferentiable, OnceDifferentiable}, end if !maybe_stuck - x_converged, f_converged, converged = assess_convergence(x, xold, value(df), xtol, ftol) + x_converged, f_converged, converged = assess_convergence(x, xold, value(df), x_tol, f_tol) end maybe_stuck = false @@ -107,20 +107,20 @@ function broyden_(df::Union{NonDifferentiable, OnceDifferentiable}, end return SolverResults("broyden without line-search", initial_x, copyto!(similar(initial_x), x), norm(value(df), Inf), - it, x_converged, xtol, f_converged, ftol, tr, + it, x_converged, x_tol, f_converged, f_tol, tr, first(df.f_calls), 0) end function broyden(df::Union{NonDifferentiable, OnceDifferentiable}, initial_x::AbstractArray{T}, - xtol::Real, - ftol::Real, + x_tol::Real, + f_tol::Real, iterations::Integer, store_trace::Bool, show_trace::Bool, extended_trace::Bool, linesearch) where T - broyden_(df, initial_x, convert(T, xtol), convert(T, ftol), iterations, store_trace, show_trace, extended_trace, linesearch) + broyden_(df, initial_x, convert(T, x_tol), convert(T, f_tol), iterations, store_trace, show_trace, extended_trace, linesearch) end # A derivative-free line search and global convergence diff --git a/src/solvers/mcp_func_defs.jl b/src/solvers/mcp_func_defs.jl index 0b1f79d..6f7dd13 100644 --- a/src/solvers/mcp_func_defs.jl +++ b/src/solvers/mcp_func_defs.jl @@ -18,8 +18,8 @@ function mcpsolve(df::OnceDifferentiable, initial_x::AbstractArray{T}; method::Symbol = :trust_region, reformulation::Symbol = :smooth, - xtol::Real = zero(T), - ftol::Real = convert(T,1e-8), + x_tol::Real = zero(T), + f_tol::Real = convert(T,1e-8), iterations::Integer = 1_000, store_trace::Bool = false, show_trace::Bool = false, @@ -30,7 +30,7 @@ function mcpsolve(df::OnceDifferentiable, @reformulate df nlsolve(rf, - initial_x, method = method, xtol = xtol, ftol = ftol, + initial_x, method = method, x_tol = x_tol, f_tol = f_tol, iterations = iterations, store_trace = store_trace, show_trace = show_trace, extended_trace = extended_trace, linesearch = linesearch, factor = factor, autoscale = autoscale) @@ -43,8 +43,8 @@ function mcpsolve(f, initial_x::AbstractArray{T}; method::Symbol = :trust_region, reformulation::Symbol = :smooth, - xtol::Real = zero(T), - ftol::Real = convert(T,1e-8), + x_tol::Real = zero(T), + f_tol::Real = convert(T,1e-8), iterations::Integer = 1_000, store_trace::Bool = false, show_trace::Bool = false, @@ -60,7 +60,7 @@ function mcpsolve(f, end @reformulate df nlsolve(rf, - initial_x, method = method, xtol = xtol, ftol = ftol, + initial_x, method = method, x_tol = x_tol, f_tol = f_tol, iterations = iterations, store_trace = store_trace, show_trace = show_trace, extended_trace = extended_trace, linesearch = linesearch, factor = factor, autoscale = autoscale) @@ -72,8 +72,8 @@ function mcpsolve(f, initial_x::AbstractArray{T}; method::Symbol = :trust_region, reformulation::Symbol = :smooth, - xtol::Real = zero(T), - ftol::Real = convert(T,1e-8), + x_tol::Real = zero(T), + f_tol::Real = convert(T,1e-8), iterations::Integer = 1_000, store_trace::Bool = false, show_trace::Bool = false, @@ -91,7 +91,7 @@ function mcpsolve(f, @reformulate df nlsolve(rf, - initial_x, method = method, xtol = xtol, ftol = ftol, + initial_x, method = method, x_tol = x_tol, f_tol = f_tol, iterations = iterations, store_trace = store_trace, show_trace = show_trace, extended_trace = extended_trace, linesearch = linesearch, factor = factor, autoscale = autoscale) diff --git a/src/solvers/newton.jl b/src/solvers/newton.jl index c180fa0..b1725ea 100644 --- a/src/solvers/newton.jl +++ b/src/solvers/newton.jl @@ -41,8 +41,8 @@ end function newton_(df::OnceDifferentiable, initial_x::AbstractArray{T}, - xtol::T, - ftol::T, + x_tol::T, + f_tol::T, iterations::Integer, store_trace::Bool, show_trace::Bool, @@ -56,7 +56,7 @@ function newton_(df::OnceDifferentiable, check_isfinite(value(df)) vecvalue = vec(value(df)) it = 0 - x_converged, f_converged, converged = assess_convergence(value(df), ftol) + x_converged, f_converged, converged = assess_convergence(value(df), f_tol) x_ls = copy(cache.x) tr = SolverTrace() tracing = store_trace || show_trace || extended_trace @@ -117,20 +117,20 @@ function newton_(df::OnceDifferentiable, alpha, ϕalpha = linesearch(dfo, cache.x, cache.p, one(T), x_ls, value(dfo), dot(cache.g, cache.p)) # fvec is here also updated in the linesearch so no need to call f again. copyto!(cache.x, x_ls) - x_converged, f_converged, converged = assess_convergence(cache.x, cache.xold, value(df), xtol, ftol) + x_converged, f_converged, converged = assess_convergence(cache.x, cache.xold, value(df), x_tol, f_tol) newtontrace(sqeuclidean(cache.x, cache.xold), tracing, extended_trace, cache, df, it, tr, store_trace, show_trace) end return SolverResults("Newton with line-search", initial_x, copy(cache.x), norm(value(df), Inf), - it, x_converged, xtol, f_converged, ftol, tr, + it, x_converged, x_tol, f_converged, f_tol, tr, first(df.f_calls), first(df.df_calls)) end function newton(df::OnceDifferentiable, initial_x::AbstractArray{T}, - xtol::Real, - ftol::Real, + x_tol::Real, + f_tol::Real, iterations::Integer, store_trace::Bool, show_trace::Bool, @@ -138,5 +138,5 @@ function newton(df::OnceDifferentiable, linesearch, cache = NewtonCache(df); linsolve=(x, A, b) -> copyto!(x, A\b)) where T - newton_(df, initial_x, convert(T, xtol), convert(T, ftol), iterations, store_trace, show_trace, extended_trace, linesearch, linsolve, cache) + newton_(df, initial_x, convert(T, x_tol), convert(T, f_tol), iterations, store_trace, show_trace, extended_trace, linesearch, linsolve, cache) end diff --git a/src/solvers/trust_region.jl b/src/solvers/trust_region.jl index 74e01cc..6150c4a 100644 --- a/src/solvers/trust_region.jl +++ b/src/solvers/trust_region.jl @@ -106,8 +106,8 @@ end function trust_region_(df::OnceDifferentiable, initial_x::AbstractArray{T}, - xtol::T, - ftol::T, + x_tol::T, + f_tol::T, iterations::Integer, store_trace::Bool, show_trace::Bool, @@ -121,7 +121,7 @@ function trust_region_(df::OnceDifferentiable, check_isfinite(cache.r) it = 0 - x_converged, f_converged, converged = assess_convergence(value(df), ftol) + x_converged, f_converged, converged = assess_convergence(value(df), f_tol) delta = convert(T, NaN) rho = convert(T, NaN) if converged @@ -134,7 +134,7 @@ function trust_region_(df::OnceDifferentiable, return SolverResults(name, #initial_x, reshape(cache.x, size(initial_x)...), norm(cache.r, Inf), initial_x, copy(cache.x), norm(cache.r, Inf), - it, x_converged, xtol, f_converged, ftol, tr, + it, x_converged, x_tol, f_converged, f_tol, tr, first(df.f_calls), first(df.df_calls)) end @@ -187,7 +187,7 @@ function trust_region_(df::OnceDifferentiable, end end - x_converged, f_converged, converged = assess_convergence(cache.x, cache.xold, cache.r, xtol, ftol) + x_converged, f_converged, converged = assess_convergence(cache.x, cache.xold, cache.r, x_tol, f_tol) else cache.x .-= cache.p x_converged, converged = false, false @@ -211,14 +211,14 @@ function trust_region_(df::OnceDifferentiable, end return SolverResults(name, initial_x, copy(cache.x), norm(cache.r, Inf), - it, x_converged, xtol, f_converged, ftol, tr, + it, x_converged, x_tol, f_converged, f_tol, tr, first(df.f_calls), first(df.df_calls)) end function trust_region(df::OnceDifferentiable, initial_x::AbstractArray{T}, - xtol::Real, - ftol::Real, + x_tol::Real, + f_tol::Real, iterations::Integer, store_trace::Bool, show_trace::Bool, @@ -226,5 +226,5 @@ function trust_region(df::OnceDifferentiable, factor::Real, autoscale::Bool, cache = NewtonTrustRegionCache(df)) where T - trust_region_(df, initial_x, convert(T,xtol), convert(T,ftol), iterations, store_trace, show_trace, extended_trace, convert(T,factor), autoscale, cache) + trust_region_(df, initial_x, convert(T,x_tol), convert(T,f_tol), iterations, store_trace, show_trace, extended_trace, convert(T,factor), autoscale, cache) end From b0ffd0b687b1da32c368ed77d78223c1a530e942 Mon Sep 17 00:00:00 2001 From: amrods <11388389+amrods@users.noreply.github.com> Date: Sat, 25 May 2019 15:18:34 +1000 Subject: [PATCH 2/2] rename xtol, ftol to x_tol, f_tol in test --- test/2by2.jl | 16 ++++++++-------- test/fixedpoint/fixedpoint.jl | 14 +++++++------- test/singular.jl | 2 +- test/sparse.jl | 2 +- 4 files changed, 17 insertions(+), 17 deletions(-) diff --git a/test/2by2.jl b/test/2by2.jl index f939676..124c748 100644 --- a/test/2by2.jl +++ b/test/2by2.jl @@ -37,32 +37,32 @@ r = nlsolve(df32, [ -0.5f0; 1.4f0], method = :trust_region, autoscale = false) @test norm(r.zero - [ 0; 1]) < 1e-7 # Test Newton -r = nlsolve(df, [ -0.5; 1.4], method = :newton, linesearch = LineSearches.BackTracking(), ftol = 1e-6) +r = nlsolve(df, [ -0.5; 1.4], method = :newton, linesearch = LineSearches.BackTracking(), f_tol = 1e-6) @test converged(r) @test norm(r.zero - [ 0; 1]) < 1e-6 -r = nlsolve(df32, [ -0.5f0; 1.4f0], method = :newton, linesearch = LineSearches.BackTracking(), ftol = 1e-3) +r = nlsolve(df32, [ -0.5f0; 1.4f0], method = :newton, linesearch = LineSearches.BackTracking(), f_tol = 1e-3) @test eltype(r.zero) == Float32 @test converged(r) @test norm(r.zero - [ 0; 1]) < 1e-6 -r = nlsolve(df, [ -0.5; 1.4], method = :newton, linesearch = LineSearches.HagerZhang(), ftol = 1e-6) +r = nlsolve(df, [ -0.5; 1.4], method = :newton, linesearch = LineSearches.HagerZhang(), f_tol = 1e-6) @test converged(r) @test norm(r.zero - [ 0; 1]) < 1e-6 -r = nlsolve(df, [ -0.5; 1.4], method = :newton, linesearch = LineSearches.StrongWolfe(), ftol = 1e-6) +r = nlsolve(df, [ -0.5; 1.4], method = :newton, linesearch = LineSearches.StrongWolfe(), f_tol = 1e-6) @test converged(r) @test norm(r.zero - [ 0; 1]) < 1e-6 # Test Broyden -#r = nlsolve(df, [ -0.5; 1.4], method = :broyden, linesearch = LineSearches.BackTracking(), ftol = 1e-6) +#r = nlsolve(df, [ -0.5; 1.4], method = :broyden, linesearch = LineSearches.BackTracking(), f_tol = 1e-6) #@test converged(r) #@test norm(r.zero - [ 0; 1]) < 1e-6 -#r = nlsolve(df32, [ -0.5f0; 1.4f0], method = :broyden, linesearch = LineSearches.BackTracking(), ftol = 1e-3) +#r = nlsolve(df32, [ -0.5f0; 1.4f0], method = :broyden, linesearch = LineSearches.BackTracking(), f_tol = 1e-3) #@test eltype(r.zero) == Float32 #@test converged(r) #@test norm(r.zero - [ 0; 1]) < 1e-6 -#r = nlsolve(df, [ -0.5; 1.4], method = :broyden, linesearch = LineSearches.HagerZhang(), ftol = 1e-6) +#r = nlsolve(df, [ -0.5; 1.4], method = :broyden, linesearch = LineSearches.HagerZhang(), f_tol = 1e-6) #@test converged(r) #@test norm(r.zero - [ 0; 1]) < 1e-6 -#r = nlsolve(df, [ -0.5; 1.4], method = :broyden, linesearch = LineSearches.StrongWolfe(), ftol = 1e-6) +#r = nlsolve(df, [ -0.5; 1.4], method = :broyden, linesearch = LineSearches.StrongWolfe(), f_tol = 1e-6) #@test converged(r) #@test norm(r.zero - [ 0; 1]) < 1e-6 diff --git a/test/fixedpoint/fixedpoint.jl b/test/fixedpoint/fixedpoint.jl index 396d70b..63409e3 100644 --- a/test/fixedpoint/fixedpoint.jl +++ b/test/fixedpoint/fixedpoint.jl @@ -57,7 +57,7 @@ end # Tests against the above example. @test fixedpoint(f_1!, [3.4, 4.3]).zero == fixedpoint(f_1, [3.4, 4.3]; inplace = false).zero ≈ [5.0, 4.571428571428571] @test fixedpoint(f_1!, [3.4, 4.3]; m = 2).zero == fixedpoint(f_1, [3.4, 4.3]; inplace = false, m = 2).zero ≈ [5.0, 4.571428571428571] - @test fixedpoint(f_1!, [3.4, 4.3]; droptol = 5).zero == fixedpoint(f_1, [3.4, 4.3]; inplace = false, droptol = 5).zero ≈ [5.0, 4.571428571428571] + @test fixedpoint(f_1!, [3.4, 4.3]; droptol = 5).zero == fixedpoint(f_1, [3.4, 4.3]; inplace = false, droptol = 5).zero ≈ [5.0, 4.571428571428571] # Tests for some common functions. # x -> sin.(x) @@ -65,8 +65,8 @@ end f_2! = make_inplace(f_2) srand = 123 # For determinism in the random tests. init_x2 = rand(Float64, 4) - @test fixedpoint(f_2!, init_x2; iterations = 10000, ftol = 1e-15).zero == fixedpoint(f_2, init_x2; inplace = false, iterations = 10000, ftol = 1e-15).zero - @test isapprox(fixedpoint(f_2!, init_x2; iterations = 10000, ftol = 1e-15).zero, zeros(Float64, 4), atol = 1e-10) + @test fixedpoint(f_2!, init_x2; iterations = 10000, f_tol = 1e-15).zero == fixedpoint(f_2, init_x2; inplace = false, iterations = 10000, f_tol = 1e-15).zero + @test isapprox(fixedpoint(f_2!, init_x2; iterations = 10000, f_tol = 1e-15).zero, zeros(Float64, 4), atol = 1e-10) # x -> exp(-x) f_3 = x -> exp.(-x) f_3! = make_inplace(f_3) @@ -92,12 +92,12 @@ end =# # default behavior foo = x -> 0.5 * x - @test norm(fixedpoint(foo, init_x2, xtol = 1e-10, ftol = 0.0).zero) ≈ 0.0 atol = 1e-10 + @test norm(fixedpoint(foo, init_x2, x_tol = 1e-10, f_tol = 0.0).zero) ≈ 0.0 atol = 1e-10 bar = make_inplace(foo) - @test norm(fixedpoint(bar, init_x2, xtol = 1e-10, ftol = 0.0).zero) ≈ 0.0 atol = 1e-10 + @test norm(fixedpoint(bar, init_x2, x_tol = 1e-10, f_tol = 0.0).zero) ≈ 0.0 atol = 1e-10 # error handling - @test_throws MethodError fixedpoint(foo, init_x2, xtol = 1e-10, ftol = 0.0, inplace = true).zero - @test_throws MethodError fixedpoint(bar, init_x2, xtol = 1e-10, ftol = 0.0, inplace = false).zero + @test_throws MethodError fixedpoint(foo, init_x2, x_tol = 1e-10, f_tol = 0.0, inplace = true).zero + @test_throws MethodError fixedpoint(bar, init_x2, x_tol = 1e-10, f_tol = 0.0, inplace = false).zero # concurrency tests baz(x) = 0.5*x function baz(out, x) diff --git a/test/singular.jl b/test/singular.jl index 128757b..9b443cd 100644 --- a/test/singular.jl +++ b/test/singular.jl @@ -20,7 +20,7 @@ df = OnceDifferentiable(f_sinj!, g_sinj!, [3.0, 0.0], [3.0, 0.0]) df32 = OnceDifferentiable(f_sinj!, g_sinj!, [3.0f0, 0.0f0], [3.0f0, 0.0f0]) # Test disabled, not stable across runs -r = nlsolve(df, [ 3.0; 0], method = :newton, ftol = 1e-5) +r = nlsolve(df, [ 3.0; 0], method = :newton, f_tol = 1e-5) #@assert converged(r) #@assert norm(r.zero) < 1e-5 diff --git a/test/sparse.jl b/test/sparse.jl index 9f503ed..087f417 100644 --- a/test/sparse.jl +++ b/test/sparse.jl @@ -24,7 +24,7 @@ r = nlsolve(df, [ -0.5; 1.4], method = :trust_region, autoscale = true) @test norm(r.zero - [ 0; 1]) < 1e-8 # Test Newton -r = nlsolve(df, [ -0.5; 1.4], method = :newton, linesearch = LineSearches.BackTracking(), ftol = 1e-6) +r = nlsolve(df, [ -0.5; 1.4], method = :newton, linesearch = LineSearches.BackTracking(), f_tol = 1e-6) @test converged(r) @test norm(r.zero - [ 0; 1]) < 1e-6