Average Error: 20.7 → 7.5
Time: 20.9s
Precision: 64
\[\frac{\left(\left(x \cdot 9\right) \cdot y - \left(\left(z \cdot 4\right) \cdot t\right) \cdot a\right) + b}{z \cdot c}\]
\[\begin{array}{l} \mathbf{if}\;\frac{\left(\left(x \cdot 9\right) \cdot y - \left(\left(z \cdot 4\right) \cdot t\right) \cdot a\right) + b}{z \cdot c} \le -1.020674458090830407540978412360813821868 \cdot 10^{302}:\\ \;\;\;\;\frac{\frac{b}{z} - \left(a \cdot 4\right) \cdot t}{c}\\ \mathbf{elif}\;\frac{\left(\left(x \cdot 9\right) \cdot y - \left(\left(z \cdot 4\right) \cdot t\right) \cdot a\right) + b}{z \cdot c} \le -2.102451017909847122514360410827302725451 \cdot 10^{-121}:\\ \;\;\;\;\frac{\left(\left(x \cdot 9\right) \cdot y - \left(\left(z \cdot 4\right) \cdot t\right) \cdot a\right) + b}{z \cdot c}\\ \mathbf{elif}\;\frac{\left(\left(x \cdot 9\right) \cdot y - \left(\left(z \cdot 4\right) \cdot t\right) \cdot a\right) + b}{z \cdot c} \le 2.49942252444617336175227318057610535812 \cdot 10^{-35}:\\ \;\;\;\;\frac{1}{c} \cdot \left(\frac{9 \cdot \left(x \cdot y\right) + b}{z} - \left(a \cdot 4\right) \cdot t\right)\\ \mathbf{elif}\;\frac{\left(\left(x \cdot 9\right) \cdot y - \left(\left(z \cdot 4\right) \cdot t\right) \cdot a\right) + b}{z \cdot c} \le 9.015864611909133506028130612168974390184 \cdot 10^{300}:\\ \;\;\;\;\frac{\left(\left(x \cdot 9\right) \cdot y - \left(\left(z \cdot 4\right) \cdot t\right) \cdot a\right) + b}{z \cdot c}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{b}{z} - \left(a \cdot 4\right) \cdot t}{c}\\ \end{array}\]
\frac{\left(\left(x \cdot 9\right) \cdot y - \left(\left(z \cdot 4\right) \cdot t\right) \cdot a\right) + b}{z \cdot c}
\begin{array}{l}
\mathbf{if}\;\frac{\left(\left(x \cdot 9\right) \cdot y - \left(\left(z \cdot 4\right) \cdot t\right) \cdot a\right) + b}{z \cdot c} \le -1.020674458090830407540978412360813821868 \cdot 10^{302}:\\
\;\;\;\;\frac{\frac{b}{z} - \left(a \cdot 4\right) \cdot t}{c}\\

\mathbf{elif}\;\frac{\left(\left(x \cdot 9\right) \cdot y - \left(\left(z \cdot 4\right) \cdot t\right) \cdot a\right) + b}{z \cdot c} \le -2.102451017909847122514360410827302725451 \cdot 10^{-121}:\\
\;\;\;\;\frac{\left(\left(x \cdot 9\right) \cdot y - \left(\left(z \cdot 4\right) \cdot t\right) \cdot a\right) + b}{z \cdot c}\\

\mathbf{elif}\;\frac{\left(\left(x \cdot 9\right) \cdot y - \left(\left(z \cdot 4\right) \cdot t\right) \cdot a\right) + b}{z \cdot c} \le 2.49942252444617336175227318057610535812 \cdot 10^{-35}:\\
\;\;\;\;\frac{1}{c} \cdot \left(\frac{9 \cdot \left(x \cdot y\right) + b}{z} - \left(a \cdot 4\right) \cdot t\right)\\

\mathbf{elif}\;\frac{\left(\left(x \cdot 9\right) \cdot y - \left(\left(z \cdot 4\right) \cdot t\right) \cdot a\right) + b}{z \cdot c} \le 9.015864611909133506028130612168974390184 \cdot 10^{300}:\\
\;\;\;\;\frac{\left(\left(x \cdot 9\right) \cdot y - \left(\left(z \cdot 4\right) \cdot t\right) \cdot a\right) + b}{z \cdot c}\\

\mathbf{else}:\\
\;\;\;\;\frac{\frac{b}{z} - \left(a \cdot 4\right) \cdot t}{c}\\

