addScalar.js 1.9 KB

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