mathjs 14.8.2 → 14.9.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 +5 -1
- package/lib/browser/math.js +1 -1
- package/lib/browser/math.js.LICENSE.txt +2 -2
- package/lib/browser/math.js.map +1 -1
- package/lib/cjs/entry/dependenciesAny/dependenciesRange.generated.js +4 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesRangeTransform.generated.js +4 -0
- package/lib/cjs/entry/dependenciesNumber/dependenciesRange.generated.js +4 -0
- package/lib/cjs/entry/dependenciesNumber/dependenciesRangeTransform.generated.js +4 -0
- package/lib/cjs/entry/impureFunctionsAny.generated.js +2 -0
- package/lib/cjs/entry/impureFunctionsNumber.generated.js +2 -0
- package/lib/cjs/entry/pureFunctionsAny.generated.js +2 -0
- package/lib/cjs/entry/pureFunctionsNumber.generated.js +2 -0
- package/lib/cjs/expression/transform/range.transform.js +5 -1
- package/lib/cjs/function/matrix/map.js +117 -40
- package/lib/cjs/function/matrix/range.js +3 -1
- package/lib/cjs/header.js +2 -2
- package/lib/cjs/type/matrix/Range.js +3 -0
- package/lib/cjs/version.js +1 -1
- package/lib/esm/entry/dependenciesAny/dependenciesRange.generated.js +4 -0
- package/lib/esm/entry/dependenciesAny/dependenciesRangeTransform.generated.js +4 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesRange.generated.js +4 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesRangeTransform.generated.js +4 -0
- package/lib/esm/entry/impureFunctionsAny.generated.js +2 -0
- package/lib/esm/entry/impureFunctionsNumber.generated.js +2 -0
- package/lib/esm/entry/pureFunctionsAny.generated.js +2 -0
- package/lib/esm/entry/pureFunctionsNumber.generated.js +2 -0
- package/lib/esm/expression/transform/range.transform.js +5 -1
- package/lib/esm/function/matrix/map.js +123 -40
- package/lib/esm/function/matrix/range.js +3 -1
- package/lib/esm/type/matrix/Range.js +4 -1
- package/lib/esm/version.js +1 -1
- package/package.json +7 -7
@@ -7,7 +7,9 @@ exports.rangeDependencies = void 0;
|
|
7
7
|
var _dependenciesBignumberGenerated = require("./dependenciesBignumber.generated.js");
|
8
8
|
var _dependenciesMatrixGenerated = require("./dependenciesMatrix.generated.js");
|
9
9
|
var _dependenciesAddGenerated = require("./dependenciesAdd.generated.js");
|
10
|
+
var _dependenciesEqualGenerated = require("./dependenciesEqual.generated.js");
|
10
11
|
var _dependenciesIsPositiveGenerated = require("./dependenciesIsPositive.generated.js");
|
12
|
+
var _dependenciesIsZeroGenerated = require("./dependenciesIsZero.generated.js");
|
11
13
|
var _dependenciesLargerGenerated = require("./dependenciesLarger.generated.js");
|
12
14
|
var _dependenciesLargerEqGenerated = require("./dependenciesLargerEq.generated.js");
|
13
15
|
var _dependenciesSmallerGenerated = require("./dependenciesSmaller.generated.js");
|
@@ -23,7 +25,9 @@ const rangeDependencies = exports.rangeDependencies = {
|
|
23
25
|
bignumberDependencies: _dependenciesBignumberGenerated.bignumberDependencies,
|
24
26
|
matrixDependencies: _dependenciesMatrixGenerated.matrixDependencies,
|
25
27
|
addDependencies: _dependenciesAddGenerated.addDependencies,
|
28
|
+
equalDependencies: _dependenciesEqualGenerated.equalDependencies,
|
26
29
|
isPositiveDependencies: _dependenciesIsPositiveGenerated.isPositiveDependencies,
|
30
|
+
isZeroDependencies: _dependenciesIsZeroGenerated.isZeroDependencies,
|
27
31
|
largerDependencies: _dependenciesLargerGenerated.largerDependencies,
|
28
32
|
largerEqDependencies: _dependenciesLargerEqGenerated.largerEqDependencies,
|
29
33
|
smallerDependencies: _dependenciesSmallerGenerated.smallerDependencies,
|
@@ -7,7 +7,9 @@ exports.rangeTransformDependencies = void 0;
|
|
7
7
|
var _dependenciesBignumberGenerated = require("./dependenciesBignumber.generated.js");
|
8
8
|
var _dependenciesMatrixGenerated = require("./dependenciesMatrix.generated.js");
|
9
9
|
var _dependenciesAddGenerated = require("./dependenciesAdd.generated.js");
|
10
|
+
var _dependenciesEqualGenerated = require("./dependenciesEqual.generated.js");
|
10
11
|
var _dependenciesIsPositiveGenerated = require("./dependenciesIsPositive.generated.js");
|
12
|
+
var _dependenciesIsZeroGenerated = require("./dependenciesIsZero.generated.js");
|
11
13
|
var _dependenciesLargerGenerated = require("./dependenciesLarger.generated.js");
|
12
14
|
var _dependenciesLargerEqGenerated = require("./dependenciesLargerEq.generated.js");
|
13
15
|
var _dependenciesSmallerGenerated = require("./dependenciesSmaller.generated.js");
|
@@ -23,7 +25,9 @@ const rangeTransformDependencies = exports.rangeTransformDependencies = {
|
|
23
25
|
bignumberDependencies: _dependenciesBignumberGenerated.bignumberDependencies,
|
24
26
|
matrixDependencies: _dependenciesMatrixGenerated.matrixDependencies,
|
25
27
|
addDependencies: _dependenciesAddGenerated.addDependencies,
|
28
|
+
equalDependencies: _dependenciesEqualGenerated.equalDependencies,
|
26
29
|
isPositiveDependencies: _dependenciesIsPositiveGenerated.isPositiveDependencies,
|
30
|
+
isZeroDependencies: _dependenciesIsZeroGenerated.isZeroDependencies,
|
27
31
|
largerDependencies: _dependenciesLargerGenerated.largerDependencies,
|
28
32
|
largerEqDependencies: _dependenciesLargerEqGenerated.largerEqDependencies,
|
29
33
|
smallerDependencies: _dependenciesSmallerGenerated.smallerDependencies,
|
@@ -6,7 +6,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
exports.rangeDependencies = void 0;
|
7
7
|
var _dependenciesMatrixGenerated = require("./dependenciesMatrix.generated.js");
|
8
8
|
var _dependenciesAddGenerated = require("./dependenciesAdd.generated.js");
|
9
|
+
var _dependenciesEqualGenerated = require("./dependenciesEqual.generated.js");
|
9
10
|
var _dependenciesIsPositiveGenerated = require("./dependenciesIsPositive.generated.js");
|
11
|
+
var _dependenciesIsZeroGenerated = require("./dependenciesIsZero.generated.js");
|
10
12
|
var _dependenciesLargerGenerated = require("./dependenciesLarger.generated.js");
|
11
13
|
var _dependenciesLargerEqGenerated = require("./dependenciesLargerEq.generated.js");
|
12
14
|
var _dependenciesSmallerGenerated = require("./dependenciesSmaller.generated.js");
|
@@ -21,7 +23,9 @@ var _factoriesNumber = require("../../factoriesNumber.js");
|
|
21
23
|
const rangeDependencies = exports.rangeDependencies = {
|
22
24
|
matrixDependencies: _dependenciesMatrixGenerated.matrixDependencies,
|
23
25
|
addDependencies: _dependenciesAddGenerated.addDependencies,
|
26
|
+
equalDependencies: _dependenciesEqualGenerated.equalDependencies,
|
24
27
|
isPositiveDependencies: _dependenciesIsPositiveGenerated.isPositiveDependencies,
|
28
|
+
isZeroDependencies: _dependenciesIsZeroGenerated.isZeroDependencies,
|
25
29
|
largerDependencies: _dependenciesLargerGenerated.largerDependencies,
|
26
30
|
largerEqDependencies: _dependenciesLargerEqGenerated.largerEqDependencies,
|
27
31
|
smallerDependencies: _dependenciesSmallerGenerated.smallerDependencies,
|
@@ -6,7 +6,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
exports.rangeTransformDependencies = void 0;
|
7
7
|
var _dependenciesMatrixGenerated = require("./dependenciesMatrix.generated.js");
|
8
8
|
var _dependenciesAddGenerated = require("./dependenciesAdd.generated.js");
|
9
|
+
var _dependenciesEqualGenerated = require("./dependenciesEqual.generated.js");
|
9
10
|
var _dependenciesIsPositiveGenerated = require("./dependenciesIsPositive.generated.js");
|
11
|
+
var _dependenciesIsZeroGenerated = require("./dependenciesIsZero.generated.js");
|
10
12
|
var _dependenciesLargerGenerated = require("./dependenciesLarger.generated.js");
|
11
13
|
var _dependenciesLargerEqGenerated = require("./dependenciesLargerEq.generated.js");
|
12
14
|
var _dependenciesSmallerGenerated = require("./dependenciesSmaller.generated.js");
|
@@ -21,7 +23,9 @@ var _factoriesNumber = require("../../factoriesNumber.js");
|
|
21
23
|
const rangeTransformDependencies = exports.rangeTransformDependencies = {
|
22
24
|
matrixDependencies: _dependenciesMatrixGenerated.matrixDependencies,
|
23
25
|
addDependencies: _dependenciesAddGenerated.addDependencies,
|
26
|
+
equalDependencies: _dependenciesEqualGenerated.equalDependencies,
|
24
27
|
isPositiveDependencies: _dependenciesIsPositiveGenerated.isPositiveDependencies,
|
28
|
+
isZeroDependencies: _dependenciesIsZeroGenerated.isZeroDependencies,
|
25
29
|
largerDependencies: _dependenciesLargerGenerated.largerDependencies,
|
26
30
|
largerEqDependencies: _dependenciesLargerEqGenerated.largerEqDependencies,
|
27
31
|
smallerDependencies: _dependenciesSmallerGenerated.smallerDependencies,
|
@@ -676,7 +676,9 @@ const help = exports.help = (0, _factoriesAny.createHelp)({
|
|
676
676
|
matrix: _pureFunctionsAnyGenerated.matrix,
|
677
677
|
add: _pureFunctionsAnyGenerated.add,
|
678
678
|
config: _configReadonly.config,
|
679
|
+
equal: _pureFunctionsAnyGenerated.equal,
|
679
680
|
isPositive: _pureFunctionsAnyGenerated.isPositive,
|
681
|
+
isZero: _pureFunctionsAnyGenerated.isZero,
|
680
682
|
larger: _pureFunctionsAnyGenerated.larger,
|
681
683
|
largerEq: _pureFunctionsAnyGenerated.largerEq,
|
682
684
|
smaller: _pureFunctionsAnyGenerated.smaller,
|
@@ -441,7 +441,9 @@ const parser = exports.parser = (0, _factoriesNumber.createParser)({
|
|
441
441
|
matrix: _pureFunctionsNumberGenerated.matrix,
|
442
442
|
add: _pureFunctionsNumberGenerated.add,
|
443
443
|
config: _configReadonly.config,
|
444
|
+
equal: _pureFunctionsNumberGenerated.equal,
|
444
445
|
isPositive: _pureFunctionsNumberGenerated.isPositive,
|
446
|
+
isZero: _pureFunctionsNumberGenerated.isZero,
|
445
447
|
larger: _pureFunctionsNumberGenerated.larger,
|
446
448
|
largerEq: _pureFunctionsNumberGenerated.largerEq,
|
447
449
|
smaller: _pureFunctionsNumberGenerated.smaller,
|
@@ -7,18 +7,20 @@ exports.createRangeTransform = void 0;
|
|
7
7
|
var _factory = require("../../utils/factory.js");
|
8
8
|
var _range = require("../../function/matrix/range.js");
|
9
9
|
const name = 'range';
|
10
|
-
const dependencies = ['typed', 'config', '?matrix', '?bignumber', 'smaller', 'smallerEq', 'larger', 'largerEq', 'add', 'isPositive'];
|
10
|
+
const dependencies = ['typed', 'config', '?matrix', '?bignumber', 'equal', 'smaller', 'smallerEq', 'larger', 'largerEq', 'add', 'isZero', 'isPositive'];
|
11
11
|
const createRangeTransform = exports.createRangeTransform = /* #__PURE__ */(0, _factory.factory)(name, dependencies, _ref => {
|
12
12
|
let {
|
13
13
|
typed,
|
14
14
|
config,
|
15
15
|
matrix,
|
16
16
|
bignumber,
|
17
|
+
equal,
|
17
18
|
smaller,
|
18
19
|
smallerEq,
|
19
20
|
larger,
|
20
21
|
largerEq,
|
21
22
|
add,
|
23
|
+
isZero,
|
22
24
|
isPositive
|
23
25
|
} = _ref;
|
24
26
|
const range = (0, _range.createRange)({
|
@@ -26,11 +28,13 @@ const createRangeTransform = exports.createRangeTransform = /* #__PURE__ */(0, _
|
|
26
28
|
config,
|
27
29
|
matrix,
|
28
30
|
bignumber,
|
31
|
+
equal,
|
29
32
|
smaller,
|
30
33
|
smallerEq,
|
31
34
|
larger,
|
32
35
|
largerEq,
|
33
36
|
add,
|
37
|
+
isZero,
|
34
38
|
isPositive
|
35
39
|
});
|
36
40
|
|
@@ -82,58 +82,135 @@ const createMap = exports.createMap = /* #__PURE__ */(0, _factory.factory)(name,
|
|
82
82
|
throw new Error('Last argument must be a callback function');
|
83
83
|
}
|
84
84
|
const firstArrayIsMatrix = Arrays[0].isMatrix;
|
85
|
-
const
|
85
|
+
const sizes = Arrays.map(M => M.isMatrix ? M.size() : (0, _array.arraySize)(M));
|
86
|
+
const newSize = (0, _array.broadcastSizes)(...sizes);
|
87
|
+
const numberOfArrays = Arrays.length;
|
86
88
|
const _get = firstArrayIsMatrix ? (matrix, idx) => matrix.get(idx) : _array.get;
|
87
|
-
const
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
callback = _getLimitedCallback(
|
94
|
-
|
95
|
-
const numberOfArrays = Arrays.length;
|
96
|
-
const callbackCase = _getCallbackCase(multiCallback, numberOfArrays);
|
97
|
-
callback = _getLimitedCallback(callbackCase);
|
89
|
+
const firstValues = Arrays.map((collection, i) => {
|
90
|
+
const firstIndex = sizes[i].map(() => 0);
|
91
|
+
return collection.isMatrix ? collection.get(firstIndex) : (0, _array.get)(collection, firstIndex);
|
92
|
+
});
|
93
|
+
const callbackArgCount = typed.isTypedFunction(multiCallback) ? _getTypedCallbackArgCount(multiCallback, firstValues, newSize.map(() => 0), Arrays) : _getCallbackArgCount(multiCallback, numberOfArrays);
|
94
|
+
if (callbackArgCount < 2) {
|
95
|
+
const callback = _getLimitedCallback(callbackArgCount, multiCallback, null);
|
96
|
+
return mapMultiple(Arrays, callback);
|
98
97
|
}
|
99
|
-
const
|
98
|
+
const broadcastedArrays = firstArrayIsMatrix ? Arrays.map(M => M.isMatrix ? M.create((0, _array.broadcastTo)(M.toArray(), newSize), M.datatype()) : Arrays[0].create((0, _array.broadcastTo)(M.valueOf(), newSize))) : Arrays.map(M => M.isMatrix ? (0, _array.broadcastTo)(M.toArray(), newSize) : (0, _array.broadcastTo)(M, newSize));
|
99
|
+
const callback = _getLimitedCallback(callbackArgCount, multiCallback, broadcastedArrays);
|
100
|
+
const broadcastedArraysCallback = (x, idx) => callback([x, ...broadcastedArrays.slice(1).map(array => _get(array, idx))], idx);
|
100
101
|
if (firstArrayIsMatrix) {
|
101
102
|
return broadcastedArrays[0].map(broadcastedArraysCallback);
|
102
103
|
} else {
|
103
104
|
return _mapArray(broadcastedArrays[0], broadcastedArraysCallback);
|
104
105
|
}
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
106
|
+
}
|
107
|
+
function mapMultiple(collections, callback) {
|
108
|
+
// collections can be matrices or arrays
|
109
|
+
// callback must be a function of the form (collections, [index])
|
110
|
+
const firstCollection = collections[0];
|
111
|
+
const arrays = collections.map(collection => collection.isMatrix ? collection.valueOf() : collection);
|
112
|
+
const sizes = collections.map(collection => collection.isMatrix ? collection.size() : (0, _array.arraySize)(collection));
|
113
|
+
const finalSize = (0, _array.broadcastSizes)(...sizes);
|
114
|
+
// the offset means for each initial array, how much smaller is it than the final size
|
115
|
+
const offsets = sizes.map(size => finalSize.length - size.length);
|
116
|
+
const maxDepth = finalSize.length - 1;
|
117
|
+
const callbackUsesIndex = callback.length > 1;
|
118
|
+
const index = callbackUsesIndex ? [] : null;
|
119
|
+
const resultsArray = iterate(arrays, 0);
|
120
|
+
if (firstCollection.isMatrix) {
|
121
|
+
const resultsMatrix = firstCollection.create();
|
122
|
+
resultsMatrix._data = resultsArray;
|
123
|
+
resultsMatrix._size = finalSize;
|
124
|
+
return resultsMatrix;
|
125
|
+
} else {
|
126
|
+
return resultsArray;
|
114
127
|
}
|
115
|
-
function
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
128
|
+
function iterate(arrays) {
|
129
|
+
let depth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
130
|
+
// each array can have different sizes
|
131
|
+
const currentDimensionSize = finalSize[depth];
|
132
|
+
const result = Array(currentDimensionSize);
|
133
|
+
if (depth < maxDepth) {
|
134
|
+
for (let i = 0; i < currentDimensionSize; i++) {
|
135
|
+
if (index) index[depth] = i;
|
136
|
+
// if there is an offset greater than the current dimension
|
137
|
+
// pass the array, if the size of the array is 1 pass the first
|
138
|
+
// element of the array
|
139
|
+
result[i] = iterate(arrays.map((array, arrayIndex) => offsets[arrayIndex] > depth ? array : array.length === 1 ? array[0] : array[i]), depth + 1);
|
140
|
+
}
|
141
|
+
} else {
|
142
|
+
for (let i = 0; i < currentDimensionSize; i++) {
|
143
|
+
if (index) index[depth] = i;
|
144
|
+
result[i] = callback(arrays.map(a => a.length === 1 ? a[0] : a[i]), index ? index.slice() : undefined);
|
145
|
+
}
|
121
146
|
}
|
122
|
-
return
|
147
|
+
return result;
|
123
148
|
}
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
149
|
+
}
|
150
|
+
|
151
|
+
/**
|
152
|
+
* Creates a limited callback based on the argument pattern.
|
153
|
+
* @param {number} callbackArgCount - The argument pattern (0, 1, or 2)
|
154
|
+
* @param {Function} multiCallback - The original callback function
|
155
|
+
* @param {Array} broadcastedArrays - The broadcasted arrays (for case 2)
|
156
|
+
* @returns {Function} The limited callback function
|
157
|
+
*/
|
158
|
+
function _getLimitedCallback(callbackArgCount, multiCallback, broadcastedArrays) {
|
159
|
+
switch (callbackArgCount) {
|
160
|
+
case 0:
|
161
|
+
return x => multiCallback(...x);
|
162
|
+
case 1:
|
163
|
+
return (x, idx) => multiCallback(...x, idx);
|
164
|
+
case 2:
|
165
|
+
return (x, idx) => multiCallback(...x, idx, ...broadcastedArrays);
|
166
|
+
}
|
167
|
+
}
|
168
|
+
|
169
|
+
/**
|
170
|
+
* Determines the argument pattern of a regular callback function.
|
171
|
+
* @param {Function} callback - The callback function to analyze
|
172
|
+
* @param {number} numberOfArrays - Number of arrays being processed
|
173
|
+
* @returns {number} 0 = values only, 1 = values + index, 2 = values + index + arrays
|
174
|
+
*/
|
175
|
+
function _getCallbackArgCount(callback, numberOfArrays) {
|
176
|
+
const callbackStr = callback.toString();
|
177
|
+
// Check if the callback function uses `arguments`
|
178
|
+
if (/arguments/.test(callbackStr)) return 2;
|
179
|
+
|
180
|
+
// Extract the parameters of the callback function
|
181
|
+
const paramsStr = callbackStr.match(/\(.*?\)/);
|
182
|
+
// Check if the callback function uses rest parameters
|
183
|
+
if (/\.\.\./.test(paramsStr)) return 2;
|
184
|
+
if (callback.length > numberOfArrays + 1) {
|
185
|
+
return 2;
|
186
|
+
}
|
187
|
+
if (callback.length === numberOfArrays + 1) {
|
188
|
+
return 1;
|
189
|
+
}
|
190
|
+
return 0;
|
191
|
+
}
|
192
|
+
|
193
|
+
/**
|
194
|
+
* Determines the argument pattern of a typed callback function.
|
195
|
+
* @param {Function} callback - The typed callback function to analyze
|
196
|
+
* @param {Array} values - Sample values for signature resolution
|
197
|
+
* @param {Array} idx - Sample index for signature resolution
|
198
|
+
* @param {Array} arrays - Sample arrays for signature resolution
|
199
|
+
* @returns {number} 0 = values only, 1 = values + index, 2 = values + index + arrays
|
200
|
+
*/
|
201
|
+
|
202
|
+
function _getTypedCallbackArgCount(callback, values, idx, arrays) {
|
203
|
+
if (typed.resolve(callback, [...values, idx, ...arrays]) !== null) {
|
204
|
+
return 2;
|
205
|
+
}
|
206
|
+
if (typed.resolve(callback, [...values, idx]) !== null) {
|
207
|
+
return 1;
|
208
|
+
}
|
209
|
+
if (typed.resolve(callback, values) !== null) {
|
135
210
|
return 0;
|
136
211
|
}
|
212
|
+
// this should never happen
|
213
|
+
return 0;
|
137
214
|
}
|
138
215
|
/**
|
139
216
|
* Map for a multi dimensional array
|
@@ -7,7 +7,7 @@ exports.createRange = void 0;
|
|
7
7
|
var _factory = require("../../utils/factory.js");
|
8
8
|
var _noop = require("../../utils/noop.js");
|
9
9
|
const name = 'range';
|
10
|
-
const dependencies = ['typed', 'config', '?matrix', '?bignumber', 'smaller', 'smallerEq', 'larger', 'largerEq', 'add', 'isPositive'];
|
10
|
+
const dependencies = ['typed', 'config', '?matrix', '?bignumber', 'equal', 'smaller', 'smallerEq', 'larger', 'largerEq', 'add', 'isZero', 'isPositive'];
|
11
11
|
const createRange = exports.createRange = /* #__PURE__ */(0, _factory.factory)(name, dependencies, _ref => {
|
12
12
|
let {
|
13
13
|
typed,
|
@@ -19,6 +19,7 @@ const createRange = exports.createRange = /* #__PURE__ */(0, _factory.factory)(n
|
|
19
19
|
larger,
|
20
20
|
largerEq,
|
21
21
|
add,
|
22
|
+
isZero,
|
22
23
|
isPositive
|
23
24
|
} = _ref;
|
24
25
|
/**
|
@@ -187,6 +188,7 @@ const createRange = exports.createRange = /* #__PURE__ */(0, _factory.factory)(n
|
|
187
188
|
*/
|
188
189
|
function _range(start, end, step, includeEnd) {
|
189
190
|
const array = [];
|
191
|
+
if (isZero(step)) throw new Error('Step must be non-zero');
|
190
192
|
const ongoing = isPositive(step) ? includeEnd ? smallerEq : smaller : includeEnd ? largerEq : larger;
|
191
193
|
let x = start;
|
192
194
|
while (ongoing(x, end)) {
|
package/lib/cjs/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 14.
|
10
|
-
* @date 2025-10-
|
9
|
+
* @version 14.9.0
|
10
|
+
* @date 2025-10-10
|
11
11
|
*
|
12
12
|
* @license
|
13
13
|
* Copyright (C) 2013-2025 Jos de Jong <wjosdejong@gmail.com>
|
@@ -79,6 +79,9 @@ const createRangeClass = exports.createRangeClass = /* #__PURE__ */(0, _factory.
|
|
79
79
|
this.start = hasStart ? parseFloat(start) : 0;
|
80
80
|
this.end = hasEnd ? parseFloat(end) : 0;
|
81
81
|
this.step = hasStep ? parseFloat(step) : 1;
|
82
|
+
if (hasStep && (0, _number.nearlyEqual)(this.step, 0)) {
|
83
|
+
throw new Error('Step must not be zero');
|
84
|
+
}
|
82
85
|
}
|
83
86
|
|
84
87
|
/**
|
package/lib/cjs/version.js
CHANGED
@@ -4,6 +4,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
5
5
|
});
|
6
6
|
exports.version = void 0;
|
7
|
-
const version = exports.version = '14.
|
7
|
+
const version = exports.version = '14.9.0';
|
8
8
|
// Note: This file is automatically generated when building math.js.
|
9
9
|
// Changes made in this file will be overwritten.
|
@@ -5,7 +5,9 @@
|
|
5
5
|
import { bignumberDependencies } from './dependenciesBignumber.generated.js';
|
6
6
|
import { matrixDependencies } from './dependenciesMatrix.generated.js';
|
7
7
|
import { addDependencies } from './dependenciesAdd.generated.js';
|
8
|
+
import { equalDependencies } from './dependenciesEqual.generated.js';
|
8
9
|
import { isPositiveDependencies } from './dependenciesIsPositive.generated.js';
|
10
|
+
import { isZeroDependencies } from './dependenciesIsZero.generated.js';
|
9
11
|
import { largerDependencies } from './dependenciesLarger.generated.js';
|
10
12
|
import { largerEqDependencies } from './dependenciesLargerEq.generated.js';
|
11
13
|
import { smallerDependencies } from './dependenciesSmaller.generated.js';
|
@@ -16,7 +18,9 @@ export var rangeDependencies = {
|
|
16
18
|
bignumberDependencies,
|
17
19
|
matrixDependencies,
|
18
20
|
addDependencies,
|
21
|
+
equalDependencies,
|
19
22
|
isPositiveDependencies,
|
23
|
+
isZeroDependencies,
|
20
24
|
largerDependencies,
|
21
25
|
largerEqDependencies,
|
22
26
|
smallerDependencies,
|
@@ -5,7 +5,9 @@
|
|
5
5
|
import { bignumberDependencies } from './dependenciesBignumber.generated.js';
|
6
6
|
import { matrixDependencies } from './dependenciesMatrix.generated.js';
|
7
7
|
import { addDependencies } from './dependenciesAdd.generated.js';
|
8
|
+
import { equalDependencies } from './dependenciesEqual.generated.js';
|
8
9
|
import { isPositiveDependencies } from './dependenciesIsPositive.generated.js';
|
10
|
+
import { isZeroDependencies } from './dependenciesIsZero.generated.js';
|
9
11
|
import { largerDependencies } from './dependenciesLarger.generated.js';
|
10
12
|
import { largerEqDependencies } from './dependenciesLargerEq.generated.js';
|
11
13
|
import { smallerDependencies } from './dependenciesSmaller.generated.js';
|
@@ -16,7 +18,9 @@ export var rangeTransformDependencies = {
|
|
16
18
|
bignumberDependencies,
|
17
19
|
matrixDependencies,
|
18
20
|
addDependencies,
|
21
|
+
equalDependencies,
|
19
22
|
isPositiveDependencies,
|
23
|
+
isZeroDependencies,
|
20
24
|
largerDependencies,
|
21
25
|
largerEqDependencies,
|
22
26
|
smallerDependencies,
|
@@ -4,7 +4,9 @@
|
|
4
4
|
*/
|
5
5
|
import { matrixDependencies } from './dependenciesMatrix.generated.js';
|
6
6
|
import { addDependencies } from './dependenciesAdd.generated.js';
|
7
|
+
import { equalDependencies } from './dependenciesEqual.generated.js';
|
7
8
|
import { isPositiveDependencies } from './dependenciesIsPositive.generated.js';
|
9
|
+
import { isZeroDependencies } from './dependenciesIsZero.generated.js';
|
8
10
|
import { largerDependencies } from './dependenciesLarger.generated.js';
|
9
11
|
import { largerEqDependencies } from './dependenciesLargerEq.generated.js';
|
10
12
|
import { smallerDependencies } from './dependenciesSmaller.generated.js';
|
@@ -14,7 +16,9 @@ import { createRange } from '../../factoriesNumber.js';
|
|
14
16
|
export var rangeDependencies = {
|
15
17
|
matrixDependencies,
|
16
18
|
addDependencies,
|
19
|
+
equalDependencies,
|
17
20
|
isPositiveDependencies,
|
21
|
+
isZeroDependencies,
|
18
22
|
largerDependencies,
|
19
23
|
largerEqDependencies,
|
20
24
|
smallerDependencies,
|
@@ -4,7 +4,9 @@
|
|
4
4
|
*/
|
5
5
|
import { matrixDependencies } from './dependenciesMatrix.generated.js';
|
6
6
|
import { addDependencies } from './dependenciesAdd.generated.js';
|
7
|
+
import { equalDependencies } from './dependenciesEqual.generated.js';
|
7
8
|
import { isPositiveDependencies } from './dependenciesIsPositive.generated.js';
|
9
|
+
import { isZeroDependencies } from './dependenciesIsZero.generated.js';
|
8
10
|
import { largerDependencies } from './dependenciesLarger.generated.js';
|
9
11
|
import { largerEqDependencies } from './dependenciesLargerEq.generated.js';
|
10
12
|
import { smallerDependencies } from './dependenciesSmaller.generated.js';
|
@@ -14,7 +16,9 @@ import { createRangeTransform } from '../../factoriesNumber.js';
|
|
14
16
|
export var rangeTransformDependencies = {
|
15
17
|
matrixDependencies,
|
16
18
|
addDependencies,
|
19
|
+
equalDependencies,
|
17
20
|
isPositiveDependencies,
|
21
|
+
isZeroDependencies,
|
18
22
|
largerDependencies,
|
19
23
|
largerEqDependencies,
|
20
24
|
smallerDependencies,
|
@@ -1,18 +1,20 @@
|
|
1
1
|
import { factory } from '../../utils/factory.js';
|
2
2
|
import { createRange } from '../../function/matrix/range.js';
|
3
3
|
var name = 'range';
|
4
|
-
var dependencies = ['typed', 'config', '?matrix', '?bignumber', 'smaller', 'smallerEq', 'larger', 'largerEq', 'add', 'isPositive'];
|
4
|
+
var dependencies = ['typed', 'config', '?matrix', '?bignumber', 'equal', 'smaller', 'smallerEq', 'larger', 'largerEq', 'add', 'isZero', 'isPositive'];
|
5
5
|
export var createRangeTransform = /* #__PURE__ */factory(name, dependencies, _ref => {
|
6
6
|
var {
|
7
7
|
typed,
|
8
8
|
config,
|
9
9
|
matrix,
|
10
10
|
bignumber,
|
11
|
+
equal,
|
11
12
|
smaller,
|
12
13
|
smallerEq,
|
13
14
|
larger,
|
14
15
|
largerEq,
|
15
16
|
add,
|
17
|
+
isZero,
|
16
18
|
isPositive
|
17
19
|
} = _ref;
|
18
20
|
var range = createRange({
|
@@ -20,11 +22,13 @@ export var createRangeTransform = /* #__PURE__ */factory(name, dependencies, _re
|
|
20
22
|
config,
|
21
23
|
matrix,
|
22
24
|
bignumber,
|
25
|
+
equal,
|
23
26
|
smaller,
|
24
27
|
smallerEq,
|
25
28
|
larger,
|
26
29
|
largerEq,
|
27
30
|
add,
|
31
|
+
isZero,
|
28
32
|
isPositive
|
29
33
|
});
|
30
34
|
|