


Bits error versus a



Bits error versus b



Bits error versus c
Results
if b < -2.662478401444678e+115Initial program 49.7
Initial simplification49.7
Taylor expanded around -inf 11.0
if -2.662478401444678e+115 < b < 6.8388857113555585e+103Initial program 9.1
Initial simplification9.1
rmApplied add-sqr-sqrt9.2
if 6.8388857113555585e+103 < b Initial program 30.8
Initial simplification30.8
Taylor expanded around inf 7.1
Final simplification9.0
herbie shell --seed 2018365
(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: 19.4s)Debug log
1 alts after pruning (1 fresh and 0 done)
Merged error: 20.7b
Found 4 expressions with local error:
| 25.1b | (sqrt (+ (* b b) (* (* -4 a) c))) |
| 25.1b | (sqrt (+ (* b b) (* (* -4 a) c))) |
| 1.2b | (- (sqrt (+ (* b b) (* (* -4 a) c))) b) |
| 1.2b | (- (- b) (sqrt (+ (* b b) (* (* -4 a) c)))) |
4 calls. Slowest were:
| 22.0ms | (- (sqrt (+ (* b b) (* (* -4 a) c))) b) |
| 12.0ms | (- (- b) (sqrt (+ (* b b) (* (* -4 a) c)))) |
| 6.0ms | (sqrt (+ (* b b) (* (* -4 a) c))) |
4 calls. Slowest were:
| 88.0ms | (sqrt (+ (* b b) (* (* -4 a) c))) |
| 65.0ms | (sqrt (+ (* b b) (* (* -4 a) c))) |
| 63.0ms | (- (- b) (sqrt (+ (* b b) (* (* -4 a) c)))) |
| 55.0ms | (- (sqrt (+ (* b b) (* (* -4 a) c))) b) |
30 calls. Slowest were:
| 221.0ms | (sqrt (+ (pow (* b b) 3) (pow (* (* -4 a) c) 3))) |
| 221.0ms | (sqrt (+ (pow (* b b) 3) (pow (* (* -4 a) c) 3))) |
| 164.0ms | (sqrt (- (* (* b b) (* b b)) (* (* (* -4 a) c) (* (* -4 a) c)))) |
8 alts after pruning (8 fresh and 0 done)
Merged error: 7.8b
Found 4 expressions with local error:
| 25.1b | (sqrt (+ (* b b) (* (* -4 a) c))) |
| 25.1b | (sqrt (+ (* b b) (* (* -4 a) c))) |
| 25.1b | (sqrt (+ (* b b) (* (* -4 a) c))) |
| 8.3b | (- (- b) (* (sqrt (sqrt (+ (* b b) (* (* -4 a) c)))) (sqrt (sqrt (+ (* b b) (* (* -4 a) c)))))) |
4 calls. Slowest were:
| 6.0ms | (- (- b) (* (sqrt (sqrt (+ (* b b) (* (* -4 a) c)))) (sqrt (sqrt (+ (* b b) (* (* -4 a) c)))))) |
| 2.0ms | (sqrt (+ (* b b) (* (* -4 a) c))) |
| 2.0ms | (sqrt (+ (* b b) (* (* -4 a) c))) |
4 calls. Slowest were:
| 74.0ms | (- (- b) (* (sqrt (sqrt (+ (* b b) (* (* -4 a) c)))) (sqrt (sqrt (+ (* b b) (* (* -4 a) c)))))) |
| 69.0ms | (sqrt (+ (* b b) (* (* -4 a) c))) |
| 64.0ms | (sqrt (+ (* b b) (* (* -4 a) c))) |
| 63.0ms | (sqrt (+ (* b b) (* (* -4 a) c))) |
33 calls. Slowest were:
| 246.0ms | (sqrt (+ (pow (* b b) 3) (pow (* (* -4 a) c) 3))) |
| 240.0ms | (sqrt (+ (pow (* b b) 3) (pow (* (* -4 a) c) 3))) |
| 214.0ms | (sqrt (+ (pow (* b b) 3) (pow (* (* -4 a) c) 3))) |
8 alts after pruning (7 fresh and 1 done)
Merged error: 7.8b
Found 4 expressions with local error:
| 25.8b | (cbrt (+ (* b b) (* a (* -4 c)))) |
| 25.8b | (cbrt (+ (* b b) (* (* -4 a) c))) |
| 25.1b | (sqrt (+ (* b b) (* (* -4 a) c))) |
| 7.3b | (- (- b) (* (fabs (cbrt (+ (* b b) (* a (* -4 c))))) (sqrt (cbrt (+ (* b b) (* (* -4 a) c)))))) |
4 calls. Slowest were:
| 7.0ms | (- (- b) (* (fabs (cbrt (+ (* b b) (* a (* -4 c))))) (sqrt (cbrt (+ (* b b) (* (* -4 a) c)))))) |
| 3.0ms | (sqrt (+ (* b b) (* (* -4 a) c))) |
| 2.0ms | (cbrt (+ (* b b) (* a (* -4 c)))) |
4 calls. Slowest were:
| 140.0ms | (cbrt (+ (* b b) (* a (* -4 c)))) |
| 131.0ms | (cbrt (+ (* b b) (* (* -4 a) c))) |
| 117.0ms | (- (- b) (* (fabs (cbrt (+ (* b b) (* a (* -4 c))))) (sqrt (cbrt (+ (* b b) (* (* -4 a) c)))))) |
| 68.0ms | (sqrt (+ (* b b) (* (* -4 a) c))) |
29 calls. Slowest were:
| 318.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)))) |
| 284.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)))) |
| 247.0ms | (sqrt (+ (pow (* b b) 3) (pow (* (* -4 a) c) 3))) |
10 alts after pruning (8 fresh and 2 done)
Merged error: 7.8b
Found 4 expressions with local error:
| 25.8b | (cbrt (+ (* b b) (* a (* -4 c)))) |
| 25.8b | (cbrt (+ (* b b) (* (* -4 a) c))) |
| 25.8b | (cbrt (+ (* b b) (* (* -4 a) c))) |
| 25.8b | (cbrt (+ (* b b) (* (* -4 a) c))) |
4 calls. Slowest were:
| 1.0ms | (cbrt (+ (* b b) (* a (* -4 c)))) |
| 1.0ms | (cbrt (+ (* b b) (* (* -4 a) c))) |
| 1.0ms | (cbrt (+ (* b b) (* (* -4 a) c))) |
4 calls. Slowest were:
| 108.0ms | (cbrt (+ (* b b) (* (* -4 a) c))) |
| 103.0ms | (cbrt (+ (* b b) (* a (* -4 c)))) |
| 102.0ms | (cbrt (+ (* b b) (* (* -4 a) c))) |
| 90.0ms | (cbrt (+ (* b b) (* (* -4 a) c))) |
32 calls. Slowest were:
| 313.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)))) |
| 303.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)))) |
| 277.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)))) |
10 alts after pruning (7 fresh and 3 done)
Merged error: 7.8b
91.5% (1.0b remaining)
Error of 9.0b against oracle of 7.9b and baseline of 19.8b