Average Error: 20.7 → 8.8
Time: 30.4s
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}\;\left(x \cdot 9\right) \cdot y \le -2.2645492497816709 \cdot 10^{260}:\\ \;\;\;\;\mathsf{fma}\left(9, \frac{x}{z} \cdot \frac{y}{c}, \frac{b}{z \cdot c}\right) - \left(a \cdot \left(4 \cdot t\right)\right) \cdot \frac{1}{c}\\ \mathbf{elif}\;\left(x \cdot 9\right) \cdot y \le -39.298758853834741:\\ \;\;\;\;\mathsf{fma}\left(9, \frac{x \cdot y}{z \cdot c}, \frac{b}{z \cdot c}\right) - \left(a \cdot 4\right) \cdot \frac{t}{c}\\ \mathbf{elif}\;\left(x \cdot 9\right) \cdot y \le -8.52843664053116731 \cdot 10^{-250}:\\ \;\;\;\;\left(\frac{\mathsf{fma}\left(y, x \cdot 9, b\right)}{z} - \left(a \cdot 4\right) \cdot t\right) \cdot \frac{1}{c}\\ \mathbf{elif}\;\left(x \cdot 9\right) \cdot y \le -6.13380346891799 \cdot 10^{-310}:\\ \;\;\;\;\mathsf{fma}\left(9, \frac{x \cdot y}{z \cdot c}, \frac{b}{z \cdot c}\right) - \left(a \cdot 4\right) \cdot \frac{t}{c}\\ \mathbf{elif}\;\left(x \cdot 9\right) \cdot y \le 1.85002968924327207 \cdot 10^{179}:\\ \;\;\;\;\mathsf{fma}\left(9, \left(x \cdot y\right) \cdot \frac{1}{z \cdot c}, \frac{b}{z \cdot c}\right) - \frac{\left(a \cdot 4\right) \cdot t}{c}\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(9, \frac{x}{z} \cdot \frac{y}{c}, \frac{b}{z \cdot c}\right) - \frac{a}{\frac{c}{4 \cdot t}}\\ \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}\;\left(x \cdot 9\right) \cdot y \le -2.2645492497816709 \cdot 10^{260}:\\
\;\;\;\;\mathsf{fma}\left(9, \frac{x}{z} \cdot \frac{y}{c}, \frac{b}{z \cdot c}\right) - \left(a \cdot \left(4 \cdot t\right)\right) \cdot \frac{1}{c}\\

\mathbf{elif}\;\left(x \cdot 9\right) \cdot y \le -39.298758853834741:\\
\;\;\;\;\mathsf{fma}\left(9, \frac{x \cdot y}{z \cdot c}, \frac{b}{z \cdot c}\right) - \left(a \cdot 4\right) \cdot \frac{t}{c}\\

\mathbf{elif}\;\left(x \cdot 9\right) \cdot y \le -8.52843664053116731 \cdot 10^{-250}:\\
\;\;\;\;\left(\frac{\mathsf{fma}\left(y, x \cdot 9, b\right)}{z} - \left(a \cdot 4\right) \cdot t\right) \cdot \frac{1}{c}\\

\mathbf{elif}\;\left(x \cdot 9\right) \cdot y \le -6.13380346891799 \cdot 10^{-310}:\\
\;\;\;\;\mathsf{fma}\left(9, \frac{x \cdot y}{z \cdot c}, \frac{b}{z \cdot c}\right) - \left(a \cdot 4\right) \cdot \frac{t}{c}\\

\mathbf{elif}\;\left(x \cdot 9\right) \cdot y \le 1.85002968924327207 \cdot 10^{179}:\\
\;\;\;\;\mathsf{fma}\left(9, \left(x \cdot y\right) \cdot \frac{1}{z \cdot c}, \frac{b}{z \cdot c}\right) - \frac{\left(a \cdot 4\right) \cdot t}{c}\\

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

\end{array}
double f(double x, double y, double z, double t, double a, double b, double c) {
        double r532790 = x;
        double r532791 = 9.0;
        double r532792 = r532790 * r532791;
        double r532793 = y;
        double r532794 = r532792 * r532793;
        double r532795 = z;
        double r532796 = 4.0;
        double r532797 = r532795 * r532796;
        double r532798 = t;
        double r532799 = r532797 * r532798;
        double r532800 = a;
        double r532801 = r532799 * r532800;
        double r532802 = r532794 - r532801;
        double r532803 = b;
        double r532804 = r532802 + r532803;
        double r532805 = c;
        double r532806 = r532795 * r532805;
        double r532807 = r532804 / r532806;
        return r532807;
}

