import type { Transducer } from "./api.js"; /** * Config options for {@link binned} transducer */ export interface BinnedOpts { /** * Rounding precision. Values inside the closed `[min,max]` interval will be * rounded to multiples of given `precision. * * @defaultValue 1 */ prec: number; /** * Lower bounds of interval. * * @defaultValue -♾️ */ min: number; /** * Upper bounds of interval. * * @defaultValue +♾️ */ max: number; } /** * Transducer to apply binning and interval clipping for numeric values based on * provided options. Values in the closed `[min,max]` interval will be rounded * to multiples of given `prec`ision (e.g. as a preparation for * {@link frequencies} et al). Values outside the interval will be ignored. * * @example * ```ts tangle:../export/binned.ts * import { binned, frequencies, pluck, repeatedly, transduce } from "@thi.ng/transducers"; * import { normal } from "@thi.ng/random"; * import { barChartVStr } from "@thi.ng/text-canvas"; * * // compute histogram of 1 million gaussian random samples (aka normal distribution) * // use binned values and discard those outside configured interval * const hist = transduce( * binned({ prec: 0.1, min: -3, max: 3 }), * frequencies(), * repeatedly(normal(), 1e6) * ); * // Map(61) { -3 => 223, ... 0 => 40212, ... 3 => 245 } * * // sort by key (position) * const sorted = [...hist].sort((a,b) => a[0] - b[0]); * * // draw as ANSI art diagram * console.log(barChartVStr(10, pluck(1, sorted))); * * // ▁▄▇▇█▆▆▄ * // ▂▇█████████▆▂ * // ▁▆█████████████▆▁ * // ▅█████████████████▅ * // ▄█████████████████████▃ * // ▂▇███████████████████████▇▂ * // ▁▆███████████████████████████▆▁ * // ▂▆███████████████████████████████▇▃ * // ▁▂▅█████████████████████████████████████▅▃ * // ▁▁▂▃▄▅▆▇███████████████████████████████████████████▇▆▅▃▃▂▁▁ * ``` * * @param opts */ export declare function binned(opts?: Partial): Transducer; export declare function binned(src: Iterable): IterableIterator; export declare function binned(opts: Partial, src: Iterable): IterableIterator; //# sourceMappingURL=binned.d.ts.map