Average Error: 20.7 → 5.2
Time: 24.8s
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}{c \cdot z} \le -4.310655787273717085626057165340673522926 \cdot 10^{307}:\\ \;\;\;\;\left(\frac{b}{c \cdot z} + \frac{x}{\frac{c \cdot z}{y}} \cdot 9\right) - 4 \cdot \frac{t}{\frac{c}{a}}\\ \mathbf{elif}\;\frac{\left(\left(x \cdot 9\right) \cdot y - \left(\left(z \cdot 4\right) \cdot t\right) \cdot a\right) + b}{c \cdot z} \le -5.714617762619817600956632832341409108159 \cdot 10^{-177}:\\ \;\;\;\;\frac{\left(\left(x \cdot 9\right) \cdot y - \left(\left(z \cdot 4\right) \cdot t\right) \cdot a\right) + b}{c \cdot z}\\ \mathbf{elif}\;\frac{\left(\left(x \cdot 9\right) \cdot y - \left(\left(z \cdot 4\right) \cdot t\right) \cdot a\right) + b}{c \cdot z} \le 7.904503724641214606985000956936627235095 \cdot 10^{-44}:\\ \;\;\;\;\frac{1}{\frac{c}{\frac{\mathsf{fma}\left(x \cdot 9, y, b\right)}{z} - \left(a \cdot 4\right) \cdot t}}\\ \mathbf{elif}\;\frac{\left(\left(x \cdot 9\right) \cdot y - \left(\left(z \cdot 4\right) \cdot t\right) \cdot a\right) + b}{c \cdot z} \le 6.624712766971525157760939835591736702834 \cdot 10^{252}:\\ \;\;\;\;\frac{\left(\left(x \cdot 9\right) \cdot y - \left(\left(z \cdot 4\right) \cdot t\right) \cdot a\right) + b}{c \cdot z}\\ \mathbf{else}:\\ \;\;\;\;\left(\left(\frac{x}{z} \cdot \frac{y}{c}\right) \cdot 9 + \frac{b}{c \cdot z}\right) - \frac{t \cdot a}{c} \cdot 4\\ \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}{c \cdot z} \le -4.310655787273717085626057165340673522926 \cdot 10^{307}:\\
\;\;\;\;\left(\frac{b}{c \cdot z} + \frac{x}{\frac{c \cdot z}{y}} \cdot 9\right) - 4 \cdot \frac{t}{\frac{c}{a}}\\

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

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

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

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

\end{array}
double f(double x, double y, double z, double t, double a, double b, double c) {
        double r31440221 = x;
        double r31440222 = 9.0;
        double r31440223 = r31440221 * r31440222;
        double r31440224 = y;
        double r31440225 = r31440223 * r31440224;
        double r31440226 = z;
        double r31440227 = 4.0;
        double r31440228 = r31440226 * r31440227;
        double r31440229 = t;
        double r31440230 = r31440228 * r31440229;
        double r31440231 = a;
        double r31440232 = r31440230 * r31440231;
        double r31440233 = r31440225 - r31440232;
        double r31440234 = b;
        double r31440235 = r31440233 + r31440234;
        double r31440236 = c;
        double r31440237 = r31440226 * r31440236;
        double r31440238 = r31440235 / r31440237;
        return r31440238;
}

