Details

Time bar (total: 3.6s)

analyze595.0ms (16.4%)

Algorithm
search
Search
TrueOtherFalseIter
0%50%50%0
0%50%50%1
0%50%50%2
0%50%50%3
6.2%43.7%50%4
12.5%37.5%50%5
18.7%31.2%50%6
23.4%26.5%50%7
27.3%22.6%50%8
30%19.9%50%9
32.2%17.8%50%10
33.7%16.3%50%11
34.8%15.2%50%12
35.5%14.4%50%13
36.1%13.8%50%14
Compiler

Compiled 20 to 14 computations (30% saved)

sample1.8s (49.7%)

Results
817.0ms6265×body128valid
337.0ms652×body2048valid
329.0ms520×body4096valid
194.0ms439×body1024valid
88.0ms269×body512valid
25.0ms111×body256valid

preprocess32.0ms (0.9%)

Algorithm
egg-herbie
Rules
316×fma-def_binary64
164×fma-neg_binary64
86×distribute-rgt-in_binary64
48×distribute-lft-in_binary64
48×cancel-sign-sub-inv_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01930
13330
25130
38830
413530
518530
630530
747830
868230
983330
10108330
11124330
12126130
13126530
022
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
1
Outputs
0
1
Call 2
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 (hypot.f64 re im) re))))
(*.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 (hypot.f64 re im) im))))
Compiler

Compiled 17 to 12 computations (29.4% saved)

simplify31.0ms (0.9%)

Algorithm
egg-herbie
Rules
201×fma-def_binary64
142×fma-neg_binary64
51×distribute-rgt-in_binary64
43×cancel-sign-sub-inv_binary64
27×sub-neg_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01315
12015
23315
35315
48015
510915
618015
728615
841015
949315
1061015
1168215
1270515
1374415
1479315
1585615
1689215
1790115
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
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 (hypot.f64 re im) re))))

prune4.0ms (0.1%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New112
Fresh101
Picked000
Done000
Total213
Error
13.0b
Counts
3 → 1
Alt Table
StatusErrorProgram
13.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))))
Compiler

Compiled 51 to 37 computations (27.5% saved)

localize8.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.3b
(sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))
0.8b
(-.f64 (hypot.f64 re im) re)

series13.0ms (0.3%)

Counts
2 → 32
Calls

12 calls:

TimeVariablePointExpression
2.0ms
im
@0
(sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))
1.0ms
re
@inf
(sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))
1.0ms
im
@inf
(sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))
1.0ms
re
@inf
(-.f64 (hypot.f64 re im) re)
1.0ms
re
@0
(sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))

rewrite41.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
811×log1p-expm1-u_binary64
811×expm1-log1p-u_binary64
89×add-sqr-sqrt_binary64
85×pow1_binary64
84×*-un-lft-identity_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0819
117319
2220619
Stop Event
node limit
Counts
2 → 62
Calls
Call 1
Inputs
(-.f64 (hypot.f64 re im) re)
(sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (hypot.f64 re im) (neg.f64 re))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (hypot.f64 re im) (*.f64 (neg.f64 re) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (hypot.f64 re im) re) (fma.f64 (neg.f64 re) 1 re))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (hypot.f64 re im) re) (fma.f64 (neg.f64 (cbrt.f64 re)) (pow.f64 (cbrt.f64 re) 2) re))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (hypot.f64 re im) re) (fma.f64 (neg.f64 (sqrt.f64 re)) (sqrt.f64 re) re))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 re) (hypot.f64 re im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (hypot.f64 re im) re) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 (hypot.f64 re im) re))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (-.f64 (hypot.f64 re im) re)) (pow.f64 (cbrt.f64 (-.f64 (hypot.f64 re im) re)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (-.f64 (hypot.f64 re im) re)) 2) (cbrt.f64 (-.f64 (hypot.f64 re im) re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) (sqrt.f64 (-.f64 (hypot.f64 re im) re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (hypot.f64 re im) 3) (pow.f64 re 3)) (/.f64 1 (+.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 re (+.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 1 (+.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 re)) (-.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 re (+.f64 re (hypot.f64 re im)))) (-.f64 (pow.f64 (hypot.f64 re im) 3) (pow.f64 re 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 re (hypot.f64 re im)) (-.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 re re))))))) (#(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 re (+.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 re (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (hypot.f64 re im) 3) (pow.f64 re 3))) (neg.f64 (+.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 re (+.f64 re (hypot.f64 re im))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 re re))) (neg.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 (neg.f64 re) 3)) (+.f64 (pow.f64 (hypot.f64 re im) 2) (-.f64 (*.f64 (neg.f64 re) (neg.f64 re)) (*.f64 (hypot.f64 re im) (neg.f64 re)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 (neg.f64 re) (neg.f64 re))) (-.f64 (hypot.f64 re im) (neg.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 (hypot.f64 re im) re) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 (hypot.f64 re im) re) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (-.f64 (hypot.f64 re im) re)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (-.f64 (hypot.f64 re im) re) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (-.f64 (hypot.f64 re im) re)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (-.f64 (hypot.f64 re im) re))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (-.f64 (hypot.f64 re im) re) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (-.f64 (hypot.f64 re im) re)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (-.f64 (hypot.f64 re im) re)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (-.f64 (hypot.f64 re im) re)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (hypot.f64 re im) (neg.f64 re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (cbrt.f64 (hypot.f64 re im)) (neg.f64 re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (-.f64 (hypot.f64 re im) re)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2))) (cbrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2)) (cbrt.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2) 1/4) (pow.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) (sqrt.f64 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 2) (sqrt.f64 (-.f64 (hypot.f64 re im) re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2)) 2)) (sqrt.f64 (cbrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/2) (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2)) 2) 1/2) (pow.f64 (cbrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2) 3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2) 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2))))))))

simplify33.0ms (0.9%)

Algorithm
egg-herbie
Rules
631×fma-def_binary64
507×times-frac_binary64
391×associate-/l*_binary64
296×associate-/r*_binary64
187×associate-*l/_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01561087
14691055
215311011
Stop Event
node limit
Counts
94 → 110
Calls
Call 1
Inputs
im
(+.f64 (*.f64 -1 re) im)
(+.f64 (*.f64 -1 re) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im))
(+.f64 (*.f64 -1 re) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im)))
(*.f64 1/2 (/.f64 (pow.f64 im 2) re))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 (*.f64 -1/8 (pow.f64 im 4)) 2) (*.f64 1/16 (pow.f64 im 8))) (pow.f64 re 7))) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(*.f64 -2 re)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -2 re))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -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 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -2 re))))
(*.f64 1/2 (/.f64 (pow.f64 im 2) re))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (*.f64 1/16 (/.f64 1 (pow.f64 re 6)))) (pow.f64 im 8)) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
im
(+.f64 (*.f64 -1 re) im)
(+.f64 (*.f64 -1 re) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im))
(+.f64 (*.f64 -1 re) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im)))
(*.f64 -1 im)
(+.f64 (*.f64 -1 re) (*.f64 -1 im))
(+.f64 (*.f64 -1 re) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(+.f64 (*.f64 -1 re) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))))
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(+.f64 (*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
(+.f64 (*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 2))) (sqrt.f64 (/.f64 1 im))))))
(+.f64 (*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 2))) (sqrt.f64 (/.f64 1 im)))) (*.f64 1/4 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 3))) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))
(+.f64 (*.f64 -1/16 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re))))
(+.f64 (*.f64 -1/16 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (pow.f64 (*.f64 -1/16 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) 2)) (pow.f64 im 5))) (sqrt.f64 1/2)) (sqrt.f64 re))) (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))))
(+.f64 (*.f64 -1/16 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (*.f64 1/16 (/.f64 1 (pow.f64 re 6)))) re)) (*.f64 -1/16 (/.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (pow.f64 (*.f64 -1/16 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) 2)) (*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 re 2))))) (pow.f64 im 7))) (sqrt.f64 1/2)) (sqrt.f64 re))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (pow.f64 (*.f64 -1/16 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) 2)) (pow.f64 im 5))) (sqrt.f64 1/2)) (sqrt.f64 re))) (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re))))))
Outputs
im
(+.f64 (*.f64 -1 re) im)
(fma.f64 -1 re im)
(-.f64 im re)
(+.f64 (*.f64 -1 re) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im))
(fma.f64 -1 re (fma.f64 1/2 (/.f64 (*.f64 re re) im) im))
(-.f64 (fma.f64 1/2 (/.f64 re (/.f64 im re)) im) re)
(-.f64 (fma.f64 1/2 (*.f64 (/.f64 re im) re) im) re)
(+.f64 (*.f64 -1 re) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im)))
(fma.f64 -1 re (fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 (*.f64 re re) im) im)))
(-.f64 (fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 re (/.f64 im re)) im)) re)
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (-.f64 (fma.f64 1/2 (*.f64 (/.f64 re im) re) im) re))
(*.f64 1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 1/2 (/.f64 (*.f64 im im) re))
(*.f64 1/2 (/.f64 im (/.f64 re im)))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(fma.f64 1/2 (/.f64 im (/.f64 re im)) (/.f64 (*.f64 -1/8 (pow.f64 im 4)) (pow.f64 re 3)))
(fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (*.f64 1/2 (/.f64 im (/.f64 re im))))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(fma.f64 1/2 (/.f64 im (/.f64 re im)) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (/.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 1/2 (/.f64 im (/.f64 re im)) (/.f64 (pow.f64 im 6) (/.f64 (pow.f64 re 5) 1/16))))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 (*.f64 -1/8 (pow.f64 im 4)) 2) (*.f64 1/16 (pow.f64 im 8))) (pow.f64 re 7))) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 -1/2 (/.f64 (+.f64 (pow.f64 (*.f64 -1/8 (pow.f64 im 4)) 2) (*.f64 1/16 (pow.f64 im 8))) (pow.f64 re 7)) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(fma.f64 1/2 (/.f64 im (/.f64 re im)) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (/.f64 (*.f64 -1/2 (fma.f64 1/16 (pow.f64 im 8) (*.f64 (pow.f64 im 8) 1/64))) (pow.f64 re 7)))))
(fma.f64 1/2 (/.f64 im (/.f64 re im)) (fma.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 (/.f64 -1/2 (pow.f64 re 7)) (*.f64 (pow.f64 im 8) 5/64)))))
(*.f64 -2 re)
(*.f64 re -2)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -2 re))
(fma.f64 -1/2 (/.f64 (*.f64 im im) re) (*.f64 re -2))
(fma.f64 (/.f64 im (/.f64 re im)) -1/2 (*.f64 re -2))
(fma.f64 re -2 (*.f64 (/.f64 im (/.f64 re im)) -1/2))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -2 re)))
(fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 -1/2 (/.f64 (*.f64 im im) re) (*.f64 re -2)))
(fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8 (fma.f64 (/.f64 im (/.f64 re im)) -1/2 (*.f64 re -2)))
(fma.f64 re -2 (fma.f64 (/.f64 im (/.f64 re im)) -1/2 (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8)))
(+.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 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -2 re))))
(fma.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 -1/2 (/.f64 (*.f64 im im) re) (*.f64 re -2))))
(fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8 (fma.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) -1/16 (fma.f64 (/.f64 im (/.f64 re im)) -1/2 (*.f64 re -2))))
(fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8 (fma.f64 (/.f64 im (/.f64 re im)) -1/2 (fma.f64 re -2 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) -1/16))))
(*.f64 1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 1/2 (/.f64 (*.f64 im im) re))
(*.f64 1/2 (/.f64 im (/.f64 re im)))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(fma.f64 1/2 (/.f64 im (/.f64 re im)) (/.f64 (*.f64 -1/8 (pow.f64 im 4)) (pow.f64 re 3)))
(fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (*.f64 1/2 (/.f64 im (/.f64 re im))))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(fma.f64 1/2 (/.f64 im (/.f64 re im)) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (/.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 1/2 (/.f64 im (/.f64 re im)) (/.f64 (pow.f64 im 6) (/.f64 (pow.f64 re 5) 1/16))))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (*.f64 1/16 (/.f64 1 (pow.f64 re 6)))) (pow.f64 im 8)) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (fma.f64 -1/2 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (/.f64 1/16 (pow.f64 re 6))) (/.f64 re (pow.f64 im 8))) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(fma.f64 1/2 (/.f64 im (/.f64 re im)) (fma.f64 -1/2 (/.f64 (pow.f64 im 8) (/.f64 re (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (/.f64 1/16 (pow.f64 re 6))))) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (/.f64 (*.f64 1/16 (pow.f64 im 6)) (pow.f64 re 5)))))
(fma.f64 1/2 (/.f64 im (/.f64 re im)) (fma.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 (fma.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) -1/2 (/.f64 -1/32 (pow.f64 re 6))) (/.f64 re (pow.f64 im 8))))))
im
(+.f64 (*.f64 -1 re) im)
(fma.f64 -1 re im)
(-.f64 im re)
(+.f64 (*.f64 -1 re) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im))
(fma.f64 -1 re (fma.f64 1/2 (/.f64 (*.f64 re re) im) im))
(-.f64 (fma.f64 1/2 (/.f64 re (/.f64 im re)) im) re)
(-.f64 (fma.f64 1/2 (*.f64 (/.f64 re im) re) im) re)
(+.f64 (*.f64 -1 re) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im)))
(fma.f64 -1 re (fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 (*.f64 re re) im) im)))
(-.f64 (fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 re (/.f64 im re)) im)) re)
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (-.f64 (fma.f64 1/2 (*.f64 (/.f64 re im) re) im) re))
(*.f64 -1 im)
(neg.f64 im)
(+.f64 (*.f64 -1 re) (*.f64 -1 im))
(*.f64 -1 (+.f64 re im))
(-.f64 (neg.f64 re) im)
(+.f64 (*.f64 -1 re) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(fma.f64 -1 re (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im)))
(-.f64 (-.f64 (/.f64 -1/2 (/.f64 im (*.f64 re re))) im) re)
(-.f64 (*.f64 (/.f64 -1/2 im) (*.f64 re re)) (+.f64 im re))
(+.f64 (*.f64 -1 re) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))))
(fma.f64 -1 re (fma.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))))
(-.f64 (-.f64 (fma.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) 1/8 (/.f64 -1/2 (/.f64 im (*.f64 re re)))) im) re)
(-.f64 (fma.f64 (*.f64 (/.f64 re im) re) -1/2 (*.f64 (/.f64 1/8 (pow.f64 im 3)) (pow.f64 re 4))) (+.f64 im re))
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(+.f64 (*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (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) (sqrt.f64 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 (*.f64 (*.f64 re (sqrt.f64 (/.f64 1 im))) -1/2) (sqrt.f64 im)))
(+.f64 (*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 2))) (sqrt.f64 (/.f64 1 im))))))
(fma.f64 -1/2 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 (/.f64 1 im)))) (fma.f64 (sqrt.f64 2) (sqrt.f64 im) (*.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 (*.f64 re re) (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2))) (sqrt.f64 (/.f64 1 im)))))))
(fma.f64 -1/2 (*.f64 re (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 im)))) (fma.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 re (*.f64 re (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)))))) (*.f64 (sqrt.f64 2) (sqrt.f64 im))))
(fma.f64 (sqrt.f64 2) (sqrt.f64 im) (*.f64 (sqrt.f64 (/.f64 1 im)) (+.f64 (*.f64 1/2 (*.f64 (+.f64 (/.f64 1/2 im) (*.f64 (/.f64 1 im) -1/4)) (*.f64 (*.f64 re re) (sqrt.f64 2)))) (*.f64 (*.f64 -1/2 re) (sqrt.f64 2)))))
(+.f64 (*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 2))) (sqrt.f64 (/.f64 1 im)))) (*.f64 1/4 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 3))) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))))))
(fma.f64 -1/2 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 (/.f64 1 im)))) (fma.f64 (sqrt.f64 2) (sqrt.f64 im) (fma.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 (*.f64 re re) (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2))) (sqrt.f64 (/.f64 1 im)))) (*.f64 1/4 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 (pow.f64 re 3) (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2))) (sqrt.f64 (/.f64 1 (pow.f64 im 3)))))))))
(fma.f64 -1/2 (*.f64 re (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 im)))) (fma.f64 (sqrt.f64 2) (sqrt.f64 im) (fma.f64 1/4 (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 re 3) (*.f64 (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3)))))) (*.f64 (*.f64 (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (*.f64 (*.f64 re re) (sqrt.f64 2))) (*.f64 (sqrt.f64 (/.f64 1 im)) 1/2)))))
(+.f64 (*.f64 (sqrt.f64 2) (+.f64 (sqrt.f64 im) (*.f64 (*.f64 (*.f64 re re) (*.f64 (+.f64 (/.f64 1/2 im) (*.f64 (/.f64 1 im) -1/4)) (sqrt.f64 (/.f64 1 im)))) 1/2))) (*.f64 (sqrt.f64 2) (+.f64 (*.f64 (*.f64 (+.f64 (/.f64 1/2 im) (*.f64 (/.f64 1 im) -1/4)) (*.f64 (pow.f64 re 3) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) 1/4) (*.f64 (*.f64 re (sqrt.f64 (/.f64 1 im))) -1/2))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 im (sqrt.f64 1/2))) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 im (*.f64 (sqrt.f64 2) (sqrt.f64 1/2))) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 re)))
(+.f64 (*.f64 -1/16 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re))))
(fma.f64 -1/16 (/.f64 (*.f64 (*.f64 (pow.f64 im 3) (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5)))) (sqrt.f64 1/2)) (*.f64 (*.f64 (sqrt.f64 2) (*.f64 im (sqrt.f64 1/2))) (sqrt.f64 (/.f64 1 re))))
(fma.f64 (*.f64 im (*.f64 (sqrt.f64 2) (sqrt.f64 1/2))) (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (*.f64 -1/16 (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 1/2) (pow.f64 im 3))))))
(fma.f64 -1/16 (*.f64 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/2)) (pow.f64 im 3)) (sqrt.f64 (/.f64 1 (pow.f64 re 5)))) (*.f64 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 re))))
(+.f64 (*.f64 -1/16 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (pow.f64 (*.f64 -1/16 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) 2)) (pow.f64 im 5))) (sqrt.f64 1/2)) (sqrt.f64 re))) (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))))
(fma.f64 -1/16 (/.f64 (*.f64 (*.f64 (pow.f64 im 3) (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5)))) (sqrt.f64 1/2)) (fma.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 (*.f64 -1/16 (/.f64 1 (sqrt.f64 1/2))) (sqrt.f64 (/.f64 1 (pow.f64 re 5)))) 2)) (pow.f64 im 5))) (sqrt.f64 1/2)) (sqrt.f64 re)) (*.f64 (*.f64 (sqrt.f64 2) (*.f64 im (sqrt.f64 1/2))) (sqrt.f64 (/.f64 1 re)))))
(fma.f64 -1/16 (*.f64 (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 1/2) (pow.f64 im 3))) (sqrt.f64 (/.f64 1 (pow.f64 re 5)))) (fma.f64 1/2 (*.f64 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/2)) (*.f64 (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 -1/16 (sqrt.f64 1/2))) 2)) (pow.f64 im 5))) (sqrt.f64 re)) (*.f64 (*.f64 im (*.f64 (sqrt.f64 2) (sqrt.f64 1/2))) (sqrt.f64 (/.f64 1 re)))))
(fma.f64 (sqrt.f64 2) (*.f64 im (*.f64 (sqrt.f64 1/2) (sqrt.f64 (/.f64 1 re)))) (fma.f64 (sqrt.f64 re) (*.f64 (/.f64 (*.f64 1/2 (sqrt.f64 2)) (/.f64 (sqrt.f64 1/2) (pow.f64 im 5))) (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 -1/16 (sqrt.f64 1/2))) 2))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 -1/16 (/.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 im 3) (sqrt.f64 2)))))))
(+.f64 (*.f64 -1/16 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (*.f64 1/16 (/.f64 1 (pow.f64 re 6)))) re)) (*.f64 -1/16 (/.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (pow.f64 (*.f64 -1/16 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) 2)) (*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 re 2))))) (pow.f64 im 7))) (sqrt.f64 1/2)) (sqrt.f64 re))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (pow.f64 (*.f64 -1/16 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) 2)) (pow.f64 im 5))) (sqrt.f64 1/2)) (sqrt.f64 re))) (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re))))))
(fma.f64 -1/16 (/.f64 (*.f64 (*.f64 (pow.f64 im 3) (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5)))) (sqrt.f64 1/2)) (fma.f64 1/2 (*.f64 (sqrt.f64 re) (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (+.f64 (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (/.f64 1/16 (pow.f64 re 6))) re)) (*.f64 1/16 (/.f64 (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 (*.f64 -1/16 (/.f64 1 (sqrt.f64 1/2))) (sqrt.f64 (/.f64 1 (pow.f64 re 5)))) 2)) (*.f64 (*.f64 re re) (pow.f64 (sqrt.f64 1/2) 2))))) (pow.f64 im 7))) (sqrt.f64 1/2))) (fma.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 (*.f64 -1/16 (/.f64 1 (sqrt.f64 1/2))) (sqrt.f64 (/.f64 1 (pow.f64 re 5)))) 2)) (pow.f64 im 5))) (sqrt.f64 1/2)) (sqrt.f64 re)) (*.f64 (*.f64 (sqrt.f64 2) (*.f64 im (sqrt.f64 1/2))) (sqrt.f64 (/.f64 1 re))))))
(+.f64 (*.f64 (sqrt.f64 re) (+.f64 (/.f64 (*.f64 1/2 (sqrt.f64 2)) (/.f64 (/.f64 (sqrt.f64 1/2) (pow.f64 im 7)) (-.f64 (/.f64 -1/2 (/.f64 re (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (/.f64 1/16 (pow.f64 re 6))))) (*.f64 -1/8 (/.f64 (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 -1/16 (sqrt.f64 1/2))) 2)) (*.f64 re re)))))) (/.f64 (*.f64 1/2 (sqrt.f64 2)) (/.f64 (/.f64 (sqrt.f64 1/2) (pow.f64 im 5)) (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 -1/16 (sqrt.f64 1/2))) 2)))))) (fma.f64 (*.f64 im (*.f64 (sqrt.f64 2) (sqrt.f64 1/2))) (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (*.f64 -1/16 (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 1/2) (pow.f64 im 3)))))))
(fma.f64 1/2 (*.f64 (sqrt.f64 re) (+.f64 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/2)) (*.f64 (+.f64 (/.f64 (fma.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) -1/2 (/.f64 -1/32 (pow.f64 re 6))) re) (*.f64 1/8 (/.f64 (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 -1/16 (sqrt.f64 1/2))) 2)) (*.f64 re re)))) (pow.f64 im 7))) (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/2)) (*.f64 (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 -1/16 (sqrt.f64 1/2))) 2)) (pow.f64 im 5))))) (fma.f64 -1/16 (*.f64 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/2)) (pow.f64 im 3)) (sqrt.f64 (/.f64 1 (pow.f64 re 5)))) (*.f64 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 re)))))

