mathjs 14.9.1 → 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 (146) hide show
  1. package/HISTORY.md +35 -0
  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/core/config.js +5 -1
  7. package/lib/cjs/core/function/config.js +4 -0
  8. package/lib/cjs/entry/dependenciesAny/dependenciesBernoulli.generated.js +25 -0
  9. package/lib/cjs/entry/dependenciesAny/dependenciesConstantNode.generated.js +2 -0
  10. package/lib/cjs/entry/dependenciesAny/dependenciesEqual.generated.js +0 -2
  11. package/lib/cjs/entry/dependenciesAny/dependenciesIsBounded.generated.js +17 -0
  12. package/lib/cjs/entry/dependenciesAny/dependenciesIsFinite.generated.js +21 -0
  13. package/lib/cjs/entry/dependenciesAny/dependenciesIsInteger.generated.js +2 -0
  14. package/lib/cjs/entry/dependenciesAny/dependenciesSimplifyConstant.generated.js +2 -0
  15. package/lib/cjs/entry/dependenciesAny/dependenciesSize.generated.js +0 -2
  16. package/lib/cjs/entry/dependenciesAny/dependenciesUnitClass.generated.js +0 -2
  17. package/lib/cjs/entry/dependenciesAny/dependenciesZeta.generated.js +2 -0
  18. package/lib/cjs/entry/dependenciesAny.generated.js +21 -0
  19. package/lib/cjs/entry/dependenciesNumber/dependenciesBernoulli.generated.js +21 -0
  20. package/lib/cjs/entry/dependenciesNumber/dependenciesConstantNode.generated.js +2 -0
  21. package/lib/cjs/entry/dependenciesNumber/dependenciesIsBounded.generated.js +17 -0
  22. package/lib/cjs/entry/dependenciesNumber/dependenciesIsFinite.generated.js +21 -0
  23. package/lib/cjs/entry/dependenciesNumber/dependenciesSimplifyConstant.generated.js +2 -0
  24. package/lib/cjs/entry/dependenciesNumber/dependenciesSize.generated.js +0 -2
  25. package/lib/cjs/entry/dependenciesNumber/dependenciesZeta.generated.js +2 -0
  26. package/lib/cjs/entry/dependenciesNumber.generated.js +21 -0
  27. package/lib/cjs/entry/impureFunctionsAny.generated.js +223 -218
  28. package/lib/cjs/entry/impureFunctionsNumber.generated.js +82 -77
  29. package/lib/cjs/entry/pureFunctionsAny.generated.js +717 -702
  30. package/lib/cjs/entry/pureFunctionsNumber.generated.js +155 -142
  31. package/lib/cjs/expression/embeddedDocs/embeddedDocs.js +6 -0
  32. package/lib/cjs/expression/embeddedDocs/function/combinatorics/stirlingS2.js +2 -2
  33. package/lib/cjs/expression/embeddedDocs/function/probability/bernoulli.js +14 -0
  34. package/lib/cjs/expression/embeddedDocs/function/utils/isBounded.js +14 -0
  35. package/lib/cjs/expression/embeddedDocs/function/utils/isFinite.js +14 -0
  36. package/lib/cjs/expression/embeddedDocs/function/utils/isNaN.js +1 -1
  37. package/lib/cjs/expression/embeddedDocs/function/utils/isNumeric.js +1 -1
  38. package/lib/cjs/expression/node/AccessorNode.js +36 -7
  39. package/lib/cjs/expression/node/ConstantNode.js +4 -4
  40. package/lib/cjs/expression/node/FunctionNode.js +20 -5
  41. package/lib/cjs/expression/node/IndexNode.js +1 -1
  42. package/lib/cjs/expression/parse.js +74 -46
  43. package/lib/cjs/factoriesAny.js +21 -0
  44. package/lib/cjs/factoriesNumber.js +23 -2
  45. package/lib/cjs/function/algebra/simplifyConstant.js +3 -2
  46. package/lib/cjs/function/algebra/sylvester.js +6 -5
  47. package/lib/cjs/function/arithmetic/nthRoots.js +5 -1
  48. package/lib/cjs/function/logical/nullish.js +2 -2
  49. package/lib/cjs/function/matrix/column.js +2 -1
  50. package/lib/cjs/function/matrix/dot.js +4 -9
  51. package/lib/cjs/function/matrix/flatten.js +6 -3
  52. package/lib/cjs/function/matrix/kron.js +31 -30
  53. package/lib/cjs/function/matrix/row.js +2 -1
  54. package/lib/cjs/function/matrix/size.js +11 -17
  55. package/lib/cjs/function/matrix/subset.js +21 -11
  56. package/lib/cjs/function/probability/bernoulli.js +108 -0
  57. package/lib/cjs/function/relational/equal.js +2 -3
  58. package/lib/cjs/function/special/zeta.js +3 -2
  59. package/lib/cjs/function/utils/isBounded.js +54 -0
  60. package/lib/cjs/function/utils/isFinite.js +50 -0
  61. package/lib/cjs/function/utils/isInteger.js +7 -15
  62. package/lib/cjs/function/utils/isNaN.js +1 -1
  63. package/lib/cjs/function/utils/isNumeric.js +1 -1
  64. package/lib/cjs/header.js +2 -2
  65. package/lib/cjs/json/replacer.js +1 -1
  66. package/lib/cjs/plain/number/probability.js +2 -2
  67. package/lib/cjs/plain/number/trigonometry.js +1 -1
  68. package/lib/cjs/type/fraction/function/fraction.js +1 -1
  69. package/lib/cjs/type/matrix/DenseMatrix.js +52 -41
  70. package/lib/cjs/type/matrix/MatrixIndex.js +19 -20
  71. package/lib/cjs/type/matrix/SparseMatrix.js +37 -11
  72. package/lib/cjs/type/unit/Unit.js +12 -8
  73. package/lib/cjs/utils/number.js +7 -7
  74. package/lib/cjs/utils/optimizeCallback.js +13 -1
  75. package/lib/cjs/version.js +1 -1
  76. package/lib/esm/core/config.js +5 -1
  77. package/lib/esm/core/function/config.js +4 -0
  78. package/lib/esm/entry/dependenciesAny/dependenciesBernoulli.generated.js +18 -0
  79. package/lib/esm/entry/dependenciesAny/dependenciesConstantNode.generated.js +2 -0
  80. package/lib/esm/entry/dependenciesAny/dependenciesEqual.generated.js +0 -2
  81. package/lib/esm/entry/dependenciesAny/dependenciesIsBounded.generated.js +10 -0
  82. package/lib/esm/entry/dependenciesAny/dependenciesIsFinite.generated.js +14 -0
  83. package/lib/esm/entry/dependenciesAny/dependenciesIsInteger.generated.js +2 -0
  84. package/lib/esm/entry/dependenciesAny/dependenciesSimplifyConstant.generated.js +2 -0
  85. package/lib/esm/entry/dependenciesAny/dependenciesSize.generated.js +0 -2
  86. package/lib/esm/entry/dependenciesAny/dependenciesUnitClass.generated.js +0 -2
  87. package/lib/esm/entry/dependenciesAny/dependenciesZeta.generated.js +2 -0
  88. package/lib/esm/entry/dependenciesAny.generated.js +3 -0
  89. package/lib/esm/entry/dependenciesNumber/dependenciesBernoulli.generated.js +14 -0
  90. package/lib/esm/entry/dependenciesNumber/dependenciesConstantNode.generated.js +2 -0
  91. package/lib/esm/entry/dependenciesNumber/dependenciesIsBounded.generated.js +10 -0
  92. package/lib/esm/entry/dependenciesNumber/dependenciesIsFinite.generated.js +14 -0
  93. package/lib/esm/entry/dependenciesNumber/dependenciesSimplifyConstant.generated.js +2 -0
  94. package/lib/esm/entry/dependenciesNumber/dependenciesSize.generated.js +0 -2
  95. package/lib/esm/entry/dependenciesNumber/dependenciesZeta.generated.js +2 -0
  96. package/lib/esm/entry/dependenciesNumber.generated.js +3 -0
  97. package/lib/esm/entry/impureFunctionsAny.generated.js +225 -220
  98. package/lib/esm/entry/impureFunctionsNumber.generated.js +84 -79
  99. package/lib/esm/entry/pureFunctionsAny.generated.js +714 -699
  100. package/lib/esm/entry/pureFunctionsNumber.generated.js +154 -141
  101. package/lib/esm/expression/embeddedDocs/embeddedDocs.js +6 -0
  102. package/lib/esm/expression/embeddedDocs/function/combinatorics/stirlingS2.js +2 -2
  103. package/lib/esm/expression/embeddedDocs/function/probability/bernoulli.js +8 -0
  104. package/lib/esm/expression/embeddedDocs/function/utils/isBounded.js +8 -0
  105. package/lib/esm/expression/embeddedDocs/function/utils/isFinite.js +8 -0
  106. package/lib/esm/expression/embeddedDocs/function/utils/isNaN.js +1 -1
  107. package/lib/esm/expression/embeddedDocs/function/utils/isNumeric.js +1 -1
  108. package/lib/esm/expression/node/AccessorNode.js +36 -7
  109. package/lib/esm/expression/node/ConstantNode.js +4 -4
  110. package/lib/esm/expression/node/FunctionNode.js +20 -5
  111. package/lib/esm/expression/node/IndexNode.js +1 -1
  112. package/lib/esm/expression/parse.js +74 -46
  113. package/lib/esm/factoriesAny.js +3 -0
  114. package/lib/esm/factoriesNumber.js +3 -0
  115. package/lib/esm/function/algebra/simplifyConstant.js +3 -2
  116. package/lib/esm/function/algebra/sylvester.js +6 -5
  117. package/lib/esm/function/arithmetic/nthRoots.js +5 -1
  118. package/lib/esm/function/logical/nullish.js +2 -2
  119. package/lib/esm/function/matrix/column.js +2 -1
  120. package/lib/esm/function/matrix/dot.js +4 -9
  121. package/lib/esm/function/matrix/flatten.js +6 -3
  122. package/lib/esm/function/matrix/kron.js +31 -30
  123. package/lib/esm/function/matrix/row.js +2 -1
  124. package/lib/esm/function/matrix/size.js +11 -17
  125. package/lib/esm/function/matrix/subset.js +21 -11
  126. package/lib/esm/function/probability/bernoulli.js +102 -0
  127. package/lib/esm/function/relational/equal.js +2 -3
  128. package/lib/esm/function/special/zeta.js +3 -2
  129. package/lib/esm/function/utils/isBounded.js +48 -0
  130. package/lib/esm/function/utils/isFinite.js +44 -0
  131. package/lib/esm/function/utils/isInteger.js +7 -15
  132. package/lib/esm/function/utils/isNaN.js +1 -1
  133. package/lib/esm/function/utils/isNumeric.js +1 -1
  134. package/lib/esm/json/replacer.js +1 -1
  135. package/lib/esm/plain/number/probability.js +2 -2
  136. package/lib/esm/plain/number/trigonometry.js +1 -1
  137. package/lib/esm/type/fraction/function/fraction.js +1 -1
  138. package/lib/esm/type/matrix/DenseMatrix.js +52 -41
  139. package/lib/esm/type/matrix/MatrixIndex.js +20 -21
  140. package/lib/esm/type/matrix/SparseMatrix.js +37 -11
  141. package/lib/esm/type/unit/Unit.js +12 -8
  142. package/lib/esm/utils/number.js +7 -7
  143. package/lib/esm/utils/optimizeCallback.js +13 -1
  144. package/lib/esm/version.js +1 -1
  145. package/package.json +8 -8
  146. package/types/index.d.ts +535 -223
