mathjs 10.4.2 → 10.5.1

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 (130) hide show
  1. package/HISTORY.md +36 -0
  2. package/docs/datatypes/matrices.md +17 -0
  3. package/docs/expressions/syntax.md +11 -4
  4. package/docs/reference/functions/fix.md +1 -0
  5. package/docs/reference/functions/floor.md +4 -0
  6. package/docs/reference/functions/lgamma.md +46 -0
  7. package/docs/reference/functions/pinv.md +44 -0
  8. package/docs/reference/functions/pow.md +8 -2
  9. package/docs/reference/functions/resolve.md +2 -2
  10. package/docs/reference/functions/simplifyConstant.md +52 -0
  11. package/docs/reference/functions/stirlingS2.md +5 -1
  12. package/docs/reference/functions.md +2 -0
  13. package/lib/browser/math.js +6 -6
  14. package/lib/browser/math.js.map +1 -1
  15. package/lib/cjs/entry/dependenciesAny/dependenciesCeil.generated.js +6 -0
  16. package/lib/cjs/entry/dependenciesAny/dependenciesDet.generated.js +5 -2
  17. package/lib/cjs/entry/dependenciesAny/dependenciesFix.generated.js +9 -0
  18. package/lib/cjs/entry/dependenciesAny/dependenciesFloor.generated.js +6 -0
  19. package/lib/cjs/entry/dependenciesAny/dependenciesIndexNode.generated.js +0 -3
  20. package/lib/cjs/entry/dependenciesAny/dependenciesLgamma.generated.js +23 -0
  21. package/lib/cjs/entry/dependenciesAny/dependenciesPinv.generated.js +53 -0
  22. package/lib/cjs/entry/dependenciesAny/dependenciesPow.generated.js +3 -0
  23. package/lib/cjs/entry/dependenciesAny/dependenciesStirlingS2.generated.js +6 -0
  24. package/lib/cjs/entry/dependenciesAny.generated.js +16 -0
  25. package/lib/cjs/entry/dependenciesNumber/dependenciesCeil.generated.js +3 -0
  26. package/lib/cjs/entry/dependenciesNumber/dependenciesFix.generated.js +6 -0
  27. package/lib/cjs/entry/dependenciesNumber/dependenciesFloor.generated.js +3 -0
  28. package/lib/cjs/entry/dependenciesNumber/dependenciesIndexNode.generated.js +0 -3
  29. package/lib/cjs/entry/dependenciesNumber/dependenciesLgamma.generated.js +20 -0
  30. package/lib/cjs/entry/dependenciesNumber/dependenciesStirlingS2.generated.js +3 -0
  31. package/lib/cjs/entry/dependenciesNumber.generated.js +8 -0
  32. package/lib/cjs/entry/impureFunctionsAny.generated.js +96 -95
  33. package/lib/cjs/entry/impureFunctionsNumber.generated.js +11 -11
  34. package/lib/cjs/entry/pureFunctionsAny.generated.js +227 -196
  35. package/lib/cjs/entry/pureFunctionsNumber.generated.js +36 -25
  36. package/lib/cjs/expression/embeddedDocs/embeddedDocs.js +6 -0
  37. package/lib/cjs/expression/embeddedDocs/function/arithmetic/pow.js +1 -1
  38. package/lib/cjs/expression/embeddedDocs/function/matrix/pinv.js +15 -0
  39. package/lib/cjs/expression/embeddedDocs/function/probability/lgamma.js +15 -0
  40. package/lib/cjs/expression/node/IndexNode.js +26 -61
  41. package/lib/cjs/factoriesAny.js +16 -0
  42. package/lib/cjs/factoriesNumber.js +44 -27
  43. package/lib/cjs/function/algebra/resolve.js +3 -3
  44. package/lib/cjs/function/arithmetic/ceil.js +75 -39
  45. package/lib/cjs/function/arithmetic/fix.js +54 -16
  46. package/lib/cjs/function/arithmetic/floor.js +79 -37
  47. package/lib/cjs/function/arithmetic/nthRoot.js +1 -3
  48. package/lib/cjs/function/arithmetic/pow.js +25 -6
  49. package/lib/cjs/function/arithmetic/round.js +27 -47
  50. package/lib/cjs/function/combinatorics/stirlingS2.js +42 -12
  51. package/lib/cjs/function/matrix/det.js +37 -31
  52. package/lib/cjs/function/matrix/pinv.js +223 -0
  53. package/lib/cjs/function/probability/lgamma.js +146 -0
  54. package/lib/cjs/header.js +2 -2
  55. package/lib/cjs/plain/number/arithmetic.js +17 -31
  56. package/lib/cjs/plain/number/probability.js +43 -3
  57. package/lib/cjs/type/matrix/function/sparse.js +6 -0
  58. package/lib/cjs/utils/latex.js +6 -0
  59. package/lib/cjs/utils/lruQueue.js +1 -3
  60. package/lib/cjs/utils/number.js +17 -2
  61. package/lib/cjs/utils/object.js +3 -1
  62. package/lib/cjs/version.js +1 -1
  63. package/lib/esm/entry/dependenciesAny/dependenciesCeil.generated.js +4 -0
  64. package/lib/esm/entry/dependenciesAny/dependenciesDet.generated.js +4 -2
  65. package/lib/esm/entry/dependenciesAny/dependenciesFix.generated.js +6 -0
  66. package/lib/esm/entry/dependenciesAny/dependenciesFloor.generated.js +4 -0
  67. package/lib/esm/entry/dependenciesAny/dependenciesIndexNode.generated.js +0 -2
  68. package/lib/esm/entry/dependenciesAny/dependenciesLgamma.generated.js +12 -0
  69. package/lib/esm/entry/dependenciesAny/dependenciesPinv.generated.js +32 -0
  70. package/lib/esm/entry/dependenciesAny/dependenciesPow.generated.js +2 -0
  71. package/lib/esm/entry/dependenciesAny/dependenciesStirlingS2.generated.js +4 -0
  72. package/lib/esm/entry/dependenciesAny.generated.js +2 -0
  73. package/lib/esm/entry/dependenciesNumber/dependenciesCeil.generated.js +2 -0
  74. package/lib/esm/entry/dependenciesNumber/dependenciesFix.generated.js +4 -0
  75. package/lib/esm/entry/dependenciesNumber/dependenciesFloor.generated.js +2 -0
  76. package/lib/esm/entry/dependenciesNumber/dependenciesIndexNode.generated.js +0 -2
  77. package/lib/esm/entry/dependenciesNumber/dependenciesLgamma.generated.js +10 -0
  78. package/lib/esm/entry/dependenciesNumber/dependenciesStirlingS2.generated.js +2 -0
  79. package/lib/esm/entry/dependenciesNumber.generated.js +1 -0
  80. package/lib/esm/entry/impureFunctionsAny.generated.js +90 -89
  81. package/lib/esm/entry/impureFunctionsNumber.generated.js +12 -12
  82. package/lib/esm/entry/pureFunctionsAny.generated.js +191 -162
  83. package/lib/esm/entry/pureFunctionsNumber.generated.js +24 -14
  84. package/lib/esm/expression/embeddedDocs/embeddedDocs.js +4 -0
  85. package/lib/esm/expression/embeddedDocs/function/arithmetic/pow.js +1 -1
  86. package/lib/esm/expression/embeddedDocs/function/matrix/pinv.js +8 -0
  87. package/lib/esm/expression/embeddedDocs/function/probability/lgamma.js +8 -0
  88. package/lib/esm/expression/node/BlockNode.js +3 -3
  89. package/lib/esm/expression/node/IndexNode.js +22 -59
  90. package/lib/esm/expression/parse.js +5 -5
  91. package/lib/esm/factoriesAny.js +2 -0
  92. package/lib/esm/factoriesNumber.js +21 -8
  93. package/lib/esm/function/algebra/decomposition/qr.js +2 -2
  94. package/lib/esm/function/algebra/resolve.js +3 -3
  95. package/lib/esm/function/algebra/solver/utils/solveValidation.js +5 -5
  96. package/lib/esm/function/algebra/sparse/csChol.js +2 -2
  97. package/lib/esm/function/algebra/sparse/csLeaf.js +2 -2
  98. package/lib/esm/function/algebra/sparse/csLu.js +3 -3
  99. package/lib/esm/function/arithmetic/ceil.js +61 -24
  100. package/lib/esm/function/arithmetic/fix.js +51 -13
  101. package/lib/esm/function/arithmetic/floor.js +65 -23
  102. package/lib/esm/function/arithmetic/nthRoot.js +1 -3
  103. package/lib/esm/function/arithmetic/nthRoots.js +1 -1
  104. package/lib/esm/function/arithmetic/pow.js +25 -6
  105. package/lib/esm/function/arithmetic/round.js +25 -43
  106. package/lib/esm/function/combinatorics/stirlingS2.js +41 -12
  107. package/lib/esm/function/matrix/det.js +35 -31
  108. package/lib/esm/function/matrix/expm.js +2 -2
  109. package/lib/esm/function/matrix/pinv.js +205 -0
  110. package/lib/esm/function/probability/gamma.js +1 -1
  111. package/lib/esm/function/probability/lgamma.js +137 -0
  112. package/lib/esm/function/string/bin.js +1 -1
  113. package/lib/esm/function/string/hex.js +1 -1
  114. package/lib/esm/function/string/oct.js +1 -1
  115. package/lib/esm/plain/number/arithmetic.js +16 -20
  116. package/lib/esm/plain/number/probability.js +33 -1
  117. package/lib/esm/type/complex/Complex.js +2 -2
  118. package/lib/esm/type/matrix/DenseMatrix.js +2 -2
  119. package/lib/esm/type/matrix/FibonacciHeap.js +2 -2
  120. package/lib/esm/type/matrix/SparseMatrix.js +13 -13
  121. package/lib/esm/type/matrix/function/sparse.js +6 -0
  122. package/lib/esm/type/unit/Unit.js +7 -7
  123. package/lib/esm/utils/latex.js +6 -0
  124. package/lib/esm/utils/lruQueue.js +1 -2
  125. package/lib/esm/utils/number.js +16 -4
  126. package/lib/esm/utils/object.js +3 -1
  127. package/lib/esm/version.js +1 -1
  128. package/package.json +20 -9
  129. package/types/index.d.ts +1806 -1363
  130. package/types/index.ts +705 -264
