


Bits error versus a



Bits error versus b



Bits error versus c
Results
if b < -2.05627268817426e+86Initial program 28.4
Taylor expanded around -inf 6.9
if -2.05627268817426e+86 < b < 3.123352027454424e+109Initial program 9.0
rmApplied add-cube-cbrt9.2
if 3.123352027454424e+109 < b Initial program 46.6
Taylor expanded around inf 10.4
Final simplification8.8
herbie shell --seed 2019008
(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: 22.7s)Debug log
1 calls. Slowest were:
| 103.0ms | (if (>= b 0) (/ (- (- b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (/ (* 2 c) (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))))) |
1 alts after pruning (1 fresh and 0 done)
Merged error: 20.1b
Found 4 expressions with local error:
| 23.7b | (sqrt (- (* b b) (* (* 4 a) c))) |
| 23.7b | (sqrt (- (* b b) (* (* 4 a) c))) |
| 1.0b | (- (* b b) (* (* 4 a) c)) |
| 1.0b | (- (* b b) (* (* 4 a) c)) |
4 calls. Slowest were:
| 4.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
| 4.0ms | (- (* b b) (* (* 4 a) c)) |
| 4.0ms | (- (* b b) (* (* 4 a) c)) |
4 calls. Slowest were:
| 68.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
| 55.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
| 32.0ms | (- (* b b) (* (* 4 a) c)) |
| 26.0ms | (- (* b b) (* (* 4 a) c)) |
26 calls. Slowest were:
| 816.0ms | (sqrt (- (pow (* b b) 3) (pow (* (* 4 a) c) 3))) |
| 341.0ms | (sqrt (- (pow (* b b) 3) (pow (* (* 4 a) c) 3))) |
| 166.0ms | (sqrt (- (* (* b b) (* b b)) (* (* (* 4 a) c) (* (* 4 a) c)))) |
13 alts after pruning (13 fresh and 0 done)
Merged error: 8.7b
Found 4 expressions with local error:
| 23.7b | (sqrt (- (* b b) (* (* 4 a) c))) |
| 23.7b | (sqrt (- (* b b) (* (* 4 a) c))) |
| 23.7b | (sqrt (- (* b b) (* (* 4 a) c))) |
| 8.9b | (+ (- 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)))))) |
| 2.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
| 2.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
4 calls. Slowest were:
| 71.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
| 66.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
| 62.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
| 59.0ms | (+ (- b) (* (sqrt (sqrt (- (* b b) (* (* 4 a) c)))) (sqrt (sqrt (- (* b b) (* (* 4 a) c)))))) |
31 calls. Slowest were:
| 407.0ms | (sqrt (- (pow (* b b) 3) (pow (* (* 4 a) c) 3))) |
| 384.0ms | (sqrt (- (pow (* b b) 3) (pow (* (* 4 a) c) 3))) |
| 354.0ms | (sqrt (- (pow (* b b) 3) (pow (* (* 4 a) c) 3))) |
13 alts after pruning (13 fresh and 0 done)
Merged error: 8.7b
Found 4 expressions with local error:
| 23.7b | (sqrt (- (* b b) (* (* 4 a) c))) |
| 23.7b | (sqrt (- (* b b) (* (* 4 a) c))) |
| 23.7b | (sqrt (- (* b b) (* (* 4 a) c))) |
| 23.7b | (sqrt (- (* b b) (* (* 4 a) c))) |
4 calls. Slowest were:
| 4.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
| 3.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
| 3.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
4 calls. Slowest were:
| 63.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
| 59.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
| 59.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
| 59.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
36 calls. Slowest were:
| 458.0ms | (sqrt (- (pow (* b b) 3) (pow (* (* 4 a) c) 3))) |
| 413.0ms | (sqrt (- (pow (* b b) 3) (pow (* (* 4 a) c) 3))) |
| 405.0ms | (sqrt (- (pow (* b b) 3) (pow (* (* 4 a) c) 3))) |
12 alts after pruning (12 fresh and 0 done)
Merged error: 8.7b
Found 4 expressions with local error:
| 24.5b | (cbrt (- (* b b) (* (* 4 a) c))) |
| 24.5b | (cbrt (- (* b b) (* (* 4 a) c))) |
| 23.7b | (sqrt (- (* b b) (* (* 4 a) c))) |
| 7.4b | (- (- b) (* (fabs (cbrt (- (* b b) (* (* 4 a) c)))) (sqrt (cbrt (- (* b b) (* (* 4 a) c)))))) |
4 calls. Slowest were:
| 7.0ms | (- (- b) (* (fabs (cbrt (- (* b b) (* (* 4 a) c)))) (sqrt (cbrt (- (* b b) (* (* 4 a) c)))))) |
| 4.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
| 3.0ms | (cbrt (- (* b b) (* (* 4 a) c))) |
4 calls. Slowest were:
| 100.0ms | (cbrt (- (* b b) (* (* 4 a) c))) |
| 86.0ms | (- (- b) (* (fabs (cbrt (- (* b b) (* (* 4 a) c)))) (sqrt (cbrt (- (* b b) (* (* 4 a) c)))))) |
| 81.0ms | (cbrt (- (* b b) (* (* 4 a) c))) |
| 61.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
29 calls. Slowest were:
| 459.0ms | (sqrt (- (pow (* b b) 3) (pow (* (* 4 a) c) 3))) |
| 416.0ms | (cbrt (- (pow (* b b) 3) (pow (* (* 4 a) c) 3))) |
| 365.0ms | (cbrt (- (pow (* b b) 3) (pow (* (* 4 a) c) 3))) |
11 alts after pruning (11 fresh and 0 done)
Merged error: 8.7b
90.2% (1.2b remaining)
Error of 8.8b against oracle of 7.6b and baseline of 19.6b