\left(\left(x - 1\right) \cdot \log y + \left(z - 1\right) \cdot \log \left(1 - y\right)\right) - t
\mathsf{fma}\left(\log y, x - 1, \mathsf{fma}\left(0.5, {y}^{2}, -\mathsf{fma}\left(1, z \cdot y, 0.5 \cdot \left(z \cdot {y}^{2}\right)\right)\right) - t\right)double code(double x, double y, double z, double t) {
return ((((x - 1.0) * log(y)) + ((z - 1.0) * log((1.0 - y)))) - t);
}
double code(double x, double y, double z, double t) {
return fma(log(y), (x - 1.0), (fma(0.5, pow(y, 2.0), -fma(1.0, (z * y), (0.5 * (z * pow(y, 2.0))))) - t));
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t
Results
Initial program 7.0
Simplified7.0
Taylor expanded around 0 0.4
Taylor expanded around inf 0.5
Simplified0.5
Final simplification0.5
herbie shell --seed 2020066 +o rules:numerics
(FPCore (x y z t)
:name "Statistics.Distribution.Beta:$cdensity from math-functions-0.1.5.2"
:precision binary64
(- (+ (* (- x 1) (log y)) (* (- z 1) (log (- 1 y)))) t))