A 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
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.

Returns a new Measurement object that is the product of this
object multiplied by the specified object.

Parameters:

m The Measurement object that will be multiplied with
this object.

Returns:

A new Measurement that is the product of this object
multiplied by the specified object. The error and unit of the new
object are computed. The time of the new object is set to the
time of this object.

Returns a new Measurement object that is the product of this
object multiplied by the specified value.

Parameters:

d The value that will be multiplied with this object.

u The Unit of the specified value.

Returns:

A new Measurement object that is the product of this
object multiplied by the specified value. The error and unit of
the new object are computed. The time of the new object is set to
the time of this object.

Returns a new Measurement object that is the product of this
object multiplied by the specified value.

Parameters:

d The value that will be multiplied with this object.

Returns:

A new Measurement object that is the product of this
object multiplied by the specified value. The error of the new
object is computed. The unit and time of the new object is set to
the unit and time of this object.

Returns a new Measurement object that is the quotient of this
object divided by the specified object.

Parameters:

m The Measurement object that will be the divisor of
this object.

Returns:

A new Measurement object that is the quotient of this
object divided by the specified object. The error and unit of the
new object are computed. The time of the new object is set to the
time of this object.

Returns a new Measurement object that is the quotient of this
object divided by the specified value.

Parameters:

d The value that will be the divisor of this object.

Returns:

A new Measurement object that is the quotient of this
object divided by the specified value. The error of the new
object is computed. The unit and time of the new object is set to
the Unit and time of this object.

Returns a new Measurement object that is the sum of this
object added to the specified object.
The error and unit of the new object are computed. The time of the new
object is set to the time of this object.

Returns a new Measurement object that is the sum of this
object added to the specified value.

Parameters:

d The value that will be added with this object.

u The Unit object of the specified value.

Returns:

A new Measurement object that is the sum of this
object added to the specified value. The unit of the new object
is computed. The error and time of the new object is set to the
error and time of this object.

Returns a new Measurement object that is the subtraction of
the specified object from this object.

Parameters:

m The Measurement object that will be subtracted from
this object.

Returns:

A new Measurement object that is the subtraction of
the specified object from this object. The error and unit of the
new object are computed. The time of the new object is set to the
time of this object.

Returns a new Measurement object that is the subtraction of
the specified value from this object.

Parameters:

d The value that will be subtracted from this object.

u The Unit object of the specified value.

Returns:

A new Measurement object that is the subtraction of
the specified value from this object. The unit of the new object
is computed. The error and time of the new object is set to the
error and time of this object.