@hestia-earth/utils 0.16.5 → 0.16.7

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/dist/number.d.ts CHANGED
@@ -13,6 +13,14 @@ export declare const isNumber: (n: string | number) => boolean;
13
13
  * @param precision The number of significant figures
14
14
  */
15
15
  export declare const toPrecision: (n: number, precision?: number) => number;
16
+ /**
17
+ * Get the value of an array for a given percentile.
18
+ *
19
+ * @param values
20
+ * @param percentile
21
+ * @returns
22
+ */
23
+ export declare const getPercentileValue: (values: number[], percentile: number) => number;
16
24
  /**
17
25
  * Returns the number formatted with commas every thousand.
18
26
  *
package/dist/number.js CHANGED
@@ -17,7 +17,7 @@ var __read = (this && this.__read) || function (o, n) {
17
17
  };
18
18
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z;
19
19
  Object.defineProperty(exports, "__esModule", { value: true });
20
- exports.median = exports.max = exports.min = exports.mean = exports.sum = exports.convertValue = exports.converters = exports.ConvertUnits = exports.toComma = exports.toPrecision = exports.isNumber = void 0;
20
+ exports.median = exports.max = exports.min = exports.mean = exports.sum = exports.convertValue = exports.converters = exports.ConvertUnits = exports.toComma = exports.getPercentileValue = exports.toPrecision = exports.isNumber = void 0;
21
21
  /**
22
22
  * Check if the value is a number.
23
23
  *
@@ -47,6 +47,22 @@ var toPrecision = function (n, precision) {
47
47
  return n === 0 ? 0 : Math.round(n * multiplier) / multiplier;
48
48
  };
49
49
  exports.toPrecision = toPrecision;
50
+ /**
51
+ * Get the value of an array for a given percentile.
52
+ *
53
+ * @param values
54
+ * @param percentile
55
+ * @returns
56
+ */
57
+ var getPercentileValue = function (values, percentile) {
58
+ var sorted = values.slice().sort(function (a, b) { return a - b; });
59
+ var index = (sorted.length - 1) * percentile;
60
+ var lower = Math.floor(index);
61
+ var upper = Math.ceil(index);
62
+ var weight = index - lower;
63
+ return lower === upper ? sorted[index] : sorted[lower] * (1 - weight) + sorted[upper] * weight;
64
+ };
65
+ exports.getPercentileValue = getPercentileValue;
50
66
  /**
51
67
  * Returns the number formatted with commas every thousand.
52
68
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hestia-earth/utils",
3
- "version": "0.16.5",
3
+ "version": "0.16.7",
4
4
  "description": "HESTIA Utils library",
5
5
  "main": "dist/index.js",
6
6
  "typings": "dist/index.d.ts",