


Bits error versus a



Bits error versus b



Bits error versus c
Results
if b < -1.3474867709131763e+154Initial program 60.9
Taylor expanded around -inf 9.9
if -1.3474867709131763e+154 < b < 4.2908085587759755e+99Initial program 8.6
rmApplied add-sqr-sqrt8.6
Applied sqrt-prod8.7
if 4.2908085587759755e+99 < b Initial program 29.4
Taylor expanded around inf 6.7
Final simplification8.4
herbie shell --seed 2019004
(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 calls. Slowest were:
| 113.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 (- (* b b) (* (* 4 a) c))) |
| 22.0b | (sqrt (- (* b b) (* (* 4 a) c))) |
| 0.9b | (- (- b) (sqrt (- (* b b) (* (* 4 a) c)))) |
| 0.8b | (- (* b b) (* (* 4 a) c)) |
4 calls. Slowest were:
| 13.0ms | (- (- b) (sqrt (- (* b b) (* (* 4 a) c)))) |
| 6.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
| 5.0ms | (- (* b b) (* (* 4 a) c)) |
4 calls. Slowest were:
| 76.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
| 51.0ms | (- (- b) (sqrt (- (* b b) (* (* 4 a) c)))) |
| 42.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
| 30.0ms | (- (* b b) (* (* 4 a) c)) |
31 calls. Slowest were:
| 398.0ms | (sqrt (- (pow (* b b) 3) (pow (* (* 4 a) c) 3))) |
| 356.0ms | (sqrt (- (pow (* b b) 3) (pow (* (* 4 a) c) 3))) |
| 199.0ms | (sqrt (- (* (* b b) (* b b)) (* (* (* 4 a) c) (* (* 4 a) c)))) |
11 alts after pruning (11 fresh and 0 done)
Merged error: 7.9b
Found 4 expressions with local error:
| 22.0b | (sqrt (- (* b b) (* (* 4 a) c))) |
| 22.0b | (sqrt (- (* b b) (* (* 4 a) c))) |
| 22.0b | (sqrt (- (* b b) (* (* 4 a) c))) |
| 10.6b | (- (- b) (* (sqrt (sqrt (- (* b b) (* (* 4 a) c)))) (sqrt (sqrt (- (* b b) (* (* 4 a) c)))))) |
4 calls. Slowest were:
| 7.0ms | (- (- b) (* (sqrt (sqrt (- (* b b) (* (* 4 a) c)))) (sqrt (sqrt (- (* b b) (* (* 4 a) c)))))) |
| 4.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
| 3.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)))))) |
| 72.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
| 67.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
| 49.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
33 calls. Slowest were:
| 383.0ms | (sqrt (- (pow (* b b) 3) (pow (* (* 4 a) c) 3))) |
| 381.0ms | (sqrt (- (pow (* b b) 3) (pow (* (* 4 a) c) 3))) |
| 320.0ms | (sqrt (- (pow (* b b) 3) (pow (* (* 4 a) c) 3))) |
11 alts after pruning (10 fresh and 1 done)
Merged error: 7.9b
Found 4 expressions with local error:
| 22.0b | (sqrt (- (* b b) (* (* 4 a) c))) |
| 22.0b | (sqrt (- (* b b) (* (* 4 a) c))) |
| 22.0b | (sqrt (- (* b b) (* (* 4 a) c))) |
| 10.5b | (+ (- 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)))))) |
| 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)))))) |
| 52.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
| 51.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
| 48.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
31 calls. Slowest were:
| 398.0ms | (sqrt (- (pow (* b b) 3) (pow (* (* 4 a) c) 3))) |
| 395.0ms | (sqrt (- (pow (* b b) 3) (pow (* (* 4 a) c) 3))) |
| 393.0ms | (sqrt (- (pow (* b b) 3) (pow (* (* 4 a) c) 3))) |
11 alts after pruning (9 fresh and 2 done)
Merged error: 7.9b
Found 4 expressions with local error:
| 22.7b | (cbrt (- (* b b) (* (* 4 a) c))) |
| 22.7b | (cbrt (- (* b b) (* (* 4 a) c))) |
| 22.0b | (sqrt (- (* b b) (* (* 4 a) c))) |
| 6.6b | (+ (- b) (* (fabs (cbrt (- (* b b) (* (* 4 a) c)))) (sqrt (cbrt (- (* b b) (* (* 4 a) c)))))) |
4 calls. Slowest were:
| 5.0ms | (+ (- b) (* (fabs (cbrt (- (* b b) (* (* 4 a) c)))) (sqrt (cbrt (- (* b b) (* (* 4 a) c)))))) |
| 2.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
| 2.0ms | (cbrt (- (* b b) (* (* 4 a) c))) |
4 calls. Slowest were:
| 132.0ms | (cbrt (- (* b b) (* (* 4 a) c))) |
| 118.0ms | (cbrt (- (* b b) (* (* 4 a) c))) |
| 93.0ms | (+ (- b) (* (fabs (cbrt (- (* b b) (* (* 4 a) c)))) (sqrt (cbrt (- (* b b) (* (* 4 a) c)))))) |
| 59.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
29 calls. Slowest were:
| 768.0ms | (cbrt (- (pow (* b b) 3) (pow (* (* 4 a) c) 3))) |
| 428.0ms | (cbrt (- (pow (* b b) 3) (pow (* (* 4 a) c) 3))) |
| 377.0ms | (sqrt (- (pow (* b b) 3) (pow (* (* 4 a) c) 3))) |
10 alts after pruning (7 fresh and 3 done)
Merged error: 7.9b
92.2% (0.9b remaining)
Error of 8.4b against oracle of 7.4b and baseline of 19.3b