mathjs 14.0.1 → 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 +20 -0
- package/NOTICE +1 -1
- package/README.md +7 -7
- package/bin/cli.js +1 -1
- package/lib/browser/math.js +1 -1
- package/lib/browser/math.js.LICENSE.txt +5 -5
- package/lib/browser/math.js.map +1 -1
- package/lib/cjs/core/function/import.js +14 -4
- package/lib/cjs/entry/dependenciesAny/dependenciesLarger.generated.js +2 -0
- 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/dependenciesRandomInt.generated.js +2 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesSmaller.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/dependenciesRandomInt.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 +14 -14
- package/lib/cjs/entry/pureFunctionsAny.generated.js +330 -325
- package/lib/cjs/entry/pureFunctionsNumber.generated.js +18 -15
- package/lib/cjs/expression/embeddedDocs/embeddedDocs.js +2 -0
- package/lib/cjs/expression/embeddedDocs/function/arithmetic/sign.js +1 -1
- 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/log.js +12 -5
- package/lib/cjs/function/arithmetic/log10.js +15 -7
- package/lib/cjs/function/arithmetic/log2.js +9 -4
- 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/probability/randomInt.js +26 -3
- package/lib/cjs/function/relational/larger.js +12 -4
- package/lib/cjs/function/relational/smaller.js +12 -4
- package/lib/cjs/function/statistics/max.js +1 -1
- package/lib/cjs/function/statistics/min.js +1 -1
- 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/string/print.js +2 -2
- 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/function/utils/isInteger.js +1 -1
- package/lib/cjs/header.js +3 -3
- package/lib/cjs/type/matrix/MatrixIndex.js +6 -3
- package/lib/cjs/type/matrix/Range.js +15 -8
- package/lib/cjs/utils/bigint.js +33 -0
- package/lib/cjs/utils/factory.js +5 -2
- package/lib/cjs/utils/number.js +7 -19
- 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/dependenciesAny/dependenciesLarger.generated.js +2 -0
- 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/dependenciesRandomInt.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesSmaller.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/dependenciesRandomInt.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 +16 -16
- package/lib/esm/entry/pureFunctionsAny.generated.js +328 -323
- package/lib/esm/entry/pureFunctionsNumber.generated.js +17 -14
- package/lib/esm/expression/embeddedDocs/embeddedDocs.js +2 -0
- package/lib/esm/expression/embeddedDocs/function/arithmetic/sign.js +1 -1
- 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/log.js +12 -5
- package/lib/esm/function/arithmetic/log10.js +16 -8
- package/lib/esm/function/arithmetic/log2.js +9 -4
- 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/probability/randomInt.js +26 -3
- package/lib/esm/function/relational/larger.js +12 -4
- package/lib/esm/function/relational/smaller.js +12 -4
- package/lib/esm/function/statistics/max.js +1 -1
- package/lib/esm/function/statistics/min.js +1 -1
- 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/string/print.js +2 -2
- 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/function/utils/isInteger.js +1 -1
- package/lib/esm/header.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/bigint.js +27 -0
- package/lib/esm/utils/factory.js +5 -2
- package/lib/esm/utils/number.js +6 -17
- package/lib/esm/utils/snapshot.js +8 -1
- package/lib/esm/version.js +1 -1
- package/package.json +13 -11
- 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
|
});
|
|
@@ -302,10 +307,6 @@ const pickRandom = exports.pickRandom = /* #__PURE__ */(0, _factoriesNumber.crea
|
|
|
302
307
|
config: _configReadonly.config,
|
|
303
308
|
typed
|
|
304
309
|
});
|
|
305
|
-
const randomInt = exports.randomInt = /* #__PURE__ */(0, _factoriesNumber.createRandomInt)({
|
|
306
|
-
config: _configReadonly.config,
|
|
307
|
-
typed
|
|
308
|
-
});
|
|
309
310
|
const rightArithShift = exports.rightArithShift = /* #__PURE__ */(0, _factoriesNumber.createRightArithShift)({
|
|
310
311
|
typed
|
|
311
312
|
});
|
|
@@ -327,11 +328,7 @@ const unaryMinus = exports.unaryMinus = /* #__PURE__ */(0, _factoriesNumber.crea
|
|
|
327
328
|
const acosh = exports.acosh = /* #__PURE__ */(0, _factoriesNumber.createAcosh)({
|
|
328
329
|
typed
|
|
329
330
|
});
|
|
330
|
-
const
|
|
331
|
-
isInteger,
|
|
332
|
-
typed
|
|
333
|
-
});
|
|
334
|
-
const asinh = exports.asinh = /* #__PURE__ */(0, _factoriesNumber.createAsinh)({
|
|
331
|
+
const atan2 = exports.atan2 = /* #__PURE__ */(0, _factoriesNumber.createAtan2)({
|
|
335
332
|
typed
|
|
336
333
|
});
|
|
337
334
|
const bitOr = exports.bitOr = /* #__PURE__ */(0, _factoriesNumber.createBitOr)({
|
|
@@ -382,6 +379,11 @@ const partitionSelect = exports.partitionSelect = /* #__PURE__ */(0, _factoriesN
|
|
|
382
379
|
const print = exports.print = /* #__PURE__ */(0, _factoriesNumber.createPrint)({
|
|
383
380
|
typed
|
|
384
381
|
});
|
|
382
|
+
const randomInt = exports.randomInt = /* #__PURE__ */(0, _factoriesNumber.createRandomInt)({
|
|
383
|
+
config: _configReadonly.config,
|
|
384
|
+
log2,
|
|
385
|
+
typed
|
|
386
|
+
});
|
|
385
387
|
const round = exports.round = /* #__PURE__ */(0, _factoriesNumber.createRound)({
|
|
386
388
|
typed
|
|
387
389
|
});
|
|
@@ -395,9 +397,9 @@ const subtractScalar = exports.subtractScalar = /* #__PURE__ */(0, _factoriesNum
|
|
|
395
397
|
const _true = exports._true = /* #__PURE__ */(0, _factoriesNumber.createTrue)({});
|
|
396
398
|
const variance = exports.variance = /* #__PURE__ */(0, _factoriesNumber.createVariance)({
|
|
397
399
|
add,
|
|
398
|
-
apply,
|
|
399
400
|
divide,
|
|
400
401
|
isNaN,
|
|
402
|
+
mapSlices,
|
|
401
403
|
multiply,
|
|
402
404
|
subtract,
|
|
403
405
|
typed
|
|
@@ -421,9 +423,6 @@ const zeta = exports.zeta = /* #__PURE__ */(0, _factoriesNumber.createZeta)({
|
|
|
421
423
|
const acsch = exports.acsch = /* #__PURE__ */(0, _factoriesNumber.createAcsch)({
|
|
422
424
|
typed
|
|
423
425
|
});
|
|
424
|
-
const atan2 = exports.atan2 = /* #__PURE__ */(0, _factoriesNumber.createAtan2)({
|
|
425
|
-
typed
|
|
426
|
-
});
|
|
427
426
|
const catalan = exports.catalan = /* #__PURE__ */(0, _factoriesNumber.createCatalan)({
|
|
428
427
|
addScalar,
|
|
429
428
|
combinations,
|
|
@@ -495,6 +494,7 @@ const quantileSeq = exports.quantileSeq = /* #__PURE__ */(0, _factoriesNumber.cr
|
|
|
495
494
|
divide,
|
|
496
495
|
isInteger,
|
|
497
496
|
larger,
|
|
497
|
+
mapSlices,
|
|
498
498
|
multiply,
|
|
499
499
|
partitionSelect,
|
|
500
500
|
smaller,
|
|
@@ -525,6 +525,9 @@ const stirlingS2 = exports.stirlingS2 = /* #__PURE__ */(0, _factoriesNumber.crea
|
|
|
525
525
|
subtractScalar,
|
|
526
526
|
typed
|
|
527
527
|
});
|
|
528
|
+
const asinh = exports.asinh = /* #__PURE__ */(0, _factoriesNumber.createAsinh)({
|
|
529
|
+
typed
|
|
530
|
+
});
|
|
528
531
|
const ceil = exports.ceil = /* #__PURE__ */(0, _factoriesNumber.createCeil)({
|
|
529
532
|
config: _configReadonly.config,
|
|
530
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,
|
|
@@ -8,7 +8,7 @@ const signDocs = exports.signDocs = {
|
|
|
8
8
|
name: 'sign',
|
|
9
9
|
category: 'Arithmetic',
|
|
10
10
|
syntax: ['sign(x)'],
|
|
11
|
-
description: 'Compute the sign of a value. The sign of a value x is 1 when x>
|
|
11
|
+
description: 'Compute the sign of a value. The sign of a value x is 1 when x>0, -1 when x<0, and 0 when x=0.',
|
|
12
12
|
examples: ['sign(3.5)', 'sign(-4.2)', 'sign(0)'],
|
|
13
13
|
seealso: ['abs']
|
|
14
14
|
};
|
|
@@ -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
|
},
|
|
@@ -5,9 +5,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.createLog = void 0;
|
|
7
7
|
var _factory = require("../../utils/factory.js");
|
|
8
|
+
var _bigint = require("../../utils/bigint.js");
|
|
8
9
|
var _index = require("../../plain/number/index.js");
|
|
9
10
|
const name = 'log';
|
|
10
11
|
const dependencies = ['config', 'typed', 'typeOf', 'divideScalar', 'Complex'];
|
|
12
|
+
const nlg16 = Math.log(16);
|
|
11
13
|
const createLog = exports.createLog = /* #__PURE__ */(0, _factory.factory)(name, dependencies, _ref => {
|
|
12
14
|
let {
|
|
13
15
|
typed,
|
|
@@ -51,24 +53,29 @@ const createLog = exports.createLog = /* #__PURE__ */(0, _factory.factory)(name,
|
|
|
51
53
|
* @return {number | BigNumber | Fraction | Complex}
|
|
52
54
|
* Returns the logarithm of `x`
|
|
53
55
|
*/
|
|
56
|
+
function complexLog(c) {
|
|
57
|
+
return c.log();
|
|
58
|
+
}
|
|
59
|
+
function complexLogNumber(x) {
|
|
60
|
+
return complexLog(new Complex(x, 0));
|
|
61
|
+
}
|
|
54
62
|
return typed(name, {
|
|
55
63
|
number: function (x) {
|
|
56
64
|
if (x >= 0 || config.predictable) {
|
|
57
65
|
return (0, _index.logNumber)(x);
|
|
58
66
|
} else {
|
|
59
67
|
// negative value -> complex value computation
|
|
60
|
-
return
|
|
68
|
+
return complexLogNumber(x);
|
|
61
69
|
}
|
|
62
70
|
},
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
},
|
|
71
|
+
bigint: (0, _bigint.promoteLogarithm)(nlg16, _index.logNumber, config, complexLogNumber),
|
|
72
|
+
Complex: complexLog,
|
|
66
73
|
BigNumber: function (x) {
|
|
67
74
|
if (!x.isNegative() || config.predictable) {
|
|
68
75
|
return x.ln();
|
|
69
76
|
} else {
|
|
70
77
|
// downgrade to number, return Complex valued result
|
|
71
|
-
return
|
|
78
|
+
return complexLogNumber(x.toNumber());
|
|
72
79
|
}
|
|
73
80
|
},
|
|
74
81
|
'any, any': typed.referToSelf(self => (x, base) => {
|