@thi.ng/distance
Version:
N-dimensional distance metrics & K-nearest neighborhoods for point queries
53 lines • 1.89 kB
TypeScript
import type { Fn, NumericArray } from "@thi.ng/api";
import type { ReadonlyVec } from "@thi.ng/vectors";
import type { IDistance, Metric } from "./api.js";
/**
* Takes a vector `p`, array of `samples` and a `dist`ance function. Computes
* and returns index of the sample closest to `p` (according to `dist`, default:
* {@link DIST_SQ}).
*
* @remarks
* Use {@link argminT} for non-vector inputs.
*
* https://en.wikipedia.org/wiki/Arg_max#Arg_min
*
* @param p -
* @param samples -
* @param dist -
*/
export declare const argmin: (p: ReadonlyVec, samples: ReadonlyVec[], dist?: Metric<ReadonlyVec> | IDistance<ReadonlyVec>) => number;
export declare const argminN: (p: number, samples: NumericArray, dist?: Metric<number> | IDistance<number>) => number;
/**
* Similar to {@link argmin}, but for non-vector inputs and taking an additional
* `key` function. Applies `key` to each item (incl. `p`) to obtain its vector
* representation, then computes and returns index of the sample closest to `p`
* (according to `dist`).
*
* @remarks
* Use {@link argmin} if all items are vectors already.
*
* @param p -
* @param samples -
* @param key -
* @param dist -
*/
export declare const argminT: <T>(p: T, samples: T[], key: Fn<T, ReadonlyVec>, dist?: Metric<ReadonlyVec> | IDistance<ReadonlyVec>) => number;
/**
* Similar to {@link argmin}, but for k-nearest queries.
*
* @param k -
* @param p -
* @param samples -
* @param dist -
*/
export declare const argminK: (k: number, p: ReadonlyVec, samples: ReadonlyVec[], dist?: IDistance<ReadonlyVec>) => number[];
/**
* Similar to {@link argminT}, but for k-nearest queries.
*
* @param k -
* @param p -
* @param samples -
* @param dist -
*/
export declare const argminKT: <T>(k: number, p: T, samples: T[], key: Fn<T, ReadonlyVec>, dist?: IDistance<ReadonlyVec>) => number[];
//# sourceMappingURL=argmin.d.ts.map