Average Error: 3.6 → 1.6
Time: 22.0s
Precision: 64
\[\frac{x}{x + y \cdot e^{2.0 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} - \left(b - c\right) \cdot \left(\left(a + \frac{5.0}{6.0}\right) - \frac{2.0}{t \cdot 3.0}\right)\right)}}\]
\[\frac{x}{\mathsf{fma}\left(y, e^{2.0 \cdot \mathsf{fma}\left(c - b, \frac{5.0}{6.0} - \left(\frac{\frac{2.0}{t}}{3.0} - a\right), \frac{\sqrt{a + t}}{\frac{t}{z}}\right)}, x\right)}\]
\frac{x}{x + y \cdot e^{2.0 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} - \left(b - c\right) \cdot \left(\left(a + \frac{5.0}{6.0}\right) - \frac{2.0}{t \cdot 3.0}\right)\right)}}
\frac{x}{\mathsf{fma}\left(y, e^{2.0 \cdot \mathsf{fma}\left(c - b, \frac{5.0}{6.0} - \left(\frac{\frac{2.0}{t}}{3.0} - a\right), \frac{\sqrt{a + t}}{\frac{t}{z}}\right)}, x\right)}
double f(double x, double y, double z, double t, double a, double b, double c) {
        double r2594258 = x;
        double r2594259 = y;
        double r2594260 = 2.0;
        double r2594261 = z;
        double r2594262 = t;
        double r2594263 = a;
        double r2594264 = r2594262 + r2594263;
        double r2594265 = sqrt(r2594264);
        double r2594266 = r2594261 * r2594265;
        double r2594267 = r2594266 / r2594262;
        double r2594268 = b;
        double r2594269 = c;
        double r2594270 = r2594268 - r2594269;
        double r2594271 = 5.0;
        double r2594272 = 6.0;
        double r2594273 = r2594271 / r2594272;
        double r2594274 = r2594263 + r2594273;
        double r2594275 = 3.0;
        double r2594276 = r2594262 * r2594275;
        double r2594277 = r2594260 / r2594276;
        double r2594278 = r2594274 - r2594277;
        double r2594279 = r2594270 * r2594278;
        double r2594280 = r2594267 - r2594279;
        double r2594281 = r2594260 * r2594280;
        double r2594282 = exp(r2594281);
        double r2594283 = r2594259 * r2594282;
        double r2594284 = r2594258 + r2594283;
        double r2594285 = r2594258 / r2594284;
        return r2594285;
}

double f(double x, double y, double z, double t, double a, double b, double c) {
        double r2594286 = x;
        double r2594287 = y;
        double r2594288 = 2.0;
        double r2594289 = c;
        double r2594290 = b;
        double r2594291 = r2594289 - r2594290;
        double r2594292 = 5.0;
        double r2594293 = 6.0;
        double r2594294 = r2594292 / r2594293;
        double r2594295 = t;
        double r2594296 = r2594288 / r2594295;
        double r2594297 = 3.0;
        double r2594298 = r2594296 / r2594297;
        double r2594299 = a;
        double r2594300 = r2594298 - r2594299;
        double r2594301 = r2594294 - r2594300;
        double r2594302 = r2594299 + r2594295;
        double r2594303 = sqrt(r2594302);
        double r2594304 = z;
        double r2594305 = r2594295 / r2594304;
        double r2594306 = r2594303 / r2594305;
        double r2594307 = fma(r2594291, r2594301, r2594306);
        double r2594308 = r2594288 * r2594307;
        double r2594309 = exp(r2594308);
        double r2594310 = fma(r2594287, r2594309, r2594286);
        double r2594311 = r2594286 / r2594310;
        return r2594311;
}

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

Derivation

  1. Initial program 3.6

    \[\frac{x}{x + y \cdot e^{2.0 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} - \left(b - c\right) \cdot \left(\left(a + \frac{5.0}{6.0}\right) - \frac{2.0}{t \cdot 3.0}\right)\right)}}\]
  2. Simplified1.6

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

    \[\leadsto \frac{x}{\mathsf{fma}\left(y, e^{2.0 \cdot \mathsf{fma}\left(c - b, \frac{5.0}{6.0} - \left(\frac{\frac{2.0}{t}}{3.0} - a\right), \frac{\sqrt{a + t}}{\frac{t}{z}}\right)}, x\right)}\]

Reproduce

herbie shell --seed 2019163 +o rules:numerics
(FPCore (x y z t a b c)
  :name "Numeric.SpecFunctions:invIncompleteBetaWorker from math-functions-0.1.5.2"
  (/ x (+ x (* y (exp (* 2.0 (- (/ (* z (sqrt (+ t a))) t) (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0)))))))))))