Average Error: 0.3 → 0.3
Time: 38.2s
Precision: 64
\[\left(\left(\log \left(x + y\right) + \log z\right) - t\right) + \left(a - 0.5\right) \cdot \log t\]
\[\left(-0.5\right) \cdot \log \left(\sqrt{t}\right) + \left(\left(\log \left(\sqrt{t}\right) \cdot \left(\left(a - 0.5\right) + a\right) + \left(\log z - t\right)\right) + \log \left(x + y\right)\right)\]
\left(\left(\log \left(x + y\right) + \log z\right) - t\right) + \left(a - 0.5\right) \cdot \log t
\left(-0.5\right) \cdot \log \left(\sqrt{t}\right) + \left(\left(\log \left(\sqrt{t}\right) \cdot \left(\left(a - 0.5\right) + a\right) + \left(\log z - t\right)\right) + \log \left(x + y\right)\right)
double f(double x, double y, double z, double t, double a) {
        double r16051003 = x;
        double r16051004 = y;
        double r16051005 = r16051003 + r16051004;
        double r16051006 = log(r16051005);
        double r16051007 = z;
        double r16051008 = log(r16051007);
        double r16051009 = r16051006 + r16051008;
        double r16051010 = t;
        double r16051011 = r16051009 - r16051010;
        double r16051012 = a;
        double r16051013 = 0.5;
        double r16051014 = r16051012 - r16051013;
        double r16051015 = log(r16051010);
        double r16051016 = r16051014 * r16051015;
        double r16051017 = r16051011 + r16051016;
        return r16051017;
}

double f(double x, double y, double z, double t, double a) {
        double r16051018 = 0.5;
        double r16051019 = -r16051018;
        double r16051020 = t;
        double r16051021 = sqrt(r16051020);
        double r16051022 = log(r16051021);
        double r16051023 = r16051019 * r16051022;
        double r16051024 = a;
        double r16051025 = r16051024 - r16051018;
        double r16051026 = r16051025 + r16051024;
        double r16051027 = r16051022 * r16051026;
        double r16051028 = z;
        double r16051029 = log(r16051028);
        double r16051030 = r16051029 - r16051020;
        double r16051031 = r16051027 + r16051030;
        double r16051032 = x;
        double r16051033 = y;
        double r16051034 = r16051032 + r16051033;
        double r16051035 = log(r16051034);
        double r16051036 = r16051031 + r16051035;
        double r16051037 = r16051023 + r16051036;
        return r16051037;
}

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 add-sqr-sqrt0.3

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

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

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

    \[\leadsto \color{blue}{\left(\left(\left(\log \left(x + y\right) + \log z\right) - t\right) + \log \left(\sqrt{t}\right) \cdot \left(a - 0.5\right)\right) + \log \left(\sqrt{t}\right) \cdot \left(a - 0.5\right)}\]
  7. Using strategy rm
  8. Applied sub-neg0.3

    \[\leadsto \left(\left(\left(\log \left(x + y\right) + \log z\right) - t\right) + \log \left(\sqrt{t}\right) \cdot \left(a - 0.5\right)\right) + \log \left(\sqrt{t}\right) \cdot \color{blue}{\left(a + \left(-0.5\right)\right)}\]
  9. Applied distribute-rgt-in0.3

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

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

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

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

Reproduce

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

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

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