Skip to content

Commit 1d88373

Browse files
committed
remove some intermediate buffers
1 parent c2db111 commit 1d88373

1 file changed

Lines changed: 16 additions & 19 deletions

File tree

src/stopping_criterion.jl

Lines changed: 16 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -152,12 +152,12 @@ function indicates_convergence(stop_when_all::StopWhenAll)
152152
end
153153

154154
function Base.show(io::IO, ::MIME"text/plain", stop_when_all::StopWhenAll)
155-
s = ""
155+
print(io, "StopWhenAll with the Stopping Criteria")
156156
for stopping_criterion in stop_when_all.criteria
157-
#add every SC to the list but increase indent
158-
s = s * "\n * " * replace("$(stopping_criterion)", "\n" => "\n ")
157+
println(io)
158+
replace(io, string(stopping_criterion), "\n" => "\n ") #increase indent
159159
end
160-
return print(io, "StopWhenAll with the Stopping Criteria\n$(s)")
160+
return nothing
161161
end
162162

163163
"""
@@ -201,13 +201,16 @@ end
201201
function indicates_convergence(stop_when_any::StopWhenAny)
202202
return all(indicates_convergence, stop_when_any.criteria)
203203
end
204+
204205
function Base.show(io::IO, ::MIME"text/plain", stop_when_any::StopWhenAny)
205-
s = ""
206+
print(io, "StopWhenAny with the Stopping Criteria")
206207
for stopping_criterion in stop_when_any.criteria
207-
s = s * "\n * " * replace("$(stopping_criterion)", "\n" => "\n ") #increase indent
208+
println(io)
209+
replace(io, string(stopping_criterion), "\n" => "\n ") #increase indent
208210
end
209-
return print(io, "StopWhenAny with the Stopping Criteria\n$(s)")
211+
return nothing
210212
end
213+
211214
"""
212215
|(s1,s2)
213216
s1 | s2
@@ -252,16 +255,10 @@ function get_reason(
252255
stop_when::Union{StopWhenAll,StopWhenAny},
253256
stopping_criterion_states::GroupStoppingCriterionState,
254257
)
255-
if stopping_criterion_states.at_iteration >= 0
256-
return string(
257-
(
258-
get_reason(stopping_criterion, stopping_criterion_state) for
259-
(stopping_criterion, stopping_criterion_state) in
260-
zip(stop_when.criteria, stopping_criterion_states.criteria_states)
261-
)...,
262-
)
263-
end
264-
return nothing
258+
stopping_criterion_states.at_iteration < 0 && return nothing
259+
criteria = stop_when.criteriaq
260+
stopping_criterion_states = stopping_criterion_states.criteria_states
261+
return join(Iterators.map(get_reason, criteria, stopping_criterion_states))
265262
end
266263

267264
function initialize_state(
@@ -270,10 +267,10 @@ function initialize_state(
270267
stop_when::Union{StopWhenAll,StopWhenAny};
271268
kwargs...,
272269
)
273-
return GroupStoppingCriterionState([
270+
return GroupStoppingCriterionState((
274271
initialize_state(problem, algorithm, stopping_criterion; kwargs...) for
275272
stopping_criterion in stop_when.criteria
276-
])
273+
)...)
277274
end
278275
function initialize_state!(
279276
stopping_criterion_states::GroupStoppingCriterionState,

0 commit comments

Comments
 (0)