double f(double x, double y, double z, double t, double a, double b, double c) {
        double r31440239 = x;
        double r31440240 = 9.0;
        double r31440241 = r31440239 * r31440240;
        double r31440242 = y;
        double r31440243 = r31440241 * r31440242;
        double r31440244 = z;
        double r31440245 = 4.0;
        double r31440246 = r31440244 * r31440245;
        double r31440247 = t;
        double r31440248 = r31440246 * r31440247;
        double r31440249 = a;
        double r31440250 = r31440248 * r31440249;
        double r31440251 = r31440243 - r31440250;
        double r31440252 = b;
        double r31440253 = r31440251 + r31440252;
        double r31440254 = c;
        double r31440255 = r31440254 * r31440244;
        double r31440256 = r31440253 / r31440255;
        double r31440257 = -4.310655787273717e+307;
        bool r31440258 = r31440256 <= r31440257;
        double r31440259 = r31440252 / r31440255;
        double r31440260 = r31440255 / r31440242;
        double r31440261 = r31440239 / r31440260;
        double r31440262 = r31440261 * r31440240;
        double r31440263 = r31440259 + r31440262;
        double r31440264 = r31440254 / r31440249;
        double r31440265 = r31440247 / r31440264;
        double r31440266 = r31440245 * r31440265;
        double r31440267 = r31440263 - r31440266;
        double r31440268 = -5.714617762619818e-177;
        bool r31440269 = r31440256 <= r31440268;
        double r31440270 = 7.904503724641215e-44;
        bool r31440271 = r31440256 <= r31440270;
        double r31440272 = 1.0;
        double r31440273 = fma(r31440241, r31440242, r31440252);
        double r31440274 = r31440273 / r31440244;
        double r31440275 = r31440249 * r31440245;
        double r31440276 = r31440275 * r31440247;
        double r31440277 = r31440274 - r31440276;
        double r31440278 = r31440254 / r31440277;
        double r31440279 = r31440272 / r31440278;
        double r31440280 = 6.624712766971525e+252;
        bool r31440281 = r31440256 <= r31440280;
        double r31440282 = r31440239 / r31440244;
        double r31440283 = r31440242 / r31440254;
        double r31440284 = r31440282 * r31440283;
        double r31440285 = r31440284 * r31440240;
        double r31440286 = r31440285 + r31440259;
        double r31440287 = r31440247 * r31440249;
        double r31440288 = r31440287 / r31440254;
        double r31440289 = r31440288 * r31440245;
        double r31440290 = r31440286 - r31440289;
        double r31440291 = r31440281 ? r31440256 : r31440290;
        double r31440292 = r31440271 ? r31440279 : r31440291;
        double r31440293 = r31440269 ? r31440256 : r31440292;
        double r31440294 = r31440258 ? r31440267 : r31440293;
        return r31440294;
}

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
Target14.5
Herbie5.2
\[\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) y) (* (* (* z 4.0) t) a)) b) (* z c)) < -4.310655787273717e+307

    1. Initial program 63.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. Simplified28.8

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

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

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

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

    if -4.310655787273717e+307 < (/ (+ (- (* (* x 9.0) y) (* (* (* z 4.0) t) a)) b) (* z c)) < -5.714617762619818e-177 or 7.904503724641215e-44 < (/ (+ (- (* (* x 9.0) y) (* (* (* z 4.0) t) a)) b) (* z c)) < 6.624712766971525e+252

    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 -5.714617762619818e-177 < (/ (+ (- (* (* x 9.0) y) (* (* (* z 4.0) t) a)) b) (* z c)) < 7.904503724641215e-44

    1. Initial program 20.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. Simplified0.8

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

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

    if 6.624712766971525e+252 < (/ (+ (- (* (* x 9.0) y) (* (* (* z 4.0) t) a)) b) (* z c))

    1. Initial program 53.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. Simplified26.4

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

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

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

    \[\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}{c \cdot z} \le -4.310655787273717085626057165340673522926 \cdot 10^{307}:\\ \;\;\;\;\left(\frac{b}{c \cdot z} + \frac{x}{\frac{c \cdot z}{y}} \cdot 9\right) - 4 \cdot \frac{t}{\frac{c}{a}}\\ \mathbf{elif}\;\frac{\left(\left(x \cdot 9\right) \cdot y - \left(\left(z \cdot 4\right) \cdot t\right) \cdot a\right) + b}{c \cdot z} \le -5.714617762619817600956632832341409108159 \cdot 10^{-177}:\\ \;\;\;\;\frac{\left(\left(x \cdot 9\right) \cdot y - \left(\left(z \cdot 4\right) \cdot t\right) \cdot a\right) + b}{c \cdot z}\\ \mathbf{elif}\;\frac{\left(\left(x \cdot 9\right) \cdot y - \left(\left(z \cdot 4\right) \cdot t\right) \cdot a\right) + b}{c \cdot z} \le 7.904503724641214606985000956936627235095 \cdot 10^{-44}:\\ \;\;\;\;\frac{1}{\frac{c}{\frac{\mathsf{fma}\left(x \cdot 9, y, b\right)}{z} - \left(a \cdot 4\right) \cdot t}}\\ \mathbf{elif}\;\frac{\left(\left(x \cdot 9\right) \cdot y - \left(\left(z \cdot 4\right) \cdot t\right) \cdot a\right) + b}{c \cdot z} \le 6.624712766971525157760939835591736702834 \cdot 10^{252}:\\ \;\;\;\;\frac{\left(\left(x \cdot 9\right) \cdot y - \left(\left(z \cdot 4\right) \cdot t\right) \cdot a\right) + b}{c \cdot z}\\ \mathbf{else}:\\ \;\;\;\;\left(\left(\frac{x}{z} \cdot \frac{y}{c}\right) \cdot 9 + \frac{b}{c \cdot z}\right) - \frac{t \cdot a}{c} \cdot 4\\ \end{array}\]

Reproduce

herbie shell --seed 2019174 +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)))