mathjs 12.4.0 → 12.4.2

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 (89) hide show
  1. package/HISTORY.md +22 -0
  2. package/README.md +28 -0
  3. package/bin/cli.js +1 -1
  4. package/bin/repl.js +1 -1
  5. package/lib/browser/math.js +1 -1
  6. package/lib/browser/math.js.LICENSE.txt +2 -2
  7. package/lib/browser/math.js.map +1 -1
  8. package/lib/cjs/core/create.js +3 -3
  9. package/lib/cjs/defaultInstance.js +1 -1
  10. package/lib/cjs/entry/allFactoriesAny.js +1 -1
  11. package/lib/cjs/entry/allFactoriesNumber.js +1 -1
  12. package/lib/cjs/expression/node/AccessorNode.js +2 -3
  13. package/lib/cjs/expression/node/ArrayNode.js +2 -3
  14. package/lib/cjs/expression/node/AssignmentNode.js +2 -3
  15. package/lib/cjs/expression/node/BlockNode.js +2 -3
  16. package/lib/cjs/expression/node/ConditionalNode.js +2 -3
  17. package/lib/cjs/expression/node/ConstantNode.js +7 -6
  18. package/lib/cjs/expression/node/FunctionAssignmentNode.js +2 -3
  19. package/lib/cjs/expression/node/FunctionNode.js +5 -6
  20. package/lib/cjs/expression/node/IndexNode.js +2 -3
  21. package/lib/cjs/expression/node/Node.js +1 -2
  22. package/lib/cjs/expression/node/ObjectNode.js +2 -3
  23. package/lib/cjs/expression/node/OperatorNode.js +2 -3
  24. package/lib/cjs/expression/node/ParenthesisNode.js +2 -3
  25. package/lib/cjs/expression/node/RangeNode.js +2 -3
  26. package/lib/cjs/expression/node/RelationalNode.js +2 -3
  27. package/lib/cjs/expression/node/SymbolNode.js +2 -3
  28. package/lib/cjs/function/algebra/simplifyCore.js +3 -0
  29. package/lib/cjs/function/algebra/sparse/csAmd.js +4 -2
  30. package/lib/cjs/function/algebra/sparse/csChol.js +4 -2
  31. package/lib/cjs/function/algebra/sparse/csCounts.js +4 -2
  32. package/lib/cjs/function/algebra/sparse/csCumsum.js +4 -2
  33. package/lib/cjs/function/algebra/sparse/csDfs.js +4 -2
  34. package/lib/cjs/function/algebra/sparse/csEreach.js +4 -2
  35. package/lib/cjs/function/algebra/sparse/csEtree.js +4 -2
  36. package/lib/cjs/function/algebra/sparse/csFkeep.js +4 -2
  37. package/lib/cjs/function/algebra/sparse/csFlip.js +4 -2
  38. package/lib/cjs/function/algebra/sparse/csIpvec.js +4 -0
  39. package/lib/cjs/function/algebra/sparse/csLeaf.js +4 -2
  40. package/lib/cjs/function/algebra/sparse/csLu.js +4 -2
  41. package/lib/cjs/function/algebra/sparse/csMark.js +4 -2
  42. package/lib/cjs/function/algebra/sparse/csMarked.js +4 -2
  43. package/lib/cjs/function/algebra/sparse/csPermute.js +4 -2
  44. package/lib/cjs/function/algebra/sparse/csPost.js +4 -2
  45. package/lib/cjs/function/algebra/sparse/csReach.js +4 -2
  46. package/lib/cjs/function/algebra/sparse/csSpsolve.js +4 -2
  47. package/lib/cjs/function/algebra/sparse/csSqr.js +4 -2
  48. package/lib/cjs/function/algebra/sparse/csSymperm.js +4 -2
  49. package/lib/cjs/function/algebra/sparse/csTdfs.js +4 -2
  50. package/lib/cjs/function/algebra/sparse/csUnflip.js +4 -2
  51. package/lib/cjs/function/utils/isNaN.js +5 -3
  52. package/lib/cjs/header.js +2 -2
  53. package/lib/cjs/type/unit/Unit.js +6 -2
  54. package/lib/cjs/utils/map.js +2 -4
  55. package/lib/cjs/utils/object.js +0 -6
  56. package/lib/cjs/utils/snapshot.js +1 -1
  57. package/lib/cjs/version.js +1 -1
  58. package/lib/esm/core/create.js +3 -3
  59. package/lib/esm/expression/node/ConstantNode.js +5 -3
  60. package/lib/esm/expression/node/FunctionNode.js +3 -3
  61. package/lib/esm/function/algebra/simplifyCore.js +3 -0
  62. package/lib/esm/function/algebra/sparse/csAmd.js +3 -2
  63. package/lib/esm/function/algebra/sparse/csChol.js +3 -2
  64. package/lib/esm/function/algebra/sparse/csCounts.js +3 -2
  65. package/lib/esm/function/algebra/sparse/csCumsum.js +4 -2
  66. package/lib/esm/function/algebra/sparse/csDfs.js +3 -2
  67. package/lib/esm/function/algebra/sparse/csEreach.js +3 -2
  68. package/lib/esm/function/algebra/sparse/csEtree.js +4 -2
  69. package/lib/esm/function/algebra/sparse/csFkeep.js +4 -2
  70. package/lib/esm/function/algebra/sparse/csFlip.js +4 -2
  71. package/lib/esm/function/algebra/sparse/csIpvec.js +4 -0
  72. package/lib/esm/function/algebra/sparse/csLeaf.js +4 -2
  73. package/lib/esm/function/algebra/sparse/csLu.js +4 -2
  74. package/lib/esm/function/algebra/sparse/csMark.js +4 -2
  75. package/lib/esm/function/algebra/sparse/csMarked.js +4 -2
  76. package/lib/esm/function/algebra/sparse/csPermute.js +4 -2
  77. package/lib/esm/function/algebra/sparse/csPost.js +3 -2
  78. package/lib/esm/function/algebra/sparse/csReach.js +4 -2
  79. package/lib/esm/function/algebra/sparse/csSpsolve.js +3 -2
  80. package/lib/esm/function/algebra/sparse/csSqr.js +3 -2
  81. package/lib/esm/function/algebra/sparse/csSymperm.js +3 -2
  82. package/lib/esm/function/algebra/sparse/csTdfs.js +4 -2
  83. package/lib/esm/function/algebra/sparse/csUnflip.js +3 -2
  84. package/lib/esm/function/utils/isNaN.js +1 -3
  85. package/lib/esm/type/unit/Unit.js +6 -2
  86. package/lib/esm/utils/object.js +0 -3
  87. package/lib/esm/version.js +1 -1
  88. package/package.json +18 -18
  89. package/types/index.d.ts +4 -0
