# cfdm.rtol¶

cfdm.rtol(*arg)[source]

The numerical equality tolerance on relative differences.

Two real numbers x and y are considered equal if |x-y|<=atol+rtol|y|, where atol (the tolerance on absolute differences) and rtol (the tolerance on relative differences) are positive, typically very small numbers. The values of atol and rtol are initialised to the system epsilon (the difference between 1 and the least value greater than 1 that is representable as a float).

New in version (cfdm): 1.7.0

See also

Parameters
arg: float or Constant, optional

The new value of relative tolerance. The default is to not change the current value.

Returns
Constant

The value prior to the change, or the current value if no new value was specified.

Examples:

>>> cfdm.rtol()
<Constant: 2.220446049250313e-16>
>>> print(cfdm.rtol())
2.220446049250313e-16
>>> str(cfdm.rtol())
'2.220446049250313e-16'
>>> cfdm.rtol().value
2.220446049250313e-16
>>> float(cfdm.rtol())
2.220446049250313e-16

>>> old = cfdm.rtol(1e-10)
>>> cfdm.rtol()
<Constant: 2.220446049250313e-16>
>>> cfdm.rtol(old)
<Constant: 1e-10>
>>> cfdm.rtol()
<Constant: 2.220446049250313e-16>


Use as a context manager:

>>> print(cfdm.rtol())
2.220446049250313e-16
>>> with cfdm.rtol(1e-5):
...     print(cfdm.rtol(), cfdm.rtol(2e-30), cfdm.rtol())
...
1e-05 1e-05 2e-30
>>> print(cfdm.rtol())
2.220446049250313e-16