@numio/bigmath 1.1.0 → 2.0.0

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.
Files changed (52) hide show
  1. package/README.md +16 -4
  2. package/package.json +7 -2
  3. package/src/IQR/main.js +5 -4
  4. package/src/IQR/types.d.ts +2 -2
  5. package/src/IQR/utils.js +3 -3
  6. package/src/MAD/main.js +5 -4
  7. package/src/MAD/types.d.ts +2 -2
  8. package/src/MAD/utils.js +2 -4
  9. package/src/compare/main.js +12 -10
  10. package/src/compare/types.d.ts +5 -5
  11. package/src/compare/utils.js +43 -64
  12. package/src/mean/main.js +5 -5
  13. package/src/mean/types.d.ts +2 -2
  14. package/src/mean/utils.js +3 -6
  15. package/src/operations/add/main.d.ts +1 -1
  16. package/src/operations/add/main.js +7 -6
  17. package/src/operations/div/main.d.ts +1 -1
  18. package/src/operations/div/main.js +6 -7
  19. package/src/operations/div/types.d.ts +2 -3
  20. package/src/operations/div/utils.d.ts +1 -2
  21. package/src/operations/div/utils.js +33 -93
  22. package/src/operations/mul/main.d.ts +1 -1
  23. package/src/operations/mul/main.js +5 -5
  24. package/src/operations/sub/main.d.ts +1 -1
  25. package/src/operations/sub/main.js +6 -5
  26. package/src/pipe/main.d.ts +6 -6
  27. package/src/pipe/main.js +23 -22
  28. package/src/pipe/utils.d.ts +7 -8
  29. package/src/pipe/utils.js +14 -18
  30. package/src/quartile/main.js +7 -7
  31. package/src/quartile/types.d.ts +6 -6
  32. package/src/quartile/utils.js +2 -10
  33. package/src/shared/constant.d.ts +0 -12
  34. package/src/shared/constant.js +0 -12
  35. package/src/shared/types.d.ts +6 -5
  36. package/src/shared/utils.d.ts +6 -4
  37. package/src/shared/utils.js +64 -71
  38. package/src/sort/main.js +7 -4
  39. package/src/sort/types.d.ts +3 -3
  40. package/src/sqrt/main.js +5 -5
  41. package/src/sqrt/types.d.ts +2 -2
  42. package/src/sqrt/utils.js +13 -23
  43. package/src/operations/add/types.d.ts +0 -2
  44. package/src/operations/add/utils.d.ts +0 -5
  45. package/src/operations/add/utils.js +0 -59
  46. package/src/operations/mul/types.d.ts +0 -2
  47. package/src/operations/mul/utils.d.ts +0 -5
  48. package/src/operations/mul/utils.js +0 -50
  49. package/src/operations/sub/types.d.ts +0 -2
  50. package/src/operations/sub/utils.d.ts +0 -5
  51. package/src/operations/sub/utils.js +0 -81
  52. package/src/types.d.ts +0 -7
