Details

Time bar (total: 9.6s)

analyze345.0ms (3.6%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.9%0.1%0
0%99.9%0.1%1
0%99.9%0.1%2
0%99.9%0.1%3
0%99.9%0.1%4
12.5%87.4%0.1%5
18.7%81.2%0.1%6
37.5%62.4%0.1%7
42.1%57.8%0.1%8
54.6%45.3%0.1%9
57.4%42.5%0.1%10
64.4%35.5%0.1%11
65.9%34%0.1%12
Compiler

Compiled 18 to 13 computations (27.8% saved)

sample2.7s (28.1%)

Results
1.3s6338×body256valid
538.0ms542×body4096valid
417.0ms698×body2048valid
351.0ms447×body1024valid
67.0ms231×body512valid

preprocess16.0ms (0.2%)

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 19 to 14 computations (26.3% saved)

simplify10.0ms (0.1%)

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)))))

eval1.0ms (0%)

Compiler

Compiled 27 to 19 computations (29.6% saved)

prune1.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New112
Fresh101
Picked000
Done000
Total213
Error
12.5b
Counts
3 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
12.5b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))
Compiler

Compiled 12 to 9 computations (25% saved)

localize12.0ms (0.1%)

Local error

Found 6 expressions with local error:

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

Compiled 39 to 16 computations (59% saved)

series17.0ms (0.2%)

Counts
3 → 56
Calls

18 calls:

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

rewrite55.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
907×pow1_binary64
845×add-log-exp_binary64
844×log1p-expm1-u_binary64
844×expm1-log1p-u_binary64
827×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0823
117823
2236123
Stop Event
node limit
Counts
3 → 72
Calls
Call 1
Inputs
(+.f64 re (hypot.f64 re im))
(sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))
(hypot.f64 re im)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (+.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 cbrt.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.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 log1p.f64 (expm1.f64 (+.f64 re (hypot.f64 re im))))))) (#(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 1 (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 cbrt.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 3/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 log1p.f64 (expm1.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (hypot.f64 re im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (hypot.f64 re im) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (hypot.f64 re im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (hypot.f64 re im)) (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (cbrt.f64 (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (hypot.f64 re im) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (hypot.f64 re im) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (hypot.f64 re im)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (hypot.f64 re im)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (hypot.f64 re im) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (hypot.f64 re im) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (hypot.f64 re im) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (hypot.f64 re im)))))))

simplify63.0ms (0.7%)

Algorithm
egg-herbie
Rules
735×fma-def_binary64
671×associate-*r*_binary64
608×associate-*l*_binary64
317×unswap-sqr_binary64
280×times-frac_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01501391
14511326
214231270
365731270
Stop Event
node limit
Counts
128 → 145
Calls
Call 1
Inputs
im
(+.f64 re im)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im)))
(*.f64 2 re)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 2 re))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 2 re) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 (*.f64 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 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (+.f64 (*.f64 1/2 (/.f64 (+.f64 (pow.f64 (*.f64 -1/8 (pow.f64 im 4)) 2) (*.f64 1/16 (pow.f64 im 8))) (pow.f64 re 7))) (+.f64 (*.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 1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 2 re))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 2 re) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 (*.f64 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 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im)))
(*.f64 -1 im)
(+.f64 re (*.f64 -1 im))
(+.f64 re (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 re (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))))
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
(+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 2))) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im))))
(+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 2))) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 -1/4 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 3))) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))))
(*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re))
(+.f64 (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)))
(+.f64 (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2))) (+.f64 (*.f64 -1/2 (*.f64 (*.f64 (+.f64 (*.f64 1/8 (/.f64 1 (pow.f64 re 3))) (pow.f64 (*.f64 1/4 (*.f64 (/.f64 1 (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) 2)) (pow.f64 im 4)) (sqrt.f64 (/.f64 1 re)))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re))))
(+.f64 (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2))) (+.f64 (*.f64 -1/2 (*.f64 (*.f64 (+.f64 (*.f64 1/8 (/.f64 1 (pow.f64 re 3))) (pow.f64 (*.f64 1/4 (*.f64 (/.f64 1 (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) 2)) (pow.f64 im 4)) (sqrt.f64 (/.f64 1 re)))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (*.f64 -1/4 (/.f64 (+.f64 (*.f64 1/8 (/.f64 1 (pow.f64 re 3))) (pow.f64 (*.f64 1/4 (*.f64 (/.f64 1 (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) 2)) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 re 2))))) (pow.f64 im 6)) (sqrt.f64 (/.f64 1 re)))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)))))
im
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im)
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5))) im)))
re
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) re)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(*.f64 -1 re)
(+.f64 (*.f64 -1 re) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 -1 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 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)))))
re
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) re)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
im
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im)
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5))) im)))
(*.f64 -1 im)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(+.f64 (*.f64 -1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5))) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))))
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))
(fma.f64 1/2 (*.f64 (/.f64 re im) re) (+.f64 im re))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im)))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 (*.f64 re re) im) (+.f64 im re)))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 re (/.f64 im re)) (+.f64 im re)))
(+.f64 im (fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (*.f64 (/.f64 re im) re) re)))
(*.f64 2 re)
(*.f64 re 2)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 2 re))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (*.f64 re 2))
(fma.f64 re 2 (*.f64 1/2 (/.f64 im (/.f64 re im))))
(fma.f64 1/2 (*.f64 (/.f64 im re) im) (*.f64 re 2))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 2 re) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (fma.f64 2 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(fma.f64 1/2 (/.f64 im (/.f64 re im)) (fma.f64 re 2 (/.f64 -1/8 (/.f64 (pow.f64 re 3) (pow.f64 im 4)))))
(fma.f64 1/2 (*.f64 (/.f64 im re) im) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (*.f64 re 2)))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 (*.f64 2 re) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 2 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(fma.f64 1/2 (/.f64 im (/.f64 re im)) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 re 2 (/.f64 -1/8 (/.f64 (pow.f64 re 3) (pow.f64 im 4))))))
(fma.f64 1/2 (*.f64 (/.f64 im re) im) (fma.f64 re 2 (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (*.f64 (pow.f64 im 6) (/.f64 1/16 (pow.f64 re 5))))))
(*.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)))
(fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (*.f64 (/.f64 (*.f64 im im) re) -1/2))
(fma.f64 (/.f64 im (/.f64 re im)) -1/2 (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8))
(fma.f64 (*.f64 (/.f64 im re) im) -1/2 (*.f64 (pow.f64 im 4) (/.f64 1/8 (pow.f64 re 3))))
(+.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))))
(fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 -1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (*.f64 (/.f64 (*.f64 im im) re) -1/2)))
(fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8 (fma.f64 (/.f64 im (/.f64 re im)) -1/2 (/.f64 -1/16 (/.f64 (pow.f64 re 5) (pow.f64 im 6)))))
(fma.f64 (*.f64 (/.f64 im re) im) -1/2 (fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8 (*.f64 (/.f64 -1/16 (pow.f64 re 5)) (pow.f64 im 6))))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (+.f64 (*.f64 1/2 (/.f64 (+.f64 (pow.f64 (*.f64 -1/8 (pow.f64 im 4)) 2) (*.f64 1/16 (pow.f64 im 8))) (pow.f64 re 7))) (+.f64 (*.f64 -1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))))
(fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 1/2 (/.f64 (+.f64 (pow.f64 (*.f64 -1/8 (pow.f64 im 4)) 2) (*.f64 1/16 (pow.f64 im 8))) (pow.f64 re 7)) (fma.f64 -1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (*.f64 (/.f64 (*.f64 im im) re) -1/2))))
(fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8 (fma.f64 1/2 (/.f64 (fma.f64 1/16 (pow.f64 im 8) (*.f64 (pow.f64 im 8) 1/64)) (pow.f64 re 7)) (fma.f64 (/.f64 im (/.f64 re im)) -1/2 (/.f64 -1/16 (/.f64 (pow.f64 re 5) (pow.f64 im 6))))))
(fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8 (fma.f64 (*.f64 (/.f64 im re) im) -1/2 (fma.f64 1/2 (/.f64 (*.f64 (pow.f64 im 8) 5/64) (pow.f64 re 7)) (*.f64 (/.f64 -1/16 (pow.f64 re 5)) (pow.f64 im 6)))))
(*.f64 2 re)
(*.f64 re 2)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 2 re))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (*.f64 re 2))
(fma.f64 re 2 (*.f64 1/2 (/.f64 im (/.f64 re im))))
(fma.f64 1/2 (*.f64 (/.f64 im re) im) (*.f64 re 2))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 2 re) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (fma.f64 2 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(fma.f64 1/2 (/.f64 im (/.f64 re im)) (fma.f64 re 2 (/.f64 -1/8 (/.f64 (pow.f64 re 3) (pow.f64 im 4)))))
(fma.f64 1/2 (*.f64 (/.f64 im re) im) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (*.f64 re 2)))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 (*.f64 2 re) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 2 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(fma.f64 1/2 (/.f64 im (/.f64 re im)) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 re 2 (/.f64 -1/8 (/.f64 (pow.f64 re 3) (pow.f64 im 4))))))
(fma.f64 1/2 (*.f64 (/.f64 im re) im) (fma.f64 re 2 (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (*.f64 (pow.f64 im 6) (/.f64 1/16 (pow.f64 re 5))))))
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))
(fma.f64 1/2 (*.f64 (/.f64 re im) re) (+.f64 im re))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im)))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 (*.f64 re re) im) (+.f64 im re)))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 re (/.f64 im re)) (+.f64 im re)))
(+.f64 im (fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (*.f64 (/.f64 re im) re) re)))
(*.f64 -1 im)
(neg.f64 im)
(+.f64 re (*.f64 -1 im))
(+.f64 re (neg.f64 im))
(-.f64 re im)
(+.f64 re (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(+.f64 re (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im)))
(+.f64 re (fma.f64 (/.f64 re (/.f64 im re)) -1/2 (neg.f64 im)))
(-.f64 (fma.f64 (*.f64 (/.f64 re im) re) -1/2 re) im)
(-.f64 re (fma.f64 1/2 (*.f64 (/.f64 re im) re) im))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 re (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))))
(fma.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (+.f64 re (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))))
(+.f64 re (fma.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) 1/8 (fma.f64 (/.f64 re (/.f64 im re)) -1/2 (neg.f64 im))))
(-.f64 (fma.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) 1/8 (fma.f64 (*.f64 (/.f64 re im) re) -1/2 re)) im)
(-.f64 (fma.f64 (*.f64 (/.f64 re im) re) -1/2 re) (fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) im))
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
(fma.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 re (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/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 2))) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im))))
(fma.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 (*.f64 re re) (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2))) (sqrt.f64 (/.f64 1 im)))) (fma.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im))))
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 (sqrt.f64 (/.f64 1 im)) (+.f64 (*.f64 1/2 (*.f64 (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2)) (*.f64 (*.f64 re re) (sqrt.f64 2)))) (*.f64 (*.f64 1/2 re) (sqrt.f64 2)))))
(fma.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 im))) (+.f64 (*.f64 re (*.f64 re (+.f64 (/.f64 1/2 im) (*.f64 -1/2 (/.f64 1/2 im))))) re)) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
(+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 2))) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 -1/4 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 3))) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))))
(fma.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 (*.f64 re re) (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2))) (sqrt.f64 (/.f64 1 im)))) (fma.f64 -1/4 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 (pow.f64 re 3) (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2))) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (fma.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))))
(+.f64 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2)) (*.f64 (pow.f64 re 3) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) -1/4)) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 (sqrt.f64 (/.f64 1 im)) (+.f64 (*.f64 1/2 (*.f64 (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2)) (*.f64 (*.f64 re re) (sqrt.f64 2)))) (*.f64 (*.f64 1/2 re) (sqrt.f64 2))))))
(+.f64 (*.f64 (sqrt.f64 2) (+.f64 (sqrt.f64 im) (*.f64 (+.f64 (/.f64 1/2 im) (*.f64 -1/2 (/.f64 1/2 im))) (*.f64 (*.f64 (pow.f64 re 3) (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) -1/4)))) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 im))) (+.f64 (*.f64 re (*.f64 re (+.f64 (/.f64 1/2 im) (*.f64 -1/2 (/.f64 1/2 im))))) re))))
(*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re))
(*.f64 2 (sqrt.f64 re))
(+.f64 (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)))
(fma.f64 1/4 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)))
(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 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 (*.f64 1/4 im) im)))
(+.f64 (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2))) (+.f64 (*.f64 -1/2 (*.f64 (*.f64 (+.f64 (*.f64 1/8 (/.f64 1 (pow.f64 re 3))) (pow.f64 (*.f64 1/4 (*.f64 (/.f64 1 (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) 2)) (pow.f64 im 4)) (sqrt.f64 (/.f64 1 re)))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re))))
(fma.f64 1/4 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (fma.f64 -1/2 (*.f64 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 (*.f64 1/4 (/.f64 1 (sqrt.f64 2))) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2)) (*.f64 (pow.f64 im 4) (sqrt.f64 (/.f64 1 re)))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re))))
(fma.f64 1/4 (*.f64 im (*.f64 im (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) (fma.f64 2 (sqrt.f64 re) (*.f64 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 1/4 (sqrt.f64 2))) 2)) (*.f64 (*.f64 (pow.f64 im 4) (sqrt.f64 (/.f64 1 re))) -1/2))))
(fma.f64 2 (sqrt.f64 re) (fma.f64 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 1/4 (sqrt.f64 2))) 2)) (*.f64 (pow.f64 im 4) (*.f64 -1/2 (sqrt.f64 (/.f64 1 re)))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 (*.f64 1/4 im) im))))
(+.f64 (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2))) (+.f64 (*.f64 -1/2 (*.f64 (*.f64 (+.f64 (*.f64 1/8 (/.f64 1 (pow.f64 re 3))) (pow.f64 (*.f64 1/4 (*.f64 (/.f64 1 (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) 2)) (pow.f64 im 4)) (sqrt.f64 (/.f64 1 re)))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (*.f64 -1/4 (/.f64 (+.f64 (*.f64 1/8 (/.f64 1 (pow.f64 re 3))) (pow.f64 (*.f64 1/4 (*.f64 (/.f64 1 (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) 2)) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 re 2))))) (pow.f64 im 6)) (sqrt.f64 (/.f64 1 re)))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)))))
(fma.f64 1/4 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (fma.f64 -1/2 (*.f64 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 (*.f64 1/4 (/.f64 1 (sqrt.f64 2))) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2)) (*.f64 (pow.f64 im 4) (sqrt.f64 (/.f64 1 re)))) (fma.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (pow.f64 im 6) (-.f64 (/.f64 1/16 (pow.f64 re 5)) (*.f64 -1/4 (/.f64 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 (*.f64 1/4 (/.f64 1 (sqrt.f64 2))) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2)) (*.f64 (*.f64 re re) (pow.f64 (sqrt.f64 2) 2))))))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)))))
(+.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) (+.f64 (*.f64 (*.f64 -1/2 (pow.f64 im 4)) (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 1/4 (sqrt.f64 2))) 2))) (*.f64 (*.f64 1/2 (pow.f64 im 6)) (-.f64 (/.f64 1/16 (pow.f64 re 5)) (*.f64 -1/8 (/.f64 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 1/4 (sqrt.f64 2))) 2)) (*.f64 re re))))))) (fma.f64 2 (sqrt.f64 re) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 (*.f64 im im) 1/4))))
(fma.f64 (*.f64 im im) (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (fma.f64 2 (sqrt.f64 re) (*.f64 (sqrt.f64 (/.f64 1 re)) (fma.f64 -1/2 (*.f64 (pow.f64 im 4) (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 1/4 (sqrt.f64 2))) 2))) (*.f64 (+.f64 (/.f64 1/16 (pow.f64 re 5)) (*.f64 1/8 (/.f64 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 1/4 (sqrt.f64 2))) 2)) (*.f64 re re)))) (*.f64 1/2 (pow.f64 im 6)))))))
im
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im)
(fma.f64 1/2 (/.f64 (*.f64 re re) im) im)
(fma.f64 1/2 (/.f64 re (/.f64 im re)) im)
(fma.f64 1/2 (*.f64 (/.f64 re im) re) im)
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 (*.f64 re re) im) im))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 re (/.f64 im re)) im))
(fma.f64 1/2 (*.f64 (/.f64 re im) re) (fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) im))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5))) im)))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 (*.f64 re re) im) (fma.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) im)))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 re (/.f64 im re)) (fma.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) im)))
(fma.f64 1/2 (*.f64 (/.f64 re im) re) (fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) im)))
re
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) re)
(fma.f64 1/2 (/.f64 (*.f64 im im) re) re)
(fma.f64 1/2 (/.f64 im (/.f64 re im)) re)
(fma.f64 1/2 (*.f64 (/.f64 im re) im) re)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(+.f64 (fma.f64 1/2 (/.f64 (*.f64 im im) re) re) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(fma.f64 1/2 (/.f64 im (/.f64 re im)) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) re))
(fma.f64 1/2 (*.f64 (/.f64 im re) im) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) re))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(fma.f64 1/2 (/.f64 im (/.f64 re im)) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) re)))
(fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 1/2 (*.f64 (/.f64 im re) im) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) re)))
(*.f64 -1 re)
(neg.f64 re)
(+.f64 (*.f64 -1 re) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(fma.f64 -1 re (*.f64 (/.f64 (*.f64 im im) re) -1/2))
(-.f64 (*.f64 (/.f64 im (/.f64 re im)) -1/2) re)
(-.f64 (*.f64 (*.f64 (/.f64 im re) im) -1/2) re)
(neg.f64 (fma.f64 1/2 (*.f64 (/.f64 im re) im) re))
(+.f64 (*.f64 -1 re) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re))))
(fma.f64 -1 re (fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (*.f64 (/.f64 (*.f64 im im) re) -1/2)))
(-.f64 (fma.f64 (/.f64 im (/.f64 re im)) -1/2 (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8)) re)
(fma.f64 (*.f64 (/.f64 im re) im) -1/2 (fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8 (neg.f64 re)))
(fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8 (neg.f64 (fma.f64 1/2 (*.f64 (/.f64 im re) im) re)))
(+.f64 (*.f64 -1 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)))))
(fma.f64 -1 re (fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 -1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (*.f64 (/.f64 (*.f64 im im) re) -1/2))))
(-.f64 (fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8 (fma.f64 (/.f64 im (/.f64 re im)) -1/2 (/.f64 -1/16 (/.f64 (pow.f64 re 5) (pow.f64 im 6))))) re)
(-.f64 (fma.f64 (*.f64 (/.f64 im re) im) -1/2 (fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8 (*.f64 (/.f64 -1/16 (pow.f64 re 5)) (pow.f64 im 6)))) re)
(fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8 (-.f64 (fma.f64 (*.f64 (/.f64 im re) im) -1/2 (*.f64 (/.f64 -1/16 (pow.f64 re 5)) (pow.f64 im 6))) re))
re
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) re)
(fma.f64 1/2 (/.f64 (*.f64 im im) re) re)
(fma.f64 1/2 (/.f64 im (/.f64 re im)) re)
(fma.f64 1/2 (*.f64 (/.f64 im re) im) re)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(+.f64 (fma.f64 1/2 (/.f64 (*.f64 im im) re) re) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(fma.f64 1/2 (/.f64 im (/.f64 re im)) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) re))
(fma.f64 1/2 (*.f64 (/.f64 im re) im) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) re))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(fma.f64 1/2 (/.f64 im (/.f64 re im)) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) re)))
(fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 1/2 (*.f64 (/.f64 im re) im) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) re)))
im
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im)
(fma.f64 1/2 (/.f64 (*.f64 re re) im) im)
(fma.f64 1/2 (/.f64 re (/.f64 im re)) im)
(fma.f64 1/2 (*.f64 (/.f64 re im) re) im)
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 (*.f64 re re) im) im))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 re (/.f64 im re)) im))
(fma.f64 1/2 (*.f64 (/.f64 re im) re) (fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) im))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5))) im)))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 (*.f64 re re) im) (fma.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) im)))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 re (/.f64 im re)) (fma.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) im)))
(fma.f64 1/2 (*.f64 (/.f64 re im) re) (fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) im)))
(*.f64 -1 im)
(neg.f64 im)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(fma.f64 (/.f64 re (/.f64 im re)) -1/2 (neg.f64 im))
(-.f64 (/.f64 (*.f64 re re) (/.f64 im -1/2)) im)
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(fma.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im)))
(fma.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) 1/8 (fma.f64 (/.f64 re (/.f64 im re)) -1/2 (neg.f64 im)))
(-.f64 (fma.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) 1/8 (/.f64 (*.f64 re re) (/.f64 im -1/2))) im)
(-.f64 (/.f64 (*.f64 re re) (/.f64 im -1/2)) (fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) im))
(+.f64 (*.f64 -1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5))) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))))
(fma.f64 -1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) (fma.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))))
(fma.f64 -1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) (fma.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) 1/8 (fma.f64 (/.f64 re (/.f64 im re)) -1/2 (neg.f64 im))))
(-.f64 (fma.f64 -1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) (fma.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) 1/8 (/.f64 (*.f64 re re) (/.f64 im -1/2)))) im)
(-.f64 (fma.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) 1/8 (/.f64 (*.f64 re re) (/.f64 im -1/2))) (fma.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) im))

eval59.0ms (0.6%)

Compiler

Compiled 2995 to 2046 computations (31.7% saved)

prune31.0ms (0.3%)

Pruning

13 alts after pruning (12 fresh and 1 done)

PrunedKeptTotal
New13312145
Fresh000
Picked011
Done000
Total13313146
Error
4.3b
Counts
146 → 13
Alt Table
Click to see full alt table
StatusErrorProgram
44.5b
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
52.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (*.f64 (/.f64 im re) im) -1/2))))
12.5b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))
45.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 re im))))
48.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (-.f64 (/.f64 (*.f64 re re) (/.f64 im -1/2)) im)))))
49.0b
(*.f64 1/2 (*.f64 2 (sqrt.f64 re)))
42.4b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
12.9b
(*.f64 1/2 (pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) 2))
31.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (sqrt.f64 re) (sqrt.f64 re) (hypot.f64 re im)))))
47.3b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im))))
60.7b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (neg.f64 re)))))
46.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (cbrt.f64 (pow.f64 (hypot.f64 re im) 3))))))
12.7b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (pow.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) 2))))
Compiler

Compiled 308 to 243 computations (21.1% saved)

localize18.0ms (0.2%)

Local error

Found 8 expressions with local error:

NewErrorProgram
0.3b
(pow.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) 2)
0.0b
(sqrt.f64 (*.f64 2 (pow.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) 2)))
0.0b
(sqrt.f64 (+.f64 re (hypot.f64 re im)))
0.0b
(hypot.f64 re im)
0.0b
(sqrt.f64 (+.f64 re (hypot.f64 re im)))
0.0b
(sqrt.f64 (*.f64 2 (pow.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) 2)))
0.3b
(pow.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) 2)
1.1b
(+.f64 re (hypot.f64 re im))
Compiler

Compiled 62 to 25 computations (59.7% saved)

series15.0ms (0.2%)

Counts
3 → 24
Calls

18 calls:

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

rewrite57.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
935×pow1_binary64
869×add-log-exp_binary64
868×log1p-expm1-u_binary64
868×expm1-log1p-u_binary64
847×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify59.0ms (0.6%)

