Average Error: 20.6 → 9.8
Time: 15.1s
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}\;x \cdot 9 \le -2770390875078608302374912:\\ \;\;\;\;\left(\frac{b}{z \cdot c} + 9 \cdot \frac{x}{z \cdot \frac{c}{y}}\right) - 4 \cdot \frac{t}{\frac{c}{a}}\\ \mathbf{elif}\;x \cdot 9 \le -1.395004280946511540266772927109421124103 \cdot 10^{-292}:\\ \;\;\;\;\left(\frac{b}{z \cdot c} + 9 \cdot \left(\frac{x}{z \cdot c} \cdot y\right)\right) - 4 \cdot \frac{t \cdot a}{c}\\ \mathbf{elif}\;x \cdot 9 \le 5.007095999410149210736386233085394663534 \cdot 10^{-282}:\\ \;\;\;\;\left(\frac{1}{z} \cdot \frac{b}{c} + 9 \cdot \frac{x \cdot y}{z \cdot c}\right) - 4 \cdot \frac{t \cdot a}{c}\\ \mathbf{elif}\;x \cdot 9 \le 2.806057452029834224941160043771741303484 \cdot 10^{125}:\\ \;\;\;\;\frac{\frac{1}{\frac{z}{\left(x \cdot 9\right) \cdot y + b}} - \left(a \cdot 4\right) \cdot t}{c}\\ \mathbf{else}:\\ \;\;\;\;\left(\frac{b}{z \cdot c} + 9 \cdot \frac{x}{z \cdot \frac{c}{y}}\right) - 4 \cdot \frac{t}{\frac{c}{a}}\\ \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}\;x \cdot 9 \le -2770390875078608302374912:\\
\;\;\;\;\left(\frac{b}{z \cdot c} + 9 \cdot \frac{x}{z \cdot \frac{c}{y}}\right) - 4 \cdot \frac{t}{\frac{c}{a}}\\

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

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

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

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

\end{array}
double f(double x, double y, double z, double t, double a, double b, double c) {
        double r529752 = x;
        double r529753 = 9.0;
        double r529754 = r529752 * r529753;
        double r529755 = y;
        double r529756 = r529754 * r529755;
        double r529757 = z;
        double r529758 = 4.0;
        double r529759 = r529757 * r529758;
        double r529760 = t;
        double r529761 = r529759 * r529760;
        double r529762 = a;
        double r529763 = r529761 * r529762;
        double r529764 = r529756 - r529763;
        double r529765 = b;
        double r529766 = r529764 + r529765;
        double r529767 = c;
        double r529768 = r529757 * r529767;
        double r529769 = r529766 / r529768;
        return r529769;
}

