operator + method

FloatingPointValue operator +(
  1. FloatingPointValue addend
)

Addition operation for FloatingPointValue.

Implementation

FloatingPointValue operator +(FloatingPointValue addend) {
  if (isNaN | addend.isNaN) {
    return clonePopulator().nan;
  }
  if (isAnInfinity) {
    if (addend.isAnInfinity) {
      if (sign != addend.sign) {
        return clonePopulator().nan;
      } else {
        return sign.toBool()
            ? clonePopulator().negativeInfinity
            : clonePopulator().positiveInfinity;
      }
    } else {
      return this;
    }
  } else if (addend.isAnInfinity) {
    return addend;
  }
  return _performOp(addend, (a, b) => a + b);
}