Details

Time bar (total: 6.9s)

analyze229.0ms (3.3%)

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

Compiled 18 to 13 computations (27.8% saved)

sample2.4s (34.9%)

Results
1.2s6355×body256valid
519.0ms662×body2048valid
379.0ms546×body4096valid
206.0ms438×body1024valid
120.0ms255×body512valid

preprocess20.0ms (0.3%)

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)

prune1.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

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

Compiled 12 to 9 computations (25% saved)

localize13.0ms (0.2%)

Local error

Found 2 expressions with local error:

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

Compiled 39 to 16 computations (59% saved)

series14.0ms (0.2%)

Counts
2 → 32
Calls

12 calls:

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

rewrite66.0ms (0.9%)

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
0819
117819
2236119
Stop Event
node limit
Counts
2 → 55
Calls
Call 1
Inputs
(+.f64 re (hypot.f64 re im))
(sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.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 expm1.f64 (log1p.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 exp.f64 (log.f64 (+.f64 re (hypot.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 re (hypot.f64 re im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (hypot.f64 re im) re)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 re) 2) (cbrt.f64 re) (hypot.f64 re im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (cbrt.f64 (hypot.f64 re im)) re)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 re) (sqrt.f64 re) (hypot.f64 re im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) re)))))
((#(struct:change #<rule egg-rr> (2) ((x -.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 expm1.f64 (log1p.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 exp.f64 (log.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))))))

simplify66.0ms (1%)

Algorithm
egg-herbie
Rules
753×distribute-rgt-in_binary64
620×associate-*r*_binary64
577×associate-*l*_binary64
572×fma-def_binary64
282×unswap-sqr_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0129926
1375872
21203816
35786778
Stop Event
node limit
Counts
87 → 101
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)))))
Outputs
im
(+.f64 re im)
(+.f64 im re)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im))
(fma.f64 1/2 (/.f64 (*.f64 re re) im) (+.f64 im re))
(fma.f64 1/2 (/.f64 re (/.f64 im re)) (+.f64 im re))
(+.f64 im (fma.f64 1/2 (*.f64 (/.f64 re im) re) re))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im)))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 (*.f64 re re) im) (+.f64 im re)))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 re (/.f64 im re)) (+.f64 im re)))
(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 re 2 (fma.f64 1/2 (*.f64 (/.f64 im re) im) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 (*.f64 2 re) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 2 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(fma.f64 1/2 (/.f64 im (/.f64 re im)) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 re 2 (/.f64 -1/8 (/.f64 (pow.f64 re 3) (pow.f64 im 4))))))
(fma.f64 1/2 (*.f64 (/.f64 im re) im) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 re 2 (*.f64 (pow.f64 im 6) (/.f64 1/16 (pow.f64 re 5))))))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 (/.f64 (*.f64 im im) re) -1/2)
(*.f64 (/.f64 im (/.f64 re im)) -1/2)
(*.f64 (*.f64 (/.f64 im re) im) -1/2)
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (*.f64 (/.f64 (*.f64 im im) re) -1/2))
(fma.f64 (/.f64 im (/.f64 re im)) -1/2 (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8))
(fma.f64 (*.f64 (/.f64 im re) im) -1/2 (*.f64 (pow.f64 im 4) (/.f64 1/8 (pow.f64 re 3))))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (+.f64 (*.f64 -1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re))))
(fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 -1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (*.f64 (/.f64 (*.f64 im im) re) -1/2)))
(fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8 (fma.f64 (/.f64 im (/.f64 re im)) -1/2 (/.f64 -1/16 (/.f64 (pow.f64 re 5) (pow.f64 im 6)))))
(fma.f64 (*.f64 (/.f64 im re) im) -1/2 (fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8 (*.f64 (/.f64 -1/16 (pow.f64 re 5)) (pow.f64 im 6))))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (+.f64 (*.f64 1/2 (/.f64 (+.f64 (pow.f64 (*.f64 -1/8 (pow.f64 im 4)) 2) (*.f64 1/16 (pow.f64 im 8))) (pow.f64 re 7))) (+.f64 (*.f64 -1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))))
(fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 1/2 (/.f64 (+.f64 (pow.f64 (*.f64 -1/8 (pow.f64 im 4)) 2) (*.f64 1/16 (pow.f64 im 8))) (pow.f64 re 7)) (fma.f64 -1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (*.f64 (/.f64 (*.f64 im im) re) -1/2))))
(fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8 (fma.f64 1/2 (/.f64 (fma.f64 1/16 (pow.f64 im 8) (*.f64 (pow.f64 im 8) 1/64)) (pow.f64 re 7)) (fma.f64 (/.f64 im (/.f64 re im)) -1/2 (/.f64 -1/16 (/.f64 (pow.f64 re 5) (pow.f64 im 6))))))
(fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8 (fma.f64 (*.f64 (/.f64 im re) im) -1/2 (fma.f64 1/2 (/.f64 (*.f64 (pow.f64 im 8) 5/64) (pow.f64 re 7)) (*.f64 (/.f64 -1/16 (pow.f64 re 5)) (pow.f64 im 6)))))
(fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8 (fma.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) -1/16 (fma.f64 (*.f64 (/.f64 im re) im) -1/2 (/.f64 (*.f64 (pow.f64 im 8) 5/128) (pow.f64 re 7)))))
(*.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 re 2 (fma.f64 1/2 (*.f64 (/.f64 im re) im) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 (*.f64 2 re) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 2 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(fma.f64 1/2 (/.f64 im (/.f64 re im)) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 re 2 (/.f64 -1/8 (/.f64 (pow.f64 re 3) (pow.f64 im 4))))))
(fma.f64 1/2 (*.f64 (/.f64 im re) im) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 re 2 (*.f64 (pow.f64 im 6) (/.f64 1/16 (pow.f64 re 5))))))
im
(+.f64 re im)
(+.f64 im re)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 re im))
(fma.f64 1/2 (/.f64 (*.f64 re re) im) (+.f64 im re))
(fma.f64 1/2 (/.f64 re (/.f64 im re)) (+.f64 im re))
(+.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)) (fma.f64 1/2 (/.f64 re (/.f64 im re)) (+.f64 im 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 (-.f64 (/.f64 (*.f64 (*.f64 re re) -1/2) im) im))
(-.f64 (fma.f64 (*.f64 (/.f64 re im) re) -1/2 re) im)
(-.f64 re (fma.f64 1/2 (*.f64 (/.f64 re im) re) im))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 re (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))))
(fma.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (+.f64 re (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))))
(+.f64 (-.f64 (/.f64 (*.f64 (*.f64 re re) -1/2) im) im) (fma.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) 1/8 re))
(fma.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) 1/8 (-.f64 (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 re (fma.f64 1/2 (*.f64 (/.f64 re im) 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 (sqrt.f64 (/.f64 1 im)) (*.f64 re 1/2))))
(+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 2))) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im))))
(fma.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 (*.f64 re re) (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2))) (sqrt.f64 (/.f64 1 im)))) (fma.f64 1/2 (*.f64 (*.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 (/.f64 1/2 im) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2)) (*.f64 (*.f64 re re) (sqrt.f64 2)))) (*.f64 (*.f64 1/2 re) (sqrt.f64 2)))))
(fma.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 im))) (+.f64 (*.f64 (*.f64 re re) (+.f64 (/.f64 1/2 im) (*.f64 -1/2 (/.f64 1/2 im)))) re)) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
(*.f64 (sqrt.f64 2) (+.f64 (sqrt.f64 im) (*.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) (+.f64 (*.f64 (*.f64 re re) (*.f64 1/2 (/.f64 1/2 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 2) (*.f64 (*.f64 (*.f64 re re) (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2))) (sqrt.f64 (/.f64 1 im)))) (fma.f64 -1/4 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 (pow.f64 re 3) (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2))) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (fma.f64 1/2 (*.f64 (*.f64 re (sqrt.f64 2)) (sqrt.f64 (/.f64 1 im))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))))
(+.f64 (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 (sqrt.f64 (/.f64 1 im)) (+.f64 (*.f64 1/2 (*.f64 (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2)) (*.f64 (*.f64 re re) (sqrt.f64 2)))) (*.f64 (*.f64 1/2 re) (sqrt.f64 2))))) (*.f64 (*.f64 (-.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 1/2 (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 im))) (+.f64 (*.f64 (*.f64 re re) (+.f64 (/.f64 1/2 im) (*.f64 -1/2 (/.f64 1/2 im)))) re))) (*.f64 (sqrt.f64 2) (+.f64 (sqrt.f64 im) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 3))) (*.f64 (*.f64 -1/4 (+.f64 (/.f64 1/2 im) (*.f64 -1/2 (/.f64 1/2 im)))) (pow.f64 re 3))))))
(*.f64 (sqrt.f64 2) (+.f64 (*.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) (+.f64 (*.f64 (*.f64 re re) (*.f64 1/2 (/.f64 1/2 im))) re)) (+.f64 (sqrt.f64 im) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 3))) (*.f64 (*.f64 -1/4 (*.f64 1/2 (/.f64 1/2 im))) (pow.f64 re 3))))))
(*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re))
(*.f64 2 (sqrt.f64 re))
(+.f64 (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)))
(fma.f64 1/4 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)))
(fma.f64 2 (sqrt.f64 re) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 (*.f64 im im) 1/4)))
(fma.f64 2 (sqrt.f64 re) (*.f64 (*.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 im (*.f64 im (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) (fma.f64 2 (sqrt.f64 re) (*.f64 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 1/4 (sqrt.f64 2))) 2)) (*.f64 (*.f64 (pow.f64 im 4) (sqrt.f64 (/.f64 1 re))) -1/2))))
(fma.f64 2 (sqrt.f64 re) (fma.f64 (*.f64 im im) (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (*.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)))))))
(fma.f64 2 (sqrt.f64 re) (fma.f64 (*.f64 im im) (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (*.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 -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 (*.f64 1/4 (/.f64 1 (sqrt.f64 2))) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) 2)) (*.f64 (pow.f64 im 4) (sqrt.f64 (/.f64 1 re)))) (fma.f64 1/2 (*.f64 (+.f64 (/.f64 1/16 (pow.f64 re 5)) (*.f64 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 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 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 1/4 (sqrt.f64 2))) 2))) (*.f64 (*.f64 1/2 (pow.f64 im 6)) (-.f64 (/.f64 1/16 (pow.f64 re 5)) (*.f64 -1/8 (/.f64 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 1/4 (sqrt.f64 2))) 2)) (*.f64 re re))))))) (fma.f64 2 (sqrt.f64 re) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 (*.f64 im im) 1/4))))
(fma.f64 (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 (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))))))) (fma.f64 2 (sqrt.f64 re) (*.f64 (*.f64 im im) (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))))))
(fma.f64 (sqrt.f64 (/.f64 1 re)) (fma.f64 -1/2 (*.f64 (*.f64 (pow.f64 im 4) (/.f64 1 (pow.f64 re 3))) (+.f64 1/8 (*.f64 (/.f64 1/4 (sqrt.f64 2)) (/.f64 1/4 (sqrt.f64 2))))) (*.f64 (pow.f64 im 6) (*.f64 1/2 (+.f64 (/.f64 1/16 (pow.f64 re 5)) (*.f64 1/8 (/.f64 (*.f64 (/.f64 1 (pow.f64 re 3)) (+.f64 1/8 (*.f64 (/.f64 1/4 (sqrt.f64 2)) (/.f64 1/4 (sqrt.f64 2))))) (*.f64 re re))))))) (fma.f64 2 (sqrt.f64 re) (*.f64 (*.f64 im im) (*.f64 1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))))))

eval40.0ms (0.6%)

Compiler

Compiled 2095 to 1417 computations (32.4% saved)

prune25.0ms (0.4%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New9011101
Fresh000
Picked101
Done000
Total9111102
Error
5.1b
Counts
102 → 11
Alt Table
Click to see full alt table
StatusErrorProgram
51.7b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (*.f64 (/.f64 im re) im) -1/2))))
46.7b
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
46.7b
(*.f64 1/2 (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
53.3b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))))
44.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
47.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 re im))))
49.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im))))
45.6b
(*.f64 1/2 (*.f64 2 (sqrt.f64 re)))
45.9b
(*.f64 1/2 (*.f64 (pow.f64 (sqrt.f64 2) 2) (sqrt.f64 re)))
13.6b
(*.f64 1/2 (*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2)))
46.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 im (fma.f64 1/2 (*.f64 (/.f64 re im) re) re)))))
Compiler

Compiled 246 to 202 computations (17.9% saved)

localize14.0ms (0.2%)

Local error

Found 3 expressions with local error:

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

Compiled 42 to 17 computations (59.5% saved)

series9.0ms (0.1%)

Counts
2 → 16
Calls

12 calls:

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

rewrite62.0ms (0.9%)

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
2238921
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 (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 pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/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 expm1.f64 (log1p.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 exp.f64 (log.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 expm1.f64 (log1p.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 exp.f64 (log.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im)))))))))

simplify59.0ms (0.9%)

