public Object createParameter(final Class<?> c){
  if (c == Integer.TYPE) {
    return Integer.valueOf(RANDOM.nextInt());
  }
 else   if (c == Double.TYPE) {
    return Double.valueOf(RANDOM.nextDouble());
  }
 else   if (c == double[].class) {
    final double[] v=new double[DIM];
    for (int i=0; i < DIM; i++) {
      v[i]=RANDOM.nextDouble();
    }
    return v;
  }
 else   if (c.isAssignableFrom(RealVector.class)) {
    return createVector();
  }
 else   if (c.isAssignableFrom(UnivariateFunction.class)) {
    return new Sin();
  }
 else {
    throw new IllegalArgumentException("could not create " + c);
  }
}

public Object createParameter ( final Class < ? > c ) { if ( c == Integer . TYPE ) { return Integer . valueOf ( RANDOM . nextInt ( ) ) ; } else if ( c == Double . TYPE ) { return Double . valueOf ( RANDOM . nextDouble ( ) ) ; } else if ( c == double [ ] . class ) { final double [ ] v = new double [ DIM ] ; for ( int i = 0 ; i < DIM ; i ++ ) { v [ i ] = RANDOM . nextDouble ( ) ; } return v ; } else if ( c . isAssignableFrom ( RealVector . class ) ) { return createVector ( ) ; } else if ( c . isAssignableFrom ( UnivariateFunction . class ) ) { return new Sin ( ) ; } else { throw new IllegalArgumentException ( "could not create " + c ) ; } }
creates a new random object of the specified type .
