Average Error: 0.3 → 0.3
Time: 36.1s
Precision: 64
\[\left(\left(\log \left(x + y\right) + \log z\right) - t\right) + \left(a - 0.5\right) \cdot \log t\]
\[\log \left(x + y\right) + \left(\left(\log z - t\right) + \left(a - 0.5\right) \cdot \log t\right)\]
\left(\left(\log \left(x + y\right) + \log z\right) - t\right) + \left(a - 0.5\right) \cdot \log t
\log \left(x + y\right) + \left(\left(\log z - t\right) + \left(a - 0.5\right) \cdot \log t\right)
double f(double x, double y, double z, double t, double a) {
        double r267499 = x;
        double r267500 = y;
        double r267501 = r267499 + r267500;
        double r267502 = log(r267501);
        double r267503 = z;
        double r267504 = log(r267503);
        double r267505 = r267502 + r267504;
        double r267506 = t;
        double r267507 = r267505 - r267506;
        double r267508 = a;
        double r267509 = 0.5;
        double r267510 = r267508 - r267509;
        double r267511 = log(r267506);
        double r267512 = r267510 * r267511;
        double r267513 = r267507 + r267512;
        return r267513;
}

double f(double x, double y, double z, double t, double a) {
        double r267514 = x;
        double r267515 = y;
        double r267516 = r267514 + r267515;
        double r267517 = log(r267516);
        double r267518 = z;
        double r267519 = log(r267518);
        double r267520 = t;
        double r267521 = r267519 - r267520;
        double r267522 = a;
        double r267523 = 0.5;
        double r267524 = r267522 - r267523;
        double r267525 = log(r267520);
        double r267526 = r267524 * r267525;
        double r267527 = r267521 + r267526;
        double r267528 = r267517 + r267527;
        return r267528;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Bits error versus t

Bits error versus a

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original0.3
Target0.3
Herbie0.3
\[\log \left(x + y\right) + \left(\left(\log z - t\right) + \left(a - 0.5\right) \cdot \log t\right)\]

Derivation

  1. Initial program 0.3

    \[\left(\left(\log \left(x + y\right) + \log z\right) - t\right) + \left(a - 0.5\right) \cdot \log t\]
  2. Using strategy rm
  3. Applied associate--l+0.3

    \[\leadsto \color{blue}{\left(\log \left(x + y\right) + \left(\log z - t\right)\right)} + \left(a - 0.5\right) \cdot \log t\]
  4. Applied associate-+l+0.3

    \[\leadsto \color{blue}{\log \left(x + y\right) + \left(\left(\log z - t\right) + \left(a - 0.5\right) \cdot \log t\right)}\]
  5. Final simplification0.3

    \[\leadsto \log \left(x + y\right) + \left(\left(\log z - t\right) + \left(a - 0.5\right) \cdot \log t\right)\]

Reproduce

herbie shell --seed 2019304 
(FPCore (x y z t a)
  :name "Numeric.SpecFunctions:logGammaL from math-functions-0.1.5.2"
  :precision binary64

  :herbie-target
  (+ (log (+ x y)) (+ (- (log z) t) (* (- a 0.5) (log t))))

  (+ (- (+ (log (+ x y)) (log z)) t) (* (- a 0.5) (log t))))