


Bits error versus x.re



Bits error versus x.im



Bits error versus y.re



Bits error versus y.im
Results
Initial program 26.1
rmApplied add-sqr-sqrt26.1
Applied *-un-lft-identity26.1
Applied times-frac26.1
Final simplification26.1
herbie shell --seed 2019007
(FPCore (x.re x.im y.re y.im)
:name "_divideComplex, imaginary part"
(/ (- (* x.im y.re) (* x.re y.im)) (+ (* y.re y.re) (* y.im y.im))))
Time bar (total: 16.5s)Debug log
1 calls. Slowest were:
| 84.0ms | (/ (- (* x.im y.re) (* x.re y.im)) (+ (* y.re y.re) (* y.im y.im))) |
1 alts after pruning (1 fresh and 0 done)
Merged error: 27.7b
Found 3 expressions with local error:
| 27.6b | (/ (- (* x.im y.re) (* x.re y.im)) (+ (* y.re y.re) (* y.im y.im))) |
| 1.2b | (- (* x.im y.re) (* x.re y.im)) |
| 0.0b | (+ (* y.re y.re) (* y.im y.im)) |
3 calls. Slowest were:
| 15.0ms | (/ (- (* x.im y.re) (* x.re y.im)) (+ (* y.re y.re) (* y.im y.im))) |
| 4.0ms | (+ (* y.re y.re) (* y.im y.im)) |
| 4.0ms | (- (* x.im y.re) (* x.re y.im)) |
3 calls. Slowest were:
| 80.0ms | (/ (- (* x.im y.re) (* x.re y.im)) (+ (* y.re y.re) (* y.im y.im))) |
| 43.0ms | (- (* x.im y.re) (* x.re y.im)) |
| 24.0ms | (+ (* y.re y.re) (* y.im y.im)) |
41 calls. Slowest were:
| 224.0ms | (- (pow (* x.im y.re) 3) (pow (* x.re y.im) 3)) |
| 218.0ms | (- (* (* x.im y.re) (* x.im y.re)) (* (* x.re y.im) (* x.re y.im))) |
| 173.0ms | (+ (* (* y.re y.re) (* y.re y.re)) (- (* (* y.im y.im) (* y.im y.im)) (* (* y.re y.re) (* y.im y.im)))) |
10 alts after pruning (9 fresh and 1 done)
Merged error: 27.2b
Found 4 expressions with local error:
| 32.4b | (sqrt (+ (* y.re y.re) (* y.im y.im))) |
| 32.4b | (sqrt (+ (* y.re y.re) (* y.im y.im))) |
| 17.0b | (/ (- (* x.im y.re) (* x.re y.im)) (sqrt (+ (* y.re y.re) (* y.im y.im)))) |
| 1.2b | (- (* x.im y.re) (* x.re y.im)) |
4 calls. Slowest were:
| 15.0ms | (/ (- (* x.im y.re) (* x.re y.im)) (sqrt (+ (* y.re y.re) (* y.im y.im)))) |
| 4.0ms | (sqrt (+ (* y.re y.re) (* y.im y.im))) |
| 4.0ms | (sqrt (+ (* y.re y.re) (* y.im y.im))) |
4 calls. Slowest were:
| 102.0ms | (/ (- (* x.im y.re) (* x.re y.im)) (sqrt (+ (* y.re y.re) (* y.im y.im)))) |
| 43.0ms | (- (* x.im y.re) (* x.re y.im)) |
| 33.0ms | (sqrt (+ (* y.re y.re) (* y.im y.im))) |
| 32.0ms | (sqrt (+ (* y.re y.re) (* y.im y.im))) |
76 calls. Slowest were:
| 296.0ms | (- (pow (* x.im y.re) 3) (pow (* x.re y.im) 3)) |
| 270.0ms | (- (* (* x.im y.re) (* x.im y.re)) (* (* x.re y.im) (* x.re y.im))) |
| 172.0ms | (/ (* (* (- (* x.im y.re) (* x.re y.im)) (- (* x.im y.re) (* x.re y.im))) (- (* x.im y.re) (* x.re y.im))) (* (* (sqrt (+ (* y.re y.re) (* y.im y.im))) (sqrt (+ (* y.re y.re) (* y.im y.im)))) (sqrt (+ (* y.re y.re) (* y.im y.im))))) |
11 alts after pruning (11 fresh and 0 done)
Merged error: 26.2b
Found 4 expressions with local error:
| 32.4b | (sqrt (+ (* y.re y.re) (* y.im y.im))) |
| 32.4b | (sqrt (+ (* y.re y.re) (* y.im y.im))) |
| 17.0b | (/ (- (* x.im y.re) (* x.re y.im)) (sqrt (+ (* y.re y.re) (* y.im y.im)))) |
| 1.2b | (- (* x.im y.re) (* x.re y.im)) |
4 calls. Slowest were:
| 8.0ms | (/ (- (* x.im y.re) (* x.re y.im)) (sqrt (+ (* y.re y.re) (* y.im y.im)))) |
| 2.0ms | (sqrt (+ (* y.re y.re) (* y.im y.im))) |
| 2.0ms | (- (* x.im y.re) (* x.re y.im)) |
4 calls. Slowest were:
| 88.0ms | (/ (- (* x.im y.re) (* x.re y.im)) (sqrt (+ (* y.re y.re) (* y.im y.im)))) |
| 36.0ms | (- (* x.im y.re) (* x.re y.im)) |
| 19.0ms | (sqrt (+ (* y.re y.re) (* y.im y.im))) |
| 19.0ms | (sqrt (+ (* y.re y.re) (* y.im y.im))) |
76 calls. Slowest were:
| 299.0ms | (- (pow (* x.im y.re) 3) (pow (* x.re y.im) 3)) |
| 231.0ms | (/ (* (* (- (* x.im y.re) (* x.re y.im)) (- (* x.im y.re) (* x.re y.im))) (- (* x.im y.re) (* x.re y.im))) (* (* (sqrt (+ (* y.re y.re) (* y.im y.im))) (sqrt (+ (* y.re y.re) (* y.im y.im)))) (sqrt (+ (* y.re y.re) (* y.im y.im))))) |
| 223.0ms | (- (* (* x.im y.re) (* x.im y.re)) (* (* x.re y.im) (* x.re y.im))) |
12 alts after pruning (11 fresh and 1 done)
Merged error: 26.2b
Found 4 expressions with local error:
| 32.4b | (sqrt (+ (* y.re y.re) (* y.im y.im))) |
| 32.4b | (sqrt (+ (* y.re y.re) (* y.im y.im))) |
| 17.1b | (* (- (* x.im y.re) (* x.re y.im)) (/ 1 (sqrt (+ (* y.re y.re) (* y.im y.im))))) |
| 1.2b | (- (* x.im y.re) (* x.re y.im)) |
4 calls. Slowest were:
| 14.0ms | (* (- (* x.im y.re) (* x.re y.im)) (/ 1 (sqrt (+ (* y.re y.re) (* y.im y.im))))) |
| 4.0ms | (- (* x.im y.re) (* x.re y.im)) |
| 4.0ms | (sqrt (+ (* y.re y.re) (* y.im y.im))) |
4 calls. Slowest were:
| 77.0ms | (* (- (* x.im y.re) (* x.re y.im)) (/ 1 (sqrt (+ (* y.re y.re) (* y.im y.im))))) |
| 46.0ms | (- (* x.im y.re) (* x.re y.im)) |
| 30.0ms | (sqrt (+ (* y.re y.re) (* y.im y.im))) |
| 20.0ms | (sqrt (+ (* y.re y.re) (* y.im y.im))) |
45 calls. Slowest were:
| 427.0ms | (* (- (* (* x.im y.re) (* x.im y.re)) (* (* x.re y.im) (* x.re y.im))) 1) |
| 402.0ms | (* (* (* (- (* x.im y.re) (* x.re y.im)) (- (* x.im y.re) (* x.re y.im))) (- (* x.im y.re) (* x.re y.im))) (* (* (/ 1 (sqrt (+ (* y.re y.re) (* y.im y.im)))) (/ 1 (sqrt (+ (* y.re y.re) (* y.im y.im))))) (/ 1 (sqrt (+ (* y.re y.re) (* y.im y.im)))))) |
| 369.0ms | (* (+ (* (* x.im y.re) (* x.im y.re)) (+ (* (* x.re y.im) (* x.re y.im)) (* (* x.im y.re) (* x.re y.im)))) (sqrt (+ (* y.re y.re) (* y.im y.im)))) |
12 alts after pruning (10 fresh and 2 done)
Merged error: 26.2b
0% (2.6b remaining)
Error of 26.1b against oracle of 23.6b and baseline of 26.1b