


Bits error versus a



Bits error versus b



Bits error versus c
Results
if b < -7.427548864663621e+119Initial program 51.3
Taylor expanded around -inf 10.5
if -7.427548864663621e+119 < b < 7.329806779291632e+78Initial program 8.4
rmApplied add-sqr-sqrt8.5
if 7.329806779291632e+78 < b Initial program 27.6
Taylor expanded around inf 7.4
Final simplification8.5
herbie shell --seed 2018362
(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: 22.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 (- (* b b) (* (* 4 a) c))) |
| 21.8b | (sqrt (- (* b b) (* (* 4 a) c))) |
| 1.8b | (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))) |
| 0.9b | (- (- b) (sqrt (- (* b b) (* (* 4 a) c)))) |
4 calls. Slowest were:
| 11.0ms | (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))) |
| 8.0ms | (- (- b) (sqrt (- (* b b) (* (* 4 a) c)))) |
| 6.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
4 calls. Slowest were:
| 60.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
| 47.0ms | (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))) |
| 46.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
| 45.0ms | (- (- b) (sqrt (- (* b b) (* (* 4 a) c)))) |
32 calls. Slowest were:
| 450.0ms | (sqrt (- (pow (* b b) 3) (pow (* (* 4 a) c) 3))) |
| 442.0ms | (sqrt (- (pow (* b b) 3) (pow (* (* 4 a) c) 3))) |
| 220.0ms | (sqrt (- (* (* b b) (* b b)) (* (* (* 4 a) c) (* (* 4 a) c)))) |
9 alts after pruning (9 fresh and 0 done)
Merged error: 5.8b
Found 4 expressions with local error:
| 21.8b | (sqrt (- (* b b) (* (* 4 a) c))) |
| 21.8b | (sqrt (- (* b b) (* (* 4 a) c))) |
| 21.8b | (sqrt (- (* b b) (* (* 4 a) c))) |
| 10.8b | (+ (- 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)))))) |
| 4.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
| 4.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
4 calls. Slowest were:
| 70.0ms | (+ (- b) (* (sqrt (sqrt (- (* b b) (* (* 4 a) c)))) (sqrt (sqrt (- (* b b) (* (* 4 a) c)))))) |
| 55.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
| 46.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
| 40.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
31 calls. Slowest were:
| 487.0ms | (sqrt (- (pow (* b b) 3) (pow (* (* 4 a) c) 3))) |
| 475.0ms | (sqrt (- (pow (* b b) 3) (pow (* (* 4 a) c) 3))) |
| 378.0ms | (sqrt (- (pow (* b b) 3) (pow (* (* 4 a) c) 3))) |
9 alts after pruning (8 fresh and 1 done)
Merged error: 5.8b
Found 4 expressions with local error:
| 22.6b | (cbrt (- (* b b) (* (* 4 a) c))) |
| 22.6b | (cbrt (- (* b b) (* (* 4 a) c))) |
| 21.8b | (sqrt (- (* b b) (* (* 4 a) c))) |
| 21.8b | (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) (* (* 4 a) c))) |
4 calls. Slowest were:
| 105.0ms | (cbrt (- (* b b) (* (* 4 a) c))) |
| 100.0ms | (cbrt (- (* b b) (* (* 4 a) c))) |
| 67.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
| 63.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
34 calls. Slowest were:
| 519.0ms | (cbrt (- (pow (* b b) 3) (pow (* (* 4 a) c) 3))) |
| 490.0ms | (cbrt (- (pow (* b b) 3) (pow (* (* 4 a) c) 3))) |
| 407.0ms | (sqrt (- (pow (* b b) 3) (pow (* (* 4 a) c) 3))) |
10 alts after pruning (9 fresh and 1 done)
Merged error: 5.8b
Found 4 expressions with local error:
| 21.8b | (sqrt (- (* b b) (* (* 4 a) c))) |
| 21.8b | (sqrt (- (* b b) (* (* 4 a) c))) |
| 21.8b | (sqrt (- (* b b) (* (* 4 a) c))) |
| 6.5b | (- (- b) (* (sqrt (sqrt (- (* b b) (* (* 4 a) c)))) (sqrt (sqrt (- (* b b) (* (* 4 a) c)))))) |
4 calls. Slowest were:
| 4.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:
| 75.0ms | (- (- b) (* (sqrt (sqrt (- (* b b) (* (* 4 a) c)))) (sqrt (sqrt (- (* b b) (* (* 4 a) c)))))) |
| 49.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
| 46.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
| 40.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
33 calls. Slowest were:
| 484.0ms | (sqrt (- (pow (* b b) 3) (pow (* (* 4 a) c) 3))) |
| 461.0ms | (sqrt (- (pow (* b b) 3) (pow (* (* 4 a) c) 3))) |
| 457.0ms | (sqrt (- (pow (* b b) 3) (pow (* (* 4 a) c) 3))) |
11 alts after pruning (9 fresh and 2 done)
Merged error: 5.8b
90.8% (1.1b remaining)
Error of 8.5b against oracle of 7.4b and baseline of 19.2b