mathjs 15.0.0 → 15.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. package/HISTORY.md +22 -6
  2. package/README.md +1 -1
  3. package/lib/browser/math.js +1 -1
  4. package/lib/browser/math.js.LICENSE.txt +2 -2
  5. package/lib/browser/math.js.map +1 -1
  6. package/lib/cjs/entry/dependenciesAny/dependenciesBernoulli.generated.js +25 -0
  7. package/lib/cjs/entry/dependenciesAny/dependenciesConstantNode.generated.js +2 -0
  8. package/lib/cjs/entry/dependenciesAny/dependenciesEqual.generated.js +0 -2
  9. package/lib/cjs/entry/dependenciesAny/dependenciesIsBounded.generated.js +17 -0
  10. package/lib/cjs/entry/dependenciesAny/dependenciesIsFinite.generated.js +21 -0
  11. package/lib/cjs/entry/dependenciesAny/dependenciesIsInteger.generated.js +2 -0
  12. package/lib/cjs/entry/dependenciesAny/dependenciesSimplifyConstant.generated.js +2 -0
  13. package/lib/cjs/entry/dependenciesAny/dependenciesUnitClass.generated.js +0 -2
  14. package/lib/cjs/entry/dependenciesAny/dependenciesZeta.generated.js +2 -0
  15. package/lib/cjs/entry/dependenciesAny.generated.js +21 -0
  16. package/lib/cjs/entry/dependenciesNumber/dependenciesBernoulli.generated.js +21 -0
  17. package/lib/cjs/entry/dependenciesNumber/dependenciesConstantNode.generated.js +2 -0
  18. package/lib/cjs/entry/dependenciesNumber/dependenciesIsBounded.generated.js +17 -0
  19. package/lib/cjs/entry/dependenciesNumber/dependenciesIsFinite.generated.js +21 -0
  20. package/lib/cjs/entry/dependenciesNumber/dependenciesSimplifyConstant.generated.js +2 -0
  21. package/lib/cjs/entry/dependenciesNumber/dependenciesZeta.generated.js +2 -0
  22. package/lib/cjs/entry/dependenciesNumber.generated.js +21 -0
  23. package/lib/cjs/entry/impureFunctionsAny.generated.js +217 -212
  24. package/lib/cjs/entry/impureFunctionsNumber.generated.js +82 -77
  25. package/lib/cjs/entry/pureFunctionsAny.generated.js +668 -652
  26. package/lib/cjs/entry/pureFunctionsNumber.generated.js +155 -140
  27. package/lib/cjs/expression/embeddedDocs/embeddedDocs.js +6 -0
  28. package/lib/cjs/expression/embeddedDocs/function/combinatorics/stirlingS2.js +2 -2
  29. package/lib/cjs/expression/embeddedDocs/function/probability/bernoulli.js +14 -0
  30. package/lib/cjs/expression/embeddedDocs/function/utils/isBounded.js +14 -0
  31. package/lib/cjs/expression/embeddedDocs/function/utils/isFinite.js +14 -0
  32. package/lib/cjs/expression/embeddedDocs/function/utils/isNaN.js +1 -1
  33. package/lib/cjs/expression/embeddedDocs/function/utils/isNumeric.js +1 -1
  34. package/lib/cjs/expression/node/AccessorNode.js +36 -7
  35. package/lib/cjs/expression/node/ConstantNode.js +4 -4
  36. package/lib/cjs/expression/node/FunctionNode.js +20 -5
  37. package/lib/cjs/expression/parse.js +36 -12
  38. package/lib/cjs/factoriesAny.js +21 -0
  39. package/lib/cjs/factoriesNumber.js +23 -2
  40. package/lib/cjs/function/algebra/simplifyConstant.js +3 -2
  41. package/lib/cjs/function/arithmetic/nthRoots.js +5 -1
  42. package/lib/cjs/function/probability/bernoulli.js +108 -0
  43. package/lib/cjs/function/relational/equal.js +2 -3
  44. package/lib/cjs/function/special/zeta.js +3 -2
  45. package/lib/cjs/function/utils/isBounded.js +54 -0
  46. package/lib/cjs/function/utils/isFinite.js +50 -0
  47. package/lib/cjs/function/utils/isInteger.js +7 -15
  48. package/lib/cjs/function/utils/isNaN.js +1 -1
  49. package/lib/cjs/function/utils/isNumeric.js +1 -1
  50. package/lib/cjs/header.js +2 -2
  51. package/lib/cjs/json/replacer.js +1 -1
  52. package/lib/cjs/plain/number/probability.js +2 -2
  53. package/lib/cjs/plain/number/trigonometry.js +1 -1
  54. package/lib/cjs/type/fraction/function/fraction.js +1 -1
  55. package/lib/cjs/type/matrix/SparseMatrix.js +24 -4
  56. package/lib/cjs/type/unit/Unit.js +12 -8
  57. package/lib/cjs/utils/number.js +7 -7
  58. package/lib/cjs/utils/optimizeCallback.js +13 -1
  59. package/lib/cjs/version.js +1 -1
  60. package/lib/esm/entry/dependenciesAny/dependenciesBernoulli.generated.js +18 -0
  61. package/lib/esm/entry/dependenciesAny/dependenciesConstantNode.generated.js +2 -0
  62. package/lib/esm/entry/dependenciesAny/dependenciesEqual.generated.js +0 -2
  63. package/lib/esm/entry/dependenciesAny/dependenciesIsBounded.generated.js +10 -0
  64. package/lib/esm/entry/dependenciesAny/dependenciesIsFinite.generated.js +14 -0
  65. package/lib/esm/entry/dependenciesAny/dependenciesIsInteger.generated.js +2 -0
  66. package/lib/esm/entry/dependenciesAny/dependenciesSimplifyConstant.generated.js +2 -0
  67. package/lib/esm/entry/dependenciesAny/dependenciesUnitClass.generated.js +0 -2
  68. package/lib/esm/entry/dependenciesAny/dependenciesZeta.generated.js +2 -0
  69. package/lib/esm/entry/dependenciesAny.generated.js +3 -0
  70. package/lib/esm/entry/dependenciesNumber/dependenciesBernoulli.generated.js +14 -0
  71. package/lib/esm/entry/dependenciesNumber/dependenciesConstantNode.generated.js +2 -0
  72. package/lib/esm/entry/dependenciesNumber/dependenciesIsBounded.generated.js +10 -0
  73. package/lib/esm/entry/dependenciesNumber/dependenciesIsFinite.generated.js +14 -0
  74. package/lib/esm/entry/dependenciesNumber/dependenciesSimplifyConstant.generated.js +2 -0
  75. package/lib/esm/entry/dependenciesNumber/dependenciesZeta.generated.js +2 -0
  76. package/lib/esm/entry/dependenciesNumber.generated.js +3 -0
  77. package/lib/esm/entry/impureFunctionsAny.generated.js +219 -214
  78. package/lib/esm/entry/impureFunctionsNumber.generated.js +84 -79
  79. package/lib/esm/entry/pureFunctionsAny.generated.js +665 -649
  80. package/lib/esm/entry/pureFunctionsNumber.generated.js +154 -139
  81. package/lib/esm/expression/embeddedDocs/embeddedDocs.js +6 -0
  82. package/lib/esm/expression/embeddedDocs/function/combinatorics/stirlingS2.js +2 -2
  83. package/lib/esm/expression/embeddedDocs/function/probability/bernoulli.js +8 -0
  84. package/lib/esm/expression/embeddedDocs/function/utils/isBounded.js +8 -0
  85. package/lib/esm/expression/embeddedDocs/function/utils/isFinite.js +8 -0
  86. package/lib/esm/expression/embeddedDocs/function/utils/isNaN.js +1 -1
  87. package/lib/esm/expression/embeddedDocs/function/utils/isNumeric.js +1 -1
  88. package/lib/esm/expression/node/AccessorNode.js +36 -7
  89. package/lib/esm/expression/node/ConstantNode.js +4 -4
  90. package/lib/esm/expression/node/FunctionNode.js +20 -5
  91. package/lib/esm/expression/parse.js +36 -12
  92. package/lib/esm/factoriesAny.js +3 -0
  93. package/lib/esm/factoriesNumber.js +3 -0
  94. package/lib/esm/function/algebra/simplifyConstant.js +3 -2
  95. package/lib/esm/function/arithmetic/nthRoots.js +5 -1
  96. package/lib/esm/function/probability/bernoulli.js +102 -0
  97. package/lib/esm/function/relational/equal.js +2 -3
  98. package/lib/esm/function/special/zeta.js +3 -2
  99. package/lib/esm/function/utils/isBounded.js +48 -0
  100. package/lib/esm/function/utils/isFinite.js +44 -0
  101. package/lib/esm/function/utils/isInteger.js +7 -15
  102. package/lib/esm/function/utils/isNaN.js +1 -1
  103. package/lib/esm/function/utils/isNumeric.js +1 -1
  104. package/lib/esm/json/replacer.js +1 -1
  105. package/lib/esm/plain/number/probability.js +2 -2
  106. package/lib/esm/plain/number/trigonometry.js +1 -1
  107. package/lib/esm/type/fraction/function/fraction.js +1 -1
  108. package/lib/esm/type/matrix/SparseMatrix.js +24 -4
  109. package/lib/esm/type/unit/Unit.js +12 -8
  110. package/lib/esm/utils/number.js +7 -7
  111. package/lib/esm/utils/optimizeCallback.js +13 -1
  112. package/lib/esm/version.js +1 -1
  113. package/package.json +8 -8
  114. package/types/index.d.ts +535 -223