Algorithm
egg-herbie
Rules
797×fma-def_binary64
745×associate-*r*_binary64
702×associate-*l*_binary64
243×*-commutative_binary64
239×unswap-sqr_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01361180
14201044
21392941
37081941
Stop Event
node limit
Counts
108 → 127
Calls
Call 1
Inputs
im
(+.f64 re im)
(+.f64 re (+.f64 (*.f64 (-.f64 (*.f64 3/4 (/.f64 1 im)) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 2)) im))
(+.f64 (*.f64 (pow.f64 re 3) (+.f64 (*.f64 -1/2 (/.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2)) im)) (*.f64 1/2 (/.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2)) im)))) (+.f64 re (+.f64 (*.f64 (-.f64 (*.f64 3/4 (/.f64 1 im)) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 2)) im)))
(*.f64 (pow.f64 (sqrt.f64 2) 2) re)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 (pow.f64 (sqrt.f64 2) 2) re))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 (+.f64 (*.f64 1/16 (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 re 3)))) (*.f64 -1 (+.f64 (*.f64 1/8 (/.f64 1 (pow.f64 re 3))) (pow.f64 (*.f64 1/4 (*.f64 (/.f64 1 (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) 2)))) (pow.f64 im 4)) (*.f64 (pow.f64 (sqrt.f64 2) 2) re)))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 (*.f64 (+.f64 (*.f64 1/16 (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 re 3)))) (*.f64 -1 (+.f64 (*.f64 1/8 (/.f64 1 (pow.f64 re 3))) (pow.f64 (*.f64 1/4 (*.f64 (/.f64 1 (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) 2)))) (pow.f64 im 4)) (*.f64 (pow.f64 (sqrt.f64 2) 2) re))))
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
(+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 2))) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im))))
(+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 2))) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 -1/4 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 3))) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))))
(*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re))
(+.f64 (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)))
(+.f64 (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2))) (+.f64 (*.f64 -1/2 (*.f64 (*.f64 (+.f64 (*.f64 1/8 (/.f64 1 (pow.f64 re 3))) (pow.f64 (*.f64 1/4 (*.f64 (/.f64 1 (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) 2)) (pow.f64 im 4)) (sqrt.f64 (/.f64 1 re)))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re))))
(+.f64 (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2))) (+.f64 (*.f64 -1/2 (*.f64 (*.f64 (+.f64 (*.f64 1/8 (/.f64 1 (pow.f64 re 3))) (pow.f64 (*.f64 1/4 (*.f64 (/.f64 1 (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) 2)) (pow.f64 im 4)) (sqrt.f64 (/.f64 1 re)))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (*.f64 -1/4 (/.f64 (+.f64 (*.f64 1/8 (/.f64 1 (pow.f64 re 3))) (pow.f64 (*.f64 1/4 (*.f64 (/.f64 1 (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) 2)) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 re 2))))) (pow.f64 im 6)) (sqrt.f64 (/.f64 1 re)))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)))))
(sqrt.f64 im)
(+.f64 (sqrt.f64 im) (*.f64 1/2 (*.f64 re (sqrt.f64 (/.f64 1 im)))))
(+.f64 (sqrt.f64 im) (+.f64 (*.f64 1/2 (*.f64 re (sqrt.f64 (/.f64 1 im)))) (*.f64 1/2 (*.f64 (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 im))))))
(+.f64 (*.f64 -1/4 (*.f64 (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 3)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (sqrt.f64 im) (+.f64 (*.f64 1/2 (*.f64 re (sqrt.f64 (/.f64 1 im)))) (*.f64 1/2 (*.f64 (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 im)))))))
(*.f64 (sqrt.f64 2) (sqrt.f64 re))
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 re)) (*.f64 1/4 (*.f64 (/.f64 (pow.f64 im 2) (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))))
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 re)) (+.f64 (*.f64 -1/2 (*.f64 (/.f64 (*.f64 (+.f64 (*.f64 1/8 (/.f64 1 (pow.f64 re 3))) (pow.f64 (*.f64 1/4 (*.f64 (/.f64 1 (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) 2)) (pow.f64 im 4)) (sqrt.f64 2)) (sqrt.f64 (/.f64 1 re)))) (*.f64 1/4 (*.f64 (/.f64 (pow.f64 im 2) (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))))))
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 re)) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (*.f64 -1/4 (/.f64 (+.f64 (*.f64 1/8 (/.f64 1 (pow.f64 re 3))) (pow.f64 (*.f64 1/4 (*.f64 (/.f64 1 (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) 2)) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 re 2))))) (pow.f64 im 6)) (sqrt.f64 2)) (sqrt.f64 (/.f64 1 re)))) (+.f64 (*.f64 -1/2 (*.f64 (/.f64 (*.f64 (+.f64 (*.f64 1/8 (/.f64 1 (pow.f64 re 3))) (pow.f64 (*.f64 1/4 (*.f64 (/.f64 1 (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) 2)) (pow.f64 im 4)) (sqrt.f64 2)) (sqrt.f64 (/.f64 1 re)))) (*.f64 1/4 (*.f64 (/.f64 (pow.f64 im 2) (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))))))
Outputs
im
(+.f64 re im)
(+.f64 im re)
(+.f64 re (+.f64 (*.f64 (-.f64 (*.f64 3/4 (/.f64 1 im)) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 2)) im))
(+.f64 re (fma.f64 (-.f64 (/.f64 3/4 im) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2)) (*.f64 re re) im))
(+.f64 im (fma.f64 (+.f64 (/.f64 3/4 im) (/.f64 -1/4 im)) (*.f64 re re) re))
(+.f64 (*.f64 (pow.f64 re 3) (+.f64 (*.f64 -1/2 (/.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2)) im)) (*.f64 1/2 (/.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2)) im)))) (+.f64 re (+.f64 (*.f64 (-.f64 (*.f64 3/4 (/.f64 1 im)) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 2)) im)))
(+.f64 re (fma.f64 (-.f64 (/.f64 3/4 im) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2)) (*.f64 re re) im))
(+.f64 im (fma.f64 (+.f64 (/.f64 3/4 im) (/.f64 -1/4 im)) (*.f64 re re) re))
(*.f64 (pow.f64 (sqrt.f64 2) 2) re)
(*.f64 re (pow.f64 (sqrt.f64 2) 2))
(*.f64 re 2)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 (pow.f64 (sqrt.f64 2) 2) re))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (*.f64 re (pow.f64 (sqrt.f64 2) 2)))
(fma.f64 re 2 (/.f64 1/2 (/.f64 re (*.f64 im im))))
(fma.f64 re 2 (*.f64 (/.f64 1/2 re) (*.f64 im im)))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 (+.f64 (*.f64 1/16 (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 re 3)))) (*.f64 -1 (+.f64 (*.f64 1/8 (/.f64 1 (pow.f64 re 3))) (pow.f64 (*.f64 1/4 (*.f64 (/.f64 1 (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) 2)))) (pow.f64 im 4)) (*.f64 (pow.f64 (sqrt.f64 2) 2) re)))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (fma.f64 (+.f64 (/.f64 1/16 (*.f64 (pow.f64 re 3) (pow.f64 (sqrt.f64 2) 2))) (neg.f64 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 1/4 (*.f64 (/.f64 1 (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) 2)))) (pow.f64 im 4) (*.f64 re (pow.f64 (sqrt.f64 2) 2))))
(fma.f64 1/2 (/.f64 im (/.f64 re im)) (fma.f64 (-.f64 (/.f64 1/32 (pow.f64 re 3)) (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 1/4 (sqrt.f64 2))) 2))) (pow.f64 im 4) (*.f64 re 2)))
(fma.f64 re 2 (fma.f64 (+.f64 (/.f64 1/32 (pow.f64 re 3)) (-.f64 (/.f64 -1/8 (pow.f64 re 3)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 1/4 (sqrt.f64 2))) 2))) (pow.f64 im 4) (*.f64 (/.f64 1/2 re) (*.f64 im im))))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 (*.f64 (+.f64 (*.f64 1/16 (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 re 3)))) (*.f64 -1 (+.f64 (*.f64 1/8 (/.f64 1 (pow.f64 re 3))) (pow.f64 (*.f64 1/4 (*.f64 (/.f64 1 (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) 2)))) (pow.f64 im 4)) (*.f64 (pow.f64 (sqrt.f64 2) 2) re))))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 (+.f64 (/.f64 1/16 (*.f64 (pow.f64 re 3) (pow.f64 (sqrt.f64 2) 2))) (neg.f64 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 1/4 (*.f64 (/.f64 1 (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) 2)))) (pow.f64 im 4) (*.f64 re (pow.f64 (sqrt.f64 2) 2)))))
(fma.f64 1/2 (/.f64 im (/.f64 re im)) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 (-.f64 (/.f64 1/32 (pow.f64 re 3)) (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 1/4 (sqrt.f64 2))) 2))) (pow.f64 im 4) (*.f64 re 2))))
(fma.f64 1/2 (*.f64 (/.f64 im re) im) (fma.f64 re 2 (fma.f64 (+.f64 (/.f64 1/32 (pow.f64 re 3)) (-.f64 (/.f64 -1/8 (pow.f64 re 3)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 1/4 (sqrt.f64 2))) 2))) (pow.f64 im 4) (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))))))
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
(fma.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 re (sqrt.f64 2))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
(*.f64 (sqrt.f64 2) (fma.f64 re (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) (sqrt.f64 im)))
(+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 2))) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im))))
(fma.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 (sqrt.f64 2) (*.f64 (*.f64 re re) (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2))))) (fma.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 re (sqrt.f64 2))) (*.f64 (sqrt.f64 2) (sqrt.f64 im))))
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 (sqrt.f64 (/.f64 1 im)) (+.f64 (*.f64 (*.f64 1/2 (sqrt.f64 2)) (*.f64 (*.f64 re re) (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2)))) (*.f64 1/2 (*.f64 re (sqrt.f64 2))))))
(fma.f64 (sqrt.f64 2) (sqrt.f64 im) (*.f64 (sqrt.f64 2) (*.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) (+.f64 re (*.f64 re (*.f64 re (+.f64 (/.f64 1/2 im) (/.f64 -1/4 im))))))))
(+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 2))) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 -1/4 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 3))) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))))
(fma.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 (sqrt.f64 2) (*.f64 (*.f64 re re) (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2))))) (fma.f64 -1/4 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 re 3) (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2)))) (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) (fma.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 re (sqrt.f64 2))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))))
(+.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2)) (*.f64 (*.f64 (pow.f64 re 3) (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) -1/4))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 (sqrt.f64 (/.f64 1 im)) (+.f64 (*.f64 (*.f64 1/2 (sqrt.f64 2)) (*.f64 (*.f64 re re) (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2)))) (*.f64 1/2 (*.f64 re (sqrt.f64 2)))))))
(+.f64 (*.f64 (sqrt.f64 2) (fma.f64 re (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) (sqrt.f64 im))) (*.f64 (sqrt.f64 2) (*.f64 (+.f64 (/.f64 1/2 im) (/.f64 -1/4 im)) (+.f64 (*.f64 re (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 re 1/2))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 3))) (*.f64 (pow.f64 re 3) -1/4))))))
(*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re))
(*.f64 2 (sqrt.f64 re))
(+.f64 (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)))
(fma.f64 1/4 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)))
(fma.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (*.f64 im im) (*.f64 2 (sqrt.f64 re)))
(fma.f64 2 (sqrt.f64 re) (*.f64 (*.f64 im im) (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3))))))
(+.f64 (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2))) (+.f64 (*.f64 -1/2 (*.f64 (*.f64 (+.f64 (*.f64 1/8 (/.f64 1 (pow.f64 re 3))) (pow.f64 (*.f64 1/4 (*.f64 (/.f64 1 (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) 2)) (pow.f64 im 4)) (sqrt.f64 (/.f64 1 re)))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re))))
(fma.f64 1/4 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (fma.f64 -1/2 (*.f64 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 1/4 (*.f64 (/.f64 1 (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) 2)) (*.f64 (pow.f64 im 4) (sqrt.f64 (/.f64 1 re)))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re))))
(fma.f64 1/4 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (fma.f64 -1/2 (*.f64 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 1/4 (sqrt.f64 2))) 2)) (*.f64 (pow.f64 im 4) (sqrt.f64 (/.f64 1 re)))) (*.f64 2 (sqrt.f64 re))))
(fma.f64 (*.f64 im im) (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (fma.f64 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 1/4 (sqrt.f64 2))) 2)) (*.f64 (pow.f64 im 4) (*.f64 -1/2 (sqrt.f64 (/.f64 1 re)))) (*.f64 2 (sqrt.f64 re))))
(+.f64 (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2))) (+.f64 (*.f64 -1/2 (*.f64 (*.f64 (+.f64 (*.f64 1/8 (/.f64 1 (pow.f64 re 3))) (pow.f64 (*.f64 1/4 (*.f64 (/.f64 1 (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) 2)) (pow.f64 im 4)) (sqrt.f64 (/.f64 1 re)))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (*.f64 -1/4 (/.f64 (+.f64 (*.f64 1/8 (/.f64 1 (pow.f64 re 3))) (pow.f64 (*.f64 1/4 (*.f64 (/.f64 1 (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) 2)) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 re 2))))) (pow.f64 im 6)) (sqrt.f64 (/.f64 1 re)))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)))))
(fma.f64 1/4 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (fma.f64 -1/2 (*.f64 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 1/4 (*.f64 (/.f64 1 (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) 2)) (*.f64 (pow.f64 im 4) (sqrt.f64 (/.f64 1 re)))) (fma.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (pow.f64 im 6) (+.f64 (/.f64 1/16 (pow.f64 re 5)) (*.f64 1/4 (/.f64 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 1/4 (*.f64 (/.f64 1 (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) 2)) (*.f64 (*.f64 re re) (pow.f64 (sqrt.f64 2) 2))))))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)))))
(+.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) (+.f64 (*.f64 -1/2 (*.f64 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 1/4 (sqrt.f64 2))) 2)) (pow.f64 im 4))) (*.f64 (*.f64 1/2 (pow.f64 im 6)) (-.f64 (/.f64 1/16 (pow.f64 re 5)) (*.f64 -1/8 (/.f64 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 1/4 (sqrt.f64 2))) 2)) (*.f64 re re))))))) (fma.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (*.f64 im im) (*.f64 2 (sqrt.f64 re))))
(fma.f64 (sqrt.f64 (/.f64 1 re)) (fma.f64 -1/2 (*.f64 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 1/4 (sqrt.f64 2))) 2)) (pow.f64 im 4)) (*.f64 (+.f64 (/.f64 1/16 (pow.f64 re 5)) (*.f64 1/8 (/.f64 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 1/4 (sqrt.f64 2))) 2)) (*.f64 re re)))) (*.f64 1/2 (pow.f64 im 6)))) (fma.f64 2 (sqrt.f64 re) (*.f64 (*.f64 im im) (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))))))
(sqrt.f64 im)
(+.f64 (sqrt.f64 im) (*.f64 1/2 (*.f64 re (sqrt.f64 (/.f64 1 im)))))
(fma.f64 (*.f64 re 1/2) (sqrt.f64 (/.f64 1 im)) (sqrt.f64 im))
(fma.f64 re (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) (sqrt.f64 im))
(+.f64 (sqrt.f64 im) (+.f64 (*.f64 1/2 (*.f64 re (sqrt.f64 (/.f64 1 im)))) (*.f64 1/2 (*.f64 (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 im))))))
(+.f64 (sqrt.f64 im) (*.f64 1/2 (+.f64 (*.f64 re (sqrt.f64 (/.f64 1 im))) (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 (*.f64 re re) (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2)))))))
(fma.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (+.f64 re (*.f64 (*.f64 re re) (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2))))) (sqrt.f64 im))
(fma.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (+.f64 re (*.f64 re (*.f64 re (+.f64 (/.f64 1/2 im) (/.f64 -1/4 im)))))) (sqrt.f64 im))
(+.f64 (*.f64 -1/4 (*.f64 (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 3)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (sqrt.f64 im) (+.f64 (*.f64 1/2 (*.f64 re (sqrt.f64 (/.f64 1 im)))) (*.f64 1/2 (*.f64 (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 im)))))))
(fma.f64 -1/4 (*.f64 (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2)) (*.f64 (pow.f64 re 3) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (sqrt.f64 im) (*.f64 1/2 (+.f64 (*.f64 re (sqrt.f64 (/.f64 1 im))) (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 (*.f64 re re) (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2))))))))
(fma.f64 -1/4 (*.f64 (pow.f64 re 3) (*.f64 (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (fma.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (+.f64 re (*.f64 (*.f64 re re) (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2))))) (sqrt.f64 im)))
(fma.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (+.f64 re (*.f64 re (*.f64 re (+.f64 (/.f64 1/2 im) (/.f64 -1/4 im)))))) (fma.f64 (+.f64 (/.f64 1/2 im) (/.f64 -1/4 im)) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 3))) (*.f64 (pow.f64 re 3) -1/4)) (sqrt.f64 im)))
(*.f64 (sqrt.f64 2) (sqrt.f64 re))
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 re)) (*.f64 1/4 (*.f64 (/.f64 (pow.f64 im 2) (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))))
(fma.f64 (sqrt.f64 2) (sqrt.f64 re) (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 (*.f64 im im) (sqrt.f64 2)))))
(fma.f64 (sqrt.f64 2) (sqrt.f64 re) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 1/4 (/.f64 (*.f64 im im) (sqrt.f64 2)))))
(fma.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 1/4 (*.f64 (/.f64 im (sqrt.f64 2)) im)) (*.f64 (sqrt.f64 2) (sqrt.f64 re)))
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 re)) (+.f64 (*.f64 -1/2 (*.f64 (/.f64 (*.f64 (+.f64 (*.f64 1/8 (/.f64 1 (pow.f64 re 3))) (pow.f64 (*.f64 1/4 (*.f64 (/.f64 1 (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) 2)) (pow.f64 im 4)) (sqrt.f64 2)) (sqrt.f64 (/.f64 1 re)))) (*.f64 1/4 (*.f64 (/.f64 (pow.f64 im 2) (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))))))
(fma.f64 (sqrt.f64 2) (sqrt.f64 re) (fma.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 1/4 (*.f64 (/.f64 1 (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) 2)) (/.f64 (sqrt.f64 2) (pow.f64 im 4)))) (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 (*.f64 im im) (sqrt.f64 2))))))
(fma.f64 (sqrt.f64 2) (sqrt.f64 re) (fma.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 1/4 (sqrt.f64 2))) 2)) (/.f64 (sqrt.f64 2) (pow.f64 im 4)))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 1/4 (/.f64 (*.f64 im im) (sqrt.f64 2))))))
(fma.f64 (sqrt.f64 2) (sqrt.f64 re) (fma.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 -1/2 (/.f64 (/.f64 (sqrt.f64 2) (pow.f64 im 4)) (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 1/4 (sqrt.f64 2))) 2)))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 1/4 (*.f64 (/.f64 im (sqrt.f64 2)) im)))))
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 re)) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (*.f64 -1/4 (/.f64 (+.f64 (*.f64 1/8 (/.f64 1 (pow.f64 re 3))) (pow.f64 (*.f64 1/4 (*.f64 (/.f64 1 (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) 2)) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 re 2))))) (pow.f64 im 6)) (sqrt.f64 2)) (sqrt.f64 (/.f64 1 re)))) (+.f64 (*.f64 -1/2 (*.f64 (/.f64 (*.f64 (+.f64 (*.f64 1/8 (/.f64 1 (pow.f64 re 3))) (pow.f64 (*.f64 1/4 (*.f64 (/.f64 1 (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) 2)) (pow.f64 im 4)) (sqrt.f64 2)) (sqrt.f64 (/.f64 1 re)))) (*.f64 1/4 (*.f64 (/.f64 (pow.f64 im 2) (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))))))
(fma.f64 (sqrt.f64 2) (sqrt.f64 re) (fma.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (+.f64 (/.f64 1/16 (pow.f64 re 5)) (*.f64 1/4 (/.f64 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 1/4 (*.f64 (/.f64 1 (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) 2)) (*.f64 (*.f64 re re) (pow.f64 (sqrt.f64 2) 2))))) (/.f64 (sqrt.f64 2) (pow.f64 im 6)))) (fma.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 1/4 (*.f64 (/.f64 1 (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) 2)) (/.f64 (sqrt.f64 2) (pow.f64 im 4)))) (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 (*.f64 im im) (sqrt.f64 2)))))))
(+.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 6) (/.f64 (sqrt.f64 2) (-.f64 (/.f64 1/16 (pow.f64 re 5)) (*.f64 -1/8 (/.f64 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 1/4 (sqrt.f64 2))) 2)) (*.f64 re re))))))) (*.f64 -1/2 (/.f64 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 1/4 (sqrt.f64 2))) 2)) (/.f64 (sqrt.f64 2) (pow.f64 im 4)))))) (fma.f64 (sqrt.f64 2) (sqrt.f64 re) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 1/4 (/.f64 (*.f64 im im) (sqrt.f64 2))))))
(fma.f64 (sqrt.f64 (/.f64 1 re)) (fma.f64 1/2 (*.f64 (pow.f64 im 6) (/.f64 (+.f64 (/.f64 1/16 (pow.f64 re 5)) (*.f64 1/8 (/.f64 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 1/4 (sqrt.f64 2))) 2)) (*.f64 re re)))) (sqrt.f64 2))) (/.f64 -1/2 (/.f64 (/.f64 (sqrt.f64 2) (pow.f64 im 4)) (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 1/4 (sqrt.f64 2))) 2))))) (fma.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 1/4 (*.f64 (/.f64 im (sqrt.f64 2)) im)) (*.f64 (sqrt.f64 2) (sqrt.f64 re))))

localize6.0ms (0.1%)

Compiler

Compiled 17 to 11 computations (35.3% saved)

localize10.0ms (0.1%)

Compiler

Compiled 23 to 15 computations (34.8% saved)

localize9.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(sqrt.f64 (*.f64 2 (-.f64 re im)))
0.0b
(sqrt.f64 (*.f64 2 (-.f64 re im)))
Compiler

Compiled 28 to 15 computations (46.4% saved)

series6.0ms (0.1%)

Counts
1 → 8
Calls

6 calls:

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

rewrite44.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
778×pow1_binary64
726×add-log-exp_binary64
725×log1p-expm1-u_binary64
725×expm1-log1p-u_binary64
710×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify45.0ms (0.5%)

Algorithm
egg-herbie
Rules
660×associate-/r*_binary64
648×associate-*l/_binary64
601×distribute-rgt-out_binary64
584×associate-/r/_binary64
525×associate-*r/_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
070363
1185363
2561347
32380323
46381319
Stop Event
node limit
Counts
30 → 37
Calls
Call 1
Inputs
(*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -1)) (sqrt.f64 im))
(+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -1)) (sqrt.f64 im)))
(+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 -1/8 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 2)) (pow.f64 (sqrt.f64 -1) 3)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -1)) (sqrt.f64 im))))
(+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 1/16 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 3)) (pow.f64 (sqrt.f64 -1) 5)) (sqrt.f64 (/.f64 1 (pow.f64 im 5))))) (+.f64 (*.f64 -1/8 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 2)) (pow.f64 (sqrt.f64 -1) 3)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -1)) (sqrt.f64 im)))))
(*.f64 (sqrt.f64 2) (sqrt.f64 re))
(+.f64 (*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re)))) (*.f64 (sqrt.f64 2) (sqrt.f64 re)))
(+.f64 (*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re)))) (+.f64 (*.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) (*.f64 (sqrt.f64 2) (sqrt.f64 re))))
(+.f64 (*.f64 -1/16 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) (+.f64 (*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re)))) (+.f64 (*.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) (*.f64 (sqrt.f64 2) (sqrt.f64 re)))))
Outputs
(*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -1)) (sqrt.f64 im))
(*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1) (sqrt.f64 im)))
(+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -1)) (sqrt.f64 im)))
(fma.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 -1) re)) (sqrt.f64 (/.f64 1 im))) (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1) (sqrt.f64 im))))
(fma.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1) (sqrt.f64 im)) (*.f64 1/2 (*.f64 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -1)) re) (sqrt.f64 (/.f64 1 im)))))
(fma.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1) (sqrt.f64 im)) (/.f64 (*.f64 (*.f64 (sqrt.f64 2) 1/2) re) (/.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 im)))))
(fma.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1) (sqrt.f64 im)) (*.f64 (*.f64 (/.f64 re (sqrt.f64 -1)) (sqrt.f64 2)) (*.f64 1/2 (sqrt.f64 (/.f64 1 im)))))
(*.f64 (sqrt.f64 2) (+.f64 (/.f64 (*.f64 re (*.f64 1/2 (sqrt.f64 (/.f64 1 im)))) (sqrt.f64 -1)) (*.f64 (sqrt.f64 -1) (sqrt.f64 im))))
(+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 -1/8 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 2)) (pow.f64 (sqrt.f64 -1) 3)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -1)) (sqrt.f64 im))))
(fma.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 -1) re)) (sqrt.f64 (/.f64 1 im))) (fma.f64 -1/8 (*.f64 (/.f64 (sqrt.f64 2) (/.f64 (pow.f64 (sqrt.f64 -1) 3) (*.f64 re re))) (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1) (sqrt.f64 im)))))
(fma.f64 1/2 (*.f64 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -1)) re) (sqrt.f64 (/.f64 1 im))) (fma.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1) (sqrt.f64 im)) (*.f64 -1/8 (*.f64 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -1)) (/.f64 (*.f64 re re) -1)) (sqrt.f64 (/.f64 1 (pow.f64 im 3)))))))
(fma.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 3))) (*.f64 1/8 (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 -1) (*.f64 re re)))) (fma.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1) (sqrt.f64 im)) (/.f64 (*.f64 (*.f64 (sqrt.f64 2) 1/2) re) (/.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 im))))))
(fma.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1) (sqrt.f64 im)) (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -1)) (+.f64 (*.f64 re (*.f64 1/2 (sqrt.f64 (/.f64 1 im)))) (*.f64 (*.f64 (/.f64 re -1) re) (*.f64 -1/8 (sqrt.f64 (/.f64 1 (pow.f64 im 3))))))))
(+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 1/16 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 3)) (pow.f64 (sqrt.f64 -1) 5)) (sqrt.f64 (/.f64 1 (pow.f64 im 5))))) (+.f64 (*.f64 -1/8 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 2)) (pow.f64 (sqrt.f64 -1) 3)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -1)) (sqrt.f64 im)))))
(fma.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 -1) re)) (sqrt.f64 (/.f64 1 im))) (fma.f64 1/16 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 3)) (pow.f64 (sqrt.f64 -1) 5)) (sqrt.f64 (/.f64 1 (pow.f64 im 5)))) (fma.f64 -1/8 (*.f64 (/.f64 (sqrt.f64 2) (/.f64 (pow.f64 (sqrt.f64 -1) 3) (*.f64 re re))) (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1) (sqrt.f64 im))))))
(fma.f64 1/2 (*.f64 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -1)) re) (sqrt.f64 (/.f64 1 im))) (fma.f64 1/16 (*.f64 (/.f64 (pow.f64 re 3) (/.f64 (pow.f64 (sqrt.f64 -1) 5) (sqrt.f64 2))) (sqrt.f64 (/.f64 1 (pow.f64 im 5)))) (fma.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1) (sqrt.f64 im)) (*.f64 -1/8 (*.f64 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -1)) (/.f64 (*.f64 re re) -1)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))))))
(fma.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 5))) (/.f64 (*.f64 (*.f64 (sqrt.f64 2) 1/16) (pow.f64 re 3)) (pow.f64 (sqrt.f64 -1) 5)) (fma.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 3))) (*.f64 1/8 (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 -1) (*.f64 re re)))) (fma.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1) (sqrt.f64 im)) (/.f64 (*.f64 (*.f64 (sqrt.f64 2) 1/2) re) (/.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 im)))))))
(fma.f64 1/16 (*.f64 (*.f64 (/.f64 (pow.f64 re 3) (pow.f64 (sqrt.f64 -1) 5)) (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 5)))) (fma.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1) (sqrt.f64 im)) (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -1)) (+.f64 (*.f64 re (*.f64 1/2 (sqrt.f64 (/.f64 1 im)))) (*.f64 (*.f64 (/.f64 re -1) re) (*.f64 -1/8 (sqrt.f64 (/.f64 1 (pow.f64 im 3)))))))))
(+.f64 (*.f64 (sqrt.f64 2) (+.f64 (*.f64 (sqrt.f64 -1) (sqrt.f64 im)) (/.f64 (*.f64 (pow.f64 re 3) (*.f64 1/16 (sqrt.f64 (/.f64 1 (pow.f64 im 5))))) (pow.f64 (sqrt.f64 -1) 5)))) (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -1)) (+.f64 (*.f64 re (*.f64 1/2 (sqrt.f64 (/.f64 1 im)))) (*.f64 (*.f64 (/.f64 re -1) re) (*.f64 -1/8 (sqrt.f64 (/.f64 1 (pow.f64 im 3))))))))
(*.f64 (sqrt.f64 2) (sqrt.f64 re))
(+.f64 (*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re)))) (*.f64 (sqrt.f64 2) (sqrt.f64 re)))
(fma.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re))) (*.f64 (sqrt.f64 2) (sqrt.f64 re)))
(fma.f64 (sqrt.f64 2) (sqrt.f64 re) (*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re)))))
(*.f64 (sqrt.f64 2) (+.f64 (sqrt.f64 re) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im -1/2))))
(*.f64 (sqrt.f64 2) (+.f64 (*.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 re))) im) (sqrt.f64 re)))
(+.f64 (*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re)))) (+.f64 (*.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) (*.f64 (sqrt.f64 2) (sqrt.f64 re))))
(fma.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re))) (fma.f64 -1/8 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) (*.f64 (sqrt.f64 2) (sqrt.f64 re))))
(fma.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re))) (fma.f64 (sqrt.f64 2) (sqrt.f64 re) (*.f64 -1/8 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 im im))))))
(fma.f64 (sqrt.f64 2) (sqrt.f64 re) (*.f64 (sqrt.f64 2) (+.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im -1/2)) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 -1/8 (*.f64 im im))))))
(*.f64 (sqrt.f64 2) (+.f64 (sqrt.f64 re) (*.f64 im (+.f64 (*.f64 (*.f64 im (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) -1/8) (*.f64 -1/2 (sqrt.f64 (/.f64 1 re)))))))
(+.f64 (*.f64 -1/16 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) (+.f64 (*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re)))) (+.f64 (*.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) (*.f64 (sqrt.f64 2) (sqrt.f64 re)))))
(fma.f64 -1/16 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (sqrt.f64 (/.f64 1 (pow.f64 re 5)))) (fma.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re))) (fma.f64 -1/8 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) (*.f64 (sqrt.f64 2) (sqrt.f64 re)))))
(fma.f64 -1/16 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (sqrt.f64 (/.f64 1 (pow.f64 re 5)))) (fma.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re))) (fma.f64 (sqrt.f64 2) (sqrt.f64 re) (*.f64 -1/8 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 im im)))))))
(+.f64 (*.f64 (sqrt.f64 2) (+.f64 (sqrt.f64 re) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 -1/8 (*.f64 im im))))) (*.f64 (sqrt.f64 2) (+.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im -1/2)) (*.f64 (pow.f64 im 3) (*.f64 -1/16 (sqrt.f64 (/.f64 1 (pow.f64 re 5))))))))
(*.f64 (sqrt.f64 2) (+.f64 (*.f64 im (+.f64 (*.f64 (*.f64 im (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) -1/8) (*.f64 -1/2 (sqrt.f64 (/.f64 1 re))))) (+.f64 (sqrt.f64 re) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (*.f64 (pow.f64 im 3) -1/16)))))
(*.f64 (sqrt.f64 2) (+.f64 (+.f64 (sqrt.f64 re) (*.f64 im (*.f64 -1/2 (sqrt.f64 (/.f64 1 re))))) (*.f64 (*.f64 im im) (+.f64 (*.f64 -1/8 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (*.f64 (*.f64 im (sqrt.f64 (/.f64 1 (pow.f64 re 5)))) -1/16)))))

localize16.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
16.1b
(sqrt.f64 (*.f64 2 (*.f64 (*.f64 (/.f64 im re) im) -1/2)))
0.1b
(*.f64 (/.f64 im re) im)
0.1b
(*.f64 (/.f64 im re) im)
16.1b
(sqrt.f64 (*.f64 2 (*.f64 (*.f64 (/.f64 im re) im) -1/2)))
Compiler

Compiled 53 to 25 computations (52.8% saved)

series8.0ms (0.1%)

Counts
2 → 36
Calls

12 calls:

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

rewrite53.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
544×log-prod_binary64
394×exp-prod_binary64
352×prod-exp_binary64
305×pow-prod-down_binary64
259×pow2_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify68.0ms (0.7%)

Algorithm
egg-herbie
Rules
650×fma-neg_binary64
645×fma-def_binary64
569×associate-*r/_binary64
488×associate-/l/_binary64
396×associate-/r/_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
014344
128344
265344
3151344
4341344
51008344
61960344
74695344
85495344
96288344
107562344
Stop Event
node limit
Counts
117 → 87
Calls
Call 1
Inputs
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
Outputs
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 im (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 im (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 im (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 im (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 im (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 im (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 im (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 im (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(neg.f64 (*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 (*.f64 (sqrt.f64 -1) im)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 im)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (neg.f64 (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 -1) (*.f64 im (neg.f64 (sqrt.f64 (/.f64 1 re)))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(neg.f64 (*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 (*.f64 (sqrt.f64 -1) im)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 im)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (neg.f64 (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 -1) (*.f64 im (neg.f64 (sqrt.f64 (/.f64 1 re)))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(neg.f64 (*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 (*.f64 (sqrt.f64 -1) im)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 im)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (neg.f64 (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 -1) (*.f64 im (neg.f64 (sqrt.f64 (/.f64 1 re)))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(neg.f64 (*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 (*.f64 (sqrt.f64 -1) im)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 im)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (neg.f64 (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 -1) (*.f64 im (neg.f64 (sqrt.f64 (/.f64 1 re)))))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))

eval149.0ms (1.5%)

Compiler

Compiled 6577 to 4482 computations (31.9% saved)

prune83.0ms (0.9%)

Pruning

22 alts after pruning (16 fresh and 6 done)

PrunedKeptTotal
New30411315
Fresh257
Picked011
Done055
Total30622328
Error
4.3b
Counts
328 → 22
Alt Table
Click to see full alt table
StatusErrorProgram
42.4b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
44.5b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (pow.f64 (sqrt.f64 im) 2))))
44.5b
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
56.0b
(*.f64 1/2 (exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/6)) 3)))
52.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (*.f64 (/.f64 im re) im) -1/2))))
55.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (/.f64 1 (/.f64 re (*.f64 im im))) -1/2))))
55.6b
(*.f64 1/2 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/2))
12.5b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))
45.1b
(*.f64 1/2 (*.f64 (sqrt.f64 2) (sqrt.f64 (-.f64 re im))))
45.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 re im))))
62.1b
(*.f64 1/2 (pow.f64 (exp.f64 (sqrt.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 (*.f64 im im) re) -1))))) (sqrt.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 (*.f64 im im) re) -1))))))
48.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (-.f64 (/.f64 (*.f64 re re) (/.f64 im -1/2)) im)))))
49.0b
(*.f64 1/2 (*.f64 2 (sqrt.f64 re)))
56.2b
(*.f64 1/2 (pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 (*.f64 im im) re) -1)))) 2)) (cbrt.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 (*.f64 im im) re) -1))))))
60.7b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (neg.f64 re)))))
46.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (cbrt.f64 (pow.f64 (hypot.f64 re im) 3))))))
55.6b
(*.f64 1/2 (pow.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/4) 2))
45.1b
(*.f64 1/2 (pow.f64 (pow.f64 (*.f64 2 (-.f64 re im)) 1/4) 2))
12.7b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (pow.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) 2))))
56.0b
(*.f64 1/2 (pow.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/6) 3))
31.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (sqrt.f64 re) (sqrt.f64 re) (hypot.f64 re im)))))
47.3b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im))))
Compiler

Compiled 552 to 431 computations (21.9% saved)

localize28.0ms (0.3%)

Local error

Found 6 expressions with local error:

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

Compiled 53 to 17 computations (67.9% saved)

series21.0ms (0.2%)

Counts
2 → 20
Calls

12 calls:

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

rewrite73.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
775×pow1_binary64
712×add-log-exp_binary64
712×log1p-expm1-u_binary64
712×expm1-log1p-u_binary64
694×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify73.0ms (0.8%)