Algorithm
egg-herbie
Rules
597×associate-*r*_binary64
558×associate-*l*_binary64
554×fma-def_binary64
361×associate-/l/_binary64
358×associate-/r/_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0106926
1315836
2993762
35051702
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 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 (*.f64 1/2 (sqrt.f64 2)) (*.f64 re (*.f64 re (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2))))) (*.f64 (*.f64 1/2 (sqrt.f64 2)) re))))
(fma.f64 (sqrt.f64 2) (sqrt.f64 im) (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 (+.f64 re (*.f64 re (*.f64 re (+.f64 (/.f64 1/2 im) (*.f64 (/.f64 1 im) -1/4))))) 1/2))))
(*.f64 (sqrt.f64 2) (fma.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (+.f64 re (*.f64 re (*.f64 re (*.f64 (/.f64 1 im) 1/4))))) (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 (sqrt.f64 2) (*.f64 (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2)) (*.f64 (pow.f64 re 3) (sqrt.f64 (/.f64 1 (pow.f64 im 3)))))) (fma.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))))
(+.f64 (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 (sqrt.f64 (/.f64 1 im)) (+.f64 (*.f64 (*.f64 1/2 (sqrt.f64 2)) (*.f64 re (*.f64 re (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2))))) (*.f64 (*.f64 1/2 (sqrt.f64 2)) re)))) (*.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) (fma.f64 1/2 (*.f64 re (sqrt.f64 (/.f64 1 im))) (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 (sqrt.f64 (/.f64 1 (pow.f64 im 3))) (*.f64 -1/4 (pow.f64 re 3)))))))
(*.f64 (sqrt.f64 2) (fma.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (+.f64 re (*.f64 re (*.f64 re (*.f64 (/.f64 1 im) 1/4))))) (fma.f64 (*.f64 (/.f64 1 im) 1/4) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 3))) (*.f64 -1/4 (pow.f64 re 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 im (*.f64 im (sqrt.f64 (/.f64 1 (pow.f64 re 3)))))))
(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 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 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 2 (sqrt.f64 re) (fma.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 im im)) (*.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 -1/2 (pow.f64 im 4))))))
(fma.f64 2 (sqrt.f64 re) (fma.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 im im)) (*.f64 (*.f64 (/.f64 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 (*.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 (+.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))) (pow.f64 im 4)) (*.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)))) (pow.f64 im 6))))) (fma.f64 2 (sqrt.f64 re) (*.f64 1/4 (*.f64 im (*.f64 im (sqrt.f64 (/.f64 1 (pow.f64 re 3))))))))
(fma.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 im im)) (fma.f64 (sqrt.f64 (/.f64 1 re)) (fma.f64 -1/2 (*.f64 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 1/4 (sqrt.f64 2))) 2)) (pow.f64 im 4)) (*.f64 (+.f64 (/.f64 1/16 (pow.f64 re 5)) (*.f64 1/8 (/.f64 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 1/4 (sqrt.f64 2))) 2)) (*.f64 re re)))) (*.f64 1/2 (pow.f64 im 6)))) (*.f64 2 (sqrt.f64 re))))
(fma.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 im im)) (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)))) (*.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))
(+.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 re (*.f64 re (*.f64 (/.f64 1 im) 1/4))))) (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 (pow.f64 re 3) (*.f64 (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (fma.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (+.f64 re (*.f64 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 1/2 (*.f64 re (sqrt.f64 (/.f64 1 im))) (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 (sqrt.f64 (/.f64 1 (pow.f64 im 3))) (*.f64 -1/4 (pow.f64 re 3))))))
(fma.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (+.f64 re (*.f64 re (*.f64 re (*.f64 (/.f64 1 im) 1/4))))) (fma.f64 (*.f64 (/.f64 1 im) 1/4) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 3))) (*.f64 -1/4 (pow.f64 re 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 (sqrt.f64 2) (sqrt.f64 re) (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 (/.f64 im (sqrt.f64 2)) im))))
(fma.f64 (sqrt.f64 2) (sqrt.f64 re) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 (*.f64 1/4 (*.f64 im im)) (sqrt.f64 2))))
(+.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 (/.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 2)) (pow.f64 im 4))))))
(fma.f64 (sqrt.f64 2) (sqrt.f64 re) (fma.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 (/.f64 im (sqrt.f64 2)) im)) (/.f64 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 1/4 (sqrt.f64 2))) 2)) (/.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 -1/2 (pow.f64 im 4)))))))
(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 (/.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 (/.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)))) (sqrt.f64 2)) (pow.f64 im 6))) (*.f64 -1/2 (*.f64 (/.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 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 2) (sqrt.f64 re) (fma.f64 (sqrt.f64 (/.f64 1 re)) (fma.f64 1/2 (*.f64 (pow.f64 im 6) (/.f64 (+.f64 (/.f64 1/16 (pow.f64 re 5)) (*.f64 1/8 (/.f64 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 1/4 (sqrt.f64 2))) 2)) (*.f64 re re)))) (sqrt.f64 2))) (*.f64 -1/2 (*.f64 (pow.f64 im 4) (/.f64 (+.f64 (/.f64 1/8 (pow.f64 re 3)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 1/4 (sqrt.f64 2))) 2)) (sqrt.f64 2))))) (*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 (/.f64 im (sqrt.f64 2)) im)))))
(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 -1/2 (*.f64 (pow.f64 im 4) (/.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))))) (fma.f64 (sqrt.f64 2) (sqrt.f64 re) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 (*.f64 1/4 (*.f64 im im)) (sqrt.f64 2)))))

localize9.0ms (0.1%)

Compiler

Compiled 18 to 14 computations (22.2% saved)

localize9.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 21 to 15 computations (28.6% saved)

series2.0ms (0%)

Counts
1 → 0
Calls

3 calls:

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

rewrite47.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
486×pow1_binary64
466×add-sqr-sqrt_binary64
458×*-un-lft-identity_binary64
450×add-log-exp_binary64
450×log1p-expm1-u_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify7.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

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

localize12.0ms (0.2%)

Compiler

Compiled 28 to 15 computations (46.4% saved)

localize16.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(*.f64 2 (*.f64 (*.f64 (/.f64 im re) im) -1/2))
0.1b
(*.f64 (/.f64 im re) im)
0.2b
(*.f64 (*.f64 (/.f64 im re) im) -1/2)
20.3b
(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
4 → 84
Calls

24 calls:

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

rewrite86.0ms (1.2%)

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

Useful iterations: 1 (0.0ms)

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

simplify88.0ms (1.3%)

Algorithm
egg-herbie
Rules
1012×fma-def_binary64
445×distribute-lft-neg-in_binary64
433×distribute-rgt-neg-in_binary64
390×associate-*l/_binary64
360×associate-/l*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
017800
138800
287800
3201800
4512800
51755800
63937800
76347800
Stop Event
node limit
Counts
235 → 160
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/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/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 (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 (/.f64 (pow.f64 im 2) re))
Outputs
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 im (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 im (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 im (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 im (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 im (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 im (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 im (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 im (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(neg.f64 (*.f64 (*.f64 (sqrt.f64 -1) im) (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 im (neg.f64 (sqrt.f64 -1))))
(*.f64 (sqrt.f64 -1) (*.f64 im (neg.f64 (sqrt.f64 (/.f64 1 re)))))
(*.f64 im (*.f64 (sqrt.f64 -1) (neg.f64 (sqrt.f64 (/.f64 1 re)))))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 (sqrt.f64 -1))))
(*.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 (*.f64 (sqrt.f64 -1) im) (neg.f64 (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im (neg.f64 (sqrt.f64 -1))))
(*.f64 (sqrt.f64 -1) (*.f64 im (neg.f64 (sqrt.f64 (/.f64 1 re)))))
(*.f64 im (*.f64 (sqrt.f64 -1) (neg.f64 (sqrt.f64 (/.f64 1 re)))))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 (sqrt.f64 -1))))
(*.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 (*.f64 (sqrt.f64 -1) im) (neg.f64 (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im (neg.f64 (sqrt.f64 -1))))
(*.f64 (sqrt.f64 -1) (*.f64 im (neg.f64 (sqrt.f64 (/.f64 1 re)))))
(*.f64 im (*.f64 (sqrt.f64 -1) (neg.f64 (sqrt.f64 (/.f64 1 re)))))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 (sqrt.f64 -1))))
(*.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 (*.f64 (sqrt.f64 -1) im) (neg.f64 (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im (neg.f64 (sqrt.f64 -1))))
(*.f64 (sqrt.f64 -1) (*.f64 im (neg.f64 (sqrt.f64 (/.f64 1 re)))))
(*.f64 im (*.f64 (sqrt.f64 -1) (neg.f64 (sqrt.f64 (/.f64 1 re)))))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 (sqrt.f64 -1))))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(/.f64 (*.f64 -1/2 (*.f64 im im)) re)
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 (*.f64 im im) (/.f64 -1/2 re))
(*.f64 (*.f64 im -1/2) (/.f64 im re))
(*.f64 im (/.f64 -1/2 (/.f64 re im)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(/.f64 (*.f64 -1/2 (*.f64 im im)) re)
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 (*.f64 im im) (/.f64 -1/2 re))
(*.f64 (*.f64 im -1/2) (/.f64 im re))
(*.f64 im (/.f64 -1/2 (/.f64 re im)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(/.f64 (*.f64 -1/2 (*.f64 im im)) re)
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 (*.f64 im im) (/.f64 -1/2 re))
(*.f64 (*.f64 im -1/2) (/.f64 im re))
(*.f64 im (/.f64 -1/2 (/.f64 re im)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(/.f64 (*.f64 -1/2 (*.f64 im im)) re)
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 (*.f64 im im) (/.f64 -1/2 re))
(*.f64 (*.f64 im -1/2) (/.f64 im re))
(*.f64 im (/.f64 -1/2 (/.f64 re im)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(/.f64 (*.f64 -1/2 (*.f64 im im)) re)
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 (*.f64 im im) (/.f64 -1/2 re))
(*.f64 (*.f64 im -1/2) (/.f64 im re))
(*.f64 im (/.f64 -1/2 (/.f64 re im)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(/.f64 (*.f64 -1/2 (*.f64 im im)) re)
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 (*.f64 im im) (/.f64 -1/2 re))
(*.f64 (*.f64 im -1/2) (/.f64 im re))
(*.f64 im (/.f64 -1/2 (/.f64 re im)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(/.f64 (*.f64 -1/2 (*.f64 im im)) re)
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 (*.f64 im im) (/.f64 -1/2 re))
(*.f64 (*.f64 im -1/2) (/.f64 im re))
(*.f64 im (/.f64 -1/2 (/.f64 re im)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(/.f64 (*.f64 -1/2 (*.f64 im im)) re)
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 (*.f64 im im) (/.f64 -1/2 re))
(*.f64 (*.f64 im -1/2) (/.f64 im re))
(*.f64 im (/.f64 -1/2 (/.f64 re im)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(/.f64 (*.f64 -1/2 (*.f64 im im)) re)
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 (*.f64 im im) (/.f64 -1/2 re))
(*.f64 (*.f64 im -1/2) (/.f64 im re))
(*.f64 im (/.f64 -1/2 (/.f64 re im)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(/.f64 (*.f64 -1/2 (*.f64 im im)) re)
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 (*.f64 im im) (/.f64 -1/2 re))
(*.f64 (*.f64 im -1/2) (/.f64 im re))
(*.f64 im (/.f64 -1/2 (/.f64 re im)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(/.f64 (*.f64 -1/2 (*.f64 im im)) re)
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 (*.f64 im im) (/.f64 -1/2 re))
(*.f64 (*.f64 im -1/2) (/.f64 im re))
(*.f64 im (/.f64 -1/2 (/.f64 re im)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(/.f64 (*.f64 -1/2 (*.f64 im im)) re)
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 (*.f64 im im) (/.f64 -1/2 re))
(*.f64 (*.f64 im -1/2) (/.f64 im re))
(*.f64 im (/.f64 -1/2 (/.f64 re im)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(/.f64 (*.f64 -1/2 (*.f64 im im)) re)
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 (*.f64 im im) (/.f64 -1/2 re))
(*.f64 (*.f64 im -1/2) (/.f64 im re))
(*.f64 im (/.f64 -1/2 (/.f64 re im)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(/.f64 (*.f64 -1/2 (*.f64 im im)) re)
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 (*.f64 im im) (/.f64 -1/2 re))
(*.f64 (*.f64 im -1/2) (/.f64 im re))
(*.f64 im (/.f64 -1/2 (/.f64 re im)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(/.f64 (*.f64 -1/2 (*.f64 im im)) re)
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 (*.f64 im im) (/.f64 -1/2 re))
(*.f64 (*.f64 im -1/2) (/.f64 im re))
(*.f64 im (/.f64 -1/2 (/.f64 re im)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(/.f64 (*.f64 -1/2 (*.f64 im im)) re)
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 (*.f64 im im) (/.f64 -1/2 re))
(*.f64 (*.f64 im -1/2) (/.f64 im re))
(*.f64 im (/.f64 -1/2 (/.f64 re im)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(/.f64 (*.f64 -1/2 (*.f64 im im)) re)
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 (*.f64 im im) (/.f64 -1/2 re))
(*.f64 (*.f64 im -1/2) (/.f64 im re))
(*.f64 im (/.f64 -1/2 (/.f64 re im)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(/.f64 (*.f64 -1/2 (*.f64 im im)) re)
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 (*.f64 im im) (/.f64 -1/2 re))
(*.f64 (*.f64 im -1/2) (/.f64 im re))
(*.f64 im (/.f64 -1/2 (/.f64 re im)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(/.f64 (*.f64 -1/2 (*.f64 im im)) re)
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 (*.f64 im im) (/.f64 -1/2 re))
(*.f64 (*.f64 im -1/2) (/.f64 im re))
(*.f64 im (/.f64 -1/2 (/.f64 re im)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(/.f64 (*.f64 -1/2 (*.f64 im im)) re)
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 (*.f64 im im) (/.f64 -1/2 re))
(*.f64 (*.f64 im -1/2) (/.f64 im re))
(*.f64 im (/.f64 -1/2 (/.f64 re im)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(/.f64 (*.f64 -1/2 (*.f64 im im)) re)
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 (*.f64 im im) (/.f64 -1/2 re))
(*.f64 (*.f64 im -1/2) (/.f64 im re))
(*.f64 im (/.f64 -1/2 (/.f64 re im)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(/.f64 (*.f64 -1/2 (*.f64 im im)) re)
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 (*.f64 im im) (/.f64 -1/2 re))
(*.f64 (*.f64 im -1/2) (/.f64 im re))
(*.f64 im (/.f64 -1/2 (/.f64 re im)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(/.f64 (*.f64 -1/2 (*.f64 im im)) re)
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 (*.f64 im im) (/.f64 -1/2 re))
(*.f64 (*.f64 im -1/2) (/.f64 im re))
(*.f64 im (/.f64 -1/2 (/.f64 re im)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(/.f64 (*.f64 -1/2 (*.f64 im im)) re)
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 (*.f64 im im) (/.f64 -1/2 re))
(*.f64 (*.f64 im -1/2) (/.f64 im re))
(*.f64 im (/.f64 -1/2 (/.f64 re im)))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 im (/.f64 im re))
(/.f64 im (/.f64 re im))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 im (/.f64 im re))
(/.f64 im (/.f64 re im))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 im (/.f64 im re))
(/.f64 im (/.f64 re im))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 im (/.f64 im re))
(/.f64 im (/.f64 re im))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 im (/.f64 im re))
(/.f64 im (/.f64 re im))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 im (/.f64 im re))
(/.f64 im (/.f64 re im))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 im (/.f64 im re))
(/.f64 im (/.f64 re im))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 im (/.f64 im re))
(/.f64 im (/.f64 re im))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 im (/.f64 im re))
(/.f64 im (/.f64 re im))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 im (/.f64 im re))
(/.f64 im (/.f64 re im))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 im (/.f64 im re))
(/.f64 im (/.f64 re im))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 im (/.f64 im re))
(/.f64 im (/.f64 re im))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 im (/.f64 im re))
(/.f64 im (/.f64 re im))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 im (/.f64 im re))
(/.f64 im (/.f64 re im))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 im (/.f64 im re))
(/.f64 im (/.f64 re im))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 im (/.f64 im re))
(/.f64 im (/.f64 re im))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 im (/.f64 im re))
(/.f64 im (/.f64 re im))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 im (/.f64 im re))
(/.f64 im (/.f64 re im))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 im (/.f64 im re))
(/.f64 im (/.f64 re im))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 im (/.f64 im re))
(/.f64 im (/.f64 re im))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 im (/.f64 im re))
(/.f64 im (/.f64 re im))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 im (/.f64 im re))
(/.f64 im (/.f64 re im))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 im (/.f64 im re))
(/.f64 im (/.f64 re im))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 im (/.f64 im re))
(/.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 re) (neg.f64 im))
(*.f64 (neg.f64 im) (/.f64 im re))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.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 re) (neg.f64 im))
(*.f64 (neg.f64 im) (/.f64 im re))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.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 re) (neg.f64 im))
(*.f64 (neg.f64 im) (/.f64 im re))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.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 re) (neg.f64 im))
(*.f64 (neg.f64 im) (/.f64 im re))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.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 re) (neg.f64 im))
(*.f64 (neg.f64 im) (/.f64 im re))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.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 re) (neg.f64 im))
(*.f64 (neg.f64 im) (/.f64 im re))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.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 re) (neg.f64 im))
(*.f64 (neg.f64 im) (/.f64 im re))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.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 re) (neg.f64 im))
(*.f64 (neg.f64 im) (/.f64 im re))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.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 re) (neg.f64 im))
(*.f64 (neg.f64 im) (/.f64 im re))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.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 re) (neg.f64 im))
(*.f64 (neg.f64 im) (/.f64 im re))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.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 re) (neg.f64 im))
(*.f64 (neg.f64 im) (/.f64 im re))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.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 re) (neg.f64 im))
(*.f64 (neg.f64 im) (/.f64 im re))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.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 re) (neg.f64 im))
(*.f64 (neg.f64 im) (/.f64 im re))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.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 re) (neg.f64 im))
(*.f64 (neg.f64 im) (/.f64 im re))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.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 re) (neg.f64 im))
(*.f64 (neg.f64 im) (/.f64 im re))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.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 re) (neg.f64 im))
(*.f64 (neg.f64 im) (/.f64 im re))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.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 re) (neg.f64 im))
(*.f64 (neg.f64 im) (/.f64 im re))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.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 re) (neg.f64 im))
(*.f64 (neg.f64 im) (/.f64 im re))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.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 re) (neg.f64 im))
(*.f64 (neg.f64 im) (/.f64 im re))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.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 re) (neg.f64 im))
(*.f64 (neg.f64 im) (/.f64 im re))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.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 re) (neg.f64 im))
(*.f64 (neg.f64 im) (/.f64 im re))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.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 re) (neg.f64 im))
(*.f64 (neg.f64 im) (/.f64 im re))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.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 re) (neg.f64 im))
(*.f64 (neg.f64 im) (/.f64 im re))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.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 re) (neg.f64 im))
(*.f64 (neg.f64 im) (/.f64 im re))
(*.f64 im (/.f64 (neg.f64 im) re))

