X-Git-Url: https://mattmccutchen.net/measurements/measurements.git/blobdiff_plain/3f5430dbc58f8f3ffe9b509bdfe00a6b6d334a37..3a3b5f3c898112a691ed6bfe9e656ccf42207a2b:/src/net/mattmccutchen/measurements/MeasurementsAddIn.java diff --git a/src/net/mattmccutchen/measurements/MeasurementsAddIn.java b/src/net/mattmccutchen/measurements/MeasurementsAddIn.java index 5f56dec..0c02f46 100644 --- a/src/net/mattmccutchen/measurements/MeasurementsAddIn.java +++ b/src/net/mattmccutchen/measurements/MeasurementsAddIn.java @@ -42,9 +42,17 @@ public class MeasurementsAddIn extends AddInBase new FunctionInfo("mpowint", "mpowint", "Raises a measurement to an integer power.", Arrays.asList(new ArgumentInfo("base", "Base"), new ArgumentInfo("exp", "Exponent"))), + new FunctionInfo("mrootint", "mrootint", "Takes an integer square root of a measurement. Does not allow fractional powers of units in the result.", + Arrays.asList(new ArgumentInfo("base", "Base"), + new ArgumentInfo("exp", "Exponent"))), new FunctionInfo("mpow", "mpow", "Raises one measurement to the power of another. Both must be pure numbers.", Arrays.asList(new ArgumentInfo("base", "Base"), new ArgumentInfo("exp", "Exponent"))), + new FunctionInfo("mexp", "mexp", "Raises e (2.718...) to the power of a measurement.", + Arrays.asList(new ArgumentInfo("m", "Measurement"))), + new FunctionInfo("mln", "mln", "Takes the natural logarithm of a measurement. " + + "The measurement must be a pure number, so you may have to rewrite a difference of logarithms as a logarithm of a quotient.", + Arrays.asList(new ArgumentInfo("m", "Measurement"))), new FunctionInfo("mcmp", "mcmp", "Returns the difference between two measurements, expressed in units of the sum of their uncertainties. " + "You can compare measurements very flexibly by checking the result against a tolerance.", @@ -100,10 +108,23 @@ public class MeasurementsAddIn extends AddInBase return Measurement.format(MeasurementMath.powint( Measurement.parseCode(a), b), true); } + public String mrootint(String a, String bstr) { + int b = Integer.parseInt(bstr); + return Measurement.format(MeasurementMath.rootint( + Measurement.parseCode(a), b), true); + } public String mpow(String a, String b) { return Measurement.format(MeasurementMath.pow( Measurement.parseCode(a), Measurement.parseCode(b)), true); } + public String mexp(String m) { + return Measurement.format(MeasurementMath.exp( + Measurement.parseCode(m)), true); + } + public String mln(String m) { + return Measurement.format(MeasurementMath.ln( + Measurement.parseCode(m)), true); + } public double mcmp(String a, String b) { return MeasurementMath.cmp( Measurement.parseCode(a), Measurement.parseCode(b));