@@ -5,7 +5,7 @@
5
5
  import { config } from './configReadonly.js';
6
6
  import { createE, createFalse, createIndex, createInfinity, createLN10, createLOG10E, createMatrix, createNaN, createNull, createPhi, createRangeClass, createReplacer, createResultSet, createSQRT1_2,
7
7
  // eslint-disable-line camelcase
8
- createSubset, createTau, createTyped, createUnaryPlus, createVersion, createXor, createAbs, createAcos, createAcot, createAcsc, createAdd, createAnd, createAsec, createAsin, createAtan, createAtanh, createBigint, createBitNot, createBitXor, createBoolean, createCbrt, createCombinations, createCompare, createCompareText, createCos, createCot, createCsc, createCube, createDivide, createEqualScalar, createErf, createExp, createFilter, createForEach, createFormat, createGamma, createIsInteger, createIsNegative, createIsPositive, createIsZero, createLOG2E, createLargerEq, createLeftShift, createLog, createLog1p, createMap, createMean, createMod, createMultiply, createNot, createNumber, createOr, createPi, createPow, createRandom, createRightLogShift, createSQRT2, createSech, createSin, createSize, createSmallerEq, createSquare, createString, createSubtract, createTanh, createTypeOf, createUnequal, createXgcd, createAcoth, createAddScalar, createAsech, createBitAnd, createCombinationsWithRep, createCosh, createCsch, createDivideScalar, createEqualText, createExpm1, createIsNumeric, createLN2, createLcm, createLog10, createMapSlices, createMultiplyScalar, createNthRoot, createPickRandom, createRightArithShift, createSec, createSinh, createSqrt, createTan, createUnaryMinus, createAcosh, createAtan2, createBitOr, createClone, createCoth, createEqual, createFactorial, createHasNumericValue, createIsNaN, createLarger, createLog2, createMode, createNorm, createPartitionSelect, createPrint, createRandomInt, createRound, createSmaller, createSubtractScalar, createTrue, createVariance, createZeta, createAcsch, createCatalan, createCompareNatural, createComposition, createCumSum, createFloor, createHypot, createLgamma, createMedian, createMultinomial, createPermutations, createQuantileSeq, createSign, createStd, createStirlingS2, createAsinh, createCeil, createDeepEqual, createFix, createIsPrime, createNumeric, createProd, createBellNumbers, createGcd, createMad, createRange, createSum, createCorr, createMax, createMin } from '../factoriesNumber.js';
8
+ createSubset, createTau, createTyped, createUnaryPlus, createVersion, createXor, createAbs, createAcos, createAcot, createAcsc, createAdd, createAnd, createAsec, createAsin, createAtan, createAtanh, createBigint, createBitNot, createBitXor, createBoolean, createCbrt, createCombinations, createCompare, createCompareText, createCos, createCot, createCsc, createCube, createDivide, createEqualScalar, createErf, createExp, createFilter, createForEach, createFormat, createGamma, createIsBounded, createIsInteger, createIsNegative, createIsPositive, createIsZero, createLOG2E, createLargerEq, createLeftShift, createLog, createLog1p, createMap, createMean, createMod, createMultiply, createNot, createNumber, createOr, createPi, createPow, createRandom, createRightLogShift, createSQRT2, createSech, createSin, createSize, createSmallerEq, createSquare, createString, createSubtract, createTanh, createTypeOf, createUnequal, createXgcd, createAcoth, createAddScalar, createAsech, createBernoulli, createBitOr, createCombinationsWithRep, createCosh, createCsch, createDivideScalar, createEqualText, createExpm1, createIsNaN, createIsPrime, createLarger, createLgamma, createLog2, createMapSlices, createMultiplyScalar, createNthRoot, createPickRandom, createRandomInt, createRightArithShift, createSec, createSinh, createSqrt, createTan, createUnaryMinus, createVariance, createAcosh, createAtan2, createBitAnd, createCatalan, createClone, createComposition, createCoth, createEqual, createFactorial, createIsFinite, createLN2, createLog10, createMultinomial, createNumeric, createPermutations, createProd, createRound, createSmaller, createSubtractScalar, createZeta, createAcsch, createCompareNatural, createCumSum, createFloor, createHypot, createLcm, createMax, createMin, createNorm, createPrint, createRange, createSign, createStd, createSum, createAsinh, createCeil, createCorr, createFix, createIsNumeric, createPartitionSelect, createStirlingS2, createBellNumbers, createDeepEqual, createGcd, createMedian, createQuantileSeq, createMode, createTrue, createHasNumericValue, createMad } from '../factoriesNumber.js';
9
9
  export var e = /* #__PURE__ */createE({
10
10
  config
11
11
  });
