Class Measurement
object --+
         |
        Measurement
Basic method for uncertainty propagation:
Say we have a few measurements: x1, x2, x3, ..., and they each has a uncertainty: d1, d2, d3, ..., respectively.
Now we have a function: f( x1, x2, x3, ... ), we want to get the value of this function with given measurements x1, x2, x3,
... and also the uncertainty of the result of f.
A way to do this is the following:
    1. We need to get the contribution to the uncertainty of f result due to each measurement: fd1, fd2, fd3, ...
       This can be given by the following equations:
           fd1 = df / dx1 * d1
           fd2 = df / dx2 * d2
           fd3 = df / dx3 * d3
           ...
       where `df / dx1' is a partial derivative of f with respect to x1.
    2. With fd1, fd2, fd3, ..., we can get the uncertainty of f using this equation:
           fd  = math.sqrt( fd1 * fd1 + fd2 * fd2 + fd3 * fd3 + ... )
    |  | 
        
          | __init__(self,
        value,
        uncertainty) x.__init__(...) initializes x; see help(type(x)) for signature
 |  |  | 
    |  |  | 
    |  |  | 
    |  |  | 
    |  |  | 
    |  |  | 
    |  |  | 
    |  |  | 
    |  |  | 
    |  |  | 
    |  |  | 
    |  |  | 
    |  |  | 
    |  |  | 
    |  |  | 
    |  |  | 
    |  |  | 
  
    | Inherited from object:__delattr__,__format__,__getattribute__,__hash__,__new__,__reduce__,__reduce_ex__,__setattr__,__sizeof__,__subclasshook__ | 
| 
  | __init__(self,
        value,
        uncertainty)
    (Constructor)
 |  |  x.__init__(...) initializes x; see help(type(x)) for signature 
    Overrides:
        object.__init__
     | 
 
| 
  | __repr__(self)
    (Representation operator)
 |  |  repr(x) 
    Overrides:
        object.__repr__
     | 
 
| 
  | __str__(self)
    (Informal representation operator)
 |  |  str(x) 
    Overrides:
        object.__str__
     |