


Bits error versus a



Bits error versus b



Bits error versus c
if b < 5.001839899625071e+77Initial program 14.7
Initial simplification14.7
rmApplied add-sqr-sqrt14.7
Applied sqrt-prod14.8
Applied fma-neg14.7
if 5.001839899625071e+77 < b Initial program 40.3
Initial simplification40.3
Taylor expanded around 0 5.3
Final simplification13.1
herbie shell --seed 2018362 +o rules:numerics
(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: 14.4s)Debug log
1 alts after pruning (1 fresh and 0 done)
Merged error: 17.0b
Found 4 expressions with local error:
| 21.0b | (sqrt (fma c (* a -4) (* b b))) |
| 21.0b | (sqrt (fma c (* a -4) (* b b))) |
| 1.8b | (- (sqrt (fma c (* a -4) (* b b))) b) |
| 0.9b | (- (- b) (sqrt (fma c (* a -4) (* b b)))) |
4 calls. Slowest were:
| 5.0ms | (- (sqrt (fma c (* a -4) (* b b))) b) |
| 5.0ms | (- (- b) (sqrt (fma c (* a -4) (* b b)))) |
| 1.0ms | (sqrt (fma c (* a -4) (* b b))) |
4 calls. Slowest were:
| 67.0ms | (- (sqrt (fma c (* a -4) (* b b))) b) |
| 57.0ms | (sqrt (fma c (* a -4) (* b b))) |
| 45.0ms | (sqrt (fma c (* a -4) (* b b))) |
| 44.0ms | (- (- b) (sqrt (fma c (* a -4) (* b b)))) |
81 calls. Slowest were:
| 86.0ms | (- (* 2 (/ (* a c) b)) (* 2 b)) |
| 79.0ms | (fma 1 (- b) (- (* (sqrt (fma c (* a -4) (* b b))) 1))) |
| 78.0ms | (fma 1 (- b) (- (* (sqrt (fma c (* a -4) (* b b))) (sqrt 1)))) |
10 alts after pruning (10 fresh and 0 done)
Merged error: 11.8b
Found 4 expressions with local error:
| 21.0b | (sqrt (fma c (* a -4) (* b b))) |
| 21.0b | (sqrt (fma c (* a -4) (* b b))) |
| 21.0b | (sqrt (fma c (* a -4) (* b b))) |
| 13.8b | (fma (sqrt (sqrt (fma c (* a -4) (* b b)))) (sqrt (sqrt (fma c (* a -4) (* b b)))) (- b)) |
4 calls. Slowest were:
| 1.0ms | (sqrt (fma c (* a -4) (* b b))) |
| 1.0ms | (sqrt (fma c (* a -4) (* b b))) |
| 1.0ms | (sqrt (fma c (* a -4) (* b b))) |
4 calls. Slowest were:
| 278.0ms | (fma (sqrt (sqrt (fma c (* a -4) (* b b)))) (sqrt (sqrt (fma c (* a -4) (* b b)))) (- b)) |
| 64.0ms | (sqrt (fma c (* a -4) (* b b))) |
| 51.0ms | (sqrt (fma c (* a -4) (* b b))) |
| 50.0ms | (sqrt (fma c (* a -4) (* b b))) |
24 calls. Slowest were:
| 366.0ms | (- (pow (exp (* 1/4 (- (log -4) (+ (log (/ 1 a)) (log (/ 1 c)))))) 2) b) |
| 137.0ms | (- (pow (exp (* 1/4 (- (log -4) (+ (log (/ -1 c)) (log (/ -1 a)))))) 2) b) |
| 21.0ms | (sqrt (* (cbrt (fma c (* a -4) (* b b))) (cbrt (fma c (* a -4) (* b b))))) |
10 alts after pruning (9 fresh and 1 done)
Merged error: 11.8b
Found 4 expressions with local error:
| 21.0b | (sqrt (fma c (* a -4) (* b b))) |
| 21.0b | (sqrt (fma c (* a -4) (* b b))) |
| 21.0b | (sqrt (fma c (* a -4) (* b b))) |
| 8.9b | (- (- b) (* (sqrt (sqrt (fma c (* a -4) (* b b)))) (sqrt (sqrt (fma c (* a -4) (* b b)))))) |
4 calls. Slowest were:
| 4.0ms | (- (- b) (* (sqrt (sqrt (fma c (* a -4) (* b b)))) (sqrt (sqrt (fma c (* a -4) (* b b)))))) |
| 1.0ms | (sqrt (fma c (* a -4) (* b b))) |
| 1.0ms | (sqrt (fma c (* a -4) (* b b))) |
4 calls. Slowest were:
| 53.0ms | (sqrt (fma c (* a -4) (* b b))) |
| 49.0ms | (sqrt (fma c (* a -4) (* b b))) |
| 44.0ms | (sqrt (fma c (* a -4) (* b b))) |
| 43.0ms | (- (- b) (* (sqrt (sqrt (fma c (* a -4) (* b b)))) (sqrt (sqrt (fma c (* a -4) (* b b)))))) |
37 calls. Slowest were:
| 74.0ms | (- (* 2 (/ (* a c) b)) (* 2 b)) |
| 72.0ms | (* -2 (/ (* a c) b)) |
| 56.0ms | (/ (exp (- b)) (exp (* (sqrt (sqrt (fma c (* a -4) (* b b)))) (sqrt (sqrt (fma c (* a -4) (* b b))))))) |
12 alts after pruning (10 fresh and 2 done)
Merged error: 11.8b
Found 4 expressions with local error:
| 21.8b | (cbrt (fma c (* a -4) (* b b))) |
| 21.8b | (cbrt (fma (* c -4) a (* b b))) |
| 21.0b | (sqrt (fma c (* a -4) (* b b))) |
| 21.0b | (sqrt (fma c (* a -4) (* b b))) |
4 calls. Slowest were:
| 2.0ms | (sqrt (fma c (* a -4) (* b b))) |
| 2.0ms | (sqrt (fma c (* a -4) (* b b))) |
| 1.0ms | (cbrt (fma c (* a -4) (* b b))) |
4 calls. Slowest were:
| 204.0ms | (cbrt (fma c (* a -4) (* b b))) |
| 197.0ms | (cbrt (fma (* c -4) a (* b b))) |
| 59.0ms | (sqrt (fma c (* a -4) (* b b))) |
| 45.0ms | (sqrt (fma c (* a -4) (* b b))) |
26 calls. Slowest were:
| 228.0ms | (- (pow b 2/3) (* 4/3 (* (* a c) (pow (/ 1 (pow b 4)) 1/3)))) |
| 194.0ms | (exp (* 1/3 (- (log -4) (+ (log (/ 1 a)) (log (/ 1 c)))))) |
| 171.0ms | (exp (* 1/3 (- (log -4) (+ (log (/ 1 a)) (log (/ 1 c)))))) |
12 alts after pruning (9 fresh and 3 done)
Merged error: 11.8b
88.9% (0.8b remaining)
Error of 13.1b against oracle of 12.3b and baseline of 19.2b