public DoubleRange(String label, double minIn, boolean minInclusive, double maxIn, boolean maxInclusive) {super(label);if (Double.isNaN(minIn)) {throw new IllegalArgumentException("min cannot be NaN");}if (!minInclusive) {minIn = Math.nextUp(minIn);}if (Double.isNaN(maxIn)) {throw new IllegalArgumentException("max cannot be NaN");}if (!maxInclusive) {maxIn = Math.nextAfter(maxIn, Double.NEGATIVE_INFINITY);}if (minIn > maxIn) {failNoMatch();}this.min = minIn;this.max = maxIn;}

public DoubleRange(string label, double minIn, bool minInclusive, double maxIn, bool maxInclusive): base(label){this.Min = minIn;this.Max = maxIn;this.MinInclusive = minInclusive;this.MaxInclusive = maxInclusive;if (double.IsNaN(Min)){throw new System.ArgumentException("min cannot be NaN");}if (!minInclusive){minIn += EPSILON;}if (double.IsNaN(Max)){throw new System.ArgumentException("max cannot be NaN");}if (!maxInclusive){maxIn = maxIn -= EPSILON;}if (minIn > maxIn){FailNoMatch();}this.minIncl = minIn;this.maxIncl = maxIn;}
