Details

Time bar (total: 8.9s)

analyze316.0ms (3.5%)

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

Compiled 18 to 13 computations (27.8% saved)

sample1.9s (21.6%)

Results
864.0ms6423×body256valid
522.0ms532×body4096valid
300.0ms655×body2048valid
159.0ms432×body1024valid
72.0ms214×body512valid

preprocess17.0ms (0.2%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01930
14530
25530
35930
022
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
1
Outputs
0
1
Call 2
Inputs
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 im im) (*.f64 re re))) im))))
Outputs
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 im im) (*.f64 re re))) im))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 im (hypot.f64 re im)))))
Compiler

Compiled 19 to 14 computations (26.3% saved)

simplify7.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01315
12515
23415
33615
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))))
Outputs
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))

eval1.0ms (0%)

Compiler

Compiled 27 to 19 computations (29.6% saved)

prune1.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
13.5b
Counts
3 → 2
Alt Table
Click to see full alt table
StatusErrorProgram
39.2b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))))
13.5b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))
Compiler

Compiled 29 to 21 computations (27.6% saved)

localize12.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 39 to 16 computations (59% saved)

series11.0ms (0.1%)

Counts
2 → 32
Calls

12 calls:

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

rewrite63.0ms (0.7%)

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

Useful iterations: 0 (0.0ms)

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

simplify78.0ms (0.9%)

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

localize20.0ms (0.2%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)))
1.0b
(+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)
29.4b
(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
Compiler

Compiled 77 to 19 computations (75.3% saved)

series8.0ms (0.1%)

Counts
3 → 56
Calls

18 calls:

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

rewrite126.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
541×log-prod_binary64
540×fma-def_binary64
404×pow-prod-down_binary64
298×pow2_binary64
265×fma-neg_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify237.0ms (2.7%)

Algorithm
egg-herbie
Rules
735×fma-def_binary64
663×associate-*r*_binary64
610×associate-*l*_binary64
319×unswap-sqr_binary64
280×times-frac_binary64
Iterations

Useful iterations: 2 (0.0ms)

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

eval182.0ms (2%)

Compiler

Compiled 5713 to 3825 computations (33% saved)

prune71.0ms (0.8%)

Pruning

9 alts after pruning (8 fresh and 1 done)

PrunedKeptTotal
New2788286
Fresh000
Picked101
Done011
Total2799288
Error
4.9b
Counts
288 → 9
Alt Table
Click to see full alt table
StatusErrorProgram
54.7b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (/.f64 (*.f64 im im) (/.f64 re -1/2)))))
59.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (neg.f64 re) re))))
46.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im))))
45.3b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
48.6b
(*.f64 1/2 (*.f64 2 (sqrt.f64 re)))
51.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (*.f64 (/.f64 im re) im) -1/2))))
47.3b
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
13.5b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))
43.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 re im))))
Compiler

Compiled 180 to 147 computations (18.3% saved)

localize10.0ms (0.1%)

Compiler

Compiled 28 to 15 computations (46.4% saved)

localize11.0ms (0.1%)

Compiler

Compiled 18 to 14 computations (22.2% saved)

localize14.0ms (0.2%)

Compiler

Compiled 23 to 15 computations (34.8% saved)

localize50.0ms (0.6%)

Compiler

Compiled 33 to 16 computations (51.5% saved)

localize36.0ms (0.4%)

Local error

Found 3 expressions with local error:

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

Compiled 51 to 30 computations (41.2% saved)

series22.0ms (0.2%)

Counts
3 → 48
Calls

18 calls:

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

rewrite237.0ms (2.7%)

Algorithm
batch-egg-rewrite
Rules
613×log-prod_binary64
325×pow-prod-down_binary64
300×pow2_binary64
235×pow-unpow_binary64
209×pow1/3_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify133.0ms (1.5%)

Algorithm
egg-herbie
Rules
695×fma-def_binary64
526×associate-*l*_binary64
479×fma-neg_binary64
357×associate-*r*_binary64
353×associate-*r/_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
019620
142620
2111620
3295620
4688620
52128620
63445620
75316620
86386620
97067620
107939620
Stop Event
node limit
Counts
152 → 113
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/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
Outputs
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 im (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) 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 im (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 im (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) 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 im (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 im (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 im (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(neg.f64 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 (*.f64 (sqrt.f64 -1) im)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 im)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im (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 (sqrt.f64 (/.f64 1 re)) (neg.f64 (*.f64 (sqrt.f64 -1) im)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 im)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im (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 (sqrt.f64 (/.f64 1 re)) (neg.f64 (*.f64 (sqrt.f64 -1) im)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 im)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im (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 (sqrt.f64 (/.f64 1 re)) (neg.f64 (*.f64 (sqrt.f64 -1) im)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 im)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im (neg.f64 (sqrt.f64 -1))))
(*.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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 im (*.f64 im (/.f64 -1/2 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 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1) im) 1/2))
(*.f64 (*.f64 (sqrt.f64 -1) 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 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1) im) 1/2))
(*.f64 (*.f64 (sqrt.f64 -1) 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 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1) im) 1/2))
(*.f64 (*.f64 (sqrt.f64 -1) 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 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1) im) 1/2))
(*.f64 (*.f64 (sqrt.f64 -1) 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 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1) im) 1/2))
(*.f64 (*.f64 (sqrt.f64 -1) 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 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1) im) 1/2))
(*.f64 (*.f64 (sqrt.f64 -1) 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 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1) im) 1/2))
(*.f64 (*.f64 (sqrt.f64 -1) 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 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1) im) 1/2))
(*.f64 (*.f64 (sqrt.f64 -1) 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 im (*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) -1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im -1/2)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1) im) -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 -1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (*.f64 (sqrt.f64 (/.f64 1 re)) -1/2))
(*.f64 im (*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) -1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im -1/2)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1) im) -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 -1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (*.f64 (sqrt.f64 (/.f64 1 re)) -1/2))
(*.f64 im (*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) -1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im -1/2)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1) im) -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 -1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (*.f64 (sqrt.f64 (/.f64 1 re)) -1/2))
(*.f64 im (*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) -1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im -1/2)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1) im) -1/2))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im (*.f64 (sqrt.f64 -1) -1/2)))

eval35.0ms (0.4%)

Compiler

Compiled 1678 to 1163 computations (30.7% saved)

prune29.0ms (0.3%)

Pruning

13 alts after pruning (8 fresh and 5 done)

PrunedKeptTotal
New1076113
Fresh123
Picked101
Done055
Total10913122
Error
2.4b
Counts
122 → 13
Alt Table
Click to see full alt table
StatusErrorProgram
53.5b
(*.f64 1/2 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 im im))) (sqrt.f64 (*.f64 re -2))))
51.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 im (*.f64 im (/.f64 -1/2 re))))))
46.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im))))
45.3b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
48.6b
(*.f64 1/2 (*.f64 2 (sqrt.f64 re)))
51.9b
(*.f64 1/2 (pow.f64 (cbrt.f64 (*.f64 (/.f64 im (/.f64 re im)) -1)) 3/2))
47.3b
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
59.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (neg.f64 re) re))))
51.8b
(sqrt.f64 (*.f64 (*.f64 (/.f64 im (/.f64 re im)) -1) 1/4))
53.7b
(*.f64 1/2 (*.f64 (*.f64 im (sqrt.f64 (/.f64 -1/2 re))) (sqrt.f64 2)))
51.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (/.f64 im (*.f64 re -2)) im))))
13.5b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))
43.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 re im))))
Compiler

Compiled 250 to 201 computations (19.6% saved)

localize10.0ms (0.1%)

Compiler

Compiled 28 to 15 computations (46.4% saved)

localize7.0ms (0.1%)

Compiler

Compiled 17 to 11 computations (35.3% saved)

localize25.0ms (0.3%)

Local error

Found 4 expressions with local error:

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

Compiled 53 to 36 computations (32.1% saved)

series12.0ms (0.1%)

Counts
4 → 72
Calls

24 calls:

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

rewrite90.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
603×log-prod_binary64
446×exp-prod_binary64
362×pow-prod-down_binary64
296×pow-unpow_binary64
294×pow2_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify118.0ms (1.3%)

Algorithm
egg-herbie
Rules
697×fma-def_binary64
576×associate-*l*_binary64
459×associate-*r/_binary64
370×associate-*r*_binary64
367×associate-*l/_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
021788
147788
2118788
3299788
4722788
52269788
63667788
75669788
86846788
97586788
Stop Event
node limit
Counts
200 → 139
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 im re))
(*.f64 -1/2 (/.f64 im re))
(*.f64 -1/2 (/.f64 im re))
(*.f64 -1/2 (/.f64 im re))
(*.f64 -1/2 (/.f64 im re))
(*.f64 -1/2 (/.f64 im re))
(*.f64 -1/2 (/.f64 im re))
(*.f64 -1/2 (/.f64 im re))
(*.f64 -1/2 (/.f64 im re))
(*.f64 -1/2 (/.f64 im re))
(*.f64 -1/2 (/.f64 im re))
(*.f64 -1/2 (/.f64 im re))
(*.f64 -1/2 (/.f64 im re))
(*.f64 -1/2 (/.f64 im re))
(*.f64 -1/2 (/.f64 im re))
(*.f64 -1/2 (/.f64 im re))
(*.f64 -1/2 (/.f64 im re))
(*.f64 -1/2 (/.f64 im re))
(*.f64 -1/2 (/.f64 im re))
(*.f64 -1/2 (/.f64 im re))
(*.f64 -1/2 (/.f64 im re))
(*.f64 -1/2 (/.f64 im re))
(*.f64 -1/2 (/.f64 im re))
(*.f64 -1/2 (/.f64 im 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/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
Outputs
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 im (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 im (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 im (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 im (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 im (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 im (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 im (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 im (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(neg.f64 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 (/.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 im re))
(/.f64 (*.f64 -1/2 im) re)
(*.f64 im (/.f64 -1/2 re))
(/.f64 (*.f64 im -1/2) re)
(*.f64 -1/2 (/.f64 im re))
(/.f64 (*.f64 -1/2 im) re)
(*.f64 im (/.f64 -1/2 re))
(/.f64 (*.f64 im -1/2) re)
(*.f64 -1/2 (/.f64 im re))
(/.f64 (*.f64 -1/2 im) re)
(*.f64 im (/.f64 -1/2 re))
(/.f64 (*.f64 im -1/2) re)
(*.f64 -1/2 (/.f64 im re))
(/.f64 (*.f64 -1/2 im) re)
(*.f64 im (/.f64 -1/2 re))
(/.f64 (*.f64 im -1/2) re)
(*.f64 -1/2 (/.f64 im re))
(/.f64 (*.f64 -1/2 im) re)
(*.f64 im (/.f64 -1/2 re))
(/.f64 (*.f64 im -1/2) re)
(*.f64 -1/2 (/.f64 im re))
(/.f64 (*.f64 -1/2 im) re)
(*.f64 im (/.f64 -1/2 re))
(/.f64 (*.f64 im -1/2) re)
(*.f64 -1/2 (/.f64 im re))
(/.f64 (*.f64 -1/2 im) re)
(*.f64 im (/.f64 -1/2 re))
(/.f64 (*.f64 im -1/2) re)
(*.f64 -1/2 (/.f64 im re))
(/.f64 (*.f64 -1/2 im) re)
(*.f64 im (/.f64 -1/2 re))
(/.f64 (*.f64 im -1/2) re)
(*.f64 -1/2 (/.f64 im re))
(/.f64 (*.f64 -1/2 im) re)
(*.f64 im (/.f64 -1/2 re))
(/.f64 (*.f64 im -1/2) re)
(*.f64 -1/2 (/.f64 im re))
(/.f64 (*.f64 -1/2 im) re)
(*.f64 im (/.f64 -1/2 re))
(/.f64 (*.f64 im -1/2) re)
(*.f64 -1/2 (/.f64 im re))
(/.f64 (*.f64 -1/2 im) re)
(*.f64 im (/.f64 -1/2 re))
(/.f64 (*.f64 im -1/2) re)
(*.f64 -1/2 (/.f64 im re))
(/.f64 (*.f64 -1/2 im) re)
(*.f64 im (/.f64 -1/2 re))
(/.f64 (*.f64 im -1/2) re)
(*.f64 -1/2 (/.f64 im re))
(/.f64 (*.f64 -1/2 im) re)
(*.f64 im (/.f64 -1/2 re))
(/.f64 (*.f64 im -1/2) re)
(*.f64 -1/2 (/.f64 im re))
(/.f64 (*.f64 -1/2 im) re)
(*.f64 im (/.f64 -1/2 re))
(/.f64 (*.f64 im -1/2) re)
(*.f64 -1/2 (/.f64 im re))
(/.f64 (*.f64 -1/2 im) re)
(*.f64 im (/.f64 -1/2 re))
(/.f64 (*.f64 im -1/2) re)
(*.f64 -1/2 (/.f64 im re))
(/.f64 (*.f64 -1/2 im) re)
(*.f64 im (/.f64 -1/2 re))
(/.f64 (*.f64 im -1/2) re)
(*.f64 -1/2 (/.f64 im re))
(/.f64 (*.f64 -1/2 im) re)
(*.f64 im (/.f64 -1/2 re))
(/.f64 (*.f64 im -1/2) re)
(*.f64 -1/2 (/.f64 im re))
(/.f64 (*.f64 -1/2 im) re)
(*.f64 im (/.f64 -1/2 re))
(/.f64 (*.f64 im -1/2) re)
(*.f64 -1/2 (/.f64 im re))
(/.f64 (*.f64 -1/2 im) re)
(*.f64 im (/.f64 -1/2 re))
(/.f64 (*.f64 im -1/2) re)
(*.f64 -1/2 (/.f64 im re))
(/.f64 (*.f64 -1/2 im) re)
(*.f64 im (/.f64 -1/2 re))
(/.f64 (*.f64 im -1/2) re)
(*.f64 -1/2 (/.f64 im re))
(/.f64 (*.f64 -1/2 im) re)
(*.f64 im (/.f64 -1/2 re))
(/.f64 (*.f64 im -1/2) re)
(*.f64 -1/2 (/.f64 im re))
(/.f64 (*.f64 -1/2 im) re)
(*.f64 im (/.f64 -1/2 re))
(/.f64 (*.f64 im -1/2) re)
(*.f64 -1/2 (/.f64 im re))
(/.f64 (*.f64 -1/2 im) re)
(*.f64 im (/.f64 -1/2 re))
(/.f64 (*.f64 im -1/2) re)
(*.f64 -1/2 (/.f64 im re))
(/.f64 (*.f64 -1/2 im) re)
(*.f64 im (/.f64 -1/2 re))
(/.f64 (*.f64 im -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 im (/.f64 -1/2 re)))
(*.f64 im (/.f64 (*.f64 im -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 im (/.f64 -1/2 re)))
(*.f64 im (/.f64 (*.f64 im -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 im (/.f64 -1/2 re)))
(*.f64 im (/.f64 (*.f64 im -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 im (/.f64 -1/2 re)))
(*.f64 im (/.f64 (*.f64 im -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 im (/.f64 -1/2 re)))
(*.f64 im (/.f64 (*.f64 im -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 im (/.f64 -1/2 re)))
(*.f64 im (/.f64 (*.f64 im -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 im (/.f64 -1/2 re)))
(*.f64 im (/.f64 (*.f64 im -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 im (/.f64 -1/2 re)))
(*.f64 im (/.f64 (*.f64 im -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 im (/.f64 -1/2 re)))
(*.f64 im (/.f64 (*.f64 im -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 im (/.f64 -1/2 re)))
(*.f64 im (/.f64 (*.f64 im -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 im (/.f64 -1/2 re)))
(*.f64 im (/.f64 (*.f64 im -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 im (/.f64 -1/2 re)))
(*.f64 im (/.f64 (*.f64 im -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 im (/.f64 -1/2 re)))
(*.f64 im (/.f64 (*.f64 im -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 im (/.f64 -1/2 re)))
(*.f64 im (/.f64 (*.f64 im -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 im (/.f64 -1/2 re)))
(*.f64 im (/.f64 (*.f64 im -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 im (/.f64 -1/2 re)))
(*.f64 im (/.f64 (*.f64 im -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 im (/.f64 -1/2 re)))
(*.f64 im (/.f64 (*.f64 im -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 im (/.f64 -1/2 re)))
(*.f64 im (/.f64 (*.f64 im -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 im (/.f64 -1/2 re)))
(*.f64 im (/.f64 (*.f64 im -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 im (/.f64 -1/2 re)))
(*.f64 im (/.f64 (*.f64 im -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 im (/.f64 -1/2 re)))
(*.f64 im (/.f64 (*.f64 im -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 im (/.f64 -1/2 re)))
(*.f64 im (/.f64 (*.f64 im -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 im (/.f64 -1/2 re)))
(*.f64 im (/.f64 (*.f64 im -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 im (/.f64 -1/2 re)))
(*.f64 im (/.f64 (*.f64 im -1/2) 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 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1) im) 1/2))
(*.f64 (sqrt.f64 -1) (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2)))
(*.f64 (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re))) (*.f64 im 1/2))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im 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 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1) im) 1/2))
(*.f64 (sqrt.f64 -1) (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2)))
(*.f64 (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re))) (*.f64 im 1/2))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im 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 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1) im) 1/2))
(*.f64 (sqrt.f64 -1) (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2)))
(*.f64 (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re))) (*.f64 im 1/2))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im 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 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1) im) 1/2))
(*.f64 (sqrt.f64 -1) (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2)))
(*.f64 (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re))) (*.f64 im 1/2))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im 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 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1) im) 1/2))
(*.f64 (sqrt.f64 -1) (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2)))
(*.f64 (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re))) (*.f64 im 1/2))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im 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 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1) im) 1/2))
(*.f64 (sqrt.f64 -1) (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2)))
(*.f64 (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re))) (*.f64 im 1/2))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im 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 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1) im) 1/2))
(*.f64 (sqrt.f64 -1) (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2)))
(*.f64 (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re))) (*.f64 im 1/2))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im 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 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1) im) 1/2))
(*.f64 (sqrt.f64 -1) (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2)))
(*.f64 (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re))) (*.f64 im 1/2))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im 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 (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 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (*.f64 im -1/2)))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (*.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 -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 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (*.f64 im -1/2)))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (*.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 -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 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (*.f64 im -1/2)))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (*.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 -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 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (*.f64 im -1/2)))

