Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use the infix operator to compute the timer #923

Merged
merged 1 commit into from
Oct 31, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions src/bicgstab.jl
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,7 @@ kwargs_bicgstab = (:c, :M, :N, :ldiv, :atol, :rtol, :itmax, :timemax, :verbose,
if rNorm == 0
stats.niter = 0
stats.solved, stats.inconsistent = true, false
stats.timer = ktimer(start_time)
stats.timer = start_time |> ktimer
stats.status = "x = 0 is a zero-residual solution"
solver.warm_start = false
return solver
Expand All @@ -181,13 +181,13 @@ kwargs_bicgstab = (:c, :M, :N, :ldiv, :atol, :rtol, :itmax, :timemax, :verbose,

ε = atol + rtol * rNorm
(verbose > 0) && @printf(iostream, "%5s %7s %8s %8s %5s\n", "k", "‖rₖ‖", "|αₖ|", "|ωₖ|", "timer")
kdisplay(iter, verbose) && @printf(iostream, "%5d %7.1e %8.1e %8.1e %.2fs\n", iter, rNorm, abs(α), abs(ω), ktimer(start_time))
kdisplay(iter, verbose) && @printf(iostream, "%5d %7.1e %8.1e %8.1e %.2fs\n", iter, rNorm, abs(α), abs(ω), start_time |> ktimer)

next_ρ = kdot(n, c, r) # ρ₁ = ⟨r̅₀,r₀⟩
if next_ρ == 0
stats.niter = 0
stats.solved, stats.inconsistent = false, false
stats.timer = ktimer(start_time)
stats.timer = start_time |> ktimer
stats.status = "Breakdown bᴴc = 0"
solver.warm_start = false
return solver
Expand Down Expand Up @@ -241,7 +241,7 @@ kwargs_bicgstab = (:c, :M, :N, :ldiv, :atol, :rtol, :itmax, :timemax, :verbose,
breakdown = (α == 0 || isnan(α))
timer = time_ns() - start_time
overtimed = timer > timemax_ns
kdisplay(iter, verbose) && @printf(iostream, "%5d %7.1e %8.1e %8.1e %.2fs\n", iter, rNorm, abs(α), abs(ω), ktimer(start_time))
kdisplay(iter, verbose) && @printf(iostream, "%5d %7.1e %8.1e %8.1e %.2fs\n", iter, rNorm, abs(α), abs(ω), start_time |> ktimer)
end
(verbose > 0) && @printf(iostream, "\n")

Expand All @@ -260,7 +260,7 @@ kwargs_bicgstab = (:c, :M, :N, :ldiv, :atol, :rtol, :itmax, :timemax, :verbose,
stats.niter = iter
stats.solved = solved
stats.inconsistent = false
stats.timer = ktimer(start_time)
stats.timer = start_time |> ktimer
stats.status = status
return solver
end
Expand Down
10 changes: 5 additions & 5 deletions src/bilq.jl
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,7 @@ kwargs_bilq = (:c, :transfer_to_bicg, :M, :N, :ldiv, :atol, :rtol, :itmax, :time
stats.niter = 0
stats.solved = true
stats.inconsistent = false
stats.timer = ktimer(start_time)
stats.timer = start_time |> ktimer
stats.status = "x = 0 is a zero-residual solution"
solver.warm_start = false
return solver
Expand All @@ -179,15 +179,15 @@ kwargs_bilq = (:c, :transfer_to_bicg, :M, :N, :ldiv, :atol, :rtol, :itmax, :time
stats.niter = 0
stats.solved = false
stats.inconsistent = false
stats.timer = ktimer(start_time)
stats.timer = start_time |> ktimer
stats.status = "Breakdown bᴴc = 0"
solver.warm_start = false
return solver
end

ε = atol + rtol * bNorm
(verbose > 0) && @printf(iostream, "%5s %8s %7s %5s\n", "k", "αₖ", "‖rₖ‖", "timer")
kdisplay(iter, verbose) && @printf(iostream, "%5d %8.1e %7.1e %.2fs\n", iter, cᴴb, bNorm, ktimer(start_time))
kdisplay(iter, verbose) && @printf(iostream, "%5d %8.1e %7.1e %.2fs\n", iter, cᴴb, bNorm, start_time |> ktimer)

βₖ = √(abs(cᴴb)) # β₁γ₁ = cᴴ(b - Ax₀)
γₖ = cᴴb / βₖ # β₁γ₁ = cᴴ(b - Ax₀)
Expand Down Expand Up @@ -363,7 +363,7 @@ kwargs_bilq = (:c, :transfer_to_bicg, :M, :N, :ldiv, :atol, :rtol, :itmax, :time
breakdown = !solved_lq && !solved_cg && (pᴴq == 0)
timer = time_ns() - start_time
overtimed = timer > timemax_ns
kdisplay(iter, verbose) && @printf(iostream, "%5d %8.1e %7.1e %.2fs\n", iter, αₖ, rNorm_lq, ktimer(start_time))
kdisplay(iter, verbose) && @printf(iostream, "%5d %8.1e %7.1e %.2fs\n", iter, αₖ, rNorm_lq, start_time |> ktimer)
end
(verbose > 0) && @printf(iostream, "\n")

Expand Down Expand Up @@ -393,7 +393,7 @@ kwargs_bilq = (:c, :transfer_to_bicg, :M, :N, :ldiv, :atol, :rtol, :itmax, :time
stats.niter = iter
stats.solved = solved_lq || solved_cg
stats.inconsistent = false
stats.timer = ktimer(start_time)
stats.timer = start_time |> ktimer
stats.status = status
return solver
end
Expand Down
12 changes: 6 additions & 6 deletions src/bilqr.jl
Original file line number Diff line number Diff line change
Expand Up @@ -158,15 +158,15 @@ kwargs_bilqr = (:transfer_to_bicg, :atol, :rtol, :itmax, :timemax, :verbose, :hi
εL = atol + rtol * bNorm
εQ = atol + rtol * cNorm
(verbose > 0) && @printf(iostream, "%5s %7s %7s %5s\n", "k", "‖rₖ‖", "‖sₖ‖", "timer")
kdisplay(iter, verbose) && @printf(iostream, "%5d %7.1e %7.1e %.2fs\n", iter, bNorm, cNorm, ktimer(start_time))
kdisplay(iter, verbose) && @printf(iostream, "%5d %7.1e %7.1e %.2fs\n", iter, bNorm, cNorm, start_time |> ktimer)

# Initialize the Lanczos biorthogonalization process.
cᴴb = kdot(n, s₀, r₀) # ⟨s₀,r₀⟩ = ⟨c - Aᴴy₀,b - Ax₀⟩
if cᴴb == 0
stats.niter = 0
stats.solved_primal = false
stats.solved_dual = false
stats.timer = ktimer(start_time)
stats.timer = start_time |> ktimer
stats.status = "Breakdown bᴴc = 0"
solver.warm_start = false
return solver
Expand Down Expand Up @@ -427,9 +427,9 @@ kwargs_bilqr = (:transfer_to_bicg, :atol, :rtol, :itmax, :timemax, :verbose, :hi
timer = time_ns() - start_time
overtimed = timer > timemax_ns

kdisplay(iter, verbose) && solved_primal && !solved_dual && @printf(iostream, "%5d %7s %7.1e %.2fs\n", iter, "✗ ✗ ✗ ✗", sNorm, ktimer(start_time))
kdisplay(iter, verbose) && !solved_primal && solved_dual && @printf(iostream, "%5d %7.1e %7s %.2fs\n", iter, rNorm_lq, "✗ ✗ ✗ ✗", ktimer(start_time))
kdisplay(iter, verbose) && !solved_primal && !solved_dual && @printf(iostream, "%5d %7.1e %7.1e %.2fs\n", iter, rNorm_lq, sNorm, ktimer(start_time))
kdisplay(iter, verbose) && solved_primal && !solved_dual && @printf(iostream, "%5d %7s %7.1e %.2fs\n", iter, "✗ ✗ ✗ ✗", sNorm, start_time |> ktimer)
kdisplay(iter, verbose) && !solved_primal && solved_dual && @printf(iostream, "%5d %7.1e %7s %.2fs\n", iter, rNorm_lq, "✗ ✗ ✗ ✗", start_time |> ktimer)
kdisplay(iter, verbose) && !solved_primal && !solved_dual && @printf(iostream, "%5d %7.1e %7.1e %.2fs\n", iter, rNorm_lq, sNorm, start_time |> ktimer)
end
(verbose > 0) && @printf(iostream, "\n")

Expand Down Expand Up @@ -468,7 +468,7 @@ kwargs_bilqr = (:transfer_to_bicg, :atol, :rtol, :itmax, :timemax, :verbose, :hi
stats.niter = iter
stats.solved_primal = solved_primal
stats.solved_dual = solved_dual
stats.timer = ktimer(start_time)
stats.timer = start_time |> ktimer
stats.status = status
return solver
end
Expand Down
6 changes: 3 additions & 3 deletions src/block_gmres.jl
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ kwargs_block_gmres = (:M, :N, :ldiv, :restart, :reorthogonalization, :atol, :rto
inner_itmax = itmax

(verbose > 0) && @printf(iostream, "%5s %5s %7s %5s\n", "pass", "k", "‖Rₖ‖", "timer")
kdisplay(iter, verbose) && @printf(iostream, "%5d %5d %7.1e %.2fs\n", npass, iter, RNorm, ktimer(start_time))
kdisplay(iter, verbose) && @printf(iostream, "%5d %5d %7.1e %.2fs\n", npass, iter, RNorm, start_time |> ktimer)

# Stopping criterion
solved = RNorm ≤ ε
Expand Down Expand Up @@ -287,7 +287,7 @@ kwargs_block_gmres = (:M, :N, :ldiv, :restart, :reorthogonalization, :atol, :rto
inner_tired = restart ? inner_iter ≥ min(mem, inner_itmax) : inner_iter ≥ inner_itmax
timer = time_ns() - start_time
overtimed = timer > timemax_ns
kdisplay(iter+inner_iter, verbose) && @printf(iostream, "%5d %5d %7.1e %.2fs\n", npass, iter+inner_iter, RNorm, ktimer(start_time))
kdisplay(iter+inner_iter, verbose) && @printf(iostream, "%5d %5d %7.1e %.2fs\n", npass, iter+inner_iter, RNorm, start_time |> ktimer)

# Compute Vₖ₊₁.
if !(solved || inner_tired || user_requested_exit || overtimed)
Expand Down Expand Up @@ -343,7 +343,7 @@ kwargs_block_gmres = (:M, :N, :ldiv, :restart, :reorthogonalization, :atol, :rto
# Update stats
stats.niter = iter
stats.solved = solved
stats.timer = ktimer(start_time)
stats.timer = start_time |> ktimer
stats.status = status
return solver
end
Expand Down
10 changes: 5 additions & 5 deletions src/car.jl
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,7 @@ kwargs_car = (:M, :ldiv, :atol, :rtol, :itmax, :timemax, :verbose, :history, :ca
if rNorm == 0
stats.niter = 0
stats.solved, stats.inconsistent = true, false
stats.timer = ktimer(start_time)
stats.timer = start_time |> ktimer
stats.status = "x = 0 is a zero-residual solution"
solver.warm_start = false
return solver
Expand All @@ -175,7 +175,7 @@ kwargs_car = (:M, :ldiv, :atol, :rtol, :itmax, :timemax, :verbose, :history, :ca

ε = atol + rtol * rNorm
(verbose > 0) && @printf(iostream, "%5s %7s %7s %7s %7s %5s\n", "k", "‖rₖ‖", "‖Arₖ‖", "α", "β", "timer")
kdisplay(iter, verbose) && @printf(iostream, "%5d %7.1e %7.1e %7s %7s %.2fs\n", iter, rNorm, ArNorm, "✗ ✗ ✗ ✗", "✗ ✗ ✗ ✗", ktimer(start_time))
kdisplay(iter, verbose) && @printf(iostream, "%5d %7.1e %7.1e %7s %7s %.2fs\n", iter, rNorm, ArNorm, "✗ ✗ ✗ ✗", "✗ ✗ ✗ ✗", start_time |> ktimer)

solved = rNorm ≤ ε
tired = iter ≥ itmax
Expand Down Expand Up @@ -220,8 +220,8 @@ kwargs_car = (:M, :ldiv, :atol, :rtol, :itmax, :timemax, :verbose, :history, :ca
user_requested_exit = callback(solver) :: Bool
timer = time_ns() - start_time
overtimed = timer > timemax_ns
kdisplay(iter, verbose) && !solved && @printf(iostream, "%5d %7.1e %7.1e %7.1e %7.1e %.2fs\n", iter, rNorm, ArNorm, α, β, ktimer(start_time))
kdisplay(iter, verbose) && solved && @printf(iostream, "%5d %7.1e %7s %7.1e %7s %.2fs\n", iter, rNorm, "✗ ✗ ✗ ✗", α, "✗ ✗ ✗ ✗", ktimer(start_time))
kdisplay(iter, verbose) && !solved && @printf(iostream, "%5d %7.1e %7.1e %7.1e %7.1e %.2fs\n", iter, rNorm, ArNorm, α, β, start_time |> ktimer)
kdisplay(iter, verbose) && solved && @printf(iostream, "%5d %7.1e %7s %7.1e %7s %.2fs\n", iter, rNorm, "✗ ✗ ✗ ✗", α, "✗ ✗ ✗ ✗", start_time |> ktimer)
end
(verbose > 0) && @printf(iostream, "\n")

Expand All @@ -239,7 +239,7 @@ kwargs_car = (:M, :ldiv, :atol, :rtol, :itmax, :timemax, :verbose, :history, :ca
stats.niter = iter
stats.solved = solved
stats.inconsistent = inconsistent
stats.timer = ktimer(start_time)
stats.timer = start_time |> ktimer
stats.status = status
return solver
end
Expand Down
6 changes: 3 additions & 3 deletions src/cg.jl
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,7 @@ kwargs_cg = (:M, :ldiv, :radius, :linesearch, :atol, :rtol, :itmax, :timemax, :v
if γ == 0
stats.niter = 0
stats.solved, stats.inconsistent = true, false
stats.timer = ktimer(start_time)
stats.timer = start_time |> ktimer
stats.status = "x = 0 is a zero-residual solution"
solver.warm_start = false
return solver
Expand Down Expand Up @@ -199,7 +199,7 @@ kwargs_cg = (:M, :ldiv, :radius, :linesearch, :atol, :rtol, :itmax, :timemax, :v
σ = maximum(to_boundary(n, x, p, z, radius, M=M, ldiv=!ldiv))
end

kdisplay(iter, verbose) && @printf(iostream, " %8.1e %8.1e %8.1e %.2fs\n", pAp, α, σ, ktimer(start_time))
kdisplay(iter, verbose) && @printf(iostream, " %8.1e %8.1e %8.1e %.2fs\n", pAp, α, σ, start_time |> ktimer)

# Move along p from x to the boundary if either
# the next step leads outside the trust region or
Expand Down Expand Up @@ -257,7 +257,7 @@ kwargs_cg = (:M, :ldiv, :radius, :linesearch, :atol, :rtol, :itmax, :timemax, :v
stats.niter = iter
stats.solved = solved
stats.inconsistent = inconsistent
stats.timer = ktimer(start_time)
stats.timer = start_time |> ktimer
stats.status = status
return solver
end
Expand Down
8 changes: 4 additions & 4 deletions src/cg_lanczos.jl
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@ kwargs_cg_lanczos = (:M, :ldiv, :check_curvature, :atol, :rtol, :itmax, :timemax
stats.solved = true
stats.Anorm = zero(T)
stats.indefinite = false
stats.timer = ktimer(start_time)
stats.timer = start_time |> ktimer
stats.status = "x = 0 is a zero-residual solution"
solver.warm_start = false
return solver
Expand All @@ -172,7 +172,7 @@ kwargs_cg_lanczos = (:M, :ldiv, :check_curvature, :atol, :rtol, :itmax, :timemax
# Define stopping tolerance.
ε = atol + rtol * rNorm
(verbose > 0) && @printf(iostream, "%5s %7s %5s\n", "k", "‖rₖ‖", "timer")
kdisplay(iter, verbose) && @printf(iostream, "%5d %7.1e %.2fs\n", iter, rNorm, ktimer(start_time))
kdisplay(iter, verbose) && @printf(iostream, "%5d %7.1e %.2fs\n", iter, rNorm, start_time |> ktimer)

indefinite = false
solved = rNorm ≤ ε
Expand Down Expand Up @@ -216,7 +216,7 @@ kwargs_cg_lanczos = (:M, :ldiv, :check_curvature, :atol, :rtol, :itmax, :timemax
rNorm = abs(σ) # ‖rₖ₊₁‖_M = |σₖ₊₁| because rₖ₊₁ = σₖ₊₁ * vₖ₊₁ and ‖vₖ₊₁‖_M = 1
history && push!(rNorms, rNorm)
iter = iter + 1
kdisplay(iter, verbose) && @printf(iostream, "%5d %7.1e %.2fs\n", iter, rNorm, ktimer(start_time))
kdisplay(iter, verbose) && @printf(iostream, "%5d %7.1e %.2fs\n", iter, rNorm, start_time |> ktimer)

# Stopping conditions that do not depend on user input.
# This is to guard against tolerances that are unreasonably small.
Expand Down Expand Up @@ -247,7 +247,7 @@ kwargs_cg_lanczos = (:M, :ldiv, :check_curvature, :atol, :rtol, :itmax, :timemax
stats.solved = solved
stats.Anorm = sqrt(Anorm2)
stats.indefinite = indefinite
stats.timer = ktimer(start_time)
stats.timer = start_time |> ktimer
stats.status = status
return solver
end
Expand Down
8 changes: 4 additions & 4 deletions src/cg_lanczos_shift.jl
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,7 @@ kwargs_cg_lanczos_shift = (:M, :ldiv, :check_curvature, :atol, :rtol, :itmax, :t
if β == 0
stats.niter = 0
stats.solved = true
stats.timer = ktimer(start_time)
stats.timer = start_time |> ktimer
stats.status = "x = 0 is a zero-residual solution"
return solver
end
Expand Down Expand Up @@ -184,7 +184,7 @@ kwargs_cg_lanczos_shift = (:M, :ldiv, :check_curvature, :atol, :rtol, :itmax, :t

# Build format strings for printing.
(verbose > 0) && (fmt = Printf.Format("%5d" * repeat(" %8.1e", nshifts) * " %.2fs\n"))
kdisplay(iter, verbose) && Printf.format(iostream, fmt, iter, rNorms..., ktimer(start_time))
kdisplay(iter, verbose) && Printf.format(iostream, fmt, iter, rNorms..., start_time |> ktimer)

solved = !reduce(|, not_cv)
tired = iter ≥ itmax
Expand Down Expand Up @@ -248,7 +248,7 @@ kwargs_cg_lanczos_shift = (:M, :ldiv, :check_curvature, :atol, :rtol, :itmax, :t
not_cv[i] = check_curvature ? !(converged[i] || indefinite[i]) : !converged[i]
end
iter = iter + 1
kdisplay(iter, verbose) && Printf.format(iostream, fmt, iter, rNorms..., ktimer(start_time))
kdisplay(iter, verbose) && Printf.format(iostream, fmt, iter, rNorms..., start_time |> ktimer)

user_requested_exit = callback(solver) :: Bool
solved = !reduce(|, not_cv)
Expand All @@ -267,7 +267,7 @@ kwargs_cg_lanczos_shift = (:M, :ldiv, :check_curvature, :atol, :rtol, :itmax, :t
# Update stats. TODO: Estimate Anorm and Acond.
stats.niter = iter
stats.solved = solved
stats.timer = ktimer(start_time)
stats.timer = start_time |> ktimer
stats.status = status
return solver
end
Expand Down
8 changes: 4 additions & 4 deletions src/cgls.jl
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ kwargs_cgls = (:M, :ldiv, :radius, :λ, :atol, :rtol, :itmax, :timemax, :verbose
if bNorm == 0
stats.niter = 0
stats.solved, stats.inconsistent = true, false
stats.timer = ktimer(start_time)
stats.timer = start_time |> ktimer
stats.status = "x = 0 is a zero-residual solution"
history && push!(rNorms, zero(T))
history && push!(ArNorms, zero(T))
Expand All @@ -171,7 +171,7 @@ kwargs_cgls = (:M, :ldiv, :radius, :λ, :atol, :rtol, :itmax, :timemax, :verbose
history && push!(ArNorms, ArNorm)
ε = atol + rtol * ArNorm
(verbose > 0) && @printf(iostream, "%5s %8s %8s %5s\n", "k", "‖Aᴴr‖", "‖r‖", "timer")
kdisplay(iter, verbose) && @printf(iostream, "%5d %8.2e %8.2e %.2fs\n", iter, ArNorm, rNorm, ktimer(start_time))
kdisplay(iter, verbose) && @printf(iostream, "%5d %8.2e %8.2e %.2fs\n", iter, ArNorm, rNorm, start_time |> ktimer)

status = "unknown"
on_boundary = false
Expand Down Expand Up @@ -208,7 +208,7 @@ kwargs_cgls = (:M, :ldiv, :radius, :λ, :atol, :rtol, :itmax, :timemax, :verbose
history && push!(rNorms, rNorm)
history && push!(ArNorms, ArNorm)
iter = iter + 1
kdisplay(iter, verbose) && @printf(iostream, "%5d %8.2e %8.2e %.2fs\n", iter, ArNorm, rNorm, ktimer(start_time))
kdisplay(iter, verbose) && @printf(iostream, "%5d %8.2e %8.2e %.2fs\n", iter, ArNorm, rNorm, start_time |> ktimer)
user_requested_exit = callback(solver) :: Bool
solved = (ArNorm ≤ ε) || on_boundary
tired = iter ≥ itmax
Expand All @@ -228,7 +228,7 @@ kwargs_cgls = (:M, :ldiv, :radius, :λ, :atol, :rtol, :itmax, :timemax, :verbose
stats.niter = iter
stats.solved = solved
stats.inconsistent = false
stats.timer = ktimer(start_time)
stats.timer = start_time |> ktimer
stats.status = status
return solver
end
Expand Down
8 changes: 4 additions & 4 deletions src/cgls_lanczos_shift.jl
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,7 @@ kwargs_cgls_lanczos_shift = (:M, :ldiv, :atol, :rtol, :itmax, :timemax, :verbose
if β == 0
stats.niter = 0
stats.solved = true
stats.timer = ktimer(start_time)
stats.timer = start_time |> ktimer
stats.status = "x = 0 is a zero-residual solution"
return solver
end
Expand Down Expand Up @@ -186,7 +186,7 @@ kwargs_cgls_lanczos_shift = (:M, :ldiv, :atol, :rtol, :itmax, :timemax, :verbose

# Build format strings for printing.
(verbose > 0) && (fmt = Printf.Format("%5d" * repeat(" %8.1e", nshifts) * " %.2fs\n"))
kdisplay(iter, verbose) && Printf.format(iostream, fmt, iter, rNorms..., ktimer(start_time))
kdisplay(iter, verbose) && Printf.format(iostream, fmt, iter, rNorms..., start_time |> ktimer)

solved = !reduce(|, not_cv) # ArNorm ≤ ε
tired = iter ≥ itmax
Expand Down Expand Up @@ -242,7 +242,7 @@ kwargs_cgls_lanczos_shift = (:M, :ldiv, :atol, :rtol, :itmax, :timemax, :verbose
not_cv[i] = !converged[i]
end
iter = iter + 1
kdisplay(iter, verbose) && Printf.format(iostream, fmt, iter, rNorms..., ktimer(start_time))
kdisplay(iter, verbose) && Printf.format(iostream, fmt, iter, rNorms..., start_time |> ktimer)

user_requested_exit = callback(solver) :: Bool
solved = !reduce(|, not_cv)
Expand All @@ -261,7 +261,7 @@ kwargs_cgls_lanczos_shift = (:M, :ldiv, :atol, :rtol, :itmax, :timemax, :verbose
# Update stats
stats.niter = iter
stats.solved = solved
stats.timer = ktimer(start_time)
stats.timer = start_time |> ktimer
stats.status = status
return solver
end
Expand Down
Loading
Loading