UNPKG

@thi.ng/distance

Version:

N-dimensional distance metrics & K-nearest neighborhoods for point queries

53 lines 1.89 kB
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