Algorithm
egg-herbie
Rules
654×unswap-sqr_binary64
309×fma-def_binary64
307×associate-*r*_binary64
287×distribute-rgt-in_binary64
285×distribute-lft-in_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
088469
1247426
2760418
33448409
46371409
Stop Event
node limit
Counts
62 → 77
Calls
Call 1
Inputs
im
re
(*.f64 -1 re)
(*.f64 2 re)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 2 re))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 2 re) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 (*.f64 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 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im)))
(*.f64 -1 im)
(+.f64 re (*.f64 -1 im))
(+.f64 re (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 re (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))))
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re))
(+.f64 (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)))
(+.f64 (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2))) (+.f64 (*.f64 -1/2 (*.f64 (*.f64 (+.f64 (*.f64 1/8 (/.f64 1 (pow.f64 re 3))) (pow.f64 (*.f64 1/4 (*.f64 (/.f64 1 (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) 2)) (pow.f64 im 4)) (sqrt.f64 (/.f64 1 re)))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re))))
(+.f64 (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2))) (+.f64 (*.f64 -1/2 (*.f64 (*.f64 (+.f64 (*.f64 1/8 (/.f64 1 (pow.f64 re 3))) (pow.f64 (*.f64 1/4 (*.f64 (/.f64 1 (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) 2)) (pow.f64 im 4)) (sqrt.f64 (/.f64 1 re)))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (*.f64 -1/4 (/.f64 (+.f64 (*.f64 1/8 (/.f64 1 (pow.f64 re 3))) (pow.f64 (*.f64 1/4 (*.f64 (/.f64 1 (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) 2)) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 re 2))))) (pow.f64 im 6)) (sqrt.f64 (/.f64 1 re)))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)))))
Outputs
im
re
(*.f64 -1 re)
(neg.f64 re)
(*.f64 2 re)
(*.f64 re 2)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 2 re))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (*.f64 re 2))
(fma.f64 re 2 (*.f64 1/2 (/.f64 im (/.f64 re im))))
(fma.f64 re 2 (*.f64 1/2 (*.f64 (/.f64 im re) im)))
(fma.f64 re 2 (*.f64 (/.f64 1/2 re) (*.f64 im im)))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 2 re) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (fma.f64 2 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(fma.f64 1/2 (/.f64 im (/.f64 re im)) (fma.f64 re 2 (/.f64 -1/8 (/.f64 (pow.f64 re 3) (pow.f64 im 4)))))
(fma.f64 re 2 (fma.f64 1/2 (*.f64 (/.f64 im re) im) (/.f64 (pow.f64 im 4) (/.f64 (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 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 (*.f64 2 re) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 2 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(fma.f64 1/2 (/.f64 im (/.f64 re im)) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 re 2 (/.f64 -1/8 (/.f64 (pow.f64 re 3) (pow.f64 im 4))))))
(fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 re 2 (fma.f64 1/2 (*.f64 (/.f64 im re) im) (/.f64 (pow.f64 im 4) (/.f64 (pow.f64 re 3) -1/8)))))
(fma.f64 1/2 (*.f64 (/.f64 im re) im) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 re 2 (/.f64 (pow.f64 im 6) (/.f64 (pow.f64 re 5) 1/16)))))
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))
(fma.f64 1/2 (*.f64 (/.f64 re im) re) (+.f64 im re))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im)))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 (*.f64 re re) im) (+.f64 im re)))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (+.f64 im (fma.f64 1/2 (/.f64 re (/.f64 im re)) re)))
(+.f64 im (fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 re (/.f64 im re)) re)))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (*.f64 (/.f64 re im) re) (+.f64 im re)))
(*.f64 -1 im)
(neg.f64 im)
(+.f64 re (*.f64 -1 im))
(+.f64 re (neg.f64 im))
(-.f64 re im)
(+.f64 re (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(+.f64 re (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im)))
(+.f64 re (-.f64 (*.f64 (/.f64 re (/.f64 im re)) -1/2) im))
(fma.f64 (/.f64 re (/.f64 im re)) -1/2 (-.f64 re im))
(fma.f64 (/.f64 -1/2 im) (*.f64 re re) (-.f64 re im))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 re (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))))
(fma.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (+.f64 re (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))))
(+.f64 (-.f64 (*.f64 (/.f64 re (/.f64 im re)) -1/2) im) (fma.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) 1/8 re))
(fma.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) 1/8 (fma.f64 (/.f64 re (/.f64 im re)) -1/2 (-.f64 re im)))
(-.f64 (fma.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) 1/8 re) (fma.f64 1/2 (*.f64 (/.f64 re im) re) im))
(fma.f64 (*.f64 (/.f64 re im) re) -1/2 (-.f64 (fma.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) 1/8 re) im))
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re))
(*.f64 2 (sqrt.f64 re))
(+.f64 (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)))
(fma.f64 1/4 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)))
(fma.f64 1/4 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (*.f64 2 (sqrt.f64 re)))
(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 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 im (*.f64 im 1/4))))
(+.f64 (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2))) (+.f64 (*.f64 -1/2 (*.f64 (*.f64 (+.f64 (*.f64 1/8 (/.f64 1 (pow.f64 re 3))) (pow.f64 (*.f64 1/4 (*.f64 (/.f64 1 (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) 2)) (pow.f64 im 4)) (sqrt.f64 (/.f64 1 re)))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re))))
(fma.f64 1/4 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (fma.f64 -1/2 (*.f64 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 (*.f64 1/4 (/.f64 1 (sqrt.f64 2))) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2)) (*.f64 (pow.f64 im 4) (sqrt.f64 (/.f64 1 re)))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re))))
(fma.f64 1/4 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (fma.f64 2 (sqrt.f64 re) (*.f64 -1/2 (*.f64 (pow.f64 im 4) (*.f64 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 1/4 (sqrt.f64 2))) 2)) (sqrt.f64 (/.f64 1 re)))))))
(fma.f64 -1/2 (*.f64 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 1/4 (sqrt.f64 2))) 2)) (*.f64 (pow.f64 im 4) (sqrt.f64 (/.f64 1 re)))) (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) (fma.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 im (*.f64 im 1/4)) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (pow.f64 im 4) (*.f64 -1/2 (*.f64 (/.f64 1 (pow.f64 re 3)) (+.f64 1/8 (*.f64 (/.f64 1/4 (sqrt.f64 2)) (/.f64 1/4 (sqrt.f64 2))))))))))
(+.f64 (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2))) (+.f64 (*.f64 -1/2 (*.f64 (*.f64 (+.f64 (*.f64 1/8 (/.f64 1 (pow.f64 re 3))) (pow.f64 (*.f64 1/4 (*.f64 (/.f64 1 (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) 2)) (pow.f64 im 4)) (sqrt.f64 (/.f64 1 re)))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (*.f64 -1/4 (/.f64 (+.f64 (*.f64 1/8 (/.f64 1 (pow.f64 re 3))) (pow.f64 (*.f64 1/4 (*.f64 (/.f64 1 (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) 2)) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 re 2))))) (pow.f64 im 6)) (sqrt.f64 (/.f64 1 re)))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)))))
(fma.f64 1/4 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (fma.f64 -1/2 (*.f64 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 (*.f64 1/4 (/.f64 1 (sqrt.f64 2))) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2)) (*.f64 (pow.f64 im 4) (sqrt.f64 (/.f64 1 re)))) (fma.f64 1/2 (*.f64 (-.f64 (/.f64 1/16 (pow.f64 re 5)) (/.f64 (*.f64 -1/4 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 (*.f64 1/4 (/.f64 1 (sqrt.f64 2))) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2))) (*.f64 (*.f64 re re) (pow.f64 (sqrt.f64 2) 2)))) (*.f64 (pow.f64 im 6) (sqrt.f64 (/.f64 1 re)))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)))))
(+.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 im 4) (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 1/4 (sqrt.f64 2))) 2)))) (*.f64 (*.f64 1/2 (pow.f64 im 6)) (-.f64 (/.f64 1/16 (pow.f64 re 5)) (*.f64 -1/8 (/.f64 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 1/4 (sqrt.f64 2))) 2)) (*.f64 re re))))))) (fma.f64 1/4 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (*.f64 2 (sqrt.f64 re))))
(fma.f64 (sqrt.f64 (/.f64 1 re)) (fma.f64 -1/2 (*.f64 (pow.f64 im 4) (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 1/4 (sqrt.f64 2))) 2))) (*.f64 (+.f64 (/.f64 1/16 (pow.f64 re 5)) (*.f64 1/8 (/.f64 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 1/4 (sqrt.f64 2))) 2)) (*.f64 re re)))) (*.f64 1/2 (pow.f64 im 6)))) (fma.f64 2 (sqrt.f64 re) (*.f64 1/4 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))))))
(fma.f64 (sqrt.f64 (/.f64 1 re)) (fma.f64 -1/2 (*.f64 (pow.f64 im 4) (*.f64 (/.f64 1 (pow.f64 re 3)) (+.f64 1/8 (*.f64 (/.f64 1/4 (sqrt.f64 2)) (/.f64 1/4 (sqrt.f64 2)))))) (*.f64 (pow.f64 im 6) (*.f64 1/2 (+.f64 (/.f64 1/16 (pow.f64 re 5)) (*.f64 1/8 (/.f64 (*.f64 (/.f64 1 (pow.f64 re 3)) (+.f64 1/8 (*.f64 (/.f64 1/4 (sqrt.f64 2)) (/.f64 1/4 (sqrt.f64 2))))) (*.f64 re re))))))) (fma.f64 2 (sqrt.f64 re) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 im (*.f64 im 1/4)))))

localize16.0ms (0.2%)

Compiler

Compiled 18 to 14 computations (22.2% saved)

localize41.0ms (0.4%)

Local error

Found 6 expressions with local error:

NewErrorProgram
16.1b
(sqrt.f64 (*.f64 2 (*.f64 (/.f64 1 (/.f64 re (*.f64 im im))) -1/2)))
10.7b
(/.f64 re (*.f64 im im))
0.3b
(/.f64 1 (/.f64 re (*.f64 im im)))
0.3b
(/.f64 1 (/.f64 re (*.f64 im im)))
10.7b
(/.f64 re (*.f64 im im))
16.1b
(sqrt.f64 (*.f64 2 (*.f64 (/.f64 1 (/.f64 re (*.f64 im im))) -1/2)))
Compiler

Compiled 69 to 36 computations (47.8% saved)

series11.0ms (0.1%)

Counts
3 → 60
Calls

18 calls:

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

rewrite103.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
581×log-prod_binary64
441×exp-prod_binary64
324×pow-prod-down_binary64
288×pow2_binary64
239×pow-unpow_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01232
125226
2306526
Stop Event
node limit
Counts
3 → 151
Calls
Call 1
Inputs
(sqrt.f64 (*.f64 2 (*.f64 (/.f64 1 (/.f64 re (*.f64 im im))) -1/2)))
(/.f64 re (*.f64 im im))
(/.f64 1 (/.f64 re (*.f64 im im)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (*.f64 (/.f64 im (/.f64 re im)) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (*.f64 (/.f64 im (/.f64 re im)) -1)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (*.f64 (/.f64 im (/.f64 re im)) -1))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (*.f64 (/.f64 im (/.f64 re im)) -1))))) (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (*.f64 (/.f64 im (/.f64 re im)) -1))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (sqrt.f64 (*.f64 (/.f64 im (/.f64 re im)) -1)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (*.f64 (/.f64 im (/.f64 re im)) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (/.f64 im (/.f64 re im)) -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (/.f64 im (/.f64 re im)) -1)) (pow.f64 (*.f64 (/.f64 im (/.f64 re im)) -1) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (/.f64 im (/.f64 re im)) -1) 1/6) (cbrt.f64 (*.f64 (/.f64 im (/.f64 re im)) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 -1/2) (/.f64 (sqrt.f64 re) im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (/.f64 im (/.f64 re im)) -1) 1/4) (pow.f64 (*.f64 (/.f64 im (/.f64 re im)) -1) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 -1/2) (/.f64 (sqrt.f64 re) im)) (sqrt.f64 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 2 (/.f64 im (/.f64 re im)))) (sqrt.f64 -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 im (/.f64 re im)) -1) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (/.f64 im (/.f64 re im)) -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (E.f64) (log.f64 (sqrt.f64 (*.f64 (/.f64 im (/.f64 re im)) -1))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 im (/.f64 re im)) -1) 2) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 im (/.f64 re im)) -1) 3) 1/6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 im (/.f64 re im)) -1) 3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (/.f64 im (/.f64 re im)) -1)) 3/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 im (/.f64 re im)) -1) 1/6) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 im (/.f64 re im)) -1) 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1/2) (log.f64 (*.f64 (/.f64 im (/.f64 re im)) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 im (/.f64 re im)) -1)))) 2)) (cbrt.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 im (/.f64 re im)) -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 im (/.f64 re im)) -1))))) (sqrt.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 im (/.f64 re im)) -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (sqrt.f64 (*.f64 (/.f64 im (/.f64 re im)) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (*.f64 (/.f64 im (/.f64 re im)) -1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (sqrt.f64 (*.f64 (/.f64 im (/.f64 re im)) -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (/.f64 im (/.f64 re im)) -1) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 im (/.f64 re im)) -1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (/.f64 im (/.f64 re im)) -1)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 im (/.f64 re im)) -1))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3/2 (log.f64 (*.f64 (/.f64 im (/.f64 re im)) -1))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (/.f64 im (/.f64 re im)) -1) 1/6)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 1/4 (log.f64 (*.f64 (/.f64 im (/.f64 re im)) -1))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (/.f64 im (/.f64 re im)) -1)) 1) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (/.f64 im (/.f64 re im)) -1)) 1/2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 im (/.f64 re im)) -1))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (*.f64 (/.f64 im (/.f64 re im)) -1))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (*.f64 (/.f64 im (/.f64 re im)) -1))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 re (pow.f64 im -2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 re) (pow.f64 im -2))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 re) (pow.f64 im -2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 re) (pow.f64 im -2)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 re) (pow.f64 im -2)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 re (pow.f64 im -2)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 re (pow.f64 im -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 re (pow.f64 im -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 re (pow.f64 im -2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 re (pow.f64 im -2))) (cbrt.f64 (pow.f64 (/.f64 (sqrt.f64 re) im) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (/.f64 (sqrt.f64 re) im) 4)) (cbrt.f64 (*.f64 re (pow.f64 im -2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 re) 2) (*.f64 (cbrt.f64 re) (pow.f64 im -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 re) im) (/.f64 (sqrt.f64 re) im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 re) (*.f64 (sqrt.f64 re) (pow.f64 im -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 re) (/.f64 1 (*.f64 im (neg.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 im -2) re)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 re im) (/.f64 1 im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 re) 2) 1) (/.f64 (cbrt.f64 re) (*.f64 im im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 re) 1) (/.f64 (sqrt.f64 re) (*.f64 im im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 im) (/.f64 re im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 re) 2) im) (/.f64 (cbrt.f64 re) im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (*.f64 (cbrt.f64 im) im)) (/.f64 re (pow.f64 (cbrt.f64 im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 re) 2) (*.f64 (cbrt.f64 im) im)) (cbrt.f64 (*.f64 re (pow.f64 im -2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 re) (*.f64 (cbrt.f64 im) im)) (/.f64 (sqrt.f64 re) (pow.f64 (cbrt.f64 im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 re (pow.f64 im -2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 im (/.f64 re im)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (E.f64) (log.f64 (*.f64 re (pow.f64 im -2))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 im (/.f64 re im)) 3) -1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (sqrt.f64 re) im) 4) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (sqrt.f64 re) im) 6) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 im (/.f64 re im))) -3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 re (pow.f64 im -2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im) -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sqrt.f64 re) im) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 re 3) (pow.f64 im 6)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 im (/.f64 re im)) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 re (pow.f64 im -2)))) 2)) (cbrt.f64 (log.f64 (*.f64 re (pow.f64 im -2)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 re (pow.f64 im -2))))) (sqrt.f64 (log.f64 (*.f64 re (pow.f64 im -2)))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 re (*.f64 im (neg.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 (sqrt.f64 re) im) 4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 re) (pow.f64 im -2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 re (pow.f64 im -2)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 (sqrt.f64 re) im) 6))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 re 3) (pow.f64 im 6)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 re (pow.f64 im -2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 re (pow.f64 im -2))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 im (/.f64 re im))) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (/.f64 (sqrt.f64 re) im) 6)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 re (pow.f64 im -2)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 (sqrt.f64 re) im)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 re (pow.f64 im -2))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 re (pow.f64 im -2))) -1) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (/.f64 im (/.f64 re im))) 1) -1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 re (pow.f64 im -2))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 re (pow.f64 im -2))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 im (/.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (/.f64 im (/.f64 re im)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (/.f64 im (/.f64 re im))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 im (/.f64 re im))))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 im (/.f64 re im))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 im (/.f64 re im)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 im (/.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 im im) (/.f64 1 re))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 im (/.f64 re im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 im (/.f64 re im))) (cbrt.f64 (pow.f64 (/.f64 (sqrt.f64 re) im) -4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (/.f64 (sqrt.f64 re) im) -4)) (cbrt.f64 (/.f64 im (/.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im) (*.f64 (sqrt.f64 (/.f64 1 re)) im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (/.f64 1 (*.f64 re (neg.f64 (pow.f64 im -2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 re) (*.f64 im im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 re (pow.f64 im -2))) -2) (cbrt.f64 (/.f64 im (/.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 im 1) (/.f64 im re))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 (cbrt.f64 im) im) 1) (/.f64 (pow.f64 (cbrt.f64 im) 2) re))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 re) -2) (/.f64 (*.f64 im im) (cbrt.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 im (pow.f64 (cbrt.f64 re) 2)) (/.f64 im (cbrt.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 (cbrt.f64 im) im) (pow.f64 (cbrt.f64 re) 2)) (/.f64 (pow.f64 (cbrt.f64 im) 2) (cbrt.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 re -1/2) (/.f64 (*.f64 im im) (sqrt.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 im (sqrt.f64 re)) (/.f64 im (sqrt.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 (cbrt.f64 im) im) (sqrt.f64 re)) (/.f64 (pow.f64 (cbrt.f64 im) 2) (sqrt.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (neg.f64 re)) (*.f64 im (neg.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (/.f64 re im)) im)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 1 re) 1) (*.f64 im im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 1 re) im) im)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 1 re) (*.f64 (cbrt.f64 im) im)) (pow.f64 (cbrt.f64 im) 2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 re (pow.f64 im -2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 im (/.f64 re im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (E.f64) (log.f64 (/.f64 im (/.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (sqrt.f64 re) im) -4) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 im (/.f64 re im)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (sqrt.f64 re) im) 4) -1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (sqrt.f64 re) im) 6) -1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 im (/.f64 re im))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 re (pow.f64 im -2))) -3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sqrt.f64 re) im) -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 -1) (log.f64 (*.f64 re (pow.f64 im -2))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (neg.f64 (*.f64 re (neg.f64 (pow.f64 im -2)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 im (sqrt.f64 re)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (/.f64 im (/.f64 re im)))) 2)) (cbrt.f64 (log.f64 (/.f64 im (/.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (/.f64 im (/.f64 re im))))) (sqrt.f64 (log.f64 (/.f64 im (/.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 (sqrt.f64 re) im) -4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 im (/.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 im (/.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 im (/.f64 re im)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 im (/.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 re (pow.f64 im -2))) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 im (/.f64 re im))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (/.f64 im (/.f64 re im)) 3)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (/.f64 im (/.f64 re im)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (neg.f64 (log.f64 (/.f64 (sqrt.f64 re) im))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 re (pow.f64 im -2))) 1) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 re (pow.f64 im -2))) -1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (/.f64 im (/.f64 re im))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 im (/.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 im (/.f64 re im))))))))

simplify108.0ms (1.1%)

Algorithm
egg-herbie
Rules
650×fma-neg_binary64
645×fma-def_binary64
569×associate-*r/_binary64
563×associate-/l/_binary64
399×associate-/r/_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
015512
129512
267512
3154512
4348512
51036512
62016512
74868512
85666512
96455512
107713512
Stop Event
node limit
Counts
211 → 159
Calls
Call 1
Inputs
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(/.f64 re (pow.f64 im 2))
(/.f64 re (pow.f64 im 2))
(/.f64 re (pow.f64 im 2))
(/.f64 re (pow.f64 im 2))
(/.f64 re (pow.f64 im 2))
(/.f64 re (pow.f64 im 2))
(/.f64 re (pow.f64 im 2))
(/.f64 re (pow.f64 im 2))
(/.f64 re (pow.f64 im 2))
(/.f64 re (pow.f64 im 2))
(/.f64 re (pow.f64 im 2))
(/.f64 re (pow.f64 im 2))
(/.f64 re (pow.f64 im 2))
(/.f64 re (pow.f64 im 2))
(/.f64 re (pow.f64 im 2))
(/.f64 re (pow.f64 im 2))
(/.f64 re (pow.f64 im 2))
(/.f64 re (pow.f64 im 2))
(/.f64 re (pow.f64 im 2))
(/.f64 re (pow.f64 im 2))
(/.f64 re (pow.f64 im 2))
(/.f64 re (pow.f64 im 2))
(/.f64 re (pow.f64 im 2))
(/.f64 re (pow.f64 im 2))
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
Outputs
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(neg.f64 (*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 (*.f64 (sqrt.f64 -1) im)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 im)))
(*.f64 (sqrt.f64 -1) (neg.f64 (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(neg.f64 (*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 (*.f64 (sqrt.f64 -1) im)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 im)))
(*.f64 (sqrt.f64 -1) (neg.f64 (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(neg.f64 (*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 (*.f64 (sqrt.f64 -1) im)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 im)))
(*.f64 (sqrt.f64 -1) (neg.f64 (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(neg.f64 (*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 (*.f64 (sqrt.f64 -1) im)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 im)))
(*.f64 (sqrt.f64 -1) (neg.f64 (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(/.f64 re (pow.f64 im 2))
(/.f64 re (*.f64 im im))
(/.f64 (/.f64 re im) im)
(/.f64 re (pow.f64 im 2))
(/.f64 re (*.f64 im im))
(/.f64 (/.f64 re im) im)
(/.f64 re (pow.f64 im 2))
(/.f64 re (*.f64 im im))
(/.f64 (/.f64 re im) im)
(/.f64 re (pow.f64 im 2))
(/.f64 re (*.f64 im im))
(/.f64 (/.f64 re im) im)
(/.f64 re (pow.f64 im 2))
(/.f64 re (*.f64 im im))
(/.f64 (/.f64 re im) im)
(/.f64 re (pow.f64 im 2))
(/.f64 re (*.f64 im im))
(/.f64 (/.f64 re im) im)
(/.f64 re (pow.f64 im 2))
(/.f64 re (*.f64 im im))
(/.f64 (/.f64 re im) im)
(/.f64 re (pow.f64 im 2))
(/.f64 re (*.f64 im im))
(/.f64 (/.f64 re im) im)
(/.f64 re (pow.f64 im 2))
(/.f64 re (*.f64 im im))
(/.f64 (/.f64 re im) im)
(/.f64 re (pow.f64 im 2))
(/.f64 re (*.f64 im im))
(/.f64 (/.f64 re im) im)
(/.f64 re (pow.f64 im 2))
(/.f64 re (*.f64 im im))
(/.f64 (/.f64 re im) im)
(/.f64 re (pow.f64 im 2))
(/.f64 re (*.f64 im im))
(/.f64 (/.f64 re im) im)
(/.f64 re (pow.f64 im 2))
(/.f64 re (*.f64 im im))
(/.f64 (/.f64 re im) im)
(/.f64 re (pow.f64 im 2))
(/.f64 re (*.f64 im im))
(/.f64 (/.f64 re im) im)
(/.f64 re (pow.f64 im 2))
(/.f64 re (*.f64 im im))
(/.f64 (/.f64 re im) im)
(/.f64 re (pow.f64 im 2))
(/.f64 re (*.f64 im im))
(/.f64 (/.f64 re im) im)
(/.f64 re (pow.f64 im 2))
(/.f64 re (*.f64 im im))
(/.f64 (/.f64 re im) im)
(/.f64 re (pow.f64 im 2))
(/.f64 re (*.f64 im im))
(/.f64 (/.f64 re im) im)
(/.f64 re (pow.f64 im 2))
(/.f64 re (*.f64 im im))
(/.f64 (/.f64 re im) im)
(/.f64 re (pow.f64 im 2))
(/.f64 re (*.f64 im im))
(/.f64 (/.f64 re im) im)
(/.f64 re (pow.f64 im 2))
(/.f64 re (*.f64 im im))
(/.f64 (/.f64 re im) im)
(/.f64 re (pow.f64 im 2))
(/.f64 re (*.f64 im im))
(/.f64 (/.f64 re im) im)
(/.f64 re (pow.f64 im 2))
(/.f64 re (*.f64 im im))
(/.f64 (/.f64 re im) im)
(/.f64 re (pow.f64 im 2))
(/.f64 re (*.f64 im im))
(/.f64 (/.f64 re im) im)
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))

localize39.0ms (0.4%)

Local error

Found 6 expressions with local error:

NewErrorProgram
26.5b
(pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/6)
10.5b
(/.f64 (*.f64 im im) re)
0.3b
(pow.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/6) 3)
0.3b
(pow.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/6) 3)
10.5b
(/.f64 (*.f64 im im) re)
26.5b
(pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/6)
Compiler

Compiled 56 to 28 computations (50% saved)

series171.0ms (1.8%)

Counts
3 → 72
Calls

18 calls:

TimeVariablePointExpression
61.0ms
im
@0
(pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/6)
31.0ms
re
@0
(pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/6)
29.0ms
re
@-inf
(pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/6)
22.0ms
im
@inf
(pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/6)
14.0ms
re
@inf
(pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/6)

rewrite75.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
971×pow1_binary64
914×add-log-exp_binary64
914×log1p-expm1-u_binary64
914×expm1-log1p-u_binary64
114×add-sqr-sqrt_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify55.0ms (0.6%)

Algorithm
egg-herbie
Rules
423×distribute-rgt-in_binary64
321×distribute-lft-in_binary64
283×associate-*l*_binary64
272×exp-sum_binary64
256×associate-*r*_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
0561056
11601056
2353960
3995816
43505744
Stop Event
node limit
Counts
179 → 123
Calls
Call 1
Inputs
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(exp.f64 (*.f64 1/6 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 1/6 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 1/6 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 1/6 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re)))))
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))) 3)
(*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (*.f64 -1 (pow.f64 im 2))) (*.f64 -1 (log.f64 re))))) (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 2))
(*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (*.f64 -1 (pow.f64 im 2))) (*.f64 -1 (log.f64 re))))) (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 2))
(*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (*.f64 -1 (pow.f64 im 2))) (*.f64 -1 (log.f64 re))))) (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 2))
(*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (*.f64 -1 (pow.f64 im 2))) (*.f64 -1 (log.f64 re))))) (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 2))
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re))))) 3)
Outputs
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 re -1/6) (pow.f64 (*.f64 im (neg.f64 im)) 1/6))
(*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 re -1/6) (pow.f64 (*.f64 im (neg.f64 im)) 1/6))
(*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 re -1/6) (pow.f64 (*.f64 im (neg.f64 im)) 1/6))
(*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 re -1/6) (pow.f64 (*.f64 im (neg.f64 im)) 1/6))
(*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 re -1/6) (pow.f64 (*.f64 im (neg.f64 im)) 1/6))
(*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 re -1/6) (pow.f64 (*.f64 im (neg.f64 im)) 1/6))
(*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 re -1/6) (pow.f64 (*.f64 im (neg.f64 im)) 1/6))
(*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 re -1/6) (pow.f64 (*.f64 im (neg.f64 im)) 1/6))
(*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 re -1/6) (pow.f64 (*.f64 im (neg.f64 im)) 1/6))
(*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 re -1/6) (pow.f64 (*.f64 im (neg.f64 im)) 1/6))
(*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 re -1/6) (pow.f64 (*.f64 im (neg.f64 im)) 1/6))
(*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 re -1/6) (pow.f64 (*.f64 im (neg.f64 im)) 1/6))
(*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 re -1/6) (pow.f64 (*.f64 im (neg.f64 im)) 1/6))
(*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 re -1/6) (pow.f64 (*.f64 im (neg.f64 im)) 1/6))
(*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 re -1/6) (pow.f64 (*.f64 im (neg.f64 im)) 1/6))
(*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 re -1/6) (pow.f64 (*.f64 im (neg.f64 im)) 1/6))
(*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im))
(exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 re -1/6) (pow.f64 (*.f64 im (neg.f64 im)) 1/6))
(*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im))
(exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 re -1/6) (pow.f64 (*.f64 im (neg.f64 im)) 1/6))
(*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im))
(exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 re -1/6) (pow.f64 (*.f64 im (neg.f64 im)) 1/6))
(*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im))
(exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 re -1/6) (pow.f64 (*.f64 im (neg.f64 im)) 1/6))
(*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im))
(exp.f64 (*.f64 1/6 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 re -1/6) (pow.f64 (*.f64 im (neg.f64 im)) 1/6))
(*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im))
(exp.f64 (*.f64 1/6 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 re -1/6) (pow.f64 (*.f64 im (neg.f64 im)) 1/6))
(*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im))
(exp.f64 (*.f64 1/6 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 re -1/6) (pow.f64 (*.f64 im (neg.f64 im)) 1/6))
(*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im))
(exp.f64 (*.f64 1/6 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 re -1/6) (pow.f64 (*.f64 im (neg.f64 im)) 1/6))
(*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 re -1/6) (pow.f64 (*.f64 im (neg.f64 im)) 1/6)) 3)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im)) 3)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 re -1/6) (pow.f64 (*.f64 im (neg.f64 im)) 1/6)) 3)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im)) 3)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 re -1/6) (pow.f64 (*.f64 im (neg.f64 im)) 1/6)) 3)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im)) 3)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 re -1/6) (pow.f64 (*.f64 im (neg.f64 im)) 1/6)) 3)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im)) 3)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 re -1/6) (pow.f64 (*.f64 im (neg.f64 im)) 1/6)) 3)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im)) 3)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 re -1/6) (pow.f64 (*.f64 im (neg.f64 im)) 1/6)) 3)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im)) 3)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 re -1/6) (pow.f64 (*.f64 im (neg.f64 im)) 1/6)) 3)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im)) 3)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 re -1/6) (pow.f64 (*.f64 im (neg.f64 im)) 1/6)) 3)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im)) 3)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 re -1/6) (pow.f64 (*.f64 im (neg.f64 im)) 1/6)) 3)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im)) 3)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 re -1/6) (pow.f64 (*.f64 im (neg.f64 im)) 1/6)) 3)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im)) 3)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 re -1/6) (pow.f64 (*.f64 im (neg.f64 im)) 1/6)) 3)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im)) 3)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 re -1/6) (pow.f64 (*.f64 im (neg.f64 im)) 1/6)) 3)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im)) 3)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 1/2)
(*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (*.f64 -1 (pow.f64 im 2))) (*.f64 -1 (log.f64 re))))) (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 2))
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 re -1/6) (pow.f64 (*.f64 im (neg.f64 im)) 1/6)) 3)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im)) 3)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 1/2)
(*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (*.f64 -1 (pow.f64 im 2))) (*.f64 -1 (log.f64 re))))) (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 2))
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 re -1/6) (pow.f64 (*.f64 im (neg.f64 im)) 1/6)) 3)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im)) 3)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 1/2)
(*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (*.f64 -1 (pow.f64 im 2))) (*.f64 -1 (log.f64 re))))) (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 2))
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 re -1/6) (pow.f64 (*.f64 im (neg.f64 im)) 1/6)) 3)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im)) 3)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 1/2)
(*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (*.f64 -1 (pow.f64 im 2))) (*.f64 -1 (log.f64 re))))) (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 2))
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 re -1/6) (pow.f64 (*.f64 im (neg.f64 im)) 1/6)) 3)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im)) 3)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 re -1/6) (pow.f64 (*.f64 im (neg.f64 im)) 1/6)) 3)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im)) 3)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 re -1/6) (pow.f64 (*.f64 im (neg.f64 im)) 1/6)) 3)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im)) 3)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 re -1/6) (pow.f64 (*.f64 im (neg.f64 im)) 1/6)) 3)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im)) 3)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 re -1/6) (pow.f64 (*.f64 im (neg.f64 im)) 1/6)) 3)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im)) 3)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 re -1/6) (pow.f64 (*.f64 im (neg.f64 im)) 1/6)) 3)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im)) 3)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 re -1/6) (pow.f64 (*.f64 im (neg.f64 im)) 1/6)) 3)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im)) 3)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 re -1/6) (pow.f64 (*.f64 im (neg.f64 im)) 1/6)) 3)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im)) 3)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 re -1/6) (pow.f64 (*.f64 im (neg.f64 im)) 1/6)) 3)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im)) 3)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 1/2)

localize29.0ms (0.3%)

Local error

Found 8 expressions with local error:

NewErrorProgram
1.1b
(+.f64 re (cbrt.f64 (pow.f64 (hypot.f64 re im) 3)))
0.0b
(sqrt.f64 (*.f64 2 (+.f64 re (cbrt.f64 (pow.f64 (hypot.f64 re im) 3)))))
0.0b
(pow.f64 (hypot.f64 re im) 3)
0.0b
(hypot.f64 re im)
0.0b
(pow.f64 (hypot.f64 re im) 3)
0.0b
(sqrt.f64 (*.f64 2 (+.f64 re (cbrt.f64 (pow.f64 (hypot.f64 re im) 3)))))
1.1b
(+.f64 re (cbrt.f64 (pow.f64 (hypot.f64 re im) 3)))
39.5b
(cbrt.f64 (pow.f64 (hypot.f64 re im) 3))
Compiler

Compiled 63 to 37 computations (41.3% saved)

series15.0ms (0.2%)

Counts
4 → 80
Calls

24 calls:

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

