Average Error: 0.3 → 0.2
Time: 19.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 r611273 = x;
        double r611274 = y;
        double r611275 = r611273 + r611274;
        double r611276 = log(r611275);
        double r611277 = z;
        double r611278 = log(r611277);
        double r611279 = r611276 + r611278;
        double r611280 = t;
        double r611281 = r611279 - r611280;
        double r611282 = a;
        double r611283 = 0.5;
        double r611284 = r611282 - r611283;
        double r611285 = log(r611280);
        double r611286 = r611284 * r611285;
        double r611287 = r611281 + r611286;
        return r611287;
}

double f(double x, double y, double z, double t, double a) {
        double r611288 = x;
        double r611289 = y;
        double r611290 = r611288 + r611289;
        double r611291 = log(r611290);
        double r611292 = z;
        double r611293 = log(r611292);
        double r611294 = t;
        double r611295 = r611293 - r611294;
        double r611296 = a;
        double r611297 = 0.5;
        double r611298 = r611296 - r611297;
        double r611299 = log(r611294);
        double r611300 = r611298 * r611299;
        double r611301 = r611295 + r611300;
        double r611302 = r611291 + r611301;
        return r611302;
}

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.2
Herbie0.2
\[\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.2

    \[\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.2

    \[\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 2020042 
(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))))