mathjs 11.11.2 → 11.12.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 +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",
|