mathjs 10.0.0 → 10.1.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.
Files changed (70) hide show
  1. package/HISTORY.md +37 -0
  2. package/NOTICE +1 -1
  3. package/README.md +10 -2
  4. package/bin/cli.js +1 -1
  5. package/docs/expressions/syntax.md +1 -1
  6. package/docs/reference/constants.md +1 -1
  7. package/docs/reference/functions/invmod.md +41 -0
  8. package/docs/reference/functions/simplify.md +8 -5
  9. package/docs/reference/functions.md +1 -0
  10. package/examples/expressions.js +1 -1
  11. package/lib/browser/math.js +7 -7
  12. package/lib/browser/math.js.map +1 -1
  13. package/lib/cjs/entry/dependenciesAny/dependenciesIntersect.generated.js +6 -0
  14. package/lib/cjs/entry/dependenciesAny/dependenciesInvmod.generated.js +41 -0
  15. package/lib/cjs/entry/dependenciesAny/dependenciesRationalize.generated.js +15 -0
  16. package/lib/cjs/entry/dependenciesAny/dependenciesSimplify.generated.js +15 -0
  17. package/lib/cjs/entry/dependenciesAny.generated.js +8 -0
  18. package/lib/cjs/entry/dependenciesNumber/dependenciesRationalize.generated.js +15 -0
  19. package/lib/cjs/entry/dependenciesNumber/dependenciesSimplify.generated.js +15 -0
  20. package/lib/cjs/entry/impureFunctionsAny.generated.js +11 -0
  21. package/lib/cjs/entry/impureFunctionsNumber.generated.js +10 -0
  22. package/lib/cjs/entry/pureFunctionsAny.generated.js +16 -2
  23. package/lib/cjs/expression/embeddedDocs/embeddedDocs.js +6 -1
  24. package/lib/cjs/expression/embeddedDocs/function/arithmetic/invmod.js +15 -0
  25. package/lib/cjs/expression/embeddedDocs/function/matrix/forEach.js +1 -1
  26. package/lib/cjs/factoriesAny.js +8 -0
  27. package/lib/cjs/function/algebra/rationalize.js +18 -4
  28. package/lib/cjs/function/algebra/simplify/simplifyConstant.js +223 -29
  29. package/lib/cjs/function/algebra/simplify/simplifyCore.js +34 -6
  30. package/lib/cjs/function/algebra/simplify.js +103 -30
  31. package/lib/cjs/function/arithmetic/invmod.js +73 -0
  32. package/lib/cjs/function/arithmetic/round.js +2 -2
  33. package/lib/cjs/function/geometry/intersect.js +12 -13
  34. package/lib/cjs/function/probability/gamma.js +28 -30
  35. package/lib/cjs/header.js +3 -3
  36. package/lib/cjs/type/matrix/SparseMatrix.js +19 -15
  37. package/lib/cjs/type/unit/Unit.js +2 -2
  38. package/lib/cjs/utils/number.js +1 -1
  39. package/lib/cjs/utils/snapshot.js +2 -2
  40. package/lib/cjs/version.js +1 -1
  41. package/lib/esm/entry/dependenciesAny/dependenciesIntersect.generated.js +4 -0
  42. package/lib/esm/entry/dependenciesAny/dependenciesInvmod.generated.js +24 -0
  43. package/lib/esm/entry/dependenciesAny/dependenciesRationalize.generated.js +10 -0
  44. package/lib/esm/entry/dependenciesAny/dependenciesSimplify.generated.js +10 -0
  45. package/lib/esm/entry/dependenciesAny.generated.js +1 -0
  46. package/lib/esm/entry/dependenciesNumber/dependenciesRationalize.generated.js +10 -0
  47. package/lib/esm/entry/dependenciesNumber/dependenciesSimplify.generated.js +10 -0
  48. package/lib/esm/entry/impureFunctionsAny.generated.js +12 -1
  49. package/lib/esm/entry/impureFunctionsNumber.generated.js +10 -0
  50. package/lib/esm/entry/pureFunctionsAny.generated.js +14 -1
  51. package/lib/esm/expression/embeddedDocs/embeddedDocs.js +4 -1
  52. package/lib/esm/expression/embeddedDocs/function/arithmetic/invmod.js +8 -0
  53. package/lib/esm/expression/embeddedDocs/function/matrix/forEach.js +1 -1
  54. package/lib/esm/factoriesAny.js +1 -0
  55. package/lib/esm/function/algebra/rationalize.js +18 -4
  56. package/lib/esm/function/algebra/simplify/simplifyConstant.js +197 -29
  57. package/lib/esm/function/algebra/simplify/simplifyCore.js +35 -7
  58. package/lib/esm/function/algebra/simplify.js +103 -30
  59. package/lib/esm/function/arithmetic/invmod.js +57 -0
  60. package/lib/esm/function/arithmetic/round.js +2 -2
  61. package/lib/esm/function/geometry/intersect.js +12 -12
  62. package/lib/esm/function/probability/gamma.js +28 -30
  63. package/lib/esm/header.js +1 -1
  64. package/lib/esm/type/matrix/SparseMatrix.js +19 -15
  65. package/lib/esm/type/unit/Unit.js +2 -2
  66. package/lib/esm/utils/number.js +1 -1
  67. package/lib/esm/utils/snapshot.js +2 -2
  68. package/lib/esm/version.js +1 -1
  69. package/package.json +15 -14
  70. package/types/index.d.ts +4 -4
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.createInvmod = void 0;
9
+
10
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
+
12
+ var _factory = require("../../utils/factory.js");
13
+
14
+ var name = 'invmod';
15
+ var dependencies = ['typed', 'config', 'BigNumber', 'xgcd', 'equal', 'smaller', 'mod', 'add', 'isInteger'];
16
+ var createInvmod = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
17
+ var typed = _ref.typed,
18
+ config = _ref.config,
19
+ BigNumber = _ref.BigNumber,
20
+ xgcd = _ref.xgcd,
21
+ equal = _ref.equal,
22
+ smaller = _ref.smaller,
23
+ mod = _ref.mod,
24
+ add = _ref.add,
25
+ isInteger = _ref.isInteger;
26
+
27
+ /**
28
+ * Calculate the (modular) multiplicative inverse of a modulo b. Solution to the equation `ax ≣ 1 (mod b)`
29
+ * See https://en.wikipedia.org/wiki/Modular_multiplicative_inverse.
30
+ *
31
+ * Syntax:
32
+ *
33
+ * math.invmod(a, b)
34
+ *
35
+ * Examples:
36
+ *
37
+ * math.invmod(8, 12) // returns NaN
38
+ * math.invmod(7, 13) // return 2
39
+ * math.invmod(15151, 15122) // returns 10429
40
+ *
41
+ * See also:
42
+ *
43
+ * gcd, xgcd
44
+ *
45
+ * @param {number | BigNumber} a An integer number
46
+ * @param {number | BigNumber} b An integer number
47
+ * @return {number | BigNumber } Returns an integer number
48
+ * where `invmod(a,b)*a ≣ 1 (mod b)`
49
+ */
50
+ return typed(name, {
51
+ 'number, number': invmod,
52
+ 'BigNumber, BigNumber': invmod
53
+ });
54
+
55
+ function invmod(a, b) {
56
+ if (!isInteger(a) || !isInteger(b)) throw new Error('Parameters in function invmod must be integer numbers');
57
+ a = mod(a, b);
58
+ if (equal(b, 0)) throw new Error('Divisor must be non zero');
59
+ var res = xgcd(a, b);
60
+ res = res.valueOf();
61
+
62
+ var _res = res,
63
+ _res2 = (0, _slicedToArray2["default"])(_res, 2),
64
+ gcd = _res2[0],
65
+ inv = _res2[1];
66
+
67
+ if (!equal(gcd, BigNumber(1))) return NaN;
68
+ inv = mod(inv, b);
69
+ if (smaller(inv, BigNumber(0))) inv = add(inv, b);
70
+ return inv;
71
+ }
72
+ });
73
+ exports.createInvmod = createInvmod;
@@ -23,9 +23,9 @@ var _algorithm3 = require("../../type/matrix/utils/algorithm14.js");
23
23
 
