Plexus.Stop (Plexus v0.1.0)

Copy Markdown View Source

Composable run stop predicates.

Summary

Functions

An explicit confidence projection; callers choose calibrated values or a justified score.

Deadline in monotonic milliseconds; use System.monotonic_time(:millisecond) + duration.

Record one comparable objective value per completed round (larger is better).

Types

predicate()

@type predicate() :: (term() -> boolean())

Functions

all(predicates)

@spec all([predicate()]) :: predicate()

any(predicates)

@spec any([predicate()]) :: predicate()

budget_exhausted(meter)

@spec budget_exhausted(Plexus.Budget.meter()) :: predicate()

confidence(threshold, score)

@spec confidence(number(), (map() -> number())) :: predicate()

An explicit confidence projection; callers choose calibrated values or a justified score.

deadline(at)

@spec deadline(integer()) :: predicate()

Deadline in monotonic milliseconds; use System.monotonic_time(:millisecond) + duration.

no_improvement(k)

@spec no_improvement(pos_integer()) :: predicate()

observe(run_id, value)

@spec observe(term(), number()) :: non_neg_integer()

Record one comparable objective value per completed round (larger is better).

oscillation(period, cycles, epsilon \\ 0.0)

@spec oscillation(pos_integer(), pos_integer(), number()) :: predicate()

population_at_most(max)

@spec population_at_most(non_neg_integer()) :: predicate()

quiescent()

@spec quiescent() :: predicate()

stable(epsilon, k)

@spec stable(number(), pos_integer()) :: predicate()