@@ -3,8 +3,8 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.mode = exports.mod = exports.min = exports.median = exports.mean = exports.max = exports.matrix = exports.map = exports.mad = exports.log2 = exports.log1p = exports.log10 = exports.log = exports.leftShift = exports.lcm = exports.largerEq = exports.larger = exports.isZero = exports.isPrime = exports.isPositive = exports.isNumeric = exports.isNegative = exports.isNaN = exports.isInteger = exports.index = exports.hypot = exports.hasNumericValue = exports.gcd = exports.gamma = exports.format = exports.forEach = exports.floor = exports.fix = exports.filter = exports.factorial = exports.expm1 = exports.exp = exports.erf = exports.equalText = exports.equalScalar = exports.equal = exports.e = exports.divideScalar = exports.divide = exports.deepEqual = exports.cumsum = exports.cube = exports.csch = exports.csc = exports.coth = exports.cot = exports.cosh = exports.cos = exports.composition = exports.compareText = exports.compareNatural = exports.compare = exports.combinationsWithRep = exports.combinations = exports.clone = exports.ceil = exports.cbrt = exports.catalan = exports.boolean = exports.bitXor = exports.bitOr = exports.bitNot = exports.bitAnd = exports.bellNumbers = exports.atanh = exports.atan2 = exports.atan = exports.asinh = exports.asin = exports.asech = exports.asec = exports.apply = exports.and = exports.addScalar = exports.add = exports.acsch = exports.acsc = exports.acoth = exports.acot = exports.acosh = exports.acos = exports.abs = exports._true = exports._null = exports._false = exports._NaN = exports._Infinity = exports.SQRT2 = exports.SQRT1_2 = exports.ResultSet = exports.Range = exports.LOG2E = exports.LOG10E = exports.LN2 = exports.LN10 = void 0;
7
- exports.xor = exports.xgcd = exports.version = exports.variance = exports.unequal = exports.unaryPlus = exports.unaryMinus = exports.typed = exports.typeOf = exports.tau = exports.tanh = exports.tan = exports.sum = exports.subtract = exports.subset = exports.string = exports.stirlingS2 = exports.std = exports.square = exports.sqrt = exports.smallerEq = exports.smaller = exports.size = exports.sinh = exports.sin = exports.sign = exports.sech = exports.sec = exports.round = exports.rightLogShift = exports.rightArithShift = exports.replacer = exports.range = exports.randomInt = exports.random = exports.quantileSeq = exports.prod = exports.print = exports.pow = exports.pickRandom = exports.pi = exports.phi = exports.permutations = exports.partitionSelect = exports.or = exports.numeric = exports.number = exports.nthRoot = exports.not = exports.norm = exports.multiplyScalar = exports.multiply = exports.multinomial = void 0;
6
+ exports.mod = exports.min = exports.median = exports.mean = exports.max = exports.matrix = exports.map = exports.mad = exports.log2 = exports.log1p = exports.log10 = exports.log = exports.lgamma = exports.leftShift = exports.lcm = exports.largerEq = exports.larger = exports.isZero = exports.isPrime = exports.isPositive = exports.isNumeric = exports.isNegative = exports.isNaN = exports.isInteger = exports.index = exports.hypot = exports.hasNumericValue = exports.gcd = exports.gamma = exports.format = exports.forEach = exports.floor = exports.fix = exports.filter = exports.factorial = exports.expm1 = exports.exp = exports.erf = exports.equalText = exports.equalScalar = exports.equal = exports.e = exports.divideScalar = exports.divide = exports.deepEqual = exports.cumsum = exports.cube = exports.csch = exports.csc = exports.coth = exports.cot = exports.cosh = exports.cos = exports.composition = exports.compareText = exports.compareNatural = exports.compare = exports.combinationsWithRep = exports.combinations = exports.clone = exports.ceil = exports.cbrt = exports.catalan = exports.boolean = exports.bitXor = exports.bitOr = exports.bitNot = exports.bitAnd = exports.bellNumbers = exports.atanh = exports.atan2 = exports.atan = exports.asinh = exports.asin = exports.asech = exports.asec = exports.apply = exports.and = exports.addScalar = exports.add = exports.acsch = exports.acsc = exports.acoth = exports.acot = exports.acosh = exports.acos = exports.abs = exports._true = exports._null = exports._false = exports._NaN = exports._Infinity = exports.SQRT2 = exports.SQRT1_2 = exports.ResultSet = exports.Range = exports.LOG2E = exports.LOG10E = exports.LN2 = exports.LN10 = void 0;
7
+ exports.xor = exports.xgcd = exports.version = exports.variance = exports.unequal = exports.unaryPlus = exports.unaryMinus = exports.typed = exports.typeOf = exports.tau = exports.tanh = exports.tan = exports.sum = exports.subtract = exports.subset = exports.string = exports.stirlingS2 = exports.std = exports.square = exports.sqrt = exports.smallerEq = exports.smaller = exports.size = exports.sinh = exports.sin = exports.sign = exports.sech = exports.sec = exports.round = exports.rightLogShift = exports.rightArithShift = exports.replacer = exports.range = exports.randomInt = exports.random = exports.quantileSeq = exports.prod = exports.print = exports.pow = exports.pickRandom = exports.pi = exports.phi = exports.permutations = exports.partitionSelect = exports.or = exports.numeric = exports.number = exports.nthRoot = exports.not = exports.norm = exports.multiplyScalar = exports.multiply = exports.multinomial = exports.mode = void 0;
8
8
 