\end{array}
double f(double x, double y, double z, double t, double a, double b, double c) {
        double r596605 = x;
        double r596606 = 9.0;
        double r596607 = r596605 * r596606;
        double r596608 = y;
        double r596609 = r596607 * r596608;
        double r596610 = z;
        double r596611 = 4.0;
        double r596612 = r596610 * r596611;
        double r596613 = t;
        double r596614 = r596612 * r596613;
        double r596615 = a;
        double r596616 = r596614 * r596615;
        double r596617 = r596609 - r596616;
        double r596618 = b;
        double r596619 = r596617 + r596618;
        double r596620 = c;
        double r596621 = r596610 * r596620;
        double r596622 = r596619 / r596621;
        return r596622;
}

double f(double x, double y, double z, double t, double a, double b, double c) {
        double r596623 = x;
        double r596624 = 9.0;
        double r596625 = r596623 * r596624;
        double r596626 = y;
        double r596627 = r596625 * r596626;
        double r596628 = z;
        double r596629 = 4.0;
        double r596630 = r596628 * r596629;
        double r596631 = t;
        double r596632 = r596630 * r596631;
        double r596633 = a;
        double r596634 = r596632 * r596633;
        double r596635 = r596627 - r596634;
        double r596636 = b;
        double r596637 = r596635 + r596636;
        double r596638 = c;
        double r596639 = r596628 * r596638;
        double r596640 = r596637 / r596639;
        double r596641 = -1.0206744580908304e+302;
        bool r596642 = r596640 <= r596641;
        double r596643 = r596636 / r596628;
        double r596644 = r596633 * r596629;
        double r596645 = r596644 * r596631;
        double r596646 = r596643 - r596645;
        double r596647 = r596646 / r596638;
        double r596648 = -2.102451017909847e-121;
        bool r596649 = r596640 <= r596648;
        double r596650 = 2.4994225244461734e-35;
        bool r596651 = r596640 <= r596650;
        double r596652 = 1.0;
        double r596653 = r596652 / r596638;
        double r596654 = r596623 * r596626;
        double r596655 = r596624 * r596654;
        double r596656 = r596655 + r596636;
        double r596657 = r596656 / r596628;
        double r596658 = r596657 - r596645;
        double r596659 = r596653 * r596658;
        double r596660 = 9.015864611909134e+300;
        bool r596661 = r596640 <= r596660;
        double r596662 = r596661 ? r596640 : r596647;
        double r596663 = r596651 ? r596659 : r596662;
        double r596664 = r596649 ? r596640 : r596663;
        double r596665 = r596642 ? r596647 : r596664;
        return r596665;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Bits error versus t

Bits error versus a

Bits error versus b

Bits error versus c

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original20.7
Target14.6
Herbie7.5
\[\begin{array}{l} \mathbf{if}\;\frac{\left(\left(x \cdot 9\right) \cdot y - \left(\left(z \cdot 4\right) \cdot t\right) \cdot a\right) + b}{z \cdot c} \lt -1.100156740804104887233830094663413900721 \cdot 10^{-171}:\\ \;\;\;\;\frac{\left(\left(x \cdot 9\right) \cdot y - \left(z \cdot 4\right) \cdot \left(t \cdot a\right)\right) + b}{z \cdot c}\\ \mathbf{elif}\;\frac{\left(\left(x \cdot 9\right) \cdot y - \left(\left(z \cdot 4\right) \cdot t\right) \cdot a\right) + b}{z \cdot c} \lt -0.0:\\ \;\;\;\;\frac{\frac{\left(\left(x \cdot 9\right) \cdot y - \left(\left(z \cdot 4\right) \cdot t\right) \cdot a\right) + b}{z}}{c}\\ \mathbf{elif}\;\frac{\left(\left(x \cdot 9\right) \cdot y - \left(\left(z \cdot 4\right) \cdot t\right) \cdot a\right) + b}{z \cdot c} \lt 1.170887791174748819600820354912645756062 \cdot 10^{-53}:\\ \;\;\;\;\frac{\left(\left(x \cdot 9\right) \cdot y - \left(z \cdot 4\right) \cdot \left(t \cdot a\right)\right) + b}{z \cdot c}\\ \mathbf{elif}\;\frac{\left(\left(x \cdot 9\right) \cdot y - \left(\left(z \cdot 4\right) \cdot t\right) \cdot a\right) + b}{z \cdot c} \lt 2.876823679546137226963937101710277849382 \cdot 10^{130}:\\ \;\;\;\;\left(\left(9 \cdot \frac{y}{c}\right) \cdot \frac{x}{z} + \frac{b}{c \cdot z}\right) - 4 \cdot \frac{a \cdot t}{c}\\ \mathbf{elif}\;\frac{\left(\left(x \cdot 9\right) \cdot y - \left(\left(z \cdot 4\right) \cdot t\right) \cdot a\right) + b}{z \cdot c} \lt 1.383851504245631860711731716196098366993 \cdot 10^{158}:\\ \;\;\;\;\frac{\left(\left(x \cdot 9\right) \cdot y - \left(z \cdot 4\right) \cdot \left(t \cdot a\right)\right) + b}{z \cdot c}\\ \mathbf{else}:\\ \;\;\;\;\left(9 \cdot \left(\frac{y}{c \cdot z} \cdot x\right) + \frac{b}{c \cdot z}\right) - 4 \cdot \frac{a \cdot t}{c}\\ \end{array}\]

Derivation

  1. Split input into 3 regimes
  2. if (/ (+ (- (* (* x 9.0) y) (* (* (* z 4.0) t) a)) b) (* z c)) < -1.0206744580908304e+302 or 9.015864611909134e+300 < (/ (+ (- (* (* x 9.0) y) (* (* (* z 4.0) t) a)) b) (* z c))

    1. Initial program 62.1

      \[\frac{\left(\left(x \cdot 9\right) \cdot y - \left(\left(z \cdot 4\right) \cdot t\right) \cdot a\right) + b}{z \cdot c}\]
    2. Simplified25.6

      \[\leadsto \color{blue}{\frac{\frac{b + \left(x \cdot 9\right) \cdot y}{z} - \left(a \cdot 4\right) \cdot t}{c}}\]
    3. Using strategy rm
    4. Applied clear-num25.6

      \[\leadsto \frac{\color{blue}{\frac{1}{\frac{z}{b + \left(x \cdot 9\right) \cdot y}}} - \left(a \cdot 4\right) \cdot t}{c}\]
    5. Taylor expanded around 0 27.0

      \[\leadsto \frac{\color{blue}{\frac{b}{z}} - \left(a \cdot 4\right) \cdot t}{c}\]

    if -1.0206744580908304e+302 < (/ (+ (- (* (* x 9.0) y) (* (* (* z 4.0) t) a)) b) (* z c)) < -2.102451017909847e-121 or 2.4994225244461734e-35 < (/ (+ (- (* (* x 9.0) y) (* (* (* z 4.0) t) a)) b) (* z c)) < 9.015864611909134e+300

    1. Initial program 0.7

      \[\frac{\left(\left(x \cdot 9\right) \cdot y - \left(\left(z \cdot 4\right) \cdot t\right) \cdot a\right) + b}{z \cdot c}\]

    if -2.102451017909847e-121 < (/ (+ (- (* (* x 9.0) y) (* (* (* z 4.0) t) a)) b) (* z c)) < 2.4994225244461734e-35

    1. Initial program 20.6

      \[\frac{\left(\left(x \cdot 9\right) \cdot y - \left(\left(z \cdot 4\right) \cdot t\right) \cdot a\right) + b}{z \cdot c}\]
    2. Simplified0.9

      \[\leadsto \color{blue}{\frac{\frac{b + \left(x \cdot 9\right) \cdot y}{z} - \left(a \cdot 4\right) \cdot t}{c}}\]
    3. Using strategy rm
    4. Applied div-inv1.0

      \[\leadsto \color{blue}{\left(\frac{b + \left(x \cdot 9\right) \cdot y}{z} - \left(a \cdot 4\right) \cdot t\right) \cdot \frac{1}{c}}\]
    5. Using strategy rm
    6. Applied pow11.0

      \[\leadsto \left(\frac{b + \left(x \cdot 9\right) \cdot \color{blue}{{y}^{1}}}{z} - \left(a \cdot 4\right) \cdot t\right) \cdot \frac{1}{c}\]
    7. Applied pow11.0

      \[\leadsto \left(\frac{b + \left(x \cdot \color{blue}{{9}^{1}}\right) \cdot {y}^{1}}{z} - \left(a \cdot 4\right) \cdot t\right) \cdot \frac{1}{c}\]
    8. Applied pow11.0

      \[\leadsto \left(\frac{b + \left(\color{blue}{{x}^{1}} \cdot {9}^{1}\right) \cdot {y}^{1}}{z} - \left(a \cdot 4\right) \cdot t\right) \cdot \frac{1}{c}\]
    9. Applied pow-prod-down1.0

      \[\leadsto \left(\frac{b + \color{blue}{{\left(x \cdot 9\right)}^{1}} \cdot {y}^{1}}{z} - \left(a \cdot 4\right) \cdot t\right) \cdot \frac{1}{c}\]
    10. Applied pow-prod-down1.0

      \[\leadsto \left(\frac{b + \color{blue}{{\left(\left(x \cdot 9\right) \cdot y\right)}^{1}}}{z} - \left(a \cdot 4\right) \cdot t\right) \cdot \frac{1}{c}\]
    11. Simplified1.0

      \[\leadsto \left(\frac{b + {\color{blue}{\left(9 \cdot \left(x \cdot y\right)\right)}}^{1}}{z} - \left(a \cdot 4\right) \cdot t\right) \cdot \frac{1}{c}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification7.5

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{\left(\left(x \cdot 9\right) \cdot y - \left(\left(z \cdot 4\right) \cdot t\right) \cdot a\right) + b}{z \cdot c} \le -1.020674458090830407540978412360813821868 \cdot 10^{302}:\\ \;\;\;\;\frac{\frac{b}{z} - \left(a \cdot 4\right) \cdot t}{c}\\ \mathbf{elif}\;\frac{\left(\left(x \cdot 9\right) \cdot y - \left(\left(z \cdot 4\right) \cdot t\right) \cdot a\right) + b}{z \cdot c} \le -2.102451017909847122514360410827302725451 \cdot 10^{-121}:\\ \;\;\;\;\frac{\left(\left(x \cdot 9\right) \cdot y - \left(\left(z \cdot 4\right) \cdot t\right) \cdot a\right) + b}{z \cdot c}\\ \mathbf{elif}\;\frac{\left(\left(x \cdot 9\right) \cdot y - \left(\left(z \cdot 4\right) \cdot t\right) \cdot a\right) + b}{z \cdot c} \le 2.49942252444617336175227318057610535812 \cdot 10^{-35}:\\ \;\;\;\;\frac{1}{c} \cdot \left(\frac{9 \cdot \left(x \cdot y\right) + b}{z} - \left(a \cdot 4\right) \cdot t\right)\\ \mathbf{elif}\;\frac{\left(\left(x \cdot 9\right) \cdot y - \left(\left(z \cdot 4\right) \cdot t\right) \cdot a\right) + b}{z \cdot c} \le 9.015864611909133506028130612168974390184 \cdot 10^{300}:\\ \;\;\;\;\frac{\left(\left(x \cdot 9\right) \cdot y - \left(\left(z \cdot 4\right) \cdot t\right) \cdot a\right) + b}{z \cdot c}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{b}{z} - \left(a \cdot 4\right) \cdot t}{c}\\ \end{array}\]

