Average Error: 23.5 → 21.9
Time: 8.2s
Precision: 64
\[\frac{x \cdot y + z \cdot \left(t - a\right)}{y + z \cdot \left(b - y\right)}\]
\[\begin{array}{l} \mathbf{if}\;y \le -9.135260823660156739406792547030126288296 \cdot 10^{227}:\\ \;\;\;\;\left(x \cdot z + x\right) - \frac{z}{\frac{y + z \cdot \left(b - y\right)}{a}}\\ \mathbf{elif}\;y \le \frac{8942271252414965}{1.307993905256673975767120421215822522658 \cdot 10^{297}}:\\ \;\;\;\;\frac{t \cdot z + x \cdot y}{y + z \cdot \left(b - y\right)} - \frac{z}{\frac{z}{a} \cdot \left(b - y\right) + \frac{y}{a}}\\ \mathbf{elif}\;y \le \frac{5912969379899623}{1.897137590064188545819787018382342682268 \cdot 10^{81}}:\\ \;\;\;\;\frac{t \cdot z + x \cdot y}{y + z \cdot \left(b - y\right)} - \frac{z}{y + z \cdot \left(b - y\right)} \cdot a\\ \mathbf{else}:\\ \;\;\;\;\frac{t \cdot z + x \cdot y}{y + z \cdot \left(b - y\right)} - \frac{z}{\frac{z}{a} \cdot \left(b - y\right) + \frac{y}{a}}\\ \end{array}\]
\frac{x \cdot y + z \cdot \left(t - a\right)}{y + z \cdot \left(b - y\right)}
\begin{array}{l}
\mathbf{if}\;y \le -9.135260823660156739406792547030126288296 \cdot 10^{227}:\\
\;\;\;\;\left(x \cdot z + x\right) - \frac{z}{\frac{y + z \cdot \left(b - y\right)}{a}}\\

\mathbf{elif}\;y \le \frac{8942271252414965}{1.307993905256673975767120421215822522658 \cdot 10^{297}}:\\
\;\;\;\;\frac{t \cdot z + x \cdot y}{y + z \cdot \left(b - y\right)} - \frac{z}{\frac{z}{a} \cdot \left(b - y\right) + \frac{y}{a}}\\

\mathbf{elif}\;y \le \frac{5912969379899623}{1.897137590064188545819787018382342682268 \cdot 10^{81}}:\\
\;\;\;\;\frac{t \cdot z + x \cdot y}{y + z \cdot \left(b - y\right)} - \frac{z}{y + z \cdot \left(b - y\right)} \cdot a\\

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

\end{array}
double f(double x, double y, double z, double t, double a, double b) {
        double r666346 = x;
        double r666347 = y;
        double r666348 = r666346 * r666347;
        double r666349 = z;
        double r666350 = t;
        double r666351 = a;
        double r666352 = r666350 - r666351;
        double r666353 = r666349 * r666352;
        double r666354 = r666348 + r666353;
        double r666355 = b;
        double r666356 = r666355 - r666347;
        double r666357 = r666349 * r666356;
        double r666358 = r666347 + r666357;
        double r666359 = r666354 / r666358;
        return r666359;
}

double f(double x, double y, double z, double t, double a, double b) {
        double r666360 = y;
        double r666361 = -9.135260823660157e+227;
        bool r666362 = r666360 <= r666361;
        double r666363 = x;
        double r666364 = z;
        double r666365 = r666363 * r666364;
        double r666366 = r666365 + r666363;
        double r666367 = b;
        double r666368 = r666367 - r666360;
        double r666369 = r666364 * r666368;
        double r666370 = r666360 + r666369;
        double r666371 = a;
        double r666372 = r666370 / r666371;
        double r666373 = r666364 / r666372;
        double r666374 = r666366 - r666373;
        double r666375 = 8942271252414965.0;
        double r666376 = 1.307993905256674e+297;
        double r666377 = r666375 / r666376;
        bool r666378 = r666360 <= r666377;
        double r666379 = t;
        double r666380 = r666379 * r666364;
        double r666381 = r666363 * r666360;
        double r666382 = r666380 + r666381;
        double r666383 = r666382 / r666370;
        double r666384 = r666364 / r666371;
        double r666385 = r666384 * r666368;
        double r666386 = r666360 / r666371;
        double r666387 = r666385 + r666386;
        double r666388 = r666364 / r666387;
        double r666389 = r666383 - r666388;
        double r666390 = 5912969379899623.0;
        double r666391 = 1.8971375900641885e+81;
        double r666392 = r666390 / r666391;
        bool r666393 = r666360 <= r666392;
        double r666394 = r666364 / r666370;
        double r666395 = r666394 * r666371;
        double r666396 = r666383 - r666395;
        double r666397 = r666393 ? r666396 : r666389;
        double r666398 = r666378 ? r666389 : r666397;
        double r666399 = r666362 ? r666374 : r666398;
        return r666399;
}

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

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original23.5
Target18.3
Herbie21.9
\[\frac{z \cdot t + y \cdot x}{y + z \cdot \left(b - y\right)} - \frac{a}{\left(b - y\right) + \frac{y}{z}}\]