9
9
  var _configReadonly = require("./configReadonly.js");
10
10
 
@@ -188,10 +188,6 @@ var filter = /* #__PURE__ */(0, _factoriesNumber.createFilter)({
188
188
  typed: typed
189
189
  });
190
190
  exports.filter = filter;
191
- var fix = /* #__PURE__ */(0, _factoriesNumber.createFix)({
192
- typed: typed
193
- });
194
- exports.fix = fix;
195
191
  var forEach = /* #__PURE__ */(0, _factoriesNumber.createForEach)({
196
192
  typed: typed
197
193
  });
@@ -233,14 +229,14 @@ var leftShift = /* #__PURE__ */(0, _factoriesNumber.createLeftShift)({
233
229
  typed: typed
234
230
  });
235
231
  exports.leftShift = leftShift;
236
- var log10 = /* #__PURE__ */(0, _factoriesNumber.createLog10)({
232
+ var log = /* #__PURE__ */(0, _factoriesNumber.createLog)({
237
233
  typed: typed
238
234
  });
239
- exports.log10 = log10;
240
- var log2 = /* #__PURE__ */(0, _factoriesNumber.createLog2)({
235
+ exports.log = log;
236
+ var log1p = /* #__PURE__ */(0, _factoriesNumber.createLog1p)({
241
237
  typed: typed
242
238
  });
243
- exports.log2 = log2;
239
+ exports.log1p = log1p;
244
240
  var map = /* #__PURE__ */(0, _factoriesNumber.createMap)({
245
241
  typed: typed
246
242
  });
@@ -356,14 +352,15 @@ var bitNot = /* #__PURE__ */(0, _factoriesNumber.createBitNot)({
356
352
  typed: typed
357
353
  });
358
354
  exports.bitNot = bitNot;
359
- var ceil = /* #__PURE__ */(0, _factoriesNumber.createCeil)({
355
+ var clone = /* #__PURE__ */(0, _factoriesNumber.createClone)({
360
356
  typed: typed
361
357
  });
362
- exports.ceil = ceil;
363
- var combinationsWithRep = /* #__PURE__ */(0, _factoriesNumber.createCombinationsWithRep)({
358
+ exports.clone = clone;
359
+ var compareNatural = /* #__PURE__ */(0, _factoriesNumber.createCompareNatural)({
360
+ compare: compare,
364
361
  typed: typed
365
362
  });
366
- exports.combinationsWithRep = combinationsWithRep;
363
+ exports.compareNatural = compareNatural;
367
364
  var cosh = /* #__PURE__ */(0, _factoriesNumber.createCosh)({
368
365
  typed: typed
369
366
  });
@@ -398,10 +395,10 @@ var lcm = /* #__PURE__ */(0, _factoriesNumber.createLcm)({
398
395
  typed: typed
399
396
  });
400
397
  exports.lcm = lcm;
401
- var log1p = /* #__PURE__ */(0, _factoriesNumber.createLog1p)({
398
+ var log10 = /* #__PURE__ */(0, _factoriesNumber.createLog10)({
402
399
  typed: typed
403
400
  });
404
- exports.log1p = log1p;
401
+ exports.log10 = log10;
405
402
  var multiplyScalar = /* #__PURE__ */(0, _factoriesNumber.createMultiplyScalar)({
406
403
  typed: typed
407
404
  });
@@ -461,10 +458,10 @@ var bitXor = /* #__PURE__ */(0, _factoriesNumber.createBitXor)({
461
458
  typed: typed
462
459
  });
463
460
  exports.bitXor = bitXor;
464
- var clone = /* #__PURE__ */(0, _factoriesNumber.createClone)({
461
+ var combinationsWithRep = /* #__PURE__ */(0, _factoriesNumber.createCombinationsWithRep)({
465
462
  typed: typed
466
463
  });
467
- exports.clone = clone;
464
+ exports.combinationsWithRep = combinationsWithRep;
468
465
  var cumsum = /* #__PURE__ */(0, _factoriesNumber.createCumSum)({
469
466
  add: add,
470
467
  typed: typed,
@@ -495,6 +492,10 @@ var larger = /* #__PURE__ */(0, _factoriesNumber.createLarger)({
495
492
  typed: typed
496
493
  });
497
494
  exports.larger = larger;
495
+ var log2 = /* #__PURE__ */(0, _factoriesNumber.createLog2)({
496
+ typed: typed
497
+ });
498
+ exports.log2 = log2;
498
499
  var mode = /* #__PURE__ */(0, _factoriesNumber.createMode)({
499
500
  isNaN: isNaN,
500
501
  isNumeric: isNumeric,
@@ -542,6 +543,7 @@ var stirlingS2 = /* #__PURE__ */(0, _factoriesNumber.createStirlingS2)({
542
543
  isNegative: isNegative,
543
544
  larger: larger,
544
545
  multiplyScalar: multiplyScalar,
546
+ number: number,
545
547
  pow: pow,
546
548
  subtract: subtract,
547
549
  typed: typed
@@ -595,6 +597,8 @@ var deepEqual = /* #__PURE__ */(0, _factoriesNumber.createDeepEqual)({
595
597
  });
596
598
  exports.deepEqual = deepEqual;
597
599
  var floor = /* #__PURE__ */(0, _factoriesNumber.createFloor)({
600
+ config: _configReadonly.config,
601
+ round: round,
598
602
  typed: typed
599
603
  });
600
604
  exports.floor = floor;
@@ -609,10 +613,10 @@ var hypot = /* #__PURE__ */(0, _factoriesNumber.createHypot)({
609
613
  typed: typed
610
614
  });
611
615
  exports.hypot = hypot;
612
- var log = /* #__PURE__ */(0, _factoriesNumber.createLog)({
616
+ var lgamma = /* #__PURE__ */(0, _factoriesNumber.createLgamma)({
613
617
  typed: typed
614
618
  });
615
- exports.log = log;
619
+ exports.lgamma = lgamma;
616
620
  var median = /* #__PURE__ */(0, _factoriesNumber.createMedian)({
617
621
  add: add,
618
622
  compare: compare,
@@ -656,19 +660,22 @@ var std = /* #__PURE__ */(0, _factoriesNumber.createStd)({
656
660
  variance: variance
657
661
  });
658
662
  exports.std = std;
659
- var compareNatural = /* #__PURE__ */(0, _factoriesNumber.createCompareNatural)({
660
- compare: compare,
663
+ var ceil = /* #__PURE__ */(0, _factoriesNumber.createCeil)({
664
+ config: _configReadonly.config,
665
+ round: round,
661
666
  typed: typed
662
667
  });
663
- exports.compareNatural = compareNatural;
668
+ exports.ceil = ceil;
664
669
  var coth = /* #__PURE__ */(0, _factoriesNumber.createCoth)({
665
670
  typed: typed
666
671
  });
667
672
  exports.coth = coth;
668
- var gcd = /* #__PURE__ */(0, _factoriesNumber.createGcd)({
673
+ var fix = /* #__PURE__ */(0, _factoriesNumber.createFix)({
674
+ ceil: ceil,
675
+ floor: floor,
669
676
  typed: typed
670
677
  });
671
- exports.gcd = gcd;
678
+ exports.fix = fix;
672
679
  var isPrime = /* #__PURE__ */(0, _factoriesNumber.createIsPrime)({
673
680
  typed: typed
674
681
  });
@@ -699,6 +706,10 @@ var bellNumbers = /* #__PURE__ */(0, _factoriesNumber.createBellNumbers)({
699
706
  typed: typed
700
707
  });
701
708
  exports.bellNumbers = bellNumbers;
709
+ var gcd = /* #__PURE__ */(0, _factoriesNumber.createGcd)({
710
+ typed: typed
711
+ });
712
+ exports.gcd = gcd;
702
713
  var mad = /* #__PURE__ */(0, _factoriesNumber.createMad)({
703
714
  abs: abs,
704
715
  map: map,
@@ -251,6 +251,8 @@ var _identity = require("./function/matrix/identity.js");
251
251
 
252
252
  var _inv = require("./function/matrix/inv.js");
253
253
 
254
+ var _pinv = require("./function/matrix/pinv.js");
255
+
254
256
  var _kron = require("./function/matrix/kron.js");
255
257
 
256
258
  var _map = require("./function/matrix/map.js");
@@ -299,6 +301,8 @@ var _factorial = require("./function/probability/factorial.js");
299
301
 
300
302
  var _gamma = require("./function/probability/gamma.js");
301
303
 
304
+ var _lgamma = require("./function/probability/lgamma.js");
305
+
302
306
  var _kldivergence = require("./function/probability/kldivergence.js");
303
307
 
304
308
  var _multinomial = require("./function/probability/multinomial.js");
@@ -804,6 +808,7 @@ var embeddedDocs = {
804
808
  flatten: _flatten.flattenDocs,
805
809
  forEach: _forEach.forEachDocs,
806
810
  inv: _inv.invDocs,
811
+ pinv: _pinv.pinvDocs,
807
812
  eigs: _eigs.eigsDocs,
808
813
  kron: _kron.kronDocs,
809
814
  matrixFromFunction: _matrixFromFunction.matrixFromFunctionDocs,
@@ -832,6 +837,7 @@ var embeddedDocs = {
832
837
  factorial: _factorial.factorialDocs,
833
838
  gamma: _gamma.gammaDocs,
834
839
  kldivergence: _kldivergence.kldivergenceDocs,
840
+ lgamma: _lgamma.lgammaDocs,
835
841
  multinomial: _multinomial.multinomialDocs,
836
842
  permutations: _permutations.permutationsDocs,
837
843
  pickRandom: _pickRandom.pickRandomDocs,
@@ -9,7 +9,7 @@ var powDocs = {
9
9
  category: 'Operators',
10
10
  syntax: ['x ^ y', 'pow(x, y)'],
11
11
  description: 'Calculates the power of x to y, x^y.',
12
- examples: ['2^3', '2*2*2', '1 + e ^ (pi * i)'],
12
+ examples: ['2^3', '2*2*2', '1 + e ^ (pi * i)', 'math.pow([[1, 2], [4, 3]], 2)', 'math.pow([[1, 2], [4, 3]], -1)'],
13
13
  seealso: ['multiply', 'nthRoot', 'nthRoots', 'sqrt']
14
14
  };
15
15
  exports.powDocs = powDocs;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.pinvDocs = void 0;
7
+ var pinvDocs = {
8
+ name: 'pinv',
9
+ category: 'Matrix',
10
+ syntax: ['pinv(x)'],
11
+ description: 'Calculate the Moore–Penrose inverse of a matrix',
12
+ examples: ['pinv([1, 2; 3, 4])', 'pinv([[1, 0], [0, 1], [0, 1]])', 'pinv(4)'],
13
+ seealso: ['inv']
14
+ };
15
+ exports.pinvDocs = pinvDocs;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.lgammaDocs = void 0;
7
+ var lgammaDocs = {
8
+ name: 'lgamma',
9
+ category: 'Probability',
10
+ syntax: ['lgamma(n)'],
11
+ description: 'Logarithm of the gamma function for real, positive numbers and complex numbers, ' + 'using Lanczos approximation for numbers and Stirling series for complex numbers.',
12
+ examples: ['lgamma(4)', 'lgamma(1/2)', 'lgamma(math.i)', 'lgamma(complex(1.1, 2))'],
13
+ seealso: ['gamma']
14
+ };
15
+ exports.lgammaDocs = lgammaDocs;
@@ -9,21 +9,20 @@ exports.createIndexNode = void 0;
9
9
 
10
10
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
11
 
12
- var _is = require("../../utils/is.js");
13
-
14
12
  var _array = require("../../utils/array.js");
15
13
 
16
- var _string = require("../../utils/string.js");
14
+ var _customs = require("../../utils/customs.js");
17
15
 
18
16
  var _factory = require("../../utils/factory.js");
19
17
 
20
- var _customs = require("../../utils/customs.js");
18
+ var _is = require("../../utils/is.js");
19
+
20
+ var _string = require("../../utils/string.js");
21
21
 
22
22
  var name = 'IndexNode';
23
- var dependencies = ['Range', 'Node', 'size'];
23
+ var dependencies = ['Node', 'size'];
24
24
  var createIndexNode = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
25
- var Range = _ref.Range,
26
- Node = _ref.Node,
25
+ var Node = _ref.Node,
27
26
  size = _ref.size;
28
27
 
29
28
  /**
@@ -81,61 +80,32 @@ var createIndexNode = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
81
80
  // TODO: Optimization: when the range values are ConstantNodes,
82
81
  // we can beforehand resolve the zero-based value
83
82
  // optimization for a simple object property
84
- var evalDimensions = (0, _array.map)(this.dimensions, function (range, i) {
85
- if ((0, _is.isRangeNode)(range)) {
86
- if (range.needsEnd()) {
87
- // create a range containing end (like '4:end')
88
- var childArgNames = Object.create(argNames);
89
- childArgNames.end = true;
90
-
91
- var evalStart = range.start._compile(math, childArgNames);
92
-
93
- var evalEnd = range.end._compile(math, childArgNames);
94
-
95
- var evalStep = range.step ? range.step._compile(math, childArgNames) : function () {
96
- return 1;
97
- };
98
- return function evalDimension(scope, args, context) {
99
- var s = size(context).valueOf();
100
- var childArgs = Object.create(args);
101
- childArgs.end = s[i];
102
- return createRange(evalStart(scope, childArgs, context), evalEnd(scope, childArgs, context), evalStep(scope, childArgs, context));
103
- };
104
- } else {
105
- // create range
106
- var _evalStart = range.start._compile(math, argNames);
107
-
108
- var _evalEnd = range.end._compile(math, argNames);
109
-
110
- var _evalStep = range.step ? range.step._compile(math, argNames) : function () {
111
- return 1;
112
- };
113
-
114
- return function evalDimension(scope, args, context) {
115
- return createRange(_evalStart(scope, args, context), _evalEnd(scope, args, context), _evalStep(scope, args, context));
116
- };
117
- }
118
- } else if ((0, _is.isSymbolNode)(range) && range.name === 'end') {
119
- // SymbolNode 'end'
120
- var _childArgNames = Object.create(argNames);
121
-
122
- _childArgNames.end = true;
123
-
124
- var evalRange = range._compile(math, _childArgNames);
83
+ var evalDimensions = (0, _array.map)(this.dimensions, function (dimension, i) {
84
+ var needsEnd = dimension.filter(function (node) {
85
+ return node.isSymbolNode && node.name === 'end';
86
+ }).length > 0;
87
+
88
+ if (needsEnd) {
89
+ // SymbolNode 'end' is used inside the index,
90
+ // like in `A[end]` or `A[end - 2]`
91
+ var childArgNames = Object.create(argNames);
92
+ childArgNames.end = true;
93
+
94
+ var _evalDimension = dimension._compile(math, childArgNames);
125
95
 
126
96
  return function evalDimension(scope, args, context) {
97
+ if (!(0, _is.isMatrix)(context) && !(0, _is.isArray)(context) && !(0, _is.isString)(context)) {
98
+ throw new TypeError('Cannot resolve "end": ' + 'context must be a Matrix, Array, or string but is ' + (0, _is.typeOf)(context));
99
+ }
100
+
127
101
  var s = size(context).valueOf();
128
102
  var childArgs = Object.create(args);
129
103
  childArgs.end = s[i];
130
- return evalRange(scope, childArgs, context);
104
+ return _evalDimension(scope, childArgs, context);
131
105
  };
132
106
  } else {
133
- // ConstantNode
134
- var _evalRange = range._compile(math, argNames);
135
-
136
- return function evalDimension(scope, args, context) {
137
- return _evalRange(scope, args, context);
138
- };
107
+ // SymbolNode `end` not used
108
+ return dimension._compile(math, argNames);
139
109
  }
140
110
  });
141
111
  var index = (0, _customs.getSafeProperty)(math, 'index');
@@ -271,12 +241,7 @@ var createIndexNode = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
271
241
  return range.toTex(options);
272
242
  });
273
243
  return this.dotNotation ? '.' + this.getObjectProperty() + '' : '_{' + dimensions.join(',') + '}';
274
- }; // helper function to create a Range from start, step and end
275
-
276
-
277
- function createRange(start, end, step) {
278
- return new Range((0, _is.isBigNumber)(start) ? start.toNumber() : start, (0, _is.isBigNumber)(end) ? end.toNumber() : end, (0, _is.isBigNumber)(step) ? step.toNumber() : step);
279
- }
244
+ };
280
245
 
281
246
  return IndexNode;
282
247
  }, {
@@ -1011,6 +1011,12 @@ Object.defineProperty(exports, "createLeftShift", {
1011
1011
  return _leftShift.createLeftShift;
1012
1012
  }
1013
1013
  });
1014
+ Object.defineProperty(exports, "createLgamma", {
1015
+ enumerable: true,
1016
+ get: function get() {
1017
+ return _lgamma.createLgamma;
1018
+ }
1019
+ });
1014
1020
  Object.defineProperty(exports, "createLog", {
1015
1021
  enumerable: true,
1016
1022
  get: function get() {
@@ -1371,6 +1377,12 @@ Object.defineProperty(exports, "createPickRandom", {
1371
1377
  return _pickRandom.createPickRandom;
1372
1378
  }
1373
1379
  });
1380
+ Object.defineProperty(exports, "createPinv", {
1381
+ enumerable: true,
1382
+ get: function get() {
1383
+ return _pinv.createPinv;
1384
+ }
1385
+ });
1374
1386
  Object.defineProperty(exports, "createPlanckCharge", {
1375
1387
  enumerable: true,
1376
1388
  get: function get() {
@@ -2476,6 +2488,8 @@ var _det = require("./function/matrix/det.js");
2476
2488
 
2477
2489
  var _inv = require("./function/matrix/inv.js");
2478
2490
 
2491
+ var _pinv = require("./function/matrix/pinv.js");
2492
+
2479
2493
  var _eigs = require("./function/matrix/eigs.js");
2480
2494
 
2481
2495
  var _expm2 = require("./function/matrix/expm.js");
@@ -2510,6 +2524,8 @@ var _combinationsWithRep = require("./function/probability/combinationsWithRep.j
2510
2524
 
2511
2525
  var _gamma = require("./function/probability/gamma.js");
2512
2526
 
2527
+ var _lgamma = require("./function/probability/lgamma.js");
2528
+
2513
2529
  var _factorial = require("./function/probability/factorial.js");
2514
2530
 
2515
2531
  var _kldivergence = require("./function/probability/kldivergence.js");
@@ -62,7 +62,13 @@ Object.defineProperty(exports, "createCatalan", {
62
62
  return _catalan.createCatalan;
63
63
  }
64
64
  });
65
- exports.createCeil = exports.createCbrt = void 0;
65
+ exports.createCbrt = void 0;
66
+ Object.defineProperty(exports, "createCeil", {
67
+ enumerable: true,
68
+ get: function get() {
69
+ return _ceil.createCeilNumber;
70
+ }
71
+ });
66
72
  Object.defineProperty(exports, "createChain", {
67
73
  enumerable: true,
68
74
  get: function get() {
@@ -217,7 +223,18 @@ Object.defineProperty(exports, "createFilterTransform", {
217
223
  return _filterTransform.createFilterTransform;
218
224
  }
219
225
  });
220
- exports.createFloor = exports.createFix = void 0;
226
+ Object.defineProperty(exports, "createFix", {
227
+ enumerable: true,
228
+ get: function get() {
229
+ return _fix.createFixNumber;
230
+ }
231
+ });
232
+ Object.defineProperty(exports, "createFloor", {
233
+ enumerable: true,
234
+ get: function get() {
235
+ return _floor.createFloorNumber;
236
+ }
237
+ });
221
238
  Object.defineProperty(exports, "createForEach", {
222
239
  enumerable: true,
223
240
  get: function get() {
@@ -338,7 +355,7 @@ Object.defineProperty(exports, "createLargerEq", {
338
355
  }
339
356
  });
340
357
  exports.createLeftShift = exports.createLcm = void 0;
341
- exports.createLog2 = exports.createLog1p = exports.createLog10 = exports.createLog = void 0;
358
+ exports.createLog2 = exports.createLog1p = exports.createLog10 = exports.createLog = exports.createLgamma = void 0;
342
359
  Object.defineProperty(exports, "createMad", {
343
360
  enumerable: true,
344
361
  get: function get() {
@@ -426,13 +443,7 @@ Object.defineProperty(exports, "createNode", {
426
443
  return _Node.createNode;
427
444
  }
428
445
  });
429
- exports.createNot = exports.createNorm = void 0;
430
- Object.defineProperty(exports, "createNthRoot", {
431
- enumerable: true,
432
- get: function get() {
433
- return _nthRoot.createNthRootNumber;
434
- }
435
- });
446
+ exports.createNthRoot = exports.createNot = exports.createNorm = void 0;
436
447
  Object.defineProperty(exports, "createNull", {
437
448
  enumerable: true,
438
449
  get: function get() {
@@ -609,13 +620,7 @@ Object.defineProperty(exports, "createReviver", {
609
620
  return _reviver.createReviver;
610
621
  }
611
622
  });
612
- exports.createRightLogShift = exports.createRightArithShift = void 0;
613
- Object.defineProperty(exports, "createRound", {
614
- enumerable: true,
615
- get: function get() {
616
- return _round.createRoundNumber;
617
- }
618
- });
623
+ exports.createRound = exports.createRightLogShift = exports.createRightArithShift = void 0;
619
624
  Object.defineProperty(exports, "createSQRT1_2", {
620
625
  enumerable: true,
621
626
  get: function get() {
@@ -798,9 +803,11 @@ var _derivative = require("./function/algebra/derivative.js");
798
803
 
799
804
  var _rationalize = require("./function/algebra/rationalize.js");
800
805
 
801
- var _nthRoot = require("./function/arithmetic/nthRoot.js");
806
+ var _ceil = require("./function/arithmetic/ceil.js");
802
807
 
803
- var _round = require("./function/arithmetic/round.js");
808
+ var _fix = require("./function/arithmetic/fix.js");
809
+
810
+ var _floor = require("./function/arithmetic/floor.js");
804
811
 
805
812
  var _hypot = require("./function/arithmetic/hypot.js");
806
813
 
@@ -1000,18 +1007,12 @@ var createAddScalar = /* #__PURE__ */createNumberFactory('addScalar', _index.add
1000
1007
  exports.createAddScalar = createAddScalar;
1001
1008
  var createCbrt = /* #__PURE__ */createNumberFactory('cbrt', _index.cbrtNumber);
1002
1009
  exports.createCbrt = createCbrt;
1003
- var createCeil = /* #__PURE__ */createNumberFactory('ceil', _index.ceilNumber);
1004
- exports.createCeil = createCeil;
1005
1010
  var createCube = /* #__PURE__ */createNumberFactory('cube', _index.cubeNumber);
1006
1011
  exports.createCube = createCube;
1007
1012
  var createExp = /* #__PURE__ */createNumberFactory('exp', _index.expNumber);
1008
1013
  exports.createExp = createExp;
1009
1014
  var createExpm1 = /* #__PURE__ */createNumberFactory('expm1', _index.expm1Number);
1010
1015
  exports.createExpm1 = createExpm1;
1011
- var createFix = /* #__PURE__ */createNumberFactory('fix', _index.fixNumber);
1012
- exports.createFix = createFix;
1013
- var createFloor = /* #__PURE__ */createNumberFactory('floor', _index.floorNumber);
1014
- exports.createFloor = createFloor;
1015
1016
  var createGcd = /* #__PURE__ */createNumberFactory('gcd', _index.gcdNumber);
1016
1017
  exports.createGcd = createGcd;
1017
1018
  var createLcm = /* #__PURE__ */createNumberFactory('lcm', _index.lcmNumber);
@@ -1026,6 +1027,8 @@ var createMultiplyScalar = /* #__PURE__ */createNumberFactory('multiplyScalar',
1026
1027
  exports.createMultiplyScalar = createMultiplyScalar;
1027
1028
  var createMultiply = /* #__PURE__ */createNumberFactory('multiply', _index.multiplyNumber);
1028
1029
  exports.createMultiply = createMultiply;
1030
+ var createNthRoot = /* #__PURE__ */createNumberOptionalSecondArgFactory('nthRoot', _index.nthRootNumber);
1031
+ exports.createNthRoot = createNthRoot;
1029
1032
  var createSign = /* #__PURE__ */createNumberFactory('sign', _index.signNumber);
1030
1033
  exports.createSign = createSign;
1031
1034
  var createSqrt = /* #__PURE__ */createNumberFactory('sqrt', _index.sqrtNumber);
@@ -1040,7 +1043,9 @@ var createDivideScalar = /* #__PURE__ */createNumberFactory('divideScalar', _ind
1040
1043
  exports.createDivideScalar = createDivideScalar;
1041
1044
  var createPow = /* #__PURE__ */createNumberFactory('pow', _index.powNumber);
1042
1045
  exports.createPow = createPow;
1043
- var createLog = /* #__PURE__ */createNumberFactory('log', _index.logNumber);
1046
+ var createRound = /* #__PURE__ */createNumberOptionalSecondArgFactory('round', _index.roundNumber);
1047
+ exports.createRound = createRound;
1048
+ var createLog = /* #__PURE__ */createNumberOptionalSecondArgFactory('log', _index.logNumber);
1044
1049
  exports.createLog = createLog;
1045
1050
  var createLog1p = /* #__PURE__ */createNumberFactory('log1p', _index.log1pNumber);
1046
1051
  exports.createLog1p = createLog1p;
@@ -1097,6 +1102,8 @@ var createCombinations = createNumberFactory('combinations', _index.combinations
1097
1102
  exports.createCombinations = createCombinations;
1098
1103
  var createGamma = createNumberFactory('gamma', _index.gammaNumber);
1099
1104
  exports.createGamma = createGamma;
1105
+ var createLgamma = createNumberFactory('lgamma', _index.lgammaNumber);
1106
+ exports.createLgamma = createLgamma;
1100
1107
  // trigonometry
1101
1108
  var createAcos = /* #__PURE__ */createNumberFactory('acos', _index.acosNumber);
1102
1109
  exports.createAcos = createAcos;
@@ -1166,10 +1173,20 @@ exports.createIsZero = createIsZero;
1166
1173
  var createIsNaN = /* #__PURE__ */createNumberFactory('isNaN', _index.isNaNNumber);
1167
1174
  exports.createIsNaN = createIsNaN;
1168
1175
 
1169
- // helper function to create a factory function for a function which only needs typed-function
1176
+ // helper functions to create a factory function for a function which only needs typed-function
1170
1177
  function createNumberFactory(name, fn) {
1171
1178
  return (0, _factory.factory)(name, ['typed'], function (_ref) {
1172
1179
  var typed = _ref.typed;
1173
1180
  return typed(fn);
1174
1181
  });
1182
+ }
1183
+
1184
+ function createNumberOptionalSecondArgFactory(name, fn) {
1185
+ return (0, _factory.factory)(name, ['typed'], function (_ref2) {
1186
+ var typed = _ref2.typed;
1187
+ return typed({
1188
+ number: fn,
1189
+ 'number,number': fn
1190
+ });
1191
+ });
1175
1192
  }
@@ -37,11 +37,11 @@ var createResolve = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fun
37
37
  *
38
38
  * simplify, evaluate
39
39
  *
40
- * @param {Node} node
41
- * The expression tree to be simplified
40
+ * @param {Node | Node[]} node
41
+ * The expression tree (or trees) to be simplified
42
42
  * @param {Object} scope
43
43
  * Scope specifying variables to be resolved
44
- * @return {Node} Returns `node` with variables recursively substituted.
44
+ * @return {Node | Node[]} Returns `node` with variables recursively substituted.
45
45
  * @throws {ReferenceError}
46
46
  * If there is a cyclic dependency among the variables in `scope`,
47
47
  * resolution is impossible and a ReferenceError is thrown.