mathjs 11.5.1 → 11.6.0
Sign up to get free protection for your applications and to get access to all the features.
- package/HISTORY.md +21 -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/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/gcd.js +5 -3
- 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/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 +5 -3
- 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/fft.js +43 -4
- package/lib/cjs/function/matrix/getMatrixDataType.js +1 -1
- 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/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/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/gcd.js +5 -3
- 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/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 +5 -3
- 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/fft.js +37 -4
- package/lib/esm/function/matrix/getMatrixDataType.js +1 -1
- 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/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 +11 -11
- package/types/index.d.ts +4 -4
@@ -9,7 +9,7 @@ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers
|
|
9
9
|
var _array = require("../../utils/array.js");
|
10
10
|
var _factory = require("../../utils/factory.js");
|
11
11
|
var name = 'fft';
|
12
|
-
var dependencies = ['typed', 'matrix', 'addScalar', 'multiplyScalar', 'divideScalar', 'exp', 'tau', 'i'];
|
12
|
+
var dependencies = ['typed', 'matrix', 'addScalar', 'multiplyScalar', 'divideScalar', 'exp', 'tau', 'i', 'dotDivide', 'conj', 'pow', 'ceil', 'log2'];
|
13
13
|
var createFft = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
|
14
14
|
var typed = _ref.typed,
|
15
15
|
matrix = _ref.matrix,
|
@@ -18,7 +18,12 @@ var createFft = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functio
|
|
18
18
|
divideScalar = _ref.divideScalar,
|
19
19
|
exp = _ref.exp,
|
20
20
|
tau = _ref.tau,
|
21
|
-
I = _ref.i
|
21
|
+
I = _ref.i,
|
22
|
+
dotDivide = _ref.dotDivide,
|
23
|
+
conj = _ref.conj,
|
24
|
+
pow = _ref.pow,
|
25
|
+
ceil = _ref.ceil,
|
26
|
+
log2 = _ref.log2;
|
22
27
|
/**
|
23
28
|
* Calculate N-dimensional fourier transform
|
24
29
|
*
|
@@ -84,7 +89,38 @@ var createFft = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functio
|
|
84
89
|
}
|
85
90
|
return _transpose(_1dFft(_transpose(arr), 1));
|
86
91
|
}
|
87
|
-
|
92
|
+
/**
|
93
|
+
* Perform an 1-dimensional non-power-of-2 Fourier transform using Chirp-Z Transform
|
94
|
+
*
|
95
|
+
* @param {Array} arr The array
|
96
|
+
* @return {Array} resulting array
|
97
|
+
*/
|
98
|
+
function _czt(arr) {
|
99
|
+
var n = arr.length;
|
100
|
+
var w = exp(divideScalar(multiplyScalar(-1, multiplyScalar(I, tau)), n));
|
101
|
+
var chirp = [];
|
102
|
+
for (var i = 1 - n; i < n; i++) {
|
103
|
+
chirp.push(pow(w, divideScalar(pow(i, 2), 2)));
|
104
|
+
}
|
105
|
+
var N2 = pow(2, ceil(log2(n + n - 1)));
|
106
|
+
var xp = [].concat((0, _toConsumableArray2["default"])(new Array(n).fill(0).map(function (_, i) {
|
107
|
+
return multiplyScalar(arr[i], chirp[n - 1 + i]);
|
108
|
+
})), (0, _toConsumableArray2["default"])(new Array(N2 - n).fill(0)));
|
109
|
+
var ichirp = [].concat((0, _toConsumableArray2["default"])(new Array(n + n - 1).fill(0).map(function (_, i) {
|
110
|
+
return divideScalar(1, chirp[i]);
|
111
|
+
})), (0, _toConsumableArray2["default"])(new Array(N2 - (n + n - 1)).fill(0)));
|
112
|
+
var fftXp = _fft(xp);
|
113
|
+
var fftIchirp = _fft(ichirp);
|
114
|
+
var fftProduct = new Array(N2).fill(0).map(function (_, i) {
|
115
|
+
return multiplyScalar(fftXp[i], fftIchirp[i]);
|
116
|
+
});
|
117
|
+
var ifftProduct = dotDivide(conj(_ndFft(conj(fftProduct))), N2);
|
118
|
+
var ret = [];
|
119
|
+
for (var _i = n - 1; _i < n + n - 1; _i++) {
|
120
|
+
ret.push(multiplyScalar(ifftProduct[_i], chirp[_i]));
|
121
|
+
}
|
122
|
+
return ret;
|
123
|
+
}
|
88
124
|
/**
|
89
125
|
* Perform an 1-dimensional Fourier transform
|
90
126
|
*
|
@@ -107,8 +143,11 @@ var createFft = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functio
|
|
107
143
|
ret[k + len / 2] = addScalar(p, multiplyScalar(-1, q));
|
108
144
|
}
|
109
145
|
return ret;
|
146
|
+
} else {
|
147
|
+
// use chirp-z transform for non-power-of-2 FFT
|
148
|
+
return _czt(arr);
|
110
149
|
}
|
111
|
-
throw new Error('Can only calculate FFT of power-of-two size')
|
150
|
+
// throw new Error('Can only calculate FFT of power-of-two size')
|
112
151
|
}
|
113
152
|
});
|
114
153
|
exports.createFft = createFft;
|
@@ -25,7 +25,7 @@ var createGetMatrixDataType = /* #__PURE__ */(0, _factory.factory)(name, depende
|
|
25
25
|
*
|
26
26
|
* const x = [ [1, 2, 3], [4, 5, 6] ]
|
27
27
|
* const mixedX = [ [1, true], [2, 3] ]
|
28
|
-
* const fractionX = [ [math.fraction(1, 3)], [math.fraction(1, 3] ]
|
28
|
+
* const fractionX = [ [math.fraction(1, 3)], [math.fraction(1, 3)] ]
|
29
29
|
* const unitX = [ [math.unit('5cm')], [math.unit('5cm')] ]
|
30
30
|
* const bigNumberX = [ [math.bignumber(1)], [math.bignumber(0)] ]
|
31
31
|
* const sparse = math.sparse(x)
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
});
|
6
6
|
exports.createRow = void 0;
|
7
7
|
var _factory = require("../../utils/factory.js");
|
8
|
+
var _is = require("../../utils/is.js");
|
8
9
|
var _object = require("../../utils/object.js");
|
9
10
|
var _array = require("../../utils/array.js");
|
10
11
|
var name = 'row';
|
@@ -56,7 +57,8 @@ var createRow = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functio
|
|
56
57
|
(0, _array.validateIndex)(row, value.size()[0]);
|
57
58
|
var columnRange = range(0, value.size()[1]);
|
58
59
|
var index = new Index(row, columnRange);
|
59
|
-
|
60
|
+
var result = value.subset(index);
|
61
|
+
return (0, _is.isMatrix)(result) ? result : matrix([[result]]);
|
60
62
|
}
|
61
63
|
});
|
62
64
|
exports.createRow = createRow;
|
@@ -31,7 +31,7 @@ var createSubset = /* #__PURE__ */(0, _factory.factory)(name, dependencies, func
|
|
31
31
|
*
|
32
32
|
* // replace a subset
|
33
33
|
* const e = []
|
34
|
-
* const f = math.subset(e, math.index(0, [0, 2]), [5, 6]) // f = [[5, 6]]
|
34
|
+
* const f = math.subset(e, math.index(0, [0, 2]), [5, 6]) // f = [[5, 6]]
|
35
35
|
* const g = math.subset(f, math.index(1, 1), 7, 0) // g = [[5, 6], [0, 7]]
|
36
36
|
*
|
37
37
|
* // get submatrix using ranges
|
@@ -13,7 +13,7 @@ var _matAlgo05xSfSf = require("../../type/matrix/utils/matAlgo05xSfSf.js");
|
|
13
13
|
var _matrixAlgorithmSuite = require("../../type/matrix/utils/matrixAlgorithmSuite.js");
|
14
14
|
var _compareUnits = require("./compareUnits.js");
|
15
15
|
var name = 'compare';
|
16
|
-
var dependencies = ['typed', 'config', 'matrix', 'equalScalar', 'BigNumber', 'Fraction', 'DenseMatrix'];
|
16
|
+
var dependencies = ['typed', 'config', 'matrix', 'equalScalar', 'BigNumber', 'Fraction', 'DenseMatrix', 'concat'];
|
17
17
|
var createCompare = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
|
18
18
|
var typed = _ref.typed,
|
19
19
|
config = _ref.config,
|
@@ -21,7 +21,8 @@ var createCompare = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fun
|
|
21
21
|
matrix = _ref.matrix,
|
22
22
|
BigNumber = _ref.BigNumber,
|
23
23
|
Fraction = _ref.Fraction,
|
24
|
-
DenseMatrix = _ref.DenseMatrix
|
24
|
+
DenseMatrix = _ref.DenseMatrix,
|
25
|
+
concat = _ref.concat;
|
25
26
|
var matAlgo03xDSf = (0, _matAlgo03xDSf.createMatAlgo03xDSf)({
|
26
27
|
typed: typed
|
27
28
|
});
|
@@ -35,7 +36,8 @@ var createCompare = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fun
|
|
35
36
|
});
|
36
37
|
var matrixAlgorithmSuite = (0, _matrixAlgorithmSuite.createMatrixAlgorithmSuite)({
|
37
38
|
typed: typed,
|
38
|
-
matrix: matrix
|
39
|
+
matrix: matrix,
|
40
|
+
concat: concat
|
39
41
|
});
|
40
42
|
var compareUnits = (0, _compareUnits.createCompareUnits)({
|
41
43
|
typed: typed
|
@@ -8,14 +8,16 @@ var _string = require("../../utils/string.js");
|
|
8
8
|
var _factory = require("../../utils/factory.js");
|
9
9
|
var _matrixAlgorithmSuite = require("../../type/matrix/utils/matrixAlgorithmSuite.js");
|
10
10
|
var name = 'compareText';
|
11
|
-
var dependencies = ['typed', 'matrix'];
|
11
|
+
var dependencies = ['typed', 'matrix', 'concat'];
|
12
12
|
_string.compareText.signature = 'any, any';
|
13
13
|
var createCompareText = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
|
14
14
|
var typed = _ref.typed,
|
15
|
-
matrix = _ref.matrix
|
15
|
+
matrix = _ref.matrix,
|
16
|
+
concat = _ref.concat;
|
16
17
|
var matrixAlgorithmSuite = (0, _matrixAlgorithmSuite.createMatrixAlgorithmSuite)({
|
17
18
|
typed: typed,
|
18
|
-
matrix: matrix
|
19
|
+
matrix: matrix,
|
20
|
+
concat: concat
|
19
21
|
});
|
20
22
|
|
21
23
|
/**
|
@@ -10,12 +10,13 @@ var _matAlgo07xSSf = require("../../type/matrix/utils/matAlgo07xSSf.js");
|
|
10
10
|
var _matAlgo12xSfs = require("../../type/matrix/utils/matAlgo12xSfs.js");
|
11
11
|
var _matrixAlgorithmSuite = require("../../type/matrix/utils/matrixAlgorithmSuite.js");
|
12
12
|
var name = 'equal';
|
13
|
-
var dependencies = ['typed', 'matrix', 'equalScalar', 'DenseMatrix'];
|
13
|
+
var dependencies = ['typed', 'matrix', 'equalScalar', 'DenseMatrix', 'concat'];
|
14
14
|
var createEqual = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
|
15
15
|
var typed = _ref.typed,
|
16
16
|
matrix = _ref.matrix,
|
17
17
|
equalScalar = _ref.equalScalar,
|
18
|
-
DenseMatrix = _ref.DenseMatrix
|
18
|
+
DenseMatrix = _ref.DenseMatrix,
|
19
|
+
concat = _ref.concat;
|
19
20
|
var matAlgo03xDSf = (0, _matAlgo03xDSf.createMatAlgo03xDSf)({
|
20
21
|
typed: typed
|
21
22
|
});
|
@@ -29,7 +30,8 @@ var createEqual = /* #__PURE__ */(0, _factory.factory)(name, dependencies, funct
|
|
29
30
|
});
|
30
31
|
var matrixAlgorithmSuite = (0, _matrixAlgorithmSuite.createMatrixAlgorithmSuite)({
|
31
32
|
typed: typed,
|
32
|
-
matrix: matrix
|
33
|
+
matrix: matrix,
|
34
|
+
concat: concat
|
33
35
|
});
|
34
36
|
|
35
37
|
/**
|
@@ -13,12 +13,13 @@ var _matAlgo12xSfs = require("../../type/matrix/utils/matAlgo12xSfs.js");
|
|
13
13
|
var _matrixAlgorithmSuite = require("../../type/matrix/utils/matrixAlgorithmSuite.js");
|
14
14
|
var _compareUnits = require("./compareUnits.js");
|
15
15
|
var name = 'larger';
|
16
|
-
var dependencies = ['typed', 'config', 'matrix', 'DenseMatrix'];
|
16
|
+
var dependencies = ['typed', 'config', 'matrix', 'DenseMatrix', 'concat'];
|
17
17
|
var createLarger = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
|
18
18
|
var typed = _ref.typed,
|
19
19
|
config = _ref.config,
|
20
20
|
matrix = _ref.matrix,
|
21
|
-
DenseMatrix = _ref.DenseMatrix
|
21
|
+
DenseMatrix = _ref.DenseMatrix,
|
22
|
+
concat = _ref.concat;
|
22
23
|
var matAlgo03xDSf = (0, _matAlgo03xDSf.createMatAlgo03xDSf)({
|
23
24
|
typed: typed
|
24
25
|
});
|
@@ -32,7 +33,8 @@ var createLarger = /* #__PURE__ */(0, _factory.factory)(name, dependencies, func
|
|
32
33
|
});
|
33
34
|
var matrixAlgorithmSuite = (0, _matrixAlgorithmSuite.createMatrixAlgorithmSuite)({
|
34
35
|
typed: typed,
|
35
|
-
matrix: matrix
|
36
|
+
matrix: matrix,
|
37
|
+
concat: concat
|
36
38
|
});
|
37
39
|
var compareUnits = (0, _compareUnits.createCompareUnits)({
|
38
40
|
typed: typed
|
@@ -13,12 +13,13 @@ var _matAlgo12xSfs = require("../../type/matrix/utils/matAlgo12xSfs.js");
|
|
13
13
|
var _matrixAlgorithmSuite = require("../../type/matrix/utils/matrixAlgorithmSuite.js");
|
14
14
|
var _compareUnits = require("./compareUnits.js");
|
15
15
|
var name = 'largerEq';
|
16
|
-
var dependencies = ['typed', 'config', 'matrix', 'DenseMatrix'];
|
16
|
+
var dependencies = ['typed', 'config', 'matrix', 'DenseMatrix', 'concat'];
|
17
17
|
var createLargerEq = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
|
18
18
|
var typed = _ref.typed,
|
19
19
|
config = _ref.config,
|
20
20
|
matrix = _ref.matrix,
|
21
|
-
DenseMatrix = _ref.DenseMatrix
|
21
|
+
DenseMatrix = _ref.DenseMatrix,
|
22
|
+
concat = _ref.concat;
|
22
23
|
var matAlgo03xDSf = (0, _matAlgo03xDSf.createMatAlgo03xDSf)({
|
23
24
|
typed: typed
|
24
25
|
});
|
@@ -32,7 +33,8 @@ var createLargerEq = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fu
|
|
32
33
|
});
|
33
34
|
var matrixAlgorithmSuite = (0, _matrixAlgorithmSuite.createMatrixAlgorithmSuite)({
|
34
35
|
typed: typed,
|
35
|
-
matrix: matrix
|
36
|
+
matrix: matrix,
|
37
|
+
concat: concat
|
36
38
|
});
|
37
39
|
var compareUnits = (0, _compareUnits.createCompareUnits)({
|
38
40
|
typed: typed
|
@@ -13,12 +13,13 @@ var _matAlgo12xSfs = require("../../type/matrix/utils/matAlgo12xSfs.js");
|
|
13
13
|
var _matrixAlgorithmSuite = require("../../type/matrix/utils/matrixAlgorithmSuite.js");
|
14
14
|
var _compareUnits = require("./compareUnits.js");
|
15
15
|
var name = 'smaller';
|
16
|
-
var dependencies = ['typed', 'config', 'matrix', 'DenseMatrix'];
|
16
|
+
var dependencies = ['typed', 'config', 'matrix', 'DenseMatrix', 'concat'];
|
17
17
|
var createSmaller = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
|
18
18
|
var typed = _ref.typed,
|
19
19
|
config = _ref.config,
|
20
20
|
matrix = _ref.matrix,
|
21
|
-
DenseMatrix = _ref.DenseMatrix
|
21
|
+
DenseMatrix = _ref.DenseMatrix,
|
22
|
+
concat = _ref.concat;
|
22
23
|
var matAlgo03xDSf = (0, _matAlgo03xDSf.createMatAlgo03xDSf)({
|
23
24
|
typed: typed
|
24
25
|
});
|
@@ -32,7 +33,8 @@ var createSmaller = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fun
|
|
32
33
|
});
|
33
34
|
var matrixAlgorithmSuite = (0, _matrixAlgorithmSuite.createMatrixAlgorithmSuite)({
|
34
35
|
typed: typed,
|
35
|
-
matrix: matrix
|
36
|
+
matrix: matrix,
|
37
|
+
concat: concat
|
36
38
|
});
|
37
39
|
var compareUnits = (0, _compareUnits.createCompareUnits)({
|
38
40
|
typed: typed
|
@@ -13,12 +13,13 @@ var _matAlgo12xSfs = require("../../type/matrix/utils/matAlgo12xSfs.js");
|
|
13
13
|
var _matrixAlgorithmSuite = require("../../type/matrix/utils/matrixAlgorithmSuite.js");
|
14
14
|
var _compareUnits = require("./compareUnits.js");
|
15
15
|
var name = 'smallerEq';
|
16
|
-
var dependencies = ['typed', 'config', 'matrix', 'DenseMatrix'];
|
16
|
+
var dependencies = ['typed', 'config', 'matrix', 'DenseMatrix', 'concat'];
|
17
17
|
var createSmallerEq = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
|
18
18
|
var typed = _ref.typed,
|
19
19
|
config = _ref.config,
|
20
20
|
matrix = _ref.matrix,
|
21
|
-
DenseMatrix = _ref.DenseMatrix
|
21
|
+
DenseMatrix = _ref.DenseMatrix,
|
22
|
+
concat = _ref.concat;
|
22
23
|
var matAlgo03xDSf = (0, _matAlgo03xDSf.createMatAlgo03xDSf)({
|
23
24
|
typed: typed
|
24
25
|
});
|
@@ -32,7 +33,8 @@ var createSmallerEq = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
|
|
32
33
|
});
|
33
34
|
var matrixAlgorithmSuite = (0, _matrixAlgorithmSuite.createMatrixAlgorithmSuite)({
|
34
35
|
typed: typed,
|
35
|
-
matrix: matrix
|
36
|
+
matrix: matrix,
|
37
|
+
concat: concat
|
36
38
|
});
|
37
39
|
var compareUnits = (0, _compareUnits.createCompareUnits)({
|
38
40
|
typed: typed
|
@@ -10,13 +10,14 @@ var _matAlgo07xSSf = require("../../type/matrix/utils/matAlgo07xSSf.js");
|
|
10
10
|
var _matAlgo12xSfs = require("../../type/matrix/utils/matAlgo12xSfs.js");
|
11
11
|
var _matrixAlgorithmSuite = require("../../type/matrix/utils/matrixAlgorithmSuite.js");
|
12
12
|
var name = 'unequal';
|
13
|
-
var dependencies = ['typed', 'config', 'equalScalar', 'matrix', 'DenseMatrix'];
|
13
|
+
var dependencies = ['typed', 'config', 'equalScalar', 'matrix', 'DenseMatrix', 'concat'];
|
14
14
|
var createUnequal = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
|
15
15
|
var typed = _ref.typed,
|
16
16
|
config = _ref.config,
|
17
17
|
equalScalar = _ref.equalScalar,
|
18
18
|
matrix = _ref.matrix,
|
19
|
-
DenseMatrix = _ref.DenseMatrix
|
19
|
+
DenseMatrix = _ref.DenseMatrix,
|
20
|
+
concat = _ref.concat;
|
20
21
|
var matAlgo03xDSf = (0, _matAlgo03xDSf.createMatAlgo03xDSf)({
|
21
22
|
typed: typed
|
22
23
|
});
|
@@ -30,7 +31,8 @@ var createUnequal = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fun
|
|
30
31
|
});
|
31
32
|
var matrixAlgorithmSuite = (0, _matrixAlgorithmSuite.createMatrixAlgorithmSuite)({
|
32
33
|
typed: typed,
|
33
|
-
matrix: matrix
|
34
|
+
matrix: matrix,
|
35
|
+
concat: concat
|
34
36
|
});
|
35
37
|
|
36
38
|
/**
|
@@ -33,7 +33,7 @@ var createMax = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functio
|
|
33
33
|
*
|
34
34
|
* // maximum over a specified dimension (zero-based)
|
35
35
|
* math.max([[2, 5], [4, 3], [1, 7]], 0) // returns [4, 7]
|
36
|
-
* math.max([[2, 5], [4, 3]
|
36
|
+
* math.max([[2, 5], [4, 3], [1, 7]], 1) // returns [5, 4, 7]
|
37
37
|
*
|
38
38
|
* math.max(2.7, 7.1, -4.5, 2.0, 4.1) // returns 7.1
|
39
39
|
* math.min(2.7, 7.1, -4.5, 2.0, 4.1) // returns -4.5
|
@@ -110,11 +110,12 @@ var createQuantileSeq = /* #__PURE__ */(0, _factory.factory)(name, dependencies,
|
|
110
110
|
return probArr;
|
111
111
|
}
|
112
112
|
}
|
113
|
-
if (
|
113
|
+
if ((0, _is.isCollection)(probOrN)) {
|
114
114
|
// quantileSeq([a, b, c, d, ...], [prob1, prob2, ...][,sorted])
|
115
|
-
|
115
|
+
var probOrNArr = probOrN.valueOf();
|
116
|
+
probArr = new Array(probOrNArr.length);
|
116
117
|
for (var _i2 = 0; _i2 < probArr.length; ++_i2) {
|
117
|
-
var currProb =
|
118
|
+
var currProb = probOrNArr[_i2];
|
118
119
|
if ((0, _is.isNumber)(currProb)) {
|
119
120
|
if (currProb < 0 || currProb > 1) {
|
120
121
|
throw new Error('Probability must be between 0 and 1, inclusive');
|
@@ -12,13 +12,14 @@ var _matAlgo11xS0s = require("../../type/matrix/utils/matAlgo11xS0s.js");
|
|
12
12
|
var _matAlgo12xSfs = require("../../type/matrix/utils/matAlgo12xSfs.js");
|
13
13
|
var _matrixAlgorithmSuite = require("../../type/matrix/utils/matrixAlgorithmSuite.js");
|
14
14
|
var name = 'atan2';
|
15
|
-
var dependencies = ['typed', 'matrix', 'equalScalar', 'BigNumber', 'DenseMatrix'];
|
15
|
+
var dependencies = ['typed', 'matrix', 'equalScalar', 'BigNumber', 'DenseMatrix', 'concat'];
|
16
16
|
var createAtan2 = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
|
17
17
|
var typed = _ref.typed,
|
18
18
|
matrix = _ref.matrix,
|
19
19
|
equalScalar = _ref.equalScalar,
|
20
20
|
BigNumber = _ref.BigNumber,
|
21
|
-
DenseMatrix = _ref.DenseMatrix
|
21
|
+
DenseMatrix = _ref.DenseMatrix,
|
22
|
+
concat = _ref.concat;
|
22
23
|
var matAlgo02xDS0 = (0, _matAlgo02xDS.createMatAlgo02xDS0)({
|
23
24
|
typed: typed,
|
24
25
|
equalScalar: equalScalar
|
@@ -40,7 +41,8 @@ var createAtan2 = /* #__PURE__ */(0, _factory.factory)(name, dependencies, funct
|
|
40
41
|
});
|
41
42
|
var matrixAlgorithmSuite = (0, _matrixAlgorithmSuite.createMatrixAlgorithmSuite)({
|
42
43
|
typed: typed,
|
43
|
-
matrix: matrix
|
44
|
+
matrix: matrix,
|
45
|
+
concat: concat
|
44
46
|
});
|
45
47
|
|
46
48
|
/**
|
@@ -7,13 +7,15 @@ exports.createTo = void 0;
|
|
7
7
|
var _factory = require("../../utils/factory.js");
|
8
8
|
var _matrixAlgorithmSuite = require("../../type/matrix/utils/matrixAlgorithmSuite.js");
|
9
9
|
var name = 'to';
|
10
|
-
var dependencies = ['typed', 'matrix'];
|
10
|
+
var dependencies = ['typed', 'matrix', 'concat'];
|
11
11
|
var createTo = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
|
12
12
|
var typed = _ref.typed,
|
13
|
-
matrix = _ref.matrix
|
13
|
+
matrix = _ref.matrix,
|
14
|
+
concat = _ref.concat;
|
14
15
|
var matrixAlgorithmSuite = (0, _matrixAlgorithmSuite.createMatrixAlgorithmSuite)({
|
15
16
|
typed: typed,
|
16
|
-
matrix: matrix
|
17
|
+
matrix: matrix,
|
18
|
+
concat: concat
|
17
19
|
});
|
18
20
|
|
19
21
|
/**
|
@@ -27,9 +29,9 @@ var createTo = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function
|
|
27
29
|
*
|
28
30
|
* Examples:
|
29
31
|
*
|
30
|
-
* math.to(math.unit('2 inch'), 'cm')
|
31
|
-
* math.to(math.unit('2 inch'), math.unit(
|
32
|
-
* math.to(math.unit(16, 'bytes'), 'bits')
|
32
|
+
* math.to(math.unit('2 inch'), 'cm') // returns Unit 5.08 cm
|
33
|
+
* math.to(math.unit('2 inch'), math.unit('cm')) // returns Unit 5.08 cm
|
34
|
+
* math.to(math.unit(16, 'bytes'), 'bits') // returns Unit 128 bits
|
33
35
|
*
|
34
36
|
* See also:
|
35
37
|
*
|
package/lib/cjs/header.js
CHANGED
@@ -6,8 +6,8 @@
|
|
6
6
|
* It features real and complex numbers, units, matrices, a large set of
|
7
7
|
* mathematical functions, and a flexible expression parser.
|
8
8
|
*
|
9
|
-
* @version 11.
|
10
|
-
* @date 2023-
|
9
|
+
* @version 11.6.0
|
10
|
+
* @date 2023-02-24
|
11
11
|
*
|
12
12
|
* @license
|
13
13
|
* Copyright (C) 2013-2023 Jos de Jong <wjosdejong@gmail.com>
|
@@ -0,0 +1,84 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
5
|
+
value: true
|
6
|
+
});
|
7
|
+
exports.createBroadcast = void 0;
|
8
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
9
|
+
var _factory = require("../../../utils/factory.js");
|
10
|
+
var name = 'broadcast';
|
11
|
+
var dependancies = ['concat'];
|
12
|
+
var createBroadcast = /* #__PURE__ */(0, _factory.factory)(name, dependancies, function (_ref) {
|
13
|
+
var concat = _ref.concat;
|
14
|
+
/**
|
15
|
+
* Broadcasts two matrices, and return both in an array
|
16
|
+
* It checks if it's possible with broadcasting rules
|
17
|
+
*
|
18
|
+
* @param {Matrix} A First Matrix
|
19
|
+
* @param {Matrix} B Second Matrix
|
20
|
+
*
|
21
|
+
* @return {Matrix[]} [ broadcastedA, broadcastedB ]
|
22
|
+
*/
|
23
|
+
return function (A, B) {
|
24
|
+
var N = Math.max(A._size.length, B._size.length); // max number of dims
|
25
|
+
if (A._size.length === B._size.length) {
|
26
|
+
if (A._size.every(function (dim, i) {
|
27
|
+
return dim === B._size[i];
|
28
|
+
})) {
|
29
|
+
// If matrices have the same size return them
|
30
|
+
return [A, B];
|
31
|
+
}
|
32
|
+
}
|
33
|
+
var sizeA = _padLeft(A._size, N, 0); // pad to the left to align dimensions to the right
|
34
|
+
var sizeB = _padLeft(B._size, N, 0); // pad to the left to align dimensions to the right
|
35
|
+
|
36
|
+
// calculate the max dimensions
|
37
|
+
var sizeMax = [];
|
38
|
+
for (var dim = 0; dim < N; dim++) {
|
39
|
+
sizeMax[dim] = Math.max(sizeA[dim], sizeB[dim]);
|
40
|
+
}
|
41
|
+
|
42
|
+
// check if the broadcasting rules applyes for both matrices
|
43
|
+
for (var _dim = 0; _dim < N; _dim++) {
|
44
|
+
_checkRules(sizeA, sizeMax, _dim);
|
45
|
+
_checkRules(sizeB, sizeMax, _dim);
|
46
|
+
}
|
47
|
+
|
48
|
+
// reshape A or B if needed to make them ready for concat
|
49
|
+
var AA = A.clone();
|
50
|
+
var BB = B.clone();
|
51
|
+
if (AA._size.length < N) {
|
52
|
+
AA.reshape(_padLeft(AA._size, N, 1));
|
53
|
+
} else if (BB._size.length < N) {
|
54
|
+
BB.reshape(_padLeft(BB._size, N, 1));
|
55
|
+
}
|
56
|
+
|
57
|
+
// stretches the matrices on each dimension to make them the same size
|
58
|
+
for (var _dim2 = 0; _dim2 < N; _dim2++) {
|
59
|
+
if (AA._size[_dim2] < sizeMax[_dim2]) {
|
60
|
+
AA = _stretch(AA, sizeMax[_dim2], _dim2);
|
61
|
+
}
|
62
|
+
if (BB._size[_dim2] < sizeMax[_dim2]) {
|
63
|
+
BB = _stretch(BB, sizeMax[_dim2], _dim2);
|
64
|
+
}
|
65
|
+
}
|
66
|
+
|
67
|
+
// return the array with the two broadcasted matrices
|
68
|
+
return [AA, BB];
|
69
|
+
};
|
70
|
+
function _padLeft(shape, N, filler) {
|
71
|
+
// pads an array of dimensions with numbers to the left, unitl the number of dimensions is N
|
72
|
+
return [].concat((0, _toConsumableArray2["default"])(Array(N - shape.length).fill(filler)), (0, _toConsumableArray2["default"])(shape));
|
73
|
+
}
|
74
|
+
function _stretch(arrayToStretch, sizeToStretch, dimToStretch) {
|
75
|
+
// stretches a matrix up to a certain size in a certain dimension
|
76
|
+
return concat.apply(void 0, (0, _toConsumableArray2["default"])(Array(sizeToStretch).fill(arrayToStretch)).concat([dimToStretch]));
|
77
|
+
}
|
78
|
+
function _checkRules(shape, sizeMax, dim) {
|
79
|
+
if (shape[dim] < sizeMax[dim] & shape[dim] > 1) {
|
80
|
+
throw new Error("shape missmatch: missmatch is found in arg with shape (".concat(shape, ") not possible to broadcast dimension ").concat(dim, " with size ").concat(shape[dim], " to size ").concat(sizeMax[dim]));
|
81
|
+
}
|
82
|
+
}
|
83
|
+
});
|
84
|
+
exports.createBroadcast = createBroadcast;
|