prune99.0ms (2.7%)

Pruning

8 alts after pruning (7 fresh and 1 done)

PrunedKeptTotal
New1037110
Fresh000
Picked011
Done000
Total1038111
Error
0.2b
Counts
111 → 8
Alt Table
StatusErrorProgram
13.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))))
30.7b
(*.f64 1/2 (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
57.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))))
54.6b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 1/2 (/.f64 im (/.f64 re im))))))
16.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re)))))
13.2b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (pow.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) 2))))
53.0b
(*.f64 1/2 (fma.f64 (sqrt.f64 2) (*.f64 im (*.f64 (sqrt.f64 1/2) (sqrt.f64 (/.f64 1 re)))) (fma.f64 (sqrt.f64 re) (*.f64 (/.f64 (*.f64 1/2 (sqrt.f64 2)) (/.f64 (sqrt.f64 1/2) (pow.f64 im 5))) (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 -1/16 (sqrt.f64 1/2))) 2))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 -1/16 (/.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 im 3) (sqrt.f64 2))))))))
47.1b
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re))))
Compiler

Compiled 2842 to 2027 computations (28.7% saved)

localize8.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(sqrt.f64 (-.f64 (hypot.f64 re im) re))
0.3b
(sqrt.f64 (*.f64 2 (pow.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) 2)))
0.3b
(pow.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) 2)
0.8b
(-.f64 (hypot.f64 re im) re)

series14.0ms (0.4%)

Counts
3 → 24
Calls

18 calls:

TimeVariablePointExpression
2.0ms
im
@inf
(pow.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) 2)
1.0ms
re
@inf
(pow.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) 2)
1.0ms
im
@0
(pow.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) 2)
1.0ms
re
@0
(pow.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) 2)
1.0ms
im
@-inf
(pow.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) 2)

