


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
Final simplification0.3
herbie shell --seed 2018362
(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: 36.2s)Debug log
2 alts after pruning (2 fresh and 0 done)
Merged error: 0.3b
Found 4 expressions with local error:
| 0.2b | (+ (log (+ y x)) (* (- a 0.5) (log t))) |
| 0.2b | (* (- a 0.5) (log t)) |
| 0.2b | (- (+ (log (+ y x)) (* (- a 0.5) (log t))) (- t (log z))) |
| 0.0b | (- t (log z)) |
4 calls. Slowest were:
| 19.0ms | (- (+ (log (+ y x)) (* (- a 0.5) (log t))) (- t (log z))) |
| 8.0ms | (* (- a 0.5) (log t)) |
| 5.0ms | (+ (log (+ y x)) (* (- a 0.5) (log t))) |
4 calls. Slowest were:
| 120.0ms | (- (+ (log (+ y x)) (* (- a 0.5) (log t))) (- t (log z))) |
| 114.0ms | (+ (log (+ y x)) (* (- a 0.5) (log t))) |
| 46.0ms | (* (- a 0.5) (log t)) |
| 25.0ms | (- t (log z)) |
47 calls. Slowest were:
| 398.0ms | (* (- (log (+ y x)) (* (- a 0.5) (log t))) (+ t (log z))) |
| 348.0ms | (- (+ (* a (log t)) (+ (log z) (log x))) (+ t (* 0.5 (log t)))) |
| 288.0ms | (- (+ (log (+ y x)) (* (- a 0.5) (log t))) (- t (log z))) |
11 alts after pruning (11 fresh and 0 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:
| 126.0ms | (+ (- (+ (log (+ x y)) (log z)) t) (* (- a 0.5) (log t))) |
| 44.0ms | (- (+ (log (+ x y)) (log z)) t) |
| 6.0ms | (+ (log (+ x y)) (log z)) |
4 calls. Slowest were:
| 200.0ms | (+ (- (+ (log (+ x y)) (log z)) t) (* (- a 0.5) (log t))) |
| 164.0ms | (- (+ (log (+ x y)) (log z)) t) |
| 62.0ms | (* (- a 0.5) (log t)) |
| 60.0ms | (+ (log (+ x y)) (log z)) |
46 calls. Slowest were:
| 444.0ms | (- (+ (* a (log t)) (+ (log z) (log y))) (+ t (* 0.5 (log t)))) |
| 287.0ms | (- (* 0.5 (log (/ 1 t))) (+ t (+ (log (/ 1 z)) (+ (log (/ 1 x)) (* a (log (/ 1 t))))))) |
| 246.0ms | (- (* 2 (log -1)) (+ (log (/ -1 x)) (log (/ -1 z)))) |
11 alts after pruning (10 fresh and 1 done)
Merged error: 0.0b
Found 4 expressions with local error:
| 0.8b | (* (cbrt (- a 0.5)) (cbrt (- a 0.5))) |
| 0.4b | (* (cbrt (- a 0.5)) (log t)) |
| 0.4b | (* (* (cbrt (- a 0.5)) (cbrt (- a 0.5))) (* (cbrt (- a 0.5)) (log t))) |
| 0.3b | (cbrt (- a 0.5)) |
4 calls. Slowest were:
| 21.0ms | (* (* (cbrt (- a 0.5)) (cbrt (- a 0.5))) (* (cbrt (- a 0.5)) (log t))) |
| 10.0ms | (* (cbrt (- a 0.5)) (cbrt (- a 0.5))) |
| 9.0ms | (* (cbrt (- a 0.5)) (log t)) |
4 calls. Slowest were:
| 140.0ms | (* (cbrt (- a 0.5)) (log t)) |
| 104.0ms | (* (* (cbrt (- a 0.5)) (cbrt (- a 0.5))) (* (cbrt (- a 0.5)) (log t))) |
| 78.0ms | (* (cbrt (- a 0.5)) (cbrt (- a 0.5))) |
| 45.0ms | (cbrt (- a 0.5)) |
118 calls. Slowest were:
| 607.0ms | (* (* (* (* (cbrt (- a 0.5)) (cbrt (- a 0.5))) (* (cbrt (- a 0.5)) (cbrt (- a 0.5)))) (* (cbrt (- a 0.5)) (cbrt (- a 0.5)))) (* (- a 0.5) (* (* (log t) (log t)) (log t)))) |
| 492.0ms | (* (* (* (* (cbrt (- a 0.5)) (cbrt (- a 0.5))) (* (cbrt (- a 0.5)) (cbrt (- a 0.5)))) (* (cbrt (- a 0.5)) (cbrt (- a 0.5)))) (* (* (* (cbrt (- a 0.5)) (log t)) (* (cbrt (- a 0.5)) (log t))) (* (cbrt (- a 0.5)) (log t)))) |
| 331.0ms | (- (+ (* 2.2222222222222223 (* (pow a 2) (pow 0.25 1/3))) (pow 0.25 1/3)) (+ (* 0.16666666666666666 (* (pow a 2) (pow (/ 1 (pow 0.25 5)) 1/3))) (* 1.3333333333333333 (* a (pow 0.25 1/3))))) |
13 alts after pruning (12 fresh and 1 done)
Merged error: 0.0b
Found 4 expressions with local error:
| 0.5b | (cbrt (* (- a 0.5) (log t))) |
| 0.5b | (cbrt (* (- a 0.5) (log t))) |
| 0.5b | (cbrt (* (- a 0.5) (log t))) |
| 0.5b | (* (cbrt (* (- a 0.5) (log t))) (cbrt (* (- a 0.5) (log t)))) |
4 calls. Slowest were:
| 20.0ms | (* (cbrt (* (- a 0.5) (log t))) (cbrt (* (- a 0.5) (log t)))) |
| 4.0ms | (cbrt (* (- a 0.5) (log t))) |
| 4.0ms | (cbrt (* (- a 0.5) (log t))) |
4 calls. Slowest were:
| 135.0ms | (* (cbrt (* (- a 0.5) (log t))) (cbrt (* (- a 0.5) (log t)))) |
| 118.0ms | (cbrt (* (- a 0.5) (log t))) |
| 93.0ms | (cbrt (* (- a 0.5) (log t))) |
| 88.0ms | (cbrt (* (- a 0.5) (log t))) |
49 calls. Slowest were:
| 503.0ms | (- (exp (* 1/3 (- (log (- (log (/ 1 t)))) (log (/ 1 a))))) (+ (* 0.16666666666666666 (/ (exp (* 1/3 (- (log (- (log (/ 1 t)))) (log (/ 1 a))))) a)) (* 0.027777777777777776 (/ (exp (* 1/3 (- (log (- (log (/ 1 t)))) (log (/ 1 a))))) (pow a 2))))) |
| 406.0ms | (* (* (- a 0.5) (log t)) (* (- a 0.5) (log t))) |
| 404.0ms | (- (exp (* 1/3 (- (log (pow (log (/ 1 t)) 2)) (* 2 (log (/ 1 a)))))) (+ (* 0.027777777777777776 (/ (exp (* 1/3 (- (log (pow (log (/ 1 t)) 2)) (* 2 (log (/ 1 a)))))) (pow a 2))) (* 0.3333333333333333 (/ (exp (* 1/3 (- (log (pow (log (/ 1 t)) 2)) (* 2 (log (/ 1 a)))))) a)))) |
17 alts after pruning (16 fresh and 1 done)
Merged error: 0.0b
0% (0.2b remaining)
Error of 0.3b against oracle of 0.0b and baseline of 0.3b