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
TypeScript
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;