mathjs 7.2.0 → 7.5.1
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 +34 -0
- package/dist/math.js +3421 -2476
- package/dist/math.min.js +5 -5
- package/dist/math.min.map +1 -1
- package/docs/expressions/syntax.md +30 -4
- package/docs/reference/functions/bin.md +38 -0
- package/docs/reference/functions/ceil.md +10 -1
- package/docs/reference/functions/fix.md +10 -2
- package/docs/reference/functions/floor.md +12 -3
- package/docs/reference/functions/hex.md +38 -0
- package/docs/reference/functions/lsolve.md +2 -1
- package/docs/reference/functions/lsolveAll.md +45 -0
- package/docs/reference/functions/oct.md +38 -0
- package/docs/reference/functions/rotationMatrix.md +51 -0
- package/docs/reference/functions/round.md +6 -2
- package/docs/reference/functions/usolve.md +2 -1
- package/docs/reference/functions/usolveAll.md +45 -0
- package/docs/reference/functions.md +8 -2
- package/es/entry/dependenciesAny/dependenciesBin.generated.js +10 -0
- package/es/entry/dependenciesAny/dependenciesCeil.generated.js +4 -0
- package/es/entry/dependenciesAny/dependenciesFix.generated.js +2 -0
- package/es/entry/dependenciesAny/dependenciesFloor.generated.js +4 -0
- package/es/entry/dependenciesAny/dependenciesHex.generated.js +10 -0
- package/es/entry/dependenciesAny/dependenciesLsolveAll.generated.js +22 -0
- package/es/entry/dependenciesAny/dependenciesOct.generated.js +10 -0
- package/es/entry/dependenciesAny/dependenciesRotationMatrix.generated.js +30 -0
- package/es/entry/dependenciesAny/dependenciesUsolveAll.generated.js +22 -0
- package/es/entry/dependenciesAny.generated.js +6 -0
- package/es/entry/impureFunctionsAny.generated.js +63 -57
- package/es/entry/pureFunctionsAny.generated.js +323 -277
- package/es/expression/embeddedDocs/embeddedDocs.js +12 -0
- package/es/expression/embeddedDocs/function/algebra/lsolve.js +2 -2
- package/es/expression/embeddedDocs/function/algebra/lsolveAll.js +8 -0
- package/es/expression/embeddedDocs/function/algebra/usolve.js +2 -2
- package/es/expression/embeddedDocs/function/algebra/usolveAll.js +8 -0
- package/es/expression/embeddedDocs/function/matrix/rotationMatrix.js +8 -0
- package/es/expression/embeddedDocs/function/utils/bin.js +8 -0
- package/es/expression/embeddedDocs/function/utils/hex.js +8 -0
- package/es/expression/embeddedDocs/function/utils/oct.js +8 -0
- package/es/expression/parse.js +28 -1
- package/es/factoriesAny.js +6 -0
- package/es/function/algebra/solver/lsolve.js +42 -69
- package/es/function/algebra/solver/lsolveAll.js +213 -0
- package/es/function/algebra/solver/lusolve.js +12 -27
- package/es/function/algebra/solver/usolve.js +41 -64
- package/es/function/algebra/solver/usolveAll.js +213 -0
- package/es/function/algebra/solver/utils/solveValidation.js +66 -107
- package/es/function/arithmetic/ceil.js +88 -4
- package/es/function/arithmetic/fix.js +43 -6
- package/es/function/arithmetic/floor.js +90 -6
- package/es/function/arithmetic/mod.js +10 -1
- package/es/function/arithmetic/round.js +6 -2
- package/es/function/matrix/rotationMatrix.js +175 -0
- package/es/function/matrix/sqrtm.js +4 -0
- package/es/function/probability/pickRandom.js +2 -6
- package/es/function/statistics/variance.js +4 -4
- package/es/function/string/baseUtils.js +36 -0
- package/es/function/string/bin.js +23 -0
- package/es/function/string/hex.js +23 -0
- package/es/function/string/oct.js +23 -0
- package/es/type/bignumber/BigNumber.js +4 -1
- package/es/type/number.js +10 -0
- package/es/utils/object.js +3 -1
- package/es/version.js +1 -1
- package/examples/advanced/web_server/math_worker.js +1 -1
- package/lib/entry/dependenciesAny/dependenciesBin.generated.js +20 -0
- package/lib/entry/dependenciesAny/dependenciesCeil.generated.js +6 -0
- package/lib/entry/dependenciesAny/dependenciesFix.generated.js +3 -0
- package/lib/entry/dependenciesAny/dependenciesFloor.generated.js +6 -0
- package/lib/entry/dependenciesAny/dependenciesHex.generated.js +20 -0
- package/lib/entry/dependenciesAny/dependenciesLsolveAll.generated.js +38 -0
- package/lib/entry/dependenciesAny/dependenciesOct.generated.js +20 -0
- package/lib/entry/dependenciesAny/dependenciesRotationMatrix.generated.js +50 -0
- package/lib/entry/dependenciesAny/dependenciesUsolveAll.generated.js +38 -0
- package/lib/entry/dependenciesAny.generated.js +48 -0
- package/lib/entry/impureFunctionsAny.generated.js +65 -59
- package/lib/entry/pureFunctionsAny.generated.js +373 -321
- package/lib/expression/embeddedDocs/embeddedDocs.js +18 -0
- package/lib/expression/embeddedDocs/function/algebra/lsolve.js +2 -2
- package/lib/expression/embeddedDocs/function/algebra/lsolveAll.js +15 -0
- package/lib/expression/embeddedDocs/function/algebra/usolve.js +2 -2
- package/lib/expression/embeddedDocs/function/algebra/usolveAll.js +15 -0
- package/lib/expression/embeddedDocs/function/matrix/rotationMatrix.js +15 -0
- package/lib/expression/embeddedDocs/function/utils/bin.js +15 -0
- package/lib/expression/embeddedDocs/function/utils/hex.js +15 -0
- package/lib/expression/embeddedDocs/function/utils/oct.js +15 -0
- package/lib/expression/parse.js +28 -1
- package/lib/factoriesAny.js +48 -0
- package/lib/function/algebra/solver/lsolve.js +42 -69
- package/lib/function/algebra/solver/lsolveAll.js +223 -0
- package/lib/function/algebra/solver/lusolve.js +12 -27
- package/lib/function/algebra/solver/usolve.js +41 -64
- package/lib/function/algebra/solver/usolveAll.js +223 -0
- package/lib/function/algebra/solver/utils/solveValidation.js +65 -106
- package/lib/function/arithmetic/ceil.js +91 -4
- package/lib/function/arithmetic/fix.js +44 -6
- package/lib/function/arithmetic/floor.js +93 -6
- package/lib/function/arithmetic/mod.js +10 -1
- package/lib/function/arithmetic/round.js +6 -2
- package/lib/function/matrix/rotationMatrix.js +185 -0
- package/lib/function/matrix/sqrtm.js +4 -0
- package/lib/function/probability/pickRandom.js +3 -7
- package/lib/function/statistics/variance.js +4 -4
- package/lib/function/string/baseUtils.js +45 -0
- package/lib/function/string/bin.js +31 -0
- package/lib/function/string/hex.js +31 -0
- package/lib/function/string/oct.js +31 -0
- package/lib/header.js +2 -2
- package/lib/type/bignumber/BigNumber.js +3 -1
- package/lib/type/number.js +10 -0
- package/lib/utils/object.js +3 -1
- package/lib/version.js +1 -1
- package/package.json +12 -12
- package/src/entry/dependenciesAny/dependenciesBin.generated.js +11 -0
- package/src/entry/dependenciesAny/dependenciesCeil.generated.js +4 -0
- package/src/entry/dependenciesAny/dependenciesFix.generated.js +2 -0
- package/src/entry/dependenciesAny/dependenciesFloor.generated.js +4 -0
- package/src/entry/dependenciesAny/dependenciesHex.generated.js +11 -0
- package/src/entry/dependenciesAny/dependenciesLsolveAll.generated.js +23 -0
- package/src/entry/dependenciesAny/dependenciesOct.generated.js +11 -0
- package/src/entry/dependenciesAny/dependenciesRotationMatrix.generated.js +31 -0
- package/src/entry/dependenciesAny/dependenciesUsolveAll.generated.js +23 -0
- package/src/entry/dependenciesAny.generated.js +6 -0
- package/src/entry/impureFunctionsAny.generated.js +104 -92
- package/src/entry/pureFunctionsAny.generated.js +94 -82
- package/src/expression/embeddedDocs/embeddedDocs.js +12 -0
- package/src/expression/embeddedDocs/function/algebra/lsolve.js +2 -2
- package/src/expression/embeddedDocs/function/algebra/lsolveAll.js +17 -0
- package/src/expression/embeddedDocs/function/algebra/usolve.js +2 -2
- package/src/expression/embeddedDocs/function/algebra/usolveAll.js +15 -0
- package/src/expression/embeddedDocs/function/matrix/rotationMatrix.js +19 -0
- package/src/expression/embeddedDocs/function/utils/bin.js +12 -0
- package/src/expression/embeddedDocs/function/utils/hex.js +12 -0
- package/src/expression/embeddedDocs/function/utils/oct.js +12 -0
- package/src/expression/parse.js +25 -0
- package/src/factoriesAny.js +6 -0
- package/src/function/algebra/solver/lsolve.js +52 -58
- package/src/function/algebra/solver/lsolveAll.js +197 -0
- package/src/function/algebra/solver/lusolve.js +9 -19
- package/src/function/algebra/solver/usolve.js +52 -55
- package/src/function/algebra/solver/usolveAll.js +199 -0
- package/src/function/algebra/solver/utils/solveValidation.js +78 -86
- package/src/function/arithmetic/ceil.js +63 -3
- package/src/function/arithmetic/fix.js +45 -6
- package/src/function/arithmetic/floor.js +65 -5
- package/src/function/arithmetic/mod.js +8 -1
- package/src/function/arithmetic/round.js +6 -2
- package/src/function/matrix/rotationMatrix.js +185 -0
- package/src/function/matrix/sqrtm.js +4 -0
- package/src/function/probability/pickRandom.js +2 -6
- package/src/function/statistics/variance.js +4 -4
- package/src/function/string/baseUtils.js +29 -0
- package/src/function/string/bin.js +23 -0
- package/src/function/string/hex.js +23 -0
- package/src/function/string/oct.js +24 -0
- package/src/type/bignumber/BigNumber.js +2 -1
- package/src/type/number.js +9 -1
- package/src/utils/object.js +3 -1
- package/src/version.js +1 -1
|
@@ -27,6 +27,12 @@ var _isNaN = require("./function/utils/isNaN");
|
|
|
27
27
|
|
|
28
28
|
var _format = require("./function/utils/format");
|
|
29
29
|
|
|
30
|
+
var _bin = require("./function/utils/bin");
|
|
31
|
+
|
|
32
|
+
var _oct = require("./function/utils/oct");
|
|
33
|
+
|
|
34
|
+
var _hex = require("./function/utils/hex");
|
|
35
|
+
|
|
30
36
|
var _clone = require("./function/utils/clone");
|
|
31
37
|
|
|
32
38
|
var _to = require("./function/units/to");
|
|
@@ -343,6 +349,8 @@ var _qr = require("./function/algebra/qr");
|
|
|
343
349
|
|
|
344
350
|
var _usolve = require("./function/algebra/usolve");
|
|
345
351
|
|
|
352
|
+
var _usolveAll = require("./function/algebra/usolveAll");
|
|
353
|
+
|
|
346
354
|
var _slu = require("./function/algebra/slu");
|
|
347
355
|
|
|
348
356
|
var _rationalize = require("./function/algebra/rationalize");
|
|
@@ -353,6 +361,8 @@ var _lup = require("./function/algebra/lup");
|
|
|
353
361
|
|
|
354
362
|
var _lsolve = require("./function/algebra/lsolve");
|
|
355
363
|
|
|
364
|
+
var _lsolveAll = require("./function/algebra/lsolveAll");
|
|
365
|
+
|
|
356
366
|
var _derivative = require("./function/algebra/derivative");
|
|
357
367
|
|
|
358
368
|
var _version = require("./constants/version");
|
|
@@ -427,6 +437,8 @@ var _column = require("./function/matrix/column");
|
|
|
427
437
|
|
|
428
438
|
var _row = require("./function/matrix/row");
|
|
429
439
|
|
|
440
|
+
var _rotationMatrix = require("./function/matrix/rotationMatrix");
|
|
441
|
+
|
|
430
442
|
var embeddedDocs = {
|
|
431
443
|
// construction functions
|
|
432
444
|
bignumber: _bignumber.bignumberDocs,
|
|
@@ -668,12 +680,14 @@ var embeddedDocs = {
|
|
|
668
680
|
// functions - algebra
|
|
669
681
|
derivative: _derivative.derivativeDocs,
|
|
670
682
|
lsolve: _lsolve.lsolveDocs,
|
|
683
|
+
lsolveAll: _lsolveAll.lsolveAllDocs,
|
|
671
684
|
lup: _lup.lupDocs,
|
|
672
685
|
lusolve: _lusolve.lusolveDocs,
|
|
673
686
|
simplify: _simplify.simplifyDocs,
|
|
674
687
|
rationalize: _rationalize.rationalizeDocs,
|
|
675
688
|
slu: _slu.sluDocs,
|
|
676
689
|
usolve: _usolve.usolveDocs,
|
|
690
|
+
usolveAll: _usolveAll.usolveAllDocs,
|
|
677
691
|
qr: _qr.qrDocs,
|
|
678
692
|
// functions - arithmetic
|
|
679
693
|
abs: _abs.absDocs,
|
|
@@ -768,6 +782,7 @@ var embeddedDocs = {
|
|
|
768
782
|
range: _range.rangeDocs,
|
|
769
783
|
resize: _resize.resizeDocs,
|
|
770
784
|
reshape: _reshape.reshapeDocs,
|
|
785
|
+
rotationMatrix: _rotationMatrix.rotationMatrixDocs,
|
|
771
786
|
row: _row.rowDocs,
|
|
772
787
|
size: _size.sizeDocs,
|
|
773
788
|
sort: _sort.sortDocs,
|
|
@@ -856,6 +871,9 @@ var embeddedDocs = {
|
|
|
856
871
|
// functions - utils
|
|
857
872
|
clone: _clone.cloneDocs,
|
|
858
873
|
format: _format.formatDocs,
|
|
874
|
+
bin: _bin.binDocs,
|
|
875
|
+
oct: _oct.octDocs,
|
|
876
|
+
hex: _hex.hexDocs,
|
|
859
877
|
isNaN: _isNaN.isNaNDocs,
|
|
860
878
|
isInteger: _isInteger.isIntegerDocs,
|
|
861
879
|
isNegative: _isNegative.isNegativeDocs,
|
|
@@ -8,8 +8,8 @@ var lsolveDocs = {
|
|
|
8
8
|
name: 'lsolve',
|
|
9
9
|
category: 'Algebra',
|
|
10
10
|
syntax: ['x=lsolve(L, b)'],
|
|
11
|
-
description: '
|
|
11
|
+
description: 'Finds one solution of the linear system L * x = b where L is an [n x n] lower triangular matrix and b is a [n] column vector.',
|
|
12
12
|
examples: ['a = [-2, 3; 2, 1]', 'b = [11, 9]', 'x = lsolve(a, b)'],
|
|
13
|
-
seealso: ['lup', 'lusolve', 'usolve', 'matrix', 'sparse']
|
|
13
|
+
seealso: ['lsolveAll', 'lup', 'lusolve', 'usolve', 'matrix', 'sparse']
|
|
14
14
|
};
|
|
15
15
|
exports.lsolveDocs = lsolveDocs;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.lsolveAllDocs = void 0;
|
|
7
|
+
var lsolveAllDocs = {
|
|
8
|
+
name: 'lsolveAll',
|
|
9
|
+
category: 'Algebra',
|
|
10
|
+
syntax: ['x=lsolveAll(L, b)'],
|
|
11
|
+
description: 'Finds all solutions of the linear system L * x = b where L is an [n x n] lower triangular matrix and b is a [n] column vector.',
|
|
12
|
+
examples: ['a = [-2, 3; 2, 1]', 'b = [11, 9]', 'x = lsolve(a, b)'],
|
|
13
|
+
seealso: ['lsolve', 'lup', 'lusolve', 'usolve', 'matrix', 'sparse']
|
|
14
|
+
};
|
|
15
|
+
exports.lsolveAllDocs = lsolveAllDocs;
|
|
@@ -8,8 +8,8 @@ var usolveDocs = {
|
|
|
8
8
|
name: 'usolve',
|
|
9
9
|
category: 'Algebra',
|
|
10
10
|
syntax: ['x=usolve(U, b)'],
|
|
11
|
-
description: '
|
|
11
|
+
description: 'Finds one solution of the linear system U * x = b where U is an [n x n] upper triangular matrix and b is a [n] column vector.',
|
|
12
12
|
examples: ['x=usolve(sparse([1, 1, 1, 1; 0, 1, 1, 1; 0, 0, 1, 1; 0, 0, 0, 1]), [1; 2; 3; 4])'],
|
|
13
|
-
seealso: ['lup', 'lusolve', 'lsolve', 'matrix', 'sparse']
|
|
13
|
+
seealso: ['usolveAll', 'lup', 'lusolve', 'lsolve', 'matrix', 'sparse']
|
|
14
14
|
};
|
|
15
15
|
exports.usolveDocs = usolveDocs;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.usolveAllDocs = void 0;
|
|
7
|
+
var usolveAllDocs = {
|
|
8
|
+
name: 'usolveAll',
|
|
9
|
+
category: 'Algebra',
|
|
10
|
+
syntax: ['x=usolve(U, b)'],
|
|
11
|
+
description: 'Finds all solutions of the linear system U * x = b where U is an [n x n] upper triangular matrix and b is a [n] column vector.',
|
|
12
|
+
examples: ['x=usolve(sparse([1, 1, 1, 1; 0, 1, 1, 1; 0, 0, 1, 1; 0, 0, 0, 1]), [1; 2; 3; 4])'],
|
|
13
|
+
seealso: ['usolve', 'lup', 'lusolve', 'lsolve', 'matrix', 'sparse']
|
|
14
|
+
};
|
|
15
|
+
exports.usolveAllDocs = usolveAllDocs;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.rotationMatrixDocs = void 0;
|
|
7
|
+
var rotationMatrixDocs = {
|
|
8
|
+
name: 'rotationMatrix',
|
|
9
|
+
category: 'Matrix',
|
|
10
|
+
syntax: ['rotationMatrix(theta)', 'rotationMatrix(theta, v)', 'rotationMatrix(theta, v, format)'],
|
|
11
|
+
description: 'Returns a 2-D rotation matrix (2x2) for a given angle (in radians). ' + 'Returns a 2-D rotation matrix (3x3) of a given angle (in radians) around given axis.',
|
|
12
|
+
examples: ['rotationMatrix(pi / 2)', 'rotationMatrix(unit("45deg"), [0, 0, 1])', 'rotationMatrix(1, matrix([0, 0, 1]), "sparse")'],
|
|
13
|
+
seealso: ['cos', 'sin']
|
|
14
|
+
};
|
|
15
|
+
exports.rotationMatrixDocs = rotationMatrixDocs;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.binDocs = void 0;
|
|
7
|
+
var binDocs = {
|
|
8
|
+
name: 'bin',
|
|
9
|
+
category: 'Utils',
|
|
10
|
+
syntax: ['bin(value)'],
|
|
11
|
+
description: 'Format a number as binary',
|
|
12
|
+
examples: ['bin(2)'],
|
|
13
|
+
seealso: ['oct', 'hex']
|
|
14
|
+
};
|
|
15
|
+
exports.binDocs = binDocs;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.hexDocs = void 0;
|
|
7
|
+
var hexDocs = {
|
|
8
|
+
name: 'hex',
|
|
9
|
+
category: 'Utils',
|
|
10
|
+
syntax: ['hex(value)'],
|
|
11
|
+
description: 'Format a number as hexadecimal',
|
|
12
|
+
examples: ['hex(240)'],
|
|
13
|
+
seealso: ['bin', 'oct']
|
|
14
|
+
};
|
|
15
|
+
exports.hexDocs = hexDocs;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.octDocs = void 0;
|
|
7
|
+
var octDocs = {
|
|
8
|
+
name: 'oct',
|
|
9
|
+
category: 'Utils',
|
|
10
|
+
syntax: ['oct(value)'],
|
|
11
|
+
description: 'Format a number as octal',
|
|
12
|
+
examples: ['oct(56)'],
|
|
13
|
+
seealso: ['bin', 'hex']
|
|
14
|
+
};
|
|
15
|
+
exports.octDocs = octDocs;
|
package/lib/expression/parse.js
CHANGED
|
@@ -313,7 +313,24 @@ var createParse = /* #__PURE__ */(0, _factory.factory)(name, dependencies, funct
|
|
|
313
313
|
|
|
314
314
|
|
|
315
315
|
if (parse.isDigitDot(c1)) {
|
|
316
|
-
state.tokenType = TOKENTYPE.NUMBER; //
|
|
316
|
+
state.tokenType = TOKENTYPE.NUMBER; // check for binary, octal, or hex
|
|
317
|
+
|
|
318
|
+
var _c = currentString(state, 2);
|
|
319
|
+
|
|
320
|
+
if (_c === '0b' || _c === '0o' || _c === '0x') {
|
|
321
|
+
state.token += currentCharacter(state);
|
|
322
|
+
next(state);
|
|
323
|
+
state.token += currentCharacter(state);
|
|
324
|
+
next(state);
|
|
325
|
+
|
|
326
|
+
while (parse.isHexDigit(currentCharacter(state))) {
|
|
327
|
+
state.token += currentCharacter(state);
|
|
328
|
+
next(state);
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
return;
|
|
332
|
+
} // get number, can have a single dot
|
|
333
|
+
|
|
317
334
|
|
|
318
335
|
if (currentCharacter(state) === '.') {
|
|
319
336
|
state.token += currentCharacter(state);
|
|
@@ -525,6 +542,16 @@ var createParse = /* #__PURE__ */(0, _factory.factory)(name, dependencies, funct
|
|
|
525
542
|
parse.isDigit = function isDigit(c) {
|
|
526
543
|
return c >= '0' && c <= '9';
|
|
527
544
|
};
|
|
545
|
+
/**
|
|
546
|
+
* checks if the given char c is a hex digit
|
|
547
|
+
* @param {string} c a string with one character
|
|
548
|
+
* @return {boolean}
|
|
549
|
+
*/
|
|
550
|
+
|
|
551
|
+
|
|
552
|
+
parse.isHexDigit = function isHexDigit(c) {
|
|
553
|
+
return c >= '0' && c <= '9' || c >= 'a' && c <= 'f' || c >= 'A' && c <= 'F';
|
|
554
|
+
};
|
|
528
555
|
/**
|
|
529
556
|
* Start of the parse levels below, in order of precedence
|
|
530
557
|
* @return {Node} node
|
package/lib/factoriesAny.js
CHANGED
|
@@ -483,6 +483,12 @@ Object.defineProperty(exports, "createResize", {
|
|
|
483
483
|
return _resize.createResize;
|
|
484
484
|
}
|
|
485
485
|
});
|
|
486
|
+
Object.defineProperty(exports, "createRotationMatrix", {
|
|
487
|
+
enumerable: true,
|
|
488
|
+
get: function get() {
|
|
489
|
+
return _rotationMatrix.createRotationMatrix;
|
|
490
|
+
}
|
|
491
|
+
});
|
|
486
492
|
Object.defineProperty(exports, "createRow", {
|
|
487
493
|
enumerable: true,
|
|
488
494
|
get: function get() {
|
|
@@ -549,6 +555,24 @@ Object.defineProperty(exports, "createFormat", {
|
|
|
549
555
|
return _format.createFormat;
|
|
550
556
|
}
|
|
551
557
|
});
|
|
558
|
+
Object.defineProperty(exports, "createBin", {
|
|
559
|
+
enumerable: true,
|
|
560
|
+
get: function get() {
|
|
561
|
+
return _bin.createBin;
|
|
562
|
+
}
|
|
563
|
+
});
|
|
564
|
+
Object.defineProperty(exports, "createOct", {
|
|
565
|
+
enumerable: true,
|
|
566
|
+
get: function get() {
|
|
567
|
+
return _oct.createOct;
|
|
568
|
+
}
|
|
569
|
+
});
|
|
570
|
+
Object.defineProperty(exports, "createHex", {
|
|
571
|
+
enumerable: true,
|
|
572
|
+
get: function get() {
|
|
573
|
+
return _hex.createHex;
|
|
574
|
+
}
|
|
575
|
+
});
|
|
552
576
|
Object.defineProperty(exports, "createPrint", {
|
|
553
577
|
enumerable: true,
|
|
554
578
|
get: function get() {
|
|
@@ -633,6 +657,18 @@ Object.defineProperty(exports, "createUsolve", {
|
|
|
633
657
|
return _usolve.createUsolve;
|
|
634
658
|
}
|
|
635
659
|
});
|
|
660
|
+
Object.defineProperty(exports, "createLsolveAll", {
|
|
661
|
+
enumerable: true,
|
|
662
|
+
get: function get() {
|
|
663
|
+
return _lsolveAll.createLsolveAll;
|
|
664
|
+
}
|
|
665
|
+
});
|
|
666
|
+
Object.defineProperty(exports, "createUsolveAll", {
|
|
667
|
+
enumerable: true,
|
|
668
|
+
get: function get() {
|
|
669
|
+
return _usolveAll.createUsolveAll;
|
|
670
|
+
}
|
|
671
|
+
});
|
|
636
672
|
Object.defineProperty(exports, "createLeftShift", {
|
|
637
673
|
enumerable: true,
|
|
638
674
|
get: function get() {
|
|
@@ -2096,6 +2132,8 @@ var _reshape = require("./function/matrix/reshape");
|
|
|
2096
2132
|
|
|
2097
2133
|
var _resize = require("./function/matrix/resize");
|
|
2098
2134
|
|
|
2135
|
+
var _rotationMatrix = require("./function/matrix/rotationMatrix");
|
|
2136
|
+
|
|
2099
2137
|
var _row = require("./function/matrix/row");
|
|
2100
2138
|
|
|
2101
2139
|
var _size = require("./function/matrix/size");
|
|
@@ -2118,6 +2156,12 @@ var _prod = require("./function/statistics/prod");
|
|
|
2118
2156
|
|
|
2119
2157
|
var _format = require("./function/string/format");
|
|
2120
2158
|
|
|
2159
|
+
var _bin = require("./function/string/bin");
|
|
2160
|
+
|
|
2161
|
+
var _oct = require("./function/string/oct");
|
|
2162
|
+
|
|
2163
|
+
var _hex = require("./function/string/hex");
|
|
2164
|
+
|
|
2121
2165
|
var _print = require("./function/string/print");
|
|
2122
2166
|
|
|
2123
2167
|
var _to = require("./function/unit/to");
|
|
@@ -2146,6 +2190,10 @@ var _lsolve = require("./function/algebra/solver/lsolve");
|
|
|
2146
2190
|
|
|
2147
2191
|
var _usolve = require("./function/algebra/solver/usolve");
|
|
2148
2192
|
|
|
2193
|
+
var _lsolveAll = require("./function/algebra/solver/lsolveAll");
|
|
2194
|
+
|
|
2195
|
+
var _usolveAll = require("./function/algebra/solver/usolveAll");
|
|
2196
|
+
|
|
2149
2197
|
var _leftShift = require("./function/bitwise/leftShift");
|
|
2150
2198
|
|
|
2151
2199
|
var _rightArithShift = require("./function/bitwise/rightArithShift");
|
|
@@ -23,7 +23,7 @@ var createLsolve = /* #__PURE__ */(0, _factory.factory)(name, dependencies, func
|
|
|
23
23
|
DenseMatrix: DenseMatrix
|
|
24
24
|
});
|
|
25
25
|
/**
|
|
26
|
-
*
|
|
26
|
+
* Finds one solution of a linear equation system by forwards substitution. Matrix must be a lower triangular matrix. Throws an error if there's no solution.
|
|
27
27
|
*
|
|
28
28
|
* `L * x = b`
|
|
29
29
|
*
|
|
@@ -39,7 +39,7 @@ var createLsolve = /* #__PURE__ */(0, _factory.factory)(name, dependencies, func
|
|
|
39
39
|
*
|
|
40
40
|
* See also:
|
|
41
41
|
*
|
|
42
|
-
* lup, slu, usolve, lusolve
|
|
42
|
+
* lsolveAll, lup, slu, usolve, lusolve
|
|
43
43
|
*
|
|
44
44
|
* @param {Matrix, Array} L A N x N matrix or array (L)
|
|
45
45
|
* @param {Matrix, Array} b A column vector with the b values
|
|
@@ -49,19 +49,15 @@ var createLsolve = /* #__PURE__ */(0, _factory.factory)(name, dependencies, func
|
|
|
49
49
|
|
|
50
50
|
return typed(name, {
|
|
51
51
|
'SparseMatrix, Array | Matrix': function SparseMatrixArrayMatrix(m, b) {
|
|
52
|
-
// process matrix
|
|
53
52
|
return _sparseForwardSubstitution(m, b);
|
|
54
53
|
},
|
|
55
54
|
'DenseMatrix, Array | Matrix': function DenseMatrixArrayMatrix(m, b) {
|
|
56
|
-
// process matrix
|
|
57
55
|
return _denseForwardSubstitution(m, b);
|
|
58
56
|
},
|
|
59
57
|
'Array, Array | Matrix': function ArrayArrayMatrix(a, b) {
|
|
60
|
-
|
|
61
|
-
var m = matrix(a); // use matrix implementation
|
|
62
|
-
|
|
63
|
-
var r = _denseForwardSubstitution(m, b); // result
|
|
58
|
+
var m = matrix(a);
|
|
64
59
|
|
|
60
|
+
var r = _denseForwardSubstitution(m, b);
|
|
65
61
|
|
|
66
62
|
return r.valueOf();
|
|
67
63
|
}
|
|
@@ -69,48 +65,38 @@ var createLsolve = /* #__PURE__ */(0, _factory.factory)(name, dependencies, func
|
|
|
69
65
|
|
|
70
66
|
function _denseForwardSubstitution(m, b) {
|
|
71
67
|
// validate matrix and vector, return copy of column vector b
|
|
72
|
-
b = solveValidation(m, b, true);
|
|
73
|
-
|
|
74
|
-
var bdata = b._data; // rows & columns
|
|
75
|
-
|
|
68
|
+
b = solveValidation(m, b, true);
|
|
69
|
+
var bdata = b._data;
|
|
76
70
|
var rows = m._size[0];
|
|
77
71
|
var columns = m._size[1]; // result
|
|
78
72
|
|
|
79
|
-
var x = [];
|
|
80
|
-
|
|
81
|
-
var data = m._data; // forward solve m * x = b, loop columns
|
|
73
|
+
var x = [];
|
|
74
|
+
var mdata = m._data; // loop columns
|
|
82
75
|
|
|
83
76
|
for (var j = 0; j < columns; j++) {
|
|
84
|
-
|
|
85
|
-
var
|
|
86
|
-
|
|
87
|
-
var xj = void 0; // forward substitution (outer product) avoids inner looping when bj === 0
|
|
77
|
+
var bj = bdata[j][0] || 0;
|
|
78
|
+
var xj = void 0;
|
|
88
79
|
|
|
89
80
|
if (!equalScalar(bj, 0)) {
|
|
90
|
-
//
|
|
91
|
-
var vjj =
|
|
81
|
+
// non-degenerate row, find solution
|
|
82
|
+
var vjj = mdata[j][j];
|
|
92
83
|
|
|
93
84
|
if (equalScalar(vjj, 0)) {
|
|
94
|
-
// system cannot be solved
|
|
95
85
|
throw new Error('Linear system cannot be solved since matrix is singular');
|
|
96
|
-
}
|
|
97
|
-
|
|
86
|
+
}
|
|
98
87
|
|
|
99
88
|
xj = divideScalar(bj, vjj); // loop rows
|
|
100
89
|
|
|
101
90
|
for (var i = j + 1; i < rows; i++) {
|
|
102
|
-
|
|
103
|
-
bdata[i] = [subtract(bdata[i][0] || 0, multiplyScalar(xj, data[i][j]))];
|
|
91
|
+
bdata[i] = [subtract(bdata[i][0] || 0, multiplyScalar(xj, mdata[i][j]))];
|
|
104
92
|
}
|
|
105
93
|
} else {
|
|
106
|
-
//
|
|
94
|
+
// degenerate row, we can choose any value
|
|
107
95
|
xj = 0;
|
|
108
|
-
}
|
|
109
|
-
|
|
96
|
+
}
|
|
110
97
|
|
|
111
98
|
x[j] = [xj];
|
|
112
|
-
}
|
|
113
|
-
|
|
99
|
+
}
|
|
114
100
|
|
|
115
101
|
return new DenseMatrix({
|
|
116
102
|
data: x,
|
|
@@ -120,72 +106,59 @@ var createLsolve = /* #__PURE__ */(0, _factory.factory)(name, dependencies, func
|
|
|
120
106
|
|
|
121
107
|
function _sparseForwardSubstitution(m, b) {
|
|
122
108
|
// validate matrix and vector, return copy of column vector b
|
|
123
|
-
b = solveValidation(m, b, true);
|
|
124
|
-
|
|
125
|
-
var bdata = b._data; // rows & columns
|
|
126
|
-
|
|
109
|
+
b = solveValidation(m, b, true);
|
|
110
|
+
var bdata = b._data;
|
|
127
111
|
var rows = m._size[0];
|
|
128
|
-
var columns = m._size[1];
|
|
129
|
-
|
|
112
|
+
var columns = m._size[1];
|
|
130
113
|
var values = m._values;
|
|
131
114
|
var index = m._index;
|
|
132
|
-
var ptr = m._ptr; //
|
|
115
|
+
var ptr = m._ptr; // result
|
|
133
116
|
|
|
134
|
-
var
|
|
135
|
-
|
|
136
|
-
var x = []; // forward solve m * x = b, loop columns
|
|
117
|
+
var x = []; // loop columns
|
|
137
118
|
|
|
138
119
|
for (var j = 0; j < columns; j++) {
|
|
139
|
-
|
|
140
|
-
var bj = bdata[j][0] || 0; // forward substitution (outer product) avoids inner looping when bj === 0
|
|
120
|
+
var bj = bdata[j][0] || 0;
|
|
141
121
|
|
|
142
122
|
if (!equalScalar(bj, 0)) {
|
|
143
|
-
//
|
|
144
|
-
var vjj = 0; //
|
|
123
|
+
// non-degenerate row, find solution
|
|
124
|
+
var vjj = 0; // matrix values & indices (column j)
|
|
145
125
|
|
|
146
|
-
var
|
|
147
|
-
var
|
|
126
|
+
var jValues = [];
|
|
127
|
+
var jIndices = []; // first and last index in the column
|
|
148
128
|
|
|
149
|
-
var
|
|
129
|
+
var firstIndex = ptr[j];
|
|
130
|
+
var lastIndex = ptr[j + 1]; // values in column, find value at [j, j]
|
|
150
131
|
|
|
151
|
-
for (k =
|
|
152
|
-
// row
|
|
153
|
-
i = index[k]; // check row (rows are not sorted!)
|
|
132
|
+
for (var k = firstIndex; k < lastIndex; k++) {
|
|
133
|
+
var i = index[k]; // check row (rows are not sorted!)
|
|
154
134
|
|
|
155
135
|
if (i === j) {
|
|
156
|
-
// update vjj
|
|
157
136
|
vjj = values[k];
|
|
158
137
|
} else if (i > j) {
|
|
159
138
|
// store lower triangular
|
|
160
|
-
|
|
161
|
-
|
|
139
|
+
jValues.push(values[k]);
|
|
140
|
+
jIndices.push(i);
|
|
162
141
|
}
|
|
163
|
-
} // at this point we must have a value
|
|
142
|
+
} // at this point we must have a value in vjj
|
|
164
143
|
|
|
165
144
|
|
|
166
145
|
if (equalScalar(vjj, 0)) {
|
|
167
|
-
// system cannot be solved, there is no value @ [j, j]
|
|
168
146
|
throw new Error('Linear system cannot be solved since matrix is singular');
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
var xj = divideScalar(bj, vjj); // loop lower triangular
|
|
173
|
-
|
|
174
|
-
for (k = 0, l = jindex.length; k < l; k++) {
|
|
175
|
-
// row
|
|
176
|
-
i = jindex[k]; // update copy of b
|
|
147
|
+
}
|
|
177
148
|
|
|
178
|
-
|
|
179
|
-
} // update x
|
|
149
|
+
var xj = divideScalar(bj, vjj);
|
|
180
150
|
|
|
151
|
+
for (var _k = 0, l = jIndices.length; _k < l; _k++) {
|
|
152
|
+
var _i = jIndices[_k];
|
|
153
|
+
bdata[_i] = [subtract(bdata[_i][0] || 0, multiplyScalar(xj, jValues[_k]))];
|
|
154
|
+
}
|
|
181
155
|
|
|
182
156
|
x[j] = [xj];
|
|
183
157
|
} else {
|
|
184
|
-
//
|
|
158
|
+
// degenerate row, we can choose any value
|
|
185
159
|
x[j] = [0];
|
|
186
160
|
}
|
|
187
|
-
}
|
|
188
|
-
|
|
161
|
+
}
|
|
189
162
|
|
|
190
163
|
return new DenseMatrix({
|
|
191
164
|
data: x,
|