package/HISTORY.md CHANGED
@@ -1,22 +1,38 @@
1
1
  # History
2
2
 
3
- # 2205-10-10, 15.0.0
3
+ # 2025-11-05, 15.1.0
4
+
5
+ - Feat: implement functions `isFinite` and `isBounded` (#3554, #3553).
6
+ Thanks @gwhitney.
7
+ - Feat: add function `bernoulli` to calculate Bernoulli numbers (#3551).
8
+ Thanks @gwhitney.
9
+ - Feat: support for optional chaining `object?.key` (#3547).
10
+ Thanks @NilsDietrich.
11
+ - Fix: #3580, #3586, #3587 issues with the optional chaining operator: disallow
12
+ double dot `?..`, allow optional function calls, throw errors on invalid uses
13
+ of `?.` (#3585). Thanks @AnslemHack.
14
+ - Fix: #3579 conditional parsed as optional chaining (#3584).
15
+ - Fix: #3564 Avoid error throws when mapping/filtering empty arrays/matrices.
16
+ (#3567). Thanks @richardt-cla.
17
+ - Fix: #3574 respect tolerances in function `isInteger` (#3575).
18
+ Thanks @gwhitney.
19
+ - Fix: #3562 serializing units missing an internal property (#3572).
20
+
21
+ # 2025-10-10, 15.0.0
4
22
 
5
23
  !!! BE CAREFUL: BREAKING CHANGES !!!
6
24
 
7
25
  - Feat: #3349 Decouple precedence of unary percentage operator and binary
8
26
  modulus operator (that both use symbol `%`), and raise the former (#3432).
9
27
  Thanks @kiprobinsonknack.
10
- - Feat: #1753 enhance Kronecker product to handle arbitrary dimension (#3461).
11
- Thanks @gwhitney.
28
+ - Feat: #1753 enhance Kronecker product to handle arbitrary dimension (#3461,
29
+ #3455). Thanks @gwhitney and @Delaney.
12
30
  - Feat: #2344 matrix subset according to the type of input (#3485).
13
31
  Thanks @dvd101x.
14
- - Fix: #1753 Correct dimensionality of Kronecker product on vectors (and
15
- extend to arbitrary dimension) (#3455). Thanks @Delaney.
16
32
  - Fix: #3501 parse `%` as unary only when not followed by a term (#3505).
17
33
  Thanks @gwhitney.
18
34
  - Fix: #3421 require a space or delimiter after hex, bin, and oct values (#3463).
19
- - Fix: #3529 Change function `size` to always return an `Array` (3535).
35
+ - Fix: #3529 Change function `size` to always return an `Array` (#3535).
20
36
  - Fix: #3530 throw an error when trying to flatten a `SparseMatrix` (#3536).
21
37
 
22
38
  # 2025-10-10, 14.9.1
package/README.md CHANGED
@@ -136,7 +136,7 @@ A common case is to implement a new function. This involves the following steps:
136
136
  - Write documentation on the function in the source code comment of `myNewFunction.js`. This documentation is used to auto generate documentation on the website.
137
137
  - Write embedded documentation for the new function in `./src/expression/embeddedDocs/function/arithmetic/myNewFunction.js`. Add the new documentation to the index file `./src/expression/embeddedDocs/embeddedDocs.js`.
138
138
  - Write unit tests for the function in `./test/unit-tests/function/arithmetic/myNewFunction.test.js`.
139
- - Write the necessary TypeScript definitions for the new function in `./types/index.d.ts`, and write tests for it in `./test/typescript-tests/testTypes.ts`. This is described in [./types/EXPLANATION.md](./types/EXPLANATION.md).
139
+ - Write the necessary TypeScript definitions for the new function in `./types/index.d.ts`, and write tests for it in `./test/typescript-tests/testTypes.ts`. This is described in [./types/EXPLANATION.md](./types/EXPLANATION.md) -- make sure to read that page, as Typescript definitions must be added in _multiple_ places in the code.
140
140
  - Ensure the code style is ok by running `npm run lint` (run `npm run format` to fix the code style automatically).
141
141
 
142
142