divideScalar.js (2131B)
1 "use strict"; 2 3 Object.defineProperty(exports, "__esModule", { 4 value: true 5 }); 6 exports.createDivideScalar = void 0; 7 8 var _factory = require("../../utils/factory.js"); 9 10 var _is = require("../../utils/is.js"); 11 12 var name = 'divideScalar'; 13 var dependencies = ['typed', 'numeric']; 14 var createDivideScalar = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) { 15 var typed = _ref.typed, 16 numeric = _ref.numeric; 17 18 /** 19 * Divide two scalar values, `x / y`. 20 * This function is meant for internal use: it is used by the public functions 21 * `divide` and `inv`. 22 * 23 * This function does not support collections (Array or Matrix). 24 * 25 * @param {number | BigNumber | Fraction | Complex | Unit} x Numerator 26 * @param {number | BigNumber | Fraction | Complex} y Denominator 27 * @return {number | BigNumber | Fraction | Complex | Unit} Quotient, `x / y` 28 * @private 29 */ 30 return typed(name, { 31 'number, number': function numberNumber(x, y) { 32 return x / y; 33 }, 34 'Complex, Complex': function ComplexComplex(x, y) { 35 return x.div(y); 36 }, 37 'BigNumber, BigNumber': function BigNumberBigNumber(x, y) { 38 return x.div(y); 39 }, 40 'Fraction, Fraction': function FractionFraction(x, y) { 41 return x.div(y); 42 }, 43 'Unit, number | Fraction | BigNumber': function UnitNumberFractionBigNumber(x, y) { 44 var res = x.clone(); // TODO: move the divide function to Unit.js, it uses internals of Unit 45 46 var one = numeric(1, (0, _is.typeOf)(y)); 47 res.value = this(res.value === null ? res._normalize(one) : res.value, y); 48 return res; 49 }, 50 'number | Fraction | BigNumber, Unit': function numberFractionBigNumberUnit(x, y) { 51 var res = y.clone(); 52 res = res.pow(-1); // TODO: move the divide function to Unit.js, it uses internals of Unit 53 54 var one = numeric(1, (0, _is.typeOf)(x)); 55 res.value = this(x, y.value === null ? y._normalize(one) : y.value); 56 return res; 57 }, 58 'Unit, Unit': function UnitUnit(x, y) { 59 return x.divide(y); 60 } 61 }); 62 }); 63 exports.createDivideScalar = createDivideScalar;