


Bits error versus a



Bits error versus b



Bits error versus c
Results
if b < -1.854594106386292e+139Initial program 55.5
Simplified55.5
rmApplied add-sqr-sqrt55.6
Taylor expanded around -inf 11.3
if -1.854594106386292e+139 < b < 2.2049658914233497e+101Initial program 8.8
Simplified8.8
rmApplied add-sqr-sqrt8.8
Applied sqrt-prod8.9
if 2.2049658914233497e+101 < b Initial program 29.3
Simplified29.3
rmApplied add-sqr-sqrt29.3
Applied sqrt-prod29.3
Taylor expanded around inf 7.1
Final simplification8.8
herbie shell --seed 2019008
(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: 20.1s)Debug log
1 calls. Slowest were:
| 106.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:
| 23.3b | (sqrt (+ (* b b) (* (* -4 a) c))) |
| 23.3b | (sqrt (+ (* b b) (* (* -4 a) c))) |
| 1.0b | (+ (* b b) (* (* -4 a) c)) |
| 1.0b | (+ (* b b) (* (* -4 a) c)) |
4 calls. Slowest were:
| 5.0ms | (+ (* b b) (* (* -4 a) c)) |
| 5.0ms | (+ (* b b) (* (* -4 a) c)) |
| 4.0ms | (sqrt (+ (* b b) (* (* -4 a) c))) |
4 calls. Slowest were:
| 60.0ms | (sqrt (+ (* b b) (* (* -4 a) c))) |
| 44.0ms | (+ (* b b) (* (* -4 a) c)) |
| 43.0ms | (sqrt (+ (* b b) (* (* -4 a) c))) |
| 34.0ms | (+ (* b b) (* (* -4 a) c)) |
26 calls. Slowest were:
| 233.0ms | (sqrt (+ (pow (* b b) 3) (pow (* (* -4 a) c) 3))) |
| 208.0ms | (sqrt (+ (pow (* b b) 3) (pow (* (* -4 a) c) 3))) |
| 185.0ms | (sqrt (- (* (* b b) (* b b)) (* (* (* -4 a) c) (* (* -4 a) c)))) |
12 alts after pruning (12 fresh and 0 done)
Merged error: 8.9b
Found 4 expressions with local error:
| 23.3b | (sqrt (+ (* b b) (* (* -4 a) c))) |
| 23.3b | (sqrt (+ (* b b) (* (* -4 a) c))) |
| 23.3b | (sqrt (+ (* b b) (* (* -4 a) c))) |
| 7.8b | (- (- b) (* (sqrt (sqrt (+ (* b b) (* (* -4 a) c)))) (sqrt (sqrt (+ (* b b) (* (* -4 a) c)))))) |
4 calls. Slowest were:
| 5.0ms | (- (- b) (* (sqrt (sqrt (+ (* b b) (* (* -4 a) c)))) (sqrt (sqrt (+ (* b b) (* (* -4 a) c)))))) |
| 4.0ms | (sqrt (+ (* b b) (* (* -4 a) c))) |
| 4.0ms | (sqrt (+ (* b b) (* (* -4 a) c))) |
4 calls. Slowest were:
| 76.0ms | (- (- b) (* (sqrt (sqrt (+ (* b b) (* (* -4 a) c)))) (sqrt (sqrt (+ (* b b) (* (* -4 a) c)))))) |
| 66.0ms | (sqrt (+ (* b b) (* (* -4 a) c))) |
| 58.0ms | (sqrt (+ (* b b) (* (* -4 a) c))) |
| 55.0ms | (sqrt (+ (* b b) (* (* -4 a) c))) |
33 calls. Slowest were:
| 246.0ms | (sqrt (+ (pow (* b b) 3) (pow (* (* -4 a) c) 3))) |
| 195.0ms | (sqrt (- (* (* b b) (* b b)) (* (* (* -4 a) c) (* (* -4 a) c)))) |
| 175.0ms | (sqrt (+ (pow (* b b) 3) (pow (* (* -4 a) c) 3))) |
13 alts after pruning (12 fresh and 1 done)
Merged error: 8.9b
Found 4 expressions with local error:
| 23.3b | (sqrt (+ (* b b) (* (* -4 a) c))) |
| 23.3b | (sqrt (+ (* b b) (* (* -4 a) c))) |
| 23.3b | (sqrt (+ (* b b) (* (* -4 a) c))) |
| 11.4b | (- (* (sqrt (sqrt (+ (* b b) (* (* -4 a) c)))) (sqrt (sqrt (+ (* b b) (* (* -4 a) c))))) b) |
4 calls. Slowest were:
| 20.0ms | (- (* (sqrt (sqrt (+ (* b b) (* (* -4 a) c)))) (sqrt (sqrt (+ (* b b) (* (* -4 a) c))))) b) |
| 2.0ms | (sqrt (+ (* b b) (* (* -4 a) c))) |
| 2.0ms | (sqrt (+ (* b b) (* (* -4 a) c))) |
4 calls. Slowest were:
| 51.0ms | (sqrt (+ (* b b) (* (* -4 a) c))) |
| 50.0ms | (sqrt (+ (* b b) (* (* -4 a) c))) |
| 50.0ms | (- (* (sqrt (sqrt (+ (* b b) (* (* -4 a) c)))) (sqrt (sqrt (+ (* b b) (* (* -4 a) c))))) b) |
| 49.0ms | (sqrt (+ (* b b) (* (* -4 a) c))) |
30 calls. Slowest were:
| 251.0ms | (sqrt (+ (pow (* b b) 3) (pow (* (* -4 a) c) 3))) |
| 232.0ms | (sqrt (+ (pow (* b b) 3) (pow (* (* -4 a) c) 3))) |
| 199.0ms | (sqrt (+ (pow (* b b) 3) (pow (* (* -4 a) c) 3))) |
13 alts after pruning (11 fresh and 2 done)
Merged error: 8.9b
Found 4 expressions with local error:
| 24.1b | (cbrt (+ (* b b) (* a (* -4 c)))) |
| 24.1b | (cbrt (+ (* b b) (* (* -4 a) c))) |
| 23.3b | (sqrt (+ (* b b) (* (* -4 a) c))) |
| 23.3b | (sqrt (+ (* b b) (* (* -4 a) c))) |
4 calls. Slowest were:
| 2.0ms | (sqrt (+ (* b b) (* (* -4 a) c))) |
| 2.0ms | (sqrt (+ (* b b) (* (* -4 a) c))) |
| 1.0ms | (cbrt (+ (* b b) (* a (* -4 c)))) |
4 calls. Slowest were:
| 128.0ms | (cbrt (+ (* b b) (* (* -4 a) c))) |
| 116.0ms | (cbrt (+ (* b b) (* a (* -4 c)))) |
| 64.0ms | (sqrt (+ (* b b) (* (* -4 a) c))) |
| 40.0ms | (sqrt (+ (* b b) (* (* -4 a) c))) |
34 calls. Slowest were:
| 677.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)))) |
| 251.0ms | (sqrt (+ (pow (* b b) 3) (pow (* (* -4 a) c) 3))) |
| 229.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)))) |
13 alts after pruning (10 fresh and 3 done)
Merged error: 8.9b
91.1% (1.0b remaining)
Error of 8.8b against oracle of 7.7b and baseline of 19.2b