localize19.0ms (0.2%)

Local error

Found 4 expressions with local error:

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

Compiled 42 to 32 computations (23.8% saved)

series17.0ms (0.2%)

Counts
4 → 36
Calls

21 calls:

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

rewrite77.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
561×log-prod_binary64
417×exp-prod_binary64
369×pow-prod-down_binary64
288×pow2_binary64
241×pow-unpow_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify30.0ms (0.3%)

Algorithm
egg-herbie
Rules
129×associate-*l*_binary64
83×associate-*r*_binary64
49×*-commutative_binary64
1-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
016660
130660
271660
3221660
4329660
5332660
Stop Event
saturated
Counts
155 → 125
Calls
Call 1
Inputs
(*.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 (*.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 (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 (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/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re))))
Outputs
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im) (sqrt.f64 -1/2)))
(*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im) (sqrt.f64 -1/2)))
(*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im) (sqrt.f64 -1/2)))
(*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im) (sqrt.f64 -1/2)))
(*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im) (sqrt.f64 -1/2)))
(*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im) (sqrt.f64 -1/2)))
(*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im) (sqrt.f64 -1/2)))
(*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im) (sqrt.f64 -1/2)))
(*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im) (sqrt.f64 -1/2)))
(*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im) (sqrt.f64 -1/2)))
(*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im) (sqrt.f64 -1/2)))
(*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im) (sqrt.f64 -1/2)))
(*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1/2) im))
(*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im) (sqrt.f64 -1/2))
(*.f64 (sqrt.f64 -1/2) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1/2) im))
(*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im) (sqrt.f64 -1/2))
(*.f64 (sqrt.f64 -1/2) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1/2) im))
(*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im) (sqrt.f64 -1/2))
(*.f64 (sqrt.f64 -1/2) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1/2) im))
(*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im) (sqrt.f64 -1/2))
(*.f64 (sqrt.f64 -1/2) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1/2) im))
(*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im) (sqrt.f64 -1/2))
(*.f64 (sqrt.f64 -1/2) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1/2) im))
(*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im) (sqrt.f64 -1/2))
(*.f64 (sqrt.f64 -1/2) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1/2) im))
(*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im) (sqrt.f64 -1/2))
(*.f64 (sqrt.f64 -1/2) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1/2) im))
(*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im) (sqrt.f64 -1/2))
(*.f64 (sqrt.f64 -1/2) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1/2) im))
(*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im) (sqrt.f64 -1/2))
(*.f64 (sqrt.f64 -1/2) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1/2) im))
(*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im) (sqrt.f64 -1/2))
(*.f64 (sqrt.f64 -1/2) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1/2) im))
(*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im) (sqrt.f64 -1/2))
(*.f64 (sqrt.f64 -1/2) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1/2) im))
(*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im) (sqrt.f64 -1/2))
(*.f64 (sqrt.f64 -1/2) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 (/.f64 1 re)))) 1/2)
(*.f64 (*.f64 1/2 (sqrt.f64 2)) (*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im) (sqrt.f64 -1/2)))
(*.f64 im (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -1/2)) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2)))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 (/.f64 1 re)))) 1/2)
(*.f64 (*.f64 1/2 (sqrt.f64 2)) (*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im) (sqrt.f64 -1/2)))
(*.f64 im (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -1/2)) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2)))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 (/.f64 1 re)))) 1/2)
(*.f64 (*.f64 1/2 (sqrt.f64 2)) (*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im) (sqrt.f64 -1/2)))
(*.f64 im (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -1/2)) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2)))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 (/.f64 1 re)))) 1/2)
(*.f64 (*.f64 1/2 (sqrt.f64 2)) (*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im) (sqrt.f64 -1/2)))
(*.f64 im (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -1/2)) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2)))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 (/.f64 1 re)))) 1/2)
(*.f64 (*.f64 1/2 (sqrt.f64 2)) (*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im) (sqrt.f64 -1/2)))
(*.f64 im (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -1/2)) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2)))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 (/.f64 1 re)))) 1/2)
(*.f64 (*.f64 1/2 (sqrt.f64 2)) (*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im) (sqrt.f64 -1/2)))
(*.f64 im (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -1/2)) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2)))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 (/.f64 1 re)))) 1/2)
(*.f64 (*.f64 1/2 (sqrt.f64 2)) (*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im) (sqrt.f64 -1/2)))
(*.f64 im (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -1/2)) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2)))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 (/.f64 1 re)))) 1/2)
(*.f64 (*.f64 1/2 (sqrt.f64 2)) (*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im) (sqrt.f64 -1/2)))
(*.f64 im (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -1/2)) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2)))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 (/.f64 1 re)))) 1/2)
(*.f64 (*.f64 1/2 (sqrt.f64 2)) (*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im) (sqrt.f64 -1/2)))
(*.f64 im (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -1/2)) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2)))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 (/.f64 1 re)))) 1/2)
(*.f64 (*.f64 1/2 (sqrt.f64 2)) (*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im) (sqrt.f64 -1/2)))
(*.f64 im (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -1/2)) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2)))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 (/.f64 1 re)))) 1/2)
(*.f64 (*.f64 1/2 (sqrt.f64 2)) (*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im) (sqrt.f64 -1/2)))
(*.f64 im (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -1/2)) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2)))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 (/.f64 1 re)))) 1/2)
(*.f64 (*.f64 1/2 (sqrt.f64 2)) (*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im) (sqrt.f64 -1/2)))
(*.f64 im (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -1/2)) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2)))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))

localize21.0ms (0.2%)

Local error

Found 4 expressions with local error:

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

Compiled 52 to 32 computations (38.5% saved)

series9.0ms (0.1%)

Counts
4 → 48
Calls

18 calls:

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

rewrite77.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
669×log-prod_binary64
359×pow-prod-down_binary64
312×pow2_binary64
265×pow-unpow_binary64
217×pow1/3_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify110.0ms (1.2%)

