mathjs 10.0.0 → 10.1.1

Sign up to get free protection for your applications and to get access to all the features.
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,