double f(double x, double y, double z, double t, double a, double b, double c) {
        double r532808 = x;
        double r532809 = 9.0;
        double r532810 = r532808 * r532809;
        double r532811 = y;
        double r532812 = r532810 * r532811;
        double r532813 = -2.264549249781671e+260;
        bool r532814 = r532812 <= r532813;
        double r532815 = z;
        double r532816 = r532808 / r532815;
        double r532817 = c;
        double r532818 = r532811 / r532817;
        double r532819 = r532816 * r532818;
        double r532820 = b;
        double r532821 = r532815 * r532817;
        double r532822 = r532820 / r532821;
        double r532823 = fma(r532809, r532819, r532822);
        double r532824 = a;
        double r532825 = 4.0;
        double r532826 = t;
        double r532827 = r532825 * r532826;
        double r532828 = r532824 * r532827;
        double r532829 = 1.0;
        double r532830 = r532829 / r532817;
        double r532831 = r532828 * r532830;
        double r532832 = r532823 - r532831;
        double r532833 = -39.29875885383474;
        bool r532834 = r532812 <= r532833;
        double r532835 = r532808 * r532811;
        double r532836 = r532835 / r532821;
        double r532837 = fma(r532809, r532836, r532822);
        double r532838 = r532824 * r532825;
        double r532839 = r532826 / r532817;
        double r532840 = r532838 * r532839;
        double r532841 = r532837 - r532840;
        double r532842 = -8.528436640531167e-250;
        bool r532843 = r532812 <= r532842;
        double r532844 = fma(r532811, r532810, r532820);
        double r532845 = r532844 / r532815;
        double r532846 = r532838 * r532826;
        double r532847 = r532845 - r532846;
        double r532848 = r532847 * r532830;
        double r532849 = -6.133803468918e-310;
        bool r532850 = r532812 <= r532849;
        double r532851 = 1.850029689243272e+179;
        bool r532852 = r532812 <= r532851;
        double r532853 = r532829 / r532821;
        double r532854 = r532835 * r532853;
        double r532855 = fma(r532809, r532854, r532822);
        double r532856 = r532846 / r532817;
        double r532857 = r532855 - r532856;
        double r532858 = r532817 / r532827;
        double r532859 = r532824 / r532858;
        double r532860 = r532823 - r532859;
        double r532861 = r532852 ? r532857 : r532860;
        double r532862 = r532850 ? r532841 : r532861;
        double r532863 = r532843 ? r532848 : r532862;
        double r532864 = r532834 ? r532841 : r532863;
        double r532865 = r532814 ? r532832 : r532864;
        return r532865;
}

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

Target