eval111.0ms (1.6%)

Compiler

Compiled 5660 to 3832 computations (32.3% saved)

prune67.0ms (1%)

Pruning

18 alts after pruning (14 fresh and 4 done)

PrunedKeptTotal
New29112303
Fresh426
Picked101
Done044
Total29618314
Error
5.0b
Counts
314 → 18
Alt Table
Click to see full alt table
StatusErrorProgram
44.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
51.7b
(*.f64 1/2 (*.f64 (sqrt.f64 (*.f64 (*.f64 (/.f64 im re) im) -1/2)) (sqrt.f64 2)))
45.6b
(*.f64 1/2 (*.f64 2 (sqrt.f64 re)))
51.6b
(*.f64 1/2 (sqrt.f64 (*.f64 im (/.f64 (neg.f64 im) re))))
47.3b
(*.f64 1/2 (*.f64 (sqrt.f64 (-.f64 re im)) (sqrt.f64 2)))
45.8b
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 re)) (sqrt.f64 2)))
13.6b
(*.f64 1/2 (*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2)))
47.0b
(*.f64 1/2 (pow.f64 (cbrt.f64 (sqrt.f64 (*.f64 2 im))) 3))
53.3b
(*.f64 1/2 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/2))
46.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 im (fma.f64 1/2 (*.f64 (/.f64 re im) re) re)))))
46.7b
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
46.7b
(*.f64 1/2 (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
47.9b
(*.f64 1/2 (exp.f64 (log.f64 (sqrt.f64 (*.f64 2 im)))))
53.8b
(*.f64 1/2 (pow.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/6) 3))
53.4b
(*.f64 1/2 (pow.f64 (cbrt.f64 (*.f64 (/.f64 (*.f64 im im) re) -1)) 3/2))
49.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im))))
54.7b
(*.f64 1/2 (pow.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 2) 1/4))
51.7b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (/.f64 (*.f64 im -1/2) (/.f64 re im)))))
Compiler

Compiled 390 to 317 computations (18.7% saved)

localize7.0ms (0.1%)

Compiler

Compiled 17 to 11 computations (35.3% saved)

localize10.0ms (0.1%)

Compiler

Compiled 23 to 15 computations (34.8% saved)

localize14.0ms (0.2%)

Local error

Found 3 expressions with local error:

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

Compiled 33 to 9 computations (72.7% saved)

series7.0ms (0.1%)

Counts
3 → 48
Calls

18 calls:

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

rewrite69.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
826×pow1_binary64
764×add-log-exp_binary64
763×log1p-expm1-u_binary64
763×expm1-log1p-u_binary64
747×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify81.0ms (1.2%)

Algorithm
egg-herbie
Rules
983×fma-def_binary64
542×associate-*l*_binary64
497×distribute-rgt-neg-in_binary64
486×distribute-lft-neg-in_binary64
357×associate-*r*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
019596
143596
2114596
3300596
4706596
52232596
63757596
76226596
Stop Event
node limit
Counts
104 → 66
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 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(neg.f64 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (neg.f64 (sqrt.f64 (/.f64 1 re))))
(*.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 (*.f64 (sqrt.f64 -1) im) (neg.f64 (sqrt.f64 (/.f64 1 re))))
(*.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 (*.f64 (sqrt.f64 -1) im) (neg.f64 (sqrt.f64 (/.f64 1 re))))
(*.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 (*.f64 (sqrt.f64 -1) im) (neg.f64 (sqrt.f64 (/.f64 1 re))))
(*.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))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))) 1/2)
(*.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 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))) 1/2)
(*.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 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))) 1/2)
(*.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 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))) 1/2)
(*.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 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))) 1/2)
(*.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 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))) 1/2)
(*.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 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))) 1/2)
(*.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 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))) 1/2)
(*.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 (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 -1) (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) -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 -1) (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) -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 -1) (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) -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 -1) (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) -1/2)))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) -1/2)))

localize20.0ms (0.3%)

Local error

Found 4 expressions with local error:

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

Compiled 56 to 28 computations (50% saved)

series11.0ms (0.2%)

Counts
2 → 24
Calls

12 calls:

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

rewrite63.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
564×log-prod_binary64
405×exp-prod_binary64
352×pow-prod-down_binary64
275×pow2_binary64
243×pow-unpow_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify51.0ms (0.7%)

Algorithm
egg-herbie
Rules
1056×fma-def_binary64
98×associate-*l*_binary64
74×associate-*r*_binary64
64×distribute-rgt-in_binary64
52×distribute-lft-in_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
017412
137412
2103412
3307412
4433412
5573412
6752412
7863412
81049412
91819412
101879412
Stop Event
saturated
Counts
88 → 71
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1/2) im))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1/2) im))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1/2) im))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1/2) im))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1/2) im))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1/2) im))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1/2) im))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1/2) im))
(*.f64 -1 (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1/2) im)))
(*.f64 -1 (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1/2) im)))
(*.f64 -1 (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1/2) im)))
(*.f64 -1 (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1/2) im)))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re))))
Outputs
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1/2) im))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1/2) im))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1/2) im))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1/2) im))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1/2) im))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1/2) im))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1/2) im))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1/2) im))
(*.f64 -1 (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1/2) im)))
(neg.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1/2) im)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 (*.f64 (sqrt.f64 -1/2) im)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1/2) (neg.f64 im)))
(*.f64 -1 (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1/2) im)))
(neg.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1/2) im)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 (*.f64 (sqrt.f64 -1/2) im)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1/2) (neg.f64 im)))
(*.f64 -1 (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1/2) im)))
(neg.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1/2) im)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 (*.f64 (sqrt.f64 -1/2) im)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1/2) (neg.f64 im)))
(*.f64 -1 (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1/2) im)))
(neg.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1/2) im)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 (*.f64 (sqrt.f64 -1/2) im)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1/2) (neg.f64 im)))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 2)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1/2) (*.f64 im (sqrt.f64 2))))
(*.f64 (sqrt.f64 -1/2) (*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im) (sqrt.f64 2)))
(*.f64 im (*.f64 (sqrt.f64 -1/2) (*.f64 (sqrt.f64 (/.f64 1 re)) (sqrt.f64 2))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 2)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1/2) (*.f64 im (sqrt.f64 2))))
(*.f64 (sqrt.f64 -1/2) (*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im) (sqrt.f64 2)))
(*.f64 im (*.f64 (sqrt.f64 -1/2) (*.f64 (sqrt.f64 (/.f64 1 re)) (sqrt.f64 2))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 2)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1/2) (*.f64 im (sqrt.f64 2))))
(*.f64 (sqrt.f64 -1/2) (*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im) (sqrt.f64 2)))
(*.f64 im (*.f64 (sqrt.f64 -1/2) (*.f64 (sqrt.f64 (/.f64 1 re)) (sqrt.f64 2))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 2)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1/2) (*.f64 im (sqrt.f64 2))))
(*.f64 (sqrt.f64 -1/2) (*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im) (sqrt.f64 2)))
(*.f64 im (*.f64 (sqrt.f64 -1/2) (*.f64 (sqrt.f64 (/.f64 1 re)) (sqrt.f64 2))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 2)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1/2) (*.f64 im (sqrt.f64 2))))
(*.f64 (sqrt.f64 -1/2) (*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im) (sqrt.f64 2)))
(*.f64 im (*.f64 (sqrt.f64 -1/2) (*.f64 (sqrt.f64 (/.f64 1 re)) (sqrt.f64 2))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 2)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1/2) (*.f64 im (sqrt.f64 2))))
(*.f64 (sqrt.f64 -1/2) (*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im) (sqrt.f64 2)))
(*.f64 im (*.f64 (sqrt.f64 -1/2) (*.f64 (sqrt.f64 (/.f64 1 re)) (sqrt.f64 2))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 2)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1/2) (*.f64 im (sqrt.f64 2))))
(*.f64 (sqrt.f64 -1/2) (*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im) (sqrt.f64 2)))
(*.f64 im (*.f64 (sqrt.f64 -1/2) (*.f64 (sqrt.f64 (/.f64 1 re)) (sqrt.f64 2))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 2)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1/2) (*.f64 im (sqrt.f64 2))))
(*.f64 (sqrt.f64 -1/2) (*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im) (sqrt.f64 2)))
(*.f64 im (*.f64 (sqrt.f64 -1/2) (*.f64 (sqrt.f64 (/.f64 1 re)) (sqrt.f64 2))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re))))
(neg.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 2))))
(*.f64 (*.f64 (sqrt.f64 -1/2) (*.f64 im (sqrt.f64 2))) (neg.f64 (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1/2) im) (*.f64 (sqrt.f64 2) (neg.f64 (sqrt.f64 (/.f64 1 re)))))
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1/2) im)) (neg.f64 (sqrt.f64 2)))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re))))
(neg.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 2))))
(*.f64 (*.f64 (sqrt.f64 -1/2) (*.f64 im (sqrt.f64 2))) (neg.f64 (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1/2) im) (*.f64 (sqrt.f64 2) (neg.f64 (sqrt.f64 (/.f64 1 re)))))
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1/2) im)) (neg.f64 (sqrt.f64 2)))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re))))
(neg.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 2))))
(*.f64 (*.f64 (sqrt.f64 -1/2) (*.f64 im (sqrt.f64 2))) (neg.f64 (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1/2) im) (*.f64 (sqrt.f64 2) (neg.f64 (sqrt.f64 (/.f64 1 re)))))
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1/2) im)) (neg.f64 (sqrt.f64 2)))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re))))
(neg.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 2))))
(*.f64 (*.f64 (sqrt.f64 -1/2) (*.f64 im (sqrt.f64 2))) (neg.f64 (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1/2) im) (*.f64 (sqrt.f64 2) (neg.f64 (sqrt.f64 (/.f64 1 re)))))
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1/2) im)) (neg.f64 (sqrt.f64 2)))

localize23.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(*.f64 1/2 (pow.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 2) 1/4))
0.1b
(pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 2)
6.1b
(/.f64 (*.f64 im im) re)
36.6b
(pow.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 2) 1/4)
Compiler

Compiled 56 to 28 computations (50% saved)

series137.0ms (2%)

Counts
4 → 84
Calls

24 calls:

TimeVariablePointExpression
49.0ms
im
@0
(*.f64 1/2 (pow.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 2) 1/4))
31.0ms
im
@0
(pow.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 2) 1/4)
18.0ms
re
@0
(pow.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 2) 1/4)
11.0ms
re
@0
(*.f64 1/2 (pow.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 2) 1/4))
8.0ms
re
@-inf
(pow.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 2) 1/4)

