@lvlte/ulp 1.0.0 → 1.0.1
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/cjs/index.d.ts +3 -5
- package/dist/cjs/index.js +7 -1
- package/dist/index.d.ts +3 -5
- package/dist/index.js +7 -1
- package/package.json +1 -1
package/dist/cjs/index.d.ts
CHANGED
|
@@ -12,12 +12,10 @@ export declare const FLOAT64_MIN: number;
|
|
|
12
12
|
*/
|
|
13
13
|
export declare function eps(x?: number): number;
|
|
14
14
|
/**
|
|
15
|
-
* Exponent of a normalized floating-point number x
|
|
16
|
-
* enough for large numbers).
|
|
17
|
-
*
|
|
18
|
-
* NB. This function assumes `x` is a finite, strictly positive number.
|
|
15
|
+
* Exponent of a normalized floating-point number x.
|
|
19
16
|
*
|
|
20
17
|
* @param x The input number
|
|
21
|
-
* @returns The largest integer `y` such that `2^y ≤ x
|
|
18
|
+
* @returns The largest integer `y` such that `2^y ≤ |x|`, or `NaN` if x is not
|
|
19
|
+
* a finite number / if x is ±0.
|
|
22
20
|
*/
|
|
23
21
|
export declare function exponent(x: number): number;
|
package/dist/cjs/index.js
CHANGED
|
@@ -11,11 +11,17 @@ function eps(x = 1) {
|
|
|
11
11
|
if (x <= exports.FLOAT64_MIN) {
|
|
12
12
|
return Number.MIN_VALUE;
|
|
13
13
|
}
|
|
14
|
-
return Math.pow(2, (
|
|
14
|
+
return Math.pow(2, (_exponent(x) - 52));
|
|
15
15
|
}
|
|
16
16
|
return NaN;
|
|
17
17
|
}
|
|
18
18
|
function exponent(x) {
|
|
19
|
+
if (Number.isFinite(x) && x !== 0) {
|
|
20
|
+
return _exponent(Math.abs(x));
|
|
21
|
+
}
|
|
22
|
+
return NaN;
|
|
23
|
+
}
|
|
24
|
+
function _exponent(x) {
|
|
19
25
|
const [ipart, fpart] = (0, modf_1.modf)(x);
|
|
20
26
|
if (ipart > 0) {
|
|
21
27
|
return ipart.toString(2).split('.', 1)[0].length - 1;
|
package/dist/index.d.ts
CHANGED
|
@@ -12,12 +12,10 @@ export declare const FLOAT64_MIN: number;
|
|
|
12
12
|
*/
|
|
13
13
|
export declare function eps(x?: number): number;
|
|
14
14
|
/**
|
|
15
|
-
* Exponent of a normalized floating-point number x
|
|
16
|
-
* enough for large numbers).
|
|
17
|
-
*
|
|
18
|
-
* NB. This function assumes `x` is a finite, strictly positive number.
|
|
15
|
+
* Exponent of a normalized floating-point number x.
|
|
19
16
|
*
|
|
20
17
|
* @param x The input number
|
|
21
|
-
* @returns The largest integer `y` such that `2^y ≤ x
|
|
18
|
+
* @returns The largest integer `y` such that `2^y ≤ |x|`, or `NaN` if x is not
|
|
19
|
+
* a finite number / if x is ±0.
|
|
22
20
|
*/
|
|
23
21
|
export declare function exponent(x: number): number;
|
package/dist/index.js
CHANGED
|
@@ -6,11 +6,17 @@ export function eps(x = 1) {
|
|
|
6
6
|
if (x <= FLOAT64_MIN) {
|
|
7
7
|
return Number.MIN_VALUE;
|
|
8
8
|
}
|
|
9
|
-
return Math.pow(2, (
|
|
9
|
+
return Math.pow(2, (_exponent(x) - 52));
|
|
10
10
|
}
|
|
11
11
|
return NaN;
|
|
12
12
|
}
|
|
13
13
|
export function exponent(x) {
|
|
14
|
+
if (Number.isFinite(x) && x !== 0) {
|
|
15
|
+
return _exponent(Math.abs(x));
|
|
16
|
+
}
|
|
17
|
+
return NaN;
|
|
18
|
+
}
|
|
19
|
+
function _exponent(x) {
|
|
14
20
|
const [ipart, fpart] = modf(x);
|
|
15
21
|
if (ipart > 0) {
|
|
16
22
|
return ipart.toString(2).split('.', 1)[0].length - 1;
|