rewrite62.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
652×prod-diff_binary64
463×log-prod_binary64
302×pow-prod-down_binary64
258×pow2_binary64
226×fma-def_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01130
124430
2279230
Stop Event
node limit
Counts
4 → 141
Calls
Call 1
Inputs
(cbrt.f64 (pow.f64 (hypot.f64 re im) 3))
(+.f64 re (cbrt.f64 (pow.f64 (hypot.f64 re im) 3)))
(sqrt.f64 (*.f64 2 (+.f64 re (cbrt.f64 (pow.f64 (hypot.f64 re im) 3)))))
(pow.f64 (hypot.f64 re im) 3)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (hypot.f64 re im))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (hypot.f64 re im))) 2)) (log.f64 (cbrt.f64 (exp.f64 (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (hypot.f64 re im)))) (log.f64 (sqrt.f64 (exp.f64 (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (hypot.f64 re im))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (hypot.f64 re im) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (hypot.f64 re im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (hypot.f64 re im)) (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (cbrt.f64 (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (hypot.f64 re im) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (hypot.f64 re im) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (hypot.f64 re im) 6) 1/6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (hypot.f64 re im) 9) 1/9)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (hypot.f64 re im) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (hypot.f64 re im)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) 3/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (hypot.f64 re im)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (hypot.f64 re im) 3/2) 2/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (hypot.f64 re im) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (hypot.f64 re im)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (hypot.f64 re im))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 2 (log.f64 (hypot.f64 re im))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (hypot.f64 re im))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (hypot.f64 re im))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 2 (log.f64 (cbrt.f64 (hypot.f64 re im)))) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x hypot.f64 re im)))) (#(struct:change #<rule egg-rr> (2) ((x hypot.f64 im re)))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (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) (-.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 (hypot.f64 re im) 3) (pow.f64 re 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 (hypot.f64 re im) 3) (pow.f64 re 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 re (hypot.f64 re im)) (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (hypot.f64 re im) 3) (pow.f64 re 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 (hypot.f64 re im) 3) (pow.f64 re 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 (hypot.f64 re im) 3) (pow.f64 re 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)) 2) 1/2)))) (#(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 (fma.f64 re re (*.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re))) (+.f64 (pow.f64 (hypot.f64 re im) 3) (pow.f64 re 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 re (hypot.f64 re im)) (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) -1)))) (#(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 (+.f64 1 (expm1.f64 re)) (exp.f64 (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 re) (+.f64 1 (expm1.f64 (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 re)) (+.f64 1 (expm1.f64 (hypot.f64 re im)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (hypot.f64 re im))) (exp.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (hypot.f64 re im)) (+.f64 1 (expm1.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (hypot.f64 re im))) (+.f64 1 (expm1.f64 re))))))) (#(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 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 exp.f64 (*.f64 (log.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 3)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 re 1 (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 (cbrt.f64 re) (pow.f64 (cbrt.f64 re) 2) (hypot.f64 re im))))) (#(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 (cbrt.f64 (hypot.f64 re im)) (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) re)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (cbrt.f64 (hypot.f64 re im)) re)))) (#(struct:change #<rule egg-rr> (2) ((x 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 log1p.f64 (expm1.f64 (+.f64 re (hypot.f64 re im))))))) (#(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 0 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))))))) (#(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 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/6) (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)) (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/6))))) (#(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 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 (*.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 2) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 3) 1/6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/6) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 3/2)))) (#(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 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 exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 3/2)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/6)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 1/4 (log.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x hypot.f64 (sqrt.f64 (*.f64 re 2)) (sqrt.f64 (*.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x hypot.f64 (sqrt.f64 (*.f64 (hypot.f64 re im) 2)) (sqrt.f64 (*.f64 re 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 expm1.f64 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (pow.f64 (hypot.f64 re im) 3))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (pow.f64 (hypot.f64 re im) 3))) 2)) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 (hypot.f64 re im) 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 (hypot.f64 re im) 3)))) (log.f64 (sqrt.f64 (exp.f64 (pow.f64 (hypot.f64 re im) 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (pow.f64 (hypot.f64 re im) 3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (hypot.f64 re im) (pow.f64 (hypot.f64 re im) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (hypot.f64 re im) 3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (hypot.f64 re im) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (hypot.f64 re im) 2) (hypot.f64 re im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (*.f64 (cbrt.f64 (hypot.f64 re im)) (pow.f64 (hypot.f64 re im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (hypot.f64 re im)) (pow.f64 (hypot.f64 re im) 5/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (hypot.f64 re im) 3/2) (pow.f64 (hypot.f64 re im) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (hypot.f64 re im) 5/2) (sqrt.f64 (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (hypot.f64 re im) 2) 1) (hypot.f64 re im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (hypot.f64 re im) (cbrt.f64 (hypot.f64 re im))) 2) (cbrt.f64 (hypot.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (hypot.f64 re im) 6))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (hypot.f64 re im) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (pow.f64 (hypot.f64 re im) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (hypot.f64 re im) 9))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 3 (log.f64 (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (hypot.f64 re im))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (hypot.f64 re im) 9)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 2 (log.f64 (hypot.f64 re im))) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3/2 (log.f64 (hypot.f64 re im))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (hypot.f64 re im) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (hypot.f64 re im) 3)))))))

simplify61.0ms (0.6%)

Algorithm
egg-herbie
Rules
795×associate-/l*_binary64
464×associate-/r*_binary64
435×fma-def_binary64
268×associate-+r+_binary64
263×associate-*l/_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02802248
19082036
234991868
Stop Event
node limit
Counts
221 → 254
Calls
Call 1
Inputs
im
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im)
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5))) im)))
re
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) re)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(*.f64 -1 re)
(+.f64 (*.f64 -1 re) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 -1 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 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)))))
re
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) re)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
im
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im)
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5))) im)))
(*.f64 -1 im)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(+.f64 (*.f64 -1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5))) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))))
im
(+.f64 re im)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im)))
(*.f64 2 re)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 2 re))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 2 re) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 (*.f64 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 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (+.f64 (*.f64 1/2 (/.f64 (+.f64 (pow.f64 (*.f64 -1/8 (pow.f64 im 4)) 2) (*.f64 1/16 (pow.f64 im 8))) (pow.f64 re 7))) (+.f64 (*.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 1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 2 re))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 2 re) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 (*.f64 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 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im)))
(*.f64 -1 im)
(+.f64 re (*.f64 -1 im))
(+.f64 re (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 re (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))))
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
(+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 2))) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im))))
(+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 2))) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 -1/4 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 3))) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))))
(*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re))
(+.f64 (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)))
(+.f64 (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2))) (+.f64 (*.f64 -1/2 (*.f64 (*.f64 (+.f64 (*.f64 1/8 (/.f64 1 (pow.f64 re 3))) (pow.f64 (*.f64 1/4 (*.f64 (/.f64 1 (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) 2)) (pow.f64 im 4)) (sqrt.f64 (/.f64 1 re)))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re))))
(+.f64 (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2))) (+.f64 (*.f64 -1/2 (*.f64 (*.f64 (+.f64 (*.f64 1/8 (/.f64 1 (pow.f64 re 3))) (pow.f64 (*.f64 1/4 (*.f64 (/.f64 1 (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) 2)) (pow.f64 im 4)) (sqrt.f64 (/.f64 1 re)))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (*.f64 -1/4 (/.f64 (+.f64 (*.f64 1/8 (/.f64 1 (pow.f64 re 3))) (pow.f64 (*.f64 1/4 (*.f64 (/.f64 1 (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) 2)) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 re 2))))) (pow.f64 im 6)) (sqrt.f64 (/.f64 1 re)))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)))))
(pow.f64 im 3)
(+.f64 (pow.f64 im 3) (*.f64 (+.f64 (*.f64 1/2 im) im) (pow.f64 re 2)))
(+.f64 (pow.f64 im 3) (+.f64 (*.f64 (+.f64 (*.f64 1/2 im) im) (pow.f64 re 2)) (*.f64 3/8 (/.f64 (pow.f64 re 4) im))))
(+.f64 (*.f64 -1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 3))) (+.f64 (pow.f64 im 3) (+.f64 (*.f64 (+.f64 (*.f64 1/2 im) im) (pow.f64 re 2)) (*.f64 3/8 (/.f64 (pow.f64 re 4) im)))))
(pow.f64 re 3)
(+.f64 (*.f64 (+.f64 (pow.f64 im 2) (*.f64 1/2 (pow.f64 im 2))) re) (pow.f64 re 3))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 im 4) re)) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 im 4) re)) (+.f64 (*.f64 (+.f64 (pow.f64 im 2) (*.f64 1/2 (pow.f64 im 2))) re) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 im 4) re)) (+.f64 (pow.f64 re 3) (*.f64 1/2 (/.f64 (pow.f64 im 4) re)))))))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 6) (pow.f64 re 3))) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 3))) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 im 6) (pow.f64 re 3))) (+.f64 (pow.f64 re 3) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 im 4) re)) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (pow.f64 im 2) (+.f64 (*.f64 -1/4 (pow.f64 im 4)) (*.f64 1/4 (pow.f64 im 4)))) (pow.f64 re 3))) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 im 4) re)) (+.f64 (*.f64 (+.f64 (pow.f64 im 2) (*.f64 1/2 (pow.f64 im 2))) re) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 im 4) re)) (*.f64 1/2 (/.f64 (pow.f64 im 4) re)))))))))))
(*.f64 -1 (pow.f64 re 3))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (pow.f64 im 2) (*.f64 1/2 (pow.f64 im 2))) re)) (*.f64 -1 (pow.f64 re 3)))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (pow.f64 im 2) (*.f64 1/2 (pow.f64 im 2))) re)) (+.f64 (*.f64 -1 (pow.f64 re 3)) (*.f64 -1 (/.f64 (+.f64 (*.f64 -1/4 (pow.f64 im 4)) (+.f64 (*.f64 1/2 (pow.f64 im 4)) (+.f64 (*.f64 1/4 (pow.f64 im 4)) (*.f64 -1/8 (pow.f64 im 4))))) re))))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (pow.f64 im 2) (*.f64 1/2 (pow.f64 im 2))) re)) (+.f64 (*.f64 -1 (pow.f64 re 3)) (+.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -1/4 (pow.f64 im 4)) (+.f64 (*.f64 1/2 (pow.f64 im 4)) (+.f64 (*.f64 1/4 (pow.f64 im 4)) (*.f64 -1/8 (pow.f64 im 4))))) re)) (*.f64 -1 (/.f64 (+.f64 (*.f64 1/16 (pow.f64 im 6)) (+.f64 (*.f64 1/8 (pow.f64 im 6)) (+.f64 (*.f64 -1/4 (pow.f64 im 6)) (*.f64 1/2 (*.f64 (+.f64 (*.f64 -1/4 (pow.f64 im 4)) (*.f64 1/4 (pow.f64 im 4))) (pow.f64 im 2)))))) (pow.f64 re 3))))))
(pow.f64 re 3)
(+.f64 (pow.f64 re 3) (*.f64 (+.f64 re (*.f64 1/2 re)) (pow.f64 im 2)))
(+.f64 (pow.f64 re 3) (+.f64 (*.f64 (+.f64 re (*.f64 1/2 re)) (pow.f64 im 2)) (*.f64 3/8 (/.f64 (pow.f64 im 4) re))))
(+.f64 (*.f64 -1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 3))) (+.f64 (pow.f64 re 3) (+.f64 (*.f64 (+.f64 re (*.f64 1/2 re)) (pow.f64 im 2)) (*.f64 3/8 (/.f64 (pow.f64 im 4) re)))))
(pow.f64 im 3)
(+.f64 (pow.f64 im 3) (*.f64 (+.f64 (pow.f64 re 2) (*.f64 1/2 (pow.f64 re 2))) im))
(+.f64 (pow.f64 im 3) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 4) im)) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 re 4) im)) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) im)) (+.f64 (*.f64 (+.f64 (pow.f64 re 2) (*.f64 1/2 (pow.f64 re 2))) im) (*.f64 -1/4 (/.f64 (pow.f64 re 4) im)))))))
(+.f64 (*.f64 -1/4 (/.f64 (pow.f64 re 6) (pow.f64 im 3))) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 re 4) im)) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) im)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 3))) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 6) (pow.f64 im 3))) (+.f64 (pow.f64 im 3) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 4) im)) (+.f64 (*.f64 (+.f64 (pow.f64 re 2) (*.f64 1/2 (pow.f64 re 2))) im) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (pow.f64 re 2) (+.f64 (*.f64 1/4 (pow.f64 re 4)) (*.f64 -1/4 (pow.f64 re 4)))) (pow.f64 im 3))) (*.f64 -1/4 (/.f64 (pow.f64 re 4) im)))))))))))
(*.f64 -1 (pow.f64 im 3))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (pow.f64 re 2) (*.f64 1/2 (pow.f64 re 2))) im)) (*.f64 -1 (pow.f64 im 3)))
(+.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 1/4 (pow.f64 re 4)) (+.f64 (*.f64 1/2 (pow.f64 re 4)) (+.f64 (*.f64 -1/4 (pow.f64 re 4)) (*.f64 -1/8 (pow.f64 re 4))))) im)) (+.f64 (*.f64 -1 (*.f64 (+.f64 (pow.f64 re 2) (*.f64 1/2 (pow.f64 re 2))) im)) (*.f64 -1 (pow.f64 im 3))))
(+.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -1/4 (pow.f64 re 6)) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 re 2) (+.f64 (*.f64 1/4 (pow.f64 re 4)) (*.f64 -1/4 (pow.f64 re 4))))) (+.f64 (*.f64 1/8 (pow.f64 re 6)) (*.f64 1/16 (pow.f64 re 6))))) (pow.f64 im 3))) (+.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 1/4 (pow.f64 re 4)) (+.f64 (*.f64 1/2 (pow.f64 re 4)) (+.f64 (*.f64 -1/4 (pow.f64 re 4)) (*.f64 -1/8 (pow.f64 re 4))))) im)) (+.f64 (*.f64 -1 (*.f64 (+.f64 (pow.f64 re 2) (*.f64 1/2 (pow.f64 re 2))) im)) (*.f64 -1 (pow.f64 im 3)))))
Outputs
im
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im)
(fma.f64 1/2 (/.f64 (*.f64 re re) im) im)
(fma.f64 1/2 (/.f64 re (/.f64 im re)) im)
(fma.f64 1/2 (*.f64 (/.f64 re im) re) im)
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 (*.f64 re re) im) im))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 re (/.f64 im re)) im))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (*.f64 (/.f64 re im) re) im))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5))) im)))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 (*.f64 re re) im) (fma.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) im)))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 re (/.f64 im re)) (fma.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) im)))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (*.f64 (/.f64 re im) re) (fma.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) im)))
re
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) re)
(fma.f64 1/2 (/.f64 (*.f64 im im) re) re)
(fma.f64 1/2 (*.f64 (/.f64 im re) im) re)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(+.f64 (fma.f64 1/2 (/.f64 (*.f64 im im) re) re) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) re))
(fma.f64 1/2 (*.f64 (/.f64 im re) im) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) re))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) re)))
(fma.f64 1/2 (*.f64 (/.f64 im re) im) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) re)))
(*.f64 -1 re)
(neg.f64 re)
(+.f64 (*.f64 -1 re) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(fma.f64 -1 re (*.f64 (/.f64 (*.f64 im im) re) -1/2))
(fma.f64 (/.f64 (*.f64 im im) re) -1/2 (neg.f64 re))
(fma.f64 (*.f64 (/.f64 im re) im) -1/2 (neg.f64 re))
(+.f64 (*.f64 -1 re) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re))))
(fma.f64 -1 re (fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (*.f64 (/.f64 (*.f64 im im) re) -1/2)))
(-.f64 (fma.f64 (/.f64 (*.f64 im im) re) -1/2 (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8)) re)
(-.f64 (fma.f64 (*.f64 (/.f64 im re) im) -1/2 (*.f64 (pow.f64 im 4) (/.f64 1/8 (pow.f64 re 3)))) re)
(+.f64 (*.f64 -1 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)))))
(fma.f64 -1 re (fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 -1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (*.f64 (/.f64 (*.f64 im im) re) -1/2))))
(-.f64 (fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8 (fma.f64 (/.f64 (*.f64 im im) re) -1/2 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) -1/16))) re)
(-.f64 (fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8 (fma.f64 (*.f64 (/.f64 im re) im) -1/2 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) -1/16))) re)
re
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) re)
(fma.f64 1/2 (/.f64 (*.f64 im im) re) re)
(fma.f64 1/2 (*.f64 (/.f64 im re) im) re)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(+.f64 (fma.f64 1/2 (/.f64 (*.f64 im im) re) re) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) re))
(fma.f64 1/2 (*.f64 (/.f64 im re) im) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) re))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) re)))
(fma.f64 1/2 (*.f64 (/.f64 im re) im) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) re)))
im
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im)
(fma.f64 1/2 (/.f64 (*.f64 re re) im) im)
(fma.f64 1/2 (/.f64 re (/.f64 im re)) im)
(fma.f64 1/2 (*.f64 (/.f64 re im) re) im)
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 (*.f64 re re) im) im))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 re (/.f64 im re)) im))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (*.f64 (/.f64 re im) re) im))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5))) im)))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 (*.f64 re re) im) (fma.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) im)))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 re (/.f64 im re)) (fma.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) im)))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (*.f64 (/.f64 re im) re) (fma.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) im)))
(*.f64 -1 im)
(neg.f64 im)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(fma.f64 (/.f64 re (/.f64 im re)) -1/2 (neg.f64 im))
(-.f64 (/.f64 (*.f64 re re) (/.f64 im -1/2)) im)
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(fma.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im)))
(fma.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) 1/8 (fma.f64 (/.f64 re (/.f64 im re)) -1/2 (neg.f64 im)))
(fma.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) 1/8 (-.f64 (/.f64 (*.f64 re re) (/.f64 im -1/2)) im))
(+.f64 (*.f64 -1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5))) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))))
(fma.f64 -1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) (fma.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))))
(fma.f64 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) -1/16 (fma.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) 1/8 (fma.f64 (/.f64 re (/.f64 im re)) -1/2 (neg.f64 im))))
(fma.f64 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) -1/16 (fma.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) 1/8 (-.f64 (/.f64 (*.f64 re re) (/.f64 im -1/2)) 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))
(fma.f64 1/2 (*.f64 (/.f64 re im) re) (+.f64 im re))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im)))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 (*.f64 re re) im) (+.f64 im re)))
(+.f64 (fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 re (/.f64 im re)) im)) re)
(+.f64 (fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (*.f64 (/.f64 re im) re) im)) re)
(*.f64 2 re)
(*.f64 re 2)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 2 re))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (*.f64 re 2))
(fma.f64 re 2 (*.f64 1/2 (/.f64 (*.f64 im im) re)))
(fma.f64 1/2 (*.f64 (/.f64 im re) im) (*.f64 re 2))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 2 re) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (fma.f64 2 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (fma.f64 re 2 (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(fma.f64 1/2 (*.f64 (/.f64 im re) im) (fma.f64 re 2 (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 (*.f64 2 re) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 2 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 re 2 (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(fma.f64 1/2 (*.f64 (/.f64 im re) im) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 re 2 (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 (/.f64 (*.f64 im im) re) -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)))
(fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (*.f64 (/.f64 (*.f64 im im) re) -1/2))
(fma.f64 (/.f64 (*.f64 im im) re) -1/2 (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8))
(fma.f64 (*.f64 (/.f64 im re) im) -1/2 (*.f64 (pow.f64 im 4) (/.f64 1/8 (pow.f64 re 3))))
(+.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))))
(fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 -1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (*.f64 (/.f64 (*.f64 im im) re) -1/2)))
(fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8 (fma.f64 (/.f64 (*.f64 im im) re) -1/2 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) -1/16)))
(fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8 (fma.f64 (*.f64 (/.f64 im re) im) -1/2 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) -1/16)))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (+.f64 (*.f64 1/2 (/.f64 (+.f64 (pow.f64 (*.f64 -1/8 (pow.f64 im 4)) 2) (*.f64 1/16 (pow.f64 im 8))) (pow.f64 re 7))) (+.f64 (*.f64 -1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))))
(fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 1/2 (/.f64 (+.f64 (pow.f64 (*.f64 -1/8 (pow.f64 im 4)) 2) (*.f64 1/16 (pow.f64 im 8))) (pow.f64 re 7)) (fma.f64 -1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (*.f64 (/.f64 (*.f64 im im) re) -1/2))))
(fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8 (fma.f64 1/2 (/.f64 (fma.f64 1/16 (pow.f64 im 8) (*.f64 (pow.f64 im 8) 1/64)) (pow.f64 re 7)) (fma.f64 (/.f64 (*.f64 im im) re) -1/2 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) -1/16))))
(fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8 (fma.f64 1/2 (/.f64 (*.f64 (pow.f64 im 8) 5/64) (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 1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 2 re))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (*.f64 re 2))
(fma.f64 re 2 (*.f64 1/2 (/.f64 (*.f64 im im) re)))
(fma.f64 1/2 (*.f64 (/.f64 im re) im) (*.f64 re 2))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 2 re) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (fma.f64 2 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (fma.f64 re 2 (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(fma.f64 1/2 (*.f64 (/.f64 im re) im) (fma.f64 re 2 (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 (*.f64 2 re) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 2 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 re 2 (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(fma.f64 1/2 (*.f64 (/.f64 im re) im) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 re 2 (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
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))
(fma.f64 1/2 (*.f64 (/.f64 re im) re) (+.f64 im re))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im)))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 (*.f64 re re) im) (+.f64 im re)))
(+.f64 (fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 re (/.f64 im re)) im)) re)
(+.f64 (fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (*.f64 (/.f64 re im) re) im)) re)
(*.f64 -1 im)
(neg.f64 im)
(+.f64 re (*.f64 -1 im))
(+.f64 re (neg.f64 im))
(-.f64 re im)
(+.f64 re (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(+.f64 re (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im)))
(+.f64 re (fma.f64 (/.f64 re (/.f64 im re)) -1/2 (neg.f64 im)))
(+.f64 (/.f64 (*.f64 re re) (/.f64 im -1/2)) (-.f64 re im))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 re (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))))
(fma.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (+.f64 re (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))))
(+.f64 re (fma.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) 1/8 (fma.f64 (/.f64 re (/.f64 im re)) -1/2 (neg.f64 im))))
(+.f64 re (fma.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) 1/8 (-.f64 (/.f64 (*.f64 re re) (/.f64 im -1/2)) im)))
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
(fma.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 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 (*.f64 re (sqrt.f64 (/.f64 1 im))) 1/2)))
(+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 2))) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im))))
(fma.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 (*.f64 re re) (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2))) (sqrt.f64 (/.f64 1 im)))) (fma.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im))))
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 (sqrt.f64 (/.f64 1 im)) (+.f64 (*.f64 (*.f64 1/2 (sqrt.f64 2)) (*.f64 re (*.f64 re (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2))))) (*.f64 1/2 (*.f64 re (sqrt.f64 2))))))
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 im))) (+.f64 (*.f64 re (*.f64 re (+.f64 (/.f64 1/2 im) (*.f64 (/.f64 1 im) -1/4)))) re))))
(+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 2))) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 -1/4 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 3))) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))))
(fma.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 (*.f64 re re) (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2))) (sqrt.f64 (/.f64 1 im)))) (fma.f64 -1/4 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 (pow.f64 re 3) (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2))) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (fma.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))))
(+.f64 (*.f64 -1/4 (*.f64 (*.f64 (pow.f64 re 3) (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2))) (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 im 3)))))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 (sqrt.f64 (/.f64 1 im)) (+.f64 (*.f64 (*.f64 1/2 (sqrt.f64 2)) (*.f64 re (*.f64 re (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2))))) (*.f64 1/2 (*.f64 re (sqrt.f64 2)))))))
(+.f64 (*.f64 (*.f64 (+.f64 (/.f64 1/2 im) (*.f64 (/.f64 1 im) -1/4)) (*.f64 (pow.f64 re 3) (sqrt.f64 2))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 3))) -1/4)) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 im))) (+.f64 (*.f64 re (*.f64 re (+.f64 (/.f64 1/2 im) (*.f64 (/.f64 1 im) -1/4)))) re)))))
(*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re))
(*.f64 2 (sqrt.f64 re))
(+.f64 (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)))
(fma.f64 1/4 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)))
(fma.f64 2 (sqrt.f64 re) (*.f64 (*.f64 im im) (*.f64 1/4 (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)))
(+.f64 (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2))) (+.f64 (*.f64 -1/2 (*.f64 (*.f64 (+.f64 (*.f64 1/8 (/.f64 1 (pow.f64 re 3))) (pow.f64 (*.f64 1/4 (*.f64 (/.f64 1 (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) 2)) (pow.f64 im 4)) (sqrt.f64 (/.f64 1 re)))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re))))
(fma.f64 1/4 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (fma.f64 -1/2 (*.f64 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 (*.f64 1/4 (/.f64 1 (sqrt.f64 2))) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2)) (*.f64 (pow.f64 im 4) (sqrt.f64 (/.f64 1 re)))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re))))
(fma.f64 1/4 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (fma.f64 2 (sqrt.f64 re) (*.f64 -1/2 (*.f64 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 1/4 (sqrt.f64 2))) 2)) (*.f64 (pow.f64 im 4) (sqrt.f64 (/.f64 1 re)))))))
(fma.f64 1/4 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (fma.f64 2 (sqrt.f64 re) (*.f64 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 1/4 (sqrt.f64 2))) 2)) (*.f64 (*.f64 (pow.f64 im 4) (sqrt.f64 (/.f64 1 re))) -1/2))))
(+.f64 (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2))) (+.f64 (*.f64 -1/2 (*.f64 (*.f64 (+.f64 (*.f64 1/8 (/.f64 1 (pow.f64 re 3))) (pow.f64 (*.f64 1/4 (*.f64 (/.f64 1 (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) 2)) (pow.f64 im 4)) (sqrt.f64 (/.f64 1 re)))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (*.f64 -1/4 (/.f64 (+.f64 (*.f64 1/8 (/.f64 1 (pow.f64 re 3))) (pow.f64 (*.f64 1/4 (*.f64 (/.f64 1 (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) 2)) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 re 2))))) (pow.f64 im 6)) (sqrt.f64 (/.f64 1 re)))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)))))
(fma.f64 1/4 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (fma.f64 -1/2 (*.f64 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 (*.f64 1/4 (/.f64 1 (sqrt.f64 2))) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2)) (*.f64 (pow.f64 im 4) (sqrt.f64 (/.f64 1 re)))) (fma.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (pow.f64 im 6) (+.f64 (/.f64 1/16 (pow.f64 re 5)) (*.f64 1/4 (/.f64 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 (*.f64 1/4 (/.f64 1 (sqrt.f64 2))) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2)) (*.f64 (*.f64 re re) (pow.f64 (sqrt.f64 2) 2))))))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)))))
(+.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 im 4) (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 1/4 (sqrt.f64 2))) 2)))) (*.f64 1/2 (*.f64 (pow.f64 im 6) (-.f64 (/.f64 1/16 (pow.f64 re 5)) (*.f64 -1/8 (/.f64 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 1/4 (sqrt.f64 2))) 2)) (*.f64 re re)))))))) (fma.f64 2 (sqrt.f64 re) (*.f64 (*.f64 im im) (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))))))
(+.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) (+.f64 (*.f64 (*.f64 -1/2 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 1/4 (sqrt.f64 2))) 2))) (pow.f64 im 4)) (*.f64 1/2 (*.f64 (pow.f64 im 6) (+.f64 (/.f64 1/16 (pow.f64 re 5)) (*.f64 1/8 (/.f64 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 1/4 (sqrt.f64 2))) 2)) (*.f64 re re)))))))) (fma.f64 2 (sqrt.f64 re) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 (*.f64 im im) 1/4))))
(pow.f64 im 3)
(+.f64 (pow.f64 im 3) (*.f64 (+.f64 (*.f64 1/2 im) im) (pow.f64 re 2)))
(+.f64 (pow.f64 im 3) (*.f64 (*.f64 re re) (*.f64 3/2 im)))
(fma.f64 im (*.f64 (*.f64 re re) 3/2) (pow.f64 im 3))
(+.f64 (pow.f64 im 3) (+.f64 (*.f64 (+.f64 (*.f64 1/2 im) im) (pow.f64 re 2)) (*.f64 3/8 (/.f64 (pow.f64 re 4) im))))
(+.f64 (pow.f64 im 3) (fma.f64 (*.f64 3/2 im) (*.f64 re re) (*.f64 3/8 (/.f64 (pow.f64 re 4) im))))
(+.f64 (pow.f64 im 3) (fma.f64 (*.f64 re re) (*.f64 im 3/2) (*.f64 3/8 (/.f64 (pow.f64 re 4) im))))
(+.f64 (*.f64 -1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 3))) (+.f64 (pow.f64 im 3) (+.f64 (*.f64 (+.f64 (*.f64 1/2 im) im) (pow.f64 re 2)) (*.f64 3/8 (/.f64 (pow.f64 re 4) im)))))
(fma.f64 -1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 3)) (+.f64 (pow.f64 im 3) (fma.f64 (*.f64 3/2 im) (*.f64 re re) (*.f64 3/8 (/.f64 (pow.f64 re 4) im)))))
(+.f64 (fma.f64 (*.f64 re re) (*.f64 im 3/2) (*.f64 3/8 (/.f64 (pow.f64 re 4) im))) (fma.f64 -1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 3)) (pow.f64 im 3)))
(pow.f64 re 3)
(+.f64 (*.f64 (+.f64 (pow.f64 im 2) (*.f64 1/2 (pow.f64 im 2))) re) (pow.f64 re 3))
(fma.f64 (*.f64 3/2 (*.f64 im im)) re (pow.f64 re 3))
(fma.f64 re (*.f64 (*.f64 im im) 3/2) (pow.f64 re 3))
(fma.f64 re (*.f64 im (*.f64 im 3/2)) (pow.f64 re 3))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 im 4) re)) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 im 4) re)) (+.f64 (*.f64 (+.f64 (pow.f64 im 2) (*.f64 1/2 (pow.f64 im 2))) re) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 im 4) re)) (+.f64 (pow.f64 re 3) (*.f64 1/2 (/.f64 (pow.f64 im 4) re)))))))
(fma.f64 -1/8 (/.f64 (pow.f64 im 4) re) (fma.f64 -1/4 (/.f64 (pow.f64 im 4) re) (fma.f64 (*.f64 3/2 (*.f64 im im)) re (fma.f64 1/4 (/.f64 (pow.f64 im 4) re) (+.f64 (pow.f64 re 3) (*.f64 1/2 (/.f64 (pow.f64 im 4) re)))))))
(+.f64 (+.f64 (fma.f64 re (*.f64 (*.f64 im im) 3/2) (*.f64 (/.f64 (pow.f64 im 4) re) 3/4)) (pow.f64 re 3)) (*.f64 (/.f64 (pow.f64 im 4) re) -3/8))
(+.f64 (+.f64 (fma.f64 re (*.f64 im (*.f64 im 3/2)) (*.f64 (/.f64 (pow.f64 im 4) re) 3/4)) (pow.f64 re 3)) (*.f64 (/.f64 (pow.f64 im 4) re) -3/8))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 6) (pow.f64 re 3))) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 3))) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 im 6) (pow.f64 re 3))) (+.f64 (pow.f64 re 3) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 im 4) re)) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (pow.f64 im 2) (+.f64 (*.f64 -1/4 (pow.f64 im 4)) (*.f64 1/4 (pow.f64 im 4)))) (pow.f64 re 3))) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 im 4) re)) (+.f64 (*.f64 (+.f64 (pow.f64 im 2) (*.f64 1/2 (pow.f64 im 2))) re) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 im 4) re)) (*.f64 1/2 (/.f64 (pow.f64 im 4) re)))))))))))
(fma.f64 1/8 (/.f64 (pow.f64 im 6) (pow.f64 re 3)) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 3)) (fma.f64 -1/4 (/.f64 (pow.f64 im 6) (pow.f64 re 3)) (+.f64 (pow.f64 re 3) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) re) (fma.f64 1/2 (/.f64 (*.f64 im im) (/.f64 (pow.f64 re 3) (*.f64 (pow.f64 im 4) 0))) (fma.f64 -1/4 (/.f64 (pow.f64 im 4) re) (fma.f64 (*.f64 3/2 (*.f64 im im)) re (*.f64 (/.f64 (pow.f64 im 4) re) 3/4)))))))))
(+.f64 (+.f64 (+.f64 (fma.f64 -1/4 (/.f64 (pow.f64 im 6) (pow.f64 re 3)) (pow.f64 re 3)) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) re) (*.f64 (/.f64 (*.f64 im im) (pow.f64 re 3)) 0))) (fma.f64 -1/4 (/.f64 (pow.f64 im 4) re) (fma.f64 re (*.f64 (*.f64 im im) 3/2) (*.f64 (/.f64 (pow.f64 im 4) re) 3/4)))) (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 3)) 3/16))
(+.f64 (*.f64 (/.f64 -1/16 (pow.f64 re 3)) (pow.f64 im 6)) (+.f64 (pow.f64 re 3) (+.f64 (+.f64 (*.f64 re (*.f64 im (*.f64 im 3/2))) (*.f64 1/2 (/.f64 (pow.f64 im 4) re))) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) re) 0))))
(*.f64 -1 (pow.f64 re 3))
(neg.f64 (pow.f64 re 3))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (pow.f64 im 2) (*.f64 1/2 (pow.f64 im 2))) re)) (*.f64 -1 (pow.f64 re 3)))
(*.f64 -1 (fma.f64 (*.f64 3/2 (*.f64 im im)) re (pow.f64 re 3)))
(-.f64 (*.f64 re (*.f64 -3/2 (*.f64 im im))) (pow.f64 re 3))
(-.f64 (*.f64 re (*.f64 (*.f64 im im) -3/2)) (pow.f64 re 3))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (pow.f64 im 2) (*.f64 1/2 (pow.f64 im 2))) re)) (+.f64 (*.f64 -1 (pow.f64 re 3)) (*.f64 -1 (/.f64 (+.f64 (*.f64 -1/4 (pow.f64 im 4)) (+.f64 (*.f64 1/2 (pow.f64 im 4)) (+.f64 (*.f64 1/4 (pow.f64 im 4)) (*.f64 -1/8 (pow.f64 im 4))))) re))))
(+.f64 (*.f64 -1 (fma.f64 (*.f64 3/2 (*.f64 im im)) re (pow.f64 re 3))) (neg.f64 (/.f64 (fma.f64 -1/4 (pow.f64 im 4) (fma.f64 1/2 (pow.f64 im 4) (*.f64 (pow.f64 im 4) 1/8))) re)))
(-.f64 (-.f64 (*.f64 re (*.f64 -3/2 (*.f64 im im))) (pow.f64 re 3)) (/.f64 (fma.f64 (pow.f64 im 4) -1/4 (*.f64 (pow.f64 im 4) 5/8)) re))
(-.f64 (neg.f64 (pow.f64 re 3)) (fma.f64 (*.f64 im im) (*.f64 re 3/2) (/.f64 (pow.f64 im 4) (/.f64 re 3/8))))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (pow.f64 im 2) (*.f64 1/2 (pow.f64 im 2))) re)) (+.f64 (*.f64 -1 (pow.f64 re 3)) (+.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -1/4 (pow.f64 im 4)) (+.f64 (*.f64 1/2 (pow.f64 im 4)) (+.f64 (*.f64 1/4 (pow.f64 im 4)) (*.f64 -1/8 (pow.f64 im 4))))) re)) (*.f64 -1 (/.f64 (+.f64 (*.f64 1/16 (pow.f64 im 6)) (+.f64 (*.f64 1/8 (pow.f64 im 6)) (+.f64 (*.f64 -1/4 (pow.f64 im 6)) (*.f64 1/2 (*.f64 (+.f64 (*.f64 -1/4 (pow.f64 im 4)) (*.f64 1/4 (pow.f64 im 4))) (pow.f64 im 2)))))) (pow.f64 re 3))))))
(+.f64 (*.f64 -1 (fma.f64 (*.f64 3/2 (*.f64 im im)) re (pow.f64 re 3))) (fma.f64 -1 (/.f64 (fma.f64 -1/4 (pow.f64 im 4) (fma.f64 1/2 (pow.f64 im 4) (*.f64 (pow.f64 im 4) 1/8))) re) (neg.f64 (/.f64 (fma.f64 1/16 (pow.f64 im 6) (fma.f64 1/8 (pow.f64 im 6) (fma.f64 -1/4 (pow.f64 im 6) (*.f64 1/2 (*.f64 (*.f64 im im) (*.f64 (pow.f64 im 4) 0)))))) (pow.f64 re 3)))))
(fma.f64 (*.f64 -3/2 (*.f64 im im)) re (-.f64 (-.f64 (neg.f64 (pow.f64 re 3)) (/.f64 (fma.f64 (pow.f64 im 4) -1/4 (*.f64 (pow.f64 im 4) 5/8)) re)) (/.f64 (+.f64 (fma.f64 (pow.f64 im 6) -1/4 (*.f64 (*.f64 im im) 0)) (*.f64 (pow.f64 im 6) 3/16)) (pow.f64 re 3))))
(neg.f64 (+.f64 (fma.f64 (*.f64 im im) (*.f64 re 3/2) (/.f64 (pow.f64 im 4) (/.f64 re 3/8))) (fma.f64 -1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 3)) (pow.f64 re 3))))
(pow.f64 re 3)
(+.f64 (pow.f64 re 3) (*.f64 (+.f64 re (*.f64 1/2 re)) (pow.f64 im 2)))
(fma.f64 (*.f64 3/2 (*.f64 im im)) re (pow.f64 re 3))
(fma.f64 re (*.f64 (*.f64 im im) 3/2) (pow.f64 re 3))
(fma.f64 re (*.f64 im (*.f64 im 3/2)) (pow.f64 re 3))
(+.f64 (pow.f64 re 3) (+.f64 (*.f64 (+.f64 re (*.f64 1/2 re)) (pow.f64 im 2)) (*.f64 3/8 (/.f64 (pow.f64 im 4) re))))
(+.f64 (pow.f64 re 3) (fma.f64 (*.f64 3/2 re) (*.f64 im im) (*.f64 3/8 (/.f64 (pow.f64 im 4) re))))
(+.f64 (pow.f64 re 3) (fma.f64 (*.f64 im im) (*.f64 re 3/2) (*.f64 3/8 (/.f64 (pow.f64 im 4) re))))
(+.f64 (pow.f64 re 3) (fma.f64 (*.f64 im im) (*.f64 re 3/2) (/.f64 (pow.f64 im 4) (/.f64 re 3/8))))
(+.f64 (*.f64 -1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 3))) (+.f64 (pow.f64 re 3) (+.f64 (*.f64 (+.f64 re (*.f64 1/2 re)) (pow.f64 im 2)) (*.f64 3/8 (/.f64 (pow.f64 im 4) re)))))
(fma.f64 -1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 3)) (+.f64 (pow.f64 re 3) (fma.f64 (*.f64 3/2 re) (*.f64 im im) (*.f64 3/8 (/.f64 (pow.f64 im 4) re)))))
(+.f64 (fma.f64 (*.f64 im im) (*.f64 re 3/2) (*.f64 3/8 (/.f64 (pow.f64 im 4) re))) (fma.f64 -1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 3)) (pow.f64 re 3)))
(+.f64 (fma.f64 (*.f64 im im) (*.f64 re 3/2) (/.f64 (pow.f64 im 4) (/.f64 re 3/8))) (fma.f64 -1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 3)) (pow.f64 re 3)))
(pow.f64 im 3)
(+.f64 (pow.f64 im 3) (*.f64 (+.f64 (pow.f64 re 2) (*.f64 1/2 (pow.f64 re 2))) im))
(+.f64 (pow.f64 im 3) (*.f64 (*.f64 re re) (*.f64 3/2 im)))
(fma.f64 im (*.f64 (*.f64 re re) 3/2) (pow.f64 im 3))
(+.f64 (pow.f64 im 3) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 4) im)) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 re 4) im)) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) im)) (+.f64 (*.f64 (+.f64 (pow.f64 re 2) (*.f64 1/2 (pow.f64 re 2))) im) (*.f64 -1/4 (/.f64 (pow.f64 re 4) im)))))))
(+.f64 (pow.f64 im 3) (fma.f64 1/2 (/.f64 (pow.f64 re 4) im) (fma.f64 1/4 (/.f64 (pow.f64 re 4) im) (fma.f64 -1/8 (/.f64 (pow.f64 re 4) im) (fma.f64 (*.f64 3/2 (*.f64 re re)) im (/.f64 (*.f64 (pow.f64 re 4) -1/4) im))))))
(+.f64 (pow.f64 im 3) (+.f64 (fma.f64 -1/8 (/.f64 (pow.f64 re 4) im) (fma.f64 im (*.f64 (*.f64 re re) 3/2) (/.f64 (pow.f64 re 4) (/.f64 im -1/4)))) (*.f64 (/.f64 (pow.f64 re 4) im) 3/4)))
(+.f64 (pow.f64 im 3) (fma.f64 1/2 (/.f64 (pow.f64 re 4) im) (fma.f64 -1/8 (/.f64 (pow.f64 re 4) im) (*.f64 im (*.f64 (*.f64 re re) 3/2)))))
(+.f64 (*.f64 -1/4 (/.f64 (pow.f64 re 6) (pow.f64 im 3))) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 re 4) im)) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) im)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 3))) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 6) (pow.f64 im 3))) (+.f64 (pow.f64 im 3) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 4) im)) (+.f64 (*.f64 (+.f64 (pow.f64 re 2) (*.f64 1/2 (pow.f64 re 2))) im) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (pow.f64 re 2) (+.f64 (*.f64 1/4 (pow.f64 re 4)) (*.f64 -1/4 (pow.f64 re 4)))) (pow.f64 im 3))) (*.f64 -1/4 (/.f64 (pow.f64 re 4) im)))))))))))
(fma.f64 -1/4 (/.f64 (pow.f64 re 6) (pow.f64 im 3)) (fma.f64 1/4 (/.f64 (pow.f64 re 4) im) (fma.f64 -1/8 (/.f64 (pow.f64 re 4) im) (fma.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 3)) (fma.f64 1/8 (/.f64 (pow.f64 re 6) (pow.f64 im 3)) (+.f64 (pow.f64 im 3) (fma.f64 1/2 (/.f64 (pow.f64 re 4) im) (fma.f64 (*.f64 3/2 (*.f64 re re)) im (fma.f64 1/2 (/.f64 (*.f64 (*.f64 re re) (*.f64 (pow.f64 re 4) 0)) (pow.f64 im 3)) (/.f64 (*.f64 (pow.f64 re 4) -1/4) im))))))))))
(fma.f64 -1/4 (/.f64 (pow.f64 re 6) (pow.f64 im 3)) (+.f64 (+.f64 (*.f64 (/.f64 (pow.f64 re 4) im) 1/8) (*.f64 (/.f64 (pow.f64 re 6) (pow.f64 im 3)) 3/16)) (+.f64 (pow.f64 im 3) (fma.f64 1/2 (/.f64 (pow.f64 re 4) im) (fma.f64 im (*.f64 (*.f64 re re) 3/2) (fma.f64 -1/4 (/.f64 (pow.f64 re 4) im) (*.f64 (/.f64 (*.f64 re re) (pow.f64 im 3)) 0)))))))
(fma.f64 -1/4 (/.f64 (pow.f64 re 6) (pow.f64 im 3)) (+.f64 (+.f64 (+.f64 (pow.f64 im 3) (+.f64 (fma.f64 im (*.f64 (*.f64 re re) 3/2) 0) (*.f64 1/4 (/.f64 (pow.f64 re 4) im)))) (*.f64 (/.f64 (pow.f64 re 6) (pow.f64 im 3)) 3/16)) (*.f64 (/.f64 (pow.f64 re 4) im) 1/8)))
(*.f64 -1 (pow.f64 im 3))
(neg.f64 (pow.f64 im 3))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (pow.f64 re 2) (*.f64 1/2 (pow.f64 re 2))) im)) (*.f64 -1 (pow.f64 im 3)))
(fma.f64 -1 (*.f64 im (*.f64 3/2 (*.f64 re re))) (neg.f64 (pow.f64 im 3)))
(neg.f64 (fma.f64 im (*.f64 (*.f64 re re) 3/2) (pow.f64 im 3)))
(-.f64 (*.f64 im (*.f64 (*.f64 re re) -3/2)) (pow.f64 im 3))
(+.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 1/4 (pow.f64 re 4)) (+.f64 (*.f64 1/2 (pow.f64 re 4)) (+.f64 (*.f64 -1/4 (pow.f64 re 4)) (*.f64 -1/8 (pow.f64 re 4))))) im)) (+.f64 (*.f64 -1 (*.f64 (+.f64 (pow.f64 re 2) (*.f64 1/2 (pow.f64 re 2))) im)) (*.f64 -1 (pow.f64 im 3))))
(fma.f64 -1 (/.f64 (fma.f64 1/4 (pow.f64 re 4) (fma.f64 1/2 (pow.f64 re 4) (*.f64 (pow.f64 re 4) -3/8))) im) (fma.f64 -1 (*.f64 im (*.f64 3/2 (*.f64 re re))) (neg.f64 (pow.f64 im 3))))
(-.f64 (neg.f64 (fma.f64 im (*.f64 (*.f64 re re) 3/2) (pow.f64 im 3))) (/.f64 (fma.f64 (pow.f64 re 4) 1/4 (*.f64 (pow.f64 re 4) 1/8)) im))
(-.f64 (neg.f64 (pow.f64 im 3)) (fma.f64 (*.f64 re re) (*.f64 im 3/2) (*.f64 3/8 (/.f64 (pow.f64 re 4) im))))
(+.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -1/4 (pow.f64 re 6)) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 re 2) (+.f64 (*.f64 1/4 (pow.f64 re 4)) (*.f64 -1/4 (pow.f64 re 4))))) (+.f64 (*.f64 1/8 (pow.f64 re 6)) (*.f64 1/16 (pow.f64 re 6))))) (pow.f64 im 3))) (+.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 1/4 (pow.f64 re 4)) (+.f64 (*.f64 1/2 (pow.f64 re 4)) (+.f64 (*.f64 -1/4 (pow.f64 re 4)) (*.f64 -1/8 (pow.f64 re 4))))) im)) (+.f64 (*.f64 -1 (*.f64 (+.f64 (pow.f64 re 2) (*.f64 1/2 (pow.f64 re 2))) im)) (*.f64 -1 (pow.f64 im 3)))))
(fma.f64 -1 (/.f64 (fma.f64 -1/4 (pow.f64 re 6) (fma.f64 1/2 (*.f64 (*.f64 re re) (*.f64 (pow.f64 re 4) 0)) (*.f64 (pow.f64 re 6) 3/16))) (pow.f64 im 3)) (fma.f64 -1 (/.f64 (fma.f64 1/4 (pow.f64 re 4) (fma.f64 1/2 (pow.f64 re 4) (*.f64 (pow.f64 re 4) -3/8))) im) (fma.f64 -1 (*.f64 im (*.f64 3/2 (*.f64 re re))) (neg.f64 (pow.f64 im 3)))))
(-.f64 (-.f64 (neg.f64 (fma.f64 im (*.f64 (*.f64 re re) 3/2) (pow.f64 im 3))) (/.f64 (fma.f64 (pow.f64 re 4) 1/4 (*.f64 (pow.f64 re 4) 1/8)) im)) (/.f64 (fma.f64 (pow.f64 re 6) -1/4 (fma.f64 (pow.f64 re 6) 3/16 (*.f64 re (*.f64 re 0)))) (pow.f64 im 3)))
(-.f64 (-.f64 (*.f64 im (*.f64 (*.f64 re re) -3/2)) (*.f64 3/8 (/.f64 (pow.f64 re 4) im))) (fma.f64 -1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 3)) (pow.f64 im 3)))