rewrite92.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
511×log-prod_binary64
380×exp-prod_binary64
283×pow-prod-down_binary64
278×pow2_binary64
241×pow-unpow_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01349
127532
2319131
Stop Event
node limit
Counts
4 → 193
Calls
Call 1
Inputs
(pow.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 2) 1/4)
(/.f64 (*.f64 im im) re)
(pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 2)
(*.f64 1/2 (pow.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 2) 1/4))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (/.f64 im (sqrt.f64 re)) 1/2) (*.f64 (/.f64 im (sqrt.f64 re)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 im (sqrt.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (/.f64 im (sqrt.f64 re)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (/.f64 im (sqrt.f64 re))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 im (sqrt.f64 re)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 im (sqrt.f64 (/.f64 1 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 im (sqrt.f64 re)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 im (sqrt.f64 re)) (sqrt.f64 -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 im (sqrt.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 im (sqrt.f64 re))) (cbrt.f64 (*.f64 (/.f64 im re) im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (/.f64 im re) im)) (cbrt.f64 (/.f64 im (sqrt.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 -1) (/.f64 im (sqrt.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 im (sqrt.f64 re))) (sqrt.f64 (/.f64 im (sqrt.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 im (sqrt.f64 re))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (sqrt.f64 (*.f64 re (pow.f64 im -2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 im) (sqrt.f64 (/.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (*.f64 im (neg.f64 im))) (sqrt.f64 re))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (*.f64 im (neg.f64 im))) (sqrt.f64 (neg.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (/.f64 im re) im))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (/.f64 im (sqrt.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 im (sqrt.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 im (sqrt.f64 re)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 im (sqrt.f64 re)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.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 exp.f64 (log.f64 (/.f64 im (sqrt.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (/.f64 im re) im)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 im (sqrt.f64 re))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (/.f64 im (sqrt.f64 re)))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (/.f64 im (sqrt.f64 re)) 8)) 1/8))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (/.f64 im (sqrt.f64 re)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (/.f64 im (sqrt.f64 re)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (/.f64 im re) im)) 1) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (/.f64 im re) im)) 1/2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (/.f64 im (sqrt.f64 re))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (pow.f64 (/.f64 im (sqrt.f64 re)) 4)) 1) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (pow.f64 (/.f64 im (sqrt.f64 re)) 4)) 1/8) 2))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (/.f64 im re) im))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (/.f64 im re)) im))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (/.f64 im re)) im))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (/.f64 im re) im))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 im (/.f64 1 (/.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 im (*.f64 im (/.f64 1 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 im im) (/.f64 1 re))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 im im) (*.f64 (/.f64 1 re) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (*.f64 (/.f64 im re) im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 im re) im) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 im re) im) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 im (sqrt.f64 re)) (/.f64 im (sqrt.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 im (sqrt.f64 re)) (*.f64 (/.f64 im (sqrt.f64 re)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (/.f64 im re) im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (/.f64 im re) im)) (pow.f64 (cbrt.f64 (/.f64 im (sqrt.f64 re))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 im) im) (*.f64 (pow.f64 (cbrt.f64 im) 2) (/.f64 1 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 im (sqrt.f64 re))) 4) (cbrt.f64 (*.f64 (/.f64 im re) im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 im (neg.f64 im)) (/.f64 1 re))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 im (neg.f64 im)) (/.f64 1 (neg.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 re) (*.f64 im im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 im (sqrt.f64 re))) (pow.f64 (/.f64 im (sqrt.f64 re)) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 im (sqrt.f64 re)) 3/2) (sqrt.f64 (/.f64 im (sqrt.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cbrt.f64 (pow.f64 (/.f64 im (sqrt.f64 re)) 8))) (cbrt.f64 (*.f64 (/.f64 im 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 im re) im)))) (#(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 (/.f64 im (pow.f64 (cbrt.f64 re) 2)) (/.f64 im (cbrt.f64 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 (*.f64 (cbrt.f64 im) im) (pow.f64 (cbrt.f64 re) 2)) (cbrt.f64 (*.f64 (/.f64 im re) im)))))) (#(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 (*.f64 im im) (sqrt.f64 re)) (/.f64 -1 (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 (*.f64 im im) 1) (/.f64 -1 re))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 im im) (pow.f64 (cbrt.f64 re) 2)) (/.f64 -1 (cbrt.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (/.f64 im re) im) 5/6) (cbrt.f64 (/.f64 im (sqrt.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 -1 (pow.f64 (cbrt.f64 (/.f64 im (sqrt.f64 re))) 4)) (cbrt.f64 (*.f64 (/.f64 im re) im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 -1 (/.f64 im (sqrt.f64 re))) (/.f64 im (sqrt.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 im re) im) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 im (sqrt.f64 re)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 im (sqrt.f64 re)) 3) 2/3)))) (#(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)) 8) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 im re) im) 6) 1/6)))) (#(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 im (sqrt.f64 re))) 6)))) (#(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 (pow.f64 (cbrt.f64 (/.f64 im (sqrt.f64 re))) 4) 3/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 (sqrt.f64 (/.f64 im (sqrt.f64 re))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (*.f64 (/.f64 im re) im)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 im re) im) 8) 1/8)))) (#(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 (/.f64 (*.f64 re (pow.f64 im -2)) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 re (*.f64 im (neg.f64 im))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 (/.f64 im re) im))) 2)) (cbrt.f64 (log.f64 (*.f64 (/.f64 im re) im))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 (/.f64 im re) im)))) (sqrt.f64 (log.f64 (*.f64 (/.f64 im re) im))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 (/.f64 im re) im))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (*.f64 im im) (neg.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 im (sqrt.f64 re)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (/.f64 im re) im))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (/.f64 im re)) im))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (/.f64 im re) im))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 1 (+.f64 1 (expm1.f64 (*.f64 (/.f64 im re) im)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 im (sqrt.f64 re)) 6))))) (#(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 expm1.f64 (log1p.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 exp.f64 (log.f64 (*.f64 (/.f64 im re) im)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (/.f64 im re) im)) 1))))) (#(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 (log.f64 (pow.f64 (/.f64 im (sqrt.f64 re)) 4)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (/.f64 im (sqrt.f64 re)) 8)) 1/4))))) (#(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 re) im))) 3))))) (#(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 (*.f64 (log.f64 (*.f64 (/.f64 im re) im)) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (/.f64 im re) im)) 1/2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (/.f64 im (sqrt.f64 re))) 1) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (pow.f64 (/.f64 im (sqrt.f64 re)) 4)) 1) 1/2))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (pow.f64 (/.f64 im (sqrt.f64 re)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (pow.f64 (/.f64 im (sqrt.f64 re)) 4))) 2)) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 (/.f64 im (sqrt.f64 re)) 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 (/.f64 im (sqrt.f64 re)) 4)))) (log.f64 (sqrt.f64 (exp.f64 (pow.f64 (/.f64 im (sqrt.f64 re)) 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (pow.f64 (/.f64 im (sqrt.f64 re)) 4))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 im im) (*.f64 (/.f64 1 re) (*.f64 (/.f64 im re) im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (pow.f64 (/.f64 im (sqrt.f64 re)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 im re) im) (*.f64 (/.f64 im re) im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 im (sqrt.f64 re)) (pow.f64 (/.f64 im (sqrt.f64 re)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (/.f64 im (sqrt.f64 re)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 im (sqrt.f64 re)) 3) (/.f64 im (sqrt.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 im (sqrt.f64 re)) 4) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 im (sqrt.f64 re)) 4) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 im 4) (pow.f64 re -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (/.f64 im (sqrt.f64 re)) 8)) (pow.f64 (cbrt.f64 (/.f64 im (sqrt.f64 re))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 im (sqrt.f64 re))) 4) (cbrt.f64 (pow.f64 (/.f64 im (sqrt.f64 re)) 8)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (/.f64 im (sqrt.f64 re)) im) 2) (/.f64 1 re))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (/.f64 im (sqrt.f64 re)) 4) 5/6) (cbrt.f64 (*.f64 (/.f64 im re) im)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 im (*.f64 (*.f64 re (pow.f64 im -2)) (/.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 im (*.f64 (/.f64 re im) (*.f64 re (pow.f64 im -2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 im im) (pow.f64 (/.f64 re im) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 im im) (*.f64 (*.f64 re (pow.f64 im -2)) re))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 im im) (*.f64 re (*.f64 re (pow.f64 im -2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (/.f64 im re) im) (*.f64 re (pow.f64 im -2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (pow.f64 (*.f64 re (pow.f64 im -2)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 im 3) (*.f64 re (/.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 im 3) (*.f64 (/.f64 re im) re))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 im 4) (*.f64 re re))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 im (neg.f64 im)) (*.f64 (*.f64 re (pow.f64 im -2)) (neg.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (*.f64 im (neg.f64 im)) 2) (*.f64 re re))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (*.f64 im (neg.f64 im)) 2) (pow.f64 (neg.f64 re) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 im (neg.f64 im)) im) (*.f64 (neg.f64 re) (/.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 im (neg.f64 im)) (*.f64 im im)) (*.f64 (neg.f64 re) re))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 im (neg.f64 im)) 1) (*.f64 (neg.f64 re) (*.f64 re (pow.f64 im -2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 im (*.f64 im (neg.f64 im))) (*.f64 (/.f64 re im) (neg.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 im im) (*.f64 im (neg.f64 im))) (*.f64 re (neg.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 im (*.f64 (/.f64 im re) im)) (/.f64 re im))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (*.f64 im (/.f64 im (sqrt.f64 re))) 2) re)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 im (neg.f64 im)) (*.f64 (/.f64 im re) im)) re)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 im (neg.f64 im)) (*.f64 (/.f64 im re) im)) (neg.f64 re))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (/.f64 im re) im) im) (/.f64 re im))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (*.f64 (/.f64 im (sqrt.f64 re)) im) 2) re)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (/.f64 im re) im) (*.f64 im (neg.f64 im))) re)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (/.f64 im re) im) (*.f64 im (neg.f64 im))) (neg.f64 re))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 im (sqrt.f64 re)) 8))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (/.f64 im (sqrt.f64 re)) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (pow.f64 (/.f64 im (sqrt.f64 re)) 4))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (/.f64 im re) im) 6))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (/.f64 im (sqrt.f64 re)) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (/.f64 im (sqrt.f64 re)) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (pow.f64 (/.f64 im (sqrt.f64 re)) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (/.f64 im (sqrt.f64 re)) 4)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (/.f64 im re) im) 6)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (cbrt.f64 (/.f64 im (sqrt.f64 re))) 4)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (/.f64 im re) im)) 1) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (pow.f64 (/.f64 im (sqrt.f64 re)) 4)) 1) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (/.f64 im (sqrt.f64 re)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (exp.f64 (/.f64 im (sqrt.f64 re))))) 2)) (log.f64 (cbrt.f64 (sqrt.f64 (exp.f64 (/.f64 im (sqrt.f64 re)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (sqrt.f64 (exp.f64 (/.f64 im (sqrt.f64 re)))))) (log.f64 (sqrt.f64 (sqrt.f64 (exp.f64 (/.f64 im (sqrt.f64 re)))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (/.f64 im (sqrt.f64 re)) 1/2))) 1)))) (#(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 (*.f64 (*.f64 (/.f64 im re) im) 1/4) 1/2)))) (#(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 pow.f64 (exp.f64 1) (log.f64 (*.f64 (/.f64 im (sqrt.f64 re)) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 (/.f64 im (sqrt.f64 re)) 1/2))) 2)) (cbrt.f64 (log.f64 (*.f64 (/.f64 im (sqrt.f64 re)) 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 (/.f64 im (sqrt.f64 re)) 1/2)))) (sqrt.f64 (log.f64 (*.f64 (/.f64 im (sqrt.f64 re)) 1/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 (sqrt.f64 (exp.f64 (/.f64 im (sqrt.f64 re)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (/.f64 im (sqrt.f64 re)) 1/2))))))) (#(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 expm1.f64 (log1p.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 exp.f64 (log.f64 (*.f64 (/.f64 im (sqrt.f64 re)) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (/.f64 im (sqrt.f64 re)) 1/2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 (/.f64 im (sqrt.f64 re)) 1/2))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (/.f64 im (sqrt.f64 re)) 1/2))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 im (sqrt.f64 re)) 1/2))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (/.f64 im (sqrt.f64 re)) 1/2)) 1) 1))))))

simplify67.0ms (1%)

Algorithm
egg-herbie
Rules
466×associate-/l/_binary64
422×distribute-rgt-in_binary64
418×fma-neg_binary64
351×distribute-lft-in_binary64
278×associate-/r/_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0581056
1145984
2372720
3989660
43259660
Stop Event
node limit
Counts
277 → 207
Calls
Call 1
Inputs
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 (/.f64 1 (pow.f64 re 2))) (*.f64 4 (log.f64 im)))))
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 (/.f64 1 (pow.f64 re 2))) (*.f64 4 (log.f64 im)))))
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 (/.f64 1 (pow.f64 re 2))) (*.f64 4 (log.f64 im)))))
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 (/.f64 1 (pow.f64 re 2))) (*.f64 4 (log.f64 im)))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -4 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 1 (pow.f64 re 2))))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -4 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 1 (pow.f64 re 2))))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -4 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 1 (pow.f64 re 2))))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -4 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 1 (pow.f64 re 2))))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -4 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 1 (pow.f64 re 2))))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -4 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 1 (pow.f64 re 2))))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -4 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 1 (pow.f64 re 2))))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -4 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 1 (pow.f64 re 2))))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -2 (log.f64 re)) (log.f64 (pow.f64 im 4)))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -2 (log.f64 re)) (log.f64 (pow.f64 im 4)))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -2 (log.f64 re)) (log.f64 (pow.f64 im 4)))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -2 (log.f64 re)) (log.f64 (pow.f64 im 4)))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 2 (log.f64 (/.f64 1 re))) (log.f64 (pow.f64 im 4)))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 2 (log.f64 (/.f64 1 re))) (log.f64 (pow.f64 im 4)))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 2 (log.f64 (/.f64 1 re))) (log.f64 (pow.f64 im 4)))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 2 (log.f64 (/.f64 1 re))) (log.f64 (pow.f64 im 4)))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 2 (log.f64 (/.f64 -1 re))) (log.f64 (pow.f64 im 4)))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 2 (log.f64 (/.f64 -1 re))) (log.f64 (pow.f64 im 4)))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 2 (log.f64 (/.f64 -1 re))) (log.f64 (pow.f64 im 4)))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 2 (log.f64 (/.f64 -1 re))) (log.f64 (pow.f64 im 4)))))
(/.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 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
Outputs
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 (/.f64 1 (pow.f64 re 2))) (*.f64 4 (log.f64 im)))))
(pow.f64 (exp.f64 1/4) (+.f64 (neg.f64 (log.f64 (*.f64 re re))) (*.f64 4 (log.f64 im))))
(exp.f64 (+.f64 (*.f64 (neg.f64 (log.f64 re)) 1/2) (*.f64 1 (log.f64 im))))
(*.f64 im (pow.f64 re -1/2))
(/.f64 im (sqrt.f64 re))
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 (/.f64 1 (pow.f64 re 2))) (*.f64 4 (log.f64 im)))))
(pow.f64 (exp.f64 1/4) (+.f64 (neg.f64 (log.f64 (*.f64 re re))) (*.f64 4 (log.f64 im))))
(exp.f64 (+.f64 (*.f64 (neg.f64 (log.f64 re)) 1/2) (*.f64 1 (log.f64 im))))
(*.f64 im (pow.f64 re -1/2))
(/.f64 im (sqrt.f64 re))
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 (/.f64 1 (pow.f64 re 2))) (*.f64 4 (log.f64 im)))))
(pow.f64 (exp.f64 1/4) (+.f64 (neg.f64 (log.f64 (*.f64 re re))) (*.f64 4 (log.f64 im))))
(exp.f64 (+.f64 (*.f64 (neg.f64 (log.f64 re)) 1/2) (*.f64 1 (log.f64 im))))
(*.f64 im (pow.f64 re -1/2))
(/.f64 im (sqrt.f64 re))
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 (/.f64 1 (pow.f64 re 2))) (*.f64 4 (log.f64 im)))))
(pow.f64 (exp.f64 1/4) (+.f64 (neg.f64 (log.f64 (*.f64 re re))) (*.f64 4 (log.f64 im))))
(exp.f64 (+.f64 (*.f64 (neg.f64 (log.f64 re)) 1/2) (*.f64 1 (log.f64 im))))
(*.f64 im (pow.f64 re -1/2))
(/.f64 im (sqrt.f64 re))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -4 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 1 (pow.f64 re 2))))))
(pow.f64 (exp.f64 1/4) (+.f64 (neg.f64 (log.f64 (*.f64 re re))) (*.f64 4 (log.f64 im))))
(exp.f64 (+.f64 (*.f64 (neg.f64 (log.f64 re)) 1/2) (*.f64 1 (log.f64 im))))
(*.f64 im (pow.f64 re -1/2))
(/.f64 im (sqrt.f64 re))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -4 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 1 (pow.f64 re 2))))))
(pow.f64 (exp.f64 1/4) (+.f64 (neg.f64 (log.f64 (*.f64 re re))) (*.f64 4 (log.f64 im))))
(exp.f64 (+.f64 (*.f64 (neg.f64 (log.f64 re)) 1/2) (*.f64 1 (log.f64 im))))
(*.f64 im (pow.f64 re -1/2))
(/.f64 im (sqrt.f64 re))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -4 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 1 (pow.f64 re 2))))))
(pow.f64 (exp.f64 1/4) (+.f64 (neg.f64 (log.f64 (*.f64 re re))) (*.f64 4 (log.f64 im))))
(exp.f64 (+.f64 (*.f64 (neg.f64 (log.f64 re)) 1/2) (*.f64 1 (log.f64 im))))
(*.f64 im (pow.f64 re -1/2))
(/.f64 im (sqrt.f64 re))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -4 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 1 (pow.f64 re 2))))))
(pow.f64 (exp.f64 1/4) (+.f64 (neg.f64 (log.f64 (*.f64 re re))) (*.f64 4 (log.f64 im))))
(exp.f64 (+.f64 (*.f64 (neg.f64 (log.f64 re)) 1/2) (*.f64 1 (log.f64 im))))
(*.f64 im (pow.f64 re -1/2))
(/.f64 im (sqrt.f64 re))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -4 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 1 (pow.f64 re 2))))))
(pow.f64 (exp.f64 1/4) (+.f64 (neg.f64 (log.f64 (*.f64 re re))) (*.f64 4 (log.f64 im))))
(exp.f64 (+.f64 (*.f64 (neg.f64 (log.f64 re)) 1/2) (*.f64 1 (log.f64 im))))
(*.f64 im (pow.f64 re -1/2))
(/.f64 im (sqrt.f64 re))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -4 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 1 (pow.f64 re 2))))))
(pow.f64 (exp.f64 1/4) (+.f64 (neg.f64 (log.f64 (*.f64 re re))) (*.f64 4 (log.f64 im))))
(exp.f64 (+.f64 (*.f64 (neg.f64 (log.f64 re)) 1/2) (*.f64 1 (log.f64 im))))
(*.f64 im (pow.f64 re -1/2))
(/.f64 im (sqrt.f64 re))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -4 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 1 (pow.f64 re 2))))))
(pow.f64 (exp.f64 1/4) (+.f64 (neg.f64 (log.f64 (*.f64 re re))) (*.f64 4 (log.f64 im))))
(exp.f64 (+.f64 (*.f64 (neg.f64 (log.f64 re)) 1/2) (*.f64 1 (log.f64 im))))
(*.f64 im (pow.f64 re -1/2))
(/.f64 im (sqrt.f64 re))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -4 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 1 (pow.f64 re 2))))))
(pow.f64 (exp.f64 1/4) (+.f64 (neg.f64 (log.f64 (*.f64 re re))) (*.f64 4 (log.f64 im))))
(exp.f64 (+.f64 (*.f64 (neg.f64 (log.f64 re)) 1/2) (*.f64 1 (log.f64 im))))
(*.f64 im (pow.f64 re -1/2))
(/.f64 im (sqrt.f64 re))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -2 (log.f64 re)) (log.f64 (pow.f64 im 4)))))
(pow.f64 (exp.f64 1/4) (+.f64 (neg.f64 (log.f64 (*.f64 re re))) (*.f64 4 (log.f64 im))))
(exp.f64 (+.f64 (*.f64 (neg.f64 (log.f64 re)) 1/2) (*.f64 1 (log.f64 im))))
(*.f64 im (pow.f64 re -1/2))
(/.f64 im (sqrt.f64 re))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -2 (log.f64 re)) (log.f64 (pow.f64 im 4)))))
(pow.f64 (exp.f64 1/4) (+.f64 (neg.f64 (log.f64 (*.f64 re re))) (*.f64 4 (log.f64 im))))
(exp.f64 (+.f64 (*.f64 (neg.f64 (log.f64 re)) 1/2) (*.f64 1 (log.f64 im))))
(*.f64 im (pow.f64 re -1/2))
(/.f64 im (sqrt.f64 re))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -2 (log.f64 re)) (log.f64 (pow.f64 im 4)))))
(pow.f64 (exp.f64 1/4) (+.f64 (neg.f64 (log.f64 (*.f64 re re))) (*.f64 4 (log.f64 im))))
(exp.f64 (+.f64 (*.f64 (neg.f64 (log.f64 re)) 1/2) (*.f64 1 (log.f64 im))))
(*.f64 im (pow.f64 re -1/2))
(/.f64 im (sqrt.f64 re))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -2 (log.f64 re)) (log.f64 (pow.f64 im 4)))))
(pow.f64 (exp.f64 1/4) (+.f64 (neg.f64 (log.f64 (*.f64 re re))) (*.f64 4 (log.f64 im))))
(exp.f64 (+.f64 (*.f64 (neg.f64 (log.f64 re)) 1/2) (*.f64 1 (log.f64 im))))
(*.f64 im (pow.f64 re -1/2))
(/.f64 im (sqrt.f64 re))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 2 (log.f64 (/.f64 1 re))) (log.f64 (pow.f64 im 4)))))
(pow.f64 (exp.f64 1/4) (+.f64 (neg.f64 (log.f64 (*.f64 re re))) (*.f64 4 (log.f64 im))))
(exp.f64 (+.f64 (*.f64 (neg.f64 (log.f64 re)) 1/2) (*.f64 1 (log.f64 im))))
(*.f64 im (pow.f64 re -1/2))
(/.f64 im (sqrt.f64 re))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 2 (log.f64 (/.f64 1 re))) (log.f64 (pow.f64 im 4)))))
(pow.f64 (exp.f64 1/4) (+.f64 (neg.f64 (log.f64 (*.f64 re re))) (*.f64 4 (log.f64 im))))
(exp.f64 (+.f64 (*.f64 (neg.f64 (log.f64 re)) 1/2) (*.f64 1 (log.f64 im))))
(*.f64 im (pow.f64 re -1/2))
(/.f64 im (sqrt.f64 re))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 2 (log.f64 (/.f64 1 re))) (log.f64 (pow.f64 im 4)))))
(pow.f64 (exp.f64 1/4) (+.f64 (neg.f64 (log.f64 (*.f64 re re))) (*.f64 4 (log.f64 im))))
(exp.f64 (+.f64 (*.f64 (neg.f64 (log.f64 re)) 1/2) (*.f64 1 (log.f64 im))))
(*.f64 im (pow.f64 re -1/2))
(/.f64 im (sqrt.f64 re))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 2 (log.f64 (/.f64 1 re))) (log.f64 (pow.f64 im 4)))))
(pow.f64 (exp.f64 1/4) (+.f64 (neg.f64 (log.f64 (*.f64 re re))) (*.f64 4 (log.f64 im))))
(exp.f64 (+.f64 (*.f64 (neg.f64 (log.f64 re)) 1/2) (*.f64 1 (log.f64 im))))
(*.f64 im (pow.f64 re -1/2))
(/.f64 im (sqrt.f64 re))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 2 (log.f64 (/.f64 -1 re))) (log.f64 (pow.f64 im 4)))))
(pow.f64 (exp.f64 1/4) (+.f64 (neg.f64 (log.f64 (*.f64 re re))) (*.f64 4 (log.f64 im))))
(exp.f64 (+.f64 (*.f64 (neg.f64 (log.f64 re)) 1/2) (*.f64 1 (log.f64 im))))
(*.f64 im (pow.f64 re -1/2))
(/.f64 im (sqrt.f64 re))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 2 (log.f64 (/.f64 -1 re))) (log.f64 (pow.f64 im 4)))))
(pow.f64 (exp.f64 1/4) (+.f64 (neg.f64 (log.f64 (*.f64 re re))) (*.f64 4 (log.f64 im))))
(exp.f64 (+.f64 (*.f64 (neg.f64 (log.f64 re)) 1/2) (*.f64 1 (log.f64 im))))
(*.f64 im (pow.f64 re -1/2))
(/.f64 im (sqrt.f64 re))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 2 (log.f64 (/.f64 -1 re))) (log.f64 (pow.f64 im 4)))))
(pow.f64 (exp.f64 1/4) (+.f64 (neg.f64 (log.f64 (*.f64 re re))) (*.f64 4 (log.f64 im))))
(exp.f64 (+.f64 (*.f64 (neg.f64 (log.f64 re)) 1/2) (*.f64 1 (log.f64 im))))
(*.f64 im (pow.f64 re -1/2))
(/.f64 im (sqrt.f64 re))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 2 (log.f64 (/.f64 -1 re))) (log.f64 (pow.f64 im 4)))))
(pow.f64 (exp.f64 1/4) (+.f64 (neg.f64 (log.f64 (*.f64 re re))) (*.f64 4 (log.f64 im))))
(exp.f64 (+.f64 (*.f64 (neg.f64 (log.f64 re)) 1/2) (*.f64 1 (log.f64 im))))
(*.f64 im (pow.f64 re -1/2))
(/.f64 im (sqrt.f64 re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (*.f64 re re))
(*.f64 (pow.f64 re -2) (pow.f64 im 4))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (*.f64 re re))
(*.f64 (pow.f64 re -2) (pow.f64 im 4))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (*.f64 re re))
(*.f64 (pow.f64 re -2) (pow.f64 im 4))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (*.f64 re re))
(*.f64 (pow.f64 re -2) (pow.f64 im 4))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (*.f64 re re))
(*.f64 (pow.f64 re -2) (pow.f64 im 4))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (*.f64 re re))
(*.f64 (pow.f64 re -2) (pow.f64 im 4))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (*.f64 re re))
(*.f64 (pow.f64 re -2) (pow.f64 im 4))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (*.f64 re re))
(*.f64 (pow.f64 re -2) (pow.f64 im 4))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (*.f64 re re))
(*.f64 (pow.f64 re -2) (pow.f64 im 4))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (*.f64 re re))
(*.f64 (pow.f64 re -2) (pow.f64 im 4))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (*.f64 re re))
(*.f64 (pow.f64 re -2) (pow.f64 im 4))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (*.f64 re re))
(*.f64 (pow.f64 re -2) (pow.f64 im 4))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (*.f64 re re))
(*.f64 (pow.f64 re -2) (pow.f64 im 4))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (*.f64 re re))
(*.f64 (pow.f64 re -2) (pow.f64 im 4))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (*.f64 re re))
(*.f64 (pow.f64 re -2) (pow.f64 im 4))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (*.f64 re re))
(*.f64 (pow.f64 re -2) (pow.f64 im 4))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (*.f64 re re))
(*.f64 (pow.f64 re -2) (pow.f64 im 4))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (*.f64 re re))
(*.f64 (pow.f64 re -2) (pow.f64 im 4))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (*.f64 re re))
(*.f64 (pow.f64 re -2) (pow.f64 im 4))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (*.f64 re re))
(*.f64 (pow.f64 re -2) (pow.f64 im 4))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (*.f64 re re))
(*.f64 (pow.f64 re -2) (pow.f64 im 4))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (*.f64 re re))
(*.f64 (pow.f64 re -2) (pow.f64 im 4))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (*.f64 re re))
(*.f64 (pow.f64 re -2) (pow.f64 im 4))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (*.f64 re re))
(*.f64 (pow.f64 re -2) (pow.f64 im 4))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 1/2 (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im 1/2))
(*.f64 1/2 (/.f64 im (sqrt.f64 re)))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 1/2 (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im 1/2))
(*.f64 1/2 (/.f64 im (sqrt.f64 re)))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 1/2 (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im 1/2))
(*.f64 1/2 (/.f64 im (sqrt.f64 re)))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 1/2 (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im 1/2))
(*.f64 1/2 (/.f64 im (sqrt.f64 re)))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 1/2 (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im 1/2))
(*.f64 1/2 (/.f64 im (sqrt.f64 re)))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 1/2 (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im 1/2))
(*.f64 1/2 (/.f64 im (sqrt.f64 re)))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 1/2 (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im 1/2))
(*.f64 1/2 (/.f64 im (sqrt.f64 re)))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 1/2 (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im 1/2))
(*.f64 1/2 (/.f64 im (sqrt.f64 re)))
(*.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 (*.f64 im (sqrt.f64 (/.f64 1 re))) -1/2)
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im -1/2))
(*.f64 -1/2 (/.f64 im (sqrt.f64 re)))
(*.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 (*.f64 im (sqrt.f64 (/.f64 1 re))) -1/2)
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im -1/2))
(*.f64 -1/2 (/.f64 im (sqrt.f64 re)))
(*.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 (*.f64 im (sqrt.f64 (/.f64 1 re))) -1/2)
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im -1/2))
(*.f64 -1/2 (/.f64 im (sqrt.f64 re)))
(*.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 (*.f64 im (sqrt.f64 (/.f64 1 re))) -1/2)
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im -1/2))
(*.f64 -1/2 (/.f64 im (sqrt.f64 re)))

