Time bar (total: 3.1s)
| 1× | search |
| True | Other | False | Iter |
|---|---|---|---|
| 0% | 99.9% | 0.1% | 0 |
| 0% | 99.9% | 0.1% | 1 |
| 0% | 99.9% | 0.1% | 2 |
| 50% | 50% | 0.1% | 3 |
| 50% | 50% | 0.1% | 4 |
| 62.4% | 37.5% | 0.1% | 5 |
| 62.4% | 37.5% | 0.1% | 6 |
| 68.7% | 31.2% | 0.1% | 7 |
| 68.7% | 31.2% | 0.1% | 8 |
| 71.8% | 28.1% | 0.1% | 9 |
| 71.8% | 28.1% | 0.1% | 10 |
| 73.4% | 26.5% | 0.1% | 11 |
| 73.4% | 26.5% | 0.1% | 12 |
| 74.1% | 25.8% | 0.1% | 13 |
| 74.1% | 25.8% | 0.1% | 14 |
Compiled 18 to 13 computations (27.8% saved)
| 734.0ms | 6240× | body | 128 | valid |
| 322.0ms | 556× | body | 4096 | valid |
| 317.0ms | 654× | body | 2048 | valid |
| 167.0ms | 447× | body | 1024 | valid |
| 67.0ms | 237× | body | 512 | valid |
| 27.0ms | 122× | body | 256 | valid |
Compiled 36 to 26 computations (27.8% saved)
| 2× | egg-herbie |
| 10× | fma-def_binary64 |
| 7× | *-commutative_binary64 |
| 4× | distribute-lft-in_binary64 |
| 4× | distribute-rgt-in_binary64 |
| 3× | +-commutative_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 19 | 30 |
| 1 | 45 | 30 |
| 2 | 55 | 30 |
| 3 | 59 | 30 |
| 0 | 2 | 2 |
| 1× | saturated |
| 1× | saturated |
| Inputs |
|---|
0 |
1 |
| Outputs |
|---|
0 |
1 |
| Inputs |
|---|
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)))) |
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 im im) (*.f64 re re))) im)))) |
| Outputs |
|---|
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)))) |
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))) |
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 im im) (*.f64 re re))) im)))) |
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 im (hypot.f64 re im))))) |
Compiled 17 to 12 computations (29.4% saved)
| 1× | egg-herbie |
| 6× | fma-def_binary64 |
| 4× | *-commutative_binary64 |
| 3× | +-commutative_binary64 |
| 2× | distribute-lft-in_binary64 |
| 2× | distribute-rgt-in_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 13 | 15 |
| 1 | 25 | 15 |
| 2 | 34 | 15 |
| 3 | 36 | 15 |
| 1× | saturated |
| Inputs |
|---|
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)))) |
| Outputs |
|---|
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)))) |
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))) |
3 alts after pruning (3 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 0 | 2 | 2 |
| Fresh | 0 | 1 | 1 |
| Picked | 0 | 0 | 0 |
| Done | 0 | 0 | 0 |
| Total | 0 | 3 | 3 |
| Status | Error | Program |
|---|---|---|
| 40.9b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)))) | |
| ▶ | 14.6b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))) |
Compiled 85 to 61 computations (28.2% saved)
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))) |
| ✓ | 0.0b | (+.f64 re (hypot.f64 re im)) |
12 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 4.0ms | re | @ | inf | (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))) |
| 2.0ms | im | @ | 0 | (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))) |
| 2.0ms | re | @ | -inf | (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))) |
| 2.0ms | im | @ | inf | (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))) |
| 1.0ms | re | @ | -inf | (+.f64 re (hypot.f64 re im)) |
| 1× | batch-egg-rewrite |
| 844× | log1p-expm1-u_binary64 |
| 844× | expm1-log1p-u_binary64 |
| 92× | add-sqr-sqrt_binary64 |
| 88× | pow1_binary64 |
| 87× | *-un-lft-identity_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 19 |
| 1 | 178 | 19 |
| 2 | 2361 | 19 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 re (hypot.f64 re im)) |
(sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (+.f64 re (hypot.f64 re im)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (*.f64 re re) (-.f64 re (hypot.f64 re im))) (/.f64 (pow.f64 (hypot.f64 re im) 2) (-.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 re (hypot.f64 re im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 re (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im))) (pow.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im))) 2) (cbrt.f64 (+.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 (+.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3)) (/.f64 1 (fma.f64 re re (*.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (/.f64 1 (-.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 re re (*.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re))) (+.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 re (hypot.f64 re im)) (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3)) (fma.f64 re re (*.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3)) (+.f64 (pow.f64 (hypot.f64 re im) 2) (-.f64 (*.f64 re re) (*.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (-.f64 re (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3))) (neg.f64 (fma.f64 re re (*.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) (neg.f64 (-.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 re re)) (-.f64 (hypot.f64 re im) re))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 re (hypot.f64 re im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (+.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (+.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 re (hypot.f64 re im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (hypot.f64 re im) re)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 re) 2) (cbrt.f64 re) (hypot.f64 re im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (cbrt.f64 (hypot.f64 re im)) re)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 re) (sqrt.f64 re) (hypot.f64 re im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) re)))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (+.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (+.f64 re (hypot.f64 re im))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 re (hypot.f64 re im)))))))) |
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))) (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) (cbrt.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 2) (sqrt.f64 (+.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 2)) (sqrt.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/2) (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 2) 1/2) (pow.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))))) |
| 1× | egg-herbie |
| 427× | fma-def_binary64 |
| 387× | associate-*r*_binary64 |
| 306× | associate-*l*_binary64 |
| 236× | cancel-sign-sub-inv_binary64 |
| 223× | associate-/l*_binary64 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 120 | 860 |
| 1 | 345 | 810 |
| 2 | 1133 | 762 |
| 1× | node limit |
| Inputs |
|---|
im |
(+.f64 re im) |
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im)) |
(-.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im)) (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)))) |
(*.f64 2 re) |
(+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))) |
(-.f64 (+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) |
(-.f64 (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) |
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) |
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))) |
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))) |
(-.f64 (+.f64 (*.f64 5/128 (/.f64 (pow.f64 im 8) (pow.f64 re 7))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))) |
(*.f64 2 re) |
(+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))) |
(-.f64 (+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) |
(-.f64 (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) |
im |
(+.f64 re im) |
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im)) |
(-.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im)) (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)))) |
(*.f64 -1 im) |
(-.f64 re im) |
(-.f64 re (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im)) |
(-.f64 (+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) re) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im)) |
(*.f64 (sqrt.f64 2) (sqrt.f64 im)) |
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im))))) |
(+.f64 (*.f64 1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))))) |
(-.f64 (+.f64 (*.f64 1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))))) (*.f64 1/16 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 3)) (sqrt.f64 (/.f64 1 (pow.f64 im 5)))))) |
(*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)) |
(+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)) (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2)))) |
(-.f64 (+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)) (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2)))) (+.f64 (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (pow.f64 im 4))) (*.f64 1/32 (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 (sqrt.f64 2) 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 7))))))) |
(-.f64 (+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)) (+.f64 (*.f64 1/128 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 (sqrt.f64 2) 4)) (sqrt.f64 (/.f64 1 (pow.f64 re 11))))) (+.f64 (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2))) (+.f64 (*.f64 1/32 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 11))) (pow.f64 im 6))) (*.f64 1/64 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 (sqrt.f64 2) 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 11))))))))) (+.f64 (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (pow.f64 im 4))) (*.f64 1/32 (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 (sqrt.f64 2) 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 7))))))) |
| Outputs |
|---|
im |
(+.f64 re im) |
(+.f64 im re) |
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im)) |
(fma.f64 1/2 (/.f64 (*.f64 re re) im) (+.f64 im re)) |
(fma.f64 1/2 (/.f64 re (/.f64 im re)) (+.f64 im re)) |
(+.f64 im (fma.f64 1/2 (*.f64 (/.f64 re im) re) re)) |
(-.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im)) (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)))) |
(-.f64 (fma.f64 1/2 (/.f64 (*.f64 re re) im) (+.f64 im re)) (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)))) |
(+.f64 (fma.f64 1/2 (/.f64 re (/.f64 im re)) (+.f64 im re)) (*.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) -1/8)) |
(fma.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) -1/8 (+.f64 im (fma.f64 1/2 (*.f64 (/.f64 re im) re) re))) |
(*.f64 2 re) |
(*.f64 re 2) |
(+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))) |
(fma.f64 2 re (*.f64 1/2 (/.f64 (*.f64 im im) re))) |
(fma.f64 re 2 (/.f64 1/2 (/.f64 re (*.f64 im im)))) |
(fma.f64 re 2 (*.f64 1/2 (*.f64 (/.f64 im re) im))) |
(-.f64 (+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) |
(+.f64 (fma.f64 2 re (*.f64 1/2 (/.f64 (*.f64 im im) re))) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) |
(fma.f64 re 2 (fma.f64 1/2 (/.f64 im (/.f64 re im)) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) -1/8))) |
(fma.f64 re 2 (fma.f64 1/2 (*.f64 (/.f64 im re) im) (/.f64 -1/8 (/.f64 (pow.f64 re 3) (pow.f64 im 4))))) |
(-.f64 (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) |
(+.f64 (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 2 re (*.f64 1/2 (/.f64 (*.f64 im im) re)))) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) |
(fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 re 2 (fma.f64 1/2 (/.f64 im (/.f64 re im)) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) -1/8)))) |
(fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) -1/8 (fma.f64 re 2 (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (*.f64 1/2 (*.f64 (/.f64 im re) im))))) |
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) |
(*.f64 (/.f64 (*.f64 im im) re) -1/2) |
(/.f64 -1/2 (/.f64 re (*.f64 im im))) |
(*.f64 (*.f64 (/.f64 im re) im) -1/2) |
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))) |
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 (/.f64 (*.f64 im im) re) -1/2)) |
(fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (/.f64 -1/2 (/.f64 re (*.f64 im im)))) |
(fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (*.f64 (*.f64 (/.f64 im re) im) -1/2)) |
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))) |
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (*.f64 1/2 (/.f64 (*.f64 im im) re)))) |
(-.f64 (/.f64 (*.f64 1/8 (pow.f64 im 4)) (pow.f64 re 3)) (fma.f64 1/2 (/.f64 im (/.f64 re im)) (/.f64 (*.f64 1/16 (pow.f64 im 6)) (pow.f64 re 5)))) |
(fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 (*.f64 (/.f64 im re) im) -1/2 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) -1/16))) |
(-.f64 (+.f64 (*.f64 5/128 (/.f64 (pow.f64 im 8) (pow.f64 re 7))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))) |
(-.f64 (fma.f64 5/128 (/.f64 (pow.f64 im 8) (pow.f64 re 7)) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (*.f64 1/2 (/.f64 (*.f64 im im) re)))) |
(-.f64 (fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (/.f64 5/128 (/.f64 (pow.f64 re 7) (pow.f64 im 8)))) (fma.f64 1/2 (/.f64 im (/.f64 re im)) (/.f64 (*.f64 1/16 (pow.f64 im 6)) (pow.f64 re 5)))) |
(fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 5/128 (/.f64 (pow.f64 im 8) (pow.f64 re 7)) (fma.f64 (*.f64 (/.f64 im re) im) -1/2 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) -1/16)))) |
(*.f64 2 re) |
(*.f64 re 2) |
(+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))) |
(fma.f64 2 re (*.f64 1/2 (/.f64 (*.f64 im im) re))) |
(fma.f64 re 2 (/.f64 1/2 (/.f64 re (*.f64 im im)))) |
(fma.f64 re 2 (*.f64 1/2 (*.f64 (/.f64 im re) im))) |
(-.f64 (+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) |
(+.f64 (fma.f64 2 re (*.f64 1/2 (/.f64 (*.f64 im im) re))) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) |
(fma.f64 re 2 (fma.f64 1/2 (/.f64 im (/.f64 re im)) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) -1/8))) |
(fma.f64 re 2 (fma.f64 1/2 (*.f64 (/.f64 im re) im) (/.f64 -1/8 (/.f64 (pow.f64 re 3) (pow.f64 im 4))))) |
(-.f64 (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) |
(+.f64 (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 2 re (*.f64 1/2 (/.f64 (*.f64 im im) re)))) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) |
(fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 re 2 (fma.f64 1/2 (/.f64 im (/.f64 re im)) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) -1/8)))) |
(fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) -1/8 (fma.f64 re 2 (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (*.f64 1/2 (*.f64 (/.f64 im re) im))))) |
im |
(+.f64 re im) |
(+.f64 im re) |
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im)) |
(fma.f64 1/2 (/.f64 (*.f64 re re) im) (+.f64 im re)) |
(fma.f64 1/2 (/.f64 re (/.f64 im re)) (+.f64 im re)) |
(+.f64 im (fma.f64 1/2 (*.f64 (/.f64 re im) re) re)) |
(-.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im)) (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)))) |
(-.f64 (fma.f64 1/2 (/.f64 (*.f64 re re) im) (+.f64 im re)) (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)))) |
(+.f64 (fma.f64 1/2 (/.f64 re (/.f64 im re)) (+.f64 im re)) (*.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) -1/8)) |
(fma.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) -1/8 (+.f64 im (fma.f64 1/2 (*.f64 (/.f64 re im) re) re))) |
(*.f64 -1 im) |
(neg.f64 im) |
(-.f64 re im) |
(-.f64 re (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im)) |
(-.f64 re (fma.f64 1/2 (/.f64 (*.f64 re re) im) im)) |
(-.f64 re (fma.f64 1/2 (/.f64 re (/.f64 im re)) im)) |
(-.f64 re (fma.f64 1/2 (*.f64 (/.f64 re im) re) im)) |
(-.f64 (+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) re) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im)) |
(-.f64 (fma.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) re) (fma.f64 1/2 (/.f64 (*.f64 re re) im) im)) |
(-.f64 (fma.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) re) (fma.f64 1/2 (/.f64 re (/.f64 im re)) im)) |
(fma.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (-.f64 re (fma.f64 1/2 (*.f64 (/.f64 re im) re) im))) |
(*.f64 (sqrt.f64 2) (sqrt.f64 im)) |
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im))))) |
(fma.f64 (sqrt.f64 2) (sqrt.f64 im) (*.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 (/.f64 1 im)))))) |
(fma.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im))) |
(*.f64 (sqrt.f64 2) (+.f64 (sqrt.f64 im) (*.f64 re (*.f64 1/2 (sqrt.f64 (/.f64 1 im)))))) |
(+.f64 (*.f64 1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))))) |
(fma.f64 1/8 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 re re) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (fma.f64 (sqrt.f64 2) (sqrt.f64 im) (*.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 (/.f64 1 im))))))) |
(fma.f64 1/8 (*.f64 (*.f64 re re) (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (fma.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))) |
(fma.f64 1/2 (*.f64 re (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (+.f64 (sqrt.f64 im) (*.f64 (*.f64 re re) (*.f64 1/8 (sqrt.f64 (/.f64 1 (pow.f64 im 3)))))))) |
(-.f64 (+.f64 (*.f64 1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))))) (*.f64 1/16 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 3)) (sqrt.f64 (/.f64 1 (pow.f64 im 5)))))) |
(+.f64 (fma.f64 1/8 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 re re) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (fma.f64 (sqrt.f64 2) (sqrt.f64 im) (*.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 (/.f64 1 im))))))) (*.f64 -1/16 (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 re 3) (sqrt.f64 (/.f64 1 (pow.f64 im 5))))))) |
(+.f64 (fma.f64 1/8 (*.f64 (*.f64 re re) (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (fma.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))) (*.f64 (*.f64 -1/16 (sqrt.f64 2)) (*.f64 (pow.f64 re 3) (sqrt.f64 (/.f64 1 (pow.f64 im 5)))))) |
(+.f64 (*.f64 (sqrt.f64 2) (+.f64 (sqrt.f64 im) (*.f64 (*.f64 re re) (*.f64 1/8 (sqrt.f64 (/.f64 1 (pow.f64 im 3))))))) (*.f64 (sqrt.f64 2) (-.f64 (*.f64 re (*.f64 1/2 (sqrt.f64 (/.f64 1 im)))) (*.f64 (pow.f64 re 3) (*.f64 1/16 (sqrt.f64 (/.f64 1 (pow.f64 im 5)))))))) |
(*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)) |
(*.f64 2 (sqrt.f64 re)) |
(+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)) (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2)))) |
(fma.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re) (*.f64 1/4 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))))) |
(fma.f64 2 (sqrt.f64 re) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 (*.f64 im im) 1/4))) |
(fma.f64 2 (sqrt.f64 re) (*.f64 1/4 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))))) |
(-.f64 (+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)) (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2)))) (+.f64 (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (pow.f64 im 4))) (*.f64 1/32 (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 (sqrt.f64 2) 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 7))))))) |
(-.f64 (fma.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re) (*.f64 1/4 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))))) (fma.f64 1/16 (*.f64 (pow.f64 im 4) (sqrt.f64 (/.f64 1 (pow.f64 re 7)))) (*.f64 1/32 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (/.f64 (pow.f64 im 4) (pow.f64 (sqrt.f64 2) 2)))))) |
(fma.f64 2 (sqrt.f64 re) (-.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 (*.f64 im im) 1/4)) (fma.f64 1/32 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (/.f64 (pow.f64 im 4) 2)) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (*.f64 (pow.f64 im 4) 1/16))))) |
(-.f64 (fma.f64 2 (sqrt.f64 re) (*.f64 1/4 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (+.f64 (*.f64 (pow.f64 im 4) 1/16) (*.f64 1/32 (/.f64 (pow.f64 im 4) 2))))) |
(-.f64 (+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)) (+.f64 (*.f64 1/128 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 (sqrt.f64 2) 4)) (sqrt.f64 (/.f64 1 (pow.f64 re 11))))) (+.f64 (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2))) (+.f64 (*.f64 1/32 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 11))) (pow.f64 im 6))) (*.f64 1/64 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 (sqrt.f64 2) 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 11))))))))) (+.f64 (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (pow.f64 im 4))) (*.f64 1/32 (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 (sqrt.f64 2) 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 7))))))) |
(-.f64 (fma.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re) (fma.f64 1/128 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 (sqrt.f64 2) 4)) (sqrt.f64 (/.f64 1 (pow.f64 re 11)))) (fma.f64 1/4 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (fma.f64 1/32 (*.f64 (pow.f64 im 6) (sqrt.f64 (/.f64 1 (pow.f64 re 11)))) (*.f64 1/64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 11))) (/.f64 (pow.f64 im 6) (pow.f64 (sqrt.f64 2) 2)))))))) (fma.f64 1/16 (*.f64 (pow.f64 im 4) (sqrt.f64 (/.f64 1 (pow.f64 re 7)))) (*.f64 1/32 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (/.f64 (pow.f64 im 4) (pow.f64 (sqrt.f64 2) 2)))))) |
(-.f64 (fma.f64 2 (sqrt.f64 re) (fma.f64 1/128 (*.f64 (/.f64 (pow.f64 im 6) 4) (sqrt.f64 (/.f64 1 (pow.f64 re 11)))) (fma.f64 1/4 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (fma.f64 1/64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 11))) (/.f64 (pow.f64 im 6) 2)) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 11))) (*.f64 (pow.f64 im 6) 1/32)))))) (fma.f64 1/32 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (/.f64 (pow.f64 im 4) 2)) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (*.f64 (pow.f64 im 4) 1/16)))) |
(+.f64 (/.f64 (*.f64 (pow.f64 im 6) (sqrt.f64 (/.f64 1 (pow.f64 re 11)))) 512) (-.f64 (fma.f64 2 (sqrt.f64 re) (fma.f64 (*.f64 im im) (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 11))) (+.f64 (*.f64 (pow.f64 im 6) 1/32) (*.f64 1/64 (/.f64 (pow.f64 im 6) 2)))))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (+.f64 (*.f64 (pow.f64 im 4) 1/16) (*.f64 1/32 (/.f64 (pow.f64 im 4) 2)))))) |
7 alts after pruning (6 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 99 | 6 | 105 |
| Fresh | 1 | 0 | 1 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 0 | 0 |
| Total | 100 | 7 | 107 |
| Status | Error | Program |
|---|---|---|
| 52.3b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (*.f64 (/.f64 im re) im) -1/2)))) | |
| 53.5b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re))))) | |
| ▶ | 17.0b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) re)))) |
| 45.6b | (*.f64 1/2 (sqrt.f64 (*.f64 2 im))) | |
| 47.8b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (/.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (-.f64 re (hypot.f64 re im)))))) | |
| 48.0b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im)))) | |
| ✓ | 14.6b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))) |
Compiled 2255 to 1513 computations (32.9% saved)
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (sqrt.f64 (*.f64 2 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) re))) |
| ✓ | 16.9b | (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) re) |
12 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 14.0ms | im | @ | inf | (sqrt.f64 (*.f64 2 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) re))) |
| 2.0ms | im | @ | inf | (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) re) |
| 2.0ms | re | @ | inf | (sqrt.f64 (*.f64 2 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) re))) |
| 2.0ms | im | @ | -inf | (sqrt.f64 (*.f64 2 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) re))) |
| 1.0ms | re | @ | -inf | (sqrt.f64 (*.f64 2 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) re))) |
| 1× | batch-egg-rewrite |
| 774× | pow1_binary64 |
| 711× | log1p-expm1-u_binary64 |
| 711× | expm1-log1p-u_binary64 |
| 87× | add-sqr-sqrt_binary64 |
| 83× | *-un-lft-identity_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 9 | 19 |
| 1 | 180 | 19 |
| 2 | 2001 | 19 |
| 1× | node limit |
| Inputs |
|---|
(fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) re) |
(sqrt.f64 (*.f64 2 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) re))) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 re (hypot.f64 re im))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (hypot.f64 re im) re)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (+.f64 re (hypot.f64 re im)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 re (hypot.f64 re im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 re (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im))) (pow.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im))) 2) (cbrt.f64 (+.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 (+.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (hypot.f64 re im) 3) (pow.f64 re 3)) (+.f64 (pow.f64 (hypot.f64 re im) 2) (-.f64 (*.f64 re re) (*.f64 (hypot.f64 re im) re))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 re re)) (-.f64 (hypot.f64 re im) re))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 re (hypot.f64 re im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (+.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (+.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (+.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (+.f64 re (hypot.f64 re im))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 re (hypot.f64 re im)))))))) |
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) (cbrt.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))) (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 2) (sqrt.f64 (+.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 2)) (sqrt.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/2) (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 2) 1/2) (pow.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))))) |
| 1× | egg-herbie |
| 593× | fma-neg_binary64 |
| 368× | associate-*r*_binary64 |
| 344× | fma-def_binary64 |
| 295× | associate-*l*_binary64 |
| 200× | associate-/l*_binary64 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 101 | 553 |
| 1 | 285 | 509 |
| 2 | 963 | 467 |
| 3 | 4606 | 467 |
| 1× | node limit |
| Inputs |
|---|
im |
(+.f64 re im) |
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im)) |
(-.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im)) (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)))) |
re |
re |
(*.f64 2 re) |
(+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))) |
(-.f64 (+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) |
(-.f64 (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) |
(*.f64 (sqrt.f64 2) (sqrt.f64 im)) |
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im))))) |
(+.f64 (*.f64 1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))))) |
(-.f64 (+.f64 (*.f64 1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))))) (*.f64 1/16 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 3)) (sqrt.f64 (/.f64 1 (pow.f64 im 5)))))) |
(*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)) |
(+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)) (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2)))) |
(-.f64 (+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)) (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2)))) (+.f64 (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (pow.f64 im 4))) (*.f64 1/32 (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 (sqrt.f64 2) 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 7))))))) |
(-.f64 (+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)) (+.f64 (*.f64 1/128 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 (sqrt.f64 2) 4)) (sqrt.f64 (/.f64 1 (pow.f64 re 11))))) (+.f64 (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2))) (+.f64 (*.f64 1/32 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 11))) (pow.f64 im 6))) (*.f64 1/64 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 (sqrt.f64 2) 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 11))))))))) (+.f64 (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (pow.f64 im 4))) (*.f64 1/32 (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 (sqrt.f64 2) 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 7))))))) |
| Outputs |
|---|
im |
(+.f64 re im) |
(+.f64 im re) |
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im)) |
(fma.f64 1/2 (/.f64 (*.f64 re re) im) (+.f64 im re)) |
(+.f64 im (fma.f64 1/2 (/.f64 re (/.f64 im re)) re)) |
(+.f64 re (fma.f64 1/2 (/.f64 re (/.f64 im re)) im)) |
(-.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im)) (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)))) |
(+.f64 (fma.f64 1/2 (/.f64 (*.f64 re re) im) (+.f64 im re)) (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)))) |
(+.f64 (+.f64 im (fma.f64 1/2 (/.f64 re (/.f64 im re)) re)) (*.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) -1/8)) |
(fma.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) -1/8 (+.f64 re (fma.f64 1/2 (/.f64 re (/.f64 im re)) im))) |
re |
re |
(*.f64 2 re) |
(*.f64 re 2) |
(+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))) |
(fma.f64 2 re (*.f64 1/2 (/.f64 (*.f64 im im) re))) |
(fma.f64 re 2 (*.f64 1/2 (/.f64 (*.f64 im im) re))) |
(fma.f64 re 2 (*.f64 1/2 (*.f64 (/.f64 im re) im))) |
(-.f64 (+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) |
(+.f64 (fma.f64 2 re (*.f64 1/2 (/.f64 (*.f64 im im) re))) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) |
(fma.f64 re 2 (fma.f64 1/2 (/.f64 (*.f64 im im) re) (/.f64 (*.f64 -1/8 (pow.f64 im 4)) (pow.f64 re 3)))) |
(fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) -1/8 (fma.f64 re 2 (*.f64 1/2 (*.f64 (/.f64 im re) im)))) |
(-.f64 (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) |
(+.f64 (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 2 re (*.f64 1/2 (/.f64 (*.f64 im im) re)))) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) |
(fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 re 2 (fma.f64 1/2 (/.f64 (*.f64 im im) re) (/.f64 (*.f64 -1/8 (pow.f64 im 4)) (pow.f64 re 3))))) |
(fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) -1/8 (fma.f64 re 2 (fma.f64 1/2 (*.f64 (/.f64 im re) im) (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)))))) |
(*.f64 (sqrt.f64 2) (sqrt.f64 im)) |
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im))))) |
(fma.f64 (sqrt.f64 2) (sqrt.f64 im) (*.f64 1/2 (*.f64 (*.f64 re (sqrt.f64 2)) (sqrt.f64 (/.f64 1 im))))) |
(fma.f64 1/2 (*.f64 (*.f64 re (sqrt.f64 2)) (sqrt.f64 (/.f64 1 im))) (*.f64 (sqrt.f64 2) (sqrt.f64 im))) |
(*.f64 (sqrt.f64 2) (+.f64 (sqrt.f64 im) (*.f64 re (*.f64 1/2 (sqrt.f64 (/.f64 1 im)))))) |
(+.f64 (*.f64 1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))))) |
(fma.f64 1/8 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 re re) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (fma.f64 (sqrt.f64 2) (sqrt.f64 im) (*.f64 1/2 (*.f64 (*.f64 re (sqrt.f64 2)) (sqrt.f64 (/.f64 1 im)))))) |
(fma.f64 1/8 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 re re) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (fma.f64 1/2 (*.f64 (*.f64 re (sqrt.f64 2)) (sqrt.f64 (/.f64 1 im))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))) |
(fma.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (+.f64 (sqrt.f64 im) (*.f64 (*.f64 re re) (*.f64 1/8 (sqrt.f64 (/.f64 1 (pow.f64 im 3)))))))) |
(-.f64 (+.f64 (*.f64 1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))))) (*.f64 1/16 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 3)) (sqrt.f64 (/.f64 1 (pow.f64 im 5)))))) |
(+.f64 (fma.f64 1/8 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 re re) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (fma.f64 (sqrt.f64 2) (sqrt.f64 im) (*.f64 1/2 (*.f64 (*.f64 re (sqrt.f64 2)) (sqrt.f64 (/.f64 1 im)))))) (*.f64 -1/16 (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 re 3) (sqrt.f64 (/.f64 1 (pow.f64 im 5))))))) |
(+.f64 (fma.f64 1/8 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 re re) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (fma.f64 1/2 (*.f64 (*.f64 re (sqrt.f64 2)) (sqrt.f64 (/.f64 1 im))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))) (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 re 3) (sqrt.f64 (/.f64 1 (pow.f64 im 5))))) -1/16)) |
(+.f64 (*.f64 (sqrt.f64 2) (+.f64 (sqrt.f64 im) (*.f64 (*.f64 re re) (*.f64 1/8 (sqrt.f64 (/.f64 1 (pow.f64 im 3))))))) (*.f64 (sqrt.f64 2) (-.f64 (*.f64 re (*.f64 1/2 (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 5))) (*.f64 (pow.f64 re 3) 1/16))))) |
(+.f64 (*.f64 (sqrt.f64 2) (+.f64 (sqrt.f64 im) (*.f64 re (*.f64 1/2 (sqrt.f64 (/.f64 1 im)))))) (*.f64 (sqrt.f64 2) (fma.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 3))) (*.f64 (*.f64 re re) 1/8) (neg.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 5))) (*.f64 (pow.f64 re 3) 1/16)))))) |
(*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)) |
(*.f64 2 (sqrt.f64 re)) |
(+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)) (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2)))) |
(fma.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re) (*.f64 1/4 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))))) |
(fma.f64 2 (sqrt.f64 re) (*.f64 1/4 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))))) |
(fma.f64 2 (sqrt.f64 re) (*.f64 (*.f64 im im) (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))))) |
(-.f64 (+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)) (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2)))) (+.f64 (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (pow.f64 im 4))) (*.f64 1/32 (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 (sqrt.f64 2) 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 7))))))) |
(-.f64 (fma.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re) (*.f64 1/4 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))))) (fma.f64 1/16 (*.f64 (pow.f64 im 4) (sqrt.f64 (/.f64 1 (pow.f64 re 7)))) (*.f64 1/32 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (/.f64 (pow.f64 im 4) (pow.f64 (sqrt.f64 2) 2)))))) |
(-.f64 (fma.f64 2 (sqrt.f64 re) (*.f64 1/4 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))))) (fma.f64 1/16 (*.f64 (pow.f64 im 4) (sqrt.f64 (/.f64 1 (pow.f64 re 7)))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (*.f64 1/32 (/.f64 (pow.f64 im 4) 2))))) |
(fma.f64 (*.f64 im im) (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (-.f64 (*.f64 2 (sqrt.f64 re)) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (+.f64 (*.f64 (pow.f64 im 4) 1/16) (*.f64 1/32 (/.f64 (pow.f64 im 4) 2)))))) |
(-.f64 (+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)) (+.f64 (*.f64 1/128 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 (sqrt.f64 2) 4)) (sqrt.f64 (/.f64 1 (pow.f64 re 11))))) (+.f64 (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2))) (+.f64 (*.f64 1/32 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 11))) (pow.f64 im 6))) (*.f64 1/64 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 (sqrt.f64 2) 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 11))))))))) (+.f64 (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (pow.f64 im 4))) (*.f64 1/32 (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 (sqrt.f64 2) 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 7))))))) |
(-.f64 (fma.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re) (fma.f64 1/128 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 (sqrt.f64 2) 4)) (sqrt.f64 (/.f64 1 (pow.f64 re 11)))) (fma.f64 1/4 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (fma.f64 1/32 (*.f64 (pow.f64 im 6) (sqrt.f64 (/.f64 1 (pow.f64 re 11)))) (*.f64 1/64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 11))) (/.f64 (pow.f64 im 6) (pow.f64 (sqrt.f64 2) 2)))))))) (fma.f64 1/16 (*.f64 (pow.f64 im 4) (sqrt.f64 (/.f64 1 (pow.f64 re 7)))) (*.f64 1/32 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (/.f64 (pow.f64 im 4) (pow.f64 (sqrt.f64 2) 2)))))) |
(-.f64 (fma.f64 2 (sqrt.f64 re) (fma.f64 1/128 (*.f64 (/.f64 (pow.f64 im 6) 4) (sqrt.f64 (/.f64 1 (pow.f64 re 11)))) (fma.f64 1/4 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (fma.f64 1/32 (*.f64 (pow.f64 im 6) (sqrt.f64 (/.f64 1 (pow.f64 re 11)))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 11))) (*.f64 1/64 (/.f64 (pow.f64 im 6) 2))))))) (fma.f64 1/16 (*.f64 (pow.f64 im 4) (sqrt.f64 (/.f64 1 (pow.f64 re 7)))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (*.f64 1/32 (/.f64 (pow.f64 im 4) 2))))) |
(fma.f64 2 (sqrt.f64 re) (+.f64 (fma.f64 (*.f64 im im) (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 11))) (+.f64 (*.f64 (pow.f64 im 6) 1/32) (/.f64 (*.f64 (pow.f64 im 6) 1/64) 2)))) (-.f64 (/.f64 (*.f64 (pow.f64 im 6) (sqrt.f64 (/.f64 1 (pow.f64 re 11)))) 512) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (+.f64 (*.f64 (pow.f64 im 4) 1/16) (*.f64 1/32 (/.f64 (pow.f64 im 4) 2))))))) |
7 alts after pruning (5 fresh and 2 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 78 | 0 | 78 |
| Fresh | 0 | 5 | 5 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 1 | 1 |
| Total | 78 | 7 | 85 |
| Status | Error | Program |
|---|---|---|
| 52.3b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (*.f64 (/.f64 im re) im) -1/2)))) | |
| 53.5b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re))))) | |
| ✓ | 17.0b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) re)))) |
| ▶ | 45.6b | (*.f64 1/2 (sqrt.f64 (*.f64 2 im))) |
| 47.8b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (/.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (-.f64 re (hypot.f64 re im)))))) | |
| 48.0b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im)))) | |
| ✓ | 14.6b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))) |
Compiled 1642 to 1136 computations (30.8% saved)
7 alts after pruning (4 fresh and 3 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 0 | 0 | 0 |
| Fresh | 0 | 4 | 4 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 2 | 2 |
| Total | 0 | 7 | 7 |
| Status | Error | Program |
|---|---|---|
| 52.3b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (*.f64 (/.f64 im re) im) -1/2)))) | |
| 53.5b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re))))) | |
| ✓ | 17.0b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) re)))) |
| ✓ | 45.6b | (*.f64 1/2 (sqrt.f64 (*.f64 2 im))) |
| ▶ | 47.8b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (/.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (-.f64 re (hypot.f64 re im)))))) |
| 48.0b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im)))) | |
| ✓ | 14.6b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))) |
Compiled 155 to 116 computations (25.2% saved)
Found 4 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (sqrt.f64 (*.f64 2 (/.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (-.f64 re (hypot.f64 re im))))) |
| ✓ | 0.4b | (-.f64 re (hypot.f64 re im)) |
| ✓ | 15.0b | (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) |
| ✓ | 17.3b | (/.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (-.f64 re (hypot.f64 re im))) |
24 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 7.0ms | im | @ | 0 | (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) |
| 6.0ms | re | @ | inf | (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) |
| 4.0ms | im | @ | inf | (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) |
| 3.0ms | re | @ | 0 | (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) |
| 1.0ms | re | @ | -inf | (sqrt.f64 (*.f64 2 (/.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (-.f64 re (hypot.f64 re im))))) |
| 1× | batch-egg-rewrite |
| 451× | fma-def_binary64 |
| 236× | expm1-udef_binary64 |
| 236× | log1p-udef_binary64 |
| 226× | fma-neg_binary64 |
| 142× | add-sqr-sqrt_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 12 | 69 |
| 1 | 277 | 39 |
| 2 | 3940 | 39 |
| 1× | node limit |
| Inputs |
|---|
(/.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (-.f64 re (hypot.f64 re im))) |
(-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) |
(-.f64 re (hypot.f64 re im)) |
(sqrt.f64 (*.f64 2 (/.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (-.f64 re (hypot.f64 re im))))) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 re (hypot.f64 re im))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (hypot.f64 re im) re)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 (*.f64 re re) (-.f64 re (hypot.f64 re im))) (neg.f64 (/.f64 (pow.f64 (hypot.f64 re im) 2) (-.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (*.f64 re re) (-.f64 re (hypot.f64 re im))) (/.f64 (pow.f64 (hypot.f64 re im) 2) (-.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (+.f64 re (hypot.f64 re im)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (/.f64 1 (-.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 re (hypot.f64 re im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 re (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) 2)) (*.f64 (cbrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) (/.f64 1 (-.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im))) (pow.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im))) 2) (cbrt.f64 (+.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) (*.f64 (sqrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) (/.f64 1 (-.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 (+.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) (/.f64 1 (neg.f64 (-.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (-.f64 re (hypot.f64 re im))) (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 (cbrt.f64 (-.f64 re (hypot.f64 re im))) 2)) (/.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (cbrt.f64 (-.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (sqrt.f64 (-.f64 re (hypot.f64 re im)))) (/.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (sqrt.f64 (-.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (pow.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) 2)) 1) (/.f64 (cbrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) (-.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) 1) (/.f64 (sqrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) (-.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (pow.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) 2)) (pow.f64 (cbrt.f64 (-.f64 re (hypot.f64 re im))) 2)) (cbrt.f64 (+.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) (pow.f64 (cbrt.f64 (-.f64 re (hypot.f64 re im))) 2)) (/.f64 (sqrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) (cbrt.f64 (-.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (pow.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) 2)) (sqrt.f64 (-.f64 re (hypot.f64 re im)))) (/.f64 (cbrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) (sqrt.f64 (-.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) (+.f64 re (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (-.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3))) (fma.f64 (hypot.f64 re im) (+.f64 re (hypot.f64 re im)) (*.f64 re re)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 re (hypot.f64 re im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1 (+.f64 re (hypot.f64 re im))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (neg.f64 (-.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (+.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (+.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 re) (exp.f64 (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) 3) (pow.f64 (-.f64 re (hypot.f64 re im)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 re 1 (hypot.f64 re im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 re re) (/.f64 1 (-.f64 re (hypot.f64 re im))) (neg.f64 (/.f64 (pow.f64 (hypot.f64 re im) 2) (-.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (hypot.f64 re im) 1 re)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 re (hypot.f64 re im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (hypot.f64 re im) re)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (/.f64 (*.f64 re re) (-.f64 re (hypot.f64 re im))) (neg.f64 (/.f64 (pow.f64 (hypot.f64 re im) 2) (-.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (hypot.f64 re im)) (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) re)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 re) (cbrt.f64 (*.f64 re re)) (hypot.f64 re im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 re re)) (cbrt.f64 re) (hypot.f64 re im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) (cbrt.f64 (hypot.f64 re im)) re)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) re)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 re) (sqrt.f64 re) (hypot.f64 re im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 (/.f64 (*.f64 re re) (-.f64 re (hypot.f64 re im)))) (cbrt.f64 (/.f64 (*.f64 re re) (-.f64 re (hypot.f64 re im))))) (cbrt.f64 (/.f64 (*.f64 re re) (-.f64 re (hypot.f64 re im)))) (neg.f64 (/.f64 (pow.f64 (hypot.f64 re im) 2) (-.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 4))) (sqrt.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2))) re)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (/.f64 (*.f64 re re) (-.f64 re (hypot.f64 re im)))) (sqrt.f64 (/.f64 (*.f64 re re) (-.f64 re (hypot.f64 re im)))) (neg.f64 (/.f64 (pow.f64 (hypot.f64 re im) 2) (-.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (cbrt.f64 (pow.f64 re 4))) (sqrt.f64 (cbrt.f64 (*.f64 re re))) (hypot.f64 re im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 re 1) (/.f64 re (-.f64 re (hypot.f64 re im))) (neg.f64 (/.f64 (pow.f64 (hypot.f64 re im) 2) (-.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (cbrt.f64 (pow.f64 re 4)) 1) (/.f64 (cbrt.f64 (*.f64 re re)) (-.f64 re (hypot.f64 re im))) (neg.f64 (/.f64 (pow.f64 (hypot.f64 re im) 2) (-.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 re (pow.f64 (cbrt.f64 (-.f64 re (hypot.f64 re im))) 2)) (/.f64 re (cbrt.f64 (-.f64 re (hypot.f64 re im)))) (neg.f64 (/.f64 (pow.f64 (hypot.f64 re im) 2) (-.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (pow.f64 (cbrt.f64 (-.f64 re (hypot.f64 re im))) 2)) (/.f64 (*.f64 re re) (cbrt.f64 (-.f64 re (hypot.f64 re im)))) (neg.f64 (/.f64 (pow.f64 (hypot.f64 re im) 2) (-.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (cbrt.f64 (pow.f64 re 4)) (pow.f64 (cbrt.f64 (-.f64 re (hypot.f64 re im))) 2)) (/.f64 (cbrt.f64 (*.f64 re re)) (cbrt.f64 (-.f64 re (hypot.f64 re im)))) (neg.f64 (/.f64 (pow.f64 (hypot.f64 re im) 2) (-.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 re (sqrt.f64 (-.f64 re (hypot.f64 re im)))) (/.f64 re (sqrt.f64 (-.f64 re (hypot.f64 re im)))) (neg.f64 (/.f64 (pow.f64 (hypot.f64 re im) 2) (-.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (sqrt.f64 (-.f64 re (hypot.f64 re im)))) (/.f64 (*.f64 re re) (sqrt.f64 (-.f64 re (hypot.f64 re im)))) (neg.f64 (/.f64 (pow.f64 (hypot.f64 re im) 2) (-.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (cbrt.f64 (pow.f64 re 4)) (sqrt.f64 (-.f64 re (hypot.f64 re im)))) (/.f64 (cbrt.f64 (*.f64 re re)) (sqrt.f64 (-.f64 re (hypot.f64 re im)))) (neg.f64 (/.f64 (pow.f64 (hypot.f64 re im) 2) (-.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (*.f64 re re) (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) (+.f64 re (hypot.f64 re im)) (neg.f64 (/.f64 (pow.f64 (hypot.f64 re im) 2) (-.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (*.f64 re re) (-.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3))) (fma.f64 (hypot.f64 re im) (+.f64 re (hypot.f64 re im)) (*.f64 re re)) (neg.f64 (/.f64 (pow.f64 (hypot.f64 re im) 2) (-.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (+.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (+.f64 re (hypot.f64 re im))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 re (hypot.f64 re im)))))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 re re) (neg.f64 (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 re re) (*.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (+.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (fma.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) 1 (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (fma.f64 (neg.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2))) (cbrt.f64 (pow.f64 (hypot.f64 re im) 4)) (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) (*.f64 re re))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 re (hypot.f64 re im)) (-.f64 re (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) (cbrt.f64 (pow.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) 2)) (cbrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) (sqrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 re 6) (pow.f64 (hypot.f64 re im) 6)) (/.f64 1 (fma.f64 (pow.f64 (hypot.f64 re im) 2) (fma.f64 re re (pow.f64 (hypot.f64 re im) 2)) (pow.f64 re 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 re 4) (pow.f64 (hypot.f64 re im) 4)) (/.f64 1 (fma.f64 re re (pow.f64 (hypot.f64 re im) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (pow.f64 (hypot.f64 re im) 2) (fma.f64 re re (pow.f64 (hypot.f64 re im) 2)) (pow.f64 re 4)) (-.f64 (pow.f64 re 6) (pow.f64 (hypot.f64 re im) 6))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 re re (pow.f64 (hypot.f64 re im) 2)) (-.f64 (pow.f64 re 4) (pow.f64 (hypot.f64 re im) 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 re 6) (pow.f64 (hypot.f64 re im) 6)) (fma.f64 (pow.f64 (hypot.f64 re im) 2) (fma.f64 re re (pow.f64 (hypot.f64 re im) 2)) (pow.f64 re 4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 re 4) (pow.f64 (hypot.f64 re im) 4)) (fma.f64 re re (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 re 6) (pow.f64 (hypot.f64 re im) 6))) (neg.f64 (fma.f64 (pow.f64 (hypot.f64 re im) 2) (fma.f64 re re (pow.f64 (hypot.f64 re im) 2)) (pow.f64 re 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 re 4) (pow.f64 (hypot.f64 re im) 4))) (neg.f64 (fma.f64 re re (pow.f64 (hypot.f64 re im) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 re 6) (pow.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) 3)) (+.f64 (pow.f64 re 4) (-.f64 (*.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) (neg.f64 (pow.f64 (hypot.f64 re im) 2))) (*.f64 (*.f64 re re) (neg.f64 (pow.f64 (hypot.f64 re im) 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 re 4) (*.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) (neg.f64 (pow.f64 (hypot.f64 re im) 2)))) (-.f64 (*.f64 re re) (neg.f64 (pow.f64 (hypot.f64 re im) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 re re (neg.f64 (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 re re (*.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 re re) 1 (neg.f64 (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 re re) 1 (*.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (hypot.f64 re im) (neg.f64 (hypot.f64 re im)) (*.f64 re re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) 1 (+.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) 1 (fma.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) 1 (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) 1 (fma.f64 (neg.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2))) (cbrt.f64 (pow.f64 (hypot.f64 re im) 4)) (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 re (hypot.f64 re im)) (-.f64 re (hypot.f64 re im)) (+.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 re (hypot.f64 re im)) (-.f64 re (hypot.f64 re im)) (fma.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) 1 (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 re (hypot.f64 re im)) (-.f64 re (hypot.f64 re im)) (fma.f64 (neg.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2))) (cbrt.f64 (pow.f64 (hypot.f64 re im) 4)) (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 re re) (neg.f64 (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 re re) (*.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (+.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (fma.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) 1 (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (fma.f64 (neg.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2))) (cbrt.f64 (pow.f64 (hypot.f64 re im) 4)) (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) (*.f64 re re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) (cbrt.f64 (pow.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) 2)) (+.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) (cbrt.f64 (pow.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) 2)) (fma.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) 1 (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) (cbrt.f64 (pow.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) 2)) (fma.f64 (neg.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2))) (cbrt.f64 (pow.f64 (hypot.f64 re im) 4)) (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) 2)) (cbrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) (+.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) 2)) (cbrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) (fma.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) 1 (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) 2)) (cbrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) (fma.f64 (neg.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2))) (cbrt.f64 (pow.f64 (hypot.f64 re im) 4)) (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 re re)) (cbrt.f64 (pow.f64 re 4)) (neg.f64 (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 re re)) (cbrt.f64 (pow.f64 re 4)) (*.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 re re)) (*.f64 (cbrt.f64 re) re) (neg.f64 (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 re re)) (*.f64 (cbrt.f64 re) re) (*.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 re 4)) (cbrt.f64 (*.f64 re re)) (neg.f64 (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 re 4)) (cbrt.f64 (*.f64 re re)) (*.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 4)) (neg.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2))) (*.f64 re re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) (sqrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) (+.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) (sqrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) (fma.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) 1 (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) (sqrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) (fma.f64 (neg.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2))) (cbrt.f64 (pow.f64 (hypot.f64 re im) 4)) (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 re) (*.f64 (sqrt.f64 re) re) (neg.f64 (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 re) (*.f64 (sqrt.f64 re) re) (*.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 re 6) (pow.f64 (hypot.f64 re im) 6)) (/.f64 1 (fma.f64 (pow.f64 (hypot.f64 re im) 2) (fma.f64 re re (pow.f64 (hypot.f64 re im) 2)) (pow.f64 re 4))) (+.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 re 6) (pow.f64 (hypot.f64 re im) 6)) (/.f64 1 (fma.f64 (pow.f64 (hypot.f64 re im) 2) (fma.f64 re re (pow.f64 (hypot.f64 re im) 2)) (pow.f64 re 4))) (fma.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) 1 (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 re 6) (pow.f64 (hypot.f64 re im) 6)) (/.f64 1 (fma.f64 (pow.f64 (hypot.f64 re im) 2) (fma.f64 re re (pow.f64 (hypot.f64 re im) 2)) (pow.f64 re 4))) (fma.f64 (neg.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2))) (cbrt.f64 (pow.f64 (hypot.f64 re im) 4)) (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (hypot.f64 re im)) (hypot.f64 re im) (*.f64 re re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 re 4) (pow.f64 (hypot.f64 re im) 4)) (/.f64 1 (fma.f64 re re (pow.f64 (hypot.f64 re im) 2))) (+.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 re 4) (pow.f64 (hypot.f64 re im) 4)) (/.f64 1 (fma.f64 re re (pow.f64 (hypot.f64 re im) 2))) (fma.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) 1 (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 re 4) (pow.f64 (hypot.f64 re im) 4)) (/.f64 1 (fma.f64 re re (pow.f64 (hypot.f64 re im) 2))) (fma.f64 (neg.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2))) (cbrt.f64 (pow.f64 (hypot.f64 re im) 4)) (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 re (sqrt.f64 re)) (sqrt.f64 re) (neg.f64 (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 re (sqrt.f64 re)) (sqrt.f64 re) (*.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2))) (cbrt.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)))) (cbrt.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2))) (*.f64 re re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2))) (sqrt.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2))) (*.f64 re re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 (pow.f64 (hypot.f64 re im) 2) (*.f64 re re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 4))) (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) (*.f64 re re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 re (cbrt.f64 (*.f64 re re))) (cbrt.f64 re) (neg.f64 (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 re (cbrt.f64 (*.f64 re re))) (cbrt.f64 re) (*.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)))))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 re (neg.f64 (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 re (*.f64 (neg.f64 (hypot.f64 re im)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 re (hypot.f64 re im)) (fma.f64 (neg.f64 (hypot.f64 re im)) 1 (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 re (hypot.f64 re im)) (fma.f64 (neg.f64 (cbrt.f64 (hypot.f64 re im))) (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 re (hypot.f64 re im)) (+.f64 (neg.f64 (hypot.f64 re im)) (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (hypot.f64 re im)) re)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (/.f64 1 (+.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 re (hypot.f64 re im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 re (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (-.f64 re (hypot.f64 re im))) (pow.f64 (cbrt.f64 (-.f64 re (hypot.f64 re im))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (-.f64 re (hypot.f64 re im))) 2) (cbrt.f64 (-.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 re (hypot.f64 re im))) (sqrt.f64 (-.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3)) (/.f64 1 (fma.f64 (hypot.f64 re im) (+.f64 re (hypot.f64 re im)) (*.f64 re re))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 re) (sqrt.f64 (hypot.f64 re im))) (-.f64 (sqrt.f64 re) (sqrt.f64 (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (+.f64 re (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (hypot.f64 re im) (+.f64 re (hypot.f64 re im)) (*.f64 re re)) (-.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 re (hypot.f64 re im)) (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (cbrt.f64 (pow.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) 2)) (/.f64 (+.f64 re (hypot.f64 re im)) (cbrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) (/.f64 (+.f64 re (hypot.f64 re im)) (sqrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) (neg.f64 (+.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3)) (fma.f64 (hypot.f64 re im) (+.f64 re (hypot.f64 re im)) (*.f64 re re)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 re 6) (pow.f64 (hypot.f64 re im) 6)) (*.f64 (+.f64 re (hypot.f64 re im)) (fma.f64 (pow.f64 (hypot.f64 re im) 2) (fma.f64 re re (pow.f64 (hypot.f64 re im) 2)) (pow.f64 re 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 re 4) (pow.f64 (hypot.f64 re im) 4)) (*.f64 (+.f64 re (hypot.f64 re im)) (fma.f64 re re (pow.f64 (hypot.f64 re im) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3))) (neg.f64 (fma.f64 (hypot.f64 re im) (+.f64 re (hypot.f64 re im)) (*.f64 re re))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 re 3) (pow.f64 (neg.f64 (hypot.f64 re im)) 3)) (fma.f64 re re (-.f64 (*.f64 (neg.f64 (hypot.f64 re im)) (neg.f64 (hypot.f64 re im))) (*.f64 re (neg.f64 (hypot.f64 re im))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 re re) (*.f64 (neg.f64 (hypot.f64 re im)) (neg.f64 (hypot.f64 re im)))) (-.f64 re (neg.f64 (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 re (hypot.f64 re im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 re (hypot.f64 re im)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (-.f64 re (hypot.f64 re im))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (-.f64 re (hypot.f64 re im))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (-.f64 re (hypot.f64 re im)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (-.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (-.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (-.f64 re (hypot.f64 re im)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (-.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 re 1 (neg.f64 (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 re 1 (*.f64 (neg.f64 (hypot.f64 re im)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (/.f64 1 (+.f64 re (hypot.f64 re im))) (fma.f64 (neg.f64 (hypot.f64 re im)) 1 (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (/.f64 1 (+.f64 re (hypot.f64 re im))) (fma.f64 (neg.f64 (cbrt.f64 (hypot.f64 re im))) (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (/.f64 1 (+.f64 re (hypot.f64 re im))) (+.f64 (neg.f64 (hypot.f64 re im)) (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 re (hypot.f64 re im)) 1 (fma.f64 (neg.f64 (hypot.f64 re im)) 1 (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 re (hypot.f64 re im)) 1 (fma.f64 (neg.f64 (cbrt.f64 (hypot.f64 re im))) (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 re (hypot.f64 re im)) 1 (+.f64 (neg.f64 (hypot.f64 re im)) (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 re (neg.f64 (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 re (*.f64 (neg.f64 (hypot.f64 re im)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 re (hypot.f64 re im)) (fma.f64 (neg.f64 (hypot.f64 re im)) 1 (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 re (hypot.f64 re im)) (fma.f64 (neg.f64 (cbrt.f64 (hypot.f64 re im))) (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 re (hypot.f64 re im)) (+.f64 (neg.f64 (hypot.f64 re im)) (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (neg.f64 (hypot.f64 re im)) re)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 re) (cbrt.f64 (*.f64 re re)) (neg.f64 (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 re) (cbrt.f64 (*.f64 re re)) (*.f64 (neg.f64 (hypot.f64 re im)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (-.f64 re (hypot.f64 re im))) (pow.f64 (cbrt.f64 (-.f64 re (hypot.f64 re im))) 2) (fma.f64 (neg.f64 (hypot.f64 re im)) 1 (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (-.f64 re (hypot.f64 re im))) (pow.f64 (cbrt.f64 (-.f64 re (hypot.f64 re im))) 2) (fma.f64 (neg.f64 (cbrt.f64 (hypot.f64 re im))) (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (-.f64 re (hypot.f64 re im))) (pow.f64 (cbrt.f64 (-.f64 re (hypot.f64 re im))) 2) (+.f64 (neg.f64 (hypot.f64 re im)) (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 re (hypot.f64 re im))) 2) (cbrt.f64 (-.f64 re (hypot.f64 re im))) (fma.f64 (neg.f64 (hypot.f64 re im)) 1 (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 re (hypot.f64 re im))) 2) (cbrt.f64 (-.f64 re (hypot.f64 re im))) (fma.f64 (neg.f64 (cbrt.f64 (hypot.f64 re im))) (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 re (hypot.f64 re im))) 2) (cbrt.f64 (-.f64 re (hypot.f64 re im))) (+.f64 (neg.f64 (hypot.f64 re im)) (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 re re)) (cbrt.f64 re) (neg.f64 (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 re re)) (cbrt.f64 re) (*.f64 (neg.f64 (hypot.f64 re im)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) (neg.f64 (cbrt.f64 (hypot.f64 re im))) re)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (hypot.f64 re im)) (neg.f64 (sqrt.f64 (hypot.f64 re im))) re)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 re) (sqrt.f64 re) (neg.f64 (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 re) (sqrt.f64 re) (*.f64 (neg.f64 (hypot.f64 re im)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 re (hypot.f64 re im))) (sqrt.f64 (-.f64 re (hypot.f64 re im))) (fma.f64 (neg.f64 (hypot.f64 re im)) 1 (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 re (hypot.f64 re im))) (sqrt.f64 (-.f64 re (hypot.f64 re im))) (fma.f64 (neg.f64 (cbrt.f64 (hypot.f64 re im))) (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 re (hypot.f64 re im))) (sqrt.f64 (-.f64 re (hypot.f64 re im))) (+.f64 (neg.f64 (hypot.f64 re im)) (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3)) (/.f64 1 (fma.f64 (hypot.f64 re im) (+.f64 re (hypot.f64 re im)) (*.f64 re re))) (fma.f64 (neg.f64 (hypot.f64 re im)) 1 (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3)) (/.f64 1 (fma.f64 (hypot.f64 re im) (+.f64 re (hypot.f64 re im)) (*.f64 re re))) (fma.f64 (neg.f64 (cbrt.f64 (hypot.f64 re im))) (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3)) (/.f64 1 (fma.f64 (hypot.f64 re im) (+.f64 re (hypot.f64 re im)) (*.f64 re re))) (+.f64 (neg.f64 (hypot.f64 re im)) (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 (neg.f64 (hypot.f64 re im))) (cbrt.f64 (neg.f64 (hypot.f64 re im)))) (cbrt.f64 (neg.f64 (hypot.f64 re im))) re)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (neg.f64 (hypot.f64 re im))) (sqrt.f64 (neg.f64 (hypot.f64 re im))) re)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (cbrt.f64 (pow.f64 re 4))) (sqrt.f64 (cbrt.f64 (*.f64 re re))) (neg.f64 (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (cbrt.f64 (pow.f64 re 4))) (sqrt.f64 (cbrt.f64 (*.f64 re re))) (*.f64 (neg.f64 (hypot.f64 re im)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (sqrt.f64 (hypot.f64 re im))) (sqrt.f64 (hypot.f64 re im)) re)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2))) (cbrt.f64 (hypot.f64 re im)) re)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 (hypot.f64 re im) re)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 re) (sqrt.f64 (hypot.f64 re im))) (-.f64 (sqrt.f64 re) (sqrt.f64 (hypot.f64 re im))) (fma.f64 (neg.f64 (hypot.f64 re im)) 1 (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 re) (sqrt.f64 (hypot.f64 re im))) (-.f64 (sqrt.f64 re) (sqrt.f64 (hypot.f64 re im))) (fma.f64 (neg.f64 (cbrt.f64 (hypot.f64 re im))) (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 re) (sqrt.f64 (hypot.f64 re im))) (-.f64 (sqrt.f64 re) (sqrt.f64 (hypot.f64 re im))) (+.f64 (neg.f64 (hypot.f64 re im)) (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (-.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (-.f64 re (hypot.f64 re im))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (-.f64 re (hypot.f64 re im)))))))) |
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))) (cbrt.f64 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))) (cbrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))) 1/4) (pow.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 2) (sqrt.f64 (+.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cbrt.f64 (*.f64 4 (pow.f64 (+.f64 re (hypot.f64 re im)) 2)))) (sqrt.f64 (cbrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/2) (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 4 (pow.f64 (+.f64 re (hypot.f64 re im)) 2))) 1/2) (pow.f64 (cbrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (*.f64 2 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)))) (sqrt.f64 (-.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))) 3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))) 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))))))) |
| 1× | egg-herbie |
| 425× | fma-def_binary64 |
| 392× | associate-*r*_binary64 |
| 312× | associate-*l*_binary64 |
| 236× | cancel-sign-sub-inv_binary64 |
| 223× | associate-/l*_binary64 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 121 | 1485 |
| 1 | 348 | 1427 |
| 2 | 1139 | 1369 |
| 1× | node limit |
| Inputs |
|---|
im |
(+.f64 re im) |
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im)) |
(-.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im)) (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)))) |
(*.f64 2 re) |
(+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))) |
(-.f64 (+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) |
(-.f64 (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) |
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) |
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))) |
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))) |
(-.f64 (+.f64 (*.f64 5/128 (/.f64 (pow.f64 im 8) (pow.f64 re 7))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))) |
(*.f64 2 re) |
(+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))) |
(-.f64 (+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) |
(-.f64 (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) |
im |
(+.f64 re im) |
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im)) |
(-.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im)) (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)))) |
(*.f64 -1 im) |
(-.f64 re im) |
(-.f64 re (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im)) |
(-.f64 (+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) re) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im)) |
(*.f64 -1 (pow.f64 im 2)) |
(*.f64 -1 (pow.f64 im 2)) |
(*.f64 -1 (pow.f64 im 2)) |
(*.f64 -1 (pow.f64 im 2)) |
(*.f64 -1 (pow.f64 im 2)) |
(*.f64 -1 (pow.f64 im 2)) |
(*.f64 -1 (pow.f64 im 2)) |
(*.f64 -1 (pow.f64 im 2)) |
(*.f64 -1 (pow.f64 im 2)) |
(*.f64 -1 (pow.f64 im 2)) |
(*.f64 -1 (pow.f64 im 2)) |
(*.f64 -1 (pow.f64 im 2)) |
(*.f64 -1 (pow.f64 im 2)) |
(*.f64 -1 (pow.f64 im 2)) |
(*.f64 -1 (pow.f64 im 2)) |
(*.f64 -1 (pow.f64 im 2)) |
(*.f64 -1 (pow.f64 im 2)) |
(*.f64 -1 (pow.f64 im 2)) |
(*.f64 -1 (pow.f64 im 2)) |
(*.f64 -1 (pow.f64 im 2)) |
(*.f64 -1 (pow.f64 im 2)) |
(*.f64 -1 (pow.f64 im 2)) |
(*.f64 -1 (pow.f64 im 2)) |
(*.f64 -1 (pow.f64 im 2)) |
(*.f64 -1 im) |
(-.f64 re im) |
(-.f64 re (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im)) |
(-.f64 (+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) re) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im)) |
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) |
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))) |
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))) |
(-.f64 (+.f64 (*.f64 5/128 (/.f64 (pow.f64 im 8) (pow.f64 re 7))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))) |
(*.f64 2 re) |
(+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))) |
(-.f64 (+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) |
(-.f64 (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) |
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) |
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))) |
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))) |
(-.f64 (+.f64 (*.f64 5/128 (/.f64 (pow.f64 im 8) (pow.f64 re 7))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))) |
(*.f64 -1 im) |
(-.f64 re im) |
(-.f64 re (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im)) |
(-.f64 (+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) re) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im)) |
im |
(+.f64 re im) |
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im)) |
(-.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im)) (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)))) |
(*.f64 (sqrt.f64 2) (sqrt.f64 im)) |
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im))))) |
(+.f64 (*.f64 1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))))) |
(-.f64 (+.f64 (*.f64 1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))))) (*.f64 1/16 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 3)) (sqrt.f64 (/.f64 1 (pow.f64 im 5)))))) |
(*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)) |
(+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)) (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2)))) |
(-.f64 (+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)) (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2)))) (+.f64 (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (pow.f64 im 4))) (*.f64 1/32 (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 (sqrt.f64 2) 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 7))))))) |
(-.f64 (+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)) (+.f64 (*.f64 1/128 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 (sqrt.f64 2) 4)) (sqrt.f64 (/.f64 1 (pow.f64 re 11))))) (+.f64 (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2))) (+.f64 (*.f64 1/32 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 11))) (pow.f64 im 6))) (*.f64 1/64 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 (sqrt.f64 2) 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 11))))))))) (+.f64 (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (pow.f64 im 4))) (*.f64 1/32 (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 (sqrt.f64 2) 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 7))))))) |
| Outputs |
|---|
im |
(+.f64 re im) |
(+.f64 im re) |
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im)) |
(fma.f64 1/2 (/.f64 (*.f64 re re) im) (+.f64 im re)) |
(+.f64 im (fma.f64 1/2 (/.f64 re (/.f64 im re)) re)) |
(+.f64 im (fma.f64 1/2 (*.f64 (/.f64 re im) re) re)) |
(-.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im)) (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)))) |
(+.f64 (fma.f64 1/2 (/.f64 (*.f64 re re) im) (+.f64 im re)) (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)))) |
(+.f64 (+.f64 im (fma.f64 1/2 (/.f64 re (/.f64 im re)) re)) (/.f64 (*.f64 -1/8 (pow.f64 re 4)) (pow.f64 im 3))) |
(fma.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) -1/8 (+.f64 im (fma.f64 1/2 (*.f64 (/.f64 re im) re) re))) |
(*.f64 2 re) |
(*.f64 re 2) |
(+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))) |
(fma.f64 2 re (*.f64 1/2 (/.f64 (*.f64 im im) re))) |
(fma.f64 re 2 (/.f64 (*.f64 1/2 (*.f64 im im)) re)) |
(fma.f64 re 2 (*.f64 1/2 (*.f64 (/.f64 im re) im))) |
(-.f64 (+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) |
(+.f64 (fma.f64 2 re (*.f64 1/2 (/.f64 (*.f64 im im) re))) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) |
(fma.f64 re 2 (fma.f64 1/2 (/.f64 im (/.f64 re im)) (/.f64 (*.f64 -1/8 (pow.f64 im 4)) (pow.f64 re 3)))) |
(fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) -1/8 (fma.f64 re 2 (*.f64 1/2 (*.f64 (/.f64 im re) im)))) |
(-.f64 (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) |
(+.f64 (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 2 re (*.f64 1/2 (/.f64 (*.f64 im im) re)))) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) |
(fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 re 2 (fma.f64 1/2 (/.f64 im (/.f64 re im)) (/.f64 (*.f64 -1/8 (pow.f64 im 4)) (pow.f64 re 3))))) |
(fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) -1/8 (fma.f64 re 2 (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (*.f64 1/2 (*.f64 (/.f64 im re) im))))) |
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) |
(*.f64 (/.f64 (*.f64 im im) re) -1/2) |
(*.f64 (/.f64 im (/.f64 re im)) -1/2) |
(*.f64 (*.f64 (/.f64 im re) im) -1/2) |
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))) |
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 (/.f64 (*.f64 im im) re) -1/2)) |
(fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (*.f64 (/.f64 im (/.f64 re im)) -1/2)) |
(fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (*.f64 (*.f64 (/.f64 im re) im) -1/2)) |
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))) |
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (*.f64 1/2 (/.f64 (*.f64 im im) re)))) |
(-.f64 (/.f64 (*.f64 1/8 (pow.f64 im 4)) (pow.f64 re 3)) (fma.f64 1/2 (/.f64 im (/.f64 re im)) (/.f64 1/16 (/.f64 (pow.f64 re 5) (pow.f64 im 6))))) |
(fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 (*.f64 (/.f64 im re) im) -1/2 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) -1/16))) |
(-.f64 (+.f64 (*.f64 5/128 (/.f64 (pow.f64 im 8) (pow.f64 re 7))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))) |
(-.f64 (fma.f64 5/128 (/.f64 (pow.f64 im 8) (pow.f64 re 7)) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (*.f64 1/2 (/.f64 (*.f64 im im) re)))) |
(-.f64 (fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (/.f64 5/128 (/.f64 (pow.f64 re 7) (pow.f64 im 8)))) (fma.f64 1/2 (/.f64 im (/.f64 re im)) (/.f64 1/16 (/.f64 (pow.f64 re 5) (pow.f64 im 6))))) |
(fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 5/128 (/.f64 (pow.f64 im 8) (pow.f64 re 7)) (fma.f64 (*.f64 (/.f64 im re) im) -1/2 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) -1/16)))) |
(*.f64 2 re) |
(*.f64 re 2) |
(+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))) |
(fma.f64 2 re (*.f64 1/2 (/.f64 (*.f64 im im) re))) |
(fma.f64 re 2 (/.f64 (*.f64 1/2 (*.f64 im im)) re)) |
(fma.f64 re 2 (*.f64 1/2 (*.f64 (/.f64 im re) im))) |
(-.f64 (+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) |
(+.f64 (fma.f64 2 re (*.f64 1/2 (/.f64 (*.f64 im im) re))) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) |
(fma.f64 re 2 (fma.f64 1/2 (/.f64 im (/.f64 re im)) (/.f64 (*.f64 -1/8 (pow.f64 im 4)) (pow.f64 re 3)))) |
(fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) -1/8 (fma.f64 re 2 (*.f64 1/2 (*.f64 (/.f64 im re) im)))) |
(-.f64 (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) |
(+.f64 (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 2 re (*.f64 1/2 (/.f64 (*.f64 im im) re)))) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) |
(fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 re 2 (fma.f64 1/2 (/.f64 im (/.f64 re im)) (/.f64 (*.f64 -1/8 (pow.f64 im 4)) (pow.f64 re 3))))) |
(fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) -1/8 (fma.f64 re 2 (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (*.f64 1/2 (*.f64 (/.f64 im re) im))))) |
im |
(+.f64 re im) |
(+.f64 im re) |
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im)) |
(fma.f64 1/2 (/.f64 (*.f64 re re) im) (+.f64 im re)) |
(+.f64 im (fma.f64 1/2 (/.f64 re (/.f64 im re)) re)) |
(+.f64 im (fma.f64 1/2 (*.f64 (/.f64 re im) re) re)) |
(-.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im)) (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)))) |
(+.f64 (fma.f64 1/2 (/.f64 (*.f64 re re) im) (+.f64 im re)) (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)))) |
(+.f64 (+.f64 im (fma.f64 1/2 (/.f64 re (/.f64 im re)) re)) (/.f64 (*.f64 -1/8 (pow.f64 re 4)) (pow.f64 im 3))) |
(fma.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) -1/8 (+.f64 im (fma.f64 1/2 (*.f64 (/.f64 re im) re) re))) |
(*.f64 -1 im) |
(neg.f64 im) |
(-.f64 re im) |
(-.f64 re (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im)) |
(-.f64 re (fma.f64 1/2 (/.f64 (*.f64 re re) im) im)) |
(-.f64 re (fma.f64 1/2 (/.f64 re (/.f64 im re)) im)) |
(-.f64 re (fma.f64 1/2 (*.f64 (/.f64 re im) re) im)) |
(-.f64 (+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) re) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im)) |
(-.f64 (fma.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) re) (fma.f64 1/2 (/.f64 (*.f64 re re) im) im)) |
(-.f64 (fma.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) re) (fma.f64 1/2 (/.f64 re (/.f64 im re)) im)) |
(-.f64 (fma.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) re) (fma.f64 1/2 (*.f64 (/.f64 re im) re) im)) |
(*.f64 -1 (pow.f64 im 2)) |
(neg.f64 (*.f64 im im)) |
(*.f64 -1 (pow.f64 im 2)) |
(neg.f64 (*.f64 im im)) |
(*.f64 -1 (pow.f64 im 2)) |
(neg.f64 (*.f64 im im)) |
(*.f64 -1 (pow.f64 im 2)) |
(neg.f64 (*.f64 im im)) |
(*.f64 -1 (pow.f64 im 2)) |
(neg.f64 (*.f64 im im)) |
(*.f64 -1 (pow.f64 im 2)) |
(neg.f64 (*.f64 im im)) |
(*.f64 -1 (pow.f64 im 2)) |
(neg.f64 (*.f64 im im)) |
(*.f64 -1 (pow.f64 im 2)) |
(neg.f64 (*.f64 im im)) |
(*.f64 -1 (pow.f64 im 2)) |
(neg.f64 (*.f64 im im)) |
(*.f64 -1 (pow.f64 im 2)) |
(neg.f64 (*.f64 im im)) |
(*.f64 -1 (pow.f64 im 2)) |
(neg.f64 (*.f64 im im)) |
(*.f64 -1 (pow.f64 im 2)) |
(neg.f64 (*.f64 im im)) |
(*.f64 -1 (pow.f64 im 2)) |
(neg.f64 (*.f64 im im)) |
(*.f64 -1 (pow.f64 im 2)) |
(neg.f64 (*.f64 im im)) |
(*.f64 -1 (pow.f64 im 2)) |
(neg.f64 (*.f64 im im)) |
(*.f64 -1 (pow.f64 im 2)) |
(neg.f64 (*.f64 im im)) |
(*.f64 -1 (pow.f64 im 2)) |
(neg.f64 (*.f64 im im)) |
(*.f64 -1 (pow.f64 im 2)) |
(neg.f64 (*.f64 im im)) |
(*.f64 -1 (pow.f64 im 2)) |
(neg.f64 (*.f64 im im)) |
(*.f64 -1 (pow.f64 im 2)) |
(neg.f64 (*.f64 im im)) |
(*.f64 -1 (pow.f64 im 2)) |
(neg.f64 (*.f64 im im)) |
(*.f64 -1 (pow.f64 im 2)) |
(neg.f64 (*.f64 im im)) |
(*.f64 -1 (pow.f64 im 2)) |
(neg.f64 (*.f64 im im)) |
(*.f64 -1 (pow.f64 im 2)) |
(neg.f64 (*.f64 im im)) |
(*.f64 -1 im) |
(neg.f64 im) |
(-.f64 re im) |
(-.f64 re (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im)) |
(-.f64 re (fma.f64 1/2 (/.f64 (*.f64 re re) im) im)) |
(-.f64 re (fma.f64 1/2 (/.f64 re (/.f64 im re)) im)) |
(-.f64 re (fma.f64 1/2 (*.f64 (/.f64 re im) re) im)) |
(-.f64 (+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) re) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im)) |
(-.f64 (fma.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) re) (fma.f64 1/2 (/.f64 (*.f64 re re) im) im)) |
(-.f64 (fma.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) re) (fma.f64 1/2 (/.f64 re (/.f64 im re)) im)) |
(-.f64 (fma.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) re) (fma.f64 1/2 (*.f64 (/.f64 re im) re) im)) |
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) |
(*.f64 (/.f64 (*.f64 im im) re) -1/2) |
(*.f64 (/.f64 im (/.f64 re im)) -1/2) |
(*.f64 (*.f64 (/.f64 im re) im) -1/2) |
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))) |
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 (/.f64 (*.f64 im im) re) -1/2)) |
(fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (*.f64 (/.f64 im (/.f64 re im)) -1/2)) |
(fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (*.f64 (*.f64 (/.f64 im re) im) -1/2)) |
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))) |
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (*.f64 1/2 (/.f64 (*.f64 im im) re)))) |
(-.f64 (/.f64 (*.f64 1/8 (pow.f64 im 4)) (pow.f64 re 3)) (fma.f64 1/2 (/.f64 im (/.f64 re im)) (/.f64 1/16 (/.f64 (pow.f64 re 5) (pow.f64 im 6))))) |
(fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 (*.f64 (/.f64 im re) im) -1/2 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) -1/16))) |
(-.f64 (+.f64 (*.f64 5/128 (/.f64 (pow.f64 im 8) (pow.f64 re 7))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))) |
(-.f64 (fma.f64 5/128 (/.f64 (pow.f64 im 8) (pow.f64 re 7)) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (*.f64 1/2 (/.f64 (*.f64 im im) re)))) |
(-.f64 (fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (/.f64 5/128 (/.f64 (pow.f64 re 7) (pow.f64 im 8)))) (fma.f64 1/2 (/.f64 im (/.f64 re im)) (/.f64 1/16 (/.f64 (pow.f64 re 5) (pow.f64 im 6))))) |
(fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 5/128 (/.f64 (pow.f64 im 8) (pow.f64 re 7)) (fma.f64 (*.f64 (/.f64 im re) im) -1/2 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) -1/16)))) |
(*.f64 2 re) |
(*.f64 re 2) |
(+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))) |
(fma.f64 2 re (*.f64 1/2 (/.f64 (*.f64 im im) re))) |
(fma.f64 re 2 (/.f64 (*.f64 1/2 (*.f64 im im)) re)) |
(fma.f64 re 2 (*.f64 1/2 (*.f64 (/.f64 im re) im))) |
(-.f64 (+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) |
(+.f64 (fma.f64 2 re (*.f64 1/2 (/.f64 (*.f64 im im) re))) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) |
(fma.f64 re 2 (fma.f64 1/2 (/.f64 im (/.f64 re im)) (/.f64 (*.f64 -1/8 (pow.f64 im 4)) (pow.f64 re 3)))) |
(fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) -1/8 (fma.f64 re 2 (*.f64 1/2 (*.f64 (/.f64 im re) im)))) |
(-.f64 (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) |
(+.f64 (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 2 re (*.f64 1/2 (/.f64 (*.f64 im im) re)))) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) |
(fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 re 2 (fma.f64 1/2 (/.f64 im (/.f64 re im)) (/.f64 (*.f64 -1/8 (pow.f64 im 4)) (pow.f64 re 3))))) |
(fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) -1/8 (fma.f64 re 2 (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (*.f64 1/2 (*.f64 (/.f64 im re) im))))) |
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) |
(*.f64 (/.f64 (*.f64 im im) re) -1/2) |
(*.f64 (/.f64 im (/.f64 re im)) -1/2) |
(*.f64 (*.f64 (/.f64 im re) im) -1/2) |
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))) |
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 (/.f64 (*.f64 im im) re) -1/2)) |
(fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (*.f64 (/.f64 im (/.f64 re im)) -1/2)) |
(fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (*.f64 (*.f64 (/.f64 im re) im) -1/2)) |
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))) |
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (*.f64 1/2 (/.f64 (*.f64 im im) re)))) |
(-.f64 (/.f64 (*.f64 1/8 (pow.f64 im 4)) (pow.f64 re 3)) (fma.f64 1/2 (/.f64 im (/.f64 re im)) (/.f64 1/16 (/.f64 (pow.f64 re 5) (pow.f64 im 6))))) |
(fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 (*.f64 (/.f64 im re) im) -1/2 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) -1/16))) |
(-.f64 (+.f64 (*.f64 5/128 (/.f64 (pow.f64 im 8) (pow.f64 re 7))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))) |
(-.f64 (fma.f64 5/128 (/.f64 (pow.f64 im 8) (pow.f64 re 7)) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (*.f64 1/2 (/.f64 (*.f64 im im) re)))) |
(-.f64 (fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (/.f64 5/128 (/.f64 (pow.f64 re 7) (pow.f64 im 8)))) (fma.f64 1/2 (/.f64 im (/.f64 re im)) (/.f64 1/16 (/.f64 (pow.f64 re 5) (pow.f64 im 6))))) |
(fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 5/128 (/.f64 (pow.f64 im 8) (pow.f64 re 7)) (fma.f64 (*.f64 (/.f64 im re) im) -1/2 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) -1/16)))) |
(*.f64 -1 im) |
(neg.f64 im) |
(-.f64 re im) |
(-.f64 re (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im)) |
(-.f64 re (fma.f64 1/2 (/.f64 (*.f64 re re) im) im)) |
(-.f64 re (fma.f64 1/2 (/.f64 re (/.f64 im re)) im)) |
(-.f64 re (fma.f64 1/2 (*.f64 (/.f64 re im) re) im)) |
(-.f64 (+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) re) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im)) |
(-.f64 (fma.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) re) (fma.f64 1/2 (/.f64 (*.f64 re re) im) im)) |
(-.f64 (fma.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) re) (fma.f64 1/2 (/.f64 re (/.f64 im re)) im)) |
(-.f64 (fma.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) re) (fma.f64 1/2 (*.f64 (/.f64 re im) re) im)) |
im |
(+.f64 re im) |
(+.f64 im re) |
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im)) |
(fma.f64 1/2 (/.f64 (*.f64 re re) im) (+.f64 im re)) |
(+.f64 im (fma.f64 1/2 (/.f64 re (/.f64 im re)) re)) |
(+.f64 im (fma.f64 1/2 (*.f64 (/.f64 re im) re) re)) |
(-.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im)) (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)))) |
(+.f64 (fma.f64 1/2 (/.f64 (*.f64 re re) im) (+.f64 im re)) (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)))) |
(+.f64 (+.f64 im (fma.f64 1/2 (/.f64 re (/.f64 im re)) re)) (/.f64 (*.f64 -1/8 (pow.f64 re 4)) (pow.f64 im 3))) |
(fma.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) -1/8 (+.f64 im (fma.f64 1/2 (*.f64 (/.f64 re im) re) re))) |
(*.f64 (sqrt.f64 2) (sqrt.f64 im)) |
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im))))) |
(fma.f64 (sqrt.f64 2) (sqrt.f64 im) (*.f64 1/2 (*.f64 (*.f64 re (sqrt.f64 2)) (sqrt.f64 (/.f64 1 im))))) |
(fma.f64 1/2 (*.f64 re (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im))) |
(*.f64 (sqrt.f64 2) (+.f64 (sqrt.f64 im) (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 re 1/2)))) |
(+.f64 (*.f64 1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))))) |
(fma.f64 1/8 (*.f64 (*.f64 (*.f64 re re) (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) (fma.f64 (sqrt.f64 2) (sqrt.f64 im) (*.f64 1/2 (*.f64 (*.f64 re (sqrt.f64 2)) (sqrt.f64 (/.f64 1 im)))))) |
(fma.f64 1/8 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 re re) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (fma.f64 1/2 (*.f64 re (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))) |
(fma.f64 1/8 (*.f64 re (*.f64 re (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 im 3)))))) (*.f64 (sqrt.f64 2) (+.f64 (sqrt.f64 im) (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 re 1/2))))) |
(-.f64 (+.f64 (*.f64 1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))))) (*.f64 1/16 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 3)) (sqrt.f64 (/.f64 1 (pow.f64 im 5)))))) |
(+.f64 (fma.f64 1/8 (*.f64 (*.f64 (*.f64 re re) (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) (fma.f64 (sqrt.f64 2) (sqrt.f64 im) (*.f64 1/2 (*.f64 (*.f64 re (sqrt.f64 2)) (sqrt.f64 (/.f64 1 im)))))) (*.f64 -1/16 (*.f64 (*.f64 (pow.f64 re 3) (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 5)))))) |
(+.f64 (fma.f64 1/8 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 re re) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (fma.f64 1/2 (*.f64 re (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))) (*.f64 (*.f64 (*.f64 (pow.f64 re 3) (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 5)))) -1/16)) |
(+.f64 (*.f64 (sqrt.f64 2) (+.f64 (*.f64 re (*.f64 (*.f64 re (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) 1/8)) (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 re 1/2)))) (*.f64 (sqrt.f64 2) (-.f64 (sqrt.f64 im) (*.f64 (pow.f64 re 3) (*.f64 1/16 (sqrt.f64 (/.f64 1 (pow.f64 im 5)))))))) |
(*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)) |
(*.f64 2 (sqrt.f64 re)) |
(+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)) (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2)))) |
(fma.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re) (*.f64 1/4 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))))) |
(fma.f64 2 (sqrt.f64 re) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 (*.f64 im im) 1/4))) |
(fma.f64 2 (sqrt.f64 re) (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 1/4 im)))) |
(-.f64 (+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)) (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2)))) (+.f64 (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (pow.f64 im 4))) (*.f64 1/32 (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 (sqrt.f64 2) 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 7))))))) |
(-.f64 (fma.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re) (*.f64 1/4 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))))) (fma.f64 1/16 (*.f64 (pow.f64 im 4) (sqrt.f64 (/.f64 1 (pow.f64 re 7)))) (*.f64 1/32 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (/.f64 (pow.f64 im 4) (pow.f64 (sqrt.f64 2) 2)))))) |
(-.f64 (fma.f64 2 (sqrt.f64 re) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 (*.f64 im im) 1/4))) (fma.f64 1/32 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (/.f64 (pow.f64 im 4) 2)) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (*.f64 (pow.f64 im 4) 1/16)))) |
(-.f64 (fma.f64 2 (sqrt.f64 re) (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 1/4 im)))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (+.f64 (*.f64 (pow.f64 im 4) 1/16) (*.f64 1/32 (/.f64 (pow.f64 im 4) 2))))) |
(-.f64 (+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)) (+.f64 (*.f64 1/128 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 (sqrt.f64 2) 4)) (sqrt.f64 (/.f64 1 (pow.f64 re 11))))) (+.f64 (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2))) (+.f64 (*.f64 1/32 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 11))) (pow.f64 im 6))) (*.f64 1/64 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 (sqrt.f64 2) 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 11))))))))) (+.f64 (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (pow.f64 im 4))) (*.f64 1/32 (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 (sqrt.f64 2) 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 7))))))) |
(-.f64 (fma.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re) (fma.f64 1/128 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 (sqrt.f64 2) 4)) (sqrt.f64 (/.f64 1 (pow.f64 re 11)))) (fma.f64 1/4 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (fma.f64 1/32 (*.f64 (pow.f64 im 6) (sqrt.f64 (/.f64 1 (pow.f64 re 11)))) (*.f64 1/64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 11))) (/.f64 (pow.f64 im 6) (pow.f64 (sqrt.f64 2) 2)))))))) (fma.f64 1/16 (*.f64 (pow.f64 im 4) (sqrt.f64 (/.f64 1 (pow.f64 re 7)))) (*.f64 1/32 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (/.f64 (pow.f64 im 4) (pow.f64 (sqrt.f64 2) 2)))))) |
(-.f64 (fma.f64 2 (sqrt.f64 re) (fma.f64 1/128 (*.f64 (/.f64 (pow.f64 im 6) 4) (sqrt.f64 (/.f64 1 (pow.f64 re 11)))) (fma.f64 1/4 (*.f64 im (*.f64 im (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) (fma.f64 1/32 (*.f64 (pow.f64 im 6) (sqrt.f64 (/.f64 1 (pow.f64 re 11)))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 11))) (/.f64 (*.f64 1/64 (pow.f64 im 6)) 2)))))) (fma.f64 1/32 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (/.f64 (pow.f64 im 4) 2)) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (*.f64 (pow.f64 im 4) 1/16)))) |
(+.f64 (/.f64 (*.f64 (pow.f64 im 6) (sqrt.f64 (/.f64 1 (pow.f64 re 11)))) 512) (-.f64 (fma.f64 2 (sqrt.f64 re) (fma.f64 (*.f64 im im) (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 11))) (+.f64 (*.f64 (pow.f64 im 6) 1/32) (/.f64 1/64 (/.f64 2 (pow.f64 im 6))))))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (+.f64 (*.f64 (pow.f64 im 4) 1/16) (*.f64 1/32 (/.f64 (pow.f64 im 4) 2)))))) |
6 alts after pruning (3 fresh and 3 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 304 | 1 | 305 |
| Fresh | 1 | 2 | 3 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 3 | 3 |
| Total | 306 | 6 | 312 |
| Status | Error | Program |
|---|---|---|
| 52.3b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (*.f64 (/.f64 im re) im) -1/2)))) | |
| 39.2b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (/.f64 (neg.f64 (*.f64 im im)) (-.f64 re (hypot.f64 re im)))))) | |
| ✓ | 17.0b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) re)))) |
| ✓ | 45.6b | (*.f64 1/2 (sqrt.f64 (*.f64 2 im))) |
| 48.0b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im)))) | |
| ✓ | 14.6b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))) |
Compiled 8445 to 4322 computations (48.8% saved)
Total 4.0b remaining (42.5%)
Threshold costs 0b (0%)
Compiled 450 to 290 computations (35.6% saved)
| 1× | left-value |
1 calls:
| 0.0ms | (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))) |
| Iters | Point | Range | ||||
|---|---|---|---|---|---|---|
0.0 | ∈ [ | 0.0 | , | 2.1456399325309e-149 | ] | |
Compiled 15 to 10 computations (33.3% saved)
| 1× | egg-herbie |
| 7× | *-commutative_binary64 |
| 3× | +-commutative_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 28 | 58 |
| 1 | 38 | 58 |
| 1× | saturated |
| Inputs |
|---|
(if (<=.f64 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))) 0) (*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (*.f64 (/.f64 im re) im) -1/2)))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))) |
| Outputs |
|---|
(if (<=.f64 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))) 0) (*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (*.f64 (/.f64 im re) im) -1/2)))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))) |
(if (<=.f64 (sqrt.f64 (*.f64 2 (+.f64 re (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))))) 0) (*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (*.f64 im (/.f64 im re)) -1/2)))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))) |
| 1× | fuel |
Compiled 157 to 115 computations (26.8% saved)
Loading profile data...