Details

Time bar (total: 3.1s)

analyze458.0ms (14.6%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.9%0.1%0
0%99.9%0.1%1
0%99.9%0.1%2
50%50%0.1%3
50%50%0.1%4
62.4%37.5%0.1%5
62.4%37.5%0.1%6
68.7%31.2%0.1%7
68.7%31.2%0.1%8
71.8%28.1%0.1%9
71.8%28.1%0.1%10
73.4%26.5%0.1%11
73.4%26.5%0.1%12
74.1%25.8%0.1%13
74.1%25.8%0.1%14
Compiler

Compiled 18 to 13 computations (27.8% saved)

sample1.7s (52.5%)

Results
734.0ms6240×body128valid
322.0ms556×body4096valid
317.0ms654×body2048valid
167.0ms447×body1024valid
67.0ms237×body512valid
27.0ms122×body256valid
Compiler

Compiled 36 to 26 computations (27.8% saved)

preprocess16.0ms (0.5%)

Algorithm
egg-herbie
Rules
10×fma-def_binary64
*-commutative_binary64
distribute-lft-in_binary64
distribute-rgt-in_binary64
+-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01930
14530
25530
35930
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 re (hypot.f64 re im)))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 im im) (*.f64 re re))) im))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 im (hypot.f64 re im)))))
Compiler

Compiled 17 to 12 computations (29.4% saved)

simplify6.0ms (0.2%)

Algorithm
egg-herbie
Rules
fma-def_binary64
*-commutative_binary64
+-commutative_binary64
distribute-lft-in_binary64
distribute-rgt-in_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01315
12515
23415
33615
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 re (hypot.f64 re im)))))

prune4.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
14.5b
Counts
3 → 2
Alt Table
StatusErrorProgram
40.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))))
14.6b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))
Compiler

Compiled 85 to 61 computations (28.2% saved)

localize6.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))
0.0b
(+.f64 re (hypot.f64 re im))

series17.0ms (0.5%)

Counts
2 → 32
Calls

12 calls:

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

rewrite42.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
844×log1p-expm1-u_binary64
844×expm1-log1p-u_binary64
92×add-sqr-sqrt_binary64
88×pow1_binary64
87×*-un-lft-identity_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify29.0ms (0.9%)

Algorithm
egg-herbie
Rules
427×fma-def_binary64
387×associate-*r*_binary64
306×associate-*l*_binary64
236×cancel-sign-sub-inv_binary64
223×associate-/l*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0120860
1345810
21133762
Stop Event
node limit
Counts
92 → 105
Calls
Call 1
Inputs
im
(+.f64 re im)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im))
(-.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im)) (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))))
(*.f64 2 re)
(+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))
(-.f64 (+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(-.f64 (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))))
(-.f64 (+.f64 (*.f64 5/128 (/.f64 (pow.f64 im 8) (pow.f64 re 7))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))))
(*.f64 2 re)
(+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))
(-.f64 (+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(-.f64 (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
im
(+.f64 re im)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im))
(-.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im)) (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))))
(*.f64 -1 im)
(-.f64 re im)
(-.f64 re (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im))
(-.f64 (+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) re) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im))
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))))
(+.f64 (*.f64 1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im))))))
(-.f64 (+.f64 (*.f64 1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))))) (*.f64 1/16 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 3)) (sqrt.f64 (/.f64 1 (pow.f64 im 5))))))
(*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re))
(+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)) (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2))))
(-.f64 (+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)) (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2)))) (+.f64 (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (pow.f64 im 4))) (*.f64 1/32 (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 (sqrt.f64 2) 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 7)))))))
(-.f64 (+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)) (+.f64 (*.f64 1/128 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 (sqrt.f64 2) 4)) (sqrt.f64 (/.f64 1 (pow.f64 re 11))))) (+.f64 (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2))) (+.f64 (*.f64 1/32 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 11))) (pow.f64 im 6))) (*.f64 1/64 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 (sqrt.f64 2) 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 11))))))))) (+.f64 (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (pow.f64 im 4))) (*.f64 1/32 (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 (sqrt.f64 2) 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 7)))))))
Outputs
im
(+.f64 re im)
(+.f64 im re)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im))
(fma.f64 1/2 (/.f64 (*.f64 re re) im) (+.f64 im re))
(fma.f64 1/2 (/.f64 re (/.f64 im re)) (+.f64 im re))
(+.f64 im (fma.f64 1/2 (*.f64 (/.f64 re im) re) re))
(-.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im)) (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))))
(-.f64 (fma.f64 1/2 (/.f64 (*.f64 re re) im) (+.f64 im re)) (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))))
(+.f64 (fma.f64 1/2 (/.f64 re (/.f64 im re)) (+.f64 im re)) (*.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) -1/8))
(fma.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) -1/8 (+.f64 im (fma.f64 1/2 (*.f64 (/.f64 re im) re) re)))
(*.f64 2 re)
(*.f64 re 2)
(+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))
(fma.f64 2 re (*.f64 1/2 (/.f64 (*.f64 im im) re)))
(fma.f64 re 2 (/.f64 1/2 (/.f64 re (*.f64 im im))))
(fma.f64 re 2 (*.f64 1/2 (*.f64 (/.f64 im re) im)))
(-.f64 (+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(+.f64 (fma.f64 2 re (*.f64 1/2 (/.f64 (*.f64 im im) re))) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(fma.f64 re 2 (fma.f64 1/2 (/.f64 im (/.f64 re im)) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) -1/8)))
(fma.f64 re 2 (fma.f64 1/2 (*.f64 (/.f64 im re) im) (/.f64 -1/8 (/.f64 (pow.f64 re 3) (pow.f64 im 4)))))
(-.f64 (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(+.f64 (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 2 re (*.f64 1/2 (/.f64 (*.f64 im im) re)))) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 re 2 (fma.f64 1/2 (/.f64 im (/.f64 re im)) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) -1/8))))
(fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) -1/8 (fma.f64 re 2 (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (*.f64 1/2 (*.f64 (/.f64 im re) im)))))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 (/.f64 (*.f64 im im) re) -1/2)
(/.f64 -1/2 (/.f64 re (*.f64 im im)))
(*.f64 (*.f64 (/.f64 im re) im) -1/2)
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 (/.f64 (*.f64 im im) re) -1/2))
(fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (/.f64 -1/2 (/.f64 re (*.f64 im im))))
(fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (*.f64 (*.f64 (/.f64 im re) im) -1/2))
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))))
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (*.f64 1/2 (/.f64 (*.f64 im im) re))))
(-.f64 (/.f64 (*.f64 1/8 (pow.f64 im 4)) (pow.f64 re 3)) (fma.f64 1/2 (/.f64 im (/.f64 re im)) (/.f64 (*.f64 1/16 (pow.f64 im 6)) (pow.f64 re 5))))
(fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 (*.f64 (/.f64 im re) im) -1/2 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) -1/16)))
(-.f64 (+.f64 (*.f64 5/128 (/.f64 (pow.f64 im 8) (pow.f64 re 7))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))))
(-.f64 (fma.f64 5/128 (/.f64 (pow.f64 im 8) (pow.f64 re 7)) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (*.f64 1/2 (/.f64 (*.f64 im im) re))))
(-.f64 (fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (/.f64 5/128 (/.f64 (pow.f64 re 7) (pow.f64 im 8)))) (fma.f64 1/2 (/.f64 im (/.f64 re im)) (/.f64 (*.f64 1/16 (pow.f64 im 6)) (pow.f64 re 5))))
(fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 5/128 (/.f64 (pow.f64 im 8) (pow.f64 re 7)) (fma.f64 (*.f64 (/.f64 im re) im) -1/2 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) -1/16))))
(*.f64 2 re)
(*.f64 re 2)
(+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))
(fma.f64 2 re (*.f64 1/2 (/.f64 (*.f64 im im) re)))
(fma.f64 re 2 (/.f64 1/2 (/.f64 re (*.f64 im im))))
(fma.f64 re 2 (*.f64 1/2 (*.f64 (/.f64 im re) im)))
(-.f64 (+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(+.f64 (fma.f64 2 re (*.f64 1/2 (/.f64 (*.f64 im im) re))) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(fma.f64 re 2 (fma.f64 1/2 (/.f64 im (/.f64 re im)) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) -1/8)))
(fma.f64 re 2 (fma.f64 1/2 (*.f64 (/.f64 im re) im) (/.f64 -1/8 (/.f64 (pow.f64 re 3) (pow.f64 im 4)))))
(-.f64 (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(+.f64 (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 2 re (*.f64 1/2 (/.f64 (*.f64 im im) re)))) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 re 2 (fma.f64 1/2 (/.f64 im (/.f64 re im)) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) -1/8))))
(fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) -1/8 (fma.f64 re 2 (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (*.f64 1/2 (*.f64 (/.f64 im re) im)))))
im
(+.f64 re im)
(+.f64 im re)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im))
(fma.f64 1/2 (/.f64 (*.f64 re re) im) (+.f64 im re))
(fma.f64 1/2 (/.f64 re (/.f64 im re)) (+.f64 im re))
(+.f64 im (fma.f64 1/2 (*.f64 (/.f64 re im) re) re))
(-.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im)) (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))))
(-.f64 (fma.f64 1/2 (/.f64 (*.f64 re re) im) (+.f64 im re)) (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))))
(+.f64 (fma.f64 1/2 (/.f64 re (/.f64 im re)) (+.f64 im re)) (*.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) -1/8))
(fma.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) -1/8 (+.f64 im (fma.f64 1/2 (*.f64 (/.f64 re im) re) re)))
(*.f64 -1 im)
(neg.f64 im)
(-.f64 re im)
(-.f64 re (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im))
(-.f64 re (fma.f64 1/2 (/.f64 (*.f64 re re) im) im))
(-.f64 re (fma.f64 1/2 (/.f64 re (/.f64 im re)) im))
(-.f64 re (fma.f64 1/2 (*.f64 (/.f64 re im) re) im))
(-.f64 (+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) re) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im))
(-.f64 (fma.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) re) (fma.f64 1/2 (/.f64 (*.f64 re re) im) im))
(-.f64 (fma.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) re) (fma.f64 1/2 (/.f64 re (/.f64 im re)) im))
(fma.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (-.f64 re (fma.f64 1/2 (*.f64 (/.f64 re im) re) im)))
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))))
(fma.f64 (sqrt.f64 2) (sqrt.f64 im) (*.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 (/.f64 1 im))))))
(fma.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
(*.f64 (sqrt.f64 2) (+.f64 (sqrt.f64 im) (*.f64 re (*.f64 1/2 (sqrt.f64 (/.f64 1 im))))))
(+.f64 (*.f64 1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im))))))
(fma.f64 1/8 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 re re) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (fma.f64 (sqrt.f64 2) (sqrt.f64 im) (*.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 (/.f64 1 im)))))))
(fma.f64 1/8 (*.f64 (*.f64 re re) (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (fma.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im))))
(fma.f64 1/2 (*.f64 re (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (+.f64 (sqrt.f64 im) (*.f64 (*.f64 re re) (*.f64 1/8 (sqrt.f64 (/.f64 1 (pow.f64 im 3))))))))
(-.f64 (+.f64 (*.f64 1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))))) (*.f64 1/16 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 3)) (sqrt.f64 (/.f64 1 (pow.f64 im 5))))))
(+.f64 (fma.f64 1/8 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 re re) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (fma.f64 (sqrt.f64 2) (sqrt.f64 im) (*.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 (/.f64 1 im))))))) (*.f64 -1/16 (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 re 3) (sqrt.f64 (/.f64 1 (pow.f64 im 5)))))))
(+.f64 (fma.f64 1/8 (*.f64 (*.f64 re re) (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (fma.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))) (*.f64 (*.f64 -1/16 (sqrt.f64 2)) (*.f64 (pow.f64 re 3) (sqrt.f64 (/.f64 1 (pow.f64 im 5))))))
(+.f64 (*.f64 (sqrt.f64 2) (+.f64 (sqrt.f64 im) (*.f64 (*.f64 re re) (*.f64 1/8 (sqrt.f64 (/.f64 1 (pow.f64 im 3))))))) (*.f64 (sqrt.f64 2) (-.f64 (*.f64 re (*.f64 1/2 (sqrt.f64 (/.f64 1 im)))) (*.f64 (pow.f64 re 3) (*.f64 1/16 (sqrt.f64 (/.f64 1 (pow.f64 im 5))))))))
(*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re))
(*.f64 2 (sqrt.f64 re))
(+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)) (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2))))
(fma.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re) (*.f64 1/4 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))))
(fma.f64 2 (sqrt.f64 re) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 (*.f64 im im) 1/4)))
(fma.f64 2 (sqrt.f64 re) (*.f64 1/4 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))))
(-.f64 (+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)) (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2)))) (+.f64 (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (pow.f64 im 4))) (*.f64 1/32 (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 (sqrt.f64 2) 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 7)))))))
(-.f64 (fma.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re) (*.f64 1/4 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))))) (fma.f64 1/16 (*.f64 (pow.f64 im 4) (sqrt.f64 (/.f64 1 (pow.f64 re 7)))) (*.f64 1/32 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (/.f64 (pow.f64 im 4) (pow.f64 (sqrt.f64 2) 2))))))
(fma.f64 2 (sqrt.f64 re) (-.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 (*.f64 im im) 1/4)) (fma.f64 1/32 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (/.f64 (pow.f64 im 4) 2)) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (*.f64 (pow.f64 im 4) 1/16)))))
(-.f64 (fma.f64 2 (sqrt.f64 re) (*.f64 1/4 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (+.f64 (*.f64 (pow.f64 im 4) 1/16) (*.f64 1/32 (/.f64 (pow.f64 im 4) 2)))))
(-.f64 (+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)) (+.f64 (*.f64 1/128 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 (sqrt.f64 2) 4)) (sqrt.f64 (/.f64 1 (pow.f64 re 11))))) (+.f64 (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2))) (+.f64 (*.f64 1/32 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 11))) (pow.f64 im 6))) (*.f64 1/64 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 (sqrt.f64 2) 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 11))))))))) (+.f64 (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (pow.f64 im 4))) (*.f64 1/32 (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 (sqrt.f64 2) 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 7)))))))
(-.f64 (fma.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re) (fma.f64 1/128 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 (sqrt.f64 2) 4)) (sqrt.f64 (/.f64 1 (pow.f64 re 11)))) (fma.f64 1/4 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (fma.f64 1/32 (*.f64 (pow.f64 im 6) (sqrt.f64 (/.f64 1 (pow.f64 re 11)))) (*.f64 1/64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 11))) (/.f64 (pow.f64 im 6) (pow.f64 (sqrt.f64 2) 2)))))))) (fma.f64 1/16 (*.f64 (pow.f64 im 4) (sqrt.f64 (/.f64 1 (pow.f64 re 7)))) (*.f64 1/32 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (/.f64 (pow.f64 im 4) (pow.f64 (sqrt.f64 2) 2))))))
(-.f64 (fma.f64 2 (sqrt.f64 re) (fma.f64 1/128 (*.f64 (/.f64 (pow.f64 im 6) 4) (sqrt.f64 (/.f64 1 (pow.f64 re 11)))) (fma.f64 1/4 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (fma.f64 1/64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 11))) (/.f64 (pow.f64 im 6) 2)) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 11))) (*.f64 (pow.f64 im 6) 1/32)))))) (fma.f64 1/32 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (/.f64 (pow.f64 im 4) 2)) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (*.f64 (pow.f64 im 4) 1/16))))
(+.f64 (/.f64 (*.f64 (pow.f64 im 6) (sqrt.f64 (/.f64 1 (pow.f64 re 11)))) 512) (-.f64 (fma.f64 2 (sqrt.f64 re) (fma.f64 (*.f64 im im) (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 11))) (+.f64 (*.f64 (pow.f64 im 6) 1/32) (*.f64 1/64 (/.f64 (pow.f64 im 6) 2)))))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (+.f64 (*.f64 (pow.f64 im 4) 1/16) (*.f64 1/32 (/.f64 (pow.f64 im 4) 2))))))