Algorithm
egg-herbie
Rules
634×fma-def_binary64
434×div-sub_binary64
420×associate-/l*_binary64
393×fma-neg_binary64
352×associate-*l/_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
022664
149664
2134664
3423664
41238664
52745664
63948664
75193664
86926664
97682664
Stop Event
node limit
Counts
188 → 152
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 2) im)
(*.f64 (sqrt.f64 2) im)
(*.f64 (sqrt.f64 2) im)
(*.f64 (sqrt.f64 2) im)
(*.f64 (sqrt.f64 2) im)
(*.f64 (sqrt.f64 2) im)
(*.f64 (sqrt.f64 2) im)
(*.f64 (sqrt.f64 2) im)
(*.f64 -1 (*.f64 (sqrt.f64 2) im))
(*.f64 -1 (*.f64 (sqrt.f64 2) im))
(*.f64 -1 (*.f64 (sqrt.f64 2) im))
(*.f64 -1 (*.f64 (sqrt.f64 2) im))
(*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re)))
(*.f64 -1 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re))))
(*.f64 2 (pow.f64 im 2))
(*.f64 2 (pow.f64 im 2))
(*.f64 2 (pow.f64 im 2))
(*.f64 2 (pow.f64 im 2))
(*.f64 2 (pow.f64 im 2))
(*.f64 2 (pow.f64 im 2))
(*.f64 2 (pow.f64 im 2))
(*.f64 2 (pow.f64 im 2))
(*.f64 2 (pow.f64 im 2))
(*.f64 2 (pow.f64 im 2))
(*.f64 2 (pow.f64 im 2))
(*.f64 2 (pow.f64 im 2))
(*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re))))
Outputs
(*.f64 (sqrt.f64 2) im)
(*.f64 (sqrt.f64 2) im)
(*.f64 (sqrt.f64 2) im)
(*.f64 (sqrt.f64 2) im)
(*.f64 (sqrt.f64 2) im)
(*.f64 (sqrt.f64 2) im)
(*.f64 (sqrt.f64 2) im)
(*.f64 (sqrt.f64 2) im)
(*.f64 -1 (*.f64 (sqrt.f64 2) im))
(neg.f64 (*.f64 (sqrt.f64 2) im))
(*.f64 im (neg.f64 (sqrt.f64 2)))
(*.f64 (sqrt.f64 2) (neg.f64 im))
(*.f64 -1 (*.f64 (sqrt.f64 2) im))
(neg.f64 (*.f64 (sqrt.f64 2) im))
(*.f64 im (neg.f64 (sqrt.f64 2)))
(*.f64 (sqrt.f64 2) (neg.f64 im))
(*.f64 -1 (*.f64 (sqrt.f64 2) im))
(neg.f64 (*.f64 (sqrt.f64 2) im))
(*.f64 im (neg.f64 (sqrt.f64 2)))
(*.f64 (sqrt.f64 2) (neg.f64 im))
(*.f64 -1 (*.f64 (sqrt.f64 2) im))
(neg.f64 (*.f64 (sqrt.f64 2) im))
(*.f64 im (neg.f64 (sqrt.f64 2)))
(*.f64 (sqrt.f64 2) (neg.f64 im))
(*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re)))
(/.f64 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re))) (sqrt.f64 -2))
(*.f64 (*.f64 (/.f64 im (sqrt.f64 -2)) (sqrt.f64 2)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 2) (/.f64 im (sqrt.f64 -2))) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 2) im) (/.f64 (sqrt.f64 (/.f64 1 re)) (sqrt.f64 -2)))
(*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re)))
(/.f64 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re))) (sqrt.f64 -2))
(*.f64 (*.f64 (/.f64 im (sqrt.f64 -2)) (sqrt.f64 2)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 2) (/.f64 im (sqrt.f64 -2))) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 2) im) (/.f64 (sqrt.f64 (/.f64 1 re)) (sqrt.f64 -2)))
(*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re)))
(/.f64 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re))) (sqrt.f64 -2))
(*.f64 (*.f64 (/.f64 im (sqrt.f64 -2)) (sqrt.f64 2)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 2) (/.f64 im (sqrt.f64 -2))) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 2) im) (/.f64 (sqrt.f64 (/.f64 1 re)) (sqrt.f64 -2)))
(*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re)))
(/.f64 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re))) (sqrt.f64 -2))
(*.f64 (*.f64 (/.f64 im (sqrt.f64 -2)) (sqrt.f64 2)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 2) (/.f64 im (sqrt.f64 -2))) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 2) im) (/.f64 (sqrt.f64 (/.f64 1 re)) (sqrt.f64 -2)))
(*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re)))
(/.f64 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re))) (sqrt.f64 -2))
(*.f64 (*.f64 (/.f64 im (sqrt.f64 -2)) (sqrt.f64 2)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 2) (/.f64 im (sqrt.f64 -2))) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 2) im) (/.f64 (sqrt.f64 (/.f64 1 re)) (sqrt.f64 -2)))
(*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re)))
(/.f64 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re))) (sqrt.f64 -2))
(*.f64 (*.f64 (/.f64 im (sqrt.f64 -2)) (sqrt.f64 2)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 2) (/.f64 im (sqrt.f64 -2))) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 2) im) (/.f64 (sqrt.f64 (/.f64 1 re)) (sqrt.f64 -2)))
(*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re)))
(/.f64 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re))) (sqrt.f64 -2))
(*.f64 (*.f64 (/.f64 im (sqrt.f64 -2)) (sqrt.f64 2)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 2) (/.f64 im (sqrt.f64 -2))) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 2) im) (/.f64 (sqrt.f64 (/.f64 1 re)) (sqrt.f64 -2)))
(*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re)))
(/.f64 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re))) (sqrt.f64 -2))
(*.f64 (*.f64 (/.f64 im (sqrt.f64 -2)) (sqrt.f64 2)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 2) (/.f64 im (sqrt.f64 -2))) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 2) im) (/.f64 (sqrt.f64 (/.f64 1 re)) (sqrt.f64 -2)))
(*.f64 -1 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re))))
(neg.f64 (/.f64 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re))) (sqrt.f64 -2)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (*.f64 im (neg.f64 (sqrt.f64 2))) (sqrt.f64 -2)))
(*.f64 (*.f64 (/.f64 im (sqrt.f64 -2)) (sqrt.f64 2)) (neg.f64 (sqrt.f64 (/.f64 1 re))))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (neg.f64 (sqrt.f64 2)) (sqrt.f64 -2))))
(*.f64 (sqrt.f64 2) (/.f64 (neg.f64 im) (/.f64 (sqrt.f64 -2) (sqrt.f64 (/.f64 1 re)))))
(*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (neg.f64 im) (sqrt.f64 -2))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 im (/.f64 (sqrt.f64 -2) (neg.f64 (sqrt.f64 2)))))
(*.f64 -1 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re))))
(neg.f64 (/.f64 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re))) (sqrt.f64 -2)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (*.f64 im (neg.f64 (sqrt.f64 2))) (sqrt.f64 -2)))
(*.f64 (*.f64 (/.f64 im (sqrt.f64 -2)) (sqrt.f64 2)) (neg.f64 (sqrt.f64 (/.f64 1 re))))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (neg.f64 (sqrt.f64 2)) (sqrt.f64 -2))))
(*.f64 (sqrt.f64 2) (/.f64 (neg.f64 im) (/.f64 (sqrt.f64 -2) (sqrt.f64 (/.f64 1 re)))))
(*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (neg.f64 im) (sqrt.f64 -2))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 im (/.f64 (sqrt.f64 -2) (neg.f64 (sqrt.f64 2)))))
(*.f64 -1 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re))))
(neg.f64 (/.f64 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re))) (sqrt.f64 -2)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (*.f64 im (neg.f64 (sqrt.f64 2))) (sqrt.f64 -2)))
(*.f64 (*.f64 (/.f64 im (sqrt.f64 -2)) (sqrt.f64 2)) (neg.f64 (sqrt.f64 (/.f64 1 re))))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (neg.f64 (sqrt.f64 2)) (sqrt.f64 -2))))
(*.f64 (sqrt.f64 2) (/.f64 (neg.f64 im) (/.f64 (sqrt.f64 -2) (sqrt.f64 (/.f64 1 re)))))
(*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (neg.f64 im) (sqrt.f64 -2))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 im (/.f64 (sqrt.f64 -2) (neg.f64 (sqrt.f64 2)))))
(*.f64 -1 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re))))
(neg.f64 (/.f64 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re))) (sqrt.f64 -2)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (*.f64 im (neg.f64 (sqrt.f64 2))) (sqrt.f64 -2)))
(*.f64 (*.f64 (/.f64 im (sqrt.f64 -2)) (sqrt.f64 2)) (neg.f64 (sqrt.f64 (/.f64 1 re))))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (neg.f64 (sqrt.f64 2)) (sqrt.f64 -2))))
(*.f64 (sqrt.f64 2) (/.f64 (neg.f64 im) (/.f64 (sqrt.f64 -2) (sqrt.f64 (/.f64 1 re)))))
(*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (neg.f64 im) (sqrt.f64 -2))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 im (/.f64 (sqrt.f64 -2) (neg.f64 (sqrt.f64 2)))))
(*.f64 2 (pow.f64 im 2))
(*.f64 2 (*.f64 im im))
(*.f64 im (*.f64 2 im))
(*.f64 2 (pow.f64 im 2))
(*.f64 2 (*.f64 im im))
(*.f64 im (*.f64 2 im))
(*.f64 2 (pow.f64 im 2))
(*.f64 2 (*.f64 im im))
(*.f64 im (*.f64 2 im))
(*.f64 2 (pow.f64 im 2))
(*.f64 2 (*.f64 im im))
(*.f64 im (*.f64 2 im))
(*.f64 2 (pow.f64 im 2))
(*.f64 2 (*.f64 im im))
(*.f64 im (*.f64 2 im))
(*.f64 2 (pow.f64 im 2))
(*.f64 2 (*.f64 im im))
(*.f64 im (*.f64 2 im))
(*.f64 2 (pow.f64 im 2))
(*.f64 2 (*.f64 im im))
(*.f64 im (*.f64 2 im))
(*.f64 2 (pow.f64 im 2))
(*.f64 2 (*.f64 im im))
(*.f64 im (*.f64 2 im))
(*.f64 2 (pow.f64 im 2))
(*.f64 2 (*.f64 im im))
(*.f64 im (*.f64 2 im))
(*.f64 2 (pow.f64 im 2))
(*.f64 2 (*.f64 im im))
(*.f64 im (*.f64 2 im))
(*.f64 2 (pow.f64 im 2))
(*.f64 2 (*.f64 im im))
(*.f64 im (*.f64 2 im))
(*.f64 2 (pow.f64 im 2))
(*.f64 2 (*.f64 im im))
(*.f64 im (*.f64 2 im))
(*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re))))
(*.f64 (/.f64 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re))) (sqrt.f64 -2)) 1/2)
(*.f64 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -2)) im) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))
(*.f64 (*.f64 (/.f64 im (sqrt.f64 -2)) (sqrt.f64 2)) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 -2) 1/2))))
(*.f64 (sqrt.f64 2) (/.f64 im (/.f64 (/.f64 (sqrt.f64 -2) 1/2) (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re))))
(*.f64 (/.f64 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re))) (sqrt.f64 -2)) 1/2)
(*.f64 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -2)) im) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))
(*.f64 (*.f64 (/.f64 im (sqrt.f64 -2)) (sqrt.f64 2)) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 -2) 1/2))))
(*.f64 (sqrt.f64 2) (/.f64 im (/.f64 (/.f64 (sqrt.f64 -2) 1/2) (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re))))
(*.f64 (/.f64 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re))) (sqrt.f64 -2)) 1/2)
(*.f64 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -2)) im) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))
(*.f64 (*.f64 (/.f64 im (sqrt.f64 -2)) (sqrt.f64 2)) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 -2) 1/2))))
(*.f64 (sqrt.f64 2) (/.f64 im (/.f64 (/.f64 (sqrt.f64 -2) 1/2) (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re))))
(*.f64 (/.f64 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re))) (sqrt.f64 -2)) 1/2)
(*.f64 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -2)) im) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))
(*.f64 (*.f64 (/.f64 im (sqrt.f64 -2)) (sqrt.f64 2)) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 -2) 1/2))))
(*.f64 (sqrt.f64 2) (/.f64 im (/.f64 (/.f64 (sqrt.f64 -2) 1/2) (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re))))
(*.f64 (/.f64 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re))) (sqrt.f64 -2)) 1/2)
(*.f64 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -2)) im) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))
(*.f64 (*.f64 (/.f64 im (sqrt.f64 -2)) (sqrt.f64 2)) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 -2) 1/2))))
(*.f64 (sqrt.f64 2) (/.f64 im (/.f64 (/.f64 (sqrt.f64 -2) 1/2) (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re))))
(*.f64 (/.f64 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re))) (sqrt.f64 -2)) 1/2)
(*.f64 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -2)) im) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))
(*.f64 (*.f64 (/.f64 im (sqrt.f64 -2)) (sqrt.f64 2)) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 -2) 1/2))))
(*.f64 (sqrt.f64 2) (/.f64 im (/.f64 (/.f64 (sqrt.f64 -2) 1/2) (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re))))
(*.f64 (/.f64 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re))) (sqrt.f64 -2)) 1/2)
(*.f64 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -2)) im) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))
(*.f64 (*.f64 (/.f64 im (sqrt.f64 -2)) (sqrt.f64 2)) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 -2) 1/2))))
(*.f64 (sqrt.f64 2) (/.f64 im (/.f64 (/.f64 (sqrt.f64 -2) 1/2) (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re))))
(*.f64 (/.f64 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re))) (sqrt.f64 -2)) 1/2)
(*.f64 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -2)) im) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))
(*.f64 (*.f64 (/.f64 im (sqrt.f64 -2)) (sqrt.f64 2)) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 -2) 1/2))))
(*.f64 (sqrt.f64 2) (/.f64 im (/.f64 (/.f64 (sqrt.f64 -2) 1/2) (sqrt.f64 (/.f64 1 re)))))
(*.f64 -1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re))))
(*.f64 (/.f64 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re))) (sqrt.f64 -2)) -1/2)
(*.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 2) im)) (sqrt.f64 -2)))
(*.f64 (*.f64 (/.f64 im (sqrt.f64 -2)) (sqrt.f64 2)) (*.f64 (sqrt.f64 (/.f64 1 re)) -1/2))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 -1/2 (/.f64 (sqrt.f64 2) (sqrt.f64 -2)))))
(*.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (/.f64 (sqrt.f64 -2) im) -1/2)))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 2) (/.f64 -1/2 (sqrt.f64 -2)))))
(*.f64 -1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re))))
(*.f64 (/.f64 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re))) (sqrt.f64 -2)) -1/2)
(*.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 2) im)) (sqrt.f64 -2)))
(*.f64 (*.f64 (/.f64 im (sqrt.f64 -2)) (sqrt.f64 2)) (*.f64 (sqrt.f64 (/.f64 1 re)) -1/2))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 -1/2 (/.f64 (sqrt.f64 2) (sqrt.f64 -2)))))
(*.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (/.f64 (sqrt.f64 -2) im) -1/2)))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 2) (/.f64 -1/2 (sqrt.f64 -2)))))
(*.f64 -1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re))))
(*.f64 (/.f64 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re))) (sqrt.f64 -2)) -1/2)
(*.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 2) im)) (sqrt.f64 -2)))
(*.f64 (*.f64 (/.f64 im (sqrt.f64 -2)) (sqrt.f64 2)) (*.f64 (sqrt.f64 (/.f64 1 re)) -1/2))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 -1/2 (/.f64 (sqrt.f64 2) (sqrt.f64 -2)))))
(*.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (/.f64 (sqrt.f64 -2) im) -1/2)))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 2) (/.f64 -1/2 (sqrt.f64 -2)))))
(*.f64 -1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re))))
(*.f64 (/.f64 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re))) (sqrt.f64 -2)) -1/2)
(*.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 2) im)) (sqrt.f64 -2)))
(*.f64 (*.f64 (/.f64 im (sqrt.f64 -2)) (sqrt.f64 2)) (*.f64 (sqrt.f64 (/.f64 1 re)) -1/2))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 -1/2 (/.f64 (sqrt.f64 2) (sqrt.f64 -2)))))
(*.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (/.f64 (sqrt.f64 -2) im) -1/2)))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 2) (/.f64 -1/2 (sqrt.f64 -2)))))

eval142.0ms (1.6%)

Compiler

Compiled 6421 to 4994 computations (22.2% saved)

prune68.0ms (0.8%)

Pruning

15 alts after pruning (7 fresh and 8 done)

PrunedKeptTotal
New4106416
Fresh213
Picked101
Done189
Total41415429
Error
0.0b
Counts
429 → 15
Alt Table
Click to see full alt table
StatusErrorProgram
59.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (neg.f64 re) re))))
53.7b
(/.f64 (*.f64 (*.f64 1/2 (sqrt.f64 2)) im) (sqrt.f64 (*.f64 re -2)))
51.8b
(sqrt.f64 (*.f64 (*.f64 (/.f64 im (/.f64 re im)) -1) 1/4))
53.8b
(/.f64 1 (/.f64 (sqrt.f64 (*.f64 re -2)) (*.f64 (*.f64 1/2 (sqrt.f64 2)) im)))
51.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 im (*.f64 im (/.f64 -1/2 re))))))
54.7b
(/.f64 1/2 (pow.f64 (*.f64 -1 (/.f64 (*.f64 im im) re)) -1/2))
46.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im))))
45.3b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
48.6b
(*.f64 1/2 (*.f64 2 (sqrt.f64 re)))
47.3b
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
46.8b
(*.f64 1/2 (fabs.f64 (*.f64 (*.f64 im (sqrt.f64 (/.f64 -1/2 re))) (sqrt.f64 2))))
13.5b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))
54.7b
(*.f64 1/2 (sqrt.f64 (*.f64 -1 (/.f64 (*.f64 im im) re))))
54.3b
(*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 2) (neg.f64 im)) (sqrt.f64 (*.f64 re -2))))
43.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 re im))))
Compiler

