Represents a value with an error, a unit and a time-stamp.
A {@code Measurement} object is used for maintaining the tuple of value,error, unit and time-stamp. The value and error are represented as doubles and the time is measured in milliseconds since midnight, January 1, 1970 UTC.
Mathematic methods are provided that correctly calculate taking the error into account. A runtime error will occur when two measurements are used in an incompatible way. E.g., when a speed (m/s) is added to a distance (m). The measurement class will correctly track changes in unit during multiplication and division, always coercing the result to the most simple form. See {@link Unit} for more information on the supported units.
Errors in the measurement class are absolute errors. Measurement errors should use the P95 rule. Actual values must fall in the range value +/- error 95% or more of the time.
A {@code Measurement} object is immutable in order to be easily shared.
Note: This class has a natural ordering that is inconsistent with equals. See {@link #compareTo(Object)}.
@Immutable
@author $Id: 5d6be0f87b34d62ad5671e13710ef52ea36abf0c $