/** * Deterministic randomness and summary statistics for the System One * benchmark (T12495). Every random choice (negative sampling, the owner * spot-check sample) goes through a seeded generator so a dataset can be * rebuilt byte for byte. * * @task T12495 * @epic T12486 */ /** Default seed: the task number, so an unseeded run is still reproducible. */ export declare const DEFAULT_BENCH_SEED = 12495; /** A seeded generator of floats in [0, 1). */ export type BenchRandom = () => number; /** * Mulberry32: a small, fast, seeded PRNG (not cryptographic). * * @param seed - 32-bit seed. * @returns A generator of floats in [0, 1). */ export declare function createSeededRandom(seed: number): BenchRandom; /** * Fisher–Yates shuffle into a new array. * * @param items - Items to shuffle. * @param random - Seeded generator. * @returns A shuffled copy. */ export declare function shuffled(items: readonly T[], random: BenchRandom): T[]; /** * The `p`-th percentile (nearest-rank) of `values`. * * @param values - Samples. * @param p - Percentile in [0, 100]. * @returns The percentile, or `null` when there are no samples. */ export declare function percentile(values: readonly number[], p: number): number | null; /** Mean and spread of one metric across repeated runs. */ export interface BenchSpread { /** Runs that produced a value. */ readonly n: number; /** Arithmetic mean. */ readonly mean: number | null; /** Sample standard deviation (0 for a single run). */ readonly stddev: number | null; /** Smallest value. */ readonly min: number | null; /** Largest value. */ readonly max: number | null; } /** * Mean, sample standard deviation, min and max of the non-null values. * * @param values - One value per run; `null` means the run produced none. * @returns The spread. */ export declare function spreadOf(values: readonly (number | null)[]): BenchSpread; //# sourceMappingURL=stats.d.ts.map