Reproduce

herbie shell --seed 2019323 
(FPCore (x y z t a b c)
  :name "Diagrams.Solve.Polynomial:cubForm  from diagrams-solve-0.1, J"
  :precision binary64

  :herbie-target
  (if (< (/ (+ (- (* (* x 9) y) (* (* (* z 4) t) a)) b) (* z c)) -1.100156740804105e-171) (/ (+ (- (* (* x 9) y) (* (* z 4) (* t a))) b) (* z c)) (if (< (/ (+ (- (* (* x 9) y) (* (* (* z 4) t) a)) b) (* z c)) -0.0) (/ (/ (+ (- (* (* x 9) y) (* (* (* z 4) t) a)) b) z) c) (if (< (/ (+ (- (* (* x 9) y) (* (* (* z 4) t) a)) b) (* z c)) 1.1708877911747488e-53) (/ (+ (- (* (* x 9) y) (* (* z 4) (* t a))) b) (* z c)) (if (< (/ (+ (- (* (* x 9) y) (* (* (* z 4) t) a)) b) (* z c)) 2.876823679546137e+130) (- (+ (* (* 9 (/ y c)) (/ x z)) (/ b (* c z))) (* 4 (/ (* a t) c))) (if (< (/ (+ (- (* (* x 9) y) (* (* (* z 4) t) a)) b) (* z c)) 1.3838515042456319e+158) (/ (+ (- (* (* x 9) y) (* (* z 4) (* t a))) b) (* z c)) (- (+ (* 9 (* (/ y (* c z)) x)) (/ b (* c z))) (* 4 (/ (* a t) c))))))))

  (/ (+ (- (* (* x 9) y) (* (* (* z 4) t) a)) b) (* z c)))