mathjs 7.3.0 → 7.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/HISTORY.md +29 -0
- package/dist/math.js +2716 -2222
- package/dist/math.min.js +5 -5
- package/dist/math.min.map +1 -1
- package/docs/datatypes/units.md +21 -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/rotate.md +47 -0
- package/docs/reference/functions/rotationMatrix.md +51 -0
- package/docs/reference/functions/round.md +6 -2
- package/docs/reference/functions.md +2 -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/dependenciesRotate.generated.js +14 -0
- package/es/entry/dependenciesAny/dependenciesRotationMatrix.generated.js +30 -0
- package/es/entry/dependenciesAny.generated.js +2 -0
- package/es/entry/impureFunctionsAny.generated.js +55 -53
- package/es/entry/pureFunctionsAny.generated.js +230 -206
- package/es/expression/embeddedDocs/embeddedDocs.js +4 -0
- package/es/expression/embeddedDocs/function/matrix/rotate.js +8 -0
- package/es/expression/embeddedDocs/function/matrix/rotationMatrix.js +8 -0
- package/es/expression/node/FunctionNode.js +1 -1
- package/es/expression/node/Node.js +2 -2
- package/es/factoriesAny.js +2 -0
- 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/round.js +6 -2
- package/es/function/matrix/rotate.js +78 -0
- package/es/function/matrix/rotationMatrix.js +176 -0
- package/es/function/matrix/sqrtm.js +4 -0
- package/es/function/probability/pickRandom.js +2 -6
- package/es/function/special/erf.js +1 -0
- package/es/plain/number/constants.js +1 -1
- package/es/plain/number/probability.js +1 -0
- package/es/type/unit/Unit.js +17 -18
- package/es/utils/object.js +3 -1
- package/es/version.js +1 -1
- package/examples/bignumbers.js +2 -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/dependenciesRotate.generated.js +26 -0
- package/lib/entry/dependenciesAny/dependenciesRotationMatrix.generated.js +50 -0
- package/lib/entry/dependenciesAny.generated.js +16 -0
- package/lib/entry/impureFunctionsAny.generated.js +58 -56
- package/lib/entry/mainAny.js +5 -0
- package/lib/entry/mainNumber.js +5 -0
- package/lib/entry/pureFunctionsAny.generated.js +270 -244
- package/lib/expression/embeddedDocs/embeddedDocs.js +6 -0
- package/lib/expression/embeddedDocs/function/matrix/rotate.js +15 -0
- package/lib/expression/embeddedDocs/function/matrix/rotationMatrix.js +15 -0
- package/lib/expression/node/FunctionNode.js +1 -1
- package/lib/expression/node/Node.js +2 -2
- package/lib/factoriesAny.js +16 -0
- 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/round.js +6 -2
- package/lib/function/matrix/rotate.js +88 -0
- package/lib/function/matrix/rotationMatrix.js +186 -0
- package/lib/function/matrix/sqrtm.js +4 -0
- package/lib/function/probability/pickRandom.js +3 -7
- package/lib/function/special/erf.js +1 -0
- package/lib/header.js +2 -2
- package/lib/plain/bignumber/index.js +1 -0
- package/lib/plain/number/constants.js +2 -1
- package/lib/plain/number/index.js +9 -0
- package/lib/plain/number/probability.js +1 -0
- package/lib/type/unit/Unit.js +17 -18
- package/lib/utils/object.js +3 -1
- package/lib/version.js +1 -1
- package/package.json +11 -11
- package/src/core/function/import.js +2 -2
- 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/dependenciesRotate.generated.js +15 -0
- package/src/entry/dependenciesAny/dependenciesRotationMatrix.generated.js +31 -0
- package/src/entry/dependenciesAny.generated.js +2 -0
- package/src/entry/impureFunctionsAny.generated.js +84 -80
- package/src/entry/pureFunctionsAny.generated.js +75 -71
- package/src/expression/embeddedDocs/embeddedDocs.js +4 -0
- package/src/expression/embeddedDocs/function/matrix/rotate.js +19 -0
- package/src/expression/embeddedDocs/function/matrix/rotationMatrix.js +19 -0
- package/src/expression/node/FunctionNode.js +1 -1
- package/src/expression/node/Node.js +2 -1
- package/src/factoriesAny.js +2 -0
- 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/round.js +6 -2
- package/src/function/matrix/rotate.js +79 -0
- package/src/function/matrix/rotationMatrix.js +186 -0
- package/src/function/matrix/sqrtm.js +4 -0
- package/src/function/probability/pickRandom.js +2 -6
- package/src/function/special/erf.js +2 -0
- package/src/plain/number/constants.js +1 -1
- package/src/plain/number/probability.js +2 -0
- package/src/type/unit/Unit.js +18 -21
- package/src/utils/object.js +3 -1
- package/src/version.js +1 -1
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createRotationMatrix = void 0;
|
|
7
|
+
|
|
8
|
+
var _is = require("../../utils/is");
|
|
9
|
+
|
|
10
|
+
var _factory = require("../../utils/factory");
|
|
11
|
+
|
|
12
|
+
var name = 'rotationMatrix';
|
|
13
|
+
var dependencies = ['typed', 'config', 'multiplyScalar', 'addScalar', 'unaryMinus', 'norm', 'matrix', 'BigNumber', 'DenseMatrix', 'SparseMatrix', 'cos', 'sin'];
|
|
14
|
+
var createRotationMatrix = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
|
|
15
|
+
var typed = _ref.typed,
|
|
16
|
+
config = _ref.config,
|
|
17
|
+
multiplyScalar = _ref.multiplyScalar,
|
|
18
|
+
addScalar = _ref.addScalar,
|
|
19
|
+
unaryMinus = _ref.unaryMinus,
|
|
20
|
+
norm = _ref.norm,
|
|
21
|
+
BigNumber = _ref.BigNumber,
|
|
22
|
+
matrix = _ref.matrix,
|
|
23
|
+
DenseMatrix = _ref.DenseMatrix,
|
|
24
|
+
SparseMatrix = _ref.SparseMatrix,
|
|
25
|
+
cos = _ref.cos,
|
|
26
|
+
sin = _ref.sin;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Create a 2-dimensional counter-clockwise rotation matrix (2x2) for a given angle (expressed in radians).
|
|
30
|
+
* Create a 2-dimensional counter-clockwise rotation matrix (3x3) by a given angle (expressed in radians) around a given axis (1x3).
|
|
31
|
+
*
|
|
32
|
+
* Syntax:
|
|
33
|
+
*
|
|
34
|
+
* math.rotationMatrix(theta)
|
|
35
|
+
* math.rotationMatrix(theta, format)
|
|
36
|
+
* math.rotationMatrix(theta, [v])
|
|
37
|
+
* math.rotationMatrix(theta, [v], format)
|
|
38
|
+
*
|
|
39
|
+
* Examples:
|
|
40
|
+
*
|
|
41
|
+
* math.rotationMatrix(math.pi / 2) // returns [[0, -1], [1, 0]]
|
|
42
|
+
* math.rotationMatrix(math.bignumber(1)) // returns [[bignumber(cos(1)), bignumber(-sin(1))], [bignumber(sin(1)), bignumber(cos(1))]]
|
|
43
|
+
* math.rotationMatrix(math.complex(1 + i)) // returns [[cos(1 + i), -sin(1 + i)], [sin(1 + i), cos(1 + i)]]
|
|
44
|
+
* math.rotationMatrix(math.unit('1rad')) // returns [[cos(1), -sin(1)], [sin(1), cos(1)]]
|
|
45
|
+
*
|
|
46
|
+
* math.rotationMatrix(math.pi / 2, [0, 1, 0]) // returns [[0, 0, 1], [0, 1, 0], [-1, 0, 0]]
|
|
47
|
+
* math.rotationMatrix(math.pi / 2, matrix([0, 1, 0])) // returns matrix([[0, 0, 1], [0, 1, 0], [-1, 0, 0]])
|
|
48
|
+
*
|
|
49
|
+
*
|
|
50
|
+
* See also:
|
|
51
|
+
*
|
|
52
|
+
* matrix, cos, sin
|
|
53
|
+
*
|
|
54
|
+
*
|
|
55
|
+
* @param {number | BigNumber | Complex | Unit} theta Rotation angle
|
|
56
|
+
* @param {Array | Matrix} [v] Rotation axis
|
|
57
|
+
* @param {string} [format] Result Matrix storage format
|
|
58
|
+
* @return {Array | Matrix} Rotation matrix
|
|
59
|
+
*/
|
|
60
|
+
return typed(name, {
|
|
61
|
+
'': function _() {
|
|
62
|
+
return config.matrix === 'Matrix' ? matrix([]) : [];
|
|
63
|
+
},
|
|
64
|
+
string: function string(format) {
|
|
65
|
+
return matrix(format);
|
|
66
|
+
},
|
|
67
|
+
'number | BigNumber | Complex | Unit': function numberBigNumberComplexUnit(theta) {
|
|
68
|
+
return _rotationMatrix2x2(theta, config.matrix === 'Matrix' ? 'dense' : undefined);
|
|
69
|
+
},
|
|
70
|
+
'number | BigNumber | Complex | Unit, string': function numberBigNumberComplexUnitString(theta, format) {
|
|
71
|
+
return _rotationMatrix2x2(theta, format);
|
|
72
|
+
},
|
|
73
|
+
'number | BigNumber | Complex | Unit, Array': function numberBigNumberComplexUnitArray(theta, v) {
|
|
74
|
+
var matrixV = matrix(v);
|
|
75
|
+
|
|
76
|
+
_validateVector(matrixV);
|
|
77
|
+
|
|
78
|
+
return _rotationMatrix3x3(theta, matrixV, undefined);
|
|
79
|
+
},
|
|
80
|
+
'number | BigNumber | Complex | Unit, Matrix': function numberBigNumberComplexUnitMatrix(theta, v) {
|
|
81
|
+
_validateVector(v);
|
|
82
|
+
|
|
83
|
+
var storageType = v.storage() || (config.matrix === 'Matrix' ? 'dense' : undefined);
|
|
84
|
+
return _rotationMatrix3x3(theta, v, storageType);
|
|
85
|
+
},
|
|
86
|
+
'number | BigNumber | Complex | Unit, Array, string': function numberBigNumberComplexUnitArrayString(theta, v, format) {
|
|
87
|
+
var matrixV = matrix(v);
|
|
88
|
+
|
|
89
|
+
_validateVector(matrixV);
|
|
90
|
+
|
|
91
|
+
return _rotationMatrix3x3(theta, matrixV, format);
|
|
92
|
+
},
|
|
93
|
+
'number | BigNumber | Complex | Unit, Matrix, string': function numberBigNumberComplexUnitMatrixString(theta, v, format) {
|
|
94
|
+
_validateVector(v);
|
|
95
|
+
|
|
96
|
+
return _rotationMatrix3x3(theta, v, format);
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
/**
|
|
100
|
+
* Returns 2x2 matrix of 2D rotation of angle theta
|
|
101
|
+
*
|
|
102
|
+
* @param {number | BigNumber | Complex | Unit} theta The rotation angle
|
|
103
|
+
* @param {string} format The result Matrix storage format
|
|
104
|
+
* @returns {Matrix}
|
|
105
|
+
* @private
|
|
106
|
+
*/
|
|
107
|
+
|
|
108
|
+
function _rotationMatrix2x2(theta, format) {
|
|
109
|
+
var Big = (0, _is.isBigNumber)(theta);
|
|
110
|
+
var minusOne = Big ? new BigNumber(-1) : -1;
|
|
111
|
+
var cosTheta = cos(theta);
|
|
112
|
+
var sinTheta = sin(theta);
|
|
113
|
+
var data = [[cosTheta, multiplyScalar(minusOne, sinTheta)], [sinTheta, cosTheta]];
|
|
114
|
+
return _convertToFormat(data, format);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
function _validateVector(v) {
|
|
118
|
+
var size = v.size();
|
|
119
|
+
|
|
120
|
+
if (size.length < 1 || size[0] !== 3) {
|
|
121
|
+
throw new RangeError('Vector must be of dimensions 1x3');
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
function _mul(array) {
|
|
126
|
+
return array.reduce(function (p, curr) {
|
|
127
|
+
return multiplyScalar(p, curr);
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
function _convertToFormat(data, format) {
|
|
132
|
+
if (format) {
|
|
133
|
+
if (format === 'sparse') {
|
|
134
|
+
return new SparseMatrix(data);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
if (format === 'dense') {
|
|
138
|
+
return new DenseMatrix(data);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
throw new TypeError("Unknown matrix type \"".concat(format, "\""));
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
return data;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Returns a 3x3 matrix of rotation of angle theta around vector v
|
|
148
|
+
*
|
|
149
|
+
* @param {number | BigNumber | Complex | Unit} theta The rotation angle
|
|
150
|
+
* @param {Matrix} v The rotation axis vector
|
|
151
|
+
* @param {string} format The storage format of the resulting matrix
|
|
152
|
+
* @returns {Matrix}
|
|
153
|
+
* @private
|
|
154
|
+
*/
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
function _rotationMatrix3x3(theta, v, format) {
|
|
158
|
+
var normV = norm(v);
|
|
159
|
+
|
|
160
|
+
if (normV === 0) {
|
|
161
|
+
throw new RangeError('Rotation around zero vector');
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
var Big = (0, _is.isBigNumber)(theta) ? BigNumber : null;
|
|
165
|
+
var one = Big ? new Big(1) : 1;
|
|
166
|
+
var minusOne = Big ? new Big(-1) : -1;
|
|
167
|
+
var vx = Big ? new Big(v.get([0]) / normV) : v.get([0]) / normV;
|
|
168
|
+
var vy = Big ? new Big(v.get([1]) / normV) : v.get([1]) / normV;
|
|
169
|
+
var vz = Big ? new Big(v.get([2]) / normV) : v.get([2]) / normV;
|
|
170
|
+
var c = cos(theta);
|
|
171
|
+
var oneMinusC = addScalar(one, unaryMinus(c));
|
|
172
|
+
var s = sin(theta);
|
|
173
|
+
var r11 = addScalar(c, _mul([vx, vx, oneMinusC]));
|
|
174
|
+
var r12 = addScalar(_mul([vx, vy, oneMinusC]), _mul([minusOne, vz, s]));
|
|
175
|
+
var r13 = addScalar(_mul([vx, vz, oneMinusC]), _mul([vy, s]));
|
|
176
|
+
var r21 = addScalar(_mul([vx, vy, oneMinusC]), _mul([vz, s]));
|
|
177
|
+
var r22 = addScalar(c, _mul([vy, vy, oneMinusC]));
|
|
178
|
+
var r23 = addScalar(_mul([vy, vz, oneMinusC]), _mul([minusOne, vx, s]));
|
|
179
|
+
var r31 = addScalar(_mul([vx, vz, oneMinusC]), _mul([minusOne, vy, s]));
|
|
180
|
+
var r32 = addScalar(_mul([vy, vz, oneMinusC]), _mul([vx, s]));
|
|
181
|
+
var r33 = addScalar(c, _mul([vz, vz, oneMinusC]));
|
|
182
|
+
var data = [[r11, r12, r13], [r21, r22, r23], [r31, r32, r33]];
|
|
183
|
+
return _convertToFormat(data, format);
|
|
184
|
+
}
|
|
185
|
+
});
|
|
186
|
+
exports.createRotationMatrix = createRotationMatrix;
|
|
@@ -105,6 +105,10 @@ var createSqrtm = /* #__PURE__ */(0, _factory.factory)(name, dependencies, funct
|
|
|
105
105
|
throw new RangeError('Matrix must be square ' + '(size: ' + (0, _string.format)(size) + ')');
|
|
106
106
|
}
|
|
107
107
|
}
|
|
108
|
+
|
|
109
|
+
default:
|
|
110
|
+
// Multi dimensional array
|
|
111
|
+
throw new RangeError('Matrix must be at most two dimensional ' + '(size: ' + (0, _string.format)(size) + ')');
|
|
108
112
|
}
|
|
109
113
|
}
|
|
110
114
|
});
|
|
@@ -9,10 +9,10 @@ var _factory = require("../../utils/factory");
|
|
|
9
9
|
|
|
10
10
|
var _is = require("../../utils/is");
|
|
11
11
|
|
|
12
|
-
var _array = require("../../utils/array");
|
|
13
|
-
|
|
14
12
|
var _seededRNG = require("./util/seededRNG");
|
|
15
13
|
|
|
14
|
+
var _array = require("../../utils/array");
|
|
15
|
+
|
|
16
16
|
var name = 'pickRandom';
|
|
17
17
|
var dependencies = ['typed', 'config', '?on'];
|
|
18
18
|
var createPickRandom = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
|
|
@@ -86,16 +86,12 @@ var createPickRandom = /* #__PURE__ */(0, _factory.factory)(name, dependencies,
|
|
|
86
86
|
number = 1;
|
|
87
87
|
}
|
|
88
88
|
|
|
89
|
-
possibles = possibles.valueOf(); // get Array
|
|
89
|
+
possibles = (0, _array.flatten)(possibles.valueOf()).valueOf(); // get Array
|
|
90
90
|
|
|
91
91
|
if (weights) {
|
|
92
92
|
weights = weights.valueOf(); // get Array
|
|
93
93
|
}
|
|
94
94
|
|
|
95
|
-
if ((0, _array.arraySize)(possibles).length > 1) {
|
|
96
|
-
throw new Error('Only one dimensional vectors supported');
|
|
97
|
-
}
|
|
98
|
-
|
|
99
95
|
var totalWeights = 0;
|
|
100
96
|
|
|
101
97
|
if (typeof weights !== 'undefined') {
|
|
@@ -11,6 +11,7 @@ var _number = require("../../utils/number");
|
|
|
11
11
|
|
|
12
12
|
var _factory = require("../../utils/factory");
|
|
13
13
|
|
|
14
|
+
/* eslint-disable no-loss-of-precision */
|
|
14
15
|
var name = 'erf';
|
|
15
16
|
var dependencies = ['typed'];
|
|
16
17
|
var createErf = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
|
package/lib/header.js
CHANGED
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
* It features real and complex numbers, units, matrices, a large set of
|
|
7
7
|
* mathematical functions, and a flexible expression parser.
|
|
8
8
|
*
|
|
9
|
-
* @version 7.
|
|
10
|
-
* @date 2020-
|
|
9
|
+
* @version 7.6.0
|
|
10
|
+
* @date 2020-11-02
|
|
11
11
|
*
|
|
12
12
|
* @license
|
|
13
13
|
* Copyright (C) 2013-2020 Jos de Jong <wjosdejong@gmail.com>
|
|
@@ -15,6 +15,7 @@ var _arithmetic = require("./arithmetic");
|
|
|
15
15
|
Object.keys(_arithmetic).forEach(function (key) {
|
|
16
16
|
if (key === "default" || key === "__esModule") return;
|
|
17
17
|
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
18
|
+
if (key in exports && exports[key] === _arithmetic[key]) return;
|
|
18
19
|
Object.defineProperty(exports, key, {
|
|
19
20
|
enumerable: true,
|
|
20
21
|
get: function get() {
|
|
@@ -8,6 +8,7 @@ var _arithmetic = require("./arithmetic");
|
|
|
8
8
|
|
|
9
9
|
Object.keys(_arithmetic).forEach(function (key) {
|
|
10
10
|
if (key === "default" || key === "__esModule") return;
|
|
11
|
+
if (key in exports && exports[key] === _arithmetic[key]) return;
|
|
11
12
|
Object.defineProperty(exports, key, {
|
|
12
13
|
enumerable: true,
|
|
13
14
|
get: function get() {
|
|
@@ -20,6 +21,7 @@ var _bitwise = require("./bitwise");
|
|
|
20
21
|
|
|
21
22
|
Object.keys(_bitwise).forEach(function (key) {
|
|
22
23
|
if (key === "default" || key === "__esModule") return;
|
|
24
|
+
if (key in exports && exports[key] === _bitwise[key]) return;
|
|
23
25
|
Object.defineProperty(exports, key, {
|
|
24
26
|
enumerable: true,
|
|
25
27
|
get: function get() {
|
|
@@ -32,6 +34,7 @@ var _combinations = require("./combinations");
|
|
|
32
34
|
|
|
33
35
|
Object.keys(_combinations).forEach(function (key) {
|
|
34
36
|
if (key === "default" || key === "__esModule") return;
|
|
37
|
+
if (key in exports && exports[key] === _combinations[key]) return;
|
|
35
38
|
Object.defineProperty(exports, key, {
|
|
36
39
|
enumerable: true,
|
|
37
40
|
get: function get() {
|
|
@@ -44,6 +47,7 @@ var _constants = require("./constants");
|
|
|
44
47
|
|
|
45
48
|
Object.keys(_constants).forEach(function (key) {
|
|
46
49
|
if (key === "default" || key === "__esModule") return;
|
|
50
|
+
if (key in exports && exports[key] === _constants[key]) return;
|
|
47
51
|
Object.defineProperty(exports, key, {
|
|
48
52
|
enumerable: true,
|
|
49
53
|
get: function get() {
|
|
@@ -56,6 +60,7 @@ var _logical = require("./logical");
|
|
|
56
60
|
|
|
57
61
|
Object.keys(_logical).forEach(function (key) {
|
|
58
62
|
if (key === "default" || key === "__esModule") return;
|
|
63
|
+
if (key in exports && exports[key] === _logical[key]) return;
|
|
59
64
|
Object.defineProperty(exports, key, {
|
|
60
65
|
enumerable: true,
|
|
61
66
|
get: function get() {
|
|
@@ -68,6 +73,7 @@ var _relational = require("./relational");
|
|
|
68
73
|
|
|
69
74
|
Object.keys(_relational).forEach(function (key) {
|
|
70
75
|
if (key === "default" || key === "__esModule") return;
|
|
76
|
+
if (key in exports && exports[key] === _relational[key]) return;
|
|
71
77
|
Object.defineProperty(exports, key, {
|
|
72
78
|
enumerable: true,
|
|
73
79
|
get: function get() {
|
|
@@ -80,6 +86,7 @@ var _probability = require("./probability");
|
|
|
80
86
|
|
|
81
87
|
Object.keys(_probability).forEach(function (key) {
|
|
82
88
|
if (key === "default" || key === "__esModule") return;
|
|
89
|
+
if (key in exports && exports[key] === _probability[key]) return;
|
|
83
90
|
Object.defineProperty(exports, key, {
|
|
84
91
|
enumerable: true,
|
|
85
92
|
get: function get() {
|
|
@@ -92,6 +99,7 @@ var _trigonometry = require("./trigonometry");
|
|
|
92
99
|
|
|
93
100
|
Object.keys(_trigonometry).forEach(function (key) {
|
|
94
101
|
if (key === "default" || key === "__esModule") return;
|
|
102
|
+
if (key in exports && exports[key] === _trigonometry[key]) return;
|
|
95
103
|
Object.defineProperty(exports, key, {
|
|
96
104
|
enumerable: true,
|
|
97
105
|
get: function get() {
|
|
@@ -104,6 +112,7 @@ var _utils = require("./utils");
|
|
|
104
112
|
|
|
105
113
|
Object.keys(_utils).forEach(function (key) {
|
|
106
114
|
if (key === "default" || key === "__esModule") return;
|
|
115
|
+
if (key in exports && exports[key] === _utils[key]) return;
|
|
107
116
|
Object.defineProperty(exports, key, {
|
|
108
117
|
enumerable: true,
|
|
109
118
|
get: function get() {
|
package/lib/type/unit/Unit.js
CHANGED
|
@@ -219,19 +219,16 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
|
|
|
219
219
|
function parseUnit() {
|
|
220
220
|
var unitName = ''; // Alphanumeric characters only; matches [a-zA-Z0-9]
|
|
221
221
|
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
while (code >= 48 && code <= 57 || code >= 65 && code <= 90 || code >= 97 && code <= 122) {
|
|
222
|
+
while (isDigit(c) || Unit.isValidAlpha(c)) {
|
|
225
223
|
unitName += c;
|
|
226
224
|
next();
|
|
227
|
-
code = text.charCodeAt(index);
|
|
228
225
|
} // Must begin with [a-zA-Z]
|
|
229
226
|
|
|
230
227
|
|
|
231
|
-
|
|
228
|
+
var firstC = unitName.charAt(0);
|
|
232
229
|
|
|
233
|
-
if (
|
|
234
|
-
return unitName
|
|
230
|
+
if (Unit.isValidAlpha(firstC)) {
|
|
231
|
+
return unitName;
|
|
235
232
|
} else {
|
|
236
233
|
return null;
|
|
237
234
|
}
|
|
@@ -3686,24 +3683,26 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
|
|
|
3686
3683
|
UNITS[_name2] = alias;
|
|
3687
3684
|
}
|
|
3688
3685
|
}
|
|
3686
|
+
/**
|
|
3687
|
+
* Checks if a character is a valid latin letter (upper or lower case).
|
|
3688
|
+
* Note that this function can be overridden, for example to allow support of other alphabets.
|
|
3689
|
+
* @param {string} c Tested character
|
|
3690
|
+
*/
|
|
3689
3691
|
|
|
3690
|
-
function assertUnitNameIsValid(name) {
|
|
3691
|
-
for (var i = 0; i < name.length; i++) {
|
|
3692
|
-
var _c = name.charAt(i);
|
|
3693
3692
|
|
|
3694
|
-
|
|
3695
|
-
|
|
3696
|
-
|
|
3693
|
+
Unit.isValidAlpha = function isValidAlpha(c) {
|
|
3694
|
+
return /^[a-zA-Z]$/.test(c);
|
|
3695
|
+
};
|
|
3697
3696
|
|
|
3698
|
-
|
|
3699
|
-
|
|
3700
|
-
|
|
3697
|
+
function assertUnitNameIsValid(name) {
|
|
3698
|
+
for (var i = 0; i < name.length; i++) {
|
|
3699
|
+
c = name.charAt(i);
|
|
3701
3700
|
|
|
3702
|
-
if (i === 0 && !isValidAlpha(
|
|
3701
|
+
if (i === 0 && !Unit.isValidAlpha(c)) {
|
|
3703
3702
|
throw new Error('Invalid unit name (must begin with alpha character): "' + name + '"');
|
|
3704
3703
|
}
|
|
3705
3704
|
|
|
3706
|
-
if (i > 0 && !(isValidAlpha(
|
|
3705
|
+
if (i > 0 && !(Unit.isValidAlpha(c) || isDigit(c))) {
|
|
3707
3706
|
throw new Error('Invalid unit name (only alphanumeric characters are allowed): "' + name + '"');
|
|
3708
3707
|
}
|
|
3709
3708
|
}
|
package/lib/utils/object.js
CHANGED
|
@@ -114,7 +114,9 @@ function deepExtend(a, b) {
|
|
|
114
114
|
}
|
|
115
115
|
|
|
116
116
|
for (var prop in b) {
|
|
117
|
-
|
|
117
|
+
// We check against prop not being in Object.prototype or Function.prototype
|
|
118
|
+
// to prevent polluting for example Object.__proto__.
|
|
119
|
+
if (hasOwnProperty(b, prop) && !(prop in Object.prototype) && !(prop in Function.prototype)) {
|
|
118
120
|
if (b[prop] && b[prop].constructor === Object) {
|
|
119
121
|
if (a[prop] === undefined) {
|
|
120
122
|
a[prop] = {};
|
package/lib/version.js
CHANGED
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.version = void 0;
|
|
7
|
-
var version = '7.
|
|
7
|
+
var version = '7.6.0'; // Note: This file is automatically generated when building math.js.
|
|
8
8
|
// Changes made in this file will be overwritten.
|
|
9
9
|
|
|
10
10
|
exports.version = version;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mathjs",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.6.0",
|
|
4
4
|
"description": "Math.js is an extensive math library for JavaScript and Node.js. It features a flexible expression parser with support for symbolic computation, comes with a large set of built-in functions and constants, and offers an integrated solution to work with different data types like numbers, big numbers, complex numbers, fractions, units, and matrices.",
|
|
5
5
|
"author": "Jos de Jong <wjosdejong@gmail.com> (https://github.com/josdejong)",
|
|
6
6
|
"homepage": "https://mathjs.org",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
],
|
|
27
27
|
"dependencies": {
|
|
28
28
|
"complex.js": "^2.0.11",
|
|
29
|
-
"decimal.js": "^10.2.
|
|
29
|
+
"decimal.js": "^10.2.1",
|
|
30
30
|
"escape-latex": "^1.2.0",
|
|
31
31
|
"fraction.js": "^4.0.12",
|
|
32
32
|
"javascript-natural-sort": "^0.7.1",
|
|
@@ -35,13 +35,13 @@
|
|
|
35
35
|
"typed-function": "^2.0.0"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
|
-
"@babel/core": "7.
|
|
39
|
-
"@babel/plugin-transform-object-assign": "7.
|
|
40
|
-
"@babel/preset-env": "7.
|
|
41
|
-
"@babel/register": "7.
|
|
38
|
+
"@babel/core": "7.12.3",
|
|
39
|
+
"@babel/plugin-transform-object-assign": "7.12.1",
|
|
40
|
+
"@babel/preset-env": "7.12.1",
|
|
41
|
+
"@babel/register": "7.12.1",
|
|
42
42
|
"babel-loader": "8.1.0",
|
|
43
43
|
"benchmark": "2.1.4",
|
|
44
|
-
"codecov": "3.
|
|
44
|
+
"codecov": "3.8.0",
|
|
45
45
|
"del": "6.0.0",
|
|
46
46
|
"expr-eval": "2.0.2",
|
|
47
47
|
"fancy-log": "1.3.3",
|
|
@@ -53,14 +53,14 @@
|
|
|
53
53
|
"jsep": "0.3.5",
|
|
54
54
|
"karma": "5.2.3",
|
|
55
55
|
"karma-browserstack-launcher": "1.6.0",
|
|
56
|
-
"karma-firefox-launcher": "
|
|
56
|
+
"karma-firefox-launcher": "2.0.0",
|
|
57
57
|
"karma-mocha": "2.0.1",
|
|
58
58
|
"karma-mocha-reporter": "2.2.5",
|
|
59
59
|
"karma-webpack": "4.0.2",
|
|
60
60
|
"lodash": "4.17.20",
|
|
61
61
|
"math-expression-evaluator": "1.2.22",
|
|
62
62
|
"mkdirp": "1.0.4",
|
|
63
|
-
"mocha": "8.
|
|
63
|
+
"mocha": "8.2.0",
|
|
64
64
|
"ndarray": "1.0.19",
|
|
65
65
|
"ndarray-determinant": "1.0.0",
|
|
66
66
|
"ndarray-gemm": "1.0.0",
|
|
@@ -69,9 +69,9 @@
|
|
|
69
69
|
"numericjs": "1.2.6",
|
|
70
70
|
"nyc": "15.1.0",
|
|
71
71
|
"pad-right": "0.2.2",
|
|
72
|
-
"standard": "
|
|
72
|
+
"standard": "16.0.1",
|
|
73
73
|
"sylvester": "0.0.21",
|
|
74
|
-
"uglify-js": "3.
|
|
74
|
+
"uglify-js": "3.11.4",
|
|
75
75
|
"webpack": "4.44.2",
|
|
76
76
|
"zeros": "1.0.0"
|
|
77
77
|
},
|
|
@@ -82,8 +82,8 @@ export function importFactory (typed, load, math, importedFactories) {
|
|
|
82
82
|
} else if (isFactory(value) || name !== undefined) {
|
|
83
83
|
const flatName = isFactory(value)
|
|
84
84
|
? isTransformFunctionFactory(value)
|
|
85
|
-
|
|
86
|
-
|
|
85
|
+
? (value.fn + '.transform') // TODO: this is ugly
|
|
86
|
+
: value.fn
|
|
87
87
|
: name
|
|
88
88
|
|
|
89
89
|
// we allow importing the same function twice if it points to the same implementation
|
|
@@ -2,11 +2,15 @@
|
|
|
2
2
|
* THIS FILE IS AUTO-GENERATED
|
|
3
3
|
* DON'T MAKE CHANGES HERE
|
|
4
4
|
*/
|
|
5
|
+
import { equalScalarDependencies } from './dependenciesEqualScalar.generated'
|
|
6
|
+
import { matrixDependencies } from './dependenciesMatrix.generated'
|
|
5
7
|
import { roundDependencies } from './dependenciesRound.generated'
|
|
6
8
|
import { typedDependencies } from './dependenciesTyped.generated'
|
|
7
9
|
import { createCeil } from '../../factoriesAny.js'
|
|
8
10
|
|
|
9
11
|
export const ceilDependencies = {
|
|
12
|
+
equalScalarDependencies,
|
|
13
|
+
matrixDependencies,
|
|
10
14
|
roundDependencies,
|
|
11
15
|
typedDependencies,
|
|
12
16
|
createCeil
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
import { ComplexDependencies } from './dependenciesComplexClass.generated'
|
|
6
6
|
import { ceilDependencies } from './dependenciesCeil.generated'
|
|
7
7
|
import { floorDependencies } from './dependenciesFloor.generated'
|
|
8
|
+
import { matrixDependencies } from './dependenciesMatrix.generated'
|
|
8
9
|
import { typedDependencies } from './dependenciesTyped.generated'
|
|
9
10
|
import { createFix } from '../../factoriesAny.js'
|
|
10
11
|
|
|
@@ -12,6 +13,7 @@ export const fixDependencies = {
|
|
|
12
13
|
ComplexDependencies,
|
|
13
14
|
ceilDependencies,
|
|
14
15
|
floorDependencies,
|
|
16
|
+
matrixDependencies,
|
|
15
17
|
typedDependencies,
|
|
16
18
|
createFix
|
|
17
19
|
}
|
|
@@ -2,11 +2,15 @@
|
|
|
2
2
|
* THIS FILE IS AUTO-GENERATED
|
|
3
3
|
* DON'T MAKE CHANGES HERE
|
|
4
4
|
*/
|
|
5
|
+
import { equalScalarDependencies } from './dependenciesEqualScalar.generated'
|
|
6
|
+
import { matrixDependencies } from './dependenciesMatrix.generated'
|
|
5
7
|
import { roundDependencies } from './dependenciesRound.generated'
|
|
6
8
|
import { typedDependencies } from './dependenciesTyped.generated'
|
|
7
9
|
import { createFloor } from '../../factoriesAny.js'
|
|
8
10
|
|
|
9
11
|
export const floorDependencies = {
|
|
12
|
+
equalScalarDependencies,
|
|
13
|
+
matrixDependencies,
|
|
10
14
|
roundDependencies,
|
|
11
15
|
typedDependencies,
|
|
12
16
|
createFloor
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* THIS FILE IS AUTO-GENERATED
|
|
3
|
+
* DON'T MAKE CHANGES HERE
|
|
4
|
+
*/
|
|
5
|
+
import { multiplyDependencies } from './dependenciesMultiply.generated'
|
|
6
|
+
import { rotationMatrixDependencies } from './dependenciesRotationMatrix.generated'
|
|
7
|
+
import { typedDependencies } from './dependenciesTyped.generated'
|
|
8
|
+
import { createRotate } from '../../factoriesAny.js'
|
|
9
|
+
|
|
10
|
+
export const rotateDependencies = {
|
|
11
|
+
multiplyDependencies,
|
|
12
|
+
rotationMatrixDependencies,
|
|
13
|
+
typedDependencies,
|
|
14
|
+
createRotate
|
|
15
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* THIS FILE IS AUTO-GENERATED
|
|
3
|
+
* DON'T MAKE CHANGES HERE
|
|
4
|
+
*/
|
|
5
|
+
import { BigNumberDependencies } from './dependenciesBigNumberClass.generated'
|
|
6
|
+
import { DenseMatrixDependencies } from './dependenciesDenseMatrixClass.generated'
|
|
7
|
+
import { SparseMatrixDependencies } from './dependenciesSparseMatrixClass.generated'
|
|
8
|
+
import { addScalarDependencies } from './dependenciesAddScalar.generated'
|
|
9
|
+
import { cosDependencies } from './dependenciesCos.generated'
|
|
10
|
+
import { matrixDependencies } from './dependenciesMatrix.generated'
|
|
11
|
+
import { multiplyScalarDependencies } from './dependenciesMultiplyScalar.generated'
|
|
12
|
+
import { normDependencies } from './dependenciesNorm.generated'
|
|
13
|
+
import { sinDependencies } from './dependenciesSin.generated'
|
|
14
|
+
import { typedDependencies } from './dependenciesTyped.generated'
|
|
15
|
+
import { unaryMinusDependencies } from './dependenciesUnaryMinus.generated'
|
|
16
|
+
import { createRotationMatrix } from '../../factoriesAny.js'
|
|
17
|
+
|
|
18
|
+
export const rotationMatrixDependencies = {
|
|
19
|
+
BigNumberDependencies,
|
|
20
|
+
DenseMatrixDependencies,
|
|
21
|
+
SparseMatrixDependencies,
|
|
22
|
+
addScalarDependencies,
|
|
23
|
+
cosDependencies,
|
|
24
|
+
matrixDependencies,
|
|
25
|
+
multiplyScalarDependencies,
|
|
26
|
+
normDependencies,
|
|
27
|
+
sinDependencies,
|
|
28
|
+
typedDependencies,
|
|
29
|
+
unaryMinusDependencies,
|
|
30
|
+
createRotationMatrix
|
|
31
|
+
}
|
|
@@ -82,6 +82,8 @@ export { onesDependencies } from './dependenciesAny/dependenciesOnes.generated'
|
|
|
82
82
|
export { rangeDependencies } from './dependenciesAny/dependenciesRange.generated'
|
|
83
83
|
export { reshapeDependencies } from './dependenciesAny/dependenciesReshape.generated'
|
|
84
84
|
export { resizeDependencies } from './dependenciesAny/dependenciesResize.generated'
|
|
85
|
+
export { rotateDependencies } from './dependenciesAny/dependenciesRotate.generated'
|
|
86
|
+
export { rotationMatrixDependencies } from './dependenciesAny/dependenciesRotationMatrix.generated'
|
|
85
87
|
export { rowDependencies } from './dependenciesAny/dependenciesRow.generated'
|
|
86
88
|
export { sizeDependencies } from './dependenciesAny/dependenciesSize.generated'
|
|
87
89
|
export { squeezeDependencies } from './dependenciesAny/dependenciesSqueeze.generated'
|