up);
}
+ public static Measurement rootint(Measurement a, int b) {
+ if (a == null)
+ return null;
+ int[] up = new int[Unit.basicUnits.length];
+ for (int i = 0; i < Unit.basicUnits.length; i++) {
+ if (Math.abs(a.unitPowers[i]) % b != 0)
+ return null;
+ up[i] = a.unitPowers[i] / b;
+ }
+ return new Measurement(Math.pow(a.number, 1.0/b),
+ a.uncertainty / b * Math.pow(a.number, (1.0/b)-1),
+ up);
+ }
+
public static Measurement pow(Measurement a, Measurement b) {
if (a == null || !isPureNumber(a) || b == null || !isPureNumber(b))
return null;
Measurement.pureNumberUnitPowers);
}
+ public static Measurement exp(Measurement m) {
+ if (m == null || !isPureNumber(m))
+ return null;
+ return new Measurement(Math.exp(m.number),
+ m.uncertainty * Math.exp(m.number),
+ Measurement.pureNumberUnitPowers);
+ }
+
+ public static Measurement ln(Measurement m) {
+ if (m == null || !isPureNumber(m))
+ return null;
+ return new Measurement(Math.log(m.number),
+ m.uncertainty / m.number,
+ Measurement.pureNumberUnitPowers);
+ }
+
public static double cmp(Measurement a, Measurement b) {
if (a == null || b == null || !unitsSame(a, b))
return Double.NaN;