\frac{xi1 \cdot \left(xi1 \cdot \left(\left(xi1 \cdot 0.273849999999999982\right) \cdot f - 0.73368999999999995 \cdot f\right) + 0.46340999999999999 \cdot f\right)}{xi1 \cdot \left(xi1 \cdot \left(\left(xi1 \cdot 0.093073000000000003\right) \cdot f + 0.309419999999999973 \cdot f\right) - 1 \cdot f\right) + 0.59799899999999995 \cdot f}\begin{array}{l}
\mathbf{if}\;\frac{xi1 \cdot \left(xi1 \cdot \left(\left(xi1 \cdot 0.273849999999999982\right) \cdot f - 0.73368999999999995 \cdot f\right) + 0.46340999999999999 \cdot f\right)}{xi1 \cdot \left(xi1 \cdot \left(\left(xi1 \cdot 0.093073000000000003\right) \cdot f + 0.309419999999999973 \cdot f\right) - 1 \cdot f\right) + 0.59799899999999995 \cdot f} \le -2.6425069055434791 \cdot 10^{-304} \lor \neg \left(\frac{xi1 \cdot \left(xi1 \cdot \left(\left(xi1 \cdot 0.273849999999999982\right) \cdot f - 0.73368999999999995 \cdot f\right) + 0.46340999999999999 \cdot f\right)}{xi1 \cdot \left(xi1 \cdot \left(\left(xi1 \cdot 0.093073000000000003\right) \cdot f + 0.309419999999999973 \cdot f\right) - 1 \cdot f\right) + 0.59799899999999995 \cdot f} \le 0.0\right):\\
\;\;\;\;\frac{xi1 \cdot \left(xi1 \cdot \left(\left(xi1 \cdot 0.273849999999999982\right) \cdot f - 0.73368999999999995 \cdot f\right) + 0.46340999999999999 \cdot f\right)}{xi1 \cdot \left(xi1 \cdot \left(\left(xi1 \cdot 0.093073000000000003\right) \cdot f + 0.309419999999999973 \cdot f\right) - 1 \cdot f\right) + 0.59799899999999995 \cdot f}\\
\mathbf{else}:\\
\;\;\;\;\frac{f}{\frac{f \cdot \left(0.59799899999999995 + \left(\left(xi1 \cdot 0.093073000000000003 + 0.309419999999999973\right) \cdot xi1 - 1\right) \cdot xi1\right)}{xi1 \cdot \left(0.46340999999999999 + \left(xi1 \cdot 0.273849999999999982 - 0.73368999999999995\right) \cdot xi1\right)}}\\
\end{array}double code(double xi1, double f) {
return ((double) (((double) (xi1 * ((double) (((double) (xi1 * ((double) (((double) (((double) (xi1 * 0.27385)) * f)) - ((double) (0.73369 * f)))))) + ((double) (0.46341 * f)))))) / ((double) (((double) (xi1 * ((double) (((double) (xi1 * ((double) (((double) (((double) (xi1 * 0.093073)) * f)) + ((double) (0.30942 * f)))))) - ((double) (1.0 * f)))))) + ((double) (0.597999 * f))))));
}
double code(double xi1, double f) {
double VAR;
if (((((double) (((double) (xi1 * ((double) (((double) (xi1 * ((double) (((double) (((double) (xi1 * 0.27385)) * f)) - ((double) (0.73369 * f)))))) + ((double) (0.46341 * f)))))) / ((double) (((double) (xi1 * ((double) (((double) (xi1 * ((double) (((double) (((double) (xi1 * 0.093073)) * f)) + ((double) (0.30942 * f)))))) - ((double) (1.0 * f)))))) + ((double) (0.597999 * f)))))) <= -2.642506905543479e-304) || !(((double) (((double) (xi1 * ((double) (((double) (xi1 * ((double) (((double) (((double) (xi1 * 0.27385)) * f)) - ((double) (0.73369 * f)))))) + ((double) (0.46341 * f)))))) / ((double) (((double) (xi1 * ((double) (((double) (xi1 * ((double) (((double) (((double) (xi1 * 0.093073)) * f)) + ((double) (0.30942 * f)))))) - ((double) (1.0 * f)))))) + ((double) (0.597999 * f)))))) <= 0.0))) {
VAR = ((double) (((double) (xi1 * ((double) (((double) (xi1 * ((double) (((double) (((double) (xi1 * 0.27385)) * f)) - ((double) (0.73369 * f)))))) + ((double) (0.46341 * f)))))) / ((double) (((double) (xi1 * ((double) (((double) (xi1 * ((double) (((double) (((double) (xi1 * 0.093073)) * f)) + ((double) (0.30942 * f)))))) - ((double) (1.0 * f)))))) + ((double) (0.597999 * f))))));
} else {
VAR = ((double) (f / ((double) (((double) (f * ((double) (0.597999 + ((double) (((double) (((double) (((double) (((double) (xi1 * 0.093073)) + 0.30942)) * xi1)) - 1.0)) * xi1)))))) / ((double) (xi1 * ((double) (0.46341 + ((double) (((double) (((double) (xi1 * 0.27385)) - 0.73369)) * xi1))))))))));
}
return VAR;
}



Bits error versus xi1



Bits error versus f
Results
if (/ (* xi1 (+ (* xi1 (- (* (* xi1 0.27385) f) (* 0.73369 f))) (* 0.46341 f))) (+ (* xi1 (- (* xi1 (+ (* (* xi1 0.093073) f) (* 0.30942 f))) (* 1.0 f))) (* 0.597999 f))) < -2.6425069055434791e-304 or 0.0 < (/ (* xi1 (+ (* xi1 (- (* (* xi1 0.27385) f) (* 0.73369 f))) (* 0.46341 f))) (+ (* xi1 (- (* xi1 (+ (* (* xi1 0.093073) f) (* 0.30942 f))) (* 1.0 f))) (* 0.597999 f))) Initial program 25.1
if -2.6425069055434791e-304 < (/ (* xi1 (+ (* xi1 (- (* (* xi1 0.27385) f) (* 0.73369 f))) (* 0.46341 f))) (+ (* xi1 (- (* xi1 (+ (* (* xi1 0.093073) f) (* 0.30942 f))) (* 1.0 f))) (* 0.597999 f))) < 0.0Initial program 58.8
Simplified1.3
Final simplification22.3
herbie shell --seed 2020152
(FPCore (xi1 f)
:name "(/ (* xi1 (+ (* xi1 (- (* (* xi1 0.27385) f) (* 0.73369 f))) (* 0.46341 f))) (+ (* xi1 (- (* xi1 (+ (* (* xi1 0.093073) f) (* 0.30942 f))) (* 1 f))) (* 0.597999 f)))"
:precision binary64
(/ (* xi1 (+ (* xi1 (- (* (* xi1 0.27385) f) (* 0.73369 f))) (* 0.46341 f))) (+ (* xi1 (- (* xi1 (+ (* (* xi1 0.093073) f) (* 0.30942 f))) (* 1.0 f))) (* 0.597999 f))))