


Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t



Bits error versus a
Results
Initial program 0.2
rmApplied flip3-+0.3
rmApplied add-cbrt-cube0.3
Applied add-cbrt-cube0.4
Applied cbrt-unprod0.3
Simplified0.3
Final simplification0.3
herbie shell --seed 2019002 +o rules:numerics
(FPCore (x y z t a)
:name "Numeric.SpecFunctions:logGammaL from math-functions-0.1.5.2"
(+ (- (+ (log (+ x y)) (log z)) t) (* (- a 0.5) (log t))))
Time bar (total: 37.4s)Debug log
1 calls. Slowest were:
| 317.0ms | (+ (- (+ (log (+ x y)) (log z)) t) (* (- a 0.5) (log t))) |
2 alts after pruning (2 fresh and 0 done)
Merged error: 0.2b
Found 3 expressions with local error:
| 0.6b | (+ (log (+ x y)) (log z)) |
| 0.2b | (* (- a 0.5) (log t)) |
| 0.1b | (+ (- (+ (log (+ x y)) (log z)) t) (* (- a 0.5) (log t))) |
3 calls. Slowest were:
| 122.0ms | (+ (- (+ (log (+ x y)) (log z)) t) (* (- a 0.5) (log t))) |
| 5.0ms | (+ (log (+ x y)) (log z)) |
| 4.0ms | (* (- a 0.5) (log t)) |
3 calls. Slowest were:
| 165.0ms | (+ (- (+ (log (+ x y)) (log z)) t) (* (- a 0.5) (log t))) |
| 78.0ms | (+ (log (+ x y)) (log z)) |
| 47.0ms | (* (- a 0.5) (log t)) |
44 calls. Slowest were:
| 447.0ms | (- (+ (* a (log t)) (+ (log z) (log y))) (+ t (* 0.5 (log t)))) |
| 291.0ms | (- (* 0.5 (log (/ 1 t))) (+ t (+ (log (/ 1 z)) (+ (log (/ 1 x)) (* a (log (/ 1 t))))))) |
| 248.0ms | (- (+ (* 0.5 (log (/ -1 t))) (* a (log -1))) (+ (* a (log (/ -1 t))) (* 0.5 (log -1)))) |
11 alts after pruning (11 fresh and 0 done)
Merged error: 0.1b
Found 4 expressions with local error:
| 0.7b | (pow (log z) 3) |
| 0.7b | (pow (log (+ x y)) 3) |
| 0.6b | (- (* (log z) (log z)) (* (log (+ x y)) (log z))) |
| 0.6b | (* (log z) (log z)) |
4 calls. Slowest were:
| 11.0ms | (- (* (log z) (log z)) (* (log (+ x y)) (log z))) |
| 6.0ms | (* (log z) (log z)) |
| 2.0ms | (pow (log (+ x y)) 3) |
4 calls. Slowest were:
| 285.0ms | (pow (log (+ x y)) 3) |
| 203.0ms | (* (log z) (log z)) |
| 197.0ms | (pow (log z) 3) |
| 197.0ms | (- (* (log z) (log z)) (* (log (+ x y)) (log z))) |
49 calls. Slowest were:
| 653.0ms | (pow (- (log -1) (log (/ -1 z))) 2) |
| 553.0ms | (pow (- (log -1) (log (/ -1 z))) 3) |
| 467.0ms | (pow (- (log -1) (log (/ -1 x))) 3) |
10 alts after pruning (10 fresh and 0 done)
Merged error: 0.1b
Found 4 expressions with local error:
| 1.2b | (pow (log z) 6) |
| 0.7b | (pow (log z) 3) |
| 0.7b | (pow (log (+ x y)) 3) |
| 0.6b | (- (cbrt (pow (log z) 6)) (* (log (+ x y)) (log z))) |
4 calls. Slowest were:
| 19.0ms | (- (cbrt (pow (log z) 6)) (* (log (+ x y)) (log z))) |
| 3.0ms | (pow (log (+ x y)) 3) |
| 2.0ms | (pow (log z) 6) |
4 calls. Slowest were:
| 308.0ms | (pow (log (+ x y)) 3) |
| 245.0ms | (pow (log z) 3) |
| 222.0ms | (pow (log z) 6) |
| 216.0ms | (- (cbrt (pow (log z) 6)) (* (log (+ x y)) (log z))) |
64 calls. Slowest were:
| 519.0ms | (pow (- (log -1) (log (/ -1 z))) 3) |
| 516.0ms | (pow (- (log -1) (log (/ -1 x))) 3) |
| 162.0ms | (- (+ (pow (log (/ -1 z)) 2) (* (log (/ -1 x)) (log -1))) (+ (* (log (/ -1 z)) (log -1)) (* (log (/ -1 x)) (log (/ -1 z))))) |
10 alts after pruning (9 fresh and 1 done)
Merged error: 0.1b
Found 4 expressions with local error:
| 0.6b | (+ (log (+ x y)) (log z)) |
| 0.5b | (cbrt (log t)) |
| 0.5b | (cbrt (log t)) |
| 0.5b | (cbrt (log t)) |
4 calls. Slowest were:
| 10.0ms | (+ (log (+ x y)) (log z)) |
| 1.0ms | (cbrt (log t)) |
| 1.0ms | (cbrt (log t)) |
4 calls. Slowest were:
| 433.0ms | (cbrt (log t)) |
| 359.0ms | (cbrt (log t)) |
| 321.0ms | (cbrt (log t)) |
| 90.0ms | (+ (log (+ x y)) (log z)) |
31 calls. Slowest were:
| 310.0ms | (- (* 2 (log -1)) (+ (log (/ -1 x)) (log (/ -1 z)))) |
| 47.0ms | (pow (- (log -1) (log (/ -1 t))) 1/3) |
| 41.0ms | (- (+ (log (/ 1 z)) (log (/ 1 x)))) |
12 alts after pruning (10 fresh and 2 done)
Merged error: 0.0b
0% (0.2b remaining)
Error of 0.3b against oracle of 0.1b and baseline of 0.3b