


Bits error versus x.re



Bits error versus x.im



Bits error versus y.re



Bits error versus y.im
if y.im < -8.346460948837449e+220Initial program 42.5
Simplified42.5
rmApplied add-sqr-sqrt42.5
Applied *-un-lft-identity42.5
Applied times-frac42.5
Simplified42.5
Simplified32.6
rmApplied associate-*l/32.6
Simplified32.6
rmApplied clear-num32.6
Taylor expanded around -inf 11.2
Simplified11.2
if -8.346460948837449e+220 < y.im < 1.0043357683224773e+119Initial program 21.3
Simplified21.3
rmApplied add-sqr-sqrt21.3
Applied *-un-lft-identity21.3
Applied times-frac21.3
Simplified21.3
Simplified12.9
rmApplied associate-*l/12.8
Simplified12.8
if 1.0043357683224773e+119 < y.im Initial program 40.6
Simplified40.6
rmApplied add-sqr-sqrt40.6
Applied *-un-lft-identity40.6
Applied times-frac40.6
Simplified40.6
Simplified26.2
rmApplied associate-*l/26.2
Simplified26.2
rmApplied clear-num26.2
Taylor expanded around inf 15.8
Final simplification13.2
herbie shell --seed 2019005 +o rules:numerics
(FPCore (x.re x.im y.re y.im)
:name "_divideComplex, real part"
(/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))))
Time bar (total: 20.1s)Debug log
1 calls. Slowest were:
| 15.0ms | (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) |
1 alts after pruning (1 fresh and 0 done)
Merged error: 23.6b
Found 2 expressions with local error:
| 23.6b | (/ (fma x.re y.re (* x.im y.im)) (fma y.im y.im (* y.re y.re))) |
| 0.0b | (fma x.re y.re (* x.im y.im)) |
2 calls. Slowest were:
| 7.0ms | (/ (fma x.re y.re (* x.im y.im)) (fma y.im y.im (* y.re y.re))) |
| 0.0ms | (fma x.re y.re (* x.im y.im)) |
2 calls. Slowest were:
| 111.0ms | (/ (fma x.re y.re (* x.im y.im)) (fma y.im y.im (* y.re y.re))) |
| 43.0ms | (fma x.re y.re (* x.im y.im)) |
31 calls. Slowest were:
| 223.0ms | (/ (* (* (fma x.re y.re (* x.im y.im)) (fma x.re y.re (* x.im y.im))) (fma x.re y.re (* x.im y.im))) (* (* (fma y.im y.im (* y.re y.re)) (fma y.im y.im (* y.re y.re))) (fma y.im y.im (* y.re y.re)))) |
| 41.0ms | (/ (* (cbrt (fma x.re y.re (* x.im y.im))) (cbrt (fma x.re y.re (* x.im y.im)))) (* (cbrt (fma y.im y.im (* y.re y.re))) (cbrt (fma y.im y.im (* y.re y.re))))) |
| 32.0ms | (/ (* (cbrt (fma x.re y.re (* x.im y.im))) (cbrt (fma x.re y.re (* x.im y.im)))) 1) |
8 alts after pruning (7 fresh and 1 done)
Merged error: 14.7b
Found 4 expressions with local error:
| 14.4b | (/ (fma y.im x.im (* x.re y.re)) (hypot y.im y.re)) |
| 0.2b | (* (/ 1 (hypot y.im y.re)) (/ (fma y.im x.im (* x.re y.re)) (hypot y.im y.re))) |
| 0.2b | (fma y.im x.im (* x.re y.re)) |
| 0.0b | (hypot y.im y.re) |
4 calls. Slowest were:
| 12.0ms | (* (/ 1 (hypot y.im y.re)) (/ (fma y.im x.im (* x.re y.re)) (hypot y.im y.re))) |
| 7.0ms | (/ (fma y.im x.im (* x.re y.re)) (hypot y.im y.re)) |
| 0.0ms | (fma y.im x.im (* x.re y.re)) |
4 calls. Slowest were:
| 132.0ms | (* (/ 1 (hypot y.im y.re)) (/ (fma y.im x.im (* x.re y.re)) (hypot y.im y.re))) |
| 72.0ms | (/ (fma y.im x.im (* x.re y.re)) (hypot y.im y.re)) |
| 44.0ms | (fma y.im x.im (* x.re y.re)) |
| 37.0ms | (hypot y.im y.re) |
63 calls. Slowest were:
| 568.0ms | (* (* (* (/ 1 (hypot y.im y.re)) (/ 1 (hypot y.im y.re))) (/ 1 (hypot y.im y.re))) (* (* (/ (fma y.im x.im (* x.re y.re)) (hypot y.im y.re)) (/ (fma y.im x.im (* x.re y.re)) (hypot y.im y.re))) (/ (fma y.im x.im (* x.re y.re)) (hypot y.im y.re)))) |
| 313.0ms | (* (/ 1 (hypot y.im y.re)) (/ (fma y.im x.im (* x.re y.re)) (hypot y.im y.re))) |
| 154.0ms | (/ (* (* (fma y.im x.im (* x.re y.re)) (fma y.im x.im (* x.re y.re))) (fma y.im x.im (* x.re y.re))) (* (* (hypot y.im y.re) (hypot y.im y.re)) (hypot y.im y.re))) |
11 alts after pruning (11 fresh and 0 done)
Merged error: 5.5b
Found 4 expressions with local error:
| 14.4b | (/ (fma y.re x.re (* x.im y.im)) (hypot y.im y.re)) |
| 0.1b | (/ (/ (fma y.re x.re (* x.im y.im)) (hypot y.im y.re)) (hypot y.im y.re)) |
| 0.0b | (hypot y.im y.re) |
| 0.0b | (hypot y.im y.re) |
4 calls. Slowest were:
| 8.0ms | (/ (fma y.re x.re (* x.im y.im)) (hypot y.im y.re)) |
| 6.0ms | (/ (/ (fma y.re x.re (* x.im y.im)) (hypot y.im y.re)) (hypot y.im y.re)) |
| 0.0ms | (hypot y.im y.re) |
4 calls. Slowest were:
| 95.0ms | (/ (/ (fma y.re x.re (* x.im y.im)) (hypot y.im y.re)) (hypot y.im y.re)) |
| 83.0ms | (/ (fma y.re x.re (* x.im y.im)) (hypot y.im y.re)) |
| 29.0ms | (hypot y.im y.re) |
| 23.0ms | (hypot y.im y.re) |
135 calls. Slowest were:
| 369.0ms | (/ (/ (* (* (fma y.re x.re (* x.im y.im)) (fma y.re x.re (* x.im y.im))) (fma y.re x.re (* x.im y.im))) (* (* (hypot y.im y.re) (hypot y.im y.re)) (hypot y.im y.re))) (* (* (hypot y.im y.re) (hypot y.im y.re)) (hypot y.im y.re))) |
| 184.0ms | (/ (/ (* (cbrt (fma y.re x.re (* x.im y.im))) (cbrt (fma y.re x.re (* x.im y.im)))) (* (cbrt (hypot y.im y.re)) (cbrt (hypot y.im y.re)))) 1) |
| 178.0ms | (/ (* (* (/ (fma y.re x.re (* x.im y.im)) (hypot y.im y.re)) (/ (fma y.re x.re (* x.im y.im)) (hypot y.im y.re))) (/ (fma y.re x.re (* x.im y.im)) (hypot y.im y.re))) (* (* (hypot y.im y.re) (hypot y.im y.re)) (hypot y.im y.re))) |
11 alts after pruning (10 fresh and 1 done)
Merged error: 3.0b
Found 4 expressions with local error:
| 14.5b | (/ (hypot y.im y.re) (fma y.re x.re (* x.im y.im))) |
| 0.2b | (/ 1 (/ (hypot y.im y.re) (fma y.re x.re (* x.im y.im)))) |
| 0.1b | (/ (/ 1 (/ (hypot y.im y.re) (fma y.re x.re (* x.im y.im)))) (hypot y.im y.re)) |
| 0.0b | (hypot y.im y.re) |
4 calls. Slowest were:
| 8.0ms | (/ (/ 1 (/ (hypot y.im y.re) (fma y.re x.re (* x.im y.im)))) (hypot y.im y.re)) |
| 7.0ms | (/ (hypot y.im y.re) (fma y.re x.re (* x.im y.im))) |
| 3.0ms | (/ 1 (/ (hypot y.im y.re) (fma y.re x.re (* x.im y.im)))) |
4 calls. Slowest were:
| 132.0ms | (/ (/ 1 (/ (hypot y.im y.re) (fma y.re x.re (* x.im y.im)))) (hypot y.im y.re)) |
| 104.0ms | (/ 1 (/ (hypot y.im y.re) (fma y.re x.re (* x.im y.im)))) |
| 74.0ms | (/ (hypot y.im y.re) (fma y.re x.re (* x.im y.im))) |
| 33.0ms | (hypot y.im y.re) |
92 calls. Slowest were:
| 392.0ms | (/ (/ 1 (/ (hypot y.im y.re) (fma y.re x.re (* x.im y.im)))) (sqrt (hypot y.im y.re))) |
| 371.0ms | (/ (/ 1 (/ (hypot y.im y.re) (fma y.re x.re (* x.im y.im)))) (cbrt (hypot y.im y.re))) |
| 361.0ms | (/ (/ 1 (/ (hypot y.im y.re) (fma y.re x.re (* x.im y.im)))) (sqrt (hypot y.im y.re))) |
10 alts after pruning (9 fresh and 1 done)
Merged error: 3.0b
24.7% (10.5b remaining)
Error of 13.2b against oracle of 2.7b and baseline of 16.6b