JaRMoS  1.1
Java Reduced Model Simulations
 All Classes Namespaces Files Functions Variables Enumerator Groups Pages
Parameters.java
Go to the documentation of this file.
1 package jarmos;
2 
3 import java.util.ArrayList;
4 import java.util.List;
5 import java.util.Random;
6 
17 public class Parameters {
18 
19  private class Parameter {
20  public String name, label;
21  double min;
22  double max;
23 
24  public Parameter(String name, double minval, double maxval) {
25  this(name, minval, maxval, name);
26  }
27 
28  public Parameter(String name, double minval, double maxval, String label) {
29  this.name = name;
30  this.label = label;
31  this.max = maxval;
32  this.min = minval;
33  }
34  }
35 
36  private List<Parameter> params;
37  private double[] values;
38 
42  public Parameters() {
43  params = new ArrayList<Parameter>();
44  values = new double[0];
45  }
46 
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++) {
52  values[i] = tmp[i];
53  }
54  values[values.length - 1] = minval;
55  }
56 
62  public double[] getCurrent() {
63  return values;
64  }
65 
72  public void setCurrent(double[] newvalues) {
73  if (values.length != newvalues.length)
74  throw new IllegalArgumentException("Wrong parameter values length. Current: " + values.length + ", Wanted:"
75  + newvalues.length);
76  for (int i = 0; i < values.length; i++) {
77  values[i] = newvalues[i];
78  }
79  }
80 
89  public void setCurrent(int index, double value) {
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;
94  }
95 
101  public double getMaxValue(int i) {
102  return params.get(i).max;
103  }
104 
110  public double getMinValue(int i) {
111  return params.get(i).min;
112  }
113 
120  public String getLabel(int i) {
121  return params.get(i).label;
122  }
123 
130  public String getName(int i) {
131  return params.get(i).name;
132  }
133 
134  // public List<Parameter> getParams() {
135  // return Collections.unmodifiableList(params);
136  // }
137 
138  public int getNumParams() {
139  return params.size();
140  }
141 
142  public double[] getRandomParam() {
143  double[] res = new double[getNumParams()];
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);
147  }
148  return res;
149  }
150 
151 }
Parameters()
Creates a new Parameters object.
Definition: Parameters.java:42
void setCurrent(double[] newvalues)
Sets the current parameter to the values passed.
Definition: Parameters.java:72
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.
Definition: Parameters.java:62
double getMinValue(int i)
double[] getRandomParam()
A class for model parameters.
Definition: Parameters.java:17
void addParam(String name, double minval, double maxval)
Definition: Parameters.java:47
double getMaxValue(int i)
void setCurrent(int index, double value)
Sets the value of the current parameter at position index.
Definition: Parameters.java:89