Average Error: 3.8 → 2.7
Time: 7.4s
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(\log \left(e^{\mathsf{fma}\left(z \cdot \sqrt{t + a}, \frac{1}{t}, -\left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right) \cdot \left(b - c\right)\right)}\right) + \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right) \cdot \left(\left(-\left(b - c\right)\right) + \left(b - c\right)\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(\log \left(e^{\mathsf{fma}\left(z \cdot \sqrt{t + a}, \frac{1}{t}, -\left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right) \cdot \left(b - c\right)\right)}\right) + \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right) \cdot \left(\left(-\left(b - c\right)\right) + \left(b - c\right)\right)\right)}}
double f(double x, double y, double z, double t, double a, double b, double c) {
        double r341258 = x;
        double r341259 = y;
        double r341260 = 2.0;
        double r341261 = z;
        double r341262 = t;
        double r341263 = a;
        double r341264 = r341262 + r341263;
        double r341265 = sqrt(r341264);
        double r341266 = r341261 * r341265;
        double r341267 = r341266 / r341262;
        double r341268 = b;
        double r341269 = c;
        double r341270 = r341268 - r341269;
        double r341271 = 5.0;
        double r341272 = 6.0;
        double r341273 = r341271 / r341272;
        double r341274 = r341263 + r341273;
        double r341275 = 3.0;
        double r341276 = r341262 * r341275;
        double r341277 = r341260 / r341276;
        double r341278 = r341274 - r341277;
        double r341279 = r341270 * r341278;
        double r341280 = r341267 - r341279;
        double r341281 = r341260 * r341280;
        double r341282 = exp(r341281);
        double r341283 = r341259 * r341282;
        double r341284 = r341258 + r341283;
        double r341285 = r341258 / r341284;
        return r341285;
}

double f(double x, double y, double z, double t, double a, double b, double c) {
        double r341286 = x;
        double r341287 = y;
        double r341288 = 2.0;
        double r341289 = z;
        double r341290 = t;
        double r341291 = a;
        double r341292 = r341290 + r341291;
        double r341293 = sqrt(r341292);
        double r341294 = r341289 * r341293;
        double r341295 = 1.0;
        double r341296 = r341295 / r341290;
        double r341297 = 5.0;
        double r341298 = 6.0;
        double r341299 = r341297 / r341298;
        double r341300 = r341291 + r341299;
        double r341301 = 3.0;
        double r341302 = r341290 * r341301;
        double r341303 = r341288 / r341302;
        double r341304 = r341300 - r341303;
        double r341305 = b;
        double r341306 = c;
        double r341307 = r341305 - r341306;
        double r341308 = r341304 * r341307;
        double r341309 = -r341308;
        double r341310 = fma(r341294, r341296, r341309);
        double r341311 = exp(r341310);
        double r341312 = log(r341311);
        double r341313 = -r341307;
        double r341314 = r341313 + r341307;
        double r341315 = r341304 * r341314;
        double r341316 = r341312 + r341315;
        double r341317 = r341288 * r341316;
        double r341318 = exp(r341317);
        double r341319 = r341287 * r341318;
        double r341320 = r341286 + r341319;
        double r341321 = r341286 / r341320;
        return r341321;
}

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

Original3.8
Target3.1
Herbie2.7
\[\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 3.8

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

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

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

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

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

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

Reproduce

herbie shell --seed 2020001 +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)))))))))))