Average Error: 0.1 → 0.1
Time: 14.1s
Precision: 64
\[\left(\left(\left(\left(x \cdot \log y + z\right) + t\right) + a\right) + \left(b - 0.5\right) \cdot \log c\right) + y \cdot i\]
\[\left(\left(\left(\left(\mathsf{fma}\left(x, 2 \cdot \log \left(\sqrt[3]{y}\right), {\left(x \cdot \log \left({y}^{\frac{1}{3}}\right)\right)}^{1}\right) + z\right) + t\right) + a\right) + \left(b - 0.5\right) \cdot \log c\right) + y \cdot i\]
\left(\left(\left(\left(x \cdot \log y + z\right) + t\right) + a\right) + \left(b - 0.5\right) \cdot \log c\right) + y \cdot i
\left(\left(\left(\left(\mathsf{fma}\left(x, 2 \cdot \log \left(\sqrt[3]{y}\right), {\left(x \cdot \log \left({y}^{\frac{1}{3}}\right)\right)}^{1}\right) + z\right) + t\right) + a\right) + \left(b - 0.5\right) \cdot \log c\right) + y \cdot i
double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r77276 = x;
        double r77277 = y;
        double r77278 = log(r77277);
        double r77279 = r77276 * r77278;
        double r77280 = z;
        double r77281 = r77279 + r77280;
        double r77282 = t;
        double r77283 = r77281 + r77282;
        double r77284 = a;
        double r77285 = r77283 + r77284;
        double r77286 = b;
        double r77287 = 0.5;
        double r77288 = r77286 - r77287;
        double r77289 = c;
        double r77290 = log(r77289);
        double r77291 = r77288 * r77290;
        double r77292 = r77285 + r77291;
        double r77293 = i;
        double r77294 = r77277 * r77293;
        double r77295 = r77292 + r77294;
        return r77295;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r77296 = x;
        double r77297 = 2.0;
        double r77298 = y;
        double r77299 = cbrt(r77298);
        double r77300 = log(r77299);
        double r77301 = r77297 * r77300;
        double r77302 = 0.3333333333333333;
        double r77303 = pow(r77298, r77302);
        double r77304 = log(r77303);
        double r77305 = r77296 * r77304;
        double r77306 = 1.0;
        double r77307 = pow(r77305, r77306);
        double r77308 = fma(r77296, r77301, r77307);
        double r77309 = z;
        double r77310 = r77308 + r77309;
        double r77311 = t;
        double r77312 = r77310 + r77311;
        double r77313 = a;
        double r77314 = r77312 + r77313;
        double r77315 = b;
        double r77316 = 0.5;
        double r77317 = r77315 - r77316;
        double r77318 = c;
        double r77319 = log(r77318);
        double r77320 = r77317 * r77319;
        double r77321 = r77314 + r77320;
        double r77322 = i;
        double r77323 = r77298 * r77322;
        double r77324 = r77321 + r77323;
        return r77324;
}

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

Bits error versus i

Derivation

  1. Initial program 0.1

    \[\left(\left(\left(\left(x \cdot \log y + z\right) + t\right) + a\right) + \left(b - 0.5\right) \cdot \log c\right) + y \cdot i\]
  2. Using strategy rm
  3. Applied add-cube-cbrt0.1

    \[\leadsto \left(\left(\left(\left(x \cdot \log \color{blue}{\left(\left(\sqrt[3]{y} \cdot \sqrt[3]{y}\right) \cdot \sqrt[3]{y}\right)} + z\right) + t\right) + a\right) + \left(b - 0.5\right) \cdot \log c\right) + y \cdot i\]
  4. Applied log-prod0.1

    \[\leadsto \left(\left(\left(\left(x \cdot \color{blue}{\left(\log \left(\sqrt[3]{y} \cdot \sqrt[3]{y}\right) + \log \left(\sqrt[3]{y}\right)\right)} + z\right) + t\right) + a\right) + \left(b - 0.5\right) \cdot \log c\right) + y \cdot i\]
  5. Applied distribute-lft-in0.1

    \[\leadsto \left(\left(\left(\left(\color{blue}{\left(x \cdot \log \left(\sqrt[3]{y} \cdot \sqrt[3]{y}\right) + x \cdot \log \left(\sqrt[3]{y}\right)\right)} + z\right) + t\right) + a\right) + \left(b - 0.5\right) \cdot \log c\right) + y \cdot i\]
  6. Simplified0.1

    \[\leadsto \left(\left(\left(\left(\left(\color{blue}{x \cdot \left(2 \cdot \log \left(\sqrt[3]{y}\right)\right)} + x \cdot \log \left(\sqrt[3]{y}\right)\right) + z\right) + t\right) + a\right) + \left(b - 0.5\right) \cdot \log c\right) + y \cdot i\]
  7. Using strategy rm
  8. Applied fma-def0.1

    \[\leadsto \left(\left(\left(\left(\color{blue}{\mathsf{fma}\left(x, 2 \cdot \log \left(\sqrt[3]{y}\right), x \cdot \log \left(\sqrt[3]{y}\right)\right)} + z\right) + t\right) + a\right) + \left(b - 0.5\right) \cdot \log c\right) + y \cdot i\]
  9. Using strategy rm
  10. Applied pow10.1

    \[\leadsto \left(\left(\left(\left(\mathsf{fma}\left(x, 2 \cdot \log \left(\sqrt[3]{y}\right), x \cdot \color{blue}{{\left(\log \left(\sqrt[3]{y}\right)\right)}^{1}}\right) + z\right) + t\right) + a\right) + \left(b - 0.5\right) \cdot \log c\right) + y \cdot i\]
  11. Applied pow10.1

    \[\leadsto \left(\left(\left(\left(\mathsf{fma}\left(x, 2 \cdot \log \left(\sqrt[3]{y}\right), \color{blue}{{x}^{1}} \cdot {\left(\log \left(\sqrt[3]{y}\right)\right)}^{1}\right) + z\right) + t\right) + a\right) + \left(b - 0.5\right) \cdot \log c\right) + y \cdot i\]
  12. Applied pow-prod-down0.1

    \[\leadsto \left(\left(\left(\left(\mathsf{fma}\left(x, 2 \cdot \log \left(\sqrt[3]{y}\right), \color{blue}{{\left(x \cdot \log \left(\sqrt[3]{y}\right)\right)}^{1}}\right) + z\right) + t\right) + a\right) + \left(b - 0.5\right) \cdot \log c\right) + y \cdot i\]
  13. Simplified0.1

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

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

Reproduce

herbie shell --seed 2020001 +o rules:numerics
(FPCore (x y z t a b c i)
  :name "Numeric.SpecFunctions:logBeta from math-functions-0.1.5.2, B"
  :precision binary64
  (+ (+ (+ (+ (+ (* x (log y)) z) t) a) (* (- b 0.5) (log c))) (* y i)))