eval118.0ms (1.7%)

Compiler

Compiled 6125 to 3877 computations (36.7% saved)

prune80.0ms (1.1%)

Pruning

25 alts after pruning (17 fresh and 8 done)

PrunedKeptTotal
New41010420
Fresh279
Picked101
Done088
Total41325438
Error
1.7b
Counts
438 → 25
Alt Table
Click to see full alt table
StatusErrorProgram
44.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
51.7b
(*.f64 1/2 (*.f64 (sqrt.f64 (*.f64 (*.f64 (/.f64 im re) im) -1/2)) (sqrt.f64 2)))
49.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im))))
57.4b
(*.f64 1/2 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -4 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 1 (pow.f64 re 2)))))))
45.6b
(*.f64 1/2 (*.f64 2 (sqrt.f64 re)))
51.6b
(*.f64 1/2 (sqrt.f64 (*.f64 im (/.f64 (neg.f64 im) re))))
47.3b
(*.f64 1/2 (*.f64 (sqrt.f64 (-.f64 re im)) (sqrt.f64 2)))
53.3b
(*.f64 1/2 (sqrt.f64 (/.f64 (*.f64 im im) (neg.f64 re))))
13.6b
(*.f64 1/2 (*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2)))
47.0b
(*.f64 1/2 (pow.f64 (cbrt.f64 (sqrt.f64 (*.f64 2 im))) 3))
59.7b
(*.f64 1/2 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 (/.f64 1 (pow.f64 re 2))) (*.f64 4 (log.f64 im))))))
45.8b
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 re)) (sqrt.f64 2)))
52.3b
(*.f64 1/2 (exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (*.f64 im (/.f64 im re)) -1) 1/6)) 3)))
55.3b
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 (/.f64 im re)) (sqrt.f64 (*.f64 im -1/2))) (sqrt.f64 2)))
46.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 im (fma.f64 1/2 (*.f64 (/.f64 re im) re) re)))))
51.7b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (/.f64 (*.f64 im -1/2) (/.f64 re im)))))
63.0b
(*.f64 -1/2 (/.f64 im (sqrt.f64 re)))
59.7b
(*.f64 1/2 (sqrt.f64 (/.f64 im (/.f64 re im))))
46.7b
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
46.7b
(*.f64 1/2 (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
47.9b
(*.f64 1/2 (exp.f64 (log.f64 (sqrt.f64 (*.f64 2 im)))))
54.4b
(*.f64 1/2 (pow.f64 (/.f64 (*.f64 (*.f64 (/.f64 im re) im) im) (/.f64 re im)) 1/4))
56.1b
(*.f64 1/2 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 2 (log.f64 (/.f64 -1 re))) (log.f64 (pow.f64 im 4))))))
53.4b
(*.f64 1/2 (pow.f64 (cbrt.f64 (*.f64 (/.f64 (*.f64 im im) re) -1)) 3/2))
52.3b
(*.f64 1/2 (pow.f64 (pow.f64 (*.f64 (*.f64 im (/.f64 im re)) -1) 1/6) 3))
Compiler

Compiled 561 to 456 computations (18.7% saved)

localize13.0ms (0.2%)

Local error

Found 2 expressions with local error:

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

Compiled 32 to 24 computations (25% saved)

series4.0ms (0.1%)

Counts
2 → 0
Calls

6 calls:

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

rewrite51.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
586×pow1_binary64
541×add-log-exp_binary64
541×log1p-expm1-u_binary64
541×expm1-log1p-u_binary64
528×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify6.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

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

localize6.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 17 to 7 computations (58.8% saved)

series3.0ms (0%)

Counts
1 → 12
Calls

6 calls:

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

rewrite45.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
533×pow1_binary64
511×add-sqr-sqrt_binary64
496×add-log-exp_binary64
496×log1p-expm1-u_binary64
496×expm1-log1p-u_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify8.0ms (0.1%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
1-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
07108
110108
Stop Event
saturated
Counts
42 → 31
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
Outputs
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)

localize18.0ms (0.3%)

Local error

Found 4 expressions with local error:

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

Compiled 51 to 30 computations (41.2% saved)

series7.0ms (0.1%)

Counts
4 → 72
Calls

24 calls:

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

rewrite219.0ms (3.2%)

Algorithm
batch-egg-rewrite
Rules
681×log-prod_binary64
348×pow-prod-down_binary64
309×pow2_binary64
286×pow-unpow_binary64
217×pow1/3_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify179.0ms (2.6%)

