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();
 }