internal void AddInterval(Interval interval) { if (this._dimension is IContinuousDimension) { IContinuousDimension ordDim = (IContinuousDimension)this._dimension; if (interval.LowerBound < ordDim.MinValue) throw new ArgumentOutOfRangeException("interval.LowerBound", "Interval out of scope of the universe."); if (interval.LowerBound < ordDim.MinValue) throw new ArgumentOutOfRangeException("interval.UpperBound", "Interval out of scope of the universe."); _checked = false; } else if (this._dimension is IDiscreteDimension) { if (interval.LowerBound != interval.UpperBound || (interval.LowerBound % 1) != 0) new ArgumentOutOfRangeException("interval.LowerBound, interval.UpperBound", "Identical intergers expected for nominal dimension."); _checked = false; } _intervals.Add(interval); }
internal override void Operate(Interval operand1, ref IntervalSet output) { Polynomial result = (operand1.Polynomial^2); output.AddInterval( new Interval(output, operand1.LowerBound, operand1.UpperBound, result) ); }
internal virtual void Operate(Interval operand1, ref IntervalSet output) { throw new NotImplementedException(); }