UNPKG

higlass

Version:

HiGlass Hi-C / genomic / large data viewer

89 lines (88 loc) 3.22 kB
export default DenseDataExtrema1D; /** * @template {ArrayLike<number>} [T=ArrayLike<number>] */ declare class DenseDataExtrema1D<T extends ArrayLike<number> = ArrayLike<number>> { /** * This module efficiently computes extrema of arbitrary subsets of a given data array. * The array is subdivided into 'numSubsets' subsets where extrema are precomputed. * These values are used to compute extrema given arbitrary start and end indices via * the getMinNonZeroInSubset and getMaxNonZeroInSubset methods. * @param {T} data */ constructor(data: T); /** @type {number} */ epsilon: number; /** @type {T} */ data: T; /** @type {number} */ tileSize: number; /** @type {number} */ paddedTileSize: number; /** @type {number} */ numSubsets: number; /** @type {number} */ subsetSize: number; subsetMinimums: number[]; subsetMaximums: number[]; minNonZeroInTile: number; maxNonZeroInTile: number; /** * Computes the non-zero minimum in a subset using precomputed values, * if possible. data[end] is not considered. * * @param {[start: number, end: number]} indexBounds * @return {number} non-zero minium of the subset */ getMinNonZeroInSubset(indexBounds: [start: number, end: number]): number; /** * Computes the non-zero maximum in a subset using precomputed values, if possible * * @param {[start: number, end: number]} indexBounds * @return {number} non-zero maxium of the subset */ getMaxNonZeroInSubset(indexBounds: [start: number, end: number]): number; /** * Precomputes non-zero minimums of subsets of the given data vector * * @returns {Array<number>} - Minimums of the regularly subdivided data vector */ computeSubsetNonZeroMinimums(): Array<number>; /** * Precomputes non-zero maximums of subsets of the given data vector * @return {Array<number>} Maximums of the regularly subdivided data vector */ computeSubsetNonZeroMaximums(): Array<number>; /** * Computes the non-zero minimum in the entire data array using precomputed values * * @return {number} Non-zeros maximum of the data */ getMinNonZeroInTile(): number; /** * Computes the non-zero maximum in the entire data array using precomputed values * * @return {number} Non-zeros maximum of the data */ getMaxNonZeroInTile(): number; /** * Calculate the minimum non-zero value in the data from start * to end. No precomputations are used to compute the min. * * @param {ArrayLike<number>} data * @param {number} start * @param {number} end * @return {number} non-zero min in subset */ minNonZero(data: ArrayLike<number>, start: number, end: number): number; /** * Calculate the maximum non-zero value in the data from start * to end. No precomputations are used to compute the max. * * @param {ArrayLike<number>} data * @param {number} start * @param {number} end * @return {number} non-zero max in subset */ maxNonZero(data: ArrayLike<number>, start: number, end: number): number; }