


Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t



Bits error versus a



Bits error versus b



Bits error versus c
Results
Initial program 3.7
rmApplied associate-/l*2.9
Final simplification2.9
herbie shell --seed 2019005
(FPCore (x y z t a b c)
:name "Numeric.SpecFunctions:invIncompleteBetaWorker from math-functions-0.1.5.2"
(/ x (+ x (* y (exp (* 2.0 (- (/ (* z (sqrt (+ t a))) t) (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0)))))))))))
Time bar (total: 1.8m)Debug log
1 calls. Slowest were:
| 242.0ms | (/ x (+ x (* y (exp (* 2.0 (- (/ (* z (sqrt (+ t a))) t) (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0)))))))))) |
1 alts after pruning (1 fresh and 0 done)
Merged error: 1.7b
Found 4 expressions with local error:
| 3.2b | (/ (* z (sqrt (+ t a))) t) |
| 0.9b | (- (/ (* z (sqrt (+ t a))) t) (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0))))) |
| 0.2b | (/ 2.0 (* t 3.0)) |
| 0.2b | (* z (sqrt (+ t a))) |
4 calls. Slowest were:
| 18.0ms | (- (/ (* z (sqrt (+ t a))) t) (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0))))) |
| 4.0ms | (* z (sqrt (+ t a))) |
| 4.0ms | (/ (* z (sqrt (+ t a))) t) |
4 calls. Slowest were:
| 210.0ms | (- (/ (* z (sqrt (+ t a))) t) (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0))))) |
| 73.0ms | (/ (* z (sqrt (+ t a))) t) |
| 48.0ms | (* z (sqrt (+ t a))) |
| 11.0ms | (/ 2.0 (* t 3.0)) |
57 calls. Slowest were:
| 677.0ms | (- (* (* z (sqrt (+ t a))) (* (+ b c) (+ (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0))))) (* t (* (- (* b b) (* c c)) (- (* (+ a (/ 5.0 6.0)) (+ a (/ 5.0 6.0))) (* (/ 2.0 (* t 3.0)) (/ 2.0 (* t 3.0))))))) |
| 503.0ms | (* t (* (+ b c) (* (- a (/ 5.0 6.0)) (* t 3.0)))) |
| 444.0ms | (- (* (* z (sqrt (+ t a))) (* (+ b c) (+ (* (+ a (/ 5.0 6.0)) (+ a (/ 5.0 6.0))) (+ (* (/ 2.0 (* t 3.0)) (/ 2.0 (* t 3.0))) (* (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0))))))) (* t (* (- (* b b) (* c c)) (- (pow (+ a (/ 5.0 6.0)) 3) (pow (/ 2.0 (* t 3.0)) 3))))) |
3 alts after pruning (3 fresh and 0 done)
Merged error: 0.2b
Found 4 expressions with local error:
| 2.2b | (/ z (/ t (sqrt (+ t a)))) |
| 0.9b | (- (/ z (/ t (sqrt (+ t a)))) (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0))))) |
| 0.3b | (/ t (sqrt (+ t a))) |
| 0.2b | (/ 2.0 (* t 3.0)) |
4 calls. Slowest were:
| 8.0ms | (- (/ z (/ t (sqrt (+ t a)))) (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0))))) |
| 1.0ms | (/ t (sqrt (+ t a))) |
| 1.0ms | (/ z (/ t (sqrt (+ t a)))) |
4 calls. Slowest were:
| 215.0ms | (- (/ z (/ t (sqrt (+ t a)))) (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0))))) |
| 59.0ms | (/ t (sqrt (+ t a))) |
| 49.0ms | (/ z (/ t (sqrt (+ t a)))) |
| 9.0ms | (/ 2.0 (* t 3.0)) |
62 calls. Slowest were:
| 420.0ms | (- (* z (* (+ (* b b) (+ (* c c) (* b c))) (+ (* (+ a (/ 5.0 6.0)) (+ a (/ 5.0 6.0))) (+ (* (/ 2.0 (* t 3.0)) (/ 2.0 (* t 3.0))) (* (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0))))))) (* (/ t (sqrt (+ t a))) (* (- (pow b 3) (pow c 3)) (- (pow (+ a (/ 5.0 6.0)) 3) (pow (/ 2.0 (* t 3.0)) 3))))) |
| 399.0ms | (- (* z (* (+ (* b b) (+ (* c c) (* b c))) (+ (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0))))) (* (/ t (sqrt (+ t a))) (* (- (pow b 3) (pow c 3)) (- (* (+ a (/ 5.0 6.0)) (+ a (/ 5.0 6.0))) (* (/ 2.0 (* t 3.0)) (/ 2.0 (* t 3.0))))))) |
| 370.0ms | (* (/ t (sqrt (+ t a))) (* (+ (* a a) (- (* (/ 5.0 6.0) (/ 5.0 6.0)) (* a (/ 5.0 6.0)))) (* t 3.0))) |
3 alts after pruning (2 fresh and 1 done)
Merged error: 0.0b
Found 4 expressions with local error:
| 39.1b | (cbrt (* (* (/ 2.0 (* t 3.0)) (/ 2.0 (* t 3.0))) (/ 2.0 (* t 3.0)))) |
| 2.2b | (/ z (/ t (sqrt (+ t a)))) |
| 0.9b | (- (/ z (/ t (sqrt (+ t a)))) (* (- b c) (- (+ a (/ 5.0 6.0)) (cbrt (* (* (/ 2.0 (* t 3.0)) (/ 2.0 (* t 3.0))) (/ 2.0 (* t 3.0))))))) |
| 0.3b | (/ t (sqrt (+ t a))) |
4 calls. Slowest were:
| 32.0ms | (- (/ z (/ t (sqrt (+ t a)))) (* (- b c) (- (+ a (/ 5.0 6.0)) (cbrt (* (* (/ 2.0 (* t 3.0)) (/ 2.0 (* t 3.0))) (/ 2.0 (* t 3.0))))))) |
| 6.0ms | (cbrt (* (* (/ 2.0 (* t 3.0)) (/ 2.0 (* t 3.0))) (/ 2.0 (* t 3.0)))) |
| 1.0ms | (/ t (sqrt (+ t a))) |
4 calls. Slowest were:
| 282.0ms | (- (/ z (/ t (sqrt (+ t a)))) (* (- b c) (- (+ a (/ 5.0 6.0)) (cbrt (* (* (/ 2.0 (* t 3.0)) (/ 2.0 (* t 3.0))) (/ 2.0 (* t 3.0))))))) |
| 93.0ms | (cbrt (* (* (/ 2.0 (* t 3.0)) (/ 2.0 (* t 3.0))) (/ 2.0 (* t 3.0)))) |
| 71.0ms | (/ z (/ t (sqrt (+ t a)))) |
| 38.0ms | (/ t (sqrt (+ t a))) |
142 calls. Slowest were:
| 692.0ms | (- (* z (* (+ (* b b) (+ (* c c) (* b c))) (* (- a (/ 5.0 6.0)) (cbrt (* (* t 3.0) (* t 3.0)))))) (* (/ t (sqrt (+ t a))) (* (- (pow b 3) (pow c 3)) (- (* (- (* a a) (* (/ 5.0 6.0) (/ 5.0 6.0))) (cbrt (* (* t 3.0) (* t 3.0)))) (* (- a (/ 5.0 6.0)) (cbrt (* (* 2.0 (/ 2.0 (* t 3.0))) 2.0))))))) |
| 689.0ms | (* (- b c) (- (/ 5.0 6.0) (cbrt (* (* (/ 2.0 (* t 3.0)) (/ 2.0 (* t 3.0))) (/ 2.0 (* t 3.0)))))) |
| 533.0ms | (* (/ t (sqrt (+ t a))) (* (+ b c) (* (- a (/ 5.0 6.0)) (cbrt (* (* t 3.0) (* t 3.0)))))) |
3 alts after pruning (1 fresh and 2 done)
Merged error: 0.0b
Found 4 expressions with local error:
| 24.3b | (/ (- (* (- a (/ 5.0 6.0)) (* z (* 3.0 t))) (* (* (- a (/ 5.0 6.0)) (- (* (* 3.0 t) (+ a (/ 5.0 6.0))) 2.0)) (/ (* t (- b c)) (sqrt (+ a t))))) (* (/ t (sqrt (+ t a))) (* (- a (/ 5.0 6.0)) (* t 3.0)))) |
| 6.4b | (/ (* t (- b c)) (sqrt (+ a t))) |
| 4.2b | (* (* (- a (/ 5.0 6.0)) (- (* (* 3.0 t) (+ a (/ 5.0 6.0))) 2.0)) (/ (* t (- b c)) (sqrt (+ a t)))) |
| 4.1b | (- (* (- a (/ 5.0 6.0)) (* z (* 3.0 t))) (* (* (- a (/ 5.0 6.0)) (- (* (* 3.0 t) (+ a (/ 5.0 6.0))) 2.0)) (/ (* t (- b c)) (sqrt (+ a t))))) |
4 calls. Slowest were:
| 74.0ms | (/ (- (* (- a (/ 5.0 6.0)) (* z (* 3.0 t))) (* (* (- a (/ 5.0 6.0)) (- (* (* 3.0 t) (+ a (/ 5.0 6.0))) 2.0)) (/ (* t (- b c)) (sqrt (+ a t))))) (* (/ t (sqrt (+ t a))) (* (- a (/ 5.0 6.0)) (* t 3.0)))) |
| 47.0ms | (* (* (- a (/ 5.0 6.0)) (- (* (* 3.0 t) (+ a (/ 5.0 6.0))) 2.0)) (/ (* t (- b c)) (sqrt (+ a t)))) |
| 46.0ms | (- (* (- a (/ 5.0 6.0)) (* z (* 3.0 t))) (* (* (- a (/ 5.0 6.0)) (- (* (* 3.0 t) (+ a (/ 5.0 6.0))) 2.0)) (/ (* t (- b c)) (sqrt (+ a t))))) |
4 calls. Slowest were:
| 1.5s | (/ (- (* (- a (/ 5.0 6.0)) (* z (* 3.0 t))) (* (* (- a (/ 5.0 6.0)) (- (* (* 3.0 t) (+ a (/ 5.0 6.0))) 2.0)) (/ (* t (- b c)) (sqrt (+ a t))))) (* (/ t (sqrt (+ t a))) (* (- a (/ 5.0 6.0)) (* t 3.0)))) |
| 806.0ms | (- (* (- a (/ 5.0 6.0)) (* z (* 3.0 t))) (* (* (- a (/ 5.0 6.0)) (- (* (* 3.0 t) (+ a (/ 5.0 6.0))) 2.0)) (/ (* t (- b c)) (sqrt (+ a t))))) |
| 218.0ms | (* (* (- a (/ 5.0 6.0)) (- (* (* 3.0 t) (+ a (/ 5.0 6.0))) 2.0)) (/ (* t (- b c)) (sqrt (+ a t)))) |
| 97.0ms | (/ (* t (- b c)) (sqrt (+ a t))) |
216 calls. Slowest were:
| 662.0ms | (- (* (* (- (* a a) (* (/ 5.0 6.0) (/ 5.0 6.0))) (* z (* 3.0 t))) (* (+ a (/ 5.0 6.0)) (sqrt (+ a t)))) (* (+ a (/ 5.0 6.0)) (* (* (- (* a a) (* (/ 5.0 6.0) (/ 5.0 6.0))) (- (* (* 3.0 t) (+ a (/ 5.0 6.0))) 2.0)) (* t (- b c))))) |
| 637.0ms | (/ (* (* (- (* (- a (/ 5.0 6.0)) (* z (* 3.0 t))) (* (* (- a (/ 5.0 6.0)) (- (* (* 3.0 t) (+ a (/ 5.0 6.0))) 2.0)) (/ (* t (- b c)) (sqrt (+ a t))))) (- (* (- a (/ 5.0 6.0)) (* z (* 3.0 t))) (* (* (- a (/ 5.0 6.0)) (- (* (* 3.0 t) (+ a (/ 5.0 6.0))) 2.0)) (/ (* t (- b c)) (sqrt (+ a t)))))) (- (* (- a (/ 5.0 6.0)) (* z (* 3.0 t))) (* (* (- a (/ 5.0 6.0)) (- (* (* 3.0 t) (+ a (/ 5.0 6.0))) 2.0)) (/ (* t (- b c)) (sqrt (+ a t)))))) (* (* (* (/ t (sqrt (+ t a))) (* (- a (/ 5.0 6.0)) (* t 3.0))) (* (/ t (sqrt (+ t a))) (* (- a (/ 5.0 6.0)) (* t 3.0)))) (* (/ t (sqrt (+ t a))) (* (- a (/ 5.0 6.0)) (* t 3.0))))) |
| 632.0ms | (- (* (* (- (* a a) (* (/ 5.0 6.0) (/ 5.0 6.0))) (* z (* 3.0 t))) (* (+ (* (* (* 3.0 t) (+ a (/ 5.0 6.0))) (* (* 3.0 t) (+ a (/ 5.0 6.0)))) (+ (* 2.0 2.0) (* (* (* 3.0 t) (+ a (/ 5.0 6.0))) 2.0))) (sqrt (+ a t)))) (* (+ a (/ 5.0 6.0)) (* (* (- a (/ 5.0 6.0)) (- (pow (* (* 3.0 t) (+ a (/ 5.0 6.0))) 3) (pow 2.0 3))) (* t (- b c))))) |
3 alts after pruning (0 fresh and 3 done)
Merged error: 0.0b
0% (2.4b remaining)
Error of 2.9b against oracle of 0.6b and baseline of 2.9b