mathjs 11.5.1 → 11.7.0
Sign up to get free protection for your applications and to get access to all the features.
- package/HISTORY.md +34 -0
- package/lib/browser/math.js +1 -1
- package/lib/browser/math.js.LICENSE.txt +2 -2
- package/lib/browser/math.js.map +1 -1
- package/lib/cjs/entry/dependenciesAny/dependenciesAdd.generated.js +2 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesAnd.generated.js +2 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesAtan2.generated.js +2 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesBitAnd.generated.js +2 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesBitOr.generated.js +2 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesBitXor.generated.js +2 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesCompare.generated.js +2 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesCompareText.generated.js +2 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesDotDivide.generated.js +2 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesDotMultiply.generated.js +2 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesDotPow.generated.js +2 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesEqual.generated.js +2 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesFft.generated.js +10 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesGcd.generated.js +2 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesLarger.generated.js +2 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesLargerEq.generated.js +2 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesLcm.generated.js +2 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesLeftShift.generated.js +2 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesMod.generated.js +2 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesNthRoot.generated.js +2 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesOr.generated.js +2 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesRightArithShift.generated.js +2 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesRightLogShift.generated.js +2 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesSimplifyConstant.generated.js +0 -2
- package/lib/cjs/entry/dependenciesAny/dependenciesSmaller.generated.js +2 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesSmallerEq.generated.js +2 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesSubtract.generated.js +2 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesTo.generated.js +2 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesUnequal.generated.js +2 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesXor.generated.js +2 -0
- package/lib/cjs/entry/dependenciesNumber/dependenciesSimplifyConstant.generated.js +0 -2
- package/lib/cjs/entry/impureFunctionsAny.generated.js +102 -103
- package/lib/cjs/entry/impureFunctionsNumber.generated.js +41 -42
- package/lib/cjs/entry/pureFunctionsAny.generated.js +405 -372
- package/lib/cjs/expression/embeddedDocs/function/matrix/partitionSelect.js +1 -1
- package/lib/cjs/expression/embeddedDocs/function/matrix/sort.js +1 -1
- package/lib/cjs/function/algebra/simplifyConstant.js +1 -2
- package/lib/cjs/function/arithmetic/add.js +38 -37
- package/lib/cjs/function/arithmetic/dotDivide.js +5 -3
- package/lib/cjs/function/arithmetic/dotMultiply.js +5 -3
- package/lib/cjs/function/arithmetic/dotPow.js +5 -3
- package/lib/cjs/function/arithmetic/expm1.js +1 -1
- package/lib/cjs/function/arithmetic/gcd.js +40 -15
- package/lib/cjs/function/arithmetic/lcm.js +5 -3
- package/lib/cjs/function/arithmetic/mod.js +5 -3
- package/lib/cjs/function/arithmetic/nthRoot.js +5 -3
- package/lib/cjs/function/arithmetic/nthRoots.js +2 -1
- package/lib/cjs/function/arithmetic/round.js +1 -1
- package/lib/cjs/function/arithmetic/sign.js +1 -1
- package/lib/cjs/function/arithmetic/subtract.js +5 -3
- package/lib/cjs/function/bitwise/bitAnd.js +5 -3
- package/lib/cjs/function/bitwise/bitOr.js +5 -3
- package/lib/cjs/function/bitwise/bitXor.js +5 -3
- package/lib/cjs/function/bitwise/leftShift.js +5 -3
- package/lib/cjs/function/bitwise/rightArithShift.js +6 -4
- package/lib/cjs/function/bitwise/rightLogShift.js +5 -3
- package/lib/cjs/function/geometry/distance.js +3 -3
- package/lib/cjs/function/logical/and.js +5 -3
- package/lib/cjs/function/logical/or.js +5 -3
- package/lib/cjs/function/logical/xor.js +5 -3
- package/lib/cjs/function/matrix/column.js +3 -1
- package/lib/cjs/function/matrix/det.js +7 -1
- package/lib/cjs/function/matrix/diff.js +3 -3
- package/lib/cjs/function/matrix/fft.js +43 -4
- package/lib/cjs/function/matrix/getMatrixDataType.js +1 -1
- package/lib/cjs/function/matrix/partitionSelect.js +7 -2
- package/lib/cjs/function/matrix/row.js +3 -1
- package/lib/cjs/function/matrix/subset.js +1 -1
- package/lib/cjs/function/relational/compare.js +5 -3
- package/lib/cjs/function/relational/compareText.js +5 -3
- package/lib/cjs/function/relational/equal.js +5 -3
- package/lib/cjs/function/relational/larger.js +5 -3
- package/lib/cjs/function/relational/largerEq.js +5 -3
- package/lib/cjs/function/relational/smaller.js +5 -3
- package/lib/cjs/function/relational/smallerEq.js +5 -3
- package/lib/cjs/function/relational/unequal.js +5 -3
- package/lib/cjs/function/set/setIsSubset.js +1 -1
- package/lib/cjs/function/set/setSize.js +3 -2
- package/lib/cjs/function/statistics/max.js +1 -1
- package/lib/cjs/function/statistics/quantileSeq.js +4 -3
- package/lib/cjs/function/trigonometry/atan2.js +5 -3
- package/lib/cjs/function/unit/to.js +8 -6
- package/lib/cjs/header.js +2 -2
- package/lib/cjs/type/matrix/utils/broadcast.js +84 -0
- package/lib/cjs/type/matrix/utils/matrixAlgorithmSuite.js +27 -20
- package/lib/cjs/version.js +1 -1
- package/lib/esm/entry/dependenciesAny/dependenciesAdd.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesAnd.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesAtan2.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesBitAnd.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesBitOr.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesBitXor.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesCompare.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesCompareText.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesDotDivide.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesDotMultiply.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesDotPow.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesEqual.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesFft.generated.js +10 -0
- package/lib/esm/entry/dependenciesAny/dependenciesGcd.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesLarger.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesLargerEq.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesLcm.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesLeftShift.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesMod.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesNthRoot.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesOr.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesRightArithShift.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesRightLogShift.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesSimplifyConstant.generated.js +0 -2
- package/lib/esm/entry/dependenciesAny/dependenciesSmaller.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesSmallerEq.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesSubtract.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesTo.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesUnequal.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesXor.generated.js +2 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesSimplifyConstant.generated.js +0 -2
- package/lib/esm/entry/impureFunctionsAny.generated.js +100 -101
- package/lib/esm/entry/impureFunctionsNumber.generated.js +38 -39
- package/lib/esm/entry/pureFunctionsAny.generated.js +332 -299
- package/lib/esm/expression/embeddedDocs/function/matrix/partitionSelect.js +1 -1
- package/lib/esm/expression/embeddedDocs/function/matrix/sort.js +1 -1
- package/lib/esm/function/algebra/simplifyConstant.js +1 -2
- package/lib/esm/function/arithmetic/add.js +38 -37
- package/lib/esm/function/arithmetic/dotDivide.js +5 -3
- package/lib/esm/function/arithmetic/dotMultiply.js +5 -3
- package/lib/esm/function/arithmetic/dotPow.js +5 -3
- package/lib/esm/function/arithmetic/expm1.js +1 -1
- package/lib/esm/function/arithmetic/gcd.js +32 -13
- package/lib/esm/function/arithmetic/lcm.js +5 -3
- package/lib/esm/function/arithmetic/mod.js +5 -3
- package/lib/esm/function/arithmetic/nthRoot.js +5 -3
- package/lib/esm/function/arithmetic/nthRoots.js +2 -1
- package/lib/esm/function/arithmetic/round.js +1 -1
- package/lib/esm/function/arithmetic/sign.js +1 -1
- package/lib/esm/function/arithmetic/subtract.js +5 -3
- package/lib/esm/function/bitwise/bitAnd.js +5 -3
- package/lib/esm/function/bitwise/bitOr.js +5 -3
- package/lib/esm/function/bitwise/bitXor.js +5 -3
- package/lib/esm/function/bitwise/leftShift.js +5 -3
- package/lib/esm/function/bitwise/rightArithShift.js +6 -4
- package/lib/esm/function/bitwise/rightLogShift.js +5 -3
- package/lib/esm/function/geometry/distance.js +3 -3
- package/lib/esm/function/logical/and.js +5 -3
- package/lib/esm/function/logical/or.js +5 -3
- package/lib/esm/function/logical/xor.js +5 -3
- package/lib/esm/function/matrix/column.js +3 -1
- package/lib/esm/function/matrix/det.js +7 -1
- package/lib/esm/function/matrix/diff.js +3 -3
- package/lib/esm/function/matrix/fft.js +37 -4
- package/lib/esm/function/matrix/getMatrixDataType.js +1 -1
- package/lib/esm/function/matrix/partitionSelect.js +7 -2
- package/lib/esm/function/matrix/row.js +3 -1
- package/lib/esm/function/matrix/subset.js +1 -1
- package/lib/esm/function/relational/compare.js +5 -3
- package/lib/esm/function/relational/compareText.js +5 -3
- package/lib/esm/function/relational/equal.js +5 -3
- package/lib/esm/function/relational/larger.js +5 -3
- package/lib/esm/function/relational/largerEq.js +5 -3
- package/lib/esm/function/relational/smaller.js +5 -3
- package/lib/esm/function/relational/smallerEq.js +5 -3
- package/lib/esm/function/relational/unequal.js +5 -3
- package/lib/esm/function/set/setIsSubset.js +1 -1
- package/lib/esm/function/set/setSize.js +3 -2
- package/lib/esm/function/statistics/max.js +1 -1
- package/lib/esm/function/statistics/quantileSeq.js +4 -3
- package/lib/esm/function/trigonometry/atan2.js +5 -3
- package/lib/esm/function/unit/to.js +8 -6
- package/lib/esm/type/matrix/utils/broadcast.js +75 -0
- package/lib/esm/type/matrix/utils/matrixAlgorithmSuite.js +25 -20
- package/lib/esm/version.js +1 -1
- package/package.json +14 -14
- package/types/index.d.ts +247 -471
@@ -6,14 +6,15 @@ import { factory } from '../../utils/factory.js';
|
|
6
6
|
import { createMatrixAlgorithmSuite } from '../../type/matrix/utils/matrixAlgorithmSuite.js';
|
7
7
|
import { andNumber } from '../../plain/number/index.js';
|
8
8
|
var name = 'and';
|
9
|
-
var dependencies = ['typed', 'matrix', 'equalScalar', 'zeros', 'not'];
|
9
|
+
var dependencies = ['typed', 'matrix', 'equalScalar', 'zeros', 'not', 'concat'];
|
10
10
|
export var createAnd = /* #__PURE__ */factory(name, dependencies, _ref => {
|
11
11
|
var {
|
12
12
|
typed,
|
13
13
|
matrix,
|
14
14
|
equalScalar,
|
15
15
|
zeros,
|
16
|
-
not
|
16
|
+
not,
|
17
|
+
concat
|
17
18
|
} = _ref;
|
18
19
|
var matAlgo02xDS0 = createMatAlgo02xDS0({
|
19
20
|
typed,
|
@@ -32,7 +33,8 @@ export var createAnd = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
32
33
|
});
|
33
34
|
var matrixAlgorithmSuite = createMatrixAlgorithmSuite({
|
34
35
|
typed,
|
35
|
-
matrix
|
36
|
+
matrix,
|
37
|
+
concat
|
36
38
|
});
|
37
39
|
|
38
40
|
/**
|
@@ -5,13 +5,14 @@ import { factory } from '../../utils/factory.js';
|
|
5
5
|
import { createMatrixAlgorithmSuite } from '../../type/matrix/utils/matrixAlgorithmSuite.js';
|
6
6
|
import { orNumber } from '../../plain/number/index.js';
|
7
7
|
var name = 'or';
|
8
|
-
var dependencies = ['typed', 'matrix', 'equalScalar', 'DenseMatrix'];
|
8
|
+
var dependencies = ['typed', 'matrix', 'equalScalar', 'DenseMatrix', 'concat'];
|
9
9
|
export var createOr = /* #__PURE__ */factory(name, dependencies, _ref => {
|
10
10
|
var {
|
11
11
|
typed,
|
12
12
|
matrix,
|
13
13
|
equalScalar,
|
14
|
-
DenseMatrix
|
14
|
+
DenseMatrix,
|
15
|
+
concat
|
15
16
|
} = _ref;
|
16
17
|
var matAlgo03xDSf = createMatAlgo03xDSf({
|
17
18
|
typed
|
@@ -26,7 +27,8 @@ export var createOr = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
26
27
|
});
|
27
28
|
var matrixAlgorithmSuite = createMatrixAlgorithmSuite({
|
28
29
|
typed,
|
29
|
-
matrix
|
30
|
+
matrix,
|
31
|
+
concat
|
30
32
|
});
|
31
33
|
|
32
34
|
/**
|
@@ -5,12 +5,13 @@ import { factory } from '../../utils/factory.js';
|
|
5
5
|
import { createMatrixAlgorithmSuite } from '../../type/matrix/utils/matrixAlgorithmSuite.js';
|
6
6
|
import { xorNumber } from '../../plain/number/index.js';
|
7
7
|
var name = 'xor';
|
8
|
-
var dependencies = ['typed', 'matrix', 'DenseMatrix'];
|
8
|
+
var dependencies = ['typed', 'matrix', 'DenseMatrix', 'concat'];
|
9
9
|
export var createXor = /* #__PURE__ */factory(name, dependencies, _ref => {
|
10
10
|
var {
|
11
11
|
typed,
|
12
12
|
matrix,
|
13
|
-
DenseMatrix
|
13
|
+
DenseMatrix,
|
14
|
+
concat
|
14
15
|
} = _ref;
|
15
16
|
var matAlgo03xDSf = createMatAlgo03xDSf({
|
16
17
|
typed
|
@@ -25,7 +26,8 @@ export var createXor = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
25
26
|
});
|
26
27
|
var matrixAlgorithmSuite = createMatrixAlgorithmSuite({
|
27
28
|
typed,
|
28
|
-
matrix
|
29
|
+
matrix,
|
30
|
+
concat
|
29
31
|
});
|
30
32
|
|
31
33
|
/**
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import { factory } from '../../utils/factory.js';
|
2
|
+
import { isMatrix } from '../../utils/is.js';
|
2
3
|
import { clone } from '../../utils/object.js';
|
3
4
|
import { validateIndex } from '../../utils/array.js';
|
4
5
|
var name = 'column';
|
@@ -52,6 +53,7 @@ export var createColumn = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
52
53
|
validateIndex(column, value.size()[1]);
|
53
54
|
var rowRange = range(0, value.size()[0]);
|
54
55
|
var index = new Index(rowRange, column);
|
55
|
-
|
56
|
+
var result = value.subset(index);
|
57
|
+
return isMatrix(result) ? result : matrix([[result]]);
|
56
58
|
}
|
57
59
|
});
|
@@ -62,16 +62,22 @@ export var createDet = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
62
62
|
// vector
|
63
63
|
if (size[0] === 1) {
|
64
64
|
return clone(x.valueOf()[0]);
|
65
|
+
}
|
66
|
+
if (size[0] === 0) {
|
67
|
+
return 1; // det of an empty matrix is per definition 1
|
65
68
|
} else {
|
66
69
|
throw new RangeError('Matrix must be square ' + '(size: ' + format(size) + ')');
|
67
70
|
}
|
68
71
|
case 2:
|
69
72
|
{
|
70
|
-
// two
|
73
|
+
// two-dimensional array
|
71
74
|
var rows = size[0];
|
72
75
|
var cols = size[1];
|
73
76
|
if (rows === cols) {
|
74
77
|
return _det(x.clone().valueOf(), rows, cols);
|
78
|
+
}
|
79
|
+
if (cols === 0) {
|
80
|
+
return 1; // det of an empty matrix is per definition 1
|
75
81
|
} else {
|
76
82
|
throw new RangeError('Matrix must be square ' + '(size: ' + format(size) + ')');
|
77
83
|
}
|
@@ -52,9 +52,9 @@ export var createDiff = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
52
52
|
* subtract
|
53
53
|
* partitionSelect
|
54
54
|
*
|
55
|
-
* @param {Array | Matrix} arr
|
56
|
-
* @param {number} dim
|
57
|
-
* @return {Array | Matrix}
|
55
|
+
* @param {Array | Matrix} arr An array or matrix
|
56
|
+
* @param {number | BigNumber} dim Dimension
|
57
|
+
* @return {Array | Matrix} Difference between array elements in given dimension
|
58
58
|
*/
|
59
59
|
return typed(name, {
|
60
60
|
'Array | Matrix': function ArrayMatrix(arr) {
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { arraySize } from '../../utils/array.js';
|
2
2
|
import { factory } from '../../utils/factory.js';
|
3
3
|
var name = 'fft';
|
4
|
-
var dependencies = ['typed', 'matrix', 'addScalar', 'multiplyScalar', 'divideScalar', 'exp', 'tau', 'i'];
|
4
|
+
var dependencies = ['typed', 'matrix', 'addScalar', 'multiplyScalar', 'divideScalar', 'exp', 'tau', 'i', 'dotDivide', 'conj', 'pow', 'ceil', 'log2'];
|
5
5
|
export var createFft = /* #__PURE__ */factory(name, dependencies, _ref => {
|
6
6
|
var {
|
7
7
|
typed,
|
@@ -11,7 +11,12 @@ export var createFft = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
11
11
|
divideScalar,
|
12
12
|
exp,
|
13
13
|
tau,
|
14
|
-
i: I
|
14
|
+
i: I,
|
15
|
+
dotDivide,
|
16
|
+
conj,
|
17
|
+
pow,
|
18
|
+
ceil,
|
19
|
+
log2
|
15
20
|
} = _ref;
|
16
21
|
/**
|
17
22
|
* Calculate N-dimensional fourier transform
|
@@ -70,7 +75,32 @@ export var createFft = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
70
75
|
}
|
71
76
|
return _transpose(_1dFft(_transpose(arr), 1));
|
72
77
|
}
|
73
|
-
|
78
|
+
/**
|
79
|
+
* Perform an 1-dimensional non-power-of-2 Fourier transform using Chirp-Z Transform
|
80
|
+
*
|
81
|
+
* @param {Array} arr The array
|
82
|
+
* @return {Array} resulting array
|
83
|
+
*/
|
84
|
+
function _czt(arr) {
|
85
|
+
var n = arr.length;
|
86
|
+
var w = exp(divideScalar(multiplyScalar(-1, multiplyScalar(I, tau)), n));
|
87
|
+
var chirp = [];
|
88
|
+
for (var i = 1 - n; i < n; i++) {
|
89
|
+
chirp.push(pow(w, divideScalar(pow(i, 2), 2)));
|
90
|
+
}
|
91
|
+
var N2 = pow(2, ceil(log2(n + n - 1)));
|
92
|
+
var xp = [...new Array(n).fill(0).map((_, i) => multiplyScalar(arr[i], chirp[n - 1 + i])), ...new Array(N2 - n).fill(0)];
|
93
|
+
var ichirp = [...new Array(n + n - 1).fill(0).map((_, i) => divideScalar(1, chirp[i])), ...new Array(N2 - (n + n - 1)).fill(0)];
|
94
|
+
var fftXp = _fft(xp);
|
95
|
+
var fftIchirp = _fft(ichirp);
|
96
|
+
var fftProduct = new Array(N2).fill(0).map((_, i) => multiplyScalar(fftXp[i], fftIchirp[i]));
|
97
|
+
var ifftProduct = dotDivide(conj(_ndFft(conj(fftProduct))), N2);
|
98
|
+
var ret = [];
|
99
|
+
for (var _i = n - 1; _i < n + n - 1; _i++) {
|
100
|
+
ret.push(multiplyScalar(ifftProduct[_i], chirp[_i]));
|
101
|
+
}
|
102
|
+
return ret;
|
103
|
+
}
|
74
104
|
/**
|
75
105
|
* Perform an 1-dimensional Fourier transform
|
76
106
|
*
|
@@ -89,7 +119,10 @@ export var createFft = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
89
119
|
ret[k + len / 2] = addScalar(p, multiplyScalar(-1, q));
|
90
120
|
}
|
91
121
|
return ret;
|
122
|
+
} else {
|
123
|
+
// use chirp-z transform for non-power-of-2 FFT
|
124
|
+
return _czt(arr);
|
92
125
|
}
|
93
|
-
throw new Error('Can only calculate FFT of power-of-two size')
|
126
|
+
// throw new Error('Can only calculate FFT of power-of-two size')
|
94
127
|
}
|
95
128
|
});
|
@@ -21,7 +21,7 @@ export var createGetMatrixDataType = /* #__PURE__ */factory(name, dependencies,
|
|
21
21
|
*
|
22
22
|
* const x = [ [1, 2, 3], [4, 5, 6] ]
|
23
23
|
* const mixedX = [ [1, true], [2, 3] ]
|
24
|
-
* const fractionX = [ [math.fraction(1, 3)], [math.fraction(1, 3] ]
|
24
|
+
* const fractionX = [ [math.fraction(1, 3)], [math.fraction(1, 3)] ]
|
25
25
|
* const unitX = [ [math.unit('5cm')], [math.unit('5cm')] ]
|
26
26
|
* const bigNumberX = [ [math.bignumber(1)], [math.bignumber(0)] ]
|
27
27
|
* const sparse = math.sparse(x)
|
@@ -25,14 +25,19 @@ export var createPartitionSelect = /* #__PURE__ */factory(name, dependencies, _r
|
|
25
25
|
*
|
26
26
|
* Examples:
|
27
27
|
*
|
28
|
-
* math.partitionSelect([5, 10, 1], 2)
|
29
|
-
* math.partitionSelect(['C', 'B', 'A', 'D'], 1)
|
28
|
+
* math.partitionSelect([5, 10, 1], 2) // returns 10
|
29
|
+
* math.partitionSelect(['C', 'B', 'A', 'D'], 1, math.compareText) // returns 'B'
|
30
30
|
*
|
31
31
|
* function sortByLength (a, b) {
|
32
32
|
* return a.length - b.length
|
33
33
|
* }
|
34
34
|
* math.partitionSelect(['Langdon', 'Tom', 'Sara'], 2, sortByLength) // returns 'Langdon'
|
35
35
|
*
|
36
|
+
* // the input array is mutated
|
37
|
+
* arr = [5, 2, 1]
|
38
|
+
* math.partitionSelect(arr, 0) // returns 1, arr is now: [1, 2, 5]
|
39
|
+
* math.partitionSelect(arr, 1, 'desc') // returns 2, arr is now: [5, 2, 1]
|
40
|
+
*
|
36
41
|
* See also:
|
37
42
|
*
|
38
43
|
* sort
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import { factory } from '../../utils/factory.js';
|
2
|
+
import { isMatrix } from '../../utils/is.js';
|
2
3
|
import { clone } from '../../utils/object.js';
|
3
4
|
import { validateIndex } from '../../utils/array.js';
|
4
5
|
var name = 'row';
|
@@ -52,6 +53,7 @@ export var createRow = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
52
53
|
validateIndex(row, value.size()[0]);
|
53
54
|
var columnRange = range(0, value.size()[1]);
|
54
55
|
var index = new Index(row, columnRange);
|
55
|
-
|
56
|
+
var result = value.subset(index);
|
57
|
+
return isMatrix(result) ? result : matrix([[result]]);
|
56
58
|
}
|
57
59
|
});
|
@@ -27,7 +27,7 @@ export var createSubset = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
27
27
|
*
|
28
28
|
* // replace a subset
|
29
29
|
* const e = []
|
30
|
-
* const f = math.subset(e, math.index(0, [0, 2]), [5, 6]) // f = [[5, 6]]
|
30
|
+
* const f = math.subset(e, math.index(0, [0, 2]), [5, 6]) // f = [[5, 6]]
|
31
31
|
* const g = math.subset(f, math.index(1, 1), 7, 0) // g = [[5, 6], [0, 7]]
|
32
32
|
*
|
33
33
|
* // get submatrix using ranges
|
@@ -7,7 +7,7 @@ import { createMatAlgo05xSfSf } from '../../type/matrix/utils/matAlgo05xSfSf.js'
|
|
7
7
|
import { createMatrixAlgorithmSuite } from '../../type/matrix/utils/matrixAlgorithmSuite.js';
|
8
8
|
import { createCompareUnits } from './compareUnits.js';
|
9
9
|
var name = 'compare';
|
10
|
-
var dependencies = ['typed', 'config', 'matrix', 'equalScalar', 'BigNumber', 'Fraction', 'DenseMatrix'];
|
10
|
+
var dependencies = ['typed', 'config', 'matrix', 'equalScalar', 'BigNumber', 'Fraction', 'DenseMatrix', 'concat'];
|
11
11
|
export var createCompare = /* #__PURE__ */factory(name, dependencies, _ref => {
|
12
12
|
var {
|
13
13
|
typed,
|
@@ -16,7 +16,8 @@ export var createCompare = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
16
16
|
matrix,
|
17
17
|
BigNumber,
|
18
18
|
Fraction,
|
19
|
-
DenseMatrix
|
19
|
+
DenseMatrix,
|
20
|
+
concat
|
20
21
|
} = _ref;
|
21
22
|
var matAlgo03xDSf = createMatAlgo03xDSf({
|
22
23
|
typed
|
@@ -31,7 +32,8 @@ export var createCompare = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
31
32
|
});
|
32
33
|
var matrixAlgorithmSuite = createMatrixAlgorithmSuite({
|
33
34
|
typed,
|
34
|
-
matrix
|
35
|
+
matrix,
|
36
|
+
concat
|
35
37
|
});
|
36
38
|
var compareUnits = createCompareUnits({
|
37
39
|
typed
|
@@ -2,16 +2,18 @@ import { compareText as _compareText } from '../../utils/string.js';
|
|
2
2
|
import { factory } from '../../utils/factory.js';
|
3
3
|
import { createMatrixAlgorithmSuite } from '../../type/matrix/utils/matrixAlgorithmSuite.js';
|
4
4
|
var name = 'compareText';
|
5
|
-
var dependencies = ['typed', 'matrix'];
|
5
|
+
var dependencies = ['typed', 'matrix', 'concat'];
|
6
6
|
_compareText.signature = 'any, any';
|
7
7
|
export var createCompareText = /* #__PURE__ */factory(name, dependencies, _ref => {
|
8
8
|
var {
|
9
9
|
typed,
|
10
|
-
matrix
|
10
|
+
matrix,
|
11
|
+
concat
|
11
12
|
} = _ref;
|
12
13
|
var matrixAlgorithmSuite = createMatrixAlgorithmSuite({
|
13
14
|
typed,
|
14
|
-
matrix
|
15
|
+
matrix,
|
16
|
+
concat
|
15
17
|
});
|
16
18
|
|
17
19
|
/**
|
@@ -4,13 +4,14 @@ import { createMatAlgo07xSSf } from '../../type/matrix/utils/matAlgo07xSSf.js';
|
|
4
4
|
import { createMatAlgo12xSfs } from '../../type/matrix/utils/matAlgo12xSfs.js';
|
5
5
|
import { createMatrixAlgorithmSuite } from '../../type/matrix/utils/matrixAlgorithmSuite.js';
|
6
6
|
var name = 'equal';
|
7
|
-
var dependencies = ['typed', 'matrix', 'equalScalar', 'DenseMatrix'];
|
7
|
+
var dependencies = ['typed', 'matrix', 'equalScalar', 'DenseMatrix', 'concat'];
|
8
8
|
export var createEqual = /* #__PURE__ */factory(name, dependencies, _ref => {
|
9
9
|
var {
|
10
10
|
typed,
|
11
11
|
matrix,
|
12
12
|
equalScalar,
|
13
|
-
DenseMatrix
|
13
|
+
DenseMatrix,
|
14
|
+
concat
|
14
15
|
} = _ref;
|
15
16
|
var matAlgo03xDSf = createMatAlgo03xDSf({
|
16
17
|
typed
|
@@ -25,7 +26,8 @@ export var createEqual = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
25
26
|
});
|
26
27
|
var matrixAlgorithmSuite = createMatrixAlgorithmSuite({
|
27
28
|
typed,
|
28
|
-
matrix
|
29
|
+
matrix,
|
30
|
+
concat
|
29
31
|
});
|
30
32
|
|
31
33
|
/**
|
@@ -7,13 +7,14 @@ import { createMatAlgo12xSfs } from '../../type/matrix/utils/matAlgo12xSfs.js';
|
|
7
7
|
import { createMatrixAlgorithmSuite } from '../../type/matrix/utils/matrixAlgorithmSuite.js';
|
8
8
|
import { createCompareUnits } from './compareUnits.js';
|
9
9
|
var name = 'larger';
|
10
|
-
var dependencies = ['typed', 'config', 'matrix', 'DenseMatrix'];
|
10
|
+
var dependencies = ['typed', 'config', 'matrix', 'DenseMatrix', 'concat'];
|
11
11
|
export var createLarger = /* #__PURE__ */factory(name, dependencies, _ref => {
|
12
12
|
var {
|
13
13
|
typed,
|
14
14
|
config,
|
15
15
|
matrix,
|
16
|
-
DenseMatrix
|
16
|
+
DenseMatrix,
|
17
|
+
concat
|
17
18
|
} = _ref;
|
18
19
|
var matAlgo03xDSf = createMatAlgo03xDSf({
|
19
20
|
typed
|
@@ -28,7 +29,8 @@ export var createLarger = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
28
29
|
});
|
29
30
|
var matrixAlgorithmSuite = createMatrixAlgorithmSuite({
|
30
31
|
typed,
|
31
|
-
matrix
|
32
|
+
matrix,
|
33
|
+
concat
|
32
34
|
});
|
33
35
|
var compareUnits = createCompareUnits({
|
34
36
|
typed
|
@@ -7,13 +7,14 @@ import { createMatAlgo12xSfs } from '../../type/matrix/utils/matAlgo12xSfs.js';
|
|
7
7
|
import { createMatrixAlgorithmSuite } from '../../type/matrix/utils/matrixAlgorithmSuite.js';
|
8
8
|
import { createCompareUnits } from './compareUnits.js';
|
9
9
|
var name = 'largerEq';
|
10
|
-
var dependencies = ['typed', 'config', 'matrix', 'DenseMatrix'];
|
10
|
+
var dependencies = ['typed', 'config', 'matrix', 'DenseMatrix', 'concat'];
|
11
11
|
export var createLargerEq = /* #__PURE__ */factory(name, dependencies, _ref => {
|
12
12
|
var {
|
13
13
|
typed,
|
14
14
|
config,
|
15
15
|
matrix,
|
16
|
-
DenseMatrix
|
16
|
+
DenseMatrix,
|
17
|
+
concat
|
17
18
|
} = _ref;
|
18
19
|
var matAlgo03xDSf = createMatAlgo03xDSf({
|
19
20
|
typed
|
@@ -28,7 +29,8 @@ export var createLargerEq = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
28
29
|
});
|
29
30
|
var matrixAlgorithmSuite = createMatrixAlgorithmSuite({
|
30
31
|
typed,
|
31
|
-
matrix
|
32
|
+
matrix,
|
33
|
+
concat
|
32
34
|
});
|
33
35
|
var compareUnits = createCompareUnits({
|
34
36
|
typed
|
@@ -7,13 +7,14 @@ import { createMatAlgo12xSfs } from '../../type/matrix/utils/matAlgo12xSfs.js';
|
|
7
7
|
import { createMatrixAlgorithmSuite } from '../../type/matrix/utils/matrixAlgorithmSuite.js';
|
8
8
|
import { createCompareUnits } from './compareUnits.js';
|
9
9
|
var name = 'smaller';
|
10
|
-
var dependencies = ['typed', 'config', 'matrix', 'DenseMatrix'];
|
10
|
+
var dependencies = ['typed', 'config', 'matrix', 'DenseMatrix', 'concat'];
|
11
11
|
export var createSmaller = /* #__PURE__ */factory(name, dependencies, _ref => {
|
12
12
|
var {
|
13
13
|
typed,
|
14
14
|
config,
|
15
15
|
matrix,
|
16
|
-
DenseMatrix
|
16
|
+
DenseMatrix,
|
17
|
+
concat
|
17
18
|
} = _ref;
|
18
19
|
var matAlgo03xDSf = createMatAlgo03xDSf({
|
19
20
|
typed
|
@@ -28,7 +29,8 @@ export var createSmaller = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
28
29
|
});
|
29
30
|
var matrixAlgorithmSuite = createMatrixAlgorithmSuite({
|
30
31
|
typed,
|
31
|
-
matrix
|
32
|
+
matrix,
|
33
|
+
concat
|
32
34
|
});
|
33
35
|
var compareUnits = createCompareUnits({
|
34
36
|
typed
|
@@ -7,13 +7,14 @@ import { createMatAlgo12xSfs } from '../../type/matrix/utils/matAlgo12xSfs.js';
|
|
7
7
|
import { createMatrixAlgorithmSuite } from '../../type/matrix/utils/matrixAlgorithmSuite.js';
|
8
8
|
import { createCompareUnits } from './compareUnits.js';
|
9
9
|
var name = 'smallerEq';
|
10
|
-
var dependencies = ['typed', 'config', 'matrix', 'DenseMatrix'];
|
10
|
+
var dependencies = ['typed', 'config', 'matrix', 'DenseMatrix', 'concat'];
|
11
11
|
export var createSmallerEq = /* #__PURE__ */factory(name, dependencies, _ref => {
|
12
12
|
var {
|
13
13
|
typed,
|
14
14
|
config,
|
15
15
|
matrix,
|
16
|
-
DenseMatrix
|
16
|
+
DenseMatrix,
|
17
|
+
concat
|
17
18
|
} = _ref;
|
18
19
|
var matAlgo03xDSf = createMatAlgo03xDSf({
|
19
20
|
typed
|
@@ -28,7 +29,8 @@ export var createSmallerEq = /* #__PURE__ */factory(name, dependencies, _ref =>
|
|
28
29
|
});
|
29
30
|
var matrixAlgorithmSuite = createMatrixAlgorithmSuite({
|
30
31
|
typed,
|
31
|
-
matrix
|
32
|
+
matrix,
|
33
|
+
concat
|
32
34
|
});
|
33
35
|
var compareUnits = createCompareUnits({
|
34
36
|
typed
|
@@ -4,14 +4,15 @@ import { createMatAlgo07xSSf } from '../../type/matrix/utils/matAlgo07xSSf.js';
|
|
4
4
|
import { createMatAlgo12xSfs } from '../../type/matrix/utils/matAlgo12xSfs.js';
|
5
5
|
import { createMatrixAlgorithmSuite } from '../../type/matrix/utils/matrixAlgorithmSuite.js';
|
6
6
|
var name = 'unequal';
|
7
|
-
var dependencies = ['typed', 'config', 'equalScalar', 'matrix', 'DenseMatrix'];
|
7
|
+
var dependencies = ['typed', 'config', 'equalScalar', 'matrix', 'DenseMatrix', 'concat'];
|
8
8
|
export var createUnequal = /* #__PURE__ */factory(name, dependencies, _ref => {
|
9
9
|
var {
|
10
10
|
typed,
|
11
11
|
config,
|
12
12
|
equalScalar,
|
13
13
|
matrix,
|
14
|
-
DenseMatrix
|
14
|
+
DenseMatrix,
|
15
|
+
concat
|
15
16
|
} = _ref;
|
16
17
|
var matAlgo03xDSf = createMatAlgo03xDSf({
|
17
18
|
typed
|
@@ -26,7 +27,8 @@ export var createUnequal = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
26
27
|
});
|
27
28
|
var matrixAlgorithmSuite = createMatrixAlgorithmSuite({
|
28
29
|
typed,
|
29
|
-
matrix
|
30
|
+
matrix,
|
31
|
+
concat
|
30
32
|
});
|
31
33
|
|
32
34
|
/**
|
@@ -29,7 +29,7 @@ export var createSetIsSubset = /* #__PURE__ */factory(name, dependencies, _ref =
|
|
29
29
|
*
|
30
30
|
* @param {Array | Matrix} a1 A (multi)set
|
31
31
|
* @param {Array | Matrix} a2 A (multi)set
|
32
|
-
* @return {boolean}
|
32
|
+
* @return {boolean} Returns true when a1 is a subset of a2, returns false otherwise
|
33
33
|
*/
|
34
34
|
return typed(name, {
|
35
35
|
'Array | Matrix, Array | Matrix': function ArrayMatrixArrayMatrix(a1, a2) {
|
@@ -25,8 +25,9 @@ export var createSetSize = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
25
25
|
*
|
26
26
|
* setUnion, setIntersect, setDifference
|
27
27
|
*
|
28
|
-
* @param {Array | Matrix}
|
29
|
-
* @
|
28
|
+
* @param {Array | Matrix} a A multiset
|
29
|
+
* @param {boolean} [unique] If true, only the unique values are counted. False by default
|
30
|
+
* @return {number} The number of elements of the (multi)set
|
30
31
|
*/
|
31
32
|
return typed(name, {
|
32
33
|
'Array | Matrix': function ArrayMatrix(a) {
|
@@ -29,7 +29,7 @@ export var createMax = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
29
29
|
*
|
30
30
|
* // maximum over a specified dimension (zero-based)
|
31
31
|
* math.max([[2, 5], [4, 3], [1, 7]], 0) // returns [4, 7]
|
32
|
-
* math.max([[2, 5], [4, 3]
|
32
|
+
* math.max([[2, 5], [4, 3], [1, 7]], 1) // returns [5, 4, 7]
|
33
33
|
*
|
34
34
|
* math.max(2.7, 7.1, -4.5, 2.0, 4.1) // returns 7.1
|
35
35
|
* math.min(2.7, 7.1, -4.5, 2.0, 4.1) // returns -4.5
|
@@ -106,11 +106,12 @@ export var createQuantileSeq = /* #__PURE__ */factory(name, dependencies, _ref =
|
|
106
106
|
return probArr;
|
107
107
|
}
|
108
108
|
}
|
109
|
-
if (
|
109
|
+
if (isCollection(probOrN)) {
|
110
110
|
// quantileSeq([a, b, c, d, ...], [prob1, prob2, ...][,sorted])
|
111
|
-
|
111
|
+
var probOrNArr = probOrN.valueOf();
|
112
|
+
probArr = new Array(probOrNArr.length);
|
112
113
|
for (var _i2 = 0; _i2 < probArr.length; ++_i2) {
|
113
|
-
var currProb =
|
114
|
+
var currProb = probOrNArr[_i2];
|
114
115
|
if (isNumber(currProb)) {
|
115
116
|
if (currProb < 0 || currProb > 1) {
|
116
117
|
throw new Error('Probability must be between 0 and 1, inclusive');
|
@@ -6,14 +6,15 @@ import { createMatAlgo11xS0s } from '../../type/matrix/utils/matAlgo11xS0s.js';
|
|
6
6
|
import { createMatAlgo12xSfs } from '../../type/matrix/utils/matAlgo12xSfs.js';
|
7
7
|
import { createMatrixAlgorithmSuite } from '../../type/matrix/utils/matrixAlgorithmSuite.js';
|
8
8
|
var name = 'atan2';
|
9
|
-
var dependencies = ['typed', 'matrix', 'equalScalar', 'BigNumber', 'DenseMatrix'];
|
9
|
+
var dependencies = ['typed', 'matrix', 'equalScalar', 'BigNumber', 'DenseMatrix', 'concat'];
|
10
10
|
export var createAtan2 = /* #__PURE__ */factory(name, dependencies, _ref => {
|
11
11
|
var {
|
12
12
|
typed,
|
13
13
|
matrix,
|
14
14
|
equalScalar,
|
15
15
|
BigNumber,
|
16
|
-
DenseMatrix
|
16
|
+
DenseMatrix,
|
17
|
+
concat
|
17
18
|
} = _ref;
|
18
19
|
var matAlgo02xDS0 = createMatAlgo02xDS0({
|
19
20
|
typed,
|
@@ -36,7 +37,8 @@ export var createAtan2 = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
36
37
|
});
|
37
38
|
var matrixAlgorithmSuite = createMatrixAlgorithmSuite({
|
38
39
|
typed,
|
39
|
-
matrix
|
40
|
+
matrix,
|
41
|
+
concat
|
40
42
|
});
|
41
43
|
|
42
44
|
/**
|
@@ -1,15 +1,17 @@
|
|
1
1
|
import { factory } from '../../utils/factory.js';
|
2
2
|
import { createMatrixAlgorithmSuite } from '../../type/matrix/utils/matrixAlgorithmSuite.js';
|
3
3
|
var name = 'to';
|
4
|
-
var dependencies = ['typed', 'matrix'];
|
4
|
+
var dependencies = ['typed', 'matrix', 'concat'];
|
5
5
|
export var createTo = /* #__PURE__ */factory(name, dependencies, _ref => {
|
6
6
|
var {
|
7
7
|
typed,
|
8
|
-
matrix
|
8
|
+
matrix,
|
9
|
+
concat
|
9
10
|
} = _ref;
|
10
11
|
var matrixAlgorithmSuite = createMatrixAlgorithmSuite({
|
11
12
|
typed,
|
12
|
-
matrix
|
13
|
+
matrix,
|
14
|
+
concat
|
13
15
|
});
|
14
16
|
|
15
17
|
/**
|
@@ -23,9 +25,9 @@ export var createTo = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
23
25
|
*
|
24
26
|
* Examples:
|
25
27
|
*
|
26
|
-
* math.to(math.unit('2 inch'), 'cm')
|
27
|
-
* math.to(math.unit('2 inch'), math.unit(
|
28
|
-
* math.to(math.unit(16, 'bytes'), 'bits')
|
28
|
+
* math.to(math.unit('2 inch'), 'cm') // returns Unit 5.08 cm
|
29
|
+
* math.to(math.unit('2 inch'), math.unit('cm')) // returns Unit 5.08 cm
|
30
|
+
* math.to(math.unit(16, 'bytes'), 'bits') // returns Unit 128 bits
|
29
31
|
*
|
30
32
|
* See also:
|
31
33
|
*
|