eval275.0ms (2.9%)

Compiler

Compiled 12550 to 8420 computations (32.9% saved)

prune111.0ms (1.2%)

Pruning

23 alts after pruning (15 fresh and 8 done)

PrunedKeptTotal
New6489657
Fresh5611
Picked101
Done2810
Total65623679
Error
0.5b
Counts
679 → 23
Alt Table
Click to see full alt table
StatusErrorProgram
54.7b
(*.f64 1/2 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))) 3))
44.5b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (pow.f64 (sqrt.f64 im) 2))))
44.5b
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
56.0b
(*.f64 1/2 (exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/6)) 3)))
55.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (/.f64 1 (/.f64 re (*.f64 im im))) -1/2))))
42.4b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
12.5b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))
45.1b
(*.f64 1/2 (*.f64 (sqrt.f64 2) (sqrt.f64 (-.f64 re im))))
45.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 re im))))
55.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (pow.f64 (cbrt.f64 (*.f64 re (pow.f64 im -2))) -3) -1/2))))
47.3b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im))))
62.1b
(*.f64 1/2 (pow.f64 (exp.f64 (sqrt.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 (*.f64 im im) re) -1))))) (sqrt.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 (*.f64 im im) re) -1))))))
49.0b
(*.f64 1/2 (*.f64 2 (sqrt.f64 re)))
59.0b
(*.f64 1/2 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))) 3))
60.8b
(*.f64 1/2 (sqrt.f64 (*.f64 (/.f64 im re) im)))
55.6b
(*.f64 1/2 (pow.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/4) 2))
45.1b
(*.f64 1/2 (pow.f64 (pow.f64 (*.f64 2 (-.f64 re im)) 1/4) 2))
12.7b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (pow.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) 2))))
56.0b
(*.f64 1/2 (pow.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/6) 3))
54.1b
(*.f64 1/2 (pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im)) 3))
31.0b
(*.f64 1/2 (hypot.f64 (sqrt.f64 (*.f64 re 2)) (sqrt.f64 (*.f64 (hypot.f64 re im) 2))))
52.9b
(*.f64 1/2 (pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 1/2))
48.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (-.f64 (/.f64 (*.f64 re re) (/.f64 im -1/2)) im)))))
Compiler

Compiled 547 to 444 computations (18.8% saved)

localize20.0ms (0.2%)

Local error

Found 6 expressions with local error:

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

Compiled 51 to 31 computations (39.2% saved)

series43.0ms (0.4%)

Counts
2 → 13
Calls

12 calls:

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

rewrite56.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
867×pow1_binary64
795×add-log-exp_binary64
795×log1p-expm1-u_binary64
795×expm1-log1p-u_binary64
775×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify49.0ms (0.5%)

Algorithm
egg-herbie
Rules
595×fma-def_binary64
345×*-commutative_binary64
284×cancel-sign-sub-inv_binary64
256×div-sub_binary64
248×unswap-sqr_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01211006
1371890
21412752
35436750
Stop Event
node limit
Counts
52 → 61
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re))
(+.f64 (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)))
(+.f64 (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (pow.f64 im 4) (-.f64 (+.f64 (*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 2) 2) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (*.f64 1/16 (/.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 re 3)))) (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2))) (pow.f64 (sqrt.f64 2) 2)) (sqrt.f64 (/.f64 1 re)))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re))))
(+.f64 (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (pow.f64 im 6) (-.f64 (+.f64 (*.f64 -1/4 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3))))) (pow.f64 re 2))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (*.f64 -1/4 (/.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))) (pow.f64 re 2)))))) (*.f64 1/4 (/.f64 (-.f64 (+.f64 (*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 2) 2) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (*.f64 1/16 (/.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 re 3)))) (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2)) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 re 2)))))) (pow.f64 (sqrt.f64 2) 2)) (sqrt.f64 (/.f64 1 re)))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (pow.f64 im 4) (-.f64 (+.f64 (*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 2) 2) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (*.f64 1/16 (/.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 re 3)))) (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2))) (pow.f64 (sqrt.f64 2) 2)) (sqrt.f64 (/.f64 1 re)))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)))))
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(+.f64 (*.f64 1/4 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
(+.f64 (*.f64 1/4 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 re 4) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 im 3)))))) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im))))
(+.f64 (*.f64 1/4 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 im 5))) (*.f64 -1/4 (/.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 im 3)))) (pow.f64 im 2)))) (pow.f64 re 6))) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 re 4) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 im 3)))))) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))))
(*.f64 (sqrt.f64 2) (sqrt.f64 re))
(+.f64 (*.f64 1/4 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) (*.f64 (sqrt.f64 2) (sqrt.f64 re)))
(+.f64 (*.f64 1/4 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) (+.f64 (*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))) (pow.f64 im 4))) (sqrt.f64 (/.f64 1 re)))) (*.f64 (sqrt.f64 2) (sqrt.f64 re))))
(+.f64 (*.f64 1/4 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) (+.f64 (*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))) (pow.f64 im 4))) (sqrt.f64 (/.f64 1 re)))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (*.f64 -1/4 (/.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))) (pow.f64 re 2)))) (pow.f64 im 6))) (sqrt.f64 (/.f64 1 re)))) (*.f64 (sqrt.f64 2) (sqrt.f64 re)))))
Outputs
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re))
(*.f64 2 (sqrt.f64 re))
(+.f64 (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)))
(fma.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 im im)) (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)))
(fma.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 im im)) (*.f64 2 (sqrt.f64 re)))
(+.f64 (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (pow.f64 im 4) (-.f64 (+.f64 (*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 2) 2) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (*.f64 1/16 (/.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 re 3)))) (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2))) (pow.f64 (sqrt.f64 2) 2)) (sqrt.f64 (/.f64 1 re)))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re))))
(fma.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 im im)) (fma.f64 1/2 (*.f64 (/.f64 (pow.f64 im 4) (/.f64 (pow.f64 (sqrt.f64 2) 2) (-.f64 (fma.f64 -1 (*.f64 (pow.f64 (sqrt.f64 2) 2) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3)))) (*.f64 1/16 (/.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 re 3)))) (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2)))) (sqrt.f64 (/.f64 1 re))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re))))
(fma.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 im im)) (fma.f64 1/2 (/.f64 (*.f64 (-.f64 (-.f64 (/.f64 1/8 (pow.f64 re 3)) (fma.f64 2 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/4 (pow.f64 re 3)))) (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2)) (*.f64 (pow.f64 im 4) (sqrt.f64 (/.f64 1 re)))) 2) (*.f64 2 (sqrt.f64 re))))
(fma.f64 2 (sqrt.f64 re) (fma.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 im im)) (/.f64 (*.f64 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (fma.f64 (fma.f64 (/.f64 1 (pow.f64 re 3)) 1/16 (/.f64 1/8 (pow.f64 re 3))) -2 (*.f64 (/.f64 1 (pow.f64 re 3)) -1/16))) (*.f64 (pow.f64 im 4) (sqrt.f64 (/.f64 1 re)))) 4)))
(+.f64 (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (pow.f64 im 6) (-.f64 (+.f64 (*.f64 -1/4 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3))))) (pow.f64 re 2))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (*.f64 -1/4 (/.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))) (pow.f64 re 2)))))) (*.f64 1/4 (/.f64 (-.f64 (+.f64 (*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 2) 2) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (*.f64 1/16 (/.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 re 3)))) (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2)) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 re 2)))))) (pow.f64 (sqrt.f64 2) 2)) (sqrt.f64 (/.f64 1 re)))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (pow.f64 im 4) (-.f64 (+.f64 (*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 2) 2) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))))) (*.f64 1/16 (/.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 re 3)))) (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2))) (pow.f64 (sqrt.f64 2) 2)) (sqrt.f64 (/.f64 1 re)))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)))))
(fma.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 im im)) (fma.f64 1/2 (/.f64 (*.f64 (*.f64 (pow.f64 im 6) (+.f64 (fma.f64 -1/4 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3)))) (*.f64 re re)) (*.f64 (pow.f64 (sqrt.f64 2) 2) (+.f64 (/.f64 1/16 (pow.f64 re 5)) (*.f64 1/4 (/.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3))) (*.f64 re re)))))) (*.f64 -1/4 (/.f64 (-.f64 (fma.f64 -1 (*.f64 (pow.f64 (sqrt.f64 2) 2) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3)))) (*.f64 1/16 (/.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 re 3)))) (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2)) (*.f64 (pow.f64 (sqrt.f64 2) 2) (*.f64 re re)))))) (sqrt.f64 (/.f64 1 re))) (pow.f64 (sqrt.f64 2) 2)) (fma.f64 1/2 (*.f64 (/.f64 (pow.f64 im 4) (/.f64 (pow.f64 (sqrt.f64 2) 2) (-.f64 (fma.f64 -1 (*.f64 (pow.f64 (sqrt.f64 2) 2) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3)))) (*.f64 1/16 (/.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 re 3)))) (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2)))) (sqrt.f64 (/.f64 1 re))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)))))
(+.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (pow.f64 im 6) 2) (-.f64 (fma.f64 2 (+.f64 (/.f64 1/16 (pow.f64 re 5)) (*.f64 1/4 (/.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3))) (*.f64 re re)))) (/.f64 -1/2 (/.f64 re (/.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3))) re)))) (*.f64 1/8 (/.f64 (-.f64 (-.f64 (/.f64 1/8 (pow.f64 re 3)) (fma.f64 2 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/4 (pow.f64 re 3)))) (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2)) (*.f64 re re)))))) (*.f64 1/2 (*.f64 (/.f64 (pow.f64 im 4) 2) (-.f64 (-.f64 (/.f64 1/8 (pow.f64 re 3)) (fma.f64 2 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/4 (pow.f64 re 3)))) (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2)))))) (fma.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 im im)) (*.f64 2 (sqrt.f64 re))))
(fma.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 im im)) (fma.f64 2 (sqrt.f64 re) (*.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 re))) (+.f64 (*.f64 (fma.f64 2 (fma.f64 1/4 (/.f64 (fma.f64 (/.f64 1 (pow.f64 re 3)) 1/16 (/.f64 1/8 (pow.f64 re 3))) (*.f64 re re)) (/.f64 1/16 (pow.f64 re 5))) (-.f64 (*.f64 (/.f64 -1/2 (*.f64 re re)) (fma.f64 (/.f64 1 (pow.f64 re 3)) 1/16 (/.f64 1/8 (pow.f64 re 3)))) (/.f64 (*.f64 1/8 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (fma.f64 (fma.f64 (/.f64 1 (pow.f64 re 3)) 1/16 (/.f64 1/8 (pow.f64 re 3))) -2 (*.f64 (/.f64 1 (pow.f64 re 3)) -1/16)))) (*.f64 re re)))) (/.f64 (pow.f64 im 6) 2)) (*.f64 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (fma.f64 (fma.f64 (/.f64 1 (pow.f64 re 3)) 1/16 (/.f64 1/8 (pow.f64 re 3))) -2 (*.f64 (/.f64 1 (pow.f64 re 3)) -1/16))) (/.f64 (pow.f64 im 4) 2))))))
(fma.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 im im)) (fma.f64 2 (sqrt.f64 re) (*.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 re))) (+.f64 (*.f64 (fma.f64 2 (fma.f64 1/4 (/.f64 (fma.f64 (/.f64 1 (pow.f64 re 3)) 1/16 (/.f64 1/8 (pow.f64 re 3))) (*.f64 re re)) (/.f64 1/16 (pow.f64 re 5))) (fma.f64 (/.f64 -1/2 re) (/.f64 (fma.f64 (/.f64 1 (pow.f64 re 3)) 1/16 (/.f64 1/8 (pow.f64 re 3))) re) (*.f64 -1/8 (/.f64 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (fma.f64 (fma.f64 (/.f64 1 (pow.f64 re 3)) 1/16 (/.f64 1/8 (pow.f64 re 3))) -2 (*.f64 (/.f64 1 (pow.f64 re 3)) -1/16))) (*.f64 re re))))) (/.f64 (pow.f64 im 6) 2)) (*.f64 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (fma.f64 (fma.f64 (/.f64 1 (pow.f64 re 3)) 1/16 (/.f64 1/8 (pow.f64 re 3))) -2 (*.f64 (/.f64 1 (pow.f64 re 3)) -1/16))) (/.f64 (pow.f64 im 4) 2))))))
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(+.f64 (*.f64 1/4 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
(fma.f64 1/4 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 re re) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
(fma.f64 (*.f64 1/4 (*.f64 (sqrt.f64 2) (*.f64 re re))) (sqrt.f64 (/.f64 1 (pow.f64 im 3))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
(*.f64 (sqrt.f64 2) (+.f64 (sqrt.f64 im) (*.f64 1/4 (*.f64 re (*.f64 re (sqrt.f64 (/.f64 1 (pow.f64 im 3))))))))
(+.f64 (*.f64 1/4 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 re 4) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 im 3)))))) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im))))
(fma.f64 1/4 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 re re) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (fma.f64 -1/2 (*.f64 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 4)) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) 2) (/.f64 1/8 (pow.f64 im 3)))) (sqrt.f64 (/.f64 1 im))) (*.f64 (sqrt.f64 2) (sqrt.f64 im))))
(fma.f64 1/4 (*.f64 (sqrt.f64 2) (*.f64 re (*.f64 re (sqrt.f64 (/.f64 1 (pow.f64 im 3)))))) (fma.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 (sqrt.f64 2) (pow.f64 re 4))) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) 2) (/.f64 1/8 (pow.f64 im 3)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im))))
(fma.f64 (sqrt.f64 2) (*.f64 -1/2 (*.f64 (fma.f64 1/16 (/.f64 1 (pow.f64 im 3)) (/.f64 1/8 (pow.f64 im 3))) (*.f64 (pow.f64 re 4) (sqrt.f64 (/.f64 1 im))))) (*.f64 (sqrt.f64 2) (+.f64 (sqrt.f64 im) (*.f64 1/4 (*.f64 re (*.f64 re (sqrt.f64 (/.f64 1 (pow.f64 im 3)))))))))
(+.f64 (*.f64 1/4 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 im 5))) (*.f64 -1/4 (/.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 im 3)))) (pow.f64 im 2)))) (pow.f64 re 6))) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 re 4) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 im 3)))))) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))))
(fma.f64 1/4 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 re re) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (fma.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 (-.f64 (/.f64 1/16 (pow.f64 im 5)) (/.f64 (*.f64 -1/4 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) 2) (/.f64 1/8 (pow.f64 im 3)))) (*.f64 im im))) (pow.f64 re 6)) (sqrt.f64 (/.f64 1 im)))) (fma.f64 -1/2 (*.f64 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 4)) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) 2) (/.f64 1/8 (pow.f64 im 3)))) (sqrt.f64 (/.f64 1 im))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))))
(+.f64 (*.f64 (sqrt.f64 (/.f64 1 im)) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (/.f64 1/16 (pow.f64 im 5)) (/.f64 -1/4 (/.f64 (*.f64 im im) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) 2) (/.f64 1/8 (pow.f64 im 3)))))) (pow.f64 re 6)))) (*.f64 -1/2 (*.f64 (pow.f64 re 4) (*.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) 2) (/.f64 1/8 (pow.f64 im 3))) (sqrt.f64 2)))))) (fma.f64 (*.f64 1/4 (*.f64 (sqrt.f64 2) (*.f64 re re))) (sqrt.f64 (/.f64 1 (pow.f64 im 3))) (*.f64 (sqrt.f64 2) (sqrt.f64 im))))
(fma.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 (sqrt.f64 2) (+.f64 (*.f64 1/2 (*.f64 (fma.f64 1/4 (/.f64 (fma.f64 1/16 (/.f64 1 (pow.f64 im 3)) (/.f64 1/8 (pow.f64 im 3))) (*.f64 im im)) (/.f64 1/16 (pow.f64 im 5))) (pow.f64 re 6))) (*.f64 -1/2 (*.f64 (pow.f64 re 4) (fma.f64 1/16 (/.f64 1 (pow.f64 im 3)) (/.f64 1/8 (pow.f64 im 3))))))) (*.f64 (sqrt.f64 2) (+.f64 (sqrt.f64 im) (*.f64 1/4 (*.f64 re (*.f64 re (sqrt.f64 (/.f64 1 (pow.f64 im 3)))))))))
(*.f64 (sqrt.f64 2) (sqrt.f64 re))
(+.f64 (*.f64 1/4 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) (*.f64 (sqrt.f64 2) (sqrt.f64 re)))
(fma.f64 1/4 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 im im))) (*.f64 (sqrt.f64 2) (sqrt.f64 re)))
(fma.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 (sqrt.f64 2) (*.f64 im im))) (*.f64 (sqrt.f64 2) (sqrt.f64 re)))
(*.f64 (sqrt.f64 2) (+.f64 (sqrt.f64 re) (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 im im)))))
(+.f64 (*.f64 1/4 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) (+.f64 (*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))) (pow.f64 im 4))) (sqrt.f64 (/.f64 1 re)))) (*.f64 (sqrt.f64 2) (sqrt.f64 re))))
(fma.f64 1/4 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 im im))) (fma.f64 -1/2 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 (pow.f64 im 4) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3)))) (sqrt.f64 (/.f64 1 re)))) (*.f64 (sqrt.f64 2) (sqrt.f64 re))))
(fma.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 (sqrt.f64 2) (*.f64 im im))) (fma.f64 (sqrt.f64 2) (sqrt.f64 re) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 -1/2 (*.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3))) (*.f64 (pow.f64 im 4) (sqrt.f64 2)))))))
(fma.f64 (sqrt.f64 2) (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 im im))) (*.f64 (sqrt.f64 2) (+.f64 (sqrt.f64 re) (*.f64 -1/2 (*.f64 (fma.f64 (/.f64 1 (pow.f64 re 3)) 1/16 (/.f64 1/8 (pow.f64 re 3))) (*.f64 (pow.f64 im 4) (sqrt.f64 (/.f64 1 re))))))))
(+.f64 (*.f64 1/4 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) (+.f64 (*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))) (pow.f64 im 4))) (sqrt.f64 (/.f64 1 re)))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (*.f64 -1/4 (/.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))) (pow.f64 re 2)))) (pow.f64 im 6))) (sqrt.f64 (/.f64 1 re)))) (*.f64 (sqrt.f64 2) (sqrt.f64 re)))))
(fma.f64 1/4 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 im im))) (fma.f64 -1/2 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 (pow.f64 im 4) (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3)))) (sqrt.f64 (/.f64 1 re)))) (fma.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 (pow.f64 im 6) (+.f64 (/.f64 1/16 (pow.f64 re 5)) (*.f64 1/4 (/.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3))) (*.f64 re re))))) (sqrt.f64 (/.f64 1 re)))) (*.f64 (sqrt.f64 2) (sqrt.f64 re)))))
(+.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) (+.f64 (*.f64 -1/2 (*.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3))) (*.f64 (pow.f64 im 4) (sqrt.f64 2)))) (*.f64 1/2 (*.f64 (+.f64 (/.f64 1/16 (pow.f64 re 5)) (*.f64 1/4 (/.f64 (+.f64 (pow.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2) (/.f64 1/8 (pow.f64 re 3))) (*.f64 re re)))) (*.f64 (pow.f64 im 6) (sqrt.f64 2)))))) (fma.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 (sqrt.f64 2) (*.f64 im im))) (*.f64 (sqrt.f64 2) (sqrt.f64 re))))
(fma.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 2) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 im 4) (fma.f64 (/.f64 1 (pow.f64 re 3)) 1/16 (/.f64 1/8 (pow.f64 re 3))))) (*.f64 1/2 (*.f64 (pow.f64 im 6) (fma.f64 1/4 (/.f64 (fma.f64 (/.f64 1 (pow.f64 re 3)) 1/16 (/.f64 1/8 (pow.f64 re 3))) (*.f64 re re)) (/.f64 1/16 (pow.f64 re 5))))))) (*.f64 (sqrt.f64 2) (+.f64 (sqrt.f64 re) (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 im im))))))

