operator * method

FloatingPointValue operator *(
  1. FloatingPointValue multiplicand
)

Multiply operation for FloatingPointValue.

Implementation

FloatingPointValue operator *(FloatingPointValue multiplicand) {
  if (isAnInfinity) {
    if (multiplicand.isAnInfinity) {
      return sign != multiplicand.sign
          ? clonePopulator().negativeInfinity
          : clonePopulator().positiveInfinity;
    } else if (multiplicand.isAZero) {
      return clonePopulator().nan;
    } else {
      return this;
    }
  } else if (multiplicand.isAnInfinity) {
    if (isAZero) {
      return clonePopulator().nan;
    } else {
      return multiplicand;
    }
  }
  return _performOp(multiplicand, (a, b) => a * b);
}