rewrite49.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
877×log1p-expm1-u_binary64
877×expm1-log1p-u_binary64
98×add-sqr-sqrt_binary64
95×pow1_binary64
93×*-un-lft-identity_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01028
121728
2244528
Stop Event
node limit
Counts
3 → 94
Calls
Call 1
Inputs
(pow.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) 2)
(sqrt.f64 (*.f64 2 (pow.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) 2)))
(sqrt.f64 (-.f64 (hypot.f64 re im) re))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (hypot.f64 re im) (neg.f64 re))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (hypot.f64 re im) (*.f64 (neg.f64 re) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (hypot.f64 re im) re) (fma.f64 (neg.f64 re) 1 re))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (hypot.f64 re im) re) (fma.f64 (neg.f64 (cbrt.f64 re)) (pow.f64 (cbrt.f64 re) 2) re))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (hypot.f64 re im) re) (fma.f64 (neg.f64 (sqrt.f64 re)) (sqrt.f64 re) re))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.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 (hypot.f64 re im) re))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (hypot.f64 re im) 3) (+.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 re (+.f64 re (hypot.f64 re im))))) (/.f64 (pow.f64 re 3) (+.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 re (+.f64 re (hypot.f64 re im))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (hypot.f64 re im) 2) (+.f64 re (hypot.f64 re im))) (/.f64 (*.f64 re re) (+.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (hypot.f64 re im) re) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) (sqrt.f64 (-.f64 (hypot.f64 re im) re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 (hypot.f64 re im) re))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (-.f64 (hypot.f64 re im) re)) (pow.f64 (cbrt.f64 (-.f64 (hypot.f64 re im) re)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (-.f64 (hypot.f64 re im) re)) (*.f64 (cbrt.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re))) (sqrt.f64 (-.f64 (hypot.f64 re im) re))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (-.f64 (hypot.f64 re im) re)) 2) (cbrt.f64 (-.f64 (hypot.f64 re im) re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (-.f64 (hypot.f64 re im) re) 1/4) (*.f64 (pow.f64 (-.f64 (hypot.f64 re im) re) 1/4) (sqrt.f64 (-.f64 (hypot.f64 re im) re))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (hypot.f64 re im) 3) (pow.f64 re 3)) (/.f64 1 (+.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 re (+.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 1 (+.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) (pow.f64 (-.f64 (hypot.f64 re im) re) 1/4)) (pow.f64 (-.f64 (hypot.f64 re im) re) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 re)) (-.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) (cbrt.f64 (-.f64 (hypot.f64 re im) re))) (cbrt.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 re (+.f64 re (hypot.f64 re im)))) (-.f64 (pow.f64 (hypot.f64 re im) 3) (pow.f64 re 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 re (hypot.f64 re im)) (-.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 re re))))))) (#(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 re (+.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 re (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (hypot.f64 re im) 3) (pow.f64 re 3))) (neg.f64 (+.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 re (+.f64 re (hypot.f64 re im))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 re re))) (neg.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 (neg.f64 re) 3)) (+.f64 (pow.f64 (hypot.f64 re im) 2) (-.f64 (*.f64 (neg.f64 re) (neg.f64 re)) (*.f64 (hypot.f64 re im) (neg.f64 re)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 (neg.f64 re) (neg.f64 re))) (-.f64 (hypot.f64 re im) (neg.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (-.f64 (hypot.f64 re im) re) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (-.f64 (hypot.f64 re im) re)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (-.f64 (hypot.f64 re im) re))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (-.f64 (hypot.f64 re im) re) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (-.f64 (hypot.f64 re im) re)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (-.f64 (hypot.f64 re im) re)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (-.f64 (hypot.f64 re im) re)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (hypot.f64 re im) (neg.f64 re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (cbrt.f64 (hypot.f64 re im)) (neg.f64 re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (-.f64 (hypot.f64 re im) re)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) (sqrt.f64 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2)) (cbrt.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2))) (cbrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2) 1/4) (pow.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 2) (sqrt.f64 (-.f64 (hypot.f64 re im) re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2)) 2)) (sqrt.f64 (cbrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/2) (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2)) 2) 1/2) (pow.f64 (cbrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 2) 1) (sqrt.f64 (-.f64 (hypot.f64 re im) re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 2) (cbrt.f64 (-.f64 (hypot.f64 re im) re))) (cbrt.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 2) (pow.f64 (-.f64 (hypot.f64 re im) re) 1/4)) (pow.f64 (-.f64 (hypot.f64 re im) re) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2) 3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2) 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (-.f64 (hypot.f64 re im) re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (-.f64 (hypot.f64 re im) re)) (cbrt.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re))) (cbrt.f64 (-.f64 (hypot.f64 re im) re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (-.f64 (hypot.f64 re im) re) 1/4) (pow.f64 (-.f64 (hypot.f64 re im) re) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (-.f64 (hypot.f64 re im) re)) 2)) (sqrt.f64 (cbrt.f64 (-.f64 (hypot.f64 re im) re))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/2) (sqrt.f64 (-.f64 (hypot.f64 re im) re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (-.f64 (hypot.f64 re im) re)) 2) 1/2) (pow.f64 (cbrt.f64 (-.f64 (hypot.f64 re im) re)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (-.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 re re))) (sqrt.f64 (+.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (-.f64 (pow.f64 (hypot.f64 re im) 3) (pow.f64 re 3))) (sqrt.f64 (+.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 re (+.f64 re (hypot.f64 re im))))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 (hypot.f64 re im) re) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 (hypot.f64 re im) re) 3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 (hypot.f64 re im) re) 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (-.f64 (hypot.f64 re im) re) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (-.f64 (hypot.f64 re im) re)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re))))))))

simplify39.0ms (1.1%)

Algorithm
egg-herbie
Rules
774×fma-def_binary64
404×times-frac_binary64
355×associate-/l*_binary64
268×associate-/r*_binary64
160×distribute-lft-in_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01651371
14931272
216471165
Stop Event
node limit
Counts
118 → 138
Calls
Call 1
Inputs
im
(+.f64 (*.f64 -1 re) im)
(+.f64 (*.f64 -1 re) (+.f64 (*.f64 (-.f64 (*.f64 3/4 (/.f64 1 im)) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 2)) im))
(+.f64 (*.f64 -1 re) (+.f64 (*.f64 (+.f64 (*.f64 -1/2 (/.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) im)) (*.f64 1/2 (/.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) im))) (pow.f64 re 3)) (+.f64 (*.f64 (-.f64 (*.f64 3/4 (/.f64 1 im)) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 2)) im)))
(/.f64 (*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 im 2)) re)
(+.f64 (/.f64 (*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 im 2)) re) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(+.f64 (/.f64 (*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 im 2)) re) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 (-.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (*.f64 1/256 (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 re 5))))) (pow.f64 (*.f64 -1/16 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) 2)) (pow.f64 im 6))))
(+.f64 (*.f64 -1/2 (/.f64 (*.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (*.f64 1/16 (/.f64 1 (pow.f64 re 6)))) (pow.f64 im 8)) re)) (+.f64 (/.f64 (*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 im 2)) re) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 (-.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (*.f64 1/256 (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 re 5))))) (pow.f64 (*.f64 -1/16 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) 2)) (pow.f64 im 6)))))
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(+.f64 (*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
(+.f64 (*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 2))) (sqrt.f64 (/.f64 1 im))))))
(+.f64 (*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 2))) (sqrt.f64 (/.f64 1 im)))) (*.f64 1/4 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 3))) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))
(+.f64 (*.f64 -1/16 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re))))
(+.f64 (*.f64 -1/16 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (pow.f64 (*.f64 -1/16 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) 2)) (pow.f64 im 5))) (sqrt.f64 1/2)) (sqrt.f64 re))) (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))))
(+.f64 (*.f64 -1/16 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (*.f64 1/16 (/.f64 1 (pow.f64 re 6)))) re)) (*.f64 -1/16 (/.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (pow.f64 (*.f64 -1/16 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) 2)) (*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 re 2))))) (pow.f64 im 7))) (sqrt.f64 1/2)) (sqrt.f64 re))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (pow.f64 (*.f64 -1/16 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) 2)) (pow.f64 im 5))) (sqrt.f64 1/2)) (sqrt.f64 re))) (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re))))))
(sqrt.f64 im)
(+.f64 (sqrt.f64 im) (*.f64 -1/2 (*.f64 re (sqrt.f64 (/.f64 1 im)))))
(+.f64 (sqrt.f64 im) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 im)))) (*.f64 -1/2 (*.f64 re (sqrt.f64 (/.f64 1 im))))))
(+.f64 (sqrt.f64 im) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 -1/2 (*.f64 re (sqrt.f64 (/.f64 1 im)))) (*.f64 1/4 (*.f64 (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 3)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))))))
(*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re)))
(+.f64 (*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re))) (*.f64 -1/16 (*.f64 (/.f64 (pow.f64 im 3) (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))))
(+.f64 (*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re))) (+.f64 (*.f64 -1/16 (*.f64 (/.f64 (pow.f64 im 3) (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) (*.f64 1/2 (*.f64 (/.f64 (*.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (pow.f64 (*.f64 -1/16 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) 2)) (pow.f64 im 5)) (sqrt.f64 1/2)) (sqrt.f64 re)))))
(+.f64 (*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re))) (+.f64 (*.f64 -1/16 (*.f64 (/.f64 (pow.f64 im 3) (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (pow.f64 im 7) (-.f64 (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (*.f64 1/16 (/.f64 1 (pow.f64 re 6)))) re)) (*.f64 -1/16 (/.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (pow.f64 (*.f64 -1/16 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) 2)) (*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 re 2)))))) (sqrt.f64 1/2)) (sqrt.f64 re))) (*.f64 1/2 (*.f64 (/.f64 (*.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (pow.f64 (*.f64 -1/16 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) 2)) (pow.f64 im 5)) (sqrt.f64 1/2)) (sqrt.f64 re))))))
Outputs
im
(+.f64 (*.f64 -1 re) im)
(fma.f64 -1 re im)
(-.f64 im re)
(+.f64 (*.f64 -1 re) (+.f64 (*.f64 (-.f64 (*.f64 3/4 (/.f64 1 im)) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 2)) im))
(fma.f64 -1 re (fma.f64 (-.f64 (/.f64 3/4 im) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (*.f64 re re) im))
(-.f64 (fma.f64 (-.f64 (/.f64 3/4 im) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (*.f64 re re) im) re)
(fma.f64 re (*.f64 re (+.f64 (/.f64 3/4 im) (*.f64 (/.f64 1 im) -1/4))) (-.f64 im re))
(+.f64 (*.f64 -1 re) (+.f64 (*.f64 (+.f64 (*.f64 -1/2 (/.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) im)) (*.f64 1/2 (/.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) im))) (pow.f64 re 3)) (+.f64 (*.f64 (-.f64 (*.f64 3/4 (/.f64 1 im)) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 2)) im)))
(fma.f64 -1 re (fma.f64 (-.f64 (/.f64 3/4 im) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (*.f64 re re) im))
(-.f64 (fma.f64 (-.f64 (/.f64 3/4 im) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (*.f64 re re) im) re)
(fma.f64 re (*.f64 re (+.f64 (/.f64 3/4 im) (*.f64 (/.f64 1 im) -1/4))) (-.f64 im re))
(/.f64 (*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 im 2)) re)
(/.f64 (pow.f64 (sqrt.f64 1/2) 2) (/.f64 re (*.f64 im im)))
(/.f64 (*.f64 im im) (/.f64 re 1/2))
(*.f64 (/.f64 (*.f64 im im) re) 1/2)
(+.f64 (/.f64 (*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 im 2)) re) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(+.f64 (/.f64 (pow.f64 (sqrt.f64 1/2) 2) (/.f64 re (*.f64 im im))) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (/.f64 (*.f64 im im) (/.f64 re 1/2)))
(fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (*.f64 (/.f64 (*.f64 im im) re) 1/2))
(+.f64 (/.f64 (*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 im 2)) re) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 (-.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (*.f64 1/256 (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 re 5))))) (pow.f64 (*.f64 -1/16 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) 2)) (pow.f64 im 6))))
(+.f64 (/.f64 (pow.f64 (sqrt.f64 1/2) 2) (/.f64 re (*.f64 im im))) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (*.f64 (-.f64 (+.f64 (/.f64 1/16 (pow.f64 re 5)) (/.f64 1/256 (*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 re 5)))) (pow.f64 (*.f64 -1/16 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) 2)) (pow.f64 im 6))))
(+.f64 (/.f64 (*.f64 im im) (/.f64 re 1/2)) (fma.f64 (+.f64 (/.f64 1/128 (pow.f64 re 5)) (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 -1/16 (sqrt.f64 1/2))) 2))) (pow.f64 im 6) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(fma.f64 (+.f64 (/.f64 1/128 (pow.f64 re 5)) (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 -1/16 (sqrt.f64 1/2))) 2))) (pow.f64 im 6) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (*.f64 (/.f64 (*.f64 im im) re) 1/2)))
(+.f64 (*.f64 -1/2 (/.f64 (*.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (*.f64 1/16 (/.f64 1 (pow.f64 re 6)))) (pow.f64 im 8)) re)) (+.f64 (/.f64 (*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 im 2)) re) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 (-.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (*.f64 1/256 (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 re 5))))) (pow.f64 (*.f64 -1/16 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) 2)) (pow.f64 im 6)))))
(fma.f64 -1/2 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (/.f64 1/16 (pow.f64 re 6))) (/.f64 re (pow.f64 im 8))) (+.f64 (/.f64 (pow.f64 (sqrt.f64 1/2) 2) (/.f64 re (*.f64 im im))) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (*.f64 (-.f64 (+.f64 (/.f64 1/16 (pow.f64 re 5)) (/.f64 1/256 (*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 re 5)))) (pow.f64 (*.f64 -1/16 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) 2)) (pow.f64 im 6)))))
(+.f64 (fma.f64 (+.f64 (/.f64 1/128 (pow.f64 re 5)) (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 -1/16 (sqrt.f64 1/2))) 2))) (pow.f64 im 6) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) (fma.f64 -1/2 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (/.f64 1/16 (pow.f64 re 6))) (/.f64 re (pow.f64 im 8))) (/.f64 (*.f64 im im) (/.f64 re 1/2))))
(fma.f64 -1/2 (*.f64 (/.f64 (pow.f64 im 8) re) (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (/.f64 1/16 (pow.f64 re 6)))) (fma.f64 (+.f64 (/.f64 1/128 (pow.f64 re 5)) (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 -1/16 (sqrt.f64 1/2))) 2))) (pow.f64 im 6) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (*.f64 (/.f64 (*.f64 im im) re) 1/2))))
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(+.f64 (*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
(fma.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 re (sqrt.f64 2))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
(fma.f64 (*.f64 -1/2 (*.f64 re (sqrt.f64 2))) (sqrt.f64 (/.f64 1 im)) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
(*.f64 (sqrt.f64 2) (fma.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 re -1/2) (sqrt.f64 im)))
(+.f64 (*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 2))) (sqrt.f64 (/.f64 1 im))))))
(fma.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 re (sqrt.f64 2))) (fma.f64 (sqrt.f64 2) (sqrt.f64 im) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 (sqrt.f64 2) (*.f64 (*.f64 re re) (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2))))))))
(fma.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 re (sqrt.f64 2))) (fma.f64 1/2 (*.f64 (*.f64 (*.f64 re re) (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2))) (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im))))
(fma.f64 (sqrt.f64 2) (sqrt.f64 im) (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (/.f64 1 im)) (fma.f64 re -1/2 (*.f64 1/2 (*.f64 (*.f64 re re) (+.f64 (/.f64 1/2 im) (*.f64 (/.f64 1 im) -1/4))))))))
(+.f64 (*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 2))) (sqrt.f64 (/.f64 1 im)))) (*.f64 1/4 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 3))) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))))))
(fma.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 re (sqrt.f64 2))) (fma.f64 (sqrt.f64 2) (sqrt.f64 im) (fma.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 (sqrt.f64 2) (*.f64 (*.f64 re re) (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2))))) (*.f64 1/4 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (*.f64 (pow.f64 re 3) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))))))))
(fma.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 re (sqrt.f64 2))) (fma.f64 (sqrt.f64 2) (sqrt.f64 im) (fma.f64 1/2 (*.f64 (*.f64 (*.f64 re re) (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2))) (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 im)))) (*.f64 (*.f64 (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (*.f64 (pow.f64 re 3) (sqrt.f64 2))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 3))) 1/4)))))
(+.f64 (*.f64 (sqrt.f64 2) (*.f64 (+.f64 (/.f64 1/2 im) (*.f64 (/.f64 1 im) -1/4)) (+.f64 (*.f64 (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 re re)) 1/2) (*.f64 (*.f64 (pow.f64 re 3) (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) 1/4)))) (*.f64 (sqrt.f64 2) (fma.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 re -1/2) (sqrt.f64 im))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (sqrt.f64 2) (*.f64 (*.f64 im (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 re))))
(+.f64 (*.f64 -1/16 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re))))
(fma.f64 -1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 1/2) (pow.f64 im 3)))) (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re))))))
(fma.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (*.f64 -1/16 (*.f64 (/.f64 (pow.f64 im 3) (sqrt.f64 1/2)) (sqrt.f64 2))) (*.f64 (sqrt.f64 2) (*.f64 (*.f64 im (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 re)))))
(+.f64 (*.f64 -1/16 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (pow.f64 (*.f64 -1/16 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) 2)) (pow.f64 im 5))) (sqrt.f64 1/2)) (sqrt.f64 re))) (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))))
(fma.f64 -1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 1/2) (pow.f64 im 3)))) (fma.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 -1/16 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) 2)) (pow.f64 im 5))) (sqrt.f64 1/2)) (sqrt.f64 re)) (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re)))))))
(fma.f64 -1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 1/2) (pow.f64 im 3)))) (fma.f64 1/2 (*.f64 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/2)) (*.f64 (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 -1/16 (sqrt.f64 1/2))) 2)) (pow.f64 im 5))) (sqrt.f64 re)) (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re)))))))
(fma.f64 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/2)) (*.f64 (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 -1/16 (sqrt.f64 1/2))) 2)) (pow.f64 im 5))) (*.f64 (sqrt.f64 re) 1/2) (fma.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (*.f64 -1/16 (*.f64 (/.f64 (pow.f64 im 3) (sqrt.f64 1/2)) (sqrt.f64 2))) (*.f64 (sqrt.f64 2) (*.f64 (*.f64 im (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 re))))))
(+.f64 (*.f64 -1/16 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (*.f64 1/16 (/.f64 1 (pow.f64 re 6)))) re)) (*.f64 -1/16 (/.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (pow.f64 (*.f64 -1/16 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) 2)) (*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 re 2))))) (pow.f64 im 7))) (sqrt.f64 1/2)) (sqrt.f64 re))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (pow.f64 (*.f64 -1/16 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) 2)) (pow.f64 im 5))) (sqrt.f64 1/2)) (sqrt.f64 re))) (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re))))))
(fma.f64 -1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 1/2) (pow.f64 im 3)))) (fma.f64 1/2 (*.f64 (sqrt.f64 re) (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (/.f64 1/16 (pow.f64 re 6))) re)) (*.f64 1/16 (/.f64 (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 -1/16 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) 2)) (*.f64 (*.f64 re re) (pow.f64 (sqrt.f64 1/2) 2))))) (pow.f64 im 7))))) (fma.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 -1/16 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) 2)) (pow.f64 im 5))) (sqrt.f64 1/2)) (sqrt.f64 re)) (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re))))))))
(+.f64 (*.f64 (sqrt.f64 re) (+.f64 (/.f64 (*.f64 1/2 (sqrt.f64 2)) (/.f64 (/.f64 (sqrt.f64 1/2) (pow.f64 im 7)) (-.f64 (/.f64 -1/2 (/.f64 re (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (/.f64 1/16 (pow.f64 re 6))))) (*.f64 -1/8 (/.f64 (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 -1/16 (sqrt.f64 1/2))) 2)) (*.f64 re re)))))) (*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/2)) (*.f64 (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 -1/16 (sqrt.f64 1/2))) 2)) (pow.f64 im 5)))))) (fma.f64 -1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 1/2) (pow.f64 im 3)))) (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re)))))))
(fma.f64 1/2 (*.f64 (sqrt.f64 re) (+.f64 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/2)) (*.f64 (fma.f64 -1/2 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (/.f64 1/16 (pow.f64 re 6))) re) (*.f64 1/8 (/.f64 (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 -1/16 (sqrt.f64 1/2))) 2)) (*.f64 re re)))) (pow.f64 im 7))) (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/2)) (*.f64 (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 -1/16 (sqrt.f64 1/2))) 2)) (pow.f64 im 5))))) (fma.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (*.f64 -1/16 (*.f64 (/.f64 (pow.f64 im 3) (sqrt.f64 1/2)) (sqrt.f64 2))) (*.f64 (sqrt.f64 2) (*.f64 (*.f64 im (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 re))))))
(sqrt.f64 im)
(+.f64 (sqrt.f64 im) (*.f64 -1/2 (*.f64 re (sqrt.f64 (/.f64 1 im)))))
(fma.f64 -1/2 (*.f64 re (sqrt.f64 (/.f64 1 im))) (sqrt.f64 im))
(fma.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 re -1/2) (sqrt.f64 im))
(+.f64 (sqrt.f64 im) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 im)))) (*.f64 -1/2 (*.f64 re (sqrt.f64 (/.f64 1 im))))))
(+.f64 (sqrt.f64 im) (fma.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 (*.f64 re re) (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)))) (*.f64 -1/2 (*.f64 re (sqrt.f64 (/.f64 1 im))))))
(+.f64 (sqrt.f64 im) (*.f64 (sqrt.f64 (/.f64 1 im)) (+.f64 (*.f64 re -1/2) (*.f64 1/2 (*.f64 (*.f64 re re) (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)))))))
(fma.f64 (sqrt.f64 (/.f64 1 im)) (fma.f64 re -1/2 (*.f64 1/2 (*.f64 (*.f64 re re) (+.f64 (/.f64 1/2 im) (*.f64 (/.f64 1 im) -1/4))))) (sqrt.f64 im))
(+.f64 (sqrt.f64 im) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 -1/2 (*.f64 re (sqrt.f64 (/.f64 1 im)))) (*.f64 1/4 (*.f64 (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 3)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))))))
(+.f64 (sqrt.f64 im) (fma.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 (*.f64 re re) (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)))) (fma.f64 -1/2 (*.f64 re (sqrt.f64 (/.f64 1 im))) (*.f64 1/4 (*.f64 (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (*.f64 (pow.f64 re 3) (sqrt.f64 (/.f64 1 (pow.f64 im 3)))))))))
(+.f64 (*.f64 (sqrt.f64 (/.f64 1 im)) (+.f64 (*.f64 re -1/2) (*.f64 1/2 (*.f64 (*.f64 re re) (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)))))) (+.f64 (*.f64 (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (*.f64 (*.f64 (pow.f64 re 3) (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) 1/4)) (sqrt.f64 im)))
(+.f64 (sqrt.f64 im) (fma.f64 re (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) (*.f64 (+.f64 (/.f64 1/2 im) (*.f64 (/.f64 1 im) -1/4)) (+.f64 (*.f64 (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 re re)) 1/2) (*.f64 (*.f64 (pow.f64 re 3) (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) 1/4)))))
(*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 im (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 re)))
(+.f64 (*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re))) (*.f64 -1/16 (*.f64 (/.f64 (pow.f64 im 3) (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))))
(fma.f64 (*.f64 im (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 re)) (*.f64 -1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 (pow.f64 im 3) (sqrt.f64 1/2)))))
(fma.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re))) (*.f64 -1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 (pow.f64 im 3) (sqrt.f64 1/2)))))
(fma.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (*.f64 -1/16 (/.f64 (pow.f64 im 3) (sqrt.f64 1/2))) (*.f64 (*.f64 im (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 re))))
(+.f64 (*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re))) (+.f64 (*.f64 -1/16 (*.f64 (/.f64 (pow.f64 im 3) (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) (*.f64 1/2 (*.f64 (/.f64 (*.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (pow.f64 (*.f64 -1/16 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) 2)) (pow.f64 im 5)) (sqrt.f64 1/2)) (sqrt.f64 re)))))
(fma.f64 (*.f64 im (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 re)) (fma.f64 -1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 (pow.f64 im 3) (sqrt.f64 1/2))) (*.f64 1/2 (*.f64 (sqrt.f64 re) (/.f64 (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 -1/16 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) 2)) (/.f64 (sqrt.f64 1/2) (pow.f64 im 5)))))))
(fma.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re))) (fma.f64 1/2 (*.f64 (sqrt.f64 re) (/.f64 (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 -1/16 (sqrt.f64 1/2))) 2)) (/.f64 (sqrt.f64 1/2) (pow.f64 im 5)))) (*.f64 -1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 (pow.f64 im 3) (sqrt.f64 1/2))))))
(fma.f64 im (*.f64 (sqrt.f64 1/2) (sqrt.f64 (/.f64 1 re))) (fma.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 re) (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 -1/16 (sqrt.f64 1/2))) 2))) (sqrt.f64 1/2)) (pow.f64 im 5)) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (*.f64 -1/16 (/.f64 (pow.f64 im 3) (sqrt.f64 1/2))))))
(+.f64 (*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re))) (+.f64 (*.f64 -1/16 (*.f64 (/.f64 (pow.f64 im 3) (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (pow.f64 im 7) (-.f64 (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (*.f64 1/16 (/.f64 1 (pow.f64 re 6)))) re)) (*.f64 -1/16 (/.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (pow.f64 (*.f64 -1/16 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) 2)) (*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 re 2)))))) (sqrt.f64 1/2)) (sqrt.f64 re))) (*.f64 1/2 (*.f64 (/.f64 (*.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (pow.f64 (*.f64 -1/16 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) 2)) (pow.f64 im 5)) (sqrt.f64 1/2)) (sqrt.f64 re))))))
(fma.f64 (*.f64 im (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 re)) (fma.f64 -1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 (pow.f64 im 3) (sqrt.f64 1/2))) (*.f64 1/2 (+.f64 (*.f64 (sqrt.f64 re) (/.f64 (*.f64 (+.f64 (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (/.f64 1/16 (pow.f64 re 6))) re)) (*.f64 1/16 (/.f64 (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 -1/16 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) 2)) (*.f64 (*.f64 re re) (pow.f64 (sqrt.f64 1/2) 2))))) (pow.f64 im 7)) (sqrt.f64 1/2))) (*.f64 (sqrt.f64 re) (/.f64 (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 -1/16 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) 2)) (/.f64 (sqrt.f64 1/2) (pow.f64 im 5))))))))
(fma.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re))) (fma.f64 1/2 (*.f64 (sqrt.f64 re) (+.f64 (*.f64 (/.f64 (pow.f64 im 7) (sqrt.f64 1/2)) (-.f64 (/.f64 -1/2 (/.f64 re (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (/.f64 1/16 (pow.f64 re 6))))) (*.f64 -1/8 (/.f64 (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 -1/16 (sqrt.f64 1/2))) 2)) (*.f64 re re))))) (/.f64 (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 -1/16 (sqrt.f64 1/2))) 2)) (/.f64 (sqrt.f64 1/2) (pow.f64 im 5))))) (*.f64 -1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 (pow.f64 im 3) (sqrt.f64 1/2))))))
(fma.f64 im (*.f64 (sqrt.f64 1/2) (sqrt.f64 (/.f64 1 re))) (fma.f64 (sqrt.f64 re) (*.f64 1/2 (fma.f64 (/.f64 (pow.f64 im 7) (sqrt.f64 1/2)) (fma.f64 -1/2 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (/.f64 1/16 (pow.f64 re 6))) re) (*.f64 1/8 (/.f64 (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 -1/16 (sqrt.f64 1/2))) 2)) (*.f64 re re)))) (*.f64 (/.f64 (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 -1/16 (sqrt.f64 1/2))) 2)) (sqrt.f64 1/2)) (pow.f64 im 5)))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (*.f64 -1/16 (/.f64 (pow.f64 im 3) (sqrt.f64 1/2))))))