localize8.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
14.3b
(sqrt.f64 (*.f64 (/.f64 im re) im))
0.1b
(*.f64 (/.f64 im re) im)
0.1b
(*.f64 (/.f64 im re) im)
14.3b
(sqrt.f64 (*.f64 (/.f64 im re) im))
Compiler

Compiled 27 to 8 computations (70.4% saved)

series3.0ms (0%)

Counts
1 → 12
Calls

6 calls:

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

rewrite47.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
647×pow1_binary64
600×add-log-exp_binary64
600×log1p-expm1-u_binary64
600×expm1-log1p-u_binary64
585×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify12.0ms (0.1%)

Algorithm
egg-herbie
Rules
38×fma-def_binary64
sub-neg_binary64
+-commutative_binary64
*-commutative_binary64
distribute-lft-in_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
09116
116116
228116
332116
436116
554116
676116
787116
899116
9124116
Stop Event
saturated
Counts
35 → 26
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 -1 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 -1 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 -1 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 -1 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
Outputs
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 -1 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(neg.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 im))
(*.f64 -1 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(neg.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 im))
(*.f64 -1 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(neg.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 im))
(*.f64 -1 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(neg.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 im))

localize30.0ms (0.3%)

Local error

Found 8 expressions with local error:

NewErrorProgram
9.9b
(/.f64 (*.f64 re re) (/.f64 im -1/2))
4.0b
(sqrt.f64 (*.f64 2 (+.f64 re (-.f64 (/.f64 (*.f64 re re) (/.f64 im -1/2)) im))))
0.0b
(+.f64 re (-.f64 (/.f64 (*.f64 re re) (/.f64 im -1/2)) im))
0.0b
(-.f64 (/.f64 (*.f64 re re) (/.f64 im -1/2)) im)
0.0b
(-.f64 (/.f64 (*.f64 re re) (/.f64 im -1/2)) im)
0.0b
(+.f64 re (-.f64 (/.f64 (*.f64 re re) (/.f64 im -1/2)) im))
4.0b
(sqrt.f64 (*.f64 2 (+.f64 re (-.f64 (/.f64 (*.f64 re re) (/.f64 im -1/2)) im))))
9.9b
(/.f64 (*.f64 re re) (/.f64 im -1/2))
Compiler

Compiled 83 to 45 computations (45.8% saved)

series16.0ms (0.2%)

Counts
4 → 84
Calls

24 calls:

TimeVariablePointExpression
3.0ms
re
@inf
(sqrt.f64 (*.f64 2 (+.f64 re (-.f64 (/.f64 (*.f64 re re) (/.f64 im -1/2)) im))))
1.0ms
re
@-inf
(sqrt.f64 (*.f64 2 (+.f64 re (-.f64 (/.f64 (*.f64 re re) (/.f64 im -1/2)) im))))
1.0ms
im
@0
(sqrt.f64 (*.f64 2 (+.f64 re (-.f64 (/.f64 (*.f64 re re) (/.f64 im -1/2)) im))))
1.0ms
re
@0
(sqrt.f64 (*.f64 2 (+.f64 re (-.f64 (/.f64 (*.f64 re re) (/.f64 im -1/2)) im))))
1.0ms
re
@0
(/.f64 (*.f64 re re) (/.f64 im -1/2))

rewrite99.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
703×log-prod_binary64
589×fma-def_binary64
364×fma-neg_binary64
246×expm1-udef_binary64
246×log1p-udef_binary64
Iterations

Useful iterations: 2 (0.0ms)

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

simplify70.0ms (0.7%)

Algorithm
egg-herbie
Rules
712×associate-*l*_binary64
711×associate-*r*_binary64
521×times-frac_binary64
479×associate-/l*_binary64
464×fma-def_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01161604
13681523
213231492
Stop Event
node limit
Counts
404 → 358
Calls
Call 1
Inputs
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -1)) (sqrt.f64 im))
(+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -1)) (sqrt.f64 im)))
(+.f64 (*.f64 -1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (+.f64 (pow.f64 (*.f64 1/2 (*.f64 (/.f64 1 (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) 2) (*.f64 1/2 (/.f64 1 im))) (pow.f64 re 2))) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -1)) (sqrt.f64 im))))
(+.f64 (*.f64 -1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (+.f64 (pow.f64 (*.f64 1/2 (*.f64 (/.f64 1 (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) 2) (*.f64 1/2 (/.f64 1 im))) (pow.f64 re 2))) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -1)) (sqrt.f64 im)) (*.f64 1/4 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (+.f64 (pow.f64 (*.f64 1/2 (*.f64 (/.f64 1 (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) 2) (*.f64 1/2 (/.f64 1 im))) (pow.f64 re 3))) (pow.f64 (sqrt.f64 -1) 3)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 -1/2))) (sqrt.f64 (/.f64 1 im)))
(+.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 -1/2))) (sqrt.f64 (/.f64 1 im))) (*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -1/2)) (sqrt.f64 im))))
(+.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 -1/2))) (sqrt.f64 (/.f64 1 im))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -1/2)) (sqrt.f64 im))) (*.f64 -1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (+.f64 (pow.f64 (*.f64 1/2 (*.f64 (/.f64 1 (sqrt.f64 -1/2)) (sqrt.f64 im))) 2) im)) (*.f64 re (sqrt.f64 -1/2))) (sqrt.f64 im)))))
(+.f64 (*.f64 1/4 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (+.f64 im (pow.f64 (*.f64 1/2 (*.f64 (/.f64 1 (sqrt.f64 -1/2)) (sqrt.f64 im))) 2))) (*.f64 (pow.f64 re 2) (pow.f64 (sqrt.f64 -1/2) 3))) (sqrt.f64 (pow.f64 im 3)))) (+.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 -1/2))) (sqrt.f64 (/.f64 1 im))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -1/2)) (sqrt.f64 im))) (*.f64 -1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (+.f64 (pow.f64 (*.f64 1/2 (*.f64 (/.f64 1 (sqrt.f64 -1/2)) (sqrt.f64 im))) 2) im)) (*.f64 re (sqrt.f64 -1/2))) (sqrt.f64 im))))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 re (sqrt.f64 -2))) (sqrt.f64 (/.f64 1 im))))
(+.f64 (*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2)) (sqrt.f64 im))) (*.f64 -1 (*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 re (sqrt.f64 -2))) (sqrt.f64 (/.f64 1 im)))))
(+.f64 (*.f64 -1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 -2) (-.f64 im (pow.f64 (*.f64 1/2 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 im))) 2))) (*.f64 (sqrt.f64 1/2) re)) (sqrt.f64 im))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2)) (sqrt.f64 im))) (*.f64 -1 (*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 re (sqrt.f64 -2))) (sqrt.f64 (/.f64 1 im))))))
(+.f64 (*.f64 -1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 -2) (-.f64 im (pow.f64 (*.f64 1/2 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 im))) 2))) (*.f64 (sqrt.f64 1/2) re)) (sqrt.f64 im))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2)) (sqrt.f64 im))) (+.f64 (*.f64 -1/4 (*.f64 (/.f64 (*.f64 (sqrt.f64 -2) (-.f64 im (pow.f64 (*.f64 1/2 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 im))) 2))) (*.f64 (pow.f64 (sqrt.f64 1/2) 3) (pow.f64 re 2))) (sqrt.f64 (pow.f64 im 3)))) (*.f64 -1 (*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 re (sqrt.f64 -2))) (sqrt.f64 (/.f64 1 im)))))))
(*.f64 -1 im)
(+.f64 re (*.f64 -1 im))
(+.f64 re (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(+.f64 re (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(+.f64 re (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(+.f64 re (+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im))))
(+.f64 re (+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im))))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(+.f64 re (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(+.f64 re (+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im))))
(+.f64 re (+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im))))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(+.f64 re (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(+.f64 re (+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im))))
(+.f64 re (+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im))))
(*.f64 -1 im)
(+.f64 re (*.f64 -1 im))
(+.f64 re (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(+.f64 re (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(*.f64 -1 im)
(+.f64 re (*.f64 -1 im))
(+.f64 re (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(+.f64 re (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(*.f64 -1 im)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(*.f64 -1 im)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(*.f64 -1 im)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
Outputs
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 -1/2 (/.f64 re (/.f64 im re)))
(*.f64 -1/2 (*.f64 (/.f64 re im) re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 -1/2 (/.f64 re (/.f64 im re)))
(*.f64 -1/2 (*.f64 (/.f64 re im) re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 -1/2 (/.f64 re (/.f64 im re)))
(*.f64 -1/2 (*.f64 (/.f64 re im) re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 -1/2 (/.f64 re (/.f64 im re)))
(*.f64 -1/2 (*.f64 (/.f64 re im) re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 -1/2 (/.f64 re (/.f64 im re)))
(*.f64 -1/2 (*.f64 (/.f64 re im) re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 -1/2 (/.f64 re (/.f64 im re)))
(*.f64 -1/2 (*.f64 (/.f64 re im) re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 -1/2 (/.f64 re (/.f64 im re)))
(*.f64 -1/2 (*.f64 (/.f64 re im) re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 -1/2 (/.f64 re (/.f64 im re)))
(*.f64 -1/2 (*.f64 (/.f64 re im) re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 -1/2 (/.f64 re (/.f64 im re)))
(*.f64 -1/2 (*.f64 (/.f64 re im) re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 -1/2 (/.f64 re (/.f64 im re)))
(*.f64 -1/2 (*.f64 (/.f64 re im) re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 -1/2 (/.f64 re (/.f64 im re)))
(*.f64 -1/2 (*.f64 (/.f64 re im) re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 -1/2 (/.f64 re (/.f64 im re)))
(*.f64 -1/2 (*.f64 (/.f64 re im) re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 -1/2 (/.f64 re (/.f64 im re)))
(*.f64 -1/2 (*.f64 (/.f64 re im) re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 -1/2 (/.f64 re (/.f64 im re)))
(*.f64 -1/2 (*.f64 (/.f64 re im) re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 -1/2 (/.f64 re (/.f64 im re)))
(*.f64 -1/2 (*.f64 (/.f64 re im) re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 -1/2 (/.f64 re (/.f64 im re)))
(*.f64 -1/2 (*.f64 (/.f64 re im) re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 -1/2 (/.f64 re (/.f64 im re)))
(*.f64 -1/2 (*.f64 (/.f64 re im) re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 -1/2 (/.f64 re (/.f64 im re)))
(*.f64 -1/2 (*.f64 (/.f64 re im) re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 -1/2 (/.f64 re (/.f64 im re)))
(*.f64 -1/2 (*.f64 (/.f64 re im) re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 -1/2 (/.f64 re (/.f64 im re)))
(*.f64 -1/2 (*.f64 (/.f64 re im) re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 -1/2 (/.f64 re (/.f64 im re)))
(*.f64 -1/2 (*.f64 (/.f64 re im) re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 -1/2 (/.f64 re (/.f64 im re)))
(*.f64 -1/2 (*.f64 (/.f64 re im) re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 -1/2 (/.f64 re (/.f64 im re)))
(*.f64 -1/2 (*.f64 (/.f64 re im) re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 -1/2 (/.f64 re (/.f64 im re)))
(*.f64 -1/2 (*.f64 (/.f64 re im) re))
(*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -1)) (sqrt.f64 im))
(*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1) (sqrt.f64 im)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
(+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -1)) (sqrt.f64 im)))
(fma.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 -1) re)) (sqrt.f64 (/.f64 1 im))) (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1) (sqrt.f64 im))))
(fma.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1) (sqrt.f64 im)) (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -1)) re))))
(fma.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1) (sqrt.f64 im)) (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 im))) (sqrt.f64 -1)) re)))
(+.f64 (*.f64 -1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (+.f64 (pow.f64 (*.f64 1/2 (*.f64 (/.f64 1 (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) 2) (*.f64 1/2 (/.f64 1 im))) (pow.f64 re 2))) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -1)) (sqrt.f64 im))))
(fma.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 -1) (*.f64 (*.f64 re re) (+.f64 (pow.f64 (*.f64 (*.f64 1/2 (/.f64 1 (sqrt.f64 -1))) (sqrt.f64 (/.f64 1 im))) 2) (/.f64 1/2 im)))))) (fma.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 -1) re)) (sqrt.f64 (/.f64 1 im))) (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1) (sqrt.f64 im)))))
(+.f64 (*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 2) (sqrt.f64 im))) (*.f64 (sqrt.f64 (/.f64 1 im)) (+.f64 (/.f64 (*.f64 -1/2 (sqrt.f64 2)) (/.f64 (/.f64 (sqrt.f64 -1) (*.f64 re re)) (+.f64 (pow.f64 (*.f64 1/2 (/.f64 (sqrt.f64 (/.f64 1 im)) (sqrt.f64 -1))) 2) (/.f64 1/2 im)))) (*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -1)) re)))))
(fma.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1) (sqrt.f64 im)) (*.f64 (sqrt.f64 (/.f64 1 im)) (fma.f64 -1/2 (*.f64 (*.f64 re (/.f64 (sqrt.f64 2) (sqrt.f64 -1))) (*.f64 re (+.f64 (pow.f64 (*.f64 1/2 (/.f64 (sqrt.f64 (/.f64 1 im)) (sqrt.f64 -1))) 2) (/.f64 1/2 im)))) (*.f64 1/2 (*.f64 re (/.f64 (sqrt.f64 2) (sqrt.f64 -1)))))))
(+.f64 (*.f64 -1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (+.f64 (pow.f64 (*.f64 1/2 (*.f64 (/.f64 1 (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) 2) (*.f64 1/2 (/.f64 1 im))) (pow.f64 re 2))) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -1)) (sqrt.f64 im)) (*.f64 1/4 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (+.f64 (pow.f64 (*.f64 1/2 (*.f64 (/.f64 1 (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) 2) (*.f64 1/2 (/.f64 1 im))) (pow.f64 re 3))) (pow.f64 (sqrt.f64 -1) 3)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))))))
(fma.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 -1) (*.f64 (*.f64 re re) (+.f64 (pow.f64 (*.f64 (*.f64 1/2 (/.f64 1 (sqrt.f64 -1))) (sqrt.f64 (/.f64 1 im))) 2) (/.f64 1/2 im)))))) (fma.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 -1) re)) (sqrt.f64 (/.f64 1 im))) (fma.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -1)) (sqrt.f64 im) (*.f64 1/4 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (+.f64 (pow.f64 (*.f64 (*.f64 1/2 (/.f64 1 (sqrt.f64 -1))) (sqrt.f64 (/.f64 1 im))) 2) (/.f64 1/2 im)) (pow.f64 re 3))) (pow.f64 (sqrt.f64 -1) 3)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))))))
(+.f64 (fma.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1) (sqrt.f64 im)) (*.f64 (/.f64 (*.f64 (+.f64 (pow.f64 (*.f64 1/2 (/.f64 (sqrt.f64 (/.f64 1 im)) (sqrt.f64 -1))) 2) (/.f64 1/2 im)) (*.f64 (pow.f64 re 3) (sqrt.f64 2))) (*.f64 -1 (sqrt.f64 -1))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 3))) 1/4))) (*.f64 (sqrt.f64 (/.f64 1 im)) (+.f64 (/.f64 (*.f64 -1/2 (sqrt.f64 2)) (/.f64 (/.f64 (sqrt.f64 -1) (*.f64 re re)) (+.f64 (pow.f64 (*.f64 1/2 (/.f64 (sqrt.f64 (/.f64 1 im)) (sqrt.f64 -1))) 2) (/.f64 1/2 im)))) (*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -1)) re)))))
(fma.f64 (sqrt.f64 (/.f64 1 im)) (fma.f64 -1/2 (*.f64 (*.f64 re (/.f64 (sqrt.f64 2) (sqrt.f64 -1))) (*.f64 re (+.f64 (pow.f64 (*.f64 1/2 (/.f64 (sqrt.f64 (/.f64 1 im)) (sqrt.f64 -1))) 2) (/.f64 1/2 im)))) (*.f64 1/2 (*.f64 re (/.f64 (sqrt.f64 2) (sqrt.f64 -1))))) (fma.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 3))) (*.f64 -1/4 (/.f64 (+.f64 (pow.f64 (*.f64 1/2 (/.f64 (sqrt.f64 (/.f64 1 im)) (sqrt.f64 -1))) 2) (/.f64 1/2 im)) (/.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 2) (pow.f64 re 3))))) (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1) (sqrt.f64 im)))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 -1/2))) (sqrt.f64 (/.f64 1 im)))
(*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 -1/2))))
(*.f64 (sqrt.f64 2) (*.f64 re (*.f64 (sqrt.f64 -1/2) (sqrt.f64 (/.f64 1 im)))))
(*.f64 re (*.f64 (sqrt.f64 -1/2) (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 im)))))
(+.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 -1/2))) (sqrt.f64 (/.f64 1 im))) (*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -1/2)) (sqrt.f64 im))))
(fma.f64 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 -1/2))) (sqrt.f64 (/.f64 1 im)) (*.f64 1/2 (*.f64 (sqrt.f64 im) (/.f64 (sqrt.f64 2) (sqrt.f64 -1/2)))))
(fma.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 re (*.f64 (sqrt.f64 2) (sqrt.f64 -1/2))) (*.f64 (sqrt.f64 im) (/.f64 (*.f64 1/2 (sqrt.f64 2)) (sqrt.f64 -1/2))))
(fma.f64 (*.f64 re (sqrt.f64 2)) (*.f64 (sqrt.f64 (/.f64 1 im)) (sqrt.f64 -1/2)) (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 im) (/.f64 1/2 (sqrt.f64 -1/2)))))
(+.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 -1/2))) (sqrt.f64 (/.f64 1 im))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -1/2)) (sqrt.f64 im))) (*.f64 -1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (+.f64 (pow.f64 (*.f64 1/2 (*.f64 (/.f64 1 (sqrt.f64 -1/2)) (sqrt.f64 im))) 2) im)) (*.f64 re (sqrt.f64 -1/2))) (sqrt.f64 im)))))
(fma.f64 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 -1/2))) (sqrt.f64 (/.f64 1 im)) (fma.f64 1/2 (*.f64 (sqrt.f64 im) (/.f64 (sqrt.f64 2) (sqrt.f64 -1/2))) (*.f64 -1/2 (*.f64 (sqrt.f64 im) (*.f64 (/.f64 (sqrt.f64 2) re) (/.f64 (+.f64 im (pow.f64 (*.f64 1/2 (*.f64 (sqrt.f64 im) (/.f64 1 (sqrt.f64 -1/2)))) 2)) (sqrt.f64 -1/2)))))))
(fma.f64 (sqrt.f64 2) (*.f64 re (*.f64 (sqrt.f64 -1/2) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 im) (+.f64 (/.f64 (*.f64 1/2 (sqrt.f64 2)) (sqrt.f64 -1/2)) (*.f64 -1/2 (*.f64 (/.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 -1/2))) (+.f64 im (pow.f64 (/.f64 (*.f64 (sqrt.f64 im) 1/2) (sqrt.f64 -1/2)) 2)))))))
(fma.f64 (sqrt.f64 im) (fma.f64 -1/2 (*.f64 (+.f64 im (pow.f64 (*.f64 (sqrt.f64 im) (/.f64 1/2 (sqrt.f64 -1/2))) 2)) (/.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 -1/2)))) (*.f64 1/2 (/.f64 (sqrt.f64 2) (sqrt.f64 -1/2)))) (*.f64 re (*.f64 (sqrt.f64 -1/2) (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 im))))))
(+.f64 (*.f64 1/4 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (+.f64 im (pow.f64 (*.f64 1/2 (*.f64 (/.f64 1 (sqrt.f64 -1/2)) (sqrt.f64 im))) 2))) (*.f64 (pow.f64 re 2) (pow.f64 (sqrt.f64 -1/2) 3))) (sqrt.f64 (pow.f64 im 3)))) (+.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 -1/2))) (sqrt.f64 (/.f64 1 im))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -1/2)) (sqrt.f64 im))) (*.f64 -1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (+.f64 (pow.f64 (*.f64 1/2 (*.f64 (/.f64 1 (sqrt.f64 -1/2)) (sqrt.f64 im))) 2) im)) (*.f64 re (sqrt.f64 -1/2))) (sqrt.f64 im))))))
(fma.f64 1/4 (*.f64 (*.f64 (/.f64 (sqrt.f64 2) (*.f64 re re)) (/.f64 (+.f64 im (pow.f64 (*.f64 1/2 (*.f64 (sqrt.f64 im) (/.f64 1 (sqrt.f64 -1/2)))) 2)) (pow.f64 (sqrt.f64 -1/2) 3))) (sqrt.f64 (pow.f64 im 3))) (fma.f64 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 -1/2))) (sqrt.f64 (/.f64 1 im)) (fma.f64 1/2 (*.f64 (sqrt.f64 im) (/.f64 (sqrt.f64 2) (sqrt.f64 -1/2))) (*.f64 -1/2 (*.f64 (sqrt.f64 im) (*.f64 (/.f64 (sqrt.f64 2) re) (/.f64 (+.f64 im (pow.f64 (*.f64 1/2 (*.f64 (sqrt.f64 im) (/.f64 1 (sqrt.f64 -1/2)))) 2)) (sqrt.f64 -1/2))))))))
(fma.f64 1/4 (*.f64 (*.f64 (/.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) (*.f64 -1/2 (*.f64 re re)))) (+.f64 im (pow.f64 (/.f64 (*.f64 (sqrt.f64 im) 1/2) (sqrt.f64 -1/2)) 2))) (sqrt.f64 (pow.f64 im 3))) (fma.f64 (sqrt.f64 2) (*.f64 re (*.f64 (sqrt.f64 -1/2) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 im) (+.f64 (/.f64 (*.f64 1/2 (sqrt.f64 2)) (sqrt.f64 -1/2)) (*.f64 -1/2 (*.f64 (/.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 -1/2))) (+.f64 im (pow.f64 (/.f64 (*.f64 (sqrt.f64 im) 1/2) (sqrt.f64 -1/2)) 2))))))))
(fma.f64 (sqrt.f64 im) (fma.f64 -1/2 (*.f64 (+.f64 im (pow.f64 (*.f64 (sqrt.f64 im) (/.f64 1/2 (sqrt.f64 -1/2))) 2)) (/.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 -1/2)))) (*.f64 1/2 (/.f64 (sqrt.f64 2) (sqrt.f64 -1/2)))) (fma.f64 (pow.f64 im 3/2) (*.f64 -1/2 (/.f64 (+.f64 im (pow.f64 (*.f64 (sqrt.f64 im) (/.f64 1/2 (sqrt.f64 -1/2))) 2)) (*.f64 (sqrt.f64 -1/2) (/.f64 re (/.f64 (sqrt.f64 2) re))))) (*.f64 re (*.f64 (sqrt.f64 -1/2) (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 im)))))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 re (sqrt.f64 -2))) (sqrt.f64 (/.f64 1 im))))
(neg.f64 (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 (*.f64 re (sqrt.f64 1/2)) (sqrt.f64 -2))))
(*.f64 (sqrt.f64 (/.f64 1 im)) (neg.f64 (*.f64 re (*.f64 (sqrt.f64 -2) (sqrt.f64 1/2)))))
(*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 (sqrt.f64 -2) (*.f64 (neg.f64 (sqrt.f64 1/2)) re)))
(+.f64 (*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2)) (sqrt.f64 im))) (*.f64 -1 (*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 re (sqrt.f64 -2))) (sqrt.f64 (/.f64 1 im)))))
(fma.f64 1/2 (*.f64 (sqrt.f64 im) (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2))) (neg.f64 (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 (*.f64 re (sqrt.f64 1/2)) (sqrt.f64 -2)))))
(-.f64 (*.f64 (sqrt.f64 im) (*.f64 1/2 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2)))) (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 re (*.f64 (sqrt.f64 -2) (sqrt.f64 1/2)))))
(-.f64 (*.f64 (sqrt.f64 im) (*.f64 1/2 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2)))) (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 (sqrt.f64 -2) (*.f64 re (sqrt.f64 1/2)))))
(+.f64 (*.f64 -1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 -2) (-.f64 im (pow.f64 (*.f64 1/2 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 im))) 2))) (*.f64 (sqrt.f64 1/2) re)) (sqrt.f64 im))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2)) (sqrt.f64 im))) (*.f64 -1 (*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 re (sqrt.f64 -2))) (sqrt.f64 (/.f64 1 im))))))
(fma.f64 -1/2 (*.f64 (sqrt.f64 im) (*.f64 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2)) (/.f64 (-.f64 im (pow.f64 (*.f64 1/2 (*.f64 (sqrt.f64 im) (/.f64 1 (sqrt.f64 1/2)))) 2)) re))) (fma.f64 1/2 (*.f64 (sqrt.f64 im) (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2))) (neg.f64 (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 (*.f64 re (sqrt.f64 1/2)) (sqrt.f64 -2))))))
(-.f64 (*.f64 (sqrt.f64 im) (+.f64 (*.f64 (*.f64 -1/2 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2))) (/.f64 (-.f64 im (pow.f64 (*.f64 (sqrt.f64 im) (/.f64 1/2 (sqrt.f64 1/2))) 2)) re)) (*.f64 1/2 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2))))) (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 re (*.f64 (sqrt.f64 -2) (sqrt.f64 1/2)))))
(fma.f64 (sqrt.f64 im) (fma.f64 (*.f64 -1/2 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2))) (/.f64 (-.f64 im (pow.f64 (/.f64 (sqrt.f64 im) (/.f64 (sqrt.f64 1/2) 1/2)) 2)) re) (*.f64 1/2 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2)))) (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 (sqrt.f64 -2) (*.f64 (neg.f64 (sqrt.f64 1/2)) re))))
(+.f64 (*.f64 -1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 -2) (-.f64 im (pow.f64 (*.f64 1/2 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 im))) 2))) (*.f64 (sqrt.f64 1/2) re)) (sqrt.f64 im))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2)) (sqrt.f64 im))) (+.f64 (*.f64 -1/4 (*.f64 (/.f64 (*.f64 (sqrt.f64 -2) (-.f64 im (pow.f64 (*.f64 1/2 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 im))) 2))) (*.f64 (pow.f64 (sqrt.f64 1/2) 3) (pow.f64 re 2))) (sqrt.f64 (pow.f64 im 3)))) (*.f64 -1 (*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 re (sqrt.f64 -2))) (sqrt.f64 (/.f64 1 im)))))))
(fma.f64 -1/2 (*.f64 (sqrt.f64 im) (*.f64 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2)) (/.f64 (-.f64 im (pow.f64 (*.f64 1/2 (*.f64 (sqrt.f64 im) (/.f64 1 (sqrt.f64 1/2)))) 2)) re))) (fma.f64 1/2 (*.f64 (sqrt.f64 im) (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2))) (fma.f64 -1/4 (*.f64 (sqrt.f64 (pow.f64 im 3)) (/.f64 (sqrt.f64 -2) (/.f64 (*.f64 (*.f64 re re) (pow.f64 (sqrt.f64 1/2) 3)) (-.f64 im (pow.f64 (*.f64 1/2 (*.f64 (sqrt.f64 im) (/.f64 1 (sqrt.f64 1/2)))) 2))))) (neg.f64 (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 (*.f64 re (sqrt.f64 1/2)) (sqrt.f64 -2)))))))
(+.f64 (-.f64 (*.f64 (*.f64 (/.f64 (sqrt.f64 -2) (*.f64 re re)) (/.f64 (-.f64 im (pow.f64 (*.f64 (sqrt.f64 im) (/.f64 1/2 (sqrt.f64 1/2))) 2)) (*.f64 1/2 (sqrt.f64 1/2)))) (*.f64 (sqrt.f64 (pow.f64 im 3)) -1/4)) (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 re (*.f64 (sqrt.f64 -2) (sqrt.f64 1/2))))) (*.f64 (sqrt.f64 im) (+.f64 (*.f64 (*.f64 -1/2 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2))) (/.f64 (-.f64 im (pow.f64 (*.f64 (sqrt.f64 im) (/.f64 1/2 (sqrt.f64 1/2))) 2)) re)) (*.f64 1/2 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2))))))
(fma.f64 (sqrt.f64 im) (fma.f64 (*.f64 -1/2 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2))) (/.f64 (-.f64 im (pow.f64 (/.f64 (sqrt.f64 im) (/.f64 (sqrt.f64 1/2) 1/2)) 2)) re) (*.f64 1/2 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2)))) (fma.f64 (pow.f64 im 3/2) (*.f64 -1/2 (/.f64 (*.f64 (sqrt.f64 -2) (-.f64 im (pow.f64 (/.f64 (sqrt.f64 im) (/.f64 (sqrt.f64 1/2) 1/2)) 2))) (*.f64 (*.f64 re re) (sqrt.f64 1/2)))) (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 (sqrt.f64 -2) (*.f64 (neg.f64 (sqrt.f64 1/2)) re)))))
(*.f64 -1 im)
(neg.f64 im)
(+.f64 re (*.f64 -1 im))
(+.f64 re (neg.f64 im))
(-.f64 re im)
(+.f64 re (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(+.f64 re (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im)))
(-.f64 (fma.f64 -1/2 (/.f64 re (/.f64 im re)) re) im)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) (-.f64 re im))
(+.f64 re (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(+.f64 re (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im)))
(-.f64 (fma.f64 -1/2 (/.f64 re (/.f64 im re)) re) im)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) (-.f64 re im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 -1/2 (/.f64 re (/.f64 im re)))
(*.f64 -1/2 (*.f64 (/.f64 re im) re))
(+.f64 re (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(+.f64 re (*.f64 -1/2 (/.f64 (*.f64 re re) im)))
(fma.f64 -1/2 (/.f64 re (/.f64 im re)) re)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) re)
(+.f64 re (+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im))))
(+.f64 re (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im)))
(-.f64 (fma.f64 -1/2 (/.f64 re (/.f64 im re)) re) im)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) (-.f64 re im))
(+.f64 re (+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im))))
(+.f64 re (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im)))
(-.f64 (fma.f64 -1/2 (/.f64 re (/.f64 im re)) re) im)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) (-.f64 re im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 -1/2 (/.f64 re (/.f64 im re)))
(*.f64 -1/2 (*.f64 (/.f64 re im) re))
(+.f64 re (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(+.f64 re (*.f64 -1/2 (/.f64 (*.f64 re re) im)))
(fma.f64 -1/2 (/.f64 re (/.f64 im re)) re)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) re)
(+.f64 re (+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im))))
(+.f64 re (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im)))
(-.f64 (fma.f64 -1/2 (/.f64 re (/.f64 im re)) re) im)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) (-.f64 re im))
(+.f64 re (+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im))))
(+.f64 re (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im)))
(-.f64 (fma.f64 -1/2 (/.f64 re (/.f64 im re)) re) im)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) (-.f64 re im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 -1/2 (/.f64 re (/.f64 im re)))
(*.f64 -1/2 (*.f64 (/.f64 re im) re))
(+.f64 re (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(+.f64 re (*.f64 -1/2 (/.f64 (*.f64 re re) im)))
(fma.f64 -1/2 (/.f64 re (/.f64 im re)) re)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) re)
(+.f64 re (+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im))))
(+.f64 re (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im)))
(-.f64 (fma.f64 -1/2 (/.f64 re (/.f64 im re)) re) im)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) (-.f64 re im))
(+.f64 re (+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im))))
(+.f64 re (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im)))
(-.f64 (fma.f64 -1/2 (/.f64 re (/.f64 im re)) re) im)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) (-.f64 re im))
(*.f64 -1 im)
(neg.f64 im)
(+.f64 re (*.f64 -1 im))
(+.f64 re (neg.f64 im))
(-.f64 re im)
(+.f64 re (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(+.f64 re (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im)))
(-.f64 (fma.f64 -1/2 (/.f64 re (/.f64 im re)) re) im)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) (-.f64 re im))
(+.f64 re (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(+.f64 re (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im)))
(-.f64 (fma.f64 -1/2 (/.f64 re (/.f64 im re)) re) im)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) (-.f64 re im))
(*.f64 -1 im)
(neg.f64 im)
(+.f64 re (*.f64 -1 im))
(+.f64 re (neg.f64 im))
(-.f64 re im)
(+.f64 re (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(+.f64 re (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im)))
(-.f64 (fma.f64 -1/2 (/.f64 re (/.f64 im re)) re) im)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) (-.f64 re im))
(+.f64 re (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(+.f64 re (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im)))
(-.f64 (fma.f64 -1/2 (/.f64 re (/.f64 im re)) re) im)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) (-.f64 re im))
(*.f64 -1 im)
(neg.f64 im)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(-.f64 (*.f64 -1/2 (/.f64 re (/.f64 im re))) im)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) (neg.f64 im))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(-.f64 (*.f64 -1/2 (/.f64 re (/.f64 im re))) im)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) (neg.f64 im))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(-.f64 (*.f64 -1/2 (/.f64 re (/.f64 im re))) im)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) (neg.f64 im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 -1/2 (/.f64 re (/.f64 im re)))
(*.f64 -1/2 (*.f64 (/.f64 re im) re))
(+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(-.f64 (*.f64 -1/2 (/.f64 re (/.f64 im re))) im)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) (neg.f64 im))
(+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(-.f64 (*.f64 -1/2 (/.f64 re (/.f64 im re))) im)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) (neg.f64 im))
(+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(-.f64 (*.f64 -1/2 (/.f64 re (/.f64 im re))) im)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) (neg.f64 im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 -1/2 (/.f64 re (/.f64 im re)))
(*.f64 -1/2 (*.f64 (/.f64 re im) re))
(+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(-.f64 (*.f64 -1/2 (/.f64 re (/.f64 im re))) im)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) (neg.f64 im))
(+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(-.f64 (*.f64 -1/2 (/.f64 re (/.f64 im re))) im)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) (neg.f64 im))
(+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(-.f64 (*.f64 -1/2 (/.f64 re (/.f64 im re))) im)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) (neg.f64 im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 -1/2 (/.f64 re (/.f64 im re)))
(*.f64 -1/2 (*.f64 (/.f64 re im) re))
(+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(-.f64 (*.f64 -1/2 (/.f64 re (/.f64 im re))) im)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) (neg.f64 im))
(+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(-.f64 (*.f64 -1/2 (/.f64 re (/.f64 im re))) im)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) (neg.f64 im))
(+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(-.f64 (*.f64 -1/2 (/.f64 re (/.f64 im re))) im)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) (neg.f64 im))
(*.f64 -1 im)
(neg.f64 im)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(-.f64 (*.f64 -1/2 (/.f64 re (/.f64 im re))) im)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) (neg.f64 im))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(-.f64 (*.f64 -1/2 (/.f64 re (/.f64 im re))) im)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) (neg.f64 im))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(-.f64 (*.f64 -1/2 (/.f64 re (/.f64 im re))) im)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) (neg.f64 im))
(*.f64 -1 im)
(neg.f64 im)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(-.f64 (*.f64 -1/2 (/.f64 re (/.f64 im re))) im)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) (neg.f64 im))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(-.f64 (*.f64 -1/2 (/.f64 re (/.f64 im re))) im)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) (neg.f64 im))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(-.f64 (*.f64 -1/2 (/.f64 re (/.f64 im re))) im)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) (neg.f64 im))

