


Bits error versus a



Bits error versus b



Bits error versus c



Bits error versus d
if b < -7.364239210427101e+148Initial program 58.7
Taylor expanded around -inf 2.8
Simplified2.8
if -7.364239210427101e+148 < b < 1.695108865697676e-145Initial program 11.2
rmApplied associate-/r*11.3
if 1.695108865697676e-145 < b Initial program 49.2
Taylor expanded around inf 12.9
Final simplification11.0
herbie shell --seed 2019004 +o rules:numerics
(FPCore (a b c d)
:name "Cubic critical"
(/ (+ (- b) (sqrt (- (* b b) (* (* 3 a) c)))) (* 3 a)))
Time bar (total: 17.6s)Debug log
1 calls. Slowest were:
| 64.0ms | (/ (+ (- b) (sqrt (- (* b b) (* (* 3 a) c)))) (* 3 a)) |
2 alts after pruning (2 fresh and 0 done)
Merged error: 34.2b
Found 4 expressions with local error:
| 23.9b | (sqrt (- (* b b) (* (* 3 a) c))) |
| 0.8b | (- (* b b) (* (* 3 a) c)) |
| 0.7b | (/ (+ (- b) (sqrt (- (* b b) (* (* 3 a) c)))) (* 3 a)) |
| 0.4b | (+ (- b) (sqrt (- (* b b) (* (* 3 a) c)))) |
4 calls. Slowest were:
| 35.0ms | (/ (+ (- b) (sqrt (- (* b b) (* (* 3 a) c)))) (* 3 a)) |
| 6.0ms | (+ (- b) (sqrt (- (* b b) (* (* 3 a) c)))) |
| 3.0ms | (sqrt (- (* b b) (* (* 3 a) c))) |
4 calls. Slowest were:
| 95.0ms | (/ (+ (- b) (sqrt (- (* b b) (* (* 3 a) c)))) (* 3 a)) |
| 73.0ms | (+ (- b) (sqrt (- (* b b) (* (* 3 a) c)))) |
| 54.0ms | (sqrt (- (* b b) (* (* 3 a) c))) |
| 41.0ms | (- (* b b) (* (* 3 a) c)) |
40 calls. Slowest were:
| 350.0ms | (sqrt (- (pow (* b b) 3) (pow (* (* 3 a) c) 3))) |
| 266.0ms | (- (* (- b) (- b)) (* (sqrt (- (* b b) (* (* 3 a) c))) (sqrt (- (* b b) (* (* 3 a) c))))) |
| 209.0ms | (+ (pow (- b) 3) (pow (sqrt (- (* b b) (* (* 3 a) c))) 3)) |
14 alts after pruning (14 fresh and 0 done)
Merged error: 6.4b
Found 4 expressions with local error:
| 23.9b | (sqrt (- (* b b) (* (* 3 a) c))) |
| 0.8b | (- (* b b) (* (* 3 a) c)) |
| 0.4b | (+ (- b) (sqrt (- (* b b) (* (* 3 a) c)))) |
| 0.2b | (* (* 3 a) c) |
4 calls. Slowest were:
| 6.0ms | (+ (- b) (sqrt (- (* b b) (* (* 3 a) c)))) |
| 3.0ms | (sqrt (- (* b b) (* (* 3 a) c))) |
| 2.0ms | (- (* b b) (* (* 3 a) c)) |
4 calls. Slowest were:
| 59.0ms | (+ (- b) (sqrt (- (* b b) (* (* 3 a) c)))) |
| 43.0ms | (sqrt (- (* b b) (* (* 3 a) c))) |
| 27.0ms | (- (* b b) (* (* 3 a) c)) |
| 19.0ms | (* (* 3 a) c) |
25 calls. Slowest were:
| 358.0ms | (sqrt (- (pow (* b b) 3) (pow (* (* 3 a) c) 3))) |
| 165.0ms | (sqrt (- (* (* b b) (* b b)) (* (* (* 3 a) c) (* (* 3 a) c)))) |
| 100.0ms | (- b (* 3/2 (/ (* a c) b))) |
15 alts after pruning (14 fresh and 1 done)
Merged error: 6.4b
Found 4 expressions with local error:
| 23.9b | (sqrt (- (* b b) (* (* 3 a) c))) |
| 0.8b | (- (* b b) (* (* 3 a) c)) |
| 0.7b | (/ (* 3 a) (+ (- b) (sqrt (- (* b b) (* (* 3 a) c))))) |
| 0.4b | (+ (- b) (sqrt (- (* b b) (* (* 3 a) c)))) |
4 calls. Slowest were:
| 19.0ms | (/ (* 3 a) (+ (- b) (sqrt (- (* b b) (* (* 3 a) c))))) |
| 8.0ms | (+ (- b) (sqrt (- (* b b) (* (* 3 a) c)))) |
| 6.0ms | (sqrt (- (* b b) (* (* 3 a) c))) |
4 calls. Slowest were:
| 156.0ms | (/ (* 3 a) (+ (- b) (sqrt (- (* b b) (* (* 3 a) c))))) |
| 55.0ms | (+ (- b) (sqrt (- (* b b) (* (* 3 a) c)))) |
| 48.0ms | (sqrt (- (* b b) (* (* 3 a) c))) |
| 28.0ms | (- (* b b) (* (* 3 a) c)) |
41 calls. Slowest were:
| 388.0ms | (sqrt (- (pow (* b b) 3) (pow (* (* 3 a) c) 3))) |
| 186.0ms | (+ (* (- b) (- b)) (- (* (sqrt (- (* b b) (* (* 3 a) c))) (sqrt (- (* b b) (* (* 3 a) c)))) (* (- b) (sqrt (- (* b b) (* (* 3 a) c)))))) |
| 166.0ms | (sqrt (- (* (* b b) (* b b)) (* (* (* 3 a) c) (* (* 3 a) c)))) |
16 alts after pruning (15 fresh and 1 done)
Merged error: 6.4b
Found 4 expressions with local error:
| 23.9b | (sqrt (fma c (* a -3) (* b b))) |
| 23.9b | (sqrt (fma c (* a -3) (* b b))) |
| 0.4b | (- (sqrt (fma c (* a -3) (* b b))) b) |
| 0.4b | (- (sqrt (fma c (* a -3) (* b b))) b) |
4 calls. Slowest were:
| 10.0ms | (- (sqrt (fma c (* a -3) (* b b))) b) |
| 10.0ms | (- (sqrt (fma c (* a -3) (* b b))) b) |
| 2.0ms | (sqrt (fma c (* a -3) (* b b))) |
4 calls. Slowest were:
| 65.0ms | (sqrt (fma c (* a -3) (* b b))) |
| 65.0ms | (sqrt (fma c (* a -3) (* b b))) |
| 55.0ms | (- (sqrt (fma c (* a -3) (* b b))) b) |
| 45.0ms | (- (sqrt (fma c (* a -3) (* b b))) b) |
30 calls. Slowest were:
| 19.0ms | (sqrt (* (cbrt (fma c (* a -3) (* b b))) (cbrt (fma c (* a -3) (* b b))))) |
| 19.0ms | (* (cbrt (sqrt (fma c (* a -3) (* b b)))) (cbrt (sqrt (fma c (* a -3) (* b b))))) |
| 18.0ms | (sqrt (sqrt (fma c (* a -3) (* b b)))) |
15 alts after pruning (14 fresh and 1 done)
Merged error: 6.4b
81.5% (5.1b remaining)
Error of 11.0b against oracle of 6.0b and baseline of 33.4b