Compiled 268 to 219 computations (18.3% saved)

localize26.0ms (0.3%)

Local error

Found 4 expressions with local error:

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

Compiled 53 to 41 computations (22.6% saved)

series4.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite88.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
564×log-prod_binary64
416×exp-prod_binary64
361×pow-prod-down_binary64
291×pow2_binary64
240×pow-unpow_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify72.0ms (0.8%)

Algorithm
egg-herbie
Rules
618×associate-*l*_binary64
302×associate-*r*_binary64
241×fabs-mul_binary64
229×*-commutative_binary64
1-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
025596
151596
2132596
3424596
4992596
51165596
61167596
71167596
81565596
91569596
101569596
111627596
Stop Event
saturated
Counts
48 → 28
Calls
Call 1
Inputs
(*.f64 1/2 (fabs.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (fabs.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (fabs.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (fabs.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (fabs.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (fabs.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (fabs.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (fabs.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (fabs.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (fabs.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (fabs.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (fabs.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (fabs.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (fabs.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (fabs.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (fabs.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (fabs.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (fabs.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (fabs.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (fabs.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (fabs.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) (*.f64 (sqrt.f64 -1) im))) (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (fabs.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) (*.f64 (sqrt.f64 -1) im))) (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (fabs.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) (*.f64 (sqrt.f64 -1) im))) (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (fabs.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) (*.f64 (sqrt.f64 -1) im))) (sqrt.f64 (/.f64 1 re)))))
Outputs
(*.f64 1/2 (fabs.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (fabs.f64 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 (/.f64 1 re))))))
(*.f64 1/2 (fabs.f64 (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 2) (sqrt.f64 -1/2))))))
(*.f64 1/2 (fabs.f64 (*.f64 im (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) (sqrt.f64 (/.f64 1 re)))))))
(*.f64 1/2 (fabs.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (fabs.f64 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 (/.f64 1 re))))))
(*.f64 1/2 (fabs.f64 (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 2) (sqrt.f64 -1/2))))))
(*.f64 1/2 (fabs.f64 (*.f64 im (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) (sqrt.f64 (/.f64 1 re)))))))
(*.f64 1/2 (fabs.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (fabs.f64 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 (/.f64 1 re))))))
(*.f64 1/2 (fabs.f64 (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 2) (sqrt.f64 -1/2))))))
(*.f64 1/2 (fabs.f64 (*.f64 im (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) (sqrt.f64 (/.f64 1 re)))))))
(*.f64 1/2 (fabs.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (fabs.f64 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 (/.f64 1 re))))))
(*.f64 1/2 (fabs.f64 (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 2) (sqrt.f64 -1/2))))))
(*.f64 1/2 (fabs.f64 (*.f64 im (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) (sqrt.f64 (/.f64 1 re)))))))
(*.f64 1/2 (fabs.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (fabs.f64 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 (/.f64 1 re))))))
(*.f64 1/2 (fabs.f64 (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 2) (sqrt.f64 -1/2))))))
(*.f64 1/2 (fabs.f64 (*.f64 im (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) (sqrt.f64 (/.f64 1 re)))))))
(*.f64 1/2 (fabs.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (fabs.f64 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 (/.f64 1 re))))))
(*.f64 1/2 (fabs.f64 (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 2) (sqrt.f64 -1/2))))))
(*.f64 1/2 (fabs.f64 (*.f64 im (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) (sqrt.f64 (/.f64 1 re)))))))
(*.f64 1/2 (fabs.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (fabs.f64 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 (/.f64 1 re))))))
(*.f64 1/2 (fabs.f64 (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 2) (sqrt.f64 -1/2))))))
(*.f64 1/2 (fabs.f64 (*.f64 im (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) (sqrt.f64 (/.f64 1 re)))))))
(*.f64 1/2 (fabs.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (fabs.f64 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 (/.f64 1 re))))))
(*.f64 1/2 (fabs.f64 (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 2) (sqrt.f64 -1/2))))))
(*.f64 1/2 (fabs.f64 (*.f64 im (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) (sqrt.f64 (/.f64 1 re)))))))
(*.f64 1/2 (fabs.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (fabs.f64 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 (/.f64 1 re))))))
(*.f64 1/2 (fabs.f64 (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 2) (sqrt.f64 -1/2))))))
(*.f64 1/2 (fabs.f64 (*.f64 im (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) (sqrt.f64 (/.f64 1 re)))))))
(*.f64 1/2 (fabs.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (fabs.f64 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 (/.f64 1 re))))))
(*.f64 1/2 (fabs.f64 (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 2) (sqrt.f64 -1/2))))))
(*.f64 1/2 (fabs.f64 (*.f64 im (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) (sqrt.f64 (/.f64 1 re)))))))
(*.f64 1/2 (fabs.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (fabs.f64 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 (/.f64 1 re))))))
(*.f64 1/2 (fabs.f64 (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 2) (sqrt.f64 -1/2))))))
(*.f64 1/2 (fabs.f64 (*.f64 im (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) (sqrt.f64 (/.f64 1 re)))))))
(*.f64 1/2 (fabs.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (fabs.f64 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 (/.f64 1 re))))))
(*.f64 1/2 (fabs.f64 (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 2) (sqrt.f64 -1/2))))))
(*.f64 1/2 (fabs.f64 (*.f64 im (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) (sqrt.f64 (/.f64 1 re)))))))
(*.f64 1/2 (fabs.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (fabs.f64 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 (/.f64 1 re))))))
(*.f64 1/2 (fabs.f64 (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 2) (sqrt.f64 -1/2))))))
(*.f64 1/2 (fabs.f64 (*.f64 im (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) (sqrt.f64 (/.f64 1 re)))))))
(*.f64 1/2 (fabs.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (fabs.f64 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 (/.f64 1 re))))))
(*.f64 1/2 (fabs.f64 (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 2) (sqrt.f64 -1/2))))))
(*.f64 1/2 (fabs.f64 (*.f64 im (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) (sqrt.f64 (/.f64 1 re)))))))
(*.f64 1/2 (fabs.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (fabs.f64 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 (/.f64 1 re))))))
(*.f64 1/2 (fabs.f64 (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 2) (sqrt.f64 -1/2))))))
(*.f64 1/2 (fabs.f64 (*.f64 im (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) (sqrt.f64 (/.f64 1 re)))))))
(*.f64 1/2 (fabs.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (fabs.f64 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 (/.f64 1 re))))))
(*.f64 1/2 (fabs.f64 (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 2) (sqrt.f64 -1/2))))))
(*.f64 1/2 (fabs.f64 (*.f64 im (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) (sqrt.f64 (/.f64 1 re)))))))
(*.f64 1/2 (fabs.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (fabs.f64 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 (/.f64 1 re))))))
(*.f64 1/2 (fabs.f64 (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 2) (sqrt.f64 -1/2))))))
(*.f64 1/2 (fabs.f64 (*.f64 im (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) (sqrt.f64 (/.f64 1 re)))))))
(*.f64 1/2 (fabs.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (fabs.f64 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 (/.f64 1 re))))))
(*.f64 1/2 (fabs.f64 (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 2) (sqrt.f64 -1/2))))))
(*.f64 1/2 (fabs.f64 (*.f64 im (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) (sqrt.f64 (/.f64 1 re)))))))
(*.f64 1/2 (fabs.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (fabs.f64 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 (/.f64 1 re))))))
(*.f64 1/2 (fabs.f64 (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 2) (sqrt.f64 -1/2))))))
(*.f64 1/2 (fabs.f64 (*.f64 im (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) (sqrt.f64 (/.f64 1 re)))))))
(*.f64 1/2 (fabs.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) im)) (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (fabs.f64 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 -1/2) im) (sqrt.f64 (/.f64 1 re))))))
(*.f64 1/2 (fabs.f64 (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 2) (sqrt.f64 -1/2))))))
(*.f64 1/2 (fabs.f64 (*.f64 im (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) (sqrt.f64 (/.f64 1 re)))))))
(*.f64 1/2 (fabs.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) (*.f64 (sqrt.f64 -1) im))) (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (fabs.f64 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 -1))) (sqrt.f64 (/.f64 1 re))))))
(*.f64 1/2 (fabs.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 -1)))))))
(*.f64 1/2 (fabs.f64 (*.f64 (sqrt.f64 2) (*.f64 im (*.f64 (*.f64 (sqrt.f64 1/2) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 re)))))))
(*.f64 1/2 (fabs.f64 (*.f64 (sqrt.f64 2) (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 1/2) (sqrt.f64 -1)))))))
(*.f64 1/2 (fabs.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) (*.f64 (sqrt.f64 -1) im))) (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (fabs.f64 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 -1))) (sqrt.f64 (/.f64 1 re))))))
(*.f64 1/2 (fabs.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 -1)))))))
(*.f64 1/2 (fabs.f64 (*.f64 (sqrt.f64 2) (*.f64 im (*.f64 (*.f64 (sqrt.f64 1/2) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 re)))))))
(*.f64 1/2 (fabs.f64 (*.f64 (sqrt.f64 2) (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 1/2) (sqrt.f64 -1)))))))
(*.f64 1/2 (fabs.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) (*.f64 (sqrt.f64 -1) im))) (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (fabs.f64 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 -1))) (sqrt.f64 (/.f64 1 re))))))
(*.f64 1/2 (fabs.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 -1)))))))
(*.f64 1/2 (fabs.f64 (*.f64 (sqrt.f64 2) (*.f64 im (*.f64 (*.f64 (sqrt.f64 1/2) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 re)))))))
(*.f64 1/2 (fabs.f64 (*.f64 (sqrt.f64 2) (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 1/2) (sqrt.f64 -1)))))))
(*.f64 1/2 (fabs.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) (*.f64 (sqrt.f64 -1) im))) (sqrt.f64 (/.f64 1 re)))))
(*.f64 1/2 (fabs.f64 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 -1))) (sqrt.f64 (/.f64 1 re))))))
(*.f64 1/2 (fabs.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 -1)))))))
(*.f64 1/2 (fabs.f64 (*.f64 (sqrt.f64 2) (*.f64 im (*.f64 (*.f64 (sqrt.f64 1/2) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 re)))))))
(*.f64 1/2 (fabs.f64 (*.f64 (sqrt.f64 2) (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 1/2) (sqrt.f64 -1)))))))

localize13.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.2b
(/.f64 im (/.f64 re im))
0.2b
(*.f64 (*.f64 (/.f64 im (/.f64 re im)) -1) 1/4)
20.1b
(sqrt.f64 (*.f64 (*.f64 (/.f64 im (/.f64 re im)) -1) 1/4))
Compiler

Compiled 40 to 17 computations (57.5% saved)

series9.0ms (0.1%)

Counts
3 → 60
Calls

18 calls:

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

rewrite75.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
963×pow1_binary64
898×add-log-exp_binary64
898×log1p-expm1-u_binary64
898×expm1-log1p-u_binary64
100×add-sqr-sqrt_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify102.0ms (1.1%)

