This operator uses a condition, which can be a fixed condition, an expression or a user-defined function, to determine which operators to be applied when this operator is applied. A list of if-operators will be applied when the condition is True. Otherwise a list of else-operators will be applied.
This operator evaluates an expression in a population’s local namespace and terminate the evolution of this population, or the whole simulator, if the return value of this expression is True. Termination caused by an operator will stop the execution of all operators after it. The generation at which the population is terminated will be counted in the evolved generations (return value from Simulator::evolve) if termination happens after mating.
This operator replaces the current evolving population by a population loaded from a specified filename if certain condition is met. It is mostly used to return to a previously saved state if the simulation process fails to met a condition (e.g. a disease allele is lost).
This operator discards individuals according to either an expression that evaluates according to individual information field, or a Python function that accepts individual and its information fields.