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.
- package/HISTORY.md +36 -0
- package/docs/datatypes/matrices.md +17 -0
- package/docs/expressions/syntax.md +11 -4
- package/docs/reference/functions/fix.md +1 -0
- package/docs/reference/functions/floor.md +4 -0
- package/docs/reference/functions/lgamma.md +46 -0
- package/docs/reference/functions/pinv.md +44 -0
- package/docs/reference/functions/pow.md +8 -2
- package/docs/reference/functions/resolve.md +2 -2
- package/docs/reference/functions/simplifyConstant.md +52 -0
- package/docs/reference/functions/stirlingS2.md +5 -1
- package/docs/reference/functions.md +2 -0
- package/lib/browser/math.js +6 -6
- package/lib/browser/math.js.map +1 -1
- package/lib/cjs/entry/dependenciesAny/dependenciesCeil.generated.js +6 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesDet.generated.js +5 -2
- package/lib/cjs/entry/dependenciesAny/dependenciesFix.generated.js +9 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesFloor.generated.js +6 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesIndexNode.generated.js +0 -3
- package/lib/cjs/entry/dependenciesAny/dependenciesLgamma.generated.js +23 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesPinv.generated.js +53 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesPow.generated.js +3 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesStirlingS2.generated.js +6 -0
- package/lib/cjs/entry/dependenciesAny.generated.js +16 -0
- package/lib/cjs/entry/dependenciesNumber/dependenciesCeil.generated.js +3 -0
- package/lib/cjs/entry/dependenciesNumber/dependenciesFix.generated.js +6 -0
- package/lib/cjs/entry/dependenciesNumber/dependenciesFloor.generated.js +3 -0
- package/lib/cjs/entry/dependenciesNumber/dependenciesIndexNode.generated.js +0 -3
- package/lib/cjs/entry/dependenciesNumber/dependenciesLgamma.generated.js +20 -0
- package/lib/cjs/entry/dependenciesNumber/dependenciesStirlingS2.generated.js +3 -0
- package/lib/cjs/entry/dependenciesNumber.generated.js +8 -0
- package/lib/cjs/entry/impureFunctionsAny.generated.js +96 -95
- package/lib/cjs/entry/impureFunctionsNumber.generated.js +11 -11
- package/lib/cjs/entry/pureFunctionsAny.generated.js +227 -196
- package/lib/cjs/entry/pureFunctionsNumber.generated.js +36 -25
- package/lib/cjs/expression/embeddedDocs/embeddedDocs.js +6 -0
- package/lib/cjs/expression/embeddedDocs/function/arithmetic/pow.js +1 -1
- package/lib/cjs/expression/embeddedDocs/function/matrix/pinv.js +15 -0
- package/lib/cjs/expression/embeddedDocs/function/probability/lgamma.js +15 -0
- package/lib/cjs/expression/node/IndexNode.js +26 -61
- package/lib/cjs/factoriesAny.js +16 -0
- package/lib/cjs/factoriesNumber.js +44 -27
- package/lib/cjs/function/algebra/resolve.js +3 -3
- package/lib/cjs/function/arithmetic/ceil.js +75 -39
- package/lib/cjs/function/arithmetic/fix.js +54 -16
- package/lib/cjs/function/arithmetic/floor.js +79 -37
- package/lib/cjs/function/arithmetic/nthRoot.js +1 -3
- package/lib/cjs/function/arithmetic/pow.js +25 -6
- package/lib/cjs/function/arithmetic/round.js +27 -47
- package/lib/cjs/function/combinatorics/stirlingS2.js +42 -12
- package/lib/cjs/function/matrix/det.js +37 -31
- package/lib/cjs/function/matrix/pinv.js +223 -0
- package/lib/cjs/function/probability/lgamma.js +146 -0
- package/lib/cjs/header.js +2 -2
- package/lib/cjs/plain/number/arithmetic.js +17 -31
- package/lib/cjs/plain/number/probability.js +43 -3
- package/lib/cjs/type/matrix/function/sparse.js +6 -0
- package/lib/cjs/utils/latex.js +6 -0
- package/lib/cjs/utils/lruQueue.js +1 -3
- package/lib/cjs/utils/number.js +17 -2
- package/lib/cjs/utils/object.js +3 -1
- package/lib/cjs/version.js +1 -1
- package/lib/esm/entry/dependenciesAny/dependenciesCeil.generated.js +4 -0
- package/lib/esm/entry/dependenciesAny/dependenciesDet.generated.js +4 -2
- package/lib/esm/entry/dependenciesAny/dependenciesFix.generated.js +6 -0
- package/lib/esm/entry/dependenciesAny/dependenciesFloor.generated.js +4 -0
- package/lib/esm/entry/dependenciesAny/dependenciesIndexNode.generated.js +0 -2
- package/lib/esm/entry/dependenciesAny/dependenciesLgamma.generated.js +12 -0
- package/lib/esm/entry/dependenciesAny/dependenciesPinv.generated.js +32 -0
- package/lib/esm/entry/dependenciesAny/dependenciesPow.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesStirlingS2.generated.js +4 -0
- package/lib/esm/entry/dependenciesAny.generated.js +2 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesCeil.generated.js +2 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesFix.generated.js +4 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesFloor.generated.js +2 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesIndexNode.generated.js +0 -2
- package/lib/esm/entry/dependenciesNumber/dependenciesLgamma.generated.js +10 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesStirlingS2.generated.js +2 -0
- package/lib/esm/entry/dependenciesNumber.generated.js +1 -0
- package/lib/esm/entry/impureFunctionsAny.generated.js +90 -89
- package/lib/esm/entry/impureFunctionsNumber.generated.js +12 -12
- package/lib/esm/entry/pureFunctionsAny.generated.js +191 -162
- package/lib/esm/entry/pureFunctionsNumber.generated.js +24 -14
- package/lib/esm/expression/embeddedDocs/embeddedDocs.js +4 -0
- package/lib/esm/expression/embeddedDocs/function/arithmetic/pow.js +1 -1
- package/lib/esm/expression/embeddedDocs/function/matrix/pinv.js +8 -0
- package/lib/esm/expression/embeddedDocs/function/probability/lgamma.js +8 -0
- package/lib/esm/expression/node/BlockNode.js +3 -3
- package/lib/esm/expression/node/IndexNode.js +22 -59
- package/lib/esm/expression/parse.js +5 -5
- package/lib/esm/factoriesAny.js +2 -0
- package/lib/esm/factoriesNumber.js +21 -8
- package/lib/esm/function/algebra/decomposition/qr.js +2 -2
- package/lib/esm/function/algebra/resolve.js +3 -3
- package/lib/esm/function/algebra/solver/utils/solveValidation.js +5 -5
- package/lib/esm/function/algebra/sparse/csChol.js +2 -2
- package/lib/esm/function/algebra/sparse/csLeaf.js +2 -2
- package/lib/esm/function/algebra/sparse/csLu.js +3 -3
- package/lib/esm/function/arithmetic/ceil.js +61 -24
- package/lib/esm/function/arithmetic/fix.js +51 -13
- package/lib/esm/function/arithmetic/floor.js +65 -23
- package/lib/esm/function/arithmetic/nthRoot.js +1 -3
- package/lib/esm/function/arithmetic/nthRoots.js +1 -1
- package/lib/esm/function/arithmetic/pow.js +25 -6
- package/lib/esm/function/arithmetic/round.js +25 -43
- package/lib/esm/function/combinatorics/stirlingS2.js +41 -12
- package/lib/esm/function/matrix/det.js +35 -31
- package/lib/esm/function/matrix/expm.js +2 -2
- package/lib/esm/function/matrix/pinv.js +205 -0
- package/lib/esm/function/probability/gamma.js +1 -1
- package/lib/esm/function/probability/lgamma.js +137 -0
- package/lib/esm/function/string/bin.js +1 -1
- package/lib/esm/function/string/hex.js +1 -1
- package/lib/esm/function/string/oct.js +1 -1
- package/lib/esm/plain/number/arithmetic.js +16 -20
- package/lib/esm/plain/number/probability.js +33 -1
- package/lib/esm/type/complex/Complex.js +2 -2
- package/lib/esm/type/matrix/DenseMatrix.js +2 -2
- package/lib/esm/type/matrix/FibonacciHeap.js +2 -2
- package/lib/esm/type/matrix/SparseMatrix.js +13 -13
- package/lib/esm/type/matrix/function/sparse.js +6 -0
- package/lib/esm/type/unit/Unit.js +7 -7
- package/lib/esm/utils/latex.js +6 -0
- package/lib/esm/utils/lruQueue.js +1 -2
- package/lib/esm/utils/number.js +16 -4
- package/lib/esm/utils/object.js +3 -1
- package/lib/esm/version.js +1 -1
- package/package.json +20 -9
- package/types/index.d.ts +1806 -1363
- package/types/index.ts +705 -264
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
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, // eslint-disable-line camelcase
|
|
7
|
-
createSubset, createTau, createTyped, createUnaryPlus, createVersion, createXor, createAbs, createAcos, createAcot, createAcsc, createAdd, createAnd, createAsec, createAsin, createAtan, createAtanh, createBitAnd, createBitOr, createBoolean, createCbrt, createCombinations, createCompare, createCompareText, createCos, createCot, createCsc, createCube, createDivide, createEqualScalar, createErf, createExp, createFilter,
|
|
7
|
+
createSubset, createTau, createTyped, createUnaryPlus, createVersion, createXor, createAbs, createAcos, createAcot, createAcsc, createAdd, createAnd, createAsec, createAsin, createAtan, createAtanh, createBitAnd, createBitOr, 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, createBitNot, createClone, createCompareNatural, createCosh, createCsch, createDivideScalar, createEqualText, createExpm1, createIsNumeric, createLN2, createLcm, createLog10, createMultiplyScalar, createNthRoot, createPickRandom, createRandomInt, createRightArithShift, createSec, createSinh, createSqrt, createTan, createUnaryMinus, createAcosh, createApply, createAsinh, createBitXor, createCombinationsWithRep, createCumSum, createEqual, createFactorial, createHasNumericValue, createIsNaN, createLarger, createLog2, createMode, createNorm, createPartitionSelect, createPrint, createQuantileSeq, createRound, createSmaller, createStirlingS2, createTrue, createVariance, createAcsch, createAtan2, createCatalan, createComposition, createDeepEqual, createFloor, createHypot, createLgamma, createMedian, createMultinomial, createPermutations, createRange, createSign, createStd, createCeil, createCoth, createFix, createIsPrime, createNumeric, createProd, createSum, createBellNumbers, createGcd, createMad, createMax, createMin } from '../factoriesNumber.js';
|
|
8
8
|
export var e = /* #__PURE__ */createE({
|
|
9
9
|
config
|
|
10
10
|
});
|
|
@@ -125,9 +125,6 @@ export var exp = /* #__PURE__ */createExp({
|
|
|
125
125
|
export var filter = /* #__PURE__ */createFilter({
|
|
126
126
|
typed
|
|
127
127
|
});
|
|
128
|
-
export var fix = /* #__PURE__ */createFix({
|
|
129
|
-
typed
|
|
130
|
-
});
|
|
131
128
|
export var forEach = /* #__PURE__ */createForEach({
|
|
132
129
|
typed
|
|
133
130
|
});
|
|
@@ -159,10 +156,10 @@ export var largerEq = /* #__PURE__ */createLargerEq({
|
|
|
159
156
|
export var leftShift = /* #__PURE__ */createLeftShift({
|
|
160
157
|
typed
|
|
161
158
|
});
|
|
162
|
-
export var
|
|
159
|
+
export var log = /* #__PURE__ */createLog({
|
|
163
160
|
typed
|
|
164
161
|
});
|
|
165
|
-
export var
|
|
162
|
+
export var log1p = /* #__PURE__ */createLog1p({
|
|
166
163
|
typed
|
|
167
164
|
});
|
|
168
165
|
export var map = /* #__PURE__ */createMap({
|
|
@@ -253,10 +250,11 @@ export var asech = /* #__PURE__ */createAsech({
|
|
|
253
250
|
export var bitNot = /* #__PURE__ */createBitNot({
|
|
254
251
|
typed
|
|
255
252
|
});
|
|
256
|
-
export var
|
|
253
|
+
export var clone = /* #__PURE__ */createClone({
|
|
257
254
|
typed
|
|
258
255
|
});
|
|
259
|
-
export var
|
|
256
|
+
export var compareNatural = /* #__PURE__ */createCompareNatural({
|
|
257
|
+
compare,
|
|
260
258
|
typed
|
|
261
259
|
});
|
|
262
260
|
export var cosh = /* #__PURE__ */createCosh({
|
|
@@ -285,7 +283,7 @@ export var LN2 = /* #__PURE__ */createLN2({
|
|
|
285
283
|
export var lcm = /* #__PURE__ */createLcm({
|
|
286
284
|
typed
|
|
287
285
|
});
|
|
288
|
-
export var
|
|
286
|
+
export var log10 = /* #__PURE__ */createLog10({
|
|
289
287
|
typed
|
|
290
288
|
});
|
|
291
289
|
export var multiplyScalar = /* #__PURE__ */createMultiplyScalar({
|
|
@@ -333,7 +331,7 @@ export var asinh = /* #__PURE__ */createAsinh({
|
|
|
333
331
|
export var bitXor = /* #__PURE__ */createBitXor({
|
|
334
332
|
typed
|
|
335
333
|
});
|
|
336
|
-
export var
|
|
334
|
+
export var combinationsWithRep = /* #__PURE__ */createCombinationsWithRep({
|
|
337
335
|
typed
|
|
338
336
|
});
|
|
339
337
|
export var cumsum = /* #__PURE__ */createCumSum({
|
|
@@ -360,6 +358,9 @@ export var larger = /* #__PURE__ */createLarger({
|
|
|
360
358
|
config,
|
|
361
359
|
typed
|
|
362
360
|
});
|
|
361
|
+
export var log2 = /* #__PURE__ */createLog2({
|
|
362
|
+
typed
|
|
363
|
+
});
|
|
363
364
|
export var mode = /* #__PURE__ */createMode({
|
|
364
365
|
isNaN,
|
|
365
366
|
isNumeric,
|
|
@@ -400,6 +401,7 @@ export var stirlingS2 = /* #__PURE__ */createStirlingS2({
|
|
|
400
401
|
isNegative,
|
|
401
402
|
larger,
|
|
402
403
|
multiplyScalar,
|
|
404
|
+
number,
|
|
403
405
|
pow,
|
|
404
406
|
subtract,
|
|
405
407
|
typed
|
|
@@ -443,6 +445,8 @@ export var deepEqual = /* #__PURE__ */createDeepEqual({
|
|
|
443
445
|
typed
|
|
444
446
|
});
|
|
445
447
|
export var floor = /* #__PURE__ */createFloor({
|
|
448
|
+
config,
|
|
449
|
+
round,
|
|
446
450
|
typed
|
|
447
451
|
});
|
|
448
452
|
export var hypot = /* #__PURE__ */createHypot({
|
|
@@ -455,7 +459,7 @@ export var hypot = /* #__PURE__ */createHypot({
|
|
|
455
459
|
sqrt,
|
|
456
460
|
typed
|
|
457
461
|
});
|
|
458
|
-
export var
|
|
462
|
+
export var lgamma = /* #__PURE__ */createLgamma({
|
|
459
463
|
typed
|
|
460
464
|
});
|
|
461
465
|
export var median = /* #__PURE__ */createMedian({
|
|
@@ -495,14 +499,17 @@ export var std = /* #__PURE__ */createStd({
|
|
|
495
499
|
typed,
|
|
496
500
|
variance
|
|
497
501
|
});
|
|
498
|
-
export var
|
|
499
|
-
|
|
502
|
+
export var ceil = /* #__PURE__ */createCeil({
|
|
503
|
+
config,
|
|
504
|
+
round,
|
|
500
505
|
typed
|
|
501
506
|
});
|
|
502
507
|
export var coth = /* #__PURE__ */createCoth({
|
|
503
508
|
typed
|
|
504
509
|
});
|
|
505
|
-
export var
|
|
510
|
+
export var fix = /* #__PURE__ */createFix({
|
|
511
|
+
ceil,
|
|
512
|
+
floor,
|
|
506
513
|
typed
|
|
507
514
|
});
|
|
508
515
|
export var isPrime = /* #__PURE__ */createIsPrime({
|
|
@@ -530,6 +537,9 @@ export var bellNumbers = /* #__PURE__ */createBellNumbers({
|
|
|
530
537
|
stirlingS2,
|
|
531
538
|
typed
|
|
532
539
|
});
|
|
540
|
+
export var gcd = /* #__PURE__ */createGcd({
|
|
541
|
+
typed
|
|
542
|
+
});
|
|
533
543
|
export var mad = /* #__PURE__ */createMad({
|
|
534
544
|
abs,
|
|
535
545
|
map,
|
|
@@ -121,6 +121,7 @@ import { forEachDocs } from './function/matrix/forEach.js';
|
|
|
121
121
|
import { getMatrixDataTypeDocs } from './function/matrix/getMatrixDataType.js';
|
|
122
122
|
import { identityDocs } from './function/matrix/identity.js';
|
|
123
123
|
import { invDocs } from './function/matrix/inv.js';
|
|
124
|
+
import { pinvDocs } from './function/matrix/pinv.js';
|
|
124
125
|
import { kronDocs } from './function/matrix/kron.js';
|
|
125
126
|
import { mapDocs } from './function/matrix/map.js';
|
|
126
127
|
import { matrixFromColumnsDocs } from './function/matrix/matrixFromColumns.js';
|
|
@@ -145,6 +146,7 @@ import { combinationsDocs } from './function/probability/combinations.js';
|
|
|
145
146
|
import { combinationsWithRepDocs } from './function/probability/combinationsWithRep.js';
|
|
146
147
|
import { factorialDocs } from './function/probability/factorial.js';
|
|
147
148
|
import { gammaDocs } from './function/probability/gamma.js';
|
|
149
|
+
import { lgammaDocs } from './function/probability/lgamma.js';
|
|
148
150
|
import { kldivergenceDocs } from './function/probability/kldivergence.js';
|
|
149
151
|
import { multinomialDocs } from './function/probability/multinomial.js';
|
|
150
152
|
import { permutationsDocs } from './function/probability/permutations.js';
|
|
@@ -568,6 +570,7 @@ export var embeddedDocs = {
|
|
|
568
570
|
flatten: flattenDocs,
|
|
569
571
|
forEach: forEachDocs,
|
|
570
572
|
inv: invDocs,
|
|
573
|
+
pinv: pinvDocs,
|
|
571
574
|
eigs: eigsDocs,
|
|
572
575
|
kron: kronDocs,
|
|
573
576
|
matrixFromFunction: matrixFromFunctionDocs,
|
|
@@ -596,6 +599,7 @@ export var embeddedDocs = {
|
|
|
596
599
|
factorial: factorialDocs,
|
|
597
600
|
gamma: gammaDocs,
|
|
598
601
|
kldivergence: kldivergenceDocs,
|
|
602
|
+
lgamma: lgammaDocs,
|
|
599
603
|
multinomial: multinomialDocs,
|
|
600
604
|
permutations: permutationsDocs,
|
|
601
605
|
pickRandom: pickRandomDocs,
|
|
@@ -3,6 +3,6 @@ export var powDocs = {
|
|
|
3
3
|
category: 'Operators',
|
|
4
4
|
syntax: ['x ^ y', 'pow(x, y)'],
|
|
5
5
|
description: 'Calculates the power of x to y, x^y.',
|
|
6
|
-
examples: ['2^3', '2*2*2', '1 + e ^ (pi * i)'],
|
|
6
|
+
examples: ['2^3', '2*2*2', '1 + e ^ (pi * i)', 'math.pow([[1, 2], [4, 3]], 2)', 'math.pow([[1, 2], [4, 3]], -1)'],
|
|
7
7
|
seealso: ['multiply', 'nthRoot', 'nthRoots', 'sqrt']
|
|
8
8
|
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export var lgammaDocs = {
|
|
2
|
+
name: 'lgamma',
|
|
3
|
+
category: 'Probability',
|
|
4
|
+
syntax: ['lgamma(n)'],
|
|
5
|
+
description: 'Logarithm of the gamma function for real, positive numbers and complex numbers, ' + 'using Lanczos approximation for numbers and Stirling series for complex numbers.',
|
|
6
|
+
examples: ['lgamma(4)', 'lgamma(1/2)', 'lgamma(math.i)', 'lgamma(complex(1.1, 2))'],
|
|
7
|
+
seealso: ['gamma']
|
|
8
|
+
};
|
|
@@ -31,8 +31,8 @@ export var createBlockNode = /* #__PURE__ */factory(name, dependencies, _ref =>
|
|
|
31
31
|
if (!isNode(node)) throw new TypeError('Property "node" must be a Node');
|
|
32
32
|
if (typeof visible !== 'boolean') throw new TypeError('Property "visible" must be a boolean');
|
|
33
33
|
return {
|
|
34
|
-
node
|
|
35
|
-
visible
|
|
34
|
+
node,
|
|
35
|
+
visible
|
|
36
36
|
};
|
|
37
37
|
});
|
|
38
38
|
}
|
|
@@ -101,7 +101,7 @@ export var createBlockNode = /* #__PURE__ */factory(name, dependencies, _ref =>
|
|
|
101
101
|
var node = this._ifNode(callback(block.node, 'blocks[' + i + '].node', this));
|
|
102
102
|
|
|
103
103
|
blocks[i] = {
|
|
104
|
-
node
|
|
104
|
+
node,
|
|
105
105
|
visible: block.visible
|
|
106
106
|
};
|
|
107
107
|
}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
import { isBigNumber, isConstantNode, isNode, isRangeNode, isSymbolNode } from '../../utils/is.js';
|
|
2
1
|
import { map } from '../../utils/array.js';
|
|
3
|
-
import { escape } from '../../utils/string.js';
|
|
4
|
-
import { factory } from '../../utils/factory.js';
|
|
5
2
|
import { getSafeProperty } from '../../utils/customs.js';
|
|
3
|
+
import { factory } from '../../utils/factory.js';
|
|
4
|
+
import { isArray, isConstantNode, isMatrix, isNode, isString, typeOf } from '../../utils/is.js';
|
|
5
|
+
import { escape } from '../../utils/string.js';
|
|
6
6
|
var name = 'IndexNode';
|
|
7
|
-
var dependencies = ['
|
|
7
|
+
var dependencies = ['Node', 'size'];
|
|
8
8
|
export var createIndexNode = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
9
9
|
var {
|
|
10
|
-
Range,
|
|
11
10
|
Node,
|
|
12
11
|
size
|
|
13
12
|
} = _ref;
|
|
@@ -67,61 +66,30 @@ export var createIndexNode = /* #__PURE__ */factory(name, dependencies, _ref =>
|
|
|
67
66
|
// TODO: Optimization: when the range values are ConstantNodes,
|
|
68
67
|
// we can beforehand resolve the zero-based value
|
|
69
68
|
// optimization for a simple object property
|
|
70
|
-
var evalDimensions = map(this.dimensions, function (
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
var evalStep = range.step ? range.step._compile(math, childArgNames) : function () {
|
|
82
|
-
return 1;
|
|
83
|
-
};
|
|
84
|
-
return function evalDimension(scope, args, context) {
|
|
85
|
-
var s = size(context).valueOf();
|
|
86
|
-
var childArgs = Object.create(args);
|
|
87
|
-
childArgs.end = s[i];
|
|
88
|
-
return createRange(evalStart(scope, childArgs, context), evalEnd(scope, childArgs, context), evalStep(scope, childArgs, context));
|
|
89
|
-
};
|
|
90
|
-
} else {
|
|
91
|
-
// create range
|
|
92
|
-
var _evalStart = range.start._compile(math, argNames);
|
|
93
|
-
|
|
94
|
-
var _evalEnd = range.end._compile(math, argNames);
|
|
95
|
-
|
|
96
|
-
var _evalStep = range.step ? range.step._compile(math, argNames) : function () {
|
|
97
|
-
return 1;
|
|
98
|
-
};
|
|
99
|
-
|
|
100
|
-
return function evalDimension(scope, args, context) {
|
|
101
|
-
return createRange(_evalStart(scope, args, context), _evalEnd(scope, args, context), _evalStep(scope, args, context));
|
|
102
|
-
};
|
|
103
|
-
}
|
|
104
|
-
} else if (isSymbolNode(range) && range.name === 'end') {
|
|
105
|
-
// SymbolNode 'end'
|
|
106
|
-
var _childArgNames = Object.create(argNames);
|
|
107
|
-
|
|
108
|
-
_childArgNames.end = true;
|
|
109
|
-
|
|
110
|
-
var evalRange = range._compile(math, _childArgNames);
|
|
69
|
+
var evalDimensions = map(this.dimensions, function (dimension, i) {
|
|
70
|
+
var needsEnd = dimension.filter(node => node.isSymbolNode && node.name === 'end').length > 0;
|
|
71
|
+
|
|
72
|
+
if (needsEnd) {
|
|
73
|
+
// SymbolNode 'end' is used inside the index,
|
|
74
|
+
// like in `A[end]` or `A[end - 2]`
|
|
75
|
+
var childArgNames = Object.create(argNames);
|
|
76
|
+
childArgNames.end = true;
|
|
77
|
+
|
|
78
|
+
var _evalDimension = dimension._compile(math, childArgNames);
|
|
111
79
|
|
|
112
80
|
return function evalDimension(scope, args, context) {
|
|
81
|
+
if (!isMatrix(context) && !isArray(context) && !isString(context)) {
|
|
82
|
+
throw new TypeError('Cannot resolve "end": ' + 'context must be a Matrix, Array, or string but is ' + typeOf(context));
|
|
83
|
+
}
|
|
84
|
+
|
|
113
85
|
var s = size(context).valueOf();
|
|
114
86
|
var childArgs = Object.create(args);
|
|
115
87
|
childArgs.end = s[i];
|
|
116
|
-
return
|
|
88
|
+
return _evalDimension(scope, childArgs, context);
|
|
117
89
|
};
|
|
118
90
|
} else {
|
|
119
|
-
//
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
return function evalDimension(scope, args, context) {
|
|
123
|
-
return _evalRange(scope, args, context);
|
|
124
|
-
};
|
|
91
|
+
// SymbolNode `end` not used
|
|
92
|
+
return dimension._compile(math, argNames);
|
|
125
93
|
}
|
|
126
94
|
});
|
|
127
95
|
var index = getSafeProperty(math, 'index');
|
|
@@ -257,12 +225,7 @@ export var createIndexNode = /* #__PURE__ */factory(name, dependencies, _ref =>
|
|
|
257
225
|
return range.toTex(options);
|
|
258
226
|
});
|
|
259
227
|
return this.dotNotation ? '.' + this.getObjectProperty() + '' : '_{' + dimensions.join(',') + '}';
|
|
260
|
-
};
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
function createRange(start, end, step) {
|
|
264
|
-
return new Range(isBigNumber(start) ? start.toNumber() : start, isBigNumber(end) ? end.toNumber() : end, isBigNumber(step) ? step.toNumber() : step);
|
|
265
|
-
}
|
|
228
|
+
};
|
|
266
229
|
|
|
267
230
|
return IndexNode;
|
|
268
231
|
}, {
|
|
@@ -151,7 +151,7 @@ export var createParse = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
151
151
|
true: true,
|
|
152
152
|
false: false,
|
|
153
153
|
null: null,
|
|
154
|
-
undefined
|
|
154
|
+
undefined
|
|
155
155
|
};
|
|
156
156
|
var NUMERIC_CONSTANTS = ['NaN', 'Infinity'];
|
|
157
157
|
|
|
@@ -623,8 +623,8 @@ export var createParse = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
623
623
|
if (blocks.length === 0 && node) {
|
|
624
624
|
visible = state.token !== ';';
|
|
625
625
|
blocks.push({
|
|
626
|
-
node
|
|
627
|
-
visible
|
|
626
|
+
node,
|
|
627
|
+
visible
|
|
628
628
|
});
|
|
629
629
|
}
|
|
630
630
|
|
|
@@ -635,8 +635,8 @@ export var createParse = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
635
635
|
node.comment = state.comment;
|
|
636
636
|
visible = state.token !== ';';
|
|
637
637
|
blocks.push({
|
|
638
|
-
node
|
|
639
|
-
visible
|
|
638
|
+
node,
|
|
639
|
+
visible
|
|
640
640
|
});
|
|
641
641
|
}
|
|
642
642
|
}
|
package/lib/esm/factoriesAny.js
CHANGED
|
@@ -214,6 +214,7 @@ export { createHelp } from './expression/function/help.js';
|
|
|
214
214
|
export { createChain } from './type/chain/function/chain.js';
|
|
215
215
|
export { createDet } from './function/matrix/det.js';
|
|
216
216
|
export { createInv } from './function/matrix/inv.js';
|
|
217
|
+
export { createPinv } from './function/matrix/pinv.js';
|
|
217
218
|
export { createEigs } from './function/matrix/eigs.js';
|
|
218
219
|
export { createExpm } from './function/matrix/expm.js';
|
|
219
220
|
export { createSqrtm } from './function/matrix/sqrtm.js';
|
|
@@ -231,6 +232,7 @@ export { createStd } from './function/statistics/std.js';
|
|
|
231
232
|
export { createCombinations } from './function/probability/combinations.js';
|
|
232
233
|
export { createCombinationsWithRep } from './function/probability/combinationsWithRep.js';
|
|
233
234
|
export { createGamma } from './function/probability/gamma.js';
|
|
235
|
+
export { createLgamma } from './function/probability/lgamma.js';
|
|
234
236
|
export { createFactorial } from './function/probability/factorial.js';
|
|
235
237
|
export { createKldivergence } from './function/probability/kldivergence.js';
|
|
236
238
|
export { createMultinomial } from './function/probability/multinomial.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { absNumber, acoshNumber, acosNumber, acothNumber, acotNumber, acschNumber, acscNumber, addNumber, andNumber, asechNumber, asecNumber, asinhNumber, asinNumber, atan2Number, atanhNumber, atanNumber, bitAndNumber, bitNotNumber, bitOrNumber, bitXorNumber, cbrtNumber,
|
|
1
|
+
import { absNumber, acoshNumber, acosNumber, acothNumber, acotNumber, acschNumber, acscNumber, addNumber, andNumber, asechNumber, asecNumber, asinhNumber, asinNumber, atan2Number, atanhNumber, atanNumber, bitAndNumber, bitNotNumber, bitOrNumber, bitXorNumber, cbrtNumber, combinationsNumber, coshNumber, cosNumber, cothNumber, cotNumber, cschNumber, cscNumber, cubeNumber, divideNumber, expm1Number, expNumber, gammaNumber, gcdNumber, isIntegerNumber, isNaNNumber, isNegativeNumber, isPositiveNumber, isZeroNumber, lcmNumber, leftShiftNumber, lgammaNumber, log10Number, log1pNumber, log2Number, logNumber, modNumber, multiplyNumber, normNumber, notNumber, nthRootNumber, orNumber, powNumber, rightArithShiftNumber, rightLogShiftNumber, roundNumber, sechNumber, secNumber, signNumber, sinhNumber, sinNumber, sqrtNumber, squareNumber, subtractNumber, tanhNumber, tanNumber, unaryMinusNumber, unaryPlusNumber, xgcdNumber, xorNumber } from './plain/number/index.js';
|
|
2
2
|
import { factory } from './utils/factory.js';
|
|
3
3
|
import { noIndex, noMatrix, noSubset } from './utils/noop.js'; // ----------------------------------------------------------------------------
|
|
4
4
|
// classes and functions
|
|
@@ -24,12 +24,12 @@ export var createUnaryPlus = /* #__PURE__ */createNumberFactory('unaryPlus', una
|
|
|
24
24
|
export var createAbs = /* #__PURE__ */createNumberFactory('abs', absNumber);
|
|
25
25
|
export var createAddScalar = /* #__PURE__ */createNumberFactory('addScalar', addNumber);
|
|
26
26
|
export var createCbrt = /* #__PURE__ */createNumberFactory('cbrt', cbrtNumber);
|
|
27
|
-
export
|
|
27
|
+
export { createCeilNumber as createCeil } from './function/arithmetic/ceil.js';
|
|
28
28
|
export var createCube = /* #__PURE__ */createNumberFactory('cube', cubeNumber);
|
|
29
29
|
export var createExp = /* #__PURE__ */createNumberFactory('exp', expNumber);
|
|
30
30
|
export var createExpm1 = /* #__PURE__ */createNumberFactory('expm1', expm1Number);
|
|
31
|
-
export
|
|
32
|
-
export
|
|
31
|
+
export { createFixNumber as createFix } from './function/arithmetic/fix.js';
|
|
32
|
+
export { createFloorNumber as createFloor } from './function/arithmetic/floor.js';
|
|
33
33
|
export var createGcd = /* #__PURE__ */createNumberFactory('gcd', gcdNumber);
|
|
34
34
|
export var createLcm = /* #__PURE__ */createNumberFactory('lcm', lcmNumber);
|
|
35
35
|
export var createLog10 = /* #__PURE__ */createNumberFactory('log10', log10Number);
|
|
@@ -37,7 +37,7 @@ export var createLog2 = /* #__PURE__ */createNumberFactory('log2', log2Number);
|
|
|
37
37
|
export var createMod = /* #__PURE__ */createNumberFactory('mod', modNumber);
|
|
38
38
|
export var createMultiplyScalar = /* #__PURE__ */createNumberFactory('multiplyScalar', multiplyNumber);
|
|
39
39
|
export var createMultiply = /* #__PURE__ */createNumberFactory('multiply', multiplyNumber);
|
|
40
|
-
export
|
|
40
|
+
export var createNthRoot = /* #__PURE__ */createNumberOptionalSecondArgFactory('nthRoot', nthRootNumber);
|
|
41
41
|
export var createSign = /* #__PURE__ */createNumberFactory('sign', signNumber);
|
|
42
42
|
export var createSqrt = /* #__PURE__ */createNumberFactory('sqrt', sqrtNumber);
|
|
43
43
|
export var createSquare = /* #__PURE__ */createNumberFactory('square', squareNumber);
|
|
@@ -45,8 +45,8 @@ export var createSubtract = /* #__PURE__ */createNumberFactory('subtract', subtr
|
|
|
45
45
|
export var createXgcd = /* #__PURE__ */createNumberFactory('xgcd', xgcdNumber);
|
|
46
46
|
export var createDivideScalar = /* #__PURE__ */createNumberFactory('divideScalar', divideNumber);
|
|
47
47
|
export var createPow = /* #__PURE__ */createNumberFactory('pow', powNumber);
|
|
48
|
-
export
|
|
49
|
-
export var createLog = /* #__PURE__ */
|
|
48
|
+
export var createRound = /* #__PURE__ */createNumberOptionalSecondArgFactory('round', roundNumber);
|
|
49
|
+
export var createLog = /* #__PURE__ */createNumberOptionalSecondArgFactory('log', logNumber);
|
|
50
50
|
export var createLog1p = /* #__PURE__ */createNumberFactory('log1p', log1pNumber);
|
|
51
51
|
export var createAdd = /* #__PURE__ */createNumberFactory('add', addNumber);
|
|
52
52
|
export { createHypot } from './function/arithmetic/hypot.js';
|
|
@@ -118,6 +118,7 @@ export { createPartitionSelect } from './function/matrix/partitionSelect.js'; //
|
|
|
118
118
|
|
|
119
119
|
export var createCombinations = createNumberFactory('combinations', combinationsNumber);
|
|
120
120
|
export var createGamma = createNumberFactory('gamma', gammaNumber);
|
|
121
|
+
export var createLgamma = createNumberFactory('lgamma', lgammaNumber);
|
|
121
122
|
export { createCombinationsWithRep } from './function/probability/combinationsWithRep.js';
|
|
122
123
|
export { createFactorial } from './function/probability/factorial.js';
|
|
123
124
|
export { createMultinomial } from './function/probability/multinomial.js';
|
|
@@ -212,7 +213,7 @@ export { createIsPrime } from './function/utils/isPrime.js';
|
|
|
212
213
|
export { createNumeric } from './function/utils/numeric.js'; // json
|
|
213
214
|
|
|
214
215
|
export { createReviver } from './json/reviver.js';
|
|
215
|
-
export { createReplacer } from './json/replacer.js'; // helper
|
|
216
|
+
export { createReplacer } from './json/replacer.js'; // helper functions to create a factory function for a function which only needs typed-function
|
|
216
217
|
|
|
217
218
|
function createNumberFactory(name, fn) {
|
|
218
219
|
return factory(name, ['typed'], _ref => {
|
|
@@ -221,4 +222,16 @@ function createNumberFactory(name, fn) {
|
|
|
221
222
|
} = _ref;
|
|
222
223
|
return typed(fn);
|
|
223
224
|
});
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
function createNumberOptionalSecondArgFactory(name, fn) {
|
|
228
|
+
return factory(name, ['typed'], _ref2 => {
|
|
229
|
+
var {
|
|
230
|
+
typed
|
|
231
|
+
} = _ref2;
|
|
232
|
+
return typed({
|
|
233
|
+
number: fn,
|
|
234
|
+
'number,number': fn
|
|
235
|
+
});
|
|
236
|
+
});
|
|
224
237
|
}
|
|
@@ -29,11 +29,11 @@ export var createResolve = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
29
29
|
*
|
|
30
30
|
* simplify, evaluate
|
|
31
31
|
*
|
|
32
|
-
* @param {Node} node
|
|
33
|
-
* The expression tree to be simplified
|
|
32
|
+
* @param {Node | Node[]} node
|
|
33
|
+
* The expression tree (or trees) to be simplified
|
|
34
34
|
* @param {Object} scope
|
|
35
35
|
* Scope specifying variables to be resolved
|
|
36
|
-
* @return {Node} Returns `node` with variables recursively substituted.
|
|
36
|
+
* @return {Node | Node[]} Returns `node` with variables recursively substituted.
|
|
37
37
|
* @throws {ReferenceError}
|
|
38
38
|
* If there is a cyclic dependency among the variables in `scope`,
|
|
39
39
|
* resolution is impossible and a ReferenceError is thrown.
|
|
@@ -45,7 +45,7 @@ export function createSolveValidation(_ref) {
|
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
return new DenseMatrix({
|
|
48
|
-
data
|
|
48
|
+
data,
|
|
49
49
|
size: [rows, 1],
|
|
50
50
|
datatype: b._datatype
|
|
51
51
|
});
|
|
@@ -66,7 +66,7 @@ export function createSolveValidation(_ref) {
|
|
|
66
66
|
}
|
|
67
67
|
|
|
68
68
|
return new DenseMatrix({
|
|
69
|
-
data
|
|
69
|
+
data,
|
|
70
70
|
size: [rows, 1],
|
|
71
71
|
datatype: b._datatype
|
|
72
72
|
});
|
|
@@ -90,7 +90,7 @@ export function createSolveValidation(_ref) {
|
|
|
90
90
|
}
|
|
91
91
|
|
|
92
92
|
return new DenseMatrix({
|
|
93
|
-
data
|
|
93
|
+
data,
|
|
94
94
|
size: [rows, 1],
|
|
95
95
|
datatype: b._datatype
|
|
96
96
|
});
|
|
@@ -113,7 +113,7 @@ export function createSolveValidation(_ref) {
|
|
|
113
113
|
}
|
|
114
114
|
|
|
115
115
|
return new DenseMatrix({
|
|
116
|
-
data
|
|
116
|
+
data,
|
|
117
117
|
size: [rows, 1]
|
|
118
118
|
});
|
|
119
119
|
}
|
|
@@ -128,7 +128,7 @@ export function createSolveValidation(_ref) {
|
|
|
128
128
|
}
|
|
129
129
|
|
|
130
130
|
return new DenseMatrix({
|
|
131
|
-
data
|
|
131
|
+
data,
|
|
132
132
|
size: [rows, 1]
|
|
133
133
|
});
|
|
134
134
|
}
|