mathjs 7.2.0 → 7.5.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
@@ -0,0 +1,175 @@
|
|
1
|
+
import { isBigNumber } from '../../utils/is';
|
2
|
+
import { factory } from '../../utils/factory';
|
3
|
+
var name = 'rotationMatrix';
|
4
|
+
var dependencies = ['typed', 'config', 'multiplyScalar', 'addScalar', 'unaryMinus', 'norm', 'matrix', 'BigNumber', 'DenseMatrix', 'SparseMatrix', 'cos', 'sin'];
|
5
|
+
export var createRotationMatrix = /* #__PURE__ */factory(name, dependencies, function (_ref) {
|
6
|
+
var typed = _ref.typed,
|
7
|
+
config = _ref.config,
|
8
|
+
multiplyScalar = _ref.multiplyScalar,
|
9
|
+
addScalar = _ref.addScalar,
|
10
|
+
unaryMinus = _ref.unaryMinus,
|
11
|
+
norm = _ref.norm,
|
12
|
+
BigNumber = _ref.BigNumber,
|
13
|
+
matrix = _ref.matrix,
|
14
|
+
DenseMatrix = _ref.DenseMatrix,
|
15
|
+
SparseMatrix = _ref.SparseMatrix,
|
16
|
+
cos = _ref.cos,
|
17
|
+
sin = _ref.sin;
|
18
|
+
|
19
|
+
/**
|
20
|
+
* Create a 2-dimensional counter-clockwise rotation matrix (2x2) for a given angle (expressed in radians).
|
21
|
+
* Create a 2-dimensional counter-clockwise rotation matrix (3x3) by a given angle (expressed in radians) around a given axis (1x3).
|
22
|
+
*
|
23
|
+
* Syntax:
|
24
|
+
*
|
25
|
+
* math.rotationMatrix(theta)
|
26
|
+
* math.rotationMatrix(theta, format)
|
27
|
+
* math.rotationMatrix(theta, [v])
|
28
|
+
* math.rotationMatrix(theta, [v], format)
|
29
|
+
*
|
30
|
+
* Examples:
|
31
|
+
*
|
32
|
+
* math.rotationMatrix(math.pi / 2) // returns [[0, -1], [1, 0]]
|
33
|
+
* math.rotationMatrix(math.bignumber(45)) // returns [[ bignumber(1 / sqrt(2)), - bignumber(1 / sqrt(2))], [ bignumber(1 / sqrt(2)), bignumber(1 / sqrt(2))]]
|
34
|
+
* math.rotationMatrix(math.complex(1 + i)) // returns [[cos(1 + i), -sin(1 + i)], [sin(1 + i), cos(1 + i)]]
|
35
|
+
* math.rotationMatrix(math.unit('1rad')) // returns [[cos(1), -sin(1)], [sin(1), cos(1)]]
|
36
|
+
*
|
37
|
+
* math.rotationMatrix(math.pi / 2, [0, 1, 0]) // returns [[0, 0, 1], [0, 1, 0], [-1, 0, 0]]
|
38
|
+
* math.rotationMatrix(math.pi / 2, matrix([0, 1, 0])) // returns matrix([[0, 0, 1], [0, 1, 0], [-1, 0, 0]])
|
39
|
+
*
|
40
|
+
*
|
41
|
+
* See also:
|
42
|
+
*
|
43
|
+
* matrix, cos, sin
|
44
|
+
*
|
45
|
+
*
|
46
|
+
* @param {number | BigNumber | Complex | Unit} theta Rotation angle
|
47
|
+
* @param {Array | Matrix} [v] Rotation axis
|
48
|
+
* @param {string} [format] Result Matrix storage format
|
49
|
+
* @return {Array | Matrix} Rotation matrix
|
50
|
+
*/
|
51
|
+
return typed(name, {
|
52
|
+
'': function _() {
|
53
|
+
return config.matrix === 'Matrix' ? matrix([]) : [];
|
54
|
+
},
|
55
|
+
string: function string(format) {
|
56
|
+
return matrix(format);
|
57
|
+
},
|
58
|
+
'number | BigNumber | Complex | Unit': function numberBigNumberComplexUnit(theta) {
|
59
|
+
return _rotationMatrix2x2(theta, config.matrix === 'Matrix' ? 'dense' : undefined);
|
60
|
+
},
|
61
|
+
'number | BigNumber | Complex | Unit, string': function numberBigNumberComplexUnitString(theta, format) {
|
62
|
+
return _rotationMatrix2x2(theta, format);
|
63
|
+
},
|
64
|
+
'number | BigNumber | Complex | Unit, Array': function numberBigNumberComplexUnitArray(theta, v) {
|
65
|
+
var matrixV = matrix(v);
|
66
|
+
|
67
|
+
_validateVector(matrixV);
|
68
|
+
|
69
|
+
return _rotationMatrix3x3(theta, matrixV, config.matrix === 'Matrix' ? 'dense' : undefined);
|
70
|
+
},
|
71
|
+
'number | BigNumber | Complex | Unit, Matrix': function numberBigNumberComplexUnitMatrix(theta, v) {
|
72
|
+
_validateVector(v);
|
73
|
+
|
74
|
+
return _rotationMatrix3x3(theta, v, config.matrix === 'Matrix' ? 'dense' : undefined);
|
75
|
+
},
|
76
|
+
'number | BigNumber | Complex | Unit, Array, string': function numberBigNumberComplexUnitArrayString(theta, v, format) {
|
77
|
+
var matrixV = matrix(v);
|
78
|
+
|
79
|
+
_validateVector(matrixV);
|
80
|
+
|
81
|
+
return _rotationMatrix3x3(theta, matrixV, format);
|
82
|
+
},
|
83
|
+
'number | BigNumber | Complex | Unit, Matrix, string': function numberBigNumberComplexUnitMatrixString(theta, v, format) {
|
84
|
+
_validateVector(v);
|
85
|
+
|
86
|
+
return _rotationMatrix3x3(theta, v, format);
|
87
|
+
}
|
88
|
+
});
|
89
|
+
/**
|
90
|
+
* Returns 2x2 matrix of 2D rotation of angle theta
|
91
|
+
*
|
92
|
+
* @param {number | BigNumber | Complex | Unit} theta The rotation angle
|
93
|
+
* @param {string} format The result Matrix storage format
|
94
|
+
* @returns {Matrix}
|
95
|
+
* @private
|
96
|
+
*/
|
97
|
+
|
98
|
+
function _rotationMatrix2x2(theta, format) {
|
99
|
+
var Big = isBigNumber(theta);
|
100
|
+
var minusOne = Big ? new BigNumber(-1) : -1;
|
101
|
+
var cosTheta = cos(theta);
|
102
|
+
var sinTheta = sin(theta);
|
103
|
+
var data = [[cosTheta, multiplyScalar(minusOne, sinTheta)], [sinTheta, cosTheta]];
|
104
|
+
return _convertToFormat(data, format);
|
105
|
+
}
|
106
|
+
|
107
|
+
function _validateVector(v) {
|
108
|
+
var size = v.size();
|
109
|
+
|
110
|
+
if (size.length < 1 || size[0] !== 3) {
|
111
|
+
throw new RangeError('Vector must be of dimensions 1x3');
|
112
|
+
}
|
113
|
+
}
|
114
|
+
|
115
|
+
function _mul(array) {
|
116
|
+
return array.reduce(function (p, curr) {
|
117
|
+
return multiplyScalar(p, curr);
|
118
|
+
});
|
119
|
+
}
|
120
|
+
|
121
|
+
function _convertToFormat(data, format) {
|
122
|
+
if (format) {
|
123
|
+
if (format === 'sparse') {
|
124
|
+
return new SparseMatrix(data);
|
125
|
+
}
|
126
|
+
|
127
|
+
if (format === 'dense') {
|
128
|
+
return new DenseMatrix(data);
|
129
|
+
}
|
130
|
+
|
131
|
+
throw new TypeError("Unknown matrix type \"".concat(format, "\""));
|
132
|
+
}
|
133
|
+
|
134
|
+
return data;
|
135
|
+
}
|
136
|
+
/**
|
137
|
+
* Returns a 3x3 matrix of rotation of angle theta around vector v
|
138
|
+
*
|
139
|
+
* @param {number | BigNumber | Complex | Unit} theta The rotation angle
|
140
|
+
* @param {Matrix} v The rotation axis vector
|
141
|
+
* @param {string} format The storage format of the resulting matrix
|
142
|
+
* @returns {Matrix}
|
143
|
+
* @private
|
144
|
+
*/
|
145
|
+
|
146
|
+
|
147
|
+
function _rotationMatrix3x3(theta, v, format) {
|
148
|
+
var normV = norm(v);
|
149
|
+
|
150
|
+
if (normV === 0) {
|
151
|
+
return _convertToFormat([], format);
|
152
|
+
}
|
153
|
+
|
154
|
+
var Big = isBigNumber(theta) ? BigNumber : null;
|
155
|
+
var one = Big ? new Big(1) : 1;
|
156
|
+
var minusOne = Big ? new Big(-1) : -1;
|
157
|
+
var vx = Big ? new Big(v.get([0]) / normV) : v.get([0]) / normV;
|
158
|
+
var vy = Big ? new Big(v.get([1]) / normV) : v.get([1]) / normV;
|
159
|
+
var vz = Big ? new Big(v.get([2]) / normV) : v.get([2]) / normV;
|
160
|
+
var c = cos(theta);
|
161
|
+
var oneMinusC = addScalar(one, unaryMinus(c));
|
162
|
+
var s = sin(theta);
|
163
|
+
var r11 = addScalar(c, _mul([vx, vx, oneMinusC]));
|
164
|
+
var r12 = addScalar(_mul([vx, vy, oneMinusC]), _mul([minusOne, vz, s]));
|
165
|
+
var r13 = addScalar(_mul([vx, vz, oneMinusC]), _mul([vy, s]));
|
166
|
+
var r21 = addScalar(_mul([vx, vy, oneMinusC]), _mul([vz, s]));
|
167
|
+
var r22 = addScalar(c, _mul([vy, vy, oneMinusC]));
|
168
|
+
var r23 = addScalar(_mul([vy, vz, oneMinusC]), _mul([minusOne, vx, s]));
|
169
|
+
var r31 = addScalar(_mul([vx, vz, oneMinusC]), _mul([minusOne, vy, s]));
|
170
|
+
var r32 = addScalar(_mul([vy, vz, oneMinusC]), _mul([vx, s]));
|
171
|
+
var r33 = addScalar(c, _mul([vz, vz, oneMinusC]));
|
172
|
+
var data = [[r11, r12, r13], [r21, r22, r23], [r31, r32, r33]];
|
173
|
+
return _convertToFormat(data, format);
|
174
|
+
}
|
175
|
+
});
|
@@ -94,6 +94,10 @@ export var createSqrtm = /* #__PURE__ */factory(name, dependencies, function (_r
|
|
94
94
|
throw new RangeError('Matrix must be square ' + '(size: ' + format(size) + ')');
|
95
95
|
}
|
96
96
|
}
|
97
|
+
|
98
|
+
default:
|
99
|
+
// Multi dimensional array
|
100
|
+
throw new RangeError('Matrix must be at most two dimensional ' + '(size: ' + format(size) + ')');
|
97
101
|
}
|
98
102
|
}
|
99
103
|
});
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { factory } from '../../utils/factory';
|
2
2
|
import { isNumber } from '../../utils/is';
|
3
|
-
import { arraySize } from '../../utils/array';
|
4
3
|
import { createRng } from './util/seededRNG';
|
4
|
+
import { flatten } from '../../utils/array';
|
5
5
|
var name = 'pickRandom';
|
6
6
|
var dependencies = ['typed', 'config', '?on'];
|
7
7
|
export var createPickRandom = /* #__PURE__ */factory(name, dependencies, function (_ref) {
|
@@ -75,16 +75,12 @@ export var createPickRandom = /* #__PURE__ */factory(name, dependencies, functio
|
|
75
75
|
number = 1;
|
76
76
|
}
|
77
77
|
|
78
|
-
possibles = possibles.valueOf(); // get Array
|
78
|
+
possibles = flatten(possibles.valueOf()).valueOf(); // get Array
|
79
79
|
|
80
80
|
if (weights) {
|
81
81
|
weights = weights.valueOf(); // get Array
|
82
82
|
}
|
83
83
|
|
84
|
-
if (arraySize(possibles).length > 1) {
|
85
|
-
throw new Error('Only one dimensional vectors supported');
|
86
|
-
}
|
87
|
-
|
88
84
|
var totalWeights = 0;
|
89
85
|
|
90
86
|
if (typeof weights !== 'undefined') {
|
@@ -98,7 +98,7 @@ export var createVariance = /* #__PURE__ */factory(name, dependencies, function
|
|
98
98
|
*/
|
99
99
|
|
100
100
|
function _var(array, normalization) {
|
101
|
-
var sum
|
101
|
+
var sum;
|
102
102
|
var num = 0;
|
103
103
|
|
104
104
|
if (array.length === 0) {
|
@@ -108,7 +108,7 @@ export var createVariance = /* #__PURE__ */factory(name, dependencies, function
|
|
108
108
|
|
109
109
|
deepForEach(array, function (value) {
|
110
110
|
try {
|
111
|
-
sum = add(sum, value);
|
111
|
+
sum = sum === undefined ? value : add(sum, value);
|
112
112
|
num++;
|
113
113
|
} catch (err) {
|
114
114
|
throw improveErrorMessage(err, 'variance', value);
|
@@ -117,10 +117,10 @@ export var createVariance = /* #__PURE__ */factory(name, dependencies, function
|
|
117
117
|
if (num === 0) throw new Error('Cannot calculate variance of an empty array');
|
118
118
|
var mean = divide(sum, num); // calculate the variance
|
119
119
|
|
120
|
-
sum =
|
120
|
+
sum = undefined;
|
121
121
|
deepForEach(array, function (value) {
|
122
122
|
var diff = subtract(value, mean);
|
123
|
-
sum = add(sum, multiply(diff, diff));
|
123
|
+
sum = sum === undefined ? multiply(diff, diff) : add(sum, multiply(diff, diff));
|
124
124
|
});
|
125
125
|
|
126
126
|
if (isNaN(sum)) {
|
@@ -0,0 +1,36 @@
|
|
1
|
+
import { factory } from '../../utils/factory';
|
2
|
+
import { isInteger } from '../../utils/number';
|
3
|
+
|
4
|
+
function baseFormatter(base) {
|
5
|
+
var prefixes = {
|
6
|
+
2: '0b',
|
7
|
+
8: '0o',
|
8
|
+
16: '0x'
|
9
|
+
};
|
10
|
+
var prefix = prefixes[base];
|
11
|
+
return function (n) {
|
12
|
+
if (n > Math.pow(2, 31) - 1 || n < -Math.pow(2, 31)) {
|
13
|
+
throw new Error('Value must be in range [-2^31, 2^31-1]');
|
14
|
+
}
|
15
|
+
|
16
|
+
if (!isInteger(n)) {
|
17
|
+
throw new Error('Value must be an integer');
|
18
|
+
}
|
19
|
+
|
20
|
+
if (n < 0) {
|
21
|
+
n = n + Math.pow(2, 32);
|
22
|
+
}
|
23
|
+
|
24
|
+
return "".concat(prefix).concat(n.toString(base));
|
25
|
+
};
|
26
|
+
}
|
27
|
+
|
28
|
+
var dependencies = ['typed'];
|
29
|
+
export function createBaseFormatterFactory(name, base) {
|
30
|
+
return factory(name, dependencies, function (_ref) {
|
31
|
+
var typed = _ref.typed;
|
32
|
+
return typed(name, {
|
33
|
+
number: baseFormatter(base)
|
34
|
+
});
|
35
|
+
});
|
36
|
+
}
|
@@ -0,0 +1,23 @@
|
|
1
|
+
import { createBaseFormatterFactory } from './baseUtils';
|
2
|
+
/**
|
3
|
+
* Format a number as binary.
|
4
|
+
*
|
5
|
+
* Syntax:
|
6
|
+
*
|
7
|
+
* math.bin(value)
|
8
|
+
*
|
9
|
+
* Examples:
|
10
|
+
*
|
11
|
+
* //the following outputs "0b10"
|
12
|
+
* math.bin(2)
|
13
|
+
*
|
14
|
+
* See also:
|
15
|
+
*
|
16
|
+
* oct
|
17
|
+
* hex
|
18
|
+
*
|
19
|
+
* @param {number} value Value to be stringified
|
20
|
+
* @return {string} The formatted value
|
21
|
+
*/
|
22
|
+
|
23
|
+
export var createBin = createBaseFormatterFactory('bin', 2);
|
@@ -0,0 +1,23 @@
|
|
1
|
+
import { createBaseFormatterFactory } from './baseUtils';
|
2
|
+
/**
|
3
|
+
* Format a number as hexadecimal.
|
4
|
+
*
|
5
|
+
* Syntax:
|
6
|
+
*
|
7
|
+
* math.hex(value)
|
8
|
+
*
|
9
|
+
* Examples:
|
10
|
+
*
|
11
|
+
* //the following outputs "0xF0"
|
12
|
+
* math.hex(240)
|
13
|
+
*
|
14
|
+
* See also:
|
15
|
+
*
|
16
|
+
* oct
|
17
|
+
* bin
|
18
|
+
*
|
19
|
+
* @param {number} value Value to be stringified
|
20
|
+
* @return {string} The formatted value
|
21
|
+
*/
|
22
|
+
|
23
|
+
export var createHex = createBaseFormatterFactory('hex', 16);
|
@@ -0,0 +1,23 @@
|
|
1
|
+
import { createBaseFormatterFactory } from './baseUtils';
|
2
|
+
/**
|
3
|
+
* Format a number as octal.
|
4
|
+
*
|
5
|
+
* Syntax:
|
6
|
+
*
|
7
|
+
* math.oct(value)
|
8
|
+
*
|
9
|
+
* Examples:
|
10
|
+
*
|
11
|
+
* //the following outputs "0o70"
|
12
|
+
* math.oct(56)
|
13
|
+
*
|
14
|
+
* See also:
|
15
|
+
*
|
16
|
+
* bin
|
17
|
+
* hex
|
18
|
+
*
|
19
|
+
* @param {number} value Value to be stringified
|
20
|
+
* @return {string} The formatted value
|
21
|
+
*/
|
22
|
+
|
23
|
+
export var createOct = createBaseFormatterFactory('oct', 8);
|
@@ -5,8 +5,11 @@ var dependencies = ['?on', 'config'];
|
|
5
5
|
export var createBigNumberClass = /* #__PURE__ */factory(name, dependencies, function (_ref) {
|
6
6
|
var on = _ref.on,
|
7
7
|
config = _ref.config;
|
8
|
+
var EUCLID = 9; // Use euclidian division for mod calculation
|
9
|
+
|
8
10
|
var BigNumber = Decimal.clone({
|
9
|
-
precision: config.precision
|
11
|
+
precision: config.precision,
|
12
|
+
modulo: EUCLID
|
10
13
|
});
|
11
14
|
/**
|
12
15
|
* Attach type information
|
package/es/type/number.js
CHANGED
@@ -45,6 +45,16 @@ export var createNumber = /* #__PURE__ */factory(name, dependencies, function (_
|
|
45
45
|
throw new SyntaxError('String "' + x + '" is no valid number');
|
46
46
|
}
|
47
47
|
|
48
|
+
if (['0b', '0o', '0x'].includes(x.substring(0, 2))) {
|
49
|
+
if (num > Math.pow(2, 32) - 1) {
|
50
|
+
throw new SyntaxError("String \"".concat(x, "\" is out of range"));
|
51
|
+
}
|
52
|
+
|
53
|
+
if (num & 0x80000000) {
|
54
|
+
num = -1 * ~(num - 1);
|
55
|
+
}
|
56
|
+
}
|
57
|
+
|
48
58
|
return num;
|
49
59
|
},
|
50
60
|
BigNumber: function BigNumber(x) {
|
package/es/utils/object.js
CHANGED
@@ -89,7 +89,9 @@ export function deepExtend(a, b) {
|
|
89
89
|
}
|
90
90
|
|
91
91
|
for (var prop in b) {
|
92
|
-
|
92
|
+
// We check against prop not being in Object.prototype or Function.prototype
|
93
|
+
// to prevent polluting for example Object.__proto__.
|
94
|
+
if (hasOwnProperty(b, prop) && !(prop in Object.prototype) && !(prop in Function.prototype)) {
|
93
95
|
if (b[prop] && b[prop].constructor === Object) {
|
94
96
|
if (a[prop] === undefined) {
|
95
97
|
a[prop] = {};
|
package/es/version.js
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
export var version = '7.
|
1
|
+
export var version = '7.5.1'; // Note: This file is automatically generated when building math.js.
|
2
2
|
// Changes made in this file will be overwritten.
|
@@ -0,0 +1,20 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.binDependencies = void 0;
|
7
|
+
|
8
|
+
var _dependenciesTyped = require("./dependenciesTyped.generated");
|
9
|
+
|
10
|
+
var _factoriesAny = require("../../factoriesAny.js");
|
11
|
+
|
12
|
+
/**
|
13
|
+
* THIS FILE IS AUTO-GENERATED
|
14
|
+
* DON'T MAKE CHANGES HERE
|
15
|
+
*/
|
16
|
+
var binDependencies = {
|
17
|
+
typedDependencies: _dependenciesTyped.typedDependencies,
|
18
|
+
createBin: _factoriesAny.createBin
|
19
|
+
};
|
20
|
+
exports.binDependencies = binDependencies;
|
@@ -5,6 +5,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
});
|
6
6
|
exports.ceilDependencies = void 0;
|
7
7
|
|
8
|
+
var _dependenciesEqualScalar = require("./dependenciesEqualScalar.generated");
|
9
|
+
|
10
|
+
var _dependenciesMatrix = require("./dependenciesMatrix.generated");
|
11
|
+
|
8
12
|
var _dependenciesRound = require("./dependenciesRound.generated");
|
9
13
|
|
10
14
|
var _dependenciesTyped = require("./dependenciesTyped.generated");
|
@@ -16,6 +20,8 @@ var _factoriesAny = require("../../factoriesAny.js");
|
|
16
20
|
* DON'T MAKE CHANGES HERE
|
17
21
|
*/
|
18
22
|
var ceilDependencies = {
|
23
|
+
equalScalarDependencies: _dependenciesEqualScalar.equalScalarDependencies,
|
24
|
+
matrixDependencies: _dependenciesMatrix.matrixDependencies,
|
19
25
|
roundDependencies: _dependenciesRound.roundDependencies,
|
20
26
|
typedDependencies: _dependenciesTyped.typedDependencies,
|
21
27
|
createCeil: _factoriesAny.createCeil
|
@@ -11,6 +11,8 @@ var _dependenciesCeil = require("./dependenciesCeil.generated");
|
|
11
11
|
|
12
12
|
var _dependenciesFloor = require("./dependenciesFloor.generated");
|
13
13
|
|
14
|
+
var _dependenciesMatrix = require("./dependenciesMatrix.generated");
|
15
|
+
|
14
16
|
var _dependenciesTyped = require("./dependenciesTyped.generated");
|
15
17
|
|
16
18
|
var _factoriesAny = require("../../factoriesAny.js");
|
@@ -23,6 +25,7 @@ var fixDependencies = {
|
|
23
25
|
ComplexDependencies: _dependenciesComplexClass.ComplexDependencies,
|
24
26
|
ceilDependencies: _dependenciesCeil.ceilDependencies,
|
25
27
|
floorDependencies: _dependenciesFloor.floorDependencies,
|
28
|
+
matrixDependencies: _dependenciesMatrix.matrixDependencies,
|
26
29
|
typedDependencies: _dependenciesTyped.typedDependencies,
|
27
30
|
createFix: _factoriesAny.createFix
|
28
31
|
};
|
@@ -5,6 +5,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
});
|
6
6
|
exports.floorDependencies = void 0;
|
7
7
|
|
8
|
+
var _dependenciesEqualScalar = require("./dependenciesEqualScalar.generated");
|
9
|
+
|
10
|
+
var _dependenciesMatrix = require("./dependenciesMatrix.generated");
|
11
|
+
|
8
12
|
var _dependenciesRound = require("./dependenciesRound.generated");
|
9
13
|
|
10
14
|
var _dependenciesTyped = require("./dependenciesTyped.generated");
|
@@ -16,6 +20,8 @@ var _factoriesAny = require("../../factoriesAny.js");
|
|
16
20
|
* DON'T MAKE CHANGES HERE
|
17
21
|
*/
|
18
22
|
var floorDependencies = {
|
23
|
+
equalScalarDependencies: _dependenciesEqualScalar.equalScalarDependencies,
|
24
|
+
matrixDependencies: _dependenciesMatrix.matrixDependencies,
|
19
25
|
roundDependencies: _dependenciesRound.roundDependencies,
|
20
26
|
typedDependencies: _dependenciesTyped.typedDependencies,
|
21
27
|
createFloor: _factoriesAny.createFloor
|
@@ -0,0 +1,20 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.hexDependencies = void 0;
|
7
|
+
|
8
|
+
var _dependenciesTyped = require("./dependenciesTyped.generated");
|
9
|
+
|
10
|
+
var _factoriesAny = require("../../factoriesAny.js");
|
11
|
+
|
12
|
+
/**
|
13
|
+
* THIS FILE IS AUTO-GENERATED
|
14
|
+
* DON'T MAKE CHANGES HERE
|
15
|
+
*/
|
16
|
+
var hexDependencies = {
|
17
|
+
typedDependencies: _dependenciesTyped.typedDependencies,
|
18
|
+
createHex: _factoriesAny.createHex
|
19
|
+
};
|
20
|
+
exports.hexDependencies = hexDependencies;
|
@@ -0,0 +1,38 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.lsolveAllDependencies = void 0;
|
7
|
+
|
8
|
+
var _dependenciesDenseMatrixClass = require("./dependenciesDenseMatrixClass.generated");
|
9
|
+
|
10
|
+
var _dependenciesDivideScalar = require("./dependenciesDivideScalar.generated");
|
11
|
+
|
12
|
+
var _dependenciesEqualScalar = require("./dependenciesEqualScalar.generated");
|
13
|
+
|
14
|
+
var _dependenciesMatrix = require("./dependenciesMatrix.generated");
|
15
|
+
|
16
|
+
var _dependenciesMultiplyScalar = require("./dependenciesMultiplyScalar.generated");
|
17
|
+
|
18
|
+
var _dependenciesSubtract = require("./dependenciesSubtract.generated");
|
19
|
+
|
20
|
+
var _dependenciesTyped = require("./dependenciesTyped.generated");
|
21
|
+
|
22
|
+
var _factoriesAny = require("../../factoriesAny.js");
|
23
|
+
|
24
|
+
/**
|
25
|
+
* THIS FILE IS AUTO-GENERATED
|
26
|
+
* DON'T MAKE CHANGES HERE
|
27
|
+
*/
|
28
|
+
var lsolveAllDependencies = {
|
29
|
+
DenseMatrixDependencies: _dependenciesDenseMatrixClass.DenseMatrixDependencies,
|
30
|
+
divideScalarDependencies: _dependenciesDivideScalar.divideScalarDependencies,
|
31
|
+
equalScalarDependencies: _dependenciesEqualScalar.equalScalarDependencies,
|
32
|
+
matrixDependencies: _dependenciesMatrix.matrixDependencies,
|
33
|
+
multiplyScalarDependencies: _dependenciesMultiplyScalar.multiplyScalarDependencies,
|
34
|
+
subtractDependencies: _dependenciesSubtract.subtractDependencies,
|
35
|
+
typedDependencies: _dependenciesTyped.typedDependencies,
|
36
|
+
createLsolveAll: _factoriesAny.createLsolveAll
|
37
|
+
};
|
38
|
+
exports.lsolveAllDependencies = lsolveAllDependencies;
|
@@ -0,0 +1,20 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.octDependencies = void 0;
|
7
|
+
|
8
|
+
var _dependenciesTyped = require("./dependenciesTyped.generated");
|
9
|
+
|
10
|
+
var _factoriesAny = require("../../factoriesAny.js");
|
11
|
+
|
12
|
+
/**
|
13
|
+
* THIS FILE IS AUTO-GENERATED
|
14
|
+
* DON'T MAKE CHANGES HERE
|
15
|
+
*/
|
16
|
+
var octDependencies = {
|
17
|
+
typedDependencies: _dependenciesTyped.typedDependencies,
|
18
|
+
createOct: _factoriesAny.createOct
|
19
|
+
};
|
20
|
+
exports.octDependencies = octDependencies;
|
@@ -0,0 +1,50 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.rotationMatrixDependencies = void 0;
|
7
|
+
|
8
|
+
var _dependenciesBigNumberClass = require("./dependenciesBigNumberClass.generated");
|
9
|
+
|
10
|
+
var _dependenciesDenseMatrixClass = require("./dependenciesDenseMatrixClass.generated");
|
11
|
+
|
12
|
+
var _dependenciesSparseMatrixClass = require("./dependenciesSparseMatrixClass.generated");
|
13
|
+
|
14
|
+
var _dependenciesAddScalar = require("./dependenciesAddScalar.generated");
|
15
|
+
|
16
|
+
var _dependenciesCos = require("./dependenciesCos.generated");
|
17
|
+
|
18
|
+
var _dependenciesMatrix = require("./dependenciesMatrix.generated");
|
19
|
+
|
20
|
+
var _dependenciesMultiplyScalar = require("./dependenciesMultiplyScalar.generated");
|
21
|
+
|
22
|
+
var _dependenciesNorm = require("./dependenciesNorm.generated");
|
23
|
+
|
24
|
+
var _dependenciesSin = require("./dependenciesSin.generated");
|
25
|
+
|
26
|
+
var _dependenciesTyped = require("./dependenciesTyped.generated");
|
27
|
+
|
28
|
+
var _dependenciesUnaryMinus = require("./dependenciesUnaryMinus.generated");
|
29
|
+
|
30
|
+
var _factoriesAny = require("../../factoriesAny.js");
|
31
|
+
|
32
|
+
/**
|
33
|
+
* THIS FILE IS AUTO-GENERATED
|
34
|
+
* DON'T MAKE CHANGES HERE
|
35
|
+
*/
|
36
|
+
var rotationMatrixDependencies = {
|
37
|
+
BigNumberDependencies: _dependenciesBigNumberClass.BigNumberDependencies,
|
38
|
+
DenseMatrixDependencies: _dependenciesDenseMatrixClass.DenseMatrixDependencies,
|
39
|
+
SparseMatrixDependencies: _dependenciesSparseMatrixClass.SparseMatrixDependencies,
|
40
|
+
addScalarDependencies: _dependenciesAddScalar.addScalarDependencies,
|
41
|
+
cosDependencies: _dependenciesCos.cosDependencies,
|
42
|
+
matrixDependencies: _dependenciesMatrix.matrixDependencies,
|
43
|
+
multiplyScalarDependencies: _dependenciesMultiplyScalar.multiplyScalarDependencies,
|
44
|
+
normDependencies: _dependenciesNorm.normDependencies,
|
45
|
+
sinDependencies: _dependenciesSin.sinDependencies,
|
46
|
+
typedDependencies: _dependenciesTyped.typedDependencies,
|
47
|
+
unaryMinusDependencies: _dependenciesUnaryMinus.unaryMinusDependencies,
|
48
|
+
createRotationMatrix: _factoriesAny.createRotationMatrix
|
49
|
+
};
|
50
|
+
exports.rotationMatrixDependencies = rotationMatrixDependencies;
|
@@ -0,0 +1,38 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.usolveAllDependencies = void 0;
|
7
|
+
|
8
|
+
var _dependenciesDenseMatrixClass = require("./dependenciesDenseMatrixClass.generated");
|
9
|
+
|
10
|
+
var _dependenciesDivideScalar = require("./dependenciesDivideScalar.generated");
|
11
|
+
|
12
|
+
var _dependenciesEqualScalar = require("./dependenciesEqualScalar.generated");
|
13
|
+
|
14
|
+
var _dependenciesMatrix = require("./dependenciesMatrix.generated");
|
15
|
+
|
16
|
+
var _dependenciesMultiplyScalar = require("./dependenciesMultiplyScalar.generated");
|
17
|
+
|
18
|
+
var _dependenciesSubtract = require("./dependenciesSubtract.generated");
|
19
|
+
|
20
|
+
var _dependenciesTyped = require("./dependenciesTyped.generated");
|
21
|
+
|
22
|
+
var _factoriesAny = require("../../factoriesAny.js");
|
23
|
+
|
24
|
+
/**
|
25
|
+
* THIS FILE IS AUTO-GENERATED
|
26
|
+
* DON'T MAKE CHANGES HERE
|
27
|
+
*/
|
28
|
+
var usolveAllDependencies = {
|
29
|
+
DenseMatrixDependencies: _dependenciesDenseMatrixClass.DenseMatrixDependencies,
|
30
|
+
divideScalarDependencies: _dependenciesDivideScalar.divideScalarDependencies,
|
31
|
+
equalScalarDependencies: _dependenciesEqualScalar.equalScalarDependencies,
|
32
|
+
matrixDependencies: _dependenciesMatrix.matrixDependencies,
|
33
|
+
multiplyScalarDependencies: _dependenciesMultiplyScalar.multiplyScalarDependencies,
|
34
|
+
subtractDependencies: _dependenciesSubtract.subtractDependencies,
|
35
|
+
typedDependencies: _dependenciesTyped.typedDependencies,
|
36
|
+
createUsolveAll: _factoriesAny.createUsolveAll
|
37
|
+
};
|
38
|
+
exports.usolveAllDependencies = usolveAllDependencies;
|