mathjs 10.5.0 → 10.5.1
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 +12 -0
- package/docs/datatypes/matrices.md +17 -0
- package/docs/expressions/syntax.md +4 -1
- package/docs/reference/functions/fix.md +1 -0
- package/docs/reference/functions/floor.md +4 -0
- package/docs/reference/functions/resolve.md +2 -2
- package/docs/reference/functions/simplifyConstant.md +52 -0
- package/lib/browser/math.js +5 -5
- package/lib/browser/math.js.map +1 -1
- package/lib/cjs/entry/dependenciesAny/dependenciesCeil.generated.js +6 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesFix.generated.js +9 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesFloor.generated.js +6 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesIndexNode.generated.js +0 -3
- package/lib/cjs/entry/dependenciesNumber/dependenciesCeil.generated.js +3 -0
- package/lib/cjs/entry/dependenciesNumber/dependenciesFix.generated.js +6 -0
- package/lib/cjs/entry/dependenciesNumber/dependenciesFloor.generated.js +3 -0
- package/lib/cjs/entry/dependenciesNumber/dependenciesIndexNode.generated.js +0 -3
- package/lib/cjs/entry/impureFunctionsAny.generated.js +0 -1
- package/lib/cjs/entry/impureFunctionsNumber.generated.js +6 -7
- package/lib/cjs/entry/pureFunctionsAny.generated.js +10 -3
- package/lib/cjs/entry/pureFunctionsNumber.generated.js +21 -15
- package/lib/cjs/expression/node/IndexNode.js +26 -61
- package/lib/cjs/factoriesNumber.js +29 -24
- package/lib/cjs/function/algebra/resolve.js +3 -3
- package/lib/cjs/function/arithmetic/ceil.js +75 -39
- package/lib/cjs/function/arithmetic/fix.js +54 -16
- package/lib/cjs/function/arithmetic/floor.js +79 -37
- package/lib/cjs/function/arithmetic/nthRoot.js +1 -3
- package/lib/cjs/function/arithmetic/round.js +27 -47
- package/lib/cjs/header.js +2 -2
- package/lib/cjs/plain/number/arithmetic.js +9 -27
- package/lib/cjs/type/matrix/function/sparse.js +6 -0
- package/lib/cjs/utils/lruQueue.js +1 -3
- package/lib/cjs/utils/object.js +3 -1
- package/lib/cjs/version.js +1 -1
- package/lib/esm/entry/dependenciesAny/dependenciesCeil.generated.js +4 -0
- package/lib/esm/entry/dependenciesAny/dependenciesFix.generated.js +6 -0
- package/lib/esm/entry/dependenciesAny/dependenciesFloor.generated.js +4 -0
- package/lib/esm/entry/dependenciesAny/dependenciesIndexNode.generated.js +0 -2
- package/lib/esm/entry/dependenciesNumber/dependenciesCeil.generated.js +2 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesFix.generated.js +4 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesFloor.generated.js +2 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesIndexNode.generated.js +0 -2
- package/lib/esm/entry/impureFunctionsAny.generated.js +0 -1
- package/lib/esm/entry/impureFunctionsNumber.generated.js +7 -8
- package/lib/esm/entry/pureFunctionsAny.generated.js +10 -3
- package/lib/esm/entry/pureFunctionsNumber.generated.js +16 -10
- package/lib/esm/expression/node/BlockNode.js +3 -3
- package/lib/esm/expression/node/IndexNode.js +22 -59
- package/lib/esm/expression/parse.js +5 -5
- package/lib/esm/factoriesNumber.js +6 -6
- package/lib/esm/function/algebra/decomposition/qr.js +2 -2
- package/lib/esm/function/algebra/resolve.js +3 -3
- package/lib/esm/function/algebra/solver/utils/solveValidation.js +5 -5
- package/lib/esm/function/algebra/sparse/csChol.js +2 -2
- package/lib/esm/function/algebra/sparse/csLeaf.js +2 -2
- package/lib/esm/function/algebra/sparse/csLu.js +3 -3
- package/lib/esm/function/arithmetic/ceil.js +61 -24
- package/lib/esm/function/arithmetic/fix.js +51 -13
- package/lib/esm/function/arithmetic/floor.js +65 -23
- package/lib/esm/function/arithmetic/nthRoot.js +1 -3
- package/lib/esm/function/arithmetic/nthRoots.js +1 -1
- package/lib/esm/function/arithmetic/round.js +25 -43
- package/lib/esm/function/matrix/expm.js +2 -2
- package/lib/esm/function/probability/gamma.js +1 -1
- package/lib/esm/function/string/bin.js +1 -1
- package/lib/esm/function/string/hex.js +1 -1
- package/lib/esm/function/string/oct.js +1 -1
- package/lib/esm/plain/number/arithmetic.js +9 -17
- package/lib/esm/type/complex/Complex.js +2 -2
- package/lib/esm/type/matrix/DenseMatrix.js +2 -2
- package/lib/esm/type/matrix/FibonacciHeap.js +2 -2
- package/lib/esm/type/matrix/SparseMatrix.js +13 -13
- package/lib/esm/type/matrix/function/sparse.js +6 -0
- package/lib/esm/type/unit/Unit.js +7 -7
- package/lib/esm/utils/lruQueue.js +1 -2
- package/lib/esm/utils/number.js +3 -3
- package/lib/esm/utils/object.js +3 -1
- package/lib/esm/version.js +1 -1
- package/package.json +14 -3
- package/types/index.d.ts +1794 -1372
- package/types/index.ts +697 -266
| @@ -1,4 +1,4 @@ | |
| 1 | 
            -
            import { absNumber, acoshNumber, acosNumber, acothNumber, acotNumber, acschNumber, acscNumber, addNumber, andNumber, asechNumber, asecNumber, asinhNumber, asinNumber, atan2Number, atanhNumber, atanNumber, bitAndNumber, bitNotNumber, bitOrNumber, bitXorNumber, cbrtNumber,  | 
| 1 | 
            +
            import { absNumber, acoshNumber, acosNumber, acothNumber, acotNumber, acschNumber, acscNumber, addNumber, andNumber, asechNumber, asecNumber, asinhNumber, asinNumber, atan2Number, atanhNumber, atanNumber, bitAndNumber, bitNotNumber, bitOrNumber, bitXorNumber, cbrtNumber, combinationsNumber, coshNumber, cosNumber, cothNumber, cotNumber, cschNumber, cscNumber, cubeNumber, divideNumber, expm1Number, expNumber, gammaNumber, gcdNumber, isIntegerNumber, isNaNNumber, isNegativeNumber, isPositiveNumber, isZeroNumber, lcmNumber, leftShiftNumber, lgammaNumber, log10Number, log1pNumber, log2Number, logNumber, modNumber, multiplyNumber, normNumber, notNumber, nthRootNumber, orNumber, powNumber, rightArithShiftNumber, rightLogShiftNumber, roundNumber, sechNumber, secNumber, signNumber, sinhNumber, sinNumber, sqrtNumber, squareNumber, subtractNumber, tanhNumber, tanNumber, unaryMinusNumber, unaryPlusNumber, xgcdNumber, xorNumber } from './plain/number/index.js';
         | 
| 2 2 | 
             
            import { factory } from './utils/factory.js';
         | 
| 3 3 | 
             
            import { noIndex, noMatrix, noSubset } from './utils/noop.js'; // ----------------------------------------------------------------------------
         | 
| 4 4 | 
             
            // classes and functions
         | 
| @@ -24,12 +24,12 @@ export var createUnaryPlus = /* #__PURE__ */createNumberFactory('unaryPlus', una | |
| 24 24 | 
             
            export var createAbs = /* #__PURE__ */createNumberFactory('abs', absNumber);
         | 
| 25 25 | 
             
            export var createAddScalar = /* #__PURE__ */createNumberFactory('addScalar', addNumber);
         | 
| 26 26 | 
             
            export var createCbrt = /* #__PURE__ */createNumberFactory('cbrt', cbrtNumber);
         | 
| 27 | 
            -
            export  | 
| 27 | 
            +
            export { createCeilNumber as createCeil } from './function/arithmetic/ceil.js';
         | 
| 28 28 | 
             
            export var createCube = /* #__PURE__ */createNumberFactory('cube', cubeNumber);
         | 
| 29 29 | 
             
            export var createExp = /* #__PURE__ */createNumberFactory('exp', expNumber);
         | 
| 30 30 | 
             
            export var createExpm1 = /* #__PURE__ */createNumberFactory('expm1', expm1Number);
         | 
| 31 | 
            -
            export  | 
| 32 | 
            -
            export  | 
| 31 | 
            +
            export { createFixNumber as createFix } from './function/arithmetic/fix.js';
         | 
| 32 | 
            +
            export { createFloorNumber as createFloor } from './function/arithmetic/floor.js';
         | 
| 33 33 | 
             
            export var createGcd = /* #__PURE__ */createNumberFactory('gcd', gcdNumber);
         | 
| 34 34 | 
             
            export var createLcm = /* #__PURE__ */createNumberFactory('lcm', lcmNumber);
         | 
| 35 35 | 
             
            export var createLog10 = /* #__PURE__ */createNumberFactory('log10', log10Number);
         | 
| @@ -37,7 +37,7 @@ export var createLog2 = /* #__PURE__ */createNumberFactory('log2', log2Number); | |
| 37 37 | 
             
            export var createMod = /* #__PURE__ */createNumberFactory('mod', modNumber);
         | 
| 38 38 | 
             
            export var createMultiplyScalar = /* #__PURE__ */createNumberFactory('multiplyScalar', multiplyNumber);
         | 
| 39 39 | 
             
            export var createMultiply = /* #__PURE__ */createNumberFactory('multiply', multiplyNumber);
         | 
| 40 | 
            -
            export  | 
| 40 | 
            +
            export var createNthRoot = /* #__PURE__ */createNumberOptionalSecondArgFactory('nthRoot', nthRootNumber);
         | 
| 41 41 | 
             
            export var createSign = /* #__PURE__ */createNumberFactory('sign', signNumber);
         | 
| 42 42 | 
             
            export var createSqrt = /* #__PURE__ */createNumberFactory('sqrt', sqrtNumber);
         | 
| 43 43 | 
             
            export var createSquare = /* #__PURE__ */createNumberFactory('square', squareNumber);
         | 
| @@ -45,7 +45,7 @@ export var createSubtract = /* #__PURE__ */createNumberFactory('subtract', subtr | |
| 45 45 | 
             
            export var createXgcd = /* #__PURE__ */createNumberFactory('xgcd', xgcdNumber);
         | 
| 46 46 | 
             
            export var createDivideScalar = /* #__PURE__ */createNumberFactory('divideScalar', divideNumber);
         | 
| 47 47 | 
             
            export var createPow = /* #__PURE__ */createNumberFactory('pow', powNumber);
         | 
| 48 | 
            -
            export  | 
| 48 | 
            +
            export var createRound = /* #__PURE__ */createNumberOptionalSecondArgFactory('round', roundNumber);
         | 
| 49 49 | 
             
            export var createLog = /* #__PURE__ */createNumberOptionalSecondArgFactory('log', logNumber);
         | 
| 50 50 | 
             
            export var createLog1p = /* #__PURE__ */createNumberFactory('log1p', log1pNumber);
         | 
| 51 51 | 
             
            export var createAdd = /* #__PURE__ */createNumberFactory('add', addNumber);
         | 
| @@ -29,11 +29,11 @@ export var createResolve = /* #__PURE__ */factory(name, dependencies, _ref => { | |
| 29 29 | 
             
               *
         | 
| 30 30 | 
             
               *     simplify, evaluate
         | 
| 31 31 | 
             
               *
         | 
| 32 | 
            -
               * @param {Node} node
         | 
| 33 | 
            -
               *     The expression tree to be simplified
         | 
| 32 | 
            +
               * @param {Node | Node[]} node
         | 
| 33 | 
            +
               *     The expression tree (or trees) to be simplified
         | 
| 34 34 | 
             
               * @param {Object} scope
         | 
| 35 35 | 
             
               *     Scope specifying variables to be resolved
         | 
| 36 | 
            -
               * @return {Node} Returns `node` with variables recursively substituted.
         | 
| 36 | 
            +
               * @return {Node | Node[]} Returns `node` with variables recursively substituted.
         | 
| 37 37 | 
             
               * @throws {ReferenceError}
         | 
| 38 38 | 
             
               *     If there is a cyclic dependency among the variables in `scope`,
         | 
| 39 39 | 
             
               *     resolution is impossible and a ReferenceError is thrown.
         | 
| @@ -45,7 +45,7 @@ export function createSolveValidation(_ref) { | |
| 45 45 | 
             
                    }
         | 
| 46 46 |  | 
| 47 47 | 
             
                    return new DenseMatrix({
         | 
| 48 | 
            -
                      data | 
| 48 | 
            +
                      data,
         | 
| 49 49 | 
             
                      size: [rows, 1],
         | 
| 50 50 | 
             
                      datatype: b._datatype
         | 
| 51 51 | 
             
                    });
         | 
| @@ -66,7 +66,7 @@ export function createSolveValidation(_ref) { | |
| 66 66 | 
             
                        }
         | 
| 67 67 |  | 
| 68 68 | 
             
                        return new DenseMatrix({
         | 
| 69 | 
            -
                          data | 
| 69 | 
            +
                          data,
         | 
| 70 70 | 
             
                          size: [rows, 1],
         | 
| 71 71 | 
             
                          datatype: b._datatype
         | 
| 72 72 | 
             
                        });
         | 
| @@ -90,7 +90,7 @@ export function createSolveValidation(_ref) { | |
| 90 90 | 
             
                      }
         | 
| 91 91 |  | 
| 92 92 | 
             
                      return new DenseMatrix({
         | 
| 93 | 
            -
                        data | 
| 93 | 
            +
                        data,
         | 
| 94 94 | 
             
                        size: [rows, 1],
         | 
| 95 95 | 
             
                        datatype: b._datatype
         | 
| 96 96 | 
             
                      });
         | 
| @@ -113,7 +113,7 @@ export function createSolveValidation(_ref) { | |
| 113 113 | 
             
                    }
         | 
| 114 114 |  | 
| 115 115 | 
             
                    return new DenseMatrix({
         | 
| 116 | 
            -
                      data | 
| 116 | 
            +
                      data,
         | 
| 117 117 | 
             
                      size: [rows, 1]
         | 
| 118 118 | 
             
                    });
         | 
| 119 119 | 
             
                  }
         | 
| @@ -128,7 +128,7 @@ export function createSolveValidation(_ref) { | |
| 128 128 | 
             
                    }
         | 
| 129 129 |  | 
| 130 130 | 
             
                    return new DenseMatrix({
         | 
| 131 | 
            -
                      data | 
| 131 | 
            +
                      data,
         | 
| 132 132 | 
             
                      size: [rows, 1]
         | 
| 133 133 | 
             
                    });
         | 
| 134 134 | 
             
                  }
         | 
| @@ -3,26 +3,63 @@ import { factory } from '../../utils/factory.js'; | |
| 3 3 | 
             
            import { deepMap } from '../../utils/collection.js';
         | 
| 4 4 | 
             
            import { nearlyEqual } from '../../utils/number.js';
         | 
| 5 5 | 
             
            import { nearlyEqual as bigNearlyEqual } from '../../utils/bignumber/nearlyEqual.js';
         | 
| 6 | 
            -
            import { ceilNumber } from '../../plain/number/index.js';
         | 
| 7 6 | 
             
            import { createAlgorithm11 } from '../../type/matrix/utils/algorithm11.js';
         | 
| 7 | 
            +
            import { createAlgorithm12 } from '../../type/matrix/utils/algorithm12.js';
         | 
| 8 8 | 
             
            import { createAlgorithm14 } from '../../type/matrix/utils/algorithm14.js';
         | 
| 9 9 | 
             
            var name = 'ceil';
         | 
| 10 | 
            -
            var dependencies = ['typed', 'config', 'round', 'matrix', 'equalScalar'];
         | 
| 11 | 
            -
            export var  | 
| 10 | 
            +
            var dependencies = ['typed', 'config', 'round', 'matrix', 'equalScalar', 'zeros', 'DenseMatrix'];
         | 
| 11 | 
            +
            export var createCeilNumber = /* #__PURE__ */factory(name, ['typed', 'config', 'round'], _ref => {
         | 
| 12 | 
            +
              var {
         | 
| 13 | 
            +
                typed,
         | 
| 14 | 
            +
                config,
         | 
| 15 | 
            +
                round
         | 
| 16 | 
            +
              } = _ref;
         | 
| 17 | 
            +
              return typed(name, {
         | 
| 18 | 
            +
                number: function number(x) {
         | 
| 19 | 
            +
                  if (nearlyEqual(x, round(x), config.epsilon)) {
         | 
| 20 | 
            +
                    return round(x);
         | 
| 21 | 
            +
                  } else {
         | 
| 22 | 
            +
                    return Math.ceil(x);
         | 
| 23 | 
            +
                  }
         | 
| 24 | 
            +
                },
         | 
| 25 | 
            +
                'number, number': function numberNumber(x, n) {
         | 
| 26 | 
            +
                  if (nearlyEqual(x, round(x, n), config.epsilon)) {
         | 
| 27 | 
            +
                    return round(x, n);
         | 
| 28 | 
            +
                  } else {
         | 
| 29 | 
            +
                    var [number, exponent] = "".concat(x, "e").split('e');
         | 
| 30 | 
            +
                    var result = Math.ceil(Number("".concat(number, "e").concat(Number(exponent) + n)));
         | 
| 31 | 
            +
                    [number, exponent] = "".concat(result, "e").split('e');
         | 
| 32 | 
            +
                    return Number("".concat(number, "e").concat(Number(exponent) - n));
         | 
| 33 | 
            +
                  }
         | 
| 34 | 
            +
                }
         | 
| 35 | 
            +
              });
         | 
| 36 | 
            +
            });
         | 
| 37 | 
            +
            export var createCeil = /* #__PURE__ */factory(name, dependencies, _ref2 => {
         | 
| 12 38 | 
             
              var {
         | 
| 13 39 | 
             
                typed,
         | 
| 14 40 | 
             
                config,
         | 
| 15 41 | 
             
                round,
         | 
| 16 42 | 
             
                matrix,
         | 
| 17 | 
            -
                equalScalar
         | 
| 18 | 
            -
             | 
| 43 | 
            +
                equalScalar,
         | 
| 44 | 
            +
                zeros,
         | 
| 45 | 
            +
                DenseMatrix
         | 
| 46 | 
            +
              } = _ref2;
         | 
| 19 47 | 
             
              var algorithm11 = createAlgorithm11({
         | 
| 20 48 | 
             
                typed,
         | 
| 21 49 | 
             
                equalScalar
         | 
| 22 50 | 
             
              });
         | 
| 51 | 
            +
              var algorithm12 = createAlgorithm12({
         | 
| 52 | 
            +
                typed,
         | 
| 53 | 
            +
                DenseMatrix
         | 
| 54 | 
            +
              });
         | 
| 23 55 | 
             
              var algorithm14 = createAlgorithm14({
         | 
| 24 56 | 
             
                typed
         | 
| 25 57 | 
             
              });
         | 
| 58 | 
            +
              var ceilNumber = createCeilNumber({
         | 
| 59 | 
            +
                typed,
         | 
| 60 | 
            +
                config,
         | 
| 61 | 
            +
                round
         | 
| 62 | 
            +
              });
         | 
| 26 63 | 
             
              /**
         | 
| 27 64 | 
             
               * Round a value towards plus infinity
         | 
| 28 65 | 
             
               * If `x` is complex, both real and imaginary part are rounded towards plus infinity.
         | 
| @@ -62,29 +99,17 @@ export var createCeil = /* #__PURE__ */factory(name, dependencies, _ref => { | |
| 62 99 | 
             
               */
         | 
| 63 100 |  | 
| 64 101 | 
             
              return typed('ceil', {
         | 
| 65 | 
            -
                number:  | 
| 66 | 
            -
             | 
| 67 | 
            -
                    return round(x);
         | 
| 68 | 
            -
                  } else {
         | 
| 69 | 
            -
                    return ceilNumber(x);
         | 
| 70 | 
            -
                  }
         | 
| 71 | 
            -
                },
         | 
| 72 | 
            -
                'number, number': function numberNumber(x, n) {
         | 
| 73 | 
            -
                  if (nearlyEqual(x, round(x, n), config.epsilon)) {
         | 
| 74 | 
            -
                    return round(x, n);
         | 
| 75 | 
            -
                  } else {
         | 
| 76 | 
            -
                    var [number, exponent] = "".concat(x, "e").split('e');
         | 
| 77 | 
            -
                    var result = Math.ceil(Number("".concat(number, "e").concat(Number(exponent) + n)));
         | 
| 78 | 
            -
                    [number, exponent] = "".concat(result, "e").split('e');
         | 
| 79 | 
            -
                    return Number("".concat(number, "e").concat(Number(exponent) - n));
         | 
| 80 | 
            -
                  }
         | 
| 81 | 
            -
                },
         | 
| 102 | 
            +
                number: ceilNumber.signatures.number,
         | 
| 103 | 
            +
                'number,number': ceilNumber.signatures['number,number'],
         | 
| 82 104 | 
             
                Complex: function Complex(x) {
         | 
| 83 105 | 
             
                  return x.ceil();
         | 
| 84 106 | 
             
                },
         | 
| 85 107 | 
             
                'Complex, number': function ComplexNumber(x, n) {
         | 
| 86 108 | 
             
                  return x.ceil(n);
         | 
| 87 109 | 
             
                },
         | 
| 110 | 
            +
                'Complex, BigNumber': function ComplexBigNumber(x, n) {
         | 
| 111 | 
            +
                  return x.ceil(n.toNumber());
         | 
| 112 | 
            +
                },
         | 
| 88 113 | 
             
                BigNumber: function BigNumber(x) {
         | 
| 89 114 | 
             
                  if (bigNearlyEqual(x, round(x), config.epsilon)) {
         | 
| 90 115 | 
             
                    return round(x);
         | 
| @@ -105,11 +130,14 @@ export var createCeil = /* #__PURE__ */factory(name, dependencies, _ref => { | |
| 105 130 | 
             
                'Fraction, number': function FractionNumber(x, n) {
         | 
| 106 131 | 
             
                  return x.ceil(n);
         | 
| 107 132 | 
             
                },
         | 
| 133 | 
            +
                'Fraction, BigNumber': function FractionBigNumber(x, n) {
         | 
| 134 | 
            +
                  return x.ceil(n.toNumber());
         | 
| 135 | 
            +
                },
         | 
| 108 136 | 
             
                'Array | Matrix': function ArrayMatrix(x) {
         | 
| 109 137 | 
             
                  // deep map collection, skip zeros since ceil(0) = 0
         | 
| 110 138 | 
             
                  return deepMap(x, this, true);
         | 
| 111 139 | 
             
                },
         | 
| 112 | 
            -
                'Array |  | 
| 140 | 
            +
                'Array, number | BigNumber': function ArrayNumberBigNumber(x, n) {
         | 
| 113 141 | 
             
                  // deep map collection, skip zeros since ceil(0) = 0
         | 
| 114 142 | 
             
                  return deepMap(x, i => this(i, n), true);
         | 
| 115 143 | 
             
                },
         | 
| @@ -119,9 +147,18 @@ export var createCeil = /* #__PURE__ */factory(name, dependencies, _ref => { | |
| 119 147 | 
             
                'DenseMatrix, number | BigNumber': function DenseMatrixNumberBigNumber(x, y) {
         | 
| 120 148 | 
             
                  return algorithm14(x, y, this, false);
         | 
| 121 149 | 
             
                },
         | 
| 122 | 
            -
                'number | Complex | BigNumber, Array': function  | 
| 150 | 
            +
                'number | Complex | Fraction | BigNumber, Array': function numberComplexFractionBigNumberArray(x, y) {
         | 
| 123 151 | 
             
                  // use matrix implementation
         | 
| 124 152 | 
             
                  return algorithm14(matrix(y), x, this, true).valueOf();
         | 
| 153 | 
            +
                },
         | 
| 154 | 
            +
                'number | Complex | Fraction | BigNumber, Matrix': function numberComplexFractionBigNumberMatrix(x, y) {
         | 
| 155 | 
            +
                  if (equalScalar(x, 0)) return zeros(y.size(), y.storage());
         | 
| 156 | 
            +
             | 
| 157 | 
            +
                  if (y.storage() === 'dense') {
         | 
| 158 | 
            +
                    return algorithm14(y, x, this, true);
         | 
| 159 | 
            +
                  }
         | 
| 160 | 
            +
             | 
| 161 | 
            +
                  return algorithm12(y, x, this, true);
         | 
| 125 162 | 
             
                }
         | 
| 126 163 | 
             
              });
         | 
| 127 164 | 
             
            });
         | 
| @@ -1,19 +1,47 @@ | |
| 1 1 | 
             
            import { factory } from '../../utils/factory.js';
         | 
| 2 2 | 
             
            import { deepMap } from '../../utils/collection.js';
         | 
| 3 | 
            +
            import { createAlgorithm12 } from '../../type/matrix/utils/algorithm12.js';
         | 
| 3 4 | 
             
            import { createAlgorithm14 } from '../../type/matrix/utils/algorithm14.js';
         | 
| 4 5 | 
             
            var name = 'fix';
         | 
| 5 | 
            -
            var dependencies = ['typed', 'Complex', 'matrix', 'ceil', 'floor'];
         | 
| 6 | 
            -
            export var  | 
| 6 | 
            +
            var dependencies = ['typed', 'Complex', 'matrix', 'ceil', 'floor', 'equalScalar', 'zeros', 'DenseMatrix'];
         | 
| 7 | 
            +
            export var createFixNumber = /* #__PURE__ */factory(name, ['typed', 'ceil', 'floor'], _ref => {
         | 
| 7 8 | 
             
              var {
         | 
| 8 9 | 
             
                typed,
         | 
| 9 | 
            -
                Complex: _Complex,
         | 
| 10 | 
            -
                matrix,
         | 
| 11 10 | 
             
                ceil,
         | 
| 12 11 | 
             
                floor
         | 
| 13 12 | 
             
              } = _ref;
         | 
| 13 | 
            +
              return typed(name, {
         | 
| 14 | 
            +
                number: function number(x) {
         | 
| 15 | 
            +
                  return x > 0 ? floor(x) : ceil(x);
         | 
| 16 | 
            +
                },
         | 
| 17 | 
            +
                'number, number': function numberNumber(x, n) {
         | 
| 18 | 
            +
                  return x > 0 ? floor(x, n) : ceil(x, n);
         | 
| 19 | 
            +
                }
         | 
| 20 | 
            +
              });
         | 
| 21 | 
            +
            });
         | 
| 22 | 
            +
            export var createFix = /* #__PURE__ */factory(name, dependencies, _ref2 => {
         | 
| 23 | 
            +
              var {
         | 
| 24 | 
            +
                typed,
         | 
| 25 | 
            +
                Complex: _Complex,
         | 
| 26 | 
            +
                matrix,
         | 
| 27 | 
            +
                ceil,
         | 
| 28 | 
            +
                floor,
         | 
| 29 | 
            +
                equalScalar,
         | 
| 30 | 
            +
                zeros,
         | 
| 31 | 
            +
                DenseMatrix
         | 
| 32 | 
            +
              } = _ref2;
         | 
| 33 | 
            +
              var algorithm12 = createAlgorithm12({
         | 
| 34 | 
            +
                typed,
         | 
| 35 | 
            +
                DenseMatrix
         | 
| 36 | 
            +
              });
         | 
| 14 37 | 
             
              var algorithm14 = createAlgorithm14({
         | 
| 15 38 | 
             
                typed
         | 
| 16 39 | 
             
              });
         | 
| 40 | 
            +
              var fixNumber = createFixNumber({
         | 
| 41 | 
            +
                typed,
         | 
| 42 | 
            +
                ceil,
         | 
| 43 | 
            +
                floor
         | 
| 44 | 
            +
              });
         | 
| 17 45 | 
             
              /**
         | 
| 18 46 | 
             
               * Round a value towards zero.
         | 
| 19 47 | 
             
               * For matrices, the function is evaluated element wise.
         | 
| @@ -21,6 +49,7 @@ export var createFix = /* #__PURE__ */factory(name, dependencies, _ref => { | |
| 21 49 | 
             
               * Syntax:
         | 
| 22 50 | 
             
               *
         | 
| 23 51 | 
             
               *    math.fix(x)
         | 
| 52 | 
            +
               *    math.fix(x,n)
         | 
| 24 53 | 
             
               *
         | 
| 25 54 | 
             
               * Examples:
         | 
| 26 55 | 
             
               *
         | 
| @@ -51,16 +80,16 @@ export var createFix = /* #__PURE__ */factory(name, dependencies, _ref => { | |
| 51 80 | 
             
               */
         | 
| 52 81 |  | 
| 53 82 | 
             
              return typed('fix', {
         | 
| 54 | 
            -
                number:  | 
| 55 | 
            -
             | 
| 56 | 
            -
                },
         | 
| 57 | 
            -
                'number, number | BigNumber': function numberNumberBigNumber(x, n) {
         | 
| 58 | 
            -
                  return x > 0 ? floor(x, n) : ceil(x, n);
         | 
| 59 | 
            -
                },
         | 
| 83 | 
            +
                number: fixNumber.signatures.number,
         | 
| 84 | 
            +
                'number, number | BigNumber': fixNumber.signatures['number,number'],
         | 
| 60 85 | 
             
                Complex: function Complex(x) {
         | 
| 61 86 | 
             
                  return new _Complex(x.re > 0 ? Math.floor(x.re) : Math.ceil(x.re), x.im > 0 ? Math.floor(x.im) : Math.ceil(x.im));
         | 
| 62 87 | 
             
                },
         | 
| 63 | 
            -
                'Complex, number | 
| 88 | 
            +
                'Complex, number': function ComplexNumber(x, n) {
         | 
| 89 | 
            +
                  return new _Complex(x.re > 0 ? floor(x.re, n) : ceil(x.re, n), x.im > 0 ? floor(x.im, n) : ceil(x.im, n));
         | 
| 90 | 
            +
                },
         | 
| 91 | 
            +
                'Complex, BigNumber': function ComplexBigNumber(x, bn) {
         | 
| 92 | 
            +
                  var n = bn.toNumber();
         | 
| 64 93 | 
             
                  return new _Complex(x.re > 0 ? floor(x.re, n) : ceil(x.re, n), x.im > 0 ? floor(x.im, n) : ceil(x.im, n));
         | 
| 65 94 | 
             
                },
         | 
| 66 95 | 
             
                BigNumber: function BigNumber(x) {
         | 
| @@ -73,7 +102,7 @@ export var createFix = /* #__PURE__ */factory(name, dependencies, _ref => { | |
| 73 102 | 
             
                  return x.s < 0 ? x.ceil() : x.floor();
         | 
| 74 103 | 
             
                },
         | 
| 75 104 | 
             
                'Fraction, number | BigNumber': function FractionNumberBigNumber(x, n) {
         | 
| 76 | 
            -
                  return x.s < 0 ?  | 
| 105 | 
            +
                  return x.s < 0 ? ceil(x, n) : floor(x, n);
         | 
| 77 106 | 
             
                },
         | 
| 78 107 | 
             
                'Array | Matrix': function ArrayMatrix(x) {
         | 
| 79 108 | 
             
                  // deep map collection, skip zeros since fix(0) = 0
         | 
| @@ -83,9 +112,18 @@ export var createFix = /* #__PURE__ */factory(name, dependencies, _ref => { | |
| 83 112 | 
             
                  // deep map collection, skip zeros since fix(0) = 0
         | 
| 84 113 | 
             
                  return deepMap(x, i => this(i, n), true);
         | 
| 85 114 | 
             
                },
         | 
| 86 | 
            -
                'number | Complex | BigNumber, Array': function  | 
| 115 | 
            +
                'number | Complex | Fraction | BigNumber, Array': function numberComplexFractionBigNumberArray(x, y) {
         | 
| 87 116 | 
             
                  // use matrix implementation
         | 
| 88 117 | 
             
                  return algorithm14(matrix(y), x, this, true).valueOf();
         | 
| 118 | 
            +
                },
         | 
| 119 | 
            +
                'number | Complex | Fraction | BigNumber, Matrix': function numberComplexFractionBigNumberMatrix(x, y) {
         | 
| 120 | 
            +
                  if (equalScalar(x, 0)) return zeros(y.size(), y.storage());
         | 
| 121 | 
            +
             | 
| 122 | 
            +
                  if (y.storage() === 'dense') {
         | 
| 123 | 
            +
                    return algorithm14(y, x, this, true);
         | 
| 124 | 
            +
                  }
         | 
| 125 | 
            +
             | 
| 126 | 
            +
                  return algorithm12(y, x, this, true);
         | 
| 89 127 | 
             
                }
         | 
| 90 128 | 
             
              });
         | 
| 91 129 | 
             
            });
         | 
| @@ -4,24 +4,62 @@ import { deepMap } from '../../utils/collection.js'; | |
| 4 4 | 
             
            import { nearlyEqual } from '../../utils/number.js';
         | 
| 5 5 | 
             
            import { nearlyEqual as bigNearlyEqual } from '../../utils/bignumber/nearlyEqual.js';
         | 
| 6 6 | 
             
            import { createAlgorithm11 } from '../../type/matrix/utils/algorithm11.js';
         | 
| 7 | 
            +
            import { createAlgorithm12 } from '../../type/matrix/utils/algorithm12.js';
         | 
| 7 8 | 
             
            import { createAlgorithm14 } from '../../type/matrix/utils/algorithm14.js';
         | 
| 8 9 | 
             
            var name = 'floor';
         | 
| 9 | 
            -
            var dependencies = ['typed', 'config', 'round', 'matrix', 'equalScalar'];
         | 
| 10 | 
            -
            export var  | 
| 10 | 
            +
            var dependencies = ['typed', 'config', 'round', 'matrix', 'equalScalar', 'zeros', 'DenseMatrix'];
         | 
| 11 | 
            +
            export var createFloorNumber = /* #__PURE__ */factory(name, ['typed', 'config', 'round'], _ref => {
         | 
| 12 | 
            +
              var {
         | 
| 13 | 
            +
                typed,
         | 
| 14 | 
            +
                config,
         | 
| 15 | 
            +
                round
         | 
| 16 | 
            +
              } = _ref;
         | 
| 17 | 
            +
              return typed(name, {
         | 
| 18 | 
            +
                number: function number(x) {
         | 
| 19 | 
            +
                  if (nearlyEqual(x, round(x), config.epsilon)) {
         | 
| 20 | 
            +
                    return round(x);
         | 
| 21 | 
            +
                  } else {
         | 
| 22 | 
            +
                    return Math.floor(x);
         | 
| 23 | 
            +
                  }
         | 
| 24 | 
            +
                },
         | 
| 25 | 
            +
                'number, number': function numberNumber(x, n) {
         | 
| 26 | 
            +
                  if (nearlyEqual(x, round(x, n), config.epsilon)) {
         | 
| 27 | 
            +
                    return round(x, n);
         | 
| 28 | 
            +
                  } else {
         | 
| 29 | 
            +
                    var [number, exponent] = "".concat(x, "e").split('e');
         | 
| 30 | 
            +
                    var result = Math.floor(Number("".concat(number, "e").concat(Number(exponent) + n)));
         | 
| 31 | 
            +
                    [number, exponent] = "".concat(result, "e").split('e');
         | 
| 32 | 
            +
                    return Number("".concat(number, "e").concat(Number(exponent) - n));
         | 
| 33 | 
            +
                  }
         | 
| 34 | 
            +
                }
         | 
| 35 | 
            +
              });
         | 
| 36 | 
            +
            });
         | 
| 37 | 
            +
            export var createFloor = /* #__PURE__ */factory(name, dependencies, _ref2 => {
         | 
| 11 38 | 
             
              var {
         | 
| 12 39 | 
             
                typed,
         | 
| 13 40 | 
             
                config,
         | 
| 14 41 | 
             
                round,
         | 
| 15 42 | 
             
                matrix,
         | 
| 16 | 
            -
                equalScalar
         | 
| 17 | 
            -
             | 
| 43 | 
            +
                equalScalar,
         | 
| 44 | 
            +
                zeros,
         | 
| 45 | 
            +
                DenseMatrix
         | 
| 46 | 
            +
              } = _ref2;
         | 
| 18 47 | 
             
              var algorithm11 = createAlgorithm11({
         | 
| 19 48 | 
             
                typed,
         | 
| 20 49 | 
             
                equalScalar
         | 
| 21 50 | 
             
              });
         | 
| 51 | 
            +
              var algorithm12 = createAlgorithm12({
         | 
| 52 | 
            +
                typed,
         | 
| 53 | 
            +
                DenseMatrix
         | 
| 54 | 
            +
              });
         | 
| 22 55 | 
             
              var algorithm14 = createAlgorithm14({
         | 
| 23 56 | 
             
                typed
         | 
| 24 57 | 
             
              });
         | 
| 58 | 
            +
              var floorNumber = createFloorNumber({
         | 
| 59 | 
            +
                typed,
         | 
| 60 | 
            +
                config,
         | 
| 61 | 
            +
                round
         | 
| 62 | 
            +
              });
         | 
| 25 63 | 
             
              /**
         | 
| 26 64 | 
             
               * Round a value towards minus infinity.
         | 
| 27 65 | 
             
               * For matrices, the function is evaluated element wise.
         | 
| @@ -50,6 +88,10 @@ export var createFloor = /* #__PURE__ */factory(name, dependencies, _ref => { | |
| 50 88 | 
             
               *    math.floor([3.2, 3.8, -4.7])       // returns Array [3, 3, -5]
         | 
| 51 89 | 
             
               *    math.floor([3.21, 3.82, -4.71], 1)  // returns Array [3.2, 3.8, -4.8]
         | 
| 52 90 | 
             
               *
         | 
| 91 | 
            +
               *    math.floor(math.tau, [2, 3])  // returns Array [6.28, 6.283]
         | 
| 92 | 
            +
               *
         | 
| 93 | 
            +
               *    // Note that floor(array, array) currently not implemented.
         | 
| 94 | 
            +
               *
         | 
| 53 95 | 
             
               * See also:
         | 
| 54 96 | 
             
               *
         | 
| 55 97 | 
             
               *    ceil, fix, round
         | 
| @@ -60,29 +102,17 @@ export var createFloor = /* #__PURE__ */factory(name, dependencies, _ref => { | |
| 60 102 | 
             
               */
         | 
| 61 103 |  | 
| 62 104 | 
             
              return typed('floor', {
         | 
| 63 | 
            -
                number:  | 
| 64 | 
            -
             | 
| 65 | 
            -
                    return round(x);
         | 
| 66 | 
            -
                  } else {
         | 
| 67 | 
            -
                    return Math.floor(x);
         | 
| 68 | 
            -
                  }
         | 
| 69 | 
            -
                },
         | 
| 70 | 
            -
                'number, number': function numberNumber(x, n) {
         | 
| 71 | 
            -
                  if (nearlyEqual(x, round(x, n), config.epsilon)) {
         | 
| 72 | 
            -
                    return round(x, n);
         | 
| 73 | 
            -
                  } else {
         | 
| 74 | 
            -
                    var [number, exponent] = "".concat(x, "e").split('e');
         | 
| 75 | 
            -
                    var result = Math.floor(Number("".concat(number, "e").concat(Number(exponent) + n)));
         | 
| 76 | 
            -
                    [number, exponent] = "".concat(result, "e").split('e');
         | 
| 77 | 
            -
                    return Number("".concat(number, "e").concat(Number(exponent) - n));
         | 
| 78 | 
            -
                  }
         | 
| 79 | 
            -
                },
         | 
| 105 | 
            +
                number: floorNumber.signatures.number,
         | 
| 106 | 
            +
                'number,number': floorNumber.signatures['number,number'],
         | 
| 80 107 | 
             
                Complex: function Complex(x) {
         | 
| 81 108 | 
             
                  return x.floor();
         | 
| 82 109 | 
             
                },
         | 
| 83 110 | 
             
                'Complex, number': function ComplexNumber(x, n) {
         | 
| 84 111 | 
             
                  return x.floor(n);
         | 
| 85 112 | 
             
                },
         | 
| 113 | 
            +
                'Complex, BigNumber': function ComplexBigNumber(x, n) {
         | 
| 114 | 
            +
                  return x.floor(n.toNumber());
         | 
| 115 | 
            +
                },
         | 
| 86 116 | 
             
                BigNumber: function BigNumber(x) {
         | 
| 87 117 | 
             
                  if (bigNearlyEqual(x, round(x), config.epsilon)) {
         | 
| 88 118 | 
             
                    return round(x);
         | 
| @@ -103,11 +133,14 @@ export var createFloor = /* #__PURE__ */factory(name, dependencies, _ref => { | |
| 103 133 | 
             
                'Fraction, number': function FractionNumber(x, n) {
         | 
| 104 134 | 
             
                  return x.floor(n);
         | 
| 105 135 | 
             
                },
         | 
| 136 | 
            +
                'Fraction, BigNumber': function FractionBigNumber(x, n) {
         | 
| 137 | 
            +
                  return x.floor(n.toNumber());
         | 
| 138 | 
            +
                },
         | 
| 106 139 | 
             
                'Array | Matrix': function ArrayMatrix(x) {
         | 
| 107 140 | 
             
                  // deep map collection, skip zeros since floor(0) = 0
         | 
| 108 141 | 
             
                  return deepMap(x, this, true);
         | 
| 109 142 | 
             
                },
         | 
| 110 | 
            -
                'Array |  | 
| 143 | 
            +
                'Array, number | BigNumber': function ArrayNumberBigNumber(x, n) {
         | 
| 111 144 | 
             
                  // deep map collection, skip zeros since ceil(0) = 0
         | 
| 112 145 | 
             
                  return deepMap(x, i => this(i, n), true);
         | 
| 113 146 | 
             
                },
         | 
| @@ -117,9 +150,18 @@ export var createFloor = /* #__PURE__ */factory(name, dependencies, _ref => { | |
| 117 150 | 
             
                'DenseMatrix, number | BigNumber': function DenseMatrixNumberBigNumber(x, y) {
         | 
| 118 151 | 
             
                  return algorithm14(x, y, this, false);
         | 
| 119 152 | 
             
                },
         | 
| 120 | 
            -
                'number | Complex | BigNumber, Array': function  | 
| 153 | 
            +
                'number | Complex | Fraction | BigNumber, Array': function numberComplexFractionBigNumberArray(x, y) {
         | 
| 121 154 | 
             
                  // use matrix implementation
         | 
| 122 155 | 
             
                  return algorithm14(matrix(y), x, this, true).valueOf();
         | 
| 156 | 
            +
                },
         | 
| 157 | 
            +
                'number | Complex | Fraction | BigNumber, Matrix': function numberComplexFractionBigNumberMatrix(x, y) {
         | 
| 158 | 
            +
                  if (equalScalar(x, 0)) return zeros(y.size(), y.storage());
         | 
| 159 | 
            +
             | 
| 160 | 
            +
                  if (y.storage() === 'dense') {
         | 
| 161 | 
            +
                    return algorithm14(y, x, this, true);
         | 
| 162 | 
            +
                  }
         | 
| 163 | 
            +
             | 
| 164 | 
            +
                  return algorithm12(y, x, this, true);
         | 
| 123 165 | 
             
                }
         | 
| 124 166 | 
             
              });
         | 
| 125 167 | 
             
            });
         | 
| @@ -68,9 +68,7 @@ export var createNthRoot = /* #__PURE__ */factory(name, dependencies, _ref => { | |
| 68 68 |  | 
| 69 69 | 
             
              var complexErr = '' + 'Complex number not supported in function nthRoot. ' + 'Use nthRoots instead.';
         | 
| 70 70 | 
             
              return typed(name, {
         | 
| 71 | 
            -
                number:  | 
| 72 | 
            -
                  return nthRootNumber(x, 2);
         | 
| 73 | 
            -
                },
         | 
| 71 | 
            +
                number: nthRootNumber,
         | 
| 74 72 | 
             
                'number, number': nthRootNumber,
         | 
| 75 73 | 
             
                BigNumber: function BigNumber(x) {
         | 
| 76 74 | 
             
                  return _bigNthRoot(x, new _BigNumber(2));
         |