mathjs 13.0.2 → 13.1.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 +26 -1
- 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/core/create.js +12 -9
- package/lib/cjs/core/function/import.js +1 -1
- package/lib/cjs/core/function/typed.js +3 -4
- package/lib/cjs/entry/dependenciesAny/dependenciesFlatten.generated.js +0 -2
- package/lib/cjs/entry/dependenciesAny/dependenciesSqueeze.generated.js +0 -2
- package/lib/cjs/entry/impureFunctionsAny.generated.js +2 -2
- package/lib/cjs/entry/pureFunctionsAny.generated.js +6 -8
- package/lib/cjs/entry/typeChecks.js +18 -0
- package/lib/cjs/expression/embeddedDocs/embeddedDocs.js +2 -2
- package/lib/cjs/expression/embeddedDocs/function/arithmetic/hypot.js +1 -1
- package/lib/cjs/expression/embeddedDocs/function/matrix/diff.js +1 -1
- package/lib/cjs/expression/embeddedDocs/function/matrix/fft.js +1 -1
- package/lib/cjs/expression/embeddedDocs/function/matrix/ifft.js +1 -1
- package/lib/cjs/expression/embeddedDocs/function/matrix/kron.js +1 -1
- package/lib/cjs/expression/embeddedDocs/function/matrix/map.js +3 -3
- package/lib/cjs/expression/embeddedDocs/function/special/zeta.js +1 -1
- package/lib/cjs/expression/embeddedDocs/function/statistics/quantileSeq.js +1 -1
- package/lib/cjs/expression/embeddedDocs/function/trigonometry/acoth.js +1 -1
- package/lib/cjs/expression/embeddedDocs/function/trigonometry/acsch.js +1 -1
- package/lib/cjs/expression/embeddedDocs/function/utils/clone.js +1 -1
- package/lib/cjs/expression/function/evaluate.js +5 -0
- package/lib/cjs/expression/node/FunctionNode.js +1 -1
- package/lib/cjs/expression/transform/filter.transform.js +2 -2
- package/lib/cjs/expression/transform/map.transform.js +104 -37
- package/lib/cjs/expression/transform/utils/dimToZeroBase.js +23 -0
- package/lib/cjs/expression/transform/utils/lastDimToZeroBase.js +3 -4
- package/lib/cjs/function/arithmetic/hypot.js +3 -3
- package/lib/cjs/function/matrix/apply.js +1 -1
- package/lib/cjs/function/matrix/fft.js +3 -3
- package/lib/cjs/function/matrix/filter.js +2 -2
- package/lib/cjs/function/matrix/flatten.js +5 -6
- package/lib/cjs/function/matrix/ifft.js +2 -2
- package/lib/cjs/function/matrix/kron.js +4 -4
- package/lib/cjs/function/matrix/map.js +109 -18
- package/lib/cjs/function/matrix/size.js +7 -7
- package/lib/cjs/function/matrix/squeeze.js +3 -4
- package/lib/cjs/function/probability/random.js +1 -1
- package/lib/cjs/function/probability/randomInt.js +1 -1
- package/lib/cjs/function/statistics/cumsum.js +2 -2
- package/lib/cjs/function/trigonometry/acoth.js +2 -2
- package/lib/cjs/function/trigonometry/acsch.js +2 -2
- package/lib/cjs/header.js +2 -2
- package/lib/cjs/type/matrix/DenseMatrix.js +3 -28
- package/lib/cjs/type/matrix/SparseMatrix.js +5 -8
- package/lib/cjs/type/unit/Unit.js +57 -114
- package/lib/cjs/utils/array.js +27 -0
- package/lib/cjs/utils/collection.js +1 -1
- package/lib/cjs/utils/function.js +0 -14
- package/lib/cjs/utils/is.js +27 -0
- package/lib/cjs/utils/map.js +2 -20
- package/lib/cjs/version.js +1 -1
- package/lib/esm/core/create.js +9 -6
- package/lib/esm/core/function/import.js +1 -1
- package/lib/esm/core/function/typed.js +2 -3
- package/lib/esm/entry/dependenciesAny/dependenciesFlatten.generated.js +0 -2
- package/lib/esm/entry/dependenciesAny/dependenciesSqueeze.generated.js +0 -2
- package/lib/esm/entry/impureFunctionsAny.generated.js +3 -3
- package/lib/esm/entry/pureFunctionsAny.generated.js +7 -9
- package/lib/esm/entry/typeChecks.js +1 -1
- package/lib/esm/expression/embeddedDocs/embeddedDocs.js +2 -2
- package/lib/esm/expression/embeddedDocs/function/arithmetic/hypot.js +1 -1
- package/lib/esm/expression/embeddedDocs/function/matrix/diff.js +1 -1
- package/lib/esm/expression/embeddedDocs/function/matrix/fft.js +1 -1
- package/lib/esm/expression/embeddedDocs/function/matrix/ifft.js +1 -1
- package/lib/esm/expression/embeddedDocs/function/matrix/kron.js +1 -1
- package/lib/esm/expression/embeddedDocs/function/matrix/map.js +3 -3
- package/lib/esm/expression/embeddedDocs/function/special/zeta.js +1 -1
- package/lib/esm/expression/embeddedDocs/function/statistics/quantileSeq.js +1 -1
- package/lib/esm/expression/embeddedDocs/function/trigonometry/acoth.js +1 -1
- package/lib/esm/expression/embeddedDocs/function/trigonometry/acsch.js +1 -1
- package/lib/esm/expression/embeddedDocs/function/utils/clone.js +1 -1
- package/lib/esm/expression/function/compile.js +1 -1
- package/lib/esm/expression/function/evaluate.js +8 -3
- package/lib/esm/expression/node/FunctionNode.js +1 -1
- package/lib/esm/expression/parse.js +2 -2
- package/lib/esm/expression/transform/filter.transform.js +4 -4
- package/lib/esm/expression/transform/forEach.transform.js +4 -4
- package/lib/esm/expression/transform/map.transform.js +104 -37
- package/lib/esm/expression/transform/print.transform.js +2 -2
- package/lib/esm/expression/transform/utils/dimToZeroBase.js +16 -0
- package/lib/esm/expression/transform/utils/lastDimToZeroBase.js +4 -6
- package/lib/esm/function/algebra/decomposition/slu.js +1 -1
- package/lib/esm/function/algebra/derivative.js +15 -15
- package/lib/esm/function/algebra/lyap.js +4 -4
- package/lib/esm/function/algebra/simplify/util.js +3 -3
- package/lib/esm/function/algebra/simplifyConstant.js +9 -9
- package/lib/esm/function/algebra/solver/lsolve.js +3 -3
- package/lib/esm/function/algebra/solver/lsolveAll.js +3 -3
- package/lib/esm/function/algebra/solver/lusolve.js +5 -5
- package/lib/esm/function/algebra/solver/usolve.js +3 -3
- package/lib/esm/function/algebra/solver/usolveAll.js +3 -3
- package/lib/esm/function/algebra/sylvester.js +7 -7
- package/lib/esm/function/arithmetic/addScalar.js +4 -4
- package/lib/esm/function/arithmetic/ceil.js +6 -6
- package/lib/esm/function/arithmetic/divide.js +5 -5
- package/lib/esm/function/arithmetic/divideScalar.js +5 -5
- package/lib/esm/function/arithmetic/fix.js +5 -5
- package/lib/esm/function/arithmetic/floor.js +6 -6
- package/lib/esm/function/arithmetic/hypot.js +3 -3
- package/lib/esm/function/arithmetic/mod.js +3 -3
- package/lib/esm/function/arithmetic/multiply.js +7 -7
- package/lib/esm/function/arithmetic/multiplyScalar.js +4 -4
- package/lib/esm/function/arithmetic/norm.js +2 -2
- package/lib/esm/function/arithmetic/pow.js +6 -6
- package/lib/esm/function/arithmetic/round.js +7 -7
- package/lib/esm/function/arithmetic/subtractScalar.js +4 -4
- package/lib/esm/function/arithmetic/xgcd.js +1 -1
- package/lib/esm/function/combinatorics/bellNumbers.js +1 -1
- package/lib/esm/function/combinatorics/catalan.js +1 -1
- package/lib/esm/function/combinatorics/composition.js +1 -1
- package/lib/esm/function/combinatorics/stirlingS2.js +1 -1
- package/lib/esm/function/geometry/distance.js +4 -4
- package/lib/esm/function/geometry/intersect.js +2 -2
- package/lib/esm/function/logical/and.js +2 -2
- package/lib/esm/function/logical/or.js +2 -2
- package/lib/esm/function/logical/xor.js +2 -2
- package/lib/esm/function/matrix/apply.js +2 -2
- package/lib/esm/function/matrix/column.js +1 -1
- package/lib/esm/function/matrix/concat.js +1 -1
- package/lib/esm/function/matrix/count.js +1 -1
- package/lib/esm/function/matrix/cross.js +3 -3
- package/lib/esm/function/matrix/diag.js +10 -10
- package/lib/esm/function/matrix/diff.js +2 -2
- package/lib/esm/function/matrix/eigs.js +3 -3
- package/lib/esm/function/matrix/fft.js +3 -3
- package/lib/esm/function/matrix/filter.js +4 -4
- package/lib/esm/function/matrix/flatten.js +5 -6
- package/lib/esm/function/matrix/forEach.js +4 -4
- package/lib/esm/function/matrix/identity.js +6 -6
- package/lib/esm/function/matrix/ifft.js +3 -3
- package/lib/esm/function/matrix/inv.js +1 -1
- package/lib/esm/function/matrix/kron.js +7 -7
- package/lib/esm/function/matrix/map.js +110 -19
- package/lib/esm/function/matrix/matrixFromFunction.js +6 -6
- package/lib/esm/function/matrix/ones.js +2 -2
- package/lib/esm/function/matrix/partitionSelect.js +2 -2
- package/lib/esm/function/matrix/pinv.js +1 -1
- package/lib/esm/function/matrix/range.js +10 -10
- package/lib/esm/function/matrix/reshape.js +2 -2
- package/lib/esm/function/matrix/rotate.js +4 -4
- package/lib/esm/function/matrix/rotationMatrix.js +6 -6
- package/lib/esm/function/matrix/row.js +1 -1
- package/lib/esm/function/matrix/size.js +8 -8
- package/lib/esm/function/matrix/sort.js +4 -4
- package/lib/esm/function/matrix/sqrtm.js +1 -1
- package/lib/esm/function/matrix/squeeze.js +3 -4
- package/lib/esm/function/matrix/subset.js +2 -2
- package/lib/esm/function/matrix/zeros.js +2 -2
- package/lib/esm/function/probability/combinations.js +1 -1
- package/lib/esm/function/probability/combinationsWithRep.js +2 -2
- package/lib/esm/function/probability/kldivergence.js +4 -4
- package/lib/esm/function/probability/multinomial.js +1 -1
- package/lib/esm/function/probability/permutations.js +2 -2
- package/lib/esm/function/probability/pickRandom.js +6 -6
- package/lib/esm/function/probability/random.js +1 -1
- package/lib/esm/function/probability/randomInt.js +1 -1
- package/lib/esm/function/relational/compare.js +6 -6
- package/lib/esm/function/relational/deepEqual.js +1 -1
- package/lib/esm/function/relational/equal.js +1 -1
- package/lib/esm/function/relational/equalScalar.js +7 -7
- package/lib/esm/function/relational/equalText.js +1 -1
- package/lib/esm/function/relational/larger.js +3 -3
- package/lib/esm/function/relational/largerEq.js +4 -4
- package/lib/esm/function/relational/smaller.js +3 -3
- package/lib/esm/function/relational/smallerEq.js +3 -3
- package/lib/esm/function/relational/unequal.js +1 -1
- package/lib/esm/function/set/setCartesian.js +1 -1
- package/lib/esm/function/set/setDifference.js +1 -1
- package/lib/esm/function/set/setDistinct.js +1 -1
- package/lib/esm/function/set/setIntersect.js +1 -1
- package/lib/esm/function/set/setIsSubset.js +1 -1
- package/lib/esm/function/set/setMultiplicity.js +1 -1
- package/lib/esm/function/set/setPowerset.js +1 -1
- package/lib/esm/function/set/setSize.js +2 -2
- package/lib/esm/function/set/setSymDifference.js +1 -1
- package/lib/esm/function/set/setUnion.js +1 -1
- package/lib/esm/function/signal/freqz.js +6 -6
- package/lib/esm/function/statistics/corr.js +2 -2
- package/lib/esm/function/statistics/cumsum.js +3 -3
- package/lib/esm/function/statistics/max.js +1 -1
- package/lib/esm/function/statistics/median.js +3 -3
- package/lib/esm/function/statistics/min.js +1 -1
- package/lib/esm/function/statistics/prod.js +1 -1
- package/lib/esm/function/statistics/variance.js +2 -2
- package/lib/esm/function/string/bin.js +2 -2
- package/lib/esm/function/string/hex.js +2 -2
- package/lib/esm/function/string/oct.js +2 -2
- package/lib/esm/function/trigonometry/acoth.js +2 -2
- package/lib/esm/function/trigonometry/acsch.js +2 -2
- package/lib/esm/type/bigint.js +1 -1
- package/lib/esm/type/complex/function/complex.js +2 -2
- package/lib/esm/type/fraction/function/fraction.js +1 -1
- package/lib/esm/type/matrix/DenseMatrix.js +13 -38
- package/lib/esm/type/matrix/SparseMatrix.js +5 -8
- package/lib/esm/type/matrix/function/index.js +1 -1
- package/lib/esm/type/matrix/function/matrix.js +1 -1
- package/lib/esm/type/matrix/function/sparse.js +2 -2
- package/lib/esm/type/number.js +1 -1
- package/lib/esm/type/unit/Unit.js +57 -114
- package/lib/esm/type/unit/function/createUnit.js +3 -3
- package/lib/esm/type/unit/function/splitUnit.js +1 -1
- package/lib/esm/type/unit/function/unit.js +2 -2
- package/lib/esm/utils/array.js +26 -0
- package/lib/esm/utils/collection.js +1 -1
- package/lib/esm/utils/function.js +0 -13
- package/lib/esm/utils/is.js +24 -0
- package/lib/esm/utils/map.js +2 -19
- package/lib/esm/version.js +1 -1
- package/package.json +19 -19
- package/types/index.d.ts +108 -25
|
@@ -99,24 +99,24 @@ export var createDerivative = /* #__PURE__ */factory(name, dependencies, _ref =>
|
|
|
99
99
|
// FIXME: move the toTex method of derivative to latex.js. Difficulty is that it relies on parse.
|
|
100
100
|
// NOTE: the optional "order" parameter here is currently unused
|
|
101
101
|
var _derivTex = typed('_derivTex', {
|
|
102
|
-
'Node, SymbolNode': function
|
|
102
|
+
'Node, SymbolNode': function Node_SymbolNode(expr, x) {
|
|
103
103
|
if (isConstantNode(expr) && typeOf(expr.value) === 'string') {
|
|
104
104
|
return _derivTex(parse(expr.value).toString(), x.toString(), 1);
|
|
105
105
|
} else {
|
|
106
106
|
return _derivTex(expr.toTex(), x.toString(), 1);
|
|
107
107
|
}
|
|
108
108
|
},
|
|
109
|
-
'Node, ConstantNode': function
|
|
109
|
+
'Node, ConstantNode': function Node_ConstantNode(expr, x) {
|
|
110
110
|
if (typeOf(x.value) === 'string') {
|
|
111
111
|
return _derivTex(expr, parse(x.value));
|
|
112
112
|
} else {
|
|
113
113
|
throw new Error("The second parameter to 'derivative' is a non-string constant");
|
|
114
114
|
}
|
|
115
115
|
},
|
|
116
|
-
'Node, SymbolNode, ConstantNode': function
|
|
116
|
+
'Node, SymbolNode, ConstantNode': function Node_SymbolNode_ConstantNode(expr, x, order) {
|
|
117
117
|
return _derivTex(expr.toString(), x.name, order.value);
|
|
118
118
|
},
|
|
119
|
-
'string, string, number': function
|
|
119
|
+
'string, string, number': function string_string_number(expr, x, order) {
|
|
120
120
|
var d;
|
|
121
121
|
if (order === 1) {
|
|
122
122
|
d = '{d\\over d' + x + '}';
|
|
@@ -143,11 +143,11 @@ export var createDerivative = /* #__PURE__ */factory(name, dependencies, _ref =>
|
|
|
143
143
|
*/
|
|
144
144
|
// TODO: can we rewrite constTag into a pure function?
|
|
145
145
|
var constTag = typed('constTag', {
|
|
146
|
-
'Object, ConstantNode, string': function
|
|
146
|
+
'Object, ConstantNode, string': function Object_ConstantNode_string(constNodes, node) {
|
|
147
147
|
constNodes[node] = true;
|
|
148
148
|
return true;
|
|
149
149
|
},
|
|
150
|
-
'Object, SymbolNode, string': function
|
|
150
|
+
'Object, SymbolNode, string': function Object_SymbolNode_string(constNodes, node, varName) {
|
|
151
151
|
// Treat other variables like constants. For reasoning, see:
|
|
152
152
|
// https://en.wikipedia.org/wiki/Partial_derivative
|
|
153
153
|
if (node.name !== varName) {
|
|
@@ -156,17 +156,17 @@ export var createDerivative = /* #__PURE__ */factory(name, dependencies, _ref =>
|
|
|
156
156
|
}
|
|
157
157
|
return false;
|
|
158
158
|
},
|
|
159
|
-
'Object, ParenthesisNode, string': function
|
|
159
|
+
'Object, ParenthesisNode, string': function Object_ParenthesisNode_string(constNodes, node, varName) {
|
|
160
160
|
return constTag(constNodes, node.content, varName);
|
|
161
161
|
},
|
|
162
|
-
'Object, FunctionAssignmentNode, string': function
|
|
162
|
+
'Object, FunctionAssignmentNode, string': function Object_FunctionAssignmentNode_string(constNodes, node, varName) {
|
|
163
163
|
if (!node.params.includes(varName)) {
|
|
164
164
|
constNodes[node] = true;
|
|
165
165
|
return true;
|
|
166
166
|
}
|
|
167
167
|
return constTag(constNodes, node.expr, varName);
|
|
168
168
|
},
|
|
169
|
-
'Object, FunctionNode | OperatorNode, string': function
|
|
169
|
+
'Object, FunctionNode | OperatorNode, string': function Object_FunctionNode__OperatorNode_string(constNodes, node, varName) {
|
|
170
170
|
if (node.args.length > 0) {
|
|
171
171
|
var isConst = constTag(constNodes, node.args[0], varName);
|
|
172
172
|
for (var i = 1; i < node.args.length; ++i) {
|
|
@@ -189,25 +189,25 @@ export var createDerivative = /* #__PURE__ */factory(name, dependencies, _ref =>
|
|
|
189
189
|
* @return {ConstantNode | SymbolNode | ParenthesisNode | FunctionNode | OperatorNode} The derivative of `expr`
|
|
190
190
|
*/
|
|
191
191
|
var _derivative = typed('_derivative', {
|
|
192
|
-
'ConstantNode, Object': function
|
|
192
|
+
'ConstantNode, Object': function ConstantNode_Object(node) {
|
|
193
193
|
return createConstantNode(0);
|
|
194
194
|
},
|
|
195
|
-
'SymbolNode, Object': function
|
|
195
|
+
'SymbolNode, Object': function SymbolNode_Object(node, constNodes) {
|
|
196
196
|
if (constNodes[node] !== undefined) {
|
|
197
197
|
return createConstantNode(0);
|
|
198
198
|
}
|
|
199
199
|
return createConstantNode(1);
|
|
200
200
|
},
|
|
201
|
-
'ParenthesisNode, Object': function
|
|
201
|
+
'ParenthesisNode, Object': function ParenthesisNode_Object(node, constNodes) {
|
|
202
202
|
return new ParenthesisNode(_derivative(node.content, constNodes));
|
|
203
203
|
},
|
|
204
|
-
'FunctionAssignmentNode, Object': function
|
|
204
|
+
'FunctionAssignmentNode, Object': function FunctionAssignmentNode_Object(node, constNodes) {
|
|
205
205
|
if (constNodes[node] !== undefined) {
|
|
206
206
|
return createConstantNode(0);
|
|
207
207
|
}
|
|
208
208
|
return _derivative(node.expr, constNodes);
|
|
209
209
|
},
|
|
210
|
-
'FunctionNode, Object': function
|
|
210
|
+
'FunctionNode, Object': function FunctionNode_Object(node, constNodes) {
|
|
211
211
|
if (constNodes[node] !== undefined) {
|
|
212
212
|
return createConstantNode(0);
|
|
213
213
|
}
|
|
@@ -411,7 +411,7 @@ export var createDerivative = /* #__PURE__ */factory(name, dependencies, _ref =>
|
|
|
411
411
|
}
|
|
412
412
|
return new OperatorNode(op, func, [chainDerivative, funcDerivative]);
|
|
413
413
|
},
|
|
414
|
-
'OperatorNode, Object': function
|
|
414
|
+
'OperatorNode, Object': function OperatorNode_Object(node, constNodes) {
|
|
415
415
|
if (constNodes[node] !== undefined) {
|
|
416
416
|
return createConstantNode(0);
|
|
417
417
|
}
|
|
@@ -36,16 +36,16 @@ export var createLyap = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
36
36
|
* @return {Matrix | Array} Matrix P solution to the Continuous-time Lyapunov equation AP+PA'=Q
|
|
37
37
|
*/
|
|
38
38
|
return typed(name, {
|
|
39
|
-
'Matrix, Matrix': function
|
|
39
|
+
'Matrix, Matrix': function Matrix_Matrix(A, Q) {
|
|
40
40
|
return sylvester(A, transpose(A), multiply(-1, Q));
|
|
41
41
|
},
|
|
42
|
-
'Array, Matrix': function
|
|
42
|
+
'Array, Matrix': function Array_Matrix(A, Q) {
|
|
43
43
|
return sylvester(matrix(A), transpose(matrix(A)), multiply(-1, Q));
|
|
44
44
|
},
|
|
45
|
-
'Matrix, Array': function
|
|
45
|
+
'Matrix, Array': function Matrix_Array(A, Q) {
|
|
46
46
|
return sylvester(A, transpose(matrix(A)), matrix(multiply(-1, Q)));
|
|
47
47
|
},
|
|
48
|
-
'Array, Array': function
|
|
48
|
+
'Array, Array': function Array_Array(A, Q) {
|
|
49
49
|
return sylvester(matrix(A), transpose(matrix(A)), matrix(multiply(-1, Q))).toArray();
|
|
50
50
|
}
|
|
51
51
|
});
|
|
@@ -168,11 +168,11 @@ export var createUtil = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
168
168
|
function allChildren(node, context) {
|
|
169
169
|
var op;
|
|
170
170
|
var children = [];
|
|
171
|
-
var
|
|
171
|
+
var _findChildren = function findChildren(node) {
|
|
172
172
|
for (var i = 0; i < node.args.length; i++) {
|
|
173
173
|
var child = node.args[i];
|
|
174
174
|
if (isOperatorNode(child) && op === child.op) {
|
|
175
|
-
|
|
175
|
+
_findChildren(child);
|
|
176
176
|
} else {
|
|
177
177
|
children.push(child);
|
|
178
178
|
}
|
|
@@ -180,7 +180,7 @@ export var createUtil = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
180
180
|
};
|
|
181
181
|
if (isAssociative(node, context)) {
|
|
182
182
|
op = node.op;
|
|
183
|
-
|
|
183
|
+
_findChildren(node);
|
|
184
184
|
return children;
|
|
185
185
|
} else {
|
|
186
186
|
return node.args;
|
|
@@ -62,7 +62,7 @@ export var createSimplifyConstant = /* #__PURE__ */factory(name, dependencies, _
|
|
|
62
62
|
*/
|
|
63
63
|
var simplifyConstant = typed('simplifyConstant', {
|
|
64
64
|
Node: node => _ensureNode(foldFraction(node, {})),
|
|
65
|
-
'Node, Object': function
|
|
65
|
+
'Node, Object': function Node_Object(expr, options) {
|
|
66
66
|
return _ensureNode(foldFraction(expr, options));
|
|
67
67
|
}
|
|
68
68
|
});
|
|
@@ -142,7 +142,7 @@ export var createSimplifyConstant = /* #__PURE__ */factory(name, dependencies, _
|
|
|
142
142
|
// Convert numbers to a preferred number type in preference order: Fraction, number, Complex
|
|
143
143
|
// BigNumbers are left alone
|
|
144
144
|
var _toNumber = typed({
|
|
145
|
-
'string, Object': function
|
|
145
|
+
'string, Object': function string_Object(s, options) {
|
|
146
146
|
var numericType = safeNumberType(s, config);
|
|
147
147
|
if (numericType === 'BigNumber') {
|
|
148
148
|
if (bignumber === undefined) {
|
|
@@ -161,32 +161,32 @@ export var createSimplifyConstant = /* #__PURE__ */factory(name, dependencies, _
|
|
|
161
161
|
return _exactFraction(n, options);
|
|
162
162
|
}
|
|
163
163
|
},
|
|
164
|
-
'Fraction, Object': function
|
|
164
|
+
'Fraction, Object': function Fraction_Object(s, options) {
|
|
165
165
|
return s;
|
|
166
166
|
},
|
|
167
167
|
// we don't need options here
|
|
168
168
|
|
|
169
|
-
'BigNumber, Object': function
|
|
169
|
+
'BigNumber, Object': function BigNumber_Object(s, options) {
|
|
170
170
|
return s;
|
|
171
171
|
},
|
|
172
172
|
// we don't need options here
|
|
173
173
|
|
|
174
|
-
'number, Object': function
|
|
174
|
+
'number, Object': function number_Object(s, options) {
|
|
175
175
|
return _exactFraction(s, options);
|
|
176
176
|
},
|
|
177
|
-
'bigint, Object': function
|
|
177
|
+
'bigint, Object': function bigint_Object(s, options) {
|
|
178
178
|
return s;
|
|
179
179
|
},
|
|
180
|
-
'Complex, Object': function
|
|
180
|
+
'Complex, Object': function Complex_Object(s, options) {
|
|
181
181
|
if (s.im !== 0) {
|
|
182
182
|
return s;
|
|
183
183
|
}
|
|
184
184
|
return _exactFraction(s.re, options);
|
|
185
185
|
},
|
|
186
|
-
'Matrix, Object': function
|
|
186
|
+
'Matrix, Object': function Matrix_Object(s, options) {
|
|
187
187
|
return matrix(_exactFraction(s.valueOf()));
|
|
188
188
|
},
|
|
189
|
-
'Array, Object': function
|
|
189
|
+
'Array, Object': function Array_Object(s, options) {
|
|
190
190
|
return s.map(_exactFraction);
|
|
191
191
|
}
|
|
192
192
|
});
|
|
@@ -41,13 +41,13 @@ export var createLsolve = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
41
41
|
* @return {DenseMatrix | Array} A column vector with the linear system solution (x)
|
|
42
42
|
*/
|
|
43
43
|
return typed(name, {
|
|
44
|
-
'SparseMatrix, Array | Matrix': function
|
|
44
|
+
'SparseMatrix, Array | Matrix': function SparseMatrix_Array__Matrix(m, b) {
|
|
45
45
|
return _sparseForwardSubstitution(m, b);
|
|
46
46
|
},
|
|
47
|
-
'DenseMatrix, Array | Matrix': function
|
|
47
|
+
'DenseMatrix, Array | Matrix': function DenseMatrix_Array__Matrix(m, b) {
|
|
48
48
|
return _denseForwardSubstitution(m, b);
|
|
49
49
|
},
|
|
50
|
-
'Array, Array | Matrix': function
|
|
50
|
+
'Array, Array | Matrix': function Array_Array__Matrix(a, b) {
|
|
51
51
|
var m = matrix(a);
|
|
52
52
|
var r = _denseForwardSubstitution(m, b);
|
|
53
53
|
return r.valueOf();
|
|
@@ -41,13 +41,13 @@ export var createLsolveAll = /* #__PURE__ */factory(name, dependencies, _ref =>
|
|
|
41
41
|
* @return {DenseMatrix[] | Array[]} An array of affine-independent column vectors (x) that solve the linear system
|
|
42
42
|
*/
|
|
43
43
|
return typed(name, {
|
|
44
|
-
'SparseMatrix, Array | Matrix': function
|
|
44
|
+
'SparseMatrix, Array | Matrix': function SparseMatrix_Array__Matrix(m, b) {
|
|
45
45
|
return _sparseForwardSubstitution(m, b);
|
|
46
46
|
},
|
|
47
|
-
'DenseMatrix, Array | Matrix': function
|
|
47
|
+
'DenseMatrix, Array | Matrix': function DenseMatrix_Array__Matrix(m, b) {
|
|
48
48
|
return _denseForwardSubstitution(m, b);
|
|
49
49
|
},
|
|
50
|
-
'Array, Array | Matrix': function
|
|
50
|
+
'Array, Array | Matrix': function Array_Array__Matrix(a, b) {
|
|
51
51
|
var m = matrix(a);
|
|
52
52
|
var R = _denseForwardSubstitution(m, b);
|
|
53
53
|
return R.map(r => r.valueOf());
|
|
@@ -52,25 +52,25 @@ export var createLusolve = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
52
52
|
* @return {DenseMatrix | Array} Column vector with the solution to the linear system A * x = b
|
|
53
53
|
*/
|
|
54
54
|
return typed(name, {
|
|
55
|
-
'Array, Array | Matrix': function
|
|
55
|
+
'Array, Array | Matrix': function Array_Array__Matrix(a, b) {
|
|
56
56
|
a = matrix(a);
|
|
57
57
|
var d = lup(a);
|
|
58
58
|
var x = _lusolve(d.L, d.U, d.p, null, b);
|
|
59
59
|
return x.valueOf();
|
|
60
60
|
},
|
|
61
|
-
'DenseMatrix, Array | Matrix': function
|
|
61
|
+
'DenseMatrix, Array | Matrix': function DenseMatrix_Array__Matrix(a, b) {
|
|
62
62
|
var d = lup(a);
|
|
63
63
|
return _lusolve(d.L, d.U, d.p, null, b);
|
|
64
64
|
},
|
|
65
|
-
'SparseMatrix, Array | Matrix': function
|
|
65
|
+
'SparseMatrix, Array | Matrix': function SparseMatrix_Array__Matrix(a, b) {
|
|
66
66
|
var d = lup(a);
|
|
67
67
|
return _lusolve(d.L, d.U, d.p, null, b);
|
|
68
68
|
},
|
|
69
|
-
'SparseMatrix, Array | Matrix, number, number': function
|
|
69
|
+
'SparseMatrix, Array | Matrix, number, number': function SparseMatrix_Array__Matrix_number_number(a, b, order, threshold) {
|
|
70
70
|
var d = slu(a, order, threshold);
|
|
71
71
|
return _lusolve(d.L, d.U, d.p, d.q, b);
|
|
72
72
|
},
|
|
73
|
-
'Object, Array | Matrix': function
|
|
73
|
+
'Object, Array | Matrix': function Object_Array__Matrix(d, b) {
|
|
74
74
|
return _lusolve(d.L, d.U, d.p, d.q, b);
|
|
75
75
|
}
|
|
76
76
|
});
|
|
@@ -41,13 +41,13 @@ export var createUsolve = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
41
41
|
* @return {DenseMatrix | Array} A column vector with the linear system solution (x)
|
|
42
42
|
*/
|
|
43
43
|
return typed(name, {
|
|
44
|
-
'SparseMatrix, Array | Matrix': function
|
|
44
|
+
'SparseMatrix, Array | Matrix': function SparseMatrix_Array__Matrix(m, b) {
|
|
45
45
|
return _sparseBackwardSubstitution(m, b);
|
|
46
46
|
},
|
|
47
|
-
'DenseMatrix, Array | Matrix': function
|
|
47
|
+
'DenseMatrix, Array | Matrix': function DenseMatrix_Array__Matrix(m, b) {
|
|
48
48
|
return _denseBackwardSubstitution(m, b);
|
|
49
49
|
},
|
|
50
|
-
'Array, Array | Matrix': function
|
|
50
|
+
'Array, Array | Matrix': function Array_Array__Matrix(a, b) {
|
|
51
51
|
var m = matrix(a);
|
|
52
52
|
var r = _denseBackwardSubstitution(m, b);
|
|
53
53
|
return r.valueOf();
|
|
@@ -41,13 +41,13 @@ export var createUsolveAll = /* #__PURE__ */factory(name, dependencies, _ref =>
|
|
|
41
41
|
* @return {DenseMatrix[] | Array[]} An array of affine-independent column vectors (x) that solve the linear system
|
|
42
42
|
*/
|
|
43
43
|
return typed(name, {
|
|
44
|
-
'SparseMatrix, Array | Matrix': function
|
|
44
|
+
'SparseMatrix, Array | Matrix': function SparseMatrix_Array__Matrix(m, b) {
|
|
45
45
|
return _sparseBackwardSubstitution(m, b);
|
|
46
46
|
},
|
|
47
|
-
'DenseMatrix, Array | Matrix': function
|
|
47
|
+
'DenseMatrix, Array | Matrix': function DenseMatrix_Array__Matrix(m, b) {
|
|
48
48
|
return _denseBackwardSubstitution(m, b);
|
|
49
49
|
},
|
|
50
|
-
'Array, Array | Matrix': function
|
|
50
|
+
'Array, Array | Matrix': function Array_Array__Matrix(a, b) {
|
|
51
51
|
var m = matrix(a);
|
|
52
52
|
var R = _denseBackwardSubstitution(m, b);
|
|
53
53
|
return R.map(r => r.valueOf());
|
|
@@ -50,25 +50,25 @@ export var createSylvester = /* #__PURE__ */factory(name, dependencies, _ref =>
|
|
|
50
50
|
*/
|
|
51
51
|
return typed(name, {
|
|
52
52
|
'Matrix, Matrix, Matrix': _sylvester,
|
|
53
|
-
'Array, Matrix, Matrix': function
|
|
53
|
+
'Array, Matrix, Matrix': function Array_Matrix_Matrix(A, B, C) {
|
|
54
54
|
return _sylvester(matrix(A), B, C);
|
|
55
55
|
},
|
|
56
|
-
'Array, Array, Matrix': function
|
|
56
|
+
'Array, Array, Matrix': function Array_Array_Matrix(A, B, C) {
|
|
57
57
|
return _sylvester(matrix(A), matrix(B), C);
|
|
58
58
|
},
|
|
59
|
-
'Array, Matrix, Array': function
|
|
59
|
+
'Array, Matrix, Array': function Array_Matrix_Array(A, B, C) {
|
|
60
60
|
return _sylvester(matrix(A), B, matrix(C));
|
|
61
61
|
},
|
|
62
|
-
'Matrix, Array, Matrix': function
|
|
62
|
+
'Matrix, Array, Matrix': function Matrix_Array_Matrix(A, B, C) {
|
|
63
63
|
return _sylvester(A, matrix(B), C);
|
|
64
64
|
},
|
|
65
|
-
'Matrix, Array, Array': function
|
|
65
|
+
'Matrix, Array, Array': function Matrix_Array_Array(A, B, C) {
|
|
66
66
|
return _sylvester(A, matrix(B), matrix(C));
|
|
67
67
|
},
|
|
68
|
-
'Matrix, Matrix, Array': function
|
|
68
|
+
'Matrix, Matrix, Array': function Matrix_Matrix_Array(A, B, C) {
|
|
69
69
|
return _sylvester(A, B, matrix(C));
|
|
70
70
|
},
|
|
71
|
-
'Array, Array, Array': function
|
|
71
|
+
'Array, Array, Array': function Array_Array_Array(A, B, C) {
|
|
72
72
|
return _sylvester(matrix(A), matrix(B), matrix(C)).toArray();
|
|
73
73
|
}
|
|
74
74
|
});
|
|
@@ -20,16 +20,16 @@ export var createAddScalar = /* #__PURE__ */factory(name, dependencies, _ref =>
|
|
|
20
20
|
*/
|
|
21
21
|
return typed(name, {
|
|
22
22
|
'number, number': addNumber,
|
|
23
|
-
'Complex, Complex': function
|
|
23
|
+
'Complex, Complex': function Complex_Complex(x, y) {
|
|
24
24
|
return x.add(y);
|
|
25
25
|
},
|
|
26
|
-
'BigNumber, BigNumber': function
|
|
26
|
+
'BigNumber, BigNumber': function BigNumber_BigNumber(x, y) {
|
|
27
27
|
return x.plus(y);
|
|
28
28
|
},
|
|
29
|
-
'bigint, bigint': function
|
|
29
|
+
'bigint, bigint': function bigint_bigint(x, y) {
|
|
30
30
|
return x + y;
|
|
31
31
|
},
|
|
32
|
-
'Fraction, Fraction': function
|
|
32
|
+
'Fraction, Fraction': function Fraction_Fraction(x, y) {
|
|
33
33
|
return x.add(y);
|
|
34
34
|
},
|
|
35
35
|
'Unit, Unit': typed.referToSelf(self => (x, y) => {
|
|
@@ -22,7 +22,7 @@ export var createCeilNumber = /* #__PURE__ */factory(name, ['typed', 'config', '
|
|
|
22
22
|
return Math.ceil(x);
|
|
23
23
|
}
|
|
24
24
|
},
|
|
25
|
-
'number, number': function
|
|
25
|
+
'number, number': function number_number(x, n) {
|
|
26
26
|
if (nearlyEqual(x, round(x, n), config.relTol, config.absTol)) {
|
|
27
27
|
return round(x, n);
|
|
28
28
|
} else {
|
|
@@ -103,10 +103,10 @@ export var createCeil = /* #__PURE__ */factory(name, dependencies, _ref2 => {
|
|
|
103
103
|
Complex: function Complex(x) {
|
|
104
104
|
return x.ceil();
|
|
105
105
|
},
|
|
106
|
-
'Complex, number': function
|
|
106
|
+
'Complex, number': function Complex_number(x, n) {
|
|
107
107
|
return x.ceil(n);
|
|
108
108
|
},
|
|
109
|
-
'Complex, BigNumber': function
|
|
109
|
+
'Complex, BigNumber': function Complex_BigNumber(x, n) {
|
|
110
110
|
return x.ceil(n.toNumber());
|
|
111
111
|
},
|
|
112
112
|
BigNumber: function BigNumber(x) {
|
|
@@ -116,7 +116,7 @@ export var createCeil = /* #__PURE__ */factory(name, dependencies, _ref2 => {
|
|
|
116
116
|
return x.ceil();
|
|
117
117
|
}
|
|
118
118
|
},
|
|
119
|
-
'BigNumber, BigNumber': function
|
|
119
|
+
'BigNumber, BigNumber': function BigNumber_BigNumber(x, n) {
|
|
120
120
|
if (bigNearlyEqual(x, round(x, n), config.relTol, config.absTol)) {
|
|
121
121
|
return round(x, n);
|
|
122
122
|
} else {
|
|
@@ -126,10 +126,10 @@ export var createCeil = /* #__PURE__ */factory(name, dependencies, _ref2 => {
|
|
|
126
126
|
Fraction: function Fraction(x) {
|
|
127
127
|
return x.ceil();
|
|
128
128
|
},
|
|
129
|
-
'Fraction, number': function
|
|
129
|
+
'Fraction, number': function Fraction_number(x, n) {
|
|
130
130
|
return x.ceil(n);
|
|
131
131
|
},
|
|
132
|
-
'Fraction, BigNumber': function
|
|
132
|
+
'Fraction, BigNumber': function Fraction_BigNumber(x, n) {
|
|
133
133
|
return x.ceil(n.toNumber());
|
|
134
134
|
},
|
|
135
135
|
'Array | Matrix': typed.referToSelf(self => x => {
|
|
@@ -55,24 +55,24 @@ export var createDivide = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
55
55
|
return typed('divide', extend({
|
|
56
56
|
// we extend the signatures of divideScalar with signatures dealing with matrices
|
|
57
57
|
|
|
58
|
-
'Array | Matrix, Array | Matrix': function
|
|
58
|
+
'Array | Matrix, Array | Matrix': function Array__Matrix_Array__Matrix(x, y) {
|
|
59
59
|
// TODO: implement matrix right division using pseudo inverse
|
|
60
60
|
// https://www.mathworks.nl/help/matlab/ref/mrdivide.html
|
|
61
61
|
// https://www.gnu.org/software/octave/doc/interpreter/Arithmetic-Ops.html
|
|
62
62
|
// https://stackoverflow.com/questions/12263932/how-does-gnu-octave-matrix-division-work-getting-unexpected-behaviour
|
|
63
63
|
return multiply(x, inv(y));
|
|
64
64
|
},
|
|
65
|
-
'DenseMatrix, any': function
|
|
65
|
+
'DenseMatrix, any': function DenseMatrix_any(x, y) {
|
|
66
66
|
return matAlgo14xDs(x, y, divideScalar, false);
|
|
67
67
|
},
|
|
68
|
-
'SparseMatrix, any': function
|
|
68
|
+
'SparseMatrix, any': function SparseMatrix_any(x, y) {
|
|
69
69
|
return matAlgo11xS0s(x, y, divideScalar, false);
|
|
70
70
|
},
|
|
71
|
-
'Array, any': function
|
|
71
|
+
'Array, any': function Array_any(x, y) {
|
|
72
72
|
// use matrix implementation
|
|
73
73
|
return matAlgo14xDs(matrix(x), y, divideScalar, false).valueOf();
|
|
74
74
|
},
|
|
75
|
-
'any, Array | Matrix': function
|
|
75
|
+
'any, Array | Matrix': function any_Array__Matrix(x, y) {
|
|
76
76
|
return multiply(x, inv(y));
|
|
77
77
|
}
|
|
78
78
|
}, divideScalar.signatures));
|
|
@@ -19,19 +19,19 @@ export var createDivideScalar = /* #__PURE__ */factory(name, dependencies, _ref
|
|
|
19
19
|
* @private
|
|
20
20
|
*/
|
|
21
21
|
return typed(name, {
|
|
22
|
-
'number, number': function
|
|
22
|
+
'number, number': function number_number(x, y) {
|
|
23
23
|
return x / y;
|
|
24
24
|
},
|
|
25
|
-
'Complex, Complex': function
|
|
25
|
+
'Complex, Complex': function Complex_Complex(x, y) {
|
|
26
26
|
return x.div(y);
|
|
27
27
|
},
|
|
28
|
-
'BigNumber, BigNumber': function
|
|
28
|
+
'BigNumber, BigNumber': function BigNumber_BigNumber(x, y) {
|
|
29
29
|
return x.div(y);
|
|
30
30
|
},
|
|
31
|
-
'bigint, bigint': function
|
|
31
|
+
'bigint, bigint': function bigint_bigint(x, y) {
|
|
32
32
|
return x / y;
|
|
33
33
|
},
|
|
34
|
-
'Fraction, Fraction': function
|
|
34
|
+
'Fraction, Fraction': function Fraction_Fraction(x, y) {
|
|
35
35
|
return x.div(y);
|
|
36
36
|
},
|
|
37
37
|
'Unit, number | Complex | Fraction | BigNumber | Unit': (x, y) => x.divide(y),
|
|
@@ -14,7 +14,7 @@ export var createFixNumber = /* #__PURE__ */factory(name, ['typed', 'ceil', 'flo
|
|
|
14
14
|
number: function number(x) {
|
|
15
15
|
return x > 0 ? floor(x) : ceil(x);
|
|
16
16
|
},
|
|
17
|
-
'number, number': function
|
|
17
|
+
'number, number': function number_number(x, n) {
|
|
18
18
|
return x > 0 ? floor(x, n) : ceil(x, n);
|
|
19
19
|
}
|
|
20
20
|
});
|
|
@@ -84,23 +84,23 @@ export var createFix = /* #__PURE__ */factory(name, dependencies, _ref2 => {
|
|
|
84
84
|
Complex: function Complex(x) {
|
|
85
85
|
return new _Complex(x.re > 0 ? Math.floor(x.re) : Math.ceil(x.re), x.im > 0 ? Math.floor(x.im) : Math.ceil(x.im));
|
|
86
86
|
},
|
|
87
|
-
'Complex, number': function
|
|
87
|
+
'Complex, number': function Complex_number(x, n) {
|
|
88
88
|
return new _Complex(x.re > 0 ? floor(x.re, n) : ceil(x.re, n), x.im > 0 ? floor(x.im, n) : ceil(x.im, n));
|
|
89
89
|
},
|
|
90
|
-
'Complex, BigNumber': function
|
|
90
|
+
'Complex, BigNumber': function Complex_BigNumber(x, bn) {
|
|
91
91
|
var n = bn.toNumber();
|
|
92
92
|
return new _Complex(x.re > 0 ? floor(x.re, n) : ceil(x.re, n), x.im > 0 ? floor(x.im, n) : ceil(x.im, n));
|
|
93
93
|
},
|
|
94
94
|
BigNumber: function BigNumber(x) {
|
|
95
95
|
return x.isNegative() ? ceil(x) : floor(x);
|
|
96
96
|
},
|
|
97
|
-
'BigNumber, number | BigNumber': function
|
|
97
|
+
'BigNumber, number | BigNumber': function BigNumber_number__BigNumber(x, n) {
|
|
98
98
|
return x.isNegative() ? ceil(x, n) : floor(x, n);
|
|
99
99
|
},
|
|
100
100
|
Fraction: function Fraction(x) {
|
|
101
101
|
return x.s < 0 ? x.ceil() : x.floor();
|
|
102
102
|
},
|
|
103
|
-
'Fraction, number | BigNumber': function
|
|
103
|
+
'Fraction, number | BigNumber': function Fraction_number__BigNumber(x, n) {
|
|
104
104
|
return x.s < 0 ? ceil(x, n) : floor(x, n);
|
|
105
105
|
},
|
|
106
106
|
'Array | Matrix': typed.referToSelf(self => x => {
|
|
@@ -22,7 +22,7 @@ export var createFloorNumber = /* #__PURE__ */factory(name, ['typed', 'config',
|
|
|
22
22
|
return Math.floor(x);
|
|
23
23
|
}
|
|
24
24
|
},
|
|
25
|
-
'number, number': function
|
|
25
|
+
'number, number': function number_number(x, n) {
|
|
26
26
|
if (nearlyEqual(x, round(x, n), config.relTol, config.absTol)) {
|
|
27
27
|
return round(x, n);
|
|
28
28
|
} else {
|
|
@@ -106,10 +106,10 @@ export var createFloor = /* #__PURE__ */factory(name, dependencies, _ref2 => {
|
|
|
106
106
|
Complex: function Complex(x) {
|
|
107
107
|
return x.floor();
|
|
108
108
|
},
|
|
109
|
-
'Complex, number': function
|
|
109
|
+
'Complex, number': function Complex_number(x, n) {
|
|
110
110
|
return x.floor(n);
|
|
111
111
|
},
|
|
112
|
-
'Complex, BigNumber': function
|
|
112
|
+
'Complex, BigNumber': function Complex_BigNumber(x, n) {
|
|
113
113
|
return x.floor(n.toNumber());
|
|
114
114
|
},
|
|
115
115
|
BigNumber: function BigNumber(x) {
|
|
@@ -119,7 +119,7 @@ export var createFloor = /* #__PURE__ */factory(name, dependencies, _ref2 => {
|
|
|
119
119
|
return x.floor();
|
|
120
120
|
}
|
|
121
121
|
},
|
|
122
|
-
'BigNumber, BigNumber': function
|
|
122
|
+
'BigNumber, BigNumber': function BigNumber_BigNumber(x, n) {
|
|
123
123
|
if (bigNearlyEqual(x, round(x, n), config.relTol, config.absTol)) {
|
|
124
124
|
return round(x, n);
|
|
125
125
|
} else {
|
|
@@ -129,10 +129,10 @@ export var createFloor = /* #__PURE__ */factory(name, dependencies, _ref2 => {
|
|
|
129
129
|
Fraction: function Fraction(x) {
|
|
130
130
|
return x.floor();
|
|
131
131
|
},
|
|
132
|
-
'Fraction, number': function
|
|
132
|
+
'Fraction, number': function Fraction_number(x, n) {
|
|
133
133
|
return x.floor(n);
|
|
134
134
|
},
|
|
135
|
-
'Fraction, BigNumber': function
|
|
135
|
+
'Fraction, BigNumber': function Fraction_BigNumber(x, n) {
|
|
136
136
|
return x.floor(n.toNumber());
|
|
137
137
|
},
|
|
138
138
|
'Array | Matrix': typed.referToSelf(self => x => {
|
|
@@ -15,11 +15,11 @@ export var createHypot = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
15
15
|
isPositive
|
|
16
16
|
} = _ref;
|
|
17
17
|
/**
|
|
18
|
-
* Calculate the
|
|
18
|
+
* Calculate the hypotenuse of a list with values. The hypotenuse is defined as:
|
|
19
19
|
*
|
|
20
20
|
* hypot(a, b, c, ...) = sqrt(a^2 + b^2 + c^2 + ...)
|
|
21
21
|
*
|
|
22
|
-
* For matrix input, the
|
|
22
|
+
* For matrix input, the hypotenuse is calculated for all values in the matrix.
|
|
23
23
|
*
|
|
24
24
|
* Syntax:
|
|
25
25
|
*
|
|
@@ -49,7 +49,7 @@ export var createHypot = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
49
49
|
});
|
|
50
50
|
|
|
51
51
|
/**
|
|
52
|
-
* Calculate the
|
|
52
|
+
* Calculate the hypotenuse for an Array with values
|
|
53
53
|
* @param {Array.<number | BigNumber>} args
|
|
54
54
|
* @return {number | BigNumber} Returns the result
|
|
55
55
|
* @private
|
|
@@ -90,10 +90,10 @@ export var createMod = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
90
90
|
*/
|
|
91
91
|
return typed(name, {
|
|
92
92
|
'number, number': _modNumber,
|
|
93
|
-
'BigNumber, BigNumber': function
|
|
93
|
+
'BigNumber, BigNumber': function BigNumber_BigNumber(x, y) {
|
|
94
94
|
return y.isZero() ? x : x.sub(y.mul(floor(x.div(y))));
|
|
95
95
|
},
|
|
96
|
-
'bigint, bigint': function
|
|
96
|
+
'bigint, bigint': function bigint_bigint(x, y) {
|
|
97
97
|
if (y === 0n) {
|
|
98
98
|
return x;
|
|
99
99
|
}
|
|
@@ -103,7 +103,7 @@ export var createMod = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
103
103
|
}
|
|
104
104
|
return x % y;
|
|
105
105
|
},
|
|
106
|
-
'Fraction, Fraction': function
|
|
106
|
+
'Fraction, Fraction': function Fraction_Fraction(x, y) {
|
|
107
107
|
return y.equals(0) ? x : x.sub(y.mul(floor(x.div(y))));
|
|
108
108
|
}
|
|
109
109
|
}, matrixAlgorithmSuite({
|
|
@@ -817,7 +817,7 @@ export var createMultiply = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
817
817
|
// return array or scalar
|
|
818
818
|
return isMatrix(m) ? m.valueOf() : m;
|
|
819
819
|
}),
|
|
820
|
-
'Matrix, Matrix': function
|
|
820
|
+
'Matrix, Matrix': function Matrix_Matrix(x, y) {
|
|
821
821
|
// dimensions
|
|
822
822
|
var xsize = x.size();
|
|
823
823
|
var ysize = y.size();
|
|
@@ -848,23 +848,23 @@ export var createMultiply = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
848
848
|
// use Matrix * Matrix implementation
|
|
849
849
|
return self(matrix(x, y.storage()), y);
|
|
850
850
|
}),
|
|
851
|
-
'SparseMatrix, any': function
|
|
851
|
+
'SparseMatrix, any': function SparseMatrix_any(x, y) {
|
|
852
852
|
return matAlgo11xS0s(x, y, multiplyScalar, false);
|
|
853
853
|
},
|
|
854
|
-
'DenseMatrix, any': function
|
|
854
|
+
'DenseMatrix, any': function DenseMatrix_any(x, y) {
|
|
855
855
|
return matAlgo14xDs(x, y, multiplyScalar, false);
|
|
856
856
|
},
|
|
857
|
-
'any, SparseMatrix': function
|
|
857
|
+
'any, SparseMatrix': function any_SparseMatrix(x, y) {
|
|
858
858
|
return matAlgo11xS0s(y, x, multiplyScalar, true);
|
|
859
859
|
},
|
|
860
|
-
'any, DenseMatrix': function
|
|
860
|
+
'any, DenseMatrix': function any_DenseMatrix(x, y) {
|
|
861
861
|
return matAlgo14xDs(y, x, multiplyScalar, true);
|
|
862
862
|
},
|
|
863
|
-
'Array, any': function
|
|
863
|
+
'Array, any': function Array_any(x, y) {
|
|
864
864
|
// use matrix implementation
|
|
865
865
|
return matAlgo14xDs(matrix(x), y, multiplyScalar, false).valueOf();
|
|
866
866
|
},
|
|
867
|
-
'any, Array': function
|
|
867
|
+
'any, Array': function any_Array(x, y) {
|
|
868
868
|
// use matrix implementation
|
|
869
869
|
return matAlgo14xDs(matrix(y), x, multiplyScalar, true).valueOf();
|
|
870
870
|
},
|