1 package org.djunits.value.vfloat.scalar;
2
3 import java.util.regex.Matcher;
4
5 import org.djunits.unit.AccelerationUnit;
6 import org.djunits.unit.DimensionlessUnit;
7 import org.djunits.unit.ForceUnit;
8 import org.djunits.unit.FrequencyUnit;
9 import org.djunits.unit.SpeedUnit;
10 import org.djunits.unit.Unit;
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 public class FloatAcceleration extends AbstractFloatScalarRel<AccelerationUnit, FloatAcceleration>
37 {
38
39 private static final long serialVersionUID = 20150901L;
40
41
42 public static final FloatAcceleration ZERO = new FloatAcceleration(0.0f, AccelerationUnit.SI);
43
44
45 @SuppressWarnings("checkstyle:constantname")
46 public static final FloatAcceleration NaN = new FloatAcceleration(Float.NaN, AccelerationUnit.SI);
47
48
49 public static final FloatAcceleration POSITIVE_INFINITY =
50 new FloatAcceleration(Float.POSITIVE_INFINITY, AccelerationUnit.SI);
51
52
53 public static final FloatAcceleration NEGATIVE_INFINITY =
54 new FloatAcceleration(Float.NEGATIVE_INFINITY, AccelerationUnit.SI);
55
56
57 public static final FloatAcceleration POS_MAXVALUE = new FloatAcceleration(Float.MAX_VALUE, AccelerationUnit.SI);
58
59
60 public static final FloatAcceleration NEG_MAXVALUE = new FloatAcceleration(-Float.MAX_VALUE, AccelerationUnit.SI);
61
62
63
64
65
66
67 public FloatAcceleration(final float value, final AccelerationUnit unit)
68 {
69 super(value, unit);
70 }
71
72
73
74
75
76 public FloatAcceleration(final FloatAcceleration value)
77 {
78 super(value);
79 }
80
81
82
83
84
85
86 public FloatAcceleration(final double value, final AccelerationUnit unit)
87 {
88 super((float) value, unit);
89 }
90
91
92 @Override
93 public final FloatAcceleration instantiateRel(final float value, final AccelerationUnit unit)
94 {
95 return new FloatAcceleration(value, unit);
96 }
97
98
99
100
101
102
103 public static final FloatAcceleration createSI(final float value)
104 {
105 return new FloatAcceleration(value, AccelerationUnit.SI);
106 }
107
108
109
110
111
112
113
114
115 public static FloatAcceleration interpolate(final FloatAcceleration zero, final FloatAcceleration one, final float ratio)
116 {
117 return new FloatAcceleration(zero.getInUnit() * (1 - ratio) + one.getInUnit(zero.getUnit()) * ratio, zero.getUnit());
118 }
119
120
121
122
123
124
125
126 public static FloatAcceleration max(final FloatAcceleration r1, final FloatAcceleration r2)
127 {
128 return (r1.gt(r2)) ? r1 : r2;
129 }
130
131
132
133
134
135
136
137
138 public static FloatAcceleration max(final FloatAcceleration r1, final FloatAcceleration r2, final FloatAcceleration... rn)
139 {
140 FloatAcceleration maxr = (r1.gt(r2)) ? r1 : r2;
141 for (FloatAcceleration r : rn)
142 {
143 if (r.gt(maxr))
144 {
145 maxr = r;
146 }
147 }
148 return maxr;
149 }
150
151
152
153
154
155
156
157 public static FloatAcceleration min(final FloatAcceleration r1, final FloatAcceleration r2)
158 {
159 return (r1.lt(r2)) ? r1 : r2;
160 }
161
162
163
164
165
166
167
168
169 public static FloatAcceleration min(final FloatAcceleration r1, final FloatAcceleration r2, final FloatAcceleration... rn)
170 {
171 FloatAcceleration minr = (r1.lt(r2)) ? r1 : r2;
172 for (FloatAcceleration r : rn)
173 {
174 if (r.lt(minr))
175 {
176 minr = r;
177 }
178 }
179 return minr;
180 }
181
182
183
184
185
186
187
188
189
190 public static FloatAcceleration valueOf(final String text) throws IllegalArgumentException
191 {
192 if (text == null || text.length() == 0)
193 {
194 throw new IllegalArgumentException("Error parsing FloatAcceleration -- null or empty argument");
195 }
196 Matcher matcher = NUMBER_PATTERN.matcher(text);
197 if (matcher.find())
198 {
199 int index = matcher.end();
200 try
201 {
202 String unitString = text.substring(index).trim();
203 String valueString = text.substring(0, index).trim();
204 for (AccelerationUnit unit : Unit.getUnits(AccelerationUnit.class))
205 {
206 if (unit.getDefaultLocaleTextualRepresentations().contains(unitString))
207 {
208 float f = Float.parseFloat(valueString);
209 return new FloatAcceleration(f, unit);
210 }
211 }
212 }
213 catch (Exception exception)
214 {
215 throw new IllegalArgumentException("Error parsing FloatAcceleration from " + text, exception);
216 }
217 }
218 throw new IllegalArgumentException("Error parsing FloatAcceleration from " + text);
219 }
220
221
222
223
224
225
226 public final FloatDimensionless divideBy(final FloatAcceleration v)
227 {
228 return new FloatDimensionless(this.si / v.si, DimensionlessUnit.SI);
229 }
230
231
232
233
234
235
236 public final FloatForce multiplyBy(final FloatMass v)
237 {
238 return new FloatForce(this.si * v.si, ForceUnit.SI);
239 }
240
241
242
243
244
245
246 public final FloatSpeed multiplyBy(final FloatDuration v)
247 {
248 return new FloatSpeed(this.si * v.si, SpeedUnit.SI);
249 }
250
251
252
253
254
255
256 public final FloatSpeed divideBy(final FloatFrequency v)
257 {
258 return new FloatSpeed(this.si / v.si, SpeedUnit.SI);
259 }
260
261
262
263
264
265
266 public final FloatFrequency divideBy(final FloatSpeed v)
267 {
268 return new FloatFrequency(this.si / v.si, FrequencyUnit.SI);
269 }
270
271 }