|
JScience v3.3 | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectjavolution.context.RealtimeObject
org.jscience.physics.measures.Measure<Q>
public final class Measure<Q extends Quantity>
This class represents a measurable amount; the nature of the amount
is deduced from the measure unit; the quality of
the measure is given by the measurement error.
Measures can be exact, in which case they can be
expressed as an exact long integer in the measure unit.
The framework tries to keep measures exact as much as possible.
For example:
Measure<Length> m = Measure.valueOf(33, FOOT).divide(11).times(2);
System.out.println(m);
System.out.println(m.isExact() ? "exact" : "inexact");
System.out.println(m.getExactValue());
> 6 ft
> exact
> 6
Errors (including numeric errors) are calculated using numeric intervals.
It is possible to resolve systems of linear equations involving
measures (ref. Matrix),
even if the system is close to singularity; in which case the error
associated with some (or all) components of the solution may be large.
By default, non-exact measure instances are shown using the plus/minus
character ('±') (see MeasureFormat). For example,
"(2.0 ± 0.001) km/s" represents a velocity of
2 km/s with an absolute error of ± 1 m/s. Exact measurements use an
integer notation (no decimal point, e.g. "2000 m").
Operations between different measures may or may not be authorized
based upon the current PhysicalModel. For example, adding Measure<Length> and
Measure<Duration> is not allowed by the
StandardModel,
but is authorized with the RelativisticModel.
| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from class javolution.context.RealtimeObject |
|---|
RealtimeObject.Factory<T extends RealtimeObject> |
| Nested classes/interfaces inherited from interface javolution.context.Realtime |
|---|
Realtime.ObjectSpace |
| Field Summary | |
|---|---|
static Measure<Dimensionless> |
ONE
Holds a dimensionless measure of one (exact). |
protected static XMLFormat<Measure> |
XML
Holds the default XML representation for measures. |
static Measure<Dimensionless> |
ZERO
Holds a dimensionless measure of zero (exact). |
| Method Summary | ||
|---|---|---|
Measure<Q> |
abs()
Returns the absolute value of this measure. |
|
boolean |
approximates(Measure that)
Indicates if this measure approximates that measure. |
|
int |
compareTo(Measure that)
Compares this measure with the one specified regardless of the units in which this measure and that measure are stated. |
|
Measure<Q> |
divide(double divisor)
Returns this measure divided by the specified approximate divisor (dimensionless). |
|
Measure<Q> |
divide(long divisor)
Returns this measure divided by the specified exact divisor (dimensionless). |
|
Measure<? extends Quantity> |
divide(Measure that)
Returns this measure divided by the one specified. |
|
double |
doubleValue(Unit<Q> unit)
Returns the estimated value of this quantity stated in the specified unit as a double. |
|
boolean |
equals(java.lang.Object that)
Compares this measure against the specified object for strict equality (same value interval and same units). |
|
double |
getAbsoluteError()
Returns the value by which the estimated
value may differ from the true value (all stated in base units). |
|
double |
getEstimatedValue()
Returns the estimated value for this measure stated in this measure unit. |
|
long |
getExactValue()
Returns the exact value for this measure stated in this measure unit. |
|
double |
getMaximumValue()
Returns the upper bound interval value for this measure stated in this measure unit. |
|
double |
getMinimumValue()
Returns the lower bound interval value for this measure stated in this measure unit. |
|
double |
getRelativeError()
Returns the percentage by which the estimated amount may differ from the true amount. |
|
Unit<Q> |
getUnit()
Returns the unit in which the estimated value and absolute error
are stated. |
|
int |
hashCode()
Returns the hash code for this measure. |
|
Measure<? extends Quantity> |
inverse()
Returns the multiplicative inverse of this measure. |
|
boolean |
isExact()
Indicates if this measure amount is exact. |
|
boolean |
isGreaterThan(Measure<Q> that)
Indicates if this measure is ordered after that measure (independently of the measure unit). |
|
boolean |
isLargerThan(Measure<Q> that)
Compares this measure with that measure ignoring the sign. |
|
boolean |
isLessThan(Measure<Q> that)
Indicates if this measure is ordered before that measure (independently of the measure unit). |
|
long |
longValue(Unit<Q> unit)
Returns the estimated value of this quantity stated in the specified unit as a long. |
|
Measure<Q> |
minus(Measure that)
Returns the difference of this measure with the one specified. |
|
Measure<Q> |
opposite()
Returns the opposite of this measure. |
|
Measure<Q> |
plus(Measure that)
Returns the sum of this measure with the one specified. |
|
Measure<? extends Quantity> |
pow(int exp)
Returns this measure raised at the specified exponent. |
|
static
|
rangeOf(double minimum,
double maximum,
Unit<Q> unit)
Returns the measure corresponding to the specified interval stated in the specified unit. |
|
Measure<? extends Quantity> |
root(int n)
Returns the given root of this measure. |
|
Measure<? extends Quantity> |
sqrt()
Returns the square root of this measure. |
|
Measure<Q> |
times(double factor)
Returns this measure scaled by the specified approximate factor (dimensionless). |
|
Measure<Q> |
times(long factor)
Returns this measure scaled by the specified exact factor (dimensionless). |
|
Measure<? extends Quantity> |
times(Measure that)
Returns the product of this measure with the one specified. |
|
|
to(Unit<R> unit)
Returns the measure equivalent to this measure but stated in the specified unit. |
|
Text |
toText()
Returns the text representation of this measure. |
|
static Measure<?> |
valueOf(java.lang.CharSequence csq)
Returns the measure represented by the specified character sequence. |
|
static
|
valueOf(double value,
double error,
Unit<Q> unit)
Returns the measure corresponding to the specified approximate value and measurement error, both stated in the specified unit. |
|
static
|
valueOf(double value,
Unit<Q> unit)
Returns the measure corresponding to an approximate value ( double) stated in the specified unit;
the precision of the measure is assumed to be the
double precision (64 bits IEEE 754 format). |
|
static
|
valueOf(long value,
Unit<Q> unit)
Returns the exact measure corresponding to the value stated in the specified unit. |
|
| Methods inherited from class javolution.context.RealtimeObject |
|---|
export, isLocal, move, moveHeap, preserve, toString, unpreserve |
| Methods inherited from class java.lang.Object |
|---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
| Methods inherited from interface javolution.context.Realtime |
|---|
move |
| Field Detail |
|---|
public static final Measure<Dimensionless> ZERO
public static final Measure<Dimensionless> ONE
protected static final XMLFormat<Measure> XML
value,
an unit and an optional error attribute
when the measure is not exact.
The unit attribute determinates the measurement type. For example:<Measure value="12" unit="µA"/>represents an electric current measurement.
| Method Detail |
|---|
public static <Q extends Quantity> Measure<Q> valueOf(long value,
Unit<Q> unit)
value - the exact value stated in the specified unit.unit - the unit in which the value is stated.
public static <Q extends Quantity> Measure<Q> valueOf(double value,
Unit<Q> unit)
double) stated in the specified unit;
the precision of the measure is assumed to be the
double precision (64 bits IEEE 754 format).
value - the estimated value (± LSB) stated in the specified unit.unit - the unit in which the value is stated.
public static <Q extends Quantity> Measure<Q> valueOf(double value,
double error,
Unit<Q> unit)
value - the estimated amount (± error) stated in the specified unit.error - the measurement error (absolute).unit - the unit in which the amount and the error are stated.
java.lang.IllegalArgumentException - if error < 0.0
public static <Q extends Quantity> Measure<Q> rangeOf(double minimum,
double maximum,
Unit<Q> unit)
minimum - the lower bound for the measure value.maximum - the upper bound for the measure value.unit - the unit for both the minimum and maximum values.
java.lang.IllegalArgumentException - if minimum > maximumpublic static Measure<?> valueOf(java.lang.CharSequence csq)
csq - the character sequence.
MeasureFormat.getInstance().parse(csq)public boolean isExact()
this.longValue()); stating the amount
in any other unit may introduce conversion errors.
true if this measure is exact;
false otherwise.public Unit<Q> getUnit()
estimated value and absolute error
are stated.
public long getExactValue()
throws MeasureException
unit.
long) stated
in this measure's unit
MeasureException - if this measure is not isExact()public double getEstimatedValue()
unit.
public double getMinimumValue()
public double getMaximumValue()
public double getAbsoluteError()
estimated
value may differ from the true value (all stated in base units).
public double getRelativeError()
public <R extends Quantity> Measure<R> to(Unit<R> unit)
unit - the unit of the measure to be returned.
ConversionException - if the current model does not allows for
conversion to the specified unit.public Measure<Q> opposite()
opposite in interface GroupAdditive<Measure<?>>-this.
public Measure<Q> plus(Measure that)
throws ConversionException
plus in interface GroupAdditive<Measure<?>>that - the measure to be added.
this + that.
ConversionException - if the current model does not allows for
these quantities to be added.
public Measure<Q> minus(Measure that)
throws ConversionException
that - the measure to be subtracted.
this - that.
ConversionException - if the current model does not allows for
these quantities to be subtracted.public Measure<Q> times(long factor)
factor - the scaling factor.
this · factor.public Measure<Q> times(double factor)
factor - the scaling factor.
this · factor.public Measure<? extends Quantity> times(Measure that)
times in interface GroupMultiplicative<Measure<?>>times in interface Ring<Measure<?>>that - the measure multiplier.
this · that.public Measure<? extends Quantity> inverse()
inverse in interface GroupMultiplicative<Measure<?>>1 / this.public Measure<Q> divide(long divisor)
divisor - the exact divisor.
this / divisor.
java.lang.ArithmeticException - if this measure is exact and the
specified divisor is zero.public Measure<Q> divide(double divisor)
divisor - the approximated divisor.
this / divisor.public Measure<? extends Quantity> divide(Measure that)
that - the measure divisor.
this / that.public Measure<Q> abs()
|this|.public Measure<? extends Quantity> sqrt()
sqrt(this)public Measure<? extends Quantity> root(int n)
n - the root's order (n != 0).
java.lang.ArithmeticException - if n == 0.public Measure<? extends Quantity> pow(int exp)
exp - the exponent.
thisexppublic int compareTo(Measure that)
compareTo in interface java.lang.Comparable<Measure>that - the measure to compare with.
ConversionException - if the current model does not allows for
these measure to be compared.public boolean equals(java.lang.Object that)
equals in class java.lang.Objectthat - the object to compare with.
true if this measure is identical to that
measure; false otherwise.public int hashCode()
hashCode in class java.lang.Objectpublic boolean approximates(Measure that)
this ≅ thatpublic boolean isLessThan(Measure<Q> that)
this.compareTo(that) < 0.public boolean isGreaterThan(Measure<Q> that)
this.compareTo(that) > 0.public boolean isLargerThan(Measure<Q> that)
|this| > |that|public Text toText()
toText in interface RealtimetoText in class RealtimeObjectMeasureFormat.getInstance().format(this)public double doubleValue(Unit<Q> unit)
Quantitydouble.
doubleValue in interface Quantity<Q extends Quantity>unit - the unit in which the measurement value is stated.
double.public final long longValue(Unit<Q> unit)
Quantitylong.
longValue in interface Quantity<Q extends Quantity>unit - the unit in which the measurement value is stated.
long.
|
JScience v3.3 | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||