
Time bar (total: 3.4s)
| 1× | search |
| Probability | Valid | Unknown | Precondition | Infinite | Domain | Can't | Iter |
|---|---|---|---|---|---|---|---|
| 0% | 0% | 99.8% | 0.2% | 0% | 0% | 0% | 0 |
| 0% | 0% | 99.8% | 0.2% | 0% | 0% | 0% | 1 |
| 0% | 0% | 99.8% | 0.2% | 0% | 0% | 0% | 2 |
| 0% | 0% | 99.8% | 0.2% | 0% | 0% | 0% | 3 |
| 0% | 0% | 99.8% | 0.2% | 0% | 0% | 0% | 4 |
| 75% | 74.9% | 25% | 0.2% | 0% | 0% | 0% | 5 |
| 75% | 74.9% | 25% | 0.2% | 0% | 0% | 0% | 6 |
| 75% | 74.9% | 25% | 0.2% | 0% | 0% | 0% | 7 |
| 87.5% | 87.3% | 12.5% | 0.2% | 0% | 0% | 0% | 8 |
| 93.8% | 93.6% | 6.2% | 0.2% | 0% | 0% | 0% | 9 |
| 93.8% | 93.6% | 6.2% | 0.2% | 0% | 0% | 0% | 10 |
| 93.8% | 93.6% | 6.2% | 0.2% | 0% | 0% | 0% | 11 |
| 96.9% | 96.7% | 3.1% | 0.2% | 0% | 0% | 0% | 12 |
Compiled 17 to 13 computations (23.5% saved)
| 654.0ms | 8 256× | 0 | valid |
ival-mult!: 240.0ms (64.1% of total)ival-add!: 76.0ms (20.3% of total)ival-div!: 57.0ms (15.2% of total)adjust: 2.0ms (0.5% of total)Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 62 | 229 |
| 1 | 292 | 225 |
| 2 | 985 | 225 |
| 3 | 3163 | 225 |
| 1× | node-limit |
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 66.8% | (/.f64 (+.f64 (*.f64 x.re y.re) (*.f64 x.im y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) |
Compiled 30 to 22 computations (26.7% saved)
| Inputs |
|---|
(/.f64 (+.f64 (*.f64 x.re y.re) (*.f64 x.im y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) |
(+.f64 (*.f64 x.re y.re) (*.f64 x.im y.im)) |
(*.f64 x.re y.re) |
x.re |
y.re |
(*.f64 x.im y.im) |
x.im |
y.im |
(+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im)) |
(*.f64 y.re y.re) |
(*.f64 y.im y.im) |
| Outputs |
|---|
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (*.f64 x.im y.im) (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64))))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (+.f64 (/.f64 (*.f64 x.im y.im) (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))) (/.f64 (*.f64 x.re y.re) (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))))) |
#s(approx (+ (* x.re y.re) (* x.im y.im)) (*.f64 x.im y.im)) |
#s(approx (+ (* x.re y.re) (* x.im y.im)) (fma.f64 x.im y.im (*.f64 x.re y.re))) |
#s(approx (* x.re y.re) (*.f64 x.re y.re)) |
#s(approx x.re x.re) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (*.f64 x.re y.re) (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64))))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 x.re (+.f64 (/.f64 y.re (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))) (/.f64 (*.f64 x.im y.im) (*.f64 x.re (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))))))) |
#s(approx (+ (* x.re y.re) (* x.im y.im)) (*.f64 x.re (+.f64 y.re (/.f64 (*.f64 x.im y.im) x.re)))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 #s(literal -1 binary64) (*.f64 x.re (fma.f64 #s(literal -1 binary64) (/.f64 y.re (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))) (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im y.im) (*.f64 x.re (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))))))))) |
#s(approx (+ (* x.re y.re) (* x.im y.im)) (*.f64 #s(literal -1 binary64) (*.f64 x.re (fma.f64 #s(literal -1 binary64) y.re (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im y.im) x.re)))))) |
#s(approx x.im x.im) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 x.im (+.f64 (/.f64 y.im (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))) (/.f64 (*.f64 x.re y.re) (*.f64 x.im (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))))))) |
#s(approx (+ (* x.re y.re) (* x.im y.im)) (*.f64 x.im (+.f64 y.im (/.f64 (*.f64 x.re y.re) x.im)))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 #s(literal -1 binary64) (*.f64 x.im (fma.f64 #s(literal -1 binary64) (/.f64 y.im (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))) (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re y.re) (*.f64 x.im (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))))))))) |
#s(approx (+ (* x.re y.re) (* x.im y.im)) (*.f64 #s(literal -1 binary64) (*.f64 x.im (fma.f64 #s(literal -1 binary64) y.im (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re y.re) x.im)))))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 x.im y.im)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (+.f64 (/.f64 x.im y.im) (/.f64 (*.f64 x.re y.re) (pow.f64 y.im #s(literal 2 binary64))))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (fma.f64 y.re (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im y.re) (pow.f64 y.im #s(literal 3 binary64))) (/.f64 x.re (pow.f64 y.im #s(literal 2 binary64)))) (/.f64 x.im y.im))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (fma.f64 y.re (fma.f64 y.re (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re y.re) (pow.f64 y.im #s(literal 4 binary64)))) (/.f64 x.im (pow.f64 y.im #s(literal 3 binary64)))) (/.f64 x.re (pow.f64 y.im #s(literal 2 binary64)))) (/.f64 x.im y.im))) |
#s(approx y.re y.re) |
#s(approx (+ (* y.re y.re) (* y.im y.im)) (pow.f64 y.im #s(literal 2 binary64))) |
#s(approx (+ (* y.re y.re) (* y.im y.im)) (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))) |
#s(approx (* y.re y.re) (pow.f64 y.re #s(literal 2 binary64))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 x.re y.re)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (+.f64 x.re (/.f64 (*.f64 x.im y.im) y.re)) y.re)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (+.f64 x.re (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re (pow.f64 y.im #s(literal 2 binary64))) (pow.f64 y.re #s(literal 2 binary64))) (/.f64 (*.f64 x.im y.im) y.re))) y.re)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (-.f64 (+.f64 x.re (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im (pow.f64 y.im #s(literal 3 binary64))) (pow.f64 y.re #s(literal 3 binary64))) (/.f64 (*.f64 x.im y.im) y.re))) (/.f64 (*.f64 x.re (pow.f64 y.im #s(literal 2 binary64))) (pow.f64 y.re #s(literal 2 binary64)))) y.re)) |
#s(approx (+ (* x.re y.re) (* x.im y.im)) (*.f64 y.re (+.f64 x.re (/.f64 (*.f64 x.im y.im) y.re)))) |
#s(approx (+ (* y.re y.re) (* y.im y.im)) (*.f64 (pow.f64 y.re #s(literal 2 binary64)) (+.f64 #s(literal 1 binary64) (/.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) x.re (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im y.im) y.re))) y.re))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) x.re (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re (pow.f64 y.im #s(literal 2 binary64))) y.re) (*.f64 x.im y.im)) y.re))) y.re))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) x.re (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) (/.f64 (-.f64 (/.f64 (*.f64 x.im (pow.f64 y.im #s(literal 3 binary64))) y.re) (*.f64 #s(literal -1 binary64) (*.f64 x.re (pow.f64 y.im #s(literal 2 binary64))))) y.re) (*.f64 x.im y.im)) y.re))) y.re))) |
#s(approx (+ (* x.re y.re) (* x.im y.im)) (*.f64 #s(literal -1 binary64) (*.f64 y.re (fma.f64 #s(literal -1 binary64) x.re (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im y.im) y.re)))))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (+.f64 (/.f64 x.re y.re) (/.f64 (*.f64 x.im y.im) (pow.f64 y.re #s(literal 2 binary64))))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (fma.f64 y.im (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re y.im) (pow.f64 y.re #s(literal 3 binary64))) (/.f64 x.im (pow.f64 y.re #s(literal 2 binary64)))) (/.f64 x.re y.re))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (fma.f64 y.im (fma.f64 y.im (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im y.im) (pow.f64 y.re #s(literal 4 binary64)))) (/.f64 x.re (pow.f64 y.re #s(literal 3 binary64)))) (/.f64 x.im (pow.f64 y.re #s(literal 2 binary64)))) (/.f64 x.re y.re))) |
#s(approx y.im y.im) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (+.f64 x.im (/.f64 (*.f64 x.re y.re) y.im)) y.im)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (+.f64 x.im (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im (pow.f64 y.re #s(literal 2 binary64))) (pow.f64 y.im #s(literal 2 binary64))) (/.f64 (*.f64 x.re y.re) y.im))) y.im)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (-.f64 (+.f64 x.im (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re (pow.f64 y.re #s(literal 3 binary64))) (pow.f64 y.im #s(literal 3 binary64))) (/.f64 (*.f64 x.re y.re) y.im))) (/.f64 (*.f64 x.im (pow.f64 y.re #s(literal 2 binary64))) (pow.f64 y.im #s(literal 2 binary64)))) y.im)) |
#s(approx (+ (* x.re y.re) (* x.im y.im)) (*.f64 y.im (+.f64 x.im (/.f64 (*.f64 x.re y.re) y.im)))) |
#s(approx (+ (* y.re y.re) (* y.im y.im)) (*.f64 (pow.f64 y.im #s(literal 2 binary64)) (+.f64 #s(literal 1 binary64) (/.f64 (pow.f64 y.re #s(literal 2 binary64)) (pow.f64 y.im #s(literal 2 binary64)))))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) x.im (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re y.re) y.im))) y.im))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) x.im (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im (pow.f64 y.re #s(literal 2 binary64))) y.im) (*.f64 x.re y.re)) y.im))) y.im))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) x.im (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) (/.f64 (-.f64 (/.f64 (*.f64 x.re (pow.f64 y.re #s(literal 3 binary64))) y.im) (*.f64 #s(literal -1 binary64) (*.f64 x.im (pow.f64 y.re #s(literal 2 binary64))))) y.im) (*.f64 x.re y.re)) y.im))) y.im))) |
#s(approx (+ (* x.re y.re) (* x.im y.im)) (*.f64 #s(literal -1 binary64) (*.f64 y.im (fma.f64 #s(literal -1 binary64) x.im (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re y.re) y.im)))))) |
12 calls:
| Time | Variable | Point |
|---|---|---|
| 3.0ms | y.im | inf |
| 2.0ms | x.im | inf |
| 1.0ms | x.re | inf |
| 1.0ms | y.re | -inf |
| 1.0ms | x.re | 0 |
| Inputs |
|---|
(/.f64 (+.f64 (*.f64 x.re y.re) (*.f64 x.im y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) |
(+.f64 (*.f64 x.re y.re) (*.f64 x.im y.im)) |
(*.f64 x.re y.re) |
x.re |
y.re |
(*.f64 x.im y.im) |
x.im |
y.im |
(+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im)) |
(*.f64 y.re y.re) |
(*.f64 y.im y.im) |
| Outputs |
|---|
(*.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (/.f64 #s(literal 1 binary64) (fma.f64 y.re y.re (*.f64 y.im y.im)))) |
(+.f64 (/.f64 (*.f64 x.re y.re) (fma.f64 y.re y.re (*.f64 y.im y.im))) (/.f64 (*.f64 x.im y.im) (fma.f64 y.re y.re (*.f64 y.im y.im)))) |
(/.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (fma.f64 y.re y.re (*.f64 y.im y.im))) |
(/.f64 (neg.f64 (fma.f64 x.re y.re (*.f64 x.im y.im))) (neg.f64 (fma.f64 y.re y.re (*.f64 y.im y.im)))) |
(+.f64 (*.f64 x.re y.re) (*.f64 x.im y.im)) |
(+.f64 (*.f64 x.im y.im) (*.f64 x.re y.re)) |
(-.f64 (*.f64 x.re y.re) (neg.f64 (*.f64 x.im y.im))) |
(-.f64 (*.f64 x.re y.re) (*.f64 (neg.f64 x.im) y.im)) |
(fma.f64 x.re y.re (*.f64 x.im y.im)) |
(fma.f64 y.re x.re (*.f64 x.im y.im)) |
(fma.f64 x.im y.im (*.f64 x.re y.re)) |
(fma.f64 y.im x.im (*.f64 x.re y.re)) |
(*.f64 x.re y.re) |
(*.f64 y.re x.re) |
x.re |
y.re |
(*.f64 x.im y.im) |
(*.f64 y.im x.im) |
x.im |
y.im |
(+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im)) |
(+.f64 (*.f64 y.im y.im) (*.f64 y.re y.re)) |
(-.f64 (*.f64 y.re y.re) (neg.f64 (*.f64 y.im y.im))) |
(-.f64 (*.f64 y.re y.re) (*.f64 (neg.f64 y.im) y.im)) |
(fma.f64 (fabs.f64 y.re) (fabs.f64 y.re) (*.f64 y.im y.im)) |
(fma.f64 (fabs.f64 y.im) (fabs.f64 y.im) (*.f64 y.re y.re)) |
(fma.f64 (neg.f64 y.re) (neg.f64 y.re) (*.f64 y.im y.im)) |
(fma.f64 (neg.f64 y.im) (neg.f64 y.im) (*.f64 y.re y.re)) |
(fma.f64 y.re y.re (*.f64 y.im y.im)) |
(fma.f64 y.im y.im (*.f64 y.re y.re)) |
(*.f64 y.re y.re) |
(*.f64 (fabs.f64 y.re) (fabs.f64 y.re)) |
(*.f64 (neg.f64 y.re) (neg.f64 y.re)) |
(pow.f64 y.re #s(literal 2 binary64)) |
(*.f64 y.im y.im) |
(*.f64 (fabs.f64 y.im) (fabs.f64 y.im)) |
(*.f64 (neg.f64 y.im) (neg.f64 y.im)) |
(pow.f64 y.im #s(literal 2 binary64)) |
Compiled 1 874 to 327 computations (82.6% saved)
10 alts after pruning (10 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 65 | 10 | 75 |
| Fresh | 0 | 0 | 0 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 66 | 10 | 76 |
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 66.8% | (/.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (fma.f64 y.re y.re (*.f64 y.im y.im))) |
| ▶ | 42.9% | (/.f64 #s(approx (+ (* x.re y.re) (* x.im y.im)) (*.f64 x.im y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) |
| ▶ | 42.1% | #s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (fma.f64 y.re (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im y.re) (pow.f64 y.im #s(literal 3 binary64))) (/.f64 x.re (pow.f64 y.im #s(literal 2 binary64)))) (/.f64 x.im y.im))) |
| 37.4% | #s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (fma.f64 y.im (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re y.im) (pow.f64 y.re #s(literal 3 binary64))) (/.f64 x.im (pow.f64 y.re #s(literal 2 binary64)))) (/.f64 x.re y.re))) | |
| 50.8% | #s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (+.f64 x.re (/.f64 (*.f64 x.im y.im) y.re)) y.re)) | |
| ▶ | 55.0% | #s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (+.f64 x.im (/.f64 (*.f64 x.re y.re) y.im)) y.im)) |
| 37.9% | #s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 x.re y.re)) | |
| ▶ | 47.4% | #s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 x.im y.im)) |
| 57.2% | #s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 x.re (+.f64 (/.f64 y.re (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))) (/.f64 (*.f64 x.im y.im) (*.f64 x.re (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))))))) | |
| 59.9% | #s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 x.im (+.f64 (/.f64 y.im (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))) (/.f64 (*.f64 x.re y.re) (*.f64 x.im (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))))))) |
Compiled 544 to 340 computations (37.5% saved)
| Inputs |
|---|
(/.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (fma.f64 y.re y.re (*.f64 y.im y.im))) |
(fma.f64 x.re y.re (*.f64 x.im y.im)) |
x.re |
y.re |
(*.f64 x.im y.im) |
x.im |
y.im |
(fma.f64 y.re y.re (*.f64 y.im y.im)) |
(*.f64 y.im y.im) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 x.im y.im)) |
(/.f64 x.im y.im) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (+.f64 x.im (/.f64 (*.f64 x.re y.re) y.im)) y.im)) |
(/.f64 (+.f64 x.im (/.f64 (*.f64 x.re y.re) y.im)) y.im) |
(+.f64 x.im (/.f64 (*.f64 x.re y.re) y.im)) |
(/.f64 (*.f64 x.re y.re) y.im) |
(*.f64 x.re y.re) |
(/.f64 #s(approx (+ (* x.re y.re) (* x.im y.im)) (*.f64 x.im y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) |
#s(approx (+ (* x.re y.re) (* x.im y.im)) (*.f64 x.im y.im)) |
(+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im)) |
(*.f64 y.re y.re) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (fma.f64 y.re (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im y.re) (pow.f64 y.im #s(literal 3 binary64))) (/.f64 x.re (pow.f64 y.im #s(literal 2 binary64)))) (/.f64 x.im y.im))) |
(fma.f64 y.re (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im y.re) (pow.f64 y.im #s(literal 3 binary64))) (/.f64 x.re (pow.f64 y.im #s(literal 2 binary64)))) (/.f64 x.im y.im)) |
(fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im y.re) (pow.f64 y.im #s(literal 3 binary64))) (/.f64 x.re (pow.f64 y.im #s(literal 2 binary64)))) |
#s(literal -1 binary64) |
(/.f64 (*.f64 x.im y.re) (pow.f64 y.im #s(literal 3 binary64))) |
(*.f64 x.im y.re) |
(pow.f64 y.im #s(literal 3 binary64)) |
#s(literal 3 binary64) |
(/.f64 x.re (pow.f64 y.im #s(literal 2 binary64))) |
(pow.f64 y.im #s(literal 2 binary64)) |
#s(literal 2 binary64) |
| Outputs |
|---|
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (*.f64 x.im y.im) (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64))))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (+.f64 (/.f64 (*.f64 x.im y.im) (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))) (/.f64 (*.f64 x.re y.re) (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))))) |
#s(approx (+ (* x.re y.re) (* x.im y.im)) (*.f64 x.im y.im)) |
#s(approx (+ (* x.re y.re) (* x.im y.im)) (fma.f64 x.im y.im (*.f64 x.re y.re))) |
#s(approx x.re x.re) |
#s(approx (/ (+ x.im (/ (* x.re y.re) y.im)) y.im) (/.f64 x.im y.im)) |
#s(approx (/ (+ x.im (/ (* x.re y.re) y.im)) y.im) (+.f64 (/.f64 x.im y.im) (/.f64 (*.f64 x.re y.re) (pow.f64 y.im #s(literal 2 binary64))))) |
#s(approx (+ x.im (/ (* x.re y.re) y.im)) x.im) |
#s(approx (+ x.im (/ (* x.re y.re) y.im)) (+.f64 x.im (/.f64 (*.f64 x.re y.re) y.im))) |
#s(approx (/ (* x.re y.re) y.im) (/.f64 (*.f64 x.re y.re) y.im)) |
#s(approx (* x.re y.re) (*.f64 x.re y.re)) |
#s(approx (+ (* y.re (+ (* -1 (/ (* x.im y.re) (pow y.im 3))) (/ x.re (pow y.im 2)))) (/ x.im y.im)) (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im (pow.f64 y.re #s(literal 2 binary64))) (pow.f64 y.im #s(literal 3 binary64))) (/.f64 x.im y.im))) |
#s(approx (+ (* y.re (+ (* -1 (/ (* x.im y.re) (pow y.im 3))) (/ x.re (pow y.im 2)))) (/ x.im y.im)) (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im (pow.f64 y.re #s(literal 2 binary64))) (pow.f64 y.im #s(literal 3 binary64))) (+.f64 (/.f64 x.im y.im) (/.f64 (*.f64 x.re y.re) (pow.f64 y.im #s(literal 2 binary64)))))) |
#s(approx (+ (* -1 (/ (* x.im y.re) (pow y.im 3))) (/ x.re (pow y.im 2))) (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im y.re) (pow.f64 y.im #s(literal 3 binary64))))) |
#s(approx (+ (* -1 (/ (* x.im y.re) (pow y.im 3))) (/ x.re (pow y.im 2))) (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im y.re) (pow.f64 y.im #s(literal 3 binary64))) (/.f64 x.re (pow.f64 y.im #s(literal 2 binary64))))) |
#s(approx (/ x.re (pow y.im 2)) (/.f64 x.re (pow.f64 y.im #s(literal 2 binary64)))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (*.f64 x.re y.re) (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64))))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 x.re (+.f64 (/.f64 y.re (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))) (/.f64 (*.f64 x.im y.im) (*.f64 x.re (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))))))) |
#s(approx (+ (* x.re y.re) (* x.im y.im)) (*.f64 x.re (+.f64 y.re (/.f64 (*.f64 x.im y.im) x.re)))) |
#s(approx (/ (+ x.im (/ (* x.re y.re) y.im)) y.im) (/.f64 (*.f64 x.re y.re) (pow.f64 y.im #s(literal 2 binary64)))) |
#s(approx (/ (+ x.im (/ (* x.re y.re) y.im)) y.im) (*.f64 x.re (+.f64 (/.f64 x.im (*.f64 x.re y.im)) (/.f64 y.re (pow.f64 y.im #s(literal 2 binary64)))))) |
#s(approx (+ x.im (/ (* x.re y.re) y.im)) (*.f64 x.re (+.f64 (/.f64 x.im x.re) (/.f64 y.re y.im)))) |
#s(approx (+ (* y.re (+ (* -1 (/ (* x.im y.re) (pow y.im 3))) (/ x.re (pow y.im 2)))) (/ x.im y.im)) (*.f64 x.re (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im (pow.f64 y.re #s(literal 2 binary64))) (*.f64 x.re (pow.f64 y.im #s(literal 3 binary64)))) (+.f64 (/.f64 x.im (*.f64 x.re y.im)) (/.f64 y.re (pow.f64 y.im #s(literal 2 binary64))))))) |
#s(approx (+ (* -1 (/ (* x.im y.re) (pow y.im 3))) (/ x.re (pow y.im 2))) (*.f64 x.re (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im y.re) (*.f64 x.re (pow.f64 y.im #s(literal 3 binary64)))) (/.f64 #s(literal 1 binary64) (pow.f64 y.im #s(literal 2 binary64)))))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 #s(literal -1 binary64) (*.f64 x.re (fma.f64 #s(literal -1 binary64) (/.f64 y.re (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))) (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im y.im) (*.f64 x.re (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))))))))) |
#s(approx (+ (* x.re y.re) (* x.im y.im)) (*.f64 #s(literal -1 binary64) (*.f64 x.re (fma.f64 #s(literal -1 binary64) y.re (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im y.im) x.re)))))) |
#s(approx (/ (+ x.im (/ (* x.re y.re) y.im)) y.im) (*.f64 #s(literal -1 binary64) (*.f64 x.re (fma.f64 #s(literal -1 binary64) (/.f64 x.im (*.f64 x.re y.im)) (*.f64 #s(literal -1 binary64) (/.f64 y.re (pow.f64 y.im #s(literal 2 binary64)))))))) |
#s(approx (+ x.im (/ (* x.re y.re) y.im)) (*.f64 #s(literal -1 binary64) (*.f64 x.re (fma.f64 #s(literal -1 binary64) (/.f64 x.im x.re) (*.f64 #s(literal -1 binary64) (/.f64 y.re y.im)))))) |
#s(approx (+ (* y.re (+ (* -1 (/ (* x.im y.re) (pow y.im 3))) (/ x.re (pow y.im 2)))) (/ x.im y.im)) (*.f64 #s(literal -1 binary64) (*.f64 x.re (fma.f64 #s(literal -1 binary64) (/.f64 y.re (pow.f64 y.im #s(literal 2 binary64))) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im (pow.f64 y.re #s(literal 2 binary64))) (pow.f64 y.im #s(literal 3 binary64))) (/.f64 x.im y.im)) x.re)))))) |
#s(approx (+ (* -1 (/ (* x.im y.re) (pow y.im 3))) (/ x.re (pow y.im 2))) (*.f64 #s(literal -1 binary64) (*.f64 x.re (-.f64 (/.f64 (*.f64 x.im y.re) (*.f64 x.re (pow.f64 y.im #s(literal 3 binary64)))) (/.f64 #s(literal 1 binary64) (pow.f64 y.im #s(literal 2 binary64))))))) |
#s(approx (+ (* y.re (+ (* -1 (/ (* x.im y.re) (pow y.im 3))) (/ x.re (pow y.im 2)))) (/ x.im y.im)) (fma.f64 x.im (fma.f64 #s(literal -1 binary64) (/.f64 (pow.f64 y.re #s(literal 2 binary64)) (pow.f64 y.im #s(literal 3 binary64))) (/.f64 #s(literal 1 binary64) y.im)) (/.f64 (*.f64 x.re y.re) (pow.f64 y.im #s(literal 2 binary64))))) |
#s(approx (/ (* x.im y.re) (pow y.im 3)) (/.f64 (*.f64 x.im y.re) (pow.f64 y.im #s(literal 3 binary64)))) |
#s(approx (* x.im y.re) (*.f64 x.im y.re)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 x.im (+.f64 (/.f64 y.im (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))) (/.f64 (*.f64 x.re y.re) (*.f64 x.im (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))))))) |
#s(approx (+ (* x.re y.re) (* x.im y.im)) (*.f64 x.im (+.f64 y.im (/.f64 (*.f64 x.re y.re) x.im)))) |
#s(approx (/ (+ x.im (/ (* x.re y.re) y.im)) y.im) (*.f64 x.im (+.f64 (/.f64 #s(literal 1 binary64) y.im) (/.f64 (*.f64 x.re y.re) (*.f64 x.im (pow.f64 y.im #s(literal 2 binary64))))))) |
#s(approx (+ x.im (/ (* x.re y.re) y.im)) (*.f64 x.im (+.f64 #s(literal 1 binary64) (/.f64 (*.f64 x.re y.re) (*.f64 x.im y.im))))) |
#s(approx (+ (* y.re (+ (* -1 (/ (* x.im y.re) (pow y.im 3))) (/ x.re (pow y.im 2)))) (/ x.im y.im)) (*.f64 x.im (fma.f64 #s(literal -1 binary64) (/.f64 (pow.f64 y.re #s(literal 2 binary64)) (pow.f64 y.im #s(literal 3 binary64))) (/.f64 #s(literal 1 binary64) y.im)))) |
#s(approx (+ (* y.re (+ (* -1 (/ (* x.im y.re) (pow y.im 3))) (/ x.re (pow y.im 2)))) (/ x.im y.im)) (*.f64 x.im (fma.f64 #s(literal -1 binary64) (/.f64 (pow.f64 y.re #s(literal 2 binary64)) (pow.f64 y.im #s(literal 3 binary64))) (+.f64 (/.f64 #s(literal 1 binary64) y.im) (/.f64 (*.f64 x.re y.re) (*.f64 x.im (pow.f64 y.im #s(literal 2 binary64)))))))) |
#s(approx (+ (* -1 (/ (* x.im y.re) (pow y.im 3))) (/ x.re (pow y.im 2))) (*.f64 x.im (fma.f64 #s(literal -1 binary64) (/.f64 y.re (pow.f64 y.im #s(literal 3 binary64))) (/.f64 x.re (*.f64 x.im (pow.f64 y.im #s(literal 2 binary64))))))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 #s(literal -1 binary64) (*.f64 x.im (fma.f64 #s(literal -1 binary64) (/.f64 y.im (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))) (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re y.re) (*.f64 x.im (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))))))))) |
#s(approx (+ (* x.re y.re) (* x.im y.im)) (*.f64 #s(literal -1 binary64) (*.f64 x.im (fma.f64 #s(literal -1 binary64) y.im (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re y.re) x.im)))))) |
#s(approx (/ (+ x.im (/ (* x.re y.re) y.im)) y.im) (*.f64 #s(literal -1 binary64) (*.f64 x.im (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re y.re) (*.f64 x.im (pow.f64 y.im #s(literal 2 binary64))))) (/.f64 #s(literal 1 binary64) y.im))))) |
#s(approx (+ x.im (/ (* x.re y.re) y.im)) (*.f64 #s(literal -1 binary64) (*.f64 x.im (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re y.re) (*.f64 x.im y.im))) #s(literal 1 binary64))))) |
#s(approx (+ (* y.re (+ (* -1 (/ (* x.im y.re) (pow y.im 3))) (/ x.re (pow y.im 2)))) (/ x.im y.im)) (*.f64 #s(literal -1 binary64) (*.f64 x.im (-.f64 (/.f64 (pow.f64 y.re #s(literal 2 binary64)) (pow.f64 y.im #s(literal 3 binary64))) (/.f64 #s(literal 1 binary64) y.im))))) |
#s(approx (+ (* y.re (+ (* -1 (/ (* x.im y.re) (pow y.im 3))) (/ x.re (pow y.im 2)))) (/ x.im y.im)) (*.f64 #s(literal -1 binary64) (*.f64 x.im (-.f64 (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re y.re) (*.f64 x.im (pow.f64 y.im #s(literal 2 binary64)))) (/.f64 (pow.f64 y.re #s(literal 2 binary64)) (pow.f64 y.im #s(literal 3 binary64)))) (/.f64 #s(literal 1 binary64) y.im))))) |
#s(approx (+ (* -1 (/ (* x.im y.re) (pow y.im 3))) (/ x.re (pow y.im 2))) (*.f64 #s(literal -1 binary64) (*.f64 x.im (fma.f64 #s(literal -1 binary64) (/.f64 x.re (*.f64 x.im (pow.f64 y.im #s(literal 2 binary64)))) (/.f64 y.re (pow.f64 y.im #s(literal 3 binary64))))))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (fma.f64 y.re (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im y.re) (pow.f64 y.im #s(literal 3 binary64))) (/.f64 x.re (pow.f64 y.im #s(literal 2 binary64)))) (/.f64 x.im y.im))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (fma.f64 y.re (fma.f64 y.re (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re y.re) (pow.f64 y.im #s(literal 4 binary64)))) (/.f64 x.im (pow.f64 y.im #s(literal 3 binary64)))) (/.f64 x.re (pow.f64 y.im #s(literal 2 binary64)))) (/.f64 x.im y.im))) |
#s(approx y.re y.re) |
#s(approx (+ (* y.re y.re) (* y.im y.im)) (pow.f64 y.im #s(literal 2 binary64))) |
#s(approx (+ (* y.re y.re) (* y.im y.im)) (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))) |
#s(approx (* y.re y.re) (pow.f64 y.re #s(literal 2 binary64))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 x.re y.re)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (+.f64 x.re (/.f64 (*.f64 x.im y.im) y.re)) y.re)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (+.f64 x.re (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re (pow.f64 y.im #s(literal 2 binary64))) (pow.f64 y.re #s(literal 2 binary64))) (/.f64 (*.f64 x.im y.im) y.re))) y.re)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (-.f64 (+.f64 x.re (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im (pow.f64 y.im #s(literal 3 binary64))) (pow.f64 y.re #s(literal 3 binary64))) (/.f64 (*.f64 x.im y.im) y.re))) (/.f64 (*.f64 x.re (pow.f64 y.im #s(literal 2 binary64))) (pow.f64 y.re #s(literal 2 binary64)))) y.re)) |
#s(approx (+ (* x.re y.re) (* x.im y.im)) (*.f64 y.re (+.f64 x.re (/.f64 (*.f64 x.im y.im) y.re)))) |
#s(approx (+ (* y.re y.re) (* y.im y.im)) (*.f64 (pow.f64 y.re #s(literal 2 binary64)) (+.f64 #s(literal 1 binary64) (/.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))))) |
#s(approx (/ (+ x.im (/ (* x.re y.re) y.im)) y.im) (*.f64 y.re (+.f64 (/.f64 x.im (*.f64 y.im y.re)) (/.f64 x.re (pow.f64 y.im #s(literal 2 binary64)))))) |
#s(approx (+ x.im (/ (* x.re y.re) y.im)) (*.f64 y.re (+.f64 (/.f64 x.im y.re) (/.f64 x.re y.im)))) |
#s(approx (+ (* y.re (+ (* -1 (/ (* x.im y.re) (pow y.im 3))) (/ x.re (pow y.im 2)))) (/ x.im y.im)) (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im (pow.f64 y.re #s(literal 2 binary64))) (pow.f64 y.im #s(literal 3 binary64))))) |
#s(approx (+ (* y.re (+ (* -1 (/ (* x.im y.re) (pow y.im 3))) (/ x.re (pow y.im 2)))) (/ x.im y.im)) (*.f64 (pow.f64 y.re #s(literal 2 binary64)) (fma.f64 #s(literal -1 binary64) (/.f64 x.im (pow.f64 y.im #s(literal 3 binary64))) (/.f64 x.re (*.f64 (pow.f64 y.im #s(literal 2 binary64)) y.re))))) |
#s(approx (+ (* y.re (+ (* -1 (/ (* x.im y.re) (pow y.im 3))) (/ x.re (pow y.im 2)))) (/ x.im y.im)) (*.f64 (pow.f64 y.re #s(literal 2 binary64)) (fma.f64 #s(literal -1 binary64) (/.f64 x.im (pow.f64 y.im #s(literal 3 binary64))) (+.f64 (/.f64 x.im (*.f64 y.im (pow.f64 y.re #s(literal 2 binary64)))) (/.f64 x.re (*.f64 (pow.f64 y.im #s(literal 2 binary64)) y.re)))))) |
#s(approx (+ (* -1 (/ (* x.im y.re) (pow y.im 3))) (/ x.re (pow y.im 2))) (*.f64 y.re (fma.f64 #s(literal -1 binary64) (/.f64 x.im (pow.f64 y.im #s(literal 3 binary64))) (/.f64 x.re (*.f64 (pow.f64 y.im #s(literal 2 binary64)) y.re))))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) x.re (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im y.im) y.re))) y.re))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) x.re (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re (pow.f64 y.im #s(literal 2 binary64))) y.re) (*.f64 x.im y.im)) y.re))) y.re))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) x.re (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) (/.f64 (-.f64 (/.f64 (*.f64 x.im (pow.f64 y.im #s(literal 3 binary64))) y.re) (*.f64 #s(literal -1 binary64) (*.f64 x.re (pow.f64 y.im #s(literal 2 binary64))))) y.re) (*.f64 x.im y.im)) y.re))) y.re))) |
#s(approx (+ (* x.re y.re) (* x.im y.im)) (*.f64 #s(literal -1 binary64) (*.f64 y.re (fma.f64 #s(literal -1 binary64) x.re (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im y.im) y.re)))))) |
#s(approx (/ (+ x.im (/ (* x.re y.re) y.im)) y.im) (*.f64 #s(literal -1 binary64) (*.f64 y.re (fma.f64 #s(literal -1 binary64) (/.f64 x.im (*.f64 y.im y.re)) (*.f64 #s(literal -1 binary64) (/.f64 x.re (pow.f64 y.im #s(literal 2 binary64)))))))) |
#s(approx (+ x.im (/ (* x.re y.re) y.im)) (*.f64 #s(literal -1 binary64) (*.f64 y.re (fma.f64 #s(literal -1 binary64) (/.f64 x.im y.re) (*.f64 #s(literal -1 binary64) (/.f64 x.re y.im)))))) |
#s(approx (+ (* y.re (+ (* -1 (/ (* x.im y.re) (pow y.im 3))) (/ x.re (pow y.im 2)))) (/ x.im y.im)) (*.f64 (pow.f64 y.re #s(literal 2 binary64)) (fma.f64 #s(literal -1 binary64) (/.f64 x.im (pow.f64 y.im #s(literal 3 binary64))) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) (/.f64 x.im (*.f64 y.im y.re)) (*.f64 #s(literal -1 binary64) (/.f64 x.re (pow.f64 y.im #s(literal 2 binary64))))) y.re))))) |
#s(approx (+ (* -1 (/ (* x.im y.re) (pow y.im 3))) (/ x.re (pow y.im 2))) (*.f64 #s(literal -1 binary64) (*.f64 y.re (fma.f64 #s(literal -1 binary64) (/.f64 x.re (*.f64 (pow.f64 y.im #s(literal 2 binary64)) y.re)) (/.f64 x.im (pow.f64 y.im #s(literal 3 binary64))))))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (+.f64 (/.f64 x.re y.re) (/.f64 (*.f64 x.im y.im) (pow.f64 y.re #s(literal 2 binary64))))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (fma.f64 y.im (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re y.im) (pow.f64 y.re #s(literal 3 binary64))) (/.f64 x.im (pow.f64 y.re #s(literal 2 binary64)))) (/.f64 x.re y.re))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (fma.f64 y.im (fma.f64 y.im (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im y.im) (pow.f64 y.re #s(literal 4 binary64)))) (/.f64 x.re (pow.f64 y.re #s(literal 3 binary64)))) (/.f64 x.im (pow.f64 y.re #s(literal 2 binary64)))) (/.f64 x.re y.re))) |
#s(approx y.im y.im) |
#s(approx (/ (+ x.im (/ (* x.re y.re) y.im)) y.im) (/.f64 (fma.f64 x.im y.im (*.f64 x.re y.re)) (pow.f64 y.im #s(literal 2 binary64)))) |
#s(approx (+ x.im (/ (* x.re y.re) y.im)) (/.f64 (fma.f64 x.im y.im (*.f64 x.re y.re)) y.im)) |
#s(approx (+ (* y.re (+ (* -1 (/ (* x.im y.re) (pow y.im 3))) (/ x.re (pow y.im 2)))) (/ x.im y.im)) (/.f64 (fma.f64 #s(literal -1 binary64) (*.f64 x.im (pow.f64 y.re #s(literal 2 binary64))) (*.f64 x.re (*.f64 y.im y.re))) (pow.f64 y.im #s(literal 3 binary64)))) |
#s(approx (+ (* y.re (+ (* -1 (/ (* x.im y.re) (pow y.im 3))) (/ x.re (pow y.im 2)))) (/ x.im y.im)) (/.f64 (fma.f64 #s(literal -1 binary64) (*.f64 x.im (pow.f64 y.re #s(literal 2 binary64))) (*.f64 y.im (fma.f64 x.im y.im (*.f64 x.re y.re)))) (pow.f64 y.im #s(literal 3 binary64)))) |
#s(approx (+ (* -1 (/ (* x.im y.re) (pow y.im 3))) (/ x.re (pow y.im 2))) (/.f64 (fma.f64 #s(literal -1 binary64) (*.f64 x.im y.re) (*.f64 x.re y.im)) (pow.f64 y.im #s(literal 3 binary64)))) |
#s(approx (pow y.im 3) (pow.f64 y.im #s(literal 3 binary64))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (+.f64 x.im (/.f64 (*.f64 x.re y.re) y.im)) y.im)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (+.f64 x.im (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im (pow.f64 y.re #s(literal 2 binary64))) (pow.f64 y.im #s(literal 2 binary64))) (/.f64 (*.f64 x.re y.re) y.im))) y.im)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (-.f64 (+.f64 x.im (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re (pow.f64 y.re #s(literal 3 binary64))) (pow.f64 y.im #s(literal 3 binary64))) (/.f64 (*.f64 x.re y.re) y.im))) (/.f64 (*.f64 x.im (pow.f64 y.re #s(literal 2 binary64))) (pow.f64 y.im #s(literal 2 binary64)))) y.im)) |
#s(approx (+ (* x.re y.re) (* x.im y.im)) (*.f64 y.im (+.f64 x.im (/.f64 (*.f64 x.re y.re) y.im)))) |
#s(approx (+ (* y.re y.re) (* y.im y.im)) (*.f64 (pow.f64 y.im #s(literal 2 binary64)) (+.f64 #s(literal 1 binary64) (/.f64 (pow.f64 y.re #s(literal 2 binary64)) (pow.f64 y.im #s(literal 2 binary64)))))) |
#s(approx (+ (* -1 (/ (* x.im y.re) (pow y.im 3))) (/ x.re (pow y.im 2))) (/.f64 (+.f64 x.re (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im y.re) y.im))) (pow.f64 y.im #s(literal 2 binary64)))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) x.im (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re y.re) y.im))) y.im))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) x.im (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im (pow.f64 y.re #s(literal 2 binary64))) y.im) (*.f64 x.re y.re)) y.im))) y.im))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) x.im (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) (/.f64 (-.f64 (/.f64 (*.f64 x.re (pow.f64 y.re #s(literal 3 binary64))) y.im) (*.f64 #s(literal -1 binary64) (*.f64 x.im (pow.f64 y.re #s(literal 2 binary64))))) y.im) (*.f64 x.re y.re)) y.im))) y.im))) |
#s(approx (+ (* x.re y.re) (* x.im y.im)) (*.f64 #s(literal -1 binary64) (*.f64 y.im (fma.f64 #s(literal -1 binary64) x.im (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re y.re) y.im)))))) |
12 calls:
| Time | Variable | Point |
|---|---|---|
| 29.0ms | y.im | inf |
| 10.0ms | x.re | 0 |
| 9.0ms | x.im | inf |
| 9.0ms | y.re | -inf |
| 8.0ms | x.im | -inf |
| Inputs |
|---|
(/.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (fma.f64 y.re y.re (*.f64 y.im y.im))) |
(fma.f64 x.re y.re (*.f64 x.im y.im)) |
x.re |
y.re |
(*.f64 x.im y.im) |
x.im |
y.im |
(fma.f64 y.re y.re (*.f64 y.im y.im)) |
(*.f64 y.im y.im) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 x.im y.im)) |
(/.f64 x.im y.im) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (+.f64 x.im (/.f64 (*.f64 x.re y.re) y.im)) y.im)) |
(/.f64 (+.f64 x.im (/.f64 (*.f64 x.re y.re) y.im)) y.im) |
(+.f64 x.im (/.f64 (*.f64 x.re y.re) y.im)) |
(/.f64 (*.f64 x.re y.re) y.im) |
(*.f64 x.re y.re) |
(/.f64 #s(approx (+ (* x.re y.re) (* x.im y.im)) (*.f64 x.im y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) |
#s(approx (+ (* x.re y.re) (* x.im y.im)) (*.f64 x.im y.im)) |
(+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im)) |
(*.f64 y.re y.re) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (fma.f64 y.re (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im y.re) (pow.f64 y.im #s(literal 3 binary64))) (/.f64 x.re (pow.f64 y.im #s(literal 2 binary64)))) (/.f64 x.im y.im))) |
(fma.f64 y.re (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im y.re) (pow.f64 y.im #s(literal 3 binary64))) (/.f64 x.re (pow.f64 y.im #s(literal 2 binary64)))) (/.f64 x.im y.im)) |
(fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im y.re) (pow.f64 y.im #s(literal 3 binary64))) (/.f64 x.re (pow.f64 y.im #s(literal 2 binary64)))) |
#s(literal -1 binary64) |
(/.f64 (*.f64 x.im y.re) (pow.f64 y.im #s(literal 3 binary64))) |
(*.f64 x.im y.re) |
(pow.f64 y.im #s(literal 3 binary64)) |
#s(literal 3 binary64) |
(/.f64 x.re (pow.f64 y.im #s(literal 2 binary64))) |
(pow.f64 y.im #s(literal 2 binary64)) |
#s(literal 2 binary64) |
| Outputs |
|---|
(*.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (/.f64 #s(literal 1 binary64) (fma.f64 y.re y.re (*.f64 y.im y.im)))) |
(+.f64 (/.f64 (*.f64 x.re y.re) (fma.f64 y.re y.re (*.f64 y.im y.im))) (/.f64 (*.f64 x.im y.im) (fma.f64 y.re y.re (*.f64 y.im y.im)))) |
(/.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (fma.f64 y.re y.re (*.f64 y.im y.im))) |
(/.f64 (neg.f64 (fma.f64 x.re y.re (*.f64 x.im y.im))) (neg.f64 (fma.f64 y.re y.re (*.f64 y.im y.im)))) |
(+.f64 (*.f64 x.re y.re) (*.f64 x.im y.im)) |
(+.f64 (*.f64 x.im y.im) (*.f64 x.re y.re)) |
(-.f64 (*.f64 x.re y.re) (neg.f64 (*.f64 x.im y.im))) |
(-.f64 (*.f64 x.re y.re) (*.f64 (neg.f64 x.im) y.im)) |
(fma.f64 x.re y.re (*.f64 x.im y.im)) |
(fma.f64 y.re x.re (*.f64 x.im y.im)) |
(fma.f64 y.im x.im (*.f64 x.re y.re)) |
(fma.f64 x.im y.im (*.f64 x.re y.re)) |
x.re |
y.re |
(*.f64 x.im y.im) |
(*.f64 y.im x.im) |
x.im |
y.im |
(+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im)) |
(+.f64 (*.f64 y.im y.im) (*.f64 y.re y.re)) |
(-.f64 (*.f64 y.re y.re) (neg.f64 (*.f64 y.im y.im))) |
(-.f64 (*.f64 y.re y.re) (*.f64 (neg.f64 y.im) y.im)) |
(fma.f64 y.re y.re (*.f64 y.im y.im)) |
(fma.f64 (fabs.f64 y.re) (fabs.f64 y.re) (*.f64 y.im y.im)) |
(fma.f64 (fabs.f64 y.im) (fabs.f64 y.im) (*.f64 y.re y.re)) |
(fma.f64 (neg.f64 y.re) (neg.f64 y.re) (*.f64 y.im y.im)) |
(fma.f64 (neg.f64 y.im) (neg.f64 y.im) (*.f64 y.re y.re)) |
(fma.f64 y.im y.im (*.f64 y.re y.re)) |
(*.f64 y.im y.im) |
(*.f64 (fabs.f64 y.im) (fabs.f64 y.im)) |
(*.f64 (neg.f64 y.im) (neg.f64 y.im)) |
(pow.f64 y.im #s(literal 2 binary64)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 x.im y.im)) |
(*.f64 x.im (/.f64 #s(literal 1 binary64) y.im)) |
(/.f64 x.im y.im) |
(/.f64 (neg.f64 x.im) (neg.f64 y.im)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (fma.f64 x.re (/.f64 y.re y.im) x.im) y.im)) |
(*.f64 (fma.f64 x.re (/.f64 y.re y.im) x.im) (/.f64 #s(literal 1 binary64) y.im)) |
(+.f64 (/.f64 x.im y.im) (/.f64 (/.f64 (*.f64 x.re y.re) y.im) y.im)) |
(/.f64 (fma.f64 x.re (/.f64 y.re y.im) x.im) y.im) |
(/.f64 (neg.f64 (fma.f64 x.re (/.f64 y.re y.im) x.im)) (neg.f64 y.im)) |
(fma.f64 x.im (/.f64 #s(literal 1 binary64) y.im) (/.f64 (/.f64 (*.f64 x.re y.re) y.im) y.im)) |
(+.f64 x.im (/.f64 (*.f64 x.re y.re) y.im)) |
(+.f64 (/.f64 (*.f64 x.re y.re) y.im) x.im) |
(-.f64 x.im (neg.f64 (/.f64 (*.f64 x.re y.re) y.im))) |
(/.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) y.im) |
(fma.f64 (*.f64 x.re y.re) (/.f64 #s(literal 1 binary64) y.im) x.im) |
(fma.f64 x.re (/.f64 y.re y.im) x.im) |
(*.f64 (*.f64 x.re y.re) (/.f64 #s(literal 1 binary64) y.im)) |
(*.f64 x.re (/.f64 y.re y.im)) |
(/.f64 (*.f64 x.re y.re) y.im) |
(/.f64 (neg.f64 (*.f64 x.re y.re)) (neg.f64 y.im)) |
(*.f64 x.re y.re) |
(*.f64 y.re x.re) |
(/.f64 #s(approx (+ (* x.re y.re) (* x.im y.im)) (*.f64 x.im y.im)) (fma.f64 y.re y.re (*.f64 y.im y.im))) |
#s(approx (+ (* x.re y.re) (* x.im y.im)) (*.f64 x.im y.im)) |
(+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im)) |
(+.f64 (*.f64 y.im y.im) (*.f64 y.re y.re)) |
(-.f64 (*.f64 y.re y.re) (neg.f64 (*.f64 y.im y.im))) |
(-.f64 (*.f64 y.re y.re) (*.f64 (neg.f64 y.im) y.im)) |
(fma.f64 y.re y.re (*.f64 y.im y.im)) |
(fma.f64 (fabs.f64 y.re) (fabs.f64 y.re) (*.f64 y.im y.im)) |
(fma.f64 (fabs.f64 y.im) (fabs.f64 y.im) (*.f64 y.re y.re)) |
(fma.f64 (neg.f64 y.re) (neg.f64 y.re) (*.f64 y.im y.im)) |
(fma.f64 (neg.f64 y.im) (neg.f64 y.im) (*.f64 y.re y.re)) |
(fma.f64 y.im y.im (*.f64 y.re y.re)) |
(*.f64 y.re y.re) |
(*.f64 (fabs.f64 y.re) (fabs.f64 y.re)) |
(*.f64 (neg.f64 y.re) (neg.f64 y.re)) |
(pow.f64 y.re #s(literal 2 binary64)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (fma.f64 y.re (+.f64 (neg.f64 (/.f64 (*.f64 x.im y.re) (*.f64 (*.f64 y.im y.im) y.im))) (/.f64 x.re (*.f64 y.im y.im))) (/.f64 x.im y.im))) |
(+.f64 (*.f64 (+.f64 (neg.f64 (/.f64 (*.f64 x.im y.re) (*.f64 (*.f64 y.im y.im) y.im))) (/.f64 x.re (*.f64 y.im y.im))) y.re) (/.f64 x.im y.im)) |
(+.f64 (/.f64 x.im y.im) (*.f64 (+.f64 (neg.f64 (/.f64 (*.f64 x.im y.re) (*.f64 (*.f64 y.im y.im) y.im))) (/.f64 x.re (*.f64 y.im y.im))) y.re)) |
(-.f64 (*.f64 (+.f64 (neg.f64 (/.f64 (*.f64 x.im y.re) (*.f64 (*.f64 y.im y.im) y.im))) (/.f64 x.re (*.f64 y.im y.im))) y.re) (neg.f64 (/.f64 x.im y.im))) |
(/.f64 (fma.f64 (*.f64 (+.f64 (neg.f64 (/.f64 (*.f64 x.im y.re) (*.f64 (*.f64 y.im y.im) y.im))) (/.f64 x.re (*.f64 y.im y.im))) y.re) y.im x.im) y.im) |
(fma.f64 y.re (+.f64 (neg.f64 (/.f64 (*.f64 x.im y.re) (*.f64 (*.f64 y.im y.im) y.im))) (/.f64 x.re (*.f64 y.im y.im))) (/.f64 x.im y.im)) |
(fma.f64 (+.f64 (neg.f64 (/.f64 (*.f64 x.im y.re) (*.f64 (*.f64 y.im y.im) y.im))) (/.f64 x.re (*.f64 y.im y.im))) y.re (/.f64 x.im y.im)) |
(fma.f64 x.im (/.f64 #s(literal 1 binary64) y.im) (*.f64 (+.f64 (neg.f64 (/.f64 (*.f64 x.im y.re) (*.f64 (*.f64 y.im y.im) y.im))) (/.f64 x.re (*.f64 y.im y.im))) y.re)) |
(+.f64 (neg.f64 (/.f64 (*.f64 x.im y.re) (*.f64 (*.f64 y.im y.im) y.im))) (/.f64 x.re (*.f64 y.im y.im))) |
(+.f64 (/.f64 x.re (*.f64 y.im y.im)) (neg.f64 (/.f64 (*.f64 x.im y.re) (*.f64 (*.f64 y.im y.im) y.im)))) |
(-.f64 (neg.f64 (/.f64 (*.f64 x.im y.re) (*.f64 (*.f64 y.im y.im) y.im))) (neg.f64 (/.f64 x.re (*.f64 y.im y.im)))) |
(/.f64 (fma.f64 (neg.f64 (/.f64 (*.f64 x.im y.re) (*.f64 (*.f64 y.im y.im) y.im))) (*.f64 y.im y.im) x.re) (*.f64 y.im y.im)) |
(fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im y.re) (*.f64 (*.f64 y.im y.im) y.im)) (/.f64 x.re (*.f64 y.im y.im))) |
(fma.f64 (/.f64 (*.f64 x.im y.re) (*.f64 (*.f64 y.im y.im) y.im)) #s(literal -1 binary64) (/.f64 x.re (*.f64 y.im y.im))) |
(fma.f64 x.re (/.f64 #s(literal 1 binary64) (*.f64 y.im y.im)) (neg.f64 (/.f64 (*.f64 x.im y.re) (*.f64 (*.f64 y.im y.im) y.im)))) |
#s(literal -1 binary64) |
(*.f64 (*.f64 x.im y.re) (/.f64 #s(literal 1 binary64) (*.f64 (*.f64 y.im y.im) y.im))) |
(*.f64 x.im (/.f64 y.re (*.f64 (*.f64 y.im y.im) y.im))) |
(/.f64 (*.f64 x.im y.re) (*.f64 (*.f64 y.im y.im) y.im)) |
(/.f64 (neg.f64 (*.f64 x.im y.re)) (neg.f64 (*.f64 (*.f64 y.im y.im) y.im))) |
(*.f64 x.im y.re) |
(*.f64 y.re x.im) |
(*.f64 (*.f64 y.im y.im) y.im) |
(*.f64 y.im (*.f64 y.im y.im)) |
(pow.f64 y.im #s(literal 3 binary64)) |
#s(literal 3 binary64) |
(*.f64 x.re (/.f64 #s(literal 1 binary64) (*.f64 y.im y.im))) |
(/.f64 x.re (*.f64 y.im y.im)) |
(/.f64 (neg.f64 x.re) (neg.f64 (*.f64 y.im y.im))) |
(*.f64 y.im y.im) |
(*.f64 (fabs.f64 y.im) (fabs.f64 y.im)) |
(*.f64 (neg.f64 y.im) (neg.f64 y.im)) |
(pow.f64 y.im #s(literal 2 binary64)) |
#s(literal 2 binary64) |
(+.f64 #s(literal 1 binary64) #s(literal 1 binary64)) |
Compiled 5 677 to 752 computations (86.8% saved)
15 alts after pruning (13 fresh and 2 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 161 | 9 | 170 |
| Fresh | 1 | 4 | 5 |
| Picked | 3 | 2 | 5 |
| Done | 0 | 0 | 0 |
| Total | 165 | 15 | 180 |
| Status | Accuracy | Program |
|---|---|---|
| 42.9% | (/.f64 #s(approx (+ (* x.re y.re) (* x.im y.im)) (*.f64 x.im y.im)) (fma.f64 y.re y.re (*.f64 y.im y.im))) | |
| 37.4% | #s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (fma.f64 y.im (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re y.im) (pow.f64 y.re #s(literal 3 binary64))) (/.f64 x.im (pow.f64 y.re #s(literal 2 binary64)))) (/.f64 x.re y.re))) | |
| 54.9% | #s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (fma.f64 x.im (/.f64 #s(literal 1 binary64) y.im) (/.f64 (/.f64 (*.f64 x.re y.re) y.im) y.im))) | |
| 56.7% | #s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (fma.f64 x.re (/.f64 y.re y.im) x.im) y.im)) | |
| ▶ | 50.8% | #s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (+.f64 x.re (/.f64 (*.f64 x.im y.im) y.re)) y.re)) |
| ✓ | 55.0% | #s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (+.f64 x.im (/.f64 (*.f64 x.re y.re) y.im)) y.im)) |
| 53.0% | #s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 #s(approx (+ x.im (/ (* x.re y.re) y.im)) (*.f64 x.im (+.f64 #s(literal 1 binary64) (/.f64 (*.f64 x.re y.re) (*.f64 x.im y.im))))) y.im)) | |
| ▶ | 37.9% | #s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 x.re y.re)) |
| ✓ | 47.4% | #s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 x.im y.im)) |
| ▶ | 54.9% | #s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (+.f64 (/.f64 x.im y.im) (/.f64 (/.f64 (*.f64 x.re y.re) y.im) y.im))) |
| 56.6% | #s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 (fma.f64 x.re (/.f64 y.re y.im) x.im) (/.f64 #s(literal 1 binary64) y.im))) | |
| 47.3% | #s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 x.im (/.f64 #s(literal 1 binary64) y.im))) | |
| ▶ | 59.9% | #s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 x.im (+.f64 (/.f64 y.im (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))) (/.f64 (*.f64 x.re y.re) (*.f64 x.im (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))))))) |
| ▶ | 18.1% | #s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) #s(approx (/ (+ x.im (/ (* x.re y.re) y.im)) y.im) (/.f64 (*.f64 x.re y.re) (pow.f64 y.im #s(literal 2 binary64))))) |
| 41.2% | #s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) #s(approx (/ (+ x.im (/ (* x.re y.re) y.im)) y.im) (*.f64 x.re (+.f64 (/.f64 x.im (*.f64 x.re y.im)) (/.f64 y.re (pow.f64 y.im #s(literal 2 binary64))))))) |
Compiled 790 to 495 computations (37.3% saved)
| Inputs |
|---|
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 x.im (+.f64 (/.f64 y.im (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))) (/.f64 (*.f64 x.re y.re) (*.f64 x.im (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))))))) |
(*.f64 x.im (+.f64 (/.f64 y.im (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))) (/.f64 (*.f64 x.re y.re) (*.f64 x.im (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64))))))) |
x.im |
(+.f64 (/.f64 y.im (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))) (/.f64 (*.f64 x.re y.re) (*.f64 x.im (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))))) |
(/.f64 y.im (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))) |
y.im |
(+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64))) |
(pow.f64 y.im #s(literal 2 binary64)) |
#s(literal 2 binary64) |
(pow.f64 y.re #s(literal 2 binary64)) |
y.re |
(/.f64 (*.f64 x.re y.re) (*.f64 x.im (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64))))) |
(*.f64 x.re y.re) |
x.re |
(*.f64 x.im (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 x.re y.re)) |
(/.f64 x.re y.re) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (+.f64 x.re (/.f64 (*.f64 x.im y.im) y.re)) y.re)) |
(/.f64 (+.f64 x.re (/.f64 (*.f64 x.im y.im) y.re)) y.re) |
(+.f64 x.re (/.f64 (*.f64 x.im y.im) y.re)) |
(/.f64 (*.f64 x.im y.im) y.re) |
(*.f64 x.im y.im) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (+.f64 (/.f64 x.im y.im) (/.f64 (/.f64 (*.f64 x.re y.re) y.im) y.im))) |
(+.f64 (/.f64 x.im y.im) (/.f64 (/.f64 (*.f64 x.re y.re) y.im) y.im)) |
(/.f64 x.im y.im) |
(/.f64 (/.f64 (*.f64 x.re y.re) y.im) y.im) |
(/.f64 (*.f64 x.re y.re) y.im) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) #s(approx (/ (+ x.im (/ (* x.re y.re) y.im)) y.im) (/.f64 (*.f64 x.re y.re) (pow.f64 y.im #s(literal 2 binary64))))) |
#s(approx (/ (+ x.im (/ (* x.re y.re) y.im)) y.im) (/.f64 (*.f64 x.re y.re) (pow.f64 y.im #s(literal 2 binary64)))) |
(/.f64 (*.f64 x.re y.re) (pow.f64 y.im #s(literal 2 binary64))) |
| Outputs |
|---|
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (*.f64 x.im y.im) (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64))))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (+.f64 (/.f64 (*.f64 x.im y.im) (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))) (/.f64 (*.f64 x.re y.re) (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))))) |
#s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (/.f64 y.im (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64))))) |
#s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (+.f64 (/.f64 y.im (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))) (/.f64 (*.f64 x.re y.re) (*.f64 x.im (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64))))))) |
#s(approx (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2)))) (/.f64 (*.f64 x.re y.re) (*.f64 x.im (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))))) |
#s(approx (* x.re y.re) (*.f64 x.re y.re)) |
#s(approx x.re x.re) |
#s(approx (/ x.re y.re) (/.f64 x.re y.re)) |
#s(approx (/ (+ x.re (/ (* x.im y.im) y.re)) y.re) (/.f64 (*.f64 x.im y.im) (pow.f64 y.re #s(literal 2 binary64)))) |
#s(approx (/ (+ x.re (/ (* x.im y.im) y.re)) y.re) (+.f64 (/.f64 x.re y.re) (/.f64 (*.f64 x.im y.im) (pow.f64 y.re #s(literal 2 binary64))))) |
#s(approx (+ x.re (/ (* x.im y.im) y.re)) (/.f64 (*.f64 x.im y.im) y.re)) |
#s(approx (+ x.re (/ (* x.im y.im) y.re)) (+.f64 x.re (/.f64 (*.f64 x.im y.im) y.re))) |
#s(approx (+ (/ x.im y.im) (/ (/ (* x.re y.re) y.im) y.im)) (/.f64 x.im y.im)) |
#s(approx (+ (/ x.im y.im) (/ (/ (* x.re y.re) y.im) y.im)) (+.f64 (/.f64 x.im y.im) (/.f64 (*.f64 x.re y.re) (pow.f64 y.im #s(literal 2 binary64))))) |
#s(approx (/ (/ (* x.re y.re) y.im) y.im) (/.f64 (*.f64 x.re y.re) (pow.f64 y.im #s(literal 2 binary64)))) |
#s(approx (/ (* x.re y.re) y.im) (/.f64 (*.f64 x.re y.re) y.im)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (*.f64 x.re y.re) (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64))))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 x.re (+.f64 (/.f64 y.re (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))) (/.f64 (*.f64 x.im y.im) (*.f64 x.re (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))))))) |
#s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (*.f64 x.re (+.f64 (/.f64 y.im (*.f64 x.re (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64))))) (/.f64 y.re (*.f64 x.im (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))))))) |
#s(approx (/ (+ x.re (/ (* x.im y.im) y.re)) y.re) (*.f64 x.re (+.f64 (/.f64 #s(literal 1 binary64) y.re) (/.f64 (*.f64 x.im y.im) (*.f64 x.re (pow.f64 y.re #s(literal 2 binary64))))))) |
#s(approx (+ x.re (/ (* x.im y.im) y.re)) (*.f64 x.re (+.f64 #s(literal 1 binary64) (/.f64 (*.f64 x.im y.im) (*.f64 x.re y.re))))) |
#s(approx (+ (/ x.im y.im) (/ (/ (* x.re y.re) y.im) y.im)) (*.f64 x.re (+.f64 (/.f64 x.im (*.f64 x.re y.im)) (/.f64 y.re (pow.f64 y.im #s(literal 2 binary64)))))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 #s(literal -1 binary64) (*.f64 x.re (fma.f64 #s(literal -1 binary64) (/.f64 y.re (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))) (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im y.im) (*.f64 x.re (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))))))))) |
#s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (*.f64 #s(literal -1 binary64) (*.f64 x.re (fma.f64 #s(literal -1 binary64) (/.f64 y.im (*.f64 x.re (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64))))) (*.f64 #s(literal -1 binary64) (/.f64 y.re (*.f64 x.im (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))))))))) |
#s(approx (/ (+ x.re (/ (* x.im y.im) y.re)) y.re) (*.f64 #s(literal -1 binary64) (*.f64 x.re (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im y.im) (*.f64 x.re (pow.f64 y.re #s(literal 2 binary64))))) (/.f64 #s(literal 1 binary64) y.re))))) |
#s(approx (+ x.re (/ (* x.im y.im) y.re)) (*.f64 #s(literal -1 binary64) (*.f64 x.re (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im y.im) (*.f64 x.re y.re))) #s(literal 1 binary64))))) |
#s(approx (+ (/ x.im y.im) (/ (/ (* x.re y.re) y.im) y.im)) (*.f64 #s(literal -1 binary64) (*.f64 x.re (fma.f64 #s(literal -1 binary64) (/.f64 x.im (*.f64 x.re y.im)) (*.f64 #s(literal -1 binary64) (/.f64 y.re (pow.f64 y.im #s(literal 2 binary64)))))))) |
#s(approx x.im x.im) |
#s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (/.f64 (+.f64 (/.f64 (*.f64 x.im y.im) (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))) (/.f64 (*.f64 x.re y.re) (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64))))) x.im)) |
#s(approx (* x.im (+ (pow y.im 2) (pow y.re 2))) (*.f64 x.im (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64))))) |
#s(approx (* x.im y.im) (*.f64 x.im y.im)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 x.im (+.f64 (/.f64 y.im (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))) (/.f64 (*.f64 x.re y.re) (*.f64 x.im (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))))))) |
#s(approx (/ (+ x.re (/ (* x.im y.im) y.re)) y.re) (*.f64 x.im (+.f64 (/.f64 x.re (*.f64 x.im y.re)) (/.f64 y.im (pow.f64 y.re #s(literal 2 binary64)))))) |
#s(approx (+ x.re (/ (* x.im y.im) y.re)) (*.f64 x.im (+.f64 (/.f64 x.re x.im) (/.f64 y.im y.re)))) |
#s(approx (+ (/ x.im y.im) (/ (/ (* x.re y.re) y.im) y.im)) (*.f64 x.im (+.f64 (/.f64 #s(literal 1 binary64) y.im) (/.f64 (*.f64 x.re y.re) (*.f64 x.im (pow.f64 y.im #s(literal 2 binary64))))))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 #s(literal -1 binary64) (*.f64 x.im (fma.f64 #s(literal -1 binary64) (/.f64 y.im (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))) (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re y.re) (*.f64 x.im (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))))))))) |
#s(approx (/ (+ x.re (/ (* x.im y.im) y.re)) y.re) (*.f64 #s(literal -1 binary64) (*.f64 x.im (fma.f64 #s(literal -1 binary64) (/.f64 x.re (*.f64 x.im y.re)) (*.f64 #s(literal -1 binary64) (/.f64 y.im (pow.f64 y.re #s(literal 2 binary64)))))))) |
#s(approx (+ x.re (/ (* x.im y.im) y.re)) (*.f64 #s(literal -1 binary64) (*.f64 x.im (fma.f64 #s(literal -1 binary64) (/.f64 x.re x.im) (*.f64 #s(literal -1 binary64) (/.f64 y.im y.re)))))) |
#s(approx (+ (/ x.im y.im) (/ (/ (* x.re y.re) y.im) y.im)) (*.f64 #s(literal -1 binary64) (*.f64 x.im (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re y.re) (*.f64 x.im (pow.f64 y.im #s(literal 2 binary64))))) (/.f64 #s(literal 1 binary64) y.im))))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (fma.f64 y.re (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im y.re) (pow.f64 y.im #s(literal 3 binary64))) (/.f64 x.re (pow.f64 y.im #s(literal 2 binary64)))) (/.f64 x.im y.im))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (fma.f64 y.re (fma.f64 y.re (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re y.re) (pow.f64 y.im #s(literal 4 binary64)))) (/.f64 x.im (pow.f64 y.im #s(literal 3 binary64)))) (/.f64 x.re (pow.f64 y.im #s(literal 2 binary64)))) (/.f64 x.im y.im))) |
#s(approx (* x.im (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2)))))) (fma.f64 y.re (fma.f64 y.re (fma.f64 #s(literal -1 binary64) (/.f64 x.im (pow.f64 y.im #s(literal 3 binary64))) (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re y.re) (pow.f64 y.im #s(literal 4 binary64))))) (/.f64 x.re (pow.f64 y.im #s(literal 2 binary64)))) (/.f64 x.im y.im))) |
#s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (/.f64 #s(literal 1 binary64) y.im)) |
#s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (+.f64 (/.f64 #s(literal 1 binary64) y.im) (/.f64 (*.f64 x.re y.re) (*.f64 x.im (pow.f64 y.im #s(literal 2 binary64)))))) |
#s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (fma.f64 y.re (fma.f64 #s(literal -1 binary64) (/.f64 y.re (pow.f64 y.im #s(literal 3 binary64))) (/.f64 x.re (*.f64 x.im (pow.f64 y.im #s(literal 2 binary64))))) (/.f64 #s(literal 1 binary64) y.im))) |
#s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (fma.f64 y.re (fma.f64 y.re (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re y.re) (*.f64 x.im (pow.f64 y.im #s(literal 4 binary64))))) (/.f64 #s(literal 1 binary64) (pow.f64 y.im #s(literal 3 binary64)))) (/.f64 x.re (*.f64 x.im (pow.f64 y.im #s(literal 2 binary64))))) (/.f64 #s(literal 1 binary64) y.im))) |
#s(approx (/ y.im (+ (pow y.im 2) (pow y.re 2))) (fma.f64 #s(literal -1 binary64) (/.f64 (pow.f64 y.re #s(literal 2 binary64)) (pow.f64 y.im #s(literal 3 binary64))) (/.f64 #s(literal 1 binary64) y.im))) |
#s(approx (/ y.im (+ (pow y.im 2) (pow y.re 2))) (fma.f64 (pow.f64 y.re #s(literal 2 binary64)) (-.f64 (/.f64 (pow.f64 y.re #s(literal 2 binary64)) (pow.f64 y.im #s(literal 5 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 y.im #s(literal 3 binary64)))) (/.f64 #s(literal 1 binary64) y.im))) |
#s(approx (/ y.im (+ (pow y.im 2) (pow y.re 2))) (fma.f64 (pow.f64 y.re #s(literal 2 binary64)) (-.f64 (*.f64 (pow.f64 y.re #s(literal 2 binary64)) (fma.f64 #s(literal -1 binary64) (/.f64 (pow.f64 y.re #s(literal 2 binary64)) (pow.f64 y.im #s(literal 7 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 y.im #s(literal 5 binary64))))) (/.f64 #s(literal 1 binary64) (pow.f64 y.im #s(literal 3 binary64)))) (/.f64 #s(literal 1 binary64) y.im))) |
#s(approx (+ (pow y.im 2) (pow y.re 2)) (pow.f64 y.im #s(literal 2 binary64))) |
#s(approx (+ (pow y.im 2) (pow y.re 2)) (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))) |
#s(approx (pow y.re 2) (pow.f64 y.re #s(literal 2 binary64))) |
#s(approx y.re y.re) |
#s(approx (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2)))) (/.f64 (*.f64 x.re y.re) (*.f64 x.im (pow.f64 y.im #s(literal 2 binary64))))) |
#s(approx (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2)))) (*.f64 y.re (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re (pow.f64 y.re #s(literal 2 binary64))) (*.f64 x.im (pow.f64 y.im #s(literal 4 binary64)))) (/.f64 x.re (*.f64 x.im (pow.f64 y.im #s(literal 2 binary64))))))) |
#s(approx (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2)))) (*.f64 y.re (fma.f64 (pow.f64 y.re #s(literal 2 binary64)) (-.f64 (/.f64 (*.f64 x.re (pow.f64 y.re #s(literal 2 binary64))) (*.f64 x.im (pow.f64 y.im #s(literal 6 binary64)))) (/.f64 x.re (*.f64 x.im (pow.f64 y.im #s(literal 4 binary64))))) (/.f64 x.re (*.f64 x.im (pow.f64 y.im #s(literal 2 binary64))))))) |
#s(approx (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2)))) (*.f64 y.re (fma.f64 (pow.f64 y.re #s(literal 2 binary64)) (-.f64 (*.f64 (pow.f64 y.re #s(literal 2 binary64)) (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re (pow.f64 y.re #s(literal 2 binary64))) (*.f64 x.im (pow.f64 y.im #s(literal 8 binary64))))) (*.f64 #s(literal -1 binary64) (/.f64 x.re (*.f64 x.im (pow.f64 y.im #s(literal 6 binary64))))))) (/.f64 x.re (*.f64 x.im (pow.f64 y.im #s(literal 4 binary64))))) (/.f64 x.re (*.f64 x.im (pow.f64 y.im #s(literal 2 binary64))))))) |
#s(approx (* x.im (+ (pow y.im 2) (pow y.re 2))) (*.f64 x.im (pow.f64 y.im #s(literal 2 binary64)))) |
#s(approx (* x.im (+ (pow y.im 2) (pow y.re 2))) (fma.f64 x.im (pow.f64 y.im #s(literal 2 binary64)) (*.f64 x.im (pow.f64 y.re #s(literal 2 binary64))))) |
#s(approx (/ (+ x.re (/ (* x.im y.im) y.re)) y.re) (/.f64 (fma.f64 x.im y.im (*.f64 x.re y.re)) (pow.f64 y.re #s(literal 2 binary64)))) |
#s(approx (+ x.re (/ (* x.im y.im) y.re)) (/.f64 (fma.f64 x.im y.im (*.f64 x.re y.re)) y.re)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (+.f64 x.re (/.f64 (*.f64 x.im y.im) y.re)) y.re)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (+.f64 x.re (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re (pow.f64 y.im #s(literal 2 binary64))) (pow.f64 y.re #s(literal 2 binary64))) (/.f64 (*.f64 x.im y.im) y.re))) y.re)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (-.f64 (+.f64 x.re (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im (pow.f64 y.im #s(literal 3 binary64))) (pow.f64 y.re #s(literal 3 binary64))) (/.f64 (*.f64 x.im y.im) y.re))) (/.f64 (*.f64 x.re (pow.f64 y.im #s(literal 2 binary64))) (pow.f64 y.re #s(literal 2 binary64)))) y.re)) |
#s(approx (* x.im (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2)))))) (/.f64 (+.f64 x.re (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im (pow.f64 y.im #s(literal 3 binary64))) (pow.f64 y.re #s(literal 3 binary64))) (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re (pow.f64 y.im #s(literal 2 binary64))) (pow.f64 y.re #s(literal 2 binary64))) (/.f64 (*.f64 x.im y.im) y.re)))) y.re)) |
#s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (/.f64 x.re (*.f64 x.im y.re))) |
#s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (/.f64 (+.f64 (/.f64 x.re x.im) (/.f64 y.im y.re)) y.re)) |
#s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (/.f64 (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re (pow.f64 y.im #s(literal 2 binary64))) (*.f64 x.im (pow.f64 y.re #s(literal 2 binary64)))) (+.f64 (/.f64 x.re x.im) (/.f64 y.im y.re))) y.re)) |
#s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (/.f64 (-.f64 (fma.f64 #s(literal -1 binary64) (/.f64 (pow.f64 y.im #s(literal 3 binary64)) (pow.f64 y.re #s(literal 3 binary64))) (+.f64 (/.f64 x.re x.im) (/.f64 y.im y.re))) (/.f64 (*.f64 x.re (pow.f64 y.im #s(literal 2 binary64))) (*.f64 x.im (pow.f64 y.re #s(literal 2 binary64))))) y.re)) |
#s(approx (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/.f64 y.im (pow.f64 y.re #s(literal 2 binary64)))) |
#s(approx (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/.f64 (+.f64 y.im (*.f64 #s(literal -1 binary64) (/.f64 (pow.f64 y.im #s(literal 3 binary64)) (pow.f64 y.re #s(literal 2 binary64))))) (pow.f64 y.re #s(literal 2 binary64)))) |
#s(approx (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/.f64 (-.f64 (+.f64 y.im (/.f64 (pow.f64 y.im #s(literal 5 binary64)) (pow.f64 y.re #s(literal 4 binary64)))) (/.f64 (pow.f64 y.im #s(literal 3 binary64)) (pow.f64 y.re #s(literal 2 binary64)))) (pow.f64 y.re #s(literal 2 binary64)))) |
#s(approx (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/.f64 (-.f64 (+.f64 y.im (*.f64 #s(literal -1 binary64) (/.f64 (pow.f64 y.im #s(literal 7 binary64)) (pow.f64 y.re #s(literal 6 binary64))))) (fma.f64 #s(literal -1 binary64) (/.f64 (pow.f64 y.im #s(literal 5 binary64)) (pow.f64 y.re #s(literal 4 binary64))) (/.f64 (pow.f64 y.im #s(literal 3 binary64)) (pow.f64 y.re #s(literal 2 binary64))))) (pow.f64 y.re #s(literal 2 binary64)))) |
#s(approx (+ (pow y.im 2) (pow y.re 2)) (*.f64 (pow.f64 y.re #s(literal 2 binary64)) (+.f64 #s(literal 1 binary64) (/.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))))) |
#s(approx (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2)))) (/.f64 (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re (pow.f64 y.im #s(literal 2 binary64))) (*.f64 x.im (pow.f64 y.re #s(literal 2 binary64)))) (/.f64 x.re x.im)) y.re)) |
#s(approx (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2)))) (/.f64 (-.f64 (+.f64 (/.f64 x.re x.im) (/.f64 (*.f64 x.re (pow.f64 y.im #s(literal 4 binary64))) (*.f64 x.im (pow.f64 y.re #s(literal 4 binary64))))) (/.f64 (*.f64 x.re (pow.f64 y.im #s(literal 2 binary64))) (*.f64 x.im (pow.f64 y.re #s(literal 2 binary64))))) y.re)) |
#s(approx (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2)))) (/.f64 (-.f64 (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re (pow.f64 y.im #s(literal 6 binary64))) (*.f64 x.im (pow.f64 y.re #s(literal 6 binary64)))) (/.f64 x.re x.im)) (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re (pow.f64 y.im #s(literal 4 binary64))) (*.f64 x.im (pow.f64 y.re #s(literal 4 binary64)))) (/.f64 (*.f64 x.re (pow.f64 y.im #s(literal 2 binary64))) (*.f64 x.im (pow.f64 y.re #s(literal 2 binary64)))))) y.re)) |
#s(approx (* x.im (+ (pow y.im 2) (pow y.re 2))) (*.f64 x.im (pow.f64 y.re #s(literal 2 binary64)))) |
#s(approx (* x.im (+ (pow y.im 2) (pow y.re 2))) (*.f64 (pow.f64 y.re #s(literal 2 binary64)) (+.f64 x.im (/.f64 (*.f64 x.im (pow.f64 y.im #s(literal 2 binary64))) (pow.f64 y.re #s(literal 2 binary64)))))) |
#s(approx (+ (/ x.im y.im) (/ (/ (* x.re y.re) y.im) y.im)) (*.f64 y.re (+.f64 (/.f64 x.im (*.f64 y.im y.re)) (/.f64 x.re (pow.f64 y.im #s(literal 2 binary64)))))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) x.re (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im y.im) y.re))) y.re))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) x.re (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re (pow.f64 y.im #s(literal 2 binary64))) y.re) (*.f64 x.im y.im)) y.re))) y.re))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) x.re (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) (/.f64 (-.f64 (/.f64 (*.f64 x.im (pow.f64 y.im #s(literal 3 binary64))) y.re) (*.f64 #s(literal -1 binary64) (*.f64 x.re (pow.f64 y.im #s(literal 2 binary64))))) y.re) (*.f64 x.im y.im)) y.re))) y.re))) |
#s(approx (* x.im (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2)))))) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) x.re (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) (/.f64 (fma.f64 x.re (pow.f64 y.im #s(literal 2 binary64)) (/.f64 (*.f64 x.im (pow.f64 y.im #s(literal 3 binary64))) y.re)) y.re) (*.f64 x.im y.im)) y.re))) y.re))) |
#s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) (/.f64 x.re x.im) (*.f64 #s(literal -1 binary64) (/.f64 y.im y.re))) y.re))) |
#s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) (/.f64 x.re x.im) (*.f64 #s(literal -1 binary64) (/.f64 (+.f64 y.im (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re (pow.f64 y.im #s(literal 2 binary64))) (*.f64 x.im y.re)))) y.re))) y.re))) |
#s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) (/.f64 x.re x.im) (*.f64 #s(literal -1 binary64) (/.f64 (+.f64 y.im (*.f64 #s(literal -1 binary64) (/.f64 (+.f64 (/.f64 (*.f64 x.re (pow.f64 y.im #s(literal 2 binary64))) x.im) (/.f64 (pow.f64 y.im #s(literal 3 binary64)) y.re)) y.re))) y.re))) y.re))) |
#s(approx (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2)))) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) (/.f64 x.re x.im) (/.f64 (*.f64 x.re (pow.f64 y.im #s(literal 2 binary64))) (*.f64 x.im (pow.f64 y.re #s(literal 2 binary64))))) y.re))) |
#s(approx (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2)))) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) (/.f64 x.re x.im) (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re (pow.f64 y.im #s(literal 4 binary64))) (*.f64 x.im (pow.f64 y.re #s(literal 4 binary64)))) (/.f64 (*.f64 x.re (pow.f64 y.im #s(literal 2 binary64))) (*.f64 x.im (pow.f64 y.re #s(literal 2 binary64)))))) y.re))) |
#s(approx (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2)))) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) (/.f64 x.re x.im) (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re (pow.f64 y.im #s(literal 4 binary64))) (*.f64 x.im (pow.f64 y.re #s(literal 4 binary64)))) (+.f64 (/.f64 (*.f64 x.re (pow.f64 y.im #s(literal 2 binary64))) (*.f64 x.im (pow.f64 y.re #s(literal 2 binary64)))) (/.f64 (*.f64 x.re (pow.f64 y.im #s(literal 6 binary64))) (*.f64 x.im (pow.f64 y.re #s(literal 6 binary64))))))) y.re))) |
#s(approx (+ (/ x.im y.im) (/ (/ (* x.re y.re) y.im) y.im)) (*.f64 #s(literal -1 binary64) (*.f64 y.re (fma.f64 #s(literal -1 binary64) (/.f64 x.im (*.f64 y.im y.re)) (*.f64 #s(literal -1 binary64) (/.f64 x.re (pow.f64 y.im #s(literal 2 binary64)))))))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (fma.f64 y.im (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re y.im) (pow.f64 y.re #s(literal 3 binary64))) (/.f64 x.im (pow.f64 y.re #s(literal 2 binary64)))) (/.f64 x.re y.re))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (fma.f64 y.im (fma.f64 y.im (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im y.im) (pow.f64 y.re #s(literal 4 binary64)))) (/.f64 x.re (pow.f64 y.re #s(literal 3 binary64)))) (/.f64 x.im (pow.f64 y.re #s(literal 2 binary64)))) (/.f64 x.re y.re))) |
#s(approx (* x.im (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2)))))) (fma.f64 y.im (fma.f64 y.im (fma.f64 #s(literal -1 binary64) (/.f64 x.re (pow.f64 y.re #s(literal 3 binary64))) (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im y.im) (pow.f64 y.re #s(literal 4 binary64))))) (/.f64 x.im (pow.f64 y.re #s(literal 2 binary64)))) (/.f64 x.re y.re))) |
#s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (+.f64 (/.f64 x.re (*.f64 x.im y.re)) (/.f64 y.im (pow.f64 y.re #s(literal 2 binary64))))) |
#s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (fma.f64 y.im (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re y.im) (*.f64 x.im (pow.f64 y.re #s(literal 3 binary64)))) (/.f64 #s(literal 1 binary64) (pow.f64 y.re #s(literal 2 binary64)))) (/.f64 x.re (*.f64 x.im y.re)))) |
#s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (fma.f64 y.im (fma.f64 y.im (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 y.im (pow.f64 y.re #s(literal 4 binary64)))) (/.f64 x.re (*.f64 x.im (pow.f64 y.re #s(literal 3 binary64))))) (/.f64 #s(literal 1 binary64) (pow.f64 y.re #s(literal 2 binary64)))) (/.f64 x.re (*.f64 x.im y.re)))) |
#s(approx (/ y.im (+ (pow y.im 2) (pow y.re 2))) (*.f64 y.im (fma.f64 #s(literal -1 binary64) (/.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 4 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 y.re #s(literal 2 binary64)))))) |
#s(approx (/ y.im (+ (pow y.im 2) (pow y.re 2))) (*.f64 y.im (fma.f64 (pow.f64 y.im #s(literal 2 binary64)) (-.f64 (/.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 6 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 y.re #s(literal 4 binary64)))) (/.f64 #s(literal 1 binary64) (pow.f64 y.re #s(literal 2 binary64)))))) |
#s(approx (/ y.im (+ (pow y.im 2) (pow y.re 2))) (*.f64 y.im (fma.f64 (pow.f64 y.im #s(literal 2 binary64)) (-.f64 (*.f64 (pow.f64 y.im #s(literal 2 binary64)) (fma.f64 #s(literal -1 binary64) (/.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 8 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 y.re #s(literal 6 binary64))))) (/.f64 #s(literal 1 binary64) (pow.f64 y.re #s(literal 4 binary64)))) (/.f64 #s(literal 1 binary64) (pow.f64 y.re #s(literal 2 binary64)))))) |
#s(approx y.im y.im) |
#s(approx (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2)))) (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re (pow.f64 y.im #s(literal 2 binary64))) (*.f64 x.im (pow.f64 y.re #s(literal 3 binary64)))) (/.f64 x.re (*.f64 x.im y.re)))) |
#s(approx (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2)))) (fma.f64 (pow.f64 y.im #s(literal 2 binary64)) (-.f64 (/.f64 (*.f64 x.re (pow.f64 y.im #s(literal 2 binary64))) (*.f64 x.im (pow.f64 y.re #s(literal 5 binary64)))) (/.f64 x.re (*.f64 x.im (pow.f64 y.re #s(literal 3 binary64))))) (/.f64 x.re (*.f64 x.im y.re)))) |
#s(approx (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2)))) (fma.f64 (pow.f64 y.im #s(literal 2 binary64)) (-.f64 (*.f64 (pow.f64 y.im #s(literal 2 binary64)) (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re (pow.f64 y.im #s(literal 2 binary64))) (*.f64 x.im (pow.f64 y.re #s(literal 7 binary64))))) (*.f64 #s(literal -1 binary64) (/.f64 x.re (*.f64 x.im (pow.f64 y.re #s(literal 5 binary64))))))) (/.f64 x.re (*.f64 x.im (pow.f64 y.re #s(literal 3 binary64))))) (/.f64 x.re (*.f64 x.im y.re)))) |
#s(approx (+ (/ x.im y.im) (/ (/ (* x.re y.re) y.im) y.im)) (/.f64 (fma.f64 x.im y.im (*.f64 x.re y.re)) (pow.f64 y.im #s(literal 2 binary64)))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (+.f64 x.im (/.f64 (*.f64 x.re y.re) y.im)) y.im)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (+.f64 x.im (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im (pow.f64 y.re #s(literal 2 binary64))) (pow.f64 y.im #s(literal 2 binary64))) (/.f64 (*.f64 x.re y.re) y.im))) y.im)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (-.f64 (+.f64 x.im (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re (pow.f64 y.re #s(literal 3 binary64))) (pow.f64 y.im #s(literal 3 binary64))) (/.f64 (*.f64 x.re y.re) y.im))) (/.f64 (*.f64 x.im (pow.f64 y.re #s(literal 2 binary64))) (pow.f64 y.im #s(literal 2 binary64)))) y.im)) |
#s(approx (* x.im (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2)))))) (/.f64 (+.f64 x.im (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im (pow.f64 y.re #s(literal 2 binary64))) (pow.f64 y.im #s(literal 2 binary64))) (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re (pow.f64 y.re #s(literal 3 binary64))) (pow.f64 y.im #s(literal 3 binary64))) (/.f64 (*.f64 x.re y.re) y.im)))) y.im)) |
#s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (/.f64 (+.f64 #s(literal 1 binary64) (/.f64 (*.f64 x.re y.re) (*.f64 x.im y.im))) y.im)) |
#s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (/.f64 (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal -1 binary64) (/.f64 (pow.f64 y.re #s(literal 2 binary64)) (pow.f64 y.im #s(literal 2 binary64))) (/.f64 (*.f64 x.re y.re) (*.f64 x.im y.im)))) y.im)) |
#s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (/.f64 (-.f64 (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re (pow.f64 y.re #s(literal 3 binary64))) (*.f64 x.im (pow.f64 y.im #s(literal 3 binary64)))) (/.f64 (*.f64 x.re y.re) (*.f64 x.im y.im)))) (/.f64 (pow.f64 y.re #s(literal 2 binary64)) (pow.f64 y.im #s(literal 2 binary64)))) y.im)) |
#s(approx (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 (pow.f64 y.re #s(literal 2 binary64)) (pow.f64 y.im #s(literal 2 binary64))))) y.im)) |
#s(approx (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/.f64 (-.f64 (+.f64 #s(literal 1 binary64) (/.f64 (pow.f64 y.re #s(literal 4 binary64)) (pow.f64 y.im #s(literal 4 binary64)))) (/.f64 (pow.f64 y.re #s(literal 2 binary64)) (pow.f64 y.im #s(literal 2 binary64)))) y.im)) |
#s(approx (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/.f64 (-.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 (pow.f64 y.re #s(literal 6 binary64)) (pow.f64 y.im #s(literal 6 binary64))))) (fma.f64 #s(literal -1 binary64) (/.f64 (pow.f64 y.re #s(literal 4 binary64)) (pow.f64 y.im #s(literal 4 binary64))) (/.f64 (pow.f64 y.re #s(literal 2 binary64)) (pow.f64 y.im #s(literal 2 binary64))))) y.im)) |
#s(approx (+ (pow y.im 2) (pow y.re 2)) (*.f64 (pow.f64 y.im #s(literal 2 binary64)) (+.f64 #s(literal 1 binary64) (/.f64 (pow.f64 y.re #s(literal 2 binary64)) (pow.f64 y.im #s(literal 2 binary64)))))) |
#s(approx (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2)))) (/.f64 (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re (pow.f64 y.re #s(literal 3 binary64))) (*.f64 x.im (pow.f64 y.im #s(literal 2 binary64)))) (/.f64 (*.f64 x.re y.re) x.im)) (pow.f64 y.im #s(literal 2 binary64)))) |
#s(approx (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2)))) (/.f64 (-.f64 (+.f64 (/.f64 (*.f64 x.re y.re) x.im) (/.f64 (*.f64 x.re (pow.f64 y.re #s(literal 5 binary64))) (*.f64 x.im (pow.f64 y.im #s(literal 4 binary64))))) (/.f64 (*.f64 x.re (pow.f64 y.re #s(literal 3 binary64))) (*.f64 x.im (pow.f64 y.im #s(literal 2 binary64))))) (pow.f64 y.im #s(literal 2 binary64)))) |
#s(approx (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2)))) (/.f64 (-.f64 (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re (pow.f64 y.re #s(literal 7 binary64))) (*.f64 x.im (pow.f64 y.im #s(literal 6 binary64)))) (/.f64 (*.f64 x.re y.re) x.im)) (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re (pow.f64 y.re #s(literal 5 binary64))) (*.f64 x.im (pow.f64 y.im #s(literal 4 binary64)))) (/.f64 (*.f64 x.re (pow.f64 y.re #s(literal 3 binary64))) (*.f64 x.im (pow.f64 y.im #s(literal 2 binary64)))))) (pow.f64 y.im #s(literal 2 binary64)))) |
#s(approx (* x.im (+ (pow y.im 2) (pow y.re 2))) (*.f64 (pow.f64 y.im #s(literal 2 binary64)) (+.f64 x.im (/.f64 (*.f64 x.im (pow.f64 y.re #s(literal 2 binary64))) (pow.f64 y.im #s(literal 2 binary64)))))) |
#s(approx (/ (+ x.re (/ (* x.im y.im) y.re)) y.re) (*.f64 y.im (+.f64 (/.f64 x.im (pow.f64 y.re #s(literal 2 binary64))) (/.f64 x.re (*.f64 y.im y.re))))) |
#s(approx (+ x.re (/ (* x.im y.im) y.re)) (*.f64 y.im (+.f64 (/.f64 x.im y.re) (/.f64 x.re y.im)))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) x.im (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re y.re) y.im))) y.im))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) x.im (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im (pow.f64 y.re #s(literal 2 binary64))) y.im) (*.f64 x.re y.re)) y.im))) y.im))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) x.im (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) (/.f64 (-.f64 (/.f64 (*.f64 x.re (pow.f64 y.re #s(literal 3 binary64))) y.im) (*.f64 #s(literal -1 binary64) (*.f64 x.im (pow.f64 y.re #s(literal 2 binary64))))) y.im) (*.f64 x.re y.re)) y.im))) y.im))) |
#s(approx (* x.im (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2)))))) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) x.im (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) (/.f64 (fma.f64 x.im (pow.f64 y.re #s(literal 2 binary64)) (/.f64 (*.f64 x.re (pow.f64 y.re #s(literal 3 binary64))) y.im)) y.im) (*.f64 x.re y.re)) y.im))) y.im))) |
#s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re y.re) (*.f64 x.im y.im))) #s(literal 1 binary64)) y.im))) |
#s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) (/.f64 (pow.f64 y.re #s(literal 2 binary64)) y.im) (/.f64 (*.f64 x.re y.re) x.im)) y.im)) #s(literal 1 binary64)) y.im))) |
#s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) (/.f64 (+.f64 (/.f64 (*.f64 x.re (pow.f64 y.re #s(literal 3 binary64))) (*.f64 x.im y.im)) (pow.f64 y.re #s(literal 2 binary64))) y.im) (/.f64 (*.f64 x.re y.re) x.im)) y.im)) #s(literal 1 binary64)) y.im))) |
#s(approx (/ y.im (+ (pow y.im 2) (pow y.re 2))) (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (/.f64 (pow.f64 y.re #s(literal 2 binary64)) (pow.f64 y.im #s(literal 2 binary64))) #s(literal 1 binary64)) y.im))) |
#s(approx (/ y.im (+ (pow y.im 2) (pow y.re 2))) (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (pow.f64 y.re #s(literal 4 binary64)) (pow.f64 y.im #s(literal 4 binary64)))) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 (pow.f64 y.re #s(literal 2 binary64)) (pow.f64 y.im #s(literal 2 binary64)))))) y.im))) |
#s(approx (/ y.im (+ (pow y.im 2) (pow y.re 2))) (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (/.f64 (pow.f64 y.re #s(literal 6 binary64)) (pow.f64 y.im #s(literal 6 binary64))) (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal -1 binary64) (/.f64 (pow.f64 y.re #s(literal 2 binary64)) (pow.f64 y.im #s(literal 2 binary64))) (/.f64 (pow.f64 y.re #s(literal 4 binary64)) (pow.f64 y.im #s(literal 4 binary64)))))) y.im))) |
#s(approx (/ (+ x.re (/ (* x.im y.im) y.re)) y.re) (*.f64 #s(literal -1 binary64) (*.f64 y.im (fma.f64 #s(literal -1 binary64) (/.f64 x.im (pow.f64 y.re #s(literal 2 binary64))) (*.f64 #s(literal -1 binary64) (/.f64 x.re (*.f64 y.im y.re))))))) |
#s(approx (+ x.re (/ (* x.im y.im) y.re)) (*.f64 #s(literal -1 binary64) (*.f64 y.im (fma.f64 #s(literal -1 binary64) (/.f64 x.im y.re) (*.f64 #s(literal -1 binary64) (/.f64 x.re y.im)))))) |
12 calls:
| Time | Variable | Point |
|---|---|---|
| 15.0ms | x.im | inf |
| 7.0ms | y.im | -inf |
| 5.0ms | x.re | -inf |
| 5.0ms | y.re | -inf |
| 4.0ms | x.im | -inf |
| Inputs |
|---|
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 x.im (+.f64 (/.f64 y.im (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))) (/.f64 (*.f64 x.re y.re) (*.f64 x.im (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))))))) |
(*.f64 x.im (+.f64 (/.f64 y.im (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))) (/.f64 (*.f64 x.re y.re) (*.f64 x.im (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64))))))) |
x.im |
(+.f64 (/.f64 y.im (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))) (/.f64 (*.f64 x.re y.re) (*.f64 x.im (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))))) |
(/.f64 y.im (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))) |
y.im |
(+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64))) |
(pow.f64 y.im #s(literal 2 binary64)) |
#s(literal 2 binary64) |
(pow.f64 y.re #s(literal 2 binary64)) |
y.re |
(/.f64 (*.f64 x.re y.re) (*.f64 x.im (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64))))) |
(*.f64 x.re y.re) |
x.re |
(*.f64 x.im (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 x.re y.re)) |
(/.f64 x.re y.re) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (+.f64 x.re (/.f64 (*.f64 x.im y.im) y.re)) y.re)) |
(/.f64 (+.f64 x.re (/.f64 (*.f64 x.im y.im) y.re)) y.re) |
(+.f64 x.re (/.f64 (*.f64 x.im y.im) y.re)) |
(/.f64 (*.f64 x.im y.im) y.re) |
(*.f64 x.im y.im) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (+.f64 (/.f64 x.im y.im) (/.f64 (/.f64 (*.f64 x.re y.re) y.im) y.im))) |
(+.f64 (/.f64 x.im y.im) (/.f64 (/.f64 (*.f64 x.re y.re) y.im) y.im)) |
(/.f64 x.im y.im) |
(/.f64 (/.f64 (*.f64 x.re y.re) y.im) y.im) |
(/.f64 (*.f64 x.re y.re) y.im) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) #s(approx (/ (+ x.im (/ (* x.re y.re) y.im)) y.im) (/.f64 (*.f64 x.re y.re) (pow.f64 y.im #s(literal 2 binary64))))) |
#s(approx (/ (+ x.im (/ (* x.re y.re) y.im)) y.im) (/.f64 (*.f64 x.re y.re) (pow.f64 y.im #s(literal 2 binary64)))) |
(/.f64 (*.f64 x.re y.re) (pow.f64 y.im #s(literal 2 binary64))) |
| Outputs |
|---|
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 (fma.f64 x.re (/.f64 y.re (*.f64 x.im (fma.f64 y.re y.re (*.f64 y.im y.im)))) (/.f64 y.im (fma.f64 y.re y.re (*.f64 y.im y.im)))) x.im)) |
(*.f64 (fma.f64 x.re (/.f64 y.re (*.f64 x.im (fma.f64 y.re y.re (*.f64 y.im y.im)))) (/.f64 y.im (fma.f64 y.re y.re (*.f64 y.im y.im)))) x.im) |
(*.f64 x.im (fma.f64 x.re (/.f64 y.re (*.f64 x.im (fma.f64 y.re y.re (*.f64 y.im y.im)))) (/.f64 y.im (fma.f64 y.re y.re (*.f64 y.im y.im))))) |
(+.f64 (*.f64 (/.f64 y.im (fma.f64 y.re y.re (*.f64 y.im y.im))) x.im) (*.f64 (/.f64 (*.f64 x.re y.re) (*.f64 x.im (fma.f64 y.re y.re (*.f64 y.im y.im)))) x.im)) |
(+.f64 (*.f64 x.im (/.f64 y.im (fma.f64 y.re y.re (*.f64 y.im y.im)))) (*.f64 x.im (/.f64 (*.f64 x.re y.re) (*.f64 x.im (fma.f64 y.re y.re (*.f64 y.im y.im)))))) |
(fma.f64 (/.f64 y.im (fma.f64 y.re y.re (*.f64 y.im y.im))) x.im (*.f64 (/.f64 (*.f64 x.re y.re) (*.f64 x.im (fma.f64 y.re y.re (*.f64 y.im y.im)))) x.im)) |
(fma.f64 x.im (/.f64 y.im (fma.f64 y.re y.re (*.f64 y.im y.im))) (*.f64 x.im (/.f64 (*.f64 x.re y.re) (*.f64 x.im (fma.f64 y.re y.re (*.f64 y.im y.im)))))) |
x.im |
(+.f64 (/.f64 y.im (fma.f64 y.re y.re (*.f64 y.im y.im))) (/.f64 (*.f64 x.re y.re) (*.f64 x.im (fma.f64 y.re y.re (*.f64 y.im y.im))))) |
(+.f64 (/.f64 (*.f64 x.re y.re) (*.f64 x.im (fma.f64 y.re y.re (*.f64 y.im y.im)))) (/.f64 y.im (fma.f64 y.re y.re (*.f64 y.im y.im)))) |
(-.f64 (/.f64 y.im (fma.f64 y.re y.re (*.f64 y.im y.im))) (neg.f64 (/.f64 (*.f64 x.re y.re) (*.f64 x.im (fma.f64 y.re y.re (*.f64 y.im y.im)))))) |
(/.f64 (fma.f64 (/.f64 y.im (fma.f64 y.re y.re (*.f64 y.im y.im))) (*.f64 x.im (fma.f64 y.re y.re (*.f64 y.im y.im))) (*.f64 x.re y.re)) (*.f64 x.im (fma.f64 y.re y.re (*.f64 y.im y.im)))) |
(/.f64 (fma.f64 y.im (*.f64 x.im (fma.f64 y.re y.re (*.f64 y.im y.im))) (*.f64 (fma.f64 y.re y.re (*.f64 y.im y.im)) (*.f64 x.re y.re))) (*.f64 (fma.f64 y.re y.re (*.f64 y.im y.im)) (*.f64 x.im (fma.f64 y.re y.re (*.f64 y.im y.im))))) |
(/.f64 (fma.f64 y.im (*.f64 x.im (fma.f64 y.re y.re (*.f64 y.im y.im))) (*.f64 (*.f64 x.re y.re) (fma.f64 y.re y.re (*.f64 y.im y.im)))) (*.f64 (fma.f64 y.re y.re (*.f64 y.im y.im)) (*.f64 x.im (fma.f64 y.re y.re (*.f64 y.im y.im))))) |
(fma.f64 y.im (/.f64 #s(literal 1 binary64) (fma.f64 y.re y.re (*.f64 y.im y.im))) (/.f64 (*.f64 x.re y.re) (*.f64 x.im (fma.f64 y.re y.re (*.f64 y.im y.im))))) |
(fma.f64 (/.f64 x.re x.im) (/.f64 y.re (fma.f64 y.re y.re (*.f64 y.im y.im))) (/.f64 y.im (fma.f64 y.re y.re (*.f64 y.im y.im)))) |
(fma.f64 (*.f64 x.re y.re) (/.f64 #s(literal 1 binary64) (*.f64 x.im (fma.f64 y.re y.re (*.f64 y.im y.im)))) (/.f64 y.im (fma.f64 y.re y.re (*.f64 y.im y.im)))) |
(fma.f64 x.re (/.f64 y.re (*.f64 x.im (fma.f64 y.re y.re (*.f64 y.im y.im)))) (/.f64 y.im (fma.f64 y.re y.re (*.f64 y.im y.im)))) |
(*.f64 y.im (/.f64 #s(literal 1 binary64) (fma.f64 y.re y.re (*.f64 y.im y.im)))) |
(/.f64 y.im (fma.f64 y.re y.re (*.f64 y.im y.im))) |
(/.f64 (neg.f64 y.im) (neg.f64 (fma.f64 y.re y.re (*.f64 y.im y.im)))) |
y.im |
(+.f64 (*.f64 y.im y.im) (*.f64 y.re y.re)) |
(+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im)) |
(-.f64 (*.f64 y.re y.re) (neg.f64 (*.f64 y.im y.im))) |
(-.f64 (*.f64 y.im y.im) (neg.f64 (*.f64 y.re y.re))) |
(-.f64 (*.f64 y.re y.re) (*.f64 (neg.f64 y.im) y.im)) |
(fma.f64 (fabs.f64 y.re) (fabs.f64 y.re) (*.f64 y.im y.im)) |
(fma.f64 (fabs.f64 y.im) (fabs.f64 y.im) (*.f64 y.re y.re)) |
(fma.f64 (neg.f64 y.re) (neg.f64 y.re) (*.f64 y.im y.im)) |
(fma.f64 (neg.f64 y.im) (neg.f64 y.im) (*.f64 y.re y.re)) |
(fma.f64 y.re y.re (*.f64 y.im y.im)) |
(fma.f64 y.im y.im (*.f64 y.re y.re)) |
(*.f64 y.im y.im) |
(*.f64 (fabs.f64 y.im) (fabs.f64 y.im)) |
(*.f64 (neg.f64 y.im) (neg.f64 y.im)) |
(pow.f64 y.im #s(literal 2 binary64)) |
#s(literal 2 binary64) |
(+.f64 #s(literal 1 binary64) #s(literal 1 binary64)) |
(*.f64 y.re y.re) |
(*.f64 (fabs.f64 y.re) (fabs.f64 y.re)) |
(*.f64 (neg.f64 y.re) (neg.f64 y.re)) |
(pow.f64 y.re #s(literal 2 binary64)) |
y.re |
(*.f64 (/.f64 x.re x.im) (/.f64 y.re (fma.f64 y.re y.re (*.f64 y.im y.im)))) |
(*.f64 (*.f64 x.re y.re) (/.f64 #s(literal 1 binary64) (*.f64 x.im (fma.f64 y.re y.re (*.f64 y.im y.im))))) |
(*.f64 x.re (/.f64 y.re (*.f64 x.im (fma.f64 y.re y.re (*.f64 y.im y.im))))) |
(/.f64 (/.f64 (*.f64 x.re y.re) x.im) (fma.f64 y.re y.re (*.f64 y.im y.im))) |
(/.f64 (*.f64 x.re y.re) (*.f64 x.im (fma.f64 y.re y.re (*.f64 y.im y.im)))) |
(/.f64 (neg.f64 (*.f64 x.re y.re)) (neg.f64 (*.f64 x.im (fma.f64 y.re y.re (*.f64 y.im y.im))))) |
(*.f64 x.re y.re) |
(*.f64 y.re x.re) |
x.re |
(*.f64 x.im (fma.f64 y.re y.re (*.f64 y.im y.im))) |
(*.f64 (fma.f64 y.re y.re (*.f64 y.im y.im)) x.im) |
(+.f64 (*.f64 (*.f64 y.im y.im) x.im) (*.f64 (*.f64 y.re y.re) x.im)) |
(+.f64 (*.f64 x.im (*.f64 y.im y.im)) (*.f64 x.im (*.f64 y.re y.re))) |
(fma.f64 (*.f64 y.im y.im) x.im (*.f64 (*.f64 y.re y.re) x.im)) |
(fma.f64 x.im (*.f64 y.im y.im) (*.f64 x.im (*.f64 y.re y.re))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 x.re y.re)) |
(*.f64 x.re (/.f64 #s(literal 1 binary64) y.re)) |
(/.f64 x.re y.re) |
(/.f64 (neg.f64 x.re) (neg.f64 y.re)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (fma.f64 x.im (/.f64 y.im y.re) x.re) y.re)) |
(*.f64 (fma.f64 x.im (/.f64 y.im y.re) x.re) (/.f64 #s(literal 1 binary64) y.re)) |
(+.f64 (/.f64 x.re y.re) (/.f64 (/.f64 (*.f64 x.im y.im) y.re) y.re)) |
(/.f64 (fma.f64 x.im (/.f64 y.im y.re) x.re) y.re) |
(/.f64 (neg.f64 (fma.f64 x.im (/.f64 y.im y.re) x.re)) (neg.f64 y.re)) |
(fma.f64 x.re (/.f64 #s(literal 1 binary64) y.re) (/.f64 (/.f64 (*.f64 x.im y.im) y.re) y.re)) |
(+.f64 x.re (/.f64 (*.f64 x.im y.im) y.re)) |
(+.f64 (/.f64 (*.f64 x.im y.im) y.re) x.re) |
(-.f64 x.re (neg.f64 (/.f64 (*.f64 x.im y.im) y.re))) |
(/.f64 (fma.f64 y.re x.re (*.f64 x.im y.im)) y.re) |
(fma.f64 (*.f64 x.im y.im) (/.f64 #s(literal 1 binary64) y.re) x.re) |
(fma.f64 x.im (/.f64 y.im y.re) x.re) |
(*.f64 (*.f64 x.im y.im) (/.f64 #s(literal 1 binary64) y.re)) |
(*.f64 x.im (/.f64 y.im y.re)) |
(/.f64 (*.f64 x.im y.im) y.re) |
(/.f64 (neg.f64 (*.f64 x.im y.im)) (neg.f64 y.re)) |
(*.f64 x.im y.im) |
(*.f64 y.im x.im) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (fma.f64 x.re (/.f64 y.re y.im) x.im) y.im)) |
(*.f64 (fma.f64 x.re (/.f64 y.re y.im) x.im) (/.f64 #s(literal 1 binary64) y.im)) |
(+.f64 (/.f64 x.im y.im) (/.f64 (*.f64 x.re y.re) (*.f64 y.im y.im))) |
(+.f64 (/.f64 (*.f64 x.re y.re) (*.f64 y.im y.im)) (/.f64 x.im y.im)) |
(-.f64 (/.f64 x.im y.im) (neg.f64 (/.f64 (*.f64 x.re y.re) (*.f64 y.im y.im)))) |
(/.f64 (fma.f64 x.re (/.f64 y.re y.im) x.im) y.im) |
(/.f64 (fma.f64 (/.f64 x.im y.im) y.im (/.f64 (*.f64 x.re y.re) y.im)) y.im) |
(/.f64 (neg.f64 (fma.f64 x.re (/.f64 y.re y.im) x.im)) (neg.f64 y.im)) |
(/.f64 (fma.f64 x.im y.im (*.f64 (/.f64 (*.f64 x.re y.re) y.im) y.im)) (*.f64 y.im y.im)) |
(/.f64 (fma.f64 x.im y.im (*.f64 y.im (/.f64 (*.f64 x.re y.re) y.im))) (*.f64 y.im y.im)) |
(fma.f64 (/.f64 (*.f64 x.re y.re) y.im) (/.f64 #s(literal 1 binary64) y.im) (/.f64 x.im y.im)) |
(fma.f64 (*.f64 x.re y.re) (/.f64 #s(literal 1 binary64) (*.f64 y.im y.im)) (/.f64 x.im y.im)) |
(fma.f64 x.re (/.f64 y.re (*.f64 y.im y.im)) (/.f64 x.im y.im)) |
(fma.f64 x.im (/.f64 #s(literal 1 binary64) y.im) (/.f64 (*.f64 x.re y.re) (*.f64 y.im y.im))) |
(*.f64 x.im (/.f64 #s(literal 1 binary64) y.im)) |
(/.f64 x.im y.im) |
(/.f64 (neg.f64 x.im) (neg.f64 y.im)) |
(*.f64 (/.f64 (*.f64 x.re y.re) y.im) (/.f64 #s(literal 1 binary64) y.im)) |
(*.f64 (*.f64 x.re y.re) (/.f64 #s(literal 1 binary64) (*.f64 y.im y.im))) |
(*.f64 x.re (/.f64 y.re (*.f64 y.im y.im))) |
(/.f64 (*.f64 x.re y.re) (*.f64 y.im y.im)) |
(/.f64 (/.f64 (*.f64 x.re y.re) y.im) y.im) |
(/.f64 (neg.f64 (*.f64 x.re y.re)) (neg.f64 (*.f64 y.im y.im))) |
(/.f64 (neg.f64 (/.f64 (*.f64 x.re y.re) y.im)) (neg.f64 y.im)) |
(*.f64 (*.f64 x.re y.re) (/.f64 #s(literal 1 binary64) y.im)) |
(*.f64 x.re (/.f64 y.re y.im)) |
(/.f64 (*.f64 x.re y.re) y.im) |
(/.f64 (neg.f64 (*.f64 x.re y.re)) (neg.f64 y.im)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) #s(approx (/ (+ x.im (/ (* x.re y.re) y.im)) y.im) (/.f64 (*.f64 x.re y.re) (*.f64 y.im y.im)))) |
#s(approx (/ (+ x.im (/ (* x.re y.re) y.im)) y.im) (/.f64 (*.f64 x.re y.re) (*.f64 y.im y.im))) |
(*.f64 (/.f64 (*.f64 x.re y.re) y.im) (/.f64 #s(literal 1 binary64) y.im)) |
(*.f64 (*.f64 x.re y.re) (/.f64 #s(literal 1 binary64) (*.f64 y.im y.im))) |
(*.f64 x.re (/.f64 y.re (*.f64 y.im y.im))) |
(/.f64 (*.f64 x.re y.re) (*.f64 y.im y.im)) |
(/.f64 (/.f64 (*.f64 x.re y.re) y.im) y.im) |
(/.f64 (neg.f64 (*.f64 x.re y.re)) (neg.f64 (*.f64 y.im y.im))) |
(/.f64 (neg.f64 (/.f64 (*.f64 x.re y.re) y.im)) (neg.f64 y.im)) |
Compiled 10 868 to 1 388 computations (87.2% saved)
17 alts after pruning (14 fresh and 3 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 233 | 10 | 243 |
| Fresh | 4 | 4 | 8 |
| Picked | 4 | 1 | 5 |
| Done | 0 | 2 | 2 |
| Total | 241 | 17 | 258 |
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 42.9% | (/.f64 #s(approx (+ (* x.re y.re) (* x.im y.im)) (*.f64 x.im y.im)) (fma.f64 y.re y.re (*.f64 y.im y.im))) |
| ▶ | 51.2% | #s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (fma.f64 x.re (/.f64 y.re (*.f64 y.im y.im)) (/.f64 x.im y.im))) |
| 49.7% | #s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (fma.f64 x.im (/.f64 #s(literal 1 binary64) y.im) (/.f64 (*.f64 x.re y.re) (*.f64 y.im y.im)))) | |
| ▶ | 56.7% | #s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (fma.f64 x.re (/.f64 y.re y.im) x.im) y.im)) |
| 54.1% | #s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (fma.f64 x.im (/.f64 y.im y.re) x.re) y.re)) | |
| ✓ | 55.0% | #s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (+.f64 x.im (/.f64 (*.f64 x.re y.re) y.im)) y.im)) |
| 25.0% | #s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 #s(approx (+ x.re (/ (* x.im y.im) y.re)) (/.f64 (*.f64 x.im y.im) y.re)) y.re)) | |
| 45.9% | #s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 #s(approx (+ x.re (/ (* x.im y.im) y.re)) (*.f64 y.im (+.f64 (/.f64 x.im y.re) (/.f64 x.re y.im)))) y.re)) | |
| ✓ | 37.9% | #s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 x.re y.re)) |
| ✓ | 47.4% | #s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 x.im y.im)) |
| 56.6% | #s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 (fma.f64 x.re (/.f64 y.re y.im) x.im) (/.f64 #s(literal 1 binary64) y.im))) | |
| 54.0% | #s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 (fma.f64 x.im (/.f64 y.im y.re) x.re) (/.f64 #s(literal 1 binary64) y.re))) | |
| 37.8% | #s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 x.re (/.f64 #s(literal 1 binary64) y.re))) | |
| ▶ | 47.3% | #s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 x.im (/.f64 #s(literal 1 binary64) y.im))) |
| 46.1% | #s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 x.im #s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (/.f64 (+.f64 (/.f64 x.re x.im) (/.f64 y.im y.re)) y.re)))) | |
| ▶ | 29.3% | #s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 x.im #s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (/.f64 x.re (*.f64 x.im y.re))))) |
| 18.1% | #s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) #s(approx (/ (+ x.im (/ (* x.re y.re) y.im)) y.im) (/.f64 (*.f64 x.re y.re) (*.f64 y.im y.im)))) |
Compiled 885 to 536 computations (39.4% saved)
| Inputs |
|---|
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (fma.f64 x.re (/.f64 y.re y.im) x.im) y.im)) |
(/.f64 (fma.f64 x.re (/.f64 y.re y.im) x.im) y.im) |
(fma.f64 x.re (/.f64 y.re y.im) x.im) |
x.re |
(/.f64 y.re y.im) |
y.re |
y.im |
x.im |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 x.im (/.f64 #s(literal 1 binary64) y.im))) |
(*.f64 x.im (/.f64 #s(literal 1 binary64) y.im)) |
(/.f64 #s(literal 1 binary64) y.im) |
#s(literal 1 binary64) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 x.im #s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (/.f64 x.re (*.f64 x.im y.re))))) |
(*.f64 x.im #s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (/.f64 x.re (*.f64 x.im y.re)))) |
#s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (/.f64 x.re (*.f64 x.im y.re))) |
(/.f64 x.re (*.f64 x.im y.re)) |
(*.f64 x.im y.re) |
(/.f64 #s(approx (+ (* x.re y.re) (* x.im y.im)) (*.f64 x.im y.im)) (fma.f64 y.re y.re (*.f64 y.im y.im))) |
#s(approx (+ (* x.re y.re) (* x.im y.im)) (*.f64 x.im y.im)) |
(*.f64 x.im y.im) |
(fma.f64 y.re y.re (*.f64 y.im y.im)) |
(*.f64 y.im y.im) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (fma.f64 x.re (/.f64 y.re (*.f64 y.im y.im)) (/.f64 x.im y.im))) |
(fma.f64 x.re (/.f64 y.re (*.f64 y.im y.im)) (/.f64 x.im y.im)) |
(/.f64 y.re (*.f64 y.im y.im)) |
(/.f64 x.im y.im) |
| Outputs |
|---|
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (*.f64 x.im y.im) (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64))))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (+.f64 (/.f64 (*.f64 x.im y.im) (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))) (/.f64 (*.f64 x.re y.re) (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))))) |
#s(approx (/ (+ (* x.re (/ y.re y.im)) x.im) y.im) (/.f64 x.im y.im)) |
#s(approx (/ (+ (* x.re (/ y.re y.im)) x.im) y.im) (+.f64 (/.f64 x.im y.im) (/.f64 (*.f64 x.re y.re) (pow.f64 y.im #s(literal 2 binary64))))) |
#s(approx (+ (* x.re (/ y.re y.im)) x.im) x.im) |
#s(approx (+ (* x.re (/ y.re y.im)) x.im) (+.f64 x.im (/.f64 (*.f64 x.re y.re) y.im))) |
#s(approx x.re x.re) |
#s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (/.f64 y.im (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64))))) |
#s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (+.f64 (/.f64 y.im (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))) (/.f64 (*.f64 x.re y.re) (*.f64 x.im (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64))))))) |
#s(approx (/ x.re (* x.im y.re)) (/.f64 x.re (*.f64 x.im y.re))) |
#s(approx (+ (* x.re y.re) (* x.im y.im)) (*.f64 x.im y.im)) |
#s(approx (+ (* x.re y.re) (* x.im y.im)) (fma.f64 x.im y.im (*.f64 x.re y.re))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (*.f64 x.re y.re) (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64))))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 x.re (+.f64 (/.f64 y.re (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))) (/.f64 (*.f64 x.im y.im) (*.f64 x.re (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))))))) |
#s(approx (/ (+ (* x.re (/ y.re y.im)) x.im) y.im) (/.f64 (*.f64 x.re y.re) (pow.f64 y.im #s(literal 2 binary64)))) |
#s(approx (/ (+ (* x.re (/ y.re y.im)) x.im) y.im) (*.f64 x.re (+.f64 (/.f64 x.im (*.f64 x.re y.im)) (/.f64 y.re (pow.f64 y.im #s(literal 2 binary64)))))) |
#s(approx (+ (* x.re (/ y.re y.im)) x.im) (/.f64 (*.f64 x.re y.re) y.im)) |
#s(approx (+ (* x.re (/ y.re y.im)) x.im) (*.f64 x.re (+.f64 (/.f64 x.im x.re) (/.f64 y.re y.im)))) |
#s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (/.f64 (*.f64 x.re y.re) (*.f64 x.im (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))))) |
#s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (*.f64 x.re (+.f64 (/.f64 y.im (*.f64 x.re (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64))))) (/.f64 y.re (*.f64 x.im (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))))))) |
#s(approx (+ (* x.re y.re) (* x.im y.im)) (*.f64 x.re y.re)) |
#s(approx (+ (* x.re y.re) (* x.im y.im)) (*.f64 x.re (+.f64 y.re (/.f64 (*.f64 x.im y.im) x.re)))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 #s(literal -1 binary64) (*.f64 x.re (fma.f64 #s(literal -1 binary64) (/.f64 y.re (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))) (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im y.im) (*.f64 x.re (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))))))))) |
#s(approx (/ (+ (* x.re (/ y.re y.im)) x.im) y.im) (*.f64 #s(literal -1 binary64) (*.f64 x.re (fma.f64 #s(literal -1 binary64) (/.f64 x.im (*.f64 x.re y.im)) (*.f64 #s(literal -1 binary64) (/.f64 y.re (pow.f64 y.im #s(literal 2 binary64)))))))) |
#s(approx (+ (* x.re (/ y.re y.im)) x.im) (*.f64 #s(literal -1 binary64) (*.f64 x.re (fma.f64 #s(literal -1 binary64) (/.f64 x.im x.re) (*.f64 #s(literal -1 binary64) (/.f64 y.re y.im)))))) |
#s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (*.f64 #s(literal -1 binary64) (*.f64 x.re (fma.f64 #s(literal -1 binary64) (/.f64 y.im (*.f64 x.re (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64))))) (*.f64 #s(literal -1 binary64) (/.f64 y.re (*.f64 x.im (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))))))))) |
#s(approx (+ (* x.re y.re) (* x.im y.im)) (*.f64 #s(literal -1 binary64) (*.f64 x.re (fma.f64 #s(literal -1 binary64) y.re (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im y.im) x.re)))))) |
#s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (/.f64 (+.f64 (/.f64 (*.f64 x.im y.im) (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))) (/.f64 (*.f64 x.re y.re) (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64))))) x.im)) |
#s(approx (* x.im y.re) (*.f64 x.im y.re)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 x.im (+.f64 (/.f64 y.im (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))) (/.f64 (*.f64 x.re y.re) (*.f64 x.im (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))))))) |
#s(approx (/ (+ (* x.re (/ y.re y.im)) x.im) y.im) (*.f64 x.im (+.f64 (/.f64 #s(literal 1 binary64) y.im) (/.f64 (*.f64 x.re y.re) (*.f64 x.im (pow.f64 y.im #s(literal 2 binary64))))))) |
#s(approx (+ (* x.re (/ y.re y.im)) x.im) (*.f64 x.im (+.f64 #s(literal 1 binary64) (/.f64 (*.f64 x.re y.re) (*.f64 x.im y.im))))) |
#s(approx (+ (* x.re y.re) (* x.im y.im)) (*.f64 x.im (+.f64 y.im (/.f64 (*.f64 x.re y.re) x.im)))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 #s(literal -1 binary64) (*.f64 x.im (fma.f64 #s(literal -1 binary64) (/.f64 y.im (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))) (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re y.re) (*.f64 x.im (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))))))))) |
#s(approx (/ (+ (* x.re (/ y.re y.im)) x.im) y.im) (*.f64 #s(literal -1 binary64) (*.f64 x.im (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re y.re) (*.f64 x.im (pow.f64 y.im #s(literal 2 binary64))))) (/.f64 #s(literal 1 binary64) y.im))))) |
#s(approx (+ (* x.re (/ y.re y.im)) x.im) (*.f64 #s(literal -1 binary64) (*.f64 x.im (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re y.re) (*.f64 x.im y.im))) #s(literal 1 binary64))))) |
#s(approx (+ (* x.re y.re) (* x.im y.im)) (*.f64 #s(literal -1 binary64) (*.f64 x.im (fma.f64 #s(literal -1 binary64) y.im (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re y.re) x.im)))))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (fma.f64 y.re (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im y.re) (pow.f64 y.im #s(literal 3 binary64))) (/.f64 x.re (pow.f64 y.im #s(literal 2 binary64)))) (/.f64 x.im y.im))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (fma.f64 y.re (fma.f64 y.re (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re y.re) (pow.f64 y.im #s(literal 4 binary64)))) (/.f64 x.im (pow.f64 y.im #s(literal 3 binary64)))) (/.f64 x.re (pow.f64 y.im #s(literal 2 binary64)))) (/.f64 x.im y.im))) |
#s(approx (/ y.re y.im) (/.f64 y.re y.im)) |
#s(approx y.re y.re) |
#s(approx (* x.im (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2)))))) (fma.f64 y.re (fma.f64 y.re (fma.f64 #s(literal -1 binary64) (/.f64 x.im (pow.f64 y.im #s(literal 3 binary64))) (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re y.re) (pow.f64 y.im #s(literal 4 binary64))))) (/.f64 x.re (pow.f64 y.im #s(literal 2 binary64)))) (/.f64 x.im y.im))) |
#s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (/.f64 #s(literal 1 binary64) y.im)) |
#s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (+.f64 (/.f64 #s(literal 1 binary64) y.im) (/.f64 (*.f64 x.re y.re) (*.f64 x.im (pow.f64 y.im #s(literal 2 binary64)))))) |
#s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (fma.f64 y.re (fma.f64 #s(literal -1 binary64) (/.f64 y.re (pow.f64 y.im #s(literal 3 binary64))) (/.f64 x.re (*.f64 x.im (pow.f64 y.im #s(literal 2 binary64))))) (/.f64 #s(literal 1 binary64) y.im))) |
#s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (fma.f64 y.re (fma.f64 y.re (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re y.re) (*.f64 x.im (pow.f64 y.im #s(literal 4 binary64))))) (/.f64 #s(literal 1 binary64) (pow.f64 y.im #s(literal 3 binary64)))) (/.f64 x.re (*.f64 x.im (pow.f64 y.im #s(literal 2 binary64))))) (/.f64 #s(literal 1 binary64) y.im))) |
#s(approx (+ (* y.re y.re) (* y.im y.im)) (pow.f64 y.im #s(literal 2 binary64))) |
#s(approx (+ (* y.re y.re) (* y.im y.im)) (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))) |
#s(approx (/ y.re (* y.im y.im)) (/.f64 y.re (pow.f64 y.im #s(literal 2 binary64)))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 x.re y.re)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (+.f64 x.re (/.f64 (*.f64 x.im y.im) y.re)) y.re)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (+.f64 x.re (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re (pow.f64 y.im #s(literal 2 binary64))) (pow.f64 y.re #s(literal 2 binary64))) (/.f64 (*.f64 x.im y.im) y.re))) y.re)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (-.f64 (+.f64 x.re (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im (pow.f64 y.im #s(literal 3 binary64))) (pow.f64 y.re #s(literal 3 binary64))) (/.f64 (*.f64 x.im y.im) y.re))) (/.f64 (*.f64 x.re (pow.f64 y.im #s(literal 2 binary64))) (pow.f64 y.re #s(literal 2 binary64)))) y.re)) |
#s(approx (/ (+ (* x.re (/ y.re y.im)) x.im) y.im) (*.f64 y.re (+.f64 (/.f64 x.im (*.f64 y.im y.re)) (/.f64 x.re (pow.f64 y.im #s(literal 2 binary64)))))) |
#s(approx (+ (* x.re (/ y.re y.im)) x.im) (*.f64 y.re (+.f64 (/.f64 x.im y.re) (/.f64 x.re y.im)))) |
#s(approx (* x.im (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2)))))) (/.f64 (+.f64 x.re (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im (pow.f64 y.im #s(literal 3 binary64))) (pow.f64 y.re #s(literal 3 binary64))) (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re (pow.f64 y.im #s(literal 2 binary64))) (pow.f64 y.re #s(literal 2 binary64))) (/.f64 (*.f64 x.im y.im) y.re)))) y.re)) |
#s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (/.f64 (+.f64 (/.f64 x.re x.im) (/.f64 y.im y.re)) y.re)) |
#s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (/.f64 (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re (pow.f64 y.im #s(literal 2 binary64))) (*.f64 x.im (pow.f64 y.re #s(literal 2 binary64)))) (+.f64 (/.f64 x.re x.im) (/.f64 y.im y.re))) y.re)) |
#s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (/.f64 (-.f64 (fma.f64 #s(literal -1 binary64) (/.f64 (pow.f64 y.im #s(literal 3 binary64)) (pow.f64 y.re #s(literal 3 binary64))) (+.f64 (/.f64 x.re x.im) (/.f64 y.im y.re))) (/.f64 (*.f64 x.re (pow.f64 y.im #s(literal 2 binary64))) (*.f64 x.im (pow.f64 y.re #s(literal 2 binary64))))) y.re)) |
#s(approx (+ (* x.re y.re) (* x.im y.im)) (*.f64 y.re (+.f64 x.re (/.f64 (*.f64 x.im y.im) y.re)))) |
#s(approx (+ (* y.re y.re) (* y.im y.im)) (pow.f64 y.re #s(literal 2 binary64))) |
#s(approx (+ (* y.re y.re) (* y.im y.im)) (*.f64 (pow.f64 y.re #s(literal 2 binary64)) (+.f64 #s(literal 1 binary64) (/.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) x.re (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im y.im) y.re))) y.re))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) x.re (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re (pow.f64 y.im #s(literal 2 binary64))) y.re) (*.f64 x.im y.im)) y.re))) y.re))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) x.re (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) (/.f64 (-.f64 (/.f64 (*.f64 x.im (pow.f64 y.im #s(literal 3 binary64))) y.re) (*.f64 #s(literal -1 binary64) (*.f64 x.re (pow.f64 y.im #s(literal 2 binary64))))) y.re) (*.f64 x.im y.im)) y.re))) y.re))) |
#s(approx (/ (+ (* x.re (/ y.re y.im)) x.im) y.im) (*.f64 #s(literal -1 binary64) (*.f64 y.re (fma.f64 #s(literal -1 binary64) (/.f64 x.im (*.f64 y.im y.re)) (*.f64 #s(literal -1 binary64) (/.f64 x.re (pow.f64 y.im #s(literal 2 binary64)))))))) |
#s(approx (+ (* x.re (/ y.re y.im)) x.im) (*.f64 #s(literal -1 binary64) (*.f64 y.re (fma.f64 #s(literal -1 binary64) (/.f64 x.im y.re) (*.f64 #s(literal -1 binary64) (/.f64 x.re y.im)))))) |
#s(approx (* x.im (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2)))))) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) x.re (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) (/.f64 (fma.f64 x.re (pow.f64 y.im #s(literal 2 binary64)) (/.f64 (*.f64 x.im (pow.f64 y.im #s(literal 3 binary64))) y.re)) y.re) (*.f64 x.im y.im)) y.re))) y.re))) |
#s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) (/.f64 x.re x.im) (*.f64 #s(literal -1 binary64) (/.f64 y.im y.re))) y.re))) |
#s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) (/.f64 x.re x.im) (*.f64 #s(literal -1 binary64) (/.f64 (+.f64 y.im (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re (pow.f64 y.im #s(literal 2 binary64))) (*.f64 x.im y.re)))) y.re))) y.re))) |
#s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) (/.f64 x.re x.im) (*.f64 #s(literal -1 binary64) (/.f64 (+.f64 y.im (*.f64 #s(literal -1 binary64) (/.f64 (+.f64 (/.f64 (*.f64 x.re (pow.f64 y.im #s(literal 2 binary64))) x.im) (/.f64 (pow.f64 y.im #s(literal 3 binary64)) y.re)) y.re))) y.re))) y.re))) |
#s(approx (+ (* x.re y.re) (* x.im y.im)) (*.f64 #s(literal -1 binary64) (*.f64 y.re (fma.f64 #s(literal -1 binary64) x.re (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im y.im) y.re)))))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (+.f64 (/.f64 x.re y.re) (/.f64 (*.f64 x.im y.im) (pow.f64 y.re #s(literal 2 binary64))))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (fma.f64 y.im (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re y.im) (pow.f64 y.re #s(literal 3 binary64))) (/.f64 x.im (pow.f64 y.re #s(literal 2 binary64)))) (/.f64 x.re y.re))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (fma.f64 y.im (fma.f64 y.im (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im y.im) (pow.f64 y.re #s(literal 4 binary64)))) (/.f64 x.re (pow.f64 y.re #s(literal 3 binary64)))) (/.f64 x.im (pow.f64 y.re #s(literal 2 binary64)))) (/.f64 x.re y.re))) |
#s(approx (/ (+ (* x.re (/ y.re y.im)) x.im) y.im) (/.f64 (fma.f64 x.im y.im (*.f64 x.re y.re)) (pow.f64 y.im #s(literal 2 binary64)))) |
#s(approx (+ (* x.re (/ y.re y.im)) x.im) (/.f64 (fma.f64 x.im y.im (*.f64 x.re y.re)) y.im)) |
#s(approx y.im y.im) |
#s(approx (* x.im (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2)))))) (fma.f64 y.im (fma.f64 y.im (fma.f64 #s(literal -1 binary64) (/.f64 x.re (pow.f64 y.re #s(literal 3 binary64))) (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im y.im) (pow.f64 y.re #s(literal 4 binary64))))) (/.f64 x.im (pow.f64 y.re #s(literal 2 binary64)))) (/.f64 x.re y.re))) |
#s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (+.f64 (/.f64 x.re (*.f64 x.im y.re)) (/.f64 y.im (pow.f64 y.re #s(literal 2 binary64))))) |
#s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (fma.f64 y.im (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re y.im) (*.f64 x.im (pow.f64 y.re #s(literal 3 binary64)))) (/.f64 #s(literal 1 binary64) (pow.f64 y.re #s(literal 2 binary64)))) (/.f64 x.re (*.f64 x.im y.re)))) |
#s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (fma.f64 y.im (fma.f64 y.im (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 y.im (pow.f64 y.re #s(literal 4 binary64)))) (/.f64 x.re (*.f64 x.im (pow.f64 y.re #s(literal 3 binary64))))) (/.f64 #s(literal 1 binary64) (pow.f64 y.re #s(literal 2 binary64)))) (/.f64 x.re (*.f64 x.im y.re)))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (+.f64 x.im (/.f64 (*.f64 x.re y.re) y.im)) y.im)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (+.f64 x.im (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im (pow.f64 y.re #s(literal 2 binary64))) (pow.f64 y.im #s(literal 2 binary64))) (/.f64 (*.f64 x.re y.re) y.im))) y.im)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (-.f64 (+.f64 x.im (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re (pow.f64 y.re #s(literal 3 binary64))) (pow.f64 y.im #s(literal 3 binary64))) (/.f64 (*.f64 x.re y.re) y.im))) (/.f64 (*.f64 x.im (pow.f64 y.re #s(literal 2 binary64))) (pow.f64 y.im #s(literal 2 binary64)))) y.im)) |
#s(approx (* x.im (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2)))))) (/.f64 (+.f64 x.im (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im (pow.f64 y.re #s(literal 2 binary64))) (pow.f64 y.im #s(literal 2 binary64))) (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re (pow.f64 y.re #s(literal 3 binary64))) (pow.f64 y.im #s(literal 3 binary64))) (/.f64 (*.f64 x.re y.re) y.im)))) y.im)) |
#s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (/.f64 (+.f64 #s(literal 1 binary64) (/.f64 (*.f64 x.re y.re) (*.f64 x.im y.im))) y.im)) |
#s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (/.f64 (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal -1 binary64) (/.f64 (pow.f64 y.re #s(literal 2 binary64)) (pow.f64 y.im #s(literal 2 binary64))) (/.f64 (*.f64 x.re y.re) (*.f64 x.im y.im)))) y.im)) |
#s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (/.f64 (-.f64 (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re (pow.f64 y.re #s(literal 3 binary64))) (*.f64 x.im (pow.f64 y.im #s(literal 3 binary64)))) (/.f64 (*.f64 x.re y.re) (*.f64 x.im y.im)))) (/.f64 (pow.f64 y.re #s(literal 2 binary64)) (pow.f64 y.im #s(literal 2 binary64)))) y.im)) |
#s(approx (+ (* x.re y.re) (* x.im y.im)) (*.f64 y.im (+.f64 x.im (/.f64 (*.f64 x.re y.re) y.im)))) |
#s(approx (+ (* y.re y.re) (* y.im y.im)) (*.f64 (pow.f64 y.im #s(literal 2 binary64)) (+.f64 #s(literal 1 binary64) (/.f64 (pow.f64 y.re #s(literal 2 binary64)) (pow.f64 y.im #s(literal 2 binary64)))))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) x.im (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re y.re) y.im))) y.im))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) x.im (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im (pow.f64 y.re #s(literal 2 binary64))) y.im) (*.f64 x.re y.re)) y.im))) y.im))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) x.im (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) (/.f64 (-.f64 (/.f64 (*.f64 x.re (pow.f64 y.re #s(literal 3 binary64))) y.im) (*.f64 #s(literal -1 binary64) (*.f64 x.im (pow.f64 y.re #s(literal 2 binary64))))) y.im) (*.f64 x.re y.re)) y.im))) y.im))) |
#s(approx (* x.im (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2)))))) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) x.im (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) (/.f64 (fma.f64 x.im (pow.f64 y.re #s(literal 2 binary64)) (/.f64 (*.f64 x.re (pow.f64 y.re #s(literal 3 binary64))) y.im)) y.im) (*.f64 x.re y.re)) y.im))) y.im))) |
#s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re y.re) (*.f64 x.im y.im))) #s(literal 1 binary64)) y.im))) |
#s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) (/.f64 (pow.f64 y.re #s(literal 2 binary64)) y.im) (/.f64 (*.f64 x.re y.re) x.im)) y.im)) #s(literal 1 binary64)) y.im))) |
#s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) (/.f64 (+.f64 (/.f64 (*.f64 x.re (pow.f64 y.re #s(literal 3 binary64))) (*.f64 x.im y.im)) (pow.f64 y.re #s(literal 2 binary64))) y.im) (/.f64 (*.f64 x.re y.re) x.im)) y.im)) #s(literal 1 binary64)) y.im))) |
#s(approx (+ (* x.re y.re) (* x.im y.im)) (*.f64 #s(literal -1 binary64) (*.f64 y.im (fma.f64 #s(literal -1 binary64) x.im (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re y.re) y.im)))))) |
12 calls:
| Time | Variable | Point |
|---|---|---|
| 43.0ms | y.im | 0 |
| 3.0ms | x.im | -inf |
| 3.0ms | y.re | -inf |
| 3.0ms | y.im | -inf |
| 3.0ms | x.re | -inf |
| Inputs |
|---|
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (fma.f64 x.re (/.f64 y.re y.im) x.im) y.im)) |
(/.f64 (fma.f64 x.re (/.f64 y.re y.im) x.im) y.im) |
(fma.f64 x.re (/.f64 y.re y.im) x.im) |
x.re |
(/.f64 y.re y.im) |
y.re |
y.im |
x.im |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 x.im (/.f64 #s(literal 1 binary64) y.im))) |
(*.f64 x.im (/.f64 #s(literal 1 binary64) y.im)) |
(/.f64 #s(literal 1 binary64) y.im) |
#s(literal 1 binary64) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 x.im #s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (/.f64 x.re (*.f64 x.im y.re))))) |
(*.f64 x.im #s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (/.f64 x.re (*.f64 x.im y.re)))) |
#s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (/.f64 x.re (*.f64 x.im y.re))) |
(/.f64 x.re (*.f64 x.im y.re)) |
(*.f64 x.im y.re) |
(/.f64 #s(approx (+ (* x.re y.re) (* x.im y.im)) (*.f64 x.im y.im)) (fma.f64 y.re y.re (*.f64 y.im y.im))) |
#s(approx (+ (* x.re y.re) (* x.im y.im)) (*.f64 x.im y.im)) |
(*.f64 x.im y.im) |
(fma.f64 y.re y.re (*.f64 y.im y.im)) |
(*.f64 y.im y.im) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (fma.f64 x.re (/.f64 y.re (*.f64 y.im y.im)) (/.f64 x.im y.im))) |
(fma.f64 x.re (/.f64 y.re (*.f64 y.im y.im)) (/.f64 x.im y.im)) |
(/.f64 y.re (*.f64 y.im y.im)) |
(/.f64 x.im y.im) |
| Outputs |
|---|
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (fma.f64 x.re (/.f64 y.re y.im) x.im) y.im)) |
(*.f64 (fma.f64 x.re (/.f64 y.re y.im) x.im) (/.f64 #s(literal 1 binary64) y.im)) |
(+.f64 (/.f64 (/.f64 (*.f64 y.re x.re) y.im) y.im) (/.f64 x.im y.im)) |
(/.f64 (fma.f64 x.re (/.f64 y.re y.im) x.im) y.im) |
(/.f64 (neg.f64 (fma.f64 x.re (/.f64 y.re y.im) x.im)) (neg.f64 y.im)) |
(+.f64 (/.f64 (*.f64 y.re x.re) y.im) x.im) |
(+.f64 x.im (/.f64 (*.f64 y.re x.re) y.im)) |
(-.f64 (/.f64 (*.f64 y.re x.re) y.im) (neg.f64 x.im)) |
(fma.f64 x.re (/.f64 y.re y.im) x.im) |
(fma.f64 (/.f64 y.re y.im) x.re x.im) |
x.re |
(*.f64 y.re (/.f64 #s(literal 1 binary64) y.im)) |
(/.f64 y.re y.im) |
(/.f64 (neg.f64 y.re) (neg.f64 y.im)) |
y.re |
y.im |
x.im |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 x.im y.im)) |
(*.f64 x.im (/.f64 #s(literal 1 binary64) y.im)) |
(*.f64 (/.f64 #s(literal 1 binary64) y.im) x.im) |
(/.f64 x.im y.im) |
(/.f64 (*.f64 x.im #s(literal 1 binary64)) y.im) |
(/.f64 (neg.f64 x.im) (neg.f64 y.im)) |
(*.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) y.im)) |
(/.f64 #s(literal 1 binary64) y.im) |
(/.f64 #s(literal -1 binary64) (neg.f64 y.im)) |
(pow.f64 y.im #s(literal -1 binary64)) |
#s(literal 1 binary64) |
(cosh.f64 #s(literal 0 binary64)) |
(exp.f64 #s(literal 0 binary64)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 x.im #s(approx (+ (/ y.im (+ (* y.re y.re) (* y.im y.im))) (/ (/ (* x.re y.re) x.im) (+ (* y.re y.re) (* y.im y.im)))) (/.f64 x.re (*.f64 x.im y.re))))) |
(*.f64 x.im #s(approx (+ (/ y.im (+ (* y.re y.re) (* y.im y.im))) (/ (/ (* x.re y.re) x.im) (+ (* y.re y.re) (* y.im y.im)))) (/.f64 x.re (*.f64 x.im y.re)))) |
#s(approx (+ (/ y.im (+ (* y.re y.re) (* y.im y.im))) (/ (/ (* x.re y.re) x.im) (+ (* y.re y.re) (* y.im y.im)))) (/.f64 x.re (*.f64 x.im y.re))) |
(*.f64 x.re (/.f64 #s(literal 1 binary64) (*.f64 x.im y.re))) |
(/.f64 x.re (*.f64 x.im y.re)) |
(/.f64 (/.f64 x.re x.im) y.re) |
(/.f64 (neg.f64 x.re) (neg.f64 (*.f64 x.im y.re))) |
(*.f64 x.im y.re) |
(*.f64 y.re x.im) |
(/.f64 #s(approx (+ (* x.re y.re) (* x.im y.im)) (*.f64 x.im y.im)) (fma.f64 y.re y.re (*.f64 y.im y.im))) |
#s(approx (+ (* x.re y.re) (* x.im y.im)) (*.f64 x.im y.im)) |
(*.f64 x.im y.im) |
(*.f64 y.im x.im) |
(+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im)) |
(+.f64 (*.f64 y.im y.im) (*.f64 y.re y.re)) |
(-.f64 (*.f64 y.im y.im) (neg.f64 (*.f64 y.re y.re))) |
(-.f64 (*.f64 y.re y.re) (neg.f64 (*.f64 y.im y.im))) |
(-.f64 (*.f64 y.re y.re) (*.f64 (neg.f64 y.im) y.im)) |
(fma.f64 y.re y.re (*.f64 y.im y.im)) |
(fma.f64 (fabs.f64 y.re) (fabs.f64 y.re) (*.f64 y.im y.im)) |
(fma.f64 (fabs.f64 y.im) (fabs.f64 y.im) (*.f64 y.re y.re)) |
(fma.f64 (neg.f64 y.re) (neg.f64 y.re) (*.f64 y.im y.im)) |
(fma.f64 (neg.f64 y.im) (neg.f64 y.im) (*.f64 y.re y.re)) |
(fma.f64 y.im y.im (*.f64 y.re y.re)) |
(*.f64 y.im y.im) |
(*.f64 (fabs.f64 y.im) (fabs.f64 y.im)) |
(*.f64 (neg.f64 y.im) (neg.f64 y.im)) |
(pow.f64 y.im #s(literal 2 binary64)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (fma.f64 x.re (/.f64 y.re (*.f64 y.im y.im)) (/.f64 x.im y.im))) |
(+.f64 (/.f64 (*.f64 y.re x.re) (*.f64 y.im y.im)) (/.f64 x.im y.im)) |
(+.f64 (/.f64 x.im y.im) (/.f64 (*.f64 y.re x.re) (*.f64 y.im y.im))) |
(-.f64 (/.f64 (*.f64 y.re x.re) (*.f64 y.im y.im)) (neg.f64 (/.f64 x.im y.im))) |
(/.f64 (fma.f64 (/.f64 (*.f64 y.re x.re) (*.f64 y.im y.im)) y.im x.im) y.im) |
(fma.f64 x.re (/.f64 y.re (*.f64 y.im y.im)) (/.f64 x.im y.im)) |
(fma.f64 (/.f64 y.re (*.f64 y.im y.im)) x.re (/.f64 x.im y.im)) |
(fma.f64 x.im (/.f64 #s(literal 1 binary64) y.im) (/.f64 (*.f64 y.re x.re) (*.f64 y.im y.im))) |
(fma.f64 (/.f64 #s(literal 1 binary64) y.im) x.im (/.f64 (*.f64 y.re x.re) (*.f64 y.im y.im))) |
(*.f64 y.re (/.f64 #s(literal 1 binary64) (*.f64 y.im y.im))) |
(/.f64 y.re (*.f64 y.im y.im)) |
(/.f64 (/.f64 y.re y.im) y.im) |
(/.f64 (neg.f64 y.re) (neg.f64 (*.f64 y.im y.im))) |
(*.f64 x.im (/.f64 #s(literal 1 binary64) y.im)) |
(*.f64 (/.f64 #s(literal 1 binary64) y.im) x.im) |
(/.f64 x.im y.im) |
(/.f64 (*.f64 x.im #s(literal 1 binary64)) y.im) |
(/.f64 (neg.f64 x.im) (neg.f64 y.im)) |
Compiled 5 791 to 763 computations (86.8% saved)
19 alts after pruning (11 fresh and 8 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 150 | 3 | 153 |
| Fresh | 1 | 8 | 9 |
| Picked | 0 | 5 | 5 |
| Done | 0 | 3 | 3 |
| Total | 151 | 19 | 170 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 42.9% | (/.f64 #s(approx (+ (* x.re y.re) (* x.im y.im)) (*.f64 x.im y.im)) (fma.f64 y.re y.re (*.f64 y.im y.im))) |
| 49.7% | #s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (fma.f64 (/.f64 #s(literal 1 binary64) y.im) x.im (/.f64 (*.f64 y.re x.re) (*.f64 y.im y.im)))) | |
| 55.1% | #s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (fma.f64 x.re (/.f64 (/.f64 y.re y.im) y.im) (/.f64 x.im y.im))) | |
| ✓ | 51.2% | #s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (fma.f64 x.re (/.f64 y.re (*.f64 y.im y.im)) (/.f64 x.im y.im))) |
| ✓ | 56.7% | #s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (fma.f64 x.re (/.f64 y.re y.im) x.im) y.im)) |
| 54.1% | #s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (fma.f64 x.im (/.f64 y.im y.re) x.re) y.re)) | |
| ✓ | 55.0% | #s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (+.f64 x.im (/.f64 (*.f64 x.re y.re) y.im)) y.im)) |
| 19.8% | #s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 #s(approx (+ (* x.re (/ y.re y.im)) x.im) (/.f64 (*.f64 x.re y.re) y.im)) y.im)) | |
| 25.0% | #s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 #s(approx (+ x.re (/ (* x.im y.im) y.re)) (/.f64 (*.f64 x.im y.im) y.re)) y.re)) | |
| 45.9% | #s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 #s(approx (+ x.re (/ (* x.im y.im) y.re)) (*.f64 y.im (+.f64 (/.f64 x.im y.re) (/.f64 x.re y.im)))) y.re)) | |
| ✓ | 37.9% | #s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 x.re y.re)) |
| ✓ | 47.4% | #s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 x.im y.im)) |
| 56.6% | #s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 (fma.f64 x.re (/.f64 y.re y.im) x.im) (/.f64 #s(literal 1 binary64) y.im))) | |
| 54.0% | #s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 (fma.f64 x.im (/.f64 y.im y.re) x.re) (/.f64 #s(literal 1 binary64) y.re))) | |
| 37.8% | #s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 x.re (/.f64 #s(literal 1 binary64) y.re))) | |
| ✓ | 47.3% | #s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 x.im (/.f64 #s(literal 1 binary64) y.im))) |
| 46.1% | #s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 x.im #s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (/.f64 (+.f64 (/.f64 x.re x.im) (/.f64 y.im y.re)) y.re)))) | |
| ✓ | 29.3% | #s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 x.im #s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (/.f64 x.re (*.f64 x.im y.re))))) |
| 18.1% | #s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) #s(approx (/ (+ x.im (/ (* x.re y.re) y.im)) y.im) (/.f64 (*.f64 x.re y.re) (*.f64 y.im y.im)))) |
Compiled 531 to 324 computations (39% saved)
Total -0.0b remaining (-0%)
Threshold costs -0b (-0%)
| Inputs |
|---|
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 x.im y.im)) |
| Outputs |
|---|
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 x.im y.im)) |
| Inputs |
|---|
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 x.im y.im)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 x.re y.re)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 x.im (/.f64 #s(literal 1 binary64) y.im))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 x.re (/.f64 #s(literal 1 binary64) y.re))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) #s(approx (/ (+ x.im (/ (* x.re y.re) y.im)) y.im) (/.f64 (*.f64 x.re y.re) (*.f64 y.im y.im)))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 x.im #s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (/.f64 x.re (*.f64 x.im y.re))))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 #s(approx (+ x.re (/ (* x.im y.im) y.re)) (/.f64 (*.f64 x.im y.im) y.re)) y.re)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 #s(approx (+ (* x.re (/ y.re y.im)) x.im) (/.f64 (*.f64 x.re y.re) y.im)) y.im)) |
| Outputs |
|---|
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 x.im y.im)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 x.re y.re)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 x.im y.im)) |
| Inputs |
|---|
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 x.im y.im)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 x.re y.re)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 x.im (/.f64 #s(literal 1 binary64) y.im))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 x.re (/.f64 #s(literal 1 binary64) y.re))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) #s(approx (/ (+ x.im (/ (* x.re y.re) y.im)) y.im) (/.f64 (*.f64 x.re y.re) (*.f64 y.im y.im)))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 x.im #s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (/.f64 x.re (*.f64 x.im y.re))))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 #s(approx (+ x.re (/ (* x.im y.im) y.re)) (/.f64 (*.f64 x.im y.im) y.re)) y.re)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 #s(approx (+ (* x.re (/ y.re y.im)) x.im) (/.f64 (*.f64 x.re y.re) y.im)) y.im)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (fma.f64 x.im (/.f64 y.im y.re) x.re) y.re)) |
| Outputs |
|---|
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 x.im y.im)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (fma.f64 x.im (/.f64 y.im y.re) x.re) y.re)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 x.im y.im)) |
| Inputs |
|---|
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 x.im y.im)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 x.re y.re)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 x.im (/.f64 #s(literal 1 binary64) y.im))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 x.re (/.f64 #s(literal 1 binary64) y.re))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) #s(approx (/ (+ x.im (/ (* x.re y.re) y.im)) y.im) (/.f64 (*.f64 x.re y.re) (*.f64 y.im y.im)))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 x.im #s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (/.f64 x.re (*.f64 x.im y.re))))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 #s(approx (+ x.re (/ (* x.im y.im) y.re)) (/.f64 (*.f64 x.im y.im) y.re)) y.re)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 #s(approx (+ (* x.re (/ y.re y.im)) x.im) (/.f64 (*.f64 x.re y.re) y.im)) y.im)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (fma.f64 x.im (/.f64 y.im y.re) x.re) y.re)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (fma.f64 x.re (/.f64 y.re y.im) x.im) y.im)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (+.f64 x.im (/.f64 (*.f64 x.re y.re) y.im)) y.im)) |
| Outputs |
|---|
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (fma.f64 x.re (/.f64 y.re y.im) x.im) y.im)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (fma.f64 x.im (/.f64 y.im y.re) x.re) y.re)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (fma.f64 x.re (/.f64 y.re y.im) x.im) y.im)) |
| Inputs |
|---|
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 x.im y.im)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 x.re y.re)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 x.im (/.f64 #s(literal 1 binary64) y.im))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 x.re (/.f64 #s(literal 1 binary64) y.re))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) #s(approx (/ (+ x.im (/ (* x.re y.re) y.im)) y.im) (/.f64 (*.f64 x.re y.re) (*.f64 y.im y.im)))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 x.im #s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (/.f64 x.re (*.f64 x.im y.re))))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 #s(approx (+ x.re (/ (* x.im y.im) y.re)) (/.f64 (*.f64 x.im y.im) y.re)) y.re)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 #s(approx (+ (* x.re (/ y.re y.im)) x.im) (/.f64 (*.f64 x.re y.re) y.im)) y.im)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (fma.f64 x.im (/.f64 y.im y.re) x.re) y.re)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (fma.f64 x.re (/.f64 y.re y.im) x.im) y.im)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (+.f64 x.im (/.f64 (*.f64 x.re y.re) y.im)) y.im)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (+.f64 x.re (/.f64 (*.f64 x.im y.im) y.re)) y.re)) |
(/.f64 #s(approx (+ (* x.re y.re) (* x.im y.im)) (*.f64 x.im y.im)) (fma.f64 y.re y.re (*.f64 y.im y.im))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 (fma.f64 x.im (/.f64 y.im y.re) x.re) (/.f64 #s(literal 1 binary64) y.re))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 (fma.f64 x.re (/.f64 y.re y.im) x.im) (/.f64 #s(literal 1 binary64) y.im))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (fma.f64 x.re (/.f64 y.re (*.f64 y.im y.im)) (/.f64 x.im y.im))) |
(/.f64 #s(approx (+ (* x.re y.re) (* x.im y.im)) (*.f64 x.im y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (fma.f64 x.re (/.f64 (/.f64 y.re y.im) y.im) (/.f64 x.im y.im))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 x.im #s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (/.f64 (+.f64 (/.f64 x.re x.im) (/.f64 y.im y.re)) y.re)))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (+.f64 (/.f64 x.im y.im) (/.f64 (/.f64 (*.f64 x.re y.re) y.im) y.im))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 #s(approx (+ x.re (/ (* x.im y.im) y.re)) (*.f64 y.im (+.f64 (/.f64 x.im y.re) (/.f64 x.re y.im)))) y.re)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (fma.f64 x.im (/.f64 #s(literal 1 binary64) y.im) (/.f64 (*.f64 x.re y.re) (*.f64 y.im y.im)))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (fma.f64 (/.f64 #s(literal 1 binary64) y.im) x.im (/.f64 (*.f64 y.re x.re) (*.f64 y.im y.im)))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (fma.f64 x.im (/.f64 #s(literal 1 binary64) y.im) (/.f64 (/.f64 (*.f64 x.re y.re) y.im) y.im))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 #s(approx (+ x.im (/ (* x.re y.re) y.im)) (*.f64 x.im (+.f64 #s(literal 1 binary64) (/.f64 (*.f64 x.re y.re) (*.f64 x.im y.im))))) y.im)) |
| Outputs |
|---|
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (fma.f64 x.re (/.f64 y.re y.im) x.im) y.im)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (+.f64 x.re (/.f64 (*.f64 x.im y.im) y.re)) y.re)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (fma.f64 x.re (/.f64 y.re y.im) x.im) y.im)) |
| Inputs |
|---|
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 x.im y.im)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 x.re y.re)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 x.im (/.f64 #s(literal 1 binary64) y.im))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 x.re (/.f64 #s(literal 1 binary64) y.re))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) #s(approx (/ (+ x.im (/ (* x.re y.re) y.im)) y.im) (/.f64 (*.f64 x.re y.re) (*.f64 y.im y.im)))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 x.im #s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (/.f64 x.re (*.f64 x.im y.re))))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 #s(approx (+ x.re (/ (* x.im y.im) y.re)) (/.f64 (*.f64 x.im y.im) y.re)) y.re)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 #s(approx (+ (* x.re (/ y.re y.im)) x.im) (/.f64 (*.f64 x.re y.re) y.im)) y.im)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (fma.f64 x.im (/.f64 y.im y.re) x.re) y.re)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (fma.f64 x.re (/.f64 y.re y.im) x.im) y.im)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (+.f64 x.im (/.f64 (*.f64 x.re y.re) y.im)) y.im)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (+.f64 x.re (/.f64 (*.f64 x.im y.im) y.re)) y.re)) |
(/.f64 #s(approx (+ (* x.re y.re) (* x.im y.im)) (*.f64 x.im y.im)) (fma.f64 y.re y.re (*.f64 y.im y.im))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 (fma.f64 x.im (/.f64 y.im y.re) x.re) (/.f64 #s(literal 1 binary64) y.re))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 (fma.f64 x.re (/.f64 y.re y.im) x.im) (/.f64 #s(literal 1 binary64) y.im))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (fma.f64 x.re (/.f64 y.re (*.f64 y.im y.im)) (/.f64 x.im y.im))) |
(/.f64 #s(approx (+ (* x.re y.re) (* x.im y.im)) (*.f64 x.im y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (fma.f64 x.re (/.f64 (/.f64 y.re y.im) y.im) (/.f64 x.im y.im))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 x.im #s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (/.f64 (+.f64 (/.f64 x.re x.im) (/.f64 y.im y.re)) y.re)))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (+.f64 (/.f64 x.im y.im) (/.f64 (/.f64 (*.f64 x.re y.re) y.im) y.im))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 #s(approx (+ x.re (/ (* x.im y.im) y.re)) (*.f64 y.im (+.f64 (/.f64 x.im y.re) (/.f64 x.re y.im)))) y.re)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (fma.f64 x.im (/.f64 #s(literal 1 binary64) y.im) (/.f64 (*.f64 x.re y.re) (*.f64 y.im y.im)))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (fma.f64 (/.f64 #s(literal 1 binary64) y.im) x.im (/.f64 (*.f64 y.re x.re) (*.f64 y.im y.im)))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (fma.f64 x.im (/.f64 #s(literal 1 binary64) y.im) (/.f64 (/.f64 (*.f64 x.re y.re) y.im) y.im))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 #s(approx (+ x.im (/ (* x.re y.re) y.im)) (*.f64 x.im (+.f64 #s(literal 1 binary64) (/.f64 (*.f64 x.re y.re) (*.f64 x.im y.im))))) y.im)) |
(/.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (fma.f64 y.re y.re (*.f64 y.im y.im))) |
(/.f64 (+.f64 (*.f64 x.re y.re) (*.f64 x.im y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) #s(approx (/ (+ x.im (/ (* x.re y.re) y.im)) y.im) (/.f64 (*.f64 x.re y.re) (pow.f64 y.im #s(literal 2 binary64))))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) #s(approx (/ (+ x.im (/ (* x.re y.re) y.im)) y.im) (*.f64 x.re (+.f64 (/.f64 x.im (*.f64 x.re y.im)) (/.f64 y.re (pow.f64 y.im #s(literal 2 binary64))))))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (fma.f64 y.im (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re y.im) (pow.f64 y.re #s(literal 3 binary64))) (/.f64 x.im (pow.f64 y.re #s(literal 2 binary64)))) (/.f64 x.re y.re))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (fma.f64 y.re (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im y.re) (pow.f64 y.im #s(literal 3 binary64))) (/.f64 x.re (pow.f64 y.im #s(literal 2 binary64)))) (/.f64 x.im y.im))) |
| Outputs |
|---|
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (fma.f64 x.re (/.f64 y.re y.im) x.im) y.im)) |
(/.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (fma.f64 y.re y.re (*.f64 y.im y.im))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (+.f64 x.re (/.f64 (*.f64 x.im y.im) y.re)) y.re)) |
(/.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (fma.f64 y.re y.re (*.f64 y.im y.im))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (fma.f64 x.re (/.f64 y.re y.im) x.im) y.im)) |
| Inputs |
|---|
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 x.im y.im)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 x.re y.re)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 x.im (/.f64 #s(literal 1 binary64) y.im))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 x.re (/.f64 #s(literal 1 binary64) y.re))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) #s(approx (/ (+ x.im (/ (* x.re y.re) y.im)) y.im) (/.f64 (*.f64 x.re y.re) (*.f64 y.im y.im)))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 x.im #s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (/.f64 x.re (*.f64 x.im y.re))))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 #s(approx (+ x.re (/ (* x.im y.im) y.re)) (/.f64 (*.f64 x.im y.im) y.re)) y.re)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 #s(approx (+ (* x.re (/ y.re y.im)) x.im) (/.f64 (*.f64 x.re y.re) y.im)) y.im)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (fma.f64 x.im (/.f64 y.im y.re) x.re) y.re)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (fma.f64 x.re (/.f64 y.re y.im) x.im) y.im)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (+.f64 x.im (/.f64 (*.f64 x.re y.re) y.im)) y.im)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (+.f64 x.re (/.f64 (*.f64 x.im y.im) y.re)) y.re)) |
(/.f64 #s(approx (+ (* x.re y.re) (* x.im y.im)) (*.f64 x.im y.im)) (fma.f64 y.re y.re (*.f64 y.im y.im))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 (fma.f64 x.im (/.f64 y.im y.re) x.re) (/.f64 #s(literal 1 binary64) y.re))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 (fma.f64 x.re (/.f64 y.re y.im) x.im) (/.f64 #s(literal 1 binary64) y.im))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (fma.f64 x.re (/.f64 y.re (*.f64 y.im y.im)) (/.f64 x.im y.im))) |
(/.f64 #s(approx (+ (* x.re y.re) (* x.im y.im)) (*.f64 x.im y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (fma.f64 x.re (/.f64 (/.f64 y.re y.im) y.im) (/.f64 x.im y.im))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 x.im #s(approx (+ (/ y.im (+ (pow y.im 2) (pow y.re 2))) (/ (* x.re y.re) (* x.im (+ (pow y.im 2) (pow y.re 2))))) (/.f64 (+.f64 (/.f64 x.re x.im) (/.f64 y.im y.re)) y.re)))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (+.f64 (/.f64 x.im y.im) (/.f64 (/.f64 (*.f64 x.re y.re) y.im) y.im))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 #s(approx (+ x.re (/ (* x.im y.im) y.re)) (*.f64 y.im (+.f64 (/.f64 x.im y.re) (/.f64 x.re y.im)))) y.re)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (fma.f64 x.im (/.f64 #s(literal 1 binary64) y.im) (/.f64 (*.f64 x.re y.re) (*.f64 y.im y.im)))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (fma.f64 (/.f64 #s(literal 1 binary64) y.im) x.im (/.f64 (*.f64 y.re x.re) (*.f64 y.im y.im)))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (fma.f64 x.im (/.f64 #s(literal 1 binary64) y.im) (/.f64 (/.f64 (*.f64 x.re y.re) y.im) y.im))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 #s(approx (+ x.im (/ (* x.re y.re) y.im)) (*.f64 x.im (+.f64 #s(literal 1 binary64) (/.f64 (*.f64 x.re y.re) (*.f64 x.im y.im))))) y.im)) |
(/.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (fma.f64 y.re y.re (*.f64 y.im y.im))) |
(/.f64 (+.f64 (*.f64 x.re y.re) (*.f64 x.im y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) #s(approx (/ (+ x.im (/ (* x.re y.re) y.im)) y.im) (/.f64 (*.f64 x.re y.re) (pow.f64 y.im #s(literal 2 binary64))))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) #s(approx (/ (+ x.im (/ (* x.re y.re) y.im)) y.im) (*.f64 x.re (+.f64 (/.f64 x.im (*.f64 x.re y.im)) (/.f64 y.re (pow.f64 y.im #s(literal 2 binary64))))))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (fma.f64 y.im (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.re y.im) (pow.f64 y.re #s(literal 3 binary64))) (/.f64 x.im (pow.f64 y.re #s(literal 2 binary64)))) (/.f64 x.re y.re))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (fma.f64 y.re (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x.im y.re) (pow.f64 y.im #s(literal 3 binary64))) (/.f64 x.re (pow.f64 y.im #s(literal 2 binary64)))) (/.f64 x.im y.im))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 x.im (+.f64 (/.f64 y.im (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))) (/.f64 (*.f64 x.re y.re) (*.f64 x.im (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))))))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 x.re (+.f64 (/.f64 y.re (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))) (/.f64 (*.f64 x.im y.im) (*.f64 x.re (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))))))) |
| Outputs |
|---|
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (fma.f64 x.re (/.f64 y.re y.im) x.im) y.im)) |
(/.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (fma.f64 y.re y.re (*.f64 y.im y.im))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (+.f64 x.re (/.f64 (*.f64 x.im y.im) y.re)) y.re)) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (*.f64 x.im (+.f64 (/.f64 y.im (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))) (/.f64 (*.f64 x.re y.re) (*.f64 x.im (+.f64 (pow.f64 y.im #s(literal 2 binary64)) (pow.f64 y.re #s(literal 2 binary64)))))))) |
#s(approx (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))) (/.f64 (fma.f64 x.re (/.f64 y.re y.im) x.im) y.im)) |
20 calls:
| 15.0ms | (/.f64 (+.f64 (*.f64 x.re y.re) (*.f64 x.im y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) |
| 14.0ms | y.im |
| 13.0ms | x.im |
| 12.0ms | y.im |
| 9.0ms | x.re |
| Accuracy | Segments | Branch |
|---|---|---|
| 47.4% | 1 | x.re |
| 47.4% | 1 | (/.f64 (+.f64 (*.f64 x.re y.re) (*.f64 x.im y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) |
| 47.4% | 1 | x.im |
| 47.4% | 1 | y.re |
| 47.4% | 1 | y.im |
| 60.9% | 3 | y.re |
| 55.9% | 3 | x.re |
| 59.1% | 3 | x.im |
| 64.9% | 3 | y.im |
| 69.7% | 3 | y.re |
| 60.2% | 4 | (/.f64 (+.f64 (*.f64 x.re y.re) (*.f64 x.im y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) |
| 76.5% | 3 | y.im |
| 82.5% | 3 | y.im |
| 82.9% | 3 | y.im |
| 88.2% | 5 | y.im |
| 81.8% | 3 | (/.f64 (+.f64 (*.f64 x.re y.re) (*.f64 x.im y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) |
| 69.7% | 2 | x.re |
| 71.7% | 3 | x.im |
| 82.8% | 5 | y.re |
| 88.2% | 5 | y.im |
Compiled 1 009 to 262 computations (74% saved)
| 4× | binary-search |
| 1× | narrow-enough |
| 1× | narrow-enough |
| 1× | narrow-enough |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 15.0ms | 3.4787611471035153e+121 | 2.820323825184418e+122 |
| 11.0ms | 2.5877614302068213e-48 | 3.047550117571137e-44 |
| 11.0ms | -1.549713513889457e-127 | -9.131108758021557e-128 |
| 8.0ms | -7.466968948897196e+105 | -6.880824462189755e+104 |
| 31.0ms | 384× | 0 | valid |
Compiled 1 310 to 836 computations (36.2% saved)
ival-mult!: 13.0ms (83.2% of total)ival-add!: 2.0ms (12.8% of total)ival-div!: 2.0ms (12.8% of total)adjust: 0.0ms (0% of total)| 4× | binary-search |
| 1× | narrow-enough |
| 1× | narrow-enough |
| 1× | narrow-enough |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 6.0ms | 3.4787611471035153e+121 | 2.820323825184418e+122 |
| 2.0ms | 2.5877614302068213e-48 | 3.047550117571137e-44 |
| 0.0ms | -1.549713513889457e-127 | -9.131108758021557e-128 |
| 1.0ms | -7.466968948897196e+105 | -6.880824462189755e+104 |
| 4.0ms | 80× | 0 | valid |
Compiled 918 to 654 computations (28.8% saved)
ival-mult!: 1.0ms (49.4% of total)adjust: 0.0ms (0% of total)ival-add!: 0.0ms (0% of total)ival-div!: 0.0ms (0% of total)| 2× | binary-search |
| 1× | narrow-enough |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 13.0ms | 5.546455600209655e-42 | 6.406671110268856e-33 |
| 24.0ms | -3.4648804401640864e-54 | -3.460707004265104e-55 |
| 27.0ms | 240× | 0 | valid |
Compiled 753 to 513 computations (31.9% saved)
ival-mult!: 19.0ms (88.7% of total)ival-add!: 1.0ms (4.7% of total)ival-div!: 1.0ms (4.7% of total)adjust: 0.0ms (0% of total)| 2× | binary-search |
| 1× | narrow-enough |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 1.0ms | 5.546455600209655e-42 | 6.406671110268856e-33 |
| 1.0ms | -3.4648804401640864e-54 | -3.460707004265104e-55 |
Compiled 738 to 498 computations (32.5% saved)
| 2× | binary-search |
| 1× | narrow-enough |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 7.0ms | 5.546455600209655e-42 | 6.406671110268856e-33 |
| 9.0ms | -12575854.025499413 | -7537304.242475739 |
| 7.0ms | 144× | 0 | valid |
Compiled 577 to 408 computations (29.3% saved)
ival-mult!: 3.0ms (81.9% of total)ival-add!: 1.0ms (27.3% of total)ival-div!: 1.0ms (27.3% of total)adjust: 0.0ms (0% of total)| 2× | binary-search |
| 1× | narrow-enough |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 15.0ms | 3.636390708220621e-102 | 1.1698155528089704e-95 |
| 1.0ms | -3.4648804401640864e-54 | -3.460707004265104e-55 |
| 8.0ms | 144× | 0 | valid |
Compiled 588 to 438 computations (25.5% saved)
ival-mult!: 3.0ms (79% of total)ival-add!: 1.0ms (26.3% of total)ival-div!: 1.0ms (26.3% of total)adjust: 0.0ms (0% of total)| 1× | fuel |
Compiled 573 to 81 computations (85.9% saved)
Compiled 588 to 92 computations (84.4% saved)
Loading profile data...