docs: public static DoubleRange getMinMax(double value1, double value2, double value3) {
  		// Efficient implementation of the min/max determination
  		final double min;
  		final double max;
  
  		// ---------------------------------
  		// Table of cases
  		// ---------------------------------
  		// a-b a-c b-c sequence min max case
  		//  <   <   <  a b c     a   c   1
  		//  <   <   >  a c b     a   b   2
  		//  <   >   <            -   -
  		//  <   >   >  c a b     c   b   3
  		//  >   <   <  b a c     b   c   4
  		//  >   <   >            -   -
  		//  >   >   <  b c a     b   a   5
  		//  >   >   >  c b a     c   a   6
  		// ---------------------------------
  
  		if (value1 <= value2) {
  			// A and B are not NaN
  			// case candidates: 123
  			if (value1 <= value3) {
  				// case candidates: 12
  				min = value1;
  				if (value2 <= value3) {
  					// case: 1
  					max = value3;
  				} else {
  					// case: 2
  					max = value2;
  				}
  			} else {
  				// 3
  				max = value2;
  				if (Double.isNaN(value3)) {
  					min = value1;
  				} else {
  					min = value3;
  				}
  			}
  		} else {
  			// case candidates: 456
  			if (value1 <= value3) {
  				max = value3;
  				if (Double.isNaN(value2)) {
  					min = value1;
  				} else {
  					// case: 4
  					min = value2;
  				}
  			} else if (Double.isNaN(value1)) {
  				if (value2 <= value3) {
  					min = value2;
  					max = value3;
  				} else if (Double.isNaN(value2)) {
  					if (Double.isNaN(value3)) {
  						return null;
  					}
  					min = value3;
  					max = min;
  				} else if (Double.isNaN(value3)) {
  					min = value2;
  					max = min;
  				} else {
  					min = value3;
  					max = value2;
  				}
  			} else if (Double.isNaN(value3)) {
  				if (Double.isNaN(value2)) {
  					min = value1;
  					max = min;
  				} else {
  					min = value2;
  					max = value1;
  				}
  			} else {
  				// B may NaN
  				// case candidates: 56
  				max = value1;
  				if (value2 <= value3) {
  					// case: 5
  					min = value2;
  				} else {
  					// case: 6
  					min = value3;
  				}
  			}
  		}
  		return new DoubleRange(min, max);
  	}