StreamPolicy

@Serializable
sealed class StreamPolicy(source)

Random-stream policy for the design points in an experiment. Maps to ksl.controls.experiments.DesignPointRandomStreamPolicy at submit time (Phase E2).

The default is Independent — each design point starts from a fresh non-overlapping stream block, so per-point variance estimates are unbiased. CommonRandomNumbers is explicit opt-in for the variance-reduction technique that reuses the same stream block across points; CRN improves cross-point comparisons but biases per-point variance estimates.

Inheritors

Constructors

Link copied to clipboard
protected constructor()

Types

Link copied to clipboard
@Serializable
@SerialName(value = "commonRandomNumbers")
data object CommonRandomNumbers : StreamPolicy

All design points start from the same random-stream block — the classical Common Random Numbers (CRN) variance-reduction technique. Reduces variance for cross-point comparisons (paired differences are correlated, not independent) but biases per-point variance estimates and inflates per-point standard errors.

Link copied to clipboard
@Serializable
@SerialName(value = "independent")
data class Independent(val startingStreamAdvance: Int = 0, val streamAdvanceSpacing: Int? = null) : StreamPolicy

Each design point starts from a fresh random-stream block, with cumulative-replication spacing by default. The substrate default.