Average Error: 0.3 → 0.3
Time: 10.9s
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 r68250 = x;
        double r68251 = y;
        double r68252 = r68250 + r68251;
        double r68253 = log(r68252);
        double r68254 = z;
        double r68255 = log(r68254);
        double r68256 = r68253 + r68255;
        double r68257 = t;
        double r68258 = r68256 - r68257;
        double r68259 = a;
        double r68260 = 0.5;
        double r68261 = r68259 - r68260;
        double r68262 = log(r68257);
        double r68263 = r68261 * r68262;
        double r68264 = r68258 + r68263;
        return r68264;
}

double f(double x, double y, double z, double t, double a) {
        double r68265 = x;
        double r68266 = y;
        double r68267 = r68265 + r68266;
        double r68268 = log(r68267);
        double r68269 = z;
        double r68270 = log(r68269);
        double r68271 = t;
        double r68272 = r68270 - r68271;
        double r68273 = a;
        double r68274 = 0.5;
        double r68275 = r68273 - r68274;
        double r68276 = log(r68271);
        double r68277 = r68275 * r68276;
        double r68278 = r68272 + r68277;
        double r68279 = r68268 + r68278;
        return r68279;
}

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

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 2020047 
(FPCore (x y z t a)
  :name "Numeric.SpecFunctions:logGammaL from math-functions-0.1.5.2"
  :precision binary64
  (+ (- (+ (log (+ x y)) (log z)) t) (* (- a 0.5) (log t))))