localize21.0ms (0.2%)

Local error

Found 6 expressions with local error:

NewErrorProgram
25.3b
(pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/4)
10.5b
(/.f64 (*.f64 im im) re)
0.2b
(pow.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/4) 2)
0.2b
(pow.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/4) 2)
10.5b
(/.f64 (*.f64 im im) re)
25.3b
(pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/4)
Compiler

Compiled 56 to 28 computations (50% saved)

series8.0ms (0.1%)

Counts
2 → 48
Calls

12 calls:

TimeVariablePointExpression
1.0ms
im
@0
(pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/4)
1.0ms
re
@0
(pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/4)
1.0ms
im
@inf
(pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/4)
1.0ms
im
@inf
(pow.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/4) 2)
1.0ms
re
@inf
(pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/4)

rewrite53.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
934×pow1_binary64
870×add-log-exp_binary64
870×log1p-expm1-u_binary64
870×expm1-log1p-u_binary64
110×add-sqr-sqrt_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify58.0ms (0.6%)

Algorithm
egg-herbie
Rules
380×distribute-rgt-in_binary64
295×associate-+l-_binary64
281×distribute-lft-in_binary64
267×exp-sum_binary64
262×*-commutative_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
053888
1136888
2322648
3877528
42741504
57737504
Stop Event
node limit
Counts
101 → 67
Calls
Call 1
Inputs
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))) 2)
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))) 2)
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))) 2)
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))) 2)
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re))))) 2)
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re))))) 2)
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re))))) 2)
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re))))) 2)
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))) 2)
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))) 2)
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))) 2)
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))) 2)
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 (*.f64 -1 (pow.f64 im 2))) (*.f64 -1 (log.f64 re))))) 2)
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 (*.f64 -1 (pow.f64 im 2))) (*.f64 -1 (log.f64 re))))) 2)
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 (*.f64 -1 (pow.f64 im 2))) (*.f64 -1 (log.f64 re))))) 2)
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 (*.f64 -1 (pow.f64 im 2))) (*.f64 -1 (log.f64 re))))) 2)
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 2)
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 2)
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 2)
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 2)
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re))))) 2)
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re))))) 2)
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re))))) 2)
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re))))) 2)
Outputs
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 1/4) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) 1/4) (sqrt.f64 im))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 1/4) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) 1/4) (sqrt.f64 im))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 1/4) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) 1/4) (sqrt.f64 im))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 1/4) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) 1/4) (sqrt.f64 im))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 1/4) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) 1/4) (sqrt.f64 im))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 1/4) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) 1/4) (sqrt.f64 im))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 1/4) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) 1/4) (sqrt.f64 im))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 1/4) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) 1/4) (sqrt.f64 im))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 1/4) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) 1/4) (sqrt.f64 im))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 1/4) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) 1/4) (sqrt.f64 im))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 1/4) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) 1/4) (sqrt.f64 im))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 1/4) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) 1/4) (sqrt.f64 im))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(pow.f64 (exp.f64 1/4) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) 1/4) (sqrt.f64 im))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(pow.f64 (exp.f64 1/4) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) 1/4) (sqrt.f64 im))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(pow.f64 (exp.f64 1/4) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) 1/4) (sqrt.f64 im))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(pow.f64 (exp.f64 1/4) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) 1/4) (sqrt.f64 im))
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(pow.f64 (exp.f64 1/4) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) 1/4) (sqrt.f64 im))
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(pow.f64 (exp.f64 1/4) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) 1/4) (sqrt.f64 im))
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(pow.f64 (exp.f64 1/4) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) 1/4) (sqrt.f64 im))
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(pow.f64 (exp.f64 1/4) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) 1/4) (sqrt.f64 im))
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 1/4) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) 1/4) (sqrt.f64 im))
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 1/4) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) 1/4) (sqrt.f64 im))
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 1/4) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) 1/4) (sqrt.f64 im))
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 1/4) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) 1/4) (sqrt.f64 im))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 2)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/4) (sqrt.f64 im)) 2)
(*.f64 im (pow.f64 (/.f64 -1 re) 1/2))
(*.f64 im (sqrt.f64 (/.f64 -1 re)))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 2)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/4) (sqrt.f64 im)) 2)
(*.f64 im (pow.f64 (/.f64 -1 re) 1/2))
(*.f64 im (sqrt.f64 (/.f64 -1 re)))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 2)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/4) (sqrt.f64 im)) 2)
(*.f64 im (pow.f64 (/.f64 -1 re) 1/2))
(*.f64 im (sqrt.f64 (/.f64 -1 re)))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 2)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/4) (sqrt.f64 im)) 2)
(*.f64 im (pow.f64 (/.f64 -1 re) 1/2))
(*.f64 im (sqrt.f64 (/.f64 -1 re)))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re))))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 2)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/4) (sqrt.f64 im)) 2)
(*.f64 im (pow.f64 (/.f64 -1 re) 1/2))
(*.f64 im (sqrt.f64 (/.f64 -1 re)))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re))))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 2)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/4) (sqrt.f64 im)) 2)
(*.f64 im (pow.f64 (/.f64 -1 re) 1/2))
(*.f64 im (sqrt.f64 (/.f64 -1 re)))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re))))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 2)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/4) (sqrt.f64 im)) 2)
(*.f64 im (pow.f64 (/.f64 -1 re) 1/2))
(*.f64 im (sqrt.f64 (/.f64 -1 re)))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re))))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 2)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/4) (sqrt.f64 im)) 2)
(*.f64 im (pow.f64 (/.f64 -1 re) 1/2))
(*.f64 im (sqrt.f64 (/.f64 -1 re)))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 2)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/4) (sqrt.f64 im)) 2)
(*.f64 im (pow.f64 (/.f64 -1 re) 1/2))
(*.f64 im (sqrt.f64 (/.f64 -1 re)))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 2)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/4) (sqrt.f64 im)) 2)
(*.f64 im (pow.f64 (/.f64 -1 re) 1/2))
(*.f64 im (sqrt.f64 (/.f64 -1 re)))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 2)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/4) (sqrt.f64 im)) 2)
(*.f64 im (pow.f64 (/.f64 -1 re) 1/2))
(*.f64 im (sqrt.f64 (/.f64 -1 re)))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 2)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/4) (sqrt.f64 im)) 2)
(*.f64 im (pow.f64 (/.f64 -1 re) 1/2))
(*.f64 im (sqrt.f64 (/.f64 -1 re)))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 (*.f64 -1 (pow.f64 im 2))) (*.f64 -1 (log.f64 re))))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 2)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/4) (sqrt.f64 im)) 2)
(*.f64 im (pow.f64 (/.f64 -1 re) 1/2))
(*.f64 im (sqrt.f64 (/.f64 -1 re)))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 (*.f64 -1 (pow.f64 im 2))) (*.f64 -1 (log.f64 re))))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 2)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/4) (sqrt.f64 im)) 2)
(*.f64 im (pow.f64 (/.f64 -1 re) 1/2))
(*.f64 im (sqrt.f64 (/.f64 -1 re)))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 (*.f64 -1 (pow.f64 im 2))) (*.f64 -1 (log.f64 re))))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 2)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/4) (sqrt.f64 im)) 2)
(*.f64 im (pow.f64 (/.f64 -1 re) 1/2))
(*.f64 im (sqrt.f64 (/.f64 -1 re)))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 (*.f64 -1 (pow.f64 im 2))) (*.f64 -1 (log.f64 re))))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 2)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/4) (sqrt.f64 im)) 2)
(*.f64 im (pow.f64 (/.f64 -1 re) 1/2))
(*.f64 im (sqrt.f64 (/.f64 -1 re)))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 2)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/4) (sqrt.f64 im)) 2)
(*.f64 im (pow.f64 (/.f64 -1 re) 1/2))
(*.f64 im (sqrt.f64 (/.f64 -1 re)))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 2)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/4) (sqrt.f64 im)) 2)
(*.f64 im (pow.f64 (/.f64 -1 re) 1/2))
(*.f64 im (sqrt.f64 (/.f64 -1 re)))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 2)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/4) (sqrt.f64 im)) 2)
(*.f64 im (pow.f64 (/.f64 -1 re) 1/2))
(*.f64 im (sqrt.f64 (/.f64 -1 re)))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 2)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/4) (sqrt.f64 im)) 2)
(*.f64 im (pow.f64 (/.f64 -1 re) 1/2))
(*.f64 im (sqrt.f64 (/.f64 -1 re)))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re))))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 2)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/4) (sqrt.f64 im)) 2)
(*.f64 im (pow.f64 (/.f64 -1 re) 1/2))
(*.f64 im (sqrt.f64 (/.f64 -1 re)))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re))))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 2)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/4) (sqrt.f64 im)) 2)
(*.f64 im (pow.f64 (/.f64 -1 re) 1/2))
(*.f64 im (sqrt.f64 (/.f64 -1 re)))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re))))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 2)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/4) (sqrt.f64 im)) 2)
(*.f64 im (pow.f64 (/.f64 -1 re) 1/2))
(*.f64 im (sqrt.f64 (/.f64 -1 re)))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re))))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 2)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/4) (sqrt.f64 im)) 2)
(*.f64 im (pow.f64 (/.f64 -1 re) 1/2))
(*.f64 im (sqrt.f64 (/.f64 -1 re)))

localize34.0ms (0.4%)

Local error

Found 8 expressions with local error:

NewErrorProgram
26.5b
(pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/6)
10.5b
(/.f64 (*.f64 im im) re)
2.4b
(exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/6)) 3))
0.2b
(*.f64 (log.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/6)) 3)
0.2b
(*.f64 (log.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/6)) 3)
2.4b
(exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/6)) 3))
10.5b
(/.f64 (*.f64 im im) re)
26.5b
(pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/6)
Compiler

Compiled 82 to 44 computations (46.3% saved)

series160.0ms (1.7%)

Counts
2 → 48
Calls

12 calls:

TimeVariablePointExpression
78.0ms
re
@-inf
(*.f64 (log.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/6)) 3)
22.0ms
im
@inf
(*.f64 (log.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/6)) 3)
21.0ms
re
@inf
(*.f64 (log.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/6)) 3)
18.0ms
im
@0
(*.f64 (log.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/6)) 3)
18.0ms
re
@0
(*.f64 (log.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/6)) 3)

rewrite181.0ms (1.9%)

Algorithm
egg-rewrite
egg-rewrite-iter-limit
batch-egg-rewrite
Rules
540×log-prod_binary64
540×log-prod_binary64
518×log-prod_binary64
388×exp-prod_binary64
283×pow-prod-down_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01332
126832
2330232
01316
126816
2330216
01316
01218
125112
230808
Stop Event
node limit
iter limit
node limit
node limit
Counts
2 → 48
Calls
Call 1
Inputs
(exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/6)) 3))
(*.f64 (log.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/6)) 3)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/6) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 (pow.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/6) 3)) (cbrt.f64 (pow.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/6) 3))) (cbrt.f64 (pow.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/6) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/6) 3)) (sqrt.f64 (pow.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/6) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/6) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/6) 3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/6) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (*.f64 (pow.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/6) 3) (pow.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/6) 3)) (pow.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/6) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/6) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/6) 3)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (cbrt.f64 (/.f64 im (sqrt.f64 re)))) (log.f64 (cbrt.f64 (*.f64 (/.f64 im re) im))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (/.f64 im (sqrt.f64 re))) (log.f64 (sqrt.f64 -1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (/.f64 im (sqrt.f64 re))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 im) (log.f64 (sqrt.f64 (/.f64 1 re))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 -1)) (log.f64 (/.f64 im (sqrt.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (cbrt.f64 (*.f64 (/.f64 im re) im))) (log.f64 (cbrt.f64 (/.f64 im (sqrt.f64 re)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (log.f64 (/.f64 im (sqrt.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (cbrt.f64 (pow.f64 (/.f64 im (sqrt.f64 re)) 4)))) (log.f64 (cbrt.f64 (/.f64 im (sqrt.f64 re)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (/.f64 im (sqrt.f64 re)))) (log.f64 (sqrt.f64 (/.f64 im (sqrt.f64 re)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (*.f64 (/.f64 im re) im) 1/4)) (log.f64 (pow.f64 (*.f64 (/.f64 im re) im) 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (*.f64 (/.f64 im re) im)) (cbrt.f64 (cbrt.f64 (*.f64 (/.f64 im re) im))))) (log.f64 (pow.f64 (*.f64 (/.f64 im re) im) 1/18)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (*.f64 (/.f64 im re) im) 5/12)) (log.f64 (pow.f64 (/.f64 im (sqrt.f64 re)) 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 im) (log.f64 (sqrt.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (log.f64 (/.f64 im (sqrt.f64 re))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (sqrt.f64 im)) (log.f64 (sqrt.f64 (/.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (log.f64 (sqrt.f64 (*.f64 re (pow.f64 im -2)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (sqrt.f64 (*.f64 im (neg.f64 im)))) (log.f64 (sqrt.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (sqrt.f64 (*.f64 im (neg.f64 im)))) (log.f64 (sqrt.f64 (neg.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (log.f64 (/.f64 im (sqrt.f64 re))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (log.f64 (/.f64 im (sqrt.f64 re))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (log.f64 (/.f64 im (sqrt.f64 re))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (log.f64 (/.f64 im (sqrt.f64 re)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (log.f64 (/.f64 im (sqrt.f64 re)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (log.f64 (/.f64 im (sqrt.f64 re)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (log.f64 (/.f64 im (sqrt.f64 re))))) 2)) (cbrt.f64 (log.f64 (log.f64 (/.f64 im (sqrt.f64 re))))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (log.f64 (/.f64 im (sqrt.f64 re)))))) (sqrt.f64 (log.f64 (log.f64 (/.f64 im (sqrt.f64 re))))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (log.f64 (sqrt.f64 (*.f64 re (pow.f64 im -2)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (log.f64 (/.f64 im (sqrt.f64 re))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 im (sqrt.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (-.f64 (/.f64 im (sqrt.f64 re)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (log.f64 (/.f64 im (sqrt.f64 re))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (log.f64 (/.f64 im (sqrt.f64 re)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (log.f64 (/.f64 im (sqrt.f64 re)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (log.f64 (/.f64 im (sqrt.f64 re))))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (log.f64 (/.f64 im (sqrt.f64 re))))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (log.f64 (/.f64 im (sqrt.f64 re))))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (log.f64 (/.f64 im (sqrt.f64 re)))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (-.f64 (/.f64 im (sqrt.f64 re)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (log.f64 (/.f64 im (sqrt.f64 re)))))))))

simplify50.0ms (0.5%)

Algorithm
egg-herbie
Rules
581×distribute-rgt-in_binary64
469×distribute-lft-in_binary64
373×fma-def_binary64
335×associate-*l*_binary64
314×associate-*r*_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
062852
1190852
2440740
31176644
44132596
Stop Event
node limit
Counts
96 → 63
Calls
Call 1
Inputs
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))) 3)
(*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (*.f64 -1 (pow.f64 im 2))) (*.f64 -1 (log.f64 re))))) (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 2))
(*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (*.f64 -1 (pow.f64 im 2))) (*.f64 -1 (log.f64 re))))) (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 2))
(*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (*.f64 -1 (pow.f64 im 2))) (*.f64 -1 (log.f64 re))))) (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 2))
(*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (*.f64 -1 (pow.f64 im 2))) (*.f64 -1 (log.f64 re))))) (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 2))
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re))))) 3)
(*.f64 1/2 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))
(*.f64 1/2 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))
(*.f64 1/2 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))
(*.f64 1/2 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))
(*.f64 1/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re))))
(*.f64 1/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re))))
(*.f64 1/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re))))
(*.f64 1/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re))))
(*.f64 1/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))
(*.f64 1/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))
(*.f64 1/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))
(*.f64 1/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))
(*.f64 1/2 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))
(*.f64 1/2 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))
(*.f64 1/2 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))
(*.f64 1/2 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))
(*.f64 1/2 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))
(*.f64 1/2 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))
(*.f64 1/2 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))
(*.f64 1/2 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))
(*.f64 1/2 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re))))
(*.f64 1/2 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re))))
(*.f64 1/2 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re))))
(*.f64 1/2 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re))))
Outputs
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 (neg.f64 (*.f64 im im)) 1/6) (pow.f64 re -1/6)) 3)
(exp.f64 (fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im)))
(pow.f64 (/.f64 (neg.f64 (*.f64 im im)) re) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 (neg.f64 (*.f64 im im)) 1/6) (pow.f64 re -1/6)) 3)
(exp.f64 (fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im)))
(pow.f64 (/.f64 (neg.f64 (*.f64 im im)) re) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 (neg.f64 (*.f64 im im)) 1/6) (pow.f64 re -1/6)) 3)
(exp.f64 (fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im)))
(pow.f64 (/.f64 (neg.f64 (*.f64 im im)) re) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 (neg.f64 (*.f64 im im)) 1/6) (pow.f64 re -1/6)) 3)
(exp.f64 (fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im)))
(pow.f64 (/.f64 (neg.f64 (*.f64 im im)) re) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 (neg.f64 (*.f64 im im)) 1/6) (pow.f64 re -1/6)) 3)
(exp.f64 (fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im)))
(pow.f64 (/.f64 (neg.f64 (*.f64 im im)) re) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 (neg.f64 (*.f64 im im)) 1/6) (pow.f64 re -1/6)) 3)
(exp.f64 (fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im)))
(pow.f64 (/.f64 (neg.f64 (*.f64 im im)) re) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 (neg.f64 (*.f64 im im)) 1/6) (pow.f64 re -1/6)) 3)
(exp.f64 (fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im)))
(pow.f64 (/.f64 (neg.f64 (*.f64 im im)) re) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 (neg.f64 (*.f64 im im)) 1/6) (pow.f64 re -1/6)) 3)
(exp.f64 (fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im)))
(pow.f64 (/.f64 (neg.f64 (*.f64 im im)) re) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 (neg.f64 (*.f64 im im)) 1/6) (pow.f64 re -1/6)) 3)
(exp.f64 (fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im)))
(pow.f64 (/.f64 (neg.f64 (*.f64 im im)) re) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 (neg.f64 (*.f64 im im)) 1/6) (pow.f64 re -1/6)) 3)
(exp.f64 (fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im)))
(pow.f64 (/.f64 (neg.f64 (*.f64 im im)) re) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 (neg.f64 (*.f64 im im)) 1/6) (pow.f64 re -1/6)) 3)
(exp.f64 (fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im)))
(pow.f64 (/.f64 (neg.f64 (*.f64 im im)) re) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 (neg.f64 (*.f64 im im)) 1/6) (pow.f64 re -1/6)) 3)
(exp.f64 (fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im)))
(pow.f64 (/.f64 (neg.f64 (*.f64 im im)) re) 1/2)
(*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (*.f64 -1 (pow.f64 im 2))) (*.f64 -1 (log.f64 re))))) (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 2))
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 (neg.f64 (*.f64 im im)) 1/6) (pow.f64 re -1/6)) 3)
(exp.f64 (fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im)))
(pow.f64 (/.f64 (neg.f64 (*.f64 im im)) re) 1/2)
(*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (*.f64 -1 (pow.f64 im 2))) (*.f64 -1 (log.f64 re))))) (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 2))
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 (neg.f64 (*.f64 im im)) 1/6) (pow.f64 re -1/6)) 3)
(exp.f64 (fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im)))
(pow.f64 (/.f64 (neg.f64 (*.f64 im im)) re) 1/2)
(*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (*.f64 -1 (pow.f64 im 2))) (*.f64 -1 (log.f64 re))))) (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 2))
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 (neg.f64 (*.f64 im im)) 1/6) (pow.f64 re -1/6)) 3)
(exp.f64 (fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im)))
(pow.f64 (/.f64 (neg.f64 (*.f64 im im)) re) 1/2)
(*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (*.f64 -1 (pow.f64 im 2))) (*.f64 -1 (log.f64 re))))) (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 2))
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 (neg.f64 (*.f64 im im)) 1/6) (pow.f64 re -1/6)) 3)
(exp.f64 (fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im)))
(pow.f64 (/.f64 (neg.f64 (*.f64 im im)) re) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 (neg.f64 (*.f64 im im)) 1/6) (pow.f64 re -1/6)) 3)
(exp.f64 (fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im)))
(pow.f64 (/.f64 (neg.f64 (*.f64 im im)) re) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 (neg.f64 (*.f64 im im)) 1/6) (pow.f64 re -1/6)) 3)
(exp.f64 (fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im)))
(pow.f64 (/.f64 (neg.f64 (*.f64 im im)) re) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 (neg.f64 (*.f64 im im)) 1/6) (pow.f64 re -1/6)) 3)
(exp.f64 (fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im)))
(pow.f64 (/.f64 (neg.f64 (*.f64 im im)) re) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 (neg.f64 (*.f64 im im)) 1/6) (pow.f64 re -1/6)) 3)
(exp.f64 (fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im)))
(pow.f64 (/.f64 (neg.f64 (*.f64 im im)) re) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 (neg.f64 (*.f64 im im)) 1/6) (pow.f64 re -1/6)) 3)
(exp.f64 (fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im)))
(pow.f64 (/.f64 (neg.f64 (*.f64 im im)) re) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 (neg.f64 (*.f64 im im)) 1/6) (pow.f64 re -1/6)) 3)
(exp.f64 (fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im)))
(pow.f64 (/.f64 (neg.f64 (*.f64 im im)) re) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 (neg.f64 (*.f64 im im)) 1/6) (pow.f64 re -1/6)) 3)
(exp.f64 (fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im)))
(pow.f64 (/.f64 (neg.f64 (*.f64 im im)) re) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 (neg.f64 (*.f64 im im)) 1/6) (pow.f64 re -1/6)) 3)
(exp.f64 (fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im)))
(pow.f64 (/.f64 (neg.f64 (*.f64 im im)) re) 1/2)
(*.f64 1/2 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))
(*.f64 (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))) 1/2)
(fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im))
(*.f64 1/2 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))
(*.f64 (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))) 1/2)
(fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im))
(*.f64 1/2 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))
(*.f64 (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))) 1/2)
(fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im))
(*.f64 1/2 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))
(*.f64 (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))) 1/2)
(fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im))
(*.f64 1/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re))))
(*.f64 (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))) 1/2)
(fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im))
(*.f64 1/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re))))
(*.f64 (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))) 1/2)
(fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im))
(*.f64 1/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re))))
(*.f64 (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))) 1/2)
(fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im))
(*.f64 1/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re))))
(*.f64 (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))) 1/2)
(fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im))
(*.f64 1/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))
(*.f64 (fma.f64 -2 (log.f64 (/.f64 -1 im)) (log.f64 (/.f64 -1 re))) 1/2)
(fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (neg.f64 (log.f64 (/.f64 -1 im))))
(-.f64 (*.f64 (log.f64 (/.f64 -1 re)) 1/2) (log.f64 (/.f64 -1 im)))
(fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (-.f64 (log.f64 im) (log.f64 -1)))
(*.f64 1/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))
(*.f64 (fma.f64 -2 (log.f64 (/.f64 -1 im)) (log.f64 (/.f64 -1 re))) 1/2)
(fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (neg.f64 (log.f64 (/.f64 -1 im))))
(-.f64 (*.f64 (log.f64 (/.f64 -1 re)) 1/2) (log.f64 (/.f64 -1 im)))
(fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (-.f64 (log.f64 im) (log.f64 -1)))
(*.f64 1/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))
(*.f64 (fma.f64 -2 (log.f64 (/.f64 -1 im)) (log.f64 (/.f64 -1 re))) 1/2)
(fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (neg.f64 (log.f64 (/.f64 -1 im))))
(-.f64 (*.f64 (log.f64 (/.f64 -1 re)) 1/2) (log.f64 (/.f64 -1 im)))
(fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (-.f64 (log.f64 im) (log.f64 -1)))
(*.f64 1/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))
(*.f64 (fma.f64 -2 (log.f64 (/.f64 -1 im)) (log.f64 (/.f64 -1 re))) 1/2)
(fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (neg.f64 (log.f64 (/.f64 -1 im))))
(-.f64 (*.f64 (log.f64 (/.f64 -1 re)) 1/2) (log.f64 (/.f64 -1 im)))
(fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (-.f64 (log.f64 im) (log.f64 -1)))
(*.f64 1/2 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))
(*.f64 (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))) 1/2)
(fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im))
(*.f64 1/2 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))
(*.f64 (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))) 1/2)
(fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im))
(*.f64 1/2 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))
(*.f64 (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))) 1/2)
(fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im))
(*.f64 1/2 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))
(*.f64 (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))) 1/2)
(fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im))
(*.f64 1/2 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))
(*.f64 (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))) 1/2)
(fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im))
(*.f64 1/2 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))
(*.f64 (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))) 1/2)
(fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im))
(*.f64 1/2 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))
(*.f64 (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))) 1/2)
(fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im))
(*.f64 1/2 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))
(*.f64 (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))) 1/2)
(fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im))
(*.f64 1/2 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re))))
(*.f64 (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))) 1/2)
(fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im))
(*.f64 1/2 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re))))
(*.f64 (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))) 1/2)
(fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im))
(*.f64 1/2 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re))))
(*.f64 (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))) 1/2)
(fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im))
(*.f64 1/2 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re))))
(*.f64 (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))) 1/2)
(fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im))

eval313.0ms (3.3%)

Compiler

Compiled 16782 to 11021 computations (34.3% saved)

prune146.0ms (1.5%)

Pruning

21 alts after pruning (10 fresh and 11 done)

PrunedKeptTotal
New7936799
Fresh6410
Picked011
Done21012
Total80121822
Error
0.3b
Counts
822 → 21
Alt Table
Click to see full alt table
StatusErrorProgram
44.5b
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
56.0b
(*.f64 1/2 (exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/6)) 3)))
59.0b
(*.f64 1/2 (pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))) 2))
31.0b
(*.f64 1/2 (hypot.f64 (sqrt.f64 (*.f64 re 2)) (sqrt.f64 (*.f64 (hypot.f64 re im) 2))))
47.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (-.f64 (*.f64 (/.f64 re (/.f64 im re)) -1/2) im)))))
55.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (/.f64 1 (/.f64 re (*.f64 im im))) -1/2))))
42.4b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
12.5b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))
59.0b
(*.f64 1/2 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))) 3))
45.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 re im))))
54.7b
(*.f64 1/2 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))) 3))
62.1b
(*.f64 1/2 (pow.f64 (exp.f64 (sqrt.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 (*.f64 im im) re) -1))))) (sqrt.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 (*.f64 im im) re) -1))))))
49.0b
(*.f64 1/2 (*.f64 2 (sqrt.f64 re)))
12.7b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (pow.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) 2))))
56.0b
(*.f64 1/2 (pow.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/6) 3))
59.0b
(*.f64 1/2 (exp.f64 (*.f64 1/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))))
52.9b
(*.f64 1/2 (pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 1/2))
47.3b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im))))
53.4b
(*.f64 1/2 (*.f64 im (sqrt.f64 (/.f64 -1 re))))
60.8b
(*.f64 1/2 (sqrt.f64 (*.f64 (/.f64 im re) im)))
45.1b
(*.f64 1/2 (pow.f64 (pow.f64 (*.f64 2 (-.f64 re im)) 1/4) 2))
Compiler

