Details

Time bar (total: 8.7s)

analyze382.0ms (4.4%)

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)

sample1.6s (18.1%)

Results
859.0ms6456×body256valid
271.0ms647×body2048valid
261.0ms510×body4096valid
121.0ms386×body1024valid
54.0ms257×body512valid

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

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

prune3.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New112
Fresh101
Picked000
Done000
Total213
Error
12.2b
Counts
3 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
12.2b
(*.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
0.7b
(+.f64 re (hypot.f64 re im))
0.2b
(sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))
0.0b
(*.f64 2 (+.f64 re (hypot.f64 re im)))
0.0b
(*.f64 2 (+.f64 re (hypot.f64 re im)))
0.2b
(sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))
0.7b
(+.f64 re (hypot.f64 re im))
Compiler

Compiled 39 to 16 computations (59% saved)

series18.0ms (0.2%)

Counts
3 → 56
Calls

18 calls:

TimeVariablePointExpression
4.0ms
im
@-inf
(+.f64 re (hypot.f64 re im))
1.0ms
re
@-inf
(sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))
1.0ms
im
@0
(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))

rewrite64.0ms (0.7%)

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

simplify70.0ms (0.8%)

Algorithm
egg-herbie
Rules
808×fma-def_binary64
696×associate-*r*_binary64
623×associate-*l*_binary64
370×times-frac_binary64
290×associate-/l*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01681387
15141318
216271258
373791258
Stop Event
node limit
Counts
134 → 156
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)))))
(*.f64 2 im)
(+.f64 (*.f64 2 im) (*.f64 2 re))
(+.f64 (/.f64 (pow.f64 re 2) im) (+.f64 (*.f64 2 im) (*.f64 2 re)))
(+.f64 (/.f64 (pow.f64 re 2) im) (+.f64 (*.f64 2 im) (+.f64 (*.f64 2 re) (*.f64 -1/4 (/.f64 (pow.f64 re 4) (pow.f64 im 3))))))
(*.f64 4 re)
(+.f64 (*.f64 4 re) (/.f64 (pow.f64 im 2) re))
(+.f64 (*.f64 4 re) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 4 re) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (+.f64 (/.f64 (pow.f64 im 2) re) (*.f64 1/8 (/.f64 (pow.f64 im 6) (pow.f64 re 5))))))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 im 2) re)) (*.f64 1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 8) (pow.f64 re 7))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 (*.f64 1/64 (/.f64 (pow.f64 im 8) (pow.f64 re 7))) (*.f64 1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))))
(*.f64 4 re)
(+.f64 (*.f64 4 re) (/.f64 (pow.f64 im 2) re))
(+.f64 (*.f64 4 re) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 4 re) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (+.f64 (/.f64 (pow.f64 im 2) re) (*.f64 1/8 (/.f64 (pow.f64 im 6) (pow.f64 re 5))))))
(*.f64 2 im)
(+.f64 (*.f64 2 im) (*.f64 2 re))
(+.f64 (/.f64 (pow.f64 re 2) im) (+.f64 (*.f64 2 im) (*.f64 2 re)))
(+.f64 (/.f64 (pow.f64 re 2) im) (+.f64 (*.f64 2 im) (+.f64 (*.f64 2 re) (*.f64 -1/4 (/.f64 (pow.f64 re 4) (pow.f64 im 3))))))
(*.f64 -2 im)
(+.f64 (*.f64 -2 im) (*.f64 2 re))
(+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1 (/.f64 (pow.f64 re 2) im)) (*.f64 2 re)))
(+.f64 (*.f64 -2 im) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 re 2) im)) (*.f64 2 re))))
Outputs
im
(+.f64 re im)
(+.f64 im re)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im))
(fma.f64 1/2 (/.f64 (*.f64 re re) im) (+.f64 im re))
(+.f64 im (fma.f64 1/2 (/.f64 re (/.f64 im re)) re))
(+.f64 im (fma.f64 1/2 (*.f64 (/.f64 re im) re) re))
(+.f64 (*.f64 -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)))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (+.f64 im (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/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)) (*.f64 re 2))))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 (/.f64 (*.f64 im im) re) -1/2)
(/.f64 (*.f64 (*.f64 -1/2 im) im) re)
(*.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 (pow.f64 im 6) (pow.f64 re 5)) -1/16 (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/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 1/2 (/.f64 (*.f64 (pow.f64 im 8) 5/64) (pow.f64 re 7)) (fma.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) -1/16 (fma.f64 (*.f64 (/.f64 im re) im) -1/2 (*.f64 (pow.f64 im 4) (/.f64 1/8 (pow.f64 re 3))))))
(*.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/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)) (*.f64 re 2))))
im
(+.f64 re im)
(+.f64 im re)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im))
(fma.f64 1/2 (/.f64 (*.f64 re re) im) (+.f64 im re))
(+.f64 im (fma.f64 1/2 (/.f64 re (/.f64 im re)) re))
(+.f64 im (fma.f64 1/2 (*.f64 (/.f64 re im) re) re))
(+.f64 (*.f64 -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)))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (+.f64 im (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 (*.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 (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 re))
(-.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)
(fma.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) 1/8 (-.f64 (fma.f64 (*.f64 (/.f64 re im) re) -1/2 re) 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 (*.f64 re (sqrt.f64 2)) (sqrt.f64 (/.f64 1 im))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
(fma.f64 1/2 (*.f64 re (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
(*.f64 (sqrt.f64 2) (+.f64 (sqrt.f64 im) (*.f64 re (*.f64 1/2 (sqrt.f64 (/.f64 1 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 (*.f64 re (sqrt.f64 2)) (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 re re) (*.f64 (sqrt.f64 2) (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 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 (/.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 (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 (*.f64 re (sqrt.f64 2)) (sqrt.f64 (/.f64 1 im))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))))
(+.f64 (*.f64 (*.f64 (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2)) (*.f64 (pow.f64 re 3) (sqrt.f64 2))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 3))) -1/4)) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 (sqrt.f64 (/.f64 1 im)) (+.f64 (*.f64 1/2 (*.f64 (*.f64 re re) (*.f64 (sqrt.f64 2) (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2))))) (*.f64 (*.f64 1/2 re) (sqrt.f64 2))))))
(+.f64 (*.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) (+.f64 (*.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)) (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 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 (*.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 (+.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 (sqrt.f64 (/.f64 1 re)) (*.f64 (pow.f64 im 4) -1/2)) (*.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 (*.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 (*.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 (*.f64 im im) (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))))))
(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)))))))
(*.f64 2 im)
(*.f64 im 2)
(+.f64 (*.f64 2 im) (*.f64 2 re))
(*.f64 2 (+.f64 im re))
(*.f64 (+.f64 im re) 2)
(+.f64 (/.f64 (pow.f64 re 2) im) (+.f64 (*.f64 2 im) (*.f64 2 re)))
(+.f64 (/.f64 (*.f64 re re) im) (*.f64 2 (+.f64 im re)))
(fma.f64 2 (+.f64 im re) (/.f64 re (/.f64 im re)))
(fma.f64 (+.f64 im re) 2 (*.f64 (/.f64 re im) re))
(+.f64 (/.f64 (pow.f64 re 2) im) (+.f64 (*.f64 2 im) (+.f64 (*.f64 2 re) (*.f64 -1/4 (/.f64 (pow.f64 re 4) (pow.f64 im 3))))))
(+.f64 (/.f64 (*.f64 re re) im) (fma.f64 2 im (fma.f64 2 re (*.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) -1/4))))
(+.f64 (/.f64 re (/.f64 im re)) (fma.f64 2 (+.f64 im re) (/.f64 (*.f64 (pow.f64 re 4) -1/4) (pow.f64 im 3))))
(fma.f64 (+.f64 im re) 2 (fma.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) -1/4 (*.f64 (/.f64 re im) re)))
(*.f64 4 re)
(*.f64 re 4)
(+.f64 (*.f64 4 re) (/.f64 (pow.f64 im 2) re))
(fma.f64 4 re (/.f64 (*.f64 im im) re))
(fma.f64 re 4 (/.f64 im (/.f64 re im)))
(fma.f64 re 4 (*.f64 (/.f64 im re) im))
(+.f64 (*.f64 4 re) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (/.f64 (pow.f64 im 2) re)))
(fma.f64 4 re (fma.f64 -1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (/.f64 (*.f64 im im) re)))
(fma.f64 re 4 (fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) -1/4 (/.f64 im (/.f64 re im))))
(fma.f64 re 4 (fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) -1/4 (*.f64 (/.f64 im re) im)))
(+.f64 (*.f64 4 re) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (+.f64 (/.f64 (pow.f64 im 2) re) (*.f64 1/8 (/.f64 (pow.f64 im 6) (pow.f64 re 5))))))
(fma.f64 4 re (+.f64 (fma.f64 -1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (/.f64 (*.f64 im im) re)) (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) 1/8)))
(fma.f64 re 4 (fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) -1/4 (fma.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) 1/8 (/.f64 im (/.f64 re im)))))
(fma.f64 re 4 (fma.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) 1/8 (fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) -1/4 (*.f64 (/.f64 im re) im))))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(/.f64 (*.f64 (neg.f64 im) im) re)
(/.f64 (neg.f64 im) (/.f64 re im))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 im 2) re)) (*.f64 1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(fma.f64 -1 (/.f64 (*.f64 im im) re) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/4))
(-.f64 (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/4) (/.f64 im (/.f64 re im)))
(-.f64 (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/4) (*.f64 (/.f64 im re) im))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(fma.f64 -1 (/.f64 (*.f64 im im) re) (fma.f64 -1/8 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/4)))
(-.f64 (fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/4 (/.f64 -1/8 (/.f64 (pow.f64 re 5) (pow.f64 im 6)))) (/.f64 im (/.f64 re im)))
(fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/4 (-.f64 (*.f64 (/.f64 -1/8 (pow.f64 re 5)) (pow.f64 im 6)) (*.f64 (/.f64 im re) im)))
(-.f64 (fma.f64 -1/8 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/4)) (*.f64 (/.f64 im re) im))
(+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 8) (pow.f64 re 7))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 (*.f64 1/64 (/.f64 (pow.f64 im 8) (pow.f64 re 7))) (*.f64 1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))))
(fma.f64 1/16 (/.f64 (pow.f64 im 8) (pow.f64 re 7)) (fma.f64 -1 (/.f64 (*.f64 im im) re) (fma.f64 -1/8 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 1/64 (/.f64 (pow.f64 im 8) (pow.f64 re 7)) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/4)))))
(fma.f64 1/16 (/.f64 (pow.f64 im 8) (pow.f64 re 7)) (-.f64 (fma.f64 -1/8 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/4 (/.f64 1/64 (/.f64 (pow.f64 re 7) (pow.f64 im 8))))) (/.f64 im (/.f64 re im))))
(-.f64 (fma.f64 1/16 (/.f64 (pow.f64 im 8) (pow.f64 re 7)) (fma.f64 -1/8 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/4 (*.f64 (/.f64 1/64 (pow.f64 re 7)) (pow.f64 im 8))))) (*.f64 (/.f64 im re) im))
(*.f64 4 re)
(*.f64 re 4)
(+.f64 (*.f64 4 re) (/.f64 (pow.f64 im 2) re))
(fma.f64 4 re (/.f64 (*.f64 im im) re))
(fma.f64 re 4 (/.f64 im (/.f64 re im)))
(fma.f64 re 4 (*.f64 (/.f64 im re) im))
(+.f64 (*.f64 4 re) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (/.f64 (pow.f64 im 2) re)))
(fma.f64 4 re (fma.f64 -1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (/.f64 (*.f64 im im) re)))
(fma.f64 re 4 (fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) -1/4 (/.f64 im (/.f64 re im))))
(fma.f64 re 4 (fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) -1/4 (*.f64 (/.f64 im re) im)))
(+.f64 (*.f64 4 re) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (+.f64 (/.f64 (pow.f64 im 2) re) (*.f64 1/8 (/.f64 (pow.f64 im 6) (pow.f64 re 5))))))
(fma.f64 4 re (+.f64 (fma.f64 -1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (/.f64 (*.f64 im im) re)) (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) 1/8)))
(fma.f64 re 4 (fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) -1/4 (fma.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) 1/8 (/.f64 im (/.f64 re im)))))
(fma.f64 re 4 (fma.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) 1/8 (fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) -1/4 (*.f64 (/.f64 im re) im))))
(*.f64 2 im)
(*.f64 im 2)
(+.f64 (*.f64 2 im) (*.f64 2 re))
(*.f64 2 (+.f64 im re))
(*.f64 (+.f64 im re) 2)
(+.f64 (/.f64 (pow.f64 re 2) im) (+.f64 (*.f64 2 im) (*.f64 2 re)))
(+.f64 (/.f64 (*.f64 re re) im) (*.f64 2 (+.f64 im re)))
(fma.f64 2 (+.f64 im re) (/.f64 re (/.f64 im re)))
(fma.f64 (+.f64 im re) 2 (*.f64 (/.f64 re im) re))
(+.f64 (/.f64 (pow.f64 re 2) im) (+.f64 (*.f64 2 im) (+.f64 (*.f64 2 re) (*.f64 -1/4 (/.f64 (pow.f64 re 4) (pow.f64 im 3))))))
(+.f64 (/.f64 (*.f64 re re) im) (fma.f64 2 im (fma.f64 2 re (*.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) -1/4))))
(+.f64 (/.f64 re (/.f64 im re)) (fma.f64 2 (+.f64 im re) (/.f64 (*.f64 (pow.f64 re 4) -1/4) (pow.f64 im 3))))
(fma.f64 (+.f64 im re) 2 (fma.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) -1/4 (*.f64 (/.f64 re im) re)))
(*.f64 -2 im)
(*.f64 im -2)
(+.f64 (*.f64 -2 im) (*.f64 2 re))
(fma.f64 -2 im (*.f64 re 2))
(fma.f64 im -2 (*.f64 re 2))
(+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1 (/.f64 (pow.f64 re 2) im)) (*.f64 2 re)))
(fma.f64 -2 im (fma.f64 -1 (/.f64 (*.f64 re re) im) (*.f64 re 2)))
(fma.f64 im -2 (-.f64 (*.f64 re 2) (/.f64 re (/.f64 im re))))
(-.f64 (fma.f64 im -2 (*.f64 re 2)) (*.f64 (/.f64 re im) re))
(+.f64 (*.f64 -2 im) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 re 2) im)) (*.f64 2 re))))
(fma.f64 -2 im (fma.f64 1/4 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 -1 (/.f64 (*.f64 re re) im) (*.f64 re 2))))
(fma.f64 im -2 (fma.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) 1/4 (-.f64 (*.f64 re 2) (/.f64 re (/.f64 im re)))))
(fma.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) 1/4 (-.f64 (fma.f64 im -2 (*.f64 re 2)) (*.f64 (/.f64 re im) re)))
(fma.f64 im -2 (fma.f64 (/.f64 1/4 (pow.f64 im 3)) (pow.f64 re 4) (-.f64 (*.f64 re 2) (*.f64 (/.f64 re im) re))))

eval65.0ms (0.7%)

Compiler

Compiled 3078 to 2069 computations (32.8% saved)

prune37.0ms (0.4%)

Pruning

14 alts after pruning (13 fresh and 1 done)

PrunedKeptTotal
New14313156
Fresh000
Picked011
Done000
Total14314157
Error
5.4b
Counts
157 → 14
Alt Table
Click to see full alt table
StatusErrorProgram
12.2b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))
42.4b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 re im))))
16.1b
(*.f64 1/2 (sqrt.f64 (exp.f64 (log.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))
14.4b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (cbrt.f64 (hypot.f64 re im)) re))))
44.6b
(*.f64 1/2 (sqrt.f64 (*.f64 im -2)))
46.3b
(*.f64 1/2 (sqrt.f64 (*.f64 re 4)))
54.6b
(*.f64 1/2 (sqrt.f64 (/.f64 (neg.f64 im) (/.f64 re im))))
48.5b
(*.f64 1/2 (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
56.2b
(*.f64 1/2 (sqrt.f64 (*.f64 -1 (/.f64 (pow.f64 im 2) re))))
48.6b
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
14.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (pow.f64 (cbrt.f64 re) 2) (cbrt.f64 re) (hypot.f64 re im)))))
12.3b
(*.f64 1/2 (*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2)))
45.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
54.6b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (*.f64 (/.f64 im re) im) -1/2))))
Compiler

Compiled 318 to 247 computations (22.3% saved)

localize21.0ms (0.2%)

Local error

Found 6 expressions with local error:

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

Compiled 42 to 17 computations (59.5% saved)

series7.0ms (0.1%)

Counts
2 → 16
Calls

12 calls:

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

rewrite53.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
923×pow1_binary64
857×add-log-exp_binary64
856×log1p-expm1-u_binary64
856×expm1-log1p-u_binary64
837×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify54.0ms (0.6%)

Algorithm
egg-herbie
Rules
604×associate-*r*_binary64
554×fma-def_binary64
553×associate-*l*_binary64
359×associate-/l/_binary64
358×associate-/r/_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0106926
1315836
2991762
35030702
Stop Event
node limit
Counts
54 → 67
Calls
Call 1
Inputs
(*.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
(*.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 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
(fma.f64 (sqrt.f64 2) (sqrt.f64 im) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))))
(*.f64 (sqrt.f64 2) (fma.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 1/2 re) (sqrt.f64 im)))
(*.f64 (sqrt.f64 2) (fma.f64 1/2 (*.f64 re (sqrt.f64 (/.f64 1 im))) (sqrt.f64 im)))
(+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.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 (sqrt.f64 (/.f64 1 im)) (*.f64 (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2)) (*.f64 re re)))) (fma.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) 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 (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 (sqrt.f64 2) re)))))
(fma.f64 (sqrt.f64 2) (sqrt.f64 im) (*.f64 (sqrt.f64 2) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (+.f64 re (*.f64 re (*.f64 re (+.f64 (/.f64 1/2 im) (*.f64 (/.f64 1 im) -1/4)))))))))
(*.f64 (sqrt.f64 2) (fma.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (+.f64 re (*.f64 (*.f64 (/.f64 1 im) 1/4) (*.f64 re re)))) (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 (sqrt.f64 (/.f64 1 im)) (*.f64 (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2)) (*.f64 re re)))) (fma.f64 -1/4 (*.f64 (*.f64 (*.f64 (sqrt.f64 2) (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2))) (pow.f64 re 3)) (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) (fma.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))))
(+.f64 (*.f64 -1/4 (*.f64 (*.f64 (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2)) (*.f64 (pow.f64 re 3) (sqrt.f64 2))) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 (sqrt.f64 (/.f64 1 im)) (+.f64 (*.f64 1/2 (*.f64 (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 (sqrt.f64 2) re))))))
(+.f64 (*.f64 (sqrt.f64 2) (fma.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 1/2 re) (sqrt.f64 im))) (*.f64 (sqrt.f64 2) (*.f64 (+.f64 (/.f64 1/2 im) (*.f64 (/.f64 1 im) -1/4)) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 re re))) (*.f64 -1/4 (*.f64 (pow.f64 re 3) (sqrt.f64 (/.f64 1 (pow.f64 im 3)))))))))
(*.f64 (sqrt.f64 2) (fma.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (+.f64 re (*.f64 (*.f64 (/.f64 1 im) 1/4) (*.f64 re re)))) (fma.f64 (*.f64 (/.f64 1 im) 1/4) (*.f64 -1/4 (*.f64 (pow.f64 re 3) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (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 2 (sqrt.f64 re) (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 im im))))
(fma.f64 2 (sqrt.f64 re) (*.f64 im (*.f64 im (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))))))
(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 (*.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 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 im im)) (fma.f64 -1/2 (*.f64 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 1 (sqrt.f64 2)))) 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 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 im im)) (fma.f64 2 (sqrt.f64 re) (*.f64 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 1/4 (/.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (sqrt.f64 2))) 2)) (*.f64 (*.f64 (pow.f64 im 4) (sqrt.f64 (/.f64 1 re))) -1/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 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (/.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 (sqrt.f64 2) 1/4)) 2)) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 -1/2 (pow.f64 im 4))))))
(fma.f64 2 (sqrt.f64 re) (fma.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 (sqrt.f64 (/.f64 1 re)) (*.f64 -1/2 (pow.f64 im 4))) (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 1/4 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 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 im im)) (fma.f64 -1/2 (*.f64 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 1 (sqrt.f64 2)))) 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 1/4 (/.f64 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 1 (sqrt.f64 2)))) 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 (*.f64 -1/2 (pow.f64 im 4)) (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 1/4 (/.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (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 1/4 (/.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (sqrt.f64 2))) 2)) (*.f64 re re))))))) (fma.f64 2 (sqrt.f64 re) (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 im im)))))
(fma.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 im im)) (fma.f64 2 (sqrt.f64 re) (*.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 (sqrt.f64 2) 1/4)) 2)) (pow.f64 im 4)) (*.f64 (-.f64 (/.f64 1/16 (pow.f64 re 5)) (/.f64 (/.f64 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (/.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 (sqrt.f64 2) 1/4)) 2)) -8) (*.f64 re re))) (*.f64 1/2 (pow.f64 im 6)))))))
(fma.f64 (sqrt.f64 (/.f64 1 re)) (fma.f64 -1/2 (*.f64 (*.f64 (/.f64 1 (pow.f64 re 3)) (pow.f64 im 4)) (+.f64 1/8 (*.f64 (/.f64 1/4 (sqrt.f64 2)) (/.f64 1/4 (sqrt.f64 2))))) (*.f64 (+.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)))) (*.f64 1/2 (pow.f64 im 6)))) (fma.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 im im)) (*.f64 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 re) (sqrt.f64 (/.f64 1 im))))
(fma.f64 1/2 (*.f64 re (sqrt.f64 (/.f64 1 im))) (sqrt.f64 im))
(fma.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 1/2 re) (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 (/.f64 1/2 im) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2)) (*.f64 re re))))))
(fma.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (+.f64 re (*.f64 re (*.f64 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 (/.f64 1 im) -1/4)))))) (sqrt.f64 im))
(fma.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (+.f64 re (*.f64 (*.f64 (/.f64 1 im) 1/4) (*.f64 re re)))) (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 (/.f64 1/2 im) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2)) (*.f64 re re)))))))
(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))))) (fma.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (+.f64 re (*.f64 re (*.f64 re (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2)))))) (sqrt.f64 im)))
(+.f64 (fma.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 1/2 re) (sqrt.f64 im)) (*.f64 (+.f64 (/.f64 1/2 im) (*.f64 (/.f64 1 im) -1/4)) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 re re))) (*.f64 -1/4 (*.f64 (pow.f64 re 3) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))))))
(fma.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (+.f64 re (*.f64 (*.f64 (/.f64 1 im) 1/4) (*.f64 re re)))) (fma.f64 (*.f64 (/.f64 1 im) 1/4) (*.f64 -1/4 (*.f64 (pow.f64 re 3) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (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 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 im (/.f64 (sqrt.f64 2) im)))))
(fma.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 (/.f64 im (sqrt.f64 2)) im)) (*.f64 (sqrt.f64 2) (sqrt.f64 re)))
(fma.f64 (sqrt.f64 2) (sqrt.f64 re) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 1/4 (/.f64 im (/.f64 (sqrt.f64 2) im)))))
(+.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 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 1 (sqrt.f64 2)))) 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/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 im (/.f64 (sqrt.f64 2) im))) (*.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 1/4 (/.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (sqrt.f64 2))) 2)) (/.f64 (sqrt.f64 2) (pow.f64 im 4)))))))
(fma.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (*.f64 -1/2 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (/.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 (sqrt.f64 2) 1/4)) 2))) (/.f64 (sqrt.f64 2) (pow.f64 im 4))) (fma.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 (/.f64 im (sqrt.f64 2)) im)) (*.f64 (sqrt.f64 2) (sqrt.f64 re))))
(fma.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 im (/.f64 (sqrt.f64 2) im))) (fma.f64 (sqrt.f64 2) (sqrt.f64 re) (*.f64 (/.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 -1/2 (pow.f64 im 4))) (sqrt.f64 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 (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 (*.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 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 1 (sqrt.f64 2)))) 2)) (*.f64 (*.f64 re re) (pow.f64 (sqrt.f64 2) 2))))) (*.f64 (pow.f64 im 6) (sqrt.f64 (/.f64 1 re)))) (sqrt.f64 2)) (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 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 1 (sqrt.f64 2)))) 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 (-.f64 (/.f64 1/16 (pow.f64 re 5)) (*.f64 -1/8 (/.f64 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 1/4 (/.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (sqrt.f64 2))) 2)) (*.f64 re re)))) (/.f64 (sqrt.f64 2) (pow.f64 im 6)))) (*.f64 -1/2 (/.f64 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 1/4 (/.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (sqrt.f64 2))) 2)) (/.f64 (sqrt.f64 2) (pow.f64 im 4)))))) (fma.f64 (sqrt.f64 2) (sqrt.f64 re) (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 im (/.f64 (sqrt.f64 2) im))))))
(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 (/.f64 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (/.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 (sqrt.f64 2) 1/4)) 2)) -8) (*.f64 re re))) (sqrt.f64 2))) (/.f64 (*.f64 -1/2 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (/.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 (sqrt.f64 2) 1/4)) 2))) (/.f64 (sqrt.f64 2) (pow.f64 im 4)))) (fma.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 (/.f64 im (sqrt.f64 2)) im)) (*.f64 (sqrt.f64 2) (sqrt.f64 re))))
(fma.f64 (sqrt.f64 (/.f64 1 re)) (fma.f64 1/2 (*.f64 (/.f64 (pow.f64 im 6) (sqrt.f64 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))))) (*.f64 (/.f64 (*.f64 (/.f64 1 (pow.f64 re 3)) (+.f64 1/8 (*.f64 (/.f64 1/4 (sqrt.f64 2)) (/.f64 1/4 (sqrt.f64 2))))) (sqrt.f64 2)) (*.f64 -1/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 im (/.f64 (sqrt.f64 2) im))))))

localize10.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.2b
(sqrt.f64 (*.f64 2 im))
0.2b
(sqrt.f64 (*.f64 2 im))
Compiler

Compiled 18 to 14 computations (22.2% saved)

series3.0ms (0%)

Counts
1 → 0
Calls

3 calls:

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

rewrite34.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
422×pow1_binary64
410×add-sqr-sqrt_binary64
401×*-un-lft-identity_binary64
392×add-log-exp_binary64
392×log1p-expm1-u_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify6.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

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

localize13.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.2b
(sqrt.f64 (*.f64 2 (+.f64 re im)))
0.2b
(sqrt.f64 (*.f64 2 (+.f64 re im)))
Compiler

Compiled 28 to 15 computations (46.4% saved)

series4.0ms (0.1%)

Counts
1 → 8
Calls

6 calls:

TimeVariablePointExpression
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)))
1.0ms
re
@-inf
(sqrt.f64 (*.f64 2 (+.f64 re im)))

rewrite46.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
812×pow1_binary64
759×add-log-exp_binary64
758×log1p-expm1-u_binary64
758×expm1-log1p-u_binary64
743×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
079
11579
221099
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 (cbrt.f64 (*.f64 (pow.f64 (+.f64 re im) 2) 4))) (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 (cbrt.f64 (*.f64 (pow.f64 (+.f64 re im) 2) 4)) 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)))))))))

simplify114.0ms (1.3%)

Algorithm
egg-herbie
Rules
680×sqr-pow_binary64
652×associate-/r*_binary64
453×*-commutative_binary64
439×distribute-lft-out_binary64
410×unswap-sqr_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
060304
1159304
2439284
31560256
42616256
53607256
65356256
75744256
86163256
96466256
106874256
117516256
Stop Event
node limit
Counts
30 → 36
Calls
Call 1
Inputs
(*.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/8 (*.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) re) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im))))
(+.f64 (*.f64 -1/8 (*.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) re) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 1/16 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 3)) (sqrt.f64 (/.f64 1 (pow.f64 im 5))))))))
(*.f64 (sqrt.f64 2) (sqrt.f64 re))
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 re)) (*.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 (*.f64 (sqrt.f64 2) (sqrt.f64 re)) (*.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 (*.f64 1/16 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 re)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re)))))))
Outputs
(*.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 (sqrt.f64 2) (sqrt.f64 im) (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 (*.f64 1/2 re) (sqrt.f64 2))))
(*.f64 (sqrt.f64 2) (+.f64 (sqrt.f64 im) (*.f64 1/2 (*.f64 re (sqrt.f64 (/.f64 1 im))))))
(+.f64 (*.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im))))
(fma.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 re re)) (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) (fma.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im))))
(fma.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 re re)) (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) (fma.f64 (sqrt.f64 2) (sqrt.f64 im) (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 (*.f64 1/2 re) (sqrt.f64 2)))))
(fma.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 3))) (*.f64 -1/8 (*.f64 re re))) (*.f64 (sqrt.f64 2) (+.f64 (sqrt.f64 im) (*.f64 1/2 (*.f64 re (sqrt.f64 (/.f64 1 im)))))))
(*.f64 (sqrt.f64 2) (+.f64 (sqrt.f64 im) (*.f64 re (+.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) (*.f64 -1/8 (*.f64 re (sqrt.f64 (/.f64 1 (pow.f64 im 3)))))))))
(+.f64 (*.f64 -1/8 (*.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) re) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 1/16 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 3)) (sqrt.f64 (/.f64 1 (pow.f64 im 5))))))))
(fma.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 re re)) (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) (fma.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 (/.f64 1 im)))) (fma.f64 (sqrt.f64 2) (sqrt.f64 im) (*.f64 1/16 (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 re 3) (sqrt.f64 (/.f64 1 (pow.f64 im 5)))))))))
(fma.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 re re)) (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) (fma.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 (/.f64 1 im)))) (fma.f64 (sqrt.f64 2) (sqrt.f64 im) (*.f64 (*.f64 1/16 (sqrt.f64 (/.f64 1 (pow.f64 im 5)))) (*.f64 (sqrt.f64 2) (pow.f64 re 3))))))
(+.f64 (*.f64 (sqrt.f64 2) (+.f64 (sqrt.f64 im) (*.f64 1/2 (*.f64 re (sqrt.f64 (/.f64 1 im)))))) (*.f64 (sqrt.f64 2) (+.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 5))) (*.f64 1/16 (pow.f64 re 3))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 3))) (*.f64 -1/8 (*.f64 re re))))))
(*.f64 (sqrt.f64 2) (+.f64 (*.f64 re (+.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) (*.f64 -1/8 (*.f64 re (sqrt.f64 (/.f64 1 (pow.f64 im 3))))))) (+.f64 (sqrt.f64 im) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 5))) (*.f64 1/16 (pow.f64 re 3))))))
(*.f64 (sqrt.f64 2) (+.f64 (sqrt.f64 im) (+.f64 (*.f64 1/2 (*.f64 re (sqrt.f64 (/.f64 1 im)))) (*.f64 (*.f64 re re) (+.f64 (*.f64 -1/8 (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) (*.f64 1/16 (*.f64 re (sqrt.f64 (/.f64 1 (pow.f64 im 5))))))))))
(*.f64 (sqrt.f64 2) (+.f64 (+.f64 (sqrt.f64 im) (*.f64 1/2 (*.f64 re (sqrt.f64 (/.f64 1 im))))) (*.f64 (*.f64 re re) (+.f64 (*.f64 -1/8 (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) (*.f64 1/16 (*.f64 re (sqrt.f64 (/.f64 1 (pow.f64 im 5)))))))))
(*.f64 (sqrt.f64 2) (sqrt.f64 re))
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 re)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re)))))
(fma.f64 (sqrt.f64 2) (sqrt.f64 re) (*.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 im (sqrt.f64 (/.f64 1 re))))))
(fma.f64 (sqrt.f64 2) (sqrt.f64 re) (*.f64 (sqrt.f64 2) (*.f64 (*.f64 im (sqrt.f64 (/.f64 1 re))) 1/2)))
(*.f64 (sqrt.f64 2) (+.f64 (sqrt.f64 re) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im 1/2))))
(+.f64 (*.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 re)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re))))))
(fma.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 im im)) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (fma.f64 (sqrt.f64 2) (sqrt.f64 re) (*.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 im (sqrt.f64 (/.f64 1 re)))))))
(fma.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 im im)) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (fma.f64 (sqrt.f64 2) (sqrt.f64 re) (*.f64 (sqrt.f64 2) (*.f64 (*.f64 im (sqrt.f64 (/.f64 1 re))) 1/2))))
(fma.f64 (sqrt.f64 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 (sqrt.f64 (/.f64 1 re)) (*.f64 im 1/2)))))
(*.f64 (sqrt.f64 2) (+.f64 (sqrt.f64 re) (*.f64 im (+.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 re))) (*.f64 -1/8 (*.f64 im (sqrt.f64 (/.f64 1 (pow.f64 re 3)))))))))
(+.f64 (*.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) (+.f64 (*.f64 1/16 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 re)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re)))))))
(fma.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 im im)) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (fma.f64 1/16 (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 im 3) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) (fma.f64 (sqrt.f64 2) (sqrt.f64 re) (*.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 im (sqrt.f64 (/.f64 1 re))))))))
(fma.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 im im)) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (fma.f64 1/16 (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 im 3) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) (fma.f64 (sqrt.f64 2) (sqrt.f64 re) (*.f64 (sqrt.f64 2) (*.f64 (*.f64 im (sqrt.f64 (/.f64 1 re))) 1/2)))))
(+.f64 (*.f64 (sqrt.f64 2) (+.f64 (sqrt.f64 re) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im 1/2)))) (*.f64 (sqrt.f64 2) (+.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 -1/8 (*.f64 im im))) (*.f64 1/16 (*.f64 (pow.f64 im 3) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))))))
(*.f64 (sqrt.f64 2) (+.f64 (+.f64 (sqrt.f64 re) (*.f64 1/16 (*.f64 (pow.f64 im 3) (sqrt.f64 (/.f64 1 (pow.f64 re 5)))))) (*.f64 im (+.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 re))) (*.f64 -1/8 (*.f64 im (sqrt.f64 (/.f64 1 (pow.f64 re 3)))))))))
(*.f64 (sqrt.f64 2) (+.f64 (sqrt.f64 re) (+.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im 1/2)) (*.f64 (*.f64 im im) (+.f64 (*.f64 -1/8 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (*.f64 1/16 (*.f64 im (sqrt.f64 (/.f64 1 (pow.f64 re 5))))))))))

localize17.0ms (0.2%)

Local error

Found 6 expressions with local error:

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

Compiled 53 to 25 computations (52.8% saved)

series16.0ms (0.2%)

Counts
3 → 48
Calls

18 calls:

TimeVariablePointExpression
4.0ms
re
@inf
(*.f64 (/.f64 im re) im)
2.0ms
re
@0
(sqrt.f64 (*.f64 2 (*.f64 (*.f64 (/.f64 im re) im) -1/2)))
2.0ms
im
@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)))

rewrite66.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
621×log-prod_binary64
455×exp-prod_binary64
341×pow-prod-down_binary64
298×pow2_binary64
274×pow-unpow_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify79.0ms (0.9%)

Algorithm
egg-herbie
Rules
695×fma-def_binary64
527×associate-/r/_binary64
484×associate-*l*_binary64
429×fma-neg_binary64
354×associate-/r*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
018548
138548
2102548
3270548
4616548
51818548
62680548
75762548
86755548
97309548
Stop Event
node limit
Counts
145 → 107
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)
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 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 im (*.f64 (sqrt.f64 -1) (neg.f64 (sqrt.f64 (/.f64 1 re)))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (neg.f64 (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (neg.f64 im)))
(*.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 im (*.f64 (sqrt.f64 -1) (neg.f64 (sqrt.f64 (/.f64 1 re)))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (neg.f64 (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (neg.f64 im)))
(*.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 im (*.f64 (sqrt.f64 -1) (neg.f64 (sqrt.f64 (/.f64 1 re)))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (neg.f64 (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (neg.f64 im)))
(*.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 im (*.f64 (sqrt.f64 -1) (neg.f64 (sqrt.f64 (/.f64 1 re)))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (neg.f64 (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (neg.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))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 (*.f64 im (sqrt.f64 (/.f64 1 re))) 1/2))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (*.f64 im 1/2)))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) 1/2)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 (*.f64 im (sqrt.f64 (/.f64 1 re))) 1/2))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (*.f64 im 1/2)))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) 1/2)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 (*.f64 im (sqrt.f64 (/.f64 1 re))) 1/2))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (*.f64 im 1/2)))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) 1/2)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 (*.f64 im (sqrt.f64 (/.f64 1 re))) 1/2))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (*.f64 im 1/2)))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) 1/2)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 (*.f64 im (sqrt.f64 (/.f64 1 re))) 1/2))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (*.f64 im 1/2)))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) 1/2)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 (*.f64 im (sqrt.f64 (/.f64 1 re))) 1/2))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (*.f64 im 1/2)))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) 1/2)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 (*.f64 im (sqrt.f64 (/.f64 1 re))) 1/2))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (*.f64 im 1/2)))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) 1/2)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 (*.f64 im (sqrt.f64 (/.f64 1 re))) 1/2))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (*.f64 im 1/2)))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) 1/2)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (*.f64 (sqrt.f64 (/.f64 1 re)) -1/2))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (*.f64 im -1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im -1/2)))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (*.f64 (sqrt.f64 (/.f64 1 re)) -1/2))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (*.f64 im -1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im -1/2)))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (*.f64 (sqrt.f64 (/.f64 1 re)) -1/2))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (*.f64 im -1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im -1/2)))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (*.f64 (sqrt.f64 (/.f64 1 re)) -1/2))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (*.f64 im -1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im -1/2)))

localize29.0ms (0.3%)

Local error

Found 8 expressions with local error:

NewErrorProgram
0.7b
(+.f64 re (hypot.f64 re im))
0.2b
(sqrt.f64 (exp.f64 (log.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))
0.2b
(log.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
0.0b
(*.f64 (+.f64 re (hypot.f64 re im)) 2)
0.2b
(log.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
0.2b
(sqrt.f64 (exp.f64 (log.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))
0.7b
(+.f64 re (hypot.f64 re im))
4.7b
(exp.f64 (log.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))
Compiler

Compiled 60 to 27 computations (55% saved)

series16.0ms (0.2%)

Counts
3 → 56
Calls

18 calls:

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

rewrite64.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
946×pow1_binary64
879×add-log-exp_binary64
878×log1p-expm1-u_binary64
878×expm1-log1p-u_binary64
859×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify52.0ms (0.6%)

Algorithm
egg-herbie
Rules
758×times-frac_binary64
611×associate-+l+_binary64
448×associate-/l*_binary64
427×associate-/r*_binary64
418×associate-+r+_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02571654
17371497
224721426
Stop Event
node limit
Counts
139 → 170
Calls
Call 1
Inputs
(*.f64 2 im)
(+.f64 (*.f64 2 im) (*.f64 2 re))
(+.f64 (/.f64 (pow.f64 re 2) im) (+.f64 (*.f64 2 im) (*.f64 2 re)))
(+.f64 (/.f64 (pow.f64 re 2) im) (+.f64 (*.f64 2 im) (+.f64 (*.f64 2 re) (*.f64 -1/4 (/.f64 (pow.f64 re 4) (pow.f64 im 3))))))
(*.f64 4 re)
(+.f64 (*.f64 4 re) (/.f64 (pow.f64 im 2) re))
(+.f64 (*.f64 4 re) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 4 re) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (+.f64 (/.f64 (pow.f64 im 2) re) (*.f64 1/8 (/.f64 (pow.f64 im 6) (pow.f64 re 5))))))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 im 2) re)) (*.f64 1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 8) (pow.f64 re 7))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 (*.f64 1/64 (/.f64 (pow.f64 im 8) (pow.f64 re 7))) (*.f64 1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))))
(*.f64 4 re)
(+.f64 (*.f64 4 re) (/.f64 (pow.f64 im 2) re))
(+.f64 (*.f64 4 re) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 4 re) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (+.f64 (/.f64 (pow.f64 im 2) re) (*.f64 1/8 (/.f64 (pow.f64 im 6) (pow.f64 re 5))))))
(*.f64 2 im)
(+.f64 (*.f64 2 im) (*.f64 2 re))
(+.f64 (/.f64 (pow.f64 re 2) im) (+.f64 (*.f64 2 im) (*.f64 2 re)))
(+.f64 (/.f64 (pow.f64 re 2) im) (+.f64 (*.f64 2 im) (+.f64 (*.f64 2 re) (*.f64 -1/4 (/.f64 (pow.f64 re 4) (pow.f64 im 3))))))
(*.f64 -2 im)
(+.f64 (*.f64 -2 im) (*.f64 2 re))
(+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1 (/.f64 (pow.f64 re 2) im)) (*.f64 2 re)))
(+.f64 (*.f64 -2 im) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 re 2) im)) (*.f64 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)))))
(log.f64 (*.f64 2 im))
(+.f64 (/.f64 re im) (log.f64 (*.f64 2 im)))
(+.f64 (/.f64 re im) (+.f64 (log.f64 (*.f64 2 im)) (*.f64 -1/6 (/.f64 (pow.f64 re 3) (pow.f64 im 3)))))
(+.f64 (/.f64 re im) (+.f64 (*.f64 3/40 (/.f64 (pow.f64 re 5) (pow.f64 im 5))) (+.f64 (log.f64 (*.f64 2 im)) (*.f64 -1/6 (/.f64 (pow.f64 re 3) (pow.f64 im 3))))))
(+.f64 (log.f64 4) (*.f64 -1 (log.f64 (/.f64 1 re))))
(+.f64 (*.f64 1/4 (/.f64 (pow.f64 im 2) (pow.f64 re 2))) (+.f64 (log.f64 4) (*.f64 -1 (log.f64 (/.f64 1 re)))))
(+.f64 (*.f64 1/4 (/.f64 (pow.f64 im 2) (pow.f64 re 2))) (+.f64 (*.f64 1/24 (/.f64 (+.f64 (*.f64 -3/4 (pow.f64 im 4)) (*.f64 -3/2 (pow.f64 im 4))) (pow.f64 re 4))) (+.f64 (log.f64 4) (*.f64 -1 (log.f64 (/.f64 1 re))))))
(+.f64 (*.f64 1/4 (/.f64 (pow.f64 im 2) (pow.f64 re 2))) (+.f64 (*.f64 1/24 (/.f64 (+.f64 (*.f64 -3/4 (pow.f64 im 4)) (*.f64 -3/2 (pow.f64 im 4))) (pow.f64 re 4))) (+.f64 (log.f64 4) (+.f64 (*.f64 1/720 (/.f64 (+.f64 (*.f64 15/4 (pow.f64 im 6)) (+.f64 (*.f64 45/2 (pow.f64 im 6)) (*.f64 45/4 (pow.f64 im 6)))) (pow.f64 re 6))) (*.f64 -1 (log.f64 (/.f64 1 re)))))))
(+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re)))
(+.f64 (log.f64 (pow.f64 im 2)) (+.f64 (log.f64 (/.f64 -1 re)) (*.f64 -1/4 (/.f64 (pow.f64 im 2) (pow.f64 re 2)))))
(+.f64 (log.f64 (pow.f64 im 2)) (+.f64 (*.f64 1/24 (/.f64 (+.f64 (*.f64 -3/4 (pow.f64 im 4)) (*.f64 3 (pow.f64 im 4))) (pow.f64 re 4))) (+.f64 (log.f64 (/.f64 -1 re)) (*.f64 -1/4 (/.f64 (pow.f64 im 2) (pow.f64 re 2))))))
(+.f64 (log.f64 (pow.f64 im 2)) (+.f64 (*.f64 1/720 (/.f64 (+.f64 (*.f64 45/2 (pow.f64 im 6)) (+.f64 (*.f64 -720 (/.f64 (+.f64 (pow.f64 (*.f64 -1/8 (pow.f64 im 4)) 2) (*.f64 1/16 (pow.f64 im 8))) (pow.f64 im 2))) (*.f64 -15/4 (pow.f64 im 6)))) (pow.f64 re 6))) (+.f64 (*.f64 1/24 (/.f64 (+.f64 (*.f64 -3/4 (pow.f64 im 4)) (*.f64 3 (pow.f64 im 4))) (pow.f64 re 4))) (+.f64 (log.f64 (/.f64 -1 re)) (*.f64 -1/4 (/.f64 (pow.f64 im 2) (pow.f64 re 2)))))))
(log.f64 (*.f64 4 re))
(+.f64 (log.f64 (*.f64 4 re)) (*.f64 1/4 (/.f64 (pow.f64 im 2) (pow.f64 re 2))))
(+.f64 (*.f64 -3/32 (/.f64 (pow.f64 im 4) (pow.f64 re 4))) (+.f64 (log.f64 (*.f64 4 re)) (*.f64 1/4 (/.f64 (pow.f64 im 2) (pow.f64 re 2)))))
(+.f64 (*.f64 -3/32 (/.f64 (pow.f64 im 4) (pow.f64 re 4))) (+.f64 (log.f64 (*.f64 4 re)) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 im 2) (pow.f64 re 2))) (*.f64 5/96 (/.f64 (pow.f64 im 6) (pow.f64 re 6))))))
(+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 im))))
(+.f64 (/.f64 re im) (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 im)))))
(+.f64 (/.f64 re im) (+.f64 (log.f64 2) (+.f64 (*.f64 1/2 (/.f64 (+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 re 2))) (pow.f64 im 2))) (*.f64 -1 (log.f64 (/.f64 1 im))))))
(+.f64 (/.f64 re im) (+.f64 (log.f64 2) (+.f64 (*.f64 1/2 (/.f64 (+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 re 2))) (pow.f64 im 2))) (+.f64 (*.f64 -1 (log.f64 (/.f64 1 im))) (*.f64 1/6 (/.f64 (+.f64 (*.f64 -3 (pow.f64 re 3)) (*.f64 2 (pow.f64 re 3))) (pow.f64 im 3)))))))
(+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 -1 im))))
(+.f64 (log.f64 2) (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 im))) (*.f64 -1 (/.f64 re im))))
(+.f64 (log.f64 2) (+.f64 (*.f64 1/2 (/.f64 (+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 re 2))) (pow.f64 im 2))) (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 im))) (*.f64 -1 (/.f64 re im)))))
(+.f64 (log.f64 2) (+.f64 (*.f64 1/2 (/.f64 (+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 re 2))) (pow.f64 im 2))) (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 im))) (+.f64 (*.f64 -1 (/.f64 re im)) (*.f64 -1/6 (/.f64 (+.f64 (*.f64 -3 (pow.f64 re 3)) (*.f64 2 (pow.f64 re 3))) (pow.f64 im 3)))))))
Outputs
(*.f64 2 im)
(+.f64 (*.f64 2 im) (*.f64 2 re))
(*.f64 2 (+.f64 im re))
(+.f64 (/.f64 (pow.f64 re 2) im) (+.f64 (*.f64 2 im) (*.f64 2 re)))
(+.f64 (*.f64 2 (+.f64 im re)) (/.f64 (*.f64 re re) im))
(fma.f64 2 (+.f64 im re) (/.f64 re (/.f64 im re)))
(fma.f64 2 (+.f64 im re) (*.f64 (/.f64 re im) re))
(+.f64 (/.f64 (pow.f64 re 2) im) (+.f64 (*.f64 2 im) (+.f64 (*.f64 2 re) (*.f64 -1/4 (/.f64 (pow.f64 re 4) (pow.f64 im 3))))))
(+.f64 (/.f64 (*.f64 re re) im) (fma.f64 2 im (fma.f64 2 re (*.f64 -1/4 (/.f64 (pow.f64 re 4) (pow.f64 im 3))))))
(+.f64 (fma.f64 2 (+.f64 im re) (/.f64 re (/.f64 im re))) (*.f64 -1/4 (/.f64 (pow.f64 re 4) (pow.f64 im 3))))
(+.f64 (*.f64 (/.f64 re im) re) (fma.f64 2 (+.f64 im re) (/.f64 (pow.f64 re 4) (/.f64 (pow.f64 im 3) -1/4))))
(*.f64 4 re)
(*.f64 re 4)
(+.f64 (*.f64 4 re) (/.f64 (pow.f64 im 2) re))
(fma.f64 4 re (/.f64 (*.f64 im im) re))
(fma.f64 re 4 (/.f64 (*.f64 im im) re))
(fma.f64 re 4 (*.f64 (/.f64 im re) im))
(+.f64 (*.f64 4 re) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (/.f64 (pow.f64 im 2) re)))
(fma.f64 4 re (fma.f64 -1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (/.f64 (*.f64 im im) re)))
(fma.f64 re 4 (fma.f64 -1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (/.f64 (*.f64 im im) re)))
(fma.f64 re 4 (fma.f64 -1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (*.f64 (/.f64 im re) im)))
(+.f64 (*.f64 4 re) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (+.f64 (/.f64 (pow.f64 im 2) re) (*.f64 1/8 (/.f64 (pow.f64 im 6) (pow.f64 re 5))))))
(fma.f64 4 re (+.f64 (fma.f64 -1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (/.f64 (*.f64 im im) re)) (*.f64 1/8 (/.f64 (pow.f64 im 6) (pow.f64 re 5)))))
(fma.f64 re 4 (fma.f64 -1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 1/8 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (/.f64 (*.f64 im im) re))))
(fma.f64 re 4 (fma.f64 -1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 1/8 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (*.f64 (/.f64 im re) im))))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(/.f64 (neg.f64 (*.f64 im im)) re)
(/.f64 (*.f64 im (neg.f64 im)) re)
(+.f64 (*.f64 -1 (/.f64 (pow.f64 im 2) re)) (*.f64 1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(fma.f64 -1 (/.f64 (*.f64 im im) re) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/4))
(-.f64 (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/4) (/.f64 (*.f64 im im) re))
(-.f64 (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/4) (*.f64 (/.f64 im re) im))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(fma.f64 -1 (/.f64 (*.f64 im im) re) (fma.f64 -1/8 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/4)))
(-.f64 (fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/4 (/.f64 (*.f64 (pow.f64 im 6) -1/8) (pow.f64 re 5))) (/.f64 (*.f64 im im) re))
(-.f64 (fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/4 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) -1/8)) (*.f64 (/.f64 im re) im))
(+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 8) (pow.f64 re 7))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 (*.f64 1/64 (/.f64 (pow.f64 im 8) (pow.f64 re 7))) (*.f64 1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))))
(fma.f64 1/16 (/.f64 (pow.f64 im 8) (pow.f64 re 7)) (fma.f64 -1 (/.f64 (*.f64 im im) re) (fma.f64 -1/8 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 1/64 (/.f64 (pow.f64 im 8) (pow.f64 re 7)) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/4)))))
(fma.f64 1/16 (/.f64 (pow.f64 im 8) (pow.f64 re 7)) (-.f64 (fma.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) -1/8 (fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/4 (/.f64 1/64 (/.f64 (pow.f64 re 7) (pow.f64 im 8))))) (/.f64 (*.f64 im im) re)))
(fma.f64 1/16 (/.f64 (pow.f64 im 8) (pow.f64 re 7)) (-.f64 (fma.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) -1/8 (fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/4 (*.f64 (/.f64 1/64 (pow.f64 re 7)) (pow.f64 im 8)))) (*.f64 (/.f64 im re) im)))
(*.f64 4 re)
(*.f64 re 4)
(+.f64 (*.f64 4 re) (/.f64 (pow.f64 im 2) re))
(fma.f64 4 re (/.f64 (*.f64 im im) re))
(fma.f64 re 4 (/.f64 (*.f64 im im) re))
(fma.f64 re 4 (*.f64 (/.f64 im re) im))
(+.f64 (*.f64 4 re) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (/.f64 (pow.f64 im 2) re)))
(fma.f64 4 re (fma.f64 -1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (/.f64 (*.f64 im im) re)))
(fma.f64 re 4 (fma.f64 -1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (/.f64 (*.f64 im im) re)))
(fma.f64 re 4 (fma.f64 -1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (*.f64 (/.f64 im re) im)))
(+.f64 (*.f64 4 re) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (+.f64 (/.f64 (pow.f64 im 2) re) (*.f64 1/8 (/.f64 (pow.f64 im 6) (pow.f64 re 5))))))
(fma.f64 4 re (+.f64 (fma.f64 -1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (/.f64 (*.f64 im im) re)) (*.f64 1/8 (/.f64 (pow.f64 im 6) (pow.f64 re 5)))))
(fma.f64 re 4 (fma.f64 -1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 1/8 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (/.f64 (*.f64 im im) re))))
(fma.f64 re 4 (fma.f64 -1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 1/8 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (*.f64 (/.f64 im re) im))))
(*.f64 2 im)
(+.f64 (*.f64 2 im) (*.f64 2 re))
(*.f64 2 (+.f64 im re))
(+.f64 (/.f64 (pow.f64 re 2) im) (+.f64 (*.f64 2 im) (*.f64 2 re)))
(+.f64 (*.f64 2 (+.f64 im re)) (/.f64 (*.f64 re re) im))
(fma.f64 2 (+.f64 im re) (/.f64 re (/.f64 im re)))
(fma.f64 2 (+.f64 im re) (*.f64 (/.f64 re im) re))
(+.f64 (/.f64 (pow.f64 re 2) im) (+.f64 (*.f64 2 im) (+.f64 (*.f64 2 re) (*.f64 -1/4 (/.f64 (pow.f64 re 4) (pow.f64 im 3))))))
(+.f64 (/.f64 (*.f64 re re) im) (fma.f64 2 im (fma.f64 2 re (*.f64 -1/4 (/.f64 (pow.f64 re 4) (pow.f64 im 3))))))
(+.f64 (fma.f64 2 (+.f64 im re) (/.f64 re (/.f64 im re))) (*.f64 -1/4 (/.f64 (pow.f64 re 4) (pow.f64 im 3))))
(+.f64 (*.f64 (/.f64 re im) re) (fma.f64 2 (+.f64 im re) (/.f64 (pow.f64 re 4) (/.f64 (pow.f64 im 3) -1/4))))
(*.f64 -2 im)
(*.f64 im -2)
(+.f64 (*.f64 -2 im) (*.f64 2 re))
(fma.f64 -2 im (*.f64 2 re))
(fma.f64 im -2 (*.f64 2 re))
(fma.f64 2 re (*.f64 im -2))
(+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1 (/.f64 (pow.f64 re 2) im)) (*.f64 2 re)))
(fma.f64 -2 im (fma.f64 -1 (/.f64 (*.f64 re re) im) (*.f64 2 re)))
(fma.f64 im -2 (fma.f64 2 re (/.f64 (*.f64 re (neg.f64 re)) im)))
(-.f64 (fma.f64 2 re (*.f64 im -2)) (*.f64 (/.f64 re im) re))
(+.f64 (*.f64 -2 im) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 re 2) im)) (*.f64 2 re))))
(fma.f64 -2 im (fma.f64 1/4 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 -1 (/.f64 (*.f64 re re) im) (*.f64 2 re))))
(fma.f64 im -2 (fma.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) 1/4 (fma.f64 2 re (/.f64 (*.f64 re (neg.f64 re)) 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 (*.f64 re (sqrt.f64 2)) (sqrt.f64 (/.f64 1 im))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
(fma.f64 (sqrt.f64 2) (sqrt.f64 im) (*.f64 (sqrt.f64 2) (*.f64 (*.f64 re (sqrt.f64 (/.f64 1 im))) 1/2)))
(*.f64 (sqrt.f64 2) (+.f64 (*.f64 1/2 (*.f64 re (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 (*.f64 re (sqrt.f64 2)) (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 re re) (*.f64 (sqrt.f64 2) (-.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 (*.f64 re re) (+.f64 (/.f64 1/2 im) (*.f64 -1/4 (/.f64 1 im)))) 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 (/.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 (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 (*.f64 re (sqrt.f64 2)) (sqrt.f64 (/.f64 1 im))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))))
(+.f64 (*.f64 (*.f64 (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2)) (*.f64 (pow.f64 re 3) (sqrt.f64 2))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 3))) -1/4)) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 (sqrt.f64 (/.f64 1 im)) (+.f64 (*.f64 1/2 (*.f64 (*.f64 re re) (*.f64 (sqrt.f64 2) (-.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) (+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 3) (*.f64 (+.f64 (/.f64 1/2 im) (*.f64 -1/4 (/.f64 1 im))) (sqrt.f64 (/.f64 1 (pow.f64 im 3)))))) (sqrt.f64 im))) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 im))) (+.f64 (*.f64 (*.f64 re re) (+.f64 (/.f64 1/2 im) (*.f64 -1/4 (/.f64 1 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 (*.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 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 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 1 (sqrt.f64 2)))) 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 -1/2 (*.f64 (pow.f64 im 4) (*.f64 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 1/4 (/.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (sqrt.f64 2))) 2)) (sqrt.f64 (/.f64 1 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 -1/2 (*.f64 (pow.f64 im 4) (sqrt.f64 (/.f64 1 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 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 1 (sqrt.f64 2)))) 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 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 1 (sqrt.f64 2)))) 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 1/4 (/.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (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 1/4 (/.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (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 (pow.f64 im 6) (*.f64 1/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 (+.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) -1/2)))) (fma.f64 2 (sqrt.f64 re) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 im (*.f64 im 1/4)))))
(log.f64 (*.f64 2 im))
(+.f64 (/.f64 re im) (log.f64 (*.f64 2 im)))
(+.f64 (log.f64 (*.f64 2 im)) (/.f64 re im))
(+.f64 (/.f64 re im) (+.f64 (log.f64 (*.f64 2 im)) (*.f64 -1/6 (/.f64 (pow.f64 re 3) (pow.f64 im 3)))))
(+.f64 (/.f64 re im) (fma.f64 -1/6 (/.f64 (pow.f64 re 3) (pow.f64 im 3)) (log.f64 (*.f64 2 im))))
(+.f64 (/.f64 re im) (+.f64 (*.f64 3/40 (/.f64 (pow.f64 re 5) (pow.f64 im 5))) (+.f64 (log.f64 (*.f64 2 im)) (*.f64 -1/6 (/.f64 (pow.f64 re 3) (pow.f64 im 3))))))
(+.f64 (/.f64 re im) (fma.f64 3/40 (/.f64 (pow.f64 re 5) (pow.f64 im 5)) (+.f64 (log.f64 (*.f64 2 im)) (*.f64 -1/6 (/.f64 (pow.f64 re 3) (pow.f64 im 3))))))
(+.f64 (/.f64 re im) (fma.f64 3/40 (/.f64 (pow.f64 re 5) (pow.f64 im 5)) (fma.f64 -1/6 (/.f64 (pow.f64 re 3) (pow.f64 im 3)) (log.f64 (*.f64 2 im)))))
(+.f64 (log.f64 4) (*.f64 -1 (log.f64 (/.f64 1 re))))
(+.f64 (log.f64 4) (neg.f64 (neg.f64 (log.f64 re))))
(log.f64 (*.f64 re 4))
(+.f64 (*.f64 1/4 (/.f64 (pow.f64 im 2) (pow.f64 re 2))) (+.f64 (log.f64 4) (*.f64 -1 (log.f64 (/.f64 1 re)))))
(fma.f64 1/4 (/.f64 (*.f64 im im) (*.f64 re re)) (+.f64 (log.f64 4) (neg.f64 (neg.f64 (log.f64 re)))))
(fma.f64 1/4 (*.f64 (/.f64 im re) (/.f64 im re)) (log.f64 (*.f64 re 4)))
(+.f64 (*.f64 1/4 (/.f64 (pow.f64 im 2) (pow.f64 re 2))) (+.f64 (*.f64 1/24 (/.f64 (+.f64 (*.f64 -3/4 (pow.f64 im 4)) (*.f64 -3/2 (pow.f64 im 4))) (pow.f64 re 4))) (+.f64 (log.f64 4) (*.f64 -1 (log.f64 (/.f64 1 re))))))
(fma.f64 1/4 (/.f64 (*.f64 im im) (*.f64 re re)) (fma.f64 1/24 (/.f64 (*.f64 (pow.f64 im 4) -9/4) (pow.f64 re 4)) (+.f64 (log.f64 4) (neg.f64 (neg.f64 (log.f64 re))))))
(fma.f64 1/4 (*.f64 (/.f64 im re) (/.f64 im re)) (fma.f64 1/24 (/.f64 (pow.f64 im 4) (/.f64 (pow.f64 re 4) -9/4)) (log.f64 (*.f64 re 4))))
(fma.f64 1/4 (*.f64 (/.f64 im re) (/.f64 im re)) (fma.f64 1/24 (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 4)) -9/4) (log.f64 (*.f64 re 4))))
(+.f64 (*.f64 1/4 (/.f64 (pow.f64 im 2) (pow.f64 re 2))) (+.f64 (*.f64 1/24 (/.f64 (+.f64 (*.f64 -3/4 (pow.f64 im 4)) (*.f64 -3/2 (pow.f64 im 4))) (pow.f64 re 4))) (+.f64 (log.f64 4) (+.f64 (*.f64 1/720 (/.f64 (+.f64 (*.f64 15/4 (pow.f64 im 6)) (+.f64 (*.f64 45/2 (pow.f64 im 6)) (*.f64 45/4 (pow.f64 im 6)))) (pow.f64 re 6))) (*.f64 -1 (log.f64 (/.f64 1 re)))))))
(fma.f64 1/4 (/.f64 (*.f64 im im) (*.f64 re re)) (fma.f64 1/24 (/.f64 (*.f64 (pow.f64 im 4) -9/4) (pow.f64 re 4)) (+.f64 (log.f64 4) (fma.f64 1/720 (/.f64 (fma.f64 15/4 (pow.f64 im 6) (*.f64 (pow.f64 im 6) 135/4)) (pow.f64 re 6)) (neg.f64 (neg.f64 (log.f64 re)))))))
(fma.f64 1/4 (*.f64 (/.f64 im re) (/.f64 im re)) (+.f64 (fma.f64 1/24 (/.f64 (pow.f64 im 4) (/.f64 (pow.f64 re 4) -9/4)) (log.f64 (*.f64 re 4))) (*.f64 1/720 (/.f64 (*.f64 (pow.f64 im 6) 75/2) (pow.f64 re 6)))))
(+.f64 (*.f64 1/720 (/.f64 (pow.f64 im 6) (/.f64 (pow.f64 re 6) 75/2))) (fma.f64 1/4 (*.f64 (/.f64 im re) (/.f64 im re)) (fma.f64 1/24 (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 4)) -9/4) (log.f64 (*.f64 re 4)))))
(+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re)))
(+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re)))
(fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))
(+.f64 (log.f64 (pow.f64 im 2)) (+.f64 (log.f64 (/.f64 -1 re)) (*.f64 -1/4 (/.f64 (pow.f64 im 2) (pow.f64 re 2)))))
(+.f64 (*.f64 2 (log.f64 im)) (+.f64 (log.f64 (/.f64 -1 re)) (*.f64 -1/4 (/.f64 (*.f64 im im) (*.f64 re re)))))
(fma.f64 2 (log.f64 im) (fma.f64 -1/4 (*.f64 (/.f64 im re) (/.f64 im re)) (log.f64 (/.f64 -1 re))))
(+.f64 (log.f64 (pow.f64 im 2)) (+.f64 (*.f64 1/24 (/.f64 (+.f64 (*.f64 -3/4 (pow.f64 im 4)) (*.f64 3 (pow.f64 im 4))) (pow.f64 re 4))) (+.f64 (log.f64 (/.f64 -1 re)) (*.f64 -1/4 (/.f64 (pow.f64 im 2) (pow.f64 re 2))))))
(+.f64 (*.f64 2 (log.f64 im)) (fma.f64 1/24 (/.f64 (*.f64 (pow.f64 im 4) 9/4) (pow.f64 re 4)) (+.f64 (log.f64 (/.f64 -1 re)) (*.f64 -1/4 (/.f64 (*.f64 im im) (*.f64 re re))))))
(fma.f64 2 (log.f64 im) (fma.f64 1/24 (/.f64 (pow.f64 im 4) (/.f64 (pow.f64 re 4) 9/4)) (fma.f64 -1/4 (*.f64 (/.f64 im re) (/.f64 im re)) (log.f64 (/.f64 -1 re)))))
(fma.f64 2 (log.f64 im) (fma.f64 1/24 (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 4)) 9/4) (fma.f64 -1/4 (*.f64 (/.f64 im re) (/.f64 im re)) (log.f64 (/.f64 -1 re)))))
(+.f64 (log.f64 (pow.f64 im 2)) (+.f64 (*.f64 1/720 (/.f64 (+.f64 (*.f64 45/2 (pow.f64 im 6)) (+.f64 (*.f64 -720 (/.f64 (+.f64 (pow.f64 (*.f64 -1/8 (pow.f64 im 4)) 2) (*.f64 1/16 (pow.f64 im 8))) (pow.f64 im 2))) (*.f64 -15/4 (pow.f64 im 6)))) (pow.f64 re 6))) (+.f64 (*.f64 1/24 (/.f64 (+.f64 (*.f64 -3/4 (pow.f64 im 4)) (*.f64 3 (pow.f64 im 4))) (pow.f64 re 4))) (+.f64 (log.f64 (/.f64 -1 re)) (*.f64 -1/4 (/.f64 (pow.f64 im 2) (pow.f64 re 2)))))))
(+.f64 (*.f64 2 (log.f64 im)) (fma.f64 1/720 (/.f64 (fma.f64 45/2 (pow.f64 im 6) (fma.f64 -720 (/.f64 (+.f64 (pow.f64 (*.f64 (pow.f64 im 4) -1/8) 2) (*.f64 1/16 (pow.f64 im 8))) (*.f64 im im)) (*.f64 (pow.f64 im 6) -15/4))) (pow.f64 re 6)) (fma.f64 1/24 (/.f64 (*.f64 (pow.f64 im 4) 9/4) (pow.f64 re 4)) (+.f64 (log.f64 (/.f64 -1 re)) (*.f64 -1/4 (/.f64 (*.f64 im im) (*.f64 re re)))))))
(fma.f64 2 (log.f64 im) (fma.f64 1/720 (/.f64 (fma.f64 (pow.f64 im 6) 45/2 (fma.f64 -720 (/.f64 (fma.f64 1/16 (pow.f64 im 8) (*.f64 (pow.f64 im 8) 1/64)) (*.f64 im im)) (*.f64 (pow.f64 im 6) -15/4))) (pow.f64 re 6)) (fma.f64 1/24 (/.f64 (pow.f64 im 4) (/.f64 (pow.f64 re 4) 9/4)) (fma.f64 -1/4 (*.f64 (/.f64 im re) (/.f64 im re)) (log.f64 (/.f64 -1 re))))))
(fma.f64 2 (log.f64 im) (fma.f64 1/720 (/.f64 (+.f64 (*.f64 (/.f64 -720 im) (/.f64 (*.f64 (pow.f64 im 8) 5/64) im)) (*.f64 (pow.f64 im 6) 75/4)) (pow.f64 re 6)) (fma.f64 1/24 (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 4)) 9/4) (fma.f64 -1/4 (*.f64 (/.f64 im re) (/.f64 im re)) (log.f64 (/.f64 -1 re))))))
(log.f64 (*.f64 4 re))
(+.f64 (log.f64 4) (neg.f64 (neg.f64 (log.f64 re))))
(log.f64 (*.f64 re 4))
(+.f64 (log.f64 (*.f64 4 re)) (*.f64 1/4 (/.f64 (pow.f64 im 2) (pow.f64 re 2))))
(fma.f64 1/4 (/.f64 (*.f64 im im) (*.f64 re re)) (+.f64 (log.f64 4) (neg.f64 (neg.f64 (log.f64 re)))))
(fma.f64 1/4 (*.f64 (/.f64 im re) (/.f64 im re)) (log.f64 (*.f64 re 4)))
(+.f64 (*.f64 -3/32 (/.f64 (pow.f64 im 4) (pow.f64 re 4))) (+.f64 (log.f64 (*.f64 4 re)) (*.f64 1/4 (/.f64 (pow.f64 im 2) (pow.f64 re 2)))))
(fma.f64 -3/32 (/.f64 (pow.f64 im 4) (pow.f64 re 4)) (+.f64 (/.f64 (*.f64 1/4 (*.f64 im im)) (*.f64 re re)) (log.f64 (*.f64 re 4))))
(fma.f64 -3/32 (/.f64 (pow.f64 im 4) (pow.f64 re 4)) (fma.f64 1/4 (*.f64 (/.f64 im re) (/.f64 im re)) (log.f64 (*.f64 re 4))))
(+.f64 (*.f64 -3/32 (/.f64 (pow.f64 im 4) (pow.f64 re 4))) (+.f64 (log.f64 (*.f64 4 re)) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 im 2) (pow.f64 re 2))) (*.f64 5/96 (/.f64 (pow.f64 im 6) (pow.f64 re 6))))))
(fma.f64 -3/32 (/.f64 (pow.f64 im 4) (pow.f64 re 4)) (+.f64 (log.f64 (*.f64 re 4)) (fma.f64 1/4 (/.f64 (*.f64 im im) (*.f64 re re)) (*.f64 5/96 (/.f64 (pow.f64 im 6) (pow.f64 re 6))))))
(+.f64 (fma.f64 1/4 (*.f64 (/.f64 im re) (/.f64 im re)) (*.f64 5/96 (/.f64 (pow.f64 im 6) (pow.f64 re 6)))) (fma.f64 -3/32 (/.f64 (pow.f64 im 4) (pow.f64 re 4)) (log.f64 (*.f64 re 4))))
(+.f64 (/.f64 5/96 (/.f64 (pow.f64 re 6) (pow.f64 im 6))) (fma.f64 -3/32 (/.f64 (pow.f64 im 4) (pow.f64 re 4)) (fma.f64 1/4 (*.f64 (/.f64 im re) (/.f64 im re)) (log.f64 (*.f64 re 4)))))
(+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 im))))
(log.f64 (*.f64 2 im))
(+.f64 (/.f64 re im) (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 im)))))
(+.f64 (log.f64 (*.f64 2 im)) (/.f64 re im))
(+.f64 (/.f64 re im) (+.f64 (log.f64 2) (+.f64 (*.f64 1/2 (/.f64 (+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 re 2))) (pow.f64 im 2))) (*.f64 -1 (log.f64 (/.f64 1 im))))))
(+.f64 (log.f64 (*.f64 2 im)) (/.f64 re im))
(+.f64 (/.f64 re im) (+.f64 (log.f64 2) (+.f64 (*.f64 1/2 (/.f64 (+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 re 2))) (pow.f64 im 2))) (+.f64 (*.f64 -1 (log.f64 (/.f64 1 im))) (*.f64 1/6 (/.f64 (+.f64 (*.f64 -3 (pow.f64 re 3)) (*.f64 2 (pow.f64 re 3))) (pow.f64 im 3)))))))
(+.f64 (+.f64 (/.f64 re im) (log.f64 2)) (fma.f64 1/2 (/.f64 (*.f64 0 (*.f64 re re)) (*.f64 im im)) (fma.f64 -1 (neg.f64 (log.f64 im)) (*.f64 1/6 (/.f64 (*.f64 (pow.f64 re 3) -1) (pow.f64 im 3))))))
(+.f64 (/.f64 re im) (+.f64 (+.f64 (log.f64 (*.f64 2 im)) (/.f64 0 (*.f64 im im))) (/.f64 (*.f64 1/6 (*.f64 (pow.f64 re 3) -1)) (pow.f64 im 3))))
(+.f64 (log.f64 (*.f64 2 im)) (+.f64 (*.f64 (/.f64 1/6 (pow.f64 im 3)) (neg.f64 (pow.f64 re 3))) (/.f64 re im)))
(+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 -1 im))))
(+.f64 (log.f64 2) (neg.f64 (log.f64 (/.f64 -1 im))))
(-.f64 (log.f64 2) (log.f64 (/.f64 -1 im)))
(+.f64 (log.f64 2) (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 im))) (*.f64 -1 (/.f64 re im))))
(+.f64 (log.f64 2) (*.f64 -1 (+.f64 (log.f64 (/.f64 -1 im)) (/.f64 re im))))
(-.f64 (-.f64 (log.f64 2) (log.f64 (/.f64 -1 im))) (/.f64 re im))
(-.f64 (log.f64 2) (+.f64 (/.f64 re im) (log.f64 (/.f64 -1 im))))
(+.f64 (log.f64 2) (+.f64 (*.f64 1/2 (/.f64 (+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 re 2))) (pow.f64 im 2))) (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 im))) (*.f64 -1 (/.f64 re im)))))
(+.f64 (log.f64 2) (*.f64 -1 (+.f64 (log.f64 (/.f64 -1 im)) (/.f64 re im))))
(-.f64 (-.f64 (log.f64 2) (log.f64 (/.f64 -1 im))) (/.f64 re im))
(-.f64 (log.f64 2) (+.f64 (/.f64 re im) (log.f64 (/.f64 -1 im))))
(+.f64 (log.f64 2) (+.f64 (*.f64 1/2 (/.f64 (+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 re 2))) (pow.f64 im 2))) (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 im))) (+.f64 (*.f64 -1 (/.f64 re im)) (*.f64 -1/6 (/.f64 (+.f64 (*.f64 -3 (pow.f64 re 3)) (*.f64 2 (pow.f64 re 3))) (pow.f64 im 3)))))))
(+.f64 (log.f64 2) (fma.f64 1/2 (/.f64 (*.f64 0 (*.f64 re re)) (*.f64 im im)) (fma.f64 -1 (log.f64 (/.f64 -1 im)) (fma.f64 -1 (/.f64 re im) (*.f64 -1/6 (/.f64 (*.f64 (pow.f64 re 3) -1) (pow.f64 im 3)))))))
(+.f64 (log.f64 2) (+.f64 (/.f64 0 (*.f64 im im)) (-.f64 (-.f64 (/.f64 -1/6 (/.f64 (pow.f64 im 3) (*.f64 (pow.f64 re 3) -1))) (/.f64 re im)) (log.f64 (/.f64 -1 im)))))
(+.f64 (*.f64 (/.f64 -1/6 (pow.f64 im 3)) (neg.f64 (pow.f64 re 3))) (-.f64 (log.f64 2) (+.f64 (/.f64 re im) (log.f64 (/.f64 -1 im)))))

eval238.0ms (2.7%)

Compiler

Compiled 10542 to 7139 computations (32.3% saved)

prune101.0ms (1.2%)

Pruning

24 alts after pruning (19 fresh and 5 done)

PrunedKeptTotal
New51815533
Fresh448
Picked011
Done145
Total52324547
Error
5.3b
Counts
547 → 24
Alt Table
Click to see full alt table
StatusErrorProgram
12.2b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))
48.7b
(*.f64 1/2 (pow.f64 (pow.f64 (+.f64 im im) 1/4) 2))
12.9b
(*.f64 1/2 (*.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im)))) 3) (sqrt.f64 2)))
60.2b
(*.f64 1/2 (sqrt.f64 (exp.f64 (fma.f64 2 (log.f64 im) (fma.f64 -1/4 (*.f64 (/.f64 im re) (/.f64 im re)) (log.f64 (/.f64 -1 re)))))))
42.4b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 re im))))
55.0b
(*.f64 1/2 (sqrt.f64 (exp.f64 (log.f64 (*.f64 (*.f64 (*.f64 (/.f64 im re) im) -1/2) 2)))))
48.9b
(*.f64 1/2 (pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 im im))) 3))
16.1b
(*.f64 1/2 (sqrt.f64 (exp.f64 (log.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))
54.6b
(*.f64 1/2 (*.f64 (sqrt.f64 (*.f64 (*.f64 (/.f64 im re) im) -1/2)) (sqrt.f64 2)))
56.2b
(*.f64 1/2 (sqrt.f64 (/.f64 (*.f64 im (neg.f64 im)) re)))
14.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (pow.f64 (cbrt.f64 re) 2) (cbrt.f64 re) (hypot.f64 re im)))))
44.6b
(*.f64 1/2 (sqrt.f64 (*.f64 im -2)))
42.5b
(*.f64 1/2 (*.f64 (sqrt.f64 (-.f64 re im)) (sqrt.f64 2)))
48.8b
(*.f64 1/2 (*.f64 (cbrt.f64 (+.f64 im im)) (cbrt.f64 (sqrt.f64 (+.f64 im im)))))
54.6b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (*.f64 (/.f64 im re) im) -1/2))))
49.7b
(*.f64 1/2 (exp.f64 (log.f64 (sqrt.f64 (+.f64 im im)))))
48.6b
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
46.3b
(*.f64 1/2 (sqrt.f64 (*.f64 re 4)))
56.2b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (/.f64 1 (/.f64 re (*.f64 im im))) -1/2))))
45.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
48.5b
(*.f64 1/2 (*.f64 (sqrt.f64 im) (sqrt.f64 2)))
54.6b
(*.f64 1/2 (sqrt.f64 (/.f64 (neg.f64 im) (/.f64 re im))))
54.5b
(*.f64 1/2 (cbrt.f64 (pow.f64 (+.f64 im im) 3/2)))
16.3b
(*.f64 1/2 (sqrt.f64 (pow.f64 (exp.f64 1) (log.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))
Compiler

Compiled 544 to 426 computations (21.7% saved)

localize21.0ms (0.2%)

Local error

Found 8 expressions with local error:

NewErrorProgram
0.6b
(pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im)))) 3)
0.4b
(cbrt.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))))
0.4b
(*.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im)))) 3) (sqrt.f64 2))
0.0b
(sqrt.f64 (+.f64 re (hypot.f64 re im)))
0.4b
(*.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im)))) 3) (sqrt.f64 2))
0.4b
(cbrt.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))))
0.6b
(pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im)))) 3)
0.7b
(+.f64 re (hypot.f64 re im))
Compiler

Compiled 65 to 25 computations (61.5% saved)

series40.0ms (0.5%)

Counts
3 → 56
Calls

18 calls:

TimeVariablePointExpression
10.0ms
re
@-inf
(pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im)))) 3)
9.0ms
im
@inf
(pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im)))) 3)
5.0ms
re
@inf
(pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im)))) 3)
3.0ms
im
@0
(pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im)))) 3)
2.0ms
im
@-inf
(pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im)))) 3)

rewrite60.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
506×prod-diff_binary64
476×log-prod_binary64
333×pow-prod-down_binary64
272×pow2_binary64
201×pow-to-exp_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify122.0ms (1.4%)

Algorithm
egg-herbie
Rules
670×associate-*r*_binary64
669×fma-def_binary64
582×associate-*l*_binary64
468×*-commutative_binary64
406×associate-+r+_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
05625555
118834824
278934600
Stop Event
node limit
Counts
141 → 188
Calls
Call 1
Inputs
(sqrt.f64 im)
(+.f64 (sqrt.f64 im) (*.f64 (+.f64 (*.f64 1/6 (sqrt.f64 (/.f64 1 im))) (*.f64 1/3 (sqrt.f64 (/.f64 1 im)))) re))
(+.f64 (sqrt.f64 im) (+.f64 (*.f64 (+.f64 (*.f64 1/9 (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) (*.f64 1/72 (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (pow.f64 re 2)) (*.f64 (+.f64 (*.f64 1/6 (sqrt.f64 (/.f64 1 im))) (*.f64 1/3 (sqrt.f64 (/.f64 1 im)))) re)))
(+.f64 (sqrt.f64 im) (+.f64 (*.f64 (+.f64 (*.f64 1/9 (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) (*.f64 1/72 (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (pow.f64 re 2)) (+.f64 (*.f64 (+.f64 (*.f64 -35/1296 (sqrt.f64 (/.f64 1 (pow.f64 im 5)))) (+.f64 (*.f64 1/108 (sqrt.f64 (/.f64 1 (pow.f64 im 5)))) (+.f64 (*.f64 (pow.f64 (*.f64 1 im) 1/6) (+.f64 (*.f64 1/216 (pow.f64 (/.f64 1 (pow.f64 im 8)) 1/3)) (*.f64 -35/648 (pow.f64 (/.f64 1 (pow.f64 im 8)) 1/3)))) (*.f64 1/216 (sqrt.f64 (/.f64 1 (pow.f64 im 5))))))) (pow.f64 re 3)) (*.f64 (+.f64 (*.f64 1/6 (sqrt.f64 (/.f64 1 im))) (*.f64 1/3 (sqrt.f64 (/.f64 1 im)))) re))))
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) 3)
(+.f64 (*.f64 1/24 (/.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) 3) (pow.f64 im 2)) (pow.f64 re 2))) (+.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) 3) (*.f64 1/12 (/.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) 3) (pow.f64 im 2)) (pow.f64 re 2)))))
(+.f64 (*.f64 1/24 (/.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) 3) (pow.f64 im 2)) (pow.f64 re 2))) (+.f64 (*.f64 1/288 (/.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) 3) (pow.f64 im 4)) (pow.f64 re 4))) (+.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) 3) (+.f64 (/.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) 3) (+.f64 (*.f64 1/1152 (pow.f64 im 4)) (*.f64 1/144 (+.f64 (*.f64 -3/2 (pow.f64 im 4)) (*.f64 -3/4 (pow.f64 im 4)))))) (pow.f64 re 4)) (+.f64 (/.f64 (*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) (+.f64 (*.f64 2 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) 2) (+.f64 (*.f64 1/144 (+.f64 (*.f64 -3/4 (pow.f64 im 4)) (*.f64 -3/2 (pow.f64 im 4)))) (*.f64 1/1152 (pow.f64 im 4))))) (*.f64 1/576 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) 2) (pow.f64 im 4))))) (pow.f64 re 4)) (*.f64 1/12 (/.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) 3) (pow.f64 im 2)) (pow.f64 re 2))))))))
(+.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) 3) (+.f64 (*.f64 1/24 (/.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) 3) (pow.f64 im 2)) (pow.f64 re 2))) (+.f64 (/.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) 3) (+.f64 (*.f64 1/1152 (pow.f64 im 4)) (*.f64 1/144 (+.f64 (*.f64 -3/2 (pow.f64 im 4)) (*.f64 -3/4 (pow.f64 im 4)))))) (pow.f64 re 4)) (+.f64 (*.f64 1/24 (/.f64 (*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) (*.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) 2) (+.f64 (*.f64 1/144 (+.f64 (*.f64 -3/4 (pow.f64 im 4)) (*.f64 -3/2 (pow.f64 im 4)))) (*.f64 1/1152 (pow.f64 im 4))))) (*.f64 1/576 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) 2) (pow.f64 im 4)))) (pow.f64 im 2))) (pow.f64 re 6))) (+.f64 (*.f64 1/12 (/.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) 3) (*.f64 (+.f64 (*.f64 1/1152 (pow.f64 im 4)) (*.f64 1/144 (+.f64 (*.f64 -3/2 (pow.f64 im 4)) (*.f64 -3/4 (pow.f64 im 4))))) (pow.f64 im 2))) (pow.f64 re 6))) (+.f64 (*.f64 1/288 (/.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) 3) (pow.f64 im 4)) (pow.f64 re 4))) (+.f64 (/.f64 (*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) (+.f64 (*.f64 2 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) 2) (+.f64 (*.f64 1/144 (+.f64 (*.f64 -3/4 (pow.f64 im 4)) (*.f64 -3/2 (pow.f64 im 4)))) (*.f64 1/1152 (pow.f64 im 4))))) (*.f64 1/576 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) 2) (pow.f64 im 4))))) (pow.f64 re 4)) (+.f64 (/.f64 (*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) (+.f64 (*.f64 1/12 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) 2) (*.f64 (+.f64 (*.f64 1/144 (+.f64 (*.f64 -3/4 (pow.f64 im 4)) (*.f64 -3/2 (pow.f64 im 4)))) (*.f64 1/1152 (pow.f64 im 4))) (pow.f64 im 2)))) (*.f64 2 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) 2) (+.f64 (*.f64 1/82944 (pow.f64 im 6)) (+.f64 (*.f64 1/4320 (+.f64 (*.f64 15/4 (pow.f64 im 6)) (+.f64 (*.f64 45/2 (pow.f64 im 6)) (*.f64 45/4 (pow.f64 im 6))))) (*.f64 1/3456 (*.f64 (+.f64 (*.f64 -3/4 (pow.f64 im 4)) (*.f64 -3/2 (pow.f64 im 4))) (pow.f64 im 2))))))))) (pow.f64 re 6)) (+.f64 (/.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) 3) (+.f64 (*.f64 1/82944 (pow.f64 im 6)) (+.f64 (*.f64 1/4320 (+.f64 (*.f64 15/4 (pow.f64 im 6)) (+.f64 (*.f64 45/2 (pow.f64 im 6)) (*.f64 45/4 (pow.f64 im 6))))) (*.f64 1/3456 (*.f64 (+.f64 (*.f64 -3/2 (pow.f64 im 4)) (*.f64 -3/4 (pow.f64 im 4))) (pow.f64 im 2)))))) (pow.f64 re 6)) (*.f64 1/12 (/.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) 3) (pow.f64 im 2)) (pow.f64 re 2))))))))))))
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) 3)
(+.f64 (*.f64 -1/24 (/.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) 3) (pow.f64 im 2)) (pow.f64 re 2))) (+.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) 3) (*.f64 -1/12 (/.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) 3) (pow.f64 im 2)) (pow.f64 re 2)))))
(+.f64 (*.f64 -1/24 (/.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) 3) (pow.f64 im 2)) (pow.f64 re 2))) (+.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) 3) (+.f64 (*.f64 -1/12 (/.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) 3) (pow.f64 im 2)) (pow.f64 re 2))) (+.f64 (/.f64 (*.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) 2) (+.f64 (*.f64 1/1152 (pow.f64 im 4)) (*.f64 1/144 (+.f64 (*.f64 -3/4 (pow.f64 im 4)) (*.f64 3 (pow.f64 im 4))))))) (*.f64 1/576 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) 2) (pow.f64 im 4)))) (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2))))))) (pow.f64 re 4)) (+.f64 (/.f64 (*.f64 (+.f64 (*.f64 1/1152 (pow.f64 im 4)) (*.f64 1/144 (+.f64 (*.f64 -3/4 (pow.f64 im 4)) (*.f64 3 (pow.f64 im 4))))) (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) 3)) (pow.f64 re 4)) (*.f64 1/288 (/.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) 3) (pow.f64 im 4)) (pow.f64 re 4))))))))
(+.f64 (*.f64 -1/24 (/.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) 3) (pow.f64 im 2)) (pow.f64 re 2))) (+.f64 (/.f64 (*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) (+.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 -1/82944 (pow.f64 im 6)) (+.f64 (*.f64 1/4320 (+.f64 (*.f64 45/2 (pow.f64 im 6)) (+.f64 (*.f64 -720 (/.f64 (+.f64 (pow.f64 (*.f64 -1/8 (pow.f64 im 4)) 2) (*.f64 1/16 (pow.f64 im 8))) (pow.f64 im 2))) (*.f64 -15/4 (pow.f64 im 6))))) (*.f64 -1/3456 (*.f64 (+.f64 (*.f64 -3/4 (pow.f64 im 4)) (*.f64 3 (pow.f64 im 4))) (pow.f64 im 2))))) (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) 2))) (*.f64 -1/12 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) 2) (*.f64 (+.f64 (*.f64 1/1152 (pow.f64 im 4)) (*.f64 1/144 (+.f64 (*.f64 -3/4 (pow.f64 im 4)) (*.f64 3 (pow.f64 im 4))))) (pow.f64 im 2)))))) (pow.f64 re 6)) (+.f64 (/.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) 3) (+.f64 (*.f64 1/1152 (pow.f64 im 4)) (*.f64 1/144 (+.f64 (*.f64 -3/4 (pow.f64 im 4)) (*.f64 3 (pow.f64 im 4)))))) (pow.f64 re 4)) (+.f64 (*.f64 -1/12 (/.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) 3) (pow.f64 im 2)) (pow.f64 re 2))) (+.f64 (*.f64 -1/12 (/.f64 (*.f64 (+.f64 (*.f64 1/1152 (pow.f64 im 4)) (*.f64 1/144 (+.f64 (*.f64 -3/4 (pow.f64 im 4)) (*.f64 3 (pow.f64 im 4))))) (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) 3) (pow.f64 im 2))) (pow.f64 re 6))) (+.f64 (/.f64 (*.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) 2) (+.f64 (*.f64 1/1152 (pow.f64 im 4)) (*.f64 1/144 (+.f64 (*.f64 -3/4 (pow.f64 im 4)) (*.f64 3 (pow.f64 im 4))))))) (*.f64 1/576 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) 2) (pow.f64 im 4)))) (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2))))))) (pow.f64 re 4)) (+.f64 (*.f64 1/288 (/.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) 3) (pow.f64 im 4)) (pow.f64 re 4))) (+.f64 (/.f64 (*.f64 (+.f64 (*.f64 -1/82944 (pow.f64 im 6)) (+.f64 (*.f64 1/4320 (+.f64 (*.f64 45/2 (pow.f64 im 6)) (+.f64 (*.f64 -720 (/.f64 (+.f64 (pow.f64 (*.f64 -1/8 (pow.f64 im 4)) 2) (*.f64 1/16 (pow.f64 im 8))) (pow.f64 im 2))) (*.f64 -15/4 (pow.f64 im 6))))) (*.f64 -1/3456 (*.f64 (+.f64 (*.f64 -3/4 (pow.f64 im 4)) (*.f64 3 (pow.f64 im 4))) (pow.f64 im 2))))) (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) 3)) (pow.f64 re 6)) (+.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) 3) (*.f64 -1/24 (/.f64 (*.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) 2) (+.f64 (*.f64 1/1152 (pow.f64 im 4)) (*.f64 1/144 (+.f64 (*.f64 -3/4 (pow.f64 im 4)) (*.f64 3 (pow.f64 im 4))))))) (*.f64 1/576 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) 2) (pow.f64 im 4)))) (*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) (pow.f64 im 2))) (pow.f64 re 6))))))))))))
(*.f64 (sqrt.f64 2) (sqrt.f64 re))
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 re)) (*.f64 (+.f64 (*.f64 1/12 (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) (*.f64 1/24 (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))))) (pow.f64 im 2)))
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 re)) (+.f64 (*.f64 (+.f64 (*.f64 1/12 (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) (*.f64 1/24 (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))))) (pow.f64 im 2)) (*.f64 (pow.f64 im 4) (+.f64 (*.f64 (pow.f64 (*.f64 2 re) 1/6) (+.f64 (*.f64 1/576 (pow.f64 (/.f64 2 (pow.f64 re 11)) 1/3)) (*.f64 -17/576 (pow.f64 (/.f64 2 (pow.f64 re 11)) 1/3)))) (+.f64 (*.f64 -17/1152 (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 re 7))))) (*.f64 1/288 (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 re 7))))))))))
(+.f64 (*.f64 (+.f64 (*.f64 (pow.f64 (*.f64 2 re) 1/6) (+.f64 (*.f64 667/41472 (pow.f64 (/.f64 2 (pow.f64 re 17)) 1/3)) (*.f64 -17/13824 (pow.f64 (/.f64 2 (pow.f64 re 17)) 1/3)))) (+.f64 (*.f64 -17/13824 (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 re 11))))) (+.f64 (*.f64 667/82944 (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 re 11))))) (*.f64 1/24 (*.f64 (pow.f64 (/.f64 2 (pow.f64 re 11)) 1/6) (+.f64 (*.f64 1/576 (pow.f64 (/.f64 2 (pow.f64 re 11)) 1/3)) (*.f64 -17/576 (pow.f64 (/.f64 2 (pow.f64 re 11)) 1/3)))))))) (pow.f64 im 6)) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 re)) (+.f64 (*.f64 (+.f64 (*.f64 1/12 (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) (*.f64 1/24 (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))))) (pow.f64 im 2)) (*.f64 (pow.f64 im 4) (+.f64 (*.f64 (pow.f64 (*.f64 2 re) 1/6) (+.f64 (*.f64 1/576 (pow.f64 (/.f64 2 (pow.f64 re 11)) 1/3)) (*.f64 -17/576 (pow.f64 (/.f64 2 (pow.f64 re 11)) 1/3)))) (+.f64 (*.f64 -17/1152 (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 re 7))))) (*.f64 1/288 (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 re 7)))))))))))
(*.f64 (pow.f64 1 1/6) (sqrt.f64 im))
(+.f64 (*.f64 1/3 (*.f64 (pow.f64 1 1/6) (*.f64 re (sqrt.f64 (/.f64 1 im))))) (+.f64 (*.f64 (pow.f64 1 1/6) (sqrt.f64 im)) (*.f64 1/6 (*.f64 re (sqrt.f64 (/.f64 1 im))))))
(+.f64 (*.f64 1/3 (*.f64 (pow.f64 1 1/6) (*.f64 re (sqrt.f64 (/.f64 1 im))))) (+.f64 (*.f64 (pow.f64 1 1/6) (sqrt.f64 im)) (+.f64 (*.f64 (+.f64 (*.f64 1/72 (pow.f64 re 2)) (*.f64 1/12 (+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 re 2))))) (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) (+.f64 (*.f64 1/18 (*.f64 (pow.f64 re 2) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 11)) 1/6) (+.f64 (*.f64 1/36 (*.f64 (pow.f64 (*.f64 1 im) 1/3) (pow.f64 re 2))) (*.f64 2 (*.f64 (pow.f64 (*.f64 1 im) 1/3) (+.f64 (*.f64 1/72 (pow.f64 re 2)) (*.f64 1/12 (+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 re 2))))))))) (*.f64 1/6 (*.f64 re (sqrt.f64 (/.f64 1 im)))))))))
(+.f64 (*.f64 1/3 (*.f64 (pow.f64 1 1/6) (*.f64 re (sqrt.f64 (/.f64 1 im))))) (+.f64 (*.f64 (+.f64 (*.f64 1/36 (+.f64 (*.f64 -3 (pow.f64 re 3)) (*.f64 2 (pow.f64 re 3)))) (+.f64 (*.f64 1/72 (*.f64 re (+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 re 2))))) (*.f64 1/1296 (pow.f64 re 3)))) (sqrt.f64 (/.f64 1 (pow.f64 im 5)))) (+.f64 (*.f64 1/18 (*.f64 (pow.f64 re 2) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 17)) 1/6) (*.f64 (+.f64 (*.f64 1/36 (*.f64 (pow.f64 (*.f64 1 im) 1/3) (pow.f64 re 2))) (*.f64 2 (*.f64 (pow.f64 (*.f64 1 im) 1/3) (+.f64 (*.f64 1/72 (pow.f64 re 2)) (*.f64 1/12 (+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 re 2)))))))) re))) (+.f64 (*.f64 1/6 (*.f64 re (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 (pow.f64 1 1/6) (sqrt.f64 im)) (+.f64 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 17)) 1/6) (+.f64 (*.f64 1/3 (*.f64 (pow.f64 (*.f64 1 im) 1/3) (*.f64 (+.f64 (*.f64 1/72 (pow.f64 re 2)) (*.f64 1/12 (+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 re 2))))) re))) (*.f64 2 (*.f64 (pow.f64 (*.f64 1 im) 1/3) (+.f64 (*.f64 1/72 (*.f64 re (+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 re 2))))) (+.f64 (*.f64 1/36 (+.f64 (*.f64 -3 (pow.f64 re 3)) (*.f64 2 (pow.f64 re 3)))) (*.f64 1/1296 (pow.f64 re 3)))))))) (+.f64 (*.f64 1/3 (*.f64 (*.f64 (+.f64 (*.f64 1/72 (pow.f64 re 2)) (*.f64 1/12 (+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 re 2))))) re) (sqrt.f64 (/.f64 1 (pow.f64 im 5))))) (+.f64 (*.f64 (+.f64 (*.f64 1/72 (pow.f64 re 2)) (*.f64 1/12 (+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 re 2))))) (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 11)) 1/6) (+.f64 (*.f64 1/36 (*.f64 (pow.f64 (*.f64 1 im) 1/3) (pow.f64 re 2))) (*.f64 2 (*.f64 (pow.f64 (*.f64 1 im) 1/3) (+.f64 (*.f64 1/72 (pow.f64 re 2)) (*.f64 1/12 (+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 re 2))))))))))))))))))
(*.f64 (sqrt.f64 -1) (*.f64 (pow.f64 1 1/6) (sqrt.f64 im)))
(+.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 1/3 (*.f64 (pow.f64 1 1/6) (*.f64 (*.f64 (sqrt.f64 -1) re) (sqrt.f64 im)))) (*.f64 1/6 (*.f64 (*.f64 (sqrt.f64 -1) re) (sqrt.f64 im)))) im)) (*.f64 (sqrt.f64 -1) (*.f64 (pow.f64 1 1/6) (sqrt.f64 im))))
(+.f64 (*.f64 (pow.f64 (/.f64 -1 (pow.f64 im 11)) 1/6) (+.f64 (*.f64 2 (*.f64 (pow.f64 (*.f64 -1 im) 1/3) (+.f64 (*.f64 1/72 (pow.f64 re 2)) (*.f64 1/12 (+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 re 2))))))) (*.f64 1/36 (*.f64 (pow.f64 (*.f64 -1 im) 1/3) (pow.f64 re 2))))) (+.f64 (*.f64 (*.f64 (sqrt.f64 -1) (+.f64 (*.f64 1/72 (pow.f64 re 2)) (*.f64 1/12 (+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 re 2)))))) (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) (+.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 1/3 (*.f64 (pow.f64 1 1/6) (*.f64 (*.f64 (sqrt.f64 -1) re) (sqrt.f64 im)))) (*.f64 1/6 (*.f64 (*.f64 (sqrt.f64 -1) re) (sqrt.f64 im)))) im)) (+.f64 (*.f64 1/18 (*.f64 (*.f64 (sqrt.f64 -1) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (*.f64 (sqrt.f64 -1) (*.f64 (pow.f64 1 1/6) (sqrt.f64 im)))))))
(+.f64 (*.f64 (pow.f64 (/.f64 -1 (pow.f64 im 11)) 1/6) (+.f64 (*.f64 2 (*.f64 (pow.f64 (*.f64 -1 im) 1/3) (+.f64 (*.f64 1/72 (pow.f64 re 2)) (*.f64 1/12 (+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 re 2))))))) (*.f64 1/36 (*.f64 (pow.f64 (*.f64 -1 im) 1/3) (pow.f64 re 2))))) (+.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 (*.f64 (+.f64 (*.f64 1/36 (+.f64 (*.f64 -3 (pow.f64 re 3)) (*.f64 2 (pow.f64 re 3)))) (+.f64 (*.f64 1/72 (*.f64 re (+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 re 2))))) (*.f64 1/1296 (pow.f64 re 3)))) (sqrt.f64 -1)) (sqrt.f64 im)) (+.f64 (*.f64 1/3 (*.f64 (*.f64 (sqrt.f64 -1) (*.f64 (+.f64 (*.f64 1/72 (pow.f64 re 2)) (*.f64 1/12 (+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 re 2))))) re)) (sqrt.f64 im))) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 (*.f64 -1 im) 1/6) (*.f64 re (+.f64 (*.f64 2 (*.f64 (pow.f64 (*.f64 -1 im) 1/3) (+.f64 (*.f64 1/72 (pow.f64 re 2)) (*.f64 1/12 (+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 re 2))))))) (*.f64 1/36 (*.f64 (pow.f64 (*.f64 -1 im) 1/3) (pow.f64 re 2))))))) (*.f64 (pow.f64 (*.f64 -1 im) 1/6) (+.f64 (*.f64 1/3 (*.f64 (pow.f64 (*.f64 -1 im) 1/3) (*.f64 (+.f64 (*.f64 1/72 (pow.f64 re 2)) (*.f64 1/12 (+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 re 2))))) re))) (*.f64 2 (*.f64 (pow.f64 (*.f64 -1 im) 1/3) (+.f64 (*.f64 1/72 (*.f64 re (+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 re 2))))) (+.f64 (*.f64 1/36 (+.f64 (*.f64 -3 (pow.f64 re 3)) (*.f64 2 (pow.f64 re 3)))) (*.f64 1/1296 (pow.f64 re 3))))))))))) (pow.f64 im 3))) (+.f64 (*.f64 (*.f64 (sqrt.f64 -1) (+.f64 (*.f64 1/72 (pow.f64 re 2)) (*.f64 1/12 (+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 re 2)))))) (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) (+.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 1/3 (*.f64 (pow.f64 1 1/6) (*.f64 (*.f64 (sqrt.f64 -1) re) (sqrt.f64 im)))) (*.f64 1/6 (*.f64 (*.f64 (sqrt.f64 -1) re) (sqrt.f64 im)))) im)) (+.f64 (*.f64 1/18 (*.f64 (*.f64 (sqrt.f64 -1) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (*.f64 (sqrt.f64 -1) (*.f64 (pow.f64 1 1/6) (sqrt.f64 im))))))))
(pow.f64 im 1/6)
(+.f64 (pow.f64 im 1/6) (*.f64 1/6 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 5)) 1/6) re)))
(+.f64 (pow.f64 im 1/6) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 5)) 1/6) re)) (*.f64 1/72 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 11)) 1/6) (pow.f64 re 2)))))
(+.f64 (pow.f64 im 1/6) (+.f64 (*.f64 -35/1296 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 17)) 1/6) (pow.f64 re 3))) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 5)) 1/6) re)) (*.f64 1/72 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 11)) 1/6) (pow.f64 re 2))))))
(exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re))))))
(+.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) (*.f64 1/24 (/.f64 (*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) (pow.f64 im 2)) (pow.f64 re 2))))
(+.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) (+.f64 (/.f64 (*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) (+.f64 (*.f64 1/144 (+.f64 (*.f64 -3/4 (pow.f64 im 4)) (*.f64 -3/2 (pow.f64 im 4)))) (*.f64 1/1152 (pow.f64 im 4)))) (pow.f64 re 4)) (*.f64 1/24 (/.f64 (*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) (pow.f64 im 2)) (pow.f64 re 2)))))
(+.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) (+.f64 (/.f64 (*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) (+.f64 (*.f64 1/144 (+.f64 (*.f64 -3/4 (pow.f64 im 4)) (*.f64 -3/2 (pow.f64 im 4)))) (*.f64 1/1152 (pow.f64 im 4)))) (pow.f64 re 4)) (+.f64 (*.f64 1/24 (/.f64 (*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) (pow.f64 im 2)) (pow.f64 re 2))) (/.f64 (*.f64 (+.f64 (*.f64 1/82944 (pow.f64 im 6)) (+.f64 (*.f64 1/4320 (+.f64 (*.f64 15/4 (pow.f64 im 6)) (+.f64 (*.f64 45/2 (pow.f64 im 6)) (*.f64 45/4 (pow.f64 im 6))))) (*.f64 1/3456 (*.f64 (+.f64 (*.f64 -3/4 (pow.f64 im 4)) (*.f64 -3/2 (pow.f64 im 4))) (pow.f64 im 2))))) (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re))))))) (pow.f64 re 6)))))
(exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2))))))
(+.f64 (*.f64 -1/24 (/.f64 (*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) (pow.f64 im 2)) (pow.f64 re 2))) (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))))
(+.f64 (/.f64 (*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) (+.f64 (*.f64 1/1152 (pow.f64 im 4)) (*.f64 1/144 (+.f64 (*.f64 -3/4 (pow.f64 im 4)) (*.f64 3 (pow.f64 im 4)))))) (pow.f64 re 4)) (+.f64 (*.f64 -1/24 (/.f64 (*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) (pow.f64 im 2)) (pow.f64 re 2))) (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2))))))))
(+.f64 (/.f64 (*.f64 (+.f64 (*.f64 1/1152 (pow.f64 im 4)) (*.f64 1/144 (+.f64 (*.f64 -3/4 (pow.f64 im 4)) (*.f64 3 (pow.f64 im 4))))) (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2))))))) (pow.f64 re 4)) (+.f64 (/.f64 (*.f64 (+.f64 (*.f64 -1/82944 (pow.f64 im 6)) (+.f64 (*.f64 1/4320 (+.f64 (*.f64 45/2 (pow.f64 im 6)) (+.f64 (*.f64 -720 (/.f64 (+.f64 (pow.f64 (*.f64 -1/8 (pow.f64 im 4)) 2) (*.f64 1/16 (pow.f64 im 8))) (pow.f64 im 2))) (*.f64 -15/4 (pow.f64 im 6))))) (*.f64 -1/3456 (*.f64 (+.f64 (*.f64 -3/4 (pow.f64 im 4)) (*.f64 3 (pow.f64 im 4))) (pow.f64 im 2))))) (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2))))))) (pow.f64 re 6)) (+.f64 (*.f64 -1/24 (/.f64 (*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) (pow.f64 im 2)) (pow.f64 re 2))) (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))))))
(pow.f64 (*.f64 2 re) 1/6)
(+.f64 (*.f64 1/24 (*.f64 (pow.f64 (/.f64 2 (pow.f64 re 11)) 1/6) (pow.f64 im 2))) (pow.f64 (*.f64 2 re) 1/6))
(+.f64 (*.f64 -17/1152 (*.f64 (pow.f64 (/.f64 2 (pow.f64 re 23)) 1/6) (pow.f64 im 4))) (+.f64 (*.f64 1/24 (*.f64 (pow.f64 (/.f64 2 (pow.f64 re 11)) 1/6) (pow.f64 im 2))) (pow.f64 (*.f64 2 re) 1/6)))
(+.f64 (*.f64 667/82944 (*.f64 (pow.f64 (/.f64 2 (pow.f64 re 35)) 1/6) (pow.f64 im 6))) (+.f64 (*.f64 -17/1152 (*.f64 (pow.f64 (/.f64 2 (pow.f64 re 23)) 1/6) (pow.f64 im 4))) (+.f64 (*.f64 1/24 (*.f64 (pow.f64 (/.f64 2 (pow.f64 re 11)) 1/6) (pow.f64 im 2))) (pow.f64 (*.f64 2 re) 1/6))))
(pow.f64 im 1/6)
(+.f64 (pow.f64 im 1/6) (*.f64 1/6 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 5)) 1/6) re)))
(+.f64 (pow.f64 im 1/6) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 5)) 1/6) re)) (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 11)) 1/6) (+.f64 (*.f64 1/72 (pow.f64 re 2)) (*.f64 1/12 (+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 re 2))))))))
(+.f64 (pow.f64 im 1/6) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 5)) 1/6) re)) (+.f64 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 11)) 1/6) (+.f64 (*.f64 1/72 (pow.f64 re 2)) (*.f64 1/12 (+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 re 2)))))) (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 17)) 1/6) (+.f64 (*.f64 1/72 (*.f64 re (+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 re 2))))) (+.f64 (*.f64 1/36 (+.f64 (*.f64 -3 (pow.f64 re 3)) (*.f64 2 (pow.f64 re 3)))) (*.f64 1/1296 (pow.f64 re 3))))))))
(pow.f64 (*.f64 -1 im) 1/6)
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 (/.f64 -1 (pow.f64 im 5)) 1/6) re)) (pow.f64 (*.f64 -1 im) 1/6))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 (/.f64 -1 (pow.f64 im 5)) 1/6) re)) (+.f64 (pow.f64 (*.f64 -1 im) 1/6) (*.f64 (pow.f64 (/.f64 -1 (pow.f64 im 11)) 1/6) (+.f64 (*.f64 1/72 (pow.f64 re 2)) (*.f64 1/12 (+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 re 2))))))))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 (/.f64 -1 (pow.f64 im 17)) 1/6) (+.f64 (*.f64 1/72 (*.f64 re (+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 re 2))))) (+.f64 (*.f64 1/36 (+.f64 (*.f64 -3 (pow.f64 re 3)) (*.f64 2 (pow.f64 re 3)))) (*.f64 1/1296 (pow.f64 re 3)))))) (+.f64 (*.f64 -1/6 (*.f64 (pow.f64 (/.f64 -1 (pow.f64 im 5)) 1/6) re)) (+.f64 (pow.f64 (*.f64 -1 im) 1/6) (*.f64 (pow.f64 (/.f64 -1 (pow.f64 im 11)) 1/6) (+.f64 (*.f64 1/72 (pow.f64 re 2)) (*.f64 1/12 (+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 re 2)))))))))
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
(+.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)))))
Outputs
(sqrt.f64 im)
(+.f64 (sqrt.f64 im) (*.f64 (+.f64 (*.f64 1/6 (sqrt.f64 (/.f64 1 im))) (*.f64 1/3 (sqrt.f64 (/.f64 1 im)))) re))
(+.f64 (sqrt.f64 im) (*.f64 re (*.f64 (sqrt.f64 (/.f64 1 im)) 1/2)))
(fma.f64 re (*.f64 (sqrt.f64 (/.f64 1 im)) 1/2) (sqrt.f64 im))
(+.f64 (sqrt.f64 im) (+.f64 (*.f64 (+.f64 (*.f64 1/9 (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) (*.f64 1/72 (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (pow.f64 re 2)) (*.f64 (+.f64 (*.f64 1/6 (sqrt.f64 (/.f64 1 im))) (*.f64 1/3 (sqrt.f64 (/.f64 1 im)))) re)))
(+.f64 (sqrt.f64 im) (fma.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 3))) 1/8) (*.f64 re re) (*.f64 re (*.f64 (sqrt.f64 (/.f64 1 im)) 1/2))))
(+.f64 (sqrt.f64 im) (fma.f64 re (*.f64 (sqrt.f64 (/.f64 1 im)) 1/2) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 3))) (*.f64 1/8 (*.f64 re re)))))
(+.f64 (sqrt.f64 im) (+.f64 (*.f64 (+.f64 (*.f64 1/9 (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) (*.f64 1/72 (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (pow.f64 re 2)) (+.f64 (*.f64 (+.f64 (*.f64 -35/1296 (sqrt.f64 (/.f64 1 (pow.f64 im 5)))) (+.f64 (*.f64 1/108 (sqrt.f64 (/.f64 1 (pow.f64 im 5)))) (+.f64 (*.f64 (pow.f64 (*.f64 1 im) 1/6) (+.f64 (*.f64 1/216 (pow.f64 (/.f64 1 (pow.f64 im 8)) 1/3)) (*.f64 -35/648 (pow.f64 (/.f64 1 (pow.f64 im 8)) 1/3)))) (*.f64 1/216 (sqrt.f64 (/.f64 1 (pow.f64 im 5))))))) (pow.f64 re 3)) (*.f64 (+.f64 (*.f64 1/6 (sqrt.f64 (/.f64 1 im))) (*.f64 1/3 (sqrt.f64 (/.f64 1 im)))) re))))
(+.f64 (sqrt.f64 im) (fma.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 3))) 1/8) (*.f64 re re) (fma.f64 (fma.f64 -35/1296 (sqrt.f64 (/.f64 1 (pow.f64 im 5))) (fma.f64 1/108 (sqrt.f64 (/.f64 1 (pow.f64 im 5))) (fma.f64 (pow.f64 im 1/6) (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 8))) -4/81) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 5))) 1/216)))) (pow.f64 re 3) (*.f64 re (*.f64 (sqrt.f64 (/.f64 1 im)) 1/2)))))
(+.f64 (sqrt.f64 im) (fma.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 3))) 1/8) (*.f64 re re) (fma.f64 re (*.f64 (sqrt.f64 (/.f64 1 im)) 1/2) (*.f64 (+.f64 (fma.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 5))) 1/216 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 8))) (*.f64 -4/81 (pow.f64 im 1/6)))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 5))) -23/1296)) (pow.f64 re 3)))))
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (neg.f64 (neg.f64 (log.f64 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (log.f64 re))) 3)
(pow.f64 (*.f64 (pow.f64 2 1/6) (pow.f64 re 1/6)) 3)
(+.f64 (*.f64 1/24 (/.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) 3) (pow.f64 im 2)) (pow.f64 re 2))) (+.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) 3) (*.f64 1/12 (/.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) 3) (pow.f64 im 2)) (pow.f64 re 2)))))
(fma.f64 1/24 (/.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (neg.f64 (neg.f64 (log.f64 re))))) 3) (/.f64 (*.f64 re re) (*.f64 im im))) (+.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (neg.f64 (neg.f64 (log.f64 re))))) 3) (*.f64 (/.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (neg.f64 (neg.f64 (log.f64 re))))) 3) (/.f64 (*.f64 re re) (*.f64 im im))) 1/12)))
(fma.f64 1/24 (*.f64 (/.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (log.f64 re))) 3) (*.f64 re re)) (*.f64 im im)) (fma.f64 (*.f64 (/.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (log.f64 re))) 3) (*.f64 re re)) (*.f64 im im)) 1/12 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (log.f64 re))) 3)))
(fma.f64 1/24 (*.f64 (/.f64 (pow.f64 (*.f64 (pow.f64 2 1/6) (pow.f64 re 1/6)) 3) (*.f64 re re)) (*.f64 im im)) (fma.f64 (*.f64 (/.f64 (pow.f64 (*.f64 (pow.f64 2 1/6) (pow.f64 re 1/6)) 3) (*.f64 re re)) (*.f64 im im)) 1/12 (pow.f64 (*.f64 (pow.f64 2 1/6) (pow.f64 re 1/6)) 3)))
(+.f64 (*.f64 1/24 (/.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) 3) (pow.f64 im 2)) (pow.f64 re 2))) (+.f64 (*.f64 1/288 (/.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) 3) (pow.f64 im 4)) (pow.f64 re 4))) (+.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) 3) (+.f64 (/.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) 3) (+.f64 (*.f64 1/1152 (pow.f64 im 4)) (*.f64 1/144 (+.f64 (*.f64 -3/2 (pow.f64 im 4)) (*.f64 -3/4 (pow.f64 im 4)))))) (pow.f64 re 4)) (+.f64 (/.f64 (*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) (+.f64 (*.f64 2 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) 2) (+.f64 (*.f64 1/144 (+.f64 (*.f64 -3/4 (pow.f64 im 4)) (*.f64 -3/2 (pow.f64 im 4)))) (*.f64 1/1152 (pow.f64 im 4))))) (*.f64 1/576 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) 2) (pow.f64 im 4))))) (pow.f64 re 4)) (*.f64 1/12 (/.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) 3) (pow.f64 im 2)) (pow.f64 re 2))))))))
(fma.f64 1/24 (/.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (neg.f64 (neg.f64 (log.f64 re))))) 3) (/.f64 (*.f64 re re) (*.f64 im im))) (fma.f64 1/288 (/.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (neg.f64 (neg.f64 (log.f64 re))))) 3) (/.f64 (pow.f64 re 4) (pow.f64 im 4))) (+.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (neg.f64 (neg.f64 (log.f64 re))))) 3) (+.f64 (/.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (neg.f64 (neg.f64 (log.f64 re))))) 3) (/.f64 (pow.f64 re 4) (fma.f64 1/1152 (pow.f64 im 4) (*.f64 1/144 (*.f64 (pow.f64 im 4) -9/4))))) (+.f64 (*.f64 (/.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (neg.f64 (neg.f64 (log.f64 re))))) 3) (/.f64 (*.f64 re re) (*.f64 im im))) 1/12) (/.f64 (*.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (neg.f64 (neg.f64 (log.f64 re))))) (fma.f64 2 (*.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (neg.f64 (neg.f64 (log.f64 re))))) 2) (fma.f64 1/1152 (pow.f64 im 4) (*.f64 1/144 (*.f64 (pow.f64 im 4) -9/4)))) (*.f64 1/576 (*.f64 (pow.f64 im 4) (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (neg.f64 (neg.f64 (log.f64 re))))) 2))))) (pow.f64 re 4)))))))
(fma.f64 1/24 (*.f64 (/.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (log.f64 re))) 3) (*.f64 re re)) (*.f64 im im)) (+.f64 (+.f64 (/.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (log.f64 re))) 3) (/.f64 (pow.f64 re 4) (fma.f64 (pow.f64 im 4) 1/1152 (*.f64 (pow.f64 im 4) -1/64)))) (fma.f64 (*.f64 (/.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (log.f64 re))) 3) (*.f64 re re)) (*.f64 im im)) 1/12 (/.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (log.f64 re))) 3) (fma.f64 (pow.f64 im 4) 1/1152 (*.f64 (pow.f64 im 4) -1/64)))) (*.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (log.f64 re))) 3) (pow.f64 im 4)) 1/576)) (pow.f64 re 4)))) (fma.f64 1/288 (*.f64 (/.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (log.f64 re))) 3) (pow.f64 re 4)) (pow.f64 im 4)) (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (log.f64 re))) 3))))
(fma.f64 1/24 (*.f64 (/.f64 (pow.f64 (*.f64 (pow.f64 2 1/6) (pow.f64 re 1/6)) 3) (*.f64 re re)) (*.f64 im im)) (+.f64 (+.f64 (/.f64 (pow.f64 (*.f64 (pow.f64 2 1/6) (pow.f64 re 1/6)) 3) (/.f64 (pow.f64 re 4) (fma.f64 (pow.f64 im 4) 1/1152 (*.f64 (pow.f64 im 4) -1/64)))) (fma.f64 (*.f64 (/.f64 (pow.f64 (*.f64 (pow.f64 2 1/6) (pow.f64 re 1/6)) 3) (*.f64 re re)) (*.f64 im im)) 1/12 (/.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 (*.f64 (pow.f64 2 1/6) (pow.f64 re 1/6)) 3) (fma.f64 (pow.f64 im 4) 1/1152 (*.f64 (pow.f64 im 4) -1/64)))) (*.f64 (*.f64 (pow.f64 (*.f64 (pow.f64 2 1/6) (pow.f64 re 1/6)) 3) (pow.f64 im 4)) 1/576)) (pow.f64 re 4)))) (fma.f64 1/288 (*.f64 (/.f64 (pow.f64 (*.f64 (pow.f64 2 1/6) (pow.f64 re 1/6)) 3) (pow.f64 re 4)) (pow.f64 im 4)) (pow.f64 (*.f64 (pow.f64 2 1/6) (pow.f64 re 1/6)) 3))))
(+.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) 3) (+.f64 (*.f64 1/24 (/.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) 3) (pow.f64 im 2)) (pow.f64 re 2))) (+.f64 (/.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) 3) (+.f64 (*.f64 1/1152 (pow.f64 im 4)) (*.f64 1/144 (+.f64 (*.f64 -3/2 (pow.f64 im 4)) (*.f64 -3/4 (pow.f64 im 4)))))) (pow.f64 re 4)) (+.f64 (*.f64 1/24 (/.f64 (*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) (*.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) 2) (+.f64 (*.f64 1/144 (+.f64 (*.f64 -3/4 (pow.f64 im 4)) (*.f64 -3/2 (pow.f64 im 4)))) (*.f64 1/1152 (pow.f64 im 4))))) (*.f64 1/576 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) 2) (pow.f64 im 4)))) (pow.f64 im 2))) (pow.f64 re 6))) (+.f64 (*.f64 1/12 (/.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) 3) (*.f64 (+.f64 (*.f64 1/1152 (pow.f64 im 4)) (*.f64 1/144 (+.f64 (*.f64 -3/2 (pow.f64 im 4)) (*.f64 -3/4 (pow.f64 im 4))))) (pow.f64 im 2))) (pow.f64 re 6))) (+.f64 (*.f64 1/288 (/.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) 3) (pow.f64 im 4)) (pow.f64 re 4))) (+.f64 (/.f64 (*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) (+.f64 (*.f64 2 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) 2) (+.f64 (*.f64 1/144 (+.f64 (*.f64 -3/4 (pow.f64 im 4)) (*.f64 -3/2 (pow.f64 im 4)))) (*.f64 1/1152 (pow.f64 im 4))))) (*.f64 1/576 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) 2) (pow.f64 im 4))))) (pow.f64 re 4)) (+.f64 (/.f64 (*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) (+.f64 (*.f64 1/12 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) 2) (*.f64 (+.f64 (*.f64 1/144 (+.f64 (*.f64 -3/4 (pow.f64 im 4)) (*.f64 -3/2 (pow.f64 im 4)))) (*.f64 1/1152 (pow.f64 im 4))) (pow.f64 im 2)))) (*.f64 2 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) 2) (+.f64 (*.f64 1/82944 (pow.f64 im 6)) (+.f64 (*.f64 1/4320 (+.f64 (*.f64 15/4 (pow.f64 im 6)) (+.f64 (*.f64 45/2 (pow.f64 im 6)) (*.f64 45/4 (pow.f64 im 6))))) (*.f64 1/3456 (*.f64 (+.f64 (*.f64 -3/4 (pow.f64 im 4)) (*.f64 -3/2 (pow.f64 im 4))) (pow.f64 im 2))))))))) (pow.f64 re 6)) (+.f64 (/.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) 3) (+.f64 (*.f64 1/82944 (pow.f64 im 6)) (+.f64 (*.f64 1/4320 (+.f64 (*.f64 15/4 (pow.f64 im 6)) (+.f64 (*.f64 45/2 (pow.f64 im 6)) (*.f64 45/4 (pow.f64 im 6))))) (*.f64 1/3456 (*.f64 (+.f64 (*.f64 -3/2 (pow.f64 im 4)) (*.f64 -3/4 (pow.f64 im 4))) (pow.f64 im 2)))))) (pow.f64 re 6)) (*.f64 1/12 (/.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) 3) (pow.f64 im 2)) (pow.f64 re 2))))))))))))
(+.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (neg.f64 (neg.f64 (log.f64 re))))) 3) (fma.f64 1/24 (/.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (neg.f64 (neg.f64 (log.f64 re))))) 3) (/.f64 (*.f64 re re) (*.f64 im im))) (+.f64 (/.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (neg.f64 (neg.f64 (log.f64 re))))) 3) (/.f64 (pow.f64 re 4) (fma.f64 1/1152 (pow.f64 im 4) (*.f64 1/144 (*.f64 (pow.f64 im 4) -9/4))))) (fma.f64 1/24 (/.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (neg.f64 (neg.f64 (log.f64 re))))) (/.f64 (pow.f64 re 6) (*.f64 (*.f64 im im) (fma.f64 2 (*.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (neg.f64 (neg.f64 (log.f64 re))))) 2) (fma.f64 1/1152 (pow.f64 im 4) (*.f64 1/144 (*.f64 (pow.f64 im 4) -9/4)))) (*.f64 1/576 (*.f64 (pow.f64 im 4) (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (neg.f64 (neg.f64 (log.f64 re))))) 2))))))) (fma.f64 1/12 (/.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (neg.f64 (neg.f64 (log.f64 re))))) 3) (*.f64 (*.f64 im im) (fma.f64 1/1152 (pow.f64 im 4) (*.f64 1/144 (*.f64 (pow.f64 im 4) -9/4))))) (pow.f64 re 6)) (fma.f64 1/288 (/.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (neg.f64 (neg.f64 (log.f64 re))))) 3) (/.f64 (pow.f64 re 4) (pow.f64 im 4))) (+.f64 (/.f64 (*.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (neg.f64 (neg.f64 (log.f64 re))))) (fma.f64 2 (*.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (neg.f64 (neg.f64 (log.f64 re))))) 2) (fma.f64 1/1152 (pow.f64 im 4) (*.f64 1/144 (*.f64 (pow.f64 im 4) -9/4)))) (*.f64 1/576 (*.f64 (pow.f64 im 4) (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (neg.f64 (neg.f64 (log.f64 re))))) 2))))) (pow.f64 re 4)) (+.f64 (/.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (neg.f64 (neg.f64 (log.f64 re))))) (/.f64 (pow.f64 re 6) (fma.f64 1/12 (*.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (neg.f64 (neg.f64 (log.f64 re))))) 2) (*.f64 (*.f64 im im) (fma.f64 1/1152 (pow.f64 im 4) (*.f64 1/144 (*.f64 (pow.f64 im 4) -9/4))))) (*.f64 2 (*.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (neg.f64 (neg.f64 (log.f64 re))))) 2) (fma.f64 1/82944 (pow.f64 im 6) (fma.f64 1/4320 (fma.f64 15/4 (pow.f64 im 6) (*.f64 (pow.f64 im 6) 135/4)) (*.f64 1/3456 (*.f64 (*.f64 im im) (*.f64 (pow.f64 im 4) -9/4)))))))))) (+.f64 (*.f64 (/.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (neg.f64 (neg.f64 (log.f64 re))))) 3) (/.f64 (*.f64 re re) (*.f64 im im))) 1/12) (/.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (neg.f64 (neg.f64 (log.f64 re))))) 3) (fma.f64 1/82944 (pow.f64 im 6) (fma.f64 1/4320 (fma.f64 15/4 (pow.f64 im 6) (*.f64 (pow.f64 im 6) 135/4)) (*.f64 1/3456 (*.f64 (*.f64 im im) (*.f64 (pow.f64 im 4) -9/4)))))) (pow.f64 re 6)))))))))))
(+.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (log.f64 re))) 3) (+.f64 (fma.f64 1/24 (/.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (log.f64 re))) 3) (fma.f64 (pow.f64 im 4) 1/1152 (*.f64 (pow.f64 im 4) -1/64)))) (*.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (log.f64 re))) 3) (pow.f64 im 4)) 1/576)) (/.f64 (pow.f64 re 6) (*.f64 im im))) (fma.f64 1/12 (/.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (log.f64 re))) 3) (/.f64 (pow.f64 re 6) (*.f64 im (*.f64 im (fma.f64 (pow.f64 im 4) 1/1152 (*.f64 (pow.f64 im 4) -1/64)))))) (+.f64 (+.f64 (/.f64 (+.f64 (*.f64 1/12 (*.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (log.f64 re))) 3) (*.f64 im (*.f64 im (fma.f64 (pow.f64 im 4) 1/1152 (*.f64 (pow.f64 im 4) -1/64)))))) (*.f64 2 (*.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (log.f64 re))) 3) (fma.f64 1/82944 (pow.f64 im 6) (fma.f64 1/4320 (*.f64 (pow.f64 im 6) 75/2) (*.f64 1/3456 (*.f64 (pow.f64 im 6) -9/4))))))) (pow.f64 re 6)) (fma.f64 (*.f64 (/.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (log.f64 re))) 3) (*.f64 re re)) (*.f64 im im)) 1/12 (*.f64 (/.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (log.f64 re))) 3) (pow.f64 re 6)) (fma.f64 1/82944 (pow.f64 im 6) (fma.f64 1/4320 (*.f64 (pow.f64 im 6) 75/2) (*.f64 1/3456 (*.f64 (pow.f64 im 6) -9/4))))))) (fma.f64 1/288 (*.f64 (/.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (log.f64 re))) 3) (pow.f64 re 4)) (pow.f64 im 4)) (/.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (log.f64 re))) 3) (fma.f64 (pow.f64 im 4) 1/1152 (*.f64 (pow.f64 im 4) -1/64)))) (*.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (log.f64 re))) 3) (pow.f64 im 4)) 1/576)) (pow.f64 re 4)))))) (fma.f64 1/24 (*.f64 (/.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (log.f64 re))) 3) (*.f64 re re)) (*.f64 im im)) (/.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (log.f64 re))) 3) (/.f64 (pow.f64 re 4) (fma.f64 (pow.f64 im 4) 1/1152 (*.f64 (pow.f64 im 4) -1/64)))))))
(+.f64 (pow.f64 (*.f64 (pow.f64 2 1/6) (pow.f64 re 1/6)) 3) (+.f64 (fma.f64 1/24 (/.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 (*.f64 (pow.f64 2 1/6) (pow.f64 re 1/6)) 3) (fma.f64 (pow.f64 im 4) 1/1152 (*.f64 (pow.f64 im 4) -1/64)))) (*.f64 (*.f64 (pow.f64 (*.f64 (pow.f64 2 1/6) (pow.f64 re 1/6)) 3) (pow.f64 im 4)) 1/576)) (/.f64 (pow.f64 re 6) (*.f64 im im))) (fma.f64 1/12 (/.f64 (pow.f64 (*.f64 (pow.f64 2 1/6) (pow.f64 re 1/6)) 3) (/.f64 (pow.f64 re 6) (*.f64 im (*.f64 im (fma.f64 (pow.f64 im 4) 1/1152 (*.f64 (pow.f64 im 4) -1/64)))))) (+.f64 (+.f64 (/.f64 (+.f64 (*.f64 1/12 (*.f64 (pow.f64 (*.f64 (pow.f64 2 1/6) (pow.f64 re 1/6)) 3) (*.f64 im (*.f64 im (fma.f64 (pow.f64 im 4) 1/1152 (*.f64 (pow.f64 im 4) -1/64)))))) (*.f64 2 (*.f64 (pow.f64 (*.f64 (pow.f64 2 1/6) (pow.f64 re 1/6)) 3) (fma.f64 1/82944 (pow.f64 im 6) (fma.f64 1/4320 (*.f64 (pow.f64 im 6) 75/2) (*.f64 1/3456 (*.f64 (pow.f64 im 6) -9/4))))))) (pow.f64 re 6)) (fma.f64 (*.f64 (/.f64 (pow.f64 (*.f64 (pow.f64 2 1/6) (pow.f64 re 1/6)) 3) (*.f64 re re)) (*.f64 im im)) 1/12 (*.f64 (/.f64 (pow.f64 (*.f64 (pow.f64 2 1/6) (pow.f64 re 1/6)) 3) (pow.f64 re 6)) (fma.f64 1/82944 (pow.f64 im 6) (fma.f64 1/4320 (*.f64 (pow.f64 im 6) 75/2) (*.f64 1/3456 (*.f64 (pow.f64 im 6) -9/4))))))) (fma.f64 1/288 (*.f64 (/.f64 (pow.f64 (*.f64 (pow.f64 2 1/6) (pow.f64 re 1/6)) 3) (pow.f64 re 4)) (pow.f64 im 4)) (/.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 (*.f64 (pow.f64 2 1/6) (pow.f64 re 1/6)) 3) (fma.f64 (pow.f64 im 4) 1/1152 (*.f64 (pow.f64 im 4) -1/64)))) (*.f64 (*.f64 (pow.f64 (*.f64 (pow.f64 2 1/6) (pow.f64 re 1/6)) 3) (pow.f64 im 4)) 1/576)) (pow.f64 re 4)))))) (fma.f64 1/24 (*.f64 (/.f64 (pow.f64 (*.f64 (pow.f64 2 1/6) (pow.f64 re 1/6)) 3) (*.f64 re re)) (*.f64 im im)) (/.f64 (pow.f64 (*.f64 (pow.f64 2 1/6) (pow.f64 re 1/6)) 3) (/.f64 (pow.f64 re 4) (fma.f64 (pow.f64 im 4) 1/1152 (*.f64 (pow.f64 im 4) -1/64)))))))
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 im im) 1/2)))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 1/2 im) im)))) 3)
(pow.f64 (*.f64 (pow.f64 (*.f64 (*.f64 1/2 im) im) 1/6) (pow.f64 (/.f64 -1 re) 1/6)) 3)
(+.f64 (*.f64 -1/24 (/.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) 3) (pow.f64 im 2)) (pow.f64 re 2))) (+.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) 3) (*.f64 -1/12 (/.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) 3) (pow.f64 im 2)) (pow.f64 re 2)))))
(fma.f64 -1/24 (/.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 im im) 1/2)))) 3) (/.f64 (*.f64 re re) (*.f64 im im))) (+.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 im im) 1/2)))) 3) (/.f64 (*.f64 -1/12 (*.f64 (*.f64 im im) (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 im im) 1/2)))) 3))) (*.f64 re re))))
(fma.f64 -1/24 (*.f64 (/.f64 (*.f64 im im) re) (/.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 1/2 im) im)))) 3) re)) (fma.f64 (*.f64 (/.f64 (*.f64 im im) re) (/.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 1/2 im) im)))) 3) re)) -1/12 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 1/2 im) im)))) 3)))
(fma.f64 -1/24 (*.f64 (/.f64 (*.f64 im im) re) (/.f64 (pow.f64 (*.f64 (pow.f64 (*.f64 (*.f64 1/2 im) im) 1/6) (pow.f64 (/.f64 -1 re) 1/6)) 3) re)) (fma.f64 (*.f64 (/.f64 (*.f64 im im) re) (/.f64 (pow.f64 (*.f64 (pow.f64 (*.f64 (*.f64 1/2 im) im) 1/6) (pow.f64 (/.f64 -1 re) 1/6)) 3) re)) -1/12 (pow.f64 (*.f64 (pow.f64 (*.f64 (*.f64 1/2 im) im) 1/6) (pow.f64 (/.f64 -1 re) 1/6)) 3)))
(+.f64 (*.f64 -1/24 (/.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) 3) (pow.f64 im 2)) (pow.f64 re 2))) (+.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) 3) (+.f64 (*.f64 -1/12 (/.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) 3) (pow.f64 im 2)) (pow.f64 re 2))) (+.f64 (/.f64 (*.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) 2) (+.f64 (*.f64 1/1152 (pow.f64 im 4)) (*.f64 1/144 (+.f64 (*.f64 -3/4 (pow.f64 im 4)) (*.f64 3 (pow.f64 im 4))))))) (*.f64 1/576 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) 2) (pow.f64 im 4)))) (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2))))))) (pow.f64 re 4)) (+.f64 (/.f64 (*.f64 (+.f64 (*.f64 1/1152 (pow.f64 im 4)) (*.f64 1/144 (+.f64 (*.f64 -3/4 (pow.f64 im 4)) (*.f64 3 (pow.f64 im 4))))) (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) 3)) (pow.f64 re 4)) (*.f64 1/288 (/.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) 3) (pow.f64 im 4)) (pow.f64 re 4))))))))
(fma.f64 -1/24 (/.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 im im) 1/2)))) 3) (/.f64 (*.f64 re re) (*.f64 im im))) (+.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 im im) 1/2)))) 3) (fma.f64 -1/12 (/.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 im im) 1/2)))) 3) (/.f64 (*.f64 re re) (*.f64 im im))) (+.f64 (/.f64 (fma.f64 2 (*.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 im im) 1/2)))) 2) (fma.f64 1/1152 (pow.f64 im 4) (*.f64 1/144 (*.f64 (pow.f64 im 4) 9/4)))) (*.f64 1/576 (*.f64 (pow.f64 im 4) (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 im im) 1/2)))) 2)))) (/.f64 (pow.f64 re 4) (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 im im) 1/2)))))) (+.f64 (*.f64 1/288 (/.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 im im) 1/2)))) 3) (/.f64 (pow.f64 re 4) (pow.f64 im 4)))) (/.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 im im) 1/2)))) 3) (/.f64 (pow.f64 re 4) (fma.f64 1/1152 (pow.f64 im 4) (*.f64 1/144 (*.f64 (pow.f64 im 4) 9/4))))))))))
(fma.f64 -1/24 (*.f64 (/.f64 (*.f64 im im) re) (/.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 1/2 im) im)))) 3) re)) (+.f64 (fma.f64 (*.f64 (/.f64 (*.f64 im im) re) (/.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 1/2 im) im)))) 3) re)) -1/12 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 1/2 im) im)))) 3)) (+.f64 (*.f64 (/.f64 (fma.f64 2 (*.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 1/2 im) im)))) 2) (fma.f64 (pow.f64 im 4) 1/1152 (*.f64 (pow.f64 im 4) 1/64))) (*.f64 (pow.f64 im 4) (*.f64 1/576 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 1/2 im) im)))) 2)))) (pow.f64 re 4)) (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 1/2 im) im))))) (fma.f64 1/288 (*.f64 (/.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 1/2 im) im)))) 3) (pow.f64 re 4)) (pow.f64 im 4)) (*.f64 (/.f64 (fma.f64 (pow.f64 im 4) 1/1152 (*.f64 (pow.f64 im 4) 1/64)) (pow.f64 re 4)) (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 1/2 im) im)))) 3))))))
(fma.f64 -1/24 (*.f64 (/.f64 (*.f64 im im) re) (/.f64 (pow.f64 (*.f64 (pow.f64 (*.f64 (*.f64 1/2 im) im) 1/6) (pow.f64 (/.f64 -1 re) 1/6)) 3) re)) (+.f64 (fma.f64 (*.f64 (/.f64 (*.f64 im im) re) (/.f64 (pow.f64 (*.f64 (pow.f64 (*.f64 (*.f64 1/2 im) im) 1/6) (pow.f64 (/.f64 -1 re) 1/6)) 3) re)) -1/12 (pow.f64 (*.f64 (pow.f64 (*.f64 (*.f64 1/2 im) im) 1/6) (pow.f64 (/.f64 -1 re) 1/6)) 3)) (+.f64 (*.f64 (/.f64 (fma.f64 2 (*.f64 (pow.f64 (*.f64 (pow.f64 (*.f64 (*.f64 1/2 im) im) 1/6) (pow.f64 (/.f64 -1 re) 1/6)) 2) (fma.f64 (pow.f64 im 4) 1/1152 (*.f64 (pow.f64 im 4) 1/64))) (*.f64 (pow.f64 im 4) (*.f64 1/576 (pow.f64 (*.f64 (pow.f64 (*.f64 (*.f64 1/2 im) im) 1/6) (pow.f64 (/.f64 -1 re) 1/6)) 2)))) (pow.f64 re 4)) (*.f64 (pow.f64 (*.f64 (*.f64 1/2 im) im) 1/6) (pow.f64 (/.f64 -1 re) 1/6))) (fma.f64 1/288 (*.f64 (/.f64 (pow.f64 (*.f64 (pow.f64 (*.f64 (*.f64 1/2 im) im) 1/6) (pow.f64 (/.f64 -1 re) 1/6)) 3) (pow.f64 re 4)) (pow.f64 im 4)) (/.f64 (pow.f64 (*.f64 (pow.f64 (*.f64 (*.f64 1/2 im) im) 1/6) (pow.f64 (/.f64 -1 re) 1/6)) 3) (/.f64 (pow.f64 re 4) (fma.f64 (pow.f64 im 4) 1/1152 (*.f64 (pow.f64 im 4) 1/64))))))))
(+.f64 (*.f64 -1/24 (/.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) 3) (pow.f64 im 2)) (pow.f64 re 2))) (+.f64 (/.f64 (*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) (+.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 -1/82944 (pow.f64 im 6)) (+.f64 (*.f64 1/4320 (+.f64 (*.f64 45/2 (pow.f64 im 6)) (+.f64 (*.f64 -720 (/.f64 (+.f64 (pow.f64 (*.f64 -1/8 (pow.f64 im 4)) 2) (*.f64 1/16 (pow.f64 im 8))) (pow.f64 im 2))) (*.f64 -15/4 (pow.f64 im 6))))) (*.f64 -1/3456 (*.f64 (+.f64 (*.f64 -3/4 (pow.f64 im 4)) (*.f64 3 (pow.f64 im 4))) (pow.f64 im 2))))) (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) 2))) (*.f64 -1/12 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) 2) (*.f64 (+.f64 (*.f64 1/1152 (pow.f64 im 4)) (*.f64 1/144 (+.f64 (*.f64 -3/4 (pow.f64 im 4)) (*.f64 3 (pow.f64 im 4))))) (pow.f64 im 2)))))) (pow.f64 re 6)) (+.f64 (/.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) 3) (+.f64 (*.f64 1/1152 (pow.f64 im 4)) (*.f64 1/144 (+.f64 (*.f64 -3/4 (pow.f64 im 4)) (*.f64 3 (pow.f64 im 4)))))) (pow.f64 re 4)) (+.f64 (*.f64 -1/12 (/.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) 3) (pow.f64 im 2)) (pow.f64 re 2))) (+.f64 (*.f64 -1/12 (/.f64 (*.f64 (+.f64 (*.f64 1/1152 (pow.f64 im 4)) (*.f64 1/144 (+.f64 (*.f64 -3/4 (pow.f64 im 4)) (*.f64 3 (pow.f64 im 4))))) (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) 3) (pow.f64 im 2))) (pow.f64 re 6))) (+.f64 (/.f64 (*.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) 2) (+.f64 (*.f64 1/1152 (pow.f64 im 4)) (*.f64 1/144 (+.f64 (*.f64 -3/4 (pow.f64 im 4)) (*.f64 3 (pow.f64 im 4))))))) (*.f64 1/576 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) 2) (pow.f64 im 4)))) (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2))))))) (pow.f64 re 4)) (+.f64 (*.f64 1/288 (/.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) 3) (pow.f64 im 4)) (pow.f64 re 4))) (+.f64 (/.f64 (*.f64 (+.f64 (*.f64 -1/82944 (pow.f64 im 6)) (+.f64 (*.f64 1/4320 (+.f64 (*.f64 45/2 (pow.f64 im 6)) (+.f64 (*.f64 -720 (/.f64 (+.f64 (pow.f64 (*.f64 -1/8 (pow.f64 im 4)) 2) (*.f64 1/16 (pow.f64 im 8))) (pow.f64 im 2))) (*.f64 -15/4 (pow.f64 im 6))))) (*.f64 -1/3456 (*.f64 (+.f64 (*.f64 -3/4 (pow.f64 im 4)) (*.f64 3 (pow.f64 im 4))) (pow.f64 im 2))))) (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) 3)) (pow.f64 re 6)) (+.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) 3) (*.f64 -1/24 (/.f64 (*.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) 2) (+.f64 (*.f64 1/1152 (pow.f64 im 4)) (*.f64 1/144 (+.f64 (*.f64 -3/4 (pow.f64 im 4)) (*.f64 3 (pow.f64 im 4))))))) (*.f64 1/576 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) 2) (pow.f64 im 4)))) (*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) (pow.f64 im 2))) (pow.f64 re 6))))))))))))
(fma.f64 -1/24 (/.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 im im) 1/2)))) 3) (/.f64 (*.f64 re re) (*.f64 im im))) (+.f64 (/.f64 (*.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 im im) 1/2)))) (fma.f64 2 (*.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 im im) 1/2)))) 2) (fma.f64 -1/82944 (pow.f64 im 6) (fma.f64 1/4320 (fma.f64 45/2 (pow.f64 im 6) (fma.f64 -720 (/.f64 (+.f64 (pow.f64 (*.f64 (pow.f64 im 4) -1/8) 2) (*.f64 (pow.f64 im 8) 1/16)) (*.f64 im im)) (*.f64 (pow.f64 im 6) -15/4))) (*.f64 -1/3456 (*.f64 (*.f64 im im) (*.f64 (pow.f64 im 4) 9/4)))))) (*.f64 -1/12 (*.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 im im) 1/2)))) 2) (*.f64 (*.f64 im im) (fma.f64 1/1152 (pow.f64 im 4) (*.f64 1/144 (*.f64 (pow.f64 im 4) 9/4)))))))) (pow.f64 re 6)) (+.f64 (/.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 im im) 1/2)))) 3) (/.f64 (pow.f64 re 4) (fma.f64 1/1152 (pow.f64 im 4) (*.f64 1/144 (*.f64 (pow.f64 im 4) 9/4))))) (fma.f64 -1/12 (/.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 im im) 1/2)))) 3) (/.f64 (*.f64 re re) (*.f64 im im))) (fma.f64 -1/12 (/.f64 (fma.f64 1/1152 (pow.f64 im 4) (*.f64 1/144 (*.f64 (pow.f64 im 4) 9/4))) (/.f64 (pow.f64 re 6) (*.f64 (*.f64 im im) (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 im im) 1/2)))) 3)))) (+.f64 (/.f64 (fma.f64 2 (*.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 im im) 1/2)))) 2) (fma.f64 1/1152 (pow.f64 im 4) (*.f64 1/144 (*.f64 (pow.f64 im 4) 9/4)))) (*.f64 1/576 (*.f64 (pow.f64 im 4) (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 im im) 1/2)))) 2)))) (/.f64 (pow.f64 re 4) (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 im im) 1/2)))))) (fma.f64 1/288 (/.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 im im) 1/2)))) 3) (/.f64 (pow.f64 re 4) (pow.f64 im 4))) (+.f64 (/.f64 (fma.f64 -1/82944 (pow.f64 im 6) (fma.f64 1/4320 (fma.f64 45/2 (pow.f64 im 6) (fma.f64 -720 (/.f64 (+.f64 (pow.f64 (*.f64 (pow.f64 im 4) -1/8) 2) (*.f64 (pow.f64 im 8) 1/16)) (*.f64 im im)) (*.f64 (pow.f64 im 6) -15/4))) (*.f64 -1/3456 (*.f64 (*.f64 im im) (*.f64 (pow.f64 im 4) 9/4))))) (/.f64 (pow.f64 re 6) (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 im im) 1/2)))) 3))) (+.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 im im) 1/2)))) 3) (*.f64 -1/24 (/.f64 (fma.f64 2 (*.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 im im) 1/2)))) 2) (fma.f64 1/1152 (pow.f64 im 4) (*.f64 1/144 (*.f64 (pow.f64 im 4) 9/4)))) (*.f64 1/576 (*.f64 (pow.f64 im 4) (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 im im) 1/2)))) 2)))) (/.f64 (pow.f64 re 6) (*.f64 (*.f64 im im) (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 im im) 1/2)))))))))))))))))
(+.f64 (+.f64 (*.f64 (/.f64 (fma.f64 (pow.f64 im 4) 1/1152 (*.f64 (pow.f64 im 4) 1/64)) (pow.f64 re 4)) (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 1/2 im) im)))) 3)) (fma.f64 (*.f64 (/.f64 (*.f64 im im) re) (/.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 1/2 im) im)))) 3) re)) -1/12 (+.f64 (+.f64 (fma.f64 -1/24 (*.f64 (/.f64 (fma.f64 2 (*.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 1/2 im) im)))) 2) (fma.f64 (pow.f64 im 4) 1/1152 (*.f64 (pow.f64 im 4) 1/64))) (*.f64 (pow.f64 im 4) (*.f64 1/576 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 1/2 im) im)))) 2)))) (pow.f64 re 6)) (*.f64 im (*.f64 im (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 1/2 im) im))))))) (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 1/2 im) im)))) 3)) (fma.f64 1/288 (*.f64 (/.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 1/2 im) im)))) 3) (pow.f64 re 4)) (pow.f64 im 4)) (*.f64 (/.f64 (fma.f64 (pow.f64 im 6) -1/82944 (fma.f64 1/4320 (fma.f64 (pow.f64 im 6) 45/2 (fma.f64 -720 (/.f64 (fma.f64 (pow.f64 im 8) 1/16 (*.f64 (pow.f64 im 8) 1/64)) (*.f64 im im)) (*.f64 (pow.f64 im 6) -15/4))) (*.f64 -1/3456 (*.f64 (pow.f64 im 6) 9/4)))) (pow.f64 re 6)) (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 1/2 im) im)))) 3)))) (fma.f64 -1/12 (*.f64 (/.f64 (fma.f64 (pow.f64 im 4) 1/1152 (*.f64 (pow.f64 im 4) 1/64)) (pow.f64 re 6)) (*.f64 (*.f64 im im) (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 1/2 im) im)))) 3))) (*.f64 (/.f64 (fma.f64 2 (*.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 1/2 im) im)))) 2) (fma.f64 (pow.f64 im 4) 1/1152 (*.f64 (pow.f64 im 4) 1/64))) (*.f64 (pow.f64 im 4) (*.f64 1/576 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 1/2 im) im)))) 2)))) (pow.f64 re 4)) (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 1/2 im) im))))))))) (fma.f64 -1/24 (*.f64 (/.f64 (*.f64 im im) re) (/.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 1/2 im) im)))) 3) re)) (*.f64 (/.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 1/2 im) im)))) (pow.f64 re 6)) (fma.f64 2 (*.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 1/2 im) im)))) 2) (fma.f64 (pow.f64 im 6) -1/82944 (fma.f64 1/4320 (fma.f64 (pow.f64 im 6) 45/2 (fma.f64 -720 (/.f64 (fma.f64 (pow.f64 im 8) 1/16 (*.f64 (pow.f64 im 8) 1/64)) (*.f64 im im)) (*.f64 (pow.f64 im 6) -15/4))) (*.f64 -1/3456 (*.f64 (pow.f64 im 6) 9/4))))) (*.f64 (pow.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 1/2 im) im)))) 2) (*.f64 (*.f64 (*.f64 im im) (fma.f64 (pow.f64 im 4) 1/1152 (*.f64 (pow.f64 im 4) 1/64))) -1/12))))))
(+.f64 (+.f64 (/.f64 (pow.f64 (*.f64 (pow.f64 (*.f64 (*.f64 1/2 im) im) 1/6) (pow.f64 (/.f64 -1 re) 1/6)) 3) (/.f64 (pow.f64 re 4) (fma.f64 (pow.f64 im 4) 1/1152 (*.f64 (pow.f64 im 4) 1/64)))) (fma.f64 (*.f64 (/.f64 (*.f64 im im) re) (/.f64 (pow.f64 (*.f64 (pow.f64 (*.f64 (*.f64 1/2 im) im) 1/6) (pow.f64 (/.f64 -1 re) 1/6)) 3) re)) -1/12 (+.f64 (+.f64 (fma.f64 -1/24 (*.f64 (/.f64 (fma.f64 2 (*.f64 (pow.f64 (*.f64 (pow.f64 (*.f64 (*.f64 1/2 im) im) 1/6) (pow.f64 (/.f64 -1 re) 1/6)) 2) (fma.f64 (pow.f64 im 4) 1/1152 (*.f64 (pow.f64 im 4) 1/64))) (*.f64 (pow.f64 im 4) (*.f64 1/576 (pow.f64 (*.f64 (pow.f64 (*.f64 (*.f64 1/2 im) im) 1/6) (pow.f64 (/.f64 -1 re) 1/6)) 2)))) (pow.f64 re 6)) (*.f64 im (*.f64 im (*.f64 (pow.f64 (*.f64 (*.f64 1/2 im) im) 1/6) (pow.f64 (/.f64 -1 re) 1/6))))) (pow.f64 (*.f64 (pow.f64 (*.f64 (*.f64 1/2 im) im) 1/6) (pow.f64 (/.f64 -1 re) 1/6)) 3)) (fma.f64 1/288 (*.f64 (/.f64 (pow.f64 (*.f64 (pow.f64 (*.f64 (*.f64 1/2 im) im) 1/6) (pow.f64 (/.f64 -1 re) 1/6)) 3) (pow.f64 re 4)) (pow.f64 im 4)) (*.f64 (/.f64 (fma.f64 (pow.f64 im 6) -1/82944 (fma.f64 1/4320 (fma.f64 (pow.f64 im 6) 45/2 (fma.f64 -720 (/.f64 (fma.f64 (pow.f64 im 8) 1/16 (*.f64 (pow.f64 im 8) 1/64)) (*.f64 im im)) (*.f64 (pow.f64 im 6) -15/4))) (*.f64 -1/3456 (*.f64 (pow.f64 im 6) 9/4)))) (pow.f64 re 6)) (pow.f64 (*.f64 (pow.f64 (*.f64 (*.f64 1/2 im) im) 1/6) (pow.f64 (/.f64 -1 re) 1/6)) 3)))) (fma.f64 -1/12 (*.f64 (/.f64 (fma.f64 (pow.f64 im 4) 1/1152 (*.f64 (pow.f64 im 4) 1/64)) (pow.f64 re 6)) (*.f64 (*.f64 im im) (pow.f64 (*.f64 (pow.f64 (*.f64 (*.f64 1/2 im) im) 1/6) (pow.f64 (/.f64 -1 re) 1/6)) 3))) (*.f64 (/.f64 (fma.f64 2 (*.f64 (pow.f64 (*.f64 (pow.f64 (*.f64 (*.f64 1/2 im) im) 1/6) (pow.f64 (/.f64 -1 re) 1/6)) 2) (fma.f64 (pow.f64 im 4) 1/1152 (*.f64 (pow.f64 im 4) 1/64))) (*.f64 (pow.f64 im 4) (*.f64 1/576 (pow.f64 (*.f64 (pow.f64 (*.f64 (*.f64 1/2 im) im) 1/6) (pow.f64 (/.f64 -1 re) 1/6)) 2)))) (pow.f64 re 4)) (*.f64 (pow.f64 (*.f64 (*.f64 1/2 im) im) 1/6) (pow.f64 (/.f64 -1 re) 1/6))))))) (fma.f64 -1/24 (*.f64 (/.f64 (*.f64 im im) re) (/.f64 (pow.f64 (*.f64 (pow.f64 (*.f64 (*.f64 1/2 im) im) 1/6) (pow.f64 (/.f64 -1 re) 1/6)) 3) re)) (*.f64 (/.f64 (*.f64 (pow.f64 (*.f64 (*.f64 1/2 im) im) 1/6) (pow.f64 (/.f64 -1 re) 1/6)) (pow.f64 re 6)) (fma.f64 2 (*.f64 (pow.f64 (*.f64 (pow.f64 (*.f64 (*.f64 1/2 im) im) 1/6) (pow.f64 (/.f64 -1 re) 1/6)) 2) (fma.f64 (pow.f64 im 6) -1/82944 (fma.f64 1/4320 (fma.f64 (pow.f64 im 6) 45/2 (fma.f64 -720 (/.f64 (fma.f64 (pow.f64 im 8) 1/16 (*.f64 (pow.f64 im 8) 1/64)) (*.f64 im im)) (*.f64 (pow.f64 im 6) -15/4))) (*.f64 -1/3456 (*.f64 (pow.f64 im 6) 9/4))))) (*.f64 (*.f64 -1/12 (*.f64 (*.f64 im im) (fma.f64 (pow.f64 im 4) 1/1152 (*.f64 (pow.f64 im 4) 1/64)))) (pow.f64 (*.f64 (pow.f64 (*.f64 (*.f64 1/2 im) im) 1/6) (pow.f64 (/.f64 -1 re) 1/6)) 2))))))
(*.f64 (sqrt.f64 2) (sqrt.f64 re))
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 re)) (*.f64 (+.f64 (*.f64 1/12 (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) (*.f64 1/24 (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))))) (pow.f64 im 2)))
(fma.f64 (sqrt.f64 2) (sqrt.f64 re) (*.f64 (*.f64 im im) (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 1/8)))
(fma.f64 (*.f64 im im) (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) 1/8)) (*.f64 (sqrt.f64 2) (sqrt.f64 re)))
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 re)) (+.f64 (*.f64 (+.f64 (*.f64 1/12 (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) (*.f64 1/24 (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))))) (pow.f64 im 2)) (*.f64 (pow.f64 im 4) (+.f64 (*.f64 (pow.f64 (*.f64 2 re) 1/6) (+.f64 (*.f64 1/576 (pow.f64 (/.f64 2 (pow.f64 re 11)) 1/3)) (*.f64 -17/576 (pow.f64 (/.f64 2 (pow.f64 re 11)) 1/3)))) (+.f64 (*.f64 -17/1152 (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 re 7))))) (*.f64 1/288 (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 re 7))))))))))
(fma.f64 (sqrt.f64 2) (sqrt.f64 re) (fma.f64 (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 1/8) (*.f64 im im) (*.f64 (pow.f64 im 4) (fma.f64 (pow.f64 (*.f64 re 2) 1/6) (*.f64 (cbrt.f64 (/.f64 2 (pow.f64 re 11))) -1/36) (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 re 7)))) -13/1152)))))
(fma.f64 (sqrt.f64 2) (sqrt.f64 re) (fma.f64 (*.f64 im im) (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) 1/8)) (*.f64 (pow.f64 im 4) (fma.f64 (pow.f64 (*.f64 re 2) 1/6) (*.f64 (cbrt.f64 (/.f64 2 (pow.f64 re 11))) -1/36) (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) -13/1152))))))
(+.f64 (*.f64 (+.f64 (*.f64 (pow.f64 (*.f64 2 re) 1/6) (+.f64 (*.f64 667/41472 (pow.f64 (/.f64 2 (pow.f64 re 17)) 1/3)) (*.f64 -17/13824 (pow.f64 (/.f64 2 (pow.f64 re 17)) 1/3)))) (+.f64 (*.f64 -17/13824 (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 re 11))))) (+.f64 (*.f64 667/82944 (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 re 11))))) (*.f64 1/24 (*.f64 (pow.f64 (/.f64 2 (pow.f64 re 11)) 1/6) (+.f64 (*.f64 1/576 (pow.f64 (/.f64 2 (pow.f64 re 11)) 1/3)) (*.f64 -17/576 (pow.f64 (/.f64 2 (pow.f64 re 11)) 1/3)))))))) (pow.f64 im 6)) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 re)) (+.f64 (*.f64 (+.f64 (*.f64 1/12 (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) (*.f64 1/24 (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))))) (pow.f64 im 2)) (*.f64 (pow.f64 im 4) (+.f64 (*.f64 (pow.f64 (*.f64 2 re) 1/6) (+.f64 (*.f64 1/576 (pow.f64 (/.f64 2 (pow.f64 re 11)) 1/3)) (*.f64 -17/576 (pow.f64 (/.f64 2 (pow.f64 re 11)) 1/3)))) (+.f64 (*.f64 -17/1152 (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 re 7))))) (*.f64 1/288 (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 re 7)))))))))))
(fma.f64 (fma.f64 (pow.f64 (*.f64 re 2) 1/6) (*.f64 (cbrt.f64 (/.f64 2 (pow.f64 re 17))) 77/5184) (fma.f64 -17/13824 (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 re 11)))) (fma.f64 667/82944 (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 re 11)))) (*.f64 1/24 (*.f64 (*.f64 (cbrt.f64 (/.f64 2 (pow.f64 re 11))) -1/36) (pow.f64 (/.f64 2 (pow.f64 re 11)) 1/6)))))) (pow.f64 im 6) (fma.f64 (sqrt.f64 2) (sqrt.f64 re) (fma.f64 (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 1/8) (*.f64 im im) (*.f64 (pow.f64 im 4) (fma.f64 (pow.f64 (*.f64 re 2) 1/6) (*.f64 (cbrt.f64 (/.f64 2 (pow.f64 re 11))) -1/36) (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 re 7)))) -13/1152))))))
(fma.f64 (pow.f64 im 6) (fma.f64 (pow.f64 (*.f64 re 2) 1/6) (*.f64 (cbrt.f64 (/.f64 2 (pow.f64 re 17))) 77/5184) (+.f64 (*.f64 1/24 (*.f64 (cbrt.f64 (/.f64 2 (pow.f64 re 11))) (*.f64 -1/36 (pow.f64 (/.f64 2 (pow.f64 re 11)) 1/6)))) (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 re 11)))) 565/82944))) (fma.f64 (sqrt.f64 2) (sqrt.f64 re) (fma.f64 (*.f64 im im) (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) 1/8)) (*.f64 (pow.f64 im 4) (fma.f64 (pow.f64 (*.f64 re 2) 1/6) (*.f64 (cbrt.f64 (/.f64 2 (pow.f64 re 11))) -1/36) (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) -13/1152)))))))
(fma.f64 (pow.f64 im 6) (fma.f64 (pow.f64 (*.f64 re 2) 1/6) (*.f64 (cbrt.f64 (/.f64 2 (pow.f64 re 17))) 77/5184) (+.f64 (*.f64 1/24 (*.f64 (pow.f64 (pow.f64 (/.f64 2 (pow.f64 re 11)) 1/6) 3) -1/36)) (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 re 11)))) 565/82944))) (fma.f64 (sqrt.f64 2) (sqrt.f64 re) (fma.f64 (*.f64 im im) (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) 1/8)) (*.f64 (pow.f64 im 4) (fma.f64 (pow.f64 (*.f64 re 2) 1/6) (*.f64 (cbrt.f64 (/.f64 2 (pow.f64 re 11))) -1/36) (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) -13/1152)))))))
(*.f64 (pow.f64 1 1/6) (sqrt.f64 im))
(sqrt.f64 im)
(+.f64 (*.f64 1/3 (*.f64 (pow.f64 1 1/6) (*.f64 re (sqrt.f64 (/.f64 1 im))))) (+.f64 (*.f64 (pow.f64 1 1/6) (sqrt.f64 im)) (*.f64 1/6 (*.f64 re (sqrt.f64 (/.f64 1 im))))))
(+.f64 (sqrt.f64 im) (*.f64 re (*.f64 (sqrt.f64 (/.f64 1 im)) 1/2)))
(fma.f64 re (*.f64 (sqrt.f64 (/.f64 1 im)) 1/2) (sqrt.f64 im))
(+.f64 (*.f64 1/3 (*.f64 (pow.f64 1 1/6) (*.f64 re (sqrt.f64 (/.f64 1 im))))) (+.f64 (*.f64 (pow.f64 1 1/6) (sqrt.f64 im)) (+.f64 (*.f64 (+.f64 (*.f64 1/72 (pow.f64 re 2)) (*.f64 1/12 (+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 re 2))))) (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) (+.f64 (*.f64 1/18 (*.f64 (pow.f64 re 2) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 11)) 1/6) (+.f64 (*.f64 1/36 (*.f64 (pow.f64 (*.f64 1 im) 1/3) (pow.f64 re 2))) (*.f64 2 (*.f64 (pow.f64 (*.f64 1 im) 1/3) (+.f64 (*.f64 1/72 (pow.f64 re 2)) (*.f64 1/12 (+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 re 2))))))))) (*.f64 1/6 (*.f64 re (sqrt.f64 (/.f64 1 im)))))))))
(+.f64 (*.f64 1/3 (*.f64 (sqrt.f64 (/.f64 1 im)) re)) (fma.f64 1 (sqrt.f64 im) (fma.f64 (fma.f64 1/72 (*.f64 re re) (*.f64 1/12 (*.f64 0 (*.f64 re re)))) (sqrt.f64 (/.f64 1 (pow.f64 im 3))) (fma.f64 1/18 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 3))) (*.f64 re re)) (fma.f64 (pow.f64 (/.f64 1 (pow.f64 im 11)) 1/6) (fma.f64 1/36 (*.f64 (*.f64 re re) (cbrt.f64 im)) (*.f64 (*.f64 2 (cbrt.f64 im)) (fma.f64 1/72 (*.f64 re re) (*.f64 1/12 (*.f64 0 (*.f64 re re)))))) (*.f64 1/6 (*.f64 (sqrt.f64 (/.f64 1 im)) re)))))))
(+.f64 (+.f64 (fma.f64 1/6 (*.f64 (sqrt.f64 (/.f64 1 im)) re) (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 11)) 1/6) (fma.f64 2 (*.f64 (fma.f64 1/72 (*.f64 re re) 0) (cbrt.f64 im)) (*.f64 (cbrt.f64 im) (*.f64 (*.f64 re re) 1/36))))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 3))) (+.f64 (fma.f64 1/72 (*.f64 re re) 0) (*.f64 (*.f64 re re) 1/18)))) (fma.f64 1/3 (*.f64 (sqrt.f64 (/.f64 1 im)) re) (sqrt.f64 im)))
(+.f64 (*.f64 1/3 (*.f64 (pow.f64 1 1/6) (*.f64 re (sqrt.f64 (/.f64 1 im))))) (+.f64 (*.f64 (+.f64 (*.f64 1/36 (+.f64 (*.f64 -3 (pow.f64 re 3)) (*.f64 2 (pow.f64 re 3)))) (+.f64 (*.f64 1/72 (*.f64 re (+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 re 2))))) (*.f64 1/1296 (pow.f64 re 3)))) (sqrt.f64 (/.f64 1 (pow.f64 im 5)))) (+.f64 (*.f64 1/18 (*.f64 (pow.f64 re 2) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 17)) 1/6) (*.f64 (+.f64 (*.f64 1/36 (*.f64 (pow.f64 (*.f64 1 im) 1/3) (pow.f64 re 2))) (*.f64 2 (*.f64 (pow.f64 (*.f64 1 im) 1/3) (+.f64 (*.f64 1/72 (pow.f64 re 2)) (*.f64 1/12 (+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 re 2)))))))) re))) (+.f64 (*.f64 1/6 (*.f64 re (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 (pow.f64 1 1/6) (sqrt.f64 im)) (+.f64 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 17)) 1/6) (+.f64 (*.f64 1/3 (*.f64 (pow.f64 (*.f64 1 im) 1/3) (*.f64 (+.f64 (*.f64 1/72 (pow.f64 re 2)) (*.f64 1/12 (+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 re 2))))) re))) (*.f64 2 (*.f64 (pow.f64 (*.f64 1 im) 1/3) (+.f64 (*.f64 1/72 (*.f64 re (+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 re 2))))) (+.f64 (*.f64 1/36 (+.f64 (*.f64 -3 (pow.f64 re 3)) (*.f64 2 (pow.f64 re 3)))) (*.f64 1/1296 (pow.f64 re 3)))))))) (+.f64 (*.f64 1/3 (*.f64 (*.f64 (+.f64 (*.f64 1/72 (pow.f64 re 2)) (*.f64 1/12 (+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 re 2))))) re) (sqrt.f64 (/.f64 1 (pow.f64 im 5))))) (+.f64 (*.f64 (+.f64 (*.f64 1/72 (pow.f64 re 2)) (*.f64 1/12 (+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 re 2))))) (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 11)) 1/6) (+.f64 (*.f64 1/36 (*.f64 (pow.f64 (*.f64 1 im) 1/3) (pow.f64 re 2))) (*.f64 2 (*.f64 (pow.f64 (*.f64 1 im) 1/3) (+.f64 (*.f64 1/72 (pow.f64 re 2)) (*.f64 1/12 (+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 re 2))))))))))))))))))
(+.f64 (*.f64 1/3 (*.f64 (sqrt.f64 (/.f64 1 im)) re)) (fma.f64 (fma.f64 1/36 (*.f64 (pow.f64 re 3) -1) (fma.f64 1/72 (*.f64 re (*.f64 0 (*.f64 re re))) (*.f64 (pow.f64 re 3) 1/1296))) (sqrt.f64 (/.f64 1 (pow.f64 im 5))) (fma.f64 1/18 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 3))) (*.f64 re re)) (fma.f64 1/6 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 17)) 1/6) (*.f64 re (fma.f64 1/36 (*.f64 (*.f64 re re) (cbrt.f64 im)) (*.f64 (*.f64 2 (cbrt.f64 im)) (fma.f64 1/72 (*.f64 re re) (*.f64 1/12 (*.f64 0 (*.f64 re re)))))))) (fma.f64 1/6 (*.f64 (sqrt.f64 (/.f64 1 im)) re) (fma.f64 1 (sqrt.f64 im) (fma.f64 (pow.f64 (/.f64 1 (pow.f64 im 17)) 1/6) (fma.f64 1/3 (*.f64 (cbrt.f64 im) (*.f64 re (fma.f64 1/72 (*.f64 re re) (*.f64 1/12 (*.f64 0 (*.f64 re re)))))) (*.f64 2 (*.f64 (cbrt.f64 im) (fma.f64 1/72 (*.f64 re (*.f64 0 (*.f64 re re))) (fma.f64 1/36 (*.f64 (pow.f64 re 3) -1) (*.f64 (pow.f64 re 3) 1/1296)))))) (fma.f64 1/3 (*.f64 (fma.f64 1/72 (*.f64 re re) (*.f64 1/12 (*.f64 0 (*.f64 re re)))) (*.f64 re (sqrt.f64 (/.f64 1 (pow.f64 im 5))))) (fma.f64 (fma.f64 1/72 (*.f64 re re) (*.f64 1/12 (*.f64 0 (*.f64 re re)))) (sqrt.f64 (/.f64 1 (pow.f64 im 3))) (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 11)) 1/6) (fma.f64 1/36 (*.f64 (*.f64 re re) (cbrt.f64 im)) (*.f64 (*.f64 2 (cbrt.f64 im)) (fma.f64 1/72 (*.f64 re re) (*.f64 1/12 (*.f64 0 (*.f64 re re))))))))))))))))
(fma.f64 1/3 (*.f64 (sqrt.f64 (/.f64 1 im)) re) (fma.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 5))) (+.f64 (*.f64 (pow.f64 re 3) -1/36) (fma.f64 (pow.f64 re 3) 1/1296 (*.f64 re 0))) (fma.f64 1/18 (*.f64 re (*.f64 re (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (fma.f64 1/6 (*.f64 re (*.f64 (fma.f64 2 (*.f64 (fma.f64 1/72 (*.f64 re re) 0) (cbrt.f64 im)) (*.f64 (cbrt.f64 im) (*.f64 (*.f64 re re) 1/36))) (pow.f64 (/.f64 1 (pow.f64 im 17)) 1/6))) (+.f64 (fma.f64 (*.f64 1/6 re) (sqrt.f64 (/.f64 1 im)) (sqrt.f64 im)) (fma.f64 (pow.f64 (/.f64 1 (pow.f64 im 17)) 1/6) (fma.f64 1/3 (*.f64 (fma.f64 1/72 (*.f64 re re) 0) (*.f64 (cbrt.f64 im) re)) (*.f64 (+.f64 (*.f64 (pow.f64 re 3) -1/36) (fma.f64 (pow.f64 re 3) 1/1296 (*.f64 re 0))) (*.f64 2 (cbrt.f64 im)))) (fma.f64 1/3 (*.f64 re (*.f64 (fma.f64 1/72 (*.f64 re re) 0) (sqrt.f64 (/.f64 1 (pow.f64 im 5))))) (fma.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 3))) (fma.f64 1/72 (*.f64 re re) 0) (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 11)) 1/6) (fma.f64 2 (*.f64 (fma.f64 1/72 (*.f64 re re) 0) (cbrt.f64 im)) (*.f64 (cbrt.f64 im) (*.f64 (*.f64 re re) 1/36))))))))))))
(*.f64 (sqrt.f64 -1) (*.f64 (pow.f64 1 1/6) (sqrt.f64 im)))
(*.f64 (*.f64 (sqrt.f64 im) 1) (sqrt.f64 -1))
(*.f64 (sqrt.f64 im) (sqrt.f64 -1))
(+.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 1/3 (*.f64 (pow.f64 1 1/6) (*.f64 (*.f64 (sqrt.f64 -1) re) (sqrt.f64 im)))) (*.f64 1/6 (*.f64 (*.f64 (sqrt.f64 -1) re) (sqrt.f64 im)))) im)) (*.f64 (sqrt.f64 -1) (*.f64 (pow.f64 1 1/6) (sqrt.f64 im))))
(fma.f64 -1 (/.f64 (+.f64 (*.f64 1/3 (*.f64 (sqrt.f64 im) (*.f64 re (sqrt.f64 -1)))) (*.f64 1/6 (*.f64 (sqrt.f64 im) (*.f64 re (sqrt.f64 -1))))) im) (*.f64 (*.f64 (sqrt.f64 im) 1) (sqrt.f64 -1)))
(-.f64 (*.f64 (sqrt.f64 im) (sqrt.f64 -1)) (/.f64 (*.f64 (*.f64 (sqrt.f64 im) (*.f64 re (sqrt.f64 -1))) 1/2) im))
(+.f64 (*.f64 (pow.f64 (/.f64 -1 (pow.f64 im 11)) 1/6) (+.f64 (*.f64 2 (*.f64 (pow.f64 (*.f64 -1 im) 1/3) (+.f64 (*.f64 1/72 (pow.f64 re 2)) (*.f64 1/12 (+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 re 2))))))) (*.f64 1/36 (*.f64 (pow.f64 (*.f64 -1 im) 1/3) (pow.f64 re 2))))) (+.f64 (*.f64 (*.f64 (sqrt.f64 -1) (+.f64 (*.f64 1/72 (pow.f64 re 2)) (*.f64 1/12 (+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 re 2)))))) (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) (+.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 1/3 (*.f64 (pow.f64 1 1/6) (*.f64 (*.f64 (sqrt.f64 -1) re) (sqrt.f64 im)))) (*.f64 1/6 (*.f64 (*.f64 (sqrt.f64 -1) re) (sqrt.f64 im)))) im)) (+.f64 (*.f64 1/18 (*.f64 (*.f64 (sqrt.f64 -1) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (*.f64 (sqrt.f64 -1) (*.f64 (pow.f64 1 1/6) (sqrt.f64 im)))))))
(fma.f64 (pow.f64 (/.f64 -1 (pow.f64 im 11)) 1/6) (fma.f64 2 (*.f64 (fma.f64 1/72 (*.f64 re re) (*.f64 1/12 (*.f64 0 (*.f64 re re)))) (cbrt.f64 (neg.f64 im))) (*.f64 1/36 (*.f64 (*.f64 re re) (cbrt.f64 (neg.f64 im))))) (fma.f64 (*.f64 (fma.f64 1/72 (*.f64 re re) (*.f64 1/12 (*.f64 0 (*.f64 re re)))) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))) (fma.f64 -1 (/.f64 (+.f64 (*.f64 1/3 (*.f64 (sqrt.f64 im) (*.f64 re (sqrt.f64 -1)))) (*.f64 1/6 (*.f64 (sqrt.f64 im) (*.f64 re (sqrt.f64 -1))))) im) (fma.f64 1/18 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 3))) (*.f64 (*.f64 re re) (sqrt.f64 -1))) (*.f64 (*.f64 (sqrt.f64 im) 1) (sqrt.f64 -1))))))
(fma.f64 (pow.f64 (/.f64 -1 (pow.f64 im 11)) 1/6) (fma.f64 2 (*.f64 (fma.f64 1/72 (*.f64 re re) 0) (cbrt.f64 (neg.f64 im))) (*.f64 (*.f64 re re) (*.f64 1/36 (cbrt.f64 (neg.f64 im))))) (fma.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 3))) (*.f64 (fma.f64 1/72 (*.f64 re re) 0) (sqrt.f64 -1)) (-.f64 (fma.f64 1/18 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 3))) (*.f64 (*.f64 re re) (sqrt.f64 -1))) (*.f64 (sqrt.f64 im) (sqrt.f64 -1))) (/.f64 (*.f64 (*.f64 (sqrt.f64 im) (*.f64 re (sqrt.f64 -1))) 1/2) im))))
(+.f64 (*.f64 (pow.f64 (/.f64 -1 (pow.f64 im 11)) 1/6) (+.f64 (*.f64 2 (*.f64 (pow.f64 (*.f64 -1 im) 1/3) (+.f64 (*.f64 1/72 (pow.f64 re 2)) (*.f64 1/12 (+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 re 2))))))) (*.f64 1/36 (*.f64 (pow.f64 (*.f64 -1 im) 1/3) (pow.f64 re 2))))) (+.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 (*.f64 (+.f64 (*.f64 1/36 (+.f64 (*.f64 -3 (pow.f64 re 3)) (*.f64 2 (pow.f64 re 3)))) (+.f64 (*.f64 1/72 (*.f64 re (+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 re 2))))) (*.f64 1/1296 (pow.f64 re 3)))) (sqrt.f64 -1)) (sqrt.f64 im)) (+.f64 (*.f64 1/3 (*.f64 (*.f64 (sqrt.f64 -1) (*.f64 (+.f64 (*.f64 1/72 (pow.f64 re 2)) (*.f64 1/12 (+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 re 2))))) re)) (sqrt.f64 im))) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 (*.f64 -1 im) 1/6) (*.f64 re (+.f64 (*.f64 2 (*.f64 (pow.f64 (*.f64 -1 im) 1/3) (+.f64 (*.f64 1/72 (pow.f64 re 2)) (*.f64 1/12 (+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 re 2))))))) (*.f64 1/36 (*.f64 (pow.f64 (*.f64 -1 im) 1/3) (pow.f64 re 2))))))) (*.f64 (pow.f64 (*.f64 -1 im) 1/6) (+.f64 (*.f64 1/3 (*.f64 (pow.f64 (*.f64 -1 im) 1/3) (*.f64 (+.f64 (*.f64 1/72 (pow.f64 re 2)) (*.f64 1/12 (+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 re 2))))) re))) (*.f64 2 (*.f64 (pow.f64 (*.f64 -1 im) 1/3) (+.f64 (*.f64 1/72 (*.f64 re (+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 re 2))))) (+.f64 (*.f64 1/36 (+.f64 (*.f64 -3 (pow.f64 re 3)) (*.f64 2 (pow.f64 re 3)))) (*.f64 1/1296 (pow.f64 re 3))))))))))) (pow.f64 im 3))) (+.f64 (*.f64 (*.f64 (sqrt.f64 -1) (+.f64 (*.f64 1/72 (pow.f64 re 2)) (*.f64 1/12 (+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 re 2)))))) (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) (+.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 1/3 (*.f64 (pow.f64 1 1/6) (*.f64 (*.f64 (sqrt.f64 -1) re) (sqrt.f64 im)))) (*.f64 1/6 (*.f64 (*.f64 (sqrt.f64 -1) re) (sqrt.f64 im)))) im)) (+.f64 (*.f64 1/18 (*.f64 (*.f64 (sqrt.f64 -1) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (*.f64 (sqrt.f64 -1) (*.f64 (pow.f64 1 1/6) (sqrt.f64 im))))))))
(fma.f64 (pow.f64 (/.f64 -1 (pow.f64 im 11)) 1/6) (fma.f64 2 (*.f64 (fma.f64 1/72 (*.f64 re re) (*.f64 1/12 (*.f64 0 (*.f64 re re)))) (cbrt.f64 (neg.f64 im))) (*.f64 1/36 (*.f64 (*.f64 re re) (cbrt.f64 (neg.f64 im))))) (fma.f64 -1 (/.f64 (fma.f64 (*.f64 (fma.f64 1/36 (*.f64 (pow.f64 re 3) -1) (fma.f64 1/72 (*.f64 re (*.f64 0 (*.f64 re re))) (*.f64 (pow.f64 re 3) 1/1296))) (sqrt.f64 -1)) (sqrt.f64 im) (fma.f64 1/3 (*.f64 (sqrt.f64 im) (*.f64 (*.f64 re (fma.f64 1/72 (*.f64 re re) (*.f64 1/12 (*.f64 0 (*.f64 re re))))) (sqrt.f64 -1))) (fma.f64 1/6 (*.f64 (pow.f64 (neg.f64 im) 1/6) (*.f64 re (fma.f64 2 (*.f64 (fma.f64 1/72 (*.f64 re re) (*.f64 1/12 (*.f64 0 (*.f64 re re)))) (cbrt.f64 (neg.f64 im))) (*.f64 1/36 (*.f64 (*.f64 re re) (cbrt.f64 (neg.f64 im))))))) (*.f64 (pow.f64 (neg.f64 im) 1/6) (fma.f64 1/3 (*.f64 (*.f64 re (fma.f64 1/72 (*.f64 re re) (*.f64 1/12 (*.f64 0 (*.f64 re re))))) (cbrt.f64 (neg.f64 im))) (*.f64 2 (*.f64 (fma.f64 1/72 (*.f64 re (*.f64 0 (*.f64 re re))) (fma.f64 1/36 (*.f64 (pow.f64 re 3) -1) (*.f64 (pow.f64 re 3) 1/1296))) (cbrt.f64 (neg.f64 im))))))))) (pow.f64 im 3)) (fma.f64 (*.f64 (fma.f64 1/72 (*.f64 re re) (*.f64 1/12 (*.f64 0 (*.f64 re re)))) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))) (fma.f64 -1 (/.f64 (+.f64 (*.f64 1/3 (*.f64 (sqrt.f64 im) (*.f64 re (sqrt.f64 -1)))) (*.f64 1/6 (*.f64 (sqrt.f64 im) (*.f64 re (sqrt.f64 -1))))) im) (fma.f64 1/18 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 3))) (*.f64 (*.f64 re re) (sqrt.f64 -1))) (*.f64 (*.f64 (sqrt.f64 im) 1) (sqrt.f64 -1)))))))
(fma.f64 (pow.f64 (/.f64 -1 (pow.f64 im 11)) 1/6) (fma.f64 2 (*.f64 (fma.f64 1/72 (*.f64 re re) 0) (cbrt.f64 (neg.f64 im))) (*.f64 (*.f64 re re) (*.f64 1/36 (cbrt.f64 (neg.f64 im))))) (-.f64 (fma.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 3))) (*.f64 (fma.f64 1/72 (*.f64 re re) 0) (sqrt.f64 -1)) (-.f64 (fma.f64 1/18 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 3))) (*.f64 (*.f64 re re) (sqrt.f64 -1))) (*.f64 (sqrt.f64 im) (sqrt.f64 -1))) (/.f64 (*.f64 (*.f64 (sqrt.f64 im) (*.f64 re (sqrt.f64 -1))) 1/2) im))) (/.f64 (+.f64 (fma.f64 1/6 (*.f64 re (*.f64 (fma.f64 2 (*.f64 (fma.f64 1/72 (*.f64 re re) 0) (cbrt.f64 (neg.f64 im))) (*.f64 (*.f64 re re) (*.f64 1/36 (cbrt.f64 (neg.f64 im))))) (pow.f64 (neg.f64 im) 1/6))) (*.f64 (pow.f64 (neg.f64 im) 1/6) (fma.f64 (*.f64 2 (cbrt.f64 (neg.f64 im))) (+.f64 (*.f64 (pow.f64 re 3) -1/36) (fma.f64 (pow.f64 re 3) 1/1296 (*.f64 re 0))) (*.f64 (cbrt.f64 (neg.f64 im)) (*.f64 (*.f64 1/3 re) (fma.f64 1/72 (*.f64 re re) 0)))))) (*.f64 (sqrt.f64 im) (+.f64 (*.f64 (+.f64 (*.f64 (pow.f64 re 3) -1/36) (fma.f64 (pow.f64 re 3) 1/1296 (*.f64 re 0))) (sqrt.f64 -1)) (*.f64 (*.f64 (*.f64 1/3 re) (fma.f64 1/72 (*.f64 re re) 0)) (sqrt.f64 -1))))) (pow.f64 im 3))))
(pow.f64 im 1/6)
(+.f64 (pow.f64 im 1/6) (*.f64 1/6 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 5)) 1/6) re)))
(+.f64 (pow.f64 im 1/6) (*.f64 1/6 (*.f64 re (pow.f64 (/.f64 1 (pow.f64 im 5)) 1/6))))
(fma.f64 1/6 (*.f64 re (pow.f64 (/.f64 1 (pow.f64 im 5)) 1/6)) (pow.f64 im 1/6))
(+.f64 (pow.f64 im 1/6) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 5)) 1/6) re)) (*.f64 1/72 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 11)) 1/6) (pow.f64 re 2)))))
(+.f64 (pow.f64 im 1/6) (fma.f64 1/6 (*.f64 re (pow.f64 (/.f64 1 (pow.f64 im 5)) 1/6)) (*.f64 1/72 (*.f64 (*.f64 re re) (pow.f64 (/.f64 1 (pow.f64 im 11)) 1/6)))))
(+.f64 (pow.f64 im 1/6) (fma.f64 1/72 (*.f64 (*.f64 re re) (pow.f64 (/.f64 1 (pow.f64 im 11)) 1/6)) (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 5)) 1/6) (*.f64 1/6 re))))
(+.f64 (pow.f64 im 1/6) (+.f64 (*.f64 -35/1296 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 17)) 1/6) (pow.f64 re 3))) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 5)) 1/6) re)) (*.f64 1/72 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 11)) 1/6) (pow.f64 re 2))))))
(+.f64 (pow.f64 im 1/6) (fma.f64 -35/1296 (*.f64 (pow.f64 re 3) (pow.f64 (/.f64 1 (pow.f64 im 17)) 1/6)) (fma.f64 1/6 (*.f64 re (pow.f64 (/.f64 1 (pow.f64 im 5)) 1/6)) (*.f64 1/72 (*.f64 (*.f64 re re) (pow.f64 (/.f64 1 (pow.f64 im 11)) 1/6))))))
(+.f64 (pow.f64 im 1/6) (fma.f64 -35/1296 (*.f64 (pow.f64 re 3) (pow.f64 (/.f64 1 (pow.f64 im 17)) 1/6)) (fma.f64 1/72 (*.f64 (*.f64 re re) (pow.f64 (/.f64 1 (pow.f64 im 11)) 1/6)) (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 5)) 1/6) (*.f64 1/6 re)))))
(exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re))))))
(pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (neg.f64 (neg.f64 (log.f64 re)))))
(pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (log.f64 re)))
(*.f64 (pow.f64 2 1/6) (pow.f64 re 1/6))
(+.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) (*.f64 1/24 (/.f64 (*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) (pow.f64 im 2)) (pow.f64 re 2))))
(+.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (neg.f64 (neg.f64 (log.f64 re))))) (*.f64 1/24 (/.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (neg.f64 (neg.f64 (log.f64 re))))) (/.f64 (*.f64 re re) (*.f64 im im)))))
(fma.f64 1/24 (*.f64 (/.f64 (*.f64 im im) re) (/.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (log.f64 re))) re)) (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (log.f64 re))))
(fma.f64 1/24 (*.f64 (/.f64 (*.f64 im im) re) (/.f64 (*.f64 (pow.f64 2 1/6) (pow.f64 re 1/6)) re)) (*.f64 (pow.f64 2 1/6) (pow.f64 re 1/6)))
(+.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) (+.f64 (/.f64 (*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) (+.f64 (*.f64 1/144 (+.f64 (*.f64 -3/4 (pow.f64 im 4)) (*.f64 -3/2 (pow.f64 im 4)))) (*.f64 1/1152 (pow.f64 im 4)))) (pow.f64 re 4)) (*.f64 1/24 (/.f64 (*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) (pow.f64 im 2)) (pow.f64 re 2)))))
(+.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (neg.f64 (neg.f64 (log.f64 re))))) (+.f64 (*.f64 1/24 (/.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (neg.f64 (neg.f64 (log.f64 re))))) (/.f64 (*.f64 re re) (*.f64 im im)))) (/.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (neg.f64 (neg.f64 (log.f64 re))))) (/.f64 (pow.f64 re 4) (fma.f64 1/1152 (pow.f64 im 4) (*.f64 1/144 (*.f64 (pow.f64 im 4) -9/4)))))))
(+.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (log.f64 re))) (fma.f64 1/24 (*.f64 (/.f64 (*.f64 im im) re) (/.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (log.f64 re))) re)) (*.f64 (/.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (log.f64 re))) (pow.f64 re 4)) (fma.f64 (pow.f64 im 4) 1/1152 (*.f64 (pow.f64 im 4) -1/64)))))
(+.f64 (*.f64 (pow.f64 2 1/6) (pow.f64 re 1/6)) (fma.f64 1/24 (*.f64 (/.f64 (*.f64 im im) re) (/.f64 (*.f64 (pow.f64 2 1/6) (pow.f64 re 1/6)) re)) (*.f64 (/.f64 (*.f64 (pow.f64 2 1/6) (pow.f64 re 1/6)) (pow.f64 re 4)) (fma.f64 (pow.f64 im 4) 1/1152 (*.f64 (pow.f64 im 4) -1/64)))))
(+.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) (+.f64 (/.f64 (*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) (+.f64 (*.f64 1/144 (+.f64 (*.f64 -3/4 (pow.f64 im 4)) (*.f64 -3/2 (pow.f64 im 4)))) (*.f64 1/1152 (pow.f64 im 4)))) (pow.f64 re 4)) (+.f64 (*.f64 1/24 (/.f64 (*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re)))))) (pow.f64 im 2)) (pow.f64 re 2))) (/.f64 (*.f64 (+.f64 (*.f64 1/82944 (pow.f64 im 6)) (+.f64 (*.f64 1/4320 (+.f64 (*.f64 15/4 (pow.f64 im 6)) (+.f64 (*.f64 45/2 (pow.f64 im 6)) (*.f64 45/4 (pow.f64 im 6))))) (*.f64 1/3456 (*.f64 (+.f64 (*.f64 -3/4 (pow.f64 im 4)) (*.f64 -3/2 (pow.f64 im 4))) (pow.f64 im 2))))) (exp.f64 (*.f64 1/6 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 re))))))) (pow.f64 re 6)))))
(+.f64 (+.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (neg.f64 (neg.f64 (log.f64 re))))) (/.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (neg.f64 (neg.f64 (log.f64 re))))) (/.f64 (pow.f64 re 4) (fma.f64 1/1152 (pow.f64 im 4) (*.f64 1/144 (*.f64 (pow.f64 im 4) -9/4)))))) (fma.f64 1/24 (/.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (neg.f64 (neg.f64 (log.f64 re))))) (/.f64 (*.f64 re re) (*.f64 im im))) (/.f64 (fma.f64 1/82944 (pow.f64 im 6) (fma.f64 1/4320 (fma.f64 15/4 (pow.f64 im 6) (*.f64 (pow.f64 im 6) 135/4)) (*.f64 1/3456 (*.f64 (*.f64 im im) (*.f64 (pow.f64 im 4) -9/4))))) (/.f64 (pow.f64 re 6) (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (neg.f64 (neg.f64 (log.f64 re)))))))))
(+.f64 (+.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (log.f64 re))) (fma.f64 1/24 (*.f64 (/.f64 (*.f64 im im) re) (/.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (log.f64 re))) re)) (*.f64 (/.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (log.f64 re))) (pow.f64 re 4)) (fma.f64 (pow.f64 im 4) 1/1152 (*.f64 (pow.f64 im 4) -1/64))))) (/.f64 (fma.f64 1/82944 (pow.f64 im 6) (fma.f64 1/4320 (*.f64 (pow.f64 im 6) 75/2) (*.f64 1/3456 (*.f64 (pow.f64 im 6) -9/4)))) (/.f64 (pow.f64 re 6) (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 2) (log.f64 re))))))
(+.f64 (+.f64 (*.f64 (pow.f64 2 1/6) (pow.f64 re 1/6)) (fma.f64 1/24 (*.f64 (/.f64 (*.f64 im im) re) (/.f64 (*.f64 (pow.f64 2 1/6) (pow.f64 re 1/6)) re)) (*.f64 (/.f64 (*.f64 (pow.f64 2 1/6) (pow.f64 re 1/6)) (pow.f64 re 4)) (fma.f64 (pow.f64 im 4) 1/1152 (*.f64 (pow.f64 im 4) -1/64))))) (/.f64 (fma.f64 1/82944 (pow.f64 im 6) (fma.f64 1/4320 (*.f64 (pow.f64 im 6) 75/2) (*.f64 1/3456 (*.f64 (pow.f64 im 6) -9/4)))) (/.f64 (pow.f64 re 6) (*.f64 (pow.f64 2 1/6) (pow.f64 re 1/6)))))
(exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2))))))
(pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 im im) 1/2))))
(pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 1/2 im) im))))
(*.f64 (pow.f64 (*.f64 (*.f64 1/2 im) im) 1/6) (pow.f64 (/.f64 -1 re) 1/6))
(+.f64 (*.f64 -1/24 (/.f64 (*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) (pow.f64 im 2)) (pow.f64 re 2))) (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))))
(fma.f64 -1/24 (/.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 im im) 1/2)))) (/.f64 (*.f64 re re) (*.f64 im im))) (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 im im) 1/2)))))
(fma.f64 -1/24 (/.f64 (*.f64 im im) (/.f64 (*.f64 re re) (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 1/2 im) im)))))) (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 1/2 im) im)))))
(fma.f64 -1/24 (/.f64 (*.f64 im im) (/.f64 (*.f64 re re) (*.f64 (pow.f64 (*.f64 (*.f64 1/2 im) im) 1/6) (pow.f64 (/.f64 -1 re) 1/6)))) (*.f64 (pow.f64 (*.f64 (*.f64 1/2 im) im) 1/6) (pow.f64 (/.f64 -1 re) 1/6)))
(+.f64 (/.f64 (*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) (+.f64 (*.f64 1/1152 (pow.f64 im 4)) (*.f64 1/144 (+.f64 (*.f64 -3/4 (pow.f64 im 4)) (*.f64 3 (pow.f64 im 4)))))) (pow.f64 re 4)) (+.f64 (*.f64 -1/24 (/.f64 (*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) (pow.f64 im 2)) (pow.f64 re 2))) (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2))))))))
(+.f64 (fma.f64 -1/24 (/.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 im im) 1/2)))) (/.f64 (*.f64 re re) (*.f64 im im))) (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 im im) 1/2))))) (/.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 im im) 1/2)))) (/.f64 (pow.f64 re 4) (fma.f64 1/1152 (pow.f64 im 4) (*.f64 1/144 (*.f64 (pow.f64 im 4) 9/4))))))
(+.f64 (fma.f64 -1/24 (/.f64 (*.f64 im im) (/.f64 (*.f64 re re) (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 1/2 im) im)))))) (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 1/2 im) im))))) (*.f64 (/.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 1/2 im) im)))) (pow.f64 re 4)) (fma.f64 (pow.f64 im 4) 1/1152 (*.f64 (pow.f64 im 4) 1/64))))
(+.f64 (fma.f64 -1/24 (/.f64 (*.f64 im im) (/.f64 (*.f64 re re) (*.f64 (pow.f64 (*.f64 (*.f64 1/2 im) im) 1/6) (pow.f64 (/.f64 -1 re) 1/6)))) (*.f64 (pow.f64 (*.f64 (*.f64 1/2 im) im) 1/6) (pow.f64 (/.f64 -1 re) 1/6))) (*.f64 (/.f64 (*.f64 (pow.f64 (*.f64 (*.f64 1/2 im) im) 1/6) (pow.f64 (/.f64 -1 re) 1/6)) (pow.f64 re 4)) (fma.f64 (pow.f64 im 4) 1/1152 (*.f64 (pow.f64 im 4) 1/64))))
(+.f64 (/.f64 (*.f64 (+.f64 (*.f64 1/1152 (pow.f64 im 4)) (*.f64 1/144 (+.f64 (*.f64 -3/4 (pow.f64 im 4)) (*.f64 3 (pow.f64 im 4))))) (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2))))))) (pow.f64 re 4)) (+.f64 (/.f64 (*.f64 (+.f64 (*.f64 -1/82944 (pow.f64 im 6)) (+.f64 (*.f64 1/4320 (+.f64 (*.f64 45/2 (pow.f64 im 6)) (+.f64 (*.f64 -720 (/.f64 (+.f64 (pow.f64 (*.f64 -1/8 (pow.f64 im 4)) 2) (*.f64 1/16 (pow.f64 im 8))) (pow.f64 im 2))) (*.f64 -15/4 (pow.f64 im 6))))) (*.f64 -1/3456 (*.f64 (+.f64 (*.f64 -3/4 (pow.f64 im 4)) (*.f64 3 (pow.f64 im 4))) (pow.f64 im 2))))) (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2))))))) (pow.f64 re 6)) (+.f64 (*.f64 -1/24 (/.f64 (*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) (pow.f64 im 2)) (pow.f64 re 2))) (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))))))
(+.f64 (/.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 im im) 1/2)))) (/.f64 (pow.f64 re 4) (fma.f64 1/1152 (pow.f64 im 4) (*.f64 1/144 (*.f64 (pow.f64 im 4) 9/4))))) (+.f64 (fma.f64 -1/24 (/.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 im im) 1/2)))) (/.f64 (*.f64 re re) (*.f64 im im))) (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 im im) 1/2))))) (/.f64 (fma.f64 -1/82944 (pow.f64 im 6) (fma.f64 1/4320 (fma.f64 45/2 (pow.f64 im 6) (fma.f64 -720 (/.f64 (+.f64 (pow.f64 (*.f64 (pow.f64 im 4) -1/8) 2) (*.f64 (pow.f64 im 8) 1/16)) (*.f64 im im)) (*.f64 (pow.f64 im 6) -15/4))) (*.f64 -1/3456 (*.f64 (*.f64 im im) (*.f64 (pow.f64 im 4) 9/4))))) (/.f64 (pow.f64 re 6) (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 im im) 1/2))))))))
(+.f64 (fma.f64 -1/24 (/.f64 (*.f64 im im) (/.f64 (*.f64 re re) (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 1/2 im) im)))))) (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 1/2 im) im))))) (+.f64 (*.f64 (/.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 1/2 im) im)))) (pow.f64 re 4)) (fma.f64 (pow.f64 im 4) 1/1152 (*.f64 (pow.f64 im 4) 1/64))) (*.f64 (/.f64 (fma.f64 (pow.f64 im 6) -1/82944 (fma.f64 1/4320 (fma.f64 (pow.f64 im 6) 45/2 (fma.f64 -720 (/.f64 (fma.f64 (pow.f64 im 8) 1/16 (*.f64 (pow.f64 im 8) 1/64)) (*.f64 im im)) (*.f64 (pow.f64 im 6) -15/4))) (*.f64 -1/3456 (*.f64 (pow.f64 im 6) 9/4)))) (pow.f64 re 6)) (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 (*.f64 1/2 im) im)))))))
(+.f64 (fma.f64 -1/24 (/.f64 (*.f64 im im) (/.f64 (*.f64 re re) (*.f64 (pow.f64 (*.f64 (*.f64 1/2 im) im) 1/6) (pow.f64 (/.f64 -1 re) 1/6)))) (*.f64 (pow.f64 (*.f64 (*.f64 1/2 im) im) 1/6) (pow.f64 (/.f64 -1 re) 1/6))) (+.f64 (*.f64 (/.f64 (*.f64 (pow.f64 (*.f64 (*.f64 1/2 im) im) 1/6) (pow.f64 (/.f64 -1 re) 1/6)) (pow.f64 re 4)) (fma.f64 (pow.f64 im 4) 1/1152 (*.f64 (pow.f64 im 4) 1/64))) (*.f64 (/.f64 (fma.f64 (pow.f64 im 6) -1/82944 (fma.f64 1/4320 (fma.f64 (pow.f64 im 6) 45/2 (fma.f64 -720 (/.f64 (fma.f64 (pow.f64 im 8) 1/16 (*.f64 (pow.f64 im 8) 1/64)) (*.f64 im im)) (*.f64 (pow.f64 im 6) -15/4))) (*.f64 -1/3456 (*.f64 (pow.f64 im 6) 9/4)))) (pow.f64 re 6)) (*.f64 (pow.f64 (*.f64 (*.f64 1/2 im) im) 1/6) (pow.f64 (/.f64 -1 re) 1/6)))))
(pow.f64 (*.f64 2 re) 1/6)
(pow.f64 (*.f64 re 2) 1/6)
(+.f64 (*.f64 1/24 (*.f64 (pow.f64 (/.f64 2 (pow.f64 re 11)) 1/6) (pow.f64 im 2))) (pow.f64 (*.f64 2 re) 1/6))
(fma.f64 1/24 (*.f64 (*.f64 im im) (pow.f64 (/.f64 2 (pow.f64 re 11)) 1/6)) (pow.f64 (*.f64 re 2) 1/6))
(fma.f64 1/24 (*.f64 im (*.f64 im (pow.f64 (/.f64 2 (pow.f64 re 11)) 1/6))) (pow.f64 (*.f64 re 2) 1/6))
(+.f64 (*.f64 -17/1152 (*.f64 (pow.f64 (/.f64 2 (pow.f64 re 23)) 1/6) (pow.f64 im 4))) (+.f64 (*.f64 1/24 (*.f64 (pow.f64 (/.f64 2 (pow.f64 re 11)) 1/6) (pow.f64 im 2))) (pow.f64 (*.f64 2 re) 1/6)))
(fma.f64 -17/1152 (*.f64 (pow.f64 im 4) (pow.f64 (/.f64 2 (pow.f64 re 23)) 1/6)) (fma.f64 1/24 (*.f64 (*.f64 im im) (pow.f64 (/.f64 2 (pow.f64 re 11)) 1/6)) (pow.f64 (*.f64 re 2) 1/6)))
(fma.f64 -17/1152 (*.f64 (pow.f64 im 4) (pow.f64 (/.f64 2 (pow.f64 re 23)) 1/6)) (fma.f64 1/24 (*.f64 im (*.f64 im (pow.f64 (/.f64 2 (pow.f64 re 11)) 1/6))) (pow.f64 (*.f64 re 2) 1/6)))
(+.f64 (*.f64 667/82944 (*.f64 (pow.f64 (/.f64 2 (pow.f64 re 35)) 1/6) (pow.f64 im 6))) (+.f64 (*.f64 -17/1152 (*.f64 (pow.f64 (/.f64 2 (pow.f64 re 23)) 1/6) (pow.f64 im 4))) (+.f64 (*.f64 1/24 (*.f64 (pow.f64 (/.f64 2 (pow.f64 re 11)) 1/6) (pow.f64 im 2))) (pow.f64 (*.f64 2 re) 1/6))))
(fma.f64 667/82944 (*.f64 (pow.f64 im 6) (pow.f64 (/.f64 2 (pow.f64 re 35)) 1/6)) (fma.f64 -17/1152 (*.f64 (pow.f64 im 4) (pow.f64 (/.f64 2 (pow.f64 re 23)) 1/6)) (fma.f64 1/24 (*.f64 (*.f64 im im) (pow.f64 (/.f64 2 (pow.f64 re 11)) 1/6)) (pow.f64 (*.f64 re 2) 1/6))))
(fma.f64 667/82944 (*.f64 (pow.f64 im 6) (pow.f64 (/.f64 2 (pow.f64 re 35)) 1/6)) (fma.f64 -17/1152 (*.f64 (pow.f64 im 4) (pow.f64 (/.f64 2 (pow.f64 re 23)) 1/6)) (fma.f64 1/24 (*.f64 im (*.f64 im (pow.f64 (/.f64 2 (pow.f64 re 11)) 1/6))) (pow.f64 (*.f64 re 2) 1/6))))
(pow.f64 im 1/6)
(+.f64 (pow.f64 im 1/6) (*.f64 1/6 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 5)) 1/6) re)))
(+.f64 (pow.f64 im 1/6) (*.f64 1/6 (*.f64 re (pow.f64 (/.f64 1 (pow.f64 im 5)) 1/6))))
(fma.f64 1/6 (*.f64 re (pow.f64 (/.f64 1 (pow.f64 im 5)) 1/6)) (pow.f64 im 1/6))
(+.f64 (pow.f64 im 1/6) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 5)) 1/6) re)) (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 11)) 1/6) (+.f64 (*.f64 1/72 (pow.f64 re 2)) (*.f64 1/12 (+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 re 2))))))))
(+.f64 (pow.f64 im 1/6) (fma.f64 1/6 (*.f64 re (pow.f64 (/.f64 1 (pow.f64 im 5)) 1/6)) (*.f64 (fma.f64 1/72 (*.f64 re re) (*.f64 1/12 (*.f64 0 (*.f64 re re)))) (pow.f64 (/.f64 1 (pow.f64 im 11)) 1/6))))
(+.f64 (pow.f64 im 1/6) (fma.f64 1/6 (*.f64 re (pow.f64 (/.f64 1 (pow.f64 im 5)) 1/6)) (*.f64 (fma.f64 1/72 (*.f64 re re) 0) (pow.f64 (/.f64 1 (pow.f64 im 11)) 1/6))))
(+.f64 (pow.f64 im 1/6) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 5)) 1/6) re)) (+.f64 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 11)) 1/6) (+.f64 (*.f64 1/72 (pow.f64 re 2)) (*.f64 1/12 (+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 re 2)))))) (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 17)) 1/6) (+.f64 (*.f64 1/72 (*.f64 re (+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 re 2))))) (+.f64 (*.f64 1/36 (+.f64 (*.f64 -3 (pow.f64 re 3)) (*.f64 2 (pow.f64 re 3)))) (*.f64 1/1296 (pow.f64 re 3))))))))
(+.f64 (pow.f64 im 1/6) (fma.f64 1/6 (*.f64 re (pow.f64 (/.f64 1 (pow.f64 im 5)) 1/6)) (fma.f64 (pow.f64 (/.f64 1 (pow.f64 im 11)) 1/6) (fma.f64 1/72 (*.f64 re re) (*.f64 1/12 (*.f64 0 (*.f64 re re)))) (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 17)) 1/6) (fma.f64 1/72 (*.f64 re (*.f64 0 (*.f64 re re))) (fma.f64 1/36 (*.f64 (pow.f64 re 3) -1) (*.f64 (pow.f64 re 3) 1/1296)))))))
(+.f64 (fma.f64 1/6 (*.f64 re (pow.f64 (/.f64 1 (pow.f64 im 5)) 1/6)) (pow.f64 im 1/6)) (fma.f64 (fma.f64 1/72 (*.f64 re re) 0) (pow.f64 (/.f64 1 (pow.f64 im 11)) 1/6) (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 17)) 1/6) (+.f64 (*.f64 (pow.f64 re 3) -1/36) (fma.f64 (pow.f64 re 3) 1/1296 (*.f64 re 0))))))
(pow.f64 (*.f64 -1 im) 1/6)
(pow.f64 (neg.f64 im) 1/6)
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 (/.f64 -1 (pow.f64 im 5)) 1/6) re)) (pow.f64 (*.f64 -1 im) 1/6))
(fma.f64 -1/6 (*.f64 re (pow.f64 (/.f64 -1 (pow.f64 im 5)) 1/6)) (pow.f64 (neg.f64 im) 1/6))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 (/.f64 -1 (pow.f64 im 5)) 1/6) re)) (+.f64 (pow.f64 (*.f64 -1 im) 1/6) (*.f64 (pow.f64 (/.f64 -1 (pow.f64 im 11)) 1/6) (+.f64 (*.f64 1/72 (pow.f64 re 2)) (*.f64 1/12 (+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 re 2))))))))
(+.f64 (fma.f64 -1/6 (*.f64 re (pow.f64 (/.f64 -1 (pow.f64 im 5)) 1/6)) (pow.f64 (neg.f64 im) 1/6)) (*.f64 (fma.f64 1/72 (*.f64 re re) (*.f64 1/12 (*.f64 0 (*.f64 re re)))) (pow.f64 (/.f64 -1 (pow.f64 im 11)) 1/6)))
(fma.f64 -1/6 (*.f64 re (pow.f64 (/.f64 -1 (pow.f64 im 5)) 1/6)) (fma.f64 (fma.f64 1/72 (*.f64 re re) 0) (pow.f64 (/.f64 -1 (pow.f64 im 11)) 1/6) (pow.f64 (neg.f64 im) 1/6)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 (/.f64 -1 (pow.f64 im 17)) 1/6) (+.f64 (*.f64 1/72 (*.f64 re (+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 re 2))))) (+.f64 (*.f64 1/36 (+.f64 (*.f64 -3 (pow.f64 re 3)) (*.f64 2 (pow.f64 re 3)))) (*.f64 1/1296 (pow.f64 re 3)))))) (+.f64 (*.f64 -1/6 (*.f64 (pow.f64 (/.f64 -1 (pow.f64 im 5)) 1/6) re)) (+.f64 (pow.f64 (*.f64 -1 im) 1/6) (*.f64 (pow.f64 (/.f64 -1 (pow.f64 im 11)) 1/6) (+.f64 (*.f64 1/72 (pow.f64 re 2)) (*.f64 1/12 (+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 re 2)))))))))
(fma.f64 -1 (*.f64 (fma.f64 1/72 (*.f64 re (*.f64 0 (*.f64 re re))) (fma.f64 1/36 (*.f64 (pow.f64 re 3) -1) (*.f64 (pow.f64 re 3) 1/1296))) (pow.f64 (/.f64 -1 (pow.f64 im 17)) 1/6)) (+.f64 (fma.f64 -1/6 (*.f64 re (pow.f64 (/.f64 -1 (pow.f64 im 5)) 1/6)) (pow.f64 (neg.f64 im) 1/6)) (*.f64 (fma.f64 1/72 (*.f64 re re) (*.f64 1/12 (*.f64 0 (*.f64 re re)))) (pow.f64 (/.f64 -1 (pow.f64 im 11)) 1/6))))
(-.f64 (fma.f64 -1/6 (*.f64 re (pow.f64 (/.f64 -1 (pow.f64 im 5)) 1/6)) (fma.f64 (fma.f64 1/72 (*.f64 re re) 0) (pow.f64 (/.f64 -1 (pow.f64 im 11)) 1/6) (pow.f64 (neg.f64 im) 1/6))) (*.f64 (+.f64 (*.f64 (pow.f64 re 3) -1/36) (fma.f64 (pow.f64 re 3) 1/1296 (*.f64 re 0))) (pow.f64 (/.f64 -1 (pow.f64 im 17)) 1/6)))
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(*.f64 (sqrt.f64 im) (sqrt.f64 2))
(+.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 im) (sqrt.f64 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 (/.f64 1 im)) (*.f64 (sqrt.f64 2) (*.f64 (*.f64 re re) (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 im)) 1/2) 2))))) (fma.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 re (sqrt.f64 2))) (*.f64 (sqrt.f64 im) (sqrt.f64 2))))
(+.f64 (*.f64 (sqrt.f64 im) (sqrt.f64 2)) (*.f64 (sqrt.f64 (/.f64 1 im)) (+.f64 (*.f64 1/2 (*.f64 (*.f64 re re) (*.f64 (sqrt.f64 2) (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 im)) 1/2) 2))))) (*.f64 1/2 (*.f64 re (sqrt.f64 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/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 (sqrt.f64 (/.f64 1 im)) 1/2) 2))))) (fma.f64 -1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 3))) (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 re 3) (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 im)) 1/2) 2))))) (fma.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 re (sqrt.f64 2))) (*.f64 (sqrt.f64 im) (sqrt.f64 2)))))
(+.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 3))) (*.f64 -1/4 (*.f64 (pow.f64 re 3) (*.f64 (sqrt.f64 2) (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 im)) 1/2) 2)))))) (+.f64 (*.f64 (sqrt.f64 im) (sqrt.f64 2)) (*.f64 (sqrt.f64 (/.f64 1 im)) (+.f64 (*.f64 1/2 (*.f64 (*.f64 re re) (*.f64 (sqrt.f64 2) (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 im)) 1/2) 2))))) (*.f64 1/2 (*.f64 re (sqrt.f64 2)))))))
(*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re))
(*.f64 (sqrt.f64 re) (pow.f64 (sqrt.f64 2) 2))
(*.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 (sqrt.f64 re) (pow.f64 (sqrt.f64 2) 2)))
(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 (sqrt.f64 re) (pow.f64 (sqrt.f64 2) 2))))
(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))))
(+.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 (sqrt.f64 re) (pow.f64 (sqrt.f64 2) 2)))))
(+.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))))

localize10.0ms (0.1%)

Compiler

Compiled 18 to 14 computations (22.2% saved)

localize10.0ms (0.1%)

Local error

Found 6 expressions with local error:

NewErrorProgram
18.7b
(sqrt.f64 (/.f64 (*.f64 im (neg.f64 im)) re))
7.1b
(/.f64 (*.f64 im (neg.f64 im)) re)
0.0b
(*.f64 1/2 (sqrt.f64 (/.f64 (*.f64 im (neg.f64 im)) re)))
0.0b
(*.f64 1/2 (sqrt.f64 (/.f64 (*.f64 im (neg.f64 im)) re)))
7.1b
(/.f64 (*.f64 im (neg.f64 im)) re)
18.7b
(sqrt.f64 (/.f64 (*.f64 im (neg.f64 im)) re))
Compiler

Compiled 33 to 9 computations (72.7% saved)

series6.0ms (0.1%)

Counts
3 → 48
Calls

18 calls:

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

rewrite54.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
812×pow1_binary64
752×add-log-exp_binary64
751×log1p-expm1-u_binary64
751×expm1-log1p-u_binary64
735×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0934
119122
2265022
Stop Event
node limit
Counts
3 → 80
Calls
Call 1
Inputs
(sqrt.f64 (/.f64 (*.f64 im (neg.f64 im)) re))
(/.f64 (*.f64 im (neg.f64 im)) re)
(*.f64 1/2 (sqrt.f64 (/.f64 (*.f64 im (neg.f64 im)) re)))
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 im (sqrt.f64 (/.f64 1 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 im (pow.f64 (/.f64 1 re) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 im (/.f64 1 (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 1 (/.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 (cbrt.f64 (/.f64 im (sqrt.f64 re))) (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 (pow.f64 (*.f64 (/.f64 im re) im) 2))) (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 (pow.f64 (*.f64 (/.f64 im re) im) 2)) 1/2) (pow.f64 (cbrt.f64 (*.f64 (/.f64 im re) im)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 im (sqrt.f64 re))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 im (sqrt.f64 (neg.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 im (neg.f64 (sqrt.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (sqrt.f64 (/.f64 (/.f64 re im) im)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (sqrt.f64 re) im))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 im) (sqrt.f64 (/.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 im re) im) 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))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.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 (/.f64 im re) im) 1)))) (#(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 1 (*.f64 (/.f64 im 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 im) (/.f64 1 (neg.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (/.f64 im re) im)) (cbrt.f64 (pow.f64 (*.f64 (/.f64 im re) im) 2)))))) (#(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 (cbrt.f64 (pow.f64 (*.f64 (/.f64 im re) im) 2)) (cbrt.f64 (*.f64 (/.f64 im re) im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 im (pow.f64 im 3))) (*.f64 (pow.f64 (cbrt.f64 im) 2) (/.f64 1 re)))))) (#(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 1 re) (*.f64 im im))))) (#(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 (*.f64 im (pow.f64 im 3))) 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 (*.f64 im (pow.f64 im 3))) (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 (cbrt.f64 (*.f64 im (pow.f64 im 3))) (sqrt.f64 re)) (/.f64 (pow.f64 (cbrt.f64 im) 2) (sqrt.f64 re)))))) (#(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 pow.f64 (*.f64 (/.f64 im re) im) 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 (pow.f64 (*.f64 (/.f64 im re) im) 2) 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 (/.f64 re im) im) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 (/.f64 im re) im))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (/.f64 im re) im) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.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 (+.f64 1 (*.f64 (/.f64 im (sqrt.f64 re)) 1/2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 im 1/2) (sqrt.f64 re))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 1/2 im) (sqrt.f64 re))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 im (sqrt.f64 re)) 1/2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 im (sqrt.f64 re)) 1/2) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (/.f64 im (sqrt.f64 re)) 1/2)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (/.f64 im (sqrt.f64 re)) 1/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (*.f64 (/.f64 im re) im) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 1/2) (/.f64 im (sqrt.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (/.f64 im (sqrt.f64 re)) 1/2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (/.f64 im (sqrt.f64 re)) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (/.f64 im (sqrt.f64 re)) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (/.f64 im (sqrt.f64 re)) 1/2)))))))

simplify59.0ms (0.7%)

Algorithm
egg-herbie
Rules
983×fma-def_binary64
548×associate-*l*_binary64
500×distribute-rgt-neg-in_binary64
461×distribute-lft-neg-in_binary64
340×associate-*r*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
019596
143596
2114596
3299596
4710596
52169596
63689596
76136596
Stop Event
node limit
Counts
128 → 90
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 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 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 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 (*.f64 (sqrt.f64 -1) im)))
(*.f64 (sqrt.f64 -1) (*.f64 im (neg.f64 (sqrt.f64 (/.f64 1 re)))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (neg.f64 im)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 im)))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(neg.f64 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 (*.f64 (sqrt.f64 -1) im)))
(*.f64 (sqrt.f64 -1) (*.f64 im (neg.f64 (sqrt.f64 (/.f64 1 re)))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (neg.f64 im)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 im)))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(neg.f64 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 (*.f64 (sqrt.f64 -1) im)))
(*.f64 (sqrt.f64 -1) (*.f64 im (neg.f64 (sqrt.f64 (/.f64 1 re)))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (neg.f64 im)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 im)))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(neg.f64 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 (*.f64 (sqrt.f64 -1) im)))
(*.f64 (sqrt.f64 -1) (*.f64 im (neg.f64 (sqrt.f64 (/.f64 1 re)))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (neg.f64 im)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 im)))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(/.f64 (neg.f64 (*.f64 im im)) re)
(/.f64 (*.f64 im (neg.f64 im)) re)
(*.f64 (/.f64 im re) (neg.f64 im))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(/.f64 (neg.f64 (*.f64 im im)) re)
(/.f64 (*.f64 im (neg.f64 im)) re)
(*.f64 (/.f64 im re) (neg.f64 im))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(/.f64 (neg.f64 (*.f64 im im)) re)
(/.f64 (*.f64 im (neg.f64 im)) re)
(*.f64 (/.f64 im re) (neg.f64 im))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(/.f64 (neg.f64 (*.f64 im im)) re)
(/.f64 (*.f64 im (neg.f64 im)) re)
(*.f64 (/.f64 im re) (neg.f64 im))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(/.f64 (neg.f64 (*.f64 im im)) re)
(/.f64 (*.f64 im (neg.f64 im)) re)
(*.f64 (/.f64 im re) (neg.f64 im))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(/.f64 (neg.f64 (*.f64 im im)) re)
(/.f64 (*.f64 im (neg.f64 im)) re)
(*.f64 (/.f64 im re) (neg.f64 im))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(/.f64 (neg.f64 (*.f64 im im)) re)
(/.f64 (*.f64 im (neg.f64 im)) re)
(*.f64 (/.f64 im re) (neg.f64 im))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(/.f64 (neg.f64 (*.f64 im im)) re)
(/.f64 (*.f64 im (neg.f64 im)) re)
(*.f64 (/.f64 im re) (neg.f64 im))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(/.f64 (neg.f64 (*.f64 im im)) re)
(/.f64 (*.f64 im (neg.f64 im)) re)
(*.f64 (/.f64 im re) (neg.f64 im))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(/.f64 (neg.f64 (*.f64 im im)) re)
(/.f64 (*.f64 im (neg.f64 im)) re)
(*.f64 (/.f64 im re) (neg.f64 im))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(/.f64 (neg.f64 (*.f64 im im)) re)
(/.f64 (*.f64 im (neg.f64 im)) re)
(*.f64 (/.f64 im re) (neg.f64 im))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(/.f64 (neg.f64 (*.f64 im im)) re)
(/.f64 (*.f64 im (neg.f64 im)) re)
(*.f64 (/.f64 im re) (neg.f64 im))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(/.f64 (neg.f64 (*.f64 im im)) re)
(/.f64 (*.f64 im (neg.f64 im)) re)
(*.f64 (/.f64 im re) (neg.f64 im))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(/.f64 (neg.f64 (*.f64 im im)) re)
(/.f64 (*.f64 im (neg.f64 im)) re)
(*.f64 (/.f64 im re) (neg.f64 im))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(/.f64 (neg.f64 (*.f64 im im)) re)
(/.f64 (*.f64 im (neg.f64 im)) re)
(*.f64 (/.f64 im re) (neg.f64 im))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(/.f64 (neg.f64 (*.f64 im im)) re)
(/.f64 (*.f64 im (neg.f64 im)) re)
(*.f64 (/.f64 im re) (neg.f64 im))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(/.f64 (neg.f64 (*.f64 im im)) re)
(/.f64 (*.f64 im (neg.f64 im)) re)
(*.f64 (/.f64 im re) (neg.f64 im))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(/.f64 (neg.f64 (*.f64 im im)) re)
(/.f64 (*.f64 im (neg.f64 im)) re)
(*.f64 (/.f64 im re) (neg.f64 im))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(/.f64 (neg.f64 (*.f64 im im)) re)
(/.f64 (*.f64 im (neg.f64 im)) re)
(*.f64 (/.f64 im re) (neg.f64 im))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(/.f64 (neg.f64 (*.f64 im im)) re)
(/.f64 (*.f64 im (neg.f64 im)) re)
(*.f64 (/.f64 im re) (neg.f64 im))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(/.f64 (neg.f64 (*.f64 im im)) re)
(/.f64 (*.f64 im (neg.f64 im)) re)
(*.f64 (/.f64 im re) (neg.f64 im))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(/.f64 (neg.f64 (*.f64 im im)) re)
(/.f64 (*.f64 im (neg.f64 im)) re)
(*.f64 (/.f64 im re) (neg.f64 im))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(/.f64 (neg.f64 (*.f64 im im)) re)
(/.f64 (*.f64 im (neg.f64 im)) re)
(*.f64 (/.f64 im re) (neg.f64 im))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(/.f64 (neg.f64 (*.f64 im im)) re)
(/.f64 (*.f64 im (neg.f64 im)) re)
(*.f64 (/.f64 im re) (neg.f64 im))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1) im) 1/2))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im 1/2)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (*.f64 im 1/2)))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) 1/2)))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1) im) 1/2))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im 1/2)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (*.f64 im 1/2)))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) 1/2)))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1) im) 1/2))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im 1/2)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (*.f64 im 1/2)))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) 1/2)))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1) im) 1/2))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im 1/2)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (*.f64 im 1/2)))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) 1/2)))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1) im) 1/2))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im 1/2)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (*.f64 im 1/2)))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) 1/2)))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1) im) 1/2))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im 1/2)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (*.f64 im 1/2)))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) 1/2)))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1) im) 1/2))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im 1/2)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (*.f64 im 1/2)))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) 1/2)))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1) im) 1/2))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im 1/2)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (*.f64 im 1/2)))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) 1/2)))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (*.f64 (sqrt.f64 (/.f64 1 re)) -1/2))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (*.f64 im -1/2)))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) -1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im -1/2)))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (*.f64 (sqrt.f64 (/.f64 1 re)) -1/2))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (*.f64 im -1/2)))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) -1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im -1/2)))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (*.f64 (sqrt.f64 (/.f64 1 re)) -1/2))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (*.f64 im -1/2)))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) -1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im -1/2)))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (*.f64 (sqrt.f64 (/.f64 1 re)) -1/2))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (*.f64 im -1/2)))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) -1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im -1/2)))

localize13.0ms (0.1%)

Local error

Found 4 expressions with local error:

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

Compiled 31 to 16 computations (48.4% saved)

series7.0ms (0.1%)

Counts
2 → 16
Calls

12 calls:

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

rewrite48.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
838×pow1_binary64
780×add-log-exp_binary64
779×log1p-expm1-u_binary64
779×expm1-log1p-u_binary64
762×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify75.0ms (0.9%)

Algorithm
egg-herbie
Rules
854×associate-/r*_binary64
712×associate-/r/_binary64
440×fma-def_binary64
338×unswap-sqr_binary64
325×distribute-lft-out_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
098626
1277626
2841594
33346570
46372570
57505570
Stop Event
node limit
Counts
52 → 65
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)))))
(*.f64 (sqrt.f64 -1) (sqrt.f64 im))
(+.f64 (*.f64 1/2 (*.f64 (/.f64 re (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 -1) (sqrt.f64 im)))
(+.f64 (*.f64 1/2 (*.f64 (/.f64 re (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 -1/8 (*.f64 (/.f64 (pow.f64 re 2) (pow.f64 (sqrt.f64 -1) 3)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (*.f64 (sqrt.f64 -1) (sqrt.f64 im))))
(+.f64 (*.f64 1/2 (*.f64 (/.f64 re (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 -1/8 (*.f64 (/.f64 (pow.f64 re 2) (pow.f64 (sqrt.f64 -1) 3)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (*.f64 1/16 (*.f64 (/.f64 (pow.f64 re 3) (pow.f64 (sqrt.f64 -1) 5)) (sqrt.f64 (/.f64 1 (pow.f64 im 5))))) (*.f64 (sqrt.f64 -1) (sqrt.f64 im)))))
(sqrt.f64 re)
(+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im)) (sqrt.f64 re))
(+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im)) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2))) (sqrt.f64 re)))
(+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im)) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2))) (+.f64 (*.f64 -1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (pow.f64 im 3))) (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 (sqrt.f64 im) (sqrt.f64 2)) (sqrt.f64 -1))
(*.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 (*.f64 (sqrt.f64 2) re) (sqrt.f64 -1)) (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) re) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))))
(fma.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1) (sqrt.f64 im)) (*.f64 1/2 (*.f64 (*.f64 re (/.f64 (sqrt.f64 2) (sqrt.f64 -1))) (sqrt.f64 (/.f64 1 im)))))
(fma.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1) (sqrt.f64 im)) (/.f64 1/2 (/.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 2) (*.f64 re (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 -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 (*.f64 (sqrt.f64 2) re) (sqrt.f64 -1)) (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) re) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im))) (fma.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1) (sqrt.f64 im)) (*.f64 -1/8 (*.f64 (*.f64 (/.f64 (*.f64 re re) (sqrt.f64 -1)) (/.f64 (sqrt.f64 2) -1)) (sqrt.f64 (/.f64 1 (pow.f64 im 3)))))))
(fma.f64 1/2 (*.f64 (*.f64 re (/.f64 (sqrt.f64 2) (sqrt.f64 -1))) (sqrt.f64 (/.f64 1 im))) (fma.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 3))) (*.f64 1/8 (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 -1) (*.f64 re re)))) (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1) (sqrt.f64 im)))))
(fma.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1) (sqrt.f64 im)) (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -1)) (+.f64 (*.f64 (*.f64 (/.f64 re -1) re) (*.f64 -1/8 (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (*.f64 1/2 (*.f64 re (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 1/2 (*.f64 re (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 (*.f64 (sqrt.f64 2) re) (sqrt.f64 -1)) (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) re) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im))) (fma.f64 1/16 (/.f64 (*.f64 (pow.f64 re 3) (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 im 5))))) (pow.f64 (sqrt.f64 -1) 5)) (fma.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1) (sqrt.f64 im)) (*.f64 -1/8 (*.f64 (*.f64 (/.f64 (*.f64 re re) (sqrt.f64 -1)) (/.f64 (sqrt.f64 2) -1)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))))))
(fma.f64 1/2 (*.f64 (*.f64 re (/.f64 (sqrt.f64 2) (sqrt.f64 -1))) (sqrt.f64 (/.f64 1 im))) (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 1/16 (*.f64 (*.f64 (pow.f64 re 3) (/.f64 (sqrt.f64 2) (pow.f64 (sqrt.f64 -1) 5))) (sqrt.f64 (/.f64 1 (pow.f64 im 5))))))))
(fma.f64 1/16 (*.f64 (*.f64 (pow.f64 re 3) (/.f64 (sqrt.f64 2) (pow.f64 (sqrt.f64 -1) 5))) (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 (*.f64 (/.f64 re -1) re) (*.f64 -1/8 (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (*.f64 1/2 (*.f64 re (sqrt.f64 (/.f64 1 im))))))))
(fma.f64 1/16 (*.f64 (*.f64 (pow.f64 re 3) (/.f64 (sqrt.f64 2) (pow.f64 (sqrt.f64 -1) 5))) (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 1/2 (*.f64 re (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 -1/2 (*.f64 im (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 re)))) (*.f64 (sqrt.f64 2) (sqrt.f64 re)))
(*.f64 (sqrt.f64 2) (fma.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im -1/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))))
(fma.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re))) (fma.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 im im)) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (*.f64 (sqrt.f64 2) (sqrt.f64 re))))
(fma.f64 -1/2 (*.f64 im (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 re)))) (fma.f64 (sqrt.f64 2) (sqrt.f64 re) (*.f64 -1/8 (*.f64 (*.f64 im im) (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))))))
(fma.f64 (sqrt.f64 2) (sqrt.f64 re) (*.f64 (sqrt.f64 2) (*.f64 im (+.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 re))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 -1/8 im))))))
(*.f64 (sqrt.f64 2) (fma.f64 -1/8 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (fma.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im -1/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)))))
(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 (*.f64 (sqrt.f64 2) (*.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 im (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 re)))) (fma.f64 (sqrt.f64 2) (sqrt.f64 re) (*.f64 -1/8 (*.f64 (*.f64 im im) (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))))))))
(+.f64 (*.f64 (sqrt.f64 2) (*.f64 im (+.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 re))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 -1/8 im))))) (*.f64 (sqrt.f64 2) (fma.f64 (pow.f64 im 3) (*.f64 -1/16 (sqrt.f64 (/.f64 1 (pow.f64 re 5)))) (sqrt.f64 re))))
(*.f64 (sqrt.f64 2) (fma.f64 im (*.f64 -1/2 (sqrt.f64 (/.f64 1 re))) (fma.f64 -1/8 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (fma.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (*.f64 (pow.f64 im 3) -1/16) (sqrt.f64 re)))))
(*.f64 (sqrt.f64 -1) (sqrt.f64 im))
(+.f64 (*.f64 1/2 (*.f64 (/.f64 re (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 -1) (sqrt.f64 im)))
(fma.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (/.f64 re (sqrt.f64 -1))) (*.f64 (sqrt.f64 -1) (sqrt.f64 im)))
(fma.f64 (sqrt.f64 -1) (sqrt.f64 im) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (/.f64 re (sqrt.f64 -1)))))
(fma.f64 (sqrt.f64 -1) (sqrt.f64 im) (*.f64 (sqrt.f64 (/.f64 1 im)) (/.f64 (*.f64 1/2 re) (sqrt.f64 -1))))
(+.f64 (*.f64 1/2 (*.f64 (/.f64 re (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 -1/8 (*.f64 (/.f64 (pow.f64 re 2) (pow.f64 (sqrt.f64 -1) 3)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (*.f64 (sqrt.f64 -1) (sqrt.f64 im))))
(fma.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (/.f64 re (sqrt.f64 -1))) (fma.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 3))) (/.f64 (*.f64 re re) (pow.f64 (sqrt.f64 -1) 3))) (*.f64 (sqrt.f64 -1) (sqrt.f64 im))))
(fma.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (/.f64 re (sqrt.f64 -1))) (fma.f64 (sqrt.f64 -1) (sqrt.f64 im) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 3))) (*.f64 (/.f64 re (sqrt.f64 -1)) (/.f64 re -1))))))
(fma.f64 (sqrt.f64 -1) (sqrt.f64 im) (fma.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (/.f64 re (sqrt.f64 -1))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 3))) (*.f64 1/8 (/.f64 (*.f64 re re) (sqrt.f64 -1))))))
(fma.f64 (sqrt.f64 -1) (sqrt.f64 im) (*.f64 (/.f64 re (sqrt.f64 -1)) (+.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) (*.f64 (/.f64 re -1) (*.f64 -1/8 (sqrt.f64 (/.f64 1 (pow.f64 im 3))))))))
(fma.f64 (sqrt.f64 -1) (sqrt.f64 im) (*.f64 (/.f64 re (sqrt.f64 -1)) (+.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) (*.f64 (*.f64 -1/8 (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) (/.f64 re -1)))))
(+.f64 (*.f64 1/2 (*.f64 (/.f64 re (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 -1/8 (*.f64 (/.f64 (pow.f64 re 2) (pow.f64 (sqrt.f64 -1) 3)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (*.f64 1/16 (*.f64 (/.f64 (pow.f64 re 3) (pow.f64 (sqrt.f64 -1) 5)) (sqrt.f64 (/.f64 1 (pow.f64 im 5))))) (*.f64 (sqrt.f64 -1) (sqrt.f64 im)))))
(fma.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (/.f64 re (sqrt.f64 -1))) (fma.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 3))) (/.f64 (*.f64 re re) (pow.f64 (sqrt.f64 -1) 3))) (fma.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 5))) (/.f64 (pow.f64 re 3) (pow.f64 (sqrt.f64 -1) 5))) (*.f64 (sqrt.f64 -1) (sqrt.f64 im)))))
(fma.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (/.f64 re (sqrt.f64 -1))) (fma.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 3))) (*.f64 (/.f64 re (sqrt.f64 -1)) (/.f64 re -1))) (fma.f64 (/.f64 (*.f64 1/16 (pow.f64 re 3)) (pow.f64 (sqrt.f64 -1) 5)) (sqrt.f64 (/.f64 1 (pow.f64 im 5))) (*.f64 (sqrt.f64 -1) (sqrt.f64 im)))))
(fma.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (/.f64 re (sqrt.f64 -1))) (fma.f64 (sqrt.f64 -1) (sqrt.f64 im) (fma.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 3))) (*.f64 1/8 (/.f64 (*.f64 re re) (sqrt.f64 -1))) (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 5))) (/.f64 (pow.f64 re 3) (pow.f64 (sqrt.f64 -1) 5)))))))
(+.f64 (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 5))) (/.f64 (pow.f64 re 3) (pow.f64 (sqrt.f64 -1) 5)))) (fma.f64 (sqrt.f64 -1) (sqrt.f64 im) (*.f64 (/.f64 re (sqrt.f64 -1)) (+.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) (*.f64 (/.f64 re -1) (*.f64 -1/8 (sqrt.f64 (/.f64 1 (pow.f64 im 3)))))))))
(+.f64 (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 5))) (/.f64 (pow.f64 re 3) (pow.f64 (sqrt.f64 -1) 5)))) (fma.f64 (sqrt.f64 -1) (sqrt.f64 im) (*.f64 (/.f64 re (sqrt.f64 -1)) (+.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) (*.f64 (*.f64 -1/8 (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) (/.f64 re -1))))))
(sqrt.f64 re)
(+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im)) (sqrt.f64 re))
(fma.f64 -1/2 (*.f64 im (sqrt.f64 (/.f64 1 re))) (sqrt.f64 re))
(fma.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im -1/2) (sqrt.f64 re))
(+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im)) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2))) (sqrt.f64 re)))
(fma.f64 -1/2 (*.f64 im (sqrt.f64 (/.f64 1 re))) (fma.f64 -1/8 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (sqrt.f64 re)))
(fma.f64 -1/2 (*.f64 im (sqrt.f64 (/.f64 1 re))) (fma.f64 -1/8 (*.f64 im (*.f64 im (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) (sqrt.f64 re)))
(fma.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 -1/8 im)) im (fma.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im -1/2) (sqrt.f64 re)))
(fma.f64 -1/8 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (fma.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im -1/2) (sqrt.f64 re)))
(+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im)) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2))) (+.f64 (*.f64 -1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (pow.f64 im 3))) (sqrt.f64 re))))
(fma.f64 -1/2 (*.f64 im (sqrt.f64 (/.f64 1 re))) (fma.f64 -1/8 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (fma.f64 -1/16 (*.f64 (pow.f64 im 3) (sqrt.f64 (/.f64 1 (pow.f64 re 5)))) (sqrt.f64 re))))
(fma.f64 -1/2 (*.f64 im (sqrt.f64 (/.f64 1 re))) (fma.f64 -1/8 (*.f64 im (*.f64 im (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) (fma.f64 (*.f64 -1/16 (sqrt.f64 (/.f64 1 (pow.f64 re 5)))) (pow.f64 im 3) (sqrt.f64 re))))
(fma.f64 im (*.f64 -1/2 (sqrt.f64 (/.f64 1 re))) (fma.f64 -1/8 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (fma.f64 (pow.f64 im 3) (*.f64 -1/16 (sqrt.f64 (/.f64 1 (pow.f64 re 5)))) (sqrt.f64 re))))
(fma.f64 im (*.f64 -1/2 (sqrt.f64 (/.f64 1 re))) (fma.f64 -1/8 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (fma.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (*.f64 (pow.f64 im 3) -1/16) (sqrt.f64 re))))

localize15.0ms (0.2%)

Local error

Found 6 expressions with local error:

NewErrorProgram
0.3b
(pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 im im))) 3)
0.3b
(cbrt.f64 (sqrt.f64 (+.f64 im im)))
0.2b
(sqrt.f64 (+.f64 im im))
0.2b
(sqrt.f64 (+.f64 im im))
0.3b
(cbrt.f64 (sqrt.f64 (+.f64 im im)))
0.3b
(pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 im im))) 3)
Compiler

Compiled 33 to 13 computations (60.6% saved)

series45.0ms (0.5%)

Counts
3 → 24
Calls

9 calls:

TimeVariablePointExpression
32.0ms
im
@0
(pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 im im))) 3)
8.0ms
im
@inf
(pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 im im))) 3)
3.0ms
im
@-inf
(pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 im im))) 3)
0.0ms
im
@0
(sqrt.f64 (+.f64 im im))
0.0ms
im
@inf
(sqrt.f64 (+.f64 im im))

rewrite54.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
433×pow1_binary64
429×add-sqr-sqrt_binary64
417×add-log-exp_binary64
416×log1p-expm1-u_binary64
416×expm1-log1p-u_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify134.0ms (1.5%)

Algorithm
egg-herbie
Rules
1984×unswap-sqr_binary64
953×sqr-pow_binary64
348×pow-sqr_binary64
324×*-commutative_binary64
281×cube-prod_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
027292
166256
2142256
3308256
41035256
51997256
62086256
72234256
82417256
92600256
102830256
113124256
123457256
133854256
144293256
154757256
164897256
175017256
185089256
195173256
205197256
Stop Event
node limit
Counts
198 → 69
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 2) (*.f64 (pow.f64 1 1/6) (sqrt.f64 im)))
(*.f64 (sqrt.f64 2) (*.f64 (pow.f64 1 1/6) (sqrt.f64 im)))
(*.f64 (sqrt.f64 2) (*.f64 (pow.f64 1 1/6) (sqrt.f64 im)))
(*.f64 (sqrt.f64 2) (*.f64 (pow.f64 1 1/6) (sqrt.f64 im)))
(*.f64 (sqrt.f64 2) (*.f64 (pow.f64 1 1/6) (sqrt.f64 im)))
(*.f64 (sqrt.f64 2) (*.f64 (pow.f64 1 1/6) (sqrt.f64 im)))
(*.f64 (sqrt.f64 2) (*.f64 (pow.f64 1 1/6) (sqrt.f64 im)))
(*.f64 (sqrt.f64 2) (*.f64 (pow.f64 1 1/6) (sqrt.f64 im)))
(*.f64 (*.f64 (sqrt.f64 -1) (sqrt.f64 -2)) (*.f64 (pow.f64 1 1/6) (sqrt.f64 im)))
(*.f64 (*.f64 (sqrt.f64 -1) (sqrt.f64 -2)) (*.f64 (pow.f64 1 1/6) (sqrt.f64 im)))
(*.f64 (*.f64 (sqrt.f64 -1) (sqrt.f64 -2)) (*.f64 (pow.f64 1 1/6) (sqrt.f64 im)))
(*.f64 (*.f64 (sqrt.f64 -1) (sqrt.f64 -2)) (*.f64 (pow.f64 1 1/6) (sqrt.f64 im)))
(*.f64 (pow.f64 (sqrt.f64 2) 1/3) (*.f64 (sqrt.f64 1) (pow.f64 im 1/6)))
(*.f64 (pow.f64 (sqrt.f64 2) 1/3) (*.f64 (sqrt.f64 1) (pow.f64 im 1/6)))
(*.f64 (pow.f64 (sqrt.f64 2) 1/3) (*.f64 (sqrt.f64 1) (pow.f64 im 1/6)))
(*.f64 (pow.f64 (sqrt.f64 2) 1/3) (*.f64 (sqrt.f64 1) (pow.f64 im 1/6)))
(*.f64 (pow.f64 (sqrt.f64 2) 1/3) (*.f64 (sqrt.f64 1) (pow.f64 im 1/6)))
(*.f64 (pow.f64 (sqrt.f64 2) 1/3) (*.f64 (sqrt.f64 1) (pow.f64 im 1/6)))
(*.f64 (pow.f64 (sqrt.f64 2) 1/3) (*.f64 (sqrt.f64 1) (pow.f64 im 1/6)))
(*.f64 (pow.f64 (sqrt.f64 2) 1/3) (*.f64 (sqrt.f64 1) (pow.f64 im 1/6)))
(*.f64 (pow.f64 (*.f64 -1 im) 1/6) (pow.f64 (*.f64 1 (sqrt.f64 -2)) 1/3))
(*.f64 (pow.f64 (*.f64 -1 im) 1/6) (pow.f64 (*.f64 1 (sqrt.f64 -2)) 1/3))
(*.f64 (pow.f64 (*.f64 -1 im) 1/6) (pow.f64 (*.f64 1 (sqrt.f64 -2)) 1/3))
(*.f64 (pow.f64 (*.f64 -1 im) 1/6) (pow.f64 (*.f64 1 (sqrt.f64 -2)) 1/3))
Outputs
(*.f64 (sqrt.f64 2) (*.f64 (pow.f64 1 1/6) (sqrt.f64 im)))
(*.f64 (sqrt.f64 2) (*.f64 1 (sqrt.f64 im)))
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(*.f64 (sqrt.f64 2) (*.f64 (pow.f64 1 1/6) (sqrt.f64 im)))
(*.f64 (sqrt.f64 2) (*.f64 1 (sqrt.f64 im)))
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(*.f64 (sqrt.f64 2) (*.f64 (pow.f64 1 1/6) (sqrt.f64 im)))
(*.f64 (sqrt.f64 2) (*.f64 1 (sqrt.f64 im)))
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(*.f64 (sqrt.f64 2) (*.f64 (pow.f64 1 1/6) (sqrt.f64 im)))
(*.f64 (sqrt.f64 2) (*.f64 1 (sqrt.f64 im)))
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(*.f64 (sqrt.f64 2) (*.f64 (pow.f64 1 1/6) (sqrt.f64 im)))
(*.f64 (sqrt.f64 2) (*.f64 1 (sqrt.f64 im)))
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(*.f64 (sqrt.f64 2) (*.f64 (pow.f64 1 1/6) (sqrt.f64 im)))
(*.f64 (sqrt.f64 2) (*.f64 1 (sqrt.f64 im)))
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(*.f64 (sqrt.f64 2) (*.f64 (pow.f64 1 1/6) (sqrt.f64 im)))
(*.f64 (sqrt.f64 2) (*.f64 1 (sqrt.f64 im)))
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(*.f64 (sqrt.f64 2) (*.f64 (pow.f64 1 1/6) (sqrt.f64 im)))
(*.f64 (sqrt.f64 2) (*.f64 1 (sqrt.f64 im)))
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(*.f64 (*.f64 (sqrt.f64 -1) (sqrt.f64 -2)) (*.f64 (pow.f64 1 1/6) (sqrt.f64 im)))
(*.f64 (*.f64 1 (sqrt.f64 im)) (*.f64 (sqrt.f64 -1) (sqrt.f64 -2)))
(*.f64 (sqrt.f64 im) (*.f64 (sqrt.f64 -1) (sqrt.f64 -2)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 im) (sqrt.f64 -2)))
(*.f64 (*.f64 (sqrt.f64 -1) (sqrt.f64 -2)) (*.f64 (pow.f64 1 1/6) (sqrt.f64 im)))
(*.f64 (*.f64 1 (sqrt.f64 im)) (*.f64 (sqrt.f64 -1) (sqrt.f64 -2)))
(*.f64 (sqrt.f64 im) (*.f64 (sqrt.f64 -1) (sqrt.f64 -2)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 im) (sqrt.f64 -2)))
(*.f64 (*.f64 (sqrt.f64 -1) (sqrt.f64 -2)) (*.f64 (pow.f64 1 1/6) (sqrt.f64 im)))
(*.f64 (*.f64 1 (sqrt.f64 im)) (*.f64 (sqrt.f64 -1) (sqrt.f64 -2)))
(*.f64 (sqrt.f64 im) (*.f64 (sqrt.f64 -1) (sqrt.f64 -2)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 im) (sqrt.f64 -2)))
(*.f64 (*.f64 (sqrt.f64 -1) (sqrt.f64 -2)) (*.f64 (pow.f64 1 1/6) (sqrt.f64 im)))
(*.f64 (*.f64 1 (sqrt.f64 im)) (*.f64 (sqrt.f64 -1) (sqrt.f64 -2)))
(*.f64 (sqrt.f64 im) (*.f64 (sqrt.f64 -1) (sqrt.f64 -2)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 im) (sqrt.f64 -2)))
(*.f64 (pow.f64 (sqrt.f64 2) 1/3) (*.f64 (sqrt.f64 1) (pow.f64 im 1/6)))
(*.f64 (cbrt.f64 (sqrt.f64 2)) (pow.f64 im 1/6))
(*.f64 (pow.f64 (sqrt.f64 2) 1/3) (*.f64 (sqrt.f64 1) (pow.f64 im 1/6)))
(*.f64 (cbrt.f64 (sqrt.f64 2)) (pow.f64 im 1/6))
(*.f64 (pow.f64 (sqrt.f64 2) 1/3) (*.f64 (sqrt.f64 1) (pow.f64 im 1/6)))
(*.f64 (cbrt.f64 (sqrt.f64 2)) (pow.f64 im 1/6))
(*.f64 (pow.f64 (sqrt.f64 2) 1/3) (*.f64 (sqrt.f64 1) (pow.f64 im 1/6)))
(*.f64 (cbrt.f64 (sqrt.f64 2)) (pow.f64 im 1/6))
(*.f64 (pow.f64 (sqrt.f64 2) 1/3) (*.f64 (sqrt.f64 1) (pow.f64 im 1/6)))
(*.f64 (cbrt.f64 (sqrt.f64 2)) (pow.f64 im 1/6))
(*.f64 (pow.f64 (sqrt.f64 2) 1/3) (*.f64 (sqrt.f64 1) (pow.f64 im 1/6)))
(*.f64 (cbrt.f64 (sqrt.f64 2)) (pow.f64 im 1/6))
(*.f64 (pow.f64 (sqrt.f64 2) 1/3) (*.f64 (sqrt.f64 1) (pow.f64 im 1/6)))
(*.f64 (cbrt.f64 (sqrt.f64 2)) (pow.f64 im 1/6))
(*.f64 (pow.f64 (sqrt.f64 2) 1/3) (*.f64 (sqrt.f64 1) (pow.f64 im 1/6)))
(*.f64 (cbrt.f64 (sqrt.f64 2)) (pow.f64 im 1/6))
(*.f64 (pow.f64 (*.f64 -1 im) 1/6) (pow.f64 (*.f64 1 (sqrt.f64 -2)) 1/3))
(*.f64 (pow.f64 (neg.f64 im) 1/6) (cbrt.f64 (sqrt.f64 -2)))
(*.f64 (pow.f64 (*.f64 -1 im) 1/6) (pow.f64 (*.f64 1 (sqrt.f64 -2)) 1/3))
(*.f64 (pow.f64 (neg.f64 im) 1/6) (cbrt.f64 (sqrt.f64 -2)))
(*.f64 (pow.f64 (*.f64 -1 im) 1/6) (pow.f64 (*.f64 1 (sqrt.f64 -2)) 1/3))
(*.f64 (pow.f64 (neg.f64 im) 1/6) (cbrt.f64 (sqrt.f64 -2)))
(*.f64 (pow.f64 (*.f64 -1 im) 1/6) (pow.f64 (*.f64 1 (sqrt.f64 -2)) 1/3))
(*.f64 (pow.f64 (neg.f64 im) 1/6) (cbrt.f64 (sqrt.f64 -2)))

eval310.0ms (3.6%)

Compiler

Compiled 13892 to 10431 computations (24.9% saved)

prune91.0ms (1%)

Pruning

29 alts after pruning (23 fresh and 6 done)

PrunedKeptTotal
New46016476
Fresh7714
Picked101
Done369
Total47129500
Error
1.3b
Counts
500 → 29
Alt Table
Click to see full alt table
StatusErrorProgram
16.6b
(*.f64 1/2 (pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/6) 3))
12.2b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))
60.2b
(*.f64 1/2 (sqrt.f64 (exp.f64 (fma.f64 2 (log.f64 im) (fma.f64 -1/4 (*.f64 (/.f64 im re) (/.f64 im re)) (log.f64 (/.f64 -1 re)))))))
55.0b
(*.f64 1/2 (sqrt.f64 (exp.f64 (log.f64 (*.f64 (*.f64 (*.f64 (/.f64 im re) im) -1/2) 2)))))
56.2b
(*.f64 1/2 (sqrt.f64 (/.f64 (*.f64 im (neg.f64 im)) re)))
14.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (pow.f64 (cbrt.f64 re) 2) (cbrt.f64 re) (hypot.f64 re im)))))
55.7b
(*.f64 1/2 (*.f64 (pow.f64 (*.f64 (pow.f64 (*.f64 (*.f64 1/2 im) im) 1/6) (pow.f64 (/.f64 -1 re) 1/6)) 3) (sqrt.f64 2)))
61.3b
(*.f64 1/2 (cbrt.f64 (+.f64 im im)))
55.7b
(*.f64 1/2 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) 3) (sqrt.f64 2)))
46.3b
(*.f64 1/2 (sqrt.f64 (*.f64 re 4)))
62.2b
(*.f64 1/2 (/.f64 1 (+.f64 im im)))
56.2b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (/.f64 1 (/.f64 re (*.f64 im im))) -1/2))))
46.0b
(*.f64 1/2 (*.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 re im))) 3) (sqrt.f64 2)))
59.8b
(*.f64 1/2 (fabs.f64 (+.f64 im im)))
44.6b
(*.f64 1/2 (sqrt.f64 (*.f64 im -2)))
42.4b
(*.f64 1/2 (sqrt.f64 (*.f64 (-.f64 re im) 2)))
42.5b
(*.f64 1/2 (*.f64 (sqrt.f64 (-.f64 re im)) (sqrt.f64 2)))
55.1b
(*.f64 1/2 (/.f64 im (sqrt.f64 (neg.f64 re))))
44.9b
(*.f64 1/2 (*.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (neg.f64 im))) 3) (sqrt.f64 2)))
54.6b
(*.f64 1/2 (sqrt.f64 (neg.f64 (*.f64 (/.f64 im re) im))))
60.2b
(*.f64 1/2 (*.f64 4 (*.f64 im im)))
48.5b
(*.f64 1/2 (*.f64 (sqrt.f64 im) (sqrt.f64 2)))
60.2b
(*.f64 1/2 (*.f64 2 (*.f64 im (+.f64 im im))))
16.4b
(*.f64 1/2 (*.f64 (pow.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 1/6) 3) (sqrt.f64 2)))
16.3b
(*.f64 1/2 (sqrt.f64 (pow.f64 (exp.f64 1) (log.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))
54.6b
(*.f64 1/2 (*.f64 (sqrt.f64 (*.f64 (*.f64 (/.f64 im re) im) -1/2)) (sqrt.f64 2)))
45.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
61.5b
(*.f64 1/2 (*.f64 im 2))
48.6b
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
Compiler

Compiled 670 to 540 computations (19.4% saved)

localize28.0ms (0.3%)

Local error

Found 8 expressions with local error:

NewErrorProgram
0.5b
(cbrt.f64 re)
0.5b
(pow.f64 (cbrt.f64 re) 2)
0.2b
(sqrt.f64 (*.f64 2 (fma.f64 (pow.f64 (cbrt.f64 re) 2) (cbrt.f64 re) (hypot.f64 re im))))
0.0b
(*.f64 2 (fma.f64 (pow.f64 (cbrt.f64 re) 2) (cbrt.f64 re) (hypot.f64 re im)))
0.2b
(sqrt.f64 (*.f64 2 (fma.f64 (pow.f64 (cbrt.f64 re) 2) (cbrt.f64 re) (hypot.f64 re im))))
0.5b
(pow.f64 (cbrt.f64 re) 2)
0.5b
(cbrt.f64 re)
13.2b
(fma.f64 (pow.f64 (cbrt.f64 re) 2) (cbrt.f64 re) (hypot.f64 re im))
Compiler

Compiled 65 to 30 computations (53.8% saved)

series13.0ms (0.1%)

Counts
4 → 26
Calls

18 calls:

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

rewrite59.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
836×pow1_binary64
771×add-log-exp_binary64
771×log1p-expm1-u_binary64
771×expm1-log1p-u_binary64
751×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify55.0ms (0.6%)

Algorithm
egg-herbie
Rules
683×distribute-rgt-in_binary64
622×associate-*r*_binary64
598×associate-*l*_binary64
505×fma-def_binary64
271×times-frac_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0118685
1364627
21170592
35810573
Stop Event
node limit
Counts
104 → 125
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))
re
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) re)
(*.f64 -1 re)
(+.f64 (*.f64 -1 re) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 (pow.f64 1 1/3) re) re)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 (pow.f64 1 1/3) re) re))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 (pow.f64 1 1/3) 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 (pow.f64 1 1/3) 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 (pow.f64 1 1/3) re) im)
(+.f64 (*.f64 (pow.f64 1 1/3) re) (+.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 (pow.f64 1 1/3) re) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im)))
(*.f64 -1 im)
(+.f64 (*.f64 (pow.f64 1 1/3) re) (*.f64 -1 im))
(+.f64 (*.f64 (pow.f64 1 1/3) 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 (*.f64 (pow.f64 1 1/3) re) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.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 (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 (sqrt.f64 2) (sqrt.f64 (+.f64 (*.f64 (pow.f64 1 1/3) re) re)))
(+.f64 (*.f64 1/4 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 2)) re) (sqrt.f64 (/.f64 1 (+.f64 (*.f64 (pow.f64 1 1/3) re) re))))) (*.f64 (sqrt.f64 2) (sqrt.f64 (+.f64 (*.f64 (pow.f64 1 1/3) re) re))))
(+.f64 (*.f64 1/4 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 2)) re) (sqrt.f64 (/.f64 1 (+.f64 (*.f64 (pow.f64 1 1/3) re) re))))) (+.f64 (*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (+.f64 (pow.f64 (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (+.f64 (*.f64 (pow.f64 1 1/3) re) re))) (/.f64 1 re))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))) (pow.f64 im 4))) (sqrt.f64 (/.f64 1 (+.f64 (*.f64 (pow.f64 1 1/3) re) re))))) (*.f64 (sqrt.f64 2) (sqrt.f64 (+.f64 (*.f64 (pow.f64 1 1/3) re) re)))))
(+.f64 (*.f64 1/4 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 2)) re) (sqrt.f64 (/.f64 1 (+.f64 (*.f64 (pow.f64 1 1/3) re) 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 (*.f64 1/8 (/.f64 1 (pow.f64 re 3))) (pow.f64 (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (+.f64 (*.f64 (pow.f64 1 1/3) re) re))) (/.f64 1 re))) 2)) (*.f64 (+.f64 (*.f64 (pow.f64 1 1/3) re) re) re)))) (pow.f64 im 6))) (sqrt.f64 (/.f64 1 (+.f64 (*.f64 (pow.f64 1 1/3) re) re))))) (+.f64 (*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (+.f64 (pow.f64 (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (+.f64 (*.f64 (pow.f64 1 1/3) re) re))) (/.f64 1 re))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))) (pow.f64 im 4))) (sqrt.f64 (/.f64 1 (+.f64 (*.f64 (pow.f64 1 1/3) re) re))))) (*.f64 (sqrt.f64 2) (sqrt.f64 (+.f64 (*.f64 (pow.f64 1 1/3) re) re))))))
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))
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)
(fma.f64 1/2 (*.f64 im (/.f64 im re)) 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 -1/2 (/.f64 re (*.f64 im im))) re)
(-.f64 (*.f64 (/.f64 -1/2 re) (*.f64 im im)) re)
(fma.f64 (*.f64 im im) (/.f64 -1/2 re) (neg.f64 re))
(+.f64 (*.f64 (pow.f64 1 1/3) re) re)
(*.f64 2 re)
(+.f64 re re)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 (pow.f64 1 1/3) re) re))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (*.f64 2 re))
(fma.f64 2 re (/.f64 1/2 (/.f64 re (*.f64 im im))))
(fma.f64 re 2 (/.f64 1/2 (/.f64 re (*.f64 im im))))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 (pow.f64 1 1/3) re) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (+.f64 (*.f64 2 re) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(+.f64 (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) re) (fma.f64 1/2 (/.f64 (*.f64 im im) re) re))
(+.f64 (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) re) (fma.f64 1/2 (*.f64 (/.f64 im re) im) re))
(+.f64 (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) re) (fma.f64 1/2 (*.f64 im (/.f64 im re)) re))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 (pow.f64 1 1/3) 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 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)))))))
(+.f64 (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 im) re) re))
(+.f64 (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)) re)))
(+.f64 (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) re) (fma.f64 1/2 (*.f64 im (/.f64 im re)) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) re)))
im
(+.f64 (*.f64 (pow.f64 1 1/3) re) im)
(fma.f64 1 re im)
(+.f64 im re)
(+.f64 (*.f64 (pow.f64 1 1/3) re) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im))
(fma.f64 1 re (fma.f64 1/2 (/.f64 (*.f64 re re) im) im))
(+.f64 re (fma.f64 1/2 (/.f64 re (/.f64 im re)) im))
(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 (pow.f64 1 1/3) re) (+.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 re (fma.f64 1/2 (/.f64 (*.f64 re re) im) im)))
(+.f64 (fma.f64 1/2 (/.f64 re (/.f64 im re)) im) (fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) 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 (*.f64 (pow.f64 1 1/3) re) (*.f64 -1 im))
(fma.f64 1 re (neg.f64 im))
(-.f64 re im)
(+.f64 (*.f64 (pow.f64 1 1/3) re) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(fma.f64 1 re (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im)))
(+.f64 re (fma.f64 (/.f64 re (/.f64 im re)) -1/2 (neg.f64 im)))
(fma.f64 (*.f64 (/.f64 re im) re) -1/2 (-.f64 re im))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 (pow.f64 1 1/3) 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)) (fma.f64 1 re (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))))
(+.f64 (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 re))
(fma.f64 (pow.f64 re 4) (/.f64 1/8 (pow.f64 im 3)) (fma.f64 (*.f64 (/.f64 re im) re) -1/2 (-.f64 re 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 (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 (sqrt.f64 2) (sqrt.f64 im) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 3))) (*.f64 1/4 (*.f64 (*.f64 re re) (sqrt.f64 2)))))
(*.f64 (sqrt.f64 2) (+.f64 (*.f64 (*.f64 re re) (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (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))))
(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 (pow.f64 re 4) (sqrt.f64 2))) (+.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 -1/2 (*.f64 (pow.f64 re 4) (*.f64 (fma.f64 1/16 (/.f64 1 (pow.f64 im 3)) (/.f64 1/8 (pow.f64 im 3))) (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 im))))) (*.f64 (sqrt.f64 2) (+.f64 (*.f64 (*.f64 re re) (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (sqrt.f64 im))))
(*.f64 (sqrt.f64 2) (+.f64 (sqrt.f64 im) (+.f64 (*.f64 (*.f64 re re) (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (*.f64 -1/2 (*.f64 (*.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) 3/16) (sqrt.f64 (/.f64 1 im)))))))
(*.f64 (sqrt.f64 2) (sqrt.f64 (+.f64 (*.f64 (pow.f64 1 1/3) re) re)))
(*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 2 re)))
(*.f64 (sqrt.f64 2) (sqrt.f64 (+.f64 re re)))
(+.f64 (*.f64 1/4 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 2)) re) (sqrt.f64 (/.f64 1 (+.f64 (*.f64 (pow.f64 1 1/3) re) re))))) (*.f64 (sqrt.f64 2) (sqrt.f64 (+.f64 (*.f64 (pow.f64 1 1/3) re) re))))
(fma.f64 1/4 (*.f64 (/.f64 (sqrt.f64 2) (/.f64 re (*.f64 im im))) (sqrt.f64 (/.f64 1 (*.f64 2 re)))) (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 2 re))))
(fma.f64 (sqrt.f64 2) (sqrt.f64 (+.f64 re re)) (*.f64 (sqrt.f64 (/.f64 1/2 re)) (/.f64 (*.f64 1/4 (sqrt.f64 2)) (/.f64 re (*.f64 im im)))))
(fma.f64 (sqrt.f64 2) (sqrt.f64 (+.f64 re re)) (*.f64 (*.f64 (*.f64 im im) (/.f64 (sqrt.f64 2) re)) (*.f64 1/4 (sqrt.f64 (/.f64 1/2 re)))))
(fma.f64 (sqrt.f64 2) (sqrt.f64 (+.f64 re re)) (*.f64 (*.f64 im (/.f64 (*.f64 im (sqrt.f64 2)) re)) (*.f64 1/4 (sqrt.f64 (/.f64 1/2 re)))))
(+.f64 (*.f64 1/4 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 2)) re) (sqrt.f64 (/.f64 1 (+.f64 (*.f64 (pow.f64 1 1/3) re) re))))) (+.f64 (*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (+.f64 (pow.f64 (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (+.f64 (*.f64 (pow.f64 1 1/3) re) re))) (/.f64 1 re))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))) (pow.f64 im 4))) (sqrt.f64 (/.f64 1 (+.f64 (*.f64 (pow.f64 1 1/3) re) re))))) (*.f64 (sqrt.f64 2) (sqrt.f64 (+.f64 (*.f64 (pow.f64 1 1/3) re) re)))))
(fma.f64 1/4 (*.f64 (/.f64 (sqrt.f64 2) (/.f64 re (*.f64 im im))) (sqrt.f64 (/.f64 1 (*.f64 2 re)))) (fma.f64 -1/2 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 (pow.f64 im 4) (+.f64 (pow.f64 (*.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (*.f64 2 re)))) (/.f64 1 re)) 2) (/.f64 1/8 (pow.f64 re 3)))) (sqrt.f64 (/.f64 1 (*.f64 2 re))))) (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 2 re)))))
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (+.f64 re re))) (*.f64 (sqrt.f64 (/.f64 1/2 re)) (+.f64 (/.f64 (*.f64 1/4 (sqrt.f64 2)) (/.f64 re (*.f64 im im))) (*.f64 -1/2 (*.f64 (+.f64 (pow.f64 (*.f64 1/4 (/.f64 (sqrt.f64 (/.f64 1/2 re)) re)) 2) (/.f64 1/8 (pow.f64 re 3))) (*.f64 (pow.f64 im 4) (sqrt.f64 2)))))))
(fma.f64 (sqrt.f64 (/.f64 1/2 re)) (fma.f64 1/4 (*.f64 (*.f64 im im) (/.f64 (sqrt.f64 2) re)) (*.f64 (pow.f64 im 4) (*.f64 (*.f64 -1/2 (sqrt.f64 2)) (+.f64 (pow.f64 (*.f64 1/4 (/.f64 (sqrt.f64 (/.f64 1/2 re)) re)) 2) (/.f64 1/8 (pow.f64 re 3)))))) (*.f64 (sqrt.f64 2) (sqrt.f64 (+.f64 re re))))
(fma.f64 (sqrt.f64 (/.f64 1/2 re)) (fma.f64 1/4 (*.f64 im (/.f64 (*.f64 im (sqrt.f64 2)) re)) (*.f64 (pow.f64 im 4) (*.f64 (*.f64 -1/2 (sqrt.f64 2)) (+.f64 (/.f64 (/.f64 (*.f64 1/16 (/.f64 1/2 re)) re) re) (/.f64 1/8 (pow.f64 re 3)))))) (*.f64 (sqrt.f64 2) (sqrt.f64 (+.f64 re re))))
(+.f64 (*.f64 1/4 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 2)) re) (sqrt.f64 (/.f64 1 (+.f64 (*.f64 (pow.f64 1 1/3) re) 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 (*.f64 1/8 (/.f64 1 (pow.f64 re 3))) (pow.f64 (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (+.f64 (*.f64 (pow.f64 1 1/3) re) re))) (/.f64 1 re))) 2)) (*.f64 (+.f64 (*.f64 (pow.f64 1 1/3) re) re) re)))) (pow.f64 im 6))) (sqrt.f64 (/.f64 1 (+.f64 (*.f64 (pow.f64 1 1/3) re) re))))) (+.f64 (*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (+.f64 (pow.f64 (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (+.f64 (*.f64 (pow.f64 1 1/3) re) re))) (/.f64 1 re))) 2) (*.f64 1/8 (/.f64 1 (pow.f64 re 3)))) (pow.f64 im 4))) (sqrt.f64 (/.f64 1 (+.f64 (*.f64 (pow.f64 1 1/3) re) re))))) (*.f64 (sqrt.f64 2) (sqrt.f64 (+.f64 (*.f64 (pow.f64 1 1/3) re) re))))))
(fma.f64 1/4 (*.f64 (/.f64 (sqrt.f64 2) (/.f64 re (*.f64 im im))) (sqrt.f64 (/.f64 1 (*.f64 2 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 (*.f64 1/4 (sqrt.f64 (/.f64 1 (*.f64 2 re)))) (/.f64 1 re)) 2) (/.f64 1/8 (pow.f64 re 3))) (*.f64 re (*.f64 2 re)))))) (sqrt.f64 (/.f64 1 (*.f64 2 re))))) (fma.f64 -1/2 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 (pow.f64 im 4) (+.f64 (pow.f64 (*.f64 (*.f64 1/4 (sqrt.f64 (/.f64 1 (*.f64 2 re)))) (/.f64 1 re)) 2) (/.f64 1/8 (pow.f64 re 3)))) (sqrt.f64 (/.f64 1 (*.f64 2 re))))) (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 2 re))))))
(+.f64 (fma.f64 -1/2 (*.f64 (sqrt.f64 2) (*.f64 (+.f64 (pow.f64 (*.f64 1/4 (/.f64 (sqrt.f64 (/.f64 1/2 re)) re)) 2) (/.f64 1/8 (pow.f64 re 3))) (*.f64 (pow.f64 im 4) (sqrt.f64 (/.f64 1/2 re))))) (*.f64 (sqrt.f64 2) (sqrt.f64 (+.f64 re re)))) (*.f64 (sqrt.f64 (/.f64 1/2 re)) (+.f64 (/.f64 (*.f64 1/4 (sqrt.f64 2)) (/.f64 re (*.f64 im im))) (*.f64 1/2 (*.f64 (+.f64 (/.f64 1/16 (pow.f64 re 5)) (*.f64 1/4 (/.f64 (+.f64 (pow.f64 (*.f64 1/4 (/.f64 (sqrt.f64 (/.f64 1/2 re)) re)) 2) (/.f64 1/8 (pow.f64 re 3))) (*.f64 re (+.f64 re re))))) (*.f64 (pow.f64 im 6) (sqrt.f64 2)))))))
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (+.f64 re re))) (*.f64 (sqrt.f64 (/.f64 1/2 re)) (+.f64 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) 1/4) re) (*.f64 im im)) (*.f64 (sqrt.f64 2) (+.f64 (*.f64 (*.f64 1/2 (pow.f64 im 6)) (+.f64 (/.f64 1/16 (pow.f64 re 5)) (*.f64 1/8 (/.f64 (+.f64 (pow.f64 (*.f64 1/4 (/.f64 (sqrt.f64 (/.f64 1/2 re)) re)) 2) (/.f64 1/8 (pow.f64 re 3))) (*.f64 re re))))) (*.f64 -1/2 (*.f64 (pow.f64 im 4) (+.f64 (pow.f64 (*.f64 1/4 (/.f64 (sqrt.f64 (/.f64 1/2 re)) re)) 2) (/.f64 1/8 (pow.f64 re 3))))))))))
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (+.f64 re re))) (*.f64 (sqrt.f64 (/.f64 1/2 re)) (+.f64 (*.f64 1/4 (*.f64 im (/.f64 (*.f64 im (sqrt.f64 2)) re))) (*.f64 (sqrt.f64 2) (+.f64 (*.f64 (*.f64 1/2 (pow.f64 im 6)) (+.f64 (/.f64 1/16 (pow.f64 re 5)) (*.f64 1/8 (/.f64 (+.f64 (/.f64 (/.f64 (*.f64 1/16 (/.f64 1/2 re)) re) re) (/.f64 1/8 (pow.f64 re 3))) (*.f64 re re))))) (*.f64 -1/2 (*.f64 (pow.f64 im 4) (+.f64 (/.f64 (/.f64 (*.f64 1/16 (/.f64 1/2 re)) re) re) (/.f64 1/8 (pow.f64 re 3))))))))))

localize6.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.2b
(*.f64 1/2 (*.f64 im 2))
0.2b
(*.f64 1/2 (*.f64 im 2))
Compiler

Compiled 13 to 10 computations (23.1% saved)

series1.0ms (0%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
0.0ms
im
@-inf
(*.f64 1/2 (*.f64 im 2))
0.0ms
im
@0
(*.f64 1/2 (*.f64 im 2))
0.0ms
im
@inf
(*.f64 1/2 (*.f64 im 2))

rewrite35.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
445×pow1_binary64
438×add-sqr-sqrt_binary64
428×*-un-lft-identity_binary64
414×add-log-exp_binary64
414×log1p-expm1-u_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify8.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0112
Stop Event
saturated
Counts
23 → 12
Calls
Call 1
Inputs
im
im
im
im
im
im
im
im
im
im
im
im
Outputs
im
im
im
im
im
im
im
im
im
im
im
im

localize6.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.2b
(*.f64 1/2 (fabs.f64 (+.f64 im im)))
0.2b
(*.f64 1/2 (fabs.f64 (+.f64 im im)))
Compiler

Compiled 17 to 7 computations (58.8% saved)

series2.0ms (0%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
1.0ms
im
@0
(*.f64 1/2 (fabs.f64 (+.f64 im im)))
0.0ms
im
@-inf
(*.f64 1/2 (fabs.f64 (+.f64 im im)))
0.0ms
im
@inf
(*.f64 1/2 (fabs.f64 (+.f64 im im)))

rewrite39.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
495×pow1_binary64
484×add-sqr-sqrt_binary64
466×add-log-exp_binary64
465×log1p-expm1-u_binary64
465×expm1-log1p-u_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify159.0ms (1.8%)

Algorithm
egg-herbie
Rules
10471×associate-*l*_binary64
1299×*-commutative_binary64
1048×associate-*r*_binary64
16×fma-neg_binary64
12×cancel-sign-sub-inv_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
012108
12772
24736
37036
410636
517636
633436
736736
839136
939536
1039536
1179536
1286736
1386736
1486736
15202836
16202836
17222536
18222536
19222536
20612836
21612836
22691236
23691236
24691236
Stop Event
node limit
Counts
23 → 14
Calls
Call 1
Inputs
(*.f64 1/2 (fabs.f64 (*.f64 2 im)))
(*.f64 1/2 (fabs.f64 (*.f64 2 im)))
(*.f64 1/2 (fabs.f64 (*.f64 2 im)))
(*.f64 1/2 (fabs.f64 (*.f64 2 im)))
(*.f64 1/2 (fabs.f64 (*.f64 2 im)))
(*.f64 1/2 (fabs.f64 (*.f64 2 im)))
(*.f64 1/2 (fabs.f64 (*.f64 2 im)))
(*.f64 1/2 (fabs.f64 (*.f64 2 im)))
(*.f64 1/2 (fabs.f64 (neg.f64 (*.f64 -2 im))))
(*.f64 1/2 (fabs.f64 (neg.f64 (*.f64 -2 im))))
(*.f64 1/2 (fabs.f64 (neg.f64 (*.f64 -2 im))))
(*.f64 1/2 (fabs.f64 (neg.f64 (*.f64 -2 im))))
Outputs
(*.f64 1/2 (fabs.f64 (*.f64 2 im)))
(*.f64 1/2 (fabs.f64 (*.f64 im -2)))
(*.f64 1 (fabs.f64 im))
(fabs.f64 im)
(*.f64 1/2 (fabs.f64 (*.f64 2 im)))
(*.f64 1/2 (fabs.f64 (*.f64 im -2)))
(*.f64 1 (fabs.f64 im))
(fabs.f64 im)
(*.f64 1/2 (fabs.f64 (*.f64 2 im)))
(*.f64 1/2 (fabs.f64 (*.f64 im -2)))
(*.f64 1 (fabs.f64 im))
(fabs.f64 im)
(*.f64 1/2 (fabs.f64 (*.f64 2 im)))
(*.f64 1/2 (fabs.f64 (*.f64 im -2)))
(*.f64 1 (fabs.f64 im))
(fabs.f64 im)
(*.f64 1/2 (fabs.f64 (*.f64 2 im)))
(*.f64 1/2 (fabs.f64 (*.f64 im -2)))
(*.f64 1 (fabs.f64 im))
(fabs.f64 im)
(*.f64 1/2 (fabs.f64 (*.f64 2 im)))
(*.f64 1/2 (fabs.f64 (*.f64 im -2)))
(*.f64 1 (fabs.f64 im))
(fabs.f64 im)
(*.f64 1/2 (fabs.f64 (*.f64 2 im)))
(*.f64 1/2 (fabs.f64 (*.f64 im -2)))
(*.f64 1 (fabs.f64 im))
(fabs.f64 im)
(*.f64 1/2 (fabs.f64 (*.f64 2 im)))
(*.f64 1/2 (fabs.f64 (*.f64 im -2)))
(*.f64 1 (fabs.f64 im))
(fabs.f64 im)
(*.f64 1/2 (fabs.f64 (neg.f64 (*.f64 -2 im))))
(*.f64 1/2 (fabs.f64 (*.f64 im -2)))
(*.f64 1 (fabs.f64 im))
(fabs.f64 im)
(*.f64 1/2 (fabs.f64 (neg.f64 (*.f64 -2 im))))
(*.f64 1/2 (fabs.f64 (*.f64 im -2)))
(*.f64 1 (fabs.f64 im))
(fabs.f64 im)
(*.f64 1/2 (fabs.f64 (neg.f64 (*.f64 -2 im))))
(*.f64 1/2 (fabs.f64 (*.f64 im -2)))
(*.f64 1 (fabs.f64 im))
(fabs.f64 im)
(*.f64 1/2 (fabs.f64 (neg.f64 (*.f64 -2 im))))
(*.f64 1/2 (fabs.f64 (*.f64 im -2)))
(*.f64 1 (fabs.f64 im))
(fabs.f64 im)

localize21.0ms (0.2%)

Local error

Found 8 expressions with local error:

NewErrorProgram
18.7b
(sqrt.f64 (*.f64 2 (*.f64 (/.f64 1 (/.f64 re (*.f64 im im))) -1/2)))
7.1b
(/.f64 re (*.f64 im im))
0.3b
(/.f64 1 (/.f64 re (*.f64 im im)))
0.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (/.f64 1 (/.f64 re (*.f64 im im))) -1/2))))
0.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (/.f64 1 (/.f64 re (*.f64 im im))) -1/2))))
0.3b
(/.f64 1 (/.f64 re (*.f64 im im)))
7.1b
(/.f64 re (*.f64 im im))
18.7b
(sqrt.f64 (*.f64 2 (*.f64 (/.f64 1 (/.f64 re (*.f64 im im))) -1/2)))
Compiler

Compiled 69 to 36 computations (47.8% saved)

series8.0ms (0.1%)

Counts
4 → 72
Calls

24 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))
0.0ms
re
@0
(sqrt.f64 (*.f64 2 (*.f64 (/.f64 1 (/.f64 re (*.f64 im im))) -1/2)))
0.0ms
re
@inf
(/.f64 re (*.f64 im im))

rewrite71.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
658×log-prod_binary64
362×pow-prod-down_binary64
327×pow2_binary64
270×pow-unpow_binary64
227×pow1/3_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01450
129141
2345541
Stop Event
node limit
Counts
4 → 139
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)))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (/.f64 1 (/.f64 re (*.f64 im im))) -1/2))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 (*.f64 (/.f64 im (/.f64 re im)) -1)) 1/2) (*.f64 (sqrt.f64 (*.f64 (/.f64 im (/.f64 re im)) -1)) 1/2))))) (#(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 (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 *.f64 (pow.f64 1 1/2) (sqrt.f64 (*.f64 (/.f64 im (/.f64 re im)) -1)))))) (#(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 (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 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 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 (cbrt.f64 (*.f64 re re)) (*.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 (cbrt.f64 (*.f64 re re)) 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 (cbrt.f64 (*.f64 re re)) 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 (cbrt.f64 (*.f64 re re)) (*.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 (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 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 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 (cbrt.f64 (*.f64 re re))) (/.f64 im (cbrt.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 (cbrt.f64 im) im) (cbrt.f64 (*.f64 re re))) (/.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 (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 (/.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 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 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))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sqrt.f64 (*.f64 (/.f64 im (/.f64 re im)) -1)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (*.f64 (/.f64 im (/.f64 re im)) -1))))) 2)) (log.f64 (cbrt.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (*.f64 (/.f64 im (/.f64 re im)) -1)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (*.f64 (/.f64 im (/.f64 re im)) -1)))))) (log.f64 (sqrt.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 (*.f64 (sqrt.f64 (*.f64 (/.f64 im (/.f64 re im)) -1)) 1/2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 (*.f64 (/.f64 im (/.f64 re im)) -1)) 1/2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (*.f64 (/.f64 im (/.f64 re im)) -1) 1/4) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sqrt.f64 (*.f64 (/.f64 im (/.f64 re im)) -1)) 1/2) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 (*.f64 (/.f64 im (/.f64 re im)) -1)) 1/2)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (sqrt.f64 (*.f64 (/.f64 im (/.f64 re im)) -1)) 1/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (*.f64 (/.f64 im (/.f64 re im)) -1) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (sqrt.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 (*.f64 (sqrt.f64 (*.f64 (/.f64 im (/.f64 re im)) -1)) 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 (*.f64 (/.f64 im (/.f64 re im)) -1)) 1/2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (sqrt.f64 (*.f64 (/.f64 im (/.f64 re im)) -1)) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (sqrt.f64 (*.f64 (/.f64 im (/.f64 re im)) -1)) 1/2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (sqrt.f64 (*.f64 (/.f64 im (/.f64 re im)) -1)) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (sqrt.f64 (*.f64 (/.f64 im (/.f64 re im)) -1)) 1/2)))))))

simplify86.0ms (1%)

Algorithm
egg-herbie
Rules
695×fma-def_binary64
521×associate-/r/_binary64
499×associate-/r*_binary64
492×associate-*l*_binary64
429×fma-neg_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
019716
139716
2104716
3276716
4626716
51845716
62743716
75969716
86961716
97511716
Stop Event
node limit
Counts
211 → 151
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)
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
Outputs
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 im (*.f64 (sqrt.f64 -1) (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 im (*.f64 (sqrt.f64 -1) (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 im (*.f64 (sqrt.f64 -1) (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 im (*.f64 (sqrt.f64 -1) (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 im (*.f64 (sqrt.f64 -1) (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 im (*.f64 (sqrt.f64 -1) (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 im (*.f64 (sqrt.f64 -1) (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 im (*.f64 (sqrt.f64 -1) (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 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 -1) (neg.f64 (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (sqrt.f64 -1) (*.f64 im (neg.f64 (sqrt.f64 (/.f64 1 re)))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im (neg.f64 (sqrt.f64 -1))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (neg.f64 im)))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(neg.f64 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 -1) (neg.f64 (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (sqrt.f64 -1) (*.f64 im (neg.f64 (sqrt.f64 (/.f64 1 re)))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im (neg.f64 (sqrt.f64 -1))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (neg.f64 im)))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(neg.f64 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 -1) (neg.f64 (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (sqrt.f64 -1) (*.f64 im (neg.f64 (sqrt.f64 (/.f64 1 re)))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im (neg.f64 (sqrt.f64 -1))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (neg.f64 im)))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(neg.f64 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 -1) (neg.f64 (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (sqrt.f64 -1) (*.f64 im (neg.f64 (sqrt.f64 (/.f64 1 re)))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im (neg.f64 (sqrt.f64 -1))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (neg.f64 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 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))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))
(*.f64 im (*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (*.f64 im 1/2)))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))
(*.f64 im (*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (*.f64 im 1/2)))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))
(*.f64 im (*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (*.f64 im 1/2)))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))
(*.f64 im (*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (*.f64 im 1/2)))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))
(*.f64 im (*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (*.f64 im 1/2)))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))
(*.f64 im (*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (*.f64 im 1/2)))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))
(*.f64 im (*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (*.f64 im 1/2)))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))
(*.f64 im (*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (*.f64 im 1/2)))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1) im) -1/2))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) -1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) -1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im -1/2)))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1) im) -1/2))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) -1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) -1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im -1/2)))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1) im) -1/2))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) -1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) -1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im -1/2)))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1) im) -1/2))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) -1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) -1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im -1/2)))

localize18.0ms (0.2%)

Local error

Found 6 expressions with local error:

NewErrorProgram
0.4b
(pow.f64 (cbrt.f64 (sqrt.f64 (neg.f64 im))) 3)
0.3b
(cbrt.f64 (sqrt.f64 (neg.f64 im)))
0.3b
(*.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (neg.f64 im))) 3) (sqrt.f64 2))
0.3b
(*.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (neg.f64 im))) 3) (sqrt.f64 2))
0.3b
(cbrt.f64 (sqrt.f64 (neg.f64 im)))
0.4b
(pow.f64 (cbrt.f64 (sqrt.f64 (neg.f64 im))) 3)
Compiler

Compiled 43 to 24 computations (44.2% saved)

series7.0ms (0.1%)

Counts
3 → 24
Calls

9 calls:

TimeVariablePointExpression
3.0ms
im
@0
(pow.f64 (cbrt.f64 (sqrt.f64 (neg.f64 im))) 3)
1.0ms
im
@inf
(pow.f64 (cbrt.f64 (sqrt.f64 (neg.f64 im))) 3)
1.0ms
im
@-inf
(pow.f64 (cbrt.f64 (sqrt.f64 (neg.f64 im))) 3)
1.0ms
im
@0
(*.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (neg.f64 im))) 3) (sqrt.f64 2))
1.0ms
im
@inf
(*.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (neg.f64 im))) 3) (sqrt.f64 2))

rewrite49.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
667×pow1_binary64
628×add-log-exp_binary64
626×log1p-expm1-u_binary64
626×expm1-log1p-u_binary64
612×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify139.0ms (1.6%)

Algorithm
egg-herbie
Rules
934×unswap-sqr_binary64
834×sqr-pow_binary64
748×cube-prod_binary64
618×fabs-mul_binary64
447×unpow3_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
018244
145208
288208
3190208
4610208
51130208
62536208
72647208
82814208
93008208
103229208
113538208
123935208
134411208
145001208
155753208
166106208
176506208
186898208
197366208
207766208
Stop Event
node limit
Counts
83 → 64
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 -1) (*.f64 (pow.f64 1 1/6) (sqrt.f64 im)))
(*.f64 (sqrt.f64 -1) (*.f64 (pow.f64 1 1/6) (sqrt.f64 im)))
(*.f64 (sqrt.f64 -1) (*.f64 (pow.f64 1 1/6) (sqrt.f64 im)))
(*.f64 (sqrt.f64 -1) (*.f64 (pow.f64 1 1/6) (sqrt.f64 im)))
(*.f64 (sqrt.f64 -1) (*.f64 (pow.f64 1 1/6) (sqrt.f64 im)))
(*.f64 (sqrt.f64 -1) (*.f64 (pow.f64 1 1/6) (sqrt.f64 im)))
(*.f64 (sqrt.f64 -1) (*.f64 (pow.f64 1 1/6) (sqrt.f64 im)))
(*.f64 (sqrt.f64 -1) (*.f64 (pow.f64 1 1/6) (sqrt.f64 im)))
(*.f64 (sqrt.f64 -1) (*.f64 (pow.f64 1 1/6) (sqrt.f64 im)))
(*.f64 (sqrt.f64 -1) (*.f64 (pow.f64 1 1/6) (sqrt.f64 im)))
(*.f64 (sqrt.f64 -1) (*.f64 (pow.f64 1 1/6) (sqrt.f64 im)))
(*.f64 (sqrt.f64 -1) (*.f64 (pow.f64 1 1/6) (sqrt.f64 im)))
(*.f64 (pow.f64 (sqrt.f64 -1) 1/3) (*.f64 (sqrt.f64 1) (pow.f64 im 1/6)))
(*.f64 (pow.f64 (sqrt.f64 -1) 1/3) (*.f64 (sqrt.f64 1) (pow.f64 im 1/6)))
(*.f64 (pow.f64 (sqrt.f64 -1) 1/3) (*.f64 (sqrt.f64 1) (pow.f64 im 1/6)))
(*.f64 (pow.f64 (sqrt.f64 -1) 1/3) (*.f64 (sqrt.f64 1) (pow.f64 im 1/6)))
(*.f64 (pow.f64 (sqrt.f64 -1) 1/3) (*.f64 (sqrt.f64 1) (pow.f64 im 1/6)))
(*.f64 (pow.f64 (sqrt.f64 -1) 1/3) (*.f64 (sqrt.f64 1) (pow.f64 im 1/6)))
(*.f64 (pow.f64 (sqrt.f64 -1) 1/3) (*.f64 (sqrt.f64 1) (pow.f64 im 1/6)))
(*.f64 (pow.f64 (sqrt.f64 -1) 1/3) (*.f64 (sqrt.f64 1) (pow.f64 im 1/6)))
(pow.f64 (*.f64 -1 im) 1/6)
(pow.f64 (*.f64 -1 im) 1/6)
(pow.f64 (*.f64 -1 im) 1/6)
(pow.f64 (*.f64 -1 im) 1/6)
Outputs
(*.f64 (sqrt.f64 -1) (*.f64 (pow.f64 1 1/6) (sqrt.f64 im)))
(*.f64 (*.f64 (sqrt.f64 -1) 1) (sqrt.f64 im))
(*.f64 (sqrt.f64 -1) (sqrt.f64 im))
(*.f64 (sqrt.f64 -1) (*.f64 (pow.f64 1 1/6) (sqrt.f64 im)))
(*.f64 (*.f64 (sqrt.f64 -1) 1) (sqrt.f64 im))
(*.f64 (sqrt.f64 -1) (sqrt.f64 im))
(*.f64 (sqrt.f64 -1) (*.f64 (pow.f64 1 1/6) (sqrt.f64 im)))
(*.f64 (*.f64 (sqrt.f64 -1) 1) (sqrt.f64 im))
(*.f64 (sqrt.f64 -1) (sqrt.f64 im))
(*.f64 (sqrt.f64 -1) (*.f64 (pow.f64 1 1/6) (sqrt.f64 im)))
(*.f64 (*.f64 (sqrt.f64 -1) 1) (sqrt.f64 im))
(*.f64 (sqrt.f64 -1) (sqrt.f64 im))
(*.f64 (sqrt.f64 -1) (*.f64 (pow.f64 1 1/6) (sqrt.f64 im)))
(*.f64 (*.f64 (sqrt.f64 -1) 1) (sqrt.f64 im))
(*.f64 (sqrt.f64 -1) (sqrt.f64 im))
(*.f64 (sqrt.f64 -1) (*.f64 (pow.f64 1 1/6) (sqrt.f64 im)))
(*.f64 (*.f64 (sqrt.f64 -1) 1) (sqrt.f64 im))
(*.f64 (sqrt.f64 -1) (sqrt.f64 im))
(*.f64 (sqrt.f64 -1) (*.f64 (pow.f64 1 1/6) (sqrt.f64 im)))
(*.f64 (*.f64 (sqrt.f64 -1) 1) (sqrt.f64 im))
(*.f64 (sqrt.f64 -1) (sqrt.f64 im))
(*.f64 (sqrt.f64 -1) (*.f64 (pow.f64 1 1/6) (sqrt.f64 im)))
(*.f64 (*.f64 (sqrt.f64 -1) 1) (sqrt.f64 im))
(*.f64 (sqrt.f64 -1) (sqrt.f64 im))
(*.f64 (sqrt.f64 -1) (*.f64 (pow.f64 1 1/6) (sqrt.f64 im)))
(*.f64 (*.f64 (sqrt.f64 -1) 1) (sqrt.f64 im))
(*.f64 (sqrt.f64 -1) (sqrt.f64 im))
(*.f64 (sqrt.f64 -1) (*.f64 (pow.f64 1 1/6) (sqrt.f64 im)))
(*.f64 (*.f64 (sqrt.f64 -1) 1) (sqrt.f64 im))
(*.f64 (sqrt.f64 -1) (sqrt.f64 im))
(*.f64 (sqrt.f64 -1) (*.f64 (pow.f64 1 1/6) (sqrt.f64 im)))
(*.f64 (*.f64 (sqrt.f64 -1) 1) (sqrt.f64 im))
(*.f64 (sqrt.f64 -1) (sqrt.f64 im))
(*.f64 (sqrt.f64 -1) (*.f64 (pow.f64 1 1/6) (sqrt.f64 im)))
(*.f64 (*.f64 (sqrt.f64 -1) 1) (sqrt.f64 im))
(*.f64 (sqrt.f64 -1) (sqrt.f64 im))
(*.f64 (pow.f64 (sqrt.f64 -1) 1/3) (*.f64 (sqrt.f64 1) (pow.f64 im 1/6)))
(*.f64 (cbrt.f64 (sqrt.f64 -1)) (pow.f64 im 1/6))
(*.f64 (pow.f64 (sqrt.f64 -1) 1/3) (*.f64 (sqrt.f64 1) (pow.f64 im 1/6)))
(*.f64 (cbrt.f64 (sqrt.f64 -1)) (pow.f64 im 1/6))
(*.f64 (pow.f64 (sqrt.f64 -1) 1/3) (*.f64 (sqrt.f64 1) (pow.f64 im 1/6)))
(*.f64 (cbrt.f64 (sqrt.f64 -1)) (pow.f64 im 1/6))
(*.f64 (pow.f64 (sqrt.f64 -1) 1/3) (*.f64 (sqrt.f64 1) (pow.f64 im 1/6)))
(*.f64 (cbrt.f64 (sqrt.f64 -1)) (pow.f64 im 1/6))
(*.f64 (pow.f64 (sqrt.f64 -1) 1/3) (*.f64 (sqrt.f64 1) (pow.f64 im 1/6)))
(*.f64 (cbrt.f64 (sqrt.f64 -1)) (pow.f64 im 1/6))
(*.f64 (pow.f64 (sqrt.f64 -1) 1/3) (*.f64 (sqrt.f64 1) (pow.f64 im 1/6)))
(*.f64 (cbrt.f64 (sqrt.f64 -1)) (pow.f64 im 1/6))
(*.f64 (pow.f64 (sqrt.f64 -1) 1/3) (*.f64 (sqrt.f64 1) (pow.f64 im 1/6)))
(*.f64 (cbrt.f64 (sqrt.f64 -1)) (pow.f64 im 1/6))
(*.f64 (pow.f64 (sqrt.f64 -1) 1/3) (*.f64 (sqrt.f64 1) (pow.f64 im 1/6)))
(*.f64 (cbrt.f64 (sqrt.f64 -1)) (pow.f64 im 1/6))
(pow.f64 (*.f64 -1 im) 1/6)
(pow.f64 (neg.f64 im) 1/6)
(pow.f64 (*.f64 -1 im) 1/6)
(pow.f64 (neg.f64 im) 1/6)
(pow.f64 (*.f64 -1 im) 1/6)
(pow.f64 (neg.f64 im) 1/6)
(pow.f64 (*.f64 -1 im) 1/6)
(pow.f64 (neg.f64 im) 1/6)

eval134.0ms (1.5%)

Compiler

Compiled 6107 to 4176 computations (31.6% saved)

prune75.0ms (0.9%)

Pruning

33 alts after pruning (24 fresh and 9 done)

PrunedKeptTotal
New3779386
Fresh31518
Picked011
Done2810
Total38233415
Error
1.3b
Counts
415 → 33
Alt Table
Click to see full alt table
StatusErrorProgram
16.6b
(*.f64 1/2 (pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/6) 3))
12.2b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))
57.1b
(*.f64 1/2 (cbrt.f64 (pow.f64 (*.f64 (/.f64 im (/.f64 re im)) -1) 3/2)))
60.2b
(*.f64 1/2 (sqrt.f64 (exp.f64 (fma.f64 2 (log.f64 im) (fma.f64 -1/4 (*.f64 (/.f64 im re) (/.f64 im re)) (log.f64 (/.f64 -1 re)))))))
59.8b
(fabs.f64 im)
55.0b
(exp.f64 (log.f64 (*.f64 (sqrt.f64 (*.f64 (/.f64 im (/.f64 re im)) -1)) 1/2)))
56.2b
(*.f64 1/2 (sqrt.f64 (/.f64 (*.f64 im (neg.f64 im)) re)))
14.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (pow.f64 (cbrt.f64 re) 2) (cbrt.f64 re) (hypot.f64 re im)))))
55.7b
(*.f64 1/2 (*.f64 (pow.f64 (*.f64 (pow.f64 (*.f64 (*.f64 1/2 im) im) 1/6) (pow.f64 (/.f64 -1 re) 1/6)) 3) (sqrt.f64 2)))
61.3b
(*.f64 1/2 (cbrt.f64 (+.f64 im im)))
55.7b
(*.f64 1/2 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) 3) (sqrt.f64 2)))
46.3b
(*.f64 1/2 (sqrt.f64 (*.f64 re 4)))
62.2b
(*.f64 1/2 (/.f64 1 (+.f64 im im)))
56.2b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (/.f64 1 (/.f64 re (*.f64 im im))) -1/2))))
46.0b
(*.f64 1/2 (*.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 re im))) 3) (sqrt.f64 2)))
44.6b
(*.f64 1/2 (sqrt.f64 (*.f64 im -2)))
42.4b
(*.f64 1/2 (sqrt.f64 (*.f64 (-.f64 re im) 2)))
42.5b
(*.f64 1/2 (*.f64 (sqrt.f64 (-.f64 re im)) (sqrt.f64 2)))
55.1b
(*.f64 1/2 (/.f64 im (sqrt.f64 (neg.f64 re))))
44.9b
(*.f64 1/2 (*.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (neg.f64 im))) 3) (sqrt.f64 2)))
54.6b
(*.f64 1/2 (sqrt.f64 (neg.f64 (*.f64 (/.f64 im re) im))))
60.4b
(-.f64 (+.f64 1 im) 1)
60.2b
(*.f64 1/2 (*.f64 4 (*.f64 im im)))
55.0b
(*.f64 1/2 (exp.f64 (*.f64 (log.f64 (*.f64 (/.f64 im (/.f64 re im)) -1)) 1/2)))
61.5b
im
60.2b
(*.f64 1/2 (*.f64 2 (*.f64 im (+.f64 im im))))
16.4b
(*.f64 1/2 (*.f64 (pow.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 1/6) 3) (sqrt.f64 2)))
16.3b
(*.f64 1/2 (sqrt.f64 (pow.f64 (exp.f64 1) (log.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))
48.5b
(*.f64 1/2 (*.f64 (sqrt.f64 im) (sqrt.f64 2)))
45.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
59.7b
(sqrt.f64 (*.f64 im im))
62.1b
(pow.f64 (sqrt.f64 im) 2)
48.6b
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
Compiler

Compiled 388 to 311 computations (19.8% saved)

regimes163.0ms (1.9%)

Counts
33 → 4
Calls
Call 1
Inputs
im
(-.f64 (+.f64 1 im) 1)
(*.f64 1/2 (*.f64 4 (*.f64 im im)))
(*.f64 1/2 (/.f64 1 (+.f64 im im)))
(*.f64 1/2 (*.f64 2 (*.f64 im (+.f64 im im))))
(fabs.f64 im)
(sqrt.f64 (*.f64 im im))
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
(*.f64 1/2 (sqrt.f64 (*.f64 im -2)))
(*.f64 1/2 (sqrt.f64 (*.f64 re 4)))
(*.f64 1/2 (cbrt.f64 (+.f64 im im)))
(*.f64 1/2 (/.f64 im (sqrt.f64 (neg.f64 re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
(*.f64 1/2 (sqrt.f64 (*.f64 (-.f64 re im) 2)))
(*.f64 1/2 (sqrt.f64 (neg.f64 (*.f64 (/.f64 im re) im))))
(*.f64 1/2 (sqrt.f64 (/.f64 (*.f64 im (neg.f64 im)) re)))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (/.f64 1 (/.f64 re (*.f64 im im))) -1/2))))
(pow.f64 (sqrt.f64 im) 2)
(*.f64 1/2 (*.f64 (sqrt.f64 im) (sqrt.f64 2)))
(*.f64 1/2 (*.f64 (sqrt.f64 (-.f64 re im)) (sqrt.f64 2)))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))
(*.f64 1/2 (cbrt.f64 (pow.f64 (*.f64 (/.f64 im (/.f64 re im)) -1) 3/2)))
(*.f64 1/2 (exp.f64 (*.f64 (log.f64 (*.f64 (/.f64 im (/.f64 re im)) -1)) 1/2)))
(exp.f64 (log.f64 (*.f64 (sqrt.f64 (*.f64 (/.f64 im (/.f64 re im)) -1)) 1/2)))
(*.f64 1/2 (pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/6) 3))
(*.f64 1/2 (*.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (neg.f64 im))) 3) (sqrt.f64 2)))
(*.f64 1/2 (*.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 re im))) 3) (sqrt.f64 2)))
(*.f64 1/2 (*.f64 (pow.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 1/6) 3) (sqrt.f64 2)))
(*.f64 1/2 (*.f64 (pow.f64 (*.f64 (pow.f64 (*.f64 (*.f64 1/2 im) im) 1/6) (pow.f64 (/.f64 -1 re) 1/6)) 3) (sqrt.f64 2)))
(*.f64 1/2 (sqrt.f64 (pow.f64 (exp.f64 1) (log.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (pow.f64 (cbrt.f64 re) 2) (cbrt.f64 re) (hypot.f64 re im)))))
(*.f64 1/2 (*.f64 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 -1 re)) (log.f64 (*.f64 1/2 (pow.f64 im 2)))))) 3) (sqrt.f64 2)))
(*.f64 1/2 (sqrt.f64 (exp.f64 (fma.f64 2 (log.f64 im) (fma.f64 -1/4 (*.f64 (/.f64 im re) (/.f64 im re)) (log.f64 (/.f64 -1 re)))))))
Outputs
(*.f64 1/2 (*.f64 (pow.f64 (*.f64 (pow.f64 (*.f64 (*.f64 1/2 im) im) 1/6) (pow.f64 (/.f64 -1 re) 1/6)) 3) (sqrt.f64 2)))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))
(*.f64 1/2 (/.f64 im (sqrt.f64 (neg.f64 re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))
Calls

4 calls:

72.0ms
re
54.0ms
im
13.0ms
(*.f64 im im)
12.0ms
(*.f64 im im)
Results
ErrorSegmentsBranch
7.7b4re
10.8b3im
12.2b1(*.f64 im im)
12.2b1(*.f64 im im)
Compiler

Compiled 340 to 237 computations (30.3% saved)

bsearch167.0ms (1.9%)

Algorithm
binary-search
Steps
TimeLeftRight
51.0ms
-3.4568485425480756e-15
-9.223142869108788e-25
52.0ms
-18.971660196454845
-0.3311290857363765
64.0ms
-1.072112859749039e+75
-4.279058029654955e+74
Compiler

Compiled 22 to 16 computations (27.3% saved)

regimes136.0ms (1.6%)

Counts
28 → 4
Calls
Call 1
Inputs
im
(-.f64 (+.f64 1 im) 1)
(*.f64 1/2 (*.f64 4 (*.f64 im im)))
(*.f64 1/2 (/.f64 1 (+.f64 im im)))
(*.f64 1/2 (*.f64 2 (*.f64 im (+.f64 im im))))
(fabs.f64 im)
(sqrt.f64 (*.f64 im im))
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
(*.f64 1/2 (sqrt.f64 (*.f64 im -2)))
(*.f64 1/2 (sqrt.f64 (*.f64 re 4)))
(*.f64 1/2 (cbrt.f64 (+.f64 im im)))
(*.f64 1/2 (/.f64 im (sqrt.f64 (neg.f64 re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
(*.f64 1/2 (sqrt.f64 (*.f64 (-.f64 re im) 2)))
(*.f64 1/2 (sqrt.f64 (neg.f64 (*.f64 (/.f64 im re) im))))
(*.f64 1/2 (sqrt.f64 (/.f64 (*.f64 im (neg.f64 im)) re)))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (/.f64 1 (/.f64 re (*.f64 im im))) -1/2))))
(pow.f64 (sqrt.f64 im) 2)
(*.f64 1/2 (*.f64 (sqrt.f64 im) (sqrt.f64 2)))
(*.f64 1/2 (*.f64 (sqrt.f64 (-.f64 re im)) (sqrt.f64 2)))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))
(*.f64 1/2 (cbrt.f64 (pow.f64 (*.f64 (/.f64 im (/.f64 re im)) -1) 3/2)))
(*.f64 1/2 (exp.f64 (*.f64 (log.f64 (*.f64 (/.f64 im (/.f64 re im)) -1)) 1/2)))
(exp.f64 (log.f64 (*.f64 (sqrt.f64 (*.f64 (/.f64 im (/.f64 re im)) -1)) 1/2)))
(*.f64 1/2 (pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/6) 3))
(*.f64 1/2 (*.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (neg.f64 im))) 3) (sqrt.f64 2)))
(*.f64 1/2 (*.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 re im))) 3) (sqrt.f64 2)))
(*.f64 1/2 (*.f64 (pow.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 1/6) 3) (sqrt.f64 2)))
Outputs
(*.f64 1/2 (sqrt.f64 (neg.f64 (*.f64 (/.f64 im re) im))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))
(*.f64 1/2 (/.f64 im (sqrt.f64 (neg.f64 re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))
Calls

4 calls:

61.0ms
re
43.0ms
im
12.0ms
(*.f64 im im)
10.0ms
(*.f64 im im)
Results
ErrorSegmentsBranch
7.9b4re
10.8b3im
12.2b1(*.f64 im im)
12.2b1(*.f64 im im)
Compiler

Compiled 249 to 170 computations (31.7% saved)

bsearch166.0ms (1.9%)

Algorithm
binary-search
Steps
TimeLeftRight
50.0ms
-3.4568485425480756e-15
-9.223142869108788e-25
51.0ms
-18.971660196454845
-0.3311290857363765
65.0ms
-1.072112859749039e+75
-4.279058029654955e+74
Compiler

Compiled 22 to 16 computations (27.3% saved)

regimes279.0ms (3.2%)

Counts
20 → 5
Calls
Call 1
Inputs
im
(-.f64 (+.f64 1 im) 1)
(*.f64 1/2 (*.f64 4 (*.f64 im im)))
(*.f64 1/2 (/.f64 1 (+.f64 im im)))
(*.f64 1/2 (*.f64 2 (*.f64 im (+.f64 im im))))
(fabs.f64 im)
(sqrt.f64 (*.f64 im im))
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
(*.f64 1/2 (sqrt.f64 (*.f64 im -2)))
(*.f64 1/2 (sqrt.f64 (*.f64 re 4)))
(*.f64 1/2 (cbrt.f64 (+.f64 im im)))
(*.f64 1/2 (/.f64 im (sqrt.f64 (neg.f64 re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
(*.f64 1/2 (sqrt.f64 (*.f64 (-.f64 re im) 2)))
(*.f64 1/2 (sqrt.f64 (neg.f64 (*.f64 (/.f64 im re) im))))
(*.f64 1/2 (sqrt.f64 (/.f64 (*.f64 im (neg.f64 im)) re)))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (/.f64 1 (/.f64 re (*.f64 im im))) -1/2))))
(pow.f64 (sqrt.f64 im) 2)
(*.f64 1/2 (*.f64 (sqrt.f64 im) (sqrt.f64 2)))
(*.f64 1/2 (*.f64 (sqrt.f64 (-.f64 re im)) (sqrt.f64 2)))
Outputs
(*.f64 1/2 (sqrt.f64 (*.f64 (-.f64 re im) 2)))
(*.f64 1/2 (sqrt.f64 (*.f64 re 4)))
(*.f64 1/2 (/.f64 im (sqrt.f64 (neg.f64 re))))
(*.f64 1/2 (sqrt.f64 (*.f64 re 4)))
(*.f64 1/2 (*.f64 (sqrt.f64 im) (sqrt.f64 2)))
Calls

4 calls:

123.0ms
re
52.0ms
(*.f64 im im)
50.0ms
(*.f64 im im)
49.0ms
im
Results
ErrorSegmentsBranch
22.6b13re
19.4b5im
31.2b8(*.f64 im im)
31.2b8(*.f64 im im)
Compiler

Compiled 152 to 104 computations (31.6% saved)

bsearch181.0ms (2.1%)

Algorithm
binary-search
Steps
TimeLeftRight
40.0ms
1.097811499829704e-87
2.878951333710346e-85
46.0ms
3.062116750577376e-170
7.049764686836336e-168
56.0ms
1.135583820333753e-215
3.8277484723579605e-206
39.0ms
-5.743918235544548e-40
-8.998359990088443e-49
Compiler

Compiled 22 to 16 computations (27.3% saved)

regimes253.0ms (2.9%)

Counts
18 → 5
Calls
Call 1
Inputs
im
(-.f64 (+.f64 1 im) 1)
(*.f64 1/2 (*.f64 4 (*.f64 im im)))
(*.f64 1/2 (/.f64 1 (+.f64 im im)))
(*.f64 1/2 (*.f64 2 (*.f64 im (+.f64 im im))))
(fabs.f64 im)
(sqrt.f64 (*.f64 im im))
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
(*.f64 1/2 (sqrt.f64 (*.f64 im -2)))
(*.f64 1/2 (sqrt.f64 (*.f64 re 4)))
(*.f64 1/2 (cbrt.f64 (+.f64 im im)))
(*.f64 1/2 (/.f64 im (sqrt.f64 (neg.f64 re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
(*.f64 1/2 (sqrt.f64 (*.f64 (-.f64 re im) 2)))
(*.f64 1/2 (sqrt.f64 (neg.f64 (*.f64 (/.f64 im re) im))))
(*.f64 1/2 (sqrt.f64 (/.f64 (*.f64 im (neg.f64 im)) re)))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (/.f64 1 (/.f64 re (*.f64 im im))) -1/2))))
(pow.f64 (sqrt.f64 im) 2)
Outputs
(*.f64 1/2 (sqrt.f64 (*.f64 (-.f64 re im) 2)))
(*.f64 1/2 (sqrt.f64 (*.f64 re 4)))
(*.f64 1/2 (/.f64 im (sqrt.f64 (neg.f64 re))))
(*.f64 1/2 (sqrt.f64 (*.f64 re 4)))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
Calls

4 calls:

109.0ms
re
47.0ms
(*.f64 im im)
44.0ms
(*.f64 im im)
44.0ms
im
Results
ErrorSegmentsBranch
22.9b13re
19.4b5im
31.2b8(*.f64 im im)
31.2b8(*.f64 im im)
Compiler

Compiled 136 to 93 computations (31.6% saved)

bsearch174.0ms (2%)

Algorithm
binary-search
Steps
TimeLeftRight
40.0ms
1.097811499829704e-87
2.878951333710346e-85
46.0ms
3.062116750577376e-170
7.049764686836336e-168
50.0ms
1.135583820333753e-215
3.8277484723579605e-206
38.0ms
-5.743918235544548e-40
-8.998359990088443e-49
Compiler

Compiled 22 to 16 computations (27.3% saved)

regimes348.0ms (4%)

Counts
13 → 5
Calls
Call 1
Inputs
im
(-.f64 (+.f64 1 im) 1)
(*.f64 1/2 (*.f64 4 (*.f64 im im)))
(*.f64 1/2 (/.f64 1 (+.f64 im im)))
(*.f64 1/2 (*.f64 2 (*.f64 im (+.f64 im im))))
(fabs.f64 im)
(sqrt.f64 (*.f64 im im))
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
(*.f64 1/2 (sqrt.f64 (*.f64 im -2)))
(*.f64 1/2 (sqrt.f64 (*.f64 re 4)))
(*.f64 1/2 (cbrt.f64 (+.f64 im im)))
(*.f64 1/2 (/.f64 im (sqrt.f64 (neg.f64 re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
Outputs
(*.f64 1/2 (sqrt.f64 (*.f64 im -2)))
(*.f64 1/2 (sqrt.f64 (*.f64 re 4)))
(*.f64 1/2 (/.f64 im (sqrt.f64 (neg.f64 re))))
(*.f64 1/2 (sqrt.f64 (*.f64 re 4)))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
Calls

4 calls:

277.0ms
re
38.0ms
im
14.0ms
(*.f64 im im)
13.0ms
(*.f64 im im)
Results
ErrorSegmentsBranch
24.6b11re
19.6b5im
34.2b2(*.f64 im im)
34.2b2(*.f64 im im)
Compiler

Compiled 92 to 62 computations (32.6% saved)

bsearch238.0ms (2.7%)

Algorithm
binary-search
Steps
TimeLeftRight
41.0ms
1.097811499829704e-87
2.878951333710346e-85
48.0ms
3.062116750577376e-170
7.049764686836336e-168
112.0ms
1.135583820333753e-215
3.8277484723579605e-206
37.0ms
-5.743918235544548e-40
-8.998359990088443e-49
Compiler

Compiled 22 to 16 computations (27.3% saved)

regimes141.0ms (1.6%)

Counts
12 → 5
Calls
Call 1
Inputs
im
(-.f64 (+.f64 1 im) 1)
(*.f64 1/2 (*.f64 4 (*.f64 im im)))
(*.f64 1/2 (/.f64 1 (+.f64 im im)))
(*.f64 1/2 (*.f64 2 (*.f64 im (+.f64 im im))))
(fabs.f64 im)
(sqrt.f64 (*.f64 im im))
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
(*.f64 1/2 (sqrt.f64 (*.f64 im -2)))
(*.f64 1/2 (sqrt.f64 (*.f64 re 4)))
(*.f64 1/2 (cbrt.f64 (+.f64 im im)))
(*.f64 1/2 (/.f64 im (sqrt.f64 (neg.f64 re))))
Outputs
(*.f64 1/2 (sqrt.f64 (*.f64 im -2)))
(*.f64 1/2 (sqrt.f64 (*.f64 re 4)))
(*.f64 1/2 (/.f64 im (sqrt.f64 (neg.f64 re))))
(*.f64 1/2 (sqrt.f64 (*.f64 re 4)))
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
Calls

4 calls:

77.0ms
re
34.0ms
im
14.0ms
(*.f64 im im)
13.0ms
(*.f64 im im)
Results
ErrorSegmentsBranch
24.7b11re
19.8b5im
34.2b2(*.f64 im im)
34.2b2(*.f64 im im)
Compiler

Compiled 84 to 56 computations (33.3% saved)

bsearch178.0ms (2%)

Algorithm
binary-search
Steps
TimeLeftRight
40.0ms
1.097811499829704e-87
2.878951333710346e-85
47.0ms
3.062116750577376e-170
7.049764686836336e-168
52.0ms
1.135583820333753e-215
3.8277484723579605e-206
39.0ms
-5.743918235544548e-40
-8.998359990088443e-49
Compiler

Compiled 22 to 16 computations (27.3% saved)

regimes109.0ms (1.3%)

Counts
11 → 3
Calls
Call 1
Inputs
im
(-.f64 (+.f64 1 im) 1)
(*.f64 1/2 (*.f64 4 (*.f64 im im)))
(*.f64 1/2 (/.f64 1 (+.f64 im im)))
(*.f64 1/2 (*.f64 2 (*.f64 im (+.f64 im im))))
(fabs.f64 im)
(sqrt.f64 (*.f64 im im))
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
(*.f64 1/2 (sqrt.f64 (*.f64 im -2)))
(*.f64 1/2 (sqrt.f64 (*.f64 re 4)))
(*.f64 1/2 (cbrt.f64 (+.f64 im im)))
Outputs
(*.f64 1/2 (sqrt.f64 (*.f64 im -2)))
(*.f64 1/2 (sqrt.f64 (*.f64 re 4)))
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
Calls

4 calls:

60.0ms
re
20.0ms
im
14.0ms
(*.f64 im im)
12.0ms
(*.f64 im im)
Results
ErrorSegmentsBranch
29.8b10re
21.3b3im
34.2b2(*.f64 im im)
34.2b2(*.f64 im im)
Compiler

Compiled 77 to 51 computations (33.8% saved)

bsearch79.0ms (0.9%)

Algorithm
binary-search
Steps
TimeLeftRight
40.0ms
1.097811499829704e-87
2.878951333710346e-85
38.0ms
-5.743918235544548e-40
-8.998359990088443e-49
Compiler

Compiled 22 to 16 computations (27.3% saved)

regimes100.0ms (1.1%)

Counts
9 → 3
Calls
Call 1
Inputs
im
(-.f64 (+.f64 1 im) 1)
(*.f64 1/2 (*.f64 4 (*.f64 im im)))
(*.f64 1/2 (/.f64 1 (+.f64 im im)))
(*.f64 1/2 (*.f64 2 (*.f64 im (+.f64 im im))))
(fabs.f64 im)
(sqrt.f64 (*.f64 im im))
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
(*.f64 1/2 (sqrt.f64 (*.f64 im -2)))
Outputs
(*.f64 1/2 (sqrt.f64 (*.f64 im -2)))
(sqrt.f64 (*.f64 im im))
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
Calls

4 calls:

51.0ms
re
16.0ms
im
15.0ms
(*.f64 im im)
15.0ms
(*.f64 im im)
Results
ErrorSegmentsBranch
39.1b9re
28.1b3im
43.4b3(*.f64 im im)
43.4b3(*.f64 im im)
Compiler

Compiled 65 to 43 computations (33.8% saved)

bsearch112.0ms (1.3%)

Algorithm
binary-search
Steps
TimeLeftRight
56.0ms
4.979672736915039e-281
2.951319984966989e-280
56.0ms
-1.6212435483716804e-246
-2.4260599671257174e-247
Compiler

Compiled 22 to 16 computations (27.3% saved)

regimes28.0ms (0.3%)

Counts
8 → 2
Calls
Call 1
Inputs
im
(-.f64 (+.f64 1 im) 1)
(*.f64 1/2 (*.f64 4 (*.f64 im im)))
(*.f64 1/2 (/.f64 1 (+.f64 im im)))
(*.f64 1/2 (*.f64 2 (*.f64 im (+.f64 im im))))
(fabs.f64 im)
(sqrt.f64 (*.f64 im im))
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
Outputs
(sqrt.f64 (*.f64 im im))
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
Calls

4 calls:

10.0ms
im
7.0ms
re
4.0ms
(*.f64 im im)
4.0ms
(*.f64 im im)
Results
ErrorSegmentsBranch
48.6b1re
45.7b2im
48.6b1(*.f64 im im)
48.6b1(*.f64 im im)
Compiler

Compiled 59 to 38 computations (35.6% saved)

bsearch54.0ms (0.6%)

Algorithm
binary-search
Steps
TimeLeftRight
54.0ms
4.979672736915039e-281
2.951319984966989e-280
Compiler

Compiled 22 to 16 computations (27.3% saved)

regimes22.0ms (0.2%)

Counts
7 → 2
Calls
Call 1
Inputs
im
(-.f64 (+.f64 1 im) 1)
(*.f64 1/2 (*.f64 4 (*.f64 im im)))
(*.f64 1/2 (/.f64 1 (+.f64 im im)))
(*.f64 1/2 (*.f64 2 (*.f64 im (+.f64 im im))))
(fabs.f64 im)
(sqrt.f64 (*.f64 im im))
Outputs
(*.f64 1/2 (*.f64 4 (*.f64 im im)))
(fabs.f64 im)
Calls

3 calls:

10.0ms
re
6.0ms
im
4.0ms
(*.f64 im im)
Results
ErrorSegmentsBranch
58.7b2re
59.7b1im
59.7b1(*.f64 im im)
Compiler

Compiled 48 to 30 computations (37.5% saved)

bsearch63.0ms (0.7%)

Algorithm
binary-search
Steps
TimeLeftRight
63.0ms
-5.805898195120208e+47
-1.1848127044869995e+41
Compiler

Compiled 22 to 16 computations (27.3% saved)

regimes14.0ms (0.2%)

Counts
5 → 1
Calls
Call 1
Inputs
im
(-.f64 (+.f64 1 im) 1)
(*.f64 1/2 (*.f64 4 (*.f64 im im)))
(*.f64 1/2 (/.f64 1 (+.f64 im im)))
(*.f64 1/2 (*.f64 2 (*.f64 im (+.f64 im im))))
Outputs
(*.f64 1/2 (*.f64 4 (*.f64 im im)))
Calls

3 calls:

4.0ms
re
4.0ms
im
3.0ms
(*.f64 im im)
Results
ErrorSegmentsBranch
60.2b1re
60.2b1im
60.2b1(*.f64 im im)
Compiler

Compiled 42 to 28 computations (33.3% saved)

regimes10.0ms (0.1%)

Accuracy

Total -1.4b remaining (-2.4%)

Threshold costs -1.4b (-2.4%)

Counts
2 → 1
Calls
Call 1
Inputs
im
(-.f64 (+.f64 1 im) 1)
Outputs
(-.f64 (+.f64 1 im) 1)
Calls

2 calls:

5.0ms
re
3.0ms
im
Results
ErrorSegmentsBranch
60.4b1re
60.4b1im
Compiler

Compiled 14 to 10 computations (28.6% saved)

simplify18.0ms (0.2%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0104593
1144593
2158593
3164593
4166593
Stop Event
saturated
Calls
Call 1
Inputs
(if (<=.f64 re -1072112859749038930682446418641085890165285683272620844804132309496150097920) (*.f64 1/2 (*.f64 (pow.f64 (*.f64 (pow.f64 (*.f64 (*.f64 1/2 im) im) 1/6) (pow.f64 (/.f64 -1 re) 1/6)) 3) (sqrt.f64 2))) (if (<=.f64 re -5340047611959607/281474976710656) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))) (if (<=.f64 re -1095519032464787/316912650057057350374175801344) (*.f64 1/2 (/.f64 im (sqrt.f64 (neg.f64 re)))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))))))
(if (<=.f64 re -1072112859749038930682446418641085890165285683272620844804132309496150097920) (*.f64 1/2 (sqrt.f64 (neg.f64 (*.f64 (/.f64 im re) im)))) (if (<=.f64 re -5340047611959607/281474976710656) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))) (if (<=.f64 re -1095519032464787/316912650057057350374175801344) (*.f64 1/2 (/.f64 im (sqrt.f64 (neg.f64 re)))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))))))
(if (<=.f64 im -3605515912425588224/6277101735386680763835789423207666416102355444464034512896) (*.f64 1/2 (sqrt.f64 (*.f64 (-.f64 re im) 2))) (if (<=.f64 im 17630144263921092/1552518092300708935148979488462502555256886017116696611139052038026050952686376886330878408828646477950487730697131073206171580044114814391444287275041181139204454976020849905550265285631598444825262999193716468750892846853816057856) (*.f64 1/2 (sqrt.f64 (*.f64 re 4))) (if (<=.f64 im 8327201508722015/271942652322184754529069161754863937192751676276240344678115398758606622648756348282451201159797394262471336696958208519857448620878186106577674229128492724195241610667721328144244801536) (*.f64 1/2 (/.f64 im (sqrt.f64 (neg.f64 re)))) (if (<=.f64 im 10071316621909643264/9173994463960286046443283581208347763186259956673124494950355357547691504353939232280074212440502746218496) (*.f64 1/2 (sqrt.f64 (*.f64 re 4))) (*.f64 1/2 (*.f64 (sqrt.f64 im) (sqrt.f64 2)))))))
(if (<=.f64 im -3605515912425588224/6277101735386680763835789423207666416102355444464034512896) (*.f64 1/2 (sqrt.f64 (*.f64 (-.f64 re im) 2))) (if (<=.f64 im 17630144263921092/1552518092300708935148979488462502555256886017116696611139052038026050952686376886330878408828646477950487730697131073206171580044114814391444287275041181139204454976020849905550265285631598444825262999193716468750892846853816057856) (*.f64 1/2 (sqrt.f64 (*.f64 re 4))) (if (<=.f64 im 8327201508722015/271942652322184754529069161754863937192751676276240344678115398758606622648756348282451201159797394262471336696958208519857448620878186106577674229128492724195241610667721328144244801536) (*.f64 1/2 (/.f64 im (sqrt.f64 (neg.f64 re)))) (if (<=.f64 im 10071316621909643264/9173994463960286046443283581208347763186259956673124494950355357547691504353939232280074212440502746218496) (*.f64 1/2 (sqrt.f64 (*.f64 re 4))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))))))
(if (<=.f64 im -3605515912425588224/6277101735386680763835789423207666416102355444464034512896) (*.f64 1/2 (sqrt.f64 (*.f64 im -2))) (if (<=.f64 im 17630144263921092/1552518092300708935148979488462502555256886017116696611139052038026050952686376886330878408828646477950487730697131073206171580044114814391444287275041181139204454976020849905550265285631598444825262999193716468750892846853816057856) (*.f64 1/2 (sqrt.f64 (*.f64 re 4))) (if (<=.f64 im 8327201508722015/271942652322184754529069161754863937192751676276240344678115398758606622648756348282451201159797394262471336696958208519857448620878186106577674229128492724195241610667721328144244801536) (*.f64 1/2 (/.f64 im (sqrt.f64 (neg.f64 re)))) (if (<=.f64 im 10071316621909643264/9173994463960286046443283581208347763186259956673124494950355357547691504353939232280074212440502746218496) (*.f64 1/2 (sqrt.f64 (*.f64 re 4))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))))))
(if (<=.f64 im -3605515912425588224/6277101735386680763835789423207666416102355444464034512896) (*.f64 1/2 (sqrt.f64 (*.f64 im -2))) (if (<=.f64 im 17630144263921092/1552518092300708935148979488462502555256886017116696611139052038026050952686376886330878408828646477950487730697131073206171580044114814391444287275041181139204454976020849905550265285631598444825262999193716468750892846853816057856) (*.f64 1/2 (sqrt.f64 (*.f64 re 4))) (if (<=.f64 im 8327201508722015/271942652322184754529069161754863937192751676276240344678115398758606622648756348282451201159797394262471336696958208519857448620878186106577674229128492724195241610667721328144244801536) (*.f64 1/2 (/.f64 im (sqrt.f64 (neg.f64 re)))) (if (<=.f64 im 10071316621909643264/9173994463960286046443283581208347763186259956673124494950355357547691504353939232280074212440502746218496) (*.f64 1/2 (sqrt.f64 (*.f64 re 4))) (*.f64 1/2 (sqrt.f64 (*.f64 2 im)))))))
(if (<=.f64 im -3605515912425588224/6277101735386680763835789423207666416102355444464034512896) (*.f64 1/2 (sqrt.f64 (*.f64 im -2))) (if (<=.f64 im 10071316621909643264/9173994463960286046443283581208347763186259956673124494950355357547691504353939232280074212440502746218496) (*.f64 1/2 (sqrt.f64 (*.f64 re 4))) (*.f64 1/2 (sqrt.f64 (*.f64 2 im)))))
(if (<=.f64 im -6381378324655735/3936100983140358674171118325863157261303419813782882110237782515784158576702511753696331798193284779002326689610310857585686054524054270515222392815820422596546908348791339130466666204306680269934417552562141332061201544797059608540225005885713074181150932467712) (*.f64 1/2 (sqrt.f64 (*.f64 im -2))) (if (<=.f64 im 2084282108818461440/41855804968213567224547853478906320725054875457247406540771499545716837934567817284890561672488119458109166910841919797858872862722356017328064756151166307827869405370407152286801072676024887272960758524035337792904616958075776435777990406039363527010043736240963055342423554029893064011082834640896) (sqrt.f64 (*.f64 im im)) (*.f64 1/2 (sqrt.f64 (*.f64 2 im)))))
(if (<=.f64 im 2084282108818461440/41855804968213567224547853478906320725054875457247406540771499545716837934567817284890561672488119458109166910841919797858872862722356017328064756151166307827869405370407152286801072676024887272960758524035337792904616958075776435777990406039363527010043736240963055342423554029893064011082834640896) (sqrt.f64 (*.f64 im im)) (*.f64 1/2 (sqrt.f64 (*.f64 2 im))))
(if (<=.f64 re -580589819512020821701106667965474985225494724608) (*.f64 1/2 (*.f64 4 (*.f64 im im))) (fabs.f64 im))
(*.f64 1/2 (*.f64 4 (*.f64 im im)))
(-.f64 (+.f64 1 im) 1)
im
Outputs
(if (<=.f64 re -1072112859749038930682446418641085890165285683272620844804132309496150097920) (*.f64 1/2 (*.f64 (pow.f64 (*.f64 (pow.f64 (*.f64 (*.f64 1/2 im) im) 1/6) (pow.f64 (/.f64 -1 re) 1/6)) 3) (sqrt.f64 2))) (if (<=.f64 re -5340047611959607/281474976710656) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))) (if (<=.f64 re -1095519032464787/316912650057057350374175801344) (*.f64 1/2 (/.f64 im (sqrt.f64 (neg.f64 re)))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))))))
(if (<=.f64 re -1072112859749038930682446418641085890165285683272620844804132309496150097920) (*.f64 1/2 (*.f64 (pow.f64 (*.f64 (pow.f64 (*.f64 im (*.f64 1/2 im)) 1/6) (pow.f64 (/.f64 -1 re) 1/6)) 3) (sqrt.f64 2))) (if (<=.f64 re -5340047611959607/281474976710656) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))) (if (<=.f64 re -1095519032464787/316912650057057350374175801344) (*.f64 1/2 (/.f64 im (sqrt.f64 (neg.f64 re)))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))))))
(if (<=.f64 re -1072112859749038930682446418641085890165285683272620844804132309496150097920) (*.f64 1/2 (sqrt.f64 (neg.f64 (*.f64 (/.f64 im re) im)))) (if (<=.f64 re -5340047611959607/281474976710656) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))) (if (<=.f64 re -1095519032464787/316912650057057350374175801344) (*.f64 1/2 (/.f64 im (sqrt.f64 (neg.f64 re)))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))))))
(if (<=.f64 re -1072112859749038930682446418641085890165285683272620844804132309496150097920) (*.f64 1/2 (sqrt.f64 (*.f64 (/.f64 im re) (neg.f64 im)))) (if (<=.f64 re -5340047611959607/281474976710656) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))) (if (<=.f64 re -1095519032464787/316912650057057350374175801344) (*.f64 1/2 (/.f64 im (sqrt.f64 (neg.f64 re)))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))))))
(if (<=.f64 im -3605515912425588224/6277101735386680763835789423207666416102355444464034512896) (*.f64 1/2 (sqrt.f64 (*.f64 (-.f64 re im) 2))) (if (<=.f64 im 17630144263921092/1552518092300708935148979488462502555256886017116696611139052038026050952686376886330878408828646477950487730697131073206171580044114814391444287275041181139204454976020849905550265285631598444825262999193716468750892846853816057856) (*.f64 1/2 (sqrt.f64 (*.f64 re 4))) (if (<=.f64 im 8327201508722015/271942652322184754529069161754863937192751676276240344678115398758606622648756348282451201159797394262471336696958208519857448620878186106577674229128492724195241610667721328144244801536) (*.f64 1/2 (/.f64 im (sqrt.f64 (neg.f64 re)))) (if (<=.f64 im 10071316621909643264/9173994463960286046443283581208347763186259956673124494950355357547691504353939232280074212440502746218496) (*.f64 1/2 (sqrt.f64 (*.f64 re 4))) (*.f64 1/2 (*.f64 (sqrt.f64 im) (sqrt.f64 2)))))))
(if (<=.f64 im -7042023266456227/12259964326927110866866776217202473468949912977468817408) (*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 re im)))) (if (<=.f64 im 4407536065980273/388129523075177233787244872115625638814221504279174152784763009506512738171594221582719602207161619487621932674282768301542895011028703597861071818760295284801113744005212476387566321407899611206315749798429117187723211713454014464) (*.f64 1/2 (sqrt.f64 (*.f64 re 4))) (if (<=.f64 im 8327201508722015/271942652322184754529069161754863937192751676276240344678115398758606622648756348282451201159797394262471336696958208519857448620878186106577674229128492724195241610667721328144244801536) (*.f64 1/2 (/.f64 im (sqrt.f64 (neg.f64 re)))) (if (<=.f64 im 2458817534645909/2239744742177804210557442280568444278121645497234649534899989100963791871180160945380877493271607115776) (*.f64 1/2 (sqrt.f64 (*.f64 re 4))) (*.f64 1/2 (*.f64 (sqrt.f64 2) (sqrt.f64 im)))))))
(if (<=.f64 im -3605515912425588224/6277101735386680763835789423207666416102355444464034512896) (*.f64 1/2 (sqrt.f64 (*.f64 (-.f64 re im) 2))) (if (<=.f64 im 17630144263921092/1552518092300708935148979488462502555256886017116696611139052038026050952686376886330878408828646477950487730697131073206171580044114814391444287275041181139204454976020849905550265285631598444825262999193716468750892846853816057856) (*.f64 1/2 (sqrt.f64 (*.f64 re 4))) (if (<=.f64 im 8327201508722015/271942652322184754529069161754863937192751676276240344678115398758606622648756348282451201159797394262471336696958208519857448620878186106577674229128492724195241610667721328144244801536) (*.f64 1/2 (/.f64 im (sqrt.f64 (neg.f64 re)))) (if (<=.f64 im 10071316621909643264/9173994463960286046443283581208347763186259956673124494950355357547691504353939232280074212440502746218496) (*.f64 1/2 (sqrt.f64 (*.f64 re 4))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))))))
(if (<=.f64 im -7042023266456227/12259964326927110866866776217202473468949912977468817408) (*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 re im)))) (if (<=.f64 im 4407536065980273/388129523075177233787244872115625638814221504279174152784763009506512738171594221582719602207161619487621932674282768301542895011028703597861071818760295284801113744005212476387566321407899611206315749798429117187723211713454014464) (*.f64 1/2 (sqrt.f64 (*.f64 re 4))) (if (<=.f64 im 8327201508722015/271942652322184754529069161754863937192751676276240344678115398758606622648756348282451201159797394262471336696958208519857448620878186106577674229128492724195241610667721328144244801536) (*.f64 1/2 (/.f64 im (sqrt.f64 (neg.f64 re)))) (if (<=.f64 im 2458817534645909/2239744742177804210557442280568444278121645497234649534899989100963791871180160945380877493271607115776) (*.f64 1/2 (sqrt.f64 (*.f64 re 4))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))))))
(if (<=.f64 im -3605515912425588224/6277101735386680763835789423207666416102355444464034512896) (*.f64 1/2 (sqrt.f64 (*.f64 im -2))) (if (<=.f64 im 17630144263921092/1552518092300708935148979488462502555256886017116696611139052038026050952686376886330878408828646477950487730697131073206171580044114814391444287275041181139204454976020849905550265285631598444825262999193716468750892846853816057856) (*.f64 1/2 (sqrt.f64 (*.f64 re 4))) (if (<=.f64 im 8327201508722015/271942652322184754529069161754863937192751676276240344678115398758606622648756348282451201159797394262471336696958208519857448620878186106577674229128492724195241610667721328144244801536) (*.f64 1/2 (/.f64 im (sqrt.f64 (neg.f64 re)))) (if (<=.f64 im 10071316621909643264/9173994463960286046443283581208347763186259956673124494950355357547691504353939232280074212440502746218496) (*.f64 1/2 (sqrt.f64 (*.f64 re 4))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))))))
(if (<=.f64 im -7042023266456227/12259964326927110866866776217202473468949912977468817408) (*.f64 1/2 (sqrt.f64 (*.f64 im -2))) (if (<=.f64 im 4407536065980273/388129523075177233787244872115625638814221504279174152784763009506512738171594221582719602207161619487621932674282768301542895011028703597861071818760295284801113744005212476387566321407899611206315749798429117187723211713454014464) (*.f64 1/2 (sqrt.f64 (*.f64 re 4))) (if (<=.f64 im 8327201508722015/271942652322184754529069161754863937192751676276240344678115398758606622648756348282451201159797394262471336696958208519857448620878186106577674229128492724195241610667721328144244801536) (*.f64 1/2 (/.f64 im (sqrt.f64 (neg.f64 re)))) (if (<=.f64 im 2458817534645909/2239744742177804210557442280568444278121645497234649534899989100963791871180160945380877493271607115776) (*.f64 1/2 (sqrt.f64 (*.f64 re 4))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))))))
(if (<=.f64 im -3605515912425588224/6277101735386680763835789423207666416102355444464034512896) (*.f64 1/2 (sqrt.f64 (*.f64 im -2))) (if (<=.f64 im 17630144263921092/1552518092300708935148979488462502555256886017116696611139052038026050952686376886330878408828646477950487730697131073206171580044114814391444287275041181139204454976020849905550265285631598444825262999193716468750892846853816057856) (*.f64 1/2 (sqrt.f64 (*.f64 re 4))) (if (<=.f64 im 8327201508722015/271942652322184754529069161754863937192751676276240344678115398758606622648756348282451201159797394262471336696958208519857448620878186106577674229128492724195241610667721328144244801536) (*.f64 1/2 (/.f64 im (sqrt.f64 (neg.f64 re)))) (if (<=.f64 im 10071316621909643264/9173994463960286046443283581208347763186259956673124494950355357547691504353939232280074212440502746218496) (*.f64 1/2 (sqrt.f64 (*.f64 re 4))) (*.f64 1/2 (sqrt.f64 (*.f64 2 im)))))))
(if (<=.f64 im -7042023266456227/12259964326927110866866776217202473468949912977468817408) (*.f64 1/2 (sqrt.f64 (*.f64 im -2))) (if (<=.f64 im 4407536065980273/388129523075177233787244872115625638814221504279174152784763009506512738171594221582719602207161619487621932674282768301542895011028703597861071818760295284801113744005212476387566321407899611206315749798429117187723211713454014464) (*.f64 1/2 (sqrt.f64 (*.f64 re 4))) (if (<=.f64 im 8327201508722015/271942652322184754529069161754863937192751676276240344678115398758606622648756348282451201159797394262471336696958208519857448620878186106577674229128492724195241610667721328144244801536) (*.f64 1/2 (/.f64 im (sqrt.f64 (neg.f64 re)))) (if (<=.f64 im 2458817534645909/2239744742177804210557442280568444278121645497234649534899989100963791871180160945380877493271607115776) (*.f64 1/2 (sqrt.f64 (*.f64 re 4))) (*.f64 1/2 (sqrt.f64 (*.f64 im 2)))))))
(if (<=.f64 im -3605515912425588224/6277101735386680763835789423207666416102355444464034512896) (*.f64 1/2 (sqrt.f64 (*.f64 im -2))) (if (<=.f64 im 10071316621909643264/9173994463960286046443283581208347763186259956673124494950355357547691504353939232280074212440502746218496) (*.f64 1/2 (sqrt.f64 (*.f64 re 4))) (*.f64 1/2 (sqrt.f64 (*.f64 2 im)))))
(if (<=.f64 im -7042023266456227/12259964326927110866866776217202473468949912977468817408) (*.f64 1/2 (sqrt.f64 (*.f64 im -2))) (if (<=.f64 im 2458817534645909/2239744742177804210557442280568444278121645497234649534899989100963791871180160945380877493271607115776) (*.f64 1/2 (sqrt.f64 (*.f64 re 4))) (*.f64 1/2 (sqrt.f64 (*.f64 im 2)))))
(if (<=.f64 im -6381378324655735/3936100983140358674171118325863157261303419813782882110237782515784158576702511753696331798193284779002326689610310857585686054524054270515222392815820422596546908348791339130466666204306680269934417552562141332061201544797059608540225005885713074181150932467712) (*.f64 1/2 (sqrt.f64 (*.f64 im -2))) (if (<=.f64 im 2084282108818461440/41855804968213567224547853478906320725054875457247406540771499545716837934567817284890561672488119458109166910841919797858872862722356017328064756151166307827869405370407152286801072676024887272960758524035337792904616958075776435777990406039363527010043736240963055342423554029893064011082834640896) (sqrt.f64 (*.f64 im im)) (*.f64 1/2 (sqrt.f64 (*.f64 2 im)))))
(if (<=.f64 im -6381378324655735/3936100983140358674171118325863157261303419813782882110237782515784158576702511753696331798193284779002326689610310857585686054524054270515222392815820422596546908348791339130466666204306680269934417552562141332061201544797059608540225005885713074181150932467712) (*.f64 1/2 (sqrt.f64 (*.f64 im -2))) (if (<=.f64 im 8141726987572115/163499238157084246970890052651977815332245607254872681799888670100456398181905536269103756533156716633238933245476249210386222120009203192687752953715493389952614864728152938620316690140722215910002962984513038253533659992483501702257775023591263777382983344691261934931342007929269781293292322816) (sqrt.f64 (*.f64 im im)) (*.f64 1/2 (sqrt.f64 (*.f64 im 2)))))
(if (<=.f64 im 2084282108818461440/41855804968213567224547853478906320725054875457247406540771499545716837934567817284890561672488119458109166910841919797858872862722356017328064756151166307827869405370407152286801072676024887272960758524035337792904616958075776435777990406039363527010043736240963055342423554029893064011082834640896) (sqrt.f64 (*.f64 im im)) (*.f64 1/2 (sqrt.f64 (*.f64 2 im))))
(if (<=.f64 im 8141726987572115/163499238157084246970890052651977815332245607254872681799888670100456398181905536269103756533156716633238933245476249210386222120009203192687752953715493389952614864728152938620316690140722215910002962984513038253533659992483501702257775023591263777382983344691261934931342007929269781293292322816) (sqrt.f64 (*.f64 im im)) (*.f64 1/2 (sqrt.f64 (*.f64 im 2))))
(if (<=.f64 re -580589819512020821701106667965474985225494724608) (*.f64 1/2 (*.f64 4 (*.f64 im im))) (fabs.f64 im))
(*.f64 1/2 (*.f64 4 (*.f64 im im)))
(-.f64 (+.f64 1 im) 1)
(+.f64 (+.f64 im 1) -1)
(+.f64 -1 (+.f64 im 1))
im

end192.0ms (2.2%)

Stop Event
fuel
Compiler

Compiled 816 to 595 computations (27.1% saved)

Profiling

Loading profile data...