mathjs 14.1.0 → 14.2.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 +11 -0
- 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/core/function/import.js +14 -4
- package/lib/cjs/entry/dependenciesAny/{dependenciesApply.generated.js → dependenciesMapSlices.generated.js} +3 -3
- package/lib/cjs/entry/dependenciesAny/{dependenciesApplyTransform.generated.js → dependenciesMapSlicesTransform.generated.js} +3 -3
- package/lib/cjs/entry/dependenciesAny/dependenciesQuantileSeq.generated.js +2 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesQuantileSeqTransform.generated.js +2 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesVariance.generated.js +2 -2
- package/lib/cjs/entry/dependenciesAny/dependenciesVarianceTransform.generated.js +2 -2
- package/lib/cjs/entry/dependenciesAny.generated.js +14 -14
- package/lib/cjs/entry/dependenciesNumber/{dependenciesApply.generated.js → dependenciesMapSlices.generated.js} +3 -3
- package/lib/cjs/entry/dependenciesNumber/{dependenciesApplyTransform.generated.js → dependenciesMapSlicesTransform.generated.js} +3 -3
- package/lib/cjs/entry/dependenciesNumber/dependenciesQuantileSeq.generated.js +2 -0
- package/lib/cjs/entry/dependenciesNumber/dependenciesVariance.generated.js +2 -2
- package/lib/cjs/entry/dependenciesNumber/dependenciesVarianceTransform.generated.js +2 -2
- package/lib/cjs/entry/dependenciesNumber.generated.js +14 -14
- package/lib/cjs/entry/impureFunctionsAny.generated.js +86 -85
- package/lib/cjs/entry/impureFunctionsNumber.generated.js +13 -13
- package/lib/cjs/entry/pureFunctionsAny.generated.js +328 -326
- package/lib/cjs/entry/pureFunctionsNumber.generated.js +13 -11
- package/lib/cjs/expression/embeddedDocs/embeddedDocs.js +2 -0
- package/lib/cjs/expression/embeddedDocs/function/matrix/mapSlices.js +17 -0
- package/lib/cjs/expression/transform/index.transform.js +2 -2
- package/lib/cjs/expression/transform/{apply.transform.js → mapSlices.transform.js} +11 -10
- package/lib/cjs/expression/transform/quantileSeq.transform.js +5 -3
- package/lib/cjs/expression/transform/variance.transform.js +3 -3
- package/lib/cjs/factoriesAny.js +14 -14
- package/lib/cjs/factoriesNumber.js +16 -15
- package/lib/cjs/function/arithmetic/ceil.js +34 -26
- package/lib/cjs/function/arithmetic/fix.js +3 -0
- package/lib/cjs/function/arithmetic/floor.js +41 -26
- package/lib/cjs/function/arithmetic/round.js +4 -0
- package/lib/cjs/function/matrix/ctranspose.js +1 -1
- package/lib/cjs/function/matrix/{apply.js → mapSlices.js} +19 -12
- package/lib/cjs/function/matrix/matrixFromFunction.js +36 -3
- package/lib/cjs/function/matrix/range.js +54 -5
- package/lib/cjs/function/statistics/quantileSeq.js +4 -9
- package/lib/cjs/function/statistics/variance.js +3 -3
- package/lib/cjs/function/string/hex.js +1 -1
- package/lib/cjs/function/trigonometry/acoth.js +1 -1
- package/lib/cjs/function/trigonometry/acsc.js +1 -1
- package/lib/cjs/function/trigonometry/asin.js +1 -1
- package/lib/cjs/function/trigonometry/atan2.js +2 -1
- package/lib/cjs/function/trigonometry/cos.js +1 -1
- package/lib/cjs/function/trigonometry/sin.js +1 -1
- package/lib/cjs/header.js +2 -2
- package/lib/cjs/type/matrix/MatrixIndex.js +6 -3
- package/lib/cjs/type/matrix/Range.js +15 -8
- package/lib/cjs/utils/factory.js +5 -2
- package/lib/cjs/utils/snapshot.js +8 -1
- package/lib/cjs/version.js +1 -1
- package/lib/esm/core/function/import.js +14 -4
- package/lib/esm/entry/{dependenciesNumber/dependenciesApply.generated.js → dependenciesAny/dependenciesMapSlices.generated.js} +3 -3
- package/lib/esm/entry/{dependenciesNumber/dependenciesApplyTransform.generated.js → dependenciesAny/dependenciesMapSlicesTransform.generated.js} +3 -3
- package/lib/esm/entry/dependenciesAny/dependenciesQuantileSeq.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesQuantileSeqTransform.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesVariance.generated.js +2 -2
- package/lib/esm/entry/dependenciesAny/dependenciesVarianceTransform.generated.js +2 -2
- package/lib/esm/entry/dependenciesAny.generated.js +2 -2
- package/lib/esm/entry/{dependenciesAny/dependenciesApply.generated.js → dependenciesNumber/dependenciesMapSlices.generated.js} +3 -3
- package/lib/esm/entry/{dependenciesAny/dependenciesApplyTransform.generated.js → dependenciesNumber/dependenciesMapSlicesTransform.generated.js} +3 -3
- package/lib/esm/entry/dependenciesNumber/dependenciesQuantileSeq.generated.js +2 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesVariance.generated.js +2 -2
- package/lib/esm/entry/dependenciesNumber/dependenciesVarianceTransform.generated.js +2 -2
- package/lib/esm/entry/dependenciesNumber.generated.js +2 -2
- package/lib/esm/entry/impureFunctionsAny.generated.js +88 -87
- package/lib/esm/entry/impureFunctionsNumber.generated.js +15 -15
- package/lib/esm/entry/pureFunctionsAny.generated.js +326 -324
- package/lib/esm/entry/pureFunctionsNumber.generated.js +12 -10
- package/lib/esm/expression/embeddedDocs/embeddedDocs.js +2 -0
- package/lib/esm/expression/embeddedDocs/function/matrix/mapSlices.js +11 -0
- package/lib/esm/expression/transform/index.transform.js +3 -3
- package/lib/esm/expression/transform/mapSlices.transform.js +47 -0
- package/lib/esm/expression/transform/quantileSeq.transform.js +5 -3
- package/lib/esm/expression/transform/variance.transform.js +3 -3
- package/lib/esm/factoriesAny.js +2 -2
- package/lib/esm/factoriesNumber.js +2 -2
- package/lib/esm/function/arithmetic/ceil.js +35 -27
- package/lib/esm/function/arithmetic/fix.js +3 -0
- package/lib/esm/function/arithmetic/floor.js +42 -27
- package/lib/esm/function/arithmetic/round.js +4 -0
- package/lib/esm/function/matrix/ctranspose.js +1 -1
- package/lib/esm/function/matrix/{apply.js → mapSlices.js} +18 -11
- package/lib/esm/function/matrix/matrixFromFunction.js +36 -3
- package/lib/esm/function/matrix/range.js +54 -5
- package/lib/esm/function/statistics/quantileSeq.js +4 -9
- package/lib/esm/function/statistics/variance.js +3 -3
- package/lib/esm/function/string/hex.js +1 -1
- package/lib/esm/function/trigonometry/acoth.js +1 -1
- package/lib/esm/function/trigonometry/acsc.js +1 -1
- package/lib/esm/function/trigonometry/asin.js +1 -1
- package/lib/esm/function/trigonometry/atan2.js +2 -1
- package/lib/esm/function/trigonometry/cos.js +1 -1
- package/lib/esm/function/trigonometry/sin.js +1 -1
- package/lib/esm/type/matrix/MatrixIndex.js +6 -3
- package/lib/esm/type/matrix/Range.js +16 -9
- package/lib/esm/utils/factory.js +5 -2
- package/lib/esm/utils/snapshot.js +8 -1
- package/lib/esm/version.js +1 -1
- package/package.json +1 -1
- package/types/index.d.ts +75 -12
- package/lib/esm/expression/transform/apply.transform.js +0 -44
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
7
|
-
exports.zeta = exports.xor = exports.xgcd = exports.version = exports.variance = exports.unequal = exports.unaryPlus = exports.unaryMinus = exports.typed = exports.typeOf = exports.tau = exports.tanh = exports.tan = exports.sum = exports.subtractScalar = exports.subtract = exports.subset = exports.string = exports.stirlingS2 = exports.std = exports.square = exports.sqrt = exports.smallerEq = exports.smaller = exports.size = exports.sinh = exports.sin = exports.sign = exports.sech = exports.sec = exports.round = exports.rightLogShift = exports.rightArithShift = exports.replacer = exports.range = exports.randomInt = exports.random = exports.quantileSeq = exports.prod = exports.print = exports.pow = exports.pickRandom = exports.pi = exports.phi = exports.permutations = exports.partitionSelect = exports.or = exports.numeric = exports.number = exports.nthRoot = exports.not = exports.norm = exports.multiplyScalar = exports.multiply = exports.multinomial = exports.mode = exports.mod = exports.min = void 0;
|
|
6
|
+
exports.mean = exports.max = exports.matrix = exports.mapSlices = exports.map = exports.mad = exports.log2 = exports.log1p = exports.log10 = exports.log = exports.lgamma = exports.leftShift = exports.lcm = exports.largerEq = exports.larger = exports.isZero = exports.isPrime = exports.isPositive = exports.isNumeric = exports.isNegative = exports.isNaN = exports.isInteger = exports.index = exports.hypot = exports.hasNumericValue = exports.gcd = exports.gamma = exports.format = exports.forEach = exports.floor = exports.fix = exports.filter = exports.factorial = exports.expm1 = exports.exp = exports.erf = exports.equalText = exports.equalScalar = exports.equal = exports.e = exports.divideScalar = exports.divide = exports.deepEqual = exports.cumsum = exports.cube = exports.csch = exports.csc = exports.coth = exports.cot = exports.cosh = exports.cos = exports.corr = exports.composition = exports.compareText = exports.compareNatural = exports.compare = exports.combinationsWithRep = exports.combinations = exports.clone = exports.ceil = exports.cbrt = exports.catalan = exports.boolean = exports.bitXor = exports.bitOr = exports.bitNot = exports.bitAnd = exports.bigint = exports.bellNumbers = exports.atanh = exports.atan2 = exports.atan = exports.asinh = exports.asin = exports.asech = exports.asec = exports.apply = exports.and = exports.addScalar = exports.add = exports.acsch = exports.acsc = exports.acoth = exports.acot = exports.acosh = exports.acos = exports.abs = exports._true = exports._null = exports._false = exports._NaN = exports._Infinity = exports.SQRT2 = exports.SQRT1_2 = exports.ResultSet = exports.Range = exports.LOG2E = exports.LOG10E = exports.LN2 = exports.LN10 = void 0;
|
|
7
|
+
exports.zeta = exports.xor = exports.xgcd = exports.version = exports.variance = exports.unequal = exports.unaryPlus = exports.unaryMinus = exports.typed = exports.typeOf = exports.tau = exports.tanh = exports.tan = exports.sum = exports.subtractScalar = exports.subtract = exports.subset = exports.string = exports.stirlingS2 = exports.std = exports.square = exports.sqrt = exports.smallerEq = exports.smaller = exports.size = exports.sinh = exports.sin = exports.sign = exports.sech = exports.sec = exports.round = exports.rightLogShift = exports.rightArithShift = exports.replacer = exports.range = exports.randomInt = exports.random = exports.quantileSeq = exports.prod = exports.print = exports.pow = exports.pickRandom = exports.pi = exports.phi = exports.permutations = exports.partitionSelect = exports.or = exports.numeric = exports.number = exports.nthRoot = exports.not = exports.norm = exports.multiplyScalar = exports.multiply = exports.multinomial = exports.mode = exports.mod = exports.min = exports.median = void 0;
|
|
8
8
|
var _configReadonly = require("./configReadonly.js");
|
|
9
9
|
var _factoriesNumber = require("../factoriesNumber.js");
|
|
10
10
|
/**
|
|
@@ -292,6 +292,11 @@ const lcm = exports.lcm = /* #__PURE__ */(0, _factoriesNumber.createLcm)({
|
|
|
292
292
|
const log10 = exports.log10 = /* #__PURE__ */(0, _factoriesNumber.createLog10)({
|
|
293
293
|
typed
|
|
294
294
|
});
|
|
295
|
+
const mapSlices = exports.mapSlices = /* #__PURE__ */(0, _factoriesNumber.createMapSlices)({
|
|
296
|
+
isInteger,
|
|
297
|
+
typed
|
|
298
|
+
});
|
|
299
|
+
const apply = exports.apply = mapSlices;
|
|
295
300
|
const multiplyScalar = exports.multiplyScalar = /* #__PURE__ */(0, _factoriesNumber.createMultiplyScalar)({
|
|
296
301
|
typed
|
|
297
302
|
});
|
|
@@ -323,11 +328,7 @@ const unaryMinus = exports.unaryMinus = /* #__PURE__ */(0, _factoriesNumber.crea
|
|
|
323
328
|
const acosh = exports.acosh = /* #__PURE__ */(0, _factoriesNumber.createAcosh)({
|
|
324
329
|
typed
|
|
325
330
|
});
|
|
326
|
-
const
|
|
327
|
-
isInteger,
|
|
328
|
-
typed
|
|
329
|
-
});
|
|
330
|
-
const asinh = exports.asinh = /* #__PURE__ */(0, _factoriesNumber.createAsinh)({
|
|
331
|
+
const atan2 = exports.atan2 = /* #__PURE__ */(0, _factoriesNumber.createAtan2)({
|
|
331
332
|
typed
|
|
332
333
|
});
|
|
333
334
|
const bitOr = exports.bitOr = /* #__PURE__ */(0, _factoriesNumber.createBitOr)({
|
|
@@ -396,9 +397,9 @@ const subtractScalar = exports.subtractScalar = /* #__PURE__ */(0, _factoriesNum
|
|
|
396
397
|
const _true = exports._true = /* #__PURE__ */(0, _factoriesNumber.createTrue)({});
|
|
397
398
|
const variance = exports.variance = /* #__PURE__ */(0, _factoriesNumber.createVariance)({
|
|
398
399
|
add,
|
|
399
|
-
apply,
|
|
400
400
|
divide,
|
|
401
401
|
isNaN,
|
|
402
|
+
mapSlices,
|
|
402
403
|
multiply,
|
|
403
404
|
subtract,
|
|
404
405
|
typed
|
|
@@ -422,9 +423,6 @@ const zeta = exports.zeta = /* #__PURE__ */(0, _factoriesNumber.createZeta)({
|
|
|
422
423
|
const acsch = exports.acsch = /* #__PURE__ */(0, _factoriesNumber.createAcsch)({
|
|
423
424
|
typed
|
|
424
425
|
});
|
|
425
|
-
const atan2 = exports.atan2 = /* #__PURE__ */(0, _factoriesNumber.createAtan2)({
|
|
426
|
-
typed
|
|
427
|
-
});
|
|
428
426
|
const catalan = exports.catalan = /* #__PURE__ */(0, _factoriesNumber.createCatalan)({
|
|
429
427
|
addScalar,
|
|
430
428
|
combinations,
|
|
@@ -496,6 +494,7 @@ const quantileSeq = exports.quantileSeq = /* #__PURE__ */(0, _factoriesNumber.cr
|
|
|
496
494
|
divide,
|
|
497
495
|
isInteger,
|
|
498
496
|
larger,
|
|
497
|
+
mapSlices,
|
|
499
498
|
multiply,
|
|
500
499
|
partitionSelect,
|
|
501
500
|
smaller,
|
|
@@ -526,6 +525,9 @@ const stirlingS2 = exports.stirlingS2 = /* #__PURE__ */(0, _factoriesNumber.crea
|
|
|
526
525
|
subtractScalar,
|
|
527
526
|
typed
|
|
528
527
|
});
|
|
528
|
+
const asinh = exports.asinh = /* #__PURE__ */(0, _factoriesNumber.createAsinh)({
|
|
529
|
+
typed
|
|
530
|
+
});
|
|
529
531
|
const ceil = exports.ceil = /* #__PURE__ */(0, _factoriesNumber.createCeil)({
|
|
530
532
|
config: _configReadonly.config,
|
|
531
533
|
round,
|
|
@@ -117,6 +117,7 @@ var _and = require("./function/logical/and.js");
|
|
|
117
117
|
var _not = require("./function/logical/not.js");
|
|
118
118
|
var _or = require("./function/logical/or.js");
|
|
119
119
|
var _xor = require("./function/logical/xor.js");
|
|
120
|
+
var _mapSlices = require("./function/matrix/mapSlices.js");
|
|
120
121
|
var _column = require("./function/matrix/column.js");
|
|
121
122
|
var _concat = require("./function/matrix/concat.js");
|
|
122
123
|
var _count = require("./function/matrix/count.js");
|
|
@@ -578,6 +579,7 @@ const embeddedDocs = exports.embeddedDocs = {
|
|
|
578
579
|
or: _or.orDocs,
|
|
579
580
|
xor: _xor.xorDocs,
|
|
580
581
|
// functions - matrix
|
|
582
|
+
mapSlices: _mapSlices.mapSlicesDocs,
|
|
581
583
|
concat: _concat.concatDocs,
|
|
582
584
|
count: _count.countDocs,
|
|
583
585
|
cross: _cross.crossDocs,
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.mapSlicesDocs = void 0;
|
|
7
|
+
const mapSlicesDocs = exports.mapSlicesDocs = {
|
|
8
|
+
name: 'mapSlices',
|
|
9
|
+
category: 'Matrix',
|
|
10
|
+
syntax: ['mapSlices(A, dim, callback)'],
|
|
11
|
+
description: 'Generate a matrix one dimension less than A by applying callback to ' + 'each slice of A along dimension dim.',
|
|
12
|
+
examples: ['A = [[1, 2], [3, 4]]', 'mapSlices(A, 1, sum)',
|
|
13
|
+
// returns [4, 6]
|
|
14
|
+
'mapSlices(A, 2, product)' // returns [2, 12]
|
|
15
|
+
],
|
|
16
|
+
seealso: ['map', 'forEach']
|
|
17
|
+
};
|
|
@@ -38,14 +38,14 @@ const createIndexTransform = exports.createIndexTransform = /* #__PURE__ */(0, _
|
|
|
38
38
|
return v - 1;
|
|
39
39
|
});
|
|
40
40
|
}
|
|
41
|
-
} else if ((0, _is.isNumber)(arg)) {
|
|
41
|
+
} else if ((0, _is.isNumber)(arg) || (0, _is.isBigInt)(arg)) {
|
|
42
42
|
arg--;
|
|
43
43
|
} else if ((0, _is.isBigNumber)(arg)) {
|
|
44
44
|
arg = arg.toNumber() - 1;
|
|
45
45
|
} else if (typeof arg === 'string') {
|
|
46
46
|
// leave as is
|
|
47
47
|
} else {
|
|
48
|
-
throw new TypeError('Dimension must be an Array, Matrix, number, string, or Range');
|
|
48
|
+
throw new TypeError('Dimension must be an Array, Matrix, number, bigint, string, or Range');
|
|
49
49
|
}
|
|
50
50
|
args[i] = arg;
|
|
51
51
|
}
|
|
@@ -3,33 +3,33 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.createMapSlicesTransform = void 0;
|
|
7
7
|
var _errorTransform = require("./utils/errorTransform.js");
|
|
8
8
|
var _factory = require("../../utils/factory.js");
|
|
9
|
-
var
|
|
9
|
+
var _mapSlices = require("../../function/matrix/mapSlices.js");
|
|
10
10
|
var _is = require("../../utils/is.js");
|
|
11
|
-
const name = '
|
|
11
|
+
const name = 'mapSlices';
|
|
12
12
|
const dependencies = ['typed', 'isInteger'];
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
|
-
* Attach a transform function to math.
|
|
15
|
+
* Attach a transform function to math.mapSlices
|
|
16
16
|
* Adds a property transform containing the transform function.
|
|
17
17
|
*
|
|
18
|
-
* This transform changed the last `dim` parameter of function
|
|
18
|
+
* This transform changed the last `dim` parameter of function mapSlices
|
|
19
19
|
* from one-based to zero based
|
|
20
20
|
*/
|
|
21
|
-
const
|
|
21
|
+
const createMapSlicesTransform = exports.createMapSlicesTransform = /* #__PURE__ */(0, _factory.factory)(name, dependencies, _ref => {
|
|
22
22
|
let {
|
|
23
23
|
typed,
|
|
24
24
|
isInteger
|
|
25
25
|
} = _ref;
|
|
26
|
-
const
|
|
26
|
+
const mapSlices = (0, _mapSlices.createMapSlices)({
|
|
27
27
|
typed,
|
|
28
28
|
isInteger
|
|
29
29
|
});
|
|
30
30
|
|
|
31
31
|
// @see: comment of concat itself
|
|
32
|
-
return typed('
|
|
32
|
+
return typed('mapSlices', {
|
|
33
33
|
'...any': function (args) {
|
|
34
34
|
// change dim from one-based to zero-based
|
|
35
35
|
const dim = args[1];
|
|
@@ -39,12 +39,13 @@ const createApplyTransform = exports.createApplyTransform = /* #__PURE__ */(0, _
|
|
|
39
39
|
args[1] = dim.minus(1);
|
|
40
40
|
}
|
|
41
41
|
try {
|
|
42
|
-
return
|
|
42
|
+
return mapSlices.apply(null, args);
|
|
43
43
|
} catch (err) {
|
|
44
44
|
throw (0, _errorTransform.errorTransform)(err);
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
47
|
});
|
|
48
48
|
}, {
|
|
49
|
-
isTransformFunction: true
|
|
49
|
+
isTransformFunction: true,
|
|
50
|
+
..._mapSlices.createMapSlices.meta
|
|
50
51
|
});
|
|
@@ -8,7 +8,7 @@ var _factory = require("../../utils/factory.js");
|
|
|
8
8
|
var _quantileSeq = require("../../function/statistics/quantileSeq.js");
|
|
9
9
|
var _lastDimToZeroBase = require("./utils/lastDimToZeroBase.js");
|
|
10
10
|
const name = 'quantileSeq';
|
|
11
|
-
const dependencies = ['typed', 'bignumber', 'add', 'subtract', 'divide', 'multiply', 'partitionSelect', 'compare', 'isInteger', 'smaller', 'smallerEq', 'larger'];
|
|
11
|
+
const dependencies = ['typed', 'bignumber', 'add', 'subtract', 'divide', 'multiply', 'partitionSelect', 'compare', 'isInteger', 'smaller', 'smallerEq', 'larger', 'mapSlices'];
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* Attach a transform function to math.quantileSeq
|
|
@@ -30,7 +30,8 @@ const createQuantileSeqTransform = exports.createQuantileSeqTransform = /* #__PU
|
|
|
30
30
|
isInteger,
|
|
31
31
|
smaller,
|
|
32
32
|
smallerEq,
|
|
33
|
-
larger
|
|
33
|
+
larger,
|
|
34
|
+
mapSlices
|
|
34
35
|
} = _ref;
|
|
35
36
|
const quantileSeq = (0, _quantileSeq.createQuantileSeq)({
|
|
36
37
|
typed,
|
|
@@ -44,7 +45,8 @@ const createQuantileSeqTransform = exports.createQuantileSeqTransform = /* #__PU
|
|
|
44
45
|
isInteger,
|
|
45
46
|
smaller,
|
|
46
47
|
smallerEq,
|
|
47
|
-
larger
|
|
48
|
+
larger,
|
|
49
|
+
mapSlices
|
|
48
50
|
});
|
|
49
51
|
return typed('quantileSeq', {
|
|
50
52
|
'Array | Matrix, number | BigNumber': quantileSeq,
|
|
@@ -9,7 +9,7 @@ var _errorTransform = require("./utils/errorTransform.js");
|
|
|
9
9
|
var _variance = require("../../function/statistics/variance.js");
|
|
10
10
|
var _lastDimToZeroBase = require("./utils/lastDimToZeroBase.js");
|
|
11
11
|
const name = 'variance';
|
|
12
|
-
const dependencies = ['typed', 'add', 'subtract', 'multiply', 'divide', '
|
|
12
|
+
const dependencies = ['typed', 'add', 'subtract', 'multiply', 'divide', 'mapSlices', 'isNaN'];
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* Attach a transform function to math.var
|
|
@@ -25,7 +25,7 @@ const createVarianceTransform = exports.createVarianceTransform = /* #__PURE__ *
|
|
|
25
25
|
subtract,
|
|
26
26
|
multiply,
|
|
27
27
|
divide,
|
|
28
|
-
|
|
28
|
+
mapSlices,
|
|
29
29
|
isNaN
|
|
30
30
|
} = _ref;
|
|
31
31
|
const variance = (0, _variance.createVariance)({
|
|
@@ -34,7 +34,7 @@ const createVarianceTransform = exports.createVarianceTransform = /* #__PURE__ *
|
|
|
34
34
|
subtract,
|
|
35
35
|
multiply,
|
|
36
36
|
divide,
|
|
37
|
-
|
|
37
|
+
mapSlices,
|
|
38
38
|
isNaN
|
|
39
39
|
});
|
|
40
40
|
return typed(name, {
|
package/lib/cjs/factoriesAny.js
CHANGED
|
@@ -75,18 +75,6 @@ Object.defineProperty(exports, "createAndTransform", {
|
|
|
75
75
|
return _andTransform.createAndTransform;
|
|
76
76
|
}
|
|
77
77
|
});
|
|
78
|
-
Object.defineProperty(exports, "createApply", {
|
|
79
|
-
enumerable: true,
|
|
80
|
-
get: function () {
|
|
81
|
-
return _apply.createApply;
|
|
82
|
-
}
|
|
83
|
-
});
|
|
84
|
-
Object.defineProperty(exports, "createApplyTransform", {
|
|
85
|
-
enumerable: true,
|
|
86
|
-
get: function () {
|
|
87
|
-
return _applyTransform.createApplyTransform;
|
|
88
|
-
}
|
|
89
|
-
});
|
|
90
78
|
Object.defineProperty(exports, "createArg", {
|
|
91
79
|
enumerable: true,
|
|
92
80
|
get: function () {
|
|
@@ -1149,6 +1137,18 @@ Object.defineProperty(exports, "createMap", {
|
|
|
1149
1137
|
return _map.createMap;
|
|
1150
1138
|
}
|
|
1151
1139
|
});
|
|
1140
|
+
Object.defineProperty(exports, "createMapSlices", {
|
|
1141
|
+
enumerable: true,
|
|
1142
|
+
get: function () {
|
|
1143
|
+
return _mapSlices.createMapSlices;
|
|
1144
|
+
}
|
|
1145
|
+
});
|
|
1146
|
+
Object.defineProperty(exports, "createMapSlicesTransform", {
|
|
1147
|
+
enumerable: true,
|
|
1148
|
+
get: function () {
|
|
1149
|
+
return _mapSlicesTransform.createMapSlicesTransform;
|
|
1150
|
+
}
|
|
1151
|
+
});
|
|
1152
1152
|
Object.defineProperty(exports, "createMapTransform", {
|
|
1153
1153
|
enumerable: true,
|
|
1154
1154
|
get: function () {
|
|
@@ -2209,7 +2209,7 @@ var _splitUnit = require("./type/unit/function/splitUnit.js");
|
|
|
2209
2209
|
var _unaryMinus = require("./function/arithmetic/unaryMinus.js");
|
|
2210
2210
|
var _unaryPlus = require("./function/arithmetic/unaryPlus.js");
|
|
2211
2211
|
var _abs = require("./function/arithmetic/abs.js");
|
|
2212
|
-
var
|
|
2212
|
+
var _mapSlices = require("./function/matrix/mapSlices.js");
|
|
2213
2213
|
var _addScalar = require("./function/arithmetic/addScalar.js");
|
|
2214
2214
|
var _subtractScalar = require("./function/arithmetic/subtractScalar.js");
|
|
2215
2215
|
var _cbrt = require("./function/arithmetic/cbrt.js");
|
|
@@ -2446,7 +2446,7 @@ var _reviver = require("./json/reviver.js");
|
|
|
2446
2446
|
var _replacer = require("./json/replacer.js");
|
|
2447
2447
|
var _constants = require("./constants.js");
|
|
2448
2448
|
var _physicalConstants = require("./type/unit/physicalConstants.js");
|
|
2449
|
-
var
|
|
2449
|
+
var _mapSlicesTransform = require("./expression/transform/mapSlices.transform.js");
|
|
2450
2450
|
var _columnTransform = require("./expression/transform/column.transform.js");
|
|
2451
2451
|
var _filterTransform = require("./expression/transform/filter.transform.js");
|
|
2452
2452
|
var _forEachTransform = require("./expression/transform/forEach.transform.js");
|
|
@@ -11,18 +11,6 @@ Object.defineProperty(exports, "createAccessorNode", {
|
|
|
11
11
|
}
|
|
12
12
|
});
|
|
13
13
|
exports.createAnd = exports.createAddScalar = exports.createAdd = exports.createAcsch = exports.createAcsc = exports.createAcoth = exports.createAcot = exports.createAcosh = exports.createAcos = void 0;
|
|
14
|
-
Object.defineProperty(exports, "createApply", {
|
|
15
|
-
enumerable: true,
|
|
16
|
-
get: function () {
|
|
17
|
-
return _apply.createApply;
|
|
18
|
-
}
|
|
19
|
-
});
|
|
20
|
-
Object.defineProperty(exports, "createApplyTransform", {
|
|
21
|
-
enumerable: true,
|
|
22
|
-
get: function () {
|
|
23
|
-
return _applyTransform.createApplyTransform;
|
|
24
|
-
}
|
|
25
|
-
});
|
|
26
14
|
Object.defineProperty(exports, "createArrayNode", {
|
|
27
15
|
enumerable: true,
|
|
28
16
|
get: function () {
|
|
@@ -366,7 +354,8 @@ Object.defineProperty(exports, "createLargerEq", {
|
|
|
366
354
|
return _largerEq.createLargerEqNumber;
|
|
367
355
|
}
|
|
368
356
|
});
|
|
369
|
-
exports.
|
|
357
|
+
exports.createLeftShift = exports.createLcm = void 0;
|
|
358
|
+
exports.createLog2 = exports.createLog1p = exports.createLog10 = exports.createLog = exports.createLgamma = void 0;
|
|
370
359
|
Object.defineProperty(exports, "createMad", {
|
|
371
360
|
enumerable: true,
|
|
372
361
|
get: function () {
|
|
@@ -379,6 +368,18 @@ Object.defineProperty(exports, "createMap", {
|
|
|
379
368
|
return _map.createMap;
|
|
380
369
|
}
|
|
381
370
|
});
|
|
371
|
+
Object.defineProperty(exports, "createMapSlices", {
|
|
372
|
+
enumerable: true,
|
|
373
|
+
get: function () {
|
|
374
|
+
return _mapSlices.createMapSlices;
|
|
375
|
+
}
|
|
376
|
+
});
|
|
377
|
+
Object.defineProperty(exports, "createMapSlicesTransform", {
|
|
378
|
+
enumerable: true,
|
|
379
|
+
get: function () {
|
|
380
|
+
return _mapSlicesTransform.createMapSlicesTransform;
|
|
381
|
+
}
|
|
382
|
+
});
|
|
382
383
|
Object.defineProperty(exports, "createMapTransform", {
|
|
383
384
|
enumerable: true,
|
|
384
385
|
get: function () {
|
|
@@ -845,7 +846,7 @@ var _parse = require("./expression/parse.js");
|
|
|
845
846
|
var _compile = require("./expression/function/compile.js");
|
|
846
847
|
var _evaluate = require("./expression/function/evaluate.js");
|
|
847
848
|
var _Parser = require("./expression/Parser.js");
|
|
848
|
-
var
|
|
849
|
+
var _mapSlices = require("./function/matrix/mapSlices.js");
|
|
849
850
|
var _filter = require("./function/matrix/filter.js");
|
|
850
851
|
var _forEach = require("./function/matrix/forEach.js");
|
|
851
852
|
var _map = require("./function/matrix/map.js");
|
|
@@ -888,7 +889,7 @@ var _std = require("./function/statistics/std.js");
|
|
|
888
889
|
var _corr = require("./function/statistics/corr.js");
|
|
889
890
|
var _format = require("./function/string/format.js");
|
|
890
891
|
var _print = require("./function/string/print.js");
|
|
891
|
-
var
|
|
892
|
+
var _mapSlicesTransform = require("./expression/transform/mapSlices.transform.js");
|
|
892
893
|
var _filterTransform = require("./expression/transform/filter.transform.js");
|
|
893
894
|
var _forEachTransform = require("./expression/transform/forEach.transform.js");
|
|
894
895
|
var _mapTransform = require("./expression/transform/map.transform.js");
|
|
@@ -15,29 +15,34 @@ var _matAlgo12xSfs = require("../../type/matrix/utils/matAlgo12xSfs.js");
|
|
|
15
15
|
var _matAlgo14xDs = require("../../type/matrix/utils/matAlgo14xDs.js");
|
|
16
16
|
const name = 'ceil';
|
|
17
17
|
const dependencies = ['typed', 'config', 'round', 'matrix', 'equalScalar', 'zeros', 'DenseMatrix'];
|
|
18
|
+
const bigTen = new _decimal.default(10);
|
|
18
19
|
const createCeilNumber = exports.createCeilNumber = /* #__PURE__ */(0, _factory.factory)(name, ['typed', 'config', 'round'], _ref => {
|
|
19
20
|
let {
|
|
20
21
|
typed,
|
|
21
22
|
config,
|
|
22
23
|
round
|
|
23
24
|
} = _ref;
|
|
25
|
+
function _ceilNumber(x) {
|
|
26
|
+
// See ./floor.js _floorNumber for rationale here
|
|
27
|
+
const c = Math.ceil(x);
|
|
28
|
+
const r = round(x);
|
|
29
|
+
if (c === r) return c;
|
|
30
|
+
if ((0, _number.nearlyEqual)(x, r, config.relTol, config.absTol) && !(0, _number.nearlyEqual)(x, c, config.relTol, config.absTol)) {
|
|
31
|
+
return r;
|
|
32
|
+
}
|
|
33
|
+
return c;
|
|
34
|
+
}
|
|
24
35
|
return typed(name, {
|
|
25
|
-
number:
|
|
26
|
-
if ((0, _number.nearlyEqual)(x, round(x), config.relTol, config.absTol)) {
|
|
27
|
-
return round(x);
|
|
28
|
-
} else {
|
|
29
|
-
return Math.ceil(x);
|
|
30
|
-
}
|
|
31
|
-
},
|
|
36
|
+
number: _ceilNumber,
|
|
32
37
|
'number, number': function (x, n) {
|
|
33
|
-
if ((0, _number.
|
|
34
|
-
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
[number, exponent] = `${result}e`.split('e');
|
|
39
|
-
return Number(`${number}e${Number(exponent) - n}`);
|
|
38
|
+
if (!(0, _number.isInteger)(n)) {
|
|
39
|
+
throw new RangeError('number of decimals in function ceil must be an integer');
|
|
40
|
+
}
|
|
41
|
+
if (n < 0 || n > 15) {
|
|
42
|
+
throw new RangeError('number of decimals in ceil number must be in range 0-15');
|
|
40
43
|
}
|
|
44
|
+
const shift = 10 ** n;
|
|
45
|
+
return _ceilNumber(x * shift) / shift;
|
|
41
46
|
}
|
|
42
47
|
});
|
|
43
48
|
});
|
|
@@ -67,6 +72,15 @@ const createCeil = exports.createCeil = /* #__PURE__ */(0, _factory.factory)(nam
|
|
|
67
72
|
config,
|
|
68
73
|
round
|
|
69
74
|
});
|
|
75
|
+
function _bigCeil(x) {
|
|
76
|
+
// see ./floor.js _floorNumber for rationale
|
|
77
|
+
const bne = (a, b) => (0, _nearlyEqual.nearlyEqual)(a, b, config.relTol, config.absTol);
|
|
78
|
+
const c = x.ceil();
|
|
79
|
+
const r = round(x);
|
|
80
|
+
if (c.eq(r)) return c;
|
|
81
|
+
if (bne(x, r) && !bne(x, c)) return r;
|
|
82
|
+
return c;
|
|
83
|
+
}
|
|
70
84
|
/**
|
|
71
85
|
* Round a value towards plus infinity
|
|
72
86
|
* If `x` is complex, both real and imaginary part are rounded towards plus infinity.
|
|
@@ -125,20 +139,14 @@ const createCeil = exports.createCeil = /* #__PURE__ */(0, _factory.factory)(nam
|
|
|
125
139
|
'Complex, BigNumber': function (x, n) {
|
|
126
140
|
return x.ceil(n.toNumber());
|
|
127
141
|
},
|
|
128
|
-
BigNumber:
|
|
129
|
-
if ((0, _nearlyEqual.nearlyEqual)(x, round(x), config.relTol, config.absTol)) {
|
|
130
|
-
return round(x);
|
|
131
|
-
} else {
|
|
132
|
-
return x.ceil();
|
|
133
|
-
}
|
|
134
|
-
},
|
|
142
|
+
BigNumber: _bigCeil,
|
|
135
143
|
'BigNumber, BigNumber': function (x, n) {
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
} else {
|
|
139
|
-
return x.toDecimalPlaces(n.toNumber(), _decimal.default.ROUND_CEIL);
|
|
140
|
-
}
|
|
144
|
+
const shift = bigTen.pow(n);
|
|
145
|
+
return _bigCeil(x.mul(shift)).div(shift);
|
|
141
146
|
},
|
|
147
|
+
bigint: b => b,
|
|
148
|
+
'bigint, number': (b, _dummy) => b,
|
|
149
|
+
'bigint, BigNumber': (b, _dummy) => b,
|
|
142
150
|
Fraction: function (x) {
|
|
143
151
|
return x.ceil();
|
|
144
152
|
},
|
|
@@ -112,6 +112,9 @@ const createFix = exports.createFix = /* #__PURE__ */(0, _factory.factory)(name,
|
|
|
112
112
|
'BigNumber, number | BigNumber': function (x, n) {
|
|
113
113
|
return x.isNegative() ? ceil(x, n) : floor(x, n);
|
|
114
114
|
},
|
|
115
|
+
bigint: b => b,
|
|
116
|
+
'bigint, number': (b, _dummy) => b,
|
|
117
|
+
'bigint, BigNumber': (b, _dummy) => b,
|
|
115
118
|
Fraction: function (x) {
|
|
116
119
|
return x.s < 0n ? x.ceil() : x.floor();
|
|
117
120
|
},
|
|
@@ -15,29 +15,41 @@ var _matAlgo12xSfs = require("../../type/matrix/utils/matAlgo12xSfs.js");
|
|
|
15
15
|
var _matAlgo14xDs = require("../../type/matrix/utils/matAlgo14xDs.js");
|
|
16
16
|
const name = 'floor';
|
|
17
17
|
const dependencies = ['typed', 'config', 'round', 'matrix', 'equalScalar', 'zeros', 'DenseMatrix'];
|
|
18
|
+
const bigTen = new _decimal.default(10);
|
|
18
19
|
const createFloorNumber = exports.createFloorNumber = /* #__PURE__ */(0, _factory.factory)(name, ['typed', 'config', 'round'], _ref => {
|
|
19
20
|
let {
|
|
20
21
|
typed,
|
|
21
22
|
config,
|
|
22
23
|
round
|
|
23
24
|
} = _ref;
|
|
25
|
+
function _floorNumber(x) {
|
|
26
|
+
// First, if the floor and the round are identical we can be
|
|
27
|
+
// quite comfortable that is the best answer:
|
|
28
|
+
const f = Math.floor(x);
|
|
29
|
+
const r = round(x);
|
|
30
|
+
if (f === r) return f;
|
|
31
|
+
// OK, they are different. If x is truly distinct from f but
|
|
32
|
+
// appears indistinguishable from r, presume it really is just
|
|
33
|
+
// the integer r with rounding/computation error, and return that
|
|
34
|
+
if ((0, _number.nearlyEqual)(x, r, config.relTol, config.absTol) && !(0, _number.nearlyEqual)(x, f, config.relTol, config.absTol)) {
|
|
35
|
+
return r;
|
|
36
|
+
}
|
|
37
|
+
// Otherwise (x distinct from both r and f, or indistinguishable from
|
|
38
|
+
// both r and f) may as well just return f, as that's the best
|
|
39
|
+
// candidate we can discern:
|
|
40
|
+
return f;
|
|
41
|
+
}
|
|
24
42
|
return typed(name, {
|
|
25
|
-
number:
|
|
26
|
-
if ((0, _number.nearlyEqual)(x, round(x), config.relTol, config.absTol)) {
|
|
27
|
-
return round(x);
|
|
28
|
-
} else {
|
|
29
|
-
return Math.floor(x);
|
|
30
|
-
}
|
|
31
|
-
},
|
|
43
|
+
number: _floorNumber,
|
|
32
44
|
'number, number': function (x, n) {
|
|
33
|
-
if ((0, _number.
|
|
34
|
-
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
[number, exponent] = `${result}e`.split('e');
|
|
39
|
-
return Number(`${number}e${Number(exponent) - n}`);
|
|
45
|
+
if (!(0, _number.isInteger)(n)) {
|
|
46
|
+
throw new RangeError('number of decimals in function floor must be an integer');
|
|
47
|
+
}
|
|
48
|
+
if (n < 0 || n > 15) {
|
|
49
|
+
throw new RangeError('number of decimals in floor number must be in range 0 - 15');
|
|
40
50
|
}
|
|
51
|
+
const shift = 10 ** n;
|
|
52
|
+
return _floorNumber(x * shift) / shift;
|
|
41
53
|
}
|
|
42
54
|
});
|
|
43
55
|
});
|
|
@@ -67,6 +79,15 @@ const createFloor = exports.createFloor = /* #__PURE__ */(0, _factory.factory)(n
|
|
|
67
79
|
config,
|
|
68
80
|
round
|
|
69
81
|
});
|
|
82
|
+
function _bigFloor(x) {
|
|
83
|
+
// see _floorNumber above for rationale
|
|
84
|
+
const bne = (a, b) => (0, _nearlyEqual.nearlyEqual)(a, b, config.relTol, config.absTol);
|
|
85
|
+
const f = x.floor();
|
|
86
|
+
const r = round(x);
|
|
87
|
+
if (f.eq(r)) return f;
|
|
88
|
+
if (bne(x, r) && !bne(x, f)) return r;
|
|
89
|
+
return f;
|
|
90
|
+
}
|
|
70
91
|
/**
|
|
71
92
|
* Round a value towards minus infinity.
|
|
72
93
|
* For matrices, the function is evaluated element wise.
|
|
@@ -128,20 +149,14 @@ const createFloor = exports.createFloor = /* #__PURE__ */(0, _factory.factory)(n
|
|
|
128
149
|
'Complex, BigNumber': function (x, n) {
|
|
129
150
|
return x.floor(n.toNumber());
|
|
130
151
|
},
|
|
131
|
-
BigNumber:
|
|
132
|
-
if ((0, _nearlyEqual.nearlyEqual)(x, round(x), config.relTol, config.absTol)) {
|
|
133
|
-
return round(x);
|
|
134
|
-
} else {
|
|
135
|
-
return x.floor();
|
|
136
|
-
}
|
|
137
|
-
},
|
|
152
|
+
BigNumber: _bigFloor,
|
|
138
153
|
'BigNumber, BigNumber': function (x, n) {
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
} else {
|
|
142
|
-
return x.toDecimalPlaces(n.toNumber(), _decimal.default.ROUND_FLOOR);
|
|
143
|
-
}
|
|
154
|
+
const shift = bigTen.pow(n);
|
|
155
|
+
return _bigFloor(x.mul(shift)).div(shift);
|
|
144
156
|
},
|
|
157
|
+
bigint: b => b,
|
|
158
|
+
'bigint, number': (b, _dummy) => b,
|
|
159
|
+
'bigint, BigNumber': (b, _dummy) => b,
|
|
145
160
|
Fraction: function (x) {
|
|
146
161
|
return x.floor();
|
|
147
162
|
},
|
|
@@ -143,6 +143,10 @@ const createRound = exports.createRound = /* #__PURE__ */(0, _factory.factory)(n
|
|
|
143
143
|
const xSelected = (0, _nearlyEqual.nearlyEqual)(x, xEpsilon, config.relTol, config.absTol) ? xEpsilon : x;
|
|
144
144
|
return xSelected.toDecimalPlaces(n.toNumber());
|
|
145
145
|
},
|
|
146
|
+
// bigints can't be rounded
|
|
147
|
+
bigint: b => b,
|
|
148
|
+
'bigint, number': (b, _dummy) => b,
|
|
149
|
+
'bigint, BigNumber': (b, _dummy) => b,
|
|
146
150
|
Fraction: function (x) {
|
|
147
151
|
return x.round();
|
|
148
152
|
},
|
|
@@ -26,7 +26,7 @@ const createCtranspose = exports.createCtranspose = /* #__PURE__ */(0, _factory.
|
|
|
26
26
|
* Examples:
|
|
27
27
|
*
|
|
28
28
|
* const A = [[1, 2, 3], [4, 5, math.complex(6,7)]]
|
|
29
|
-
* math.ctranspose(A)
|
|
29
|
+
* math.ctranspose(A) // returns [[1, 4], [2, 5], [3, {re:6,im:-7}]]
|
|
30
30
|
*
|
|
31
31
|
* See also:
|
|
32
32
|
*
|