24
24
  var _index = require("../../plain/number/index.js");
25
25
 
26
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
26
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
27
27
 
28
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
28
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
29
29
 
30
30
  var NO_INT = 'Number of decimals in function round must be an integer';
31
31
  var name = 'round';
@@ -5,12 +5,10 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.createIntersect = void 0;
7
7
 
8
- var _is = require("../../utils/is.js");
9
-
10
8
  var _factory = require("../../utils/factory.js");
11
9
 
12
10
  var name = 'intersect';
13
- var dependencies = ['typed', 'config', 'abs', 'add', 'addScalar', 'matrix', 'multiply', 'multiplyScalar', 'divideScalar', 'subtract', 'smaller', 'equalScalar', 'flatten'];
11
+ var dependencies = ['typed', 'config', 'abs', 'add', 'addScalar', 'matrix', 'multiply', 'multiplyScalar', 'divideScalar', 'subtract', 'smaller', 'equalScalar', 'flatten', 'isZero', 'isNumeric'];
14
12
  var createIntersect = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
15
13
  var typed = _ref.typed,
16
14
  config = _ref.config,
@@ -24,7 +22,9 @@ var createIntersect = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
24
22
  subtract = _ref.subtract,
25
23
  smaller = _ref.smaller,
26
24
  equalScalar = _ref.equalScalar,
27
- flatten = _ref.flatten;
25
+ flatten = _ref.flatten,
26
+ isZero = _ref.isZero,
27
+ isNumeric = _ref.isNumeric;
28
28
 
