mathjs 10.4.2 → 10.5.1

Sign up to get free protection for your applications and to get access to all the features.
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.