


Bits error versus a



Bits error versus b



Bits error versus c
if b < 4.534645027012494e+77Initial program 16.3
Initial simplification16.2
rmApplied add-sqr-sqrt16.2
Applied sqrt-prod16.4
Applied fma-neg16.3
if 4.534645027012494e+77 < b Initial program 27.5
Initial simplification27.5
Taylor expanded around 0 3.6
Final simplification13.1
herbie shell --seed 2018362 +o rules:numerics
(FPCore (a b c)
:name "jeff quadratic root 2"
(if (>= b 0) (/ (* 2 c) (- (- b) (sqrt (- (* b b) (* (* 4 a) c))))) (/ (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a))))
Time bar (total: 15.2s)Debug log
1 alts after pruning (1 fresh and 0 done)
Merged error: 18.7b
Found 4 expressions with local error:
| 21.8b | (sqrt (fma -4 (* c a) (* b b))) |
| 21.8b | (sqrt (fma -4 (* c a) (* b b))) |
| 1.8b | (- (sqrt (fma -4 (* c a) (* b b))) b) |
| 0.9b | (- (- b) (sqrt (fma -4 (* c a) (* b b)))) |
4 calls. Slowest were:
| 5.0ms | (- (sqrt (fma -4 (* c a) (* b b))) b) |
| 5.0ms | (- (- b) (sqrt (fma -4 (* c a) (* b b)))) |
| 2.0ms | (sqrt (fma -4 (* c a) (* b b))) |
4 calls. Slowest were:
| 68.0ms | (sqrt (fma -4 (* c a) (* b b))) |
| 64.0ms | (- (sqrt (fma -4 (* c a) (* b b))) b) |
| 58.0ms | (- (- b) (sqrt (fma -4 (* c a) (* b b)))) |
| 53.0ms | (sqrt (fma -4 (* c a) (* b b))) |
81 calls. Slowest were:
| 100.0ms | (- (* 2 (/ (* a c) b)) (* 2 b)) |
| 80.0ms | (fma 1 (- b) (- (* (sqrt (fma -4 (* c a) (* b b))) 1))) |
| 69.0ms | (fma -1 b (- (* (sqrt (fma -4 (* c a) (* b b))) (sqrt 1)))) |
8 alts after pruning (8 fresh and 0 done)
Merged error: 13.1b
Found 4 expressions with local error:
| 21.8b | (sqrt (fma -4 (* c a) (* b b))) |
| 21.8b | (sqrt (fma -4 (* c a) (* b b))) |
| 21.8b | (sqrt (fma -4 (* c a) (* b b))) |
| 19.1b | (fma (sqrt (sqrt (fma -4 (* c a) (* b b)))) (sqrt (sqrt (fma -4 (* c a) (* b b)))) (- b)) |
4 calls. Slowest were:
| 2.0ms | (sqrt (fma -4 (* c a) (* b b))) |
| 2.0ms | (sqrt (fma -4 (* c a) (* b b))) |
| 1.0ms | (sqrt (fma -4 (* c a) (* b b))) |
4 calls. Slowest were:
| 329.0ms | (fma (sqrt (sqrt (fma -4 (* c a) (* b b)))) (sqrt (sqrt (fma -4 (* c a) (* b b)))) (- b)) |
| 67.0ms | (sqrt (fma -4 (* c a) (* b b))) |
| 62.0ms | (sqrt (fma -4 (* c a) (* b b))) |
| 53.0ms | (sqrt (fma -4 (* c a) (* b b))) |
24 calls. Slowest were:
| 378.0ms | (- (pow (exp (* 1/4 (- (log -4) (+ (log (/ 1 a)) (log (/ 1 c)))))) 2) b) |
| 90.0ms | (- (pow (exp (* 1/4 (- (log -4) (+ (log (/ -1 c)) (log (/ -1 a)))))) 2) b) |
| 21.0ms | (sqrt (* (cbrt (fma -4 (* c a) (* b b))) (cbrt (fma -4 (* c a) (* b b))))) |
8 alts after pruning (7 fresh and 1 done)
Merged error: 13.0b
Found 4 expressions with local error:
| 22.6b | (cbrt (fma -4 (* c a) (* b b))) |
| 22.6b | (cbrt (fma (* -4 a) c (* b b))) |
| 21.8b | (sqrt (fma -4 (* c a) (* b b))) |
| 21.8b | (sqrt (fma -4 (* c a) (* b b))) |
4 calls. Slowest were:
| 4.0ms | (cbrt (fma -4 (* c a) (* b b))) |
| 2.0ms | (sqrt (fma -4 (* c a) (* b b))) |
| 2.0ms | (sqrt (fma -4 (* c a) (* b b))) |
4 calls. Slowest were:
| 232.0ms | (cbrt (fma -4 (* c a) (* b b))) |
| 174.0ms | (cbrt (fma (* -4 a) c (* b b))) |
| 45.0ms | (sqrt (fma -4 (* c a) (* b b))) |
| 40.0ms | (sqrt (fma -4 (* c a) (* b b))) |
26 calls. Slowest were:
| 211.0ms | (exp (* 1/3 (- (log -4) (+ (log (/ 1 a)) (log (/ 1 c)))))) |
| 206.0ms | (- (pow b 2/3) (* 4/3 (* (* a c) (pow (/ 1 (pow b 4)) 1/3)))) |
| 189.0ms | (exp (* 1/3 (- (log -4) (+ (log (/ 1 a)) (log (/ 1 c)))))) |
9 alts after pruning (8 fresh and 1 done)
Merged error: 13.0b
Found 4 expressions with local error:
| 21.8b | (sqrt (fma -4 (* c a) (* b b))) |
| 21.8b | (sqrt (fma -4 (* c a) (* b b))) |
| 21.8b | (sqrt (fma -4 (* c a) (* b b))) |
| 6.5b | (- (- b) (* (sqrt (sqrt (fma -4 (* c a) (* b b)))) (sqrt (sqrt (fma -4 (* c a) (* b b)))))) |
4 calls. Slowest were:
| 4.0ms | (- (- b) (* (sqrt (sqrt (fma -4 (* c a) (* b b)))) (sqrt (sqrt (fma -4 (* c a) (* b b)))))) |
| 1.0ms | (sqrt (fma -4 (* c a) (* b b))) |
| 1.0ms | (sqrt (fma -4 (* c a) (* b b))) |
4 calls. Slowest were:
| 70.0ms | (sqrt (fma -4 (* c a) (* b b))) |
| 60.0ms | (sqrt (fma -4 (* c a) (* b b))) |
| 48.0ms | (sqrt (fma -4 (* c a) (* b b))) |
| 43.0ms | (- (- b) (* (sqrt (sqrt (fma -4 (* c a) (* b b)))) (sqrt (sqrt (fma -4 (* c a) (* b b)))))) |
37 calls. Slowest were:
| 71.0ms | (/ (exp (- b)) (exp (* (sqrt (sqrt (fma -4 (* c a) (* b b)))) (sqrt (sqrt (fma -4 (* c a) (* b b))))))) |
| 70.0ms | (* -2 (/ (* a c) b)) |
| 67.0ms | (- (* 2 (/ (* a c) b)) (* 2 b)) |
10 alts after pruning (8 fresh and 2 done)
Merged error: 13.0b
88.9% (0.8b remaining)
Error of 13.1b against oracle of 12.3b and baseline of 19.2b