Algorithm
egg-herbie
Rules
652×associate-*l/_binary64
645×fma-def_binary64
553×associate-*r/_binary64
431×fma-neg_binary64
286×*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
016584
133584
276584
3178584
4423584
51391584
62870584
74560584
86432584
97003584
Stop Event
node limit
Counts
161 → 108
Calls
Call 1
Inputs
(*.f64 (*.f64 (sqrt.f64 -1/4) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1/4) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1/4) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1/4) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1/4) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1/4) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1/4) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1/4) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1/4) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1/4) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1/4) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1/4) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1/4 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/4 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/4 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/4 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/4 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/4 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/4 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/4 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/4 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/4 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/4 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/4 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/4 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/4 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/4 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/4 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/4 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/4 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/4 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/4 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/4 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/4 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/4 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/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 2) re)
Outputs
(*.f64 (*.f64 (sqrt.f64 -1/4) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1/4) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1/4) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1/4) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1/4) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1/4) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1/4) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1/4) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1/4) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1/4) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1/4) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1/4) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1/4) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1/4) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1/4) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1/4) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1/4) im) (sqrt.f64 (/.f64 1 re))))
(neg.f64 (*.f64 (sqrt.f64 -1/4) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (sqrt.f64 -1/4) (neg.f64 (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 im (*.f64 (sqrt.f64 -1/4) (neg.f64 (sqrt.f64 (/.f64 1 re)))))
(*.f64 (sqrt.f64 -1/4) (*.f64 im (neg.f64 (sqrt.f64 (/.f64 1 re)))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1/4) im) (sqrt.f64 (/.f64 1 re))))
(neg.f64 (*.f64 (sqrt.f64 -1/4) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (sqrt.f64 -1/4) (neg.f64 (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 im (*.f64 (sqrt.f64 -1/4) (neg.f64 (sqrt.f64 (/.f64 1 re)))))
(*.f64 (sqrt.f64 -1/4) (*.f64 im (neg.f64 (sqrt.f64 (/.f64 1 re)))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1/4) im) (sqrt.f64 (/.f64 1 re))))
(neg.f64 (*.f64 (sqrt.f64 -1/4) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (sqrt.f64 -1/4) (neg.f64 (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 im (*.f64 (sqrt.f64 -1/4) (neg.f64 (sqrt.f64 (/.f64 1 re)))))
(*.f64 (sqrt.f64 -1/4) (*.f64 im (neg.f64 (sqrt.f64 (/.f64 1 re)))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1/4) im) (sqrt.f64 (/.f64 1 re))))
(neg.f64 (*.f64 (sqrt.f64 -1/4) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (sqrt.f64 -1/4) (neg.f64 (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 im (*.f64 (sqrt.f64 -1/4) (neg.f64 (sqrt.f64 (/.f64 1 re)))))
(*.f64 (sqrt.f64 -1/4) (*.f64 im (neg.f64 (sqrt.f64 (/.f64 1 re)))))
(*.f64 -1/4 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/4 (/.f64 (*.f64 im im) re))
(*.f64 -1/4 (*.f64 (/.f64 im re) im))
(*.f64 (*.f64 im im) (/.f64 -1/4 re))
(*.f64 -1/4 (*.f64 im (/.f64 im re)))
(/.f64 (*.f64 im im) (/.f64 re -1/4))
(*.f64 -1/4 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/4 (/.f64 (*.f64 im im) re))
(*.f64 -1/4 (*.f64 (/.f64 im re) im))
(*.f64 (*.f64 im im) (/.f64 -1/4 re))
(*.f64 -1/4 (*.f64 im (/.f64 im re)))
(/.f64 (*.f64 im im) (/.f64 re -1/4))
(*.f64 -1/4 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/4 (/.f64 (*.f64 im im) re))
(*.f64 -1/4 (*.f64 (/.f64 im re) im))
(*.f64 (*.f64 im im) (/.f64 -1/4 re))
(*.f64 -1/4 (*.f64 im (/.f64 im re)))
(/.f64 (*.f64 im im) (/.f64 re -1/4))
(*.f64 -1/4 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/4 (/.f64 (*.f64 im im) re))
(*.f64 -1/4 (*.f64 (/.f64 im re) im))
(*.f64 (*.f64 im im) (/.f64 -1/4 re))
(*.f64 -1/4 (*.f64 im (/.f64 im re)))
(/.f64 (*.f64 im im) (/.f64 re -1/4))
(*.f64 -1/4 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/4 (/.f64 (*.f64 im im) re))
(*.f64 -1/4 (*.f64 (/.f64 im re) im))
(*.f64 (*.f64 im im) (/.f64 -1/4 re))
(*.f64 -1/4 (*.f64 im (/.f64 im re)))
(/.f64 (*.f64 im im) (/.f64 re -1/4))
(*.f64 -1/4 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/4 (/.f64 (*.f64 im im) re))
(*.f64 -1/4 (*.f64 (/.f64 im re) im))
(*.f64 (*.f64 im im) (/.f64 -1/4 re))
(*.f64 -1/4 (*.f64 im (/.f64 im re)))
(/.f64 (*.f64 im im) (/.f64 re -1/4))
(*.f64 -1/4 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/4 (/.f64 (*.f64 im im) re))
(*.f64 -1/4 (*.f64 (/.f64 im re) im))
(*.f64 (*.f64 im im) (/.f64 -1/4 re))
(*.f64 -1/4 (*.f64 im (/.f64 im re)))
(/.f64 (*.f64 im im) (/.f64 re -1/4))
(*.f64 -1/4 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/4 (/.f64 (*.f64 im im) re))
(*.f64 -1/4 (*.f64 (/.f64 im re) im))
(*.f64 (*.f64 im im) (/.f64 -1/4 re))
(*.f64 -1/4 (*.f64 im (/.f64 im re)))
(/.f64 (*.f64 im im) (/.f64 re -1/4))
(*.f64 -1/4 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/4 (/.f64 (*.f64 im im) re))
(*.f64 -1/4 (*.f64 (/.f64 im re) im))
(*.f64 (*.f64 im im) (/.f64 -1/4 re))
(*.f64 -1/4 (*.f64 im (/.f64 im re)))
(/.f64 (*.f64 im im) (/.f64 re -1/4))
(*.f64 -1/4 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/4 (/.f64 (*.f64 im im) re))
(*.f64 -1/4 (*.f64 (/.f64 im re) im))
(*.f64 (*.f64 im im) (/.f64 -1/4 re))
(*.f64 -1/4 (*.f64 im (/.f64 im re)))
(/.f64 (*.f64 im im) (/.f64 re -1/4))
(*.f64 -1/4 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/4 (/.f64 (*.f64 im im) re))
(*.f64 -1/4 (*.f64 (/.f64 im re) im))
(*.f64 (*.f64 im im) (/.f64 -1/4 re))
(*.f64 -1/4 (*.f64 im (/.f64 im re)))
(/.f64 (*.f64 im im) (/.f64 re -1/4))
(*.f64 -1/4 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/4 (/.f64 (*.f64 im im) re))
(*.f64 -1/4 (*.f64 (/.f64 im re) im))
(*.f64 (*.f64 im im) (/.f64 -1/4 re))
(*.f64 -1/4 (*.f64 im (/.f64 im re)))
(/.f64 (*.f64 im im) (/.f64 re -1/4))
(*.f64 -1/4 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/4 (/.f64 (*.f64 im im) re))
(*.f64 -1/4 (*.f64 (/.f64 im re) im))
(*.f64 (*.f64 im im) (/.f64 -1/4 re))
(*.f64 -1/4 (*.f64 im (/.f64 im re)))
(/.f64 (*.f64 im im) (/.f64 re -1/4))
(*.f64 -1/4 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/4 (/.f64 (*.f64 im im) re))
(*.f64 -1/4 (*.f64 (/.f64 im re) im))
(*.f64 (*.f64 im im) (/.f64 -1/4 re))
(*.f64 -1/4 (*.f64 im (/.f64 im re)))
(/.f64 (*.f64 im im) (/.f64 re -1/4))
(*.f64 -1/4 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/4 (/.f64 (*.f64 im im) re))
(*.f64 -1/4 (*.f64 (/.f64 im re) im))
(*.f64 (*.f64 im im) (/.f64 -1/4 re))
(*.f64 -1/4 (*.f64 im (/.f64 im re)))
(/.f64 (*.f64 im im) (/.f64 re -1/4))
(*.f64 -1/4 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/4 (/.f64 (*.f64 im im) re))
(*.f64 -1/4 (*.f64 (/.f64 im re) im))
(*.f64 (*.f64 im im) (/.f64 -1/4 re))
(*.f64 -1/4 (*.f64 im (/.f64 im re)))
(/.f64 (*.f64 im im) (/.f64 re -1/4))
(*.f64 -1/4 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/4 (/.f64 (*.f64 im im) re))
(*.f64 -1/4 (*.f64 (/.f64 im re) im))
(*.f64 (*.f64 im im) (/.f64 -1/4 re))
(*.f64 -1/4 (*.f64 im (/.f64 im re)))
(/.f64 (*.f64 im im) (/.f64 re -1/4))
(*.f64 -1/4 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/4 (/.f64 (*.f64 im im) re))
(*.f64 -1/4 (*.f64 (/.f64 im re) im))
(*.f64 (*.f64 im im) (/.f64 -1/4 re))
(*.f64 -1/4 (*.f64 im (/.f64 im re)))
(/.f64 (*.f64 im im) (/.f64 re -1/4))
(*.f64 -1/4 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/4 (/.f64 (*.f64 im im) re))
(*.f64 -1/4 (*.f64 (/.f64 im re) im))
(*.f64 (*.f64 im im) (/.f64 -1/4 re))
(*.f64 -1/4 (*.f64 im (/.f64 im re)))
(/.f64 (*.f64 im im) (/.f64 re -1/4))
(*.f64 -1/4 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/4 (/.f64 (*.f64 im im) re))
(*.f64 -1/4 (*.f64 (/.f64 im re) im))
(*.f64 (*.f64 im im) (/.f64 -1/4 re))
(*.f64 -1/4 (*.f64 im (/.f64 im re)))
(/.f64 (*.f64 im im) (/.f64 re -1/4))
(*.f64 -1/4 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/4 (/.f64 (*.f64 im im) re))
(*.f64 -1/4 (*.f64 (/.f64 im re) im))
(*.f64 (*.f64 im im) (/.f64 -1/4 re))
(*.f64 -1/4 (*.f64 im (/.f64 im re)))
(/.f64 (*.f64 im im) (/.f64 re -1/4))
(*.f64 -1/4 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/4 (/.f64 (*.f64 im im) re))
(*.f64 -1/4 (*.f64 (/.f64 im re) im))
(*.f64 (*.f64 im im) (/.f64 -1/4 re))
(*.f64 -1/4 (*.f64 im (/.f64 im re)))
(/.f64 (*.f64 im im) (/.f64 re -1/4))
(*.f64 -1/4 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/4 (/.f64 (*.f64 im im) re))
(*.f64 -1/4 (*.f64 (/.f64 im re) im))
(*.f64 (*.f64 im im) (/.f64 -1/4 re))
(*.f64 -1/4 (*.f64 im (/.f64 im re)))
(/.f64 (*.f64 im im) (/.f64 re -1/4))
(*.f64 -1/4 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/4 (/.f64 (*.f64 im im) re))
(*.f64 -1/4 (*.f64 (/.f64 im re) im))
(*.f64 (*.f64 im im) (/.f64 -1/4 re))
(*.f64 -1/4 (*.f64 im (/.f64 im re)))
(/.f64 (*.f64 im im) (/.f64 re -1/4))
(/.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))

localize11.0ms (0.1%)

Local error

Found 3 expressions with local error:

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

Compiled 39 to 16 computations (59% saved)

series5.0ms (0.1%)

Counts
3 → 48
Calls

18 calls:

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

rewrite76.0ms (0.9%)

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

Useful iterations: 1 (0.0ms)

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

simplify96.0ms (1.1%)

Algorithm
egg-herbie
Rules
695×fma-def_binary64
529×associate-/r/_binary64
481×associate-*l*_binary64
429×fma-neg_binary64
376×associate-/r*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
018548
138548
2102548
3275548
4618548
51820548
62681548
75853548
86855548
97430548
Stop Event
node limit
Counts
142 → 104
Calls
Call 1
Inputs
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
Outputs
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 im (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 im (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 im (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 im (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 im (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 im (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 im (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 im (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(neg.f64 (*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 (*.f64 (sqrt.f64 -1) im)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (neg.f64 im)))
(*.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 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 (*.f64 (sqrt.f64 -1) im)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (neg.f64 im)))
(*.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 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 (*.f64 (sqrt.f64 -1) im)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (neg.f64 im)))
(*.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 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 (*.f64 (sqrt.f64 -1) im)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (neg.f64 im)))
(*.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 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1) im) 1/2))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im (*.f64 (sqrt.f64 -1) 1/2)))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) 1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im 1/2)))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1) im) 1/2))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im (*.f64 (sqrt.f64 -1) 1/2)))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) 1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im 1/2)))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1) im) 1/2))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im (*.f64 (sqrt.f64 -1) 1/2)))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) 1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im 1/2)))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1) im) 1/2))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im (*.f64 (sqrt.f64 -1) 1/2)))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) 1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im 1/2)))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1) im) 1/2))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im (*.f64 (sqrt.f64 -1) 1/2)))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) 1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im 1/2)))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1) im) 1/2))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im (*.f64 (sqrt.f64 -1) 1/2)))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) 1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im 1/2)))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1) im) 1/2))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im (*.f64 (sqrt.f64 -1) 1/2)))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) 1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im 1/2)))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1) im) 1/2))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im (*.f64 (sqrt.f64 -1) 1/2)))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) 1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im 1/2)))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) (*.f64 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 -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 (sqrt.f64 -1) (*.f64 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 -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 (sqrt.f64 -1) (*.f64 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 -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 (sqrt.f64 -1) (*.f64 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 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im -1/2)))

localize16.0ms (0.2%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.3b
(/.f64 1/2 (pow.f64 (*.f64 -1 (/.f64 (*.f64 im im) re)) -1/2))
7.4b
(/.f64 (*.f64 im im) re)
26.4b
(pow.f64 (*.f64 -1 (/.f64 (*.f64 im im) re)) -1/2)
Compiler

Compiled 42 to 19 computations (54.8% saved)

series110.0ms (1.2%)

Counts
2 → 36
Calls

12 calls:

TimeVariablePointExpression
38.0ms
im
@0
(pow.f64 (*.f64 -1 (/.f64 (*.f64 im im) re)) -1/2)
37.0ms
re
@-inf
(pow.f64 (*.f64 -1 (/.f64 (*.f64 im im) re)) -1/2)
14.0ms
re
@0
(pow.f64 (*.f64 -1 (/.f64 (*.f64 im im) re)) -1/2)
11.0ms
im
@inf
(pow.f64 (*.f64 -1 (/.f64 (*.f64 im im) re)) -1/2)
6.0ms
re
@inf
(pow.f64 (*.f64 -1 (/.f64 (*.f64 im im) re)) -1/2)

rewrite196.0ms (2.2%)

Algorithm
egg-rewrite-iter-limit
egg-rewrite
batch-egg-rewrite
Rules
834×pow1_binary64
776×add-log-exp_binary64
776×log1p-expm1-u_binary64
776×expm1-log1p-u_binary64
757×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01124
123924
2303524
0912
119310
2246710
01115
123915
2303415
01115
Stop Event
iter limit
node limit
node limit
node limit
Counts
2 → 28
Calls
Call 1
Inputs
(pow.f64 (*.f64 -1 (/.f64 (*.f64 im im) re)) -1/2)
(/.f64 1/2 (pow.f64 (*.f64 -1 (/.f64 (*.f64 im im) re)) -1/2))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (/.f64 im (/.f64 re im)) -1/2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 im (/.f64 re im)) -1/2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 im (/.f64 re im)) -1/2) (pow.f64 -1 -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (/.f64 im (/.f64 re im)) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (/.f64 im (/.f64 re im)) -1/2)) (cbrt.f64 (pow.f64 (/.f64 im (/.f64 re im)) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (/.f64 im (/.f64 re im)) -1)) (cbrt.f64 (pow.f64 (/.f64 im (/.f64 re im)) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 -1 -1/2) (pow.f64 (/.f64 im (/.f64 re im)) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 im (/.f64 re im)) -1/4) (pow.f64 (/.f64 im (/.f64 re im)) -1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 im im) -1/2) (pow.f64 (/.f64 1 re) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 -1/2) (pow.f64 (/.f64 im (/.f64 re im)) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (/.f64 im (/.f64 re im))) 2) -1/2) (pow.f64 (cbrt.f64 (/.f64 im (/.f64 re im))) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 im (sqrt.f64 re)) -1/2) (pow.f64 (/.f64 im (sqrt.f64 re)) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 im (/.f64 re im)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (/.f64 im (/.f64 re im)) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (/.f64 im (/.f64 re im)) -1/2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (/.f64 im (/.f64 re im)) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (/.f64 im (/.f64 re im)) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 -1/2 (log.f64 (/.f64 im (/.f64 re im)))))))))
((#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (/.f64 1 (pow.f64 (neg.f64 (/.f64 (*.f64 im im) re)) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 1/2 (pow.f64 (neg.f64 (/.f64 (*.f64 im im) re)) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 (/.f64 1/2 (pow.f64 (neg.f64 (/.f64 (*.f64 im im) re)) -1/2))) (cbrt.f64 (/.f64 1/2 (pow.f64 (neg.f64 (/.f64 (*.f64 im im) re)) -1/2)))) (cbrt.f64 (/.f64 1/2 (pow.f64 (neg.f64 (/.f64 (*.f64 im im) re)) -1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 1/2 (pow.f64 (neg.f64 (/.f64 (*.f64 im im) re)) -1/2))) (sqrt.f64 (/.f64 1/2 (pow.f64 (neg.f64 (/.f64 (*.f64 im im) re)) -1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1/2 (pow.f64 (neg.f64 (/.f64 (*.f64 im im) re)) -1/2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 1/2 (pow.f64 (neg.f64 (/.f64 (*.f64 im im) re)) -1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (*.f64 (/.f64 1/2 (pow.f64 (neg.f64 (/.f64 (*.f64 im im) re)) -1/2)) (/.f64 1/2 (pow.f64 (neg.f64 (/.f64 (*.f64 im im) re)) -1/2))) (/.f64 1/2 (pow.f64 (neg.f64 (/.f64 (*.f64 im im) re)) -1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 1/2 (pow.f64 (neg.f64 (/.f64 (*.f64 im im) re)) -1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 1/2 (pow.f64 (neg.f64 (/.f64 (*.f64 im im) re)) -1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 1/2 (pow.f64 (neg.f64 (/.f64 (*.f64 im im) re)) -1/2))))))))

simplify68.0ms (0.8%)

Algorithm
egg-herbie
Rules
316×exp-diff_binary64
301×cancel-sign-sub-inv_binary64
268×exp-prod_binary64
262×fma-neg_binary64
259×distribute-rgt-in_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
051612
1123612
2316516
3856444
42340348
57334348
Stop Event
node limit
Counts
64 → 39
Calls
Call 1
Inputs
(exp.f64 (*.f64 -1/2 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 -1/2 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 -1/2 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 -1/2 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 -1/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 -1/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 -1/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 -1/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 -1/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 -1/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 -1/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 -1/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 -1/2 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(exp.f64 (*.f64 -1/2 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(exp.f64 (*.f64 -1/2 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(exp.f64 (*.f64 -1/2 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(exp.f64 (*.f64 -1/2 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(exp.f64 (*.f64 -1/2 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(exp.f64 (*.f64 -1/2 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(exp.f64 (*.f64 -1/2 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(exp.f64 (*.f64 -1/2 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 -1/2 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 -1/2 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 -1/2 (+.f64 (log.f64 (pow.f64 im 2)) (log.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))))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
Outputs
(exp.f64 (*.f64 -1/2 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 -1/2) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) -1/2) (/.f64 1 im))
(/.f64 (pow.f64 (/.f64 -1 re) -1/2) im)
(/.f64 (sqrt.f64 re) im)
(exp.f64 (*.f64 -1/2 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 -1/2) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) -1/2) (/.f64 1 im))
(/.f64 (pow.f64 (/.f64 -1 re) -1/2) im)
(/.f64 (sqrt.f64 re) im)
(exp.f64 (*.f64 -1/2 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 -1/2) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) -1/2) (/.f64 1 im))
(/.f64 (pow.f64 (/.f64 -1 re) -1/2) im)
(/.f64 (sqrt.f64 re) im)
(exp.f64 (*.f64 -1/2 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 -1/2) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) -1/2) (/.f64 1 im))
(/.f64 (pow.f64 (/.f64 -1 re) -1/2) im)
(/.f64 (sqrt.f64 re) im)
(exp.f64 (*.f64 -1/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 -1/2) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) -1/2) (/.f64 1 im))
(/.f64 (pow.f64 (/.f64 -1 re) -1/2) im)
(/.f64 (sqrt.f64 re) im)
(exp.f64 (*.f64 -1/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 -1/2) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) -1/2) (/.f64 1 im))
(/.f64 (pow.f64 (/.f64 -1 re) -1/2) im)
(/.f64 (sqrt.f64 re) im)
(exp.f64 (*.f64 -1/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 -1/2) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) -1/2) (/.f64 1 im))
(/.f64 (pow.f64 (/.f64 -1 re) -1/2) im)
(/.f64 (sqrt.f64 re) im)
(exp.f64 (*.f64 -1/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 -1/2) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) -1/2) (/.f64 1 im))
(/.f64 (pow.f64 (/.f64 -1 re) -1/2) im)
(/.f64 (sqrt.f64 re) im)
(exp.f64 (*.f64 -1/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 -1/2) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) -1/2) (/.f64 1 im))
(/.f64 (pow.f64 (/.f64 -1 re) -1/2) im)
(/.f64 (sqrt.f64 re) im)
(exp.f64 (*.f64 -1/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 -1/2) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) -1/2) (/.f64 1 im))
(/.f64 (pow.f64 (/.f64 -1 re) -1/2) im)
(/.f64 (sqrt.f64 re) im)
(exp.f64 (*.f64 -1/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 -1/2) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) -1/2) (/.f64 1 im))
(/.f64 (pow.f64 (/.f64 -1 re) -1/2) im)
(/.f64 (sqrt.f64 re) im)
(exp.f64 (*.f64 -1/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 -1/2) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) -1/2) (/.f64 1 im))
(/.f64 (pow.f64 (/.f64 -1 re) -1/2) im)
(/.f64 (sqrt.f64 re) im)
(exp.f64 (*.f64 -1/2 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(pow.f64 (exp.f64 -1/2) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) -1/2) (/.f64 1 im))
(/.f64 (pow.f64 (/.f64 -1 re) -1/2) im)
(/.f64 (sqrt.f64 re) im)
(exp.f64 (*.f64 -1/2 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(pow.f64 (exp.f64 -1/2) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) -1/2) (/.f64 1 im))
(/.f64 (pow.f64 (/.f64 -1 re) -1/2) im)
(/.f64 (sqrt.f64 re) im)
(exp.f64 (*.f64 -1/2 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(pow.f64 (exp.f64 -1/2) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) -1/2) (/.f64 1 im))
(/.f64 (pow.f64 (/.f64 -1 re) -1/2) im)
(/.f64 (sqrt.f64 re) im)
(exp.f64 (*.f64 -1/2 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(pow.f64 (exp.f64 -1/2) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) -1/2) (/.f64 1 im))
(/.f64 (pow.f64 (/.f64 -1 re) -1/2) im)
(/.f64 (sqrt.f64 re) im)
(exp.f64 (*.f64 -1/2 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(pow.f64 (exp.f64 -1/2) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) -1/2) (/.f64 1 im))
(/.f64 (pow.f64 (/.f64 -1 re) -1/2) im)
(/.f64 (sqrt.f64 re) im)
(exp.f64 (*.f64 -1/2 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(pow.f64 (exp.f64 -1/2) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) -1/2) (/.f64 1 im))
(/.f64 (pow.f64 (/.f64 -1 re) -1/2) im)
(/.f64 (sqrt.f64 re) im)
(exp.f64 (*.f64 -1/2 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(pow.f64 (exp.f64 -1/2) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) -1/2) (/.f64 1 im))
(/.f64 (pow.f64 (/.f64 -1 re) -1/2) im)
(/.f64 (sqrt.f64 re) im)
(exp.f64 (*.f64 -1/2 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(pow.f64 (exp.f64 -1/2) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) -1/2) (/.f64 1 im))
(/.f64 (pow.f64 (/.f64 -1 re) -1/2) im)
(/.f64 (sqrt.f64 re) im)
(exp.f64 (*.f64 -1/2 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 -1/2) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) -1/2) (/.f64 1 im))
(/.f64 (pow.f64 (/.f64 -1 re) -1/2) im)
(/.f64 (sqrt.f64 re) im)
(exp.f64 (*.f64 -1/2 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 -1/2) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) -1/2) (/.f64 1 im))
(/.f64 (pow.f64 (/.f64 -1 re) -1/2) im)
(/.f64 (sqrt.f64 re) im)
(exp.f64 (*.f64 -1/2 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 -1/2) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) -1/2) (/.f64 1 im))
(/.f64 (pow.f64 (/.f64 -1 re) -1/2) im)
(/.f64 (sqrt.f64 re) im)
(exp.f64 (*.f64 -1/2 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 -1/2) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) -1/2) (/.f64 1 im))
(/.f64 (pow.f64 (/.f64 -1 re) -1/2) im)
(/.f64 (sqrt.f64 re) im)
(*.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 (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re))) (*.f64 im 1/2))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im (*.f64 1/2 (sqrt.f64 -1))))
(*.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 1/2 (*.f64 (*.f64 im (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re))) (*.f64 im 1/2))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im (*.f64 1/2 (sqrt.f64 -1))))
(*.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 1/2 (*.f64 (*.f64 im (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re))) (*.f64 im 1/2))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im (*.f64 1/2 (sqrt.f64 -1))))
(*.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 1/2 (*.f64 (*.f64 im (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re))) (*.f64 im 1/2))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im (*.f64 1/2 (sqrt.f64 -1))))
(*.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 1/2 (*.f64 (*.f64 im (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re))) (*.f64 im 1/2))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im (*.f64 1/2 (sqrt.f64 -1))))
(*.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 1/2 (*.f64 (*.f64 im (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re))) (*.f64 im 1/2))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im (*.f64 1/2 (sqrt.f64 -1))))
(*.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 1/2 (*.f64 (*.f64 im (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re))) (*.f64 im 1/2))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im (*.f64 1/2 (sqrt.f64 -1))))
(*.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 1/2 (*.f64 (*.f64 im (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re))) (*.f64 im 1/2))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im (*.f64 1/2 (sqrt.f64 -1))))
(*.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 -1/2 (*.f64 (*.f64 im (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 re))))
(*.f64 im (*.f64 (sqrt.f64 -1) (*.f64 -1/2 (sqrt.f64 (/.f64 1 re)))))
(*.f64 -1/2 (*.f64 im (*.f64 (sqrt.f64 -1) (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 im (*.f64 (sqrt.f64 -1) (*.f64 -1/2 (sqrt.f64 (/.f64 1 re)))))
(*.f64 -1/2 (*.f64 im (*.f64 (sqrt.f64 -1) (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 im (*.f64 (sqrt.f64 -1) (*.f64 -1/2 (sqrt.f64 (/.f64 1 re)))))
(*.f64 -1/2 (*.f64 im (*.f64 (sqrt.f64 -1) (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 im (*.f64 (sqrt.f64 -1) (*.f64 -1/2 (sqrt.f64 (/.f64 1 re)))))
(*.f64 -1/2 (*.f64 im (*.f64 (sqrt.f64 -1) (sqrt.f64 (/.f64 1 re)))))

localize15.0ms (0.2%)

Local error

Found 2 expressions with local error:

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

Compiled 37 to 30 computations (18.9% saved)

series4.0ms (0%)

Counts
2 → 24
Calls

9 calls:

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

rewrite78.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
601×log-prod_binary64
459×exp-prod_binary64
343×pow-prod-down_binary64
290×pow2_binary64
229×pow-unpow_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify28.0ms (0.3%)

Algorithm
egg-herbie
Rules
80×associate-/l*_binary64
62×associate-/r/_binary64
61×associate-*l*_binary64
47×associate-*r*_binary64
37×*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
016372
130372
265372
3161372
4298372
5392372
6428372
7432372
Stop Event
saturated
Counts
115 → 94
Calls
Call 1
Inputs
(*.f64 1/2 (*.f64 (sqrt.f64 2) im))
(*.f64 1/2 (*.f64 (sqrt.f64 2) im))
(*.f64 1/2 (*.f64 (sqrt.f64 2) im))
(*.f64 1/2 (*.f64 (sqrt.f64 2) im))
(*.f64 1/2 (*.f64 (sqrt.f64 2) im))
(*.f64 1/2 (*.f64 (sqrt.f64 2) im))
(*.f64 1/2 (*.f64 (sqrt.f64 2) im))
(*.f64 1/2 (*.f64 (sqrt.f64 2) im))
(*.f64 1/2 (*.f64 (sqrt.f64 2) im))
(*.f64 1/2 (*.f64 (sqrt.f64 2) im))
(*.f64 1/2 (*.f64 (sqrt.f64 2) im))
(*.f64 1/2 (*.f64 (sqrt.f64 2) im))
(*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re))))
Outputs
(*.f64 1/2 (*.f64 (sqrt.f64 2) im))
(*.f64 1/2 (*.f64 (sqrt.f64 2) im))
(*.f64 1/2 (*.f64 (sqrt.f64 2) im))
(*.f64 1/2 (*.f64 (sqrt.f64 2) im))
(*.f64 1/2 (*.f64 (sqrt.f64 2) im))
(*.f64 1/2 (*.f64 (sqrt.f64 2) im))
(*.f64 1/2 (*.f64 (sqrt.f64 2) im))
(*.f64 1/2 (*.f64 (sqrt.f64 2) im))
(*.f64 1/2 (*.f64 (sqrt.f64 2) im))
(*.f64 1/2 (*.f64 (sqrt.f64 2) im))
(*.f64 1/2 (*.f64 (sqrt.f64 2) im))
(*.f64 1/2 (*.f64 (sqrt.f64 2) im))
(*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 -2) im)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (/.f64 (*.f64 im (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 re)))) (sqrt.f64 -2)))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (sqrt.f64 2) (sqrt.f64 -2))) im))
(*.f64 1/2 (/.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (sqrt.f64 -2) (*.f64 (sqrt.f64 2) im))))
(*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 -2) im)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (/.f64 (*.f64 im (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 re)))) (sqrt.f64 -2)))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (sqrt.f64 2) (sqrt.f64 -2))) im))
(*.f64 1/2 (/.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (sqrt.f64 -2) (*.f64 (sqrt.f64 2) im))))
(*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 -2) im)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (/.f64 (*.f64 im (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 re)))) (sqrt.f64 -2)))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (sqrt.f64 2) (sqrt.f64 -2))) im))
(*.f64 1/2 (/.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (sqrt.f64 -2) (*.f64 (sqrt.f64 2) im))))
(*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 -2) im)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (/.f64 (*.f64 im (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 re)))) (sqrt.f64 -2)))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (sqrt.f64 2) (sqrt.f64 -2))) im))
(*.f64 1/2 (/.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (sqrt.f64 -2) (*.f64 (sqrt.f64 2) im))))
(*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 -2) im)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (/.f64 (*.f64 im (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 re)))) (sqrt.f64 -2)))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (sqrt.f64 2) (sqrt.f64 -2))) im))
(*.f64 1/2 (/.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (sqrt.f64 -2) (*.f64 (sqrt.f64 2) im))))
(*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 -2) im)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (/.f64 (*.f64 im (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 re)))) (sqrt.f64 -2)))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (sqrt.f64 2) (sqrt.f64 -2))) im))
(*.f64 1/2 (/.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (sqrt.f64 -2) (*.f64 (sqrt.f64 2) im))))
(*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 -2) im)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (/.f64 (*.f64 im (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 re)))) (sqrt.f64 -2)))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (sqrt.f64 2) (sqrt.f64 -2))) im))
(*.f64 1/2 (/.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (sqrt.f64 -2) (*.f64 (sqrt.f64 2) im))))
(*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 -2) im)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (/.f64 (*.f64 im (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 re)))) (sqrt.f64 -2)))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (sqrt.f64 2) (sqrt.f64 -2))) im))
(*.f64 1/2 (/.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (sqrt.f64 -2) (*.f64 (sqrt.f64 2) im))))
(*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 -2) im)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (/.f64 (*.f64 im (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 re)))) (sqrt.f64 -2)))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (sqrt.f64 2) (sqrt.f64 -2))) im))
(*.f64 1/2 (/.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (sqrt.f64 -2) (*.f64 (sqrt.f64 2) im))))
(*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 -2) im)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (/.f64 (*.f64 im (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 re)))) (sqrt.f64 -2)))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (sqrt.f64 2) (sqrt.f64 -2))) im))
(*.f64 1/2 (/.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (sqrt.f64 -2) (*.f64 (sqrt.f64 2) im))))
(*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 -2) im)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (/.f64 (*.f64 im (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 re)))) (sqrt.f64 -2)))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (sqrt.f64 2) (sqrt.f64 -2))) im))
(*.f64 1/2 (/.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (sqrt.f64 -2) (*.f64 (sqrt.f64 2) im))))
(*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 -2) im)) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (/.f64 (*.f64 im (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 re)))) (sqrt.f64 -2)))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (sqrt.f64 2) (sqrt.f64 -2))) im))
(*.f64 1/2 (/.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (sqrt.f64 -2) (*.f64 (sqrt.f64 2) im))))

