Average Error: 4.1 → 1.4
Time: 13.3s
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}{\mathsf{fma}\left(y, {\left(e^{2}\right)}^{\left(\mathsf{fma}\left(\frac{\frac{2}{3}}{t} - \left(a + \frac{5}{6}\right), b - c, \frac{z}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \frac{\sqrt{t + a}}{\sqrt[3]{t}}\right)\right)}, x\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}{\mathsf{fma}\left(y, {\left(e^{2}\right)}^{\left(\mathsf{fma}\left(\frac{\frac{2}{3}}{t} - \left(a + \frac{5}{6}\right), b - c, \frac{z}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \frac{\sqrt{t + a}}{\sqrt[3]{t}}\right)\right)}, x\right)}
double f(double x, double y, double z, double t, double a, double b, double c) {
        double r572516 = x;
        double r572517 = y;
        double r572518 = 2.0;
        double r572519 = z;
        double r572520 = t;
        double r572521 = a;
        double r572522 = r572520 + r572521;
        double r572523 = sqrt(r572522);
        double r572524 = r572519 * r572523;
        double r572525 = r572524 / r572520;
        double r572526 = b;
        double r572527 = c;
        double r572528 = r572526 - r572527;
        double r572529 = 5.0;
        double r572530 = 6.0;
        double r572531 = r572529 / r572530;
        double r572532 = r572521 + r572531;
        double r572533 = 3.0;
        double r572534 = r572520 * r572533;
        double r572535 = r572518 / r572534;
        double r572536 = r572532 - r572535;
        double r572537 = r572528 * r572536;
        double r572538 = r572525 - r572537;
        double r572539 = r572518 * r572538;
        double r572540 = exp(r572539);
        double r572541 = r572517 * r572540;
        double r572542 = r572516 + r572541;
        double r572543 = r572516 / r572542;
        return r572543;
}

double f(double x, double y, double z, double t, double a, double b, double c) {
        double r572544 = x;
        double r572545 = y;
        double r572546 = 2.0;
        double r572547 = exp(r572546);
        double r572548 = 3.0;
        double r572549 = r572546 / r572548;
        double r572550 = t;
        double r572551 = r572549 / r572550;
        double r572552 = a;
        double r572553 = 5.0;
        double r572554 = 6.0;
        double r572555 = r572553 / r572554;
        double r572556 = r572552 + r572555;
        double r572557 = r572551 - r572556;
        double r572558 = b;
        double r572559 = c;
        double r572560 = r572558 - r572559;
        double r572561 = z;
        double r572562 = cbrt(r572550);
        double r572563 = r572562 * r572562;
        double r572564 = r572561 / r572563;
        double r572565 = r572550 + r572552;
        double r572566 = sqrt(r572565);
        double r572567 = r572566 / r572562;
        double r572568 = r572564 * r572567;
        double r572569 = fma(r572557, r572560, r572568);
        double r572570 = pow(r572547, r572569);
        double r572571 = fma(r572545, r572570, r572544);
        double r572572 = r572544 / r572571;
        return r572572;
}

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

Original4.1
Target3.3
Herbie1.4
\[\begin{array}{l} \mathbf{if}\;t \lt -2.1183266448915811 \cdot 10^{-50}:\\ \;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \left(\left(a \cdot c + 0.83333333333333337 \cdot c\right) - a \cdot b\right)}}\\ \mathbf{elif}\;t \lt 5.19658877065154709 \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.1

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

    \[\leadsto \color{blue}{\frac{x}{\mathsf{fma}\left(y, {\left(e^{2}\right)}^{\left(\mathsf{fma}\left(\frac{\frac{2}{3}}{t} - \left(a + \frac{5}{6}\right), b - c, \frac{z \cdot \sqrt{t + a}}{t}\right)\right)}, x\right)}}\]
  3. Using strategy rm
  4. Applied add-cube-cbrt2.8

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

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

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

Reproduce

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