Average Error: 29.0 → 22.3
Time: 1.7s
Precision: binary64
\[\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}\]
\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;
}

Error

Bits error versus xi1

Bits error versus f

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 2 regimes
  2. 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)))

    1. Initial program 25.1

      \[\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}\]

    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.0

    1. Initial program 58.8

      \[\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}\]
    2. Simplified1.3

      \[\leadsto \color{blue}{\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)}}}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification22.3

    \[\leadsto \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}\]

Reproduce

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))))