eval162.0ms (1.8%)

Compiler

Compiled 7559 to 5106 computations (32.5% saved)

prune88.0ms (1%)

Pruning

17 alts after pruning (8 fresh and 9 done)

PrunedKeptTotal
New5236529
Fresh022
Picked011
Done4812
Total52717544
Error
0.0b
Counts
544 → 17
Alt Table
Click to see full alt table
StatusErrorProgram
51.8b
(sqrt.f64 (/.f64 (*.f64 im -1/4) (/.f64 re im)))
54.7b
(sqrt.f64 (/.f64 (*.f64 im im) (/.f64 re -1/4)))
13.5b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))
46.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im))))
45.3b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
53.7b
(*.f64 (/.f64 (sqrt.f64 1/2) (sqrt.f64 (*.f64 re -2))) im)
48.6b
(*.f64 1/2 (*.f64 2 (sqrt.f64 re)))
47.3b
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
53.6b
(/.f64 (sqrt.f64 (*.f64 1/2 (*.f64 im im))) (sqrt.f64 (*.f64 re -2)))
53.7b
(/.f64 (*.f64 (*.f64 1/2 (sqrt.f64 2)) im) (sqrt.f64 (*.f64 re -2)))
53.8b
(/.f64 1 (/.f64 (sqrt.f64 (*.f64 re -2)) (*.f64 (*.f64 1/2 (sqrt.f64 2)) im)))
51.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 im (*.f64 im (/.f64 -1/2 re))))))
46.9b
(*.f64 1/2 (fabs.f64 (*.f64 (*.f64 im (pow.f64 (cbrt.f64 (/.f64 -1/2 re)) 3/2)) (sqrt.f64 2))))
46.8b
(*.f64 1/2 (fabs.f64 (*.f64 (*.f64 im (sqrt.f64 (/.f64 -1/2 re))) (sqrt.f64 2))))
51.8b
(pow.f64 (*.f64 (/.f64 im re) (*.f64 im -1/4)) 1/2)
54.3b
(*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 2) (neg.f64 im)) (sqrt.f64 (*.f64 re -2))))
43.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 re im))))
Compiler

