



Bits error versus a




Bits error versus b




Bits error versus c
| Original | 33.2 |
|---|---|
| Target | 20.2 |
| Herbie | 16.8 |
if b < 4.943214679714675e-44Initial program 21.5
Initial simplification21.5
Taylor expanded around inf 21.5
Simplified21.5
rmApplied clear-num21.6
rmApplied div-inv21.6
Applied associate-/r*21.6
rmApplied associate-/r/21.6
if 4.943214679714675e-44 < b < 6.785651547349625e+98Initial program 43.2
Initial simplification43.2
Taylor expanded around inf 43.2
Simplified43.3
rmApplied flip--43.4
Applied associate-/l/46.4
Simplified16.9
if 6.785651547349625e+98 < b Initial program 59.1
Initial simplification59.1
Taylor expanded around inf 59.1
Simplified59.1
rmApplied clear-num59.2
Taylor expanded around 0 3.6
Simplified3.6
Final simplification16.8
herbie shell --seed 2018362 +o rules:numerics
(FPCore (a b c)
:name "quadp (p42, positive)"
:herbie-target
(if (< b 0) (/ (+ (- b) (sqrt (- (* b b) (* 4 (* a c))))) (* 2 a)) (/ c (* a (/ (- (- b) (sqrt (- (* b b) (* 4 (* a c))))) (* 2 a)))))
(/ (+ (- b) (sqrt (- (* b b) (* 4 (* a c))))) (* 2 a)))
Time bar (total: 21.8s)Debug log
1 alts after pruning (1 fresh and 0 done)
Merged error: 30.9b
Found 4 expressions with local error:
| 21.8b | (sqrt (fma (* a c) -4 (* b b))) |
| 1.8b | (- (sqrt (fma (* a c) -4 (* b b))) b) |
| 0.4b | (fma (* a c) -4 (* b b)) |
| 0.4b | (/ (- (sqrt (fma (* a c) -4 (* b b))) b) (* 2 a)) |
4 calls. Slowest were:
| 21.0ms | (/ (- (sqrt (fma (* a c) -4 (* b b))) b) (* 2 a)) |
| 10.0ms | (- (sqrt (fma (* a c) -4 (* b b))) b) |
| 2.0ms | (sqrt (fma (* a c) -4 (* b b))) |
4 calls. Slowest were:
| 109.0ms | (/ (- (sqrt (fma (* a c) -4 (* b b))) b) (* 2 a)) |
| 66.0ms | (sqrt (fma (* a c) -4 (* b b))) |
| 46.0ms | (- (sqrt (fma (* a c) -4 (* b b))) b) |
| 38.0ms | (fma (* a c) -4 (* b b)) |
34 calls. Slowest were:
| 692.0ms | (- (* (sqrt (fma (* a c) -4 (* b b))) (sqrt (fma (* a c) -4 (* b b)))) (* b b)) |
| 135.0ms | (- (pow (sqrt (fma (* a c) -4 (* b b))) 3) (pow b 3)) |
| 81.0ms | (- (log (- (sqrt (fma (* a c) -4 (* b b))) b)) (log (* 2 a))) |
9 alts after pruning (9 fresh and 0 done)
Merged error: 20.8b
Found 4 expressions with local error:
| 21.8b | (sqrt (fma (* a -4) c (* b b))) |
| 1.8b | (- (sqrt (fma (* a -4) c (* b b))) b) |
| 0.4b | (/ (- (sqrt (fma (* a -4) c (* b b))) b) (* 2 a)) |
| 0.0b | (fma (* a -4) c (* b b)) |
4 calls. Slowest were:
| 21.0ms | (/ (- (sqrt (fma (* a -4) c (* b b))) b) (* 2 a)) |
| 5.0ms | (- (sqrt (fma (* a -4) c (* b b))) b) |
| 1.0ms | (sqrt (fma (* a -4) c (* b b))) |
4 calls. Slowest were:
| 93.0ms | (/ (- (sqrt (fma (* a -4) c (* b b))) b) (* 2 a)) |
| 66.0ms | (- (sqrt (fma (* a -4) c (* b b))) b) |
| 47.0ms | (sqrt (fma (* a -4) c (* b b))) |
| 38.0ms | (fma (* a -4) c (* b b)) |
34 calls. Slowest were:
| 721.0ms | (- (* (sqrt (fma (* a -4) c (* b b))) (sqrt (fma (* a -4) c (* b b)))) (* b b)) |
| 97.0ms | (- (pow (sqrt (fma (* a -4) c (* b b))) 3) (pow b 3)) |
| 73.0ms | (- (log (- (sqrt (fma (* a -4) c (* b b))) b)) (log (* 2 a))) |
8 alts after pruning (8 fresh and 0 done)
Merged error: 20.8b
Found 4 expressions with local error:
| 21.8b | (sqrt (fma (* a -4) c (* b b))) |
| 1.8b | (- (sqrt (fma (* a -4) c (* b b))) b) |
| 0.3b | (/ (* 2 a) (- (sqrt (fma (* a -4) c (* b b))) b)) |
| 0.2b | (/ 1 (/ (* 2 a) (- (sqrt (fma (* a -4) c (* b b))) b))) |
4 calls. Slowest were:
| 17.0ms | (/ (* 2 a) (- (sqrt (fma (* a -4) c (* b b))) b)) |
| 7.0ms | (/ 1 (/ (* 2 a) (- (sqrt (fma (* a -4) c (* b b))) b))) |
| 5.0ms | (- (sqrt (fma (* a -4) c (* b b))) b) |
4 calls. Slowest were:
| 155.0ms | (/ (* 2 a) (- (sqrt (fma (* a -4) c (* b b))) b)) |
| 78.0ms | (/ 1 (/ (* 2 a) (- (sqrt (fma (* a -4) c (* b b))) b))) |
| 75.0ms | (- (sqrt (fma (* a -4) c (* b b))) b) |
| 65.0ms | (sqrt (fma (* a -4) c (* b b))) |
45 calls. Slowest were:
| 609.0ms | (/ (* (* (* 2 a) (* 2 a)) (* 2 a)) (* (* (- (sqrt (fma (* a -4) c (* b b))) b) (- (sqrt (fma (* a -4) c (* b b))) b)) (- (sqrt (fma (* a -4) c (* b b))) b))) |
| 104.0ms | (+ (* (sqrt (fma (* a -4) c (* b b))) (sqrt (fma (* a -4) c (* b b)))) (+ (* b b) (* (sqrt (fma (* a -4) c (* b b))) b))) |
| 78.0ms | (+ (* (sqrt (fma (* a -4) c (* b b))) (sqrt (fma (* a -4) c (* b b)))) (+ (* b b) (* (sqrt (fma (* a -4) c (* b b))) b))) |
9 alts after pruning (9 fresh and 0 done)
Merged error: 13.2b
Found 4 expressions with local error:
| 21.8b | (sqrt (fma (* a -4) c (* b b))) |
| 1.8b | (- (sqrt (fma (* a -4) c (* b b))) b) |
| 0.3b | (/ 1 (- (sqrt (fma (* a -4) c (* b b))) b)) |
| 0.3b | (/ (/ 1 (* 2 a)) (/ 1 (- (sqrt (fma (* a -4) c (* b b))) b))) |
4 calls. Slowest were:
| 11.0ms | (- (sqrt (fma (* a -4) c (* b b))) b) |
| 10.0ms | (/ (/ 1 (* 2 a)) (/ 1 (- (sqrt (fma (* a -4) c (* b b))) b))) |
| 7.0ms | (/ 1 (- (sqrt (fma (* a -4) c (* b b))) b)) |
4 calls. Slowest were:
| 126.0ms | (/ 1 (- (sqrt (fma (* a -4) c (* b b))) b)) |
| 79.0ms | (/ (/ 1 (* 2 a)) (/ 1 (- (sqrt (fma (* a -4) c (* b b))) b))) |
| 70.0ms | (- (sqrt (fma (* a -4) c (* b b))) b) |
| 50.0ms | (sqrt (fma (* a -4) c (* b b))) |
89 calls. Slowest were:
| 739.0ms | (/ 1 (/ 1 (- (pow (sqrt (fma (* a -4) c (* b b))) 3) (pow b 3)))) |
| 691.0ms | (/ 1 (/ 1 (- (pow (sqrt (fma (* a -4) c (* b b))) 3) (pow b 3)))) |
| 642.0ms | (/ (sqrt (/ 1 (* 2 a))) (/ 1 (- (* (sqrt (fma (* a -4) c (* b b))) (sqrt (fma (* a -4) c (* b b)))) (* b b)))) |
11 alts after pruning (10 fresh and 1 done)
Merged error: 13.0b
79.1% (4.4b remaining)
Error of 16.8b against oracle of 12.4b and baseline of 33.3b