mathjs 11.11.2 → 12.0.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 +48 -0
- package/README.md +1 -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 +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/dependenciesEigs.generated.js +4 -0
- 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 +43 -37
- package/lib/cjs/entry/pureFunctionsNumber.generated.js +16 -13
- package/lib/cjs/expression/embeddedDocs/function/matrix/eigs.js +2 -2
- package/lib/cjs/expression/node/AssignmentNode.js +1 -1
- package/lib/cjs/expression/node/FunctionAssignmentNode.js +1 -1
- 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/function/matrix/eigs/complexEigs.js +73 -68
- package/lib/cjs/function/matrix/eigs/{realSymetric.js → realSymmetric.js} +57 -51
- package/lib/cjs/function/matrix/eigs.js +118 -45
- package/lib/cjs/header.js +2 -2
- package/lib/cjs/type/unit/Unit.js +5 -5
- package/lib/cjs/utils/number.js +1 -1
- 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/dependenciesEigs.generated.js +4 -0
- 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 +42 -37
- package/lib/esm/entry/pureFunctionsNumber.generated.js +16 -13
- package/lib/esm/expression/embeddedDocs/function/matrix/eigs.js +2 -2
- package/lib/esm/expression/node/AssignmentNode.js +1 -1
- package/lib/esm/expression/node/FunctionAssignmentNode.js +1 -1
- 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/function/matrix/eigs/complexEigs.js +73 -68
- package/lib/esm/function/matrix/eigs/{realSymetric.js → realSymmetric.js} +55 -51
- package/lib/esm/function/matrix/eigs.js +119 -47
- package/lib/esm/type/unit/Unit.js +5 -5
- package/lib/esm/utils/number.js +1 -1
- 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 +14 -14
- package/types/EXPLANATION.md +54 -0
- package/types/index.d.ts +6797 -6446
|
@@ -155,6 +155,19 @@ export var createParse = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
155
155
|
undefined
|
|
156
156
|
};
|
|
157
157
|
var NUMERIC_CONSTANTS = ['NaN', 'Infinity'];
|
|
158
|
+
var ESCAPE_CHARACTERS = {
|
|
159
|
+
'"': '"',
|
|
160
|
+
"'": "'",
|
|
161
|
+
'\\': '\\',
|
|
162
|
+
'/': '/',
|
|
163
|
+
b: '\b',
|
|
164
|
+
f: '\f',
|
|
165
|
+
n: '\n',
|
|
166
|
+
r: '\r',
|
|
167
|
+
t: '\t'
|
|
168
|
+
// note that \u is handled separately in parseStringToken()
|
|
169
|
+
};
|
|
170
|
+
|
|
158
171
|
function initialState() {
|
|
159
172
|
return {
|
|
160
173
|
extraNodes: {},
|
|
@@ -1227,7 +1240,7 @@ export var createParse = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
1227
1240
|
node = parseAccessors(state, node);
|
|
1228
1241
|
return node;
|
|
1229
1242
|
}
|
|
1230
|
-
return
|
|
1243
|
+
return parseString(state);
|
|
1231
1244
|
}
|
|
1232
1245
|
|
|
1233
1246
|
/**
|
|
@@ -1313,61 +1326,14 @@ export var createParse = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
1313
1326
|
}
|
|
1314
1327
|
|
|
1315
1328
|
/**
|
|
1316
|
-
* Parse a double
|
|
1329
|
+
* Parse a single or double quoted string.
|
|
1317
1330
|
* @return {Node} node
|
|
1318
1331
|
* @private
|
|
1319
1332
|
*/
|
|
1320
|
-
function
|
|
1333
|
+
function parseString(state) {
|
|
1321
1334
|
var node, str;
|
|
1322
|
-
if (state.token === '"') {
|
|
1323
|
-
str =
|
|
1324
|
-
|
|
1325
|
-
// create constant
|
|
1326
|
-
node = new ConstantNode(str);
|
|
1327
|
-
|
|
1328
|
-
// parse index parameters
|
|
1329
|
-
node = parseAccessors(state, node);
|
|
1330
|
-
return node;
|
|
1331
|
-
}
|
|
1332
|
-
return parseSingleQuotesString(state);
|
|
1333
|
-
}
|
|
1334
|
-
|
|
1335
|
-
/**
|
|
1336
|
-
* Parse a string surrounded by double quotes "..."
|
|
1337
|
-
* @return {string}
|
|
1338
|
-
*/
|
|
1339
|
-
function parseDoubleQuotesStringToken(state) {
|
|
1340
|
-
var str = '';
|
|
1341
|
-
while (currentCharacter(state) !== '' && currentCharacter(state) !== '"') {
|
|
1342
|
-
if (currentCharacter(state) === '\\') {
|
|
1343
|
-
// escape character, immediately process the next
|
|
1344
|
-
// character to prevent stopping at a next '\"'
|
|
1345
|
-
var cNext = nextCharacter(state);
|
|
1346
|
-
if (cNext !== "'") {
|
|
1347
|
-
str += currentCharacter(state);
|
|
1348
|
-
}
|
|
1349
|
-
next(state);
|
|
1350
|
-
}
|
|
1351
|
-
str += currentCharacter(state);
|
|
1352
|
-
next(state);
|
|
1353
|
-
}
|
|
1354
|
-
getToken(state);
|
|
1355
|
-
if (state.token !== '"') {
|
|
1356
|
-
throw createSyntaxError(state, 'End of string " expected');
|
|
1357
|
-
}
|
|
1358
|
-
getToken(state);
|
|
1359
|
-
return JSON.parse('"' + str + '"'); // unescape escaped characters
|
|
1360
|
-
}
|
|
1361
|
-
|
|
1362
|
-
/**
|
|
1363
|
-
* Parse a single quotes string.
|
|
1364
|
-
* @return {Node} node
|
|
1365
|
-
* @private
|
|
1366
|
-
*/
|
|
1367
|
-
function parseSingleQuotesString(state) {
|
|
1368
|
-
var node, str;
|
|
1369
|
-
if (state.token === '\'') {
|
|
1370
|
-
str = parseSingleQuotesStringToken(state);
|
|
1335
|
+
if (state.token === '"' || state.token === "'") {
|
|
1336
|
+
str = parseStringToken(state, state.token);
|
|
1371
1337
|
|
|
1372
1338
|
// create constant
|
|
1373
1339
|
node = new ConstantNode(str);
|
|
@@ -1380,30 +1346,47 @@ export var createParse = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
1380
1346
|
}
|
|
1381
1347
|
|
|
1382
1348
|
/**
|
|
1383
|
-
* Parse a string surrounded by single quotes
|
|
1349
|
+
* Parse a string surrounded by single or double quotes
|
|
1350
|
+
* @param {Object} state
|
|
1351
|
+
* @param {"'" | "\""} quote
|
|
1384
1352
|
* @return {string}
|
|
1385
1353
|
*/
|
|
1386
|
-
function
|
|
1354
|
+
function parseStringToken(state, quote) {
|
|
1387
1355
|
var str = '';
|
|
1388
|
-
while (currentCharacter(state) !== '' && currentCharacter(state) !==
|
|
1356
|
+
while (currentCharacter(state) !== '' && currentCharacter(state) !== quote) {
|
|
1389
1357
|
if (currentCharacter(state) === '\\') {
|
|
1390
|
-
|
|
1391
|
-
|
|
1392
|
-
var
|
|
1393
|
-
if (
|
|
1394
|
-
|
|
1358
|
+
next(state);
|
|
1359
|
+
var char = currentCharacter(state);
|
|
1360
|
+
var escapeChar = ESCAPE_CHARACTERS[char];
|
|
1361
|
+
if (escapeChar !== undefined) {
|
|
1362
|
+
// an escaped control character like \" or \n
|
|
1363
|
+
str += escapeChar;
|
|
1364
|
+
state.index += 1;
|
|
1365
|
+
} else if (char === 'u') {
|
|
1366
|
+
// escaped unicode character
|
|
1367
|
+
var unicode = state.expression.slice(state.index + 1, state.index + 5);
|
|
1368
|
+
if (/^[0-9A-Fa-f]{4}$/.test(unicode)) {
|
|
1369
|
+
// test whether the string holds four hexadecimal values
|
|
1370
|
+
str += String.fromCharCode(parseInt(unicode, 16));
|
|
1371
|
+
state.index += 5;
|
|
1372
|
+
} else {
|
|
1373
|
+
throw createSyntaxError(state, "Invalid unicode character \\u".concat(unicode));
|
|
1374
|
+
}
|
|
1375
|
+
} else {
|
|
1376
|
+
throw createSyntaxError(state, "Bad escape character \\".concat(char));
|
|
1395
1377
|
}
|
|
1378
|
+
} else {
|
|
1379
|
+
// any regular character
|
|
1380
|
+
str += currentCharacter(state);
|
|
1396
1381
|
next(state);
|
|
1397
1382
|
}
|
|
1398
|
-
str += currentCharacter(state);
|
|
1399
|
-
next(state);
|
|
1400
1383
|
}
|
|
1401
1384
|
getToken(state);
|
|
1402
|
-
if (state.token !==
|
|
1403
|
-
throw createSyntaxError(state,
|
|
1385
|
+
if (state.token !== quote) {
|
|
1386
|
+
throw createSyntaxError(state, "End of string ".concat(quote, " expected"));
|
|
1404
1387
|
}
|
|
1405
1388
|
getToken(state);
|
|
1406
|
-
return
|
|
1389
|
+
return str;
|
|
1407
1390
|
}
|
|
1408
1391
|
|
|
1409
1392
|
/**
|
|
@@ -1498,10 +1481,8 @@ export var createParse = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
1498
1481
|
getToken(state);
|
|
1499
1482
|
if (state.token !== '}') {
|
|
1500
1483
|
// parse key
|
|
1501
|
-
if (state.token === '"') {
|
|
1502
|
-
key =
|
|
1503
|
-
} else if (state.token === '\'') {
|
|
1504
|
-
key = parseSingleQuotesStringToken(state);
|
|
1484
|
+
if (state.token === '"' || state.token === "'") {
|
|
1485
|
+
key = parseStringToken(state, state.token);
|
|
1505
1486
|
} else if (state.tokenType === TOKENTYPE.SYMBOL || state.tokenType === TOKENTYPE.DELIMITER && state.token in NAMED_DELIMITERS) {
|
|
1506
1487
|
key = state.token;
|
|
1507
1488
|
getToken(state);
|
package/lib/esm/factoriesAny.js
CHANGED
|
@@ -33,6 +33,7 @@ export { createUnaryPlus } from './function/arithmetic/unaryPlus.js';
|
|
|
33
33
|
export { createAbs } from './function/arithmetic/abs.js';
|
|
34
34
|
export { createApply } from './function/matrix/apply.js';
|
|
35
35
|
export { createAddScalar } from './function/arithmetic/addScalar.js';
|
|
36
|
+
export { createSubtractScalar } from './function/arithmetic/subtractScalar.js';
|
|
36
37
|
export { createCbrt } from './function/arithmetic/cbrt.js';
|
|
37
38
|
export { createCeil } from './function/arithmetic/ceil.js';
|
|
38
39
|
export { createCube } from './function/arithmetic/cube.js';
|
|
@@ -29,6 +29,7 @@ export var createUnaryMinus = /* #__PURE__ */createNumberFactory('unaryMinus', u
|
|
|
29
29
|
export var createUnaryPlus = /* #__PURE__ */createNumberFactory('unaryPlus', unaryPlusNumber);
|
|
30
30
|
export var createAbs = /* #__PURE__ */createNumberFactory('abs', absNumber);
|
|
31
31
|
export var createAddScalar = /* #__PURE__ */createNumberFactory('addScalar', addNumber);
|
|
32
|
+
export var createSubtractScalar = /* #__PURE__ */createNumberFactory('subtractScalar', subtractNumber);
|
|
32
33
|
export var createCbrt = /* #__PURE__ */createNumberFactory('cbrt', cbrtNumber);
|
|
33
34
|
export { createCeilNumber as createCeil } from './function/arithmetic/ceil.js';
|
|
34
35
|
export var createCube = /* #__PURE__ */createNumberFactory('cube', cubeNumber);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { clone } from '../../../utils/object.js';
|
|
2
2
|
import { factory } from '../../../utils/factory.js';
|
|
3
3
|
var name = 'lup';
|
|
4
|
-
var dependencies = ['typed', 'matrix', 'abs', 'addScalar', 'divideScalar', 'multiplyScalar', '
|
|
4
|
+
var dependencies = ['typed', 'matrix', 'abs', 'addScalar', 'divideScalar', 'multiplyScalar', 'subtractScalar', 'larger', 'equalScalar', 'unaryMinus', 'DenseMatrix', 'SparseMatrix', 'Spa'];
|
|
5
5
|
export var createLup = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
6
6
|
var {
|
|
7
7
|
typed,
|
|
@@ -10,7 +10,7 @@ export var createLup = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
10
10
|
addScalar,
|
|
11
11
|
divideScalar,
|
|
12
12
|
multiplyScalar,
|
|
13
|
-
|
|
13
|
+
subtractScalar,
|
|
14
14
|
larger,
|
|
15
15
|
equalScalar,
|
|
16
16
|
unaryMinus,
|
|
@@ -100,7 +100,7 @@ export var createLup = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
100
100
|
// s = l[i, k] - data[k, j]
|
|
101
101
|
s = addScalar(s, multiplyScalar(data[i][k], data[k][j]));
|
|
102
102
|
}
|
|
103
|
-
data[i][j] =
|
|
103
|
+
data[i][j] = subtractScalar(data[i][j], s);
|
|
104
104
|
}
|
|
105
105
|
}
|
|
106
106
|
// row with larger value in cvector, row >= j
|
|
@@ -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
|
}
|