mathjs 13.0.3 → 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 +17 -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/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/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/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/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 +13 -13
- package/types/index.d.ts +57 -18
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { applyCallback } from '../../utils/applyCallback.js';
|
|
2
|
-
import { map } from '../../utils/array.js';
|
|
3
1
|
import { factory } from '../../utils/factory.js';
|
|
4
2
|
import { isFunctionAssignmentNode, isSymbolNode } from '../../utils/is.js';
|
|
3
|
+
import { createMap } from '../../function/matrix/map.js';
|
|
5
4
|
import { compileInlineExpression } from './utils/compileInlineExpression.js';
|
|
6
5
|
var name = 'map';
|
|
7
6
|
var dependencies = ['typed'];
|
|
@@ -15,57 +14,125 @@ export var createMapTransform = /* #__PURE__ */factory(name, dependencies, _ref
|
|
|
15
14
|
*
|
|
16
15
|
* This transform creates a one-based index instead of a zero-based index
|
|
17
16
|
*/
|
|
17
|
+
var map = createMap({
|
|
18
|
+
typed
|
|
19
|
+
});
|
|
18
20
|
function mapTransform(args, math, scope) {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
x = args[0].compile().evaluate(scope);
|
|
21
|
+
if (args.length === 0) {
|
|
22
|
+
return map();
|
|
22
23
|
}
|
|
23
|
-
if (args
|
|
24
|
-
|
|
24
|
+
if (args.length === 1) {
|
|
25
|
+
return map(args[0]);
|
|
26
|
+
}
|
|
27
|
+
var N = args.length - 1;
|
|
28
|
+
var X, callback;
|
|
29
|
+
callback = args[N];
|
|
30
|
+
X = args.slice(0, N);
|
|
31
|
+
X = X.map(arg => _compileAndEvaluate(arg, scope));
|
|
32
|
+
if (callback) {
|
|
33
|
+
if (isSymbolNode(callback) || isFunctionAssignmentNode(callback)) {
|
|
25
34
|
// a function pointer, like filter([3, -2, 5], myTestFunction)
|
|
26
|
-
callback =
|
|
35
|
+
callback = _compileAndEvaluate(callback, scope);
|
|
27
36
|
} else {
|
|
28
37
|
// an expression like filter([3, -2, 5], x > 0)
|
|
29
|
-
callback = compileInlineExpression(
|
|
38
|
+
callback = compileInlineExpression(callback, math, scope);
|
|
30
39
|
}
|
|
31
40
|
}
|
|
32
|
-
return map(
|
|
41
|
+
return map(...X, _transformCallback(callback, N));
|
|
42
|
+
function _compileAndEvaluate(arg, scope) {
|
|
43
|
+
return arg.compile().evaluate(scope);
|
|
44
|
+
}
|
|
33
45
|
}
|
|
34
46
|
mapTransform.rawArgs = true;
|
|
47
|
+
return mapTransform;
|
|
35
48
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
49
|
+
/**
|
|
50
|
+
* Transforms the given callback function based on its type and number of arrays.
|
|
51
|
+
*
|
|
52
|
+
* @param {Function} callback - The callback function to transform.
|
|
53
|
+
* @param {number} numberOfArrays - The number of arrays to pass to the callback function.
|
|
54
|
+
* @returns {*} - The transformed callback function.
|
|
55
|
+
*/
|
|
56
|
+
function _transformCallback(callback, numberOfArrays) {
|
|
57
|
+
if (typed.isTypedFunction(callback)) {
|
|
58
|
+
return _transformTypedCallbackFunction(callback, numberOfArrays);
|
|
59
|
+
} else {
|
|
60
|
+
return _transformCallbackFunction(callback, callback.length, numberOfArrays);
|
|
43
61
|
}
|
|
44
|
-
}
|
|
45
|
-
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Transforms the given typed callback function based on the number of arrays.
|
|
66
|
+
*
|
|
67
|
+
* @param {Function} typedFunction - The typed callback function to transform.
|
|
68
|
+
* @param {number} numberOfArrays - The number of arrays to pass to the callback function.
|
|
69
|
+
* @returns {*} - The transformed typed callback function.
|
|
70
|
+
*/
|
|
71
|
+
function _transformTypedCallbackFunction(typedFunction, numberOfArrays) {
|
|
72
|
+
var signatures = Object.fromEntries(Object.entries(typedFunction.signatures).map(_ref2 => {
|
|
73
|
+
var [signature, callbackFunction] = _ref2;
|
|
74
|
+
var numberOfCallbackInputs = signature.split(',').length;
|
|
75
|
+
if (typed.isTypedFunction(callbackFunction)) {
|
|
76
|
+
return [signature, _transformTypedCallbackFunction(callbackFunction, numberOfArrays)];
|
|
77
|
+
} else {
|
|
78
|
+
return [signature, _transformCallbackFunction(callbackFunction, numberOfCallbackInputs, numberOfArrays)];
|
|
79
|
+
}
|
|
80
|
+
}));
|
|
81
|
+
if (typeof typedFunction.name === 'string') {
|
|
82
|
+
return typed(typedFunction.name, signatures);
|
|
83
|
+
} else {
|
|
84
|
+
return typed(signatures);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
46
87
|
}, {
|
|
47
88
|
isTransformFunction: true
|
|
48
89
|
});
|
|
49
90
|
|
|
50
91
|
/**
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
92
|
+
* Transforms the callback function based on the number of callback inputs and arrays.
|
|
93
|
+
* There are three cases:
|
|
94
|
+
* 1. The callback function has N arguments.
|
|
95
|
+
* 2. The callback function has N+1 arguments.
|
|
96
|
+
* 3. The callback function has 2N+1 arguments.
|
|
97
|
+
*
|
|
98
|
+
* @param {Function} callbackFunction - The callback function to transform.
|
|
99
|
+
* @param {number} numberOfCallbackInputs - The number of callback inputs.
|
|
100
|
+
* @param {number} numberOfArrays - The number of arrays.
|
|
101
|
+
* @returns {Function} The transformed callback function.
|
|
57
102
|
*/
|
|
58
|
-
function
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
103
|
+
function _transformCallbackFunction(callbackFunction, numberOfCallbackInputs, numberOfArrays) {
|
|
104
|
+
if (numberOfCallbackInputs === numberOfArrays) {
|
|
105
|
+
return callbackFunction;
|
|
106
|
+
} else if (numberOfCallbackInputs === numberOfArrays + 1) {
|
|
107
|
+
return function () {
|
|
108
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
109
|
+
args[_key] = arguments[_key];
|
|
110
|
+
}
|
|
111
|
+
var vals = args.slice(0, numberOfArrays);
|
|
112
|
+
var idx = _transformDims(args[numberOfArrays]);
|
|
113
|
+
return callbackFunction(...vals, idx);
|
|
114
|
+
};
|
|
115
|
+
} else if (numberOfCallbackInputs > numberOfArrays + 1) {
|
|
116
|
+
return function () {
|
|
117
|
+
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
118
|
+
args[_key2] = arguments[_key2];
|
|
119
|
+
}
|
|
120
|
+
var vals = args.slice(0, numberOfArrays);
|
|
121
|
+
var idx = _transformDims(args[numberOfArrays]);
|
|
122
|
+
var rest = args.slice(numberOfArrays + 1);
|
|
123
|
+
return callbackFunction(...vals, idx, ...rest);
|
|
124
|
+
};
|
|
125
|
+
} else {
|
|
126
|
+
return callbackFunction;
|
|
69
127
|
}
|
|
70
|
-
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* Transforms the dimensions by adding 1 to each dimension.
|
|
132
|
+
*
|
|
133
|
+
* @param {Array} dims - The dimensions to transform.
|
|
134
|
+
* @returns {Array} The transformed dimensions.
|
|
135
|
+
*/
|
|
136
|
+
function _transformDims(dims) {
|
|
137
|
+
return dims.map(dim => dim.isBigNumber ? dim.plus(1) : dim + 1);
|
|
71
138
|
}
|
|
@@ -17,10 +17,10 @@ export var createPrintTransform = /* #__PURE__ */factory(name, dependencies, _re
|
|
|
17
17
|
add
|
|
18
18
|
});
|
|
19
19
|
return typed(name, {
|
|
20
|
-
'string, Object | Array': function
|
|
20
|
+
'string, Object | Array': function string_Object__Array(template, values) {
|
|
21
21
|
return print(_convertTemplateToZeroBasedIndex(template), values);
|
|
22
22
|
},
|
|
23
|
-
'string, Object | Array, number | Object': function
|
|
23
|
+
'string, Object | Array, number | Object': function string_Object__Array_number__Object(template, values, options) {
|
|
24
24
|
return print(_convertTemplateToZeroBasedIndex(template), values, options);
|
|
25
25
|
}
|
|
26
26
|
});
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { isNumber, isBigNumber } from '../../../utils/is.js';
|
|
2
|
+
/**
|
|
3
|
+
* Change last argument dim from one-based to zero-based.
|
|
4
|
+
*/
|
|
5
|
+
export function dimToZeroBase(dim) {
|
|
6
|
+
if (isNumber(dim)) {
|
|
7
|
+
return dim - 1;
|
|
8
|
+
} else if (isBigNumber(dim)) {
|
|
9
|
+
return dim.minus(1);
|
|
10
|
+
} else {
|
|
11
|
+
return dim;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
export function isNumberOrBigNumber(n) {
|
|
15
|
+
return isNumber(n) || isBigNumber(n);
|
|
16
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { isCollection } from '../../../utils/is.js';
|
|
2
|
+
import { dimToZeroBase, isNumberOrBigNumber } from './dimToZeroBase.js';
|
|
3
3
|
/**
|
|
4
4
|
* Change last argument dim from one-based to zero-based.
|
|
5
5
|
*/
|
|
@@ -7,10 +7,8 @@ export function lastDimToZeroBase(args) {
|
|
|
7
7
|
if (args.length === 2 && isCollection(args[0])) {
|
|
8
8
|
args = args.slice();
|
|
9
9
|
var dim = args[1];
|
|
10
|
-
if (
|
|
11
|
-
args[1] = dim
|
|
12
|
-
} else if (isBigNumber(dim)) {
|
|
13
|
-
args[1] = dim.minus(1);
|
|
10
|
+
if (isNumberOrBigNumber(dim)) {
|
|
11
|
+
args[1] = dimToZeroBase(dim);
|
|
14
12
|
}
|
|
15
13
|
}
|
|
16
14
|
return args;
|
|
@@ -70,7 +70,7 @@ export var createSlu = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
70
70
|
* @return {Object} The lower triangular matrix, the upper triangular matrix and the permutation vectors.
|
|
71
71
|
*/
|
|
72
72
|
return typed(name, {
|
|
73
|
-
'SparseMatrix, number, number': function
|
|
73
|
+
'SparseMatrix, number, number': function SparseMatrix_number_number(a, order, threshold) {
|
|
74
74
|
// verify order
|
|
75
75
|
if (!isInteger(order) || order < 0 || order > 3) {
|
|
76
76
|
throw new Error('Symbolic Ordering and Analysis order must be an integer number in the interval [0, 3]');
|
|
@@ -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 => {
|