


Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t



Bits error versus a
Results
Initial program 0.3
rmApplied add-cube-cbrt0.3
Applied log-prod0.3
Applied associate-+l+0.3
Final simplification0.3
herbie shell --seed 2018362 +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: 32.2s)Debug log
2 alts after pruning (2 fresh and 0 done)
Merged error: 0.3b
Found 3 expressions with local error:
| 0.4b | (fma (- a 0.5) (log t) (log z)) |
| 0.2b | (+ (log (+ y x)) (- (fma (- a 0.5) (log t) (log z)) t)) |
| 0.0b | (- (fma (- a 0.5) (log t) (log z)) t) |
3 calls. Slowest were:
| 16.0ms | (+ (log (+ y x)) (- (fma (- a 0.5) (log t) (log z)) t)) |
| 7.0ms | (fma (- a 0.5) (log t) (log z)) |
| 6.0ms | (- (fma (- a 0.5) (log t) (log z)) t) |
3 calls. Slowest were:
| 170.0ms | (+ (log (+ y x)) (- (fma (- a 0.5) (log t) (log z)) t)) |
| 94.0ms | (fma (- a 0.5) (log t) (log z)) |
| 52.0ms | (- (fma (- a 0.5) (log t) (log z)) t) |
25 calls. Slowest were:
| 507.0ms | (- (+ (* 0.5 (log (/ -1 t))) (+ (* a (log -1)) (* 0.5 (log -1)))) (+ t (+ (* a (log (/ -1 t))) (log (/ -1 z))))) |
| 458.0ms | (- (* 0.5 (log (/ 1 t))) (+ (log (/ 1 z)) (* a (log (/ 1 t))))) |
| 435.0ms | (- (* 0.5 (log (/ 1 t))) (+ t (+ (log (/ 1 z)) (* a (log (/ 1 t)))))) |
13 alts after pruning (13 fresh and 0 done)
Merged error: 0.1b
Found 4 expressions with local error:
| 0.5b | (* (cbrt (+ y x)) (cbrt (+ y x))) |
| 0.5b | (cbrt (+ y x)) |
| 0.5b | (cbrt (+ y x)) |
| 0.5b | (cbrt (+ y x)) |
4 calls. Slowest were:
| 10.0ms | (* (cbrt (+ y x)) (cbrt (+ y x))) |
| 5.0ms | (cbrt (+ y x)) |
| 1.0ms | (cbrt (+ y x)) |
4 calls. Slowest were:
| 158.0ms | (cbrt (+ y x)) |
| 156.0ms | (cbrt (+ y x)) |
| 146.0ms | (* (cbrt (+ y x)) (cbrt (+ y x))) |
| 131.0ms | (cbrt (+ y x)) |
59 calls. Slowest were:
| 304.0ms | (- (+ (pow x 1/3) (* 1/3 (* (pow (/ 1 (pow x 2)) 1/3) y))) (* 1/9 (* (pow (/ 1 (pow x 5)) 1/3) (pow y 2)))) |
| 284.0ms | (- (+ (pow x 1/3) (* 1/3 (* (pow (/ 1 (pow x 2)) 1/3) y))) (* 1/9 (* (pow (/ 1 (pow x 5)) 1/3) (pow y 2)))) |
| 230.0ms | (- (+ (* 2/3 (* (pow (/ 1 x) 1/3) y)) (pow x 2/3)) (* 1/9 (* (pow (/ 1 (pow x 4)) 1/3) (pow y 2)))) |
13 alts after pruning (12 fresh and 1 done)
Merged error: 0.1b
Found 4 expressions with local error:
| 0.2b | (- (fma (log t) a (log z)) (fma 0.5 (log t) t)) |
| 0.2b | (+ (log (+ y x)) (- (fma (log t) a (log z)) (fma 0.5 (log t) t))) |
| 0.2b | (fma (log t) a (log z)) |
| 0.0b | (fma 0.5 (log t) t) |
4 calls. Slowest were:
| 19.0ms | (+ (log (+ y x)) (- (fma (log t) a (log z)) (fma 0.5 (log t) t))) |
| 8.0ms | (- (fma (log t) a (log z)) (fma 0.5 (log t) t)) |
| 0.0ms | (fma (log t) a (log z)) |
4 calls. Slowest were:
| 236.0ms | (fma 0.5 (log t) t) |
| 150.0ms | (+ (log (+ y x)) (- (fma (log t) a (log z)) (fma 0.5 (log t) t))) |
| 117.0ms | (fma (log t) a (log z)) |
| 80.0ms | (- (fma (log t) a (log z)) (fma 0.5 (log t) t)) |
63 calls. Slowest were:
| 974.0ms | (- (* 0.5 (log (/ 1 t))) (+ t (+ (log (/ 1 z)) (* a (log (/ 1 t)))))) |
| 621.0ms | (- (+ t (* 0.5 (log -1))) (* 0.5 (log (/ -1 t)))) |
| 493.0ms | (* (+ y x) (exp (- (fma (log t) a (log z)) (fma 0.5 (log t) t)))) |
8 alts after pruning (7 fresh and 1 done)
Merged error: 0.1b
Found 4 expressions with local error:
| 0.5b | (+ (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))) |
| 0.0b | (- (+ (log (+ x y)) (log z)) t) |
4 calls. Slowest were:
| 138.0ms | (+ (- (+ (log (+ x y)) (log z)) t) (* (- a 0.5) (log t))) |
| 55.0ms | (- (+ (log (+ x y)) (log z)) t) |
| 5.0ms | (+ (log (+ x y)) (log z)) |
4 calls. Slowest were:
| 242.0ms | (+ (- (+ (log (+ x y)) (log z)) t) (* (- a 0.5) (log t))) |
| 220.0ms | (- (+ (log (+ x y)) (log z)) t) |
| 97.0ms | (+ (log (+ x y)) (log z)) |
| 57.0ms | (* (- a 0.5) (log t)) |
52 calls. Slowest were:
| 518.0ms | (- (+ (* a (log t)) (+ (log z) (log y))) (+ t (* 0.5 (log t)))) |
| 356.0ms | (- (* 0.5 (log (/ 1 t))) (+ t (+ (log (/ 1 z)) (+ (log (/ 1 x)) (* a (log (/ 1 t))))))) |
| 321.0ms | (- (+ (* 0.5 (log (/ -1 t))) (* a (log -1))) (+ (* a (log (/ -1 t))) (* 0.5 (log -1)))) |
13 alts after pruning (13 fresh and 0 done)
Merged error: 0.1b
0% (0.2b remaining)
Error of 0.3b against oracle of 0.1b and baseline of 0.3b