Compiled 300 to 244 computations (18.7% saved)

regimes353.0ms (3.7%)

Counts
40 → 2
Calls
Call 1
Inputs
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
(*.f64 1/2 (*.f64 2 (sqrt.f64 re)))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im))))
(*.f64 1/2 (*.f64 im (sqrt.f64 (/.f64 -1 re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
(*.f64 1/2 (sqrt.f64 (*.f64 (/.f64 im re) im)))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 re im))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (neg.f64 re)))))
(*.f64 1/2 (pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 1/2))
(*.f64 1/2 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/2))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (*.f64 (/.f64 im re) im) -1/2))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (/.f64 1 (/.f64 re (*.f64 im im))) -1/2))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (-.f64 (*.f64 (/.f64 re (/.f64 im re)) -1/2) im)))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (-.f64 (/.f64 (*.f64 re re) (/.f64 im -1/2)) im)))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (-.f64 (/.f64 (*.f64 re re) (/.f64 im -1/2)) im)))))
(*.f64 1/2 (*.f64 (sqrt.f64 2) (sqrt.f64 (-.f64 re im))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))
(*.f64 1/2 (pow.f64 (pow.f64 (*.f64 2 (-.f64 re im)) 1/4) 2))
(*.f64 1/2 (pow.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/4) 2))
(*.f64 1/2 (pow.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/6) 3))
(*.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 (pow.f64 (sqrt.f64 im) 2))))
(*.f64 1/2 (pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im)) 3))
(*.f64 1/2 (pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) 2))
(*.f64 1/2 (exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/6)) 3)))
(*.f64 1/2 (exp.f64 (*.f64 1/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))))
(*.f64 1/2 (hypot.f64 (sqrt.f64 (*.f64 re 2)) (sqrt.f64 (*.f64 (hypot.f64 re im) 2))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (cbrt.f64 (pow.f64 (hypot.f64 re im) 3))))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (pow.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) 2))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (pow.f64 (cbrt.f64 (*.f64 re (pow.f64 im -2))) -3) -1/2))))
(*.f64 1/2 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))) 3))
(*.f64 1/2 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))) 3))
(*.f64 1/2 (pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))) 2))
(*.f64 1/2 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))) 3))
(*.f64 1/2 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))) 3))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (sqrt.f64 re) (sqrt.f64 re) (hypot.f64 re im)))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (sqrt.f64 re) (sqrt.f64 re) (hypot.f64 re im)))))
(*.f64 1/2 (pow.f64 (exp.f64 (sqrt.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 (*.f64 im im) re) -1))))) (sqrt.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 (*.f64 im im) re) -1))))))
(*.f64 1/2 (pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 (*.f64 im im) re) -1)))) 2)) (cbrt.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 (*.f64 im im) re) -1))))))
Outputs
(*.f64 1/2 (pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 1/2))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))
Calls

8 calls:

97.0ms
re
46.0ms
(*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))
45.0ms
(sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)))
43.0ms
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))))
35.0ms
im
Results
ErrorSegmentsBranch
10.0b2re
12.5b1im
8.5b2(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))))
8.5b2(sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)))
9.4b2(*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))
9.4b2(+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)
12.5b1(*.f64 im im)
12.5b1(*.f64 im im)
Compiler

Compiled 591 to 412 computations (30.3% saved)

bsearch1.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.0
1.1272172717450958e-149
Compiler

Compiled 22 to 16 computations (27.3% saved)

regimes325.0ms (3.4%)

Counts
17 → 6
Calls
Call 1
Inputs
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
(*.f64 1/2 (*.f64 2 (sqrt.f64 re)))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im))))
(*.f64 1/2 (*.f64 im (sqrt.f64 (/.f64 -1 re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
(*.f64 1/2 (sqrt.f64 (*.f64 (/.f64 im re) im)))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 re im))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (neg.f64 re)))))
(*.f64 1/2 (pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 1/2))
(*.f64 1/2 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/2))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (*.f64 (/.f64 im re) im) -1/2))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (/.f64 1 (/.f64 re (*.f64 im im))) -1/2))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (-.f64 (*.f64 (/.f64 re (/.f64 im re)) -1/2) im)))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (-.f64 (/.f64 (*.f64 re re) (/.f64 im -1/2)) im)))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (-.f64 (/.f64 (*.f64 re re) (/.f64 im -1/2)) im)))))
(*.f64 1/2 (*.f64 (sqrt.f64 2) (sqrt.f64 (-.f64 re im))))
Outputs
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 re im))))
(*.f64 1/2 (*.f64 2 (sqrt.f64 re)))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (-.f64 (*.f64 (/.f64 re (/.f64 im re)) -1/2) im)))))
(*.f64 1/2 (*.f64 2 (sqrt.f64 re)))
(*.f64 1/2 (*.f64 im (sqrt.f64 (/.f64 -1 re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
Calls

4 calls:

150.0ms
re
99.0ms
im
33.0ms
(*.f64 im im)
32.0ms
(*.f64 im im)
Results
ErrorSegmentsBranch
25.0b7re
19.8b6im
37.5b2(*.f64 im im)
37.5b2(*.f64 im im)
Compiler

Compiled 190 to 130 computations (31.6% saved)

bsearch538.0ms (5.6%)

Algorithm
binary-search
Steps
TimeLeftRight
49.0ms
2.9391364952293654e-76
5.871762040001634e-72
130.0ms
7.052414792736788e-232
2.9418733788811755e-222
114.0ms
-5.659947122078499e-188
-1.272093719096091e-189
159.0ms
-1.417005299423253e-174
-1.3808153916257445e-178
86.0ms
-1.4373072726950491e-70
-6.187408111311405e-74
Compiler

Compiled 22 to 16 computations (27.3% saved)

regimes138.0ms (1.4%)

Counts
13 → 6
Calls
Call 1
Inputs
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
(*.f64 1/2 (*.f64 2 (sqrt.f64 re)))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im))))
(*.f64 1/2 (*.f64 im (sqrt.f64 (/.f64 -1 re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
(*.f64 1/2 (sqrt.f64 (*.f64 (/.f64 im re) im)))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 re im))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (neg.f64 re)))))
(*.f64 1/2 (pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 1/2))
(*.f64 1/2 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/2))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (*.f64 (/.f64 im re) im) -1/2))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (/.f64 1 (/.f64 re (*.f64 im im))) -1/2))))
Outputs
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 re im))))
(*.f64 1/2 (*.f64 2 (sqrt.f64 re)))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 re im))))
(*.f64 1/2 (*.f64 2 (sqrt.f64 re)))
(*.f64 1/2 (*.f64 im (sqrt.f64 (/.f64 -1 re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
Calls

4 calls:

63.0ms
re
42.0ms
im
16.0ms
(*.f64 im im)
12.0ms
(*.f64 im im)
Results
ErrorSegmentsBranch
25.0b7re
19.9b6im
37.5b2(*.f64 im im)
37.5b2(*.f64 im im)
Compiler

Compiled 133 to 93 computations (30.1% saved)

bsearch273.0ms (2.8%)

Algorithm
binary-search
Steps
TimeLeftRight
45.0ms
2.9391364952293654e-76
5.871762040001634e-72
58.0ms
7.052414792736788e-232
2.9418733788811755e-222
56.0ms
-5.659947122078499e-188
-1.272093719096091e-189
65.0ms
-1.417005299423253e-174
-1.3808153916257445e-178
49.0ms
-1.4373072726950491e-70
-6.187408111311405e-74
Compiler

Compiled 22 to 16 computations (27.3% saved)

regimes65.0ms (0.7%)

Counts
6 → 6
Calls
Call 1
Inputs
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
(*.f64 1/2 (*.f64 2 (sqrt.f64 re)))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im))))
(*.f64 1/2 (*.f64 im (sqrt.f64 (/.f64 -1 re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
(*.f64 1/2 (sqrt.f64 (*.f64 (/.f64 im re) im)))
Outputs
(*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im))))
(*.f64 1/2 (*.f64 2 (sqrt.f64 re)))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im))))
(*.f64 1/2 (*.f64 2 (sqrt.f64 re)))
(*.f64 1/2 (*.f64 im (sqrt.f64 (/.f64 -1 re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
Calls

2 calls:

36.0ms
re
27.0ms
im
Results
ErrorSegmentsBranch
24.7b8re
20.4b6im
Compiler

Compiled 51 to 39 computations (23.5% saved)

bsearch265.0ms (2.8%)

Algorithm
binary-search
Steps
TimeLeftRight
50.0ms
2.9391364952293654e-76
5.871762040001634e-72
62.0ms
7.052414792736788e-232
2.9418733788811755e-222
55.0ms
-5.659947122078499e-188
-1.272093719096091e-189
53.0ms
-1.417005299423253e-174
-1.3808153916257445e-178
45.0ms
-1.4373072726950491e-70
-6.187408111311405e-74
Compiler

Compiled 22 to 16 computations (27.3% saved)

regimes52.0ms (0.5%)

Counts
4 → 6
Calls
Call 1
Inputs
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
(*.f64 1/2 (*.f64 2 (sqrt.f64 re)))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im))))
(*.f64 1/2 (*.f64 im (sqrt.f64 (/.f64 -1 re))))
Outputs
(*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im))))
(*.f64 1/2 (*.f64 2 (sqrt.f64 re)))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im))))
(*.f64 1/2 (*.f64 2 (sqrt.f64 re)))
(*.f64 1/2 (*.f64 im (sqrt.f64 (/.f64 -1 re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
Calls

2 calls:

29.0ms
re
22.0ms
im
Results
ErrorSegmentsBranch
25.5b7re
20.8b6im
Compiler

Compiled 35 to 28 computations (20% saved)

bsearch265.0ms (2.8%)

Algorithm
binary-search
Steps
TimeLeftRight
46.0ms
2.9391364952293654e-76
5.871762040001634e-72
61.0ms
7.052414792736788e-232
2.9418733788811755e-222
57.0ms
-5.659947122078499e-188
-1.272093719096091e-189
56.0ms
-1.417005299423253e-174
-1.3808153916257445e-178
45.0ms
-1.4373072726950491e-70
-6.187408111311405e-74
Compiler

Compiled 22 to 16 computations (27.3% saved)

regimes46.0ms (0.5%)

Counts
3 → 5
Calls
Call 1
Inputs
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
(*.f64 1/2 (*.f64 2 (sqrt.f64 re)))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im))))
Outputs
(*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im))))
(*.f64 1/2 (*.f64 2 (sqrt.f64 re)))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im))))
(*.f64 1/2 (*.f64 2 (sqrt.f64 re)))
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
Calls

2 calls:

26.0ms
re
18.0ms
im
Results
ErrorSegmentsBranch
30.4b7re
22.3b5im
Compiler

Compiled 27 to 22 computations (18.5% saved)

bsearch208.0ms (2.2%)

Algorithm
binary-search
Steps
TimeLeftRight
51.0ms
1.1723606900133284e-150
4.835341673754805e-150
54.0ms
-5.659947122078499e-188
-1.272093719096091e-189
56.0ms
-1.417005299423253e-174
-1.3808153916257445e-178
46.0ms
-1.4373072726950491e-70
-6.187408111311405e-74
Compiler

Compiled 22 to 16 computations (27.3% saved)

regimes14.0ms (0.1%)

Accuracy

Total -28.6b remaining (-83.3%)

Threshold costs -28.6b (-83.3%)

Counts
2 → 2
Calls
Call 1
Inputs
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
(*.f64 1/2 (*.f64 2 (sqrt.f64 re)))
Outputs
(*.f64 1/2 (*.f64 2 (sqrt.f64 re)))
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
Calls

2 calls:

7.0ms
im
6.0ms
re
Results
ErrorSegmentsBranch
35.0b2re
34.4b2im
Compiler

Compiled 20 to 16 computations (20% saved)

bsearch51.0ms (0.5%)

Algorithm
binary-search
Steps
TimeLeftRight
51.0ms
1.1723606900133284e-150
4.835341673754805e-150
Compiler

Compiled 22 to 16 computations (27.3% saved)

simplify21.0ms (0.2%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
088550
1120538
2136538
3146538
4150538
5151538
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 (pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 1/2)) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))))
(if (<=.f64 im -71480630457202560/497323236409786642155382248146820840100456150797347717440463976893159497012533375533056) (*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 re im)))) (if (<=.f64 im -6465002533474549760/4562440617622195218641171605700291324893228507248559930579192517899275167208677386505912811317371399778642309573594407310688704721375437998252661319722214188251994674360264950082874192246603776) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (if (<=.f64 im -8872774558577093/156764265941034957982331212844852467344711417043899710759469297619722251722129607859661177881884230709880082871203965476543290384119266386721367084105368877945996036265148061460008137163052639879920877568) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (-.f64 (*.f64 (/.f64 re (/.f64 im re)) -1/2) im))))) (if (<=.f64 im 1232747983657351/1747979975492856518824388667826833403974715525645181428798916607807071777670465341756914322865272727992514618482604963383447074020817466839626771608982213111603568988524121832413745194182066575698549805189925857389888339453536229468710863470854144) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (if (<=.f64 im 598712678013987/2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376) (*.f64 1/2 (*.f64 im (sqrt.f64 (/.f64 -1 re)))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im)))))))))
(if (<=.f64 im -71480630457202560/497323236409786642155382248146820840100456150797347717440463976893159497012533375533056) (*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 re im)))) (if (<=.f64 im -6465002533474549760/4562440617622195218641171605700291324893228507248559930579192517899275167208677386505912811317371399778642309573594407310688704721375437998252661319722214188251994674360264950082874192246603776) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (if (<=.f64 im -8872774558577093/156764265941034957982331212844852467344711417043899710759469297619722251722129607859661177881884230709880082871203965476543290384119266386721367084105368877945996036265148061460008137163052639879920877568) (*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 re im)))) (if (<=.f64 im 1232747983657351/1747979975492856518824388667826833403974715525645181428798916607807071777670465341756914322865272727992514618482604963383447074020817466839626771608982213111603568988524121832413745194182066575698549805189925857389888339453536229468710863470854144) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (if (<=.f64 im 598712678013987/2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376) (*.f64 1/2 (*.f64 im (sqrt.f64 (/.f64 -1 re)))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im)))))))))
(if (<=.f64 im -71480630457202560/497323236409786642155382248146820840100456150797347717440463976893159497012533375533056) (*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im)))) (if (<=.f64 im -6465002533474549760/4562440617622195218641171605700291324893228507248559930579192517899275167208677386505912811317371399778642309573594407310688704721375437998252661319722214188251994674360264950082874192246603776) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (if (<=.f64 im -8872774558577093/156764265941034957982331212844852467344711417043899710759469297619722251722129607859661177881884230709880082871203965476543290384119266386721367084105368877945996036265148061460008137163052639879920877568) (*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im)))) (if (<=.f64 im 1232747983657351/1747979975492856518824388667826833403974715525645181428798916607807071777670465341756914322865272727992514618482604963383447074020817466839626771608982213111603568988524121832413745194182066575698549805189925857389888339453536229468710863470854144) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (if (<=.f64 im 598712678013987/2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376) (*.f64 1/2 (*.f64 im (sqrt.f64 (/.f64 -1 re)))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im)))))))))
(if (<=.f64 im -71480630457202560/497323236409786642155382248146820840100456150797347717440463976893159497012533375533056) (*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im)))) (if (<=.f64 im -6465002533474549760/4562440617622195218641171605700291324893228507248559930579192517899275167208677386505912811317371399778642309573594407310688704721375437998252661319722214188251994674360264950082874192246603776) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (if (<=.f64 im -8872774558577093/156764265941034957982331212844852467344711417043899710759469297619722251722129607859661177881884230709880082871203965476543290384119266386721367084105368877945996036265148061460008137163052639879920877568) (*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im)))) (if (<=.f64 im 1232747983657351/1747979975492856518824388667826833403974715525645181428798916607807071777670465341756914322865272727992514618482604963383447074020817466839626771608982213111603568988524121832413745194182066575698549805189925857389888339453536229468710863470854144) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (if (<=.f64 im 598712678013987/2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376) (*.f64 1/2 (*.f64 im (sqrt.f64 (/.f64 -1 re)))) (*.f64 1/2 (sqrt.f64 (*.f64 2 im))))))))
(if (<=.f64 im -71480630457202560/497323236409786642155382248146820840100456150797347717440463976893159497012533375533056) (*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im)))) (if (<=.f64 im -6465002533474549760/4562440617622195218641171605700291324893228507248559930579192517899275167208677386505912811317371399778642309573594407310688704721375437998252661319722214188251994674360264950082874192246603776) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (if (<=.f64 im -8872774558577093/156764265941034957982331212844852467344711417043899710759469297619722251722129607859661177881884230709880082871203965476543290384119266386721367084105368877945996036265148061460008137163052639879920877568) (*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im)))) (if (<=.f64 im 8641494516500305/7371020360979572953596786290992712677572111758625860211672277930167234692172165726730716260112614780354430419981960634569864423105321860610471551272329484460252725248) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (*.f64 1/2 (sqrt.f64 (*.f64 2 im)))))))
(if (<=.f64 im 8641494516500305/7371020360979572953596786290992712677572111758625860211672277930167234692172165726730716260112614780354430419981960634569864423105321860610471551272329484460252725248) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (*.f64 1/2 (sqrt.f64 (*.f64 2 im))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
Outputs
(if (<=.f64 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))) 0) (*.f64 1/2 (pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 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 (pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 1/2)) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))))
(if (<=.f64 im -71480630457202560/497323236409786642155382248146820840100456150797347717440463976893159497012533375533056) (*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 re im)))) (if (<=.f64 im -6465002533474549760/4562440617622195218641171605700291324893228507248559930579192517899275167208677386505912811317371399778642309573594407310688704721375437998252661319722214188251994674360264950082874192246603776) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (if (<=.f64 im -8872774558577093/156764265941034957982331212844852467344711417043899710759469297619722251722129607859661177881884230709880082871203965476543290384119266386721367084105368877945996036265148061460008137163052639879920877568) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (-.f64 (*.f64 (/.f64 re (/.f64 im re)) -1/2) im))))) (if (<=.f64 im 1232747983657351/1747979975492856518824388667826833403974715525645181428798916607807071777670465341756914322865272727992514618482604963383447074020817466839626771608982213111603568988524121832413745194182066575698549805189925857389888339453536229468710863470854144) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (if (<=.f64 im 598712678013987/2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376) (*.f64 1/2 (*.f64 im (sqrt.f64 (/.f64 -1 re)))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im)))))))))
(if (<=.f64 im -558442425446895/3885337784451458141838923813647037813284813678104279042503624819477808570410416996352) (*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 re im)))) (if (<=.f64 im -394592439787265/278469275977917188637766821636980671685377716506870112950390168328813181592326500641230029987632531724770648777685205524334027387779262573135538410627576549575927409323746640019706676772864) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (if (<=.f64 im -8872774558577093/156764265941034957982331212844852467344711417043899710759469297619722251722129607859661177881884230709880082871203965476543290384119266386721367084105368877945996036265148061460008137163052639879920877568) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (-.f64 (*.f64 (/.f64 re (/.f64 im re)) -1/2) im))))) (if (<=.f64 im 1232747983657351/1747979975492856518824388667826833403974715525645181428798916607807071777670465341756914322865272727992514618482604963383447074020817466839626771608982213111603568988524121832413745194182066575698549805189925857389888339453536229468710863470854144) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (if (<=.f64 im 598712678013987/2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376) (*.f64 1/2 (*.f64 im (sqrt.f64 (/.f64 -1 re)))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im)))))))))
(if (<=.f64 im -71480630457202560/497323236409786642155382248146820840100456150797347717440463976893159497012533375533056) (*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 re im)))) (if (<=.f64 im -6465002533474549760/4562440617622195218641171605700291324893228507248559930579192517899275167208677386505912811317371399778642309573594407310688704721375437998252661319722214188251994674360264950082874192246603776) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (if (<=.f64 im -8872774558577093/156764265941034957982331212844852467344711417043899710759469297619722251722129607859661177881884230709880082871203965476543290384119266386721367084105368877945996036265148061460008137163052639879920877568) (*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 re im)))) (if (<=.f64 im 1232747983657351/1747979975492856518824388667826833403974715525645181428798916607807071777670465341756914322865272727992514618482604963383447074020817466839626771608982213111603568988524121832413745194182066575698549805189925857389888339453536229468710863470854144) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (if (<=.f64 im 598712678013987/2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376) (*.f64 1/2 (*.f64 im (sqrt.f64 (/.f64 -1 re)))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im)))))))))
(if (<=.f64 im -558442425446895/3885337784451458141838923813647037813284813678104279042503624819477808570410416996352) (*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 re im)))) (if (<=.f64 im -394592439787265/278469275977917188637766821636980671685377716506870112950390168328813181592326500641230029987632531724770648777685205524334027387779262573135538410627576549575927409323746640019706676772864) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (if (<=.f64 im -8872774558577093/156764265941034957982331212844852467344711417043899710759469297619722251722129607859661177881884230709880082871203965476543290384119266386721367084105368877945996036265148061460008137163052639879920877568) (*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 re im)))) (if (<=.f64 im 1232747983657351/1747979975492856518824388667826833403974715525645181428798916607807071777670465341756914322865272727992514618482604963383447074020817466839626771608982213111603568988524121832413745194182066575698549805189925857389888339453536229468710863470854144) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (if (<=.f64 im 598712678013987/2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376) (*.f64 1/2 (*.f64 im (sqrt.f64 (/.f64 -1 re)))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im)))))))))
(if (<=.f64 im -71480630457202560/497323236409786642155382248146820840100456150797347717440463976893159497012533375533056) (*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im)))) (if (<=.f64 im -6465002533474549760/4562440617622195218641171605700291324893228507248559930579192517899275167208677386505912811317371399778642309573594407310688704721375437998252661319722214188251994674360264950082874192246603776) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (if (<=.f64 im -8872774558577093/156764265941034957982331212844852467344711417043899710759469297619722251722129607859661177881884230709880082871203965476543290384119266386721367084105368877945996036265148061460008137163052639879920877568) (*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im)))) (if (<=.f64 im 1232747983657351/1747979975492856518824388667826833403974715525645181428798916607807071777670465341756914322865272727992514618482604963383447074020817466839626771608982213111603568988524121832413745194182066575698549805189925857389888339453536229468710863470854144) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (if (<=.f64 im 598712678013987/2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376) (*.f64 1/2 (*.f64 im (sqrt.f64 (/.f64 -1 re)))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im)))))))))
(if (<=.f64 im -558442425446895/3885337784451458141838923813647037813284813678104279042503624819477808570410416996352) (*.f64 1/2 (sqrt.f64 (neg.f64 (*.f64 2 im)))) (if (<=.f64 im -394592439787265/278469275977917188637766821636980671685377716506870112950390168328813181592326500641230029987632531724770648777685205524334027387779262573135538410627576549575927409323746640019706676772864) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (if (<=.f64 im -8872774558577093/156764265941034957982331212844852467344711417043899710759469297619722251722129607859661177881884230709880082871203965476543290384119266386721367084105368877945996036265148061460008137163052639879920877568) (*.f64 1/2 (sqrt.f64 (neg.f64 (*.f64 2 im)))) (if (<=.f64 im 1232747983657351/1747979975492856518824388667826833403974715525645181428798916607807071777670465341756914322865272727992514618482604963383447074020817466839626771608982213111603568988524121832413745194182066575698549805189925857389888339453536229468710863470854144) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (if (<=.f64 im 598712678013987/2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376) (*.f64 1/2 (*.f64 im (sqrt.f64 (/.f64 -1 re)))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im)))))))))
(if (<=.f64 im -558442425446895/3885337784451458141838923813647037813284813678104279042503624819477808570410416996352) (*.f64 1/2 (sqrt.f64 (*.f64 im -2))) (if (<=.f64 im -394592439787265/278469275977917188637766821636980671685377716506870112950390168328813181592326500641230029987632531724770648777685205524334027387779262573135538410627576549575927409323746640019706676772864) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (if (<=.f64 im -8872774558577093/156764265941034957982331212844852467344711417043899710759469297619722251722129607859661177881884230709880082871203965476543290384119266386721367084105368877945996036265148061460008137163052639879920877568) (*.f64 1/2 (sqrt.f64 (*.f64 im -2))) (if (<=.f64 im 1232747983657351/1747979975492856518824388667826833403974715525645181428798916607807071777670465341756914322865272727992514618482604963383447074020817466839626771608982213111603568988524121832413745194182066575698549805189925857389888339453536229468710863470854144) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (if (<=.f64 im 598712678013987/2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376) (*.f64 1/2 (*.f64 im (sqrt.f64 (/.f64 -1 re)))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im)))))))))
(if (<=.f64 im -71480630457202560/497323236409786642155382248146820840100456150797347717440463976893159497012533375533056) (*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im)))) (if (<=.f64 im -6465002533474549760/4562440617622195218641171605700291324893228507248559930579192517899275167208677386505912811317371399778642309573594407310688704721375437998252661319722214188251994674360264950082874192246603776) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (if (<=.f64 im -8872774558577093/156764265941034957982331212844852467344711417043899710759469297619722251722129607859661177881884230709880082871203965476543290384119266386721367084105368877945996036265148061460008137163052639879920877568) (*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im)))) (if (<=.f64 im 1232747983657351/1747979975492856518824388667826833403974715525645181428798916607807071777670465341756914322865272727992514618482604963383447074020817466839626771608982213111603568988524121832413745194182066575698549805189925857389888339453536229468710863470854144) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (if (<=.f64 im 598712678013987/2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376) (*.f64 1/2 (*.f64 im (sqrt.f64 (/.f64 -1 re)))) (*.f64 1/2 (sqrt.f64 (*.f64 2 im))))))))
(if (<=.f64 im -558442425446895/3885337784451458141838923813647037813284813678104279042503624819477808570410416996352) (*.f64 1/2 (sqrt.f64 (neg.f64 (*.f64 2 im)))) (if (<=.f64 im -394592439787265/278469275977917188637766821636980671685377716506870112950390168328813181592326500641230029987632531724770648777685205524334027387779262573135538410627576549575927409323746640019706676772864) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (if (<=.f64 im -8872774558577093/156764265941034957982331212844852467344711417043899710759469297619722251722129607859661177881884230709880082871203965476543290384119266386721367084105368877945996036265148061460008137163052639879920877568) (*.f64 1/2 (sqrt.f64 (neg.f64 (*.f64 2 im)))) (if (<=.f64 im 1232747983657351/1747979975492856518824388667826833403974715525645181428798916607807071777670465341756914322865272727992514618482604963383447074020817466839626771608982213111603568988524121832413745194182066575698549805189925857389888339453536229468710863470854144) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (if (<=.f64 im 598712678013987/2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376) (*.f64 1/2 (*.f64 im (sqrt.f64 (/.f64 -1 re)))) (*.f64 1/2 (sqrt.f64 (*.f64 2 im))))))))
(if (<=.f64 im -558442425446895/3885337784451458141838923813647037813284813678104279042503624819477808570410416996352) (*.f64 1/2 (sqrt.f64 (*.f64 im -2))) (if (<=.f64 im -394592439787265/278469275977917188637766821636980671685377716506870112950390168328813181592326500641230029987632531724770648777685205524334027387779262573135538410627576549575927409323746640019706676772864) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (if (<=.f64 im -8872774558577093/156764265941034957982331212844852467344711417043899710759469297619722251722129607859661177881884230709880082871203965476543290384119266386721367084105368877945996036265148061460008137163052639879920877568) (*.f64 1/2 (sqrt.f64 (*.f64 im -2))) (if (<=.f64 im 1232747983657351/1747979975492856518824388667826833403974715525645181428798916607807071777670465341756914322865272727992514618482604963383447074020817466839626771608982213111603568988524121832413745194182066575698549805189925857389888339453536229468710863470854144) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (if (<=.f64 im 598712678013987/2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376) (*.f64 1/2 (*.f64 im (sqrt.f64 (/.f64 -1 re)))) (*.f64 1/2 (sqrt.f64 (*.f64 2 im))))))))
(if (<=.f64 im -71480630457202560/497323236409786642155382248146820840100456150797347717440463976893159497012533375533056) (*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im)))) (if (<=.f64 im -6465002533474549760/4562440617622195218641171605700291324893228507248559930579192517899275167208677386505912811317371399778642309573594407310688704721375437998252661319722214188251994674360264950082874192246603776) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (if (<=.f64 im -8872774558577093/156764265941034957982331212844852467344711417043899710759469297619722251722129607859661177881884230709880082871203965476543290384119266386721367084105368877945996036265148061460008137163052639879920877568) (*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im)))) (if (<=.f64 im 8641494516500305/7371020360979572953596786290992712677572111758625860211672277930167234692172165726730716260112614780354430419981960634569864423105321860610471551272329484460252725248) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (*.f64 1/2 (sqrt.f64 (*.f64 2 im)))))))
(if (<=.f64 im -558442425446895/3885337784451458141838923813647037813284813678104279042503624819477808570410416996352) (*.f64 1/2 (sqrt.f64 (neg.f64 (*.f64 2 im)))) (if (<=.f64 im -394592439787265/278469275977917188637766821636980671685377716506870112950390168328813181592326500641230029987632531724770648777685205524334027387779262573135538410627576549575927409323746640019706676772864) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (if (<=.f64 im -8872774558577093/156764265941034957982331212844852467344711417043899710759469297619722251722129607859661177881884230709880082871203965476543290384119266386721367084105368877945996036265148061460008137163052639879920877568) (*.f64 1/2 (sqrt.f64 (neg.f64 (*.f64 2 im)))) (if (<=.f64 im 8641494516500305/7371020360979572953596786290992712677572111758625860211672277930167234692172165726730716260112614780354430419981960634569864423105321860610471551272329484460252725248) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (*.f64 1/2 (sqrt.f64 (*.f64 2 im)))))))
(if (<=.f64 im -558442425446895/3885337784451458141838923813647037813284813678104279042503624819477808570410416996352) (*.f64 1/2 (sqrt.f64 (*.f64 im -2))) (if (<=.f64 im -394592439787265/278469275977917188637766821636980671685377716506870112950390168328813181592326500641230029987632531724770648777685205524334027387779262573135538410627576549575927409323746640019706676772864) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (if (<=.f64 im -8872774558577093/156764265941034957982331212844852467344711417043899710759469297619722251722129607859661177881884230709880082871203965476543290384119266386721367084105368877945996036265148061460008137163052639879920877568) (*.f64 1/2 (sqrt.f64 (*.f64 im -2))) (if (<=.f64 im 8641494516500305/7371020360979572953596786290992712677572111758625860211672277930167234692172165726730716260112614780354430419981960634569864423105321860610471551272329484460252725248) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (*.f64 1/2 (sqrt.f64 (*.f64 2 im)))))))
(if (<=.f64 im 8641494516500305/7371020360979572953596786290992712677572111758625860211672277930167234692172165726730716260112614780354430419981960634569864423105321860610471551272329484460252725248) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (*.f64 1/2 (sqrt.f64 (*.f64 2 im))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))

end185.0ms (1.9%)

Stop Event
fuel
Compiler

Compiled 734 to 549 computations (25.2% saved)

Profiling

Loading profile data...