prune165.0ms (4.6%)

Pruning

10 alts after pruning (9 fresh and 1 done)

PrunedKeptTotal
New2044208
Fresh156
Picked101
Done011
Total20610216
Error
0.1b
Counts
216 → 10
Alt Table
StatusErrorProgram
16.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (pow.f64 (sqrt.f64 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re))) 2))))
30.7b
(*.f64 1/2 (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
47.1b
(*.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 im (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 re)))))
54.6b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 1/2 (/.f64 im (/.f64 re im))))))
13.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))))
57.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))))
57.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (/.f64 (*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 im 2)) re) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))))
55.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (/.f64 (*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 im 2)) re))))
53.0b
(*.f64 1/2 (fma.f64 (sqrt.f64 2) (*.f64 im (*.f64 (sqrt.f64 1/2) (sqrt.f64 (/.f64 1 re)))) (fma.f64 (sqrt.f64 re) (*.f64 (/.f64 (*.f64 1/2 (sqrt.f64 2)) (/.f64 (sqrt.f64 1/2) (pow.f64 im 5))) (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 -1/16 (sqrt.f64 1/2))) 2))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 -1/16 (/.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 im 3) (sqrt.f64 2))))))))
47.1b
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re))))
Compiler

Compiled 5641 to 3944 computations (30.1% saved)

localize10.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(sqrt.f64 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re)))
0.3b
(sqrt.f64 (*.f64 2 (pow.f64 (sqrt.f64 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re))) 2)))
0.4b
(pow.f64 (sqrt.f64 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re))) 2)
15.3b
(fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re))

series29.0ms (0.8%)

Counts
4 → 34
Calls

24 calls:

TimeVariablePointExpression
5.0ms
im
@0
(sqrt.f64 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re)))
3.0ms
im
@0
(pow.f64 (sqrt.f64 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re))) 2)
3.0ms
im
@0
(fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re))
2.0ms
im
@0
(sqrt.f64 (*.f64 2 (pow.f64 (sqrt.f64 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re))) 2)))
2.0ms
im
@inf
(pow.f64 (sqrt.f64 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re))) 2)

