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
@@ -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
  });
@@ -249,7 +252,13 @@ export var addScalar = /* #__PURE__ */createAddScalar({
249
252
  export var asech = /* #__PURE__ */createAsech({
250
253
  typed
251
254
  });
252
- 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({
253
262
  typed
254
263
  });
255
264
  export var combinationsWithRep = /* #__PURE__ */createCombinationsWithRep({
@@ -272,16 +281,20 @@ export var equalText = /* #__PURE__ */createEqualText({
272
281
  export var expm1 = /* #__PURE__ */createExpm1({
273
282
  typed
274
283
  });
275
- export var isNumeric = /* #__PURE__ */createIsNumeric({
284
+ export var isNaN = /* #__PURE__ */createIsNaN({
276
285
  typed
277
286
  });
278
- export var LN2 = /* #__PURE__ */createLN2({
279
- config
287
+ export var isPrime = /* #__PURE__ */createIsPrime({
288
+ typed
280
289
  });
281
- export var lcm = /* #__PURE__ */createLcm({
290
+ export var larger = /* #__PURE__ */createLarger({
291
+ config,
282
292
  typed
283
293
  });
284
- export var log10 = /* #__PURE__ */createLog10({
294
+ export var lgamma = /* #__PURE__ */createLgamma({
295
+ typed
296
+ });
297
+ export var log2 = /* #__PURE__ */createLog2({
285
298
  typed
286
299
  });
287
300
  export var mapSlices = /* #__PURE__ */createMapSlices({
@@ -299,6 +312,11 @@ export var pickRandom = /* #__PURE__ */createPickRandom({
299
312
  config,
300
313
  typed
301
314
  });
315
+ export var randomInt = /* #__PURE__ */createRandomInt({
316
+ config,
317
+ log2,
318
+ typed
319
+ });
302
320
  export var rightArithShift = /* #__PURE__ */createRightArithShift({
303
321
  typed
304
322
  });
@@ -317,18 +335,45 @@ export var tan = /* #__PURE__ */createTan({
317
335
  export var unaryMinus = /* #__PURE__ */createUnaryMinus({
318
336
  typed
319
337
  });
338
+ export var variance = /* #__PURE__ */createVariance({
339
+ add,
340
+ divide,
341
+ isNaN,
342
+ mapSlices,
343
+ multiply,
344
+ subtract,
345
+ typed
346
+ });
320
347
  export var acosh = /* #__PURE__ */createAcosh({
321
348
  typed
322
349
  });
323
350
  export var atan2 = /* #__PURE__ */createAtan2({
324
351
  typed
325
352
  });
326
- 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,
327
363
  typed
328
364
  });
329
365
  export var clone = /* #__PURE__ */createClone({
330
366
  typed
331
367
  });
368
+ export var composition = /* #__PURE__ */createComposition({
369
+ addScalar,
370
+ combinations,
371
+ isInteger,
372
+ isNegative,
373
+ isPositive,
374
+ larger,
375
+ typed
376
+ });
332
377
  export var coth = /* #__PURE__ */createCoth({
333
378
  typed
334
379
  });
@@ -340,40 +385,37 @@ export var factorial = /* #__PURE__ */createFactorial({
340
385
  gamma,
341
386
  typed
342
387
  });
343
- export var hasNumericValue = /* #__PURE__ */createHasNumericValue({
344
- isNumeric,
345
- typed
346
- });
347
- export var isNaN = /* #__PURE__ */createIsNaN({
348
- typed
349
- });
350
- export var larger = /* #__PURE__ */createLarger({
351
- config,
388
+ export var isFinite = /* #__PURE__ */createIsFinite({
389
+ isBounded,
390
+ map,
352
391
  typed
353
392
  });
354
- export var log2 = /* #__PURE__ */createLog2({
355
- typed
393
+ export var LN2 = /* #__PURE__ */createLN2({
394
+ config
356
395
  });
357
- export var mode = /* #__PURE__ */createMode({
358
- isNaN,
359
- isNumeric,
396
+ export var log10 = /* #__PURE__ */createLog10({
360
397
  typed
361
398
  });
362
- export var norm = /* #__PURE__ */createNorm({
399
+ export var multinomial = /* #__PURE__ */createMultinomial({
400
+ add,
401
+ divide,
402
+ factorial,
403
+ isInteger,
404
+ isPositive,
405
+ multiply,
363
406
  typed
364
407
  });
365
- export var partitionSelect = /* #__PURE__ */createPartitionSelect({
366
- compare,
367
- isNaN,
368
- isNumeric,
369
- typed
408
+ export var numeric = /* #__PURE__ */createNumeric({
409
+ number
370
410
  });
371
- export var print = /* #__PURE__ */createPrint({
411
+ export var permutations = /* #__PURE__ */createPermutations({
412
+ factorial,
372
413
  typed
373
414
  });
374
- export var randomInt = /* #__PURE__ */createRandomInt({
415
+ export var prod = /* #__PURE__ */createProd({
375
416
  config,
376
- log2,
417
+ multiplyScalar,
418
+ numeric,
377
419
  typed
378
420
  });
379
421
  export var round = /* #__PURE__ */createRound({
@@ -386,16 +428,6 @@ export var smaller = /* #__PURE__ */createSmaller({
386
428
  export var subtractScalar = /* #__PURE__ */createSubtractScalar({
387
429
  typed
388
430
  });
389
- export var _true = /* #__PURE__ */createTrue({});
390
- export var variance = /* #__PURE__ */createVariance({
391
- add,
392
- divide,
393
- isNaN,
394
- mapSlices,
395
- multiply,
396
- subtract,
397
- typed
398
- });
399
431
  export var zeta = /* #__PURE__ */createZeta({
400
432
  add,
401
433
  config,
@@ -403,6 +435,7 @@ export var zeta = /* #__PURE__ */createZeta({
403
435
  equal,
404
436
  factorial,
405
437
  gamma,
438
+ isBounded,
406
439
  isNegative,
407
440
  multiply,
408
441
  pi,
@@ -415,28 +448,10 @@ export var zeta = /* #__PURE__ */createZeta({
415
448
  export var acsch = /* #__PURE__ */createAcsch({
416
449
  typed
417
450
  });
418
- export var catalan = /* #__PURE__ */createCatalan({
419
- addScalar,
420
- combinations,
421
- divideScalar,
422
- isInteger,
423
- isNegative,
424
- multiplyScalar,
425
- typed
426
- });
427
451
  export var compareNatural = /* #__PURE__ */createCompareNatural({
428
452
  compare,
429
453
  typed
430
454
  });
431
- export var composition = /* #__PURE__ */createComposition({
432
- addScalar,
433
- combinations,
434
- isInteger,
435
- isNegative,
436
- isPositive,
437
- larger,
438
- typed
439
- });
440
455
  export var cumsum = /* #__PURE__ */createCumSum({
441
456
  add,
442
457
  typed,
@@ -457,41 +472,40 @@ export var hypot = /* #__PURE__ */createHypot({
457
472
  sqrt,
458
473
  typed
459
474
  });
460
- export var lgamma = /* #__PURE__ */createLgamma({
475
+ export var lcm = /* #__PURE__ */createLcm({
461
476
  typed
462
477
  });
463
- export var median = /* #__PURE__ */createMedian({
464
- add,
465
- compare,
466
- divide,
467
- partitionSelect,
478
+ export var max = /* #__PURE__ */createMax({
479
+ config,
480
+ isNaN,
481
+ larger,
482
+ numeric,
468
483
  typed
469
484
  });
470
- export var multinomial = /* #__PURE__ */createMultinomial({
471
- add,
472
- divide,
473
- factorial,
474
- isInteger,
475
- isPositive,
476
- multiply,
485
+ export var min = /* #__PURE__ */createMin({
486
+ config,
487
+ isNaN,
488
+ numeric,
489
+ smaller,
477
490
  typed
478
491
  });
479
- export var permutations = /* #__PURE__ */createPermutations({
480
- factorial,
492
+ export var norm = /* #__PURE__ */createNorm({
481
493
  typed
482
494
  });
483
- export var quantileSeq = /* #__PURE__ */createQuantileSeq({
495
+ export var print = /* #__PURE__ */createPrint({
496
+ typed
497
+ });
498
+ export var range = /* #__PURE__ */createRange({
499
+ matrix,
484
500
  add,
485
- compare,
486
- divide,
487
- isInteger,
501
+ config,
502
+ equal,
503
+ isPositive,
504
+ isZero,
488
505
  larger,
489
- mapSlices,
490
- multiply,
491
- partitionSelect,
506
+ largerEq,
492
507
  smaller,
493
508
  smallerEq,
494
- subtract,
495
509
  typed
496
510
  });
497
511
  export var sign = /* #__PURE__ */createSign({
@@ -503,18 +517,10 @@ export var std = /* #__PURE__ */createStd({
503
517
  typed,
504
518
  variance
505
519
  });
506
- export var stirlingS2 = /* #__PURE__ */createStirlingS2({
507
- addScalar,
508
- combinations,
509
- divideScalar,
510
- factorial,
511
- isInteger,
512
- isNegative,
513
- larger,
514
- multiplyScalar,
515
- number,
516
- pow,
517
- subtractScalar,
520
+ export var sum = /* #__PURE__ */createSum({
521
+ add,
522
+ config,
523
+ numeric,
518
524
  typed
519
525
  });
520
526
  export var asinh = /* #__PURE__ */createAsinh({
@@ -525,8 +531,16 @@ export var ceil = /* #__PURE__ */createCeil({
525
531
  round,
526
532
  typed
527
533
  });
528
- export var deepEqual = /* #__PURE__ */createDeepEqual({
529
- 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,
530
544
  typed
531
545
  });
532
546
  export var fix = /* #__PURE__ */createFix({
@@ -534,16 +548,27 @@ export var fix = /* #__PURE__ */createFix({
534
548
  floor,
535
549
  typed
536
550
  });
537
- export var isPrime = /* #__PURE__ */createIsPrime({
551
+ export var isNumeric = /* #__PURE__ */createIsNumeric({
538
552
  typed
539
553
  });
540
- export var numeric = /* #__PURE__ */createNumeric({
541
- number
554
+ export var partitionSelect = /* #__PURE__ */createPartitionSelect({
555
+ compare,
556
+ isNaN,
557
+ isNumeric,
558
+ typed
542
559
  });
543
- export var prod = /* #__PURE__ */createProd({
544
- config,
560
+ export var stirlingS2 = /* #__PURE__ */createStirlingS2({
561
+ addScalar,
562
+ combinations,
563
+ divideScalar,
564
+ factorial,
565
+ isInteger,
566
+ isNegative,
567
+ larger,
545
568
  multiplyScalar,
546
- numeric,
569
+ number,
570
+ pow,
571
+ subtractScalar,
547
572
  typed
548
573
  });
549
574
  export var bellNumbers = /* #__PURE__ */createBellNumbers({
@@ -553,58 +578,48 @@ export var bellNumbers = /* #__PURE__ */createBellNumbers({
553
578
  stirlingS2,
554
579
  typed
555
580
  });
556
- export var gcd = /* #__PURE__ */createGcd({
557
- typed
558
- });
559
- export var mad = /* #__PURE__ */createMad({
560
- abs,
561
- map,
562
- median,
563
- subtract,
581
+ export var deepEqual = /* #__PURE__ */createDeepEqual({
582
+ equal,
564
583
  typed
565
584
  });
566
- export var range = /* #__PURE__ */createRange({
567
- matrix,
568
- add,
569
- config,
570
- equal,
571
- isPositive,
572
- isZero,
573
- larger,
574
- largerEq,
575
- smaller,
576
- smallerEq,
585
+ export var gcd = /* #__PURE__ */createGcd({
577
586
  typed
578
587
  });
579
- export var sum = /* #__PURE__ */createSum({
588
+ export var median = /* #__PURE__ */createMedian({
580
589
  add,
581
- config,
582
- numeric,
590
+ compare,
591
+ divide,
592
+ partitionSelect,
583
593
  typed
584
594
  });
585
- export var corr = /* #__PURE__ */createCorr({
595
+ export var quantileSeq = /* #__PURE__ */createQuantileSeq({
586
596
  add,
597
+ compare,
587
598
  divide,
588
- matrix,
589
- mean,
599
+ isInteger,
600
+ larger,
601
+ mapSlices,
590
602
  multiply,
591
- pow,
592
- sqrt,
603
+ partitionSelect,
604
+ smaller,
605
+ smallerEq,
593
606
  subtract,
594
- sum,
595
607
  typed
596
608
  });
597
- export var max = /* #__PURE__ */createMax({
598
- config,
609
+ export var mode = /* #__PURE__ */createMode({
599
610
  isNaN,
600
- larger,
601
- numeric,
611
+ isNumeric,
602
612
  typed
603
613
  });
604
- export var min = /* #__PURE__ */createMin({
605
- config,
606
- isNaN,
607
- numeric,
608
- 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,
609
624
  typed
610
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);
@@ -4,10 +4,11 @@ import { typeOf } from '../../utils/is.js';
4
4
  import { escapeLatex } from '../../utils/latex.js';
5
5
  import { factory } from '../../utils/factory.js';
6
6
  var name = 'ConstantNode';
7
- var dependencies = ['Node'];
7
+ var dependencies = ['Node', 'isBounded'];
8
8
  export var createConstantNode = /* #__PURE__ */factory(name, dependencies, _ref => {
9
9
  var {
10
- Node
10
+ Node,
11
+ isBounded
11
12
  } = _ref;
12
13
  class ConstantNode extends Node {
13
14
  /**
@@ -150,8 +151,7 @@ export var createConstantNode = /* #__PURE__ */factory(name, dependencies, _ref
150
151
  case 'number':
151
152
  case 'BigNumber':
152
153
  {
153
- var finite = type === 'BigNumber' ? this.value.isFinite() : isFinite(this.value);
154
- if (!finite) {
154
+ if (!isBounded(this.value)) {
155
155
  return this.value.valueOf() < 0 ? '-\\infty' : '\\infty';
156
156
  }
157
157
  var index = value.toLowerCase().indexOf('e');