
Time bar (total: 3.5s)
| 1× | search |
| Probability | Valid | Unknown | Precondition | Infinite | Domain | Can't | Iter |
|---|---|---|---|---|---|---|---|
| 0% | 0% | 99.8% | 0.2% | 0% | 0% | 0% | 0 |
| 100% | 99.8% | 0% | 0.2% | 0% | 0% | 0% | 1 |
Compiled 12 to 8 computations (33.3% saved)
ival-add: 0.0ms (0% of total)ival-mult: 0.0ms (0% of total)const: 0.0ms (0% of total)backward-pass: 0.0ms (0% of total)| 861.0ms | 8256× | 0 | valid |
ival-mult: 156.0ms (73.1% of total)ival-add: 47.0ms (22% of total)const: 8.0ms (3.8% of total)backward-pass: 3.0ms (1.4% of total)| 2× | egg-herbie |
| 596× | fnmadd-define |
| 592× | fnmsub-define |
| 592× | fmsub-define |
| 512× | sum4-define |
| 452× | fma-define |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 37 | 98 |
| 1 | 87 | 90 |
| 2 | 171 | 90 |
| 3 | 461 | 90 |
| 4 | 1273 | 90 |
| 5 | 1657 | 90 |
| 6 | 2126 | 90 |
| 7 | 2412 | 90 |
| 8 | 2440 | 90 |
| 0 | 7 | 6 |
| 1 | 11 | 6 |
| 2 | 14 | 6 |
| 0 | 14 | 6 |
| 1× | iter limit |
| 1× | saturated |
| 1× | saturated |
| Inputs |
|---|
(+ (* x.re y.im) (* x.im y.re)) |
| Outputs |
|---|
(+ (* x.re y.im) (* x.im y.re)) |
(+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) |
| Inputs |
|---|
(+ (* x.re y.im) (* x.im y.re)) |
(+ (* (neg x.re) y.im) (* x.im y.re)) |
(+ (* x.re y.im) (* (neg x.im) y.re)) |
(+ (* x.re y.im) (* x.im (neg y.re))) |
(+ (* x.re (neg y.im)) (* x.im y.re)) |
(neg (+ (* (neg x.re) y.im) (* x.im y.re))) |
(neg (+ (* x.re y.im) (* (neg x.im) y.re))) |
(neg (+ (* x.re y.im) (* x.im (neg y.re)))) |
(neg (+ (* x.re (neg y.im)) (* x.im y.re))) |
(+ (* x.im y.im) (* x.re y.re)) |
(+ (* y.re y.im) (* x.im x.re)) |
(+ (* y.im x.re) (* x.im y.re)) |
(+ (* x.re y.im) (* y.re x.im)) |
(+ (* x.re x.im) (* y.im y.re)) |
(+ (* x.re y.re) (* x.im y.im)) |
| Outputs |
|---|
(+ (* x.re y.im) (* x.im y.re)) |
(fma x.re y.im (* x.im y.re)) |
(+ (* (neg x.re) y.im) (* x.im y.re)) |
(fmsub x.im y.re (* x.re y.im)) |
(+ (* x.re y.im) (* (neg x.im) y.re)) |
(fmsub x.re y.im (* x.im y.re)) |
(+ (* x.re y.im) (* x.im (neg y.re))) |
(fmsub x.re y.im (* x.im y.re)) |
(+ (* x.re (neg y.im)) (* x.im y.re)) |
(fmsub x.im y.re (* x.re y.im)) |
(neg (+ (* (neg x.re) y.im) (* x.im y.re))) |
(fmsub x.re y.im (* x.im y.re)) |
(neg (+ (* x.re y.im) (* (neg x.im) y.re))) |
(fmsub x.im y.re (* x.re y.im)) |
(neg (+ (* x.re y.im) (* x.im (neg y.re)))) |
(fmsub x.im y.re (* x.re y.im)) |
(neg (+ (* x.re (neg y.im)) (* x.im y.re))) |
(fmsub x.re y.im (* x.im y.re)) |
(+ (* x.im y.im) (* x.re y.re)) |
(fma x.re y.re (* y.im x.im)) |
(+ (* y.re y.im) (* x.im x.re)) |
(fma x.re x.im (* y.im y.re)) |
(+ (* y.im x.re) (* x.im y.re)) |
(fma x.re y.im (* x.im y.re)) |
(+ (* x.re y.im) (* y.re x.im)) |
(fma x.re y.im (* x.im y.re)) |
(+ (* x.re x.im) (* y.im y.re)) |
(fma x.re x.im (* y.im y.re)) |
(+ (* x.re y.re) (* x.im y.im)) |
(fma x.re y.re (* y.im x.im)) |
(sort x.re y.im)
(sort x.im y.re)
| Ground Truth | Overpredictions | Example | Underpredictions | Example | Subexpression |
|---|---|---|---|---|---|
| 1 | 0 | - | 0 | - | (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) |
| 0 | 0 | - | 0 | - | x.im |
| 0 | 0 | - | 0 | - | (*.f64 x.re y.im) |
| 0 | 0 | - | 0 | - | y.im |
| 0 | 0 | - | 0 | - | y.re |
| 0 | 0 | - | 0 | - | x.re |
| 0 | 0 | - | 0 | - | (*.f64 x.im y.re) |
| 71.0ms | 512× | 0 | valid |
Compiled 55 to 23 computations (58.2% saved)
ival-mult: 8.0ms (70.2% of total)ival-add: 3.0ms (26.3% of total)const: 1.0ms (8.8% of total)backward-pass: 0.0ms (0% of total)Compiled 11 to 7 computations (36.4% saved)
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 99.6% | (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) |
Compiled 11 to 7 computations (36.4% saved)
| 1× | egg-herbie |
Found 3 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| ✓ | cost-diff | 0 | (*.f64 x.im y.re) |
| ✓ | cost-diff | 0 | (*.f64 x.re y.im) |
| ✓ | cost-diff | 0 | (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) |
| 8× | fma-lowering-fma.f32 |
| 8× | fma-define |
| 8× | *-lowering-*.f32 |
| 8× | *-lowering-*.f64 |
| 8× | fma-lowering-fma.f64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 7 | 16 |
| 1 | 11 | 16 |
| 2 | 14 | 16 |
| 0 | 14 | 16 |
| 1× | iter limit |
| 1× | saturated |
| Inputs |
|---|
(+ (* x.re y.im) (* x.im y.re)) |
(* x.re y.im) |
x.re |
y.im |
(* x.im y.re) |
x.im |
y.re |
| Outputs |
|---|
(+ (* x.re y.im) (* x.im y.re)) |
(+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) |
(* x.re y.im) |
(*.f64 x.re y.im) |
x.re |
y.im |
(* x.im y.re) |
(*.f64 x.im y.re) |
x.im |
y.re |
Found 3 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| ✓ | accuracy | 100.0% | (*.f64 x.re y.im) |
| ✓ | accuracy | 100.0% | (*.f64 x.im y.re) |
| ✓ | accuracy | 99.6% | (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) |
| 24.0ms | 256× | 0 | valid |
Compiled 22 to 8 computations (63.6% saved)
ival-mult: 4.0ms (70.6% of total)ival-add: 1.0ms (17.7% of total)const: 0.0ms (0% of total)backward-pass: 0.0ms (0% of total)| Inputs |
|---|
#<alt (+ (* x.re y.im) (* x.im y.re))> |
#<alt (* x.re y.im)> |
#<alt (* x.im y.re)> |
| Outputs |
|---|
#<alt (* x.im y.re)> |
#<alt (+ (* x.im y.re) (* x.re y.im))> |
#<alt (+ (* x.im y.re) (* x.re y.im))> |
#<alt (+ (* x.im y.re) (* x.re y.im))> |
#<alt (* x.re y.im)> |
#<alt (* x.re (+ y.im (/ (* x.im y.re) x.re)))> |
#<alt (* x.re (+ y.im (/ (* x.im y.re) x.re)))> |
#<alt (* x.re (+ y.im (/ (* x.im y.re) x.re)))> |
#<alt (* x.re y.im)> |
#<alt (* -1 (* x.re (+ (* -1 y.im) (* -1 (/ (* x.im y.re) x.re)))))> |
#<alt (* -1 (* x.re (+ (* -1 y.im) (* -1 (/ (* x.im y.re) x.re)))))> |
#<alt (* -1 (* x.re (+ (* -1 y.im) (* -1 (/ (* x.im y.re) x.re)))))> |
#<alt (* x.im y.re)> |
#<alt (+ (* x.im y.re) (* x.re y.im))> |
#<alt (+ (* x.im y.re) (* x.re y.im))> |
#<alt (+ (* x.im y.re) (* x.re y.im))> |
#<alt (* x.re y.im)> |
#<alt (* y.im (+ x.re (/ (* x.im y.re) y.im)))> |
#<alt (* y.im (+ x.re (/ (* x.im y.re) y.im)))> |
#<alt (* y.im (+ x.re (/ (* x.im y.re) y.im)))> |
#<alt (* x.re y.im)> |
#<alt (* -1 (* y.im (+ (* -1 x.re) (* -1 (/ (* x.im y.re) y.im)))))> |
#<alt (* -1 (* y.im (+ (* -1 x.re) (* -1 (/ (* x.im y.re) y.im)))))> |
#<alt (* -1 (* y.im (+ (* -1 x.re) (* -1 (/ (* x.im y.re) y.im)))))> |
#<alt (* x.re y.im)> |
#<alt (+ (* x.im y.re) (* x.re y.im))> |
#<alt (+ (* x.im y.re) (* x.re y.im))> |
#<alt (+ (* x.im y.re) (* x.re y.im))> |
#<alt (* x.im y.re)> |
#<alt (* x.im (+ y.re (/ (* x.re y.im) x.im)))> |
#<alt (* x.im (+ y.re (/ (* x.re y.im) x.im)))> |
#<alt (* x.im (+ y.re (/ (* x.re y.im) x.im)))> |
#<alt (* x.im y.re)> |
#<alt (* -1 (* x.im (+ (* -1 y.re) (* -1 (/ (* x.re y.im) x.im)))))> |
#<alt (* -1 (* x.im (+ (* -1 y.re) (* -1 (/ (* x.re y.im) x.im)))))> |
#<alt (* -1 (* x.im (+ (* -1 y.re) (* -1 (/ (* x.re y.im) x.im)))))> |
#<alt (* x.re y.im)> |
#<alt (+ (* x.im y.re) (* x.re y.im))> |
#<alt (+ (* x.im y.re) (* x.re y.im))> |
#<alt (+ (* x.im y.re) (* x.re y.im))> |
#<alt (* x.im y.re)> |
#<alt (* y.re (+ x.im (/ (* x.re y.im) y.re)))> |
#<alt (* y.re (+ x.im (/ (* x.re y.im) y.re)))> |
#<alt (* y.re (+ x.im (/ (* x.re y.im) y.re)))> |
#<alt (* x.im y.re)> |
#<alt (* -1 (* y.re (+ (* -1 x.im) (* -1 (/ (* x.re y.im) y.re)))))> |
#<alt (* -1 (* y.re (+ (* -1 x.im) (* -1 (/ (* x.re y.im) y.re)))))> |
#<alt (* -1 (* y.re (+ (* -1 x.im) (* -1 (/ (* x.re y.im) y.re)))))> |
#<alt (* x.re y.im)> |
#<alt (* x.re y.im)> |
#<alt (* x.re y.im)> |
#<alt (* x.re y.im)> |
#<alt (* x.re y.im)> |
#<alt (* x.re y.im)> |
#<alt (* x.re y.im)> |
#<alt (* x.re y.im)> |
#<alt (* x.re y.im)> |
#<alt (* x.re y.im)> |
#<alt (* x.re y.im)> |
#<alt (* x.re y.im)> |
#<alt (* x.re y.im)> |
#<alt (* x.re y.im)> |
#<alt (* x.re y.im)> |
#<alt (* x.re y.im)> |
#<alt (* x.re y.im)> |
#<alt (* x.re y.im)> |
#<alt (* x.re y.im)> |
#<alt (* x.re y.im)> |
#<alt (* x.re y.im)> |
#<alt (* x.re y.im)> |
#<alt (* x.re y.im)> |
#<alt (* x.re y.im)> |
#<alt (* x.im y.re)> |
#<alt (* x.im y.re)> |
#<alt (* x.im y.re)> |
#<alt (* x.im y.re)> |
#<alt (* x.im y.re)> |
#<alt (* x.im y.re)> |
#<alt (* x.im y.re)> |
#<alt (* x.im y.re)> |
#<alt (* x.im y.re)> |
#<alt (* x.im y.re)> |
#<alt (* x.im y.re)> |
#<alt (* x.im y.re)> |
#<alt (* x.im y.re)> |
#<alt (* x.im y.re)> |
#<alt (* x.im y.re)> |
#<alt (* x.im y.re)> |
#<alt (* x.im y.re)> |
#<alt (* x.im y.re)> |
#<alt (* x.im y.re)> |
#<alt (* x.im y.re)> |
#<alt (* x.im y.re)> |
#<alt (* x.im y.re)> |
#<alt (* x.im y.re)> |
#<alt (* x.im y.re)> |
24 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | y.im | @ | -inf | (* x.re y.im) |
| 0.0ms | x.im | @ | 0 | (+ (* x.re y.im) (* x.im y.re)) |
| 0.0ms | x.re | @ | 0 | (+ (* x.re y.im) (* x.im y.re)) |
| 0.0ms | x.re | @ | inf | (+ (* x.re y.im) (* x.im y.re)) |
| 0.0ms | x.re | @ | -inf | (+ (* x.re y.im) (* x.im y.re)) |
| 1× | batch-egg-rewrite |
| 2704× | *-lowering-*.f32 |
| 2704× | *-lowering-*.f64 |
| 1858× | sum5-define |
| 1440× | fmsub-define |
| 1440× | fmm-def |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 7 | 12 |
| 1 | 24 | 12 |
| 2 | 210 | 12 |
| 3 | 2692 | 12 |
| 0 | 8111 | 12 |
| 1× | iter limit |
| 1× | node limit |
| Inputs |
|---|
(+ (* x.re y.im) (* x.im y.re)) |
(* x.re y.im) |
(* x.im y.re) |
| Outputs |
|---|
(+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(+.f64 (/.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))) (neg.f64 (/.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))))) |
(exp.f64 (*.f64 (log.f64 (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)))) #s(literal -1 binary64))) |
(-.f64 (/.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))) (/.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)))) |
(-.f64 (/.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im))) (/.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)))) |
(fma.f64 x.re y.im (*.f64 x.im y.re)) |
(fma.f64 x.re (/.f64 (*.f64 x.re (*.f64 y.im y.im)) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))) (neg.f64 (/.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))))) |
(fma.f64 y.im x.re (*.f64 x.im y.re)) |
(fma.f64 y.im (/.f64 (*.f64 x.re (*.f64 x.re y.im)) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))) (neg.f64 (/.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))))) |
(fma.f64 (*.f64 x.re y.im) (/.f64 (*.f64 x.re y.im) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))) (neg.f64 (/.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))))) |
(fma.f64 x.im y.re (*.f64 x.re y.im)) |
(fma.f64 y.re x.im (*.f64 x.re y.im)) |
(fma.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (/.f64 #s(literal 1 binary64) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))) (neg.f64 (/.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))))) |
(fma.f64 (*.f64 x.re x.re) (/.f64 (*.f64 y.im y.im) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))) (neg.f64 (/.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))))) |
(fma.f64 (*.f64 y.im y.im) (/.f64 (*.f64 x.re x.re) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))) (neg.f64 (/.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))))) |
(fma.f64 (*.f64 x.re (*.f64 y.im y.im)) (/.f64 x.re (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))) (neg.f64 (/.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))))) |
(fma.f64 (*.f64 x.re (*.f64 x.re y.im)) (/.f64 y.im (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))) (neg.f64 (/.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))))) |
(fma.f64 (/.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (-.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))))) (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) (neg.f64 (/.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))))) |
(fma.f64 (/.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (-.f64 (*.f64 (*.f64 x.re (*.f64 y.im y.im)) (*.f64 x.re (*.f64 x.re y.im))) (*.f64 (*.f64 x.im (*.f64 x.im y.re)) (*.f64 x.im (*.f64 y.re y.re))))) (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 (*.f64 x.im y.re) (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)))) (neg.f64 (/.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))))) |
(neg.f64 (/.f64 (+.f64 (*.f64 (*.f64 x.re (*.f64 y.im y.im)) (*.f64 x.re (*.f64 x.re y.im))) (*.f64 (*.f64 x.im (*.f64 x.im y.re)) (*.f64 x.im (*.f64 y.re y.re)))) (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 x.im (*.f64 y.re (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)))))))) |
(neg.f64 (/.f64 (-.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re)))) (-.f64 #s(literal 0 binary64) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))))) |
(neg.f64 (/.f64 (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 (*.f64 x.re (*.f64 y.im y.im)) (*.f64 x.re (*.f64 x.re y.im))) (*.f64 (*.f64 x.im (*.f64 x.im y.re)) (*.f64 x.im (*.f64 y.re y.re))))) (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 x.im (*.f64 y.re (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im))))))) |
(neg.f64 (/.f64 (-.f64 #s(literal 0 binary64) (-.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)))) |
(/.f64 (+.f64 (*.f64 (*.f64 x.re (*.f64 y.im y.im)) (*.f64 x.re (*.f64 x.re y.im))) (*.f64 (*.f64 x.im (*.f64 x.im y.re)) (*.f64 x.im (*.f64 y.re y.re)))) (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 x.im (*.f64 y.re (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)))))) |
(/.f64 (-.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re)))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))) |
(/.f64 (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 (*.f64 x.re (*.f64 y.im y.im)) (*.f64 x.re (*.f64 x.re y.im))) (*.f64 (*.f64 x.im (*.f64 x.im y.re)) (*.f64 x.im (*.f64 y.re y.re))))) (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 x.im (*.f64 y.re (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im))))))) |
(/.f64 (-.f64 #s(literal 0 binary64) (-.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))))) (-.f64 #s(literal 0 binary64) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)))) |
(/.f64 (+.f64 (*.f64 (*.f64 (*.f64 (*.f64 x.re (*.f64 y.im y.im)) (*.f64 x.re (*.f64 x.re y.im))) (*.f64 y.im (*.f64 y.im y.im))) (*.f64 (*.f64 (*.f64 x.re (*.f64 y.im y.im)) (*.f64 x.re (*.f64 x.re y.im))) (*.f64 x.re (*.f64 x.re x.re)))) (*.f64 (*.f64 (*.f64 (*.f64 x.im (*.f64 x.im y.re)) (*.f64 x.im (*.f64 y.re y.re))) (*.f64 x.im (*.f64 x.im x.im))) (*.f64 (*.f64 (*.f64 x.im (*.f64 x.im y.re)) (*.f64 x.im (*.f64 y.re y.re))) (*.f64 y.re (*.f64 y.re y.re))))) (*.f64 (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 x.im (*.f64 y.re (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im))))) (+.f64 (*.f64 (*.f64 x.re y.im) (*.f64 (*.f64 (*.f64 x.re (*.f64 y.im y.im)) (*.f64 x.re (*.f64 x.re y.im))) (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))))) (*.f64 (*.f64 (*.f64 x.im (*.f64 x.im y.re)) (*.f64 x.im (*.f64 y.re y.re))) (-.f64 (*.f64 (*.f64 x.im (*.f64 x.im y.re)) (*.f64 x.im (*.f64 y.re y.re))) (*.f64 (*.f64 x.re (*.f64 y.im y.im)) (*.f64 x.re (*.f64 x.re y.im)))))))) |
(/.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)))) |
(/.f64 #s(literal 1 binary64) (/.f64 (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))) #s(literal 1 binary64))) |
(/.f64 #s(literal 1 binary64) (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (-.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im)))))) |
(/.f64 (-.f64 (*.f64 (*.f64 x.re y.im) (*.f64 (*.f64 (*.f64 x.re (*.f64 y.im y.im)) (*.f64 x.re (*.f64 x.re y.im))) (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))))) (*.f64 (*.f64 (*.f64 x.im (*.f64 x.im y.re)) (*.f64 x.im (*.f64 y.re y.re))) (*.f64 (*.f64 x.im (*.f64 x.im y.re)) (*.f64 x.im (*.f64 y.re y.re))))) (*.f64 (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 x.im (*.f64 y.re (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im))))) (-.f64 (*.f64 (*.f64 x.re (*.f64 y.im y.im)) (*.f64 x.re (*.f64 x.re y.im))) (*.f64 (*.f64 x.im (*.f64 x.im y.re)) (*.f64 x.im (*.f64 y.re y.re)))))) |
(/.f64 (-.f64 (*.f64 (*.f64 x.re y.im) (*.f64 (*.f64 (*.f64 x.re (*.f64 y.im y.im)) (*.f64 x.re (*.f64 x.re y.im))) (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))))) (*.f64 (*.f64 (*.f64 x.im (*.f64 x.im y.re)) (*.f64 x.im (*.f64 y.re y.re))) (*.f64 (*.f64 x.im (*.f64 x.im y.re)) (*.f64 x.im (*.f64 y.re y.re))))) (*.f64 (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) (+.f64 (*.f64 (*.f64 x.re y.im) (*.f64 (*.f64 x.re (*.f64 y.im y.im)) (*.f64 x.re (*.f64 x.re y.im)))) (*.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re)))))))) |
(/.f64 (-.f64 (*.f64 (*.f64 x.re y.im) (*.f64 (*.f64 x.re (*.f64 y.im y.im)) (*.f64 x.re (*.f64 x.re y.im)))) (*.f64 (*.f64 x.im y.re) (*.f64 (*.f64 x.im (*.f64 x.im y.re)) (*.f64 x.im (*.f64 y.re y.re))))) (*.f64 (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re)))))) |
(/.f64 (-.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im)))) (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im))) |
(/.f64 #s(literal -1 binary64) (neg.f64 (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))))) |
(/.f64 (-.f64 (*.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))) (*.f64 (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))))) (*.f64 (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)))) |
(/.f64 (*.f64 (+.f64 (*.f64 (*.f64 (*.f64 (*.f64 x.re (*.f64 y.im y.im)) (*.f64 x.re (*.f64 x.re y.im))) (*.f64 y.im (*.f64 y.im y.im))) (*.f64 (*.f64 (*.f64 x.re (*.f64 y.im y.im)) (*.f64 x.re (*.f64 x.re y.im))) (*.f64 x.re (*.f64 x.re x.re)))) (*.f64 (*.f64 (*.f64 (*.f64 x.im (*.f64 x.im y.re)) (*.f64 x.im (*.f64 y.re y.re))) (*.f64 x.im (*.f64 x.im x.im))) (*.f64 (*.f64 (*.f64 x.im (*.f64 x.im y.re)) (*.f64 x.im (*.f64 y.re y.re))) (*.f64 y.re (*.f64 y.re y.re))))) #s(literal 1 binary64)) (*.f64 (+.f64 (*.f64 (*.f64 x.re y.im) (*.f64 (*.f64 (*.f64 x.re (*.f64 y.im y.im)) (*.f64 x.re (*.f64 x.re y.im))) (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))))) (*.f64 (*.f64 (*.f64 x.im (*.f64 x.im y.re)) (*.f64 x.im (*.f64 y.re y.re))) (-.f64 (*.f64 (*.f64 x.im (*.f64 x.im y.re)) (*.f64 x.im (*.f64 y.re y.re))) (*.f64 (*.f64 x.re (*.f64 y.im y.im)) (*.f64 x.re (*.f64 x.re y.im)))))) (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 x.im (*.f64 y.re (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im))))))) |
(/.f64 (*.f64 (-.f64 (*.f64 (*.f64 x.re y.im) (*.f64 (*.f64 (*.f64 x.re (*.f64 y.im y.im)) (*.f64 x.re (*.f64 x.re y.im))) (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))))) (*.f64 (*.f64 (*.f64 x.im (*.f64 x.im y.re)) (*.f64 x.im (*.f64 y.re y.re))) (*.f64 (*.f64 x.im (*.f64 x.im y.re)) (*.f64 x.im (*.f64 y.re y.re))))) #s(literal 1 binary64)) (*.f64 (-.f64 (*.f64 (*.f64 x.re (*.f64 y.im y.im)) (*.f64 x.re (*.f64 x.re y.im))) (*.f64 (*.f64 x.im (*.f64 x.im y.re)) (*.f64 x.im (*.f64 y.re y.re)))) (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 x.im (*.f64 y.re (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im))))))) |
(/.f64 (*.f64 (-.f64 (*.f64 (*.f64 x.re y.im) (*.f64 (*.f64 (*.f64 x.re (*.f64 y.im y.im)) (*.f64 x.re (*.f64 x.re y.im))) (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))))) (*.f64 (*.f64 (*.f64 x.im (*.f64 x.im y.re)) (*.f64 x.im (*.f64 y.re y.re))) (*.f64 (*.f64 x.im (*.f64 x.im y.re)) (*.f64 x.im (*.f64 y.re y.re))))) #s(literal 1 binary64)) (*.f64 (+.f64 (*.f64 (*.f64 x.re y.im) (*.f64 (*.f64 x.re (*.f64 y.im y.im)) (*.f64 x.re (*.f64 x.re y.im)))) (*.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re)))))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)))) |
(/.f64 (*.f64 (-.f64 (*.f64 (*.f64 x.re y.im) (*.f64 (*.f64 x.re (*.f64 y.im y.im)) (*.f64 x.re (*.f64 x.re y.im)))) (*.f64 (*.f64 x.im y.re) (*.f64 (*.f64 x.im (*.f64 x.im y.re)) (*.f64 x.im (*.f64 y.re y.re))))) #s(literal 1 binary64)) (*.f64 (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re)))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)))) |
(/.f64 (neg.f64 (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 (*.f64 x.re (*.f64 y.im y.im)) (*.f64 x.re (*.f64 x.re y.im))) (*.f64 (*.f64 x.im (*.f64 x.im y.re)) (*.f64 x.im (*.f64 y.re y.re)))))) (neg.f64 (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 x.im (*.f64 y.re (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)))))))) |
(/.f64 (neg.f64 (-.f64 #s(literal 0 binary64) (-.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re)))))) (neg.f64 (-.f64 #s(literal 0 binary64) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))))) |
(/.f64 (neg.f64 (-.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))))) (neg.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)))) |
(/.f64 (-.f64 (*.f64 (*.f64 (/.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))) (/.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)))) (/.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)))) (/.f64 (*.f64 (*.f64 (*.f64 x.im (*.f64 x.im y.re)) (*.f64 x.im (*.f64 y.re y.re))) (*.f64 (*.f64 x.im (*.f64 x.im y.re)) (*.f64 x.im (*.f64 y.re y.re)))) (*.f64 (*.f64 (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))))) (+.f64 (*.f64 (/.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))) (/.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)))) (+.f64 (*.f64 (/.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))) (/.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)))) (*.f64 (/.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))) (/.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))))))) |
(/.f64 (-.f64 (*.f64 (/.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))) (/.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)))) (*.f64 (/.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))) (/.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))))) (+.f64 (/.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))) (/.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))))) |
(/.f64 (*.f64 (+.f64 (*.f64 (*.f64 x.re (*.f64 y.im y.im)) (*.f64 x.re (*.f64 x.re y.im))) (*.f64 (*.f64 x.im (*.f64 x.im y.re)) (*.f64 x.im (*.f64 y.re y.re)))) #s(literal 1 binary64)) (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 x.im (*.f64 y.re (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)))))) |
(/.f64 (*.f64 (+.f64 (*.f64 (*.f64 (*.f64 (*.f64 x.re (*.f64 y.im y.im)) (*.f64 x.re (*.f64 x.re y.im))) (*.f64 y.im (*.f64 y.im y.im))) (*.f64 (*.f64 (*.f64 x.re (*.f64 y.im y.im)) (*.f64 x.re (*.f64 x.re y.im))) (*.f64 x.re (*.f64 x.re x.re)))) (*.f64 (*.f64 (*.f64 (*.f64 x.im (*.f64 x.im y.re)) (*.f64 x.im (*.f64 y.re y.re))) (*.f64 x.im (*.f64 x.im x.im))) (*.f64 (*.f64 (*.f64 x.im (*.f64 x.im y.re)) (*.f64 x.im (*.f64 y.re y.re))) (*.f64 y.re (*.f64 y.re y.re))))) (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 x.im (*.f64 y.re (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im))))))) (+.f64 (*.f64 (*.f64 x.re y.im) (*.f64 (*.f64 (*.f64 x.re (*.f64 y.im y.im)) (*.f64 x.re (*.f64 x.re y.im))) (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))))) (*.f64 (*.f64 (*.f64 x.im (*.f64 x.im y.re)) (*.f64 x.im (*.f64 y.re y.re))) (-.f64 (*.f64 (*.f64 x.im (*.f64 x.im y.re)) (*.f64 x.im (*.f64 y.re y.re))) (*.f64 (*.f64 x.re (*.f64 y.im y.im)) (*.f64 x.re (*.f64 x.re y.im))))))) |
(/.f64 (*.f64 (-.f64 (*.f64 (*.f64 x.re y.im) (*.f64 (*.f64 (*.f64 x.re (*.f64 y.im y.im)) (*.f64 x.re (*.f64 x.re y.im))) (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))))) (*.f64 (*.f64 (*.f64 x.im (*.f64 x.im y.re)) (*.f64 x.im (*.f64 y.re y.re))) (*.f64 (*.f64 x.im (*.f64 x.im y.re)) (*.f64 x.im (*.f64 y.re y.re))))) (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 x.im (*.f64 y.re (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im))))))) (-.f64 (*.f64 (*.f64 x.re (*.f64 y.im y.im)) (*.f64 x.re (*.f64 x.re y.im))) (*.f64 (*.f64 x.im (*.f64 x.im y.re)) (*.f64 x.im (*.f64 y.re y.re))))) |
(/.f64 (*.f64 (-.f64 (*.f64 (*.f64 x.re y.im) (*.f64 (*.f64 (*.f64 x.re (*.f64 y.im y.im)) (*.f64 x.re (*.f64 x.re y.im))) (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))))) (*.f64 (*.f64 (*.f64 x.im (*.f64 x.im y.re)) (*.f64 x.im (*.f64 y.re y.re))) (*.f64 (*.f64 x.im (*.f64 x.im y.re)) (*.f64 x.im (*.f64 y.re y.re))))) (/.f64 #s(literal 1 binary64) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)))) (+.f64 (*.f64 (*.f64 x.re y.im) (*.f64 (*.f64 x.re (*.f64 y.im y.im)) (*.f64 x.re (*.f64 x.re y.im)))) (*.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))))))) |
(/.f64 (*.f64 (-.f64 (*.f64 (*.f64 x.re y.im) (*.f64 (*.f64 x.re (*.f64 y.im y.im)) (*.f64 x.re (*.f64 x.re y.im)))) (*.f64 (*.f64 x.im y.re) (*.f64 (*.f64 x.im (*.f64 x.im y.re)) (*.f64 x.im (*.f64 y.re y.re))))) (/.f64 #s(literal 1 binary64) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)))) (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))))) |
(pow.f64 (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))) #s(literal -1 binary64)) |
(pow.f64 (/.f64 (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))) #s(literal 1 binary64)) #s(literal -1 binary64)) |
(pow.f64 (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (-.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))))) #s(literal -1 binary64)) |
(*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) (*.f64 (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) (/.f64 #s(literal 1 binary64) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))))) |
(*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) (/.f64 (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)))) |
(*.f64 (+.f64 (*.f64 (*.f64 x.re (*.f64 y.im y.im)) (*.f64 x.re (*.f64 x.re y.im))) (*.f64 (*.f64 x.im (*.f64 x.im y.re)) (*.f64 x.im (*.f64 y.re y.re)))) (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 x.im (*.f64 y.re (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im))))))) |
(*.f64 (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 x.im (*.f64 y.re (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im))))) (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 x.im (*.f64 y.re (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)))))))) |
(*.f64 (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 x.im (*.f64 y.re (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im))))) (/.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 x.im (*.f64 y.re (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im))))))) |
(*.f64 (-.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re)))) (/.f64 #s(literal 1 binary64) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)))) |
(*.f64 (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 (*.f64 x.re (*.f64 y.im y.im)) (*.f64 x.re (*.f64 x.re y.im))) (*.f64 (*.f64 x.im (*.f64 x.im y.re)) (*.f64 x.im (*.f64 y.re y.re))))) (/.f64 #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 x.im (*.f64 y.re (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)))))))) |
(*.f64 (-.f64 #s(literal 0 binary64) (-.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))))) (/.f64 #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))))) |
(*.f64 #s(literal 1 binary64) (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))) |
(*.f64 (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 x.im (*.f64 y.re (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)))))) (+.f64 (*.f64 (*.f64 x.re (*.f64 y.im y.im)) (*.f64 x.re (*.f64 x.re y.im))) (*.f64 (*.f64 x.im (*.f64 x.im y.re)) (*.f64 x.im (*.f64 y.re y.re))))) |
(*.f64 (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 x.im (*.f64 y.re (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)))))) (pow.f64 (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 (*.f64 x.re (*.f64 y.im y.im)) (*.f64 x.re (*.f64 x.re y.im))) (*.f64 (*.f64 x.im (*.f64 x.im y.re)) (*.f64 x.im (*.f64 y.re y.re))))) #s(literal -1 binary64))) |
(*.f64 (/.f64 #s(literal 1 binary64) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))) (-.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))))) |
(*.f64 (/.f64 #s(literal 1 binary64) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))) (pow.f64 (/.f64 #s(literal 1 binary64) (-.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))))) #s(literal -1 binary64))) |
(*.f64 (-.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im)))) (/.f64 #s(literal 1 binary64) (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)))) |
(*.f64 (/.f64 (-.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re)))) (-.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))))) (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))) |
(*.f64 (/.f64 (+.f64 (*.f64 (*.f64 x.re (*.f64 y.im y.im)) (*.f64 x.re (*.f64 x.re y.im))) (*.f64 (*.f64 x.im (*.f64 x.im y.re)) (*.f64 x.im (*.f64 y.re y.re)))) (+.f64 (*.f64 (*.f64 x.re y.im) (*.f64 (*.f64 (*.f64 x.re (*.f64 y.im y.im)) (*.f64 x.re (*.f64 x.re y.im))) (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))))) (*.f64 (*.f64 (*.f64 x.im (*.f64 x.im y.re)) (*.f64 x.im (*.f64 y.re y.re))) (*.f64 (*.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im))) (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)))))) (+.f64 (*.f64 (*.f64 x.re y.im) (*.f64 (*.f64 x.re (*.f64 y.im y.im)) (*.f64 x.re (*.f64 x.re y.im)))) (*.f64 (*.f64 x.im (*.f64 y.re (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)))) (-.f64 (*.f64 x.im (*.f64 y.re (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)))) (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))))))) |
(*.f64 (/.f64 (+.f64 (*.f64 (*.f64 x.re (*.f64 y.im y.im)) (*.f64 x.re (*.f64 x.re y.im))) (*.f64 (*.f64 x.im (*.f64 x.im y.re)) (*.f64 x.im (*.f64 y.re y.re)))) (-.f64 (*.f64 (*.f64 x.re y.im) (*.f64 (*.f64 x.re (*.f64 y.im y.im)) (*.f64 x.re (*.f64 x.re y.im)))) (*.f64 (*.f64 x.im y.re) (*.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (*.f64 x.im (*.f64 y.re (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)))))))) (-.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 x.im (*.f64 y.re (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)))))) |
(*.f64 (/.f64 (-.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re)))) (-.f64 (*.f64 (*.f64 x.re (*.f64 y.im y.im)) (*.f64 x.re (*.f64 x.re y.im))) (*.f64 (*.f64 x.im (*.f64 x.im y.re)) (*.f64 x.im (*.f64 y.re y.re))))) (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 (*.f64 x.im y.re) (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))))) |
(*.f64 (pow.f64 (/.f64 (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) (-.f64 (*.f64 (*.f64 x.re y.im) (*.f64 (*.f64 (*.f64 x.re (*.f64 y.im y.im)) (*.f64 x.re (*.f64 x.re y.im))) (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))))) (*.f64 (*.f64 (*.f64 x.im (*.f64 x.im y.re)) (*.f64 x.im (*.f64 y.re y.re))) (*.f64 (*.f64 x.im (*.f64 x.im y.re)) (*.f64 x.im (*.f64 y.re y.re)))))) #s(literal -1 binary64)) (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 (*.f64 x.re y.im) (*.f64 (*.f64 x.re (*.f64 y.im y.im)) (*.f64 x.re (*.f64 x.re y.im)))) (*.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re)))))))) |
(*.f64 (pow.f64 (/.f64 (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) (-.f64 (*.f64 (*.f64 x.re y.im) (*.f64 (*.f64 x.re (*.f64 y.im y.im)) (*.f64 x.re (*.f64 x.re y.im)))) (*.f64 (*.f64 x.im y.re) (*.f64 (*.f64 x.im (*.f64 x.im y.re)) (*.f64 x.im (*.f64 y.re y.re)))))) #s(literal -1 binary64)) (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re)))))) |
(*.f64 (pow.f64 (/.f64 (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 x.im (*.f64 y.re (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im))))) (+.f64 (*.f64 (*.f64 (*.f64 (*.f64 x.re (*.f64 y.im y.im)) (*.f64 x.re (*.f64 x.re y.im))) (*.f64 y.im (*.f64 y.im y.im))) (*.f64 (*.f64 (*.f64 x.re (*.f64 y.im y.im)) (*.f64 x.re (*.f64 x.re y.im))) (*.f64 x.re (*.f64 x.re x.re)))) (*.f64 (*.f64 (*.f64 (*.f64 x.im (*.f64 x.im y.re)) (*.f64 x.im (*.f64 y.re y.re))) (*.f64 x.im (*.f64 x.im x.im))) (*.f64 (*.f64 (*.f64 x.im (*.f64 x.im y.re)) (*.f64 x.im (*.f64 y.re y.re))) (*.f64 y.re (*.f64 y.re y.re)))))) #s(literal -1 binary64)) (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 (*.f64 x.re y.im) (*.f64 (*.f64 (*.f64 x.re (*.f64 y.im y.im)) (*.f64 x.re (*.f64 x.re y.im))) (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))))) (*.f64 (*.f64 (*.f64 x.im (*.f64 x.im y.re)) (*.f64 x.im (*.f64 y.re y.re))) (-.f64 (*.f64 (*.f64 x.im (*.f64 x.im y.re)) (*.f64 x.im (*.f64 y.re y.re))) (*.f64 (*.f64 x.re (*.f64 y.im y.im)) (*.f64 x.re (*.f64 x.re y.im)))))))) |
(*.f64 (pow.f64 (/.f64 (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 x.im (*.f64 y.re (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im))))) (-.f64 (*.f64 (*.f64 x.re y.im) (*.f64 (*.f64 (*.f64 x.re (*.f64 y.im y.im)) (*.f64 x.re (*.f64 x.re y.im))) (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))))) (*.f64 (*.f64 (*.f64 x.im (*.f64 x.im y.re)) (*.f64 x.im (*.f64 y.re y.re))) (*.f64 (*.f64 x.im (*.f64 x.im y.re)) (*.f64 x.im (*.f64 y.re y.re)))))) #s(literal -1 binary64)) (/.f64 #s(literal 1 binary64) (-.f64 (*.f64 (*.f64 x.re (*.f64 y.im y.im)) (*.f64 x.re (*.f64 x.re y.im))) (*.f64 (*.f64 x.im (*.f64 x.im y.re)) (*.f64 x.im (*.f64 y.re y.re)))))) |
(exp.f64 (log.f64 (*.f64 x.re y.im))) |
(exp.f64 (*.f64 (log.f64 (*.f64 x.re y.im)) #s(literal 1 binary64))) |
(pow.f64 (*.f64 x.re y.im) #s(literal 1 binary64)) |
(*.f64 x.re y.im) |
(*.f64 y.im x.re) |
(*.f64 (pow.f64 x.re #s(literal 1 binary64)) (pow.f64 y.im #s(literal 1 binary64))) |
(*.f64 (pow.f64 y.im #s(literal 1 binary64)) (pow.f64 x.re #s(literal 1 binary64))) |
(*.f64 (exp.f64 (log.f64 x.re)) (exp.f64 (log.f64 y.im))) |
(*.f64 (exp.f64 (log.f64 y.im)) (exp.f64 (log.f64 x.re))) |
(exp.f64 (log.f64 (*.f64 x.im y.re))) |
(exp.f64 (*.f64 (log.f64 (*.f64 x.im y.re)) #s(literal 1 binary64))) |
(pow.f64 (*.f64 x.im y.re) #s(literal 1 binary64)) |
(*.f64 x.im y.re) |
(*.f64 y.re x.im) |
(*.f64 (pow.f64 x.im #s(literal 1 binary64)) (pow.f64 y.re #s(literal 1 binary64))) |
(*.f64 (pow.f64 y.re #s(literal 1 binary64)) (pow.f64 x.im #s(literal 1 binary64))) |
(*.f64 (exp.f64 (log.f64 x.im)) (exp.f64 (log.f64 y.re))) |
(*.f64 (exp.f64 (log.f64 y.re)) (exp.f64 (log.f64 x.im))) |
| 1× | egg-herbie |
| 2690× | *-lowering-*.f32 |
| 2690× | *-lowering-*.f64 |
| 1656× | sum4-define |
| 1032× | distribute-lft-neg-in |
| 832× | distribute-rgt-neg-in |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 40 | 396 |
| 1 | 154 | 396 |
| 2 | 524 | 396 |
| 3 | 1542 | 396 |
| 4 | 5192 | 396 |
| 0 | 8088 | 396 |
| 1× | iter limit |
| 1× | node limit |
| Inputs |
|---|
(* x.im y.re) |
(+ (* x.im y.re) (* x.re y.im)) |
(+ (* x.im y.re) (* x.re y.im)) |
(+ (* x.im y.re) (* x.re y.im)) |
(* x.re y.im) |
(* x.re (+ y.im (/ (* x.im y.re) x.re))) |
(* x.re (+ y.im (/ (* x.im y.re) x.re))) |
(* x.re (+ y.im (/ (* x.im y.re) x.re))) |
(* x.re y.im) |
(* -1 (* x.re (+ (* -1 y.im) (* -1 (/ (* x.im y.re) x.re))))) |
(* -1 (* x.re (+ (* -1 y.im) (* -1 (/ (* x.im y.re) x.re))))) |
(* -1 (* x.re (+ (* -1 y.im) (* -1 (/ (* x.im y.re) x.re))))) |
(* x.im y.re) |
(+ (* x.im y.re) (* x.re y.im)) |
(+ (* x.im y.re) (* x.re y.im)) |
(+ (* x.im y.re) (* x.re y.im)) |
(* x.re y.im) |
(* y.im (+ x.re (/ (* x.im y.re) y.im))) |
(* y.im (+ x.re (/ (* x.im y.re) y.im))) |
(* y.im (+ x.re (/ (* x.im y.re) y.im))) |
(* x.re y.im) |
(* -1 (* y.im (+ (* -1 x.re) (* -1 (/ (* x.im y.re) y.im))))) |
(* -1 (* y.im (+ (* -1 x.re) (* -1 (/ (* x.im y.re) y.im))))) |
(* -1 (* y.im (+ (* -1 x.re) (* -1 (/ (* x.im y.re) y.im))))) |
(* x.re y.im) |
(+ (* x.im y.re) (* x.re y.im)) |
(+ (* x.im y.re) (* x.re y.im)) |
(+ (* x.im y.re) (* x.re y.im)) |
(* x.im y.re) |
(* x.im (+ y.re (/ (* x.re y.im) x.im))) |
(* x.im (+ y.re (/ (* x.re y.im) x.im))) |
(* x.im (+ y.re (/ (* x.re y.im) x.im))) |
(* x.im y.re) |
(* -1 (* x.im (+ (* -1 y.re) (* -1 (/ (* x.re y.im) x.im))))) |
(* -1 (* x.im (+ (* -1 y.re) (* -1 (/ (* x.re y.im) x.im))))) |
(* -1 (* x.im (+ (* -1 y.re) (* -1 (/ (* x.re y.im) x.im))))) |
(* x.re y.im) |
(+ (* x.im y.re) (* x.re y.im)) |
(+ (* x.im y.re) (* x.re y.im)) |
(+ (* x.im y.re) (* x.re y.im)) |
(* x.im y.re) |
(* y.re (+ x.im (/ (* x.re y.im) y.re))) |
(* y.re (+ x.im (/ (* x.re y.im) y.re))) |
(* y.re (+ x.im (/ (* x.re y.im) y.re))) |
(* x.im y.re) |
(* -1 (* y.re (+ (* -1 x.im) (* -1 (/ (* x.re y.im) y.re))))) |
(* -1 (* y.re (+ (* -1 x.im) (* -1 (/ (* x.re y.im) y.re))))) |
(* -1 (* y.re (+ (* -1 x.im) (* -1 (/ (* x.re y.im) y.re))))) |
(* x.re y.im) |
(* x.re y.im) |
(* x.re y.im) |
(* x.re y.im) |
(* x.re y.im) |
(* x.re y.im) |
(* x.re y.im) |
(* x.re y.im) |
(* x.re y.im) |
(* x.re y.im) |
(* x.re y.im) |
(* x.re y.im) |
(* x.re y.im) |
(* x.re y.im) |
(* x.re y.im) |
(* x.re y.im) |
(* x.re y.im) |
(* x.re y.im) |
(* x.re y.im) |
(* x.re y.im) |
(* x.re y.im) |
(* x.re y.im) |
(* x.re y.im) |
(* x.re y.im) |
(* x.im y.re) |
(* x.im y.re) |
(* x.im y.re) |
(* x.im y.re) |
(* x.im y.re) |
(* x.im y.re) |
(* x.im y.re) |
(* x.im y.re) |
(* x.im y.re) |
(* x.im y.re) |
(* x.im y.re) |
(* x.im y.re) |
(* x.im y.re) |
(* x.im y.re) |
(* x.im y.re) |
(* x.im y.re) |
(* x.im y.re) |
(* x.im y.re) |
(* x.im y.re) |
(* x.im y.re) |
(* x.im y.re) |
(* x.im y.re) |
(* x.im y.re) |
(* x.im y.re) |
| Outputs |
|---|
(* x.im y.re) |
(*.f64 x.im y.re) |
(+ (* x.im y.re) (* x.re y.im)) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(+ (* x.im y.re) (* x.re y.im)) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(+ (* x.im y.re) (* x.re y.im)) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(* x.re (+ y.im (/ (* x.im y.re) x.re))) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(* x.re (+ y.im (/ (* x.im y.re) x.re))) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(* x.re (+ y.im (/ (* x.im y.re) x.re))) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(* -1 (* x.re (+ (* -1 y.im) (* -1 (/ (* x.im y.re) x.re))))) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(* -1 (* x.re (+ (* -1 y.im) (* -1 (/ (* x.im y.re) x.re))))) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(* -1 (* x.re (+ (* -1 y.im) (* -1 (/ (* x.im y.re) x.re))))) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(* x.im y.re) |
(*.f64 x.im y.re) |
(+ (* x.im y.re) (* x.re y.im)) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(+ (* x.im y.re) (* x.re y.im)) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(+ (* x.im y.re) (* x.re y.im)) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(* y.im (+ x.re (/ (* x.im y.re) y.im))) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(* y.im (+ x.re (/ (* x.im y.re) y.im))) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(* y.im (+ x.re (/ (* x.im y.re) y.im))) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(* -1 (* y.im (+ (* -1 x.re) (* -1 (/ (* x.im y.re) y.im))))) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(* -1 (* y.im (+ (* -1 x.re) (* -1 (/ (* x.im y.re) y.im))))) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(* -1 (* y.im (+ (* -1 x.re) (* -1 (/ (* x.im y.re) y.im))))) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(+ (* x.im y.re) (* x.re y.im)) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(+ (* x.im y.re) (* x.re y.im)) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(+ (* x.im y.re) (* x.re y.im)) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(* x.im y.re) |
(*.f64 x.im y.re) |
(* x.im (+ y.re (/ (* x.re y.im) x.im))) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(* x.im (+ y.re (/ (* x.re y.im) x.im))) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(* x.im (+ y.re (/ (* x.re y.im) x.im))) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(* x.im y.re) |
(*.f64 x.im y.re) |
(* -1 (* x.im (+ (* -1 y.re) (* -1 (/ (* x.re y.im) x.im))))) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(* -1 (* x.im (+ (* -1 y.re) (* -1 (/ (* x.re y.im) x.im))))) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(* -1 (* x.im (+ (* -1 y.re) (* -1 (/ (* x.re y.im) x.im))))) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(+ (* x.im y.re) (* x.re y.im)) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(+ (* x.im y.re) (* x.re y.im)) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(+ (* x.im y.re) (* x.re y.im)) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(* x.im y.re) |
(*.f64 x.im y.re) |
(* y.re (+ x.im (/ (* x.re y.im) y.re))) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(* y.re (+ x.im (/ (* x.re y.im) y.re))) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(* y.re (+ x.im (/ (* x.re y.im) y.re))) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(* x.im y.re) |
(*.f64 x.im y.re) |
(* -1 (* y.re (+ (* -1 x.im) (* -1 (/ (* x.re y.im) y.re))))) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(* -1 (* y.re (+ (* -1 x.im) (* -1 (/ (* x.re y.im) y.re))))) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(* -1 (* y.re (+ (* -1 x.im) (* -1 (/ (* x.re y.im) y.re))))) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(* x.im y.re) |
(*.f64 x.im y.re) |
(* x.im y.re) |
(*.f64 x.im y.re) |
(* x.im y.re) |
(*.f64 x.im y.re) |
(* x.im y.re) |
(*.f64 x.im y.re) |
(* x.im y.re) |
(*.f64 x.im y.re) |
(* x.im y.re) |
(*.f64 x.im y.re) |
(* x.im y.re) |
(*.f64 x.im y.re) |
(* x.im y.re) |
(*.f64 x.im y.re) |
(* x.im y.re) |
(*.f64 x.im y.re) |
(* x.im y.re) |
(*.f64 x.im y.re) |
(* x.im y.re) |
(*.f64 x.im y.re) |
(* x.im y.re) |
(*.f64 x.im y.re) |
(* x.im y.re) |
(*.f64 x.im y.re) |
(* x.im y.re) |
(*.f64 x.im y.re) |
(* x.im y.re) |
(*.f64 x.im y.re) |
(* x.im y.re) |
(*.f64 x.im y.re) |
(* x.im y.re) |
(*.f64 x.im y.re) |
(* x.im y.re) |
(*.f64 x.im y.re) |
(* x.im y.re) |
(*.f64 x.im y.re) |
(* x.im y.re) |
(*.f64 x.im y.re) |
(* x.im y.re) |
(*.f64 x.im y.re) |
(* x.im y.re) |
(*.f64 x.im y.re) |
(* x.im y.re) |
(*.f64 x.im y.re) |
(* x.im y.re) |
(*.f64 x.im y.re) |
Compiled 4595 to 286 computations (93.8% saved)
4 alts after pruning (3 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 188 | 3 | 191 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 0 | 0 |
| Total | 188 | 4 | 192 |
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 99.6% | (fma.f64 y.im x.re (*.f64 x.im y.re)) |
| ✓ | 99.6% | (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) |
| ▶ | 49.7% | (*.f64 x.re y.im) |
| ▶ | 53.3% | (*.f64 x.im y.re) |
Compiled 35 to 23 computations (34.3% saved)
| 1× | egg-herbie |
Found 4 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| ✓ | cost-diff | 0 | (*.f64 x.im y.re) |
| ✓ | cost-diff | 6272 | (fma.f64 y.im x.re (*.f64 x.im y.re)) |
| ✓ | cost-diff | 0 | (*.f64 x.re y.im) |
| ✓ | cost-diff | 0 | (*.f64 x.im y.re) |
| 8× | fma-lowering-fma.f32 |
| 8× | fma-define |
| 8× | *-lowering-*.f32 |
| 8× | *-lowering-*.f64 |
| 8× | fma-lowering-fma.f64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 23 |
| 1 | 11 | 23 |
| 2 | 14 | 23 |
| 0 | 14 | 23 |
| 1× | iter limit |
| 1× | saturated |
| Inputs |
|---|
(* x.im y.re) |
x.im |
y.re |
(* x.re y.im) |
x.re |
y.im |
(+ (* y.im x.re) (* x.im y.re)) |
y.im |
x.re |
(* x.im y.re) |
x.im |
y.re |
| Outputs |
|---|
(* x.im y.re) |
(*.f64 x.im y.re) |
x.im |
y.re |
(* x.re y.im) |
(*.f64 x.re y.im) |
x.re |
y.im |
(+ (* y.im x.re) (* x.im y.re)) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
y.im |
x.re |
(* x.im y.re) |
(*.f64 x.im y.re) |
x.im |
y.re |
Found 4 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| ✓ | accuracy | 100.0% | (*.f64 x.im y.re) |
| ✓ | accuracy | 99.6% | (fma.f64 y.im x.re (*.f64 x.im y.re)) |
| ✓ | accuracy | 100.0% | (*.f64 x.re y.im) |
| ✓ | accuracy | 100.0% | (*.f64 x.im y.re) |
| 35.0ms | 256× | 0 | valid |
Compiled 28 to 8 computations (71.4% saved)
ival-mult: 7.0ms (50.5% of total)compiled-spec: 4.0ms (28.9% of total)ival-add: 2.0ms (14.4% of total)const: 0.0ms (0% of total)backward-pass: 0.0ms (0% of total)| Inputs |
|---|
#<alt (* x.im y.re)> |
#<alt (* x.re y.im)> |
#<alt (+ (* y.im x.re) (* x.im y.re))> |
| Outputs |
|---|
#<alt (* x.im y.re)> |
#<alt (* x.im y.re)> |
#<alt (* x.im y.re)> |
#<alt (* x.im y.re)> |
#<alt (* x.im y.re)> |
#<alt (* x.im y.re)> |
#<alt (* x.im y.re)> |
#<alt (* x.im y.re)> |
#<alt (* x.im y.re)> |
#<alt (* x.im y.re)> |
#<alt (* x.im y.re)> |
#<alt (* x.im y.re)> |
#<alt (* x.im y.re)> |
#<alt (* x.im y.re)> |
#<alt (* x.im y.re)> |
#<alt (* x.im y.re)> |
#<alt (* x.im y.re)> |
#<alt (* x.im y.re)> |
#<alt (* x.im y.re)> |
#<alt (* x.im y.re)> |
#<alt (* x.im y.re)> |
#<alt (* x.im y.re)> |
#<alt (* x.im y.re)> |
#<alt (* x.im y.re)> |
#<alt (* x.re y.im)> |
#<alt (* x.re y.im)> |
#<alt (* x.re y.im)> |
#<alt (* x.re y.im)> |
#<alt (* x.re y.im)> |
#<alt (* x.re y.im)> |
#<alt (* x.re y.im)> |
#<alt (* x.re y.im)> |
#<alt (* x.re y.im)> |
#<alt (* x.re y.im)> |
#<alt (* x.re y.im)> |
#<alt (* x.re y.im)> |
#<alt (* x.re y.im)> |
#<alt (* x.re y.im)> |
#<alt (* x.re y.im)> |
#<alt (* x.re y.im)> |
#<alt (* x.re y.im)> |
#<alt (* x.re y.im)> |
#<alt (* x.re y.im)> |
#<alt (* x.re y.im)> |
#<alt (* x.re y.im)> |
#<alt (* x.re y.im)> |
#<alt (* x.re y.im)> |
#<alt (* x.re y.im)> |
#<alt (* x.im y.re)> |
#<alt (+ (* x.im y.re) (* x.re y.im))> |
#<alt (+ (* x.im y.re) (* x.re y.im))> |
#<alt (+ (* x.im y.re) (* x.re y.im))> |
#<alt (* x.re y.im)> |
#<alt (* y.im (+ x.re (/ (* x.im y.re) y.im)))> |
#<alt (* y.im (+ x.re (/ (* x.im y.re) y.im)))> |
#<alt (* y.im (+ x.re (/ (* x.im y.re) y.im)))> |
#<alt (* x.re y.im)> |
#<alt (* -1 (* y.im (+ (* -1 x.re) (* -1 (/ (* x.im y.re) y.im)))))> |
#<alt (* -1 (* y.im (+ (* -1 x.re) (* -1 (/ (* x.im y.re) y.im)))))> |
#<alt (* -1 (* y.im (+ (* -1 x.re) (* -1 (/ (* x.im y.re) y.im)))))> |
#<alt (* x.im y.re)> |
#<alt (+ (* x.im y.re) (* x.re y.im))> |
#<alt (+ (* x.im y.re) (* x.re y.im))> |
#<alt (+ (* x.im y.re) (* x.re y.im))> |
#<alt (* x.re y.im)> |
#<alt (* x.re (+ y.im (/ (* x.im y.re) x.re)))> |
#<alt (* x.re (+ y.im (/ (* x.im y.re) x.re)))> |
#<alt (* x.re (+ y.im (/ (* x.im y.re) x.re)))> |
#<alt (* x.re y.im)> |
#<alt (* -1 (* x.re (+ (* -1 y.im) (* -1 (/ (* x.im y.re) x.re)))))> |
#<alt (* -1 (* x.re (+ (* -1 y.im) (* -1 (/ (* x.im y.re) x.re)))))> |
#<alt (* -1 (* x.re (+ (* -1 y.im) (* -1 (/ (* x.im y.re) x.re)))))> |
#<alt (* x.re y.im)> |
#<alt (+ (* x.im y.re) (* x.re y.im))> |
#<alt (+ (* x.im y.re) (* x.re y.im))> |
#<alt (+ (* x.im y.re) (* x.re y.im))> |
#<alt (* x.im y.re)> |
#<alt (* x.im (+ y.re (/ (* x.re y.im) x.im)))> |
#<alt (* x.im (+ y.re (/ (* x.re y.im) x.im)))> |
#<alt (* x.im (+ y.re (/ (* x.re y.im) x.im)))> |
#<alt (* x.im y.re)> |
#<alt (* -1 (* x.im (+ (* -1 y.re) (* -1 (/ (* x.re y.im) x.im)))))> |
#<alt (* -1 (* x.im (+ (* -1 y.re) (* -1 (/ (* x.re y.im) x.im)))))> |
#<alt (* -1 (* x.im (+ (* -1 y.re) (* -1 (/ (* x.re y.im) x.im)))))> |
#<alt (* x.re y.im)> |
#<alt (+ (* x.im y.re) (* x.re y.im))> |
#<alt (+ (* x.im y.re) (* x.re y.im))> |
#<alt (+ (* x.im y.re) (* x.re y.im))> |
#<alt (* x.im y.re)> |
#<alt (* y.re (+ x.im (/ (* x.re y.im) y.re)))> |
#<alt (* y.re (+ x.im (/ (* x.re y.im) y.re)))> |
#<alt (* y.re (+ x.im (/ (* x.re y.im) y.re)))> |
#<alt (* x.im y.re)> |
#<alt (* -1 (* y.re (+ (* -1 x.im) (* -1 (/ (* x.re y.im) y.re)))))> |
#<alt (* -1 (* y.re (+ (* -1 x.im) (* -1 (/ (* x.re y.im) y.re)))))> |
#<alt (* -1 (* y.re (+ (* -1 x.im) (* -1 (/ (* x.re y.im) y.re)))))> |
24 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | y.im | @ | -inf | (+ (* y.im x.re) (* x.im y.re)) |
| 0.0ms | y.im | @ | inf | (+ (* y.im x.re) (* x.im y.re)) |
| 0.0ms | x.re | @ | -inf | (+ (* y.im x.re) (* x.im y.re)) |
| 0.0ms | x.re | @ | inf | (+ (* y.im x.re) (* x.im y.re)) |
| 0.0ms | x.re | @ | inf | (* x.re y.im) |
| 1× | batch-egg-rewrite |
| 2704× | *-lowering-*.f32 |
| 2704× | *-lowering-*.f64 |
| 1858× | sum5-define |
| 1440× | fmsub-define |
| 1440× | fmm-def |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 12 |
| 1 | 24 | 12 |
| 2 | 210 | 12 |
| 3 | 2685 | 12 |
| 0 | 8103 | 12 |
| 1× | iter limit |
| 1× | node limit |
| Inputs |
|---|
(* x.im y.re) |
(* x.re y.im) |
(+ (* y.im x.re) (* x.im y.re)) |
| Outputs |
|---|
(exp.f64 (log.f64 (*.f64 x.im y.re))) |
(exp.f64 (*.f64 (log.f64 (*.f64 x.im y.re)) #s(literal 1 binary64))) |
(pow.f64 (*.f64 x.im y.re) #s(literal 1 binary64)) |
(*.f64 x.im y.re) |
(*.f64 y.re x.im) |
(*.f64 (pow.f64 x.im #s(literal 1 binary64)) (pow.f64 y.re #s(literal 1 binary64))) |
(*.f64 (pow.f64 y.re #s(literal 1 binary64)) (pow.f64 x.im #s(literal 1 binary64))) |
(*.f64 (exp.f64 (log.f64 x.im)) (exp.f64 (log.f64 y.re))) |
(*.f64 (exp.f64 (log.f64 y.re)) (exp.f64 (log.f64 x.im))) |
(exp.f64 (log.f64 (*.f64 x.re y.im))) |
(exp.f64 (*.f64 (log.f64 (*.f64 x.re y.im)) #s(literal 1 binary64))) |
(pow.f64 (*.f64 x.re y.im) #s(literal 1 binary64)) |
(*.f64 x.re y.im) |
(*.f64 y.im x.re) |
(*.f64 (pow.f64 x.re #s(literal 1 binary64)) (pow.f64 y.im #s(literal 1 binary64))) |
(*.f64 (pow.f64 y.im #s(literal 1 binary64)) (pow.f64 x.re #s(literal 1 binary64))) |
(*.f64 (exp.f64 (log.f64 x.re)) (exp.f64 (log.f64 y.im))) |
(*.f64 (exp.f64 (log.f64 y.im)) (exp.f64 (log.f64 x.re))) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) |
(+.f64 (/.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))) (neg.f64 (/.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))))) |
(exp.f64 (*.f64 (log.f64 (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)))) #s(literal -1 binary64))) |
(-.f64 (/.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))) (/.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)))) |
(-.f64 (/.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im))) (/.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)))) |
(fma.f64 x.im y.re (*.f64 x.re y.im)) |
(fma.f64 y.re x.im (*.f64 x.re y.im)) |
(fma.f64 x.re y.im (*.f64 x.im y.re)) |
(fma.f64 x.re (/.f64 (*.f64 x.re (*.f64 y.im y.im)) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))) (neg.f64 (/.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))))) |
(fma.f64 y.im x.re (*.f64 x.im y.re)) |
(fma.f64 y.im (/.f64 (*.f64 x.re (*.f64 x.re y.im)) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))) (neg.f64 (/.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))))) |
(fma.f64 (*.f64 x.re y.im) (/.f64 (*.f64 x.re y.im) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))) (neg.f64 (/.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))))) |
(fma.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (/.f64 #s(literal 1 binary64) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))) (neg.f64 (/.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))))) |
(fma.f64 (*.f64 x.re x.re) (/.f64 (*.f64 y.im y.im) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))) (neg.f64 (/.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))))) |
(fma.f64 (*.f64 y.im y.im) (/.f64 (*.f64 x.re x.re) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))) (neg.f64 (/.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))))) |
(fma.f64 (*.f64 x.re (*.f64 y.im y.im)) (/.f64 x.re (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))) (neg.f64 (/.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))))) |
(fma.f64 (*.f64 x.re (*.f64 x.re y.im)) (/.f64 y.im (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))) (neg.f64 (/.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))))) |
(fma.f64 (/.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 (+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)))) (+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (neg.f64 (/.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))))) |
(fma.f64 (/.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (-.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im))) (*.f64 x.im (*.f64 y.re (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))))))) (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 (*.f64 x.im y.re) (+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)))) (neg.f64 (/.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))))) |
(neg.f64 (/.f64 (+.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im))) (*.f64 x.im (*.f64 y.re (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re)))))) (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 (*.f64 x.im y.re) (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im))))))) |
(neg.f64 (/.f64 (*.f64 (+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))) (-.f64 #s(literal 0 binary64) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))))) |
(neg.f64 (/.f64 (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im))) (*.f64 x.im (*.f64 y.re (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))))))) (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 (*.f64 x.im y.re) (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)))))) |
(neg.f64 (/.f64 (-.f64 #s(literal 0 binary64) (*.f64 (+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)))) |
(/.f64 (+.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im))) (*.f64 x.im (*.f64 y.re (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re)))))) (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 (*.f64 x.im y.re) (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im))))) |
(/.f64 (*.f64 (+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))) |
(/.f64 (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im))) (*.f64 x.im (*.f64 y.re (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))))))) (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 (*.f64 x.im y.re) (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)))))) |
(/.f64 (-.f64 #s(literal 0 binary64) (*.f64 (+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)))) (-.f64 #s(literal 0 binary64) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)))) |
(/.f64 (+.f64 (*.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im))) (*.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im))) (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im))))) (*.f64 (*.f64 x.im (*.f64 y.re (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))))) (*.f64 (*.f64 x.im (*.f64 y.re (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))))) (*.f64 x.im (*.f64 y.re (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re)))))))) (*.f64 (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 (*.f64 x.im y.re) (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)))) (+.f64 (*.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im))) (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im)))) (*.f64 (*.f64 x.im (*.f64 y.re (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))))) (-.f64 (*.f64 x.im (*.f64 y.re (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))))) (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im)))))))) |
(/.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)))) |
(/.f64 #s(literal 1 binary64) (/.f64 (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im))) #s(literal 1 binary64))) |
(/.f64 #s(literal 1 binary64) (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (-.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im)))))) |
(/.f64 (-.f64 (*.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im))) (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im)))) (*.f64 (*.f64 x.im (*.f64 y.re (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))))) (*.f64 x.im (*.f64 y.re (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))))))) (*.f64 (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 (*.f64 x.im y.re) (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)))) (-.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im))) (*.f64 x.im (*.f64 y.re (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re)))))))) |
(/.f64 (-.f64 (*.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im))) (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im)))) (*.f64 (*.f64 x.im (*.f64 y.re (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))))) (*.f64 x.im (*.f64 y.re (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))))))) (*.f64 (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) (+.f64 (*.f64 (*.f64 x.re y.im) (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im)))) (*.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re)))))))) |
(/.f64 (-.f64 (*.f64 (*.f64 x.re y.im) (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im)))) (*.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))))) (*.f64 (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re)))))) |
(/.f64 (-.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im)))) (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im))) |
(/.f64 #s(literal -1 binary64) (neg.f64 (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im))))) |
(/.f64 (-.f64 (*.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))) (*.f64 (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))))) (*.f64 (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)))) |
(/.f64 (*.f64 (+.f64 (*.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im))) (*.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im))) (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im))))) (*.f64 (*.f64 x.im (*.f64 y.re (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))))) (*.f64 (*.f64 x.im (*.f64 y.re (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))))) (*.f64 x.im (*.f64 y.re (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re)))))))) #s(literal 1 binary64)) (*.f64 (+.f64 (*.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im))) (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im)))) (*.f64 (*.f64 x.im (*.f64 y.re (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))))) (-.f64 (*.f64 x.im (*.f64 y.re (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))))) (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im)))))) (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 (*.f64 x.im y.re) (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)))))) |
(/.f64 (*.f64 (-.f64 (*.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im))) (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im)))) (*.f64 (*.f64 x.im (*.f64 y.re (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))))) (*.f64 x.im (*.f64 y.re (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))))))) #s(literal 1 binary64)) (*.f64 (-.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im))) (*.f64 x.im (*.f64 y.re (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re)))))) (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 (*.f64 x.im y.re) (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)))))) |
(/.f64 (*.f64 (-.f64 (*.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im))) (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im)))) (*.f64 (*.f64 x.im (*.f64 y.re (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))))) (*.f64 x.im (*.f64 y.re (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))))))) #s(literal 1 binary64)) (*.f64 (+.f64 (*.f64 (*.f64 x.re y.im) (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im)))) (*.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re)))))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)))) |
(/.f64 (*.f64 (-.f64 (*.f64 (*.f64 x.re y.im) (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im)))) (*.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))))) #s(literal 1 binary64)) (*.f64 (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re)))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)))) |
(/.f64 (neg.f64 (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im))) (*.f64 x.im (*.f64 y.re (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re)))))))) (neg.f64 (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 (*.f64 x.im y.re) (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im))))))) |
(/.f64 (neg.f64 (-.f64 #s(literal 0 binary64) (*.f64 (+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))))) (neg.f64 (-.f64 #s(literal 0 binary64) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))))) |
(/.f64 (neg.f64 (-.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))))) (neg.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)))) |
(/.f64 (-.f64 (*.f64 (*.f64 (/.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))) (/.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)))) (/.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)))) (*.f64 (*.f64 (/.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))) (/.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)))) (/.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))))) (+.f64 (*.f64 (/.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))) (/.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)))) (+.f64 (*.f64 (/.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))) (/.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)))) (*.f64 (/.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))) (/.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))))))) |
(/.f64 (-.f64 (*.f64 (/.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))) (/.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)))) (*.f64 (/.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))) (/.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))))) (+.f64 (/.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))) (/.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))))) |
(/.f64 (*.f64 (+.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im))) (*.f64 x.im (*.f64 y.re (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re)))))) #s(literal 1 binary64)) (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 (*.f64 x.im y.re) (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im))))) |
(/.f64 (*.f64 (+.f64 (*.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im))) (*.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im))) (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im))))) (*.f64 (*.f64 x.im (*.f64 y.re (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))))) (*.f64 (*.f64 x.im (*.f64 y.re (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))))) (*.f64 x.im (*.f64 y.re (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re)))))))) (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 (*.f64 x.im y.re) (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)))))) (+.f64 (*.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im))) (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im)))) (*.f64 (*.f64 x.im (*.f64 y.re (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))))) (-.f64 (*.f64 x.im (*.f64 y.re (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))))) (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im))))))) |
(/.f64 (*.f64 (-.f64 (*.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im))) (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im)))) (*.f64 (*.f64 x.im (*.f64 y.re (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))))) (*.f64 x.im (*.f64 y.re (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))))))) (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 (*.f64 x.im y.re) (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)))))) (-.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im))) (*.f64 x.im (*.f64 y.re (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))))))) |
(/.f64 (*.f64 (-.f64 (*.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im))) (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im)))) (*.f64 (*.f64 x.im (*.f64 y.re (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))))) (*.f64 x.im (*.f64 y.re (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))))))) (/.f64 #s(literal 1 binary64) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)))) (+.f64 (*.f64 (*.f64 x.re y.im) (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im)))) (*.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))))))) |
(/.f64 (*.f64 (-.f64 (*.f64 (*.f64 x.re y.im) (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im)))) (*.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))))) (/.f64 #s(literal 1 binary64) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)))) (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))))) |
(pow.f64 (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im))) #s(literal -1 binary64)) |
(pow.f64 (/.f64 (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im))) #s(literal 1 binary64)) #s(literal -1 binary64)) |
(pow.f64 (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (-.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))))) #s(literal -1 binary64)) |
(*.f64 (+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (*.f64 (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) (/.f64 #s(literal 1 binary64) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))))) |
(*.f64 (+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (/.f64 (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)))) |
(*.f64 (+.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im))) (*.f64 x.im (*.f64 y.re (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re)))))) (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 (*.f64 x.im y.re) (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)))))) |
(*.f64 (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 (*.f64 x.im y.re) (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)))) (*.f64 (+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 (*.f64 x.im y.re) (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im))))))) |
(*.f64 (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 (*.f64 x.im y.re) (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)))) (/.f64 (+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 (*.f64 x.im y.re) (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)))))) |
(*.f64 (*.f64 (+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))) (/.f64 #s(literal 1 binary64) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)))) |
(*.f64 (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im))) (*.f64 x.im (*.f64 y.re (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))))))) (/.f64 #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 (*.f64 x.im y.re) (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im))))))) |
(*.f64 (-.f64 #s(literal 0 binary64) (*.f64 (+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)))) (/.f64 #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))))) |
(*.f64 #s(literal 1 binary64) (+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im))) |
(*.f64 (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 (*.f64 x.im y.re) (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im))))) (+.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im))) (*.f64 x.im (*.f64 y.re (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))))))) |
(*.f64 (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 (*.f64 x.im y.re) (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im))))) (pow.f64 (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im))) (*.f64 x.im (*.f64 y.re (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))))))) #s(literal -1 binary64))) |
(*.f64 (/.f64 #s(literal 1 binary64) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))) (*.f64 (+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)))) |
(*.f64 (/.f64 #s(literal 1 binary64) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))) (pow.f64 (/.f64 #s(literal 1 binary64) (*.f64 (+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)))) #s(literal -1 binary64))) |
(*.f64 (-.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im)))) (/.f64 #s(literal 1 binary64) (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)))) |
(*.f64 (/.f64 (*.f64 (+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))) (*.f64 (+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)))) (+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im))) |
(*.f64 (/.f64 (+.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im))) (*.f64 x.im (*.f64 y.re (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re)))))) (+.f64 (*.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im))) (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im)))) (*.f64 (*.f64 (*.f64 x.im y.re) (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im))) (*.f64 (*.f64 x.im y.re) (*.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (*.f64 (*.f64 x.im y.re) (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)))))))) (+.f64 (*.f64 (*.f64 x.re y.im) (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im)))) (*.f64 (*.f64 (*.f64 x.im y.re) (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im))) (-.f64 (*.f64 (*.f64 x.im y.re) (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im))) (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))))))) |
(*.f64 (/.f64 (+.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im))) (*.f64 x.im (*.f64 y.re (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re)))))) (-.f64 (*.f64 (*.f64 x.re y.im) (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im)))) (*.f64 (*.f64 x.im y.re) (*.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (*.f64 (*.f64 x.im y.re) (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im))))))) (-.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 (*.f64 x.im y.re) (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im))))) |
(*.f64 (/.f64 (*.f64 (+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))) (-.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im))) (*.f64 x.im (*.f64 y.re (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))))))) (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 (*.f64 x.im y.re) (+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im))))) |
(*.f64 (pow.f64 (/.f64 (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) (-.f64 (*.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im))) (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im)))) (*.f64 (*.f64 x.im (*.f64 y.re (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))))) (*.f64 x.im (*.f64 y.re (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re)))))))) #s(literal -1 binary64)) (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 (*.f64 x.re y.im) (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im)))) (*.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re)))))))) |
(*.f64 (pow.f64 (/.f64 (-.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) (-.f64 (*.f64 (*.f64 x.re y.im) (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im)))) (*.f64 (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))) (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re)))))) #s(literal -1 binary64)) (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re)))))) |
(*.f64 (pow.f64 (/.f64 (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 (*.f64 x.im y.re) (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)))) (+.f64 (*.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im))) (*.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im))) (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im))))) (*.f64 (*.f64 x.im (*.f64 y.re (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))))) (*.f64 (*.f64 x.im (*.f64 y.re (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))))) (*.f64 x.im (*.f64 y.re (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))))))))) #s(literal -1 binary64)) (/.f64 #s(literal 1 binary64) (+.f64 (*.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im))) (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im)))) (*.f64 (*.f64 x.im (*.f64 y.re (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))))) (-.f64 (*.f64 x.im (*.f64 y.re (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))))) (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im)))))))) |
(*.f64 (pow.f64 (/.f64 (+.f64 (*.f64 x.re (*.f64 x.re (*.f64 y.im y.im))) (*.f64 (*.f64 x.im y.re) (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)))) (-.f64 (*.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im))) (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im)))) (*.f64 (*.f64 x.im (*.f64 y.re (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re))))) (*.f64 x.im (*.f64 y.re (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re)))))))) #s(literal -1 binary64)) (/.f64 #s(literal 1 binary64) (-.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.re)) (*.f64 y.im (*.f64 y.im y.im))) (*.f64 x.im (*.f64 y.re (*.f64 x.im (*.f64 x.im (*.f64 y.re y.re)))))))) |
| 1× | egg-herbie |
| 2690× | *-lowering-*.f32 |
| 2690× | *-lowering-*.f64 |
| 1656× | sum4-define |
| 1024× | distribute-lft-neg-in |
| 834× | distribute-rgt-neg-in |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 40 | 396 |
| 1 | 154 | 396 |
| 2 | 524 | 396 |
| 3 | 1542 | 396 |
| 4 | 5187 | 396 |
| 0 | 8083 | 396 |
| 1× | iter limit |
| 1× | node limit |
| Inputs |
|---|
(* x.im y.re) |
(* x.im y.re) |
(* x.im y.re) |
(* x.im y.re) |
(* x.im y.re) |
(* x.im y.re) |
(* x.im y.re) |
(* x.im y.re) |
(* x.im y.re) |
(* x.im y.re) |
(* x.im y.re) |
(* x.im y.re) |
(* x.im y.re) |
(* x.im y.re) |
(* x.im y.re) |
(* x.im y.re) |
(* x.im y.re) |
(* x.im y.re) |
(* x.im y.re) |
(* x.im y.re) |
(* x.im y.re) |
(* x.im y.re) |
(* x.im y.re) |
(* x.im y.re) |
(* x.re y.im) |
(* x.re y.im) |
(* x.re y.im) |
(* x.re y.im) |
(* x.re y.im) |
(* x.re y.im) |
(* x.re y.im) |
(* x.re y.im) |
(* x.re y.im) |
(* x.re y.im) |
(* x.re y.im) |
(* x.re y.im) |
(* x.re y.im) |
(* x.re y.im) |
(* x.re y.im) |
(* x.re y.im) |
(* x.re y.im) |
(* x.re y.im) |
(* x.re y.im) |
(* x.re y.im) |
(* x.re y.im) |
(* x.re y.im) |
(* x.re y.im) |
(* x.re y.im) |
(* x.im y.re) |
(+ (* x.im y.re) (* x.re y.im)) |
(+ (* x.im y.re) (* x.re y.im)) |
(+ (* x.im y.re) (* x.re y.im)) |
(* x.re y.im) |
(* y.im (+ x.re (/ (* x.im y.re) y.im))) |
(* y.im (+ x.re (/ (* x.im y.re) y.im))) |
(* y.im (+ x.re (/ (* x.im y.re) y.im))) |
(* x.re y.im) |
(* -1 (* y.im (+ (* -1 x.re) (* -1 (/ (* x.im y.re) y.im))))) |
(* -1 (* y.im (+ (* -1 x.re) (* -1 (/ (* x.im y.re) y.im))))) |
(* -1 (* y.im (+ (* -1 x.re) (* -1 (/ (* x.im y.re) y.im))))) |
(* x.im y.re) |
(+ (* x.im y.re) (* x.re y.im)) |
(+ (* x.im y.re) (* x.re y.im)) |
(+ (* x.im y.re) (* x.re y.im)) |
(* x.re y.im) |
(* x.re (+ y.im (/ (* x.im y.re) x.re))) |
(* x.re (+ y.im (/ (* x.im y.re) x.re))) |
(* x.re (+ y.im (/ (* x.im y.re) x.re))) |
(* x.re y.im) |
(* -1 (* x.re (+ (* -1 y.im) (* -1 (/ (* x.im y.re) x.re))))) |
(* -1 (* x.re (+ (* -1 y.im) (* -1 (/ (* x.im y.re) x.re))))) |
(* -1 (* x.re (+ (* -1 y.im) (* -1 (/ (* x.im y.re) x.re))))) |
(* x.re y.im) |
(+ (* x.im y.re) (* x.re y.im)) |
(+ (* x.im y.re) (* x.re y.im)) |
(+ (* x.im y.re) (* x.re y.im)) |
(* x.im y.re) |
(* x.im (+ y.re (/ (* x.re y.im) x.im))) |
(* x.im (+ y.re (/ (* x.re y.im) x.im))) |
(* x.im (+ y.re (/ (* x.re y.im) x.im))) |
(* x.im y.re) |
(* -1 (* x.im (+ (* -1 y.re) (* -1 (/ (* x.re y.im) x.im))))) |
(* -1 (* x.im (+ (* -1 y.re) (* -1 (/ (* x.re y.im) x.im))))) |
(* -1 (* x.im (+ (* -1 y.re) (* -1 (/ (* x.re y.im) x.im))))) |
(* x.re y.im) |
(+ (* x.im y.re) (* x.re y.im)) |
(+ (* x.im y.re) (* x.re y.im)) |
(+ (* x.im y.re) (* x.re y.im)) |
(* x.im y.re) |
(* y.re (+ x.im (/ (* x.re y.im) y.re))) |
(* y.re (+ x.im (/ (* x.re y.im) y.re))) |
(* y.re (+ x.im (/ (* x.re y.im) y.re))) |
(* x.im y.re) |
(* -1 (* y.re (+ (* -1 x.im) (* -1 (/ (* x.re y.im) y.re))))) |
(* -1 (* y.re (+ (* -1 x.im) (* -1 (/ (* x.re y.im) y.re))))) |
(* -1 (* y.re (+ (* -1 x.im) (* -1 (/ (* x.re y.im) y.re))))) |
| Outputs |
|---|
(* x.im y.re) |
(*.f64 x.im y.re) |
(* x.im y.re) |
(*.f64 x.im y.re) |
(* x.im y.re) |
(*.f64 x.im y.re) |
(* x.im y.re) |
(*.f64 x.im y.re) |
(* x.im y.re) |
(*.f64 x.im y.re) |
(* x.im y.re) |
(*.f64 x.im y.re) |
(* x.im y.re) |
(*.f64 x.im y.re) |
(* x.im y.re) |
(*.f64 x.im y.re) |
(* x.im y.re) |
(*.f64 x.im y.re) |
(* x.im y.re) |
(*.f64 x.im y.re) |
(* x.im y.re) |
(*.f64 x.im y.re) |
(* x.im y.re) |
(*.f64 x.im y.re) |
(* x.im y.re) |
(*.f64 x.im y.re) |
(* x.im y.re) |
(*.f64 x.im y.re) |
(* x.im y.re) |
(*.f64 x.im y.re) |
(* x.im y.re) |
(*.f64 x.im y.re) |
(* x.im y.re) |
(*.f64 x.im y.re) |
(* x.im y.re) |
(*.f64 x.im y.re) |
(* x.im y.re) |
(*.f64 x.im y.re) |
(* x.im y.re) |
(*.f64 x.im y.re) |
(* x.im y.re) |
(*.f64 x.im y.re) |
(* x.im y.re) |
(*.f64 x.im y.re) |
(* x.im y.re) |
(*.f64 x.im y.re) |
(* x.im y.re) |
(*.f64 x.im y.re) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(* x.im y.re) |
(*.f64 x.im y.re) |
(+ (* x.im y.re) (* x.re y.im)) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(+ (* x.im y.re) (* x.re y.im)) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(+ (* x.im y.re) (* x.re y.im)) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(* y.im (+ x.re (/ (* x.im y.re) y.im))) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(* y.im (+ x.re (/ (* x.im y.re) y.im))) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(* y.im (+ x.re (/ (* x.im y.re) y.im))) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(* -1 (* y.im (+ (* -1 x.re) (* -1 (/ (* x.im y.re) y.im))))) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(* -1 (* y.im (+ (* -1 x.re) (* -1 (/ (* x.im y.re) y.im))))) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(* -1 (* y.im (+ (* -1 x.re) (* -1 (/ (* x.im y.re) y.im))))) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(* x.im y.re) |
(*.f64 x.im y.re) |
(+ (* x.im y.re) (* x.re y.im)) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(+ (* x.im y.re) (* x.re y.im)) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(+ (* x.im y.re) (* x.re y.im)) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(* x.re (+ y.im (/ (* x.im y.re) x.re))) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(* x.re (+ y.im (/ (* x.im y.re) x.re))) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(* x.re (+ y.im (/ (* x.im y.re) x.re))) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(* -1 (* x.re (+ (* -1 y.im) (* -1 (/ (* x.im y.re) x.re))))) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(* -1 (* x.re (+ (* -1 y.im) (* -1 (/ (* x.im y.re) x.re))))) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(* -1 (* x.re (+ (* -1 y.im) (* -1 (/ (* x.im y.re) x.re))))) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(+ (* x.im y.re) (* x.re y.im)) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(+ (* x.im y.re) (* x.re y.im)) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(+ (* x.im y.re) (* x.re y.im)) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(* x.im y.re) |
(*.f64 x.im y.re) |
(* x.im (+ y.re (/ (* x.re y.im) x.im))) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(* x.im (+ y.re (/ (* x.re y.im) x.im))) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(* x.im (+ y.re (/ (* x.re y.im) x.im))) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(* x.im y.re) |
(*.f64 x.im y.re) |
(* -1 (* x.im (+ (* -1 y.re) (* -1 (/ (* x.re y.im) x.im))))) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(* -1 (* x.im (+ (* -1 y.re) (* -1 (/ (* x.re y.im) x.im))))) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(* -1 (* x.im (+ (* -1 y.re) (* -1 (/ (* x.re y.im) x.im))))) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(* x.re y.im) |
(*.f64 x.re y.im) |
(+ (* x.im y.re) (* x.re y.im)) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(+ (* x.im y.re) (* x.re y.im)) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(+ (* x.im y.re) (* x.re y.im)) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(* x.im y.re) |
(*.f64 x.im y.re) |
(* y.re (+ x.im (/ (* x.re y.im) y.re))) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(* y.re (+ x.im (/ (* x.re y.im) y.re))) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(* y.re (+ x.im (/ (* x.re y.im) y.re))) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(* x.im y.re) |
(*.f64 x.im y.re) |
(* -1 (* y.re (+ (* -1 x.im) (* -1 (/ (* x.re y.im) y.re))))) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(* -1 (* y.re (+ (* -1 x.im) (* -1 (/ (* x.re y.im) y.re))))) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
(* -1 (* y.re (+ (* -1 x.im) (* -1 (/ (* x.re y.im) y.re))))) |
(+.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) |
Compiled 4553 to 266 computations (94.2% saved)
4 alts after pruning (0 fresh and 4 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 224 | 0 | 224 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 3 | 3 |
| Done | 0 | 1 | 1 |
| Total | 224 | 4 | 228 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 99.6% | (fma.f64 y.im x.re (*.f64 x.im y.re)) |
| ✓ | 99.6% | (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) |
| ✓ | 49.7% | (*.f64 x.re y.im) |
| ✓ | 53.3% | (*.f64 x.im y.re) |
Compiled 58 to 31 computations (46.6% saved)
| Inputs |
|---|
(*.f64 x.im y.re) |
(*.f64 x.re y.im) |
(+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) |
(fma.f64 y.im x.re (*.f64 x.im y.re)) |
| Outputs |
|---|
(fma.f64 y.im x.re (*.f64 x.im y.re)) |
7 calls:
| 5.0ms | (*.f64 x.re y.im) |
| 2.0ms | x.im |
| 2.0ms | y.re |
| 2.0ms | y.im |
| 2.0ms | (*.f64 x.im y.re) |
| Accuracy | Segments | Branch |
|---|---|---|
| 99.6% | 1 | x.re |
| 99.6% | 1 | x.im |
| 99.6% | 1 | y.re |
| 99.6% | 1 | y.im |
| 99.6% | 1 | (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) |
| 99.6% | 1 | (*.f64 x.re y.im) |
| 99.6% | 1 | (*.f64 x.im y.re) |
Compiled 45 to 33 computations (26.7% saved)
| Inputs |
|---|
(*.f64 x.im y.re) |
(*.f64 x.re y.im) |
(+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) |
| Outputs |
|---|
(+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) |
7 calls:
| 34.0ms | x.re |
| 3.0ms | (*.f64 x.im y.re) |
| 2.0ms | x.im |
| 2.0ms | y.re |
| 2.0ms | y.im |
| Accuracy | Segments | Branch |
|---|---|---|
| 99.6% | 1 | x.re |
| 99.6% | 1 | x.im |
| 99.6% | 1 | y.re |
| 99.6% | 1 | y.im |
| 99.6% | 1 | (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) |
| 99.6% | 1 | (*.f64 x.re y.im) |
| 99.6% | 1 | (*.f64 x.im y.re) |
Compiled 45 to 33 computations (26.7% saved)
| Inputs |
|---|
(*.f64 x.im y.re) |
(*.f64 x.re y.im) |
| Outputs |
|---|
(*.f64 x.re y.im) |
(*.f64 x.im y.re) |
(*.f64 x.re y.im) |
6 calls:
| 2.0ms | y.re |
| 2.0ms | y.im |
| 2.0ms | x.im |
| 1.0ms | (*.f64 x.im y.re) |
| 1.0ms | x.re |
| Accuracy | Segments | Branch |
|---|---|---|
| 74.1% | 3 | x.re |
| 76.1% | 3 | x.im |
| 69.1% | 3 | y.re |
| 74.6% | 3 | y.im |
| 78.5% | 3 | (*.f64 x.re y.im) |
| 76.9% | 3 | (*.f64 x.im y.re) |
Compiled 34 to 26 computations (23.5% saved)
Total 0.0b remaining (0%)
Threshold costs 0b (0%)
| Inputs |
|---|
(*.f64 x.im y.re) |
| Outputs |
|---|
(*.f64 x.im y.re) |
5 calls:
| 21.0ms | x.im |
| 1.0ms | x.re |
| 1.0ms | y.re |
| 1.0ms | y.im |
| 1.0ms | (*.f64 x.im y.re) |
| Accuracy | Segments | Branch |
|---|---|---|
| 53.3% | 1 | y.re |
| 53.3% | 1 | x.re |
| 53.3% | 1 | y.im |
| 53.3% | 1 | x.im |
| 53.3% | 1 | (*.f64 x.im y.re) |
Compiled 27 to 21 computations (22.2% saved)
| 2× | binary-search |
| 1× | narrow-enough |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 25.0ms | 6.185385637548507e-34 | 3.590098452711005e-31 |
| 9.0ms | -1.0585822994058277e+40 | -3.7410287970937915e+38 |
| 27.0ms | 240× | 0 | valid |
Compiled 228 to 178 computations (21.9% saved)
ival-add: 16.0ms (88.5% of total)ival-mult: 2.0ms (11.1% of total)const: 0.0ms (0% of total)backward-pass: 0.0ms (0% of total)| 1× | egg-herbie |
| 4× | *-commutative_binary64 |
| 2× | +-commutative_binary64 |
| 2× | if-if-or-not_binary32 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 14 | 35 |
| 1 | 20 | 35 |
| 1× | saturated |
| Inputs |
|---|
(fma.f64 y.im x.re (*.f64 x.im y.re)) |
(+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) |
(if (<=.f64 (*.f64 x.re y.im) #s(literal -4199999999999999716555353270367620694016 binary64)) (*.f64 x.re y.im) (if (<=.f64 (*.f64 x.re y.im) #s(literal 6302725810989519/45671926166590716193865151022383844364247891968 binary64)) (*.f64 x.im y.re) (*.f64 x.re y.im))) |
(*.f64 x.im y.re) |
| Outputs |
|---|
(fma.f64 y.im x.re (*.f64 x.im y.re)) |
(+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) |
(+.f64 (*.f64 x.im y.re) (*.f64 y.im x.re)) |
(if (<=.f64 (*.f64 x.re y.im) #s(literal -4199999999999999716555353270367620694016 binary64)) (*.f64 x.re y.im) (if (<=.f64 (*.f64 x.re y.im) #s(literal 6302725810989519/45671926166590716193865151022383844364247891968 binary64)) (*.f64 x.im y.re) (*.f64 x.re y.im))) |
(if (<=.f64 (*.f64 y.im x.re) #s(literal -4199999999999999716555353270367620694016 binary64)) (*.f64 y.im x.re) (if (<=.f64 (*.f64 y.im x.re) #s(literal 6302725810989519/45671926166590716193865151022383844364247891968 binary64)) (*.f64 x.im y.re) (*.f64 y.im x.re))) |
(*.f64 x.im y.re) |
| 2704× | *-lowering-*.f32 |
| 2704× | *-lowering-*.f64 |
| 2690× | *-lowering-*.f32 |
| 2690× | *-lowering-*.f64 |
| 1858× | sum5-define |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 40 | 396 |
| 1 | 154 | 396 |
| 2 | 524 | 396 |
| 3 | 1542 | 396 |
| 4 | 5192 | 396 |
| 0 | 8088 | 396 |
| 0 | 7 | 12 |
| 1 | 24 | 12 |
| 2 | 210 | 12 |
| 3 | 2692 | 12 |
| 0 | 8111 | 12 |
| 1× | done |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| 1× | node limit |
Compiled 72 to 35 computations (51.4% saved)
(sort x.im y.re)
(sort x.re y.im)
Compiled 184 to 90 computations (51.1% saved)
Loading profile data...