29
29
  /**
30
30
  * Calculates the point of intersection of two lines in two or three dimensions
@@ -151,21 +151,16 @@ var createIntersect = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
151
151
  return arr;
152
152
  }
153
153
 
154
- function _isNumeric(a) {
155
- // intersect supports numbers and bignumbers
156
- return typeof a === 'number' || (0, _is.isBigNumber)(a);
157
- }
158
-
159
154
  function _2d(x) {
160
- return x.length === 2 && _isNumeric(x[0]) && _isNumeric(x[1]);
155
+ return x.length === 2 && isNumeric(x[0]) && isNumeric(x[1]);
161
156
  }
162
157
 
163
158
  function _3d(x) {
164
- return x.length === 3 && _isNumeric(x[0]) && _isNumeric(x[1]) && _isNumeric(x[2]);
159
+ return x.length === 3 && isNumeric(x[0]) && isNumeric(x[1]) && isNumeric(x[2]);
165
160
  }
166
161
 
167
162
  function _4d(x) {
168
- return x.length === 4 && _isNumeric(x[0]) && _isNumeric(x[1]) && _isNumeric(x[2]) && _isNumeric(x[3]);
163
+ return x.length === 4 && isNumeric(x[0]) && isNumeric(x[1]) && isNumeric(x[2]) && isNumeric(x[3]);
169
164
  }
170
165
 
171
166
  function _intersect2d(p1a, p1b, p2a, p2b) {
@@ -174,6 +169,7 @@ var createIntersect = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
174
169
  var d1 = subtract(o1, p1b);
175
170
  var d2 = subtract(o2, p2b);
176
171
  var det = subtract(multiplyScalar(d1[0], d2[1]), multiplyScalar(d2[0], d1[1]));
172
+ if (isZero(det)) return null;
177
173
 
178
174
  if (smaller(abs(det), config.epsilon)) {
179
175
  return null;
@@ -206,7 +202,10 @@ var createIntersect = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
206
202
 
207
203
  var d2121 = _intersect3dHelper(x2, x1, x2, x1, y2, y1, y2, y1, z2, z1, z2, z1);
208
204
 
209
- var ta = divideScalar(subtract(multiplyScalar(d1343, d4321), multiplyScalar(d1321, d4343)), subtract(multiplyScalar(d2121, d4343), multiplyScalar(d4321, d4321)));
205
+ var numerator = subtract(multiplyScalar(d1343, d4321), multiplyScalar(d1321, d4343));
206
+ var denominator = subtract(multiplyScalar(d2121, d4343), multiplyScalar(d4321, d4321));
207
+ if (isZero(denominator)) return null;
208
+ var ta = divideScalar(numerator, denominator);
210
209
  var tb = divideScalar(addScalar(d1343, multiplyScalar(ta, d4321)), d4343);
211
210
  var pax = addScalar(x1, multiplyScalar(ta, subtract(x2, x1)));
212
211
  var pay = addScalar(y1, multiplyScalar(ta, subtract(y2, y1)));
@@ -49,44 +49,42 @@ var createGamma = /* #__PURE__ */(0, _factory.factory)(name, dependencies, funct
49
49
  Complex: function Complex(n) {
50
50
  if (n.im === 0) {
51
51
  return this(n.re);
52
- }
52
+ } // Lanczos approximation doesn't work well with real part lower than 0.5
53
+ // So reflection formula is required
54
+
55
+
56
+ if (n.re < 0.5) {
57
+ // Euler's reflection formula
58
+ // gamma(1-z) * gamma(z) = PI / sin(PI * z)
59
+ // real part of Z should not be integer [sin(PI) == 0 -> 1/0 - undefined]
60
+ // thanks to imperfect sin implementation sin(PI * n) != 0
61
+ // we can safely use it anyway
62
+ var _t = new _Complex(1 - n.re, -n.im);
63
+
64
+ var r = new _Complex(Math.PI * n.re, Math.PI * n.im);
65
+ return new _Complex(Math.PI).div(r.sin()).div(this(_t));
66
+ } // Lanczos approximation
67
+ // z -= 1
68
+
53
69
 
54
- n = new _Complex(n.re - 1, n.im);
55
- var x = new _Complex(_index.gammaP[0], 0);
70
+ n = new _Complex(n.re - 1, n.im); // x = gammaPval[0]
71
+
72
+ var x = new _Complex(_index.gammaP[0], 0); // for (i, gammaPval) in enumerate(gammaP):
56
73
 
57
74
  for (var i = 1; i < _index.gammaP.length; ++i) {
58
- var real = n.re + i; // x += p[i]/(n+i)
75
+ // x += gammaPval / (z + i)
76
+ var gammaPval = new _Complex(_index.gammaP[i], 0);
77
+ x = x.add(gammaPval.div(n.add(i)));
78
+ } // t = z + gammaG + 0.5
59
79
 
60
- var den = real * real + n.im * n.im;
61
80
 
62
- if (den !== 0) {
63
- x.re += _index.gammaP[i] * real / den;
64
- x.im += -(_index.gammaP[i] * n.im) / den;
65
- } else {
66
- x.re = _index.gammaP[i] < 0 ? -Infinity : Infinity;
67
- }
68
- }
81
+ var t = new _Complex(n.re + _index.gammaG + 0.5, n.im); // y = sqrt(2 * pi) * t ** (z + 0.5) * exp(-t) * x
69
82
 
70
- var t = new _Complex(n.re + _index.gammaG + 0.5, n.im);
71
83
  var twoPiSqrt = Math.sqrt(2 * Math.PI);
72
- n.re += 0.5;
73
- var result = pow(t, n);
74
-
75
- if (result.im === 0) {
76
- // sqrt(2*PI)*result
77
- result.re *= twoPiSqrt;
78
- } else if (result.re === 0) {
79
- result.im *= twoPiSqrt;
80
- } else {
81
- result.re *= twoPiSqrt;
82
- result.im *= twoPiSqrt;
83
- }
84
-
85
- var r = Math.exp(-t.re); // exp(-t)
84
+ var tpow = t.pow(n.add(0.5));
85
+ var expt = t.neg().exp(); // y = [x] * [sqrt(2 * pi)] * [t ** (z + 0.5)] * [exp(-t)]
86
86
 
87
- t.re = r * Math.cos(-t.im);
88
- t.im = r * Math.sin(-t.im);
89
- return multiplyScalar(multiplyScalar(result, t), x);
87
+ return x.mul(twoPiSqrt).mul(tpow).mul(expt);
90
88
  },