@@ -138,6 +138,9 @@ export var format = /* #__PURE__ */createFormat({
138
138
  export var gamma = /* #__PURE__ */createGamma({
139
139
  typed
140
140
  });
141
+ export var isBounded = /* #__PURE__ */createIsBounded({
142
+ typed
143
+ });
141
144
  export var isInteger = /* #__PURE__ */createIsInteger({
142
145
  typed
143
146
  });
@@ -212,8 +215,6 @@ export var sin = /* #__PURE__ */createSin({
212
215
  typed
213
216
  });
214
217
  export var size = /* #__PURE__ */createSize({
215
- matrix,
216
- config,
217
218
  typed
218
219
  });
219
220
  export var smallerEq = /* #__PURE__ */createSmallerEq({
@@ -251,7 +252,13 @@ export var addScalar = /* #__PURE__ */createAddScalar({
251
252
  export var asech = /* #__PURE__ */createAsech({
252
253
  typed
253
254
  });
254
- export var bitAnd = /* #__PURE__ */createBitAnd({
255
+ export var bernoulli = /* #__PURE__ */createBernoulli({
256
+ config,
257
+ isInteger,
258
+ number,
259
+ typed
260
+ });
261
+ export var bitOr = /* #__PURE__ */createBitOr({
255
262
  typed
256
263
  });
257
264
  export var combinationsWithRep = /* #__PURE__ */createCombinationsWithRep({
@@ -274,16 +281,20 @@ export var equalText = /* #__PURE__ */createEqualText({
274
281
  export var expm1 = /* #__PURE__ */createExpm1({
275
282
  typed
276
283
  });
277
- export var isNumeric = /* #__PURE__ */createIsNumeric({
284
+ export var isNaN = /* #__PURE__ */createIsNaN({
278
285
  typed
279
286
  });
280
- export var LN2 = /* #__PURE__ */createLN2({
281
- config
287
+ export var isPrime = /* #__PURE__ */createIsPrime({
288
+ typed
282
289
  });
283
- export var lcm = /* #__PURE__ */createLcm({
290
+ export var larger = /* #__PURE__ */createLarger({
291
+ config,
284
292
  typed
285
293
  });
286
- export var log10 = /* #__PURE__ */createLog10({
294
+ export var lgamma = /* #__PURE__ */createLgamma({
295
+ typed
296
+ });
297
+ export var log2 = /* #__PURE__ */createLog2({
287
298
  typed
288
299
  });
289
300
  export var mapSlices = /* #__PURE__ */createMapSlices({
@@ -301,6 +312,11 @@ export var pickRandom = /* #__PURE__ */createPickRandom({
301
312
  config,
302
313
  typed
303
314
  });
315
+ export var randomInt = /* #__PURE__ */createRandomInt({
316
+ config,
317
+ log2,
318
+ typed
319
+ });
304
320
  export var rightArithShift = /* #__PURE__ */createRightArithShift({
305
321
  typed
306
322
  });
@@ -319,18 +335,45 @@ export var tan = /* #__PURE__ */createTan({
319
335
  export var unaryMinus = /* #__PURE__ */createUnaryMinus({
320
336
  typed
321
337
  });
338
+ export var variance = /* #__PURE__ */createVariance({
339
+ add,
340
+ divide,
341
+ isNaN,
342
+ mapSlices,
343
+ multiply,
344
+ subtract,
345
+ typed
346
+ });
322
347
  export var acosh = /* #__PURE__ */createAcosh({
323
348
  typed
324
349
  });
325
350
  export var atan2 = /* #__PURE__ */createAtan2({
326
351
  typed
327
352
  });
328
- export var bitOr = /* #__PURE__ */createBitOr({
353
+ export var bitAnd = /* #__PURE__ */createBitAnd({
354
+ typed
355
+ });
356
+ export var catalan = /* #__PURE__ */createCatalan({
357
+ addScalar,
358
+ combinations,
359
+ divideScalar,
360
+ isInteger,
361
+ isNegative,
362
+ multiplyScalar,
329
363
  typed
330
364
  });
331
365
  export var clone = /* #__PURE__ */createClone({
332
366
  typed
333
367
  });
368
+ export var composition = /* #__PURE__ */createComposition({
369
+ addScalar,
370
+ combinations,
371
+ isInteger,
372
+ isNegative,
373
+ isPositive,
374
+ larger,
375
+ typed
376
+ });
334
377
  export var coth = /* #__PURE__ */createCoth({
335
378
  typed
336
379
  });
@@ -342,40 +385,37 @@ export var factorial = /* #__PURE__ */createFactorial({
342
385
  gamma,
343
386
  typed
344
387
  });
345
- export var hasNumericValue = /* #__PURE__ */createHasNumericValue({
346
- isNumeric,
347
- typed
348
- });
349
- export var isNaN = /* #__PURE__ */createIsNaN({
350
- typed
351
- });
352
- export var larger = /* #__PURE__ */createLarger({
353
- config,
388
+ export var isFinite = /* #__PURE__ */createIsFinite({
389
+ isBounded,
390
+ map,
354
391
  typed
355
392
  });
356
- export var log2 = /* #__PURE__ */createLog2({
357
- typed
393
+ export var LN2 = /* #__PURE__ */createLN2({
394
+ config
358
395
  });
359
- export var mode = /* #__PURE__ */createMode({
360
- isNaN,
361
- isNumeric,
396
+ export var log10 = /* #__PURE__ */createLog10({
362
397
  typed
363
398
  });
364
- export var norm = /* #__PURE__ */createNorm({
399
+ export var multinomial = /* #__PURE__ */createMultinomial({
400
+ add,
401
+ divide,
402
+ factorial,
403
+ isInteger,
404
+ isPositive,
405
+ multiply,
365
406
  typed
366
407
  });
367
- export var partitionSelect = /* #__PURE__ */createPartitionSelect({
368
- compare,
369
- isNaN,
370
- isNumeric,
371
- typed
408
+ export var numeric = /* #__PURE__ */createNumeric({
409
+ number
372
410
  });
373
- export var print = /* #__PURE__ */createPrint({
411
+ export var permutations = /* #__PURE__ */createPermutations({
412
+ factorial,
374
413
  typed
375
414
  });
376
- export var randomInt = /* #__PURE__ */createRandomInt({
415
+ export var prod = /* #__PURE__ */createProd({
377
416
  config,
378
- log2,
417
+ multiplyScalar,
418
+ numeric,
379
419
  typed
380
420
  });
381
421
  export var round = /* #__PURE__ */createRound({
@@ -388,16 +428,6 @@ export var smaller = /* #__PURE__ */createSmaller({
388
428
  export var subtractScalar = /* #__PURE__ */createSubtractScalar({
389
429
  typed
390
430
  });
391
- export var _true = /* #__PURE__ */createTrue({});
392
- export var variance = /* #__PURE__ */createVariance({
393
- add,
394
- divide,
395
- isNaN,
396
- mapSlices,
397
- multiply,
398
- subtract,
399
- typed
400
- });
401
431
  export var zeta = /* #__PURE__ */createZeta({
402
432
  add,
403
433
  config,
@@ -405,6 +435,7 @@ export var zeta = /* #__PURE__ */createZeta({
405
435
  equal,
406
436
  factorial,
407
437
  gamma,
438
+ isBounded,
408
439
  isNegative,
409
440
  multiply,
410
441
  pi,
@@ -417,28 +448,10 @@ export var zeta = /* #__PURE__ */createZeta({
417
448
  export var acsch = /* #__PURE__ */createAcsch({
418
449
  typed
419
450
  });
420
- export var catalan = /* #__PURE__ */createCatalan({
421
- addScalar,
422
- combinations,
423
- divideScalar,
424
- isInteger,
425
- isNegative,
426
- multiplyScalar,
427
- typed
428
- });
429
451
  export var compareNatural = /* #__PURE__ */createCompareNatural({
430
452
  compare,
431
453
  typed
432
454
  });
433
- export var composition = /* #__PURE__ */createComposition({
434
- addScalar,
435
- combinations,
436
- isInteger,
437
- isNegative,
438
- isPositive,
439
- larger,
440
- typed
441
- });
442
455
  export var cumsum = /* #__PURE__ */createCumSum({
443
456
  add,
444
457
  typed,
@@ -459,41 +472,40 @@ export var hypot = /* #__PURE__ */createHypot({
459
472
  sqrt,
460
473
  typed
461
474
  });
462
- export var lgamma = /* #__PURE__ */createLgamma({
475
+ export var lcm = /* #__PURE__ */createLcm({
463
476
  typed
464
477
  });
465
- export var median = /* #__PURE__ */createMedian({
466
- add,
467
- compare,
468
- divide,
469
- partitionSelect,
478
+ export var max = /* #__PURE__ */createMax({
479
+ config,
480
+ isNaN,
481
+ larger,
482
+ numeric,
470
483
  typed
471
484
  });
472
- export var multinomial = /* #__PURE__ */createMultinomial({
473
- add,
474
- divide,
475
- factorial,
476
- isInteger,
477
- isPositive,
478
- multiply,
485
+ export var min = /* #__PURE__ */createMin({
486
+ config,
487
+ isNaN,
488
+ numeric,
489
+ smaller,
479
490
  typed
480
491
  });
481
- export var permutations = /* #__PURE__ */createPermutations({
482
- factorial,
492
+ export var norm = /* #__PURE__ */createNorm({
483
493
  typed
484
494
  });
485
- export var quantileSeq = /* #__PURE__ */createQuantileSeq({
495
+ export var print = /* #__PURE__ */createPrint({
496
+ typed
497
+ });
498
+ export var range = /* #__PURE__ */createRange({
499
+ matrix,
486
500
  add,
487
- compare,
488
- divide,
489
- isInteger,
501
+ config,
502
+ equal,
503
+ isPositive,
504
+ isZero,
490
505
  larger,
491
- mapSlices,
492
- multiply,
493
- partitionSelect,
506
+ largerEq,
494
507
  smaller,
495
508
  smallerEq,
496
- subtract,
497
509
  typed
498
510
  });
499
511
  export var sign = /* #__PURE__ */createSign({
@@ -505,18 +517,10 @@ export var std = /* #__PURE__ */createStd({
505
517
  typed,
506
518
  variance
507
519
  });
508
- export var stirlingS2 = /* #__PURE__ */createStirlingS2({
509
- addScalar,
510
- combinations,
511
- divideScalar,
512
- factorial,
513
- isInteger,
514
- isNegative,
515
- larger,
516
- multiplyScalar,
517
- number,
518
- pow,
519
- subtractScalar,
520
+ export var sum = /* #__PURE__ */createSum({
521
+ add,
522
+ config,
523
+ numeric,
520
524
  typed
521
525
  });
522
526
  export var asinh = /* #__PURE__ */createAsinh({
@@ -527,8 +531,16 @@ export var ceil = /* #__PURE__ */createCeil({
527
531
  round,
528
532
  typed
529
533
  });
530
- export var deepEqual = /* #__PURE__ */createDeepEqual({
531
- equal,
534
+ export var corr = /* #__PURE__ */createCorr({
535
+ add,
536
+ divide,
537
+ matrix,
538
+ mean,
539
+ multiply,
540
+ pow,
541
+ sqrt,
542
+ subtract,
543
+ sum,
532
544
  typed
533
545
  });
534
546
  export var fix = /* #__PURE__ */createFix({
@@ -536,16 +548,27 @@ export var fix = /* #__PURE__ */createFix({
536
548
  floor,
537
549
  typed
538
550
  });
539
- export var isPrime = /* #__PURE__ */createIsPrime({
551
+ export var isNumeric = /* #__PURE__ */createIsNumeric({
540
552
  typed
541
553
  });
542
- export var numeric = /* #__PURE__ */createNumeric({
543
- number
554
+ export var partitionSelect = /* #__PURE__ */createPartitionSelect({
555
+ compare,
556
+ isNaN,
557
+ isNumeric,
558
+ typed
544
559
  });
545
- export var prod = /* #__PURE__ */createProd({
546
- config,
560
+ export var stirlingS2 = /* #__PURE__ */createStirlingS2({
561
+ addScalar,
562
+ combinations,
563
+ divideScalar,
564
+ factorial,
565
+ isInteger,
566
+ isNegative,
567
+ larger,
547
568
  multiplyScalar,
548
- numeric,
569
+ number,
570
+ pow,
571
+ subtractScalar,
549
572
  typed
550
573
  });
551
574
  export var bellNumbers = /* #__PURE__ */createBellNumbers({
@@ -555,58 +578,48 @@ export var bellNumbers = /* #__PURE__ */createBellNumbers({
555
578
  stirlingS2,
556
579
  typed
557
580
  });
558
- export var gcd = /* #__PURE__ */createGcd({
559
- typed
560
- });
561
- export var mad = /* #__PURE__ */createMad({
562
- abs,
563
- map,
564
- median,
565
- subtract,
581
+ export var deepEqual = /* #__PURE__ */createDeepEqual({
582
+ equal,
566
583
  typed
567
584
  });
568
- export var range = /* #__PURE__ */createRange({
569
- matrix,
570
- add,
571
- config,
572
- equal,
573
- isPositive,
574
- isZero,
575
- larger,
576
- largerEq,
577
- smaller,
578
- smallerEq,
585
+ export var gcd = /* #__PURE__ */createGcd({
579
586
  typed
580
587
  });
581
- export var sum = /* #__PURE__ */createSum({
588
+ export var median = /* #__PURE__ */createMedian({
582
589
  add,
583
- config,
584
- numeric,
590
+ compare,
591
+ divide,
592
+ partitionSelect,
585
593
  typed
586
594
  });
587
- export var corr = /* #__PURE__ */createCorr({
595
+ export var quantileSeq = /* #__PURE__ */createQuantileSeq({
588
596
  add,
597
+ compare,
589
598
  divide,
590
- matrix,
591
- mean,
599
+ isInteger,
600
+ larger,
601
+ mapSlices,
592
602
  multiply,
593
- pow,
594
- sqrt,
603
+ partitionSelect,
604
+ smaller,
605
+ smallerEq,
595
606
  subtract,
596
- sum,
597
607
  typed
598
608
  });
599
- export var max = /* #__PURE__ */createMax({
600
- config,
609
+ export var mode = /* #__PURE__ */createMode({
601
610
  isNaN,
602
- larger,
603
- numeric,
611
+ isNumeric,
604
612
  typed
605
613
  });
606
- export var min = /* #__PURE__ */createMin({
607
- config,
608
- isNaN,
609
- numeric,
610
- smaller,
614
+ export var _true = /* #__PURE__ */createTrue({});
615
+ export var hasNumericValue = /* #__PURE__ */createHasNumericValue({
616
+ isNumeric,
617
+ typed
618
+ });
619
+ export var mad = /* #__PURE__ */createMad({
620
+ abs,
621
+ map,
622
+ median,
623
+ subtract,
611
624
  typed
612
625
  });
@@ -155,6 +155,7 @@ import { transposeDocs } from './function/matrix/transpose.js';
155
155
  import { zerosDocs } from './function/matrix/zeros.js';
156
156
  import { fftDocs } from './function/matrix/fft.js';
157
157
  import { ifftDocs } from './function/matrix/ifft.js';
158
+ import { bernoulliDocs } from './function/probability/bernoulli.js';
158
159
  import { combinationsDocs } from './function/probability/combinations.js';
159
160
  import { combinationsWithRepDocs } from './function/probability/combinationsWithRep.js';
160
161
  import { factorialDocs } from './function/probability/factorial.js';
@@ -238,6 +239,8 @@ import { hasNumericValueDocs } from './function/utils/hasNumericValue.js';
238
239
  import { hexDocs } from './function/utils/hex.js';
239
240
  import { isIntegerDocs } from './function/utils/isInteger.js';
240
241
  import { isNaNDocs } from './function/utils/isNaN.js';
242
+ import { isBoundedDocs } from './function/utils/isBounded.js';
243
+ import { isFiniteDocs } from './function/utils/isFinite.js';
241
244
  import { isNegativeDocs } from './function/utils/isNegative.js';
242
245
  import { isNumericDocs } from './function/utils/isNumeric.js';
243
246
  import { isPositiveDocs } from './function/utils/isPositive.js';
@@ -632,6 +635,7 @@ export var embeddedDocs = {
632
635
  // functions - numeric
633
636
  solveODE: solveODEDocs,
634
637
  // functions - probability
638
+ bernoulli: bernoulliDocs,
635
639
  combinations: combinationsDocs,
636
640
  combinationsWithRep: combinationsWithRepDocs,
637
641
  // distribution: distributionDocs,
@@ -723,6 +727,8 @@ export var embeddedDocs = {
723
727
  oct: octDocs,
724
728
  hex: hexDocs,
725
729
  isNaN: isNaNDocs,
730
+ isBounded: isBoundedDocs,
731
+ isFinite: isFiniteDocs,
726
732
  isInteger: isIntegerDocs,
727
733
  isNegative: isNegativeDocs,
728
734
  isNumeric: isNumericDocs,
@@ -2,7 +2,7 @@ export var stirlingS2Docs = {
2
2
  name: 'stirlingS2',
3
3
  category: 'Combinatorics',
4
4
  syntax: ['stirlingS2(n, k)'],
5
- description: 'he Stirling numbers of the second kind, counts the number of ways to partition a set of n labelled objects into k nonempty unlabelled subsets. `stirlingS2` only takes integer arguments. The following condition must be enforced: k <= n. If n = k or k = 1, then s(n,k) = 1.',
5
+ description: 'The Stirling numbers of the second kind, counts the number of ways to partition a set of n labelled objects into k nonempty unlabelled subsets. `stirlingS2` only takes integer arguments. The following condition must be enforced: k <= n. If n = k or k = 1, then s(n,k) = 1.',
6
6
  examples: ['stirlingS2(5, 3)'],
7
- seealso: ['bellNumbers']
7
+ seealso: ['bellNumbers', 'bernoulli']
8
8
  };
@@ -0,0 +1,8 @@
1
+ export var bernoulliDocs = {
2
+ name: 'bernoulli',
3
+ category: 'Probability',
4
+ syntax: ['bernoulli(n)'],
5
+ description: 'The nth Bernoulli number',
6
+ examples: ['bernoulli(4)', 'bernoulli(fraction(12))'],
7
+ seealso: ['combinations', 'gamma', 'stirlingS2']
8
+ };
@@ -0,0 +1,8 @@
1
+ export var isBoundedDocs = {
2
+ name: 'isBounded',
3
+ category: 'Utils',
4
+ syntax: ['isBounded(x)'],
5
+ description: 'Test whether a value or its entries are bounded.',
6
+ examples: ['isBounded(Infinity)', 'isBounded(bigint(3))', 'isBounded([3, -Infinity, -3])'],
7
+ seealso: ['isFinite', 'isNumeric', 'isNaN', 'isNegative', 'isPositive']
8
+ };
@@ -0,0 +1,8 @@
1
+ export var isFiniteDocs = {
2
+ name: 'isFinite',
3
+ category: 'Utils',
4
+ syntax: ['isFinite(x)'],
5
+ description: 'Test whether a value is finite, elementwise on collections.',
6
+ examples: ['isFinite(Infinity)', 'isFinite(bigint(3))', 'isFinite([3, -Infinity, -3])'],
7
+ seealso: ['isBounded', 'isNumeric', 'isNaN', 'isNegative', 'isPositive']
8
+ };
@@ -4,5 +4,5 @@ export var isNaNDocs = {
4
4
  syntax: ['isNaN(x)'],
5
5
  description: 'Test whether a value is NaN (not a number)',
6
6
  examples: ['isNaN(2)', 'isNaN(0 / 0)', 'isNaN(NaN)', 'isNaN(Infinity)'],
7
- seealso: ['isNegative', 'isNumeric', 'isPositive', 'isZero']
7
+ seealso: ['isNegative', 'isNumeric', 'isPositive', 'isZero', 'isFinite', 'isBounded']
8
8
  };
@@ -4,5 +4,5 @@ export var isNumericDocs = {
4
4
  syntax: ['isNumeric(x)'],
5
5
  description: 'Test whether a value is a numeric value. ' + 'Returns true when the input is a number, BigNumber, Fraction, or boolean.',
6
6
  examples: ['isNumeric(2)', 'isNumeric("2")', 'hasNumericValue("2")', 'isNumeric(0)', 'isNumeric(bignumber(500))', 'isNumeric(fraction(0.125))', 'isNumeric(2 + 3i)', 'isNumeric([2.3, "foo", false])'],
7
- seealso: ['isInteger', 'isZero', 'isNegative', 'isPositive', 'isNaN', 'hasNumericValue']
7
+ seealso: ['isInteger', 'isZero', 'isNegative', 'isPositive', 'isNaN', 'hasNumericValue', 'isFinite', 'isBounded']
8
8
  };
@@ -31,8 +31,13 @@ export var createAccessorNode = /* #__PURE__ */factory(name, dependencies, _ref
31
31
  * @param {Node} object The object from which to retrieve
32
32
  * a property or subset.
33
33
  * @param {IndexNode} index IndexNode containing ranges
34
+ * @param {boolean} [optionalChaining=false]
35
+ * Optional property, if the accessor was written as optional-chaining
36
+ * using `a?.b`, or `a?.["b"] with bracket notation.
37
+ * Forces evaluate to undefined if the given object is undefined or null.
34
38
  */
35
39
  constructor(object, index) {
40
+ var optionalChaining = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
36
41
  super();
37
42
  if (!isNode(object)) {
38
43
  throw new TypeError('Node expected for parameter "object"');
@@ -42,6 +47,7 @@ export var createAccessorNode = /* #__PURE__ */factory(name, dependencies, _ref
42
47
  }
43
48
  this.object = object;
44
49
  this.index = index;
50
+ this.optionalChaining = optionalChaining;
45
51
  }
46
52
 
47
53
  // readonly property name
@@ -75,15 +81,36 @@ export var createAccessorNode = /* #__PURE__ */factory(name, dependencies, _ref
75
81
  _compile(math, argNames) {
76
82
  var evalObject = this.object._compile(math, argNames);
77
83
  var evalIndex = this.index._compile(math, argNames);
84
+ var optionalChaining = this.optionalChaining;
85
+ var prevOptionalChaining = isAccessorNode(this.object) && this.object.optionalChaining;
78
86
  if (this.index.isObjectProperty()) {
79
87
  var prop = this.index.getObjectProperty();
80
88
  return function evalAccessorNode(scope, args, context) {
89
+ var ctx = context || {};
90
+ var object = evalObject(scope, args, ctx);
91
+ if (optionalChaining && object == null) {
92
+ ctx.optionalShortCircuit = true;
93
+ return undefined;
94
+ }
95
+ if (prevOptionalChaining && ctx !== null && ctx !== void 0 && ctx.optionalShortCircuit) {
96
+ return undefined;
97
+ }
98
+
81
99
  // get a property from an object evaluated using the scope.
82
- return getSafeProperty(evalObject(scope, args, context), prop);
100
+ return getSafeProperty(object, prop);
83
101
  };
84
102
  } else {
85
103
  return function evalAccessorNode(scope, args, context) {
86
- var object = evalObject(scope, args, context);
104
+ var ctx = context || {};
105
+ var object = evalObject(scope, args, ctx);
106
+ if (optionalChaining && object == null) {
107
+ ctx.optionalShortCircuit = true;
108
+ return undefined;
109
+ }
110
+ if (prevOptionalChaining && ctx !== null && ctx !== void 0 && ctx.optionalShortCircuit) {
111
+ return undefined;
112
+ }
113
+
87
114
  // we pass just object here instead of context:
88
115
  var index = evalIndex(scope, args, object);
89
116
  return access(object, index);
@@ -107,7 +134,7 @@ export var createAccessorNode = /* #__PURE__ */factory(name, dependencies, _ref
107
134
  * @returns {AccessorNode} Returns a transformed copy of the node
108
135
  */
109
136
  map(callback) {
110
- return new AccessorNode(this._ifNode(callback(this.object, 'object', this)), this._ifNode(callback(this.index, 'index', this)));
137
+ return new AccessorNode(this._ifNode(callback(this.object, 'object', this)), this._ifNode(callback(this.index, 'index', this)), this.optionalChaining);
111
138
  }
112
139
 
113
140
  /**
@@ -115,7 +142,7 @@ export var createAccessorNode = /* #__PURE__ */factory(name, dependencies, _ref
115
142
  * @return {AccessorNode}
116
143
  */
117
144
  clone() {
118
- return new AccessorNode(this.object, this.index);
145
+ return new AccessorNode(this.object, this.index, this.optionalChaining);
119
146
  }
120
147
 
121
148
  /**
@@ -128,7 +155,8 @@ export var createAccessorNode = /* #__PURE__ */factory(name, dependencies, _ref
128
155
  if (needParenthesis(this.object)) {
129
156
  object = '(' + object + ')';
130
157
  }
131
- return object + this.index.toString(options);
158
+ var optionalChaining = this.optionalChaining ? this.index.dotNotation ? '?' : '?.' : '';
159
+ return object + optionalChaining + this.index.toString(options);
132
160
  }
133
161
 
134
162
  /**
@@ -165,7 +193,8 @@ export var createAccessorNode = /* #__PURE__ */factory(name, dependencies, _ref
165
193
  return {
166
194
  mathjs: name,
167
195
  object: this.object,
168
- index: this.index
196
+ index: this.index,
197
+ optionalChaining: this.optionalChaining
169
198
  };
170
199
  }
171
200
 
@@ -178,7 +207,7 @@ export var createAccessorNode = /* #__PURE__ */factory(name, dependencies, _ref
178
207
  * @returns {AccessorNode}
179
208
  */
180
209
  static fromJSON(json) {
181
- return new AccessorNode(json.object, json.index);
210
+ return new AccessorNode(json.object, json.index, json.optionalChaining);
182
211
  }
183
212
  }
184
213
  _defineProperty(AccessorNode, "name", name);