@thi.ng/distance 2.1.7 → 2.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Change Log
2
2
 
3
- - **Last updated**: 2021-12-13T10:26:00Z
3
+ - **Last updated**: 2022-03-11T12:13:49Z
4
4
  - **Generator**: [thi.ng/monopub](https://thi.ng/monopub)
5
5
 
6
6
  All notable changes to this project will be documented in this file.
package/README.md CHANGED
@@ -15,6 +15,7 @@ This project is part of the
15
15
  - [Nearest](#nearest)
16
16
  - [KNearest](#knearest)
17
17
  - [Status](#status)
18
+ - [Support packages](#support-packages)
18
19
  - [Related packages](#related-packages)
19
20
  - [Installation](#installation)
20
21
  - [Dependencies](#dependencies)
@@ -90,6 +91,10 @@ structures provided by the
90
91
  [@thi.ng/geom-accel](https://github.com/thi-ng/umbrella/tree/develop/packages/geom-accel)
91
92
  package.
92
93
 
94
+ ### Support packages
95
+
96
+ - [@thi.ng/distance-transform](https://github.com/thi-ng/umbrella/tree/develop/packages/distance-transform) - Binary image to Distance Field transformation
97
+
93
98
  ### Related packages
94
99
 
95
100
  - [@thi.ng/geom-accel](https://github.com/thi-ng/umbrella/tree/develop/packages/geom-accel) - n-D spatial indexing data structures with a shared ES6 Map/Set-like API
@@ -179,4 +184,4 @@ If this project contributes to an academic publication, please cite it as:
179
184
 
180
185
  ## License
181
186
 
182
- © 2021 Karsten Schmidt // Apache Software License 2.0
187
+ © 2021 - 2022 Karsten Schmidt // Apache Software License 2.0
package/api.d.ts CHANGED
@@ -18,13 +18,13 @@ export interface IDistance<T> {
18
18
  /**
19
19
  * Converts Eucledian distance `x` into the metric of this instance.
20
20
  *
21
- * @param x
21
+ * @param x -
22
22
  */
23
23
  to(x: number): number;
24
24
  /**
25
25
  * Converts `x` from the metric of this instance into an Eucledian value.
26
26
  *
27
- * @param x
27
+ * @param x -
28
28
  */
29
29
  from(x: number): number;
30
30
  }
@@ -47,8 +47,8 @@ export interface INeighborhood<P, T> extends IReset {
47
47
  * into the metric used by this neighborhood using {@link IDistance.to},
48
48
  * otherwise it is expected to be already in that metric space.
49
49
  *
50
- * @param d
51
- * @param eucledian
50
+ * @param d -
51
+ * @param eucledian -
52
52
  */
53
53
  includesDistance(d: number, eucledian?: boolean): boolean;
54
54
  /**
@@ -56,8 +56,8 @@ export interface INeighborhood<P, T> extends IReset {
56
56
  * pos. If result distance is <= current radius, adds `val` to neighborhood
57
57
  * and shrinks neighborhood radius to new distance. Returns distance metric.
58
58
  *
59
- * @param pos
60
- * @param val
59
+ * @param pos -
60
+ * @param val -
61
61
  */
62
62
  consider(pos: P, val: T): number;
63
63
  }
package/argmin.d.ts CHANGED
@@ -11,9 +11,9 @@ import type { IDistance, Metric } from "./api.js";
11
11
  *
12
12
  * https://en.wikipedia.org/wiki/Arg_max#Arg_min
13
13
  *
14
- * @param p
15
- * @param samples
16
- * @param dist
14
+ * @param p -
15
+ * @param samples -
16
+ * @param dist -
17
17
  */
18
18
  export declare const argmin: (p: ReadonlyVec, samples: ReadonlyVec[], dist?: Metric<ReadonlyVec> | IDistance<ReadonlyVec>) => number;
19
19
  export declare const argminN: (p: number, samples: NumericArray, dist?: Metric<number> | IDistance<number>) => number;
@@ -26,28 +26,28 @@ export declare const argminN: (p: number, samples: NumericArray, dist?: Metric<n
26
26
  * @reference
27
27
  * Use {@link argmin} if all items are vectors already.
28
28
  *
29
- * @param p
30
- * @param samples
31
- * @param key
32
- * @param dist
29
+ * @param p -
30
+ * @param samples -
31
+ * @param key -
32
+ * @param dist -
33
33
  */
34
34
  export declare const argminT: <T>(p: T, samples: T[], key: Fn<T, ReadonlyVec>, dist?: Metric<ReadonlyVec> | IDistance<ReadonlyVec> | undefined) => number;
35
35
  /**
36
36
  * Similar to {@link argmin}, but for k-nearest queries.
37
37
  *
38
- * @param k
39
- * @param p
40
- * @param samples
41
- * @param dist
38
+ * @param k -
39
+ * @param p -
40
+ * @param samples -
41
+ * @param dist -
42
42
  */
43
43
  export declare const argminK: (k: number, p: ReadonlyVec, samples: ReadonlyVec[], dist?: IDistance<ReadonlyVec>) => number[];
44
44
  /**
45
45
  * Similar to {@link argminT}, but for k-nearest queries.
46
46
  *
47
- * @param k
48
- * @param p
49
- * @param samples
50
- * @param dist
47
+ * @param k -
48
+ * @param p -
49
+ * @param samples -
50
+ * @param dist -
51
51
  */
52
52
  export declare const argminKT: <T>(k: number, p: T, samples: T[], key: Fn<T, ReadonlyVec>, dist?: IDistance<ReadonlyVec> | undefined) => number[];
53
53
  //# sourceMappingURL=argmin.d.ts.map
package/argmin.js CHANGED
@@ -11,9 +11,9 @@ import { DIST_SQ, DIST_SQ1 } from "./squared.js";
11
11
  *
12
12
  * https://en.wikipedia.org/wiki/Arg_max#Arg_min
13
13
  *
14
- * @param p
15
- * @param samples
16
- * @param dist
14
+ * @param p -
15
+ * @param samples -
16
+ * @param dist -
17
17
  */
18
18
  export const argmin = (p, samples, dist = DIST_SQ) => {
19
19
  const distFn = isFunction(dist) ? dist : dist.metric;
@@ -50,19 +50,19 @@ export const argminN = (p, samples, dist = DIST_SQ1) => {
50
50
  * @reference
51
51
  * Use {@link argmin} if all items are vectors already.
52
52
  *
53
- * @param p
54
- * @param samples
55
- * @param key
56
- * @param dist
53
+ * @param p -
54
+ * @param samples -
55
+ * @param key -
56
+ * @param dist -
57
57
  */
58
58
  export const argminT = (p, samples, key, dist) => argmin(key(p), samples.map(key), dist);
59
59
  /**
60
60
  * Similar to {@link argmin}, but for k-nearest queries.
61
61
  *
62
- * @param k
63
- * @param p
64
- * @param samples
65
- * @param dist
62
+ * @param k -
63
+ * @param p -
64
+ * @param samples -
65
+ * @param dist -
66
66
  */
67
67
  export const argminK = (k, p, samples, dist = DIST_SQ) => {
68
68
  const neighborhood = knearest(p, k, Infinity, dist);
@@ -74,9 +74,9 @@ export const argminK = (k, p, samples, dist = DIST_SQ) => {
74
74
  /**
75
75
  * Similar to {@link argminT}, but for k-nearest queries.
76
76
  *
77
- * @param k
78
- * @param p
79
- * @param samples
80
- * @param dist
77
+ * @param k -
78
+ * @param p -
79
+ * @param samples -
80
+ * @param dist -
81
81
  */
82
82
  export const argminKT = (k, p, samples, key, dist) => argminK(k, key(p), samples.map(key), dist);
package/knearest.d.ts CHANGED
@@ -50,44 +50,44 @@ export declare class KNearest<D, T> implements INeighborhood<D, T>, IDeref<Neigh
50
50
  * and, by default, using an infinite region radius and {@link DIST_SQ} distance
51
51
  * metric.
52
52
  *
53
- * @param p
54
- * @param k
55
- * @param r
56
- * @param dist
57
- * @param sorted
53
+ * @param p -
54
+ * @param k -
55
+ * @param r -
56
+ * @param dist -
57
+ * @param sorted -
58
58
  */
59
59
  export declare const knearest: <T>(p: ReadonlyVec, k: number, r?: number | undefined, dist?: import("./squared.js").Squared<ReadonlyVec>, sorted?: boolean | undefined) => KNearest<ReadonlyVec, T>;
60
60
  /**
61
61
  * Defines a {@link KNearest} instance for 2D vector positions and, by default,
62
62
  * using an infinite region radius and {@link DIST_SQ2} distance metric.
63
63
  *
64
- * @param p
65
- * @param k
66
- * @param r
67
- * @param dist
68
- * @param sorted
64
+ * @param p -
65
+ * @param k -
66
+ * @param r -
67
+ * @param dist -
68
+ * @param sorted -
69
69
  */
70
70
  export declare const knearest2: <T>(p: ReadonlyVec, k: number, r?: number | undefined, dist?: import("./squared.js").Squared<ReadonlyVec>, sorted?: boolean | undefined) => KNearest<ReadonlyVec, T>;
71
71
  /**
72
72
  * Defines a {@link KNearest} instance for 3D vector positions, by default,
73
73
  * using an infinite region radius and {@link DIST_SQ3} distance metric.
74
74
  *
75
- * @param p
76
- * @param k
77
- * @param r
78
- * @param dist
79
- * @param sorted
75
+ * @param p -
76
+ * @param k -
77
+ * @param r -
78
+ * @param dist -
79
+ * @param sorted -
80
80
  */
81
81
  export declare const knearest3: <T>(p: ReadonlyVec, k: number, r?: number | undefined, dist?: import("./squared.js").Squared<ReadonlyVec>, sorted?: boolean | undefined) => KNearest<ReadonlyVec, T>;
82
82
  /**
83
83
  * Defines a {@link KNearest} instance for numeric positions and, by default,
84
84
  * using an infinite region radius and {@link DIST_SQ1} distance metric.
85
85
  *
86
- * @param p
87
- * @param k
88
- * @param r
89
- * @param dist
90
- * @param sorted
86
+ * @param p -
87
+ * @param k -
88
+ * @param r -
89
+ * @param dist -
90
+ * @param sorted -
91
91
  */
92
92
  export declare const knearestN: <T>(p: number, k: number, r?: number | undefined, dist?: import("./squared.js").Squared<number>, sorted?: boolean | undefined) => KNearest<number, T>;
93
93
  //# sourceMappingURL=knearest.d.ts.map
package/knearest.js CHANGED
@@ -77,43 +77,43 @@ export class KNearest {
77
77
  * and, by default, using an infinite region radius and {@link DIST_SQ} distance
78
78
  * metric.
79
79
  *
80
- * @param p
81
- * @param k
82
- * @param r
83
- * @param dist
84
- * @param sorted
80
+ * @param p -
81
+ * @param k -
82
+ * @param r -
83
+ * @param dist -
84
+ * @param sorted -
85
85
  */
86
86
  export const knearest = (p, k, r, dist = DIST_SQ, sorted) => new KNearest(dist, p, k, r, sorted);
87
87
  /**
88
88
  * Defines a {@link KNearest} instance for 2D vector positions and, by default,
89
89
  * using an infinite region radius and {@link DIST_SQ2} distance metric.
90
90
  *
91
- * @param p
92
- * @param k
93
- * @param r
94
- * @param dist
95
- * @param sorted
91
+ * @param p -
92
+ * @param k -
93
+ * @param r -
94
+ * @param dist -
95
+ * @param sorted -
96
96
  */
97
97
  export const knearest2 = (p, k, r, dist = DIST_SQ2, sorted) => new KNearest(dist, p, k, r, sorted);
98
98
  /**
99
99
  * Defines a {@link KNearest} instance for 3D vector positions, by default,
100
100
  * using an infinite region radius and {@link DIST_SQ3} distance metric.
101
101
  *
102
- * @param p
103
- * @param k
104
- * @param r
105
- * @param dist
106
- * @param sorted
102
+ * @param p -
103
+ * @param k -
104
+ * @param r -
105
+ * @param dist -
106
+ * @param sorted -
107
107
  */
108
108
  export const knearest3 = (p, k, r, dist = DIST_SQ3, sorted) => new KNearest(dist, p, k, r, sorted);
109
109
  /**
110
110
  * Defines a {@link KNearest} instance for numeric positions and, by default,
111
111
  * using an infinite region radius and {@link DIST_SQ1} distance metric.
112
112
  *
113
- * @param p
114
- * @param k
115
- * @param r
116
- * @param dist
117
- * @param sorted
113
+ * @param p -
114
+ * @param k -
115
+ * @param r -
116
+ * @param dist -
117
+ * @param sorted -
118
118
  */
119
119
  export const knearestN = (p, k, r, dist = DIST_SQ1, sorted) => new KNearest(dist, p, k, r, sorted);
package/nearest.d.ts CHANGED
@@ -30,36 +30,36 @@ export declare class Nearest<D, T> implements INeighborhood<D, T>, IDeref<Neighb
30
30
  * default, using an infinite region radius and {@link DIST_SQ} distance
31
31
  * metric.
32
32
  *
33
- * @param p
34
- * @param r
35
- * @param dist
33
+ * @param p -
34
+ * @param r -
35
+ * @param dist -
36
36
  */
37
37
  export declare const nearest: <T>(p: ReadonlyVec, r?: number | undefined, dist?: import("./squared.js").Squared<ReadonlyVec>) => Nearest<ReadonlyVec, T>;
38
38
  /**
39
39
  * Defines a {@link Nearest} instance for 2D vector positions, by default,
40
40
  * using an infinite region radius and {@link DIST_SQ2} distance metric.
41
41
  *
42
- * @param p
43
- * @param r
44
- * @param dist
42
+ * @param p -
43
+ * @param r -
44
+ * @param dist -
45
45
  */
46
46
  export declare const nearest2: <T>(p: ReadonlyVec, r?: number | undefined, dist?: import("./squared.js").Squared<ReadonlyVec>) => Nearest<ReadonlyVec, T>;
47
47
  /**
48
48
  * Defines a {@link Nearest} instance for 3D vector positions, by default,
49
49
  * using an infinite region radius and {@link DIST_SQ3} distance metric.
50
50
  *
51
- * @param p
52
- * @param r
53
- * @param dist
51
+ * @param p -
52
+ * @param r -
53
+ * @param dist -
54
54
  */
55
55
  export declare const nearest3: <T>(p: ReadonlyVec, r?: number | undefined, dist?: import("./squared.js").Squared<ReadonlyVec>) => Nearest<ReadonlyVec, T>;
56
56
  /**
57
57
  * Defines a {@link Nearest} instance for numeric positions and, by default,
58
58
  * using an infinite region radius and {@link DIST_SQ1} distance metric.
59
59
  *
60
- * @param p
61
- * @param r
62
- * @param dist
60
+ * @param p -
61
+ * @param r -
62
+ * @param dist -
63
63
  */
64
64
  export declare const nearestN: <T>(p: number, r?: number | undefined, dist?: import("./squared.js").Squared<number>) => Nearest<number, T>;
65
65
  //# sourceMappingURL=nearest.d.ts.map
package/nearest.js CHANGED
@@ -46,35 +46,35 @@ export class Nearest {
46
46
  * default, using an infinite region radius and {@link DIST_SQ} distance
47
47
  * metric.
48
48
  *
49
- * @param p
50
- * @param r
51
- * @param dist
49
+ * @param p -
50
+ * @param r -
51
+ * @param dist -
52
52
  */
53
53
  export const nearest = (p, r, dist = DIST_SQ) => new Nearest(dist, p, r);
54
54
  /**
55
55
  * Defines a {@link Nearest} instance for 2D vector positions, by default,
56
56
  * using an infinite region radius and {@link DIST_SQ2} distance metric.
57
57
  *
58
- * @param p
59
- * @param r
60
- * @param dist
58
+ * @param p -
59
+ * @param r -
60
+ * @param dist -
61
61
  */
62
62
  export const nearest2 = (p, r, dist = DIST_SQ2) => new Nearest(dist, p, r);
63
63
  /**
64
64
  * Defines a {@link Nearest} instance for 3D vector positions, by default,
65
65
  * using an infinite region radius and {@link DIST_SQ3} distance metric.
66
66
  *
67
- * @param p
68
- * @param r
69
- * @param dist
67
+ * @param p -
68
+ * @param r -
69
+ * @param dist -
70
70
  */
71
71
  export const nearest3 = (p, r, dist = DIST_SQ3) => new Nearest(dist, p, r);
72
72
  /**
73
73
  * Defines a {@link Nearest} instance for numeric positions and, by default,
74
74
  * using an infinite region radius and {@link DIST_SQ1} distance metric.
75
75
  *
76
- * @param p
77
- * @param r
78
- * @param dist
76
+ * @param p -
77
+ * @param r -
78
+ * @param dist -
79
79
  */
80
80
  export const nearestN = (p, r, dist = DIST_SQ1) => new Nearest(dist, p, r);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thi.ng/distance",
3
- "version": "2.1.7",
3
+ "version": "2.1.8",
4
4
  "description": "N-dimensional distance metrics & K-nearest neighborhoods for point queries",
5
5
  "type": "module",
6
6
  "module": "./index.js",
@@ -34,20 +34,20 @@
34
34
  "test": "testament test"
35
35
  },
36
36
  "dependencies": {
37
- "@thi.ng/api": "^8.3.3",
38
- "@thi.ng/checks": "^3.1.3",
39
- "@thi.ng/errors": "^2.1.3",
40
- "@thi.ng/heaps": "^2.1.3",
41
- "@thi.ng/math": "^5.2.0",
42
- "@thi.ng/vectors": "^7.4.3"
37
+ "@thi.ng/api": "^8.3.4",
38
+ "@thi.ng/checks": "^3.1.4",
39
+ "@thi.ng/errors": "^2.1.4",
40
+ "@thi.ng/heaps": "^2.1.4",
41
+ "@thi.ng/math": "^5.3.0",
42
+ "@thi.ng/vectors": "^7.5.0"
43
43
  },
44
44
  "devDependencies": {
45
- "@microsoft/api-extractor": "^7.19.2",
46
- "@thi.ng/testament": "^0.2.3",
45
+ "@microsoft/api-extractor": "^7.19.4",
46
+ "@thi.ng/testament": "^0.2.4",
47
47
  "rimraf": "^3.0.2",
48
48
  "tools": "^0.0.1",
49
- "typedoc": "^0.22.10",
50
- "typescript": "^4.5.3"
49
+ "typedoc": "^0.22.13",
50
+ "typescript": "^4.6.2"
51
51
  },
52
52
  "keywords": [
53
53
  "distance",
@@ -109,5 +109,5 @@
109
109
  ],
110
110
  "year": 2021
111
111
  },
112
- "gitHead": "1ba92c6b9509e74e509b4c0b875fc380a97bbbc1\n"
112
+ "gitHead": "0fc692a3225c068aacafdc4cb6140cf603c67ad8\n"
113
113
  }