UNPKG

@jcoreio/precise-bs

Version:

binary search and related utility functions

86 lines (74 loc) 1.67 kB
// @flow export type Comparator<T> = (a: T, b: T) => number type NumberArray = | Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Float64Array | Float32Array | Array<number> type SearchFn = { ( array: NumberArray, find: number, comparator?: Comparator<number>, low?: number, high?: number ): number, <T>( array: Array<T>, find: T, comparator?: Comparator<T>, low?: number, high?: number ): number, } type EntryFn = { ( array: NumberArray, find: number, comparator?: Comparator<number>, low?: number, high?: number ): [number, number | void], <T>( array: Array<T>, find: T, comparator?: Comparator<T>, low?: number, high?: number ): [number, T | void], } type ValueFn = { ( array: NumberArray, find: number, comparator?: Comparator<number>, low?: number, high?: number ): number | void, <T>( array: Array<T>, find: T, comparator?: Comparator<T>, low?: number, high?: number ): T | void, } declare export var DEFAULT_COMPARATOR: Comparator<any> declare export var binarySearch: SearchFn declare export var ceilingIndex: SearchFn declare export var ceilingEntry: EntryFn declare export var ceilingValue: ValueFn declare export var floorIndex: SearchFn declare export var floorEntry: EntryFn declare export var floorValue: ValueFn declare export var higherIndex: SearchFn declare export var higherEntry: EntryFn declare export var higherValue: ValueFn declare export var lowerIndex: SearchFn declare export var lowerEntry: EntryFn declare export var lowerValue: ValueFn