Skip to content

API reference / Switchback

tsdive.switchback.design_size

design_size(k: int) -> tuple[int, bool, float]

(balanced assignments, enumerated, smallest attainable two-sided p) of K blocks.

An assignment and its complement give the same |T|, so an enumerated design reaches 2 / C(K, K/2) at best; a sampled one reaches 1 / 1001.

Examples:

>>> from tsdive.switchback import design_size
>>> design_size(6)
(20, True, 0.1)
>>> n, enumerated, min_p = design_size(24)
>>> n, enumerated, round(min_p, 6)
(2704156, False, 0.000999)