91
89
  BigNumber: function BigNumber(n) {
92
90
  if (n.isInteger()) {
package/lib/cjs/header.js CHANGED
@@ -6,11 +6,11 @@
6
6
  * It features real and complex numbers, units, matrices, a large set of
7
7
  * mathematical functions, and a flexible expression parser.
8
8
  *
9
- * @version 10.0.0
10
- * @date 2021-11-03
9
+ * @version 10.1.1
10
+ * @date 2022-02-02
11
11
  *
12
12
  * @license
13
- * Copyright (C) 2013-2021 Jos de Jong <wjosdejong@gmail.com>
13
+ * Copyright (C) 2013-2022 Jos de Jong <wjosdejong@gmail.com>
14
14
  *
15
15
  * Licensed under the Apache License, Version 2.0 (the "License"); you may not
16
16
  * use this file except in compliance with the License. You may obtain a copy
@@ -433,23 +433,27 @@ var createSparseMatrixClass = /* #__PURE__ */(0, _factory.factory)(name, depende
433
433
 
434
434
  if (!(0, _object.deepStrictEqual)(iSize, sSize)) {
435
435
  throw new _DimensionError.DimensionError(iSize, sSize, '>');
436
- } // offsets
436
+ } // insert the sub matrix
437
437
 
438
438
 
439
- var x0 = index.min()[0];
440
- var y0 = index.min()[1]; // submatrix rows and columns
441
-
442
- var m = sSize[0];
443
- var n = sSize[1]; // loop submatrix
444
-
445
- for (var x = 0; x < m; x++) {
446
- // loop columns
447
- for (var y = 0; y < n; y++) {
448
- // value at i, j
449
- var v = submatrix[x][y]; // invoke set (zero value will remove entry from matrix)
450
-
451
- matrix.set([x + x0, y + y0], v, defaultValue);
452
- }
439
+ if (iSize.length === 1) {
440
+ // if the replacement index only has 1 dimension, go trough each one and set its value
441
+ var range = index.dimension(0);
442
+ range.forEach(function (dataIndex, subIndex) {
443
+ (0, _array.validateIndex)(dataIndex);
444
+ matrix.set([dataIndex, 0], submatrix[subIndex[0]], defaultValue);
445
+ });
446
+ } else {
447
+ // if the replacement index has 2 dimensions, go through each one and set the value in the correct index
448
+ var firstDimensionRange = index.dimension(0);
449
+ var secondDimensionRange = index.dimension(1);
450
+ firstDimensionRange.forEach(function (firstDataIndex, firstSubIndex) {
451
+ (0, _array.validateIndex)(firstDataIndex);
452
+ secondDimensionRange.forEach(function (secondDataIndex, secondSubIndex) {
453
+ (0, _array.validateIndex)(secondDataIndex);
454
+ matrix.set([firstDataIndex, secondDataIndex], submatrix[firstSubIndex[0]][secondSubIndex[0]], defaultValue);
455
+ });
456
+ });
453
457
  }
454
458
  }
455
459
 
@@ -25,9 +25,9 @@ var _object = require("../../utils/object.js");
25
25
 
26
26
  var _constants = require("../../utils/bignumber/constants.js");
27
27
 
28
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
28
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
29
29
 
30
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
30
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
31
31
 
32
32
  var name = 'Unit';
33
33
  var dependencies = ['?on', 'config', 'addScalar', 'subtract', 'multiplyScalar', 'divideScalar', 'pow', 'abs', 'fix', 'round', 'equal', 'isNumeric', 'format', 'number', 'Complex', 'BigNumber', 'Fraction'];
@@ -359,7 +359,7 @@ function format(value, options) {
359
359
 
360
360
  function splitNumber(value) {
361
361
  // parse the input value
362
- var match = String(value).toLowerCase().match(/^0*?(-?)(\d+\.?\d*)(e([+-]?\d+))?$/);
362
+ var match = String(value).toLowerCase().match(/^(-?)(\d+\.?\d*)(e([+-]?\d+))?$/);
363
363
 
364
364
  if (!match) {
365
365
  throw new SyntaxError('Invalid number ' + value);
@@ -29,9 +29,9 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
29
29
 
30
30
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
31
31
 
32
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
32
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
33
33
 
34
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
34
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
35
35
 
36
36
  function validateBundle(expectedBundleStructure, bundle) {
37
37
  var originalWarn = console.warn;
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.version = void 0;
7
- var version = '10.0.0'; // Note: This file is automatically generated when building math.js.
7
+ var version = '10.1.1'; // Note: This file is automatically generated when building math.js.
8
8
  // Changes made in this file will be overwritten.
9
9
 
10
10
  exports.version = version;
@@ -8,6 +8,8 @@ import { addScalarDependencies } from './dependenciesAddScalar.generated.js';
8
8
  import { divideScalarDependencies } from './dependenciesDivideScalar.generated.js';
9
9
  import { equalScalarDependencies } from './dependenciesEqualScalar.generated.js';
10
10
  import { flattenDependencies } from './dependenciesFlatten.generated.js';
11
+ import { isNumericDependencies } from './dependenciesIsNumeric.generated.js';
12
+ import { isZeroDependencies } from './dependenciesIsZero.generated.js';
11
13
  import { matrixDependencies } from './dependenciesMatrix.generated.js';
12
14
  import { multiplyDependencies } from './dependenciesMultiply.generated.js';
13
15
  import { multiplyScalarDependencies } from './dependenciesMultiplyScalar.generated.js';
@@ -22,6 +24,8 @@ export var intersectDependencies = {
22
24
  divideScalarDependencies,
23
25
  equalScalarDependencies,
24
26
  flattenDependencies,
27
+ isNumericDependencies,
28
+ isZeroDependencies,
25
29
  matrixDependencies,
26
30
  multiplyDependencies,
27
31
  multiplyScalarDependencies,
@@ -0,0 +1,24 @@
1
+ /**
2
+ * THIS FILE IS AUTO-GENERATED
3
+ * DON'T MAKE CHANGES HERE
4
+ */
5
+ import { BigNumberDependencies } from './dependenciesBigNumberClass.generated.js';
6
+ import { addDependencies } from './dependenciesAdd.generated.js';
7
+ import { equalDependencies } from './dependenciesEqual.generated.js';
8
+ import { isIntegerDependencies } from './dependenciesIsInteger.generated.js';
9
+ import { modDependencies } from './dependenciesMod.generated.js';
10
+ import { smallerDependencies } from './dependenciesSmaller.generated.js';
11
+ import { typedDependencies } from './dependenciesTyped.generated.js';
12
+ import { xgcdDependencies } from './dependenciesXgcd.generated.js';
13
+ import { createInvmod } from '../../factoriesAny.js';
14
+ export var invmodDependencies = {
15
+ BigNumberDependencies,
16
+ addDependencies,
17
+ equalDependencies,
18
+ isIntegerDependencies,
19
+ modDependencies,
20
+ smallerDependencies,
21
+ typedDependencies,
22
+ xgcdDependencies,
23
+ createInvmod
24
+ };
@@ -4,8 +4,12 @@
4
4
  */
5
5
  import { bignumberDependencies } from './dependenciesBignumber.generated.js';
6
6
  import { fractionDependencies } from './dependenciesFraction.generated.js';
7
+ import { AccessorNodeDependencies } from './dependenciesAccessorNode.generated.js';
8
+ import { ArrayNodeDependencies } from './dependenciesArrayNode.generated.js';
7
9
  import { ConstantNodeDependencies } from './dependenciesConstantNode.generated.js';
8
10
  import { FunctionNodeDependencies } from './dependenciesFunctionNode.generated.js';
11
+ import { IndexNodeDependencies } from './dependenciesIndexNode.generated.js';
12
+ import { ObjectNodeDependencies } from './dependenciesObjectNode.generated.js';
9
13
  import { OperatorNodeDependencies } from './dependenciesOperatorNode.generated.js';
10
14
  import { ParenthesisNodeDependencies } from './dependenciesParenthesisNode.generated.js';
11
15
  import { SymbolNodeDependencies } from './dependenciesSymbolNode.generated.js';
@@ -13,6 +17,7 @@ import { addDependencies } from './dependenciesAdd.generated.js';
13
17
  import { divideDependencies } from './dependenciesDivide.generated.js';
14
18
  import { equalDependencies } from './dependenciesEqual.generated.js';
15
19
  import { isZeroDependencies } from './dependenciesIsZero.generated.js';
20
+ import { matrixDependencies } from './dependenciesMatrix.generated.js';
16
21
  import { multiplyDependencies } from './dependenciesMultiply.generated.js';
17
22
  import { parseDependencies } from './dependenciesParse.generated.js';
18
23
  import { powDependencies } from './dependenciesPow.generated.js';
@@ -23,8 +28,12 @@ import { createRationalize } from '../../factoriesAny.js';
23
28
  export var rationalizeDependencies = {
24
29
  bignumberDependencies,
25
30
  fractionDependencies,
31
+ AccessorNodeDependencies,
32
+ ArrayNodeDependencies,
26
33
  ConstantNodeDependencies,
27
34
  FunctionNodeDependencies,
35
+ IndexNodeDependencies,
36
+ ObjectNodeDependencies,
28
37
  OperatorNodeDependencies,
29
38
  ParenthesisNodeDependencies,
30
39
  SymbolNodeDependencies,
@@ -32,6 +41,7 @@ export var rationalizeDependencies = {
32
41
  divideDependencies,
33
42
  equalDependencies,
34
43
  isZeroDependencies,
44
+ matrixDependencies,
35
45
  multiplyDependencies,
36
46
  parseDependencies,
37
47
  powDependencies,
@@ -4,8 +4,12 @@
4
4
  */
5
5
  import { bignumberDependencies } from './dependenciesBignumber.generated.js';
6
6
  import { fractionDependencies } from './dependenciesFraction.generated.js';
7
+ import { AccessorNodeDependencies } from './dependenciesAccessorNode.generated.js';
8
+ import { ArrayNodeDependencies } from './dependenciesArrayNode.generated.js';
7
9
  import { ConstantNodeDependencies } from './dependenciesConstantNode.generated.js';
8
10
  import { FunctionNodeDependencies } from './dependenciesFunctionNode.generated.js';
11
+ import { IndexNodeDependencies } from './dependenciesIndexNode.generated.js';
12
+ import { ObjectNodeDependencies } from './dependenciesObjectNode.generated.js';
9
13
  import { OperatorNodeDependencies } from './dependenciesOperatorNode.generated.js';
10
14
  import { ParenthesisNodeDependencies } from './dependenciesParenthesisNode.generated.js';
11
15
  import { SymbolNodeDependencies } from './dependenciesSymbolNode.generated.js';
@@ -13,6 +17,7 @@ import { addDependencies } from './dependenciesAdd.generated.js';
13
17
  import { divideDependencies } from './dependenciesDivide.generated.js';
14
18
  import { equalDependencies } from './dependenciesEqual.generated.js';
15
19
  import { isZeroDependencies } from './dependenciesIsZero.generated.js';
20
+ import { matrixDependencies } from './dependenciesMatrix.generated.js';
16
21
  import { multiplyDependencies } from './dependenciesMultiply.generated.js';
17
22
  import { parseDependencies } from './dependenciesParse.generated.js';
18
23
  import { powDependencies } from './dependenciesPow.generated.js';
@@ -22,8 +27,12 @@ import { createSimplify } from '../../factoriesAny.js';
22
27
  export var simplifyDependencies = {
23
28
  bignumberDependencies,
24
29
  fractionDependencies,
30
+ AccessorNodeDependencies,
31
+ ArrayNodeDependencies,
25
32
  ConstantNodeDependencies,
26
33
  FunctionNodeDependencies,
34
+ IndexNodeDependencies,
35
+ ObjectNodeDependencies,
27
36
  OperatorNodeDependencies,
28
37
  ParenthesisNodeDependencies,
29
38
  SymbolNodeDependencies,
@@ -31,6 +40,7 @@ export var simplifyDependencies = {
31
40
  divideDependencies,
32
41
  equalDependencies,
33
42
  isZeroDependencies,
43
+ matrixDependencies,
34
44
  multiplyDependencies,
35
45
  parseDependencies,
36
46
  powDependencies,
@@ -148,6 +148,7 @@ export { InfinityDependencies } from './dependenciesAny/dependenciesInfinity.gen
148
148
  export { intersectDependencies } from './dependenciesAny/dependenciesIntersect.generated.js';
149
149
  export { invDependencies } from './dependenciesAny/dependenciesInv.generated.js';
150
150
  export { inverseConductanceQuantumDependencies } from './dependenciesAny/dependenciesInverseConductanceQuantum.generated.js';
151
+ export { invmodDependencies } from './dependenciesAny/dependenciesInvmod.generated.js';
151
152
  export { isIntegerDependencies } from './dependenciesAny/dependenciesIsInteger.generated.js';
152
153
  export { isNaNDependencies } from './dependenciesAny/dependenciesIsNaN.generated.js';
153
154
  export { isNegativeDependencies } from './dependenciesAny/dependenciesIsNegative.generated.js';
@@ -2,8 +2,12 @@
2
2
  * THIS FILE IS AUTO-GENERATED
3
3
  * DON'T MAKE CHANGES HERE
4
4
  */
5
+ import { AccessorNodeDependencies } from './dependenciesAccessorNode.generated.js';
6
+ import { ArrayNodeDependencies } from './dependenciesArrayNode.generated.js';
5
7
  import { ConstantNodeDependencies } from './dependenciesConstantNode.generated.js';
6
8
  import { FunctionNodeDependencies } from './dependenciesFunctionNode.generated.js';
9
+ import { IndexNodeDependencies } from './dependenciesIndexNode.generated.js';
10
+ import { ObjectNodeDependencies } from './dependenciesObjectNode.generated.js';
7
11
  import { OperatorNodeDependencies } from './dependenciesOperatorNode.generated.js';
8
12
  import { ParenthesisNodeDependencies } from './dependenciesParenthesisNode.generated.js';
9
13
  import { SymbolNodeDependencies } from './dependenciesSymbolNode.generated.js';
@@ -11,6 +15,7 @@ import { addDependencies } from './dependenciesAdd.generated.js';
11
15
  import { divideDependencies } from './dependenciesDivide.generated.js';
12
16
  import { equalDependencies } from './dependenciesEqual.generated.js';
13
17
  import { isZeroDependencies } from './dependenciesIsZero.generated.js';
18
+ import { matrixDependencies } from './dependenciesMatrix.generated.js';
14
19
  import { multiplyDependencies } from './dependenciesMultiply.generated.js';
15
20
  import { parseDependencies } from './dependenciesParse.generated.js';
16
21
  import { powDependencies } from './dependenciesPow.generated.js';
@@ -19,8 +24,12 @@ import { subtractDependencies } from './dependenciesSubtract.generated.js';
19
24
  import { typedDependencies } from './dependenciesTyped.generated.js';
20
25
  import { createRationalize } from '../../factoriesNumber.js';
21
26
  export var rationalizeDependencies = {
27
+ AccessorNodeDependencies,
28
+ ArrayNodeDependencies,
22
29
  ConstantNodeDependencies,
23
30
  FunctionNodeDependencies,
31
+ IndexNodeDependencies,
32
+ ObjectNodeDependencies,
24
33
  OperatorNodeDependencies,
25
34
  ParenthesisNodeDependencies,
26
35
  SymbolNodeDependencies,
@@ -28,6 +37,7 @@ export var rationalizeDependencies = {
28
37
  divideDependencies,
29
38
  equalDependencies,
30
39
  isZeroDependencies,
40
+ matrixDependencies,
31
41
  multiplyDependencies,
32
42
  parseDependencies,
33
43
  powDependencies,
@@ -2,8 +2,12 @@
2
2
  * THIS FILE IS AUTO-GENERATED
3
3
  * DON'T MAKE CHANGES HERE
4
4
  */
5
+ import { AccessorNodeDependencies } from './dependenciesAccessorNode.generated.js';
6
+ import { ArrayNodeDependencies } from './dependenciesArrayNode.generated.js';
5
7
  import { ConstantNodeDependencies } from './dependenciesConstantNode.generated.js';
6
8
  import { FunctionNodeDependencies } from './dependenciesFunctionNode.generated.js';
9
+ import { IndexNodeDependencies } from './dependenciesIndexNode.generated.js';
10
+ import { ObjectNodeDependencies } from './dependenciesObjectNode.generated.js';
7
11
  import { OperatorNodeDependencies } from './dependenciesOperatorNode.generated.js';
8
12
  import { ParenthesisNodeDependencies } from './dependenciesParenthesisNode.generated.js';
9
13
  import { SymbolNodeDependencies } from './dependenciesSymbolNode.generated.js';
@@ -11,6 +15,7 @@ import { addDependencies } from './dependenciesAdd.generated.js';
11
15
  import { divideDependencies } from './dependenciesDivide.generated.js';
12
16
  import { equalDependencies } from './dependenciesEqual.generated.js';
13
17
  import { isZeroDependencies } from './dependenciesIsZero.generated.js';
18
+ import { matrixDependencies } from './dependenciesMatrix.generated.js';
14
19
  import { multiplyDependencies } from './dependenciesMultiply.generated.js';
15
20
  import { parseDependencies } from './dependenciesParse.generated.js';
16
21
  import { powDependencies } from './dependenciesPow.generated.js';
@@ -18,8 +23,12 @@ import { subtractDependencies } from './dependenciesSubtract.generated.js';
18
23
  import { typedDependencies } from './dependenciesTyped.generated.js';
19
24
  import { createSimplify } from '../../factoriesNumber.js';
20
25
  export var simplifyDependencies = {
26
+ AccessorNodeDependencies,
27
+ ArrayNodeDependencies,
21
28
  ConstantNodeDependencies,
22
29
  FunctionNodeDependencies,
30
+ IndexNodeDependencies,
31
+ ObjectNodeDependencies,
23
32
  OperatorNodeDependencies,
24
33
  ParenthesisNodeDependencies,
25
34
  SymbolNodeDependencies,
@@ -27,6 +36,7 @@ export var simplifyDependencies = {
27
36
  divideDependencies,
28
37
  equalDependencies,
29
38
  isZeroDependencies,
39
+ matrixDependencies,
30
40
  multiplyDependencies,
31
41
  parseDependencies,
32
42
  powDependencies,
@@ -7,7 +7,7 @@ import _extends from "@babel/runtime/helpers/extends";
7
7
  import { config } from './configReadonly.js';
8
8
  import { createChainClass, createNode, createObjectNode, createOperatorNode, createParenthesisNode, createRelationalNode, createArrayNode, createBlockNode, createConditionalNode, createConstantNode, createRangeNode, createReviver, createChain, createFunctionAssignmentNode, createAccessorNode, createAssignmentNode, createIndexNode, createSymbolNode, createFunctionNode, createParse, createCompile, createEvaluate, createHelpClass, createParserClass, createParser, createSimplify, createDerivative, createHelp, createRationalize, createFilterTransform, createForEachTransform, createMapTransform, createApplyTransform, createDiffTransform, createIndexTransform, createSubsetTransform, createConcatTransform, createMaxTransform, createMinTransform, createRangeTransform, createRowTransform, createSumTransform, createColumnTransform, createMeanTransform, createVarianceTransform, createStdTransform } from '../factoriesAny.js';
9
9
  import { BigNumber, Complex, e, _false, fineStructure, Fraction, i, _Infinity, LN10, LOG10E, Matrix, _NaN, _null, phi, Range, ResultSet, SQRT1_2, // eslint-disable-line camelcase
10
- sackurTetrode, tau, _true, version, DenseMatrix, efimovFactor, LN2, pi, replacer, SQRT2, typed, unaryPlus, weakMixingAngle, abs, acos, acot, acsc, addScalar, arg, asech, asinh, atan, atanh, bignumber, bitNot, boolean, clone, combinations, complex, conj, cosh, coth, csc, cube, equalScalar, erf, exp, expm1, filter, forEach, format, getMatrixDataType, hex, im, isInteger, isNegative, isPositive, isZero, LOG2E, log10, log2, map, multiplyScalar, not, number, oct, pickRandom, print, random, re, sec, sign, sin, SparseMatrix, splitUnit, square, string, tan, typeOf, acosh, acsch, apply, asec, bin, combinationsWithRep, cos, csch, isNaN, isPrime, randomInt, sech, sinh, sparse, sqrt, tanh, unaryMinus, acoth, cot, fraction, isNumeric, matrix, matrixFromFunction, mod, nthRoot, numeric, or, prod, reshape, size, smaller, squeeze, subset, subtract, to, transpose, xgcd, zeros, and, bitAnd, bitXor, cbrt, compare, compareText, concat, count, ctranspose, diag, divideScalar, dotDivide, equal, flatten, gcd, hasNumericValue, hypot, ImmutableDenseMatrix, Index, kron, largerEq, leftShift, lsolve, matrixFromColumns, min, mode, nthRoots, ones, partitionSelect, resize, rightLogShift, round, smallerEq, unequal, usolve, xor, add, atan2, bitOr, catalan, compareNatural, deepEqual, diff, dot, equalText, floor, identity, larger, log, lsolveAll, matrixFromRows, multiply, pow, qr, range, rightArithShift, row, setCartesian, setDistinct, setIsSubset, setPowerset, slu, sum, trace, usolveAll, asin, ceil, column, composition, cross, distance, dotMultiply, FibonacciHeap, fix, gamma, index, lcm, max, quantileSeq, setDifference, setMultiplicity, setSymDifference, sort, Unit, vacuumImpedance, wienDisplacement, atomicMass, bohrMagneton, boltzmann, conductanceQuantum, createUnit, deuteronMass, dotPow, electricConstant, elementaryCharge, factorial, fermiCoupling, gasConstant, gravity, intersect, inverseConductanceQuantum, klitzing, loschmidt, magneticConstant, molarMass, molarPlanckConstant, neutronMass, nuclearMagneton, permutations, planckConstant, planckMass, planckTime, quantumOfCirculation, reducedPlanckConstant, rydberg, setIntersect, setUnion, Spa, stefanBoltzmann, unit, avogadro, bohrRadius, coulomb, electronMass, faraday, hartreeEnergy, log1p, magneticFluxQuantum, molarMassC12, planckCharge, planckTemperature, secondRadiation, speedOfLight, stirlingS2, bellNumbers, firstRadiation, lup, molarVolume, protonMass, setSize, thomsonCrossSection, classicalElectronRadius, det, gravitationConstant, inv, lusolve, sqrtm, divide, expm, kldivergence, mean, median, planckLength, variance, std, eigs, multinomial, mad, norm, rotationMatrix, rotate } from './pureFunctionsAny.generated.js';
10
+ sackurTetrode, tau, _true, version, DenseMatrix, efimovFactor, LN2, pi, replacer, SQRT2, typed, unaryPlus, weakMixingAngle, abs, acos, acot, acsc, addScalar, arg, asech, asinh, atan, atanh, bignumber, bitNot, boolean, clone, combinations, complex, conj, cosh, coth, csc, cube, equalScalar, erf, exp, expm1, filter, forEach, format, getMatrixDataType, hex, im, isInteger, isNegative, isPositive, isZero, LOG2E, log10, log2, map, multiplyScalar, not, number, oct, pickRandom, print, random, re, sec, sign, sin, SparseMatrix, splitUnit, square, string, tan, typeOf, acosh, acsch, apply, asec, bin, combinationsWithRep, cos, csch, isNaN, isPrime, randomInt, sech, sinh, sparse, sqrt, tanh, unaryMinus, acoth, cot, fraction, isNumeric, matrix, matrixFromFunction, mod, nthRoot, numeric, or, prod, reshape, size, smaller, squeeze, subset, subtract, to, transpose, xgcd, zeros, and, bitAnd, bitXor, cbrt, compare, compareText, concat, count, ctranspose, diag, divideScalar, dotDivide, equal, flatten, gcd, hasNumericValue, hypot, ImmutableDenseMatrix, Index, kron, largerEq, leftShift, lsolve, matrixFromColumns, min, mode, nthRoots, ones, partitionSelect, resize, rightLogShift, round, smallerEq, unequal, usolve, xor, add, atan2, bitOr, catalan, compareNatural, deepEqual, diff, dot, equalText, floor, identity, invmod, larger, log, lsolveAll, matrixFromRows, multiply, pow, qr, range, rightArithShift, row, setCartesian, setDistinct, setIsSubset, setPowerset, slu, sum, trace, usolveAll, asin, ceil, column, composition, cross, distance, dotMultiply, FibonacciHeap, fix, gamma, index, lcm, max, quantileSeq, setDifference, setMultiplicity, setSymDifference, sort, Unit, vacuumImpedance, wienDisplacement, atomicMass, bohrMagneton, boltzmann, conductanceQuantum, createUnit, deuteronMass, dotPow, electricConstant, elementaryCharge, factorial, fermiCoupling, gasConstant, gravity, intersect, inverseConductanceQuantum, klitzing, loschmidt, magneticConstant, molarMass, molarPlanckConstant, neutronMass, nuclearMagneton, permutations, planckConstant, planckMass, planckTime, quantumOfCirculation, reducedPlanckConstant, rydberg, setIntersect, setUnion, Spa, stefanBoltzmann, unit, avogadro, bohrRadius, coulomb, electronMass, faraday, hartreeEnergy, log1p, magneticFluxQuantum, molarMassC12, planckCharge, planckTemperature, secondRadiation, speedOfLight, stirlingS2, bellNumbers, firstRadiation, lup, molarVolume, protonMass, setSize, thomsonCrossSection, classicalElectronRadius, det, gravitationConstant, inv, lusolve, sqrtm, divide, expm, kldivergence, mean, median, planckLength, variance, std, eigs, multinomial, mad, norm, rotationMatrix, rotate } from './pureFunctionsAny.generated.js';
11
11
  var math = {}; // NOT pure!
12
12
 
13
13
  var mathWithTransform = {}; // NOT pure!
@@ -124,8 +124,12 @@ export var parser = createParser({
124
124
  export var simplify = createSimplify({
125
125
  bignumber,
126
126
  fraction,
127
+ AccessorNode,
128
+ ArrayNode,
127
129
  ConstantNode,
128
130
  FunctionNode,
131
+ IndexNode,
132
+ ObjectNode,
129
133
  OperatorNode,
130
134
  ParenthesisNode,
131
135
  SymbolNode,
@@ -135,6 +139,7 @@ export var simplify = createSimplify({
135
139
  equal,
136
140
  isZero,
137
141
  mathWithTransform,
142
+ matrix,
138
143
  multiply,
139
144
  parse,
140
145
  pow,
@@ -163,8 +168,12 @@ export var help = createHelp({
163
168
  export var rationalize = createRationalize({
164
169
  bignumber,
165
170
  fraction,
171
+ AccessorNode,
172
+ ArrayNode,
166
173
  ConstantNode,
167
174
  FunctionNode,
175
+ IndexNode,
176
+ ObjectNode,
168
177
  OperatorNode,
169
178
  ParenthesisNode,
170
179
  SymbolNode,
@@ -174,6 +183,7 @@ export var rationalize = createRationalize({
174
183
  equal,
175
184
  isZero,
176
185
  mathWithTransform,
186
+ matrix,
177
187
  multiply,
178
188
  parse,
179
189
  pow,
@@ -348,6 +358,7 @@ _extends(math, {
348
358
  equalText,
349
359
  floor,
350
360
  identity,
361
+ invmod,
351
362
  larger,
352
363
  log,
353
364
  lsolveAll,