rewrite50.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
803×log1p-expm1-u_binary64
803×expm1-log1p-u_binary64
108×add-sqr-sqrt_binary64
104×pow1_binary64
102×*-un-lft-identity_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01243
124735
2257235
Stop Event
node limit
Counts
4 → 108
Calls
Call 1
Inputs
(fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re))
(pow.f64 (sqrt.f64 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re))) 2)
(sqrt.f64 (*.f64 2 (pow.f64 (sqrt.f64 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re))) 2)))
(sqrt.f64 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (hypot.f64 re im) re)))) (#(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 (hypot.f64 re im) re))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (hypot.f64 re im) 0) re)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (hypot.f64 re im) re) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 (hypot.f64 re im) re)) (sqrt.f64 (+.f64 (hypot.f64 re im) re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (hypot.f64 re im) re))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 (hypot.f64 re im) re)) (pow.f64 (cbrt.f64 (+.f64 (hypot.f64 re im) re)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 (hypot.f64 re im) re)) (*.f64 (cbrt.f64 (sqrt.f64 (+.f64 (hypot.f64 re im) re))) (sqrt.f64 (+.f64 (hypot.f64 re im) re))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 (hypot.f64 re im) re)) 2) (cbrt.f64 (+.f64 (hypot.f64 re im) re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (+.f64 (hypot.f64 re im) re) 1/4) (*.f64 (pow.f64 (+.f64 (hypot.f64 re im) re) 1/4) (sqrt.f64 (+.f64 (hypot.f64 re im) re))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (+.f64 (hypot.f64 re im) re)) (pow.f64 (+.f64 (hypot.f64 re im) re) 1/4)) (pow.f64 (+.f64 (hypot.f64 re im) re) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (+.f64 (hypot.f64 re im) re)) (cbrt.f64 (+.f64 (hypot.f64 re im) re))) (cbrt.f64 (sqrt.f64 (+.f64 (hypot.f64 re im) re))))))) (#(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 (hypot.f64 re im) re) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 (hypot.f64 re im) re)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 (hypot.f64 re im) re) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 (hypot.f64 re im) re) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 (hypot.f64 re im) re)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 (hypot.f64 re im) re) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (+.f64 (hypot.f64 re im) re)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (+.f64 (hypot.f64 re im) re))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 (hypot.f64 re im) re) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 (hypot.f64 re im) re)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (+.f64 (hypot.f64 re im) re)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (+.f64 (hypot.f64 re im) re)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 (hypot.f64 re im) re)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (hypot.f64 re im) re)))) (#(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 (hypot.f64 re im) re))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (hypot.f64 re im) 0) re)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (hypot.f64 re im) re) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 (hypot.f64 re im) re)) (sqrt.f64 (+.f64 (hypot.f64 re im) re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (hypot.f64 re im) re))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 (hypot.f64 re im) re)) (pow.f64 (cbrt.f64 (+.f64 (hypot.f64 re im) re)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 (hypot.f64 re im) re)) (*.f64 (cbrt.f64 (sqrt.f64 (+.f64 (hypot.f64 re im) re))) (sqrt.f64 (+.f64 (hypot.f64 re im) re))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 (hypot.f64 re im) re)) 2) (cbrt.f64 (+.f64 (hypot.f64 re im) re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (+.f64 (hypot.f64 re im) re) 1/4) (*.f64 (pow.f64 (+.f64 (hypot.f64 re im) re) 1/4) (sqrt.f64 (+.f64 (hypot.f64 re im) re))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (+.f64 (hypot.f64 re im) re)) (pow.f64 (+.f64 (hypot.f64 re im) re) 1/4)) (pow.f64 (+.f64 (hypot.f64 re im) re) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (+.f64 (hypot.f64 re im) re)) (cbrt.f64 (+.f64 (hypot.f64 re im) re))) (cbrt.f64 (sqrt.f64 (+.f64 (hypot.f64 re im) re))))))) (#(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 sqrt.f64 (pow.f64 (+.f64 (hypot.f64 re im) re) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (+.f64 (hypot.f64 re im) re)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (+.f64 (hypot.f64 re im) re))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 (hypot.f64 re im) re) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 (hypot.f64 re im) re)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (+.f64 (hypot.f64 re im) re)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (+.f64 (hypot.f64 re im) re)) 1))))) (#(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 1 (hypot.f64 re im) re)))) (#(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 expm1.f64 (log1p.f64 (+.f64 (hypot.f64 re im) re)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 (hypot.f64 re im) re) 2)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 (hypot.f64 re im) re)) (sqrt.f64 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (+.f64 (hypot.f64 re im) re) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (*.f64 (+.f64 (hypot.f64 re im) re) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (+.f64 (hypot.f64 re im) re) 2)) (cbrt.f64 (sqrt.f64 (*.f64 (+.f64 (hypot.f64 re im) re) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (sqrt.f64 (*.f64 (+.f64 (hypot.f64 re im) re) 2))) (cbrt.f64 (*.f64 (+.f64 (hypot.f64 re im) re) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (+.f64 (hypot.f64 re im) re) 2) 1/4) (pow.f64 (*.f64 (+.f64 (hypot.f64 re im) re) 2) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 2) (sqrt.f64 (+.f64 (hypot.f64 re im) re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 (+.f64 (hypot.f64 re im) re) 2)) 2)) (sqrt.f64 (cbrt.f64 (*.f64 (+.f64 (hypot.f64 re im) re) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/2) (sqrt.f64 (*.f64 (+.f64 (hypot.f64 re im) re) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 (+.f64 (hypot.f64 re im) re) 2)) 2) 1/2) (pow.f64 (cbrt.f64 (*.f64 (+.f64 (hypot.f64 re im) re) 2)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 2) 1) (sqrt.f64 (+.f64 (hypot.f64 re im) re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 2) (cbrt.f64 (+.f64 (hypot.f64 re im) re))) (cbrt.f64 (sqrt.f64 (+.f64 (hypot.f64 re im) re))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 2) (pow.f64 (+.f64 (hypot.f64 re im) re) 1/4)) (pow.f64 (+.f64 (hypot.f64 re im) re) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (+.f64 (hypot.f64 re im) re) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (+.f64 (hypot.f64 re im) re) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (+.f64 (hypot.f64 re im) re) 2) 3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (sqrt.f64 (*.f64 (+.f64 (hypot.f64 re im) re) 2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (+.f64 (hypot.f64 re im) re) 2) 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (sqrt.f64 (*.f64 (+.f64 (hypot.f64 re im) re) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (*.f64 (+.f64 (hypot.f64 re im) re) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (sqrt.f64 (*.f64 (+.f64 (hypot.f64 re im) re) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (+.f64 (hypot.f64 re im) re) 2) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (*.f64 (+.f64 (hypot.f64 re im) re) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (sqrt.f64 (*.f64 (+.f64 (hypot.f64 re im) re) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (+.f64 (hypot.f64 re im) re) 2)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (+.f64 (hypot.f64 re im) re) 2))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 (hypot.f64 re im) re) 2))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (sqrt.f64 (+.f64 (hypot.f64 re im) re)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 (hypot.f64 re im) re)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (+.f64 (hypot.f64 re im) re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (sqrt.f64 (+.f64 (hypot.f64 re im) re))) (cbrt.f64 (+.f64 (hypot.f64 re im) re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 (hypot.f64 re im) re)) (cbrt.f64 (sqrt.f64 (+.f64 (hypot.f64 re im) re))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (+.f64 (hypot.f64 re im) re) 1/4) (pow.f64 (+.f64 (hypot.f64 re im) re) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (+.f64 (hypot.f64 re im) re)) 2)) (sqrt.f64 (cbrt.f64 (+.f64 (hypot.f64 re im) re))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/2) (sqrt.f64 (+.f64 (hypot.f64 re im) re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (+.f64 (hypot.f64 re im) re)) 2) 1/2) (pow.f64 (cbrt.f64 (+.f64 (hypot.f64 re im) re)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (hypot.f64 re im) re) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 (hypot.f64 re im) re)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 (hypot.f64 re im) re) 3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 (hypot.f64 re im) re))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 (hypot.f64 re im) re) 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (sqrt.f64 (+.f64 (hypot.f64 re im) re)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (+.f64 (hypot.f64 re im) re))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (sqrt.f64 (+.f64 (hypot.f64 re im) re)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 (hypot.f64 re im) re) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (+.f64 (hypot.f64 re im) re))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (sqrt.f64 (+.f64 (hypot.f64 re im) re))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (+.f64 (hypot.f64 re im) re)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (hypot.f64 re im) re))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x hypot.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 re))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (+.f64 (hypot.f64 re im) re))))))))

simplify59.0ms (1.6%)

Algorithm
egg-herbie
Rules
503×distribute-rgt-in_binary64
497×distribute-lft-in_binary64
270×times-frac_binary64
236×fma-def_binary64
213×cancel-sign-sub-inv_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02172915
16922672
223962135
Stop Event
node limit
Counts
142 → 140
Calls
Call 1
Inputs
im
(+.f64 (*.f64 -1 re) im)
(+.f64 (*.f64 -1 re) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im))
(+.f64 (*.f64 -1 re) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 (*.f64 (pow.f64 re 4) (+.f64 (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 im 3))))) (*.f64 1/16 (/.f64 1 (pow.f64 im 3))))) im)))
(*.f64 -1 re)
(*.f64 -1 re)
(*.f64 1/2 (/.f64 (pow.f64 im 2) re))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (pow.f64 im 4)))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (pow.f64 im 4))))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 (*.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (pow.f64 im 4)) (*.f64 (-.f64 (+.f64 (*.f64 1/4 (/.f64 (pow.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))) 2) re)) (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (*.f64 1/16 (/.f64 1 (pow.f64 re 6)))) re))) (pow.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) 2)) (pow.f64 im 8)))))
im
(+.f64 (*.f64 -1 re) im)
(+.f64 (*.f64 -1 re) (+.f64 (*.f64 (-.f64 (*.f64 3/4 (/.f64 1 im)) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 2)) im))
(+.f64 (*.f64 -1 re) (+.f64 (*.f64 (+.f64 (*.f64 -1/2 (/.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) im)) (*.f64 1/2 (/.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) im))) (pow.f64 re 3)) (+.f64 (*.f64 (-.f64 (*.f64 3/4 (/.f64 1 im)) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 2)) im)))
(/.f64 (*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 im 2)) re)
(+.f64 (*.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (pow.f64 im 4)) (/.f64 (*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 im 2)) re))
(+.f64 (*.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (pow.f64 im 4)) (+.f64 (*.f64 (-.f64 (+.f64 (*.f64 1/4 (/.f64 (*.f64 (pow.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) 2) re) (pow.f64 (sqrt.f64 1/2) 2))) (*.f64 1/16 (/.f64 1 (pow.f64 re 5)))) (pow.f64 (*.f64 1/2 (*.f64 (/.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (sqrt.f64 1/2)) (sqrt.f64 re))) 2)) (pow.f64 im 6)) (/.f64 (*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 im 2)) re)))
(+.f64 (*.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (pow.f64 im 4)) (+.f64 (*.f64 (-.f64 (+.f64 (*.f64 1/4 (/.f64 (pow.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))) 2) re)) (+.f64 (*.f64 1/4 (/.f64 (*.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (*.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (pow.f64 (*.f64 1/2 (*.f64 (/.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (sqrt.f64 1/2)) (sqrt.f64 re))) 2)) re)) (pow.f64 (sqrt.f64 1/2) 2))) (+.f64 (*.f64 1/4 (/.f64 (*.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (*.f64 re (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (pow.f64 (*.f64 1/2 (*.f64 (/.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (sqrt.f64 1/2)) (sqrt.f64 re))) 2)))) (pow.f64 (sqrt.f64 1/2) 2))) (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (*.f64 1/16 (/.f64 1 (pow.f64 re 6)))) re))))) (+.f64 (pow.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) 2) (*.f64 1/2 (/.f64 (*.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (*.f64 re (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (pow.f64 (*.f64 1/2 (*.f64 (/.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (sqrt.f64 1/2)) (sqrt.f64 re))) 2)))) (pow.f64 (sqrt.f64 1/2) 2))))) (pow.f64 im 8)) (+.f64 (*.f64 (-.f64 (+.f64 (*.f64 1/4 (/.f64 (*.f64 (pow.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) 2) re) (pow.f64 (sqrt.f64 1/2) 2))) (*.f64 1/16 (/.f64 1 (pow.f64 re 5)))) (pow.f64 (*.f64 1/2 (*.f64 (/.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (sqrt.f64 1/2)) (sqrt.f64 re))) 2)) (pow.f64 im 6)) (/.f64 (*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 im 2)) re))))
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(+.f64 (*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
(+.f64 (*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 2))) (sqrt.f64 (/.f64 1 im))))))
(+.f64 (*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 2))) (sqrt.f64 (/.f64 1 im)))) (*.f64 1/4 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 3))) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))
(+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (pow.f64 im 3))) (sqrt.f64 1/2)) (sqrt.f64 re))) (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re))))
(+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (pow.f64 im 3))) (sqrt.f64 1/2)) (sqrt.f64 re))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (pow.f64 (*.f64 1/2 (*.f64 (/.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (sqrt.f64 1/2)) (sqrt.f64 re))) 2)) (pow.f64 im 5))) (sqrt.f64 1/2)) (sqrt.f64 re))) (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))))
(+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (pow.f64 im 3))) (sqrt.f64 1/2)) (sqrt.f64 re))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (pow.f64 (*.f64 1/2 (*.f64 (/.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (sqrt.f64 1/2)) (sqrt.f64 re))) 2)) (pow.f64 im 5))) (sqrt.f64 1/2)) (sqrt.f64 re))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (+.f64 (*.f64 1/4 (/.f64 (pow.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))) 2) re)) (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (*.f64 1/16 (/.f64 1 (pow.f64 re 6)))) re))) (+.f64 (pow.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) 2) (*.f64 1/2 (/.f64 (*.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (*.f64 re (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (pow.f64 (*.f64 1/2 (*.f64 (/.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (sqrt.f64 1/2)) (sqrt.f64 re))) 2)))) (pow.f64 (sqrt.f64 1/2) 2))))) (pow.f64 im 7))) (sqrt.f64 1/2)) (sqrt.f64 re))) (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re))))))
(sqrt.f64 im)
(+.f64 (sqrt.f64 im) (*.f64 -1/2 (*.f64 re (sqrt.f64 (/.f64 1 im)))))
(+.f64 (sqrt.f64 im) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 im)))) (*.f64 -1/2 (*.f64 re (sqrt.f64 (/.f64 1 im))))))
(+.f64 (sqrt.f64 im) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 -1/2 (*.f64 re (sqrt.f64 (/.f64 1 im)))) (*.f64 1/4 (*.f64 (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 3)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))))))
(*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re)))
(+.f64 (*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re))) (*.f64 1/2 (*.f64 (/.f64 (*.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (pow.f64 im 3)) (sqrt.f64 1/2)) (sqrt.f64 re))))
(+.f64 (*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (pow.f64 im 3)) (sqrt.f64 1/2)) (sqrt.f64 re))) (*.f64 1/2 (*.f64 (/.f64 (*.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (pow.f64 (*.f64 1/2 (*.f64 (/.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (sqrt.f64 1/2)) (sqrt.f64 re))) 2)) (pow.f64 im 5)) (sqrt.f64 1/2)) (sqrt.f64 re)))))
(+.f64 (*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (-.f64 (+.f64 (*.f64 1/4 (/.f64 (pow.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))) 2) re)) (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (*.f64 1/16 (/.f64 1 (pow.f64 re 6)))) re))) (+.f64 (pow.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) 2) (*.f64 1/2 (/.f64 (*.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (*.f64 re (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (pow.f64 (*.f64 1/2 (*.f64 (/.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (sqrt.f64 1/2)) (sqrt.f64 re))) 2)))) (pow.f64 (sqrt.f64 1/2) 2))))) (pow.f64 im 7)) (sqrt.f64 1/2)) (sqrt.f64 re))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (pow.f64 im 3)) (sqrt.f64 1/2)) (sqrt.f64 re))) (*.f64 1/2 (*.f64 (/.f64 (*.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (pow.f64 (*.f64 1/2 (*.f64 (/.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (sqrt.f64 1/2)) (sqrt.f64 re))) 2)) (pow.f64 im 5)) (sqrt.f64 1/2)) (sqrt.f64 re))))))
Outputs
im
(+.f64 (*.f64 -1 re) im)
(fma.f64 -1 re im)
(-.f64 im re)
(+.f64 (*.f64 -1 re) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im))
(fma.f64 -1 re (fma.f64 1/2 (/.f64 (*.f64 re re) im) im))
(-.f64 (fma.f64 1/2 (/.f64 re (/.f64 im re)) im) re)
(+.f64 (*.f64 -1 re) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 (*.f64 (pow.f64 re 4) (+.f64 (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 im 3))))) (*.f64 1/16 (/.f64 1 (pow.f64 im 3))))) im)))
(fma.f64 -1 re (fma.f64 1/2 (/.f64 (*.f64 re re) im) (fma.f64 (pow.f64 re 4) (fma.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) 2) (/.f64 1/8 (pow.f64 im 3))) (/.f64 1/16 (pow.f64 im 3))) im)))
(-.f64 (fma.f64 1/2 (/.f64 re (/.f64 im re)) (fma.f64 (pow.f64 re 4) (-.f64 (/.f64 1/16 (pow.f64 im 3)) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) 2) (/.f64 1/8 (pow.f64 im 3)))) im)) re)
(-.f64 (fma.f64 1/2 (/.f64 re (/.f64 im re)) (fma.f64 (pow.f64 re 4) (+.f64 (neg.f64 (/.f64 1/16 (pow.f64 im 3))) (neg.f64 (/.f64 1/16 (pow.f64 im 3)))) im)) re)
(*.f64 -1 re)
(neg.f64 re)
(*.f64 -1 re)
(neg.f64 re)
(*.f64 1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 1/2 (/.f64 (*.f64 im im) re))
(*.f64 (/.f64 1/2 re) (*.f64 im im))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (pow.f64 im 4)))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (*.f64 (+.f64 (/.f64 1/16 (pow.f64 re 3)) (neg.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3))))) (pow.f64 im 4)))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (*.f64 (-.f64 (/.f64 1/16 (pow.f64 re 3)) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3)))) (pow.f64 im 4)))
(fma.f64 1/2 (/.f64 im (/.f64 re im)) (*.f64 (+.f64 (neg.f64 (/.f64 1/16 (pow.f64 re 3))) (neg.f64 (/.f64 1/16 (pow.f64 re 3)))) (pow.f64 im 4)))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (pow.f64 im 4))))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (*.f64 (+.f64 (/.f64 1/16 (pow.f64 re 3)) (neg.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3))))) (pow.f64 im 4))))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (fma.f64 (-.f64 (/.f64 1/16 (pow.f64 re 3)) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3)))) (pow.f64 im 4) (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)))))
(fma.f64 1/2 (/.f64 im (/.f64 re im)) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (*.f64 (+.f64 (neg.f64 (/.f64 1/16 (pow.f64 re 3))) (neg.f64 (/.f64 1/16 (pow.f64 re 3)))) (pow.f64 im 4))))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 (*.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (pow.f64 im 4)) (*.f64 (-.f64 (+.f64 (*.f64 1/4 (/.f64 (pow.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))) 2) re)) (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (*.f64 1/16 (/.f64 1 (pow.f64 re 6)))) re))) (pow.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) 2)) (pow.f64 im 8)))))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 (+.f64 (/.f64 1/16 (pow.f64 re 3)) (neg.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3))))) (pow.f64 im 4) (*.f64 (-.f64 (fma.f64 1/4 (/.f64 (pow.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3))) 2) re) (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (/.f64 1/16 (pow.f64 re 6))) re))) (pow.f64 (*.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 re))) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3)))) 2)) (pow.f64 im 8)))))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 (fma.f64 1/4 (/.f64 (pow.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3))) 2) re) (-.f64 (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (/.f64 1/16 (pow.f64 re 6))) re)) (pow.f64 (*.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3))) (*.f64 -1/2 (sqrt.f64 (/.f64 1 re)))) 2))) (pow.f64 im 8) (*.f64 (-.f64 (/.f64 1/16 (pow.f64 re 3)) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3)))) (pow.f64 im 4)))))
(fma.f64 1/2 (/.f64 im (/.f64 re im)) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 (fma.f64 1/4 (/.f64 (pow.f64 (+.f64 (/.f64 1/16 (pow.f64 re 3)) (/.f64 1/8 (pow.f64 re 3))) 2) re) (-.f64 (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (/.f64 1/16 (pow.f64 re 6))) re)) (pow.f64 (*.f64 (+.f64 (/.f64 1/16 (pow.f64 re 3)) (/.f64 1/8 (pow.f64 re 3))) (*.f64 -1/2 (sqrt.f64 (/.f64 1 re)))) 2))) (pow.f64 im 8) (*.f64 (+.f64 (neg.f64 (/.f64 1/16 (pow.f64 re 3))) (neg.f64 (/.f64 1/16 (pow.f64 re 3)))) (pow.f64 im 4)))))
im
(+.f64 (*.f64 -1 re) im)
(fma.f64 -1 re im)
(-.f64 im re)
(+.f64 (*.f64 -1 re) (+.f64 (*.f64 (-.f64 (*.f64 3/4 (/.f64 1 im)) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 2)) im))
(fma.f64 -1 re (fma.f64 (-.f64 (/.f64 3/4 im) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (*.f64 re re) im))
(-.f64 (fma.f64 (*.f64 re re) (-.f64 (/.f64 3/4 im) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) im) re)
(-.f64 (fma.f64 (*.f64 re re) (+.f64 (/.f64 3/4 im) (*.f64 (/.f64 1 im) -1/4)) im) re)
(+.f64 (*.f64 -1 re) (+.f64 (*.f64 (+.f64 (*.f64 -1/2 (/.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) im)) (*.f64 1/2 (/.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) im))) (pow.f64 re 3)) (+.f64 (*.f64 (-.f64 (*.f64 3/4 (/.f64 1 im)) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 2)) im)))
(fma.f64 -1 re (fma.f64 (-.f64 (/.f64 3/4 im) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (*.f64 re re) im))
(-.f64 (fma.f64 (*.f64 re re) (-.f64 (/.f64 3/4 im) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) im) re)
(-.f64 (fma.f64 (*.f64 re re) (+.f64 (/.f64 3/4 im) (*.f64 (/.f64 1 im) -1/4)) im) re)
(/.f64 (*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 im 2)) re)
(*.f64 1/2 (/.f64 (*.f64 im im) re))
(*.f64 (/.f64 1/2 re) (*.f64 im im))
(+.f64 (*.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (pow.f64 im 4)) (/.f64 (*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 im 2)) re))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (*.f64 (+.f64 (/.f64 1/16 (pow.f64 re 3)) (neg.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3))))) (pow.f64 im 4)))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (*.f64 (-.f64 (/.f64 1/16 (pow.f64 re 3)) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3)))) (pow.f64 im 4)))
(fma.f64 1/2 (/.f64 im (/.f64 re im)) (*.f64 (+.f64 (neg.f64 (/.f64 1/16 (pow.f64 re 3))) (neg.f64 (/.f64 1/16 (pow.f64 re 3)))) (pow.f64 im 4)))
(+.f64 (*.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (pow.f64 im 4)) (+.f64 (*.f64 (-.f64 (+.f64 (*.f64 1/4 (/.f64 (*.f64 (pow.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) 2) re) (pow.f64 (sqrt.f64 1/2) 2))) (*.f64 1/16 (/.f64 1 (pow.f64 re 5)))) (pow.f64 (*.f64 1/2 (*.f64 (/.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (sqrt.f64 1/2)) (sqrt.f64 re))) 2)) (pow.f64 im 6)) (/.f64 (*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 im 2)) re)))
(fma.f64 (+.f64 (/.f64 1/16 (pow.f64 re 3)) (neg.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3))))) (pow.f64 im 4) (fma.f64 (-.f64 (fma.f64 1/4 (/.f64 (pow.f64 (+.f64 (/.f64 1/16 (pow.f64 re 3)) (neg.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3))))) 2) (/.f64 (pow.f64 (sqrt.f64 1/2) 2) re)) (/.f64 1/16 (pow.f64 re 5))) (pow.f64 (*.f64 1/2 (*.f64 (/.f64 (+.f64 (/.f64 1/16 (pow.f64 re 3)) (neg.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3))))) (sqrt.f64 1/2)) (sqrt.f64 re))) 2)) (pow.f64 im 6) (/.f64 (pow.f64 (sqrt.f64 1/2) 2) (/.f64 re (*.f64 im im)))))
(fma.f64 (-.f64 (/.f64 1/16 (pow.f64 re 3)) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3)))) (pow.f64 im 4) (fma.f64 (pow.f64 im 6) (-.f64 (fma.f64 1/4 (*.f64 (/.f64 (pow.f64 (-.f64 (/.f64 1/16 (pow.f64 re 3)) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3)))) 2) 1/2) re) (/.f64 1/16 (pow.f64 re 5))) (pow.f64 (*.f64 1/2 (*.f64 (/.f64 (-.f64 (/.f64 1/16 (pow.f64 re 3)) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3)))) (sqrt.f64 1/2)) (sqrt.f64 re))) 2)) (*.f64 1/2 (/.f64 (*.f64 im im) re))))
(fma.f64 (+.f64 (neg.f64 (/.f64 1/16 (pow.f64 re 3))) (neg.f64 (/.f64 1/16 (pow.f64 re 3)))) (pow.f64 im 4) (fma.f64 (pow.f64 im 6) (-.f64 (fma.f64 1/4 (/.f64 (pow.f64 (+.f64 (neg.f64 (/.f64 1/16 (pow.f64 re 3))) (neg.f64 (/.f64 1/16 (pow.f64 re 3)))) 2) (/.f64 1/2 re)) (/.f64 1/16 (pow.f64 re 5))) (pow.f64 (/.f64 (*.f64 1/2 (*.f64 (+.f64 (neg.f64 (/.f64 1/16 (pow.f64 re 3))) (neg.f64 (/.f64 1/16 (pow.f64 re 3)))) (sqrt.f64 re))) (sqrt.f64 1/2)) 2)) (*.f64 (/.f64 1/2 re) (*.f64 im im))))
(+.f64 (*.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (pow.f64 im 4)) (+.f64 (*.f64 (-.f64 (+.f64 (*.f64 1/4 (/.f64 (pow.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))) 2) re)) (+.f64 (*.f64 1/4 (/.f64 (*.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (*.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (pow.f64 (*.f64 1/2 (*.f64 (/.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (sqrt.f64 1/2)) (sqrt.f64 re))) 2)) re)) (pow.f64 (sqrt.f64 1/2) 2))) (+.f64 (*.f64 1/4 (/.f64 (*.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (*.f64 re (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (pow.f64 (*.f64 1/2 (*.f64 (/.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (sqrt.f64 1/2)) (sqrt.f64 re))) 2)))) (pow.f64 (sqrt.f64 1/2) 2))) (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (*.f64 1/16 (/.f64 1 (pow.f64 re 6)))) re))))) (+.f64 (pow.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) 2) (*.f64 1/2 (/.f64 (*.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (*.f64 re (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (pow.f64 (*.f64 1/2 (*.f64 (/.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (sqrt.f64 1/2)) (sqrt.f64 re))) 2)))) (pow.f64 (sqrt.f64 1/2) 2))))) (pow.f64 im 8)) (+.f64 (*.f64 (-.f64 (+.f64 (*.f64 1/4 (/.f64 (*.f64 (pow.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) 2) re) (pow.f64 (sqrt.f64 1/2) 2))) (*.f64 1/16 (/.f64 1 (pow.f64 re 5)))) (pow.f64 (*.f64 1/2 (*.f64 (/.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (sqrt.f64 1/2)) (sqrt.f64 re))) 2)) (pow.f64 im 6)) (/.f64 (*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 im 2)) re))))
(fma.f64 (+.f64 (/.f64 1/16 (pow.f64 re 3)) (neg.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3))))) (pow.f64 im 4) (fma.f64 (-.f64 (fma.f64 1/4 (/.f64 (pow.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3))) 2) re) (fma.f64 1/4 (/.f64 (*.f64 (+.f64 (/.f64 1/16 (pow.f64 re 3)) (neg.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3))))) (*.f64 re (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 1/2 (*.f64 (/.f64 (+.f64 (/.f64 1/16 (pow.f64 re 3)) (neg.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3))))) (sqrt.f64 1/2)) (sqrt.f64 re))) 2)))) (pow.f64 (sqrt.f64 1/2) 2)) (fma.f64 1/4 (/.f64 (*.f64 (+.f64 (/.f64 1/16 (pow.f64 re 3)) (neg.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3))))) (*.f64 re (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 1/2 (*.f64 (/.f64 (+.f64 (/.f64 1/16 (pow.f64 re 3)) (neg.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3))))) (sqrt.f64 1/2)) (sqrt.f64 re))) 2)))) (pow.f64 (sqrt.f64 1/2) 2)) (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (/.f64 1/16 (pow.f64 re 6))) re))))) (+.f64 (pow.f64 (*.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 re))) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3)))) 2) (*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1/16 (pow.f64 re 3)) (neg.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3))))) (*.f64 re (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 1/2 (*.f64 (/.f64 (+.f64 (/.f64 1/16 (pow.f64 re 3)) (neg.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3))))) (sqrt.f64 1/2)) (sqrt.f64 re))) 2)))) (pow.f64 (sqrt.f64 1/2) 2))))) (pow.f64 im 8) (fma.f64 (-.f64 (fma.f64 1/4 (/.f64 (pow.f64 (+.f64 (/.f64 1/16 (pow.f64 re 3)) (neg.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3))))) 2) (/.f64 (pow.f64 (sqrt.f64 1/2) 2) re)) (/.f64 1/16 (pow.f64 re 5))) (pow.f64 (*.f64 1/2 (*.f64 (/.f64 (+.f64 (/.f64 1/16 (pow.f64 re 3)) (neg.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3))))) (sqrt.f64 1/2)) (sqrt.f64 re))) 2)) (pow.f64 im 6) (/.f64 (pow.f64 (sqrt.f64 1/2) 2) (/.f64 re (*.f64 im im))))))
(fma.f64 (-.f64 (/.f64 1/16 (pow.f64 re 3)) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3)))) (pow.f64 im 4) (fma.f64 (pow.f64 im 8) (-.f64 (+.f64 (/.f64 (*.f64 (*.f64 1/2 (-.f64 (/.f64 1/16 (pow.f64 re 3)) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3))))) (*.f64 re (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 1/2 (*.f64 (/.f64 (-.f64 (/.f64 1/16 (pow.f64 re 3)) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3)))) (sqrt.f64 1/2)) (sqrt.f64 re))) 2)))) 1/2) (fma.f64 1/4 (/.f64 (pow.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3))) 2) re) (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (/.f64 1/16 (pow.f64 re 6))) re)))) (fma.f64 1/2 (*.f64 (/.f64 (-.f64 (/.f64 1/16 (pow.f64 re 3)) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3)))) 1/2) (*.f64 re (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 1/2 (*.f64 (/.f64 (-.f64 (/.f64 1/16 (pow.f64 re 3)) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3)))) (sqrt.f64 1/2)) (sqrt.f64 re))) 2)))) (pow.f64 (*.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3))) (*.f64 -1/2 (sqrt.f64 (/.f64 1 re)))) 2))) (fma.f64 (pow.f64 im 6) (-.f64 (fma.f64 1/4 (*.f64 (/.f64 (pow.f64 (-.f64 (/.f64 1/16 (pow.f64 re 3)) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3)))) 2) 1/2) re) (/.f64 1/16 (pow.f64 re 5))) (pow.f64 (*.f64 1/2 (*.f64 (/.f64 (-.f64 (/.f64 1/16 (pow.f64 re 3)) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3)))) (sqrt.f64 1/2)) (sqrt.f64 re))) 2)) (*.f64 1/2 (/.f64 (*.f64 im im) re)))))
(fma.f64 (+.f64 (neg.f64 (/.f64 1/16 (pow.f64 re 3))) (neg.f64 (/.f64 1/16 (pow.f64 re 3)))) (pow.f64 im 4) (fma.f64 (pow.f64 im 8) (-.f64 (+.f64 (*.f64 1/2 (/.f64 (+.f64 (neg.f64 (/.f64 1/16 (pow.f64 re 3))) (neg.f64 (/.f64 1/16 (pow.f64 re 3)))) (/.f64 (/.f64 1/2 re) (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (/.f64 (*.f64 1/2 (*.f64 (+.f64 (neg.f64 (/.f64 1/16 (pow.f64 re 3))) (neg.f64 (/.f64 1/16 (pow.f64 re 3)))) (sqrt.f64 re))) (sqrt.f64 1/2)) 2))))) (fma.f64 1/4 (/.f64 (pow.f64 (+.f64 (/.f64 1/16 (pow.f64 re 3)) (/.f64 1/8 (pow.f64 re 3))) 2) re) (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (/.f64 1/16 (pow.f64 re 6))) re)))) (fma.f64 1/2 (/.f64 (+.f64 (neg.f64 (/.f64 1/16 (pow.f64 re 3))) (neg.f64 (/.f64 1/16 (pow.f64 re 3)))) (/.f64 (/.f64 1/2 re) (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (/.f64 (*.f64 1/2 (*.f64 (+.f64 (neg.f64 (/.f64 1/16 (pow.f64 re 3))) (neg.f64 (/.f64 1/16 (pow.f64 re 3)))) (sqrt.f64 re))) (sqrt.f64 1/2)) 2)))) (pow.f64 (*.f64 (+.f64 (/.f64 1/16 (pow.f64 re 3)) (/.f64 1/8 (pow.f64 re 3))) (*.f64 -1/2 (sqrt.f64 (/.f64 1 re)))) 2))) (fma.f64 (pow.f64 im 6) (-.f64 (fma.f64 1/4 (/.f64 (pow.f64 (+.f64 (neg.f64 (/.f64 1/16 (pow.f64 re 3))) (neg.f64 (/.f64 1/16 (pow.f64 re 3)))) 2) (/.f64 1/2 re)) (/.f64 1/16 (pow.f64 re 5))) (pow.f64 (/.f64 (*.f64 1/2 (*.f64 (+.f64 (neg.f64 (/.f64 1/16 (pow.f64 re 3))) (neg.f64 (/.f64 1/16 (pow.f64 re 3)))) (sqrt.f64 re))) (sqrt.f64 1/2)) 2)) (*.f64 (/.f64 1/2 re) (*.f64 im im)))))
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(+.f64 (*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
(fma.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 re (sqrt.f64 2))) (*.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) (sqrt.f64 im)))
(*.f64 (sqrt.f64 2) (fma.f64 -1/2 (*.f64 re (sqrt.f64 (/.f64 1 im))) (sqrt.f64 im)))
(+.f64 (*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 2))) (sqrt.f64 (/.f64 1 im))))))
(fma.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 re (sqrt.f64 2))) (fma.f64 (sqrt.f64 2) (sqrt.f64 im) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 (sqrt.f64 2) (*.f64 (*.f64 re re) (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2))))))))
(fma.f64 -1/2 (*.f64 re (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 im)))) (fma.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 (*.f64 re re) (*.f64 (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (sqrt.f64 2)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im))))
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (/.f64 1 im)) (+.f64 (*.f64 re -1/2) (*.f64 1/2 (*.f64 (*.f64 re re) (+.f64 (/.f64 1/2 im) (*.f64 (/.f64 1 im) -1/4))))))))
(+.f64 (*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 2))) (sqrt.f64 (/.f64 1 im)))) (*.f64 1/4 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 3))) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))))))
(fma.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 re (sqrt.f64 2))) (fma.f64 (sqrt.f64 2) (sqrt.f64 im) (fma.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 (sqrt.f64 2) (*.f64 (*.f64 re re) (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2))))) (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 3))) (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 re 3) (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)))))))))
(fma.f64 -1/2 (*.f64 re (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 im)))) (fma.f64 (sqrt.f64 2) (sqrt.f64 im) (fma.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 (*.f64 re re) (*.f64 (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (sqrt.f64 2)))) (*.f64 (sqrt.f64 2) (*.f64 (*.f64 1/4 (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 3))) (pow.f64 re 3)))))))
(+.f64 (*.f64 (sqrt.f64 2) (*.f64 (+.f64 (/.f64 1/2 im) (*.f64 (/.f64 1 im) -1/4)) (+.f64 (*.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 3))) (pow.f64 re 3)) 1/4) (*.f64 (*.f64 (*.f64 re re) (sqrt.f64 (/.f64 1 im))) 1/2)))) (*.f64 (sqrt.f64 2) (fma.f64 -1/2 (*.f64 re (sqrt.f64 (/.f64 1 im))) (sqrt.f64 im))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 2) (*.f64 im (sqrt.f64 1/2))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 2))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im (*.f64 (sqrt.f64 1/2) (sqrt.f64 2))))
(+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (pow.f64 im 3))) (sqrt.f64 1/2)) (sqrt.f64 re))) (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re))))
(fma.f64 1/2 (*.f64 (sqrt.f64 re) (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 im 3) (+.f64 (/.f64 1/16 (pow.f64 re 3)) (neg.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3))))))))) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 2) (*.f64 im (sqrt.f64 1/2)))))
(fma.f64 1/2 (*.f64 (sqrt.f64 re) (/.f64 (sqrt.f64 2) (/.f64 (/.f64 (sqrt.f64 1/2) (pow.f64 im 3)) (-.f64 (/.f64 1/16 (pow.f64 re 3)) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3))))))) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 2)))))
(fma.f64 1/2 (/.f64 (*.f64 (pow.f64 im 3) (*.f64 (+.f64 (neg.f64 (/.f64 1/16 (pow.f64 re 3))) (neg.f64 (/.f64 1/16 (pow.f64 re 3)))) (sqrt.f64 2))) (/.f64 (sqrt.f64 1/2) (sqrt.f64 re))) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im (*.f64 (sqrt.f64 1/2) (sqrt.f64 2)))))
(+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (pow.f64 im 3))) (sqrt.f64 1/2)) (sqrt.f64 re))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (pow.f64 (*.f64 1/2 (*.f64 (/.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (sqrt.f64 1/2)) (sqrt.f64 re))) 2)) (pow.f64 im 5))) (sqrt.f64 1/2)) (sqrt.f64 re))) (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))))
(fma.f64 1/2 (*.f64 (sqrt.f64 re) (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 im 3) (+.f64 (/.f64 1/16 (pow.f64 re 3)) (neg.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3))))))))) (fma.f64 1/2 (*.f64 (sqrt.f64 re) (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 1/2 (*.f64 (/.f64 (+.f64 (/.f64 1/16 (pow.f64 re 3)) (neg.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3))))) (sqrt.f64 1/2)) (sqrt.f64 re))) 2)) (pow.f64 im 5))) (sqrt.f64 1/2))) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 2) (*.f64 im (sqrt.f64 1/2))))))
(+.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 2)))) (*.f64 (sqrt.f64 re) (+.f64 (*.f64 1/2 (/.f64 (sqrt.f64 2) (/.f64 (/.f64 (sqrt.f64 1/2) (pow.f64 im 3)) (-.f64 (/.f64 1/16 (pow.f64 re 3)) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3))))))) (/.f64 (*.f64 1/2 (sqrt.f64 2)) (/.f64 (sqrt.f64 1/2) (*.f64 (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 1/2 (*.f64 (/.f64 (-.f64 (/.f64 1/16 (pow.f64 re 3)) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3)))) (sqrt.f64 1/2)) (sqrt.f64 re))) 2)) (pow.f64 im 5)))))))
(+.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im (*.f64 (sqrt.f64 1/2) (sqrt.f64 2)))) (*.f64 (*.f64 (sqrt.f64 re) 1/2) (+.f64 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/2)) (*.f64 (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (/.f64 (*.f64 1/2 (*.f64 (+.f64 (neg.f64 (/.f64 1/16 (pow.f64 re 3))) (neg.f64 (/.f64 1/16 (pow.f64 re 3)))) (sqrt.f64 re))) (sqrt.f64 1/2)) 2)) (pow.f64 im 5))) (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/2)) (*.f64 (pow.f64 im 3) (+.f64 (neg.f64 (/.f64 1/16 (pow.f64 re 3))) (neg.f64 (/.f64 1/16 (pow.f64 re 3)))))))))
(+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (pow.f64 im 3))) (sqrt.f64 1/2)) (sqrt.f64 re))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (pow.f64 (*.f64 1/2 (*.f64 (/.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (sqrt.f64 1/2)) (sqrt.f64 re))) 2)) (pow.f64 im 5))) (sqrt.f64 1/2)) (sqrt.f64 re))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (+.f64 (*.f64 1/4 (/.f64 (pow.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))) 2) re)) (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (*.f64 1/16 (/.f64 1 (pow.f64 re 6)))) re))) (+.f64 (pow.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) 2) (*.f64 1/2 (/.f64 (*.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (*.f64 re (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (pow.f64 (*.f64 1/2 (*.f64 (/.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (sqrt.f64 1/2)) (sqrt.f64 re))) 2)))) (pow.f64 (sqrt.f64 1/2) 2))))) (pow.f64 im 7))) (sqrt.f64 1/2)) (sqrt.f64 re))) (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re))))))
(fma.f64 1/2 (*.f64 (sqrt.f64 re) (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 im 3) (+.f64 (/.f64 1/16 (pow.f64 re 3)) (neg.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3))))))))) (fma.f64 1/2 (*.f64 (sqrt.f64 re) (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 1/2 (*.f64 (/.f64 (+.f64 (/.f64 1/16 (pow.f64 re 3)) (neg.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3))))) (sqrt.f64 1/2)) (sqrt.f64 re))) 2)) (pow.f64 im 5))) (sqrt.f64 1/2))) (fma.f64 1/2 (*.f64 (sqrt.f64 re) (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 1/2) (*.f64 (-.f64 (fma.f64 1/4 (/.f64 (pow.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3))) 2) re) (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (/.f64 1/16 (pow.f64 re 6))) re))) (+.f64 (pow.f64 (*.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 re))) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3)))) 2) (*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1/16 (pow.f64 re 3)) (neg.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3))))) (*.f64 re (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 1/2 (*.f64 (/.f64 (+.f64 (/.f64 1/16 (pow.f64 re 3)) (neg.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3))))) (sqrt.f64 1/2)) (sqrt.f64 re))) 2)))) (pow.f64 (sqrt.f64 1/2) 2))))) (pow.f64 im 7))))) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 2) (*.f64 im (sqrt.f64 1/2)))))))
(+.f64 (fma.f64 1/2 (*.f64 (sqrt.f64 re) (/.f64 (*.f64 (-.f64 (fma.f64 1/4 (/.f64 (pow.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3))) 2) re) (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (/.f64 1/16 (pow.f64 re 6))) re))) (fma.f64 1/2 (*.f64 (/.f64 (-.f64 (/.f64 1/16 (pow.f64 re 3)) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3)))) 1/2) (*.f64 re (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 1/2 (*.f64 (/.f64 (-.f64 (/.f64 1/16 (pow.f64 re 3)) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3)))) (sqrt.f64 1/2)) (sqrt.f64 re))) 2)))) (pow.f64 (*.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3))) (*.f64 -1/2 (sqrt.f64 (/.f64 1 re)))) 2))) (*.f64 (pow.f64 im 7) (sqrt.f64 2))) (sqrt.f64 1/2))) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 2))))) (*.f64 (sqrt.f64 re) (+.f64 (*.f64 1/2 (/.f64 (sqrt.f64 2) (/.f64 (/.f64 (sqrt.f64 1/2) (pow.f64 im 3)) (-.f64 (/.f64 1/16 (pow.f64 re 3)) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3))))))) (/.f64 (*.f64 1/2 (sqrt.f64 2)) (/.f64 (sqrt.f64 1/2) (*.f64 (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 1/2 (*.f64 (/.f64 (-.f64 (/.f64 1/16 (pow.f64 re 3)) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3)))) (sqrt.f64 1/2)) (sqrt.f64 re))) 2)) (pow.f64 im 5)))))))
(+.f64 (*.f64 (sqrt.f64 re) (+.f64 (*.f64 1/2 (+.f64 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/2)) (*.f64 (pow.f64 im 3) (+.f64 (neg.f64 (/.f64 1/16 (pow.f64 re 3))) (neg.f64 (/.f64 1/16 (pow.f64 re 3)))))) (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/2)) (*.f64 (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (/.f64 (*.f64 1/2 (*.f64 (+.f64 (neg.f64 (/.f64 1/16 (pow.f64 re 3))) (neg.f64 (/.f64 1/16 (pow.f64 re 3)))) (sqrt.f64 re))) (sqrt.f64 1/2)) 2)) (pow.f64 im 5))))) (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 2) (-.f64 (fma.f64 1/4 (/.f64 (pow.f64 (+.f64 (/.f64 1/16 (pow.f64 re 3)) (/.f64 1/8 (pow.f64 re 3))) 2) re) (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (/.f64 1/16 (pow.f64 re 6))) re))) (fma.f64 1/2 (/.f64 (+.f64 (neg.f64 (/.f64 1/16 (pow.f64 re 3))) (neg.f64 (/.f64 1/16 (pow.f64 re 3)))) (/.f64 (/.f64 1/2 re) (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (/.f64 (*.f64 1/2 (*.f64 (+.f64 (neg.f64 (/.f64 1/16 (pow.f64 re 3))) (neg.f64 (/.f64 1/16 (pow.f64 re 3)))) (sqrt.f64 re))) (sqrt.f64 1/2)) 2)))) (pow.f64 (*.f64 (+.f64 (/.f64 1/16 (pow.f64 re 3)) (/.f64 1/8 (pow.f64 re 3))) (*.f64 -1/2 (sqrt.f64 (/.f64 1 re)))) 2)))) (/.f64 (sqrt.f64 1/2) (pow.f64 im 7)))))) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im (*.f64 (sqrt.f64 1/2) (sqrt.f64 2)))))
(sqrt.f64 im)
(+.f64 (sqrt.f64 im) (*.f64 -1/2 (*.f64 re (sqrt.f64 (/.f64 1 im)))))
(fma.f64 -1/2 (*.f64 re (sqrt.f64 (/.f64 1 im))) (sqrt.f64 im))
(+.f64 (sqrt.f64 im) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 im)))) (*.f64 -1/2 (*.f64 re (sqrt.f64 (/.f64 1 im))))))
(+.f64 (sqrt.f64 im) (fma.f64 1/2 (*.f64 (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (*.f64 (*.f64 re re) (sqrt.f64 (/.f64 1 im)))) (*.f64 -1/2 (*.f64 re (sqrt.f64 (/.f64 1 im))))))
(+.f64 (sqrt.f64 im) (*.f64 (sqrt.f64 (/.f64 1 im)) (+.f64 (*.f64 re -1/2) (*.f64 1/2 (*.f64 (*.f64 re re) (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)))))))
(+.f64 (sqrt.f64 im) (*.f64 (sqrt.f64 (/.f64 1 im)) (+.f64 (*.f64 re -1/2) (*.f64 1/2 (*.f64 (*.f64 re re) (+.f64 (/.f64 1/2 im) (*.f64 (/.f64 1 im) -1/4)))))))
(+.f64 (sqrt.f64 im) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 -1/2 (*.f64 re (sqrt.f64 (/.f64 1 im)))) (*.f64 1/4 (*.f64 (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 3)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))))))
(+.f64 (sqrt.f64 im) (fma.f64 1/2 (*.f64 (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (*.f64 (*.f64 re re) (sqrt.f64 (/.f64 1 im)))) (fma.f64 -1/2 (*.f64 re (sqrt.f64 (/.f64 1 im))) (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 3))) (*.f64 (pow.f64 re 3) (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2))))))))
(+.f64 (*.f64 (sqrt.f64 (/.f64 1 im)) (+.f64 (*.f64 re -1/2) (*.f64 1/2 (*.f64 (*.f64 re re) (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)))))) (+.f64 (*.f64 (*.f64 1/4 (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 3))) (pow.f64 re 3))) (sqrt.f64 im)))
(+.f64 (sqrt.f64 im) (+.f64 (*.f64 re (*.f64 -1/2 (sqrt.f64 (/.f64 1 im)))) (*.f64 (+.f64 (/.f64 1/2 im) (*.f64 (/.f64 1 im) -1/4)) (+.f64 (*.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 3))) (pow.f64 re 3)) 1/4) (*.f64 (*.f64 (*.f64 re re) (sqrt.f64 (/.f64 1 im))) 1/2)))))
(*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im (sqrt.f64 1/2)))
(*.f64 im (*.f64 (sqrt.f64 1/2) (sqrt.f64 (/.f64 1 re))))
(+.f64 (*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re))) (*.f64 1/2 (*.f64 (/.f64 (*.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (pow.f64 im 3)) (sqrt.f64 1/2)) (sqrt.f64 re))))
(fma.f64 (*.f64 im (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 re)) (*.f64 1/2 (*.f64 (sqrt.f64 re) (/.f64 (+.f64 (/.f64 1/16 (pow.f64 re 3)) (neg.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3))))) (/.f64 (sqrt.f64 1/2) (pow.f64 im 3))))))
(fma.f64 1/2 (*.f64 (sqrt.f64 re) (*.f64 (/.f64 (-.f64 (/.f64 1/16 (pow.f64 re 3)) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3)))) (sqrt.f64 1/2)) (pow.f64 im 3))) (*.f64 im (*.f64 (sqrt.f64 1/2) (sqrt.f64 (/.f64 1 re)))))
(fma.f64 1/2 (/.f64 (*.f64 (+.f64 (neg.f64 (/.f64 1/16 (pow.f64 re 3))) (neg.f64 (/.f64 1/16 (pow.f64 re 3)))) (sqrt.f64 re)) (/.f64 (sqrt.f64 1/2) (pow.f64 im 3))) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im (sqrt.f64 1/2))))
(+.f64 (*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (pow.f64 im 3)) (sqrt.f64 1/2)) (sqrt.f64 re))) (*.f64 1/2 (*.f64 (/.f64 (*.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (pow.f64 (*.f64 1/2 (*.f64 (/.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (sqrt.f64 1/2)) (sqrt.f64 re))) 2)) (pow.f64 im 5)) (sqrt.f64 1/2)) (sqrt.f64 re)))))
(fma.f64 (*.f64 im (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 re)) (*.f64 1/2 (+.f64 (*.f64 (sqrt.f64 re) (/.f64 (+.f64 (/.f64 1/16 (pow.f64 re 3)) (neg.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3))))) (/.f64 (sqrt.f64 1/2) (pow.f64 im 3)))) (*.f64 (sqrt.f64 re) (/.f64 (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 1/2 (*.f64 (/.f64 (+.f64 (/.f64 1/16 (pow.f64 re 3)) (neg.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3))))) (sqrt.f64 1/2)) (sqrt.f64 re))) 2)) (/.f64 (sqrt.f64 1/2) (pow.f64 im 5)))))))
(fma.f64 1/2 (*.f64 (sqrt.f64 re) (+.f64 (*.f64 (/.f64 (-.f64 (/.f64 1/16 (pow.f64 re 3)) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3)))) (sqrt.f64 1/2)) (pow.f64 im 3)) (*.f64 (/.f64 (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 1/2 (*.f64 (/.f64 (-.f64 (/.f64 1/16 (pow.f64 re 3)) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3)))) (sqrt.f64 1/2)) (sqrt.f64 re))) 2)) (sqrt.f64 1/2)) (pow.f64 im 5)))) (*.f64 im (*.f64 (sqrt.f64 1/2) (sqrt.f64 (/.f64 1 re)))))
(fma.f64 1/2 (*.f64 (sqrt.f64 re) (+.f64 (*.f64 (/.f64 (+.f64 (neg.f64 (/.f64 1/16 (pow.f64 re 3))) (neg.f64 (/.f64 1/16 (pow.f64 re 3)))) (sqrt.f64 1/2)) (pow.f64 im 3)) (*.f64 (/.f64 (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (/.f64 (*.f64 1/2 (*.f64 (+.f64 (neg.f64 (/.f64 1/16 (pow.f64 re 3))) (neg.f64 (/.f64 1/16 (pow.f64 re 3)))) (sqrt.f64 re))) (sqrt.f64 1/2)) 2)) (sqrt.f64 1/2)) (pow.f64 im 5)))) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im (sqrt.f64 1/2))))
(+.f64 (*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (-.f64 (+.f64 (*.f64 1/4 (/.f64 (pow.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))) 2) re)) (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (*.f64 1/16 (/.f64 1 (pow.f64 re 6)))) re))) (+.f64 (pow.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) 2) (*.f64 1/2 (/.f64 (*.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (*.f64 re (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (pow.f64 (*.f64 1/2 (*.f64 (/.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (sqrt.f64 1/2)) (sqrt.f64 re))) 2)))) (pow.f64 (sqrt.f64 1/2) 2))))) (pow.f64 im 7)) (sqrt.f64 1/2)) (sqrt.f64 re))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (pow.f64 im 3)) (sqrt.f64 1/2)) (sqrt.f64 re))) (*.f64 1/2 (*.f64 (/.f64 (*.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (pow.f64 (*.f64 1/2 (*.f64 (/.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 3))) (*.f64 -1 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (sqrt.f64 1/2)) (sqrt.f64 re))) 2)) (pow.f64 im 5)) (sqrt.f64 1/2)) (sqrt.f64 re))))))
(fma.f64 (*.f64 im (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 re)) (fma.f64 1/2 (*.f64 (sqrt.f64 re) (/.f64 (-.f64 (fma.f64 1/4 (/.f64 (pow.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3))) 2) re) (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (/.f64 1/16 (pow.f64 re 6))) re))) (+.f64 (pow.f64 (*.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 re))) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3)))) 2) (*.f64 1/2 (/.f64 (*.f64 (+.f64 (/.f64 1/16 (pow.f64 re 3)) (neg.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3))))) (*.f64 re (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 1/2 (*.f64 (/.f64 (+.f64 (/.f64 1/16 (pow.f64 re 3)) (neg.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3))))) (sqrt.f64 1/2)) (sqrt.f64 re))) 2)))) (pow.f64 (sqrt.f64 1/2) 2))))) (/.f64 (sqrt.f64 1/2) (pow.f64 im 7)))) (*.f64 1/2 (+.f64 (*.f64 (sqrt.f64 re) (/.f64 (+.f64 (/.f64 1/16 (pow.f64 re 3)) (neg.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3))))) (/.f64 (sqrt.f64 1/2) (pow.f64 im 3)))) (*.f64 (sqrt.f64 re) (/.f64 (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 1/2 (*.f64 (/.f64 (+.f64 (/.f64 1/16 (pow.f64 re 3)) (neg.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3))))) (sqrt.f64 1/2)) (sqrt.f64 re))) 2)) (/.f64 (sqrt.f64 1/2) (pow.f64 im 5))))))))
(fma.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im (sqrt.f64 1/2)) (*.f64 1/2 (+.f64 (*.f64 (sqrt.f64 re) (+.f64 (*.f64 (/.f64 (-.f64 (/.f64 1/16 (pow.f64 re 3)) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3)))) (sqrt.f64 1/2)) (pow.f64 im 3)) (*.f64 (/.f64 (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 1/2 (*.f64 (/.f64 (-.f64 (/.f64 1/16 (pow.f64 re 3)) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3)))) (sqrt.f64 1/2)) (sqrt.f64 re))) 2)) (sqrt.f64 1/2)) (pow.f64 im 5)))) (*.f64 (sqrt.f64 re) (/.f64 (-.f64 (fma.f64 1/4 (/.f64 (pow.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3))) 2) re) (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (/.f64 1/16 (pow.f64 re 6))) re))) (fma.f64 1/2 (*.f64 (/.f64 (-.f64 (/.f64 1/16 (pow.f64 re 3)) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3)))) 1/2) (*.f64 re (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 1/2 (*.f64 (/.f64 (-.f64 (/.f64 1/16 (pow.f64 re 3)) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3)))) (sqrt.f64 1/2)) (sqrt.f64 re))) 2)))) (pow.f64 (*.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3))) (*.f64 -1/2 (sqrt.f64 (/.f64 1 re)))) 2))) (/.f64 (sqrt.f64 1/2) (pow.f64 im 7)))))))
(fma.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im (sqrt.f64 1/2)) (*.f64 1/2 (*.f64 (sqrt.f64 re) (+.f64 (+.f64 (*.f64 (/.f64 (+.f64 (neg.f64 (/.f64 1/16 (pow.f64 re 3))) (neg.f64 (/.f64 1/16 (pow.f64 re 3)))) (sqrt.f64 1/2)) (pow.f64 im 3)) (*.f64 (/.f64 (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (/.f64 (*.f64 1/2 (*.f64 (+.f64 (neg.f64 (/.f64 1/16 (pow.f64 re 3))) (neg.f64 (/.f64 1/16 (pow.f64 re 3)))) (sqrt.f64 re))) (sqrt.f64 1/2)) 2)) (sqrt.f64 1/2)) (pow.f64 im 5))) (/.f64 (-.f64 (fma.f64 1/4 (/.f64 (pow.f64 (+.f64 (/.f64 1/16 (pow.f64 re 3)) (/.f64 1/8 (pow.f64 re 3))) 2) re) (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (/.f64 1/16 (pow.f64 re 6))) re))) (fma.f64 1/2 (/.f64 (+.f64 (neg.f64 (/.f64 1/16 (pow.f64 re 3))) (neg.f64 (/.f64 1/16 (pow.f64 re 3)))) (/.f64 (/.f64 1/2 re) (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (/.f64 (*.f64 1/2 (*.f64 (+.f64 (neg.f64 (/.f64 1/16 (pow.f64 re 3))) (neg.f64 (/.f64 1/16 (pow.f64 re 3)))) (sqrt.f64 re))) (sqrt.f64 1/2)) 2)))) (pow.f64 (*.f64 (+.f64 (/.f64 1/16 (pow.f64 re 3)) (/.f64 1/8 (pow.f64 re 3))) (*.f64 -1/2 (sqrt.f64 (/.f64 1 re)))) 2))) (/.f64 (sqrt.f64 1/2) (pow.f64 im 7)))))))

