\left(\left(\left(x + y\right) + z\right) - z \cdot \log t\right) + \left(a - 0.5\right) \cdot b
\left(\left(\left(\left(x + y\right) + z\right) - \log \left(\sqrt{t}\right) \cdot z\right) - z \cdot \log \left(\sqrt{t}\right)\right) + \left(a - 0.5\right) \cdot bdouble f(double x, double y, double z, double t, double a, double b) {
double r350560 = x;
double r350561 = y;
double r350562 = r350560 + r350561;
double r350563 = z;
double r350564 = r350562 + r350563;
double r350565 = t;
double r350566 = log(r350565);
double r350567 = r350563 * r350566;
double r350568 = r350564 - r350567;
double r350569 = a;
double r350570 = 0.5;
double r350571 = r350569 - r350570;
double r350572 = b;
double r350573 = r350571 * r350572;
double r350574 = r350568 + r350573;
return r350574;
}
double f(double x, double y, double z, double t, double a, double b) {
double r350575 = x;
double r350576 = y;
double r350577 = r350575 + r350576;
double r350578 = z;
double r350579 = r350577 + r350578;
double r350580 = t;
double r350581 = sqrt(r350580);
double r350582 = log(r350581);
double r350583 = r350582 * r350578;
double r350584 = r350579 - r350583;
double r350585 = r350578 * r350582;
double r350586 = r350584 - r350585;
double r350587 = a;
double r350588 = 0.5;
double r350589 = r350587 - r350588;
double r350590 = b;
double r350591 = r350589 * r350590;
double r350592 = r350586 + r350591;
return r350592;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a




Bits error versus b
Results
| Original | 0.1 |
|---|---|
| Target | 0.4 |
| Herbie | 0.1 |
Initial program 0.1
rmApplied add-sqr-sqrt0.1
Applied log-prod0.1
Applied distribute-lft-in0.1
Applied associate--r+0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2020024
(FPCore (x y z t a b)
:name "Numeric.SpecFunctions:logBeta from math-functions-0.1.5.2, A"
:precision binary64
:herbie-target
(+ (+ (+ x y) (/ (* (- 1 (pow (log t) 2)) z) (+ 1 (log t)))) (* (- a 0.5) b))
(+ (- (+ (+ x y) z) (* z (log t))) (* (- a 0.5) b)))