class DoubleRangeLimitTransform implements ParameterLimitsTransform {

  @Override
  public double transform(final double x) {
    Validate.isTrue(x <= _upper && x >= _lower, "parameter out of range");
    if (x == _upper) {
      return TANH_MAX;
    } else if (x == _lower) {
      return -TANH_MAX;
    }
    return TrigonometricFunctionUtils.atanh((x - _mid) / _scale);
  }

  public  DoubleRangeLimitTransform(final double lower, final double upper);

}