prune75.0ms (2.4%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New996105
Fresh101
Picked011
Done000
Total1007107
Error
6.4b
Counts
107 → 7
Alt Table
StatusErrorProgram
52.3b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (*.f64 (/.f64 im re) im) -1/2))))
53.5b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))))
17.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) re))))
45.6b
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
47.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (/.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (-.f64 re (hypot.f64 re im))))))
48.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im))))
14.6b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))
Compiler

Compiled 2255 to 1513 computations (32.9% saved)

localize8.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(sqrt.f64 (*.f64 2 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) re)))
16.9b
(fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) re)

series24.0ms (0.8%)

Counts
2 → 18
Calls

12 calls:

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

rewrite40.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
774×pow1_binary64
711×log1p-expm1-u_binary64
711×expm1-log1p-u_binary64
87×add-sqr-sqrt_binary64
83×*-un-lft-identity_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0919
118019
2200119
Stop Event
node limit
Counts
2 → 47
Calls
Call 1
Inputs
(fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) re)
(sqrt.f64 (*.f64 2 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) re)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 re (hypot.f64 re im))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (hypot.f64 re im) re)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (+.f64 re (hypot.f64 re im)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 re (hypot.f64 re im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 re (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im))) (pow.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im))) 2) (cbrt.f64 (+.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 (+.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (hypot.f64 re im) 3) (pow.f64 re 3)) (+.f64 (pow.f64 (hypot.f64 re im) 2) (-.f64 (*.f64 re re) (*.f64 (hypot.f64 re im) re))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 re re)) (-.f64 (hypot.f64 re im) re))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 re (hypot.f64 re im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (+.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (+.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (+.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (+.f64 re (hypot.f64 re im))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 re (hypot.f64 re im))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) (cbrt.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))) (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 2) (sqrt.f64 (+.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 2)) (sqrt.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/2) (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 2) 1/2) (pow.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))))))

simplify36.0ms (1.1%)