Compiled 198 to 161 computations (18.7% saved)

regimes190.0ms (2.1%)

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

8 calls:

27.0ms
re
26.0ms
(*.f64 im im)
23.0ms
(*.f64 im im)
20.0ms
(+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)
18.0ms
(sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)))
Results
ErrorSegmentsBranch
5.8b2re
13.5b1im
5.8b2(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))))
5.8b2(sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)))
6.3b2(*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))
6.3b2(+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)
12.3b3(*.f64 im im)
12.3b3(*.f64 im im)
Compiler

Compiled 367 to 259 computations (29.4% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.0
1.5214555614985167e-144
Compiler

Compiled 22 to 16 computations (27.3% saved)

regimes175.0ms (2%)

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

8 calls:

31.0ms
re
25.0ms
(*.f64 im im)
24.0ms
(*.f64 im im)
18.0ms
(*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))
17.0ms
(sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)))
Results
ErrorSegmentsBranch
8.4b2re
13.5b1im
9.1b2(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))))
9.1b2(sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)))
9.9b2(*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))
9.9b2(+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)
12.3b3(*.f64 im im)
12.3b3(*.f64 im im)
Compiler

Compiled 341 to 237 computations (30.5% saved)

bsearch65.0ms (0.7%)

Algorithm
binary-search
Steps
TimeLeftRight
65.0ms
-5.481885247681275e+53
-4.697511009136371e+51
Compiler

Compiled 22 to 16 computations (27.3% saved)

regimes213.0ms (2.4%)

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

4 calls:

57.0ms
re
52.0ms
im
52.0ms
(*.f64 im im)
48.0ms
(*.f64 im im)
Results
ErrorSegmentsBranch
24.7b5re
22.0b5im
33.5b10(*.f64 im im)
33.5b10(*.f64 im im)
Compiler

Compiled 175 to 122 computations (30.3% saved)

bsearch232.0ms (2.6%)

Algorithm
binary-search
Steps
TimeLeftRight
51.0ms
9.507072184428753e-147
1.3041765475895026e-143
63.0ms
1.1647153298127593e-288
5.650196007643738e-285
65.0ms
-2.420878260300143e-303
4.011127978765603e-307
53.0ms
-1.6238613152027008e-183
-6.233673760209926e-186
Compiler

Compiled 22 to 16 computations (27.3% saved)

regimes346.0ms (3.9%)

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

4 calls:

202.0ms
re
49.0ms
im
46.0ms
(*.f64 im im)
44.0ms
(*.f64 im im)
Results
ErrorSegmentsBranch
24.7b5re
22.1b5im
33.5b10(*.f64 im im)
33.5b10(*.f64 im im)
Compiler

Compiled 166 to 115 computations (30.7% saved)

bsearch576.0ms (6.5%)

Algorithm
binary-search
Steps
TimeLeftRight
158.0ms
9.507072184428753e-147
1.3041765475895026e-143
180.0ms
1.1647153298127593e-288
5.650196007643738e-285
68.0ms
-2.420878260300143e-303
4.011127978765603e-307
169.0ms
-1.6238613152027008e-183
-6.233673760209926e-186
Compiler

Compiled 22 to 16 computations (27.3% saved)

regimes114.0ms (1.3%)

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

4 calls:

32.0ms
re
28.0ms
im
27.0ms
(*.f64 im im)
25.0ms
(*.f64 im im)
Results
ErrorSegmentsBranch
24.5b6re
22.5b5im
35.3b7(*.f64 im im)
35.3b7(*.f64 im im)
Compiler

Compiled 61 to 44 computations (27.9% saved)

bsearch252.0ms (2.8%)

Algorithm
binary-search
Steps
TimeLeftRight
55.0ms
9.507072184428753e-147
1.3041765475895026e-143
68.0ms
1.1647153298127593e-288
5.650196007643738e-285
74.0ms
-2.420878260300143e-303
4.011127978765603e-307
54.0ms
-6.632288262379874e-187
-2.269983092804065e-191
Compiler

Compiled 22 to 16 computations (27.3% saved)

regimes115.0ms (1.3%)

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

4 calls:

30.0ms
(*.f64 im im)
29.0ms
(*.f64 im im)
29.0ms
re
24.0ms
im
Results
ErrorSegmentsBranch
24.8b5re
22.6b5im
34.0b11(*.f64 im im)
34.0b11(*.f64 im im)
Compiler

Compiled 53 to 38 computations (28.3% saved)

bsearch235.0ms (2.6%)

Algorithm
binary-search
Steps
TimeLeftRight
52.0ms
9.507072184428753e-147
1.3041765475895026e-143
62.0ms
1.1647153298127593e-288
5.650196007643738e-285
66.0ms
-2.420878260300143e-303
4.011127978765603e-307
53.0ms
-6.632288262379874e-187
-2.269983092804065e-191
Compiler

Compiled 22 to 16 computations (27.3% saved)

regimes34.0ms (0.4%)

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

2 calls:

23.0ms
re
10.0ms
im
Results
ErrorSegmentsBranch
32.0b5re
23.8b3im
Compiler

Compiled 27 to 22 computations (18.5% saved)

bsearch108.0ms (1.2%)

Algorithm
binary-search
Steps
TimeLeftRight
53.0ms
9.507072184428753e-147
1.3041765475895026e-143
54.0ms
-6.632288262379874e-187
-2.269983092804065e-191
Compiler

Compiled 22 to 16 computations (27.3% saved)

regimes14.0ms (0.2%)

Accuracy

Total -27.7b remaining (-78%)

Threshold costs -27.7b (-78%)

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

2 calls:

7.0ms
re
6.0ms
im
Results
ErrorSegmentsBranch
35.5b2re
36.0b2im
Compiler

Compiled 20 to 16 computations (20% saved)

bsearch23.0ms (0.3%)

Algorithm
binary-search
Steps
TimeLeftRight
23.0ms
1.058604672530162e-141
3.828957473661712e-140
Compiler

Compiled 22 to 16 computations (27.3% saved)

simplify24.0ms (0.3%)