Derivation

  1. Split input into 3 regimes
  2. if y < -9.135260823660157e+227

    1. Initial program 43.9

      \[\frac{x \cdot y + z \cdot \left(t - a\right)}{y + z \cdot \left(b - y\right)}\]
    2. Using strategy rm
    3. Applied sub-neg43.9

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

      \[\leadsto \frac{x \cdot y + \color{blue}{\left(z \cdot t + z \cdot \left(-a\right)\right)}}{y + z \cdot \left(b - y\right)}\]
    5. Using strategy rm
    6. Applied distribute-rgt-neg-out43.9

      \[\leadsto \frac{x \cdot y + \left(z \cdot t + \color{blue}{\left(-z \cdot a\right)}\right)}{y + z \cdot \left(b - y\right)}\]
    7. Applied unsub-neg43.9

      \[\leadsto \frac{x \cdot y + \color{blue}{\left(z \cdot t - z \cdot a\right)}}{y + z \cdot \left(b - y\right)}\]
    8. Applied associate-+r-43.9

      \[\leadsto \frac{\color{blue}{\left(x \cdot y + z \cdot t\right) - z \cdot a}}{y + z \cdot \left(b - y\right)}\]
    9. Applied div-sub43.9

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

      \[\leadsto \color{blue}{\frac{t \cdot z + x \cdot y}{y + z \cdot \left(b - y\right)}} - \frac{z \cdot a}{y + z \cdot \left(b - y\right)}\]
    11. Using strategy rm
    12. Applied associate-/l*43.6

      \[\leadsto \frac{t \cdot z + x \cdot y}{y + z \cdot \left(b - y\right)} - \color{blue}{\frac{z}{\frac{y + z \cdot \left(b - y\right)}{a}}}\]
    13. Taylor expanded around 0 32.2

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

    if -9.135260823660157e+227 < y < 6.83663067272487e-282 or 3.1167846817581434e-66 < y

    1. Initial program 23.9

      \[\frac{x \cdot y + z \cdot \left(t - a\right)}{y + z \cdot \left(b - y\right)}\]
    2. Using strategy rm
    3. Applied sub-neg23.9

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

      \[\leadsto \frac{x \cdot y + \color{blue}{\left(z \cdot t + z \cdot \left(-a\right)\right)}}{y + z \cdot \left(b - y\right)}\]
    5. Using strategy rm
    6. Applied distribute-rgt-neg-out23.9

      \[\leadsto \frac{x \cdot y + \left(z \cdot t + \color{blue}{\left(-z \cdot a\right)}\right)}{y + z \cdot \left(b - y\right)}\]
    7. Applied unsub-neg23.9

      \[\leadsto \frac{x \cdot y + \color{blue}{\left(z \cdot t - z \cdot a\right)}}{y + z \cdot \left(b - y\right)}\]
    8. Applied associate-+r-23.9

      \[\leadsto \frac{\color{blue}{\left(x \cdot y + z \cdot t\right) - z \cdot a}}{y + z \cdot \left(b - y\right)}\]
    9. Applied div-sub23.9

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

      \[\leadsto \color{blue}{\frac{t \cdot z + x \cdot y}{y + z \cdot \left(b - y\right)}} - \frac{z \cdot a}{y + z \cdot \left(b - y\right)}\]
    11. Using strategy rm
    12. Applied associate-/l*23.4

      \[\leadsto \frac{t \cdot z + x \cdot y}{y + z \cdot \left(b - y\right)} - \color{blue}{\frac{z}{\frac{y + z \cdot \left(b - y\right)}{a}}}\]
    13. Taylor expanded around 0 25.2

      \[\leadsto \frac{t \cdot z + x \cdot y}{y + z \cdot \left(b - y\right)} - \frac{z}{\color{blue}{\left(\frac{z \cdot b}{a} + \frac{y}{a}\right) - \frac{z \cdot y}{a}}}\]
    14. Simplified23.3

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

    if 6.83663067272487e-282 < y < 3.1167846817581434e-66

    1. Initial program 13.8

      \[\frac{x \cdot y + z \cdot \left(t - a\right)}{y + z \cdot \left(b - y\right)}\]
    2. Using strategy rm
    3. Applied sub-neg13.8

      \[\leadsto \frac{x \cdot y + z \cdot \color{blue}{\left(t + \left(-a\right)\right)}}{y + z \cdot \left(b - y\right)}\]
    4. Applied distribute-lft-in13.8

      \[\leadsto \frac{x \cdot y + \color{blue}{\left(z \cdot t + z \cdot \left(-a\right)\right)}}{y + z \cdot \left(b - y\right)}\]
    5. Using strategy rm
    6. Applied distribute-rgt-neg-out13.8

      \[\leadsto \frac{x \cdot y + \left(z \cdot t + \color{blue}{\left(-z \cdot a\right)}\right)}{y + z \cdot \left(b - y\right)}\]
    7. Applied unsub-neg13.8

      \[\leadsto \frac{x \cdot y + \color{blue}{\left(z \cdot t - z \cdot a\right)}}{y + z \cdot \left(b - y\right)}\]
    8. Applied associate-+r-13.8

      \[\leadsto \frac{\color{blue}{\left(x \cdot y + z \cdot t\right) - z \cdot a}}{y + z \cdot \left(b - y\right)}\]
    9. Applied div-sub13.8

      \[\leadsto \color{blue}{\frac{x \cdot y + z \cdot t}{y + z \cdot \left(b - y\right)} - \frac{z \cdot a}{y + z \cdot \left(b - y\right)}}\]
    10. Simplified13.8

      \[\leadsto \color{blue}{\frac{t \cdot z + x \cdot y}{y + z \cdot \left(b - y\right)}} - \frac{z \cdot a}{y + z \cdot \left(b - y\right)}\]
    11. Using strategy rm
    12. Applied associate-/l*16.7

      \[\leadsto \frac{t \cdot z + x \cdot y}{y + z \cdot \left(b - y\right)} - \color{blue}{\frac{z}{\frac{y + z \cdot \left(b - y\right)}{a}}}\]
    13. Using strategy rm
    14. Applied associate-/r/11.6

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;y \le -9.135260823660156739406792547030126288296 \cdot 10^{227}:\\ \;\;\;\;\left(x \cdot z + x\right) - \frac{z}{\frac{y + z \cdot \left(b - y\right)}{a}}\\ \mathbf{elif}\;y \le \frac{8942271252414965}{1.307993905256673975767120421215822522658 \cdot 10^{297}}:\\ \;\;\;\;\frac{t \cdot z + x \cdot y}{y + z \cdot \left(b - y\right)} - \frac{z}{\frac{z}{a} \cdot \left(b - y\right) + \frac{y}{a}}\\ \mathbf{elif}\;y \le \frac{5912969379899623}{1.897137590064188545819787018382342682268 \cdot 10^{81}}:\\ \;\;\;\;\frac{t \cdot z + x \cdot y}{y + z \cdot \left(b - y\right)} - \frac{z}{y + z \cdot \left(b - y\right)} \cdot a\\ \mathbf{else}:\\ \;\;\;\;\frac{t \cdot z + x \cdot y}{y + z \cdot \left(b - y\right)} - \frac{z}{\frac{z}{a} \cdot \left(b - y\right) + \frac{y}{a}}\\ \end{array}\]

Reproduce

herbie shell --seed 2019304 
(FPCore (x y z t a b)
  :name "Development.Shake.Progress:decay from shake-0.15.5"
  :precision binary64

  :herbie-target
  (- (/ (+ (* z t) (* y x)) (+ y (* z (- b y)))) (/ a (+ (- b y) (/ y z))))

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