Average Error: 7.0 → 0.4
Time: 9.3s
Precision: 64
\[\left(\left(x - 1\right) \cdot \log y + \left(z - 1\right) \cdot \log \left(1 - y\right)\right) - t\]
\[\left(\mathsf{fma}\left(2 \cdot \log \left(\sqrt[3]{y}\right), x - 1, \left(\left(x - 1\right) \cdot \frac{1}{3}\right) \cdot \log y\right) + \left(z - 1\right) \cdot \left(\log 1 - \left(1 \cdot y + \frac{1}{2} \cdot \frac{{y}^{2}}{{1}^{2}}\right)\right)\right) - t\]
\left(\left(x - 1\right) \cdot \log y + \left(z - 1\right) \cdot \log \left(1 - y\right)\right) - t
\left(\mathsf{fma}\left(2 \cdot \log \left(\sqrt[3]{y}\right), x - 1, \left(\left(x - 1\right) \cdot \frac{1}{3}\right) \cdot \log y\right) + \left(z - 1\right) \cdot \left(\log 1 - \left(1 \cdot y + \frac{1}{2} \cdot \frac{{y}^{2}}{{1}^{2}}\right)\right)\right) - t
double f(double x, double y, double z, double t) {
        double r55214 = x;
        double r55215 = 1.0;
        double r55216 = r55214 - r55215;
        double r55217 = y;
        double r55218 = log(r55217);
        double r55219 = r55216 * r55218;
        double r55220 = z;
        double r55221 = r55220 - r55215;
        double r55222 = r55215 - r55217;
        double r55223 = log(r55222);
        double r55224 = r55221 * r55223;
        double r55225 = r55219 + r55224;
        double r55226 = t;
        double r55227 = r55225 - r55226;
        return r55227;
}

double f(double x, double y, double z, double t) {
        double r55228 = 2.0;
        double r55229 = y;
        double r55230 = cbrt(r55229);
        double r55231 = log(r55230);
        double r55232 = r55228 * r55231;
        double r55233 = x;
        double r55234 = 1.0;
        double r55235 = r55233 - r55234;
        double r55236 = 0.3333333333333333;
        double r55237 = r55235 * r55236;
        double r55238 = log(r55229);
        double r55239 = r55237 * r55238;
        double r55240 = fma(r55232, r55235, r55239);
        double r55241 = z;
        double r55242 = r55241 - r55234;
        double r55243 = log(r55234);
        double r55244 = r55234 * r55229;
        double r55245 = 0.5;
        double r55246 = pow(r55229, r55228);
        double r55247 = pow(r55234, r55228);
        double r55248 = r55246 / r55247;
        double r55249 = r55245 * r55248;
        double r55250 = r55244 + r55249;
        double r55251 = r55243 - r55250;
        double r55252 = r55242 * r55251;
        double r55253 = r55240 + r55252;
        double r55254 = t;
        double r55255 = r55253 - r55254;
        return r55255;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Bits error versus t

Derivation

  1. Initial program 7.0

    \[\left(\left(x - 1\right) \cdot \log y + \left(z - 1\right) \cdot \log \left(1 - y\right)\right) - t\]
  2. Taylor expanded around 0 0.3

    \[\leadsto \left(\left(x - 1\right) \cdot \log y + \left(z - 1\right) \cdot \color{blue}{\left(\log 1 - \left(1 \cdot y + \frac{1}{2} \cdot \frac{{y}^{2}}{{1}^{2}}\right)\right)}\right) - t\]
  3. Using strategy rm
  4. Applied add-cube-cbrt0.4

    \[\leadsto \left(\left(x - 1\right) \cdot \log \color{blue}{\left(\left(\sqrt[3]{y} \cdot \sqrt[3]{y}\right) \cdot \sqrt[3]{y}\right)} + \left(z - 1\right) \cdot \left(\log 1 - \left(1 \cdot y + \frac{1}{2} \cdot \frac{{y}^{2}}{{1}^{2}}\right)\right)\right) - t\]
  5. Applied log-prod0.4

    \[\leadsto \left(\left(x - 1\right) \cdot \color{blue}{\left(\log \left(\sqrt[3]{y} \cdot \sqrt[3]{y}\right) + \log \left(\sqrt[3]{y}\right)\right)} + \left(z - 1\right) \cdot \left(\log 1 - \left(1 \cdot y + \frac{1}{2} \cdot \frac{{y}^{2}}{{1}^{2}}\right)\right)\right) - t\]
  6. Applied distribute-lft-in0.4

    \[\leadsto \left(\color{blue}{\left(\left(x - 1\right) \cdot \log \left(\sqrt[3]{y} \cdot \sqrt[3]{y}\right) + \left(x - 1\right) \cdot \log \left(\sqrt[3]{y}\right)\right)} + \left(z - 1\right) \cdot \left(\log 1 - \left(1 \cdot y + \frac{1}{2} \cdot \frac{{y}^{2}}{{1}^{2}}\right)\right)\right) - t\]
  7. Simplified0.4

    \[\leadsto \left(\left(\color{blue}{\left(2 \cdot \log \left(\sqrt[3]{y}\right)\right) \cdot \left(x - 1\right)} + \left(x - 1\right) \cdot \log \left(\sqrt[3]{y}\right)\right) + \left(z - 1\right) \cdot \left(\log 1 - \left(1 \cdot y + \frac{1}{2} \cdot \frac{{y}^{2}}{{1}^{2}}\right)\right)\right) - t\]
  8. Using strategy rm
  9. Applied fma-def0.4

    \[\leadsto \left(\color{blue}{\mathsf{fma}\left(2 \cdot \log \left(\sqrt[3]{y}\right), x - 1, \left(x - 1\right) \cdot \log \left(\sqrt[3]{y}\right)\right)} + \left(z - 1\right) \cdot \left(\log 1 - \left(1 \cdot y + \frac{1}{2} \cdot \frac{{y}^{2}}{{1}^{2}}\right)\right)\right) - t\]
  10. Using strategy rm
  11. Applied pow1/30.4

    \[\leadsto \left(\mathsf{fma}\left(2 \cdot \log \left(\sqrt[3]{y}\right), x - 1, \left(x - 1\right) \cdot \log \color{blue}{\left({y}^{\frac{1}{3}}\right)}\right) + \left(z - 1\right) \cdot \left(\log 1 - \left(1 \cdot y + \frac{1}{2} \cdot \frac{{y}^{2}}{{1}^{2}}\right)\right)\right) - t\]
  12. Applied log-pow0.4

    \[\leadsto \left(\mathsf{fma}\left(2 \cdot \log \left(\sqrt[3]{y}\right), x - 1, \left(x - 1\right) \cdot \color{blue}{\left(\frac{1}{3} \cdot \log y\right)}\right) + \left(z - 1\right) \cdot \left(\log 1 - \left(1 \cdot y + \frac{1}{2} \cdot \frac{{y}^{2}}{{1}^{2}}\right)\right)\right) - t\]
  13. Applied associate-*r*0.4

    \[\leadsto \left(\mathsf{fma}\left(2 \cdot \log \left(\sqrt[3]{y}\right), x - 1, \color{blue}{\left(\left(x - 1\right) \cdot \frac{1}{3}\right) \cdot \log y}\right) + \left(z - 1\right) \cdot \left(\log 1 - \left(1 \cdot y + \frac{1}{2} \cdot \frac{{y}^{2}}{{1}^{2}}\right)\right)\right) - t\]
  14. Final simplification0.4

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

Reproduce

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