Algorithm
egg-herbie
Rules
969×fma-def_binary64
585×associate-*l*_binary64
456×distribute-lft-neg-in_binary64
435×distribute-rgt-neg-in_binary64
362×*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
020836
147836
2122836
3318836
4778836
52019836
63937836
75825836
Stop Event
node limit
Counts
212 → 152
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/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.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 (/.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 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(neg.f64 (*.f64 (*.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 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (neg.f64 im)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 im)))
(*.f64 (sqrt.f64 -1) (*.f64 im (neg.f64 (sqrt.f64 (/.f64 1 re)))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(neg.f64 (*.f64 (*.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 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (neg.f64 im)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 im)))
(*.f64 (sqrt.f64 -1) (*.f64 im (neg.f64 (sqrt.f64 (/.f64 1 re)))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(neg.f64 (*.f64 (*.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 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (neg.f64 im)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 im)))
(*.f64 (sqrt.f64 -1) (*.f64 im (neg.f64 (sqrt.f64 (/.f64 1 re)))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(neg.f64 (*.f64 (*.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 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (neg.f64 im)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 im)))
(*.f64 (sqrt.f64 -1) (*.f64 im (neg.f64 (sqrt.f64 (/.f64 1 re)))))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 -1/2 (/.f64 im (/.f64 re im)))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(*.f64 im (*.f64 -1/2 (/.f64 im re)))
(*.f64 (*.f64 im im) (/.f64 -1/2 re))
(*.f64 im (*.f64 im (/.f64 -1/2 re)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 -1/2 (/.f64 im (/.f64 re im)))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(*.f64 im (*.f64 -1/2 (/.f64 im re)))
(*.f64 (*.f64 im im) (/.f64 -1/2 re))
(*.f64 im (*.f64 im (/.f64 -1/2 re)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 -1/2 (/.f64 im (/.f64 re im)))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(*.f64 im (*.f64 -1/2 (/.f64 im re)))
(*.f64 (*.f64 im im) (/.f64 -1/2 re))
(*.f64 im (*.f64 im (/.f64 -1/2 re)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 -1/2 (/.f64 im (/.f64 re im)))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(*.f64 im (*.f64 -1/2 (/.f64 im re)))
(*.f64 (*.f64 im im) (/.f64 -1/2 re))
(*.f64 im (*.f64 im (/.f64 -1/2 re)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 -1/2 (/.f64 im (/.f64 re im)))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(*.f64 im (*.f64 -1/2 (/.f64 im re)))
(*.f64 (*.f64 im im) (/.f64 -1/2 re))
(*.f64 im (*.f64 im (/.f64 -1/2 re)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 -1/2 (/.f64 im (/.f64 re im)))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(*.f64 im (*.f64 -1/2 (/.f64 im re)))
(*.f64 (*.f64 im im) (/.f64 -1/2 re))
(*.f64 im (*.f64 im (/.f64 -1/2 re)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 -1/2 (/.f64 im (/.f64 re im)))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(*.f64 im (*.f64 -1/2 (/.f64 im re)))
(*.f64 (*.f64 im im) (/.f64 -1/2 re))
(*.f64 im (*.f64 im (/.f64 -1/2 re)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 -1/2 (/.f64 im (/.f64 re im)))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(*.f64 im (*.f64 -1/2 (/.f64 im re)))
(*.f64 (*.f64 im im) (/.f64 -1/2 re))
(*.f64 im (*.f64 im (/.f64 -1/2 re)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 -1/2 (/.f64 im (/.f64 re im)))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(*.f64 im (*.f64 -1/2 (/.f64 im re)))
(*.f64 (*.f64 im im) (/.f64 -1/2 re))
(*.f64 im (*.f64 im (/.f64 -1/2 re)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 -1/2 (/.f64 im (/.f64 re im)))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(*.f64 im (*.f64 -1/2 (/.f64 im re)))
(*.f64 (*.f64 im im) (/.f64 -1/2 re))
(*.f64 im (*.f64 im (/.f64 -1/2 re)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 -1/2 (/.f64 im (/.f64 re im)))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(*.f64 im (*.f64 -1/2 (/.f64 im re)))
(*.f64 (*.f64 im im) (/.f64 -1/2 re))
(*.f64 im (*.f64 im (/.f64 -1/2 re)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 -1/2 (/.f64 im (/.f64 re im)))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(*.f64 im (*.f64 -1/2 (/.f64 im re)))
(*.f64 (*.f64 im im) (/.f64 -1/2 re))
(*.f64 im (*.f64 im (/.f64 -1/2 re)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 -1/2 (/.f64 im (/.f64 re im)))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(*.f64 im (*.f64 -1/2 (/.f64 im re)))
(*.f64 (*.f64 im im) (/.f64 -1/2 re))
(*.f64 im (*.f64 im (/.f64 -1/2 re)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 -1/2 (/.f64 im (/.f64 re im)))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(*.f64 im (*.f64 -1/2 (/.f64 im re)))
(*.f64 (*.f64 im im) (/.f64 -1/2 re))
(*.f64 im (*.f64 im (/.f64 -1/2 re)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 -1/2 (/.f64 im (/.f64 re im)))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(*.f64 im (*.f64 -1/2 (/.f64 im re)))
(*.f64 (*.f64 im im) (/.f64 -1/2 re))
(*.f64 im (*.f64 im (/.f64 -1/2 re)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 -1/2 (/.f64 im (/.f64 re im)))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(*.f64 im (*.f64 -1/2 (/.f64 im re)))
(*.f64 (*.f64 im im) (/.f64 -1/2 re))
(*.f64 im (*.f64 im (/.f64 -1/2 re)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 -1/2 (/.f64 im (/.f64 re im)))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(*.f64 im (*.f64 -1/2 (/.f64 im re)))
(*.f64 (*.f64 im im) (/.f64 -1/2 re))
(*.f64 im (*.f64 im (/.f64 -1/2 re)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 -1/2 (/.f64 im (/.f64 re im)))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(*.f64 im (*.f64 -1/2 (/.f64 im re)))
(*.f64 (*.f64 im im) (/.f64 -1/2 re))
(*.f64 im (*.f64 im (/.f64 -1/2 re)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 -1/2 (/.f64 im (/.f64 re im)))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(*.f64 im (*.f64 -1/2 (/.f64 im re)))
(*.f64 (*.f64 im im) (/.f64 -1/2 re))
(*.f64 im (*.f64 im (/.f64 -1/2 re)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 -1/2 (/.f64 im (/.f64 re im)))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(*.f64 im (*.f64 -1/2 (/.f64 im re)))
(*.f64 (*.f64 im im) (/.f64 -1/2 re))
(*.f64 im (*.f64 im (/.f64 -1/2 re)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 -1/2 (/.f64 im (/.f64 re im)))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(*.f64 im (*.f64 -1/2 (/.f64 im re)))
(*.f64 (*.f64 im im) (/.f64 -1/2 re))
(*.f64 im (*.f64 im (/.f64 -1/2 re)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 -1/2 (/.f64 im (/.f64 re im)))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(*.f64 im (*.f64 -1/2 (/.f64 im re)))
(*.f64 (*.f64 im im) (/.f64 -1/2 re))
(*.f64 im (*.f64 im (/.f64 -1/2 re)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 -1/2 (/.f64 im (/.f64 re im)))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(*.f64 im (*.f64 -1/2 (/.f64 im re)))
(*.f64 (*.f64 im im) (/.f64 -1/2 re))
(*.f64 im (*.f64 im (/.f64 -1/2 re)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 -1/2 (/.f64 im (/.f64 re im)))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(*.f64 im (*.f64 -1/2 (/.f64 im re)))
(*.f64 (*.f64 im im) (/.f64 -1/2 re))
(*.f64 im (*.f64 im (/.f64 -1/2 re)))
(*.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 (neg.f64 (/.f64 im re)) im)
(*.f64 im (neg.f64 (/.f64 im re)))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.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 (neg.f64 (/.f64 im re)) im)
(*.f64 im (neg.f64 (/.f64 im re)))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.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 (neg.f64 (/.f64 im re)) im)
(*.f64 im (neg.f64 (/.f64 im re)))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.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 (neg.f64 (/.f64 im re)) im)
(*.f64 im (neg.f64 (/.f64 im re)))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.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 (neg.f64 (/.f64 im re)) im)
(*.f64 im (neg.f64 (/.f64 im re)))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.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 (neg.f64 (/.f64 im re)) im)
(*.f64 im (neg.f64 (/.f64 im re)))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.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 (neg.f64 (/.f64 im re)) im)
(*.f64 im (neg.f64 (/.f64 im re)))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.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 (neg.f64 (/.f64 im re)) im)
(*.f64 im (neg.f64 (/.f64 im re)))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.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 (neg.f64 (/.f64 im re)) im)
(*.f64 im (neg.f64 (/.f64 im re)))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.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 (neg.f64 (/.f64 im re)) im)
(*.f64 im (neg.f64 (/.f64 im re)))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.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 (neg.f64 (/.f64 im re)) im)
(*.f64 im (neg.f64 (/.f64 im re)))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.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 (neg.f64 (/.f64 im re)) im)
(*.f64 im (neg.f64 (/.f64 im re)))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.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 (neg.f64 (/.f64 im re)) im)
(*.f64 im (neg.f64 (/.f64 im re)))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.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 (neg.f64 (/.f64 im re)) im)
(*.f64 im (neg.f64 (/.f64 im re)))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.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 (neg.f64 (/.f64 im re)) im)
(*.f64 im (neg.f64 (/.f64 im re)))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.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 (neg.f64 (/.f64 im re)) im)
(*.f64 im (neg.f64 (/.f64 im re)))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.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 (neg.f64 (/.f64 im re)) im)
(*.f64 im (neg.f64 (/.f64 im re)))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.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 (neg.f64 (/.f64 im re)) im)
(*.f64 im (neg.f64 (/.f64 im re)))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.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 (neg.f64 (/.f64 im re)) im)
(*.f64 im (neg.f64 (/.f64 im re)))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.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 (neg.f64 (/.f64 im re)) im)
(*.f64 im (neg.f64 (/.f64 im re)))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.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 (neg.f64 (/.f64 im re)) im)
(*.f64 im (neg.f64 (/.f64 im re)))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.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 (neg.f64 (/.f64 im re)) im)
(*.f64 im (neg.f64 (/.f64 im re)))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.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 (neg.f64 (/.f64 im re)) im)
(*.f64 im (neg.f64 (/.f64 im re)))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.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 (neg.f64 (/.f64 im re)) im)
(*.f64 im (neg.f64 (/.f64 im re)))
(*.f64 im (/.f64 (neg.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 (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 (*.f64 (sqrt.f64 -1) im) (*.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 -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 -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 (*.f64 (sqrt.f64 -1) im) (*.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 -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 -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 (*.f64 (sqrt.f64 -1) im) (*.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 -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 -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 (*.f64 (sqrt.f64 -1) im) (*.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 -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 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))) -1/2)
(*.f64 (*.f64 (sqrt.f64 -1) im) (*.f64 (sqrt.f64 (/.f64 1 re)) -1/2))
(*.f64 im (*.f64 (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re))) -1/2))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im (*.f64 (sqrt.f64 -1) -1/2)))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))) -1/2)
(*.f64 (*.f64 (sqrt.f64 -1) im) (*.f64 (sqrt.f64 (/.f64 1 re)) -1/2))
(*.f64 im (*.f64 (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re))) -1/2))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im (*.f64 (sqrt.f64 -1) -1/2)))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))) -1/2)
(*.f64 (*.f64 (sqrt.f64 -1) im) (*.f64 (sqrt.f64 (/.f64 1 re)) -1/2))
(*.f64 im (*.f64 (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re))) -1/2))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im (*.f64 (sqrt.f64 -1) -1/2)))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))) -1/2)
(*.f64 (*.f64 (sqrt.f64 -1) im) (*.f64 (sqrt.f64 (/.f64 1 re)) -1/2))
(*.f64 im (*.f64 (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re))) -1/2))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im (*.f64 (sqrt.f64 -1) -1/2)))

localize29.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(*.f64 1/2 (pow.f64 (pow.f64 (*.f64 (*.f64 im (/.f64 im re)) -1) 1/6) 3))
0.1b
(*.f64 im (/.f64 im re))
0.3b
(pow.f64 (pow.f64 (*.f64 (*.f64 im (/.f64 im re)) -1) 1/6) 3)
31.1b
(pow.f64 (*.f64 (*.f64 im (/.f64 im re)) -1) 1/6)
Compiler

Compiled 56 to 28 computations (50% saved)

series195.0ms (2.8%)

Counts
4 → 84
Calls

24 calls:

TimeVariablePointExpression
132.0ms
re
@inf
(pow.f64 (*.f64 (*.f64 im (/.f64 im re)) -1) 1/6)
15.0ms
re
@-inf
(pow.f64 (*.f64 (*.f64 im (/.f64 im re)) -1) 1/6)
14.0ms
re
@0
(pow.f64 (*.f64 (*.f64 im (/.f64 im re)) -1) 1/6)
13.0ms
im
@0
(pow.f64 (*.f64 (*.f64 im (/.f64 im re)) -1) 1/6)
6.0ms
im
@inf
(pow.f64 (*.f64 (*.f64 im (/.f64 im re)) -1) 1/6)

rewrite434.0ms (6.3%)