Algorithm
egg-herbie
Rules
593×fma-neg_binary64
368×associate-*r*_binary64
344×fma-def_binary64
295×associate-*l*_binary64
200×associate-/l*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0101553
1285509
2963467
34606467
Stop Event
node limit
Counts
65 → 78
Calls
Call 1
Inputs
im
(+.f64 re im)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im))
(-.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im)) (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))))
re
re
(*.f64 2 re)
(+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))
(-.f64 (+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(-.f64 (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))))
(+.f64 (*.f64 1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im))))))
(-.f64 (+.f64 (*.f64 1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))))) (*.f64 1/16 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 3)) (sqrt.f64 (/.f64 1 (pow.f64 im 5))))))
(*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re))
(+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)) (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2))))
(-.f64 (+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)) (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2)))) (+.f64 (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (pow.f64 im 4))) (*.f64 1/32 (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 (sqrt.f64 2) 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 7)))))))
(-.f64 (+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)) (+.f64 (*.f64 1/128 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 (sqrt.f64 2) 4)) (sqrt.f64 (/.f64 1 (pow.f64 re 11))))) (+.f64 (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2))) (+.f64 (*.f64 1/32 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 11))) (pow.f64 im 6))) (*.f64 1/64 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 (sqrt.f64 2) 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 11))))))))) (+.f64 (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (pow.f64 im 4))) (*.f64 1/32 (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 (sqrt.f64 2) 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 7)))))))
Outputs
im
(+.f64 re im)
(+.f64 im re)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im))
(fma.f64 1/2 (/.f64 (*.f64 re re) im) (+.f64 im re))
(+.f64 im (fma.f64 1/2 (/.f64 re (/.f64 im re)) re))
(+.f64 re (fma.f64 1/2 (/.f64 re (/.f64 im re)) im))
(-.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im)) (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))))
(+.f64 (fma.f64 1/2 (/.f64 (*.f64 re re) im) (+.f64 im re)) (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))))
(+.f64 (+.f64 im (fma.f64 1/2 (/.f64 re (/.f64 im re)) re)) (*.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) -1/8))
(fma.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) -1/8 (+.f64 re (fma.f64 1/2 (/.f64 re (/.f64 im re)) im)))
re
re
(*.f64 2 re)
(*.f64 re 2)
(+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))
(fma.f64 2 re (*.f64 1/2 (/.f64 (*.f64 im im) re)))
(fma.f64 re 2 (*.f64 1/2 (/.f64 (*.f64 im im) re)))
(fma.f64 re 2 (*.f64 1/2 (*.f64 (/.f64 im re) im)))
(-.f64 (+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(+.f64 (fma.f64 2 re (*.f64 1/2 (/.f64 (*.f64 im im) re))) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(fma.f64 re 2 (fma.f64 1/2 (/.f64 (*.f64 im im) re) (/.f64 (*.f64 -1/8 (pow.f64 im 4)) (pow.f64 re 3))))
(fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) -1/8 (fma.f64 re 2 (*.f64 1/2 (*.f64 (/.f64 im re) im))))
(-.f64 (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(+.f64 (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 2 re (*.f64 1/2 (/.f64 (*.f64 im im) re)))) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 re 2 (fma.f64 1/2 (/.f64 (*.f64 im im) re) (/.f64 (*.f64 -1/8 (pow.f64 im 4)) (pow.f64 re 3)))))
(fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) -1/8 (fma.f64 re 2 (fma.f64 1/2 (*.f64 (/.f64 im re) im) (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))))))
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))))
(fma.f64 (sqrt.f64 2) (sqrt.f64 im) (*.f64 1/2 (*.f64 (*.f64 re (sqrt.f64 2)) (sqrt.f64 (/.f64 1 im)))))
(fma.f64 1/2 (*.f64 (*.f64 re (sqrt.f64 2)) (sqrt.f64 (/.f64 1 im))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
(*.f64 (sqrt.f64 2) (+.f64 (sqrt.f64 im) (*.f64 re (*.f64 1/2 (sqrt.f64 (/.f64 1 im))))))
(+.f64 (*.f64 1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im))))))
(fma.f64 1/8 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 re re) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (fma.f64 (sqrt.f64 2) (sqrt.f64 im) (*.f64 1/2 (*.f64 (*.f64 re (sqrt.f64 2)) (sqrt.f64 (/.f64 1 im))))))
(fma.f64 1/8 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 re re) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (fma.f64 1/2 (*.f64 (*.f64 re (sqrt.f64 2)) (sqrt.f64 (/.f64 1 im))) (*.f64 (sqrt.f64 2) (sqrt.f64 im))))
(fma.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (+.f64 (sqrt.f64 im) (*.f64 (*.f64 re re) (*.f64 1/8 (sqrt.f64 (/.f64 1 (pow.f64 im 3))))))))
(-.f64 (+.f64 (*.f64 1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))))) (*.f64 1/16 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 3)) (sqrt.f64 (/.f64 1 (pow.f64 im 5))))))
(+.f64 (fma.f64 1/8 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 re re) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (fma.f64 (sqrt.f64 2) (sqrt.f64 im) (*.f64 1/2 (*.f64 (*.f64 re (sqrt.f64 2)) (sqrt.f64 (/.f64 1 im)))))) (*.f64 -1/16 (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 re 3) (sqrt.f64 (/.f64 1 (pow.f64 im 5)))))))
(+.f64 (fma.f64 1/8 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 re re) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (fma.f64 1/2 (*.f64 (*.f64 re (sqrt.f64 2)) (sqrt.f64 (/.f64 1 im))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))) (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 re 3) (sqrt.f64 (/.f64 1 (pow.f64 im 5))))) -1/16))
(+.f64 (*.f64 (sqrt.f64 2) (+.f64 (sqrt.f64 im) (*.f64 (*.f64 re re) (*.f64 1/8 (sqrt.f64 (/.f64 1 (pow.f64 im 3))))))) (*.f64 (sqrt.f64 2) (-.f64 (*.f64 re (*.f64 1/2 (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 5))) (*.f64 (pow.f64 re 3) 1/16)))))
(+.f64 (*.f64 (sqrt.f64 2) (+.f64 (sqrt.f64 im) (*.f64 re (*.f64 1/2 (sqrt.f64 (/.f64 1 im)))))) (*.f64 (sqrt.f64 2) (fma.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 3))) (*.f64 (*.f64 re re) 1/8) (neg.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 5))) (*.f64 (pow.f64 re 3) 1/16))))))
(*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re))
(*.f64 2 (sqrt.f64 re))
(+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)) (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2))))
(fma.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re) (*.f64 1/4 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))))
(fma.f64 2 (sqrt.f64 re) (*.f64 1/4 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))))
(fma.f64 2 (sqrt.f64 re) (*.f64 (*.f64 im im) (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3))))))
(-.f64 (+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)) (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2)))) (+.f64 (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (pow.f64 im 4))) (*.f64 1/32 (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 (sqrt.f64 2) 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 7)))))))
(-.f64 (fma.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re) (*.f64 1/4 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))))) (fma.f64 1/16 (*.f64 (pow.f64 im 4) (sqrt.f64 (/.f64 1 (pow.f64 re 7)))) (*.f64 1/32 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (/.f64 (pow.f64 im 4) (pow.f64 (sqrt.f64 2) 2))))))
(-.f64 (fma.f64 2 (sqrt.f64 re) (*.f64 1/4 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))))) (fma.f64 1/16 (*.f64 (pow.f64 im 4) (sqrt.f64 (/.f64 1 (pow.f64 re 7)))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (*.f64 1/32 (/.f64 (pow.f64 im 4) 2)))))
(fma.f64 (*.f64 im im) (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (-.f64 (*.f64 2 (sqrt.f64 re)) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (+.f64 (*.f64 (pow.f64 im 4) 1/16) (*.f64 1/32 (/.f64 (pow.f64 im 4) 2))))))
(-.f64 (+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)) (+.f64 (*.f64 1/128 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 (sqrt.f64 2) 4)) (sqrt.f64 (/.f64 1 (pow.f64 re 11))))) (+.f64 (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2))) (+.f64 (*.f64 1/32 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 11))) (pow.f64 im 6))) (*.f64 1/64 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 (sqrt.f64 2) 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 11))))))))) (+.f64 (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (pow.f64 im 4))) (*.f64 1/32 (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 (sqrt.f64 2) 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 7)))))))
(-.f64 (fma.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re) (fma.f64 1/128 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 (sqrt.f64 2) 4)) (sqrt.f64 (/.f64 1 (pow.f64 re 11)))) (fma.f64 1/4 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (fma.f64 1/32 (*.f64 (pow.f64 im 6) (sqrt.f64 (/.f64 1 (pow.f64 re 11)))) (*.f64 1/64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 11))) (/.f64 (pow.f64 im 6) (pow.f64 (sqrt.f64 2) 2)))))))) (fma.f64 1/16 (*.f64 (pow.f64 im 4) (sqrt.f64 (/.f64 1 (pow.f64 re 7)))) (*.f64 1/32 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (/.f64 (pow.f64 im 4) (pow.f64 (sqrt.f64 2) 2))))))
(-.f64 (fma.f64 2 (sqrt.f64 re) (fma.f64 1/128 (*.f64 (/.f64 (pow.f64 im 6) 4) (sqrt.f64 (/.f64 1 (pow.f64 re 11)))) (fma.f64 1/4 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (fma.f64 1/32 (*.f64 (pow.f64 im 6) (sqrt.f64 (/.f64 1 (pow.f64 re 11)))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 11))) (*.f64 1/64 (/.f64 (pow.f64 im 6) 2))))))) (fma.f64 1/16 (*.f64 (pow.f64 im 4) (sqrt.f64 (/.f64 1 (pow.f64 re 7)))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (*.f64 1/32 (/.f64 (pow.f64 im 4) 2)))))
(fma.f64 2 (sqrt.f64 re) (+.f64 (fma.f64 (*.f64 im im) (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 11))) (+.f64 (*.f64 (pow.f64 im 6) 1/32) (/.f64 (*.f64 (pow.f64 im 6) 1/64) 2)))) (-.f64 (/.f64 (*.f64 (pow.f64 im 6) (sqrt.f64 (/.f64 1 (pow.f64 re 11)))) 512) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (+.f64 (*.f64 (pow.f64 im 4) 1/16) (*.f64 1/32 (/.f64 (pow.f64 im 4) 2)))))))

prune50.0ms (1.6%)

Pruning

7 alts after pruning (5 fresh and 2 done)

PrunedKeptTotal
New78078
Fresh055
Picked011
Done011
Total78785
Error
6.4b
Counts
85 → 7
Alt Table
StatusErrorProgram
52.3b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (*.f64 (/.f64 im re) im) -1/2))))
53.5b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))))
17.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) re))))
45.6b
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
47.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (/.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (-.f64 re (hypot.f64 re im))))))
48.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im))))
14.6b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))
Compiler

Compiled 1642 to 1136 computations (30.8% saved)

localize4.0ms (0.1%)

prune5.0ms (0.2%)

Pruning

7 alts after pruning (4 fresh and 3 done)

PrunedKeptTotal
New000
Fresh044
Picked011
Done022
Total077
Error
6.4b
Counts
7 → 7
Alt Table
StatusErrorProgram
52.3b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (*.f64 (/.f64 im re) im) -1/2))))
53.5b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))))
17.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) re))))
45.6b
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
47.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (/.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (-.f64 re (hypot.f64 re im))))))
48.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im))))
14.6b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))
Compiler

Compiled 155 to 116 computations (25.2% saved)

localize12.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(sqrt.f64 (*.f64 2 (/.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (-.f64 re (hypot.f64 re im)))))
0.4b
(-.f64 re (hypot.f64 re im))
15.0b
(-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))
17.3b
(/.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (-.f64 re (hypot.f64 re im)))

series34.0ms (1.1%)

Counts
4 → 80
Calls

24 calls:

TimeVariablePointExpression
7.0ms
im
@0
(-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))
6.0ms
re
@inf
(-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))
4.0ms
im
@inf
(-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))
3.0ms
re
@0
(-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))
1.0ms
re
@-inf
(sqrt.f64 (*.f64 2 (/.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (-.f64 re (hypot.f64 re im)))))

rewrite79.0ms (2.5%)

