


Bits error versus a



Bits error versus b



Bits error versus c
if b < 2.1097448153148673e+99Initial program 16.0
Simplified16.0
Taylor expanded around inf 16.0
Simplified16.0
rmApplied add-sqr-sqrt16.1
if 2.1097448153148673e+99 < b Initial program 29.3
Simplified29.3
Taylor expanded around inf 29.3
Simplified29.3
Taylor expanded around 0 2.5
Final simplification12.9
herbie shell --seed 2019004 +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: 17.4s)Debug log
1 calls. Slowest were:
| 136.0ms | (if (>= b 0) (/ (* 2 c) (- (- b) (sqrt (- (* b b) (* (* 4 a) c))))) (/ (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a))) |
1 alts after pruning (1 fresh and 0 done)
Merged error: 19.7b
Found 4 expressions with local error:
| 22.0b | (sqrt (fma -4 (* c a) (* b b))) |
| 22.0b | (sqrt (fma -4 (* c a) (* b b))) |
| 0.9b | (- (- b) (sqrt (fma -4 (* c a) (* b b)))) |
| 0.8b | (fma -4 (* c a) (* b b)) |
4 calls. Slowest were:
| 9.0ms | (- (- b) (sqrt (fma -4 (* c a) (* b b)))) |
| 4.0ms | (sqrt (fma -4 (* c a) (* b b))) |
| 2.0ms | (sqrt (fma -4 (* c a) (* b b))) |
4 calls. Slowest were:
| 91.0ms | (sqrt (fma -4 (* c a) (* b b))) |
| 62.0ms | (- (- b) (sqrt (fma -4 (* c a) (* b b)))) |
| 40.0ms | (sqrt (fma -4 (* c a) (* b b))) |
| 33.0ms | (fma -4 (* c a) (* b b)) |
76 calls. Slowest were:
| 77.0ms | (fma 1 (- b) (- (* (sqrt (fma -4 (* c a) (* b b))) 1))) |
| 74.0ms | (fma 1 (- b) (- (* (sqrt (fma -4 (* c a) (* b b))) (sqrt 1)))) |
| 69.0ms | (fma 1 (- b) (- (* (sqrt (cbrt (fma -4 (* c a) (* b b)))) (sqrt (* (cbrt (fma -4 (* c a) (* b b))) (cbrt (fma -4 (* c a) (* b b)))))))) |
9 alts after pruning (9 fresh and 0 done)
Merged error: 13.0b
Found 4 expressions with local error:
| 22.0b | (sqrt (fma -4 (* c a) (* b b))) |
| 22.0b | (sqrt (fma (* a -4) c (* b b))) |
| 0.9b | (- (- b) (sqrt (fma -4 (* c a) (* b b)))) |
| 0.8b | (fma -4 (* c a) (* b b)) |
4 calls. Slowest were:
| 9.0ms | (- (- b) (sqrt (fma -4 (* c a) (* b b)))) |
| 2.0ms | (sqrt (fma -4 (* c a) (* b b))) |
| 2.0ms | (sqrt (fma (* a -4) c (* b b))) |
4 calls. Slowest were:
| 72.0ms | (- (- b) (sqrt (fma -4 (* c a) (* b b)))) |
| 66.0ms | (sqrt (fma (* a -4) c (* b b))) |
| 54.0ms | (sqrt (fma -4 (* c a) (* b b))) |
| 32.0ms | (fma -4 (* c a) (* b b)) |
76 calls. Slowest were:
| 77.0ms | (fma 1 (- b) (- (* (sqrt (fma -4 (* c a) (* b b))) (sqrt 1)))) |
| 72.0ms | (- (* 2 (/ (* a c) b)) (* 2 b)) |
| 63.0ms | (/ (exp (- b)) (exp (sqrt (fma -4 (* c a) (* b b))))) |
8 alts after pruning (8 fresh and 0 done)
Merged error: 13.0b
Found 4 expressions with local error:
| 22.0b | (sqrt (fma (* a -4) c (* b b))) |
| 22.0b | (sqrt (fma -4 (* c a) (* b b))) |
| 22.0b | (sqrt (fma -4 (* c a) (* b b))) |
| 10.6b | (- (- 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 (* a -4) c (* b b))) |
| 1.0ms | (sqrt (fma -4 (* c a) (* b b))) |
4 calls. Slowest were:
| 52.0ms | (sqrt (fma -4 (* c a) (* b b))) |
| 50.0ms | (- (- b) (* (sqrt (sqrt (fma -4 (* c a) (* b b)))) (sqrt (sqrt (fma -4 (* c a) (* b b)))))) |
| 45.0ms | (sqrt (fma (* a -4) c (* b b))) |
| 41.0ms | (sqrt (fma -4 (* c a) (* b b))) |
37 calls. Slowest were:
| 81.0ms | (- (* 2 (/ (* a c) b)) (* 2 b)) |
| 53.0ms | (* -2 (/ (* a c) b)) |
| 47.0ms | (fma (sqrt (- b)) (sqrt (- b)) (- (* (sqrt (sqrt (fma -4 (* c a) (* b b)))) (sqrt (sqrt (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.0b | (sqrt (fma (* a -4) c (* b b))) |
| 22.0b | (sqrt (fma (* a -4) c (* b b))) |
| 22.0b | (sqrt (fma -4 (* c a) (* b b))) |
| 10.5b | (- (* (sqrt (sqrt (fma (* a -4) c (* b b)))) (sqrt (sqrt (fma (* a -4) c (* b b))))) b) |
4 calls. Slowest were:
| 24.0ms | (- (* (sqrt (sqrt (fma (* a -4) c (* b b)))) (sqrt (sqrt (fma (* a -4) c (* b b))))) b) |
| 2.0ms | (sqrt (fma (* a -4) c (* b b))) |
| 2.0ms | (sqrt (fma -4 (* c a) (* b b))) |
4 calls. Slowest were:
| 67.0ms | (sqrt (fma (* a -4) c (* b b))) |
| 66.0ms | (sqrt (fma (* a -4) c (* b b))) |
| 55.0ms | (- (* (sqrt (sqrt (fma (* a -4) c (* b b)))) (sqrt (sqrt (fma (* a -4) c (* b b))))) b) |
| 52.0ms | (sqrt (fma -4 (* c a) (* b b))) |
25 calls. Slowest were:
| 17.0ms | (sqrt (fma (* a -4) c (* b b))) |
| 15.0ms | (sqrt (sqrt (fma (* a -4) c (* b b)))) |
| 13.0ms | (sqrt (sqrt (fma (* a -4) c (* b b)))) |
8 alts after pruning (6 fresh and 2 done)
Merged error: 13.0b
91.6% (0.6b remaining)
Error of 12.9b against oracle of 12.3b and baseline of 19.2b