Original20.7
Target15.0
Herbie8.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.1001567408041049 \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.17088779117474882 \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.8768236795461372 \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.3838515042456319 \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 5 regimes
  2. if (* (* x 9.0) y) < -2.264549249781671e+260

    1. Initial program 48.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. Simplified47.5

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

      \[\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. Simplified44.1

      \[\leadsto \color{blue}{\mathsf{fma}\left(9, \frac{x \cdot y}{z \cdot c}, \frac{b}{z \cdot c}\right) - \frac{\left(a \cdot 4\right) \cdot t}{c}}\]
    5. Using strategy rm
    6. Applied times-frac13.7

      \[\leadsto \mathsf{fma}\left(9, \color{blue}{\frac{x}{z} \cdot \frac{y}{c}}, \frac{b}{z \cdot c}\right) - \frac{\left(a \cdot 4\right) \cdot t}{c}\]
    7. Using strategy rm
    8. Applied associate-*l*13.7

      \[\leadsto \mathsf{fma}\left(9, \frac{x}{z} \cdot \frac{y}{c}, \frac{b}{z \cdot c}\right) - \frac{\color{blue}{a \cdot \left(4 \cdot t\right)}}{c}\]
    9. Using strategy rm
    10. Applied div-inv13.7

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

    if -2.264549249781671e+260 < (* (* x 9.0) y) < -39.29875885383474 or -8.528436640531167e-250 < (* (* x 9.0) y) < -6.133803468918e-310

    1. Initial program 19.4

      \[\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.8

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

      \[\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. Simplified9.3

      \[\leadsto \color{blue}{\mathsf{fma}\left(9, \frac{x \cdot y}{z \cdot c}, \frac{b}{z \cdot c}\right) - \frac{\left(a \cdot 4\right) \cdot t}{c}}\]
    5. Using strategy rm
    6. Applied *-un-lft-identity9.3

      \[\leadsto \mathsf{fma}\left(9, \frac{x \cdot y}{z \cdot c}, \frac{b}{z \cdot c}\right) - \frac{\left(a \cdot 4\right) \cdot t}{\color{blue}{1 \cdot c}}\]
    7. Applied times-frac8.4

      \[\leadsto \mathsf{fma}\left(9, \frac{x \cdot y}{z \cdot c}, \frac{b}{z \cdot c}\right) - \color{blue}{\frac{a \cdot 4}{1} \cdot \frac{t}{c}}\]
    8. Simplified8.4

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

    if -39.29875885383474 < (* (* x 9.0) y) < -8.528436640531167e-250

    1. Initial program 16.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}\]
    2. Simplified8.5

      \[\leadsto \color{blue}{\frac{\frac{\mathsf{fma}\left(y, x \cdot 9, b\right)}{z} - \left(a \cdot 4\right) \cdot t}{c}}\]
    3. Using strategy rm
    4. Applied div-inv8.5

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

    if -6.133803468918e-310 < (* (* x 9.0) y) < 1.850029689243272e+179

    1. Initial program 16.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.9

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

      \[\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. Simplified7.7

      \[\leadsto \color{blue}{\mathsf{fma}\left(9, \frac{x \cdot y}{z \cdot c}, \frac{b}{z \cdot c}\right) - \frac{\left(a \cdot 4\right) \cdot t}{c}}\]
    5. Using strategy rm
    6. Applied div-inv7.9

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

    if 1.850029689243272e+179 < (* (* x 9.0) y)

    1. Initial program 37.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. Simplified33.3

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

      \[\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. Simplified31.5

      \[\leadsto \color{blue}{\mathsf{fma}\left(9, \frac{x \cdot y}{z \cdot c}, \frac{b}{z \cdot c}\right) - \frac{\left(a \cdot 4\right) \cdot t}{c}}\]
    5. Using strategy rm
    6. Applied times-frac14.5

      \[\leadsto \mathsf{fma}\left(9, \color{blue}{\frac{x}{z} \cdot \frac{y}{c}}, \frac{b}{z \cdot c}\right) - \frac{\left(a \cdot 4\right) \cdot t}{c}\]
    7. Using strategy rm
    8. Applied associate-*l*14.4

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;\left(x \cdot 9\right) \cdot y \le -2.2645492497816709 \cdot 10^{260}:\\ \;\;\;\;\mathsf{fma}\left(9, \frac{x}{z} \cdot \frac{y}{c}, \frac{b}{z \cdot c}\right) - \left(a \cdot \left(4 \cdot t\right)\right) \cdot \frac{1}{c}\\ \mathbf{elif}\;\left(x \cdot 9\right) \cdot y \le -39.298758853834741:\\ \;\;\;\;\mathsf{fma}\left(9, \frac{x \cdot y}{z \cdot c}, \frac{b}{z \cdot c}\right) - \left(a \cdot 4\right) \cdot \frac{t}{c}\\ \mathbf{elif}\;\left(x \cdot 9\right) \cdot y \le -8.52843664053116731 \cdot 10^{-250}:\\ \;\;\;\;\left(\frac{\mathsf{fma}\left(y, x \cdot 9, b\right)}{z} - \left(a \cdot 4\right) \cdot t\right) \cdot \frac{1}{c}\\ \mathbf{elif}\;\left(x \cdot 9\right) \cdot y \le -6.13380346891799 \cdot 10^{-310}:\\ \;\;\;\;\mathsf{fma}\left(9, \frac{x \cdot y}{z \cdot c}, \frac{b}{z \cdot c}\right) - \left(a \cdot 4\right) \cdot \frac{t}{c}\\ \mathbf{elif}\;\left(x \cdot 9\right) \cdot y \le 1.85002968924327207 \cdot 10^{179}:\\ \;\;\;\;\mathsf{fma}\left(9, \left(x \cdot y\right) \cdot \frac{1}{z \cdot c}, \frac{b}{z \cdot c}\right) - \frac{\left(a \cdot 4\right) \cdot t}{c}\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(9, \frac{x}{z} \cdot \frac{y}{c}, \frac{b}{z \cdot c}\right) - \frac{a}{\frac{c}{4 \cdot t}}\\ \end{array}\]

Reproduce

herbie shell --seed 2019199 +o rules:numerics
(FPCore (x y z t a b c)
  :name "Diagrams.Solve.Polynomial:cubForm  from diagrams-solve-0.1, J"

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

  (/ (+ (- (* (* x 9.0) y) (* (* (* z 4.0) t) a)) b) (* z c)))