


Bits error versus a



Bits error versus b



Bits error versus c
Results
if b < -2.0310547919335672e+166Initial program 37.3
Taylor expanded around -inf 7.3
if -2.0310547919335672e+166 < b < 4.258162565501791e+108Initial program 9.4
rmApplied add-cube-cbrt9.6
Applied sqrt-prod9.6
Simplified9.6
if 4.258162565501791e+108 < b Initial program 46.4
Taylor expanded around inf 10.8
Taylor expanded around 0 3.5
rmApplied associate-/l*3.5
Final simplification8.3
herbie shell --seed 2018365
(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: 20.6s)Debug log
1 alts after pruning (1 fresh and 0 done)
Merged error: 18.8b
Found 4 expressions with local error:
| 24.1b | (sqrt (- (* b b) (* (* 4 a) c))) |
| 24.1b | (sqrt (- (* b b) (* (* 4 a) c))) |
| 1.2b | (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))) |
| 1.2b | (- (- b) (sqrt (- (* b b) (* (* 4 a) c)))) |
4 calls. Slowest were:
| 5.0ms | (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))) |
| 5.0ms | (- (- b) (sqrt (- (* b b) (* (* 4 a) c)))) |
| 2.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
4 calls. Slowest were:
| 65.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
| 64.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
| 52.0ms | (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))) |
| 44.0ms | (- (- b) (sqrt (- (* b b) (* (* 4 a) c)))) |
32 calls. Slowest were:
| 404.0ms | (sqrt (- (pow (* b b) 3) (pow (* (* 4 a) c) 3))) |
| 391.0ms | (sqrt (- (pow (* b b) 3) (pow (* (* 4 a) c) 3))) |
| 169.0ms | (sqrt (- (* (* b b) (* b b)) (* (* (* 4 a) c) (* (* 4 a) c)))) |
9 alts after pruning (9 fresh and 0 done)
Merged error: 7.5b
Found 4 expressions with local error:
| 24.1b | (sqrt (- (* b b) (* (* 4 a) c))) |
| 4.8b | (/ (* a c) b) |
| 3.5b | (/ (- (- b) (- b (* 2 (/ (* a c) b)))) (* 2 a)) |
| 1.2b | (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))) |
4 calls. Slowest were:
| 21.0ms | (/ (- (- b) (- b (* 2 (/ (* a c) b)))) (* 2 a)) |
| 11.0ms | (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))) |
| 4.0ms | (/ (* a c) b) |
4 calls. Slowest were:
| 77.0ms | (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))) |
| 45.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
| 44.0ms | (/ (- (- b) (- b (* 2 (/ (* a c) b)))) (* 2 a)) |
| 15.0ms | (/ (* a c) b) |
38 calls. Slowest were:
| 669.0ms | (* (cbrt (- (- b) (- b (* 2 (/ (* a c) b))))) (cbrt (- (- b) (- b (* 2 (/ (* a c) b)))))) |
| 473.0ms | (sqrt (- (pow (* b b) 3) (pow (* (* 4 a) c) 3))) |
| 300.0ms | (/ (sqrt (- (- b) (- b (* 2 (/ (* a c) b))))) a) |
9 alts after pruning (9 fresh and 0 done)
Merged error: 6.2b
Found 4 expressions with local error:
| 24.1b | (sqrt (- (* b b) (* (* 4 a) c))) |
| 1.2b | (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))) |
| 0.8b | (- (* b b) (* (* 4 a) c)) |
| 0.1b | (/ (* 2 c) (+ (- b) (sqrt (- (* b b) (* (* 4 a) c))))) |
4 calls. Slowest were:
| 16.0ms | (/ (* 2 c) (+ (- b) (sqrt (- (* b b) (* (* 4 a) c))))) |
| 5.0ms | (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))) |
| 2.0ms | (- (* b b) (* (* 4 a) c)) |
4 calls. Slowest were:
| 170.0ms | (/ (* 2 c) (+ (- b) (sqrt (- (* b b) (* (* 4 a) c))))) |
| 57.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
| 53.0ms | (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))) |
| 44.0ms | (- (* b b) (* (* 4 a) c)) |
37 calls. Slowest were:
| 372.0ms | (sqrt (- (pow (* b b) 3) (pow (* (* 4 a) c) 3))) |
| 361.0ms | (+ (* (- b) (- b)) (- (* (sqrt (- (* b b) (* (* 4 a) c))) (sqrt (- (* b b) (* (* 4 a) c)))) (* (- b) (sqrt (- (* b b) (* (* 4 a) c)))))) |
| 182.0ms | (sqrt (- (* (* b b) (* b b)) (* (* (* 4 a) c) (* (* 4 a) c)))) |
10 alts after pruning (10 fresh and 0 done)
Merged error: 6.1b
Found 4 expressions with local error:
| 24.1b | (sqrt (- (* b b) (* (* 4 a) c))) |
| 1.2b | (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))) |
| 0.8b | (- (* b b) (* (* 4 a) c)) |
| 0.1b | (* (* 2 c) (/ 1 (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))))) |
4 calls. Slowest were:
| 10.0ms | (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))) |
| 7.0ms | (* (* 2 c) (/ 1 (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))))) |
| 4.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
4 calls. Slowest were:
| 149.0ms | (* (* 2 c) (/ 1 (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))))) |
| 71.0ms | (sqrt (- (* b b) (* (* 4 a) c))) |
| 57.0ms | (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))) |
| 33.0ms | (- (* b b) (* (* 4 a) c)) |
33 calls. Slowest were:
| 485.0ms | (* (* (* (* 2 c) (* 2 c)) (* 2 c)) (* (* (/ 1 (+ (- b) (sqrt (- (* b b) (* (* 4 a) c))))) (/ 1 (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))))) (/ 1 (+ (- b) (sqrt (- (* b b) (* (* 4 a) c))))))) |
| 387.0ms | (sqrt (- (pow (* b b) 3) (pow (* (* 4 a) c) 3))) |
| 373.0ms | (+ (* (- b) (- b)) (- (* (sqrt (- (* b b) (* (* 4 a) c))) (sqrt (- (* b b) (* (* 4 a) c)))) (* (- b) (sqrt (- (* b b) (* (* 4 a) c)))))) |
10 alts after pruning (10 fresh and 0 done)
Merged error: 6.1b
87.6% (1.8b remaining)
Error of 8.3b against oracle of 6.5b and baseline of 21.2b