dynamic operator *(Interval i)

Performs an interval multiplication.

[a, b] * [c, d] = [min(ac, ad, bc, bd), max(ac, ad, bc, bd)]

Source

operator*(Interval i) {
  if (this.isEmpty() || i.isEmpty()) return new Interval.empty();
  num min = _min(this.min*i.min, this.min*i.max, this.max*i.min, this.max*i.max);
  num max = _max(this.min*i.min, this.min*i.max, this.max*i.min, this.max*i.max);
  return new Interval(min, max);
}