UNPKG

commons-math-interpolation

Version:

A partial port of the Apache Commons Math Interpolation package, including Akima cubic spline interpolation and LOESS/LOWESS local regression.

33 lines (32 loc) 1.31 kB
import { UniFunction } from "./Utils.js"; import { InterpolationMethod } from "./Index.js"; export interface SmoothDiagInfo { robustnessIters: number; secondLastMedianResidual?: number; lastMedianResidual?: number; robustnessWeights?: Float64Array; } export interface LoessInterpolatorDiagInfo extends SmoothDiagInfo { fitYVals: Float64Array; knotFilter: boolean[]; knotXVals: Float64Array; knotYVals: Float64Array; } export interface SmoothParms { xVals: ArrayLike<number>; yVals: ArrayLike<number>; weights?: ArrayLike<number>; bandwidthFraction?: number; robustnessIters?: number; accuracy?: number; outlierDistanceFactor?: number; diagInfo?: SmoothDiagInfo; } export interface LoessInterpolatorParms extends SmoothParms { interpolationMethod?: InterpolationMethod; minXDistance?: number; diagInfo?: LoessInterpolatorDiagInfo; } export declare function createLoessInterpolator(parms: LoessInterpolatorParms): UniFunction; export declare function smooth(parms: SmoothParms): Float64Array; export declare function calculateLocalLinearRegression(xVals: ArrayLike<number>, yVals: ArrayLike<number>, weights: ArrayLike<number> | undefined, x: number, iLeft: number, iRight: number, accuracy: number): number;