Average Error: 4.2 → 3.4
Time: 28.2s
Precision: 64
\[\frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} - \left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}}\]
\[\frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z}{\frac{t}{\sqrt{t + a}}} - \left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}}\]
\frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} - \left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}}
\frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z}{\frac{t}{\sqrt{t + a}}} - \left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}}
double f(double x, double y, double z, double t, double a, double b, double c) {
        double r309483 = x;
        double r309484 = y;
        double r309485 = 2.0;
        double r309486 = z;
        double r309487 = t;
        double r309488 = a;
        double r309489 = r309487 + r309488;
        double r309490 = sqrt(r309489);
        double r309491 = r309486 * r309490;
        double r309492 = r309491 / r309487;
        double r309493 = b;
        double r309494 = c;
        double r309495 = r309493 - r309494;
        double r309496 = 5.0;
        double r309497 = 6.0;
        double r309498 = r309496 / r309497;
        double r309499 = r309488 + r309498;
        double r309500 = 3.0;
        double r309501 = r309487 * r309500;
        double r309502 = r309485 / r309501;
        double r309503 = r309499 - r309502;
        double r309504 = r309495 * r309503;
        double r309505 = r309492 - r309504;
        double r309506 = r309485 * r309505;
        double r309507 = exp(r309506);
        double r309508 = r309484 * r309507;
        double r309509 = r309483 + r309508;
        double r309510 = r309483 / r309509;
        return r309510;
}

double f(double x, double y, double z, double t, double a, double b, double c) {
        double r309511 = x;
        double r309512 = y;
        double r309513 = 2.0;
        double r309514 = z;
        double r309515 = t;
        double r309516 = a;
        double r309517 = r309515 + r309516;
        double r309518 = sqrt(r309517);
        double r309519 = r309515 / r309518;
        double r309520 = r309514 / r309519;
        double r309521 = b;
        double r309522 = c;
        double r309523 = r309521 - r309522;
        double r309524 = 5.0;
        double r309525 = 6.0;
        double r309526 = r309524 / r309525;
        double r309527 = r309516 + r309526;
        double r309528 = 3.0;
        double r309529 = r309515 * r309528;
        double r309530 = r309513 / r309529;
        double r309531 = r309527 - r309530;
        double r309532 = r309523 * r309531;
        double r309533 = r309520 - r309532;
        double r309534 = r309513 * r309533;
        double r309535 = exp(r309534);
        double r309536 = r309512 * r309535;
        double r309537 = r309511 + r309536;
        double r309538 = r309511 / r309537;
        return r309538;
}

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

Original4.2
Target3.1
Herbie3.4
\[\begin{array}{l} \mathbf{if}\;t \lt -2.118326644891581057561884576920117070548 \cdot 10^{-50}:\\ \;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \left(\left(a \cdot c + 0.8333333333333333703407674875052180141211 \cdot c\right) - a \cdot b\right)}}\\ \mathbf{elif}\;t \lt 5.196588770651547088010424937268931048836 \cdot 10^{-123}:\\ \;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \frac{\left(z \cdot \sqrt{t + a}\right) \cdot \left(\left(3 \cdot t\right) \cdot \left(a - \frac{5}{6}\right)\right) - \left(\left(\frac{5}{6} + a\right) \cdot \left(3 \cdot t\right) - 2\right) \cdot \left(\left(a - \frac{5}{6}\right) \cdot \left(\left(b - c\right) \cdot t\right)\right)}{\left(\left(t \cdot t\right) \cdot 3\right) \cdot \left(a - \frac{5}{6}\right)}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} - \left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}}\\ \end{array}\]

Derivation

  1. Initial program 4.2

    \[\frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} - \left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}}\]
  2. Using strategy rm
  3. Applied associate-/l*3.4

    \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \left(\color{blue}{\frac{z}{\frac{t}{\sqrt{t + a}}}} - \left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}}\]
  4. Final simplification3.4

    \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z}{\frac{t}{\sqrt{t + a}}} - \left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}}\]

Reproduce

herbie shell --seed 2019326 
(FPCore (x y z t a b c)
  :name "Numeric.SpecFunctions:invIncompleteBetaWorker from math-functions-0.1.5.2, I"
  :precision binary64

  :herbie-target
  (if (< t -2.118326644891581e-50) (/ x (+ x (* y (exp (* 2 (- (+ (* a c) (* 0.8333333333333334 c)) (* a b))))))) (if (< t 5.196588770651547e-123) (/ x (+ x (* y (exp (* 2 (/ (- (* (* z (sqrt (+ t a))) (* (* 3 t) (- a (/ 5 6)))) (* (- (* (+ (/ 5 6) a) (* 3 t)) 2) (* (- a (/ 5 6)) (* (- b c) t)))) (* (* (* t t) 3) (- a (/ 5 6))))))))) (/ x (+ x (* y (exp (* 2 (- (/ (* z (sqrt (+ t a))) t) (* (- b c) (- (+ a (/ 5 6)) (/ 2 (* t 3))))))))))))

  (/ x (+ x (* y (exp (* 2 (- (/ (* z (sqrt (+ t a))) t) (* (- b c) (- (+ a (/ 5 6)) (/ 2 (* t 3)))))))))))