double f(double x, double y, double z, double t, double a, double b, double c) {
        double r529770 = x;
        double r529771 = 9.0;
        double r529772 = r529770 * r529771;
        double r529773 = -2.7703908750786083e+24;
        bool r529774 = r529772 <= r529773;
        double r529775 = b;
        double r529776 = z;
        double r529777 = c;
        double r529778 = r529776 * r529777;
        double r529779 = r529775 / r529778;
        double r529780 = y;
        double r529781 = r529777 / r529780;
        double r529782 = r529776 * r529781;
        double r529783 = r529770 / r529782;
        double r529784 = r529771 * r529783;
        double r529785 = r529779 + r529784;
        double r529786 = 4.0;
        double r529787 = t;
        double r529788 = a;
        double r529789 = r529777 / r529788;
        double r529790 = r529787 / r529789;
        double r529791 = r529786 * r529790;
        double r529792 = r529785 - r529791;
        double r529793 = -1.3950042809465115e-292;
        bool r529794 = r529772 <= r529793;
        double r529795 = r529770 / r529778;
        double r529796 = r529795 * r529780;
        double r529797 = r529771 * r529796;
        double r529798 = r529779 + r529797;
        double r529799 = r529787 * r529788;
        double r529800 = r529799 / r529777;
        double r529801 = r529786 * r529800;
        double r529802 = r529798 - r529801;
        double r529803 = 5.007095999410149e-282;
        bool r529804 = r529772 <= r529803;
        double r529805 = 1.0;
        double r529806 = r529805 / r529776;
        double r529807 = r529775 / r529777;
        double r529808 = r529806 * r529807;
        double r529809 = r529770 * r529780;
        double r529810 = r529809 / r529778;
        double r529811 = r529771 * r529810;
        double r529812 = r529808 + r529811;
        double r529813 = r529812 - r529801;
        double r529814 = 2.8060574520298342e+125;
        bool r529815 = r529772 <= r529814;
        double r529816 = r529772 * r529780;
        double r529817 = r529816 + r529775;
        double r529818 = r529776 / r529817;
        double r529819 = r529805 / r529818;
        double r529820 = r529788 * r529786;
        double r529821 = r529820 * r529787;
        double r529822 = r529819 - r529821;
        double r529823 = r529822 / r529777;
        double r529824 = r529815 ? r529823 : r529792;
        double r529825 = r529804 ? r529813 : r529824;
        double r529826 = r529794 ? r529802 : r529825;
        double r529827 = r529774 ? r529792 : r529826;
        return r529827;
}

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.6
Target14.6
Herbie9.8
\[\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 4 regimes
  2. if (* x 9.0) < -2.7703908750786083e+24 or 2.8060574520298342e+125 < (* x 9.0)

    1. Initial program 26.8

      \[\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. Simplified21.0

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

      \[\leadsto \color{blue}{\left(\frac{b}{z \cdot c} + 9 \cdot \frac{x \cdot y}{z \cdot c}\right) - 4 \cdot \frac{t \cdot a}{c}}\]
    4. Using strategy rm
    5. Applied associate-/l*13.8

      \[\leadsto \left(\frac{b}{z \cdot c} + 9 \cdot \color{blue}{\frac{x}{\frac{z \cdot c}{y}}}\right) - 4 \cdot \frac{t \cdot a}{c}\]
    6. Using strategy rm
    7. Applied associate-/l*11.6

      \[\leadsto \left(\frac{b}{z \cdot c} + 9 \cdot \frac{x}{\frac{z \cdot c}{y}}\right) - 4 \cdot \color{blue}{\frac{t}{\frac{c}{a}}}\]
    8. Using strategy rm
    9. Applied *-un-lft-identity11.6

      \[\leadsto \left(\frac{b}{z \cdot c} + 9 \cdot \frac{x}{\frac{z \cdot c}{\color{blue}{1 \cdot y}}}\right) - 4 \cdot \frac{t}{\frac{c}{a}}\]
    10. Applied times-frac10.2

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

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

    if -2.7703908750786083e+24 < (* x 9.0) < -1.3950042809465115e-292

    1. Initial program 16.5

      \[\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. Simplified8.6

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

      \[\leadsto \color{blue}{\left(\frac{b}{z \cdot c} + 9 \cdot \frac{x \cdot y}{z \cdot c}\right) - 4 \cdot \frac{t \cdot a}{c}}\]
    4. Using strategy rm
    5. Applied associate-/l*10.7

      \[\leadsto \left(\frac{b}{z \cdot c} + 9 \cdot \color{blue}{\frac{x}{\frac{z \cdot c}{y}}}\right) - 4 \cdot \frac{t \cdot a}{c}\]
    6. Using strategy rm
    7. Applied associate-/r/8.5

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

    if -1.3950042809465115e-292 < (* x 9.0) < 5.007095999410149e-282

    1. Initial program 17.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. Simplified8.7

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

      \[\leadsto \color{blue}{\left(\frac{b}{z \cdot c} + 9 \cdot \frac{x \cdot y}{z \cdot c}\right) - 4 \cdot \frac{t \cdot a}{c}}\]
    4. Using strategy rm
    5. Applied *-un-lft-identity8.8

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

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

    if 5.007095999410149e-282 < (* x 9.0) < 2.8060574520298342e+125

    1. Initial program 18.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. Simplified10.5

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \cdot 9 \le -2770390875078608302374912:\\ \;\;\;\;\left(\frac{b}{z \cdot c} + 9 \cdot \frac{x}{z \cdot \frac{c}{y}}\right) - 4 \cdot \frac{t}{\frac{c}{a}}\\ \mathbf{elif}\;x \cdot 9 \le -1.395004280946511540266772927109421124103 \cdot 10^{-292}:\\ \;\;\;\;\left(\frac{b}{z \cdot c} + 9 \cdot \left(\frac{x}{z \cdot c} \cdot y\right)\right) - 4 \cdot \frac{t \cdot a}{c}\\ \mathbf{elif}\;x \cdot 9 \le 5.007095999410149210736386233085394663534 \cdot 10^{-282}:\\ \;\;\;\;\left(\frac{1}{z} \cdot \frac{b}{c} + 9 \cdot \frac{x \cdot y}{z \cdot c}\right) - 4 \cdot \frac{t \cdot a}{c}\\ \mathbf{elif}\;x \cdot 9 \le 2.806057452029834224941160043771741303484 \cdot 10^{125}:\\ \;\;\;\;\frac{\frac{1}{\frac{z}{\left(x \cdot 9\right) \cdot y + b}} - \left(a \cdot 4\right) \cdot t}{c}\\ \mathbf{else}:\\ \;\;\;\;\left(\frac{b}{z \cdot c} + 9 \cdot \frac{x}{z \cdot \frac{c}{y}}\right) - 4 \cdot \frac{t}{\frac{c}{a}}\\ \end{array}\]

Reproduce

herbie shell --seed 2019305 
(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.1001567408041049e-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.17088779117474882e-53) (/ (+ (- (* (* x 9) y) (* (* z 4) (* t a))) b) (* z c)) (if (< (/ (+ (- (* (* x 9) y) (* (* (* z 4) t) a)) b) (* z c)) 2.8768236795461372e130) (- (+ (* (* 9 (/ y c)) (/ x z)) (/ b (* c z))) (* 4 (/ (* a t) c))) (if (< (/ (+ (- (* (* x 9) y) (* (* (* z 4) t) a)) b) (* z c)) 1.3838515042456319e158) (/ (+ (- (* (* 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)))