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.
Files changed (104) hide show
  1. package/HISTORY.md +11 -0
  2. package/lib/browser/math.js +1 -1
  3. package/lib/browser/math.js.LICENSE.txt +2 -2
  4. package/lib/browser/math.js.map +1 -1
  5. package/lib/cjs/core/function/import.js +14 -4
  6. package/lib/cjs/entry/dependenciesAny/{dependenciesApply.generated.js → dependenciesMapSlices.generated.js} +3 -3
  7. package/lib/cjs/entry/dependenciesAny/{dependenciesApplyTransform.generated.js → dependenciesMapSlicesTransform.generated.js} +3 -3
  8. package/lib/cjs/entry/dependenciesAny/dependenciesQuantileSeq.generated.js +2 -0
  9. package/lib/cjs/entry/dependenciesAny/dependenciesQuantileSeqTransform.generated.js +2 -0
  10. package/lib/cjs/entry/dependenciesAny/dependenciesVariance.generated.js +2 -2
  11. package/lib/cjs/entry/dependenciesAny/dependenciesVarianceTransform.generated.js +2 -2
  12. package/lib/cjs/entry/dependenciesAny.generated.js +14 -14
  13. package/lib/cjs/entry/dependenciesNumber/{dependenciesApply.generated.js → dependenciesMapSlices.generated.js} +3 -3
  14. package/lib/cjs/entry/dependenciesNumber/{dependenciesApplyTransform.generated.js → dependenciesMapSlicesTransform.generated.js} +3 -3
  15. package/lib/cjs/entry/dependenciesNumber/dependenciesQuantileSeq.generated.js +2 -0
  16. package/lib/cjs/entry/dependenciesNumber/dependenciesVariance.generated.js +2 -2
  17. package/lib/cjs/entry/dependenciesNumber/dependenciesVarianceTransform.generated.js +2 -2
  18. package/lib/cjs/entry/dependenciesNumber.generated.js +14 -14
  19. package/lib/cjs/entry/impureFunctionsAny.generated.js +86 -85
  20. package/lib/cjs/entry/impureFunctionsNumber.generated.js +13 -13
  21. package/lib/cjs/entry/pureFunctionsAny.generated.js +328 -326
  22. package/lib/cjs/entry/pureFunctionsNumber.generated.js +13 -11
  23. package/lib/cjs/expression/embeddedDocs/embeddedDocs.js +2 -0
  24. package/lib/cjs/expression/embeddedDocs/function/matrix/mapSlices.js +17 -0
  25. package/lib/cjs/expression/transform/index.transform.js +2 -2
  26. package/lib/cjs/expression/transform/{apply.transform.js → mapSlices.transform.js} +11 -10
  27. package/lib/cjs/expression/transform/quantileSeq.transform.js +5 -3
  28. package/lib/cjs/expression/transform/variance.transform.js +3 -3
  29. package/lib/cjs/factoriesAny.js +14 -14
  30. package/lib/cjs/factoriesNumber.js +16 -15
  31. package/lib/cjs/function/arithmetic/ceil.js +34 -26
  32. package/lib/cjs/function/arithmetic/fix.js +3 -0
  33. package/lib/cjs/function/arithmetic/floor.js +41 -26
  34. package/lib/cjs/function/arithmetic/round.js +4 -0
  35. package/lib/cjs/function/matrix/ctranspose.js +1 -1
  36. package/lib/cjs/function/matrix/{apply.js → mapSlices.js} +19 -12
  37. package/lib/cjs/function/matrix/matrixFromFunction.js +36 -3
  38. package/lib/cjs/function/matrix/range.js +54 -5
  39. package/lib/cjs/function/statistics/quantileSeq.js +4 -9
  40. package/lib/cjs/function/statistics/variance.js +3 -3
  41. package/lib/cjs/function/string/hex.js +1 -1
  42. package/lib/cjs/function/trigonometry/acoth.js +1 -1
  43. package/lib/cjs/function/trigonometry/acsc.js +1 -1
  44. package/lib/cjs/function/trigonometry/asin.js +1 -1
  45. package/lib/cjs/function/trigonometry/atan2.js +2 -1
  46. package/lib/cjs/function/trigonometry/cos.js +1 -1
  47. package/lib/cjs/function/trigonometry/sin.js +1 -1
  48. package/lib/cjs/header.js +2 -2
  49. package/lib/cjs/type/matrix/MatrixIndex.js +6 -3
  50. package/lib/cjs/type/matrix/Range.js +15 -8
  51. package/lib/cjs/utils/factory.js +5 -2
  52. package/lib/cjs/utils/snapshot.js +8 -1
  53. package/lib/cjs/version.js +1 -1
  54. package/lib/esm/core/function/import.js +14 -4
  55. package/lib/esm/entry/{dependenciesNumber/dependenciesApply.generated.js → dependenciesAny/dependenciesMapSlices.generated.js} +3 -3
  56. package/lib/esm/entry/{dependenciesNumber/dependenciesApplyTransform.generated.js → dependenciesAny/dependenciesMapSlicesTransform.generated.js} +3 -3
  57. package/lib/esm/entry/dependenciesAny/dependenciesQuantileSeq.generated.js +2 -0
  58. package/lib/esm/entry/dependenciesAny/dependenciesQuantileSeqTransform.generated.js +2 -0
  59. package/lib/esm/entry/dependenciesAny/dependenciesVariance.generated.js +2 -2
  60. package/lib/esm/entry/dependenciesAny/dependenciesVarianceTransform.generated.js +2 -2
  61. package/lib/esm/entry/dependenciesAny.generated.js +2 -2
  62. package/lib/esm/entry/{dependenciesAny/dependenciesApply.generated.js → dependenciesNumber/dependenciesMapSlices.generated.js} +3 -3
  63. package/lib/esm/entry/{dependenciesAny/dependenciesApplyTransform.generated.js → dependenciesNumber/dependenciesMapSlicesTransform.generated.js} +3 -3
  64. package/lib/esm/entry/dependenciesNumber/dependenciesQuantileSeq.generated.js +2 -0
  65. package/lib/esm/entry/dependenciesNumber/dependenciesVariance.generated.js +2 -2
  66. package/lib/esm/entry/dependenciesNumber/dependenciesVarianceTransform.generated.js +2 -2
  67. package/lib/esm/entry/dependenciesNumber.generated.js +2 -2
  68. package/lib/esm/entry/impureFunctionsAny.generated.js +88 -87
  69. package/lib/esm/entry/impureFunctionsNumber.generated.js +15 -15
  70. package/lib/esm/entry/pureFunctionsAny.generated.js +326 -324
  71. package/lib/esm/entry/pureFunctionsNumber.generated.js +12 -10
  72. package/lib/esm/expression/embeddedDocs/embeddedDocs.js +2 -0
  73. package/lib/esm/expression/embeddedDocs/function/matrix/mapSlices.js +11 -0
  74. package/lib/esm/expression/transform/index.transform.js +3 -3
  75. package/lib/esm/expression/transform/mapSlices.transform.js +47 -0
  76. package/lib/esm/expression/transform/quantileSeq.transform.js +5 -3
  77. package/lib/esm/expression/transform/variance.transform.js +3 -3
  78. package/lib/esm/factoriesAny.js +2 -2
  79. package/lib/esm/factoriesNumber.js +2 -2
  80. package/lib/esm/function/arithmetic/ceil.js +35 -27
  81. package/lib/esm/function/arithmetic/fix.js +3 -0
  82. package/lib/esm/function/arithmetic/floor.js +42 -27
  83. package/lib/esm/function/arithmetic/round.js +4 -0
  84. package/lib/esm/function/matrix/ctranspose.js +1 -1
  85. package/lib/esm/function/matrix/{apply.js → mapSlices.js} +18 -11
  86. package/lib/esm/function/matrix/matrixFromFunction.js +36 -3
  87. package/lib/esm/function/matrix/range.js +54 -5
  88. package/lib/esm/function/statistics/quantileSeq.js +4 -9
  89. package/lib/esm/function/statistics/variance.js +3 -3
  90. package/lib/esm/function/string/hex.js +1 -1
  91. package/lib/esm/function/trigonometry/acoth.js +1 -1
  92. package/lib/esm/function/trigonometry/acsc.js +1 -1
  93. package/lib/esm/function/trigonometry/asin.js +1 -1
  94. package/lib/esm/function/trigonometry/atan2.js +2 -1
  95. package/lib/esm/function/trigonometry/cos.js +1 -1
  96. package/lib/esm/function/trigonometry/sin.js +1 -1
  97. package/lib/esm/type/matrix/MatrixIndex.js +6 -3
  98. package/lib/esm/type/matrix/Range.js +16 -9
  99. package/lib/esm/utils/factory.js +5 -2
  100. package/lib/esm/utils/snapshot.js +8 -1
  101. package/lib/esm/version.js +1 -1
  102. package/package.json +1 -1
  103. package/types/index.d.ts +75 -12
  104. 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.median = exports.mean = exports.max = exports.matrix = 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 = 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 apply = exports.apply = /* #__PURE__ */(0, _factoriesNumber.createApply)({
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.createApplyTransform = void 0;
6
+ exports.createMapSlicesTransform = void 0;
7
7
  var _errorTransform = require("./utils/errorTransform.js");
8
8
  var _factory = require("../../utils/factory.js");
9
- var _apply = require("../../function/matrix/apply.js");
9
+ var _mapSlices = require("../../function/matrix/mapSlices.js");
10
10
  var _is = require("../../utils/is.js");
11
- const name = 'apply';
11
+ const name = 'mapSlices';
12
12
  const dependencies = ['typed', 'isInteger'];
13
13
 
14
14
  /**
15
- * Attach a transform function to math.apply
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 apply
18
+ * This transform changed the last `dim` parameter of function mapSlices
19
19
  * from one-based to zero based
20
20
  */
21
- const createApplyTransform = exports.createApplyTransform = /* #__PURE__ */(0, _factory.factory)(name, dependencies, _ref => {
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 apply = (0, _apply.createApply)({
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('apply', {
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 apply.apply(null, args);
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', 'apply', 'isNaN'];
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
- apply,
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
- apply,
37
+ mapSlices,
38
38
  isNaN
39
39
  });
40
40
  return typed(name, {
@@ -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 _apply = require("./function/matrix/apply.js");
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 _applyTransform = require("./expression/transform/apply.transform.js");
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.createLog2 = exports.createLog1p = exports.createLog10 = exports.createLog = exports.createLgamma = exports.createLeftShift = exports.createLcm = void 0;
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 _apply = require("./function/matrix/apply.js");
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 _applyTransform = require("./expression/transform/apply.transform.js");
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: function (x) {
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.nearlyEqual)(x, round(x, n), config.relTol, config.absTol)) {
34
- return round(x, n);
35
- } else {
36
- let [number, exponent] = `${x}e`.split('e');
37
- const result = Math.ceil(Number(`${number}e${Number(exponent) + n}`));
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: function (x) {
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
- if ((0, _nearlyEqual.nearlyEqual)(x, round(x, n), config.relTol, config.absTol)) {
137
- return round(x, n);
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: function (x) {
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.nearlyEqual)(x, round(x, n), config.relTol, config.absTol)) {
34
- return round(x, n);
35
- } else {
36
- let [number, exponent] = `${x}e`.split('e');
37
- const result = Math.floor(Number(`${number}e${Number(exponent) + n}`));
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: function (x) {
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
- if ((0, _nearlyEqual.nearlyEqual)(x, round(x, n), config.relTol, config.absTol)) {
140
- return round(x, n);
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) // returns [[1, 4], [2, 5], [3, {re:6,im:7}]]
29
+ * math.ctranspose(A) // returns [[1, 4], [2, 5], [3, {re:6,im:-7}]]
30
30
  *
31
31
  * See also:
32
32
  *