diff --git a/R/setupStoppingConditions.R b/R/setupStoppingConditions.R index c10f437..6f52dea 100644 --- a/R/setupStoppingConditions.R +++ b/R/setupStoppingConditions.R @@ -16,8 +16,8 @@ # The stopping condition generators should have attributes 'checkFunction' and # default value (see ecr operators). This way setupStoppingCondition could # iterate over all available stopping conditions. -setupStoppingConditions = function(max.iter = Inf, max.time = Inf) { - if (is.infinite(max.iter) && is.infinite(max.time)) { +setupStoppingConditions = function(max.iter = NULL, max.time = NULL) { + if (is.null(max.iter) && is.null(max.time)) { stopf("At least max.iter or max.time must be finite.") } list( diff --git a/R/stoppingCondition.max.iter.R b/R/stoppingCondition.max.iter.R index 208d071..1d80946 100644 --- a/R/stoppingCondition.max.iter.R +++ b/R/stoppingCondition.max.iter.R @@ -4,8 +4,12 @@ #' Maximal number of iterations. Default ist \code{Inf}. #' @return [\code{function}] #' @export -makeMaximumIterationsStoppingCondition = function(max.iter = Inf) { - assertCount(max.iter, positive = TRUE, na.ok = FALSE) +makeMaximumIterationsStoppingCondition = function(max.iter = NULL) { + if (!is.null(max.iter)) { + assertInt(max.iter, lower = 1L, na.ok = FALSE) + } else { + max.iter = Inf + } force(max.iter) condition.fun = function(envir = parent.frame()) { diff --git a/R/stoppingCondition.max.time.R b/R/stoppingCondition.max.time.R index 5c19100..8525364 100644 --- a/R/stoppingCondition.max.time.R +++ b/R/stoppingCondition.max.time.R @@ -4,8 +4,12 @@ #' Time budget in seconds. Default ist \code{Inf}. #' @return [\code{function}] #' @export -makeMaximumTimeStoppingCondition = function(max.time = Inf) { - assertCount(max.time, positive = TRUE, na.ok = FALSE) +makeMaximumTimeStoppingCondition = function(max.time = NULL) { + if (!is.null(max.time)) { + assertInt(max.time, lower = 1L, na.ok = FALSE) + } else { + max.time = Inf + } force(max.time) condition.fun = function(envir = parent.frame()) { diff --git a/man/makeMaximumIterationsStoppingCondition.Rd b/man/makeMaximumIterationsStoppingCondition.Rd index bfb3231..66635fc 100644 --- a/man/makeMaximumIterationsStoppingCondition.Rd +++ b/man/makeMaximumIterationsStoppingCondition.Rd @@ -4,7 +4,7 @@ \alias{makeMaximumIterationsStoppingCondition} \title{Stopping condition: maximum number of iterations.} \usage{ -makeMaximumIterationsStoppingCondition(max.iter = Inf) +makeMaximumIterationsStoppingCondition(max.iter = NULL) } \arguments{ \item{max.iter}{[\code{integer(1)}]\cr diff --git a/man/makeMaximumTimeStoppingCondition.Rd b/man/makeMaximumTimeStoppingCondition.Rd index 4db629b..a2cfce1 100644 --- a/man/makeMaximumTimeStoppingCondition.Rd +++ b/man/makeMaximumTimeStoppingCondition.Rd @@ -4,7 +4,7 @@ \alias{makeMaximumTimeStoppingCondition} \title{Stopping condition: time limit.} \usage{ -makeMaximumTimeStoppingCondition(max.time = Inf) +makeMaximumTimeStoppingCondition(max.time = NULL) } \arguments{ \item{max.time}{[\code{integer(1)}]\cr diff --git a/man/setupStoppingConditions.Rd b/man/setupStoppingConditions.Rd index 0802bf1..9587dcd 100644 --- a/man/setupStoppingConditions.Rd +++ b/man/setupStoppingConditions.Rd @@ -4,7 +4,7 @@ \alias{setupStoppingConditions} \title{Generator for some frequently used stopping conditions.} \usage{ -setupStoppingConditions(max.iter = Inf, max.time = Inf) +setupStoppingConditions(max.iter = NULL, max.time = NULL) } \arguments{ \item{max.iter}{[\code{integer(1)}]\cr