@@ -1,50 +0,0 @@
1
- import { NIL } from "../../shared/constant.js";
2
- /** This function multiplies 2 numbers (as array). */
3
- export var mulInner = function (_a, _b, isNegative) {
4
- var _c, _d;
5
- var arrL = _a[0], intL = _a[1];
6
- var arrR = _b[0], intR = _b[1];
7
- if (arrL.length === 0 || arrR.length === 0 ||
8
- (arrL.length === 1 && arrL[0] === 48) ||
9
- (arrR.length === 1 && arrR[0] === 48)) {
10
- return NIL;
11
- }
12
- var dec = (arrL.length - intL) + (arrR.length - intR);
13
- var _e = arrL.length >= arrR.length
14
- ? [arrL, arrR]
15
- : [arrR, arrL], left = _e[0], right = _e[1];
16
- var sums = Array(right.length + left.length - 1);
17
- for (var i = right.length - 1; i >= 0; i--) {
18
- for (var j = left.length - 1; j >= 0; j--) {
19
- var idx_1 = j + i;
20
- sums[idx_1] = ((_c = sums[idx_1]) !== null && _c !== void 0 ? _c : 0) +
21
- (left[j] - 48) * (right[i] - 48);
22
- }
23
- }
24
- var result = Array(sums.length);
25
- var idx = sums.length - 1;
26
- var carryOver = 0;
27
- var currNum = 0;
28
- var nextNum = 0;
29
- while (idx >= 0) {
30
- currNum = (_d = sums[idx]) !== null && _d !== void 0 ? _d : 0;
31
- nextNum = (currNum + carryOver) % 10;
32
- carryOver = (carryOver + currNum) / 10 | 0;
33
- result[idx] = nextNum + 48;
34
- idx -= 1;
35
- }
36
- carryOver > 0 && result.unshift(carryOver + 48);
37
- return {
38
- array: result,
39
- intLength: result.length - dec,
40
- isFloat: dec > 0,
41
- isNegative: isNegative,
42
- };
43
- };
44
- export var mulRoute = function (input, initValue) {
45
- return input.reduce(function (left, right) {
46
- if (left.array.length === 0)
47
- return right;
48
- return mulInner([left.array, left.intLength], [right.array, right.intLength], left.isNegative !== right.isNegative);
49
- }, initValue);
50
- };
@@ -1,2 +0,0 @@
1
- import type { InputData } from "../../types.d.ts";
2
- export type SubInner = (L: [number[], number], R: [number[], number]) => InputData;
@@ -1,5 +0,0 @@
1
- import type { Route } from "../../types.d.ts";
2
- import type { SubInner } from "./types.d.ts";
3
- /** This function subtracts 2 numbers (as array). */
4
- export declare const subInner: SubInner;
5
- export declare const subRoute: Route;
@@ -1,81 +0,0 @@
1
- import { addInner } from "../add/utils.js";
2
- /** This function subtracts 2 numbers (as array). */
3
- export var subInner = function (_a, _b) {
4
- var _c, _d;
5
- var _e, _f;
6
- var arrL = _a[0], intL = _a[1];
7
- var arrR = _b[0], intR = _b[1];
8
- var lenDiff = (intL - intR) * (intL > intR ? 1 : -1);
9
- var _g = intL >= intR
10
- ? [arrL, arrR, intL, intR]
11
- : [arrR, arrL, intR, intL], left = _g[0], right = _g[1], intLeft = _g[2], intRight = _g[3];
12
- var fracLenL = left.length - intLeft;
13
- var fracLenR = right.length - intRight;
14
- var pl = lenDiff;
15
- var pr = 0;
16
- var isLeftBigger = lenDiff > 0;
17
- var carryOver = false;
18
- var isNegative = intLeft !== intL;
19
- while (pl > left.length - 1) {
20
- left.push(48);
21
- }
22
- while (pr < right.length) {
23
- var sub = (((_e = left[pl]) !== null && _e !== void 0 ? _e : 48) - ((_f = right[pr]) !== null && _f !== void 0 ? _f : 48)) + 48;
24
- if (!isLeftBigger && left[pl] > right[pr]) {
25
- isLeftBigger = true;
26
- }
27
- if (!isLeftBigger && sub < 48 && lenDiff === 0) {
28
- _c = [right, left], left = _c[0], right = _c[1];
29
- _d = [intR, intL], intL = _d[0], intR = _d[1];
30
- isLeftBigger = true;
31
- isNegative = true;
32
- continue;
33
- }
34
- if (sub < 48) {
35
- sub += 10;
36
- carryOver = true;
37
- }
38
- var plReverse = pl - 1;
39
- var prReverse = pr - 1;
40
- while (carryOver) {
41
- if (left[plReverse] !== 48) {
42
- plReverse >= 0 && (left[plReverse] -= 1);
43
- prReverse >= 0 && (right[prReverse] -= 1);
44
- carryOver = false;
45
- }
46
- else {
47
- plReverse >= 0 && (left[plReverse] = 57);
48
- prReverse >= 0 && (right[prReverse] = 57);
49
- }
50
- plReverse -= 1;
51
- prReverse -= 1;
52
- }
53
- left[pl] = sub;
54
- right[pr] = sub;
55
- pl += 1;
56
- pr += 1;
57
- }
58
- while (left[0] === 48 && left.length > 1) {
59
- left.shift();
60
- intLeft -= 1;
61
- }
62
- return {
63
- array: left,
64
- intLength: intLeft,
65
- isNegative: isNegative,
66
- isFloat: fracLenL + fracLenR > 0,
67
- };
68
- };
69
- export var subRoute = function (input, initValue) {
70
- return input.reduce(function (left, right) {
71
- if (left.array.length === 0)
72
- return right;
73
- if (left.isNegative && right.isNegative) {
74
- return subInner([right.array, right.intLength], [left.array, left.intLength]);
75
- }
76
- if (!left.isNegative && !right.isNegative) {
77
- return subInner([left.array, left.intLength], [right.array, right.intLength]);
78
- }
79
- return addInner([left.array, left.intLength], [right.array, right.intLength], left.isNegative);
80
- }, initValue);
81
- };
package/src/types.d.ts DELETED
@@ -1,7 +0,0 @@
1
- export type InputData = {
2
- array: number[];
3
- intLength: number;
4
- isNegative: boolean;
5
- isFloat: boolean;
6
- };
7
- export type Route = (input: InputData[], initValue: InputData) => InputData;