prune141.0ms (3.9%)

Pruning

10 alts after pruning (8 fresh and 2 done)

PrunedKeptTotal
New1400140
Fresh088
Picked011
Done011
Total14010150
Error
0.1b
Counts
150 → 10
Alt Table
StatusErrorProgram
16.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (pow.f64 (sqrt.f64 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re))) 2))))
30.7b
(*.f64 1/2 (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
47.1b
(*.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 im (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 re)))))
54.6b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 1/2 (/.f64 im (/.f64 re im))))))
13.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))))
57.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))))
57.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (/.f64 (*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 im 2)) re) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))))
55.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (/.f64 (*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 im 2)) re))))
53.0b
(*.f64 1/2 (fma.f64 (sqrt.f64 2) (*.f64 im (*.f64 (sqrt.f64 1/2) (sqrt.f64 (/.f64 1 re)))) (fma.f64 (sqrt.f64 re) (*.f64 (/.f64 (*.f64 1/2 (sqrt.f64 2)) (/.f64 (sqrt.f64 1/2) (pow.f64 im 5))) (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 -1/16 (sqrt.f64 1/2))) 2))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 -1/16 (/.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 im 3) (sqrt.f64 2))))))))
47.1b
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re))))
Compiler

Compiled 5695 to 4420 computations (22.4% saved)

