\ell + \left(vhd - vld\right) \cdot \frac{td - vld}{vhd - vld}\left(\ell + td\right) - vld
double code(double l, double vhd, double vld, double td) {
return ((double) (l + ((double) (((double) (vhd - vld)) * ((double) (((double) (td - vld)) / ((double) (vhd - vld))))))));
}
double code(double l, double vhd, double vld, double td) {
return ((double) (((double) (l + td)) - vld));
}



Bits error versus l



Bits error versus vhd



Bits error versus vld



Bits error versus td
Results
Initial program 3.2
Simplified0.0
Final simplification0.0
herbie shell --seed 2020152
(FPCore (l vhd vld td)
:name "(+ l (* (- vhd vld) (/ (- td vld) (- vhd vld))))"
:precision binary64
(+ l (* (- vhd vld) (/ (- td vld) (- vhd vld)))))