Algorithm
batch-egg-rewrite
Rules
451×fma-def_binary64
236×expm1-udef_binary64
236×log1p-udef_binary64
226×fma-neg_binary64
142×add-sqr-sqrt_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01269
127739
2394039
Stop Event
node limit
Counts
4 → 258
Calls
Call 1
Inputs
(/.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (-.f64 re (hypot.f64 re im)))
(-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))
(-.f64 re (hypot.f64 re im))
(sqrt.f64 (*.f64 2 (/.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (-.f64 re (hypot.f64 re im)))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 re (hypot.f64 re im))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (hypot.f64 re im) re)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 (*.f64 re re) (-.f64 re (hypot.f64 re im))) (neg.f64 (/.f64 (pow.f64 (hypot.f64 re im) 2) (-.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (*.f64 re re) (-.f64 re (hypot.f64 re im))) (/.f64 (pow.f64 (hypot.f64 re im) 2) (-.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (+.f64 re (hypot.f64 re im)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (/.f64 1 (-.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 re (hypot.f64 re im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 re (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) 2)) (*.f64 (cbrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) (/.f64 1 (-.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im))) (pow.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im))) 2) (cbrt.f64 (+.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) (*.f64 (sqrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) (/.f64 1 (-.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 (+.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) (/.f64 1 (neg.f64 (-.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (-.f64 re (hypot.f64 re im))) (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 (cbrt.f64 (-.f64 re (hypot.f64 re im))) 2)) (/.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (cbrt.f64 (-.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (sqrt.f64 (-.f64 re (hypot.f64 re im)))) (/.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (sqrt.f64 (-.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (pow.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) 2)) 1) (/.f64 (cbrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) (-.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) 1) (/.f64 (sqrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) (-.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (pow.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) 2)) (pow.f64 (cbrt.f64 (-.f64 re (hypot.f64 re im))) 2)) (cbrt.f64 (+.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) (pow.f64 (cbrt.f64 (-.f64 re (hypot.f64 re im))) 2)) (/.f64 (sqrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) (cbrt.f64 (-.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (pow.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) 2)) (sqrt.f64 (-.f64 re (hypot.f64 re im)))) (/.f64 (cbrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) (sqrt.f64 (-.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) (+.f64 re (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (-.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3))) (fma.f64 (hypot.f64 re im) (+.f64 re (hypot.f64 re im)) (*.f64 re re)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 re (hypot.f64 re im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1 (+.f64 re (hypot.f64 re im))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (neg.f64 (-.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (+.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (+.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 re) (exp.f64 (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) 3) (pow.f64 (-.f64 re (hypot.f64 re im)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 re 1 (hypot.f64 re im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 re re) (/.f64 1 (-.f64 re (hypot.f64 re im))) (neg.f64 (/.f64 (pow.f64 (hypot.f64 re im) 2) (-.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (hypot.f64 re im) 1 re)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 re (hypot.f64 re im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (hypot.f64 re im) re)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (/.f64 (*.f64 re re) (-.f64 re (hypot.f64 re im))) (neg.f64 (/.f64 (pow.f64 (hypot.f64 re im) 2) (-.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (hypot.f64 re im)) (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) re)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 re) (cbrt.f64 (*.f64 re re)) (hypot.f64 re im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 re re)) (cbrt.f64 re) (hypot.f64 re im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) (cbrt.f64 (hypot.f64 re im)) re)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) re)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 re) (sqrt.f64 re) (hypot.f64 re im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 (/.f64 (*.f64 re re) (-.f64 re (hypot.f64 re im)))) (cbrt.f64 (/.f64 (*.f64 re re) (-.f64 re (hypot.f64 re im))))) (cbrt.f64 (/.f64 (*.f64 re re) (-.f64 re (hypot.f64 re im)))) (neg.f64 (/.f64 (pow.f64 (hypot.f64 re im) 2) (-.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 4))) (sqrt.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2))) re)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (/.f64 (*.f64 re re) (-.f64 re (hypot.f64 re im)))) (sqrt.f64 (/.f64 (*.f64 re re) (-.f64 re (hypot.f64 re im)))) (neg.f64 (/.f64 (pow.f64 (hypot.f64 re im) 2) (-.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (cbrt.f64 (pow.f64 re 4))) (sqrt.f64 (cbrt.f64 (*.f64 re re))) (hypot.f64 re im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 re 1) (/.f64 re (-.f64 re (hypot.f64 re im))) (neg.f64 (/.f64 (pow.f64 (hypot.f64 re im) 2) (-.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (cbrt.f64 (pow.f64 re 4)) 1) (/.f64 (cbrt.f64 (*.f64 re re)) (-.f64 re (hypot.f64 re im))) (neg.f64 (/.f64 (pow.f64 (hypot.f64 re im) 2) (-.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 re (pow.f64 (cbrt.f64 (-.f64 re (hypot.f64 re im))) 2)) (/.f64 re (cbrt.f64 (-.f64 re (hypot.f64 re im)))) (neg.f64 (/.f64 (pow.f64 (hypot.f64 re im) 2) (-.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (pow.f64 (cbrt.f64 (-.f64 re (hypot.f64 re im))) 2)) (/.f64 (*.f64 re re) (cbrt.f64 (-.f64 re (hypot.f64 re im)))) (neg.f64 (/.f64 (pow.f64 (hypot.f64 re im) 2) (-.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (cbrt.f64 (pow.f64 re 4)) (pow.f64 (cbrt.f64 (-.f64 re (hypot.f64 re im))) 2)) (/.f64 (cbrt.f64 (*.f64 re re)) (cbrt.f64 (-.f64 re (hypot.f64 re im)))) (neg.f64 (/.f64 (pow.f64 (hypot.f64 re im) 2) (-.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 re (sqrt.f64 (-.f64 re (hypot.f64 re im)))) (/.f64 re (sqrt.f64 (-.f64 re (hypot.f64 re im)))) (neg.f64 (/.f64 (pow.f64 (hypot.f64 re im) 2) (-.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (sqrt.f64 (-.f64 re (hypot.f64 re im)))) (/.f64 (*.f64 re re) (sqrt.f64 (-.f64 re (hypot.f64 re im)))) (neg.f64 (/.f64 (pow.f64 (hypot.f64 re im) 2) (-.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (cbrt.f64 (pow.f64 re 4)) (sqrt.f64 (-.f64 re (hypot.f64 re im)))) (/.f64 (cbrt.f64 (*.f64 re re)) (sqrt.f64 (-.f64 re (hypot.f64 re im)))) (neg.f64 (/.f64 (pow.f64 (hypot.f64 re im) 2) (-.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (*.f64 re re) (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) (+.f64 re (hypot.f64 re im)) (neg.f64 (/.f64 (pow.f64 (hypot.f64 re im) 2) (-.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (*.f64 re re) (-.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3))) (fma.f64 (hypot.f64 re im) (+.f64 re (hypot.f64 re im)) (*.f64 re re)) (neg.f64 (/.f64 (pow.f64 (hypot.f64 re im) 2) (-.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (+.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (+.f64 re (hypot.f64 re im))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 re (hypot.f64 re im))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 re re) (neg.f64 (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 re re) (*.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (+.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (fma.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) 1 (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (fma.f64 (neg.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2))) (cbrt.f64 (pow.f64 (hypot.f64 re im) 4)) (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) (*.f64 re re))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 re (hypot.f64 re im)) (-.f64 re (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) (cbrt.f64 (pow.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) 2)) (cbrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) (sqrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 re 6) (pow.f64 (hypot.f64 re im) 6)) (/.f64 1 (fma.f64 (pow.f64 (hypot.f64 re im) 2) (fma.f64 re re (pow.f64 (hypot.f64 re im) 2)) (pow.f64 re 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 re 4) (pow.f64 (hypot.f64 re im) 4)) (/.f64 1 (fma.f64 re re (pow.f64 (hypot.f64 re im) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (pow.f64 (hypot.f64 re im) 2) (fma.f64 re re (pow.f64 (hypot.f64 re im) 2)) (pow.f64 re 4)) (-.f64 (pow.f64 re 6) (pow.f64 (hypot.f64 re im) 6))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 re re (pow.f64 (hypot.f64 re im) 2)) (-.f64 (pow.f64 re 4) (pow.f64 (hypot.f64 re im) 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 re 6) (pow.f64 (hypot.f64 re im) 6)) (fma.f64 (pow.f64 (hypot.f64 re im) 2) (fma.f64 re re (pow.f64 (hypot.f64 re im) 2)) (pow.f64 re 4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 re 4) (pow.f64 (hypot.f64 re im) 4)) (fma.f64 re re (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 re 6) (pow.f64 (hypot.f64 re im) 6))) (neg.f64 (fma.f64 (pow.f64 (hypot.f64 re im) 2) (fma.f64 re re (pow.f64 (hypot.f64 re im) 2)) (pow.f64 re 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 re 4) (pow.f64 (hypot.f64 re im) 4))) (neg.f64 (fma.f64 re re (pow.f64 (hypot.f64 re im) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 re 6) (pow.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) 3)) (+.f64 (pow.f64 re 4) (-.f64 (*.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) (neg.f64 (pow.f64 (hypot.f64 re im) 2))) (*.f64 (*.f64 re re) (neg.f64 (pow.f64 (hypot.f64 re im) 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 re 4) (*.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) (neg.f64 (pow.f64 (hypot.f64 re im) 2)))) (-.f64 (*.f64 re re) (neg.f64 (pow.f64 (hypot.f64 re im) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 re re (neg.f64 (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 re re (*.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 re re) 1 (neg.f64 (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 re re) 1 (*.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (hypot.f64 re im) (neg.f64 (hypot.f64 re im)) (*.f64 re re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) 1 (+.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) 1 (fma.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) 1 (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) 1 (fma.f64 (neg.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2))) (cbrt.f64 (pow.f64 (hypot.f64 re im) 4)) (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 re (hypot.f64 re im)) (-.f64 re (hypot.f64 re im)) (+.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 re (hypot.f64 re im)) (-.f64 re (hypot.f64 re im)) (fma.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) 1 (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 re (hypot.f64 re im)) (-.f64 re (hypot.f64 re im)) (fma.f64 (neg.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2))) (cbrt.f64 (pow.f64 (hypot.f64 re im) 4)) (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 re re) (neg.f64 (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 re re) (*.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (+.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (fma.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) 1 (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (fma.f64 (neg.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2))) (cbrt.f64 (pow.f64 (hypot.f64 re im) 4)) (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) (*.f64 re re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) (cbrt.f64 (pow.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) 2)) (+.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) (cbrt.f64 (pow.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) 2)) (fma.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) 1 (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) (cbrt.f64 (pow.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) 2)) (fma.f64 (neg.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2))) (cbrt.f64 (pow.f64 (hypot.f64 re im) 4)) (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) 2)) (cbrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) (+.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) 2)) (cbrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) (fma.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) 1 (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) 2)) (cbrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) (fma.f64 (neg.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2))) (cbrt.f64 (pow.f64 (hypot.f64 re im) 4)) (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 re re)) (cbrt.f64 (pow.f64 re 4)) (neg.f64 (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 re re)) (cbrt.f64 (pow.f64 re 4)) (*.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 re re)) (*.f64 (cbrt.f64 re) re) (neg.f64 (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 re re)) (*.f64 (cbrt.f64 re) re) (*.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 re 4)) (cbrt.f64 (*.f64 re re)) (neg.f64 (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 re 4)) (cbrt.f64 (*.f64 re re)) (*.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 4)) (neg.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2))) (*.f64 re re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) (sqrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) (+.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) (sqrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) (fma.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) 1 (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) (sqrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) (fma.f64 (neg.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2))) (cbrt.f64 (pow.f64 (hypot.f64 re im) 4)) (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 re) (*.f64 (sqrt.f64 re) re) (neg.f64 (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 re) (*.f64 (sqrt.f64 re) re) (*.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 re 6) (pow.f64 (hypot.f64 re im) 6)) (/.f64 1 (fma.f64 (pow.f64 (hypot.f64 re im) 2) (fma.f64 re re (pow.f64 (hypot.f64 re im) 2)) (pow.f64 re 4))) (+.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 re 6) (pow.f64 (hypot.f64 re im) 6)) (/.f64 1 (fma.f64 (pow.f64 (hypot.f64 re im) 2) (fma.f64 re re (pow.f64 (hypot.f64 re im) 2)) (pow.f64 re 4))) (fma.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) 1 (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 re 6) (pow.f64 (hypot.f64 re im) 6)) (/.f64 1 (fma.f64 (pow.f64 (hypot.f64 re im) 2) (fma.f64 re re (pow.f64 (hypot.f64 re im) 2)) (pow.f64 re 4))) (fma.f64 (neg.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2))) (cbrt.f64 (pow.f64 (hypot.f64 re im) 4)) (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (hypot.f64 re im)) (hypot.f64 re im) (*.f64 re re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 re 4) (pow.f64 (hypot.f64 re im) 4)) (/.f64 1 (fma.f64 re re (pow.f64 (hypot.f64 re im) 2))) (+.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 re 4) (pow.f64 (hypot.f64 re im) 4)) (/.f64 1 (fma.f64 re re (pow.f64 (hypot.f64 re im) 2))) (fma.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) 1 (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 re 4) (pow.f64 (hypot.f64 re im) 4)) (/.f64 1 (fma.f64 re re (pow.f64 (hypot.f64 re im) 2))) (fma.f64 (neg.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2))) (cbrt.f64 (pow.f64 (hypot.f64 re im) 4)) (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 re (sqrt.f64 re)) (sqrt.f64 re) (neg.f64 (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 re (sqrt.f64 re)) (sqrt.f64 re) (*.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2))) (cbrt.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)))) (cbrt.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2))) (*.f64 re re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2))) (sqrt.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2))) (*.f64 re re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 (pow.f64 (hypot.f64 re im) 2) (*.f64 re re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 4))) (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) (*.f64 re re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 re (cbrt.f64 (*.f64 re re))) (cbrt.f64 re) (neg.f64 (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 re (cbrt.f64 (*.f64 re re))) (cbrt.f64 re) (*.f64 (neg.f64 (pow.f64 (hypot.f64 re im) 2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 re (neg.f64 (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 re (*.f64 (neg.f64 (hypot.f64 re im)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 re (hypot.f64 re im)) (fma.f64 (neg.f64 (hypot.f64 re im)) 1 (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 re (hypot.f64 re im)) (fma.f64 (neg.f64 (cbrt.f64 (hypot.f64 re im))) (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 re (hypot.f64 re im)) (+.f64 (neg.f64 (hypot.f64 re im)) (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (hypot.f64 re im)) re)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (/.f64 1 (+.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 re (hypot.f64 re im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 re (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (-.f64 re (hypot.f64 re im))) (pow.f64 (cbrt.f64 (-.f64 re (hypot.f64 re im))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (-.f64 re (hypot.f64 re im))) 2) (cbrt.f64 (-.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 re (hypot.f64 re im))) (sqrt.f64 (-.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3)) (/.f64 1 (fma.f64 (hypot.f64 re im) (+.f64 re (hypot.f64 re im)) (*.f64 re re))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 re) (sqrt.f64 (hypot.f64 re im))) (-.f64 (sqrt.f64 re) (sqrt.f64 (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (+.f64 re (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (hypot.f64 re im) (+.f64 re (hypot.f64 re im)) (*.f64 re re)) (-.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 re (hypot.f64 re im)) (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (cbrt.f64 (pow.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) 2)) (/.f64 (+.f64 re (hypot.f64 re im)) (cbrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) (/.f64 (+.f64 re (hypot.f64 re im)) (sqrt.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) (neg.f64 (+.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3)) (fma.f64 (hypot.f64 re im) (+.f64 re (hypot.f64 re im)) (*.f64 re re)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 re 6) (pow.f64 (hypot.f64 re im) 6)) (*.f64 (+.f64 re (hypot.f64 re im)) (fma.f64 (pow.f64 (hypot.f64 re im) 2) (fma.f64 re re (pow.f64 (hypot.f64 re im) 2)) (pow.f64 re 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 re 4) (pow.f64 (hypot.f64 re im) 4)) (*.f64 (+.f64 re (hypot.f64 re im)) (fma.f64 re re (pow.f64 (hypot.f64 re im) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3))) (neg.f64 (fma.f64 (hypot.f64 re im) (+.f64 re (hypot.f64 re im)) (*.f64 re re))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 re 3) (pow.f64 (neg.f64 (hypot.f64 re im)) 3)) (fma.f64 re re (-.f64 (*.f64 (neg.f64 (hypot.f64 re im)) (neg.f64 (hypot.f64 re im))) (*.f64 re (neg.f64 (hypot.f64 re im))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 re re) (*.f64 (neg.f64 (hypot.f64 re im)) (neg.f64 (hypot.f64 re im)))) (-.f64 re (neg.f64 (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 re (hypot.f64 re im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 re (hypot.f64 re im)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (-.f64 re (hypot.f64 re im))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (-.f64 re (hypot.f64 re im))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (-.f64 re (hypot.f64 re im)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (-.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (-.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (-.f64 re (hypot.f64 re im)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (-.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 re 1 (neg.f64 (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 re 1 (*.f64 (neg.f64 (hypot.f64 re im)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (/.f64 1 (+.f64 re (hypot.f64 re im))) (fma.f64 (neg.f64 (hypot.f64 re im)) 1 (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (/.f64 1 (+.f64 re (hypot.f64 re im))) (fma.f64 (neg.f64 (cbrt.f64 (hypot.f64 re im))) (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (/.f64 1 (+.f64 re (hypot.f64 re im))) (+.f64 (neg.f64 (hypot.f64 re im)) (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 re (hypot.f64 re im)) 1 (fma.f64 (neg.f64 (hypot.f64 re im)) 1 (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 re (hypot.f64 re im)) 1 (fma.f64 (neg.f64 (cbrt.f64 (hypot.f64 re im))) (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 re (hypot.f64 re im)) 1 (+.f64 (neg.f64 (hypot.f64 re im)) (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 re (neg.f64 (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 re (*.f64 (neg.f64 (hypot.f64 re im)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 re (hypot.f64 re im)) (fma.f64 (neg.f64 (hypot.f64 re im)) 1 (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 re (hypot.f64 re im)) (fma.f64 (neg.f64 (cbrt.f64 (hypot.f64 re im))) (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 re (hypot.f64 re im)) (+.f64 (neg.f64 (hypot.f64 re im)) (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (neg.f64 (hypot.f64 re im)) re)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 re) (cbrt.f64 (*.f64 re re)) (neg.f64 (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 re) (cbrt.f64 (*.f64 re re)) (*.f64 (neg.f64 (hypot.f64 re im)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (-.f64 re (hypot.f64 re im))) (pow.f64 (cbrt.f64 (-.f64 re (hypot.f64 re im))) 2) (fma.f64 (neg.f64 (hypot.f64 re im)) 1 (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (-.f64 re (hypot.f64 re im))) (pow.f64 (cbrt.f64 (-.f64 re (hypot.f64 re im))) 2) (fma.f64 (neg.f64 (cbrt.f64 (hypot.f64 re im))) (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (-.f64 re (hypot.f64 re im))) (pow.f64 (cbrt.f64 (-.f64 re (hypot.f64 re im))) 2) (+.f64 (neg.f64 (hypot.f64 re im)) (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 re (hypot.f64 re im))) 2) (cbrt.f64 (-.f64 re (hypot.f64 re im))) (fma.f64 (neg.f64 (hypot.f64 re im)) 1 (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 re (hypot.f64 re im))) 2) (cbrt.f64 (-.f64 re (hypot.f64 re im))) (fma.f64 (neg.f64 (cbrt.f64 (hypot.f64 re im))) (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 re (hypot.f64 re im))) 2) (cbrt.f64 (-.f64 re (hypot.f64 re im))) (+.f64 (neg.f64 (hypot.f64 re im)) (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 re re)) (cbrt.f64 re) (neg.f64 (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 re re)) (cbrt.f64 re) (*.f64 (neg.f64 (hypot.f64 re im)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) (neg.f64 (cbrt.f64 (hypot.f64 re im))) re)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (hypot.f64 re im)) (neg.f64 (sqrt.f64 (hypot.f64 re im))) re)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 re) (sqrt.f64 re) (neg.f64 (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 re) (sqrt.f64 re) (*.f64 (neg.f64 (hypot.f64 re im)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 re (hypot.f64 re im))) (sqrt.f64 (-.f64 re (hypot.f64 re im))) (fma.f64 (neg.f64 (hypot.f64 re im)) 1 (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 re (hypot.f64 re im))) (sqrt.f64 (-.f64 re (hypot.f64 re im))) (fma.f64 (neg.f64 (cbrt.f64 (hypot.f64 re im))) (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 re (hypot.f64 re im))) (sqrt.f64 (-.f64 re (hypot.f64 re im))) (+.f64 (neg.f64 (hypot.f64 re im)) (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3)) (/.f64 1 (fma.f64 (hypot.f64 re im) (+.f64 re (hypot.f64 re im)) (*.f64 re re))) (fma.f64 (neg.f64 (hypot.f64 re im)) 1 (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3)) (/.f64 1 (fma.f64 (hypot.f64 re im) (+.f64 re (hypot.f64 re im)) (*.f64 re re))) (fma.f64 (neg.f64 (cbrt.f64 (hypot.f64 re im))) (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3)) (/.f64 1 (fma.f64 (hypot.f64 re im) (+.f64 re (hypot.f64 re im)) (*.f64 re re))) (+.f64 (neg.f64 (hypot.f64 re im)) (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 (neg.f64 (hypot.f64 re im))) (cbrt.f64 (neg.f64 (hypot.f64 re im)))) (cbrt.f64 (neg.f64 (hypot.f64 re im))) re)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (neg.f64 (hypot.f64 re im))) (sqrt.f64 (neg.f64 (hypot.f64 re im))) re)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (cbrt.f64 (pow.f64 re 4))) (sqrt.f64 (cbrt.f64 (*.f64 re re))) (neg.f64 (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (cbrt.f64 (pow.f64 re 4))) (sqrt.f64 (cbrt.f64 (*.f64 re re))) (*.f64 (neg.f64 (hypot.f64 re im)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (sqrt.f64 (hypot.f64 re im))) (sqrt.f64 (hypot.f64 re im)) re)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2))) (cbrt.f64 (hypot.f64 re im)) re)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 (hypot.f64 re im) re)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 re) (sqrt.f64 (hypot.f64 re im))) (-.f64 (sqrt.f64 re) (sqrt.f64 (hypot.f64 re im))) (fma.f64 (neg.f64 (hypot.f64 re im)) 1 (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 re) (sqrt.f64 (hypot.f64 re im))) (-.f64 (sqrt.f64 re) (sqrt.f64 (hypot.f64 re im))) (fma.f64 (neg.f64 (cbrt.f64 (hypot.f64 re im))) (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 re) (sqrt.f64 (hypot.f64 re im))) (-.f64 (sqrt.f64 re) (sqrt.f64 (hypot.f64 re im))) (+.f64 (neg.f64 (hypot.f64 re im)) (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (-.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (-.f64 re (hypot.f64 re im))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (-.f64 re (hypot.f64 re im))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))) (cbrt.f64 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))) (cbrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))) 1/4) (pow.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 2) (sqrt.f64 (+.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cbrt.f64 (*.f64 4 (pow.f64 (+.f64 re (hypot.f64 re im)) 2)))) (sqrt.f64 (cbrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/2) (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 4 (pow.f64 (+.f64 re (hypot.f64 re im)) 2))) 1/2) (pow.f64 (cbrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (*.f64 2 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)))) (sqrt.f64 (-.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))) 3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))) 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))))))))

simplify39.0ms (1.2%)

Algorithm
egg-herbie
Rules
425×fma-def_binary64
392×associate-*r*_binary64
312×associate-*l*_binary64
236×cancel-sign-sub-inv_binary64
223×associate-/l*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01211485
13481427
211391369
Stop Event
node limit
Counts
338 → 305
Calls
Call 1
Inputs
im
(+.f64 re im)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im))
(-.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im)) (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))))
(*.f64 2 re)
(+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))
(-.f64 (+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(-.f64 (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))))
(-.f64 (+.f64 (*.f64 5/128 (/.f64 (pow.f64 im 8) (pow.f64 re 7))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))))
(*.f64 2 re)
(+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))
(-.f64 (+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(-.f64 (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
im
(+.f64 re im)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im))
(-.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im)) (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))))
(*.f64 -1 im)
(-.f64 re im)
(-.f64 re (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im))
(-.f64 (+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) re) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im))
(*.f64 -1 (pow.f64 im 2))
(*.f64 -1 (pow.f64 im 2))
(*.f64 -1 (pow.f64 im 2))
(*.f64 -1 (pow.f64 im 2))
(*.f64 -1 (pow.f64 im 2))
(*.f64 -1 (pow.f64 im 2))
(*.f64 -1 (pow.f64 im 2))
(*.f64 -1 (pow.f64 im 2))
(*.f64 -1 (pow.f64 im 2))
(*.f64 -1 (pow.f64 im 2))
(*.f64 -1 (pow.f64 im 2))
(*.f64 -1 (pow.f64 im 2))
(*.f64 -1 (pow.f64 im 2))
(*.f64 -1 (pow.f64 im 2))
(*.f64 -1 (pow.f64 im 2))
(*.f64 -1 (pow.f64 im 2))
(*.f64 -1 (pow.f64 im 2))
(*.f64 -1 (pow.f64 im 2))
(*.f64 -1 (pow.f64 im 2))
(*.f64 -1 (pow.f64 im 2))
(*.f64 -1 (pow.f64 im 2))
(*.f64 -1 (pow.f64 im 2))
(*.f64 -1 (pow.f64 im 2))
(*.f64 -1 (pow.f64 im 2))
(*.f64 -1 im)
(-.f64 re im)
(-.f64 re (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im))
(-.f64 (+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) re) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))))
(-.f64 (+.f64 (*.f64 5/128 (/.f64 (pow.f64 im 8) (pow.f64 re 7))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))))
(*.f64 2 re)
(+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))
(-.f64 (+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(-.f64 (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))))
(-.f64 (+.f64 (*.f64 5/128 (/.f64 (pow.f64 im 8) (pow.f64 re 7))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))))
(*.f64 -1 im)
(-.f64 re im)
(-.f64 re (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im))
(-.f64 (+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) re) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im))
im
(+.f64 re im)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im))
(-.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im)) (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))))
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))))
(+.f64 (*.f64 1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im))))))
(-.f64 (+.f64 (*.f64 1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))))) (*.f64 1/16 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 3)) (sqrt.f64 (/.f64 1 (pow.f64 im 5))))))
(*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re))
(+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)) (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2))))
(-.f64 (+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)) (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2)))) (+.f64 (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (pow.f64 im 4))) (*.f64 1/32 (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 (sqrt.f64 2) 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 7)))))))
(-.f64 (+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)) (+.f64 (*.f64 1/128 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 (sqrt.f64 2) 4)) (sqrt.f64 (/.f64 1 (pow.f64 re 11))))) (+.f64 (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2))) (+.f64 (*.f64 1/32 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 11))) (pow.f64 im 6))) (*.f64 1/64 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 (sqrt.f64 2) 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 11))))))))) (+.f64 (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (pow.f64 im 4))) (*.f64 1/32 (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 (sqrt.f64 2) 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 7)))))))
Outputs
im
(+.f64 re im)
(+.f64 im re)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im))
(fma.f64 1/2 (/.f64 (*.f64 re re) im) (+.f64 im re))
(+.f64 im (fma.f64 1/2 (/.f64 re (/.f64 im re)) re))
(+.f64 im (fma.f64 1/2 (*.f64 (/.f64 re im) re) re))
(-.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im)) (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))))
(+.f64 (fma.f64 1/2 (/.f64 (*.f64 re re) im) (+.f64 im re)) (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))))
(+.f64 (+.f64 im (fma.f64 1/2 (/.f64 re (/.f64 im re)) re)) (/.f64 (*.f64 -1/8 (pow.f64 re 4)) (pow.f64 im 3)))
(fma.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) -1/8 (+.f64 im (fma.f64 1/2 (*.f64 (/.f64 re im) re) re)))
(*.f64 2 re)
(*.f64 re 2)
(+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))
(fma.f64 2 re (*.f64 1/2 (/.f64 (*.f64 im im) re)))
(fma.f64 re 2 (/.f64 (*.f64 1/2 (*.f64 im im)) re))
(fma.f64 re 2 (*.f64 1/2 (*.f64 (/.f64 im re) im)))
(-.f64 (+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(+.f64 (fma.f64 2 re (*.f64 1/2 (/.f64 (*.f64 im im) re))) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(fma.f64 re 2 (fma.f64 1/2 (/.f64 im (/.f64 re im)) (/.f64 (*.f64 -1/8 (pow.f64 im 4)) (pow.f64 re 3))))
(fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) -1/8 (fma.f64 re 2 (*.f64 1/2 (*.f64 (/.f64 im re) im))))
(-.f64 (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(+.f64 (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 2 re (*.f64 1/2 (/.f64 (*.f64 im im) re)))) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 re 2 (fma.f64 1/2 (/.f64 im (/.f64 re im)) (/.f64 (*.f64 -1/8 (pow.f64 im 4)) (pow.f64 re 3)))))
(fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) -1/8 (fma.f64 re 2 (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (*.f64 1/2 (*.f64 (/.f64 im re) im)))))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 (/.f64 (*.f64 im im) re) -1/2)
(*.f64 (/.f64 im (/.f64 re im)) -1/2)
(*.f64 (*.f64 (/.f64 im re) im) -1/2)
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 (/.f64 (*.f64 im im) re) -1/2))
(fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (*.f64 (/.f64 im (/.f64 re im)) -1/2))
(fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (*.f64 (*.f64 (/.f64 im re) im) -1/2))
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))))
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (*.f64 1/2 (/.f64 (*.f64 im im) re))))
(-.f64 (/.f64 (*.f64 1/8 (pow.f64 im 4)) (pow.f64 re 3)) (fma.f64 1/2 (/.f64 im (/.f64 re im)) (/.f64 1/16 (/.f64 (pow.f64 re 5) (pow.f64 im 6)))))
(fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 (*.f64 (/.f64 im re) im) -1/2 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) -1/16)))
(-.f64 (+.f64 (*.f64 5/128 (/.f64 (pow.f64 im 8) (pow.f64 re 7))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))))
(-.f64 (fma.f64 5/128 (/.f64 (pow.f64 im 8) (pow.f64 re 7)) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (*.f64 1/2 (/.f64 (*.f64 im im) re))))
(-.f64 (fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (/.f64 5/128 (/.f64 (pow.f64 re 7) (pow.f64 im 8)))) (fma.f64 1/2 (/.f64 im (/.f64 re im)) (/.f64 1/16 (/.f64 (pow.f64 re 5) (pow.f64 im 6)))))
(fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 5/128 (/.f64 (pow.f64 im 8) (pow.f64 re 7)) (fma.f64 (*.f64 (/.f64 im re) im) -1/2 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) -1/16))))
(*.f64 2 re)
(*.f64 re 2)
(+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))
(fma.f64 2 re (*.f64 1/2 (/.f64 (*.f64 im im) re)))
(fma.f64 re 2 (/.f64 (*.f64 1/2 (*.f64 im im)) re))
(fma.f64 re 2 (*.f64 1/2 (*.f64 (/.f64 im re) im)))
(-.f64 (+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(+.f64 (fma.f64 2 re (*.f64 1/2 (/.f64 (*.f64 im im) re))) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(fma.f64 re 2 (fma.f64 1/2 (/.f64 im (/.f64 re im)) (/.f64 (*.f64 -1/8 (pow.f64 im 4)) (pow.f64 re 3))))
(fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) -1/8 (fma.f64 re 2 (*.f64 1/2 (*.f64 (/.f64 im re) im))))
(-.f64 (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(+.f64 (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 2 re (*.f64 1/2 (/.f64 (*.f64 im im) re)))) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 re 2 (fma.f64 1/2 (/.f64 im (/.f64 re im)) (/.f64 (*.f64 -1/8 (pow.f64 im 4)) (pow.f64 re 3)))))
(fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) -1/8 (fma.f64 re 2 (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (*.f64 1/2 (*.f64 (/.f64 im re) im)))))
im
(+.f64 re im)
(+.f64 im re)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im))
(fma.f64 1/2 (/.f64 (*.f64 re re) im) (+.f64 im re))
(+.f64 im (fma.f64 1/2 (/.f64 re (/.f64 im re)) re))
(+.f64 im (fma.f64 1/2 (*.f64 (/.f64 re im) re) re))
(-.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im)) (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))))
(+.f64 (fma.f64 1/2 (/.f64 (*.f64 re re) im) (+.f64 im re)) (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))))
(+.f64 (+.f64 im (fma.f64 1/2 (/.f64 re (/.f64 im re)) re)) (/.f64 (*.f64 -1/8 (pow.f64 re 4)) (pow.f64 im 3)))
(fma.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) -1/8 (+.f64 im (fma.f64 1/2 (*.f64 (/.f64 re im) re) re)))
(*.f64 -1 im)
(neg.f64 im)
(-.f64 re im)
(-.f64 re (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im))
(-.f64 re (fma.f64 1/2 (/.f64 (*.f64 re re) im) im))
(-.f64 re (fma.f64 1/2 (/.f64 re (/.f64 im re)) im))
(-.f64 re (fma.f64 1/2 (*.f64 (/.f64 re im) re) im))
(-.f64 (+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) re) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im))
(-.f64 (fma.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) re) (fma.f64 1/2 (/.f64 (*.f64 re re) im) im))
(-.f64 (fma.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) re) (fma.f64 1/2 (/.f64 re (/.f64 im re)) im))
(-.f64 (fma.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) re) (fma.f64 1/2 (*.f64 (/.f64 re im) re) im))
(*.f64 -1 (pow.f64 im 2))
(neg.f64 (*.f64 im im))
(*.f64 -1 (pow.f64 im 2))
(neg.f64 (*.f64 im im))
(*.f64 -1 (pow.f64 im 2))
(neg.f64 (*.f64 im im))
(*.f64 -1 (pow.f64 im 2))
(neg.f64 (*.f64 im im))
(*.f64 -1 (pow.f64 im 2))
(neg.f64 (*.f64 im im))
(*.f64 -1 (pow.f64 im 2))
(neg.f64 (*.f64 im im))
(*.f64 -1 (pow.f64 im 2))
(neg.f64 (*.f64 im im))
(*.f64 -1 (pow.f64 im 2))
(neg.f64 (*.f64 im im))
(*.f64 -1 (pow.f64 im 2))
(neg.f64 (*.f64 im im))
(*.f64 -1 (pow.f64 im 2))
(neg.f64 (*.f64 im im))
(*.f64 -1 (pow.f64 im 2))
(neg.f64 (*.f64 im im))
(*.f64 -1 (pow.f64 im 2))
(neg.f64 (*.f64 im im))
(*.f64 -1 (pow.f64 im 2))
(neg.f64 (*.f64 im im))
(*.f64 -1 (pow.f64 im 2))
(neg.f64 (*.f64 im im))
(*.f64 -1 (pow.f64 im 2))
(neg.f64 (*.f64 im im))
(*.f64 -1 (pow.f64 im 2))
(neg.f64 (*.f64 im im))
(*.f64 -1 (pow.f64 im 2))
(neg.f64 (*.f64 im im))
(*.f64 -1 (pow.f64 im 2))
(neg.f64 (*.f64 im im))
(*.f64 -1 (pow.f64 im 2))
(neg.f64 (*.f64 im im))
(*.f64 -1 (pow.f64 im 2))
(neg.f64 (*.f64 im im))
(*.f64 -1 (pow.f64 im 2))
(neg.f64 (*.f64 im im))
(*.f64 -1 (pow.f64 im 2))
(neg.f64 (*.f64 im im))
(*.f64 -1 (pow.f64 im 2))
(neg.f64 (*.f64 im im))
(*.f64 -1 (pow.f64 im 2))
(neg.f64 (*.f64 im im))
(*.f64 -1 im)
(neg.f64 im)
(-.f64 re im)
(-.f64 re (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im))
(-.f64 re (fma.f64 1/2 (/.f64 (*.f64 re re) im) im))
(-.f64 re (fma.f64 1/2 (/.f64 re (/.f64 im re)) im))
(-.f64 re (fma.f64 1/2 (*.f64 (/.f64 re im) re) im))
(-.f64 (+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) re) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im))
(-.f64 (fma.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) re) (fma.f64 1/2 (/.f64 (*.f64 re re) im) im))
(-.f64 (fma.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) re) (fma.f64 1/2 (/.f64 re (/.f64 im re)) im))
(-.f64 (fma.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) re) (fma.f64 1/2 (*.f64 (/.f64 re im) re) im))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 (/.f64 (*.f64 im im) re) -1/2)
(*.f64 (/.f64 im (/.f64 re im)) -1/2)
(*.f64 (*.f64 (/.f64 im re) im) -1/2)
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 (/.f64 (*.f64 im im) re) -1/2))
(fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (*.f64 (/.f64 im (/.f64 re im)) -1/2))
(fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (*.f64 (*.f64 (/.f64 im re) im) -1/2))
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))))
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (*.f64 1/2 (/.f64 (*.f64 im im) re))))
(-.f64 (/.f64 (*.f64 1/8 (pow.f64 im 4)) (pow.f64 re 3)) (fma.f64 1/2 (/.f64 im (/.f64 re im)) (/.f64 1/16 (/.f64 (pow.f64 re 5) (pow.f64 im 6)))))
(fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 (*.f64 (/.f64 im re) im) -1/2 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) -1/16)))
(-.f64 (+.f64 (*.f64 5/128 (/.f64 (pow.f64 im 8) (pow.f64 re 7))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))))
(-.f64 (fma.f64 5/128 (/.f64 (pow.f64 im 8) (pow.f64 re 7)) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (*.f64 1/2 (/.f64 (*.f64 im im) re))))
(-.f64 (fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (/.f64 5/128 (/.f64 (pow.f64 re 7) (pow.f64 im 8)))) (fma.f64 1/2 (/.f64 im (/.f64 re im)) (/.f64 1/16 (/.f64 (pow.f64 re 5) (pow.f64 im 6)))))
(fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 5/128 (/.f64 (pow.f64 im 8) (pow.f64 re 7)) (fma.f64 (*.f64 (/.f64 im re) im) -1/2 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) -1/16))))
(*.f64 2 re)
(*.f64 re 2)
(+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))
(fma.f64 2 re (*.f64 1/2 (/.f64 (*.f64 im im) re)))
(fma.f64 re 2 (/.f64 (*.f64 1/2 (*.f64 im im)) re))
(fma.f64 re 2 (*.f64 1/2 (*.f64 (/.f64 im re) im)))
(-.f64 (+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(+.f64 (fma.f64 2 re (*.f64 1/2 (/.f64 (*.f64 im im) re))) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(fma.f64 re 2 (fma.f64 1/2 (/.f64 im (/.f64 re im)) (/.f64 (*.f64 -1/8 (pow.f64 im 4)) (pow.f64 re 3))))
(fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) -1/8 (fma.f64 re 2 (*.f64 1/2 (*.f64 (/.f64 im re) im))))
(-.f64 (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 (*.f64 2 re) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(+.f64 (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 2 re (*.f64 1/2 (/.f64 (*.f64 im im) re)))) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 re 2 (fma.f64 1/2 (/.f64 im (/.f64 re im)) (/.f64 (*.f64 -1/8 (pow.f64 im 4)) (pow.f64 re 3)))))
(fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) -1/8 (fma.f64 re 2 (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (*.f64 1/2 (*.f64 (/.f64 im re) im)))))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 (/.f64 (*.f64 im im) re) -1/2)
(*.f64 (/.f64 im (/.f64 re im)) -1/2)
(*.f64 (*.f64 (/.f64 im re) im) -1/2)
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 (/.f64 (*.f64 im im) re) -1/2))
(fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (*.f64 (/.f64 im (/.f64 re im)) -1/2))
(fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (*.f64 (*.f64 (/.f64 im re) im) -1/2))
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))))
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (*.f64 1/2 (/.f64 (*.f64 im im) re))))
(-.f64 (/.f64 (*.f64 1/8 (pow.f64 im 4)) (pow.f64 re 3)) (fma.f64 1/2 (/.f64 im (/.f64 re im)) (/.f64 1/16 (/.f64 (pow.f64 re 5) (pow.f64 im 6)))))
(fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 (*.f64 (/.f64 im re) im) -1/2 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) -1/16)))
(-.f64 (+.f64 (*.f64 5/128 (/.f64 (pow.f64 im 8) (pow.f64 re 7))) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))))
(-.f64 (fma.f64 5/128 (/.f64 (pow.f64 im 8) (pow.f64 re 7)) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (*.f64 1/2 (/.f64 (*.f64 im im) re))))
(-.f64 (fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (/.f64 5/128 (/.f64 (pow.f64 re 7) (pow.f64 im 8)))) (fma.f64 1/2 (/.f64 im (/.f64 re im)) (/.f64 1/16 (/.f64 (pow.f64 re 5) (pow.f64 im 6)))))
(fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 5/128 (/.f64 (pow.f64 im 8) (pow.f64 re 7)) (fma.f64 (*.f64 (/.f64 im re) im) -1/2 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) -1/16))))
(*.f64 -1 im)
(neg.f64 im)
(-.f64 re im)
(-.f64 re (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im))
(-.f64 re (fma.f64 1/2 (/.f64 (*.f64 re re) im) im))
(-.f64 re (fma.f64 1/2 (/.f64 re (/.f64 im re)) im))
(-.f64 re (fma.f64 1/2 (*.f64 (/.f64 re im) re) im))
(-.f64 (+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) re) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im))
(-.f64 (fma.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) re) (fma.f64 1/2 (/.f64 (*.f64 re re) im) im))
(-.f64 (fma.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) re) (fma.f64 1/2 (/.f64 re (/.f64 im re)) im))
(-.f64 (fma.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) re) (fma.f64 1/2 (*.f64 (/.f64 re im) re) im))
im
(+.f64 re im)
(+.f64 im re)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im))
(fma.f64 1/2 (/.f64 (*.f64 re re) im) (+.f64 im re))
(+.f64 im (fma.f64 1/2 (/.f64 re (/.f64 im re)) re))
(+.f64 im (fma.f64 1/2 (*.f64 (/.f64 re im) re) re))
(-.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im)) (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))))
(+.f64 (fma.f64 1/2 (/.f64 (*.f64 re re) im) (+.f64 im re)) (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))))
(+.f64 (+.f64 im (fma.f64 1/2 (/.f64 re (/.f64 im re)) re)) (/.f64 (*.f64 -1/8 (pow.f64 re 4)) (pow.f64 im 3)))
(fma.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) -1/8 (+.f64 im (fma.f64 1/2 (*.f64 (/.f64 re im) re) re)))
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))))
(fma.f64 (sqrt.f64 2) (sqrt.f64 im) (*.f64 1/2 (*.f64 (*.f64 re (sqrt.f64 2)) (sqrt.f64 (/.f64 1 im)))))
(fma.f64 1/2 (*.f64 re (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
(*.f64 (sqrt.f64 2) (+.f64 (sqrt.f64 im) (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 re 1/2))))
(+.f64 (*.f64 1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im))))))
(fma.f64 1/8 (*.f64 (*.f64 (*.f64 re re) (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) (fma.f64 (sqrt.f64 2) (sqrt.f64 im) (*.f64 1/2 (*.f64 (*.f64 re (sqrt.f64 2)) (sqrt.f64 (/.f64 1 im))))))
(fma.f64 1/8 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 re re) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (fma.f64 1/2 (*.f64 re (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im))))
(fma.f64 1/8 (*.f64 re (*.f64 re (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 im 3)))))) (*.f64 (sqrt.f64 2) (+.f64 (sqrt.f64 im) (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 re 1/2)))))
(-.f64 (+.f64 (*.f64 1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))))) (*.f64 1/16 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 3)) (sqrt.f64 (/.f64 1 (pow.f64 im 5))))))
(+.f64 (fma.f64 1/8 (*.f64 (*.f64 (*.f64 re re) (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) (fma.f64 (sqrt.f64 2) (sqrt.f64 im) (*.f64 1/2 (*.f64 (*.f64 re (sqrt.f64 2)) (sqrt.f64 (/.f64 1 im)))))) (*.f64 -1/16 (*.f64 (*.f64 (pow.f64 re 3) (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 5))))))
(+.f64 (fma.f64 1/8 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 re re) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (fma.f64 1/2 (*.f64 re (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))) (*.f64 (*.f64 (*.f64 (pow.f64 re 3) (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 5)))) -1/16))
(+.f64 (*.f64 (sqrt.f64 2) (+.f64 (*.f64 re (*.f64 (*.f64 re (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) 1/8)) (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 re 1/2)))) (*.f64 (sqrt.f64 2) (-.f64 (sqrt.f64 im) (*.f64 (pow.f64 re 3) (*.f64 1/16 (sqrt.f64 (/.f64 1 (pow.f64 im 5))))))))
(*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re))
(*.f64 2 (sqrt.f64 re))
(+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)) (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2))))
(fma.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re) (*.f64 1/4 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))))
(fma.f64 2 (sqrt.f64 re) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 (*.f64 im im) 1/4)))
(fma.f64 2 (sqrt.f64 re) (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 1/4 im))))
(-.f64 (+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)) (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2)))) (+.f64 (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (pow.f64 im 4))) (*.f64 1/32 (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 (sqrt.f64 2) 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 7)))))))
(-.f64 (fma.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re) (*.f64 1/4 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))))) (fma.f64 1/16 (*.f64 (pow.f64 im 4) (sqrt.f64 (/.f64 1 (pow.f64 re 7)))) (*.f64 1/32 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (/.f64 (pow.f64 im 4) (pow.f64 (sqrt.f64 2) 2))))))
(-.f64 (fma.f64 2 (sqrt.f64 re) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 (*.f64 im im) 1/4))) (fma.f64 1/32 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (/.f64 (pow.f64 im 4) 2)) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (*.f64 (pow.f64 im 4) 1/16))))
(-.f64 (fma.f64 2 (sqrt.f64 re) (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 1/4 im)))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (+.f64 (*.f64 (pow.f64 im 4) 1/16) (*.f64 1/32 (/.f64 (pow.f64 im 4) 2)))))
(-.f64 (+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)) (+.f64 (*.f64 1/128 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 (sqrt.f64 2) 4)) (sqrt.f64 (/.f64 1 (pow.f64 re 11))))) (+.f64 (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2))) (+.f64 (*.f64 1/32 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 11))) (pow.f64 im 6))) (*.f64 1/64 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 (sqrt.f64 2) 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 11))))))))) (+.f64 (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (pow.f64 im 4))) (*.f64 1/32 (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 (sqrt.f64 2) 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 7)))))))
(-.f64 (fma.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re) (fma.f64 1/128 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 (sqrt.f64 2) 4)) (sqrt.f64 (/.f64 1 (pow.f64 re 11)))) (fma.f64 1/4 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (fma.f64 1/32 (*.f64 (pow.f64 im 6) (sqrt.f64 (/.f64 1 (pow.f64 re 11)))) (*.f64 1/64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 11))) (/.f64 (pow.f64 im 6) (pow.f64 (sqrt.f64 2) 2)))))))) (fma.f64 1/16 (*.f64 (pow.f64 im 4) (sqrt.f64 (/.f64 1 (pow.f64 re 7)))) (*.f64 1/32 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (/.f64 (pow.f64 im 4) (pow.f64 (sqrt.f64 2) 2))))))
(-.f64 (fma.f64 2 (sqrt.f64 re) (fma.f64 1/128 (*.f64 (/.f64 (pow.f64 im 6) 4) (sqrt.f64 (/.f64 1 (pow.f64 re 11)))) (fma.f64 1/4 (*.f64 im (*.f64 im (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) (fma.f64 1/32 (*.f64 (pow.f64 im 6) (sqrt.f64 (/.f64 1 (pow.f64 re 11)))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 11))) (/.f64 (*.f64 1/64 (pow.f64 im 6)) 2)))))) (fma.f64 1/32 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (/.f64 (pow.f64 im 4) 2)) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (*.f64 (pow.f64 im 4) 1/16))))
(+.f64 (/.f64 (*.f64 (pow.f64 im 6) (sqrt.f64 (/.f64 1 (pow.f64 re 11)))) 512) (-.f64 (fma.f64 2 (sqrt.f64 re) (fma.f64 (*.f64 im im) (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 11))) (+.f64 (*.f64 (pow.f64 im 6) 1/32) (/.f64 1/64 (/.f64 2 (pow.f64 im 6))))))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (+.f64 (*.f64 (pow.f64 im 4) 1/16) (*.f64 1/32 (/.f64 (pow.f64 im 4) 2))))))

