simple-squiggle

A restricted subset of Squiggle
Log | Files | Refs | README

multiplyScalar.js (1711B)


      1 import { factory } from '../../utils/factory.js';
      2 import { multiplyNumber } from '../../plain/number/index.js';
      3 var name = 'multiplyScalar';
      4 var dependencies = ['typed'];
      5 export var createMultiplyScalar = /* #__PURE__ */factory(name, dependencies, _ref => {
      6   var {
      7     typed
      8   } = _ref;
      9 
     10   /**
     11    * Multiply two scalar values, `x * y`.
     12    * This function is meant for internal use: it is used by the public function
     13    * `multiply`
     14    *
     15    * This function does not support collections (Array or Matrix).
     16    *
     17    * @param  {number | BigNumber | Fraction | Complex | Unit} x   First value to multiply
     18    * @param  {number | BigNumber | Fraction | Complex} y          Second value to multiply
     19    * @return {number | BigNumber | Fraction | Complex | Unit}     Multiplication of `x` and `y`
     20    * @private
     21    */
     22   return typed('multiplyScalar', {
     23     'number, number': multiplyNumber,
     24     'Complex, Complex': function ComplexComplex(x, y) {
     25       return x.mul(y);
     26     },
     27     'BigNumber, BigNumber': function BigNumberBigNumber(x, y) {
     28       return x.times(y);
     29     },
     30     'Fraction, Fraction': function FractionFraction(x, y) {
     31       return x.mul(y);
     32     },
     33     'number | Fraction | BigNumber | Complex, Unit': function numberFractionBigNumberComplexUnit(x, y) {
     34       var res = y.clone();
     35       res.value = res.value === null ? res._normalize(x) : this(res.value, x);
     36       return res;
     37     },
     38     'Unit, number | Fraction | BigNumber | Complex': function UnitNumberFractionBigNumberComplex(x, y) {
     39       var res = x.clone();
     40       res.value = res.value === null ? res._normalize(y) : this(res.value, y);
     41       return res;
     42     },
     43     'Unit, Unit': function UnitUnit(x, y) {
     44       return x.multiply(y);
     45     }
     46   });
     47 });