Algorithm
egg-herbie
Rules
21×*-commutative_binary64
+-commutative_binary64
fabs-mul_binary64
sub-neg_binary64
neg-sub0_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
087475
1118469
2131469
3134469
4135469
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(if (<=.f64 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))) 0) (*.f64 1/2 (fabs.f64 (*.f64 (*.f64 im (sqrt.f64 (/.f64 -1/2 re))) (sqrt.f64 2)))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))))
(if (<=.f64 re -548188524768127489571820094510001238671246065926144000) (sqrt.f64 (/.f64 (*.f64 im -1/4) (/.f64 re im))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))))
(if (<=.f64 im -7768659273309173/4784065733063810973581885157618788676291241975216665977767007373648750357731006099232824032039924032894289638403441329240212719241920971274455782595989040464660523567661989180298099889009174801022976) (*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 re im)))) (if (<=.f64 im -7476672590140243/3088413288990945714607167766096760666649729152895234960279866913260350640380788374205938472006792060778611417607373228628384532735989280347702230834056678923362997806954442769843550227998248540363155634742320939156524772391123850992097524347673943425610505012700786888921103128284156837954503288400970554554866145951744) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (if (<=.f64 im 3194886402089379/2743062034396844341627968125593604635037196317966166035056000994228098690879836473582587849768181396806642362668936055872479091931372323951612051859122835149807249350355003132267795098895967012320756270631179897595796976964454084495146379250195728106130226298287754794921070036903071843030324651025760256) (*.f64 (/.f64 (sqrt.f64 1/2) (sqrt.f64 (*.f64 re -2))) im) (if (<=.f64 im 8554299639248887/899782758908639276562107701537196371773939423660383326620151114522367516134297574063808137220778171429984182126704179024641653211098859937801703036173032771026944) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))))))
(if (<=.f64 im -7768659273309173/4784065733063810973581885157618788676291241975216665977767007373648750357731006099232824032039924032894289638403441329240212719241920971274455782595989040464660523567661989180298099889009174801022976) (*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 re im)))) (if (<=.f64 im -7476672590140243/3088413288990945714607167766096760666649729152895234960279866913260350640380788374205938472006792060778611417607373228628384532735989280347702230834056678923362997806954442769843550227998248540363155634742320939156524772391123850992097524347673943425610505012700786888921103128284156837954503288400970554554866145951744) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (if (<=.f64 im 3194886402089379/2743062034396844341627968125593604635037196317966166035056000994228098690879836473582587849768181396806642362668936055872479091931372323951612051859122835149807249350355003132267795098895967012320756270631179897595796976964454084495146379250195728106130226298287754794921070036903071843030324651025760256) (sqrt.f64 (/.f64 (*.f64 im -1/4) (/.f64 re im))) (if (<=.f64 im 8554299639248887/899782758908639276562107701537196371773939423660383326620151114522367516134297574063808137220778171429984182126704179024641653211098859937801703036173032771026944) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))))))
(if (<=.f64 im -3249080628004135/4898883310657342436947850401401639604522231782621865961233415550616320366316550245614411808808882209683752589725123921141977824503727074585042721378292777435812376133285876920625254286345394996247527424) (*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im)))) (if (<=.f64 im -7476672590140243/3088413288990945714607167766096760666649729152895234960279866913260350640380788374205938472006792060778611417607373228628384532735989280347702230834056678923362997806954442769843550227998248540363155634742320939156524772391123850992097524347673943425610505012700786888921103128284156837954503288400970554554866145951744) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (if (<=.f64 im 3194886402089379/2743062034396844341627968125593604635037196317966166035056000994228098690879836473582587849768181396806642362668936055872479091931372323951612051859122835149807249350355003132267795098895967012320756270631179897595796976964454084495146379250195728106130226298287754794921070036903071843030324651025760256) (sqrt.f64 (/.f64 (*.f64 im -1/4) (/.f64 re im))) (if (<=.f64 im 8554299639248887/899782758908639276562107701537196371773939423660383326620151114522367516134297574063808137220778171429984182126704179024641653211098859937801703036173032771026944) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))))))
(if (<=.f64 im -3249080628004135/4898883310657342436947850401401639604522231782621865961233415550616320366316550245614411808808882209683752589725123921141977824503727074585042721378292777435812376133285876920625254286345394996247527424) (*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im)))) (if (<=.f64 im -7476672590140243/3088413288990945714607167766096760666649729152895234960279866913260350640380788374205938472006792060778611417607373228628384532735989280347702230834056678923362997806954442769843550227998248540363155634742320939156524772391123850992097524347673943425610505012700786888921103128284156837954503288400970554554866145951744) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (if (<=.f64 im 3194886402089379/2743062034396844341627968125593604635037196317966166035056000994228098690879836473582587849768181396806642362668936055872479091931372323951612051859122835149807249350355003132267795098895967012320756270631179897595796976964454084495146379250195728106130226298287754794921070036903071843030324651025760256) (sqrt.f64 (/.f64 (*.f64 im -1/4) (/.f64 re im))) (if (<=.f64 im 8554299639248887/899782758908639276562107701537196371773939423660383326620151114522367516134297574063808137220778171429984182126704179024641653211098859937801703036173032771026944) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (*.f64 1/2 (sqrt.f64 (*.f64 2 im)))))))
(if (<=.f64 im -3249080628004135/4898883310657342436947850401401639604522231782621865961233415550616320366316550245614411808808882209683752589725123921141977824503727074585042721378292777435812376133285876920625254286345394996247527424) (*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im)))) (if (<=.f64 im 8554299639248887/899782758908639276562107701537196371773939423660383326620151114522367516134297574063808137220778171429984182126704179024641653211098859937801703036173032771026944) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (*.f64 1/2 (sqrt.f64 (*.f64 2 im)))))
(if (<=.f64 re 3633553439494193/3432398830065304857490950399540696608634717650071652704697231729592771591698828026061279820330727277488648155695740429018560993999858321906287014145557528576) (*.f64 1/2 (sqrt.f64 (*.f64 2 im))) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))))
(*.f64 1/2 (*.f64 2 (sqrt.f64 re)))
Outputs
(if (<=.f64 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))) 0) (*.f64 1/2 (fabs.f64 (*.f64 (*.f64 im (sqrt.f64 (/.f64 -1/2 re))) (sqrt.f64 2)))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))))
(if (<=.f64 (sqrt.f64 (*.f64 2 (+.f64 re (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))))) 0) (*.f64 1/2 (fabs.f64 (*.f64 (*.f64 im (sqrt.f64 (/.f64 -1/2 re))) (sqrt.f64 2)))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))))
(if (<=.f64 re -548188524768127489571820094510001238671246065926144000) (sqrt.f64 (/.f64 (*.f64 im -1/4) (/.f64 re im))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))))
(if (<=.f64 im -7768659273309173/4784065733063810973581885157618788676291241975216665977767007373648750357731006099232824032039924032894289638403441329240212719241920971274455782595989040464660523567661989180298099889009174801022976) (*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 re im)))) (if (<=.f64 im -7476672590140243/3088413288990945714607167766096760666649729152895234960279866913260350640380788374205938472006792060778611417607373228628384532735989280347702230834056678923362997806954442769843550227998248540363155634742320939156524772391123850992097524347673943425610505012700786888921103128284156837954503288400970554554866145951744) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (if (<=.f64 im 3194886402089379/2743062034396844341627968125593604635037196317966166035056000994228098690879836473582587849768181396806642362668936055872479091931372323951612051859122835149807249350355003132267795098895967012320756270631179897595796976964454084495146379250195728106130226298287754794921070036903071843030324651025760256) (*.f64 (/.f64 (sqrt.f64 1/2) (sqrt.f64 (*.f64 re -2))) im) (if (<=.f64 im 8554299639248887/899782758908639276562107701537196371773939423660383326620151114522367516134297574063808137220778171429984182126704179024641653211098859937801703036173032771026944) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))))))
(if (<=.f64 im -7768659273309173/4784065733063810973581885157618788676291241975216665977767007373648750357731006099232824032039924032894289638403441329240212719241920971274455782595989040464660523567661989180298099889009174801022976) (*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 re im)))) (if (<=.f64 im -7476672590140243/3088413288990945714607167766096760666649729152895234960279866913260350640380788374205938472006792060778611417607373228628384532735989280347702230834056678923362997806954442769843550227998248540363155634742320939156524772391123850992097524347673943425610505012700786888921103128284156837954503288400970554554866145951744) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (if (<=.f64 im 3194886402089379/2743062034396844341627968125593604635037196317966166035056000994228098690879836473582587849768181396806642362668936055872479091931372323951612051859122835149807249350355003132267795098895967012320756270631179897595796976964454084495146379250195728106130226298287754794921070036903071843030324651025760256) (*.f64 im (/.f64 (sqrt.f64 1/2) (sqrt.f64 (*.f64 re -2)))) (if (<=.f64 im 8554299639248887/899782758908639276562107701537196371773939423660383326620151114522367516134297574063808137220778171429984182126704179024641653211098859937801703036173032771026944) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))))))
(if (<=.f64 im -7768659273309173/4784065733063810973581885157618788676291241975216665977767007373648750357731006099232824032039924032894289638403441329240212719241920971274455782595989040464660523567661989180298099889009174801022976) (*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 re im)))) (if (<=.f64 im -7476672590140243/3088413288990945714607167766096760666649729152895234960279866913260350640380788374205938472006792060778611417607373228628384532735989280347702230834056678923362997806954442769843550227998248540363155634742320939156524772391123850992097524347673943425610505012700786888921103128284156837954503288400970554554866145951744) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (if (<=.f64 im 3194886402089379/2743062034396844341627968125593604635037196317966166035056000994228098690879836473582587849768181396806642362668936055872479091931372323951612051859122835149807249350355003132267795098895967012320756270631179897595796976964454084495146379250195728106130226298287754794921070036903071843030324651025760256) (sqrt.f64 (/.f64 (*.f64 im -1/4) (/.f64 re im))) (if (<=.f64 im 8554299639248887/899782758908639276562107701537196371773939423660383326620151114522367516134297574063808137220778171429984182126704179024641653211098859937801703036173032771026944) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))))))
(if (<=.f64 im -3249080628004135/4898883310657342436947850401401639604522231782621865961233415550616320366316550245614411808808882209683752589725123921141977824503727074585042721378292777435812376133285876920625254286345394996247527424) (*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im)))) (if (<=.f64 im -7476672590140243/3088413288990945714607167766096760666649729152895234960279866913260350640380788374205938472006792060778611417607373228628384532735989280347702230834056678923362997806954442769843550227998248540363155634742320939156524772391123850992097524347673943425610505012700786888921103128284156837954503288400970554554866145951744) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (if (<=.f64 im 3194886402089379/2743062034396844341627968125593604635037196317966166035056000994228098690879836473582587849768181396806642362668936055872479091931372323951612051859122835149807249350355003132267795098895967012320756270631179897595796976964454084495146379250195728106130226298287754794921070036903071843030324651025760256) (sqrt.f64 (/.f64 (*.f64 im -1/4) (/.f64 re im))) (if (<=.f64 im 8554299639248887/899782758908639276562107701537196371773939423660383326620151114522367516134297574063808137220778171429984182126704179024641653211098859937801703036173032771026944) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))))))
(if (<=.f64 im -3249080628004135/4898883310657342436947850401401639604522231782621865961233415550616320366316550245614411808808882209683752589725123921141977824503727074585042721378292777435812376133285876920625254286345394996247527424) (*.f64 1/2 (sqrt.f64 (*.f64 im -2))) (if (<=.f64 im -7476672590140243/3088413288990945714607167766096760666649729152895234960279866913260350640380788374205938472006792060778611417607373228628384532735989280347702230834056678923362997806954442769843550227998248540363155634742320939156524772391123850992097524347673943425610505012700786888921103128284156837954503288400970554554866145951744) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (if (<=.f64 im 3194886402089379/2743062034396844341627968125593604635037196317966166035056000994228098690879836473582587849768181396806642362668936055872479091931372323951612051859122835149807249350355003132267795098895967012320756270631179897595796976964454084495146379250195728106130226298287754794921070036903071843030324651025760256) (sqrt.f64 (/.f64 (*.f64 im -1/4) (/.f64 re im))) (if (<=.f64 im 8554299639248887/899782758908639276562107701537196371773939423660383326620151114522367516134297574063808137220778171429984182126704179024641653211098859937801703036173032771026944) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))))))
(if (<=.f64 im -3249080628004135/4898883310657342436947850401401639604522231782621865961233415550616320366316550245614411808808882209683752589725123921141977824503727074585042721378292777435812376133285876920625254286345394996247527424) (*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im)))) (if (<=.f64 im -7476672590140243/3088413288990945714607167766096760666649729152895234960279866913260350640380788374205938472006792060778611417607373228628384532735989280347702230834056678923362997806954442769843550227998248540363155634742320939156524772391123850992097524347673943425610505012700786888921103128284156837954503288400970554554866145951744) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (if (<=.f64 im 3194886402089379/2743062034396844341627968125593604635037196317966166035056000994228098690879836473582587849768181396806642362668936055872479091931372323951612051859122835149807249350355003132267795098895967012320756270631179897595796976964454084495146379250195728106130226298287754794921070036903071843030324651025760256) (sqrt.f64 (/.f64 (*.f64 im -1/4) (/.f64 re im))) (if (<=.f64 im 8554299639248887/899782758908639276562107701537196371773939423660383326620151114522367516134297574063808137220778171429984182126704179024641653211098859937801703036173032771026944) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (*.f64 1/2 (sqrt.f64 (*.f64 2 im)))))))
(if (<=.f64 im -3249080628004135/4898883310657342436947850401401639604522231782621865961233415550616320366316550245614411808808882209683752589725123921141977824503727074585042721378292777435812376133285876920625254286345394996247527424) (*.f64 1/2 (sqrt.f64 (*.f64 im -2))) (if (<=.f64 im -7476672590140243/3088413288990945714607167766096760666649729152895234960279866913260350640380788374205938472006792060778611417607373228628384532735989280347702230834056678923362997806954442769843550227998248540363155634742320939156524772391123850992097524347673943425610505012700786888921103128284156837954503288400970554554866145951744) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (if (<=.f64 im 3194886402089379/2743062034396844341627968125593604635037196317966166035056000994228098690879836473582587849768181396806642362668936055872479091931372323951612051859122835149807249350355003132267795098895967012320756270631179897595796976964454084495146379250195728106130226298287754794921070036903071843030324651025760256) (sqrt.f64 (/.f64 (*.f64 im -1/4) (/.f64 re im))) (if (<=.f64 im 8554299639248887/899782758908639276562107701537196371773939423660383326620151114522367516134297574063808137220778171429984182126704179024641653211098859937801703036173032771026944) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (*.f64 1/2 (sqrt.f64 (*.f64 2 im)))))))
(if (<=.f64 im -3249080628004135/4898883310657342436947850401401639604522231782621865961233415550616320366316550245614411808808882209683752589725123921141977824503727074585042721378292777435812376133285876920625254286345394996247527424) (*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im)))) (if (<=.f64 im 8554299639248887/899782758908639276562107701537196371773939423660383326620151114522367516134297574063808137220778171429984182126704179024641653211098859937801703036173032771026944) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (*.f64 1/2 (sqrt.f64 (*.f64 2 im)))))
(if (<=.f64 im -3249080628004135/4898883310657342436947850401401639604522231782621865961233415550616320366316550245614411808808882209683752589725123921141977824503727074585042721378292777435812376133285876920625254286345394996247527424) (*.f64 1/2 (sqrt.f64 (*.f64 im -2))) (if (<=.f64 im 8554299639248887/899782758908639276562107701537196371773939423660383326620151114522367516134297574063808137220778171429984182126704179024641653211098859937801703036173032771026944) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (*.f64 1/2 (sqrt.f64 (*.f64 2 im)))))
(if (<=.f64 re 3633553439494193/3432398830065304857490950399540696608634717650071652704697231729592771591698828026061279820330727277488648155695740429018560993999858321906287014145557528576) (*.f64 1/2 (sqrt.f64 (*.f64 2 im))) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))))
(*.f64 1/2 (*.f64 2 (sqrt.f64 re)))
Compiler

Compiled 329 to 251 computations (23.7% saved)

soundness236.0ms (2.6%)

Algorithm
egg-herbie
Rules
735×fma-def_binary64
695×fma-def_binary64
663×associate-*r*_binary64
610×associate-*l*_binary64
526×associate-*l*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01501391
14511326
214241270
365931270
019620
142620
2111620
3295620
4688620
52128620
63445620
75316620
86386620
97067620
107939620
01315
12515
23415
33615
Stop Event
saturated
node limit
node limit
Compiler

Compiled 145 to 107 computations (26.2% saved)

end132.0ms (1.5%)

Compiler

Compiled 313 to 221 computations (29.4% saved)

Profiling

Loading profile data...