mathjs 11.11.2 → 11.12.0
Sign up to get free protection for your applications and to get access to all the features.
- package/HISTORY.md +11 -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/core/create.js +2 -2
- package/lib/cjs/defaultInstance.js +2 -2
- package/lib/cjs/entry/allFactoriesAny.js +2 -2
- package/lib/cjs/entry/allFactoriesNumber.js +2 -2
- package/lib/cjs/entry/dependenciesAny/dependenciesDet.generated.js +2 -2
- package/lib/cjs/entry/dependenciesAny/dependenciesDistance.generated.js +2 -2
- package/lib/cjs/entry/dependenciesAny/dependenciesLsolve.generated.js +2 -2
- package/lib/cjs/entry/dependenciesAny/dependenciesLsolveAll.generated.js +2 -2
- package/lib/cjs/entry/dependenciesAny/dependenciesLup.generated.js +2 -2
- package/lib/cjs/entry/dependenciesAny/dependenciesQr.generated.js +2 -2
- package/lib/cjs/entry/dependenciesAny/dependenciesStirlingS2.generated.js +2 -2
- package/lib/cjs/entry/dependenciesAny/dependenciesSubtract.generated.js +2 -2
- package/lib/cjs/entry/dependenciesAny/dependenciesSubtractScalar.generated.js +17 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesUnitClass.generated.js +2 -2
- package/lib/cjs/entry/dependenciesAny/dependenciesUsolve.generated.js +2 -2
- package/lib/cjs/entry/dependenciesAny/dependenciesUsolveAll.generated.js +2 -2
- package/lib/cjs/entry/dependenciesAny.generated.js +7 -0
- package/lib/cjs/entry/dependenciesNumber/dependenciesStirlingS2.generated.js +2 -2
- package/lib/cjs/entry/dependenciesNumber/dependenciesSubtractScalar.generated.js +17 -0
- package/lib/cjs/entry/dependenciesNumber.generated.js +7 -0
- package/lib/cjs/entry/impureFunctionsAny.generated.js +4 -3
- package/lib/cjs/entry/impureFunctionsNumber.generated.js +2 -1
- package/lib/cjs/entry/pureFunctionsAny.generated.js +41 -37
- package/lib/cjs/entry/pureFunctionsNumber.generated.js +16 -13
- package/lib/cjs/expression/parse.js +50 -69
- package/lib/cjs/factoriesAny.js +7 -0
- package/lib/cjs/factoriesNumber.js +2 -1
- package/lib/cjs/function/algebra/decomposition/lup.js +3 -3
- package/lib/cjs/function/algebra/decomposition/qr.js +5 -5
- package/lib/cjs/function/algebra/solver/lsolve.js +4 -4
- package/lib/cjs/function/algebra/solver/lsolveAll.js +6 -6
- package/lib/cjs/function/algebra/solver/usolve.js +4 -4
- package/lib/cjs/function/algebra/solver/usolveAll.js +6 -6
- package/lib/cjs/function/arithmetic/subtract.js +7 -37
- package/lib/cjs/function/arithmetic/subtractScalar.js +52 -0
- package/lib/cjs/function/combinatorics/stirlingS2.js +2 -2
- package/lib/cjs/function/geometry/distance.js +10 -10
- package/lib/cjs/function/matrix/det.js +4 -4
- package/lib/cjs/header.js +2 -2
- package/lib/cjs/type/unit/Unit.js +5 -5
- package/lib/cjs/utils/object.js +4 -2
- package/lib/cjs/utils/snapshot.js +3 -3
- package/lib/cjs/utils/string.js +12 -16
- package/lib/cjs/version.js +1 -1
- package/lib/esm/entry/dependenciesAny/dependenciesDet.generated.js +2 -2
- package/lib/esm/entry/dependenciesAny/dependenciesDistance.generated.js +2 -2
- package/lib/esm/entry/dependenciesAny/dependenciesLsolve.generated.js +2 -2
- package/lib/esm/entry/dependenciesAny/dependenciesLsolveAll.generated.js +2 -2
- package/lib/esm/entry/dependenciesAny/dependenciesLup.generated.js +2 -2
- package/lib/esm/entry/dependenciesAny/dependenciesQr.generated.js +2 -2
- package/lib/esm/entry/dependenciesAny/dependenciesStirlingS2.generated.js +2 -2
- package/lib/esm/entry/dependenciesAny/dependenciesSubtract.generated.js +2 -2
- package/lib/esm/entry/dependenciesAny/dependenciesSubtractScalar.generated.js +10 -0
- package/lib/esm/entry/dependenciesAny/dependenciesUnitClass.generated.js +2 -2
- package/lib/esm/entry/dependenciesAny/dependenciesUsolve.generated.js +2 -2
- package/lib/esm/entry/dependenciesAny/dependenciesUsolveAll.generated.js +2 -2
- package/lib/esm/entry/dependenciesAny.generated.js +1 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesStirlingS2.generated.js +2 -2
- package/lib/esm/entry/dependenciesNumber/dependenciesSubtractScalar.generated.js +10 -0
- package/lib/esm/entry/dependenciesNumber.generated.js +1 -0
- package/lib/esm/entry/impureFunctionsAny.generated.js +5 -4
- package/lib/esm/entry/impureFunctionsNumber.generated.js +3 -2
- package/lib/esm/entry/pureFunctionsAny.generated.js +40 -37
- package/lib/esm/entry/pureFunctionsNumber.generated.js +16 -13
- package/lib/esm/expression/parse.js +50 -69
- package/lib/esm/factoriesAny.js +1 -0
- package/lib/esm/factoriesNumber.js +1 -0
- package/lib/esm/function/algebra/decomposition/lup.js +3 -3
- package/lib/esm/function/algebra/decomposition/qr.js +5 -5
- package/lib/esm/function/algebra/solver/lsolve.js +4 -4
- package/lib/esm/function/algebra/solver/lsolveAll.js +6 -6
- package/lib/esm/function/algebra/solver/usolve.js +4 -4
- package/lib/esm/function/algebra/solver/usolveAll.js +6 -6
- package/lib/esm/function/arithmetic/subtract.js +7 -27
- package/lib/esm/function/arithmetic/subtractScalar.js +46 -0
- package/lib/esm/function/combinatorics/stirlingS2.js +2 -2
- package/lib/esm/function/geometry/distance.js +10 -10
- package/lib/esm/function/matrix/det.js +4 -4
- package/lib/esm/type/unit/Unit.js +5 -5
- package/lib/esm/utils/object.js +5 -3
- package/lib/esm/utils/snapshot.js +1 -1
- package/lib/esm/utils/string.js +12 -16
- package/lib/esm/version.js +1 -1
- package/package.json +13 -13
- package/types/index.d.ts +31 -0
@@ -1,7 +1,7 @@
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
2
2
|
import { factory } from '../../../utils/factory.js';
|
3
3
|
var name = 'qr';
|
4
|
-
var dependencies = ['typed', 'matrix', 'zeros', 'identity', 'isZero', 'equal', 'sign', 'sqrt', 'conj', 'unaryMinus', 'addScalar', 'divideScalar', 'multiplyScalar', '
|
4
|
+
var dependencies = ['typed', 'matrix', 'zeros', 'identity', 'isZero', 'equal', 'sign', 'sqrt', 'conj', 'unaryMinus', 'addScalar', 'divideScalar', 'multiplyScalar', 'subtractScalar', 'complex'];
|
5
5
|
export var createQr = /* #__PURE__ */factory(name, dependencies, _ref => {
|
6
6
|
var {
|
7
7
|
typed,
|
@@ -17,7 +17,7 @@ export var createQr = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
17
17
|
addScalar,
|
18
18
|
divideScalar,
|
19
19
|
multiplyScalar,
|
20
|
-
|
20
|
+
subtractScalar,
|
21
21
|
complex
|
22
22
|
} = _ref;
|
23
23
|
/**
|
@@ -132,7 +132,7 @@ export var createQr = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
132
132
|
var alpha = multiplyScalar(sgn, sqrt(alphaSquared));
|
133
133
|
if (!isZero(alpha)) {
|
134
134
|
// first element in vector u
|
135
|
-
var u1 =
|
135
|
+
var u1 = subtractScalar(pivot, alpha);
|
136
136
|
|
137
137
|
// w = v * u1 / |u| (only elements k to (rows-1) are used)
|
138
138
|
w[k] = 1;
|
@@ -167,7 +167,7 @@ export var createQr = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
167
167
|
// calculate the jth element of [tau * transpose(w) * R]
|
168
168
|
s = multiplyScalar(s, tau);
|
169
169
|
for (i = k; i < rows; i++) {
|
170
|
-
Rdata[i][j] = multiplyScalar(
|
170
|
+
Rdata[i][j] = multiplyScalar(subtractScalar(Rdata[i][j], multiplyScalar(w[i], s)), conjSgn);
|
171
171
|
}
|
172
172
|
}
|
173
173
|
/*
|
@@ -188,7 +188,7 @@ export var createQr = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
188
188
|
// calculate the ith element of [tau * Q * w]
|
189
189
|
s = multiplyScalar(s, tau);
|
190
190
|
for (j = k; j < rows; ++j) {
|
191
|
-
Qdata[i][j] = divideScalar(
|
191
|
+
Qdata[i][j] = divideScalar(subtractScalar(Qdata[i][j], multiplyScalar(s, conj(w[j]))), conjSgn);
|
192
192
|
}
|
193
193
|
}
|
194
194
|
}
|
@@ -1,14 +1,14 @@
|
|
1
1
|
import { factory } from '../../../utils/factory.js';
|
2
2
|
import { createSolveValidation } from './utils/solveValidation.js';
|
3
3
|
var name = 'lsolve';
|
4
|
-
var dependencies = ['typed', 'matrix', 'divideScalar', 'multiplyScalar', '
|
4
|
+
var dependencies = ['typed', 'matrix', 'divideScalar', 'multiplyScalar', 'subtractScalar', 'equalScalar', 'DenseMatrix'];
|
5
5
|
export var createLsolve = /* #__PURE__ */factory(name, dependencies, _ref => {
|
6
6
|
var {
|
7
7
|
typed,
|
8
8
|
matrix,
|
9
9
|
divideScalar,
|
10
10
|
multiplyScalar,
|
11
|
-
|
11
|
+
subtractScalar,
|
12
12
|
equalScalar,
|
13
13
|
DenseMatrix
|
14
14
|
} = _ref;
|
@@ -79,7 +79,7 @@ export var createLsolve = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
79
79
|
|
80
80
|
// loop rows
|
81
81
|
for (var i = j + 1; i < rows; i++) {
|
82
|
-
bdata[i] = [
|
82
|
+
bdata[i] = [subtractScalar(bdata[i][0] || 0, multiplyScalar(xj, mdata[i][j]))];
|
83
83
|
}
|
84
84
|
} else {
|
85
85
|
// degenerate row, we can choose any value
|
@@ -141,7 +141,7 @@ export var createLsolve = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
141
141
|
var xj = divideScalar(bj, vjj);
|
142
142
|
for (var _k = 0, l = jIndices.length; _k < l; _k++) {
|
143
143
|
var _i = jIndices[_k];
|
144
|
-
bdata[_i] = [
|
144
|
+
bdata[_i] = [subtractScalar(bdata[_i][0] || 0, multiplyScalar(xj, jValues[_k]))];
|
145
145
|
}
|
146
146
|
x[j] = [xj];
|
147
147
|
} else {
|
@@ -1,14 +1,14 @@
|
|
1
1
|
import { factory } from '../../../utils/factory.js';
|
2
2
|
import { createSolveValidation } from './utils/solveValidation.js';
|
3
3
|
var name = 'lsolveAll';
|
4
|
-
var dependencies = ['typed', 'matrix', 'divideScalar', 'multiplyScalar', '
|
4
|
+
var dependencies = ['typed', 'matrix', 'divideScalar', 'multiplyScalar', 'subtractScalar', 'equalScalar', 'DenseMatrix'];
|
5
5
|
export var createLsolveAll = /* #__PURE__ */factory(name, dependencies, _ref => {
|
6
6
|
var {
|
7
7
|
typed,
|
8
8
|
matrix,
|
9
9
|
divideScalar,
|
10
10
|
multiplyScalar,
|
11
|
-
|
11
|
+
subtractScalar,
|
12
12
|
equalScalar,
|
13
13
|
DenseMatrix
|
14
14
|
} = _ref;
|
@@ -76,7 +76,7 @@ export var createLsolveAll = /* #__PURE__ */factory(name, dependencies, _ref =>
|
|
76
76
|
b[i] = divideScalar(b[i], M[i][i]);
|
77
77
|
for (var j = i + 1; j < columns; j++) {
|
78
78
|
// b[j] -= b[i] * M[j,i]
|
79
|
-
b[j] =
|
79
|
+
b[j] = subtractScalar(b[j], multiplyScalar(b[i], M[j][i]));
|
80
80
|
}
|
81
81
|
} else if (!equalScalar(b[i], 0)) {
|
82
82
|
// singular row, nonzero RHS
|
@@ -96,7 +96,7 @@ export var createLsolveAll = /* #__PURE__ */factory(name, dependencies, _ref =>
|
|
96
96
|
var bNew = [...b];
|
97
97
|
bNew[i] = 1;
|
98
98
|
for (var _j = i + 1; _j < columns; _j++) {
|
99
|
-
bNew[_j] =
|
99
|
+
bNew[_j] = subtractScalar(bNew[_j], M[_j][i]);
|
100
100
|
}
|
101
101
|
B.push(bNew);
|
102
102
|
}
|
@@ -151,7 +151,7 @@ export var createLsolveAll = /* #__PURE__ */factory(name, dependencies, _ref =>
|
|
151
151
|
b[i] = divideScalar(b[i], Mii);
|
152
152
|
for (var _j2 = 0, _lastIndex = iIndices.length; _j2 < _lastIndex; _j2++) {
|
153
153
|
var _J = iIndices[_j2];
|
154
|
-
b[_J] =
|
154
|
+
b[_J] = subtractScalar(b[_J], multiplyScalar(b[i], iValues[_j2]));
|
155
155
|
}
|
156
156
|
} else if (!equalScalar(b[i], 0)) {
|
157
157
|
// singular row, nonzero RHS
|
@@ -172,7 +172,7 @@ export var createLsolveAll = /* #__PURE__ */factory(name, dependencies, _ref =>
|
|
172
172
|
bNew[i] = 1;
|
173
173
|
for (var _j3 = 0, _lastIndex2 = iIndices.length; _j3 < _lastIndex2; _j3++) {
|
174
174
|
var _J2 = iIndices[_j3];
|
175
|
-
bNew[_J2] =
|
175
|
+
bNew[_J2] = subtractScalar(bNew[_J2], iValues[_j3]);
|
176
176
|
}
|
177
177
|
B.push(bNew);
|
178
178
|
}
|
@@ -1,14 +1,14 @@
|
|
1
1
|
import { factory } from '../../../utils/factory.js';
|
2
2
|
import { createSolveValidation } from './utils/solveValidation.js';
|
3
3
|
var name = 'usolve';
|
4
|
-
var dependencies = ['typed', 'matrix', 'divideScalar', 'multiplyScalar', '
|
4
|
+
var dependencies = ['typed', 'matrix', 'divideScalar', 'multiplyScalar', 'subtractScalar', 'equalScalar', 'DenseMatrix'];
|
5
5
|
export var createUsolve = /* #__PURE__ */factory(name, dependencies, _ref => {
|
6
6
|
var {
|
7
7
|
typed,
|
8
8
|
matrix,
|
9
9
|
divideScalar,
|
10
10
|
multiplyScalar,
|
11
|
-
|
11
|
+
subtractScalar,
|
12
12
|
equalScalar,
|
13
13
|
DenseMatrix
|
14
14
|
} = _ref;
|
@@ -81,7 +81,7 @@ export var createUsolve = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
81
81
|
// loop rows
|
82
82
|
for (var i = j - 1; i >= 0; i--) {
|
83
83
|
// update copy of b
|
84
|
-
bdata[i] = [
|
84
|
+
bdata[i] = [subtractScalar(bdata[i][0] || 0, multiplyScalar(xj, mdata[i][j]))];
|
85
85
|
}
|
86
86
|
} else {
|
87
87
|
// zero value at j
|
@@ -145,7 +145,7 @@ export var createUsolve = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
145
145
|
var xj = divideScalar(bj, vjj);
|
146
146
|
for (var _k = 0, _lastIndex = jIndices.length; _k < _lastIndex; _k++) {
|
147
147
|
var _i = jIndices[_k];
|
148
|
-
bdata[_i] = [
|
148
|
+
bdata[_i] = [subtractScalar(bdata[_i][0], multiplyScalar(xj, jValues[_k]))];
|
149
149
|
}
|
150
150
|
x[j] = [xj];
|
151
151
|
} else {
|
@@ -1,14 +1,14 @@
|
|
1
1
|
import { factory } from '../../../utils/factory.js';
|
2
2
|
import { createSolveValidation } from './utils/solveValidation.js';
|
3
3
|
var name = 'usolveAll';
|
4
|
-
var dependencies = ['typed', 'matrix', 'divideScalar', 'multiplyScalar', '
|
4
|
+
var dependencies = ['typed', 'matrix', 'divideScalar', 'multiplyScalar', 'subtractScalar', 'equalScalar', 'DenseMatrix'];
|
5
5
|
export var createUsolveAll = /* #__PURE__ */factory(name, dependencies, _ref => {
|
6
6
|
var {
|
7
7
|
typed,
|
8
8
|
matrix,
|
9
9
|
divideScalar,
|
10
10
|
multiplyScalar,
|
11
|
-
|
11
|
+
subtractScalar,
|
12
12
|
equalScalar,
|
13
13
|
DenseMatrix
|
14
14
|
} = _ref;
|
@@ -76,7 +76,7 @@ export var createUsolveAll = /* #__PURE__ */factory(name, dependencies, _ref =>
|
|
76
76
|
b[i] = divideScalar(b[i], M[i][i]);
|
77
77
|
for (var j = i - 1; j >= 0; j--) {
|
78
78
|
// b[j] -= b[i] * M[j,i]
|
79
|
-
b[j] =
|
79
|
+
b[j] = subtractScalar(b[j], multiplyScalar(b[i], M[j][i]));
|
80
80
|
}
|
81
81
|
} else if (!equalScalar(b[i], 0)) {
|
82
82
|
// singular row, nonzero RHS
|
@@ -96,7 +96,7 @@ export var createUsolveAll = /* #__PURE__ */factory(name, dependencies, _ref =>
|
|
96
96
|
var bNew = [...b];
|
97
97
|
bNew[i] = 1;
|
98
98
|
for (var _j = i - 1; _j >= 0; _j--) {
|
99
|
-
bNew[_j] =
|
99
|
+
bNew[_j] = subtractScalar(bNew[_j], M[_j][i]);
|
100
100
|
}
|
101
101
|
B.push(bNew);
|
102
102
|
}
|
@@ -153,7 +153,7 @@ export var createUsolveAll = /* #__PURE__ */factory(name, dependencies, _ref =>
|
|
153
153
|
// loop upper triangular
|
154
154
|
for (var _j2 = 0, _lastIndex = iIndices.length; _j2 < _lastIndex; _j2++) {
|
155
155
|
var _J = iIndices[_j2];
|
156
|
-
b[_J] =
|
156
|
+
b[_J] = subtractScalar(b[_J], multiplyScalar(b[i], iValues[_j2]));
|
157
157
|
}
|
158
158
|
} else if (!equalScalar(b[i], 0)) {
|
159
159
|
// singular row, nonzero RHS
|
@@ -176,7 +176,7 @@ export var createUsolveAll = /* #__PURE__ */factory(name, dependencies, _ref =>
|
|
176
176
|
// loop upper triangular
|
177
177
|
for (var _j3 = 0, _lastIndex2 = iIndices.length; _j3 < _lastIndex2; _j3++) {
|
178
178
|
var _J2 = iIndices[_j3];
|
179
|
-
bNew[_J2] =
|
179
|
+
bNew[_J2] = subtractScalar(bNew[_J2], iValues[_j3]);
|
180
180
|
}
|
181
181
|
B.push(bNew);
|
182
182
|
}
|
@@ -6,13 +6,13 @@ import { createMatAlgo10xSids } from '../../type/matrix/utils/matAlgo10xSids.js'
|
|
6
6
|
import { createMatAlgo12xSfs } from '../../type/matrix/utils/matAlgo12xSfs.js';
|
7
7
|
import { createMatrixAlgorithmSuite } from '../../type/matrix/utils/matrixAlgorithmSuite.js';
|
8
8
|
var name = 'subtract';
|
9
|
-
var dependencies = ['typed', 'matrix', 'equalScalar', '
|
9
|
+
var dependencies = ['typed', 'matrix', 'equalScalar', 'subtractScalar', 'unaryMinus', 'DenseMatrix', 'concat'];
|
10
10
|
export var createSubtract = /* #__PURE__ */factory(name, dependencies, _ref => {
|
11
11
|
var {
|
12
12
|
typed,
|
13
13
|
matrix,
|
14
14
|
equalScalar,
|
15
|
-
|
15
|
+
subtractScalar,
|
16
16
|
unaryMinus,
|
17
17
|
DenseMatrix,
|
18
18
|
concat
|
@@ -69,34 +69,14 @@ export var createSubtract = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
69
69
|
*
|
70
70
|
* add
|
71
71
|
*
|
72
|
-
* @param {number | BigNumber | Fraction | Complex | Unit | Array | Matrix} x
|
73
|
-
*
|
74
|
-
* @
|
75
|
-
* Value to subtract from `x`
|
76
|
-
* @return {number | BigNumber | Fraction | Complex | Unit | Array | Matrix}
|
77
|
-
* Subtraction of `x` and `y`
|
72
|
+
* @param {number | BigNumber | Fraction | Complex | Unit | Array | Matrix} x Initial value
|
73
|
+
* @param {number | BigNumber | Fraction | Complex | Unit | Array | Matrix} y Value to subtract from `x`
|
74
|
+
* @return {number | BigNumber | Fraction | Complex | Unit | Array | Matrix} Subtraction of `x` and `y`
|
78
75
|
*/
|
79
76
|
return typed(name, {
|
80
|
-
'
|
81
|
-
'Complex, Complex': (x, y) => x.sub(y),
|
82
|
-
'BigNumber, BigNumber': (x, y) => x.minus(y),
|
83
|
-
'Fraction, Fraction': (x, y) => x.sub(y),
|
84
|
-
'Unit, Unit': typed.referToSelf(self => (x, y) => {
|
85
|
-
if (x.value === null) {
|
86
|
-
throw new Error('Parameter x contains a unit with undefined value');
|
87
|
-
}
|
88
|
-
if (y.value === null) {
|
89
|
-
throw new Error('Parameter y contains a unit with undefined value');
|
90
|
-
}
|
91
|
-
if (!x.equalBase(y)) {
|
92
|
-
throw new Error('Units do not match');
|
93
|
-
}
|
94
|
-
var res = x.clone();
|
95
|
-
res.value = typed.find(self, [res.valueType(), y.valueType()])(res.value, y.value);
|
96
|
-
res.fixPrefix = false;
|
97
|
-
return res;
|
98
|
-
})
|
77
|
+
'any, any': subtractScalar
|
99
78
|
}, matrixAlgorithmSuite({
|
79
|
+
elop: subtractScalar,
|
100
80
|
SS: matAlgo05xSfSf,
|
101
81
|
DS: matAlgo01xDSid,
|
102
82
|
SD: matAlgo03xDSf,
|
@@ -0,0 +1,46 @@
|
|
1
|
+
import { factory } from '../../utils/factory.js';
|
2
|
+
import { subtractNumber } from '../../plain/number/index.js';
|
3
|
+
var name = 'subtractScalar';
|
4
|
+
var dependencies = ['typed'];
|
5
|
+
export var createSubtractScalar = /* #__PURE__ */factory(name, dependencies, _ref => {
|
6
|
+
var {
|
7
|
+
typed
|
8
|
+
} = _ref;
|
9
|
+
/**
|
10
|
+
* Subtract two scalar values, `x - y`.
|
11
|
+
* This function is meant for internal use: it is used by the public function
|
12
|
+
* `subtract`
|
13
|
+
*
|
14
|
+
* This function does not support collections (Array or Matrix).
|
15
|
+
*
|
16
|
+
* @param {number | BigNumber | Fraction | Complex | Unit} x First value
|
17
|
+
* @param {number | BigNumber | Fraction | Complex} y Second value to be subtracted from `x`
|
18
|
+
* @return {number | BigNumber | Fraction | Complex | Unit} Difference of `x` and `y`
|
19
|
+
* @private
|
20
|
+
*/
|
21
|
+
return typed(name, {
|
22
|
+
'number, number': subtractNumber,
|
23
|
+
'Complex, Complex': function ComplexComplex(x, y) {
|
24
|
+
return x.sub(y);
|
25
|
+
},
|
26
|
+
'BigNumber, BigNumber': function BigNumberBigNumber(x, y) {
|
27
|
+
return x.minus(y);
|
28
|
+
},
|
29
|
+
'Fraction, Fraction': function FractionFraction(x, y) {
|
30
|
+
return x.sub(y);
|
31
|
+
},
|
32
|
+
'Unit, Unit': typed.referToSelf(self => (x, y) => {
|
33
|
+
if (x.value === null || x.value === undefined) {
|
34
|
+
throw new Error('Parameter x contains a unit with undefined value');
|
35
|
+
}
|
36
|
+
if (y.value === null || y.value === undefined) {
|
37
|
+
throw new Error('Parameter y contains a unit with undefined value');
|
38
|
+
}
|
39
|
+
if (!x.equalBase(y)) throw new Error('Units do not match');
|
40
|
+
var res = x.clone();
|
41
|
+
res.value = typed.find(self, [res.valueType(), y.valueType()])(res.value, y.value);
|
42
|
+
res.fixPrefix = false;
|
43
|
+
return res;
|
44
|
+
})
|
45
|
+
});
|
46
|
+
});
|
@@ -1,12 +1,12 @@
|
|
1
1
|
import { factory } from '../../utils/factory.js';
|
2
2
|
import { isNumber } from '../../utils/is.js';
|
3
3
|
var name = 'stirlingS2';
|
4
|
-
var dependencies = ['typed', 'addScalar', '
|
4
|
+
var dependencies = ['typed', 'addScalar', 'subtractScalar', 'multiplyScalar', 'divideScalar', 'pow', 'factorial', 'combinations', 'isNegative', 'isInteger', 'number', '?bignumber', 'larger'];
|
5
5
|
export var createStirlingS2 = /* #__PURE__ */factory(name, dependencies, _ref => {
|
6
6
|
var {
|
7
7
|
typed,
|
8
8
|
addScalar,
|
9
|
-
|
9
|
+
subtractScalar,
|
10
10
|
multiplyScalar,
|
11
11
|
divideScalar,
|
12
12
|
pow,
|
@@ -1,12 +1,12 @@
|
|
1
1
|
import { isBigNumber } from '../../utils/is.js';
|
2
2
|
import { factory } from '../../utils/factory.js';
|
3
3
|
var name = 'distance';
|
4
|
-
var dependencies = ['typed', 'addScalar', '
|
4
|
+
var dependencies = ['typed', 'addScalar', 'subtractScalar', 'divideScalar', 'multiplyScalar', 'deepEqual', 'sqrt', 'abs'];
|
5
5
|
export var createDistance = /* #__PURE__ */factory(name, dependencies, _ref => {
|
6
6
|
var {
|
7
7
|
typed,
|
8
8
|
addScalar,
|
9
|
-
|
9
|
+
subtractScalar,
|
10
10
|
multiplyScalar,
|
11
11
|
divideScalar,
|
12
12
|
deepEqual,
|
@@ -80,9 +80,9 @@ export var createDistance = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
80
80
|
if (deepEqual(y, z)) {
|
81
81
|
throw new TypeError('LinePoint1 should not be same with LinePoint2');
|
82
82
|
}
|
83
|
-
var xCoeff =
|
84
|
-
var yCoeff =
|
85
|
-
var constant =
|
83
|
+
var xCoeff = subtractScalar(z[1], y[1]);
|
84
|
+
var yCoeff = subtractScalar(y[0], z[0]);
|
85
|
+
var constant = subtractScalar(multiplyScalar(z[0], y[1]), multiplyScalar(y[0], z[1]));
|
86
86
|
return _distancePointLine2D(x[0], x[1], xCoeff, yCoeff, constant);
|
87
87
|
} else {
|
88
88
|
throw new TypeError('Invalid Arguments: Try again');
|
@@ -103,9 +103,9 @@ export var createDistance = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
103
103
|
throw new TypeError('LinePoint1 should not be same with LinePoint2');
|
104
104
|
}
|
105
105
|
if ('pointX' in x && 'pointY' in x && 'lineOnePtX' in y && 'lineOnePtY' in y && 'lineTwoPtX' in z && 'lineTwoPtY' in z) {
|
106
|
-
var xCoeff =
|
107
|
-
var yCoeff =
|
108
|
-
var constant =
|
106
|
+
var xCoeff = subtractScalar(z.lineTwoPtY, y.lineOnePtY);
|
107
|
+
var yCoeff = subtractScalar(y.lineOnePtX, z.lineTwoPtX);
|
108
|
+
var constant = subtractScalar(multiplyScalar(z.lineTwoPtX, y.lineOnePtY), multiplyScalar(y.lineOnePtX, z.lineTwoPtY));
|
109
109
|
return _distancePointLine2D(x.pointX, x.pointY, xCoeff, yCoeff, constant);
|
110
110
|
} else {
|
111
111
|
throw new TypeError('Key names do not match');
|
@@ -269,7 +269,7 @@ export var createDistance = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
269
269
|
return divideScalar(num, den);
|
270
270
|
}
|
271
271
|
function _distancePointLine3D(x, y, z, x0, y0, z0, a, b, c) {
|
272
|
-
var num = [
|
272
|
+
var num = [subtractScalar(multiplyScalar(subtractScalar(y0, y), c), multiplyScalar(subtractScalar(z0, z), b)), subtractScalar(multiplyScalar(subtractScalar(z0, z), a), multiplyScalar(subtractScalar(x0, x), c)), subtractScalar(multiplyScalar(subtractScalar(x0, x), b), multiplyScalar(subtractScalar(y0, y), a))];
|
273
273
|
num = sqrt(addScalar(addScalar(multiplyScalar(num[0], num[0]), multiplyScalar(num[1], num[1])), multiplyScalar(num[2], num[2])));
|
274
274
|
var den = sqrt(addScalar(addScalar(multiplyScalar(a, a), multiplyScalar(b, b)), multiplyScalar(c, c)));
|
275
275
|
return divideScalar(num, den);
|
@@ -279,7 +279,7 @@ export var createDistance = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
279
279
|
var result = 0;
|
280
280
|
var diff = 0;
|
281
281
|
for (var i = 0; i < vectorSize; i++) {
|
282
|
-
diff =
|
282
|
+
diff = subtractScalar(x[i], y[i]);
|
283
283
|
result = addScalar(multiplyScalar(diff, diff), result);
|
284
284
|
}
|
285
285
|
return sqrt(result);
|
@@ -3,12 +3,12 @@ import { clone } from '../../utils/object.js';
|
|
3
3
|
import { format } from '../../utils/string.js';
|
4
4
|
import { factory } from '../../utils/factory.js';
|
5
5
|
var name = 'det';
|
6
|
-
var dependencies = ['typed', 'matrix', '
|
6
|
+
var dependencies = ['typed', 'matrix', 'subtractScalar', 'multiply', 'divideScalar', 'isZero', 'unaryMinus'];
|
7
7
|
export var createDet = /* #__PURE__ */factory(name, dependencies, _ref => {
|
8
8
|
var {
|
9
9
|
typed,
|
10
10
|
matrix,
|
11
|
-
|
11
|
+
subtractScalar,
|
12
12
|
multiply,
|
13
13
|
divideScalar,
|
14
14
|
isZero,
|
@@ -104,7 +104,7 @@ export var createDet = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
104
104
|
} else if (rows === 2) {
|
105
105
|
// this is a 2 x 2 matrix
|
106
106
|
// the determinant of [a11,a12;a21,a22] is det = a11*a22-a21*a12
|
107
|
-
return
|
107
|
+
return subtractScalar(multiply(matrix[0][0], matrix[1][1]), multiply(matrix[1][0], matrix[0][1]));
|
108
108
|
} else {
|
109
109
|
// Bareiss algorithm
|
110
110
|
// this algorithm have same complexity as LUP decomposition (O(n^3))
|
@@ -132,7 +132,7 @@ export var createDet = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
132
132
|
for (var i = k + 1; i < rows; i++) {
|
133
133
|
var i_ = rowIndices[i];
|
134
134
|
for (var j = k + 1; j < rows; j++) {
|
135
|
-
matrix[i_][j] = divideScalar(
|
135
|
+
matrix[i_][j] = divideScalar(subtractScalar(multiply(matrix[i_][j], piv), multiply(matrix[i_][k], matrix[k_][j])), piv_);
|
136
136
|
}
|
137
137
|
}
|
138
138
|
}
|
@@ -9,13 +9,13 @@ import { endsWith } from '../../utils/string.js';
|
|
9
9
|
import { clone, hasOwnProperty } from '../../utils/object.js';
|
10
10
|
import { createBigNumberPi as createPi } from '../../utils/bignumber/constants.js';
|
11
11
|
var name = 'Unit';
|
12
|
-
var dependencies = ['?on', 'config', 'addScalar', '
|
12
|
+
var dependencies = ['?on', 'config', 'addScalar', 'subtractScalar', 'multiplyScalar', 'divideScalar', 'pow', 'abs', 'fix', 'round', 'equal', 'isNumeric', 'format', 'number', 'Complex', 'BigNumber', 'Fraction'];
|
13
13
|
export var createUnitClass = /* #__PURE__ */factory(name, dependencies, _ref => {
|
14
14
|
var {
|
15
15
|
on,
|
16
16
|
config,
|
17
17
|
addScalar,
|
18
|
-
|
18
|
+
subtractScalar,
|
19
19
|
multiplyScalar,
|
20
20
|
divideScalar,
|
21
21
|
pow,
|
@@ -741,7 +741,7 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, _ref =>
|
|
741
741
|
var unitValue = convert(ret.units[0].unit.value);
|
742
742
|
var nominalOffset = convert(ret.units[0].unit.offset);
|
743
743
|
var unitOffset = multiplyScalar(unitValue, nominalOffset);
|
744
|
-
ret.value =
|
744
|
+
ret.value = subtractScalar(abs(addScalar(ret.value, unitOffset)), unitOffset);
|
745
745
|
}
|
746
746
|
}
|
747
747
|
for (var i in ret.units) {
|
@@ -786,7 +786,7 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, _ref =>
|
|
786
786
|
var otherUnitValue = other.units[0].unit.value;
|
787
787
|
var otherNominalOffset = other.units[0].unit.offset;
|
788
788
|
var otherUnitOffset = multiplyScalar(otherUnitValue, otherNominalOffset);
|
789
|
-
other.value = addScalar(value, convert(
|
789
|
+
other.value = addScalar(value, convert(subtractScalar(thisUnitOffset, otherUnitOffset)));
|
790
790
|
}
|
791
791
|
other.fixPrefix = true;
|
792
792
|
other.skipAutomaticSimplification = true;
|
@@ -1162,7 +1162,7 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, _ref =>
|
|
1162
1162
|
}
|
1163
1163
|
var y = new Unit(xFixed, parts[i].toString());
|
1164
1164
|
ret.push(y);
|
1165
|
-
x =
|
1165
|
+
x = subtractScalar(x, y);
|
1166
1166
|
}
|
1167
1167
|
|
1168
1168
|
// This little bit fixes a bug where the remainder should be 0 but is a little bit off.
|
package/lib/esm/utils/object.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import { isBigNumber } from './is.js';
|
1
|
+
import { isBigNumber, isObject } from './is.js';
|
2
2
|
|
3
3
|
/**
|
4
4
|
* Clone an object
|
@@ -32,10 +32,12 @@ export function clone(x) {
|
|
32
32
|
}
|
33
33
|
if (x instanceof Date) return new Date(x.valueOf());
|
34
34
|
if (isBigNumber(x)) return x; // bignumbers are immutable
|
35
|
-
if (x instanceof RegExp) throw new TypeError('Cannot clone ' + x); // TODO: clone a RegExp
|
36
35
|
|
37
36
|
// object
|
38
|
-
|
37
|
+
if (isObject(x)) {
|
38
|
+
return mapObject(x, clone);
|
39
|
+
}
|
40
|
+
throw new TypeError("Cannot clone: unknown type of value (value: ".concat(x, ")"));
|
39
41
|
}
|
40
42
|
|
41
43
|
/**
|
@@ -131,7 +131,7 @@ export function createSnapshotFromFactories(factories) {
|
|
131
131
|
embeddedDocs[name] = 'Object';
|
132
132
|
}
|
133
133
|
});
|
134
|
-
embeddedDocs = exclude(embeddedDocs, ['equalScalar', 'apply', 'addScalar', 'multiplyScalar', 'print', 'divideScalar', 'parse', 'compile', 'parser', 'chain', 'reviver', 'replacer']);
|
134
|
+
embeddedDocs = exclude(embeddedDocs, ['equalScalar', 'apply', 'addScalar', 'subtractScalar', 'multiplyScalar', 'print', 'divideScalar', 'parse', 'compile', 'parser', 'chain', 'reviver', 'replacer']);
|
135
135
|
var allTypeChecks = {};
|
136
136
|
Object.keys(allIsFunctions).forEach(name => {
|
137
137
|
if (name.indexOf('is') === 0) {
|
package/lib/esm/utils/string.js
CHANGED
@@ -81,7 +81,7 @@ function _format(value, options) {
|
|
81
81
|
return formatArray(value, options);
|
82
82
|
}
|
83
83
|
if (isString(value)) {
|
84
|
-
return
|
84
|
+
return stringify(value);
|
85
85
|
}
|
86
86
|
if (typeof value === 'function') {
|
87
87
|
return value.syntax ? String(value.syntax) : 'function';
|
@@ -94,7 +94,7 @@ function _format(value, options) {
|
|
94
94
|
return value.toString(options);
|
95
95
|
} else {
|
96
96
|
var entries = Object.keys(value).map(key => {
|
97
|
-
return
|
97
|
+
return stringify(key) + ': ' + format(value[key], options);
|
98
98
|
});
|
99
99
|
return '{' + entries.join(', ') + '}';
|
100
100
|
}
|
@@ -114,24 +114,20 @@ export function stringify(value) {
|
|
114
114
|
var i = 0;
|
115
115
|
while (i < text.length) {
|
116
116
|
var c = text.charAt(i);
|
117
|
-
|
118
|
-
escaped += c;
|
119
|
-
i++;
|
120
|
-
c = text.charAt(i);
|
121
|
-
if (c === '' || '"\\/bfnrtu'.indexOf(c) === -1) {
|
122
|
-
escaped += '\\'; // no valid escape character -> escape it
|
123
|
-
}
|
124
|
-
|
125
|
-
escaped += c;
|
126
|
-
} else if (c === '"') {
|
127
|
-
escaped += '\\"';
|
128
|
-
} else {
|
129
|
-
escaped += c;
|
130
|
-
}
|
117
|
+
escaped += c in controlCharacters ? controlCharacters[c] : c;
|
131
118
|
i++;
|
132
119
|
}
|
133
120
|
return '"' + escaped + '"';
|
134
121
|
}
|
122
|
+
var controlCharacters = {
|
123
|
+
'"': '\\"',
|
124
|
+
'\\': '\\\\',
|
125
|
+
'\b': '\\b',
|
126
|
+
'\f': '\\f',
|
127
|
+
'\n': '\\n',
|
128
|
+
'\r': '\\r',
|
129
|
+
'\t': '\\t'
|
130
|
+
};
|
135
131
|
|
136
132
|
/**
|
137
133
|
* Escape special HTML characters
|
package/lib/esm/version.js
CHANGED
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "mathjs",
|
3
|
-
"version": "11.
|
3
|
+
"version": "11.12.0",
|
4
4
|
"description": "Math.js is an extensive math library for JavaScript and Node.js. It features a flexible expression parser with support for symbolic computation, comes with a large set of built-in functions and constants, and offers an integrated solution to work with different data types like numbers, big numbers, complex numbers, fractions, units, and matrices.",
|
5
5
|
"author": "Jos de Jong <wjosdejong@gmail.com> (https://github.com/josdejong)",
|
6
6
|
"homepage": "https://mathjs.org",
|
@@ -25,7 +25,7 @@
|
|
25
25
|
"unit"
|
26
26
|
],
|
27
27
|
"dependencies": {
|
28
|
-
"@babel/runtime": "^7.23.
|
28
|
+
"@babel/runtime": "^7.23.2",
|
29
29
|
"complex.js": "^2.1.1",
|
30
30
|
"decimal.js": "^10.4.3",
|
31
31
|
"escape-latex": "^1.2.0",
|
@@ -36,27 +36,27 @@
|
|
36
36
|
"typed-function": "^4.1.1"
|
37
37
|
},
|
38
38
|
"devDependencies": {
|
39
|
-
"@babel/core": "7.23.
|
39
|
+
"@babel/core": "7.23.2",
|
40
40
|
"@babel/plugin-transform-object-assign": "7.22.5",
|
41
|
-
"@babel/plugin-transform-runtime": "7.
|
42
|
-
"@babel/preset-env": "7.
|
41
|
+
"@babel/plugin-transform-runtime": "7.23.2",
|
42
|
+
"@babel/preset-env": "7.23.2",
|
43
43
|
"@babel/register": "7.22.15",
|
44
|
-
"@types/assert": "1.5.
|
45
|
-
"@types/mocha": "10.0.
|
46
|
-
"@typescript-eslint/eslint-plugin": "6.
|
47
|
-
"@typescript-eslint/parser": "6.
|
44
|
+
"@types/assert": "1.5.8",
|
45
|
+
"@types/mocha": "10.0.3",
|
46
|
+
"@typescript-eslint/eslint-plugin": "6.9.0",
|
47
|
+
"@typescript-eslint/parser": "6.9.0",
|
48
48
|
"assert": "2.1.0",
|
49
49
|
"babel-loader": "9.1.3",
|
50
50
|
"benchmark": "2.1.4",
|
51
51
|
"c8": "8.0.1",
|
52
52
|
"codecov": "3.8.3",
|
53
|
-
"core-js": "3.33.
|
53
|
+
"core-js": "3.33.1",
|
54
54
|
"del": "6.1.1",
|
55
55
|
"dtslint": "4.2.1",
|
56
|
-
"eslint": "8.
|
56
|
+
"eslint": "8.52.0",
|
57
57
|
"eslint-config-prettier": "9.0.0",
|
58
58
|
"eslint-config-standard": "17.1.0",
|
59
|
-
"eslint-plugin-import": "2.
|
59
|
+
"eslint-plugin-import": "2.29.0",
|
60
60
|
"eslint-plugin-mocha": "10.2.0",
|
61
61
|
"eslint-plugin-n": "16.2.0",
|
62
62
|
"eslint-plugin-prettier": "5.0.1",
|
@@ -90,7 +90,7 @@
|
|
90
90
|
"sylvester": "0.0.21",
|
91
91
|
"ts-node": "10.9.1",
|
92
92
|
"typescript": "5.2.2",
|
93
|
-
"webpack": "5.
|
93
|
+
"webpack": "5.89.0",
|
94
94
|
"zeros": "1.0.0"
|
95
95
|
},
|
96
96
|
"type": "module",
|