Algorithm
egg-rewrite-iter-limit
egg-rewrite
batch-egg-rewrite
Rules
837×pow1_binary64
780×add-log-exp_binary64
780×log1p-expm1-u_binary64
780×expm1-log1p-u_binary64
763×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01352
128352
2334852
0913
119210
2243610
01113
124313
2294513
01113
057
11057
214107
01316
128316
2334716
01316
Stop Event
iter limit
node limit
node limit
iter limit
node limit
node limit
node limit
Counts
4 → 57
Calls
Call 1
Inputs
(pow.f64 (*.f64 (*.f64 im (/.f64 im re)) -1) 1/6)
(pow.f64 (pow.f64 (*.f64 (*.f64 im (/.f64 im re)) -1) 1/6) 3)
(*.f64 im (/.f64 im re))
(*.f64 1/2 (pow.f64 (pow.f64 (*.f64 (*.f64 im (/.f64 im re)) -1) 1/6) 3))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (*.f64 im (/.f64 im re)) 1/6)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 im (/.f64 im re)) 1/6) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 im (/.f64 im re)) 1/6) (pow.f64 -1 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (*.f64 im (/.f64 im re)) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (*.f64 im (/.f64 im re)) 1/6)) (cbrt.f64 (cbrt.f64 (*.f64 im (/.f64 im re)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (*.f64 im (/.f64 im re)))) (cbrt.f64 (pow.f64 (*.f64 im (/.f64 im re)) 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 -1 1/6) (pow.f64 (*.f64 im (/.f64 im re)) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 im (/.f64 im re)) 1/12) (pow.f64 (*.f64 im (/.f64 im re)) 1/12))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 im 1/6) (pow.f64 (*.f64 (/.f64 im re) -1) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 im 1/6) (pow.f64 (/.f64 im re) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/6) (pow.f64 (*.f64 im (/.f64 im re)) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 im re) 1/6) (pow.f64 im 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (pow.f64 (*.f64 im (/.f64 im re)) 2)) 1/6) (pow.f64 (cbrt.f64 (*.f64 im (/.f64 im re))) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 im (sqrt.f64 re)) 1/6) (pow.f64 (/.f64 im (sqrt.f64 re)) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (cbrt.f64 (*.f64 im (/.f64 im re))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (*.f64 im (/.f64 im re)) 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (*.f64 im (/.f64 im re)) 1/6) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (*.f64 im (/.f64 im re)) 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (*.f64 im (/.f64 im re)) 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 1/6 (log.f64 (*.f64 im (/.f64 im re)))))))))
((#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 im (*.f64 (/.f64 im re) -1)) 1/6) (*.f64 (pow.f64 (*.f64 im (*.f64 (/.f64 im re) -1)) 1/6) (pow.f64 (*.f64 im (*.f64 (/.f64 im re) -1)) 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (*.f64 im (*.f64 (/.f64 im re) -1)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (*.f64 im (*.f64 (/.f64 im re) -1)) 1/6) (pow.f64 (*.f64 im (*.f64 (/.f64 im re) -1)) 1/6)) (pow.f64 (*.f64 im (*.f64 (/.f64 im re) -1)) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (*.f64 im (*.f64 (/.f64 im re) -1)) 1/2)) (sqrt.f64 (pow.f64 (*.f64 im (*.f64 (/.f64 im re) -1)) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (*.f64 im (*.f64 (/.f64 im re) -1)) 1/6) 3/2) (pow.f64 (pow.f64 (*.f64 im (*.f64 (/.f64 im re) -1)) 1/6) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (*.f64 im (*.f64 (/.f64 im re) -1)) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (*.f64 (pow.f64 (*.f64 im (*.f64 (/.f64 im re) -1)) 1/2) (pow.f64 (*.f64 im (*.f64 (/.f64 im re) -1)) 1/2)) (pow.f64 (*.f64 im (*.f64 (/.f64 im re) -1)) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (*.f64 im (*.f64 (/.f64 im re) -1)) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (*.f64 im (*.f64 (/.f64 im re) -1)) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (pow.f64 (*.f64 im (*.f64 (/.f64 im re) -1)) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 im (*.f64 (/.f64 im re) -1)) 1/6)) 3))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 im (/.f64 im re))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 im (/.f64 re im))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 re (*.f64 im im)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 im im) re)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 im im)) (neg.f64 re))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 im) im) (neg.f64 re))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 im (neg.f64 im)) (neg.f64 re))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 im im) 1) re)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 im im) (pow.f64 (cbrt.f64 re) 2)) (cbrt.f64 re))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 im im) (sqrt.f64 re)) (sqrt.f64 re))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 im (/.f64 im re)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 im (/.f64 im re)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 im (/.f64 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 sqrt.f64 (pow.f64 (*.f64 im (/.f64 im re)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 im) (/.f64 im re)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 im (/.f64 im re)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 im (/.f64 im re))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 im (/.f64 im re))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 im (/.f64 im re))))))))
((#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 1/2 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (*.f64 1/2 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (*.f64 (*.f64 1/2 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/2)) (*.f64 1/2 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/2))) (*.f64 1/2 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 1/2 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 1/2 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 1/2 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/2))))))))

simplify78.0ms (1.1%)

Algorithm
egg-herbie
Rules
420×distribute-rgt-in_binary64
386×associate-*l*_binary64
328×associate-*r*_binary64
319×distribute-lft-in_binary64
271×exp-sum_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
0641260
11781260
24051164
311661020
43919948
Stop Event
node limit
Counts
141 → 77
Calls
Call 1
Inputs
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(exp.f64 (*.f64 1/6 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 1/6 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 1/6 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 1/6 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))) 3)
(*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (*.f64 -1 (pow.f64 im 2))) (*.f64 -1 (log.f64 re))))) (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 2))
(*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (*.f64 -1 (pow.f64 im 2))) (*.f64 -1 (log.f64 re))))) (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 2))
(*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (*.f64 -1 (pow.f64 im 2))) (*.f64 -1 (log.f64 re))))) (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 2))
(*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (*.f64 -1 (pow.f64 im 2))) (*.f64 -1 (log.f64 re))))) (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 2))
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re))))) 3)
(/.f64 (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
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (*.f64 im (neg.f64 im)) 1/6) (pow.f64 re -1/6))
(*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (*.f64 im (neg.f64 im)) 1/6) (pow.f64 re -1/6))
(*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (*.f64 im (neg.f64 im)) 1/6) (pow.f64 re -1/6))
(*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (*.f64 im (neg.f64 im)) 1/6) (pow.f64 re -1/6))
(*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (*.f64 im (neg.f64 im)) 1/6) (pow.f64 re -1/6))
(*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (*.f64 im (neg.f64 im)) 1/6) (pow.f64 re -1/6))
(*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (*.f64 im (neg.f64 im)) 1/6) (pow.f64 re -1/6))
(*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (*.f64 im (neg.f64 im)) 1/6) (pow.f64 re -1/6))
(*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (*.f64 im (neg.f64 im)) 1/6) (pow.f64 re -1/6))
(*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (*.f64 im (neg.f64 im)) 1/6) (pow.f64 re -1/6))
(*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (*.f64 im (neg.f64 im)) 1/6) (pow.f64 re -1/6))
(*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (*.f64 im (neg.f64 im)) 1/6) (pow.f64 re -1/6))
(*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (*.f64 im (neg.f64 im)) 1/6) (pow.f64 re -1/6))
(*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (*.f64 im (neg.f64 im)) 1/6) (pow.f64 re -1/6))
(*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (*.f64 im (neg.f64 im)) 1/6) (pow.f64 re -1/6))
(*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (*.f64 im (neg.f64 im)) 1/6) (pow.f64 re -1/6))
(*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im))
(exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (*.f64 im (neg.f64 im)) 1/6) (pow.f64 re -1/6))
(*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im))
(exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (*.f64 im (neg.f64 im)) 1/6) (pow.f64 re -1/6))
(*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im))
(exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (*.f64 im (neg.f64 im)) 1/6) (pow.f64 re -1/6))
(*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im))
(exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (*.f64 im (neg.f64 im)) 1/6) (pow.f64 re -1/6))
(*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im))
(exp.f64 (*.f64 1/6 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (*.f64 im (neg.f64 im)) 1/6) (pow.f64 re -1/6))
(*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im))
(exp.f64 (*.f64 1/6 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (*.f64 im (neg.f64 im)) 1/6) (pow.f64 re -1/6))
(*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im))
(exp.f64 (*.f64 1/6 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (*.f64 im (neg.f64 im)) 1/6) (pow.f64 re -1/6))
(*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im))
(exp.f64 (*.f64 1/6 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (*.f64 im (neg.f64 im)) 1/6) (pow.f64 re -1/6))
(*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im))
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 (*.f64 im (neg.f64 im)) 1/6) (pow.f64 re -1/6)) 3)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im)) 3)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 (*.f64 im (neg.f64 im)) 1/6) (pow.f64 re -1/6)) 3)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im)) 3)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 (*.f64 im (neg.f64 im)) 1/6) (pow.f64 re -1/6)) 3)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im)) 3)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 (*.f64 im (neg.f64 im)) 1/6) (pow.f64 re -1/6)) 3)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im)) 3)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 (*.f64 im (neg.f64 im)) 1/6) (pow.f64 re -1/6)) 3)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im)) 3)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 (*.f64 im (neg.f64 im)) 1/6) (pow.f64 re -1/6)) 3)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im)) 3)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 (*.f64 im (neg.f64 im)) 1/6) (pow.f64 re -1/6)) 3)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im)) 3)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 (*.f64 im (neg.f64 im)) 1/6) (pow.f64 re -1/6)) 3)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im)) 3)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 (*.f64 im (neg.f64 im)) 1/6) (pow.f64 re -1/6)) 3)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im)) 3)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 (*.f64 im (neg.f64 im)) 1/6) (pow.f64 re -1/6)) 3)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im)) 3)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 (*.f64 im (neg.f64 im)) 1/6) (pow.f64 re -1/6)) 3)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im)) 3)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 (*.f64 im (neg.f64 im)) 1/6) (pow.f64 re -1/6)) 3)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im)) 3)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 1/2)
(*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (*.f64 -1 (pow.f64 im 2))) (*.f64 -1 (log.f64 re))))) (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 2))
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 (*.f64 im (neg.f64 im)) 1/6) (pow.f64 re -1/6)) 3)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im)) 3)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 1/2)
(*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (*.f64 -1 (pow.f64 im 2))) (*.f64 -1 (log.f64 re))))) (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 2))
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 (*.f64 im (neg.f64 im)) 1/6) (pow.f64 re -1/6)) 3)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im)) 3)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 1/2)
(*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (*.f64 -1 (pow.f64 im 2))) (*.f64 -1 (log.f64 re))))) (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 2))
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 (*.f64 im (neg.f64 im)) 1/6) (pow.f64 re -1/6)) 3)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im)) 3)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 1/2)
(*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (*.f64 -1 (pow.f64 im 2))) (*.f64 -1 (log.f64 re))))) (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 2))
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 (*.f64 im (neg.f64 im)) 1/6) (pow.f64 re -1/6)) 3)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im)) 3)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 (*.f64 im (neg.f64 im)) 1/6) (pow.f64 re -1/6)) 3)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im)) 3)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 (*.f64 im (neg.f64 im)) 1/6) (pow.f64 re -1/6)) 3)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im)) 3)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 (*.f64 im (neg.f64 im)) 1/6) (pow.f64 re -1/6)) 3)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im)) 3)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 (*.f64 im (neg.f64 im)) 1/6) (pow.f64 re -1/6)) 3)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im)) 3)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 (*.f64 im (neg.f64 im)) 1/6) (pow.f64 re -1/6)) 3)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im)) 3)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 (*.f64 im (neg.f64 im)) 1/6) (pow.f64 re -1/6)) 3)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im)) 3)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 (*.f64 im (neg.f64 im)) 1/6) (pow.f64 re -1/6)) 3)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im)) 3)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 (*.f64 im (neg.f64 im)) 1/6) (pow.f64 re -1/6)) 3)
(pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im)) 3)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 1/2)
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(*.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 1/2 (*.f64 (*.f64 im (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 im (*.f64 (sqrt.f64 -1) (*.f64 1/2 (sqrt.f64 (/.f64 1 re)))))
(*.f64 (sqrt.f64 -1) (*.f64 im (*.f64 1/2 (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 im (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 im (*.f64 (sqrt.f64 -1) (*.f64 1/2 (sqrt.f64 (/.f64 1 re)))))
(*.f64 (sqrt.f64 -1) (*.f64 im (*.f64 1/2 (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 im (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 im (*.f64 (sqrt.f64 -1) (*.f64 1/2 (sqrt.f64 (/.f64 1 re)))))
(*.f64 (sqrt.f64 -1) (*.f64 im (*.f64 1/2 (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 im (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 im (*.f64 (sqrt.f64 -1) (*.f64 1/2 (sqrt.f64 (/.f64 1 re)))))
(*.f64 (sqrt.f64 -1) (*.f64 im (*.f64 1/2 (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 im (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 im (*.f64 (sqrt.f64 -1) (*.f64 1/2 (sqrt.f64 (/.f64 1 re)))))
(*.f64 (sqrt.f64 -1) (*.f64 im (*.f64 1/2 (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 im (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 im (*.f64 (sqrt.f64 -1) (*.f64 1/2 (sqrt.f64 (/.f64 1 re)))))
(*.f64 (sqrt.f64 -1) (*.f64 im (*.f64 1/2 (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 im (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 im (*.f64 (sqrt.f64 -1) (*.f64 1/2 (sqrt.f64 (/.f64 1 re)))))
(*.f64 (sqrt.f64 -1) (*.f64 im (*.f64 1/2 (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 im (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 im (*.f64 (sqrt.f64 -1) (*.f64 1/2 (sqrt.f64 (/.f64 1 re)))))
(*.f64 (sqrt.f64 -1) (*.f64 im (*.f64 1/2 (sqrt.f64 (/.f64 1 re)))))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (*.f64 im (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 re))) -1/2)
(*.f64 (sqrt.f64 -1) (*.f64 (*.f64 im (sqrt.f64 (/.f64 1 re))) -1/2))
(*.f64 im (*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) -1/2)))
(*.f64 im (*.f64 -1/2 (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re)))))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (*.f64 im (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 re))) -1/2)
(*.f64 (sqrt.f64 -1) (*.f64 (*.f64 im (sqrt.f64 (/.f64 1 re))) -1/2))
(*.f64 im (*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) -1/2)))
(*.f64 im (*.f64 -1/2 (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re)))))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (*.f64 im (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 re))) -1/2)
(*.f64 (sqrt.f64 -1) (*.f64 (*.f64 im (sqrt.f64 (/.f64 1 re))) -1/2))
(*.f64 im (*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) -1/2)))
(*.f64 im (*.f64 -1/2 (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re)))))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (*.f64 im (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 re))) -1/2)
(*.f64 (sqrt.f64 -1) (*.f64 (*.f64 im (sqrt.f64 (/.f64 1 re))) -1/2))
(*.f64 im (*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) -1/2)))
(*.f64 im (*.f64 -1/2 (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re)))))

localize37.0ms (0.5%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f64 im (/.f64 im re))
0.2b
(*.f64 (log.f64 (pow.f64 (*.f64 (*.f64 im (/.f64 im re)) -1) 1/6)) 3)
2.2b
(exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (*.f64 im (/.f64 im re)) -1) 1/6)) 3))
31.1b
(pow.f64 (*.f64 (*.f64 im (/.f64 im re)) -1) 1/6)
Compiler

Compiled 82 to 44 computations (46.3% saved)

series146.0ms (2.1%)

Counts
2 → 48
Calls

12 calls:

TimeVariablePointExpression
64.0ms
im
@0
(*.f64 (log.f64 (pow.f64 (*.f64 (*.f64 im (/.f64 im re)) -1) 1/6)) 3)
31.0ms
re
@0
(*.f64 (log.f64 (pow.f64 (*.f64 (*.f64 im (/.f64 im re)) -1) 1/6)) 3)
16.0ms
re
@inf
(*.f64 (log.f64 (pow.f64 (*.f64 (*.f64 im (/.f64 im re)) -1) 1/6)) 3)
16.0ms
re
@-inf
(*.f64 (log.f64 (pow.f64 (*.f64 (*.f64 im (/.f64 im re)) -1) 1/6)) 3)
15.0ms
im
@inf
(*.f64 (log.f64 (pow.f64 (*.f64 (*.f64 im (/.f64 im re)) -1) 1/6)) 3)

rewrite212.0ms (3.1%)

Algorithm
egg-rewrite
egg-rewrite-iter-limit
batch-egg-rewrite
Rules
574×log-prod_binary64
574×log-prod_binary64
552×log-prod_binary64
401×exp-prod_binary64
298×pow-prod-down_binary64
Iterations

Useful iterations: 2 (0.0ms)

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

simplify66.0ms (1%)

Algorithm
egg-herbie
Rules
571×distribute-rgt-in_binary64
373×fma-def_binary64
334×associate-*l*_binary64
316×associate-*r*_binary64
291×unsub-neg_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
062852
1192852
2442740
31196644
44214596
Stop Event
node limit
Counts
93 → 60
Calls
Call 1
Inputs
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))) 3)
(*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (*.f64 -1 (pow.f64 im 2))) (*.f64 -1 (log.f64 re))))) (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 2))
(*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (*.f64 -1 (pow.f64 im 2))) (*.f64 -1 (log.f64 re))))) (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 2))
(*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (*.f64 -1 (pow.f64 im 2))) (*.f64 -1 (log.f64 re))))) (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 2))
(*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (*.f64 -1 (pow.f64 im 2))) (*.f64 -1 (log.f64 re))))) (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 2))
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re))))) 3)
(*.f64 1/2 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))
(*.f64 1/2 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))
(*.f64 1/2 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))
(*.f64 1/2 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))
(*.f64 1/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re))))
(*.f64 1/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re))))
(*.f64 1/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re))))
(*.f64 1/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re))))
(*.f64 1/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))
(*.f64 1/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))
(*.f64 1/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))
(*.f64 1/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))
(*.f64 1/2 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))
(*.f64 1/2 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))
(*.f64 1/2 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))
(*.f64 1/2 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))
(*.f64 1/2 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))
(*.f64 1/2 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))
(*.f64 1/2 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))
(*.f64 1/2 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))
(*.f64 1/2 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re))))
(*.f64 1/2 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re))))
(*.f64 1/2 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re))))
(*.f64 1/2 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re))))
Outputs
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 re -1/6) (pow.f64 (neg.f64 (*.f64 im im)) 1/6)) 3)
(exp.f64 (fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im)))
(pow.f64 (neg.f64 (/.f64 (*.f64 im im) re)) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 re -1/6) (pow.f64 (neg.f64 (*.f64 im im)) 1/6)) 3)
(exp.f64 (fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im)))
(pow.f64 (neg.f64 (/.f64 (*.f64 im im) re)) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 re -1/6) (pow.f64 (neg.f64 (*.f64 im im)) 1/6)) 3)
(exp.f64 (fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im)))
(pow.f64 (neg.f64 (/.f64 (*.f64 im im) re)) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 re -1/6) (pow.f64 (neg.f64 (*.f64 im im)) 1/6)) 3)
(exp.f64 (fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im)))
(pow.f64 (neg.f64 (/.f64 (*.f64 im im) re)) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 re -1/6) (pow.f64 (neg.f64 (*.f64 im im)) 1/6)) 3)
(exp.f64 (fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im)))
(pow.f64 (neg.f64 (/.f64 (*.f64 im im) re)) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 re -1/6) (pow.f64 (neg.f64 (*.f64 im im)) 1/6)) 3)
(exp.f64 (fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im)))
(pow.f64 (neg.f64 (/.f64 (*.f64 im im) re)) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 re -1/6) (pow.f64 (neg.f64 (*.f64 im im)) 1/6)) 3)
(exp.f64 (fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im)))
(pow.f64 (neg.f64 (/.f64 (*.f64 im im) re)) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 re -1/6) (pow.f64 (neg.f64 (*.f64 im im)) 1/6)) 3)
(exp.f64 (fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im)))
(pow.f64 (neg.f64 (/.f64 (*.f64 im im) re)) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 re -1/6) (pow.f64 (neg.f64 (*.f64 im im)) 1/6)) 3)
(exp.f64 (fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im)))
(pow.f64 (neg.f64 (/.f64 (*.f64 im im) re)) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 re -1/6) (pow.f64 (neg.f64 (*.f64 im im)) 1/6)) 3)
(exp.f64 (fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im)))
(pow.f64 (neg.f64 (/.f64 (*.f64 im im) re)) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 re -1/6) (pow.f64 (neg.f64 (*.f64 im im)) 1/6)) 3)
(exp.f64 (fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im)))
(pow.f64 (neg.f64 (/.f64 (*.f64 im im) re)) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 re -1/6) (pow.f64 (neg.f64 (*.f64 im im)) 1/6)) 3)
(exp.f64 (fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im)))
(pow.f64 (neg.f64 (/.f64 (*.f64 im im) re)) 1/2)
(*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (*.f64 -1 (pow.f64 im 2))) (*.f64 -1 (log.f64 re))))) (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 2))
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 re -1/6) (pow.f64 (neg.f64 (*.f64 im im)) 1/6)) 3)
(exp.f64 (fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im)))
(pow.f64 (neg.f64 (/.f64 (*.f64 im im) re)) 1/2)
(*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (*.f64 -1 (pow.f64 im 2))) (*.f64 -1 (log.f64 re))))) (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 2))
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 re -1/6) (pow.f64 (neg.f64 (*.f64 im im)) 1/6)) 3)
(exp.f64 (fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im)))
(pow.f64 (neg.f64 (/.f64 (*.f64 im im) re)) 1/2)
(*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (*.f64 -1 (pow.f64 im 2))) (*.f64 -1 (log.f64 re))))) (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 2))
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 re -1/6) (pow.f64 (neg.f64 (*.f64 im im)) 1/6)) 3)
(exp.f64 (fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im)))
(pow.f64 (neg.f64 (/.f64 (*.f64 im im) re)) 1/2)
(*.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (*.f64 -1 (pow.f64 im 2))) (*.f64 -1 (log.f64 re))))) (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 2))
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 re -1/6) (pow.f64 (neg.f64 (*.f64 im im)) 1/6)) 3)
(exp.f64 (fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im)))
(pow.f64 (neg.f64 (/.f64 (*.f64 im im) re)) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 re -1/6) (pow.f64 (neg.f64 (*.f64 im im)) 1/6)) 3)
(exp.f64 (fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im)))
(pow.f64 (neg.f64 (/.f64 (*.f64 im im) re)) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 re -1/6) (pow.f64 (neg.f64 (*.f64 im im)) 1/6)) 3)
(exp.f64 (fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im)))
(pow.f64 (neg.f64 (/.f64 (*.f64 im im) re)) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 re -1/6) (pow.f64 (neg.f64 (*.f64 im im)) 1/6)) 3)
(exp.f64 (fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im)))
(pow.f64 (neg.f64 (/.f64 (*.f64 im im) re)) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 re -1/6) (pow.f64 (neg.f64 (*.f64 im im)) 1/6)) 3)
(exp.f64 (fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im)))
(pow.f64 (neg.f64 (/.f64 (*.f64 im im) re)) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 re -1/6) (pow.f64 (neg.f64 (*.f64 im im)) 1/6)) 3)
(exp.f64 (fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im)))
(pow.f64 (neg.f64 (/.f64 (*.f64 im im) re)) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 re -1/6) (pow.f64 (neg.f64 (*.f64 im im)) 1/6)) 3)
(exp.f64 (fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im)))
(pow.f64 (neg.f64 (/.f64 (*.f64 im im) re)) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 re -1/6) (pow.f64 (neg.f64 (*.f64 im im)) 1/6)) 3)
(exp.f64 (fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im)))
(pow.f64 (neg.f64 (/.f64 (*.f64 im im) re)) 1/2)
(pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re))))) 3)
(pow.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 3)
(pow.f64 (*.f64 (pow.f64 re -1/6) (pow.f64 (neg.f64 (*.f64 im im)) 1/6)) 3)
(exp.f64 (fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im)))
(pow.f64 (neg.f64 (/.f64 (*.f64 im im) re)) 1/2)
(*.f64 1/2 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))
(*.f64 (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))) 1/2)
(fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im))
(*.f64 1/2 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))
(*.f64 (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))) 1/2)
(fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im))
(*.f64 1/2 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))
(*.f64 (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))) 1/2)
(fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im))
(*.f64 1/2 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))
(*.f64 (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))) 1/2)
(fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im))
(*.f64 1/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re))))
(*.f64 (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))) 1/2)
(fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im))
(*.f64 1/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re))))
(*.f64 (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))) 1/2)
(fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im))
(*.f64 1/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re))))
(*.f64 (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))) 1/2)
(fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im))
(*.f64 1/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re))))
(*.f64 (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))) 1/2)
(fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im))
(*.f64 1/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))
(*.f64 (fma.f64 -2 (log.f64 (/.f64 -1 im)) (log.f64 (/.f64 -1 re))) 1/2)
(fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (neg.f64 (log.f64 (/.f64 -1 im))))
(-.f64 (*.f64 (log.f64 (/.f64 -1 re)) 1/2) (log.f64 (/.f64 -1 im)))
(*.f64 1/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))
(*.f64 (fma.f64 -2 (log.f64 (/.f64 -1 im)) (log.f64 (/.f64 -1 re))) 1/2)
(fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (neg.f64 (log.f64 (/.f64 -1 im))))
(-.f64 (*.f64 (log.f64 (/.f64 -1 re)) 1/2) (log.f64 (/.f64 -1 im)))
(*.f64 1/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))
(*.f64 (fma.f64 -2 (log.f64 (/.f64 -1 im)) (log.f64 (/.f64 -1 re))) 1/2)
(fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (neg.f64 (log.f64 (/.f64 -1 im))))
(-.f64 (*.f64 (log.f64 (/.f64 -1 re)) 1/2) (log.f64 (/.f64 -1 im)))
(*.f64 1/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))
(*.f64 (fma.f64 -2 (log.f64 (/.f64 -1 im)) (log.f64 (/.f64 -1 re))) 1/2)
(fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (neg.f64 (log.f64 (/.f64 -1 im))))
(-.f64 (*.f64 (log.f64 (/.f64 -1 re)) 1/2) (log.f64 (/.f64 -1 im)))
(*.f64 1/2 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))
(*.f64 (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))) 1/2)
(fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im))
(*.f64 1/2 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))
(*.f64 (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))) 1/2)
(fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im))
(*.f64 1/2 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))
(*.f64 (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))) 1/2)
(fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im))
(*.f64 1/2 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))
(*.f64 (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))) 1/2)
(fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im))
(*.f64 1/2 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))
(*.f64 (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))) 1/2)
(fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im))
(*.f64 1/2 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))
(*.f64 (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))) 1/2)
(fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im))
(*.f64 1/2 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))
(*.f64 (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))) 1/2)
(fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im))
(*.f64 1/2 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2)))))
(*.f64 (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))) 1/2)
(fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im))
(*.f64 1/2 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re))))
(*.f64 (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))) 1/2)
(fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im))
(*.f64 1/2 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re))))
(*.f64 (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))) 1/2)
(fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im))
(*.f64 1/2 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re))))
(*.f64 (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))) 1/2)
(fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im))
(*.f64 1/2 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re))))
(*.f64 (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))) 1/2)
(fma.f64 (log.f64 (/.f64 -1 re)) 1/2 (log.f64 im))

