@@ -92,15 +92,18 @@ updated_cache((; rate, order)::MinimumRateOfConvergence, cache, val, err, iter)
9292Checks multiple `ConvergenceCondition`s, combining their results with either
9393`all` or `any`.
9494"""
95- struct MultipleConditions{
96- CC <: Union{typeof(all), typeof(any)} ,
97- C <: Tuple{Vararg{T} where {T <: ConvergenceCondition}} ,
98- } <: ConvergenceCondition
95+ struct MultipleConditions{CC, C} <: ConvergenceCondition
9996 condition_combiner:: CC
10097 conditions:: C
98+ function MultipleConditions (
99+ condition_combiner:: Union{typeof(all), typeof(any)} ,
100+ conditions:: Vararg{<:ConvergenceCondition} ,
101+ )
102+ return new {typeof(condition_combiner), typeof(conditions)} (condition_combiner, conditions)
103+ end
101104end
102- MultipleConditions (condition_combiner :: Union{typeof(all), typeof(any)} = all, conditions :: ConvergenceCondition... ) =
103- MultipleConditions (condition_combiner , conditions)
105+
106+ MultipleConditions (conditions :: ConvergenceCondition... ) = MultipleConditions (all , conditions)
104107cache_type ((; conditions):: MultipleConditions , :: Type{FT} ) where {FT} =
105108 Tuple{map (condition -> cache_type (condition, FT), conditions)... }
106109has_converged (alg:: MultipleConditions , caches, val, err, iter) = alg. condition_combiner (
0 commit comments