3 import java.util.ArrayList;
5 import java.util.Random;
19 private class Parameter {
20 public String name, label;
24 public Parameter(String name,
double minval,
double maxval) {
25 this(name, minval, maxval, name);
28 public Parameter(String name,
double minval,
double maxval, String label) {
36 private List<Parameter> params;
37 private double[] values;
43 params =
new ArrayList<Parameter>();
44 values =
new double[0];
47 public void addParam(String name,
double minval,
double maxval) {
48 params.add(
new Parameter(name, minval, maxval));
49 double[] tmp = values.clone();
50 values =
new double[values.length + 1];
51 for (
int i = 0; i < tmp.length; i++) {
54 values[values.length - 1] = minval;
73 if (values.length != newvalues.length)
74 throw new IllegalArgumentException(
"Wrong parameter values length. Current: " + values.length +
", Wanted:"
76 for (
int i = 0; i < values.length; i++) {
77 values[i] = newvalues[i];
90 if (index < 0 || index > values.length - 1)
91 throw new IllegalArgumentException(
"Invalid parameter index: " + index +
". Max index is "
92 + (values.length - 1));
93 values[index] = value;
102 return params.get(i).max;
111 return params.get(i).min;
121 return params.get(i).label;
131 return params.get(i).name;
139 return params.size();
144 Random r =
new Random(System.currentTimeMillis());
145 for (
int i = 0; i < res.length; i++) {
146 res[i] = params.get(i).min + r.nextDouble() * (params.get(i).max - params.get(i).min);
Parameters()
Creates a new Parameters object.
void setCurrent(double[] newvalues)
Sets the current parameter to the values passed.
String getLabel(int i)
Returns the label for the i-th parameter.
String getName(int i)
Returns the name for the i-th parameter.
double[] getCurrent()
Gets the current parameter.
double getMinValue(int i)
double[] getRandomParam()
A class for model parameters.
void addParam(String name, double minval, double maxval)
double getMaxValue(int i)
void setCurrent(int index, double value)
Sets the value of the current parameter at position index.