



Bits error versus a




Bits error versus b




Bits error versus c




Bits error versus d
Results
| Original | 25.9 |
|---|---|
| Target | 0.4 |
| Herbie | 25.9 |
Initial program 25.9
Initial simplification25.9
rmApplied add-sqr-sqrt25.9
Applied associate-/r*25.9
rmApplied clear-num25.9
Final simplification25.9
herbie shell --seed 2018365
(FPCore (a b c d)
:name "Complex division, imag part"
:herbie-target
(if (< (fabs d) (fabs c)) (/ (- b (* a (/ d c))) (+ c (* d (/ d c)))) (/ (+ (- a) (* b (/ c d))) (+ d (* c (/ c d)))))
(/ (- (* b c) (* a d)) (+ (* c c) (* d d))))
Time bar (total: 43.5s)Debug log
1 alts after pruning (1 fresh and 0 done)
Merged error: 27.0b
Found 2 expressions with local error:
| 27.0b | (/ (- (* b c) (* a d)) (+ (* c c) (* d d))) |
| 0.7b | (- (* b c) (* a d)) |
2 calls. Slowest were:
| 7.0ms | (/ (- (* b c) (* a d)) (+ (* c c) (* d d))) |
| 2.0ms | (- (* b c) (* a d)) |
2 calls. Slowest were:
| 60.0ms | (/ (- (* b c) (* a d)) (+ (* c c) (* d d))) |
| 30.0ms | (- (* b c) (* a d)) |
37 calls. Slowest were:
| 324.0ms | (- (* (* b c) (* b c)) (* (* a d) (* a d))) |
| 297.0ms | (- (pow (* b c) 3) (pow (* a d) 3)) |
| 190.0ms | (+ (* (* c c) (* c c)) (- (* (* d d) (* d d)) (* (* c c) (* d d)))) |
8 alts after pruning (8 fresh and 0 done)
Merged error: 26.6b
Found 4 expressions with local error:
| 29.3b | (sqrt (+ (* c c) (* d d))) |
| 29.3b | (sqrt (+ (* c c) (* d d))) |
| 17.6b | (/ (- (* b c) (* a d)) (sqrt (+ (* c c) (* d d)))) |
| 0.7b | (- (* b c) (* a d)) |
4 calls. Slowest were:
| 15.0ms | (/ (- (* b c) (* a d)) (sqrt (+ (* c c) (* d d)))) |
| 4.0ms | (sqrt (+ (* c c) (* d d))) |
| 4.0ms | (sqrt (+ (* c c) (* d d))) |
4 calls. Slowest were:
| 104.0ms | (/ (- (* b c) (* a d)) (sqrt (+ (* c c) (* d d)))) |
| 43.0ms | (- (* b c) (* a d)) |
| 35.0ms | (sqrt (+ (* c c) (* d d))) |
| 25.0ms | (sqrt (+ (* c c) (* d d))) |
76 calls. Slowest were:
| 400.0ms | (- (pow (* b c) 3) (pow (* a d) 3)) |
| 303.0ms | (- (* (* b c) (* b c)) (* (* a d) (* a d))) |
| 192.0ms | (/ (* (* (- (* b c) (* a d)) (- (* b c) (* a d))) (- (* b c) (* a d))) (* (* (sqrt (+ (* c c) (* d d))) (sqrt (+ (* c c) (* d d)))) (sqrt (+ (* c c) (* d d))))) |
11 alts after pruning (11 fresh and 0 done)
Merged error: 24.5b
Found 4 expressions with local error:
| 29.3b | (sqrt (+ (* c c) (* d d))) |
| 29.3b | (sqrt (+ (* c c) (* d d))) |
| 17.6b | (/ (sqrt (+ (* c c) (* d d))) (- (* b c) (* a d))) |
| 0.7b | (- (* b c) (* a d)) |
4 calls. Slowest were:
| 13.0ms | (/ (sqrt (+ (* c c) (* d d))) (- (* b c) (* a d))) |
| 3.0ms | (sqrt (+ (* c c) (* d d))) |
| 3.0ms | (sqrt (+ (* c c) (* d d))) |
4 calls. Slowest were:
| 74.0ms | (/ (sqrt (+ (* c c) (* d d))) (- (* b c) (* a d))) |
| 28.0ms | (sqrt (+ (* c c) (* d d))) |
| 28.0ms | (sqrt (+ (* c c) (* d d))) |
| 28.0ms | (- (* b c) (* a d)) |
75 calls. Slowest were:
| 216.0ms | (/ (* (* (sqrt (+ (* c c) (* d d))) (sqrt (+ (* c c) (* d d)))) (sqrt (+ (* c c) (* d d)))) (* (* (- (* b c) (* a d)) (- (* b c) (* a d))) (- (* b c) (* a d)))) |
| 184.0ms | (sqrt (- (* (* c c) (* c c)) (* (* d d) (* d d)))) |
| 141.0ms | (sqrt (- (* (* c c) (* c c)) (* (* d d) (* d d)))) |
11 alts after pruning (10 fresh and 1 done)
Merged error: 24.5b
Found 4 expressions with local error:
| 29.3b | (sqrt (+ (* c c) (* d d))) |
| 29.3b | (sqrt (+ (* c c) (* d d))) |
| 29.3b | (sqrt (+ (* c c) (* d d))) |
| 8.9b | (/ (/ (- (* b c) (* a d)) (sqrt (sqrt (+ (* c c) (* d d))))) (sqrt (sqrt (+ (* c c) (* d d))))) |
4 calls. Slowest were:
| 14.0ms | (/ (/ (- (* b c) (* a d)) (sqrt (sqrt (+ (* c c) (* d d))))) (sqrt (sqrt (+ (* c c) (* d d))))) |
| 2.0ms | (sqrt (+ (* c c) (* d d))) |
| 2.0ms | (sqrt (+ (* c c) (* d d))) |
4 calls. Slowest were:
| 95.0ms | (/ (/ (- (* b c) (* a d)) (sqrt (sqrt (+ (* c c) (* d d))))) (sqrt (sqrt (+ (* c c) (* d d))))) |
| 24.0ms | (sqrt (+ (* c c) (* d d))) |
| 19.0ms | (sqrt (+ (* c c) (* d d))) |
| 19.0ms | (sqrt (+ (* c c) (* d d))) |
673 calls. Slowest were:
| 425.0ms | (/ (* (* (/ (- (* b c) (* a d)) (sqrt (sqrt (+ (* c c) (* d d))))) (/ (- (* b c) (* a d)) (sqrt (sqrt (+ (* c c) (* d d)))))) (/ (- (* b c) (* a d)) (sqrt (sqrt (+ (* c c) (* d d)))))) (* (* (sqrt (sqrt (+ (* c c) (* d d)))) (sqrt (sqrt (+ (* c c) (* d d))))) (sqrt (sqrt (+ (* c c) (* d d)))))) |
| 403.0ms | (/ (/ (* (* (- (* b c) (* a d)) (- (* b c) (* a d))) (- (* b c) (* a d))) (* (* (sqrt (sqrt (+ (* c c) (* d d)))) (sqrt (sqrt (+ (* c c) (* d d))))) (sqrt (sqrt (+ (* c c) (* d d)))))) (* (* (sqrt (sqrt (+ (* c c) (* d d)))) (sqrt (sqrt (+ (* c c) (* d d))))) (sqrt (sqrt (+ (* c c) (* d d)))))) |
| 380.0ms | (/ (/ (- (* b c) (* a d)) (sqrt (cbrt (sqrt (+ (* c c) (* d d)))))) (cbrt (sqrt (sqrt (+ (* c c) (* d d)))))) |
11 alts after pruning (9 fresh and 2 done)
Merged error: 24.5b
0% (2.6b remaining)
Error of 25.9b against oracle of 23.3b and baseline of 25.9b