Average Error: 20.6 → 8.1
Time: 17.0s
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 -1.294924473296951096494539046235709554954 \cdot 10^{188}:\\ \;\;\;\;\mathsf{fma}\left(\frac{x}{z} \cdot \frac{y}{c}, 9, \frac{b}{z \cdot c}\right) - \frac{a \cdot 4}{\frac{c}{t}}\\ \mathbf{elif}\;\left(x \cdot 9\right) \cdot y \le -1.904700908386511418443082122868403069122 \cdot 10^{-37}:\\ \;\;\;\;\mathsf{fma}\left(\frac{x \cdot y}{z \cdot c}, 9, \frac{1}{z} \cdot \frac{b}{c}\right) - \left(a \cdot 4\right) \cdot \frac{t}{c}\\ \mathbf{elif}\;\left(x \cdot 9\right) \cdot y \le -7.447790534870727628048627177914249278465 \cdot 10^{-270}:\\ \;\;\;\;\frac{1}{\frac{c}{\frac{\mathsf{fma}\left(y, x \cdot 9, b\right)}{z} - \left(a \cdot 4\right) \cdot t}}\\ \mathbf{elif}\;\left(x \cdot 9\right) \cdot y \le 3.819296029990499914802770790991775665762 \cdot 10^{-306}:\\ \;\;\;\;\mathsf{fma}\left(\frac{x \cdot y}{z \cdot c}, 9, \frac{1}{z} \cdot \frac{b}{c}\right) - \left(a \cdot 4\right) \cdot \frac{t}{c}\\ \mathbf{elif}\;\left(x \cdot 9\right) \cdot y \le 1.939735069916728119712846813823528203938 \cdot 10^{-72}:\\ \;\;\;\;\mathsf{fma}\left(\frac{x \cdot y}{z \cdot c}, 9, b \cdot \frac{1}{z \cdot c}\right) - \frac{\left(a \cdot 4\right) \cdot t}{c}\\ \mathbf{elif}\;\left(x \cdot 9\right) \cdot y \le 376524910285406979937406490057197838401500:\\ \;\;\;\;\mathsf{fma}\left(\frac{x \cdot y}{z \cdot c}, 9, \frac{1}{z} \cdot \frac{b}{c}\right) - \left(a \cdot 4\right) \cdot \frac{t}{c}\\ \mathbf{elif}\;\left(x \cdot 9\right) \cdot y \le 1.678396921035363929884299283685697328486 \cdot 10^{293}:\\ \;\;\;\;\mathsf{fma}\left(\frac{x \cdot y}{z \cdot c}, 9, b \cdot \frac{1}{z \cdot c}\right) - \frac{\left(a \cdot 4\right) \cdot t}{c}\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\frac{x}{z} \cdot \frac{y}{c}, 9, \frac{b}{z \cdot c}\right) - \frac{a \cdot 4}{\frac{c}{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 -1.294924473296951096494539046235709554954 \cdot 10^{188}:\\
\;\;\;\;\mathsf{fma}\left(\frac{x}{z} \cdot \frac{y}{c}, 9, \frac{b}{z \cdot c}\right) - \frac{a \cdot 4}{\frac{c}{t}}\\

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

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

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

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

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

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

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

\end{array}
double f(double x, double y, double z, double t, double a, double b, double c) {
        double r551184 = x;
        double r551185 = 9.0;
        double r551186 = r551184 * r551185;
        double r551187 = y;
        double r551188 = r551186 * r551187;
        double r551189 = z;
        double r551190 = 4.0;
        double r551191 = r551189 * r551190;
        double r551192 = t;
        double r551193 = r551191 * r551192;
        double r551194 = a;
        double r551195 = r551193 * r551194;
        double r551196 = r551188 - r551195;
        double r551197 = b;
        double r551198 = r551196 + r551197;
        double r551199 = c;
        double r551200 = r551189 * r551199;
        double r551201 = r551198 / r551200;
        return r551201;
}

double f(double x, double y, double z, double t, double a, double b, double c) {
        double r551202 = x;
        double r551203 = 9.0;
        double r551204 = r551202 * r551203;
        double r551205 = y;
        double r551206 = r551204 * r551205;
        double r551207 = -1.2949244732969511e+188;
        bool r551208 = r551206 <= r551207;
        double r551209 = z;
        double r551210 = r551202 / r551209;
        double r551211 = c;
        double r551212 = r551205 / r551211;
        double r551213 = r551210 * r551212;
        double r551214 = b;
        double r551215 = r551209 * r551211;
        double r551216 = r551214 / r551215;
        double r551217 = fma(r551213, r551203, r551216);
        double r551218 = a;
        double r551219 = 4.0;
        double r551220 = r551218 * r551219;
        double r551221 = t;
        double r551222 = r551211 / r551221;
        double r551223 = r551220 / r551222;
        double r551224 = r551217 - r551223;
        double r551225 = -1.9047009083865114e-37;
        bool r551226 = r551206 <= r551225;
        double r551227 = r551202 * r551205;
        double r551228 = r551227 / r551215;
        double r551229 = 1.0;
        double r551230 = r551229 / r551209;
        double r551231 = r551214 / r551211;
        double r551232 = r551230 * r551231;
        double r551233 = fma(r551228, r551203, r551232);
        double r551234 = r551221 / r551211;
        double r551235 = r551220 * r551234;
        double r551236 = r551233 - r551235;
        double r551237 = -7.447790534870728e-270;
        bool r551238 = r551206 <= r551237;
        double r551239 = fma(r551205, r551204, r551214);
        double r551240 = r551239 / r551209;
        double r551241 = r551220 * r551221;
        double r551242 = r551240 - r551241;
        double r551243 = r551211 / r551242;
        double r551244 = r551229 / r551243;
        double r551245 = 3.8192960299905e-306;
        bool r551246 = r551206 <= r551245;
        double r551247 = 1.939735069916728e-72;
        bool r551248 = r551206 <= r551247;
        double r551249 = r551229 / r551215;
        double r551250 = r551214 * r551249;
        double r551251 = fma(r551228, r551203, r551250);
        double r551252 = r551241 / r551211;
        double r551253 = r551251 - r551252;
        double r551254 = 3.76524910285407e+41;
        bool r551255 = r551206 <= r551254;
        double r551256 = 1.678396921035364e+293;
        bool r551257 = r551206 <= r551256;
        double r551258 = r551257 ? r551253 : r551224;
        double r551259 = r551255 ? r551236 : r551258;
        double r551260 = r551248 ? r551253 : r551259;
        double r551261 = r551246 ? r551236 : r551260;
        double r551262 = r551238 ? r551244 : r551261;
        double r551263 = r551226 ? r551236 : r551262;
        double r551264 = r551208 ? r551224 : r551263;
        return r551264;
}

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.6
Target14.3
Herbie8.1
\[\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) < -1.2949244732969511e+188 or 1.678396921035364e+293 < (* (* x 9.0) y)

    1. Initial program 45.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. Simplified43.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 40.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. Simplified40.4

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

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

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

    if -1.2949244732969511e+188 < (* (* x 9.0) y) < -1.9047009083865114e-37 or -7.447790534870728e-270 < (* (* x 9.0) y) < 3.8192960299905e-306 or 1.939735069916728e-72 < (* (* x 9.0) y) < 3.76524910285407e+41

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

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

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

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

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

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

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

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

    if -1.9047009083865114e-37 < (* (* x 9.0) y) < -7.447790534870728e-270

    1. Initial program 16.0

      \[\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. Simplified6.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. Using strategy rm
    4. Applied clear-num7.0

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

    if 3.8192960299905e-306 < (* (* x 9.0) y) < 1.939735069916728e-72 or 3.76524910285407e+41 < (* (* x 9.0) y) < 1.678396921035364e+293

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

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

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

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;\left(x \cdot 9\right) \cdot y \le -1.294924473296951096494539046235709554954 \cdot 10^{188}:\\ \;\;\;\;\mathsf{fma}\left(\frac{x}{z} \cdot \frac{y}{c}, 9, \frac{b}{z \cdot c}\right) - \frac{a \cdot 4}{\frac{c}{t}}\\ \mathbf{elif}\;\left(x \cdot 9\right) \cdot y \le -1.904700908386511418443082122868403069122 \cdot 10^{-37}:\\ \;\;\;\;\mathsf{fma}\left(\frac{x \cdot y}{z \cdot c}, 9, \frac{1}{z} \cdot \frac{b}{c}\right) - \left(a \cdot 4\right) \cdot \frac{t}{c}\\ \mathbf{elif}\;\left(x \cdot 9\right) \cdot y \le -7.447790534870727628048627177914249278465 \cdot 10^{-270}:\\ \;\;\;\;\frac{1}{\frac{c}{\frac{\mathsf{fma}\left(y, x \cdot 9, b\right)}{z} - \left(a \cdot 4\right) \cdot t}}\\ \mathbf{elif}\;\left(x \cdot 9\right) \cdot y \le 3.819296029990499914802770790991775665762 \cdot 10^{-306}:\\ \;\;\;\;\mathsf{fma}\left(\frac{x \cdot y}{z \cdot c}, 9, \frac{1}{z} \cdot \frac{b}{c}\right) - \left(a \cdot 4\right) \cdot \frac{t}{c}\\ \mathbf{elif}\;\left(x \cdot 9\right) \cdot y \le 1.939735069916728119712846813823528203938 \cdot 10^{-72}:\\ \;\;\;\;\mathsf{fma}\left(\frac{x \cdot y}{z \cdot c}, 9, b \cdot \frac{1}{z \cdot c}\right) - \frac{\left(a \cdot 4\right) \cdot t}{c}\\ \mathbf{elif}\;\left(x \cdot 9\right) \cdot y \le 376524910285406979937406490057197838401500:\\ \;\;\;\;\mathsf{fma}\left(\frac{x \cdot y}{z \cdot c}, 9, \frac{1}{z} \cdot \frac{b}{c}\right) - \left(a \cdot 4\right) \cdot \frac{t}{c}\\ \mathbf{elif}\;\left(x \cdot 9\right) \cdot y \le 1.678396921035363929884299283685697328486 \cdot 10^{293}:\\ \;\;\;\;\mathsf{fma}\left(\frac{x \cdot y}{z \cdot c}, 9, b \cdot \frac{1}{z \cdot c}\right) - \frac{\left(a \cdot 4\right) \cdot t}{c}\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\frac{x}{z} \cdot \frac{y}{c}, 9, \frac{b}{z \cdot c}\right) - \frac{a \cdot 4}{\frac{c}{t}}\\ \end{array}\]

Reproduce

herbie shell --seed 2019235 +o rules:numerics
(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)))