mathjs 11.5.1 → 11.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/HISTORY.md +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;
|