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
|
@@ -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;
|