@@ -6,6 +6,10 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.csEreach = csEreach;
7
7
  var _csMark = require("./csMark.js");
8
8
  var _csMarked = require("./csMarked.js");
9
+ // Copyright (c) 2006-2024, Timothy A. Davis, All Rights Reserved.
10
+ // SPDX-License-Identifier: LGPL-2.1+
11
+ // https://github.com/DrTimothyAldenDavis/SuiteSparse/tree/dev/CSparse/Source
12
+
9
13
  /**
10
14
  * Find nonzero pattern of Cholesky L(k,1:k-1) using etree and triu(A(:,k))
11
15
  *
@@ -16,8 +20,6 @@ var _csMarked = require("./csMarked.js");
16
20
  * The first n entries is the nonzero pattern, the last n entries is the stack
17
21
  *
18
22
  * @return {Number} The index for the nonzero pattern
19
- *
20
- * Reference: http://faculty.cse.tamu.edu/davis/publications.html
21
23
  */
22
24
  function csEreach(a, k, parent, w) {
23
25
  // a arrays
@@ -4,14 +4,16 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.csEtree = csEtree;
7
+ // Copyright (c) 2006-2024, Timothy A. Davis, All Rights Reserved.
8
+ // SPDX-License-Identifier: LGPL-2.1+
9
+ // https://github.com/DrTimothyAldenDavis/SuiteSparse/tree/dev/CSparse/Source
10
+
7
11
  /**
8
12
  * Computes the elimination tree of Matrix A (using triu(A)) or the
9
13
  * elimination tree of A'A without forming A'A.
10
14
  *
11
15
  * @param {Matrix} a The A Matrix
12
16
  * @param {boolean} ata A value of true the function computes the etree of A'A
13
- *
14
- * Reference: http://faculty.cse.tamu.edu/davis/publications.html
15
17
  */
16
18
  function csEtree(a, ata) {
17
19
  // check inputs
@@ -4,6 +4,10 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.csFkeep = csFkeep;
7
+ // Copyright (c) 2006-2024, Timothy A. Davis, All Rights Reserved.
8
+ // SPDX-License-Identifier: LGPL-2.1+
9
+ // https://github.com/DrTimothyAldenDavis/SuiteSparse/tree/dev/CSparse/Source
10
+
7
11
  /**
8
12
  * Keeps entries in the matrix when the callback function returns true, removes the entry otherwise
9
13
  *
@@ -16,8 +20,6 @@ exports.csFkeep = csFkeep;
16
20
  * @param {any} other The state
17
21
  *
18
22
  * @return The number of nonzero elements in the matrix
19
- *
20
- * Reference: http://faculty.cse.tamu.edu/davis/publications.html
21
23
  */
22
24
  function csFkeep(a, callback, other) {
23
25
  // a arrays
@@ -4,12 +4,14 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.csFlip = csFlip;
7
+ // Copyright (c) 2006-2024, Timothy A. Davis, All Rights Reserved.
8
+ // SPDX-License-Identifier: LGPL-2.1+
9
+ // https://github.com/DrTimothyAldenDavis/SuiteSparse/tree/dev/CSparse/Source
10
+
7
11
  /**
8
12
  * This function "flips" its input about the integer -1.
9
13
  *
10
14
  * @param {Number} i The value to flip
11
- *
12
- * Reference: http://faculty.cse.tamu.edu/davis/publications.html
13
15
  */
14
16
  function csFlip(i) {
15
17
  // flip the value
@@ -4,6 +4,10 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.csIpvec = csIpvec;
7
+ // Copyright (c) 2006-2024, Timothy A. Davis, All Rights Reserved.
8
+ // SPDX-License-Identifier: LGPL-2.1+
9
+ // https://github.com/DrTimothyAldenDavis/SuiteSparse/tree/dev/CSparse/Source
10
+
7
11
  /**
8
12
  * Permutes a vector; x = P'b. In MATLAB notation, x(p)=b.
9
13
  *
@@ -4,6 +4,10 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.csLeaf = csLeaf;
7
+ // Copyright (c) 2006-2024, Timothy A. Davis, All Rights Reserved.
8
+ // SPDX-License-Identifier: LGPL-2.1+
9
+ // https://github.com/DrTimothyAldenDavis/SuiteSparse/tree/dev/CSparse/Source
10
+
7
11
  /**
8
12
  * This function determines if j is a leaf of the ith row subtree.
9
13
  * Consider A(i,j), node j in ith row subtree and return lca(jprev,j)
@@ -17,8 +21,6 @@ exports.csLeaf = csLeaf;
17
21
  * @param {Number} ancestor The index offset within the workspace for the ancestor array
18
22
  *
19
23
  * @return {Object}
20
- *
21
- * Reference: http://faculty.cse.tamu.edu/davis/publications.html
22
24
  */
23
25
  function csLeaf(i, j, w, first, maxfirst, prevleaf, ancestor) {
24
26
  var s, sparent;
@@ -6,6 +6,10 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.createCsLu = void 0;
7
7
  var _factory = require("../../../utils/factory.js");
8
8
  var _csSpsolve = require("./csSpsolve.js");
9
+ // Copyright (c) 2006-2024, Timothy A. Davis, All Rights Reserved.
10
+ // SPDX-License-Identifier: LGPL-2.1+
11
+ // https://github.com/DrTimothyAldenDavis/SuiteSparse/tree/dev/CSparse/Source
12
+
9
13
  var name = 'csLu';
10
14
  var dependencies = ['abs', 'divideScalar', 'multiply', 'subtract', 'larger', 'largerEq', 'SparseMatrix'];
11
15
  var createCsLu = exports.createCsLu = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
@@ -34,8 +38,6 @@ var createCsLu = exports.createCsLu = /* #__PURE__ */(0, _factory.factory)(name,
34
38
  * @param {Number} tol Partial pivoting threshold (1 for partial pivoting)
35
39
  *
36
40
  * @return {Number} The numeric LU factorization of A or null
37
- *
38
- * Reference: http://faculty.cse.tamu.edu/davis/publications.html
39
41
  */
40
42
  return function csLu(m, s, tol) {
41
43
  // validate input
@@ -5,13 +5,15 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.csMark = csMark;
7
7
  var _csFlip = require("./csFlip.js");
8
+ // Copyright (c) 2006-2024, Timothy A. Davis, All Rights Reserved.
9
+ // SPDX-License-Identifier: LGPL-2.1+
10
+ // https://github.com/DrTimothyAldenDavis/SuiteSparse/tree/dev/CSparse/Source
11
+
8
12
  /**
9
13
  * Marks the node at w[j]
10
14
  *
11
15
  * @param {Array} w The array
12
16
  * @param {Number} j The array index
13
- *
14
- * Reference: http://faculty.cse.tamu.edu/davis/publications.html
15
17
  */
16
18
  function csMark(w, j) {
17
19
  // mark w[j]
@@ -4,13 +4,15 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.csMarked = csMarked;
7
+ // Copyright (c) 2006-2024, Timothy A. Davis, All Rights Reserved.
8
+ // SPDX-License-Identifier: LGPL-2.1+
9
+ // https://github.com/DrTimothyAldenDavis/SuiteSparse/tree/dev/CSparse/Source
10
+
7
11
  /**
8
12
  * Checks if the node at w[j] is marked
9
13
  *
10
14
  * @param {Array} w The array
11
15
  * @param {Number} j The array index
12
- *
13
- * Reference: http://faculty.cse.tamu.edu/davis/publications.html
14
16
  */
15
17
  function csMarked(w, j) {
16
18
  // check node is marked
@@ -4,6 +4,10 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.csPermute = csPermute;
7
+ // Copyright (c) 2006-2024, Timothy A. Davis, All Rights Reserved.
8
+ // SPDX-License-Identifier: LGPL-2.1+
9
+ // https://github.com/DrTimothyAldenDavis/SuiteSparse/tree/dev/CSparse/Source
10
+
7
11
  /**
8
12
  * Permutes a sparse matrix C = P * A * Q
9
13
  *
@@ -13,8 +17,6 @@ exports.csPermute = csPermute;
13
17
  * @param {boolean} values Create a pattern matrix (false), values and pattern otherwise
14
18
  *
15
19
  * @return {Matrix} C = P * A * Q, null on error
16
- *
17
- * Reference: http://faculty.cse.tamu.edu/davis/publications.html
18
20
  */
19
21
  function csPermute(a, pinv, q, values) {
20
22
  // a arrays
@@ -5,13 +5,15 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.csPost = csPost;
7
7
  var _csTdfs = require("./csTdfs.js");
8
+ // Copyright (c) 2006-2024, Timothy A. Davis, All Rights Reserved.
9
+ // SPDX-License-Identifier: LGPL-2.1+
10
+ // https://github.com/DrTimothyAldenDavis/SuiteSparse/tree/dev/CSparse/Source
11
+
8
12
  /**
9
13
  * Post order a tree of forest
10
14
  *
11
15
  * @param {Array} parent The tree or forest
12
16
  * @param {Number} n Number of columns
13
- *
14
- * Reference: http://faculty.cse.tamu.edu/davis/publications.html
15
17
  */
16
18
  function csPost(parent, n) {
17
19
  // check inputs
@@ -7,6 +7,10 @@ exports.csReach = csReach;
7
7
  var _csMarked = require("./csMarked.js");
8
8
  var _csMark = require("./csMark.js");
9
9
  var _csDfs = require("./csDfs.js");
10
+ // Copyright (c) 2006-2024, Timothy A. Davis, All Rights Reserved.
11
+ // SPDX-License-Identifier: LGPL-2.1+
12
+ // https://github.com/DrTimothyAldenDavis/SuiteSparse/tree/dev/CSparse/Source
13
+
10
14
  /**
11
15
  * The csReach function computes X = Reach(B), where B is the nonzero pattern of the n-by-1
12
16
  * sparse column of vector b. The function returns the set of nodes reachable from any node in B. The
@@ -20,8 +24,6 @@ var _csDfs = require("./csDfs.js");
20
24
  * @param {Array} pinv The inverse row permutation vector
21
25
  *
22
26
  * @return {Number} The index for the nonzero pattern
23
- *
24
- * Reference: http://faculty.cse.tamu.edu/davis/publications.html
25
27
  */
26
28
  function csReach(g, b, k, xi, pinv) {
27
29
  // g arrays
@@ -6,6 +6,10 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.createCsSpsolve = void 0;
7
7
  var _csReach = require("./csReach.js");
8
8
  var _factory = require("../../../utils/factory.js");
9
+ // Copyright (c) 2006-2024, Timothy A. Davis, All Rights Reserved.
10
+ // SPDX-License-Identifier: LGPL-2.1+
11
+ // https://github.com/DrTimothyAldenDavis/SuiteSparse/tree/dev/CSparse/Source
12
+
9
13
  var name = 'csSpsolve';
10
14
  var dependencies = ['divideScalar', 'multiply', 'subtract'];
11
15
  var createCsSpsolve = exports.createCsSpsolve = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
@@ -28,8 +32,6 @@ var createCsSpsolve = exports.createCsSpsolve = /* #__PURE__ */(0, _factory.fact
28
32
  * @param {boolean} lo The lower (true) upper triangular (false) flag
29
33
  *
30
34
  * @return {Number} The index for the nonzero pattern
31
- *
32
- * Reference: http://faculty.cse.tamu.edu/davis/publications.html
33
35
  */
34
36
  return function csSpsolve(g, b, k, xi, x, pinv, lo) {
35
37
  // g arrays
@@ -10,6 +10,10 @@ var _csEtree = require("./csEtree.js");
10
10
  var _csAmd = require("./csAmd.js");
11
11
  var _csCounts = require("./csCounts.js");
12
12
  var _factory = require("../../../utils/factory.js");
13
+ // Copyright (c) 2006-2024, Timothy A. Davis, All Rights Reserved.
14
+ // SPDX-License-Identifier: LGPL-2.1+
15
+ // https://github.com/DrTimothyAldenDavis/SuiteSparse/tree/dev/CSparse/Source
16
+
13
17
  var name = 'csSqr';
14
18
  var dependencies = ['add', 'multiply', 'transpose'];
15
19
  var createCsSqr = exports.createCsSqr = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
@@ -34,8 +38,6 @@ var createCsSqr = exports.createCsSqr = /* #__PURE__ */(0, _factory.factory)(nam
34
38
  * symbolic ordering and analysis for LU decomposition (false)
35
39
  *
36
40
  * @return {Object} The Symbolic ordering and analysis for matrix A
37
- *
38
- * Reference: http://faculty.cse.tamu.edu/davis/publications.html
39
41
  */
40
42
  return function csSqr(order, a, qr) {
41
43
  // a arrays
@@ -6,6 +6,10 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.createCsSymperm = void 0;
7
7
  var _csCumsum = require("./csCumsum.js");
8
8
  var _factory = require("../../../utils/factory.js");
9
+ // Copyright (c) 2006-2024, Timothy A. Davis, All Rights Reserved.
10
+ // SPDX-License-Identifier: LGPL-2.1+
11
+ // https://github.com/DrTimothyAldenDavis/SuiteSparse/tree/dev/CSparse/Source
12
+
9
13
  var name = 'csSymperm';
10
14
  var dependencies = ['conj', 'SparseMatrix'];
11
15
  var createCsSymperm = exports.createCsSymperm = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
@@ -22,8 +26,6 @@ var createCsSymperm = exports.createCsSymperm = /* #__PURE__ */(0, _factory.fact
22
26
  * @param {boolean} values Process matrix values (true)
23
27
  *
24
28
  * @return {Matrix} The C matrix, C = P * A * P'
25
- *
26
- * Reference: http://faculty.cse.tamu.edu/davis/publications.html
27
29
  */
28
30
  return function csSymperm(a, pinv, values) {
29
31
  // A matrix arrays
@@ -4,6 +4,10 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.csTdfs = csTdfs;
7
+ // Copyright (c) 2006-2024, Timothy A. Davis, All Rights Reserved.
8
+ // SPDX-License-Identifier: LGPL-2.1+
9
+ // https://github.com/DrTimothyAldenDavis/SuiteSparse/tree/dev/CSparse/Source
10
+
7
11
  /**
8
12
  * Depth-first search and postorder of a tree rooted at node j
9
13
  *
@@ -14,8 +18,6 @@ exports.csTdfs = csTdfs;
14
18
  * @param {Number} next The index offset within the workspace for the next array
15
19
  * @param {Array} post The post ordering array
16
20
  * @param {Number} stack The index offset within the workspace for the stack array
17
- *
18
- * Reference: http://faculty.cse.tamu.edu/davis/publications.html
19
21
  */
20
22
  function csTdfs(j, k, w, head, next, post, stack) {
21
23
  // variables
@@ -5,12 +5,14 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.csUnflip = csUnflip;
7
7
  var _csFlip = require("./csFlip.js");
8
+ // Copyright (c) 2006-2024, Timothy A. Davis, All Rights Reserved.
9
+ // SPDX-License-Identifier: LGPL-2.1+
10
+ // https://github.com/DrTimothyAldenDavis/SuiteSparse/tree/dev/CSparse/Source
11
+
8
12
  /**
9
13
  * Flips the value if it is negative of returns the same value otherwise.
10
14
  *
11
15
  * @param {Number} i The value to flip
12
- *
13
- * Reference: http://faculty.cse.tamu.edu/davis/publications.html
14
16
  */
15
17
  function csUnflip(i) {
16
18
  // flip the value if it is negative
@@ -54,8 +54,10 @@ var createIsNaN = exports.createIsNaN = /* #__PURE__ */(0, _factory.factory)(nam
54
54
  Unit: function Unit(x) {
55
55
  return Number.isNaN(x.value);
56
56
  },
57
- 'Array | Matrix': function ArrayMatrix(x) {
58
- return (0, _collection.deepMap)(x, Number.isNaN);
59
- }
57
+ 'Array | Matrix': typed.referToSelf(function (self) {
58
+ return function (x) {
59
+ return (0, _collection.deepMap)(x, self);
60
+ };
61
+ })
60
62
  });
61
63
  });
package/lib/cjs/header.js CHANGED
@@ -6,8 +6,8 @@
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 12.4.0
10
- * @date 2024-02-22
9
+ * @version 12.4.2
10
+ * @date 2024-04-24
11
11
  *
12
12
  * @license
13
13
  * Copyright (C) 2013-2024 Jos de Jong <wjosdejong@gmail.com>
@@ -3281,6 +3281,7 @@ var createUnitClass = exports.createUnitClass = /* #__PURE__ */(0, _factory.fact
3281
3281
  };
3282
3282
 
3283
3283
  // aliases (formerly plurals)
3284
+ // note that ALIASES is only used at creation to create more entries in UNITS by copying the aliased units
3284
3285
  var ALIASES = {
3285
3286
  meters: 'meter',
3286
3287
  inches: 'inch',
@@ -3926,13 +3927,16 @@ var createUnitClass = exports.createUnitClass = /* #__PURE__ */(0, _factory.fact
3926
3927
  _alias.name = aliasName;
3927
3928
  Unit.UNITS[aliasName] = _alias;
3928
3929
  }
3929
- // delete the memoization cache, since adding a new unit to the array
3930
- // invalidates all old results
3930
+
3931
+ // delete the memoization cache because we created a new unit
3931
3932
  delete _findUnit.cache;
3932
3933
  return new Unit(null, name);
3933
3934
  };
3934
3935
  Unit.deleteUnit = function (name) {
3935
3936
  delete Unit.UNITS[name];
3937
+
3938
+ // delete the memoization cache because we deleted a unit
3939
+ delete _findUnit.cache;
3936
3940
  };
3937
3941
 
3938
3942
  // expose arrays with prefixes, dimensions, units, systems
@@ -32,7 +32,7 @@ var ObjectWrappingMap = exports.ObjectWrappingMap = /*#__PURE__*/function () {
32
32
  this.wrappedObject = object;
33
33
  this[Symbol.iterator] = this.entries;
34
34
  }
35
- (0, _createClass2["default"])(ObjectWrappingMap, [{
35
+ return (0, _createClass2["default"])(ObjectWrappingMap, [{
36
36
  key: "keys",
37
37
  value: function keys() {
38
38
  return Object.keys(this.wrappedObject).values();
@@ -104,7 +104,6 @@ var ObjectWrappingMap = exports.ObjectWrappingMap = /*#__PURE__*/function () {
104
104
  return Object.keys(this.wrappedObject).length;
105
105
  }
106
106
  }]);
107
- return ObjectWrappingMap;
108
107
  }();
109
108
  /**
110
109
  * Create a map with two partitions: a and b.
@@ -133,7 +132,7 @@ var PartitionedMap = exports.PartitionedMap = /*#__PURE__*/function () {
133
132
  this.bKeys = bKeys;
134
133
  this[Symbol.iterator] = this.entries;
135
134
  }
136
- (0, _createClass2["default"])(PartitionedMap, [{
135
+ return (0, _createClass2["default"])(PartitionedMap, [{
137
136
  key: "get",
138
137
  value: function get(key) {
139
138
  return this.bKeys.has(key) ? this.b.get(key) : this.a.get(key);
@@ -199,7 +198,6 @@ var PartitionedMap = exports.PartitionedMap = /*#__PURE__*/function () {
199
198
  return (0, _toConsumableArray2["default"])(this.keys()).length;
200
199
  }
201
200
  }]);
202
- return PartitionedMap;
203
201
  }();
204
202
  /**
205
203
  * Create a new iterator that maps over the provided iterator, applying a mapping function to each item
@@ -19,7 +19,6 @@ exports.pick = pick;
19
19
  exports.pickShallow = pickShallow;
20
20
  exports.set = set;
21
21
  exports.traverse = traverse;
22
- exports.values = values;
23
22
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
24
23
  var _is = require("./is.js");
25
24
  /**
@@ -387,11 +386,6 @@ function pickShallow(object, properties) {
387
386
  }
388
387
  return copy;
389
388
  }
390
- function values(object) {
391
- return Object.keys(object).map(function (key) {
392
- return object[key];
393
- });
394
- }
395
389
 
396
390
  // helper function to test whether a string contains a path like 'user.name'
397
391
  function isPath(str) {
@@ -15,7 +15,7 @@ var allIsFunctions = _interopRequireWildcard(require("./is.js"));
15
15
  var _create = require("../core/create.js");
16
16
  var _string = require("./string.js");
17
17
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
18
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
18
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
19
19
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
20
20
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } /**
21
21
  * This file contains helper methods to create expected snapshot structures
@@ -4,6 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.version = void 0;
7
- var version = exports.version = '12.4.0';
7
+ var version = exports.version = '12.4.2';
8
8
  // Note: This file is automatically generated when building math.js.
9
9
  // Changes made in this file will be overwritten.
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import typedFunction from 'typed-function';
3
- import { deepFlatten, isLegacyFactory, values } from '../utils/object.js';
3
+ import { deepFlatten, isLegacyFactory } from '../utils/object.js';
4
4
  import * as emitter from './../utils/emitter.js';
5
5
  import { importFactory } from './function/import.js';
6
6
  import { configFactory } from './function/config.js';
@@ -170,7 +170,7 @@ export function create(factories, config) {
170
170
  // listen for changes in config, import all functions again when changed
171
171
  // TODO: move this listener into the import function?
172
172
  math.on('config', () => {
173
- values(importedFactories).forEach(factory => {
173
+ Object.values(importedFactories).forEach(factory => {
174
174
  if (factory && factory.meta && factory.meta.recreateOnConfigChange) {
175
175
  // FIXME: only re-create when the current instance is the same as was initially created
176
176
  // FIXME: delete the functions/constants before importing them again?
@@ -190,7 +190,7 @@ export function create(factories, config) {
190
190
 
191
191
  // import the factory functions like createAdd as an array instead of object,
192
192
  // else they will get a different naming (`createAdd` instead of `add`).
193
- math.import(values(deepFlatten(factories)));
193
+ math.import(Object.values(deepFlatten(factories)));
194
194
  math.ArgumentsError = ArgumentsError;
195
195
  math.DimensionError = DimensionError;
196
196
  math.IndexError = IndexError;
@@ -142,21 +142,23 @@ export var createConstantNode = /* #__PURE__ */factory(name, dependencies, _ref
142
142
  */
143
143
  _toTex(options) {
144
144
  var value = this._toString(options);
145
- switch (typeOf(this.value)) {
145
+ var type = typeOf(this.value);
146
+ switch (type) {
146
147
  case 'string':
147
148
  return '\\mathtt{' + escapeLatex(value) + '}';
148
149
  case 'number':
149
150
  case 'BigNumber':
150
151
  {
151
- if (!isFinite(this.value)) {
152
+ var finite = type === 'BigNumber' ? this.value.isFinite() : isFinite(this.value);
153
+ if (!finite) {
152
154
  return this.value.valueOf() < 0 ? '-\\infty' : '\\infty';
153
155
  }
154
156
  var index = value.toLowerCase().indexOf('e');
155
157
  if (index !== -1) {
156
158
  return value.substring(0, index) + '\\cdot10^{' + value.substring(index + 1) + '}';
157
159
  }
160
+ return value;
158
161
  }
159
- return value;
160
162
  case 'Fraction':
161
163
  return this.value.toLatex();
162
164
  default:
@@ -9,7 +9,7 @@ import { defaultTemplate, latexFunctions } from '../../utils/latex.js';
9
9
  var name = 'FunctionNode';
10
10
  var dependencies = ['math', 'Node', 'SymbolNode'];
11
11
  export var createFunctionNode = /* #__PURE__ */factory(name, dependencies, _ref => {
12
- var _class;
12
+ var _FunctionNode;
13
13
  var {
14
14
  math,
15
15
  Node,
@@ -456,13 +456,13 @@ export var createFunctionNode = /* #__PURE__ */factory(name, dependencies, _ref
456
456
  return this.type + ':' + this.name;
457
457
  }
458
458
  }
459
- _class = FunctionNode;
459
+ _FunctionNode = FunctionNode;
460
460
  _defineProperty(FunctionNode, "name", name);
461
461
  _defineProperty(FunctionNode, "onUndefinedFunction", function (name) {
462
462
  throw new Error('Undefined function ' + name);
463
463
  });
464
464
  _defineProperty(FunctionNode, "fromJSON", function (json) {
465
- return new _class(json.fn, json.args);
465
+ return new _FunctionNode(json.fn, json.args);
466
466
  });
467
467
  return FunctionNode;
468
468
  }, {
@@ -229,6 +229,9 @@ export var createSimplifyCore = /* #__PURE__ */factory(name, dependencies, _ref
229
229
  if (isConstantNode(_a)) {
230
230
  if (_a.value) {
231
231
  if (isAlwaysBoolean(a1)) return a1;
232
+ if (isConstantNode(a1)) {
233
+ return a1.value ? nodeT : nodeF;
234
+ }
232
235
  } else {
233
236
  return nodeF;
234
237
  }
@@ -1,3 +1,6 @@
1
+ // Copyright (c) 2006-2024, Timothy A. Davis, All Rights Reserved.
2
+ // SPDX-License-Identifier: LGPL-2.1+
3
+ // https://github.com/DrTimothyAldenDavis/SuiteSparse/tree/dev/CSparse/Source
1
4
  import { factory } from '../../../utils/factory.js';
2
5
  import { csFkeep } from './csFkeep.js';
3
6
  import { csFlip } from './csFlip.js';
@@ -16,8 +19,6 @@ export var createCsAmd = /* #__PURE__ */factory(name, dependencies, _ref => {
16
19
  * than A. It is a gready method that selects the sparsest pivot row and column during the course
17
20
  * of a right looking sparse Cholesky factorization.
18
21
  *
19
- * Reference: http://faculty.cse.tamu.edu/davis/publications.html
20
- *
21
22
  * @param {Number} order 0: Natural, 1: Cholesky, 2: LU, 3: QR
22
23
  * @param {Matrix} m Sparse Matrix
23
24
  */
@@ -1,3 +1,6 @@
1
+ // Copyright (c) 2006-2024, Timothy A. Davis, All Rights Reserved.
2
+ // SPDX-License-Identifier: LGPL-2.1+
3
+ // https://github.com/DrTimothyAldenDavis/SuiteSparse/tree/dev/CSparse/Source
1
4
  import { factory } from '../../../utils/factory.js';
2
5
  import { csEreach } from './csEreach.js';
3
6
  import { createCsSymperm } from './csSymperm.js';
@@ -29,8 +32,6 @@ export var createCsChol = /* #__PURE__ */factory(name, dependencies, _ref => {
29
32
  * @param {Object} s The symbolic analysis from cs_schol()
30
33
  *
31
34
  * @return {Number} The numeric Cholesky factorization of A or null
32
- *
33
- * Reference: http://faculty.cse.tamu.edu/davis/publications.html
34
35
  */
35
36
  return function csChol(m, s) {
36
37
  // validate input
@@ -1,3 +1,6 @@
1
+ // Copyright (c) 2006-2024, Timothy A. Davis, All Rights Reserved.
2
+ // SPDX-License-Identifier: LGPL-2.1+
3
+ // https://github.com/DrTimothyAldenDavis/SuiteSparse/tree/dev/CSparse/Source
1
4
  import { factory } from '../../../utils/factory.js';
2
5
  import { csLeaf } from './csLeaf.js';
3
6
  var name = 'csCounts';
@@ -15,8 +18,6 @@ export var createCsCounts = /* #__PURE__ */factory(name, dependencies, _ref => {
15
18
  * @param {Matrix} ata Count the columns of A'A instead
16
19
  *
17
20
  * @return An array of size n of the column counts or null on error
18
- *
19
- * Reference: http://faculty.cse.tamu.edu/davis/publications.html
20
21
  */
21
22
  return function (a, parent, post, ata) {
22
23
  // check inputs
@@ -1,11 +1,13 @@
1
+ // Copyright (c) 2006-2024, Timothy A. Davis, All Rights Reserved.
2
+ // SPDX-License-Identifier: LGPL-2.1+
3
+ // https://github.com/DrTimothyAldenDavis/SuiteSparse/tree/dev/CSparse/Source
4
+
1
5
  /**
2
6
  * It sets the p[i] equal to the sum of c[0] through c[i-1].
3
7
  *
4
8
  * @param {Array} ptr The Sparse Matrix ptr array
5
9
  * @param {Array} c The Sparse Matrix ptr array
6
10
  * @param {Number} n The number of columns
7
- *
8
- * Reference: http://faculty.cse.tamu.edu/davis/publications.html
9
11
  */
10
12
  export function csCumsum(ptr, c, n) {
11
13
  // variables
@@ -1,3 +1,6 @@
1
+ // Copyright (c) 2006-2024, Timothy A. Davis, All Rights Reserved.
2
+ // SPDX-License-Identifier: LGPL-2.1+
3
+ // https://github.com/DrTimothyAldenDavis/SuiteSparse/tree/dev/CSparse/Source
1
4
  import { csMarked } from './csMarked.js';
2
5
  import { csMark } from './csMark.js';
3
6
  import { csUnflip } from './csUnflip.js';
@@ -15,8 +18,6 @@ import { csUnflip } from './csUnflip.js';
15
18
  * @param {Array} pinv The inverse row permutation vector, must be null for L * x = b
16
19
  *
17
20
  * @return {Number} New value of top
18
- *
19
- * Reference: http://faculty.cse.tamu.edu/davis/publications.html
20
21
  */
21
22
  export function csDfs(j, g, top, xi, pinv) {
22
23
  // g arrays