simple-squiggle

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

addScalar.js (1749B)


      1 "use strict";
      2 
      3 Object.defineProperty(exports, "__esModule", {
      4   value: true
      5 });
      6 exports.createAddScalar = void 0;
      7 
      8 var _factory = require("../../utils/factory.js");
      9 
     10 var _index = require("../../plain/number/index.js");
     11 
     12 var name = 'addScalar';
     13 var dependencies = ['typed'];
     14 var createAddScalar = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
     15   var typed = _ref.typed;
     16 
     17   /**
     18    * Add two scalar values, `x + y`.
     19    * This function is meant for internal use: it is used by the public function
     20    * `add`
     21    *
     22    * This function does not support collections (Array or Matrix).
     23    *
     24    * @param  {number | BigNumber | Fraction | Complex | Unit} x   First value to add
     25    * @param  {number | BigNumber | Fraction | Complex} y          Second value to add
     26    * @return {number | BigNumber | Fraction | Complex | Unit}     Sum of `x` and `y`
     27    * @private
     28    */
     29   return typed(name, {
     30     'number, number': _index.addNumber,
     31     'Complex, Complex': function ComplexComplex(x, y) {
     32       return x.add(y);
     33     },
     34     'BigNumber, BigNumber': function BigNumberBigNumber(x, y) {
     35       return x.plus(y);
     36     },
     37     'Fraction, Fraction': function FractionFraction(x, y) {
     38       return x.add(y);
     39     },
     40     'Unit, Unit': function UnitUnit(x, y) {
     41       if (x.value === null || x.value === undefined) throw new Error('Parameter x contains a unit with undefined value');
     42       if (y.value === null || y.value === undefined) throw new Error('Parameter y contains a unit with undefined value');
     43       if (!x.equalBase(y)) throw new Error('Units do not match');
     44       var res = x.clone();
     45       res.value = this(res.value, y.value);
     46       res.fixPrefix = false;
     47       return res;
     48     }
     49   });
     50 });
     51 exports.createAddScalar = createAddScalar;