prune204.0ms (6.5%)

Pruning

6 alts after pruning (3 fresh and 3 done)

PrunedKeptTotal
New3041305
Fresh123
Picked101
Done033
Total3066312
Error
6.3b
Counts
312 → 6
Alt Table
StatusErrorProgram
52.3b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (*.f64 (/.f64 im re) im) -1/2))))
39.2b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (/.f64 (neg.f64 (*.f64 im im)) (-.f64 re (hypot.f64 re im))))))
17.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) re))))
45.6b
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
48.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im))))
14.6b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))
Compiler

Compiled 8445 to 4322 computations (48.8% saved)

regimes213.0ms (6.8%)

Accuracy

Total 4.0b remaining (42.5%)

Threshold costs 0b (0%)

Counts
28 → 2
Compiler

Compiled 450 to 290 computations (35.6% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Calls

1 calls:

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

Compiled 15 to 10 computations (33.3% saved)

simplify2.0ms (0.1%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
+-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02858
13858
Stop Event
saturated
Calls
Call 1
Inputs
(if (<=.f64 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))) 0) (*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (*.f64 (/.f64 im re) im) -1/2)))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))))
Outputs
(if (<=.f64 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))) 0) (*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (*.f64 (/.f64 im re) im) -1/2)))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))))
(if (<=.f64 (sqrt.f64 (*.f64 2 (+.f64 re (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))))) 0) (*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (*.f64 im (/.f64 im re)) -1/2)))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))))

end89.0ms (2.8%)

Stop Event
fuel
Compiler

Compiled 157 to 115 computations (26.8% saved)

Profiling

Loading profile data...