eval110.0ms (1.6%)

Compiler

Compiled 5764 to 3609 computations (37.4% saved)

prune69.0ms (1%)

Pruning

27 alts after pruning (18 fresh and 9 done)

PrunedKeptTotal
New38111392
Fresh5712
Picked101
Done3912
Total39027417
Error
0.3b
Counts
417 → 27
Alt Table
Click to see full alt table
StatusErrorProgram
56.9b
(*.f64 1/2 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))) 3))
59.7b
(*.f64 1/2 (sqrt.f64 (/.f64 im (/.f64 re im))))
55.4b
(*.f64 1/2 (/.f64 (sqrt.f64 (neg.f64 im)) (sqrt.f64 (/.f64 re im))))
44.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
51.7b
(*.f64 1/2 (*.f64 (sqrt.f64 (*.f64 (*.f64 (/.f64 im re) im) -1/2)) (sqrt.f64 2)))
51.7b
(*.f64 1/2 (sqrt.f64 (/.f64 (/.f64 (neg.f64 im) re) (/.f64 1 im))))
49.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im))))
51.7b
(*.f64 1/2 (pow.f64 (cbrt.f64 (*.f64 (neg.f64 im) (/.f64 im re))) 3/2))
45.6b
(*.f64 1/2 (*.f64 2 (sqrt.f64 re)))
47.3b
(*.f64 1/2 (*.f64 (sqrt.f64 (-.f64 re im)) (sqrt.f64 2)))
51.7b
(*.f64 1/2 (sqrt.f64 (/.f64 (neg.f64 im) (/.f64 re im))))
56.8b
(*.f64 1/2 (exp.f64 (*.f64 1/2 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re))))))
55.0b
(*.f64 1/2 (pow.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re))))) 3))
53.3b
(*.f64 1/2 (sqrt.f64 (/.f64 (*.f64 im im) (neg.f64 re))))
13.6b
(*.f64 1/2 (*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2)))
45.8b
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 re)) (sqrt.f64 2)))
47.0b
(*.f64 1/2 (pow.f64 (cbrt.f64 (sqrt.f64 (*.f64 2 im))) 3))
55.3b
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 (/.f64 im re)) (sqrt.f64 (*.f64 im -1/2))) (sqrt.f64 2)))
46.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 im (fma.f64 1/2 (*.f64 (/.f64 re im) re) re)))))
54.7b
(*.f64 1/2 (pow.f64 (*.f64 (pow.f64 (/.f64 -1 re) 1/6) (cbrt.f64 im)) 3))
63.0b
(*.f64 -1/2 (/.f64 im (sqrt.f64 re)))
46.7b
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
46.7b
(*.f64 1/2 (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
57.2b
(*.f64 1/2 (exp.f64 (+.f64 (log.f64 (sqrt.f64 im)) (log.f64 (sqrt.f64 (*.f64 (/.f64 im re) -1))))))
47.9b
(*.f64 1/2 (exp.f64 (log.f64 (sqrt.f64 (*.f64 2 im)))))
55.0b
(*.f64 1/2 (exp.f64 (-.f64 (*.f64 (log.f64 (/.f64 -1 re)) 1/2) (log.f64 (/.f64 -1 im)))))
52.3b
(*.f64 1/2 (pow.f64 (pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 1/6) 3))
Compiler

Compiled 341 to 280 computations (17.9% saved)

regimes316.0ms (4.6%)

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

8 calls:

72.0ms
im
53.0ms
re
50.0ms
(*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))
32.0ms
(sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)))
28.0ms
(+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)
Results
ErrorSegmentsBranch
9.3b2re
12.1b3im
9.2b2(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))))
9.2b2(sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)))
8.8b2(*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))
8.8b2(+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)
13.3b1(*.f64 im im)
13.3b1(*.f64 im im)
Compiler

Compiled 598 to 416 computations (30.4% saved)

bsearch1.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.0
5.455565586183225e-289
Compiler

Compiled 22 to 16 computations (27.3% saved)

regimes54.0ms (0.8%)

Accuracy

Total -39.8b remaining (-164.7%)

Threshold costs -39.8b (-164.7%)

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

2 calls:

27.0ms
im
24.0ms
re
Results
ErrorSegmentsBranch
30.6b4re
24.2b3im
Compiler

Compiled 89 to 66 computations (25.8% saved)

bsearch113.0ms (1.6%)

Algorithm
binary-search
Steps
TimeLeftRight
58.0ms
2.2457001061698145e-185
2.516307182018719e-185
55.0ms
-3.208451436434667e-117
-2.0230696441201655e-122
Compiler

Compiled 22 to 16 computations (27.3% saved)

simplify8.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
041103
160103
265103
368103
469103
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(if (<=.f64 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re) 0) (*.f64 1/2 (sqrt.f64 (/.f64 (neg.f64 im) (/.f64 re im)))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))))
(if (<=.f64 im -2332026749022580736/726838724295606890549323807888004534353641360687318060281490199180639288113397923326191050713763565560762521606266177933534601628614656) (*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 re im)))) (if (<=.f64 im 440056910834269056/19595533242629369747791401605606558418088927130487463844933662202465281465266200982457647235235528838735010358900495684567911298014908298340170885513171109743249504533143507682501017145381579984990109696) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))))
(*.f64 1/2 (*.f64 2 (sqrt.f64 re)))
Outputs
(if (<=.f64 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re) 0) (*.f64 1/2 (sqrt.f64 (/.f64 (neg.f64 im) (/.f64 re im)))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))))
(if (<=.f64 (+.f64 re (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))) 0) (*.f64 1/2 (sqrt.f64 (/.f64 (neg.f64 im) (/.f64 re im)))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))))
(if (<=.f64 im -2332026749022580736/726838724295606890549323807888004534353641360687318060281490199180639288113397923326191050713763565560762521606266177933534601628614656) (*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 re im)))) (if (<=.f64 im 440056910834269056/19595533242629369747791401605606558418088927130487463844933662202465281465266200982457647235235528838735010358900495684567911298014908298340170885513171109743249504533143507682501017145381579984990109696) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))))
(if (<=.f64 im -569342468023091/177450860423732151013018507785157357019931972824052260810910693159335763699560039874558361990664932998233037501529828597054346100736) (*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 re im)))) (if (<=.f64 im 3437944615892727/153090103458041951154620325043801237641319743206933311288544235956760011447392195175450369025277569052617268428910122535686807015741471080782585043071649294869136754165183653769539196448293593632735232) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))))
(*.f64 1/2 (*.f64 2 (sqrt.f64 re)))
Compiler

Compiled 74 to 55 computations (25.7% saved)

soundness94.0ms (1.4%)

Algorithm
egg-herbie
Rules
753×distribute-rgt-in_binary64
620×associate-*r*_binary64
577×associate-*l*_binary64
572×fma-def_binary64
282×unswap-sqr_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01315
12515
23415
33615
0129926
1375872
21203816
35786778
01315
12515
23415
33615
Stop Event
saturated
node limit
saturated
Compiler

Compiled 137 to 98 computations (28.5% saved)

end42.0ms (0.6%)

Compiler

Compiled 70 to 50 computations (28.6% saved)

Profiling

Loading profile data...