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