


Bits error versus a



Bits error versus b



Bits error versus c
Results
if b < 7.4121645311061e+111Initial program 14.4
Initial simplification14.4
rmApplied add-sqr-sqrt14.5
if 7.4121645311061e+111 < b Initial program 46.5
Initial simplification46.5
Taylor expanded around 0 3.0
Final simplification12.9
herbie shell --seed 2018360
(FPCore (a b c)
:name "jeff quadratic root 1"
(if (>= b 0) (/ (- (- b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (/ (* 2 c) (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))))))
Time bar (total: 16.1s)Debug log
1 alts after pruning (1 fresh and 0 done)
Merged error: 17.8b
Found 4 expressions with local error:
| 22.7b | (sqrt (+ (* (* -4 a) c) (* b b))) |
| 22.7b | (sqrt (+ (* (* -4 a) c) (* b b))) |
| 0.9b | (- (sqrt (+ (* (* -4 a) c) (* b b))) b) |
| 0.8b | (- (- b) (sqrt (+ (* (* -4 a) c) (* b b)))) |
4 calls. Slowest were:
| 27.0ms | (- (sqrt (+ (* (* -4 a) c) (* b b))) b) |
| 13.0ms | (- (- b) (sqrt (+ (* (* -4 a) c) (* b b)))) |
| 3.0ms | (sqrt (+ (* (* -4 a) c) (* b b))) |
4 calls. Slowest were:
| 63.0ms | (- (sqrt (+ (* (* -4 a) c) (* b b))) b) |
| 52.0ms | (sqrt (+ (* (* -4 a) c) (* b b))) |
| 50.0ms | (sqrt (+ (* (* -4 a) c) (* b b))) |
| 43.0ms | (- (- b) (sqrt (+ (* (* -4 a) c) (* b b)))) |
30 calls. Slowest were:
| 219.0ms | (sqrt (- (* (* (* -4 a) c) (* (* -4 a) c)) (* (* b b) (* b b)))) |
| 209.0ms | (sqrt (+ (pow (* (* -4 a) c) 3) (pow (* b b) 3))) |
| 172.0ms | (sqrt (- (* (* (* -4 a) c) (* (* -4 a) c)) (* (* b b) (* b b)))) |
13 alts after pruning (13 fresh and 0 done)
Merged error: 11.9b
Found 4 expressions with local error:
| 22.7b | (sqrt (+ (* (* -4 a) c) (* b b))) |
| 22.7b | (sqrt (+ (* (* -4 a) c) (* b b))) |
| 22.7b | (sqrt (+ (* (* -4 a) c) (* b b))) |
| 0.9b | (- (sqrt (+ (* (* -4 a) c) (* b b))) b) |
4 calls. Slowest were:
| 29.0ms | (- (sqrt (+ (* (* -4 a) c) (* b b))) b) |
| 6.0ms | (sqrt (+ (* (* -4 a) c) (* b b))) |
| 6.0ms | (sqrt (+ (* (* -4 a) c) (* b b))) |
4 calls. Slowest were:
| 71.0ms | (sqrt (+ (* (* -4 a) c) (* b b))) |
| 68.0ms | (sqrt (+ (* (* -4 a) c) (* b b))) |
| 67.0ms | (sqrt (+ (* (* -4 a) c) (* b b))) |
| 56.0ms | (- (sqrt (+ (* (* -4 a) c) (* b b))) b) |
30 calls. Slowest were:
| 244.0ms | (sqrt (+ (pow (* (* -4 a) c) 3) (pow (* b b) 3))) |
| 244.0ms | (sqrt (+ (pow (* (* -4 a) c) 3) (pow (* b b) 3))) |
| 198.0ms | (sqrt (- (* (* (* -4 a) c) (* (* -4 a) c)) (* (* b b) (* b b)))) |
13 alts after pruning (12 fresh and 1 done)
Merged error: 11.9b
Found 4 expressions with local error:
| 22.7b | (sqrt (+ (* (* -4 a) c) (* b b))) |
| 22.7b | (sqrt (+ (* (* -4 a) c) (* b b))) |
| 22.7b | (sqrt (+ (* (* -4 a) c) (* b b))) |
| 10.8b | (- (- b) (* (sqrt (sqrt (+ (* (* -4 a) c) (* b b)))) (sqrt (sqrt (+ (* (* -4 a) c) (* b b)))))) |
4 calls. Slowest were:
| 7.0ms | (- (- b) (* (sqrt (sqrt (+ (* (* -4 a) c) (* b b)))) (sqrt (sqrt (+ (* (* -4 a) c) (* b b)))))) |
| 6.0ms | (sqrt (+ (* (* -4 a) c) (* b b))) |
| 6.0ms | (sqrt (+ (* (* -4 a) c) (* b b))) |
4 calls. Slowest were:
| 74.0ms | (- (- b) (* (sqrt (sqrt (+ (* (* -4 a) c) (* b b)))) (sqrt (sqrt (+ (* (* -4 a) c) (* b b)))))) |
| 65.0ms | (sqrt (+ (* (* -4 a) c) (* b b))) |
| 53.0ms | (sqrt (+ (* (* -4 a) c) (* b b))) |
| 47.0ms | (sqrt (+ (* (* -4 a) c) (* b b))) |
33 calls. Slowest were:
| 222.0ms | (sqrt (+ (pow (* (* -4 a) c) 3) (pow (* b b) 3))) |
| 193.0ms | (sqrt (- (* (* (* -4 a) c) (* (* -4 a) c)) (* (* b b) (* b b)))) |
| 189.0ms | (sqrt (- (* (* (* -4 a) c) (* (* -4 a) c)) (* (* b b) (* b b)))) |
13 alts after pruning (11 fresh and 2 done)
Merged error: 11.9b
Found 4 expressions with local error:
| 23.4b | (cbrt (+ (* (* -4 a) c) (* b b))) |
| 23.4b | (cbrt (+ (* b b) (* (* c a) -4))) |
| 22.7b | (sqrt (+ (* (* -4 a) c) (* b b))) |
| 7.0b | (- (* (fabs (cbrt (+ (* b b) (* (* c a) -4)))) (sqrt (cbrt (+ (* (* -4 a) c) (* b b))))) b) |
4 calls. Slowest were:
| 9.0ms | (- (* (fabs (cbrt (+ (* b b) (* (* c a) -4)))) (sqrt (cbrt (+ (* (* -4 a) c) (* b b))))) b) |
| 3.0ms | (sqrt (+ (* (* -4 a) c) (* b b))) |
| 2.0ms | (cbrt (+ (* (* -4 a) c) (* b b))) |
4 calls. Slowest were:
| 634.0ms | (cbrt (+ (* (* -4 a) c) (* b b))) |
| 111.0ms | (cbrt (+ (* b b) (* (* c a) -4))) |
| 93.0ms | (- (* (fabs (cbrt (+ (* b b) (* (* c a) -4)))) (sqrt (cbrt (+ (* (* -4 a) c) (* b b))))) b) |
| 65.0ms | (sqrt (+ (* (* -4 a) c) (* b b))) |
28 calls. Slowest were:
| 315.0ms | (exp (* 1/3 (- (log -4) (+ (log (/ -1 c)) (log (/ -1 a)))))) |
| 270.0ms | (- (exp (* 1/3 (+ (log -4) (+ (log a) (log c))))) (* 1/12 (* (exp (* 1/3 (- (log -4) (+ (* 2 (log a)) (* 2 (log c)))))) (pow b 2)))) |
| 254.0ms | (exp (* 1/3 (- (log -4) (+ (log (/ 1 a)) (log (/ 1 c)))))) |
13 alts after pruning (10 fresh and 3 done)
Merged error: 11.9b
92.1% (0.5b remaining)
Error of 12.9b against oracle of 12.4b and baseline of 19.1b