localize6.0ms (0.2%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.5b
(*.f64 (sqrt.f64 2) (sqrt.f64 im))

series2.0ms (0.1%)

Counts
1 → 0
Calls

3 calls:

TimeVariablePointExpression
1.0ms
im
@0
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
0.0ms
im
@inf
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
0.0ms
im
@-inf
(*.f64 (sqrt.f64 2) (sqrt.f64 im))

rewrite29.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
486×pow1_binary64
450×add-log-exp_binary64
450×log1p-expm1-u_binary64
450×expm1-log1p-u_binary64
439×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
066
11216
212976
Stop Event
node limit
Counts
1 → 14
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (sqrt.f64 (*.f64 2 im))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 2 im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 2 im) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (sqrt.f64 (*.f64 2 im)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (sqrt.f64 (*.f64 2 im))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (sqrt.f64 (*.f64 2 im))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 2 im))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (*.f64 2 im))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (sqrt.f64 (*.f64 2 im)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (*.f64 2 (sqrt.f64 2)) (pow.f64 im 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 im 3/2) (*.f64 2 (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (*.f64 2 im))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (sqrt.f64 (*.f64 2 im))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (*.f64 2 im))))))))

simplify6.0ms (0.2%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
000
Stop Event
saturated
Counts
14 → 14
Calls
Call 1
Inputs
Outputs

prune14.0ms (0.4%)

Pruning

10 alts after pruning (7 fresh and 3 done)

PrunedKeptTotal
New14014
Fresh077
Picked011
Done022
Total141024
Error
0.1b
Counts
24 → 10
Alt Table
StatusErrorProgram
16.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (pow.f64 (sqrt.f64 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re))) 2))))
30.7b
(*.f64 1/2 (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
47.1b
(*.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 im (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 re)))))
54.6b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 1/2 (/.f64 im (/.f64 re im))))))
13.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))))
57.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))))
57.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (/.f64 (*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 im 2)) re) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))))
55.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (/.f64 (*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 im 2)) re))))
53.0b
(*.f64 1/2 (fma.f64 (sqrt.f64 2) (*.f64 im (*.f64 (sqrt.f64 1/2) (sqrt.f64 (/.f64 1 re)))) (fma.f64 (sqrt.f64 re) (*.f64 (/.f64 (*.f64 1/2 (sqrt.f64 2)) (/.f64 (sqrt.f64 1/2) (pow.f64 im 5))) (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 -1/16 (sqrt.f64 1/2))) 2))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 -1/16 (/.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 im 3) (sqrt.f64 2))))))))
47.1b
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re))))
Compiler

Compiled 348 to 298 computations (14.4% saved)

regimes182.0ms (5%)

Accuracy

Total -57.6b remaining (-934.2%)

Threshold costs -57.6b (-934.2%)

Counts
33 → 2
Compiler

Compiled 692 to 502 computations (27.5% saved)

bsearch1.0ms (0%)

Algorithm
left-value
Calls

1 calls:

0.0ms
(-.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)
Steps
ItersPointRange
0.0
∈ [
0.0
,
2.40700444004406e-294
]
Compiler

Compiled 22 to 16 computations (27.3% saved)

simplify3.0ms (0.1%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
+-commutative_binary64
sub-neg_binary64
neg-sub0_binary64
neg-mul-1_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02857
13957
24457
34657
44757
Stop Event
saturated
Calls
Call 1
Inputs
(if (<=.f64 (-.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re) 0) (*.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 im (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 re))))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))))
Outputs
(if (<=.f64 (-.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re) 0) (*.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 im (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 re))))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))))

end164.0ms (4.5%)

Stop Event
fuel
Compiler

Compiled 282 to 223 computations (20.9% saved)

Profiling

Loading profile data...