public final double doOperation(){
  final int index=MathUtils.nextInt(parameter.getDimension());
  final Bounds<Double> bounds=parameter.getBounds();
  final double lower=(lowerBound == null ? bounds.getLowerLimit(index) : Math.max(bounds.getLowerLimit(index),lowerBound));
  final double upper=(upperBound == null ? bounds.getUpperLimit(index) : Math.min(bounds.getUpperLimit(index),upperBound));
  final double newValue=(MathUtils.nextDouble() * (upper - lower)) + lower;
  parameter.setParameterValue(index,newValue);
  return 0.0;
}

public final double doOperation ( ) { final int index = MathUtils . nextInt ( parameter . getDimension ( ) ) ; final Bounds < Double > bounds = parameter . getBounds ( ) ; final double lower = ( lowerBound == null ? bounds . getLowerLimit ( index ) : Math . max ( bounds . getLowerLimit ( index ) , lowerBound ) ) ; final double upper = ( upperBound == null ? bounds . getUpperLimit ( index ) : Math . min ( bounds . getUpperLimit ( index ) , upperBound ) ) ; final double newValue = ( MathUtils . nextDouble ( ) * ( upper - lower ) ) + lower ; parameter . setParameterValue ( index , newValue ) ; return 0.0 ; }
change the parameter and return the hastings ratio .
