Numerical program optimisation by automatic improvement of the accuracy of computations. (2018)