Details

Time bar (total: 8.7s)

analyze182.0ms (2.1%)

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

Compiled 18 to 13 computations (27.8% saved)

sample1.9s (21.4%)

Results
938.0ms6358×body256valid
373.0ms590×body4096valid
320.0ms652×body2048valid
143.0ms412×body1024valid
61.0ms244×body512valid
Bogosity

preprocess35.0ms (0.4%)

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)

simplify15.0ms (0.2%)

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

Useful iterations: 0 (0.0ms)

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

eval4.0ms (0%)

Compiler

Compiled 27 to 19 computations (29.6% saved)

prune1.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

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

Compiled 12 to 9 computations (25% saved)

localize13.0ms (0.1%)

Local error

Found 3 expressions with local error:

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

Compiled 39 to 16 computations (59% saved)

series18.0ms (0.2%)

Counts
3 → 56
Calls

18 calls:

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

rewrite70.0ms (0.8%)

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

Useful iterations: 0 (0.0ms)

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

simplify80.0ms (0.9%)

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

Useful iterations: 2 (0.0ms)

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

eval57.0ms (0.6%)

Compiler

Compiled 2995 to 2045 computations (31.7% saved)

prune30.0ms (0.3%)

Pruning

10 alts after pruning (9 fresh and 1 done)

PrunedKeptTotal
New1369145
Fresh000
Picked011
Done000
Total13610146
Error
5.5b
Counts
146 → 10
Alt Table
Click to see full alt table
StatusErrorProgram
49.7b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (*.f64 (/.f64 im re) im) -1/2))))
46.4b
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
16.4b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))
47.5b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 re im))))
49.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im))))
49.2b
(*.f64 1/2 (*.f64 2 (sqrt.f64 re)))
50.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (-.f64 (/.f64 (*.f64 re (*.f64 re -1/2)) im) im)))))
44.2b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
52.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))))
60.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (neg.f64 re)))))
Compiler

Compiled 216 to 175 computations (19% saved)

localize13.0ms (0.2%)

Local error

Found 1 expressions with local error:

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

Compiled 28 to 15 computations (46.4% saved)

series5.0ms (0.1%)

Counts
1 → 8
Calls

6 calls:

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

rewrite58.0ms (0.7%)

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

Useful iterations: 0 (0.0ms)

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

simplify139.0ms (1.6%)

Algorithm
egg-herbie
Rules
650×associate-/r*_binary64
634×sqr-pow_binary64
449×*-commutative_binary64
439×distribute-lft-out_binary64
408×unswap-sqr_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
060304
1159304
2439284
31572256
42629256
53622256
65357256
75745256
86164256
96467256
106875256
117519256
Stop Event
node limit
Counts
30 → 36
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
(+.f64 (*.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im))))
(+.f64 (*.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 1/16 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 3)) (sqrt.f64 (/.f64 1 (pow.f64 im 5))))))))
(*.f64 (sqrt.f64 2) (sqrt.f64 re))
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 re)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re)))))
(+.f64 (*.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 re)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re))))))
(+.f64 (*.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) (+.f64 (*.f64 1/16 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 re)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re)))))))
Outputs
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
(fma.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
(fma.f64 (sqrt.f64 2) (sqrt.f64 im) (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 (*.f64 1/2 re) (sqrt.f64 2))))
(*.f64 (sqrt.f64 2) (+.f64 (sqrt.f64 im) (*.f64 1/2 (*.f64 re (sqrt.f64 (/.f64 1 im))))))
(*.f64 (sqrt.f64 2) (+.f64 (sqrt.f64 im) (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 1/2 re))))
(+.f64 (*.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im))))
(fma.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 re re)) (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) (fma.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im))))
(fma.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 re re)) (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) (fma.f64 (sqrt.f64 2) (sqrt.f64 im) (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 (*.f64 1/2 re) (sqrt.f64 2)))))
(fma.f64 (sqrt.f64 2) (*.f64 -1/8 (*.f64 re (*.f64 re (sqrt.f64 (/.f64 1 (pow.f64 im 3)))))) (*.f64 (sqrt.f64 2) (+.f64 (sqrt.f64 im) (*.f64 1/2 (*.f64 re (sqrt.f64 (/.f64 1 im)))))))
(*.f64 (sqrt.f64 2) (+.f64 (sqrt.f64 im) (*.f64 re (+.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) (*.f64 -1/8 (*.f64 re (sqrt.f64 (/.f64 1 (pow.f64 im 3)))))))))
(+.f64 (*.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 1/16 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 3)) (sqrt.f64 (/.f64 1 (pow.f64 im 5))))))))
(fma.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 re re)) (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) (fma.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 (/.f64 1 im)))) (fma.f64 (sqrt.f64 2) (sqrt.f64 im) (*.f64 1/16 (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 re 3) (sqrt.f64 (/.f64 1 (pow.f64 im 5)))))))))
(fma.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 re re)) (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) (fma.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 (/.f64 1 im)))) (fma.f64 1/16 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 3)) (sqrt.f64 (/.f64 1 (pow.f64 im 5)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))))
(+.f64 (*.f64 (sqrt.f64 2) (+.f64 (sqrt.f64 im) (*.f64 1/2 (*.f64 re (sqrt.f64 (/.f64 1 im)))))) (*.f64 (sqrt.f64 2) (+.f64 (*.f64 1/16 (*.f64 (pow.f64 re 3) (sqrt.f64 (/.f64 1 (pow.f64 im 5))))) (*.f64 -1/8 (*.f64 re (*.f64 re (sqrt.f64 (/.f64 1 (pow.f64 im 3)))))))))
(*.f64 (sqrt.f64 2) (+.f64 (+.f64 (sqrt.f64 im) (*.f64 1/2 (*.f64 re (sqrt.f64 (/.f64 1 im))))) (*.f64 (*.f64 re re) (+.f64 (*.f64 1/16 (*.f64 re (sqrt.f64 (/.f64 1 (pow.f64 im 5))))) (*.f64 -1/8 (sqrt.f64 (/.f64 1 (pow.f64 im 3))))))))
(*.f64 (sqrt.f64 2) (+.f64 (sqrt.f64 im) (*.f64 re (+.f64 (+.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) (*.f64 -1/8 (*.f64 re (sqrt.f64 (/.f64 1 (pow.f64 im 3)))))) (*.f64 1/16 (*.f64 re (*.f64 re (sqrt.f64 (/.f64 1 (pow.f64 im 5))))))))))
(*.f64 (sqrt.f64 2) (+.f64 (sqrt.f64 im) (*.f64 re (+.f64 (*.f64 1/16 (*.f64 re (*.f64 re (sqrt.f64 (/.f64 1 (pow.f64 im 5)))))) (+.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) (*.f64 -1/8 (*.f64 re (sqrt.f64 (/.f64 1 (pow.f64 im 3))))))))))
(*.f64 (sqrt.f64 2) (+.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 5))) (*.f64 1/16 (pow.f64 re 3))) (+.f64 (sqrt.f64 im) (*.f64 re (+.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) (*.f64 -1/8 (*.f64 re (sqrt.f64 (/.f64 1 (pow.f64 im 3))))))))))
(*.f64 (sqrt.f64 2) (sqrt.f64 re))
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 re)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re)))))
(fma.f64 (sqrt.f64 2) (sqrt.f64 re) (*.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 im (sqrt.f64 (/.f64 1 re))))))
(fma.f64 (sqrt.f64 2) (sqrt.f64 re) (*.f64 (sqrt.f64 2) (*.f64 (*.f64 im (sqrt.f64 (/.f64 1 re))) 1/2)))
(*.f64 (sqrt.f64 2) (+.f64 (sqrt.f64 re) (*.f64 1/2 (*.f64 im (sqrt.f64 (/.f64 1 re))))))
(+.f64 (*.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 re)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re))))))
(fma.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 im im)) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (fma.f64 (sqrt.f64 2) (sqrt.f64 re) (*.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 im (sqrt.f64 (/.f64 1 re)))))))
(fma.f64 -1/8 (*.f64 (*.f64 im im) (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) (fma.f64 (sqrt.f64 2) (sqrt.f64 re) (*.f64 (sqrt.f64 2) (*.f64 (*.f64 im (sqrt.f64 (/.f64 1 re))) 1/2))))
(fma.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 -1/8 (*.f64 im im))) (*.f64 (sqrt.f64 2) (+.f64 (sqrt.f64 re) (*.f64 1/2 (*.f64 im (sqrt.f64 (/.f64 1 re)))))))
(*.f64 (sqrt.f64 2) (+.f64 (sqrt.f64 re) (*.f64 im (+.f64 (*.f64 -1/8 (*.f64 im (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) (*.f64 1/2 (sqrt.f64 (/.f64 1 re)))))))
(*.f64 (sqrt.f64 2) (+.f64 (sqrt.f64 re) (*.f64 im (+.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 re))) (*.f64 -1/8 (*.f64 im (sqrt.f64 (/.f64 1 (pow.f64 re 3)))))))))
(+.f64 (*.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) (+.f64 (*.f64 1/16 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 re)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re)))))))
(fma.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 im im)) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (fma.f64 1/16 (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 im 3) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) (fma.f64 (sqrt.f64 2) (sqrt.f64 re) (*.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 im (sqrt.f64 (/.f64 1 re))))))))
(fma.f64 -1/8 (*.f64 (*.f64 im im) (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) (fma.f64 1/16 (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 im 3) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) (fma.f64 (sqrt.f64 2) (sqrt.f64 re) (*.f64 (sqrt.f64 2) (*.f64 (*.f64 im (sqrt.f64 (/.f64 1 re))) 1/2)))))
(+.f64 (*.f64 (sqrt.f64 2) (+.f64 (sqrt.f64 re) (*.f64 1/2 (*.f64 im (sqrt.f64 (/.f64 1 re)))))) (*.f64 (sqrt.f64 2) (+.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 -1/8 (*.f64 im im))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (*.f64 (pow.f64 im 3) 1/16)))))
(*.f64 (sqrt.f64 2) (+.f64 (+.f64 (sqrt.f64 re) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (*.f64 (pow.f64 im 3) 1/16))) (*.f64 im (+.f64 (*.f64 -1/8 (*.f64 im (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) (*.f64 1/2 (sqrt.f64 (/.f64 1 re)))))))
(*.f64 (sqrt.f64 2) (+.f64 (*.f64 (*.f64 im im) (+.f64 (*.f64 -1/8 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (*.f64 1/16 (*.f64 im (sqrt.f64 (/.f64 1 (pow.f64 re 5))))))) (+.f64 (sqrt.f64 re) (*.f64 1/2 (*.f64 im (sqrt.f64 (/.f64 1 re)))))))

localize8.0ms (0.1%)

Compiler

Compiled 18 to 14 computations (22.2% saved)

localize11.0ms (0.1%)

Compiler

Compiled 23 to 15 computations (34.8% saved)

localize11.0ms (0.1%)

Compiler

Compiled 33 to 16 computations (51.5% saved)

localize36.0ms (0.4%)

Local error

Found 4 expressions with local error:

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

Compiled 85 to 53 computations (37.6% saved)

series19.0ms (0.2%)

Counts
4 → 84
Calls

24 calls:

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

rewrite124.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
735×log-prod_binary64
550×fma-def_binary64
319×fma-neg_binary64
247×expm1-udef_binary64
247×log1p-udef_binary64
Iterations

Useful iterations: 2 (0.0ms)

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

simplify63.0ms (0.7%)

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

Useful iterations: 2 (0.0ms)

IterNodesCost
01161604
13681523
213491492
Stop Event
node limit
Counts
433 → 387
Calls
Call 1
Inputs
(*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -1)) (sqrt.f64 im))
(+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -1)) (sqrt.f64 im)))
(+.f64 (*.f64 -1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (+.f64 (pow.f64 (*.f64 1/2 (*.f64 (/.f64 1 (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) 2) (*.f64 1/2 (/.f64 1 im))) (pow.f64 re 2))) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -1)) (sqrt.f64 im))))
(+.f64 (*.f64 -1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (+.f64 (pow.f64 (*.f64 1/2 (*.f64 (/.f64 1 (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) 2) (*.f64 1/2 (/.f64 1 im))) (pow.f64 re 2))) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -1)) (sqrt.f64 im)) (*.f64 1/4 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (+.f64 (pow.f64 (*.f64 1/2 (*.f64 (/.f64 1 (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) 2) (*.f64 1/2 (/.f64 1 im))) (pow.f64 re 3))) (pow.f64 (sqrt.f64 -1) 3)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 -1/2))) (sqrt.f64 (/.f64 1 im)))
(+.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 -1/2))) (sqrt.f64 (/.f64 1 im))) (*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -1/2)) (sqrt.f64 im))))
(+.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 -1/2))) (sqrt.f64 (/.f64 1 im))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -1/2)) (sqrt.f64 im))) (*.f64 -1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (+.f64 (pow.f64 (*.f64 1/2 (*.f64 (/.f64 1 (sqrt.f64 -1/2)) (sqrt.f64 im))) 2) im)) (*.f64 re (sqrt.f64 -1/2))) (sqrt.f64 im)))))
(+.f64 (*.f64 1/4 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (+.f64 im (pow.f64 (*.f64 1/2 (*.f64 (/.f64 1 (sqrt.f64 -1/2)) (sqrt.f64 im))) 2))) (*.f64 (pow.f64 re 2) (pow.f64 (sqrt.f64 -1/2) 3))) (sqrt.f64 (pow.f64 im 3)))) (+.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 -1/2))) (sqrt.f64 (/.f64 1 im))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -1/2)) (sqrt.f64 im))) (*.f64 -1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (+.f64 (pow.f64 (*.f64 1/2 (*.f64 (/.f64 1 (sqrt.f64 -1/2)) (sqrt.f64 im))) 2) im)) (*.f64 re (sqrt.f64 -1/2))) (sqrt.f64 im))))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 re (sqrt.f64 -2))) (sqrt.f64 (/.f64 1 im))))
(+.f64 (*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2)) (sqrt.f64 im))) (*.f64 -1 (*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 re (sqrt.f64 -2))) (sqrt.f64 (/.f64 1 im)))))
(+.f64 (*.f64 -1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 -2) (-.f64 im (pow.f64 (*.f64 1/2 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 im))) 2))) (*.f64 (sqrt.f64 1/2) re)) (sqrt.f64 im))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2)) (sqrt.f64 im))) (*.f64 -1 (*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 re (sqrt.f64 -2))) (sqrt.f64 (/.f64 1 im))))))
(+.f64 (*.f64 -1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 -2) (-.f64 im (pow.f64 (*.f64 1/2 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 im))) 2))) (*.f64 (sqrt.f64 1/2) re)) (sqrt.f64 im))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2)) (sqrt.f64 im))) (+.f64 (*.f64 -1/4 (*.f64 (/.f64 (*.f64 (sqrt.f64 -2) (-.f64 im (pow.f64 (*.f64 1/2 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 im))) 2))) (*.f64 (pow.f64 (sqrt.f64 1/2) 3) (pow.f64 re 2))) (sqrt.f64 (pow.f64 im 3)))) (*.f64 -1 (*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 re (sqrt.f64 -2))) (sqrt.f64 (/.f64 1 im)))))))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1 im)
(+.f64 re (*.f64 -1 im))
(+.f64 re (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(+.f64 re (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(+.f64 re (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(+.f64 re (+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im))))
(+.f64 re (+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im))))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(+.f64 re (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(+.f64 re (+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im))))
(+.f64 re (+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im))))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(+.f64 re (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(+.f64 re (+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im))))
(+.f64 re (+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im))))
(*.f64 -1 im)
(+.f64 re (*.f64 -1 im))
(+.f64 re (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(+.f64 re (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(*.f64 -1 im)
(+.f64 re (*.f64 -1 im))
(+.f64 re (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(+.f64 re (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(*.f64 -1 im)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(*.f64 -1 im)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(*.f64 -1 im)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
Outputs
(*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -1)) (sqrt.f64 im))
(*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1) (sqrt.f64 im)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
(+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -1)) (sqrt.f64 im)))
(fma.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im))) (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1) (sqrt.f64 im))))
(fma.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1) (sqrt.f64 im)) (*.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -1)) re)))
(fma.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1) (sqrt.f64 im)) (*.f64 (*.f64 re (/.f64 (sqrt.f64 2) (sqrt.f64 -1))) (*.f64 1/2 (sqrt.f64 (/.f64 1 im)))))
(+.f64 (*.f64 -1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (+.f64 (pow.f64 (*.f64 1/2 (*.f64 (/.f64 1 (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) 2) (*.f64 1/2 (/.f64 1 im))) (pow.f64 re 2))) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -1)) (sqrt.f64 im))))
(fma.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 -1) (*.f64 (+.f64 (pow.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (/.f64 1 (sqrt.f64 -1)))) 2) (/.f64 1/2 im)) (*.f64 re re))))) (fma.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im))) (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1) (sqrt.f64 im)))))
(+.f64 (*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 2) (sqrt.f64 im))) (*.f64 (sqrt.f64 (/.f64 1 im)) (+.f64 (*.f64 -1/2 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -1)) (*.f64 (+.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 im)) (/.f64 1/2 (sqrt.f64 -1))) 2) (/.f64 1/2 im)) (*.f64 re re)))) (*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -1)) re)))))
(fma.f64 (sqrt.f64 (/.f64 1 im)) (fma.f64 -1/2 (*.f64 (*.f64 re (/.f64 (sqrt.f64 2) (sqrt.f64 -1))) (*.f64 re (+.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 im)) (/.f64 1/2 (sqrt.f64 -1))) 2) (/.f64 1/2 im)))) (*.f64 1/2 (*.f64 re (/.f64 (sqrt.f64 2) (sqrt.f64 -1))))) (*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 2) (sqrt.f64 im))))
(+.f64 (*.f64 -1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (+.f64 (pow.f64 (*.f64 1/2 (*.f64 (/.f64 1 (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) 2) (*.f64 1/2 (/.f64 1 im))) (pow.f64 re 2))) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -1)) (sqrt.f64 im)) (*.f64 1/4 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (+.f64 (pow.f64 (*.f64 1/2 (*.f64 (/.f64 1 (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) 2) (*.f64 1/2 (/.f64 1 im))) (pow.f64 re 3))) (pow.f64 (sqrt.f64 -1) 3)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))))))
(fma.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 -1) (*.f64 (+.f64 (pow.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (/.f64 1 (sqrt.f64 -1)))) 2) (/.f64 1/2 im)) (*.f64 re re))))) (fma.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im))) (fma.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -1)) (sqrt.f64 im) (*.f64 1/4 (*.f64 (/.f64 (sqrt.f64 2) (/.f64 (pow.f64 (sqrt.f64 -1) 3) (*.f64 (+.f64 (pow.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (/.f64 1 (sqrt.f64 -1)))) 2) (/.f64 1/2 im)) (pow.f64 re 3)))) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))))))
(+.f64 (fma.f64 1/4 (/.f64 (*.f64 (*.f64 (+.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 im)) (/.f64 1/2 (sqrt.f64 -1))) 2) (/.f64 1/2 im)) (pow.f64 re 3)) (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (*.f64 -1 (sqrt.f64 -1))) (*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))) (*.f64 (sqrt.f64 (/.f64 1 im)) (+.f64 (*.f64 -1/2 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -1)) (*.f64 (+.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 im)) (/.f64 1/2 (sqrt.f64 -1))) 2) (/.f64 1/2 im)) (*.f64 re re)))) (*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -1)) re)))))
(fma.f64 (sqrt.f64 (/.f64 1 im)) (fma.f64 -1/2 (*.f64 (*.f64 re (/.f64 (sqrt.f64 2) (sqrt.f64 -1))) (*.f64 re (+.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 im)) (/.f64 1/2 (sqrt.f64 -1))) 2) (/.f64 1/2 im)))) (*.f64 1/2 (*.f64 re (/.f64 (sqrt.f64 2) (sqrt.f64 -1))))) (fma.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1) (sqrt.f64 im)) (*.f64 -1/4 (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 -1) (*.f64 (+.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 im)) (/.f64 1/2 (sqrt.f64 -1))) 2) (/.f64 1/2 im)) (*.f64 (pow.f64 re 3) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))))))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 -1/2))) (sqrt.f64 (/.f64 1 im)))
(*.f64 (sqrt.f64 2) (*.f64 (*.f64 re (sqrt.f64 -1/2)) (sqrt.f64 (/.f64 1 im))))
(*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 re (sqrt.f64 -1/2))))
(+.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 -1/2))) (sqrt.f64 (/.f64 1 im))) (*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -1/2)) (sqrt.f64 im))))
(fma.f64 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 -1/2))) (sqrt.f64 (/.f64 1 im)) (*.f64 1/2 (*.f64 (sqrt.f64 im) (/.f64 (sqrt.f64 2) (sqrt.f64 -1/2)))))
(fma.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 re (sqrt.f64 -1/2))) (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -1/2)) (*.f64 (sqrt.f64 im) 1/2)))
(fma.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 -1/2))) (*.f64 (sqrt.f64 im) (*.f64 (/.f64 1/2 (sqrt.f64 -1/2)) (sqrt.f64 2))))
(+.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 -1/2))) (sqrt.f64 (/.f64 1 im))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -1/2)) (sqrt.f64 im))) (*.f64 -1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (+.f64 (pow.f64 (*.f64 1/2 (*.f64 (/.f64 1 (sqrt.f64 -1/2)) (sqrt.f64 im))) 2) im)) (*.f64 re (sqrt.f64 -1/2))) (sqrt.f64 im)))))
(fma.f64 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 -1/2))) (sqrt.f64 (/.f64 1 im)) (fma.f64 1/2 (*.f64 (sqrt.f64 im) (/.f64 (sqrt.f64 2) (sqrt.f64 -1/2))) (*.f64 (*.f64 -1/2 (*.f64 (/.f64 (sqrt.f64 2) re) (/.f64 (+.f64 im (pow.f64 (*.f64 1/2 (*.f64 (sqrt.f64 im) (/.f64 1 (sqrt.f64 -1/2)))) 2)) (sqrt.f64 -1/2)))) (sqrt.f64 im))))
(fma.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 re (sqrt.f64 -1/2))) (*.f64 (sqrt.f64 im) (+.f64 (*.f64 1/2 (/.f64 (sqrt.f64 2) (sqrt.f64 -1/2))) (*.f64 -1/2 (*.f64 (/.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 -1/2))) (+.f64 im (pow.f64 (*.f64 (sqrt.f64 im) (/.f64 1/2 (sqrt.f64 -1/2))) 2)))))))
(fma.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 re (sqrt.f64 -1/2))) (*.f64 (sqrt.f64 im) (fma.f64 1/2 (/.f64 (sqrt.f64 2) (sqrt.f64 -1/2)) (*.f64 -1/2 (*.f64 (+.f64 im (pow.f64 (*.f64 (sqrt.f64 im) (/.f64 1/2 (sqrt.f64 -1/2))) 2)) (/.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 -1/2))))))))
(+.f64 (*.f64 1/4 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (+.f64 im (pow.f64 (*.f64 1/2 (*.f64 (/.f64 1 (sqrt.f64 -1/2)) (sqrt.f64 im))) 2))) (*.f64 (pow.f64 re 2) (pow.f64 (sqrt.f64 -1/2) 3))) (sqrt.f64 (pow.f64 im 3)))) (+.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 -1/2))) (sqrt.f64 (/.f64 1 im))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -1/2)) (sqrt.f64 im))) (*.f64 -1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (+.f64 (pow.f64 (*.f64 1/2 (*.f64 (/.f64 1 (sqrt.f64 -1/2)) (sqrt.f64 im))) 2) im)) (*.f64 re (sqrt.f64 -1/2))) (sqrt.f64 im))))))
(fma.f64 1/4 (*.f64 (*.f64 (/.f64 (sqrt.f64 2) (*.f64 re re)) (/.f64 (+.f64 im (pow.f64 (*.f64 1/2 (*.f64 (sqrt.f64 im) (/.f64 1 (sqrt.f64 -1/2)))) 2)) (pow.f64 (sqrt.f64 -1/2) 3))) (sqrt.f64 (pow.f64 im 3))) (fma.f64 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 -1/2))) (sqrt.f64 (/.f64 1 im)) (fma.f64 1/2 (*.f64 (sqrt.f64 im) (/.f64 (sqrt.f64 2) (sqrt.f64 -1/2))) (*.f64 (*.f64 -1/2 (*.f64 (/.f64 (sqrt.f64 2) re) (/.f64 (+.f64 im (pow.f64 (*.f64 1/2 (*.f64 (sqrt.f64 im) (/.f64 1 (sqrt.f64 -1/2)))) 2)) (sqrt.f64 -1/2)))) (sqrt.f64 im)))))
(fma.f64 1/4 (*.f64 (*.f64 (/.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) (*.f64 (*.f64 -1/2 re) re))) (+.f64 im (pow.f64 (*.f64 (sqrt.f64 im) (/.f64 1/2 (sqrt.f64 -1/2))) 2))) (fabs.f64 (pow.f64 im 3/2))) (fma.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 re (sqrt.f64 -1/2))) (*.f64 (sqrt.f64 im) (+.f64 (*.f64 1/2 (/.f64 (sqrt.f64 2) (sqrt.f64 -1/2))) (*.f64 -1/2 (*.f64 (/.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 -1/2))) (+.f64 im (pow.f64 (*.f64 (sqrt.f64 im) (/.f64 1/2 (sqrt.f64 -1/2))) 2))))))))
(fma.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 re (sqrt.f64 -1/2))) (fma.f64 (sqrt.f64 im) (fma.f64 1/2 (/.f64 (sqrt.f64 2) (sqrt.f64 -1/2)) (*.f64 -1/2 (*.f64 (+.f64 im (pow.f64 (*.f64 (sqrt.f64 im) (/.f64 1/2 (sqrt.f64 -1/2))) 2)) (/.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 -1/2)))))) (*.f64 -1/2 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (+.f64 im (pow.f64 (*.f64 (sqrt.f64 im) (/.f64 1/2 (sqrt.f64 -1/2))) 2)) (pow.f64 im 3/2))) (*.f64 (*.f64 re re) (sqrt.f64 -1/2))))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 re (sqrt.f64 -2))) (sqrt.f64 (/.f64 1 im))))
(neg.f64 (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 (sqrt.f64 1/2) (*.f64 re (sqrt.f64 -2)))))
(*.f64 (sqrt.f64 (/.f64 1 im)) (neg.f64 (*.f64 re (*.f64 (sqrt.f64 1/2) (sqrt.f64 -2)))))
(*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 (*.f64 re (sqrt.f64 1/2)) (neg.f64 (sqrt.f64 -2))))
(+.f64 (*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2)) (sqrt.f64 im))) (*.f64 -1 (*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 re (sqrt.f64 -2))) (sqrt.f64 (/.f64 1 im)))))
(fma.f64 1/2 (/.f64 (*.f64 (sqrt.f64 -2) (sqrt.f64 im)) (sqrt.f64 1/2)) (neg.f64 (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 (sqrt.f64 1/2) (*.f64 re (sqrt.f64 -2))))))
(-.f64 (*.f64 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2)) (*.f64 (sqrt.f64 im) 1/2)) (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 re (*.f64 (sqrt.f64 1/2) (sqrt.f64 -2)))))
(-.f64 (*.f64 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2)) (*.f64 (sqrt.f64 im) 1/2)) (*.f64 re (*.f64 (*.f64 (sqrt.f64 1/2) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 im)))))
(+.f64 (*.f64 -1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 -2) (-.f64 im (pow.f64 (*.f64 1/2 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 im))) 2))) (*.f64 (sqrt.f64 1/2) re)) (sqrt.f64 im))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2)) (sqrt.f64 im))) (*.f64 -1 (*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 re (sqrt.f64 -2))) (sqrt.f64 (/.f64 1 im))))))
(fma.f64 -1/2 (*.f64 (sqrt.f64 im) (*.f64 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2)) (/.f64 (-.f64 im (pow.f64 (*.f64 1/2 (*.f64 (sqrt.f64 im) (/.f64 1 (sqrt.f64 1/2)))) 2)) re))) (fma.f64 1/2 (/.f64 (*.f64 (sqrt.f64 -2) (sqrt.f64 im)) (sqrt.f64 1/2)) (neg.f64 (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 (sqrt.f64 1/2) (*.f64 re (sqrt.f64 -2)))))))
(-.f64 (*.f64 (sqrt.f64 im) (+.f64 (*.f64 (*.f64 -1/2 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2))) (/.f64 (-.f64 im (pow.f64 (*.f64 (sqrt.f64 im) (/.f64 1/2 (sqrt.f64 1/2))) 2)) re)) (*.f64 1/2 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2))))) (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 re (*.f64 (sqrt.f64 1/2) (sqrt.f64 -2)))))
(fma.f64 (sqrt.f64 im) (fma.f64 (*.f64 -1/2 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2))) (/.f64 (-.f64 im (pow.f64 (/.f64 (*.f64 (sqrt.f64 im) 1/2) (sqrt.f64 1/2)) 2)) re) (*.f64 1/2 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2)))) (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 (*.f64 re (sqrt.f64 1/2)) (neg.f64 (sqrt.f64 -2)))))
(+.f64 (*.f64 -1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 -2) (-.f64 im (pow.f64 (*.f64 1/2 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 im))) 2))) (*.f64 (sqrt.f64 1/2) re)) (sqrt.f64 im))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2)) (sqrt.f64 im))) (+.f64 (*.f64 -1/4 (*.f64 (/.f64 (*.f64 (sqrt.f64 -2) (-.f64 im (pow.f64 (*.f64 1/2 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 im))) 2))) (*.f64 (pow.f64 (sqrt.f64 1/2) 3) (pow.f64 re 2))) (sqrt.f64 (pow.f64 im 3)))) (*.f64 -1 (*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 re (sqrt.f64 -2))) (sqrt.f64 (/.f64 1 im)))))))
(fma.f64 -1/2 (*.f64 (sqrt.f64 im) (*.f64 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2)) (/.f64 (-.f64 im (pow.f64 (*.f64 1/2 (*.f64 (sqrt.f64 im) (/.f64 1 (sqrt.f64 1/2)))) 2)) re))) (fma.f64 1/2 (/.f64 (*.f64 (sqrt.f64 -2) (sqrt.f64 im)) (sqrt.f64 1/2)) (fma.f64 -1/4 (*.f64 (sqrt.f64 (pow.f64 im 3)) (*.f64 (/.f64 (sqrt.f64 -2) (pow.f64 (sqrt.f64 1/2) 3)) (/.f64 (-.f64 im (pow.f64 (*.f64 1/2 (*.f64 (sqrt.f64 im) (/.f64 1 (sqrt.f64 1/2)))) 2)) (*.f64 re re)))) (neg.f64 (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 (sqrt.f64 1/2) (*.f64 re (sqrt.f64 -2))))))))
(+.f64 (fma.f64 -1/4 (*.f64 (*.f64 (fabs.f64 (pow.f64 im 3/2)) (/.f64 (sqrt.f64 -2) (*.f64 1/2 (sqrt.f64 1/2)))) (/.f64 (-.f64 im (pow.f64 (*.f64 (sqrt.f64 im) (/.f64 1/2 (sqrt.f64 1/2))) 2)) (*.f64 re re))) (*.f64 (sqrt.f64 (/.f64 1 im)) (neg.f64 (*.f64 re (*.f64 (sqrt.f64 1/2) (sqrt.f64 -2)))))) (*.f64 (sqrt.f64 im) (+.f64 (*.f64 (*.f64 -1/2 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2))) (/.f64 (-.f64 im (pow.f64 (*.f64 (sqrt.f64 im) (/.f64 1/2 (sqrt.f64 1/2))) 2)) re)) (*.f64 1/2 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2))))))
(fma.f64 (sqrt.f64 im) (fma.f64 (*.f64 -1/2 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2))) (/.f64 (-.f64 im (pow.f64 (/.f64 (*.f64 (sqrt.f64 im) 1/2) (sqrt.f64 1/2)) 2)) re) (*.f64 1/2 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2)))) (fma.f64 (pow.f64 im 3/2) (*.f64 -1/2 (/.f64 (*.f64 (sqrt.f64 -2) (-.f64 im (pow.f64 (/.f64 (*.f64 (sqrt.f64 im) 1/2) (sqrt.f64 1/2)) 2))) (*.f64 re (*.f64 re (sqrt.f64 1/2))))) (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 (*.f64 re (sqrt.f64 1/2)) (neg.f64 (sqrt.f64 -2))))))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 re re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 re re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 re re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 re re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 re re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 re re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 re re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 re re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 re re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 re re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 re re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 re re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 re re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 re re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 re re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 re re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 re re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 re re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 re re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 re re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 re re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 re re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 re re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 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 (fma.f64 -1/2 (/.f64 (*.f64 re re) im) re) im)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) (-.f64 re im))
(+.f64 re (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(+.f64 re (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im)))
(-.f64 (fma.f64 -1/2 (/.f64 (*.f64 re re) im) re) im)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) (-.f64 re im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 re re))
(+.f64 re (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(+.f64 re (*.f64 -1/2 (/.f64 (*.f64 re re) im)))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) re)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) re)
(+.f64 re (+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im))))
(+.f64 re (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im)))
(-.f64 (fma.f64 -1/2 (/.f64 (*.f64 re re) im) re) im)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) (-.f64 re im))
(+.f64 re (+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im))))
(+.f64 re (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im)))
(-.f64 (fma.f64 -1/2 (/.f64 (*.f64 re re) im) re) im)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) (-.f64 re im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 re re))
(+.f64 re (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(+.f64 re (*.f64 -1/2 (/.f64 (*.f64 re re) im)))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) re)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) re)
(+.f64 re (+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im))))
(+.f64 re (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im)))
(-.f64 (fma.f64 -1/2 (/.f64 (*.f64 re re) im) re) im)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) (-.f64 re im))
(+.f64 re (+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im))))
(+.f64 re (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im)))
(-.f64 (fma.f64 -1/2 (/.f64 (*.f64 re re) im) re) im)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) (-.f64 re im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 re re))
(+.f64 re (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(+.f64 re (*.f64 -1/2 (/.f64 (*.f64 re re) im)))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) re)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) re)
(+.f64 re (+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im))))
(+.f64 re (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im)))
(-.f64 (fma.f64 -1/2 (/.f64 (*.f64 re re) im) re) im)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) (-.f64 re im))
(+.f64 re (+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im))))
(+.f64 re (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im)))
(-.f64 (fma.f64 -1/2 (/.f64 (*.f64 re re) im) re) im)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) (-.f64 re im))
(*.f64 -1 im)
(neg.f64 im)
(+.f64 re (*.f64 -1 im))
(+.f64 re (neg.f64 im))
(-.f64 re im)
(+.f64 re (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(+.f64 re (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im)))
(-.f64 (fma.f64 -1/2 (/.f64 (*.f64 re re) im) re) im)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) (-.f64 re im))
(+.f64 re (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(+.f64 re (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im)))
(-.f64 (fma.f64 -1/2 (/.f64 (*.f64 re re) im) re) im)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) (-.f64 re im))
(*.f64 -1 im)
(neg.f64 im)
(+.f64 re (*.f64 -1 im))
(+.f64 re (neg.f64 im))
(-.f64 re im)
(+.f64 re (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(+.f64 re (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im)))
(-.f64 (fma.f64 -1/2 (/.f64 (*.f64 re re) im) re) im)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) (-.f64 re im))
(+.f64 re (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(+.f64 re (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im)))
(-.f64 (fma.f64 -1/2 (/.f64 (*.f64 re re) im) re) im)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) (-.f64 re im))
(*.f64 -1 im)
(neg.f64 im)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(-.f64 (*.f64 (/.f64 -1/2 im) (*.f64 re re)) im)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(-.f64 (*.f64 (/.f64 -1/2 im) (*.f64 re re)) im)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(-.f64 (*.f64 (/.f64 -1/2 im) (*.f64 re re)) im)
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 re re))
(+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(-.f64 (*.f64 (/.f64 -1/2 im) (*.f64 re re)) im)
(+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(-.f64 (*.f64 (/.f64 -1/2 im) (*.f64 re re)) im)
(+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(-.f64 (*.f64 (/.f64 -1/2 im) (*.f64 re re)) im)
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 re re))
(+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(-.f64 (*.f64 (/.f64 -1/2 im) (*.f64 re re)) im)
(+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(-.f64 (*.f64 (/.f64 -1/2 im) (*.f64 re re)) im)
(+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(-.f64 (*.f64 (/.f64 -1/2 im) (*.f64 re re)) im)
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 re re))
(+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(-.f64 (*.f64 (/.f64 -1/2 im) (*.f64 re re)) im)
(+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(-.f64 (*.f64 (/.f64 -1/2 im) (*.f64 re re)) im)
(+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(-.f64 (*.f64 (/.f64 -1/2 im) (*.f64 re re)) im)
(*.f64 -1 im)
(neg.f64 im)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(-.f64 (*.f64 (/.f64 -1/2 im) (*.f64 re re)) im)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(-.f64 (*.f64 (/.f64 -1/2 im) (*.f64 re re)) im)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(-.f64 (*.f64 (/.f64 -1/2 im) (*.f64 re re)) im)
(*.f64 -1 im)
(neg.f64 im)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(-.f64 (*.f64 (/.f64 -1/2 im) (*.f64 re re)) im)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(-.f64 (*.f64 (/.f64 -1/2 im) (*.f64 re re)) im)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(-.f64 (*.f64 (/.f64 -1/2 im) (*.f64 re re)) im)

eval225.0ms (2.6%)

Compiler

Compiled 10252 to 6671 computations (34.9% saved)

prune89.0ms (1%)

Pruning

11 alts after pruning (6 fresh and 5 done)

PrunedKeptTotal
New4212423
Fresh044
Picked101
Done055
Total42211433
Error
5.5b
Counts
433 → 11
Alt Table
Click to see full alt table
StatusErrorProgram
49.7b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (*.f64 (/.f64 im re) im) -1/2))))
46.4b
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
16.4b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))
60.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (neg.f64 re)))))
49.6b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (-.f64 (*.f64 (/.f64 re im) (*.f64 re -1/2)) im)))))
47.5b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 re im))))
49.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im))))
49.2b
(*.f64 1/2 (*.f64 2 (sqrt.f64 re)))
44.4b
(*.f64 1/2 (*.f64 (sqrt.f64 (+.f64 re im)) (sqrt.f64 2)))
44.2b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
52.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))))
Compiler

Compiled 200 to 161 computations (19.5% saved)

localize12.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 31 to 16 computations (48.4% saved)

series7.0ms (0.1%)

Counts
2 → 16
Calls

12 calls:

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

rewrite60.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
828×pow1_binary64
771×add-log-exp_binary64
770×log1p-expm1-u_binary64
770×expm1-log1p-u_binary64
753×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify102.0ms (1.2%)

Algorithm
egg-herbie
Rules
734×distribute-lft-out_binary64
656×associate-/r*_binary64
492×*-commutative_binary64
473×associate-+l+_binary64
471×fma-def_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
083514
1231512
2639472
32112450
43209450
54981450
66827450
77567450
Stop Event
node limit
Counts
54 → 66
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
(+.f64 (*.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im))))
(+.f64 (*.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 1/16 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 3)) (sqrt.f64 (/.f64 1 (pow.f64 im 5))))))))
(*.f64 (sqrt.f64 2) (sqrt.f64 re))
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 re)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re)))))
(+.f64 (*.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 re)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re))))))
(+.f64 (*.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) (+.f64 (*.f64 1/16 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 re)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re)))))))
(sqrt.f64 im)
(+.f64 (sqrt.f64 im) (*.f64 1/2 (*.f64 re (sqrt.f64 (/.f64 1 im)))))
(+.f64 (sqrt.f64 im) (+.f64 (*.f64 1/2 (*.f64 re (sqrt.f64 (/.f64 1 im)))) (*.f64 -1/8 (*.f64 (pow.f64 re 2) (sqrt.f64 (/.f64 1 (pow.f64 im 3)))))))
(+.f64 (sqrt.f64 im) (+.f64 (*.f64 1/2 (*.f64 re (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 1/16 (*.f64 (pow.f64 re 3) (sqrt.f64 (/.f64 1 (pow.f64 im 5))))) (*.f64 -1/8 (*.f64 (pow.f64 re 2) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))))))
(sqrt.f64 re)
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im)) (sqrt.f64 re))
(+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im)) (sqrt.f64 re)))
(+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im)) (+.f64 (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (pow.f64 im 3))) (sqrt.f64 re))))
Outputs
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
(fma.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
(fma.f64 (sqrt.f64 2) (sqrt.f64 im) (*.f64 (sqrt.f64 2) (*.f64 1/2 (*.f64 re (sqrt.f64 (/.f64 1 im))))))
(*.f64 (sqrt.f64 2) (fma.f64 1/2 (*.f64 re (sqrt.f64 (/.f64 1 im))) (sqrt.f64 im)))
(*.f64 (sqrt.f64 2) (fma.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 1/2 re) (sqrt.f64 im)))
(+.f64 (*.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im))))
(fma.f64 -1/8 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 re re) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (fma.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im))))
(fma.f64 -1/8 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 re re) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (fma.f64 (sqrt.f64 2) (sqrt.f64 im) (*.f64 (sqrt.f64 2) (*.f64 1/2 (*.f64 re (sqrt.f64 (/.f64 1 im)))))))
(fma.f64 (sqrt.f64 2) (sqrt.f64 im) (*.f64 (sqrt.f64 2) (fma.f64 -1/8 (*.f64 (*.f64 re re) (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 1/2 re)))))
(*.f64 (sqrt.f64 2) (fma.f64 1/2 (*.f64 re (sqrt.f64 (/.f64 1 im))) (fma.f64 -1/8 (*.f64 (*.f64 re re) (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) (sqrt.f64 im))))
(*.f64 (sqrt.f64 2) (fma.f64 re (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) (fma.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 3))) (*.f64 re (*.f64 re -1/8)) (sqrt.f64 im))))
(*.f64 (sqrt.f64 2) (fma.f64 1/2 (*.f64 re (sqrt.f64 (/.f64 1 im))) (fma.f64 (*.f64 re re) (*.f64 -1/8 (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) (sqrt.f64 im))))
(+.f64 (*.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 1/16 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 3)) (sqrt.f64 (/.f64 1 (pow.f64 im 5))))))))
(fma.f64 -1/8 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 re re) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (fma.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 (/.f64 1 im)))) (fma.f64 (sqrt.f64 2) (sqrt.f64 im) (*.f64 1/16 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 3)) (sqrt.f64 (/.f64 1 (pow.f64 im 5))))))))
(+.f64 (*.f64 (sqrt.f64 2) (fma.f64 1/2 (*.f64 re (sqrt.f64 (/.f64 1 im))) (sqrt.f64 im))) (*.f64 (sqrt.f64 2) (fma.f64 1/16 (*.f64 (pow.f64 re 3) (sqrt.f64 (/.f64 1 (pow.f64 im 5)))) (*.f64 -1/8 (*.f64 (*.f64 re re) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))))))
(*.f64 (sqrt.f64 2) (+.f64 (sqrt.f64 im) (fma.f64 1/16 (*.f64 (pow.f64 re 3) (sqrt.f64 (/.f64 1 (pow.f64 im 5)))) (*.f64 re (+.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) (*.f64 re (*.f64 -1/8 (sqrt.f64 (/.f64 1 (pow.f64 im 3))))))))))
(*.f64 (sqrt.f64 2) (+.f64 (sqrt.f64 im) (fma.f64 1/2 (*.f64 re (sqrt.f64 (/.f64 1 im))) (*.f64 (*.f64 re re) (+.f64 (*.f64 -1/8 (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 5))) (*.f64 re 1/16)))))))
(*.f64 (sqrt.f64 2) (+.f64 (fma.f64 1/2 (*.f64 re (sqrt.f64 (/.f64 1 im))) (sqrt.f64 im)) (*.f64 (*.f64 re re) (+.f64 (*.f64 -1/8 (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 5))) (*.f64 re 1/16))))))
(*.f64 (sqrt.f64 2) (sqrt.f64 re))
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 re)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re)))))
(fma.f64 (sqrt.f64 2) (sqrt.f64 re) (*.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 im (sqrt.f64 (/.f64 1 re))))))
(fma.f64 (sqrt.f64 2) (sqrt.f64 re) (*.f64 (sqrt.f64 2) (*.f64 1/2 (*.f64 im (sqrt.f64 (/.f64 1 re))))))
(*.f64 (sqrt.f64 2) (fma.f64 im (*.f64 1/2 (sqrt.f64 (/.f64 1 re))) (sqrt.f64 re)))
(+.f64 (*.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 re)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re))))))
(fma.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 im im)) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (fma.f64 (sqrt.f64 2) (sqrt.f64 re) (*.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 im (sqrt.f64 (/.f64 1 re)))))))
(fma.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (sqrt.f64 2)) (*.f64 im im)) (fma.f64 (sqrt.f64 2) (sqrt.f64 re) (*.f64 (sqrt.f64 2) (*.f64 1/2 (*.f64 im (sqrt.f64 (/.f64 1 re)))))))
(fma.f64 (sqrt.f64 2) (sqrt.f64 re) (*.f64 (sqrt.f64 2) (*.f64 im (+.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 re))) (*.f64 im (*.f64 -1/8 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))))))))
(*.f64 (sqrt.f64 2) (fma.f64 -1/8 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (fma.f64 im (*.f64 1/2 (sqrt.f64 (/.f64 1 re))) (sqrt.f64 re))))
(*.f64 (sqrt.f64 2) (fma.f64 (*.f64 im im) (*.f64 -1/8 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (fma.f64 im (*.f64 1/2 (sqrt.f64 (/.f64 1 re))) (sqrt.f64 re))))
(*.f64 (sqrt.f64 2) (fma.f64 im (*.f64 1/2 (sqrt.f64 (/.f64 1 re))) (fma.f64 (*.f64 im im) (*.f64 -1/8 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (sqrt.f64 re))))
(+.f64 (*.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) (+.f64 (*.f64 1/16 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 re)) (*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (/.f64 1 re)))))))
(fma.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 im im)) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (fma.f64 1/16 (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 im 3) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) (fma.f64 (sqrt.f64 2) (sqrt.f64 re) (*.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 im (sqrt.f64 (/.f64 1 re))))))))
(fma.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (sqrt.f64 2)) (*.f64 im im)) (fma.f64 1/16 (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 im 3) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) (fma.f64 (sqrt.f64 2) (sqrt.f64 re) (*.f64 (sqrt.f64 2) (*.f64 1/2 (*.f64 im (sqrt.f64 (/.f64 1 re))))))))
(+.f64 (*.f64 (sqrt.f64 2) (fma.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (*.f64 (pow.f64 im 3) 1/16) (sqrt.f64 re))) (*.f64 (sqrt.f64 2) (*.f64 im (+.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 re))) (*.f64 im (*.f64 -1/8 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))))))))
(*.f64 (sqrt.f64 2) (fma.f64 im (*.f64 1/2 (sqrt.f64 (/.f64 1 re))) (fma.f64 -1/8 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (fma.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (*.f64 (pow.f64 im 3) 1/16) (sqrt.f64 re)))))
(*.f64 (sqrt.f64 2) (fma.f64 im (*.f64 1/2 (sqrt.f64 (/.f64 1 re))) (fma.f64 (*.f64 im im) (*.f64 -1/8 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (fma.f64 (pow.f64 im 3) (*.f64 1/16 (sqrt.f64 (/.f64 1 (pow.f64 re 5)))) (sqrt.f64 re)))))
(sqrt.f64 im)
(+.f64 (sqrt.f64 im) (*.f64 1/2 (*.f64 re (sqrt.f64 (/.f64 1 im)))))
(+.f64 (sqrt.f64 im) (*.f64 (*.f64 1/2 re) (sqrt.f64 (/.f64 1 im))))
(fma.f64 1/2 (*.f64 re (sqrt.f64 (/.f64 1 im))) (sqrt.f64 im))
(fma.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 1/2 re) (sqrt.f64 im))
(+.f64 (sqrt.f64 im) (+.f64 (*.f64 1/2 (*.f64 re (sqrt.f64 (/.f64 1 im)))) (*.f64 -1/8 (*.f64 (pow.f64 re 2) (sqrt.f64 (/.f64 1 (pow.f64 im 3)))))))
(+.f64 (sqrt.f64 im) (fma.f64 1/2 (*.f64 re (sqrt.f64 (/.f64 1 im))) (*.f64 (*.f64 -1/8 (*.f64 re re)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))))
(+.f64 (sqrt.f64 im) (fma.f64 1/2 (*.f64 re (sqrt.f64 (/.f64 1 im))) (*.f64 -1/8 (*.f64 (*.f64 re re) (sqrt.f64 (/.f64 1 (pow.f64 im 3)))))))
(fma.f64 1/2 (*.f64 re (sqrt.f64 (/.f64 1 im))) (fma.f64 -1/8 (*.f64 (*.f64 re re) (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) (sqrt.f64 im)))
(fma.f64 re (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) (fma.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 3))) (*.f64 re (*.f64 re -1/8)) (sqrt.f64 im)))
(fma.f64 1/2 (*.f64 re (sqrt.f64 (/.f64 1 im))) (fma.f64 (*.f64 re re) (*.f64 -1/8 (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) (sqrt.f64 im)))
(+.f64 (sqrt.f64 im) (+.f64 (*.f64 1/2 (*.f64 re (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 1/16 (*.f64 (pow.f64 re 3) (sqrt.f64 (/.f64 1 (pow.f64 im 5))))) (*.f64 -1/8 (*.f64 (pow.f64 re 2) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))))))
(+.f64 (sqrt.f64 im) (fma.f64 1/2 (*.f64 re (sqrt.f64 (/.f64 1 im))) (fma.f64 1/16 (*.f64 (pow.f64 re 3) (sqrt.f64 (/.f64 1 (pow.f64 im 5)))) (*.f64 (*.f64 -1/8 (*.f64 re re)) (sqrt.f64 (/.f64 1 (pow.f64 im 3)))))))
(+.f64 (sqrt.f64 im) (fma.f64 1/2 (*.f64 re (sqrt.f64 (/.f64 1 im))) (fma.f64 -1/8 (*.f64 (*.f64 re re) (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) (*.f64 1/16 (*.f64 (pow.f64 re 3) (sqrt.f64 (/.f64 1 (pow.f64 im 5))))))))
(+.f64 (sqrt.f64 im) (fma.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 5))) (*.f64 1/16 (pow.f64 re 3)) (fma.f64 -1/8 (*.f64 (*.f64 re re) (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 1/2 re)))))
(+.f64 (sqrt.f64 im) (fma.f64 1/16 (*.f64 (pow.f64 re 3) (sqrt.f64 (/.f64 1 (pow.f64 im 5)))) (*.f64 re (+.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) (*.f64 re (*.f64 -1/8 (sqrt.f64 (/.f64 1 (pow.f64 im 3)))))))))
(+.f64 (sqrt.f64 im) (fma.f64 1/2 (*.f64 re (sqrt.f64 (/.f64 1 im))) (*.f64 (*.f64 re re) (+.f64 (*.f64 -1/8 (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 5))) (*.f64 re 1/16))))))
(+.f64 (fma.f64 1/2 (*.f64 re (sqrt.f64 (/.f64 1 im))) (sqrt.f64 im)) (*.f64 (*.f64 re re) (+.f64 (*.f64 -1/8 (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 5))) (*.f64 re 1/16)))))
(sqrt.f64 re)
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im)) (sqrt.f64 re))
(fma.f64 1/2 (*.f64 im (sqrt.f64 (/.f64 1 re))) (sqrt.f64 re))
(fma.f64 im (*.f64 1/2 (sqrt.f64 (/.f64 1 re))) (sqrt.f64 re))
(+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im)) (sqrt.f64 re)))
(fma.f64 -1/8 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (fma.f64 1/2 (*.f64 im (sqrt.f64 (/.f64 1 re))) (sqrt.f64 re)))
(fma.f64 -1/8 (*.f64 im (*.f64 im (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) (fma.f64 1/2 (*.f64 im (sqrt.f64 (/.f64 1 re))) (sqrt.f64 re)))
(fma.f64 -1/8 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (fma.f64 im (*.f64 1/2 (sqrt.f64 (/.f64 1 re))) (sqrt.f64 re)))
(fma.f64 (*.f64 im im) (*.f64 -1/8 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (fma.f64 im (*.f64 1/2 (sqrt.f64 (/.f64 1 re))) (sqrt.f64 re)))
(fma.f64 im (*.f64 1/2 (sqrt.f64 (/.f64 1 re))) (fma.f64 (*.f64 im im) (*.f64 -1/8 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (sqrt.f64 re)))
(+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (pow.f64 im 2))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im)) (+.f64 (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (pow.f64 im 3))) (sqrt.f64 re))))
(fma.f64 -1/8 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (fma.f64 1/2 (*.f64 im (sqrt.f64 (/.f64 1 re))) (fma.f64 1/16 (*.f64 (pow.f64 im 3) (sqrt.f64 (/.f64 1 (pow.f64 re 5)))) (sqrt.f64 re))))
(fma.f64 -1/8 (*.f64 im (*.f64 im (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) (fma.f64 1/2 (*.f64 im (sqrt.f64 (/.f64 1 re))) (fma.f64 1/16 (*.f64 (pow.f64 im 3) (sqrt.f64 (/.f64 1 (pow.f64 re 5)))) (sqrt.f64 re))))
(fma.f64 im (*.f64 1/2 (sqrt.f64 (/.f64 1 re))) (fma.f64 -1/8 (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (fma.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (*.f64 (pow.f64 im 3) 1/16) (sqrt.f64 re))))
(fma.f64 im (*.f64 1/2 (sqrt.f64 (/.f64 1 re))) (fma.f64 (*.f64 im im) (*.f64 -1/8 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (fma.f64 (pow.f64 im 3) (*.f64 1/16 (sqrt.f64 (/.f64 1 (pow.f64 re 5)))) (sqrt.f64 re))))

localize7.0ms (0.1%)

Compiler

Compiled 17 to 11 computations (35.3% saved)

localize10.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 28 to 15 computations (46.4% saved)

series6.0ms (0.1%)

Counts
1 → 8
Calls

6 calls:

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

rewrite56.0ms (0.6%)

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

Useful iterations: 0 (0.0ms)

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

simplify55.0ms (0.6%)

Algorithm
egg-herbie
Rules
671×associate-/r*_binary64
651×associate-*l/_binary64
601×distribute-rgt-out_binary64
590×associate-/r/_binary64
523×associate-*r/_binary64
Iterations

Useful iterations: 4 (0.0ms)

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

localize16.0ms (0.2%)

Local error

Found 4 expressions with local error:

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

Compiled 53 to 25 computations (52.8% saved)

series16.0ms (0.2%)

Counts
4 → 72
Calls

24 calls:

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

rewrite83.0ms (0.9%)

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

Useful iterations: 1 (0.0ms)

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

simplify85.0ms (1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
019764
143764
2114764
3300764
4711764
52202764
63723764
76191764
Stop Event
node limit
Counts
200 → 140
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))))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
Outputs
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(neg.f64 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (neg.f64 (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 -1) (*.f64 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 (*.f64 (sqrt.f64 -1) im) (neg.f64 (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 -1) (*.f64 im (neg.f64 (sqrt.f64 (/.f64 1 re)))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(neg.f64 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (neg.f64 (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 -1) (*.f64 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 (*.f64 (sqrt.f64 -1) im) (neg.f64 (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 -1) (*.f64 im (neg.f64 (sqrt.f64 (/.f64 1 re)))))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 im (/.f64 im re))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1) im) 1/2))
(*.f64 (sqrt.f64 -1) (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2)))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 (/.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 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1) im) 1/2))
(*.f64 (sqrt.f64 -1) (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2)))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 (/.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 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1) im) 1/2))
(*.f64 (sqrt.f64 -1) (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2)))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 (/.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 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1) im) 1/2))
(*.f64 (sqrt.f64 -1) (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2)))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 (/.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 -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 (sqrt.f64 (/.f64 1 re)) (*.f64 im -1/2)))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) -1/2)))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (*.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 (sqrt.f64 (/.f64 1 re)) (*.f64 im -1/2)))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) -1/2)))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (*.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 (sqrt.f64 (/.f64 1 re)) (*.f64 im -1/2)))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) -1/2)))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (*.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 (sqrt.f64 (/.f64 1 re)) (*.f64 im -1/2)))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) -1/2)))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (*.f64 im (neg.f64 im)) re)
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 (neg.f64 im) (/.f64 im re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (*.f64 im (neg.f64 im)) re)
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 (neg.f64 im) (/.f64 im re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (*.f64 im (neg.f64 im)) re)
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 (neg.f64 im) (/.f64 im re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (*.f64 im (neg.f64 im)) re)
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 (neg.f64 im) (/.f64 im re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (*.f64 im (neg.f64 im)) re)
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 (neg.f64 im) (/.f64 im re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (*.f64 im (neg.f64 im)) re)
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 (neg.f64 im) (/.f64 im re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (*.f64 im (neg.f64 im)) re)
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 (neg.f64 im) (/.f64 im re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (*.f64 im (neg.f64 im)) re)
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 (neg.f64 im) (/.f64 im re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (*.f64 im (neg.f64 im)) re)
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 (neg.f64 im) (/.f64 im re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (*.f64 im (neg.f64 im)) re)
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 (neg.f64 im) (/.f64 im re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (*.f64 im (neg.f64 im)) re)
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 (neg.f64 im) (/.f64 im re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (*.f64 im (neg.f64 im)) re)
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 (neg.f64 im) (/.f64 im re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (*.f64 im (neg.f64 im)) re)
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 (neg.f64 im) (/.f64 im re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (*.f64 im (neg.f64 im)) re)
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 (neg.f64 im) (/.f64 im re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (*.f64 im (neg.f64 im)) re)
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 (neg.f64 im) (/.f64 im re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (*.f64 im (neg.f64 im)) re)
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 (neg.f64 im) (/.f64 im re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (*.f64 im (neg.f64 im)) re)
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 (neg.f64 im) (/.f64 im re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (*.f64 im (neg.f64 im)) re)
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 (neg.f64 im) (/.f64 im re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (*.f64 im (neg.f64 im)) re)
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 (neg.f64 im) (/.f64 im re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (*.f64 im (neg.f64 im)) re)
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 (neg.f64 im) (/.f64 im re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (*.f64 im (neg.f64 im)) re)
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 (neg.f64 im) (/.f64 im re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (*.f64 im (neg.f64 im)) re)
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 (neg.f64 im) (/.f64 im re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (*.f64 im (neg.f64 im)) re)
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 (neg.f64 im) (/.f64 im re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (*.f64 im (neg.f64 im)) re)
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 (neg.f64 im) (/.f64 im re))

localize29.0ms (0.3%)

Local error

Found 4 expressions with local error:

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

Compiled 83 to 45 computations (45.8% saved)

series7.0ms (0.1%)

Counts
4 → 84
Calls

24 calls:

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

rewrite112.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
719×log-prod_binary64
570×fma-def_binary64
322×fma-neg_binary64
252×pow1/3_binary64
249×expm1-udef_binary64
Iterations

Useful iterations: 2 (0.0ms)

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

simplify61.0ms (0.7%)

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

Useful iterations: 2 (0.0ms)

IterNodesCost
01161604
13681523
213491492
Stop Event
node limit
Counts
382 → 336
Calls
Call 1
Inputs
(*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -1)) (sqrt.f64 im))
(+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -1)) (sqrt.f64 im)))
(+.f64 (*.f64 -1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (+.f64 (pow.f64 (*.f64 1/2 (*.f64 (/.f64 1 (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) 2) (*.f64 1/2 (/.f64 1 im))) (pow.f64 re 2))) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -1)) (sqrt.f64 im))))
(+.f64 (*.f64 -1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (+.f64 (pow.f64 (*.f64 1/2 (*.f64 (/.f64 1 (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) 2) (*.f64 1/2 (/.f64 1 im))) (pow.f64 re 2))) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -1)) (sqrt.f64 im)) (*.f64 1/4 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (+.f64 (pow.f64 (*.f64 1/2 (*.f64 (/.f64 1 (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) 2) (*.f64 1/2 (/.f64 1 im))) (pow.f64 re 3))) (pow.f64 (sqrt.f64 -1) 3)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 -1/2))) (sqrt.f64 (/.f64 1 im)))
(+.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 -1/2))) (sqrt.f64 (/.f64 1 im))) (*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -1/2)) (sqrt.f64 im))))
(+.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 -1/2))) (sqrt.f64 (/.f64 1 im))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -1/2)) (sqrt.f64 im))) (*.f64 -1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (+.f64 (pow.f64 (*.f64 1/2 (*.f64 (/.f64 1 (sqrt.f64 -1/2)) (sqrt.f64 im))) 2) im)) (*.f64 re (sqrt.f64 -1/2))) (sqrt.f64 im)))))
(+.f64 (*.f64 1/4 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (+.f64 im (pow.f64 (*.f64 1/2 (*.f64 (/.f64 1 (sqrt.f64 -1/2)) (sqrt.f64 im))) 2))) (*.f64 (pow.f64 re 2) (pow.f64 (sqrt.f64 -1/2) 3))) (sqrt.f64 (pow.f64 im 3)))) (+.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 -1/2))) (sqrt.f64 (/.f64 1 im))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -1/2)) (sqrt.f64 im))) (*.f64 -1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (+.f64 (pow.f64 (*.f64 1/2 (*.f64 (/.f64 1 (sqrt.f64 -1/2)) (sqrt.f64 im))) 2) im)) (*.f64 re (sqrt.f64 -1/2))) (sqrt.f64 im))))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 re (sqrt.f64 -2))) (sqrt.f64 (/.f64 1 im))))
(+.f64 (*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2)) (sqrt.f64 im))) (*.f64 -1 (*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 re (sqrt.f64 -2))) (sqrt.f64 (/.f64 1 im)))))
(+.f64 (*.f64 -1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 -2) (-.f64 im (pow.f64 (*.f64 1/2 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 im))) 2))) (*.f64 (sqrt.f64 1/2) re)) (sqrt.f64 im))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2)) (sqrt.f64 im))) (*.f64 -1 (*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 re (sqrt.f64 -2))) (sqrt.f64 (/.f64 1 im))))))
(+.f64 (*.f64 -1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 -2) (-.f64 im (pow.f64 (*.f64 1/2 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 im))) 2))) (*.f64 (sqrt.f64 1/2) re)) (sqrt.f64 im))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2)) (sqrt.f64 im))) (+.f64 (*.f64 -1/4 (*.f64 (/.f64 (*.f64 (sqrt.f64 -2) (-.f64 im (pow.f64 (*.f64 1/2 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 im))) 2))) (*.f64 (pow.f64 (sqrt.f64 1/2) 3) (pow.f64 re 2))) (sqrt.f64 (pow.f64 im 3)))) (*.f64 -1 (*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 re (sqrt.f64 -2))) (sqrt.f64 (/.f64 1 im)))))))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1 im)
(+.f64 re (*.f64 -1 im))
(+.f64 re (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(+.f64 re (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(+.f64 re (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(+.f64 re (+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im))))
(+.f64 re (+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im))))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(+.f64 re (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(+.f64 re (+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im))))
(+.f64 re (+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im))))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(+.f64 re (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(+.f64 re (+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im))))
(+.f64 re (+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im))))
(*.f64 -1 im)
(+.f64 re (*.f64 -1 im))
(+.f64 re (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(+.f64 re (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(*.f64 -1 im)
(+.f64 re (*.f64 -1 im))
(+.f64 re (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(+.f64 re (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(*.f64 -1 im)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(*.f64 -1 im)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(*.f64 -1 im)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
Outputs
(*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -1)) (sqrt.f64 im))
(*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1) (sqrt.f64 im)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
(+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -1)) (sqrt.f64 im)))
(fma.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im))) (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1) (sqrt.f64 im))))
(fma.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1) (sqrt.f64 im)) (*.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 im))) (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -1)) re)))
(fma.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1) (sqrt.f64 im)) (*.f64 (*.f64 re (/.f64 (sqrt.f64 2) (sqrt.f64 -1))) (*.f64 1/2 (sqrt.f64 (/.f64 1 im)))))
(+.f64 (*.f64 -1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (+.f64 (pow.f64 (*.f64 1/2 (*.f64 (/.f64 1 (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) 2) (*.f64 1/2 (/.f64 1 im))) (pow.f64 re 2))) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -1)) (sqrt.f64 im))))
(fma.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 -1) (*.f64 (+.f64 (pow.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (/.f64 1 (sqrt.f64 -1)))) 2) (/.f64 1/2 im)) (*.f64 re re))))) (fma.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im))) (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1) (sqrt.f64 im)))))
(+.f64 (*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 2) (sqrt.f64 im))) (*.f64 (sqrt.f64 (/.f64 1 im)) (+.f64 (*.f64 -1/2 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -1)) (*.f64 (+.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 im)) (/.f64 1/2 (sqrt.f64 -1))) 2) (/.f64 1/2 im)) (*.f64 re re)))) (*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -1)) re)))))
(fma.f64 (sqrt.f64 (/.f64 1 im)) (fma.f64 -1/2 (*.f64 (*.f64 re (/.f64 (sqrt.f64 2) (sqrt.f64 -1))) (*.f64 re (+.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 im)) (/.f64 1/2 (sqrt.f64 -1))) 2) (/.f64 1/2 im)))) (*.f64 1/2 (*.f64 re (/.f64 (sqrt.f64 2) (sqrt.f64 -1))))) (*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 2) (sqrt.f64 im))))
(+.f64 (*.f64 -1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (+.f64 (pow.f64 (*.f64 1/2 (*.f64 (/.f64 1 (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) 2) (*.f64 1/2 (/.f64 1 im))) (pow.f64 re 2))) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -1)) (sqrt.f64 im)) (*.f64 1/4 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (+.f64 (pow.f64 (*.f64 1/2 (*.f64 (/.f64 1 (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im)))) 2) (*.f64 1/2 (/.f64 1 im))) (pow.f64 re 3))) (pow.f64 (sqrt.f64 -1) 3)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))))))
(fma.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 -1) (*.f64 (+.f64 (pow.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (/.f64 1 (sqrt.f64 -1)))) 2) (/.f64 1/2 im)) (*.f64 re re))))) (fma.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 im))) (fma.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -1)) (sqrt.f64 im) (*.f64 1/4 (*.f64 (/.f64 (sqrt.f64 2) (/.f64 (pow.f64 (sqrt.f64 -1) 3) (*.f64 (+.f64 (pow.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (/.f64 1 (sqrt.f64 -1)))) 2) (/.f64 1/2 im)) (pow.f64 re 3)))) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))))))
(+.f64 (fma.f64 1/4 (/.f64 (*.f64 (*.f64 (+.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 im)) (/.f64 1/2 (sqrt.f64 -1))) 2) (/.f64 1/2 im)) (pow.f64 re 3)) (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (*.f64 -1 (sqrt.f64 -1))) (*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))) (*.f64 (sqrt.f64 (/.f64 1 im)) (+.f64 (*.f64 -1/2 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -1)) (*.f64 (+.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 im)) (/.f64 1/2 (sqrt.f64 -1))) 2) (/.f64 1/2 im)) (*.f64 re re)))) (*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -1)) re)))))
(fma.f64 (sqrt.f64 (/.f64 1 im)) (fma.f64 -1/2 (*.f64 (*.f64 re (/.f64 (sqrt.f64 2) (sqrt.f64 -1))) (*.f64 re (+.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 im)) (/.f64 1/2 (sqrt.f64 -1))) 2) (/.f64 1/2 im)))) (*.f64 1/2 (*.f64 re (/.f64 (sqrt.f64 2) (sqrt.f64 -1))))) (fma.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1) (sqrt.f64 im)) (*.f64 -1/4 (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 -1) (*.f64 (+.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 im)) (/.f64 1/2 (sqrt.f64 -1))) 2) (/.f64 1/2 im)) (*.f64 (pow.f64 re 3) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))))))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 -1/2))) (sqrt.f64 (/.f64 1 im)))
(*.f64 (sqrt.f64 2) (*.f64 (*.f64 re (sqrt.f64 -1/2)) (sqrt.f64 (/.f64 1 im))))
(*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 re (sqrt.f64 -1/2))))
(+.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 -1/2))) (sqrt.f64 (/.f64 1 im))) (*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -1/2)) (sqrt.f64 im))))
(fma.f64 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 -1/2))) (sqrt.f64 (/.f64 1 im)) (*.f64 1/2 (*.f64 (sqrt.f64 im) (/.f64 (sqrt.f64 2) (sqrt.f64 -1/2)))))
(fma.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 re (sqrt.f64 -1/2))) (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -1/2)) (*.f64 (sqrt.f64 im) 1/2)))
(fma.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 -1/2))) (*.f64 (sqrt.f64 im) (*.f64 (/.f64 1/2 (sqrt.f64 -1/2)) (sqrt.f64 2))))
(+.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 -1/2))) (sqrt.f64 (/.f64 1 im))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -1/2)) (sqrt.f64 im))) (*.f64 -1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (+.f64 (pow.f64 (*.f64 1/2 (*.f64 (/.f64 1 (sqrt.f64 -1/2)) (sqrt.f64 im))) 2) im)) (*.f64 re (sqrt.f64 -1/2))) (sqrt.f64 im)))))
(fma.f64 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 -1/2))) (sqrt.f64 (/.f64 1 im)) (fma.f64 1/2 (*.f64 (sqrt.f64 im) (/.f64 (sqrt.f64 2) (sqrt.f64 -1/2))) (*.f64 (*.f64 -1/2 (*.f64 (/.f64 (sqrt.f64 2) re) (/.f64 (+.f64 im (pow.f64 (*.f64 1/2 (*.f64 (sqrt.f64 im) (/.f64 1 (sqrt.f64 -1/2)))) 2)) (sqrt.f64 -1/2)))) (sqrt.f64 im))))
(fma.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 re (sqrt.f64 -1/2))) (*.f64 (sqrt.f64 im) (+.f64 (*.f64 1/2 (/.f64 (sqrt.f64 2) (sqrt.f64 -1/2))) (*.f64 -1/2 (*.f64 (/.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 -1/2))) (+.f64 im (pow.f64 (*.f64 (sqrt.f64 im) (/.f64 1/2 (sqrt.f64 -1/2))) 2)))))))
(fma.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 re (sqrt.f64 -1/2))) (*.f64 (sqrt.f64 im) (fma.f64 1/2 (/.f64 (sqrt.f64 2) (sqrt.f64 -1/2)) (*.f64 -1/2 (*.f64 (+.f64 im (pow.f64 (*.f64 (sqrt.f64 im) (/.f64 1/2 (sqrt.f64 -1/2))) 2)) (/.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 -1/2))))))))
(+.f64 (*.f64 1/4 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (+.f64 im (pow.f64 (*.f64 1/2 (*.f64 (/.f64 1 (sqrt.f64 -1/2)) (sqrt.f64 im))) 2))) (*.f64 (pow.f64 re 2) (pow.f64 (sqrt.f64 -1/2) 3))) (sqrt.f64 (pow.f64 im 3)))) (+.f64 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 -1/2))) (sqrt.f64 (/.f64 1 im))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -1/2)) (sqrt.f64 im))) (*.f64 -1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (+.f64 (pow.f64 (*.f64 1/2 (*.f64 (/.f64 1 (sqrt.f64 -1/2)) (sqrt.f64 im))) 2) im)) (*.f64 re (sqrt.f64 -1/2))) (sqrt.f64 im))))))
(fma.f64 1/4 (*.f64 (*.f64 (/.f64 (sqrt.f64 2) (*.f64 re re)) (/.f64 (+.f64 im (pow.f64 (*.f64 1/2 (*.f64 (sqrt.f64 im) (/.f64 1 (sqrt.f64 -1/2)))) 2)) (pow.f64 (sqrt.f64 -1/2) 3))) (sqrt.f64 (pow.f64 im 3))) (fma.f64 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 -1/2))) (sqrt.f64 (/.f64 1 im)) (fma.f64 1/2 (*.f64 (sqrt.f64 im) (/.f64 (sqrt.f64 2) (sqrt.f64 -1/2))) (*.f64 (*.f64 -1/2 (*.f64 (/.f64 (sqrt.f64 2) re) (/.f64 (+.f64 im (pow.f64 (*.f64 1/2 (*.f64 (sqrt.f64 im) (/.f64 1 (sqrt.f64 -1/2)))) 2)) (sqrt.f64 -1/2)))) (sqrt.f64 im)))))
(fma.f64 1/4 (*.f64 (*.f64 (/.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1/2) (*.f64 (*.f64 -1/2 re) re))) (+.f64 im (pow.f64 (*.f64 (sqrt.f64 im) (/.f64 1/2 (sqrt.f64 -1/2))) 2))) (fabs.f64 (pow.f64 im 3/2))) (fma.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 re (sqrt.f64 -1/2))) (*.f64 (sqrt.f64 im) (+.f64 (*.f64 1/2 (/.f64 (sqrt.f64 2) (sqrt.f64 -1/2))) (*.f64 -1/2 (*.f64 (/.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 -1/2))) (+.f64 im (pow.f64 (*.f64 (sqrt.f64 im) (/.f64 1/2 (sqrt.f64 -1/2))) 2))))))))
(fma.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 re (sqrt.f64 -1/2))) (fma.f64 (sqrt.f64 im) (fma.f64 1/2 (/.f64 (sqrt.f64 2) (sqrt.f64 -1/2)) (*.f64 -1/2 (*.f64 (+.f64 im (pow.f64 (*.f64 (sqrt.f64 im) (/.f64 1/2 (sqrt.f64 -1/2))) 2)) (/.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 -1/2)))))) (*.f64 -1/2 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (+.f64 im (pow.f64 (*.f64 (sqrt.f64 im) (/.f64 1/2 (sqrt.f64 -1/2))) 2)) (pow.f64 im 3/2))) (*.f64 (*.f64 re re) (sqrt.f64 -1/2))))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 re (sqrt.f64 -2))) (sqrt.f64 (/.f64 1 im))))
(neg.f64 (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 (sqrt.f64 1/2) (*.f64 re (sqrt.f64 -2)))))
(*.f64 (sqrt.f64 (/.f64 1 im)) (neg.f64 (*.f64 re (*.f64 (sqrt.f64 1/2) (sqrt.f64 -2)))))
(*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 (*.f64 re (sqrt.f64 1/2)) (neg.f64 (sqrt.f64 -2))))
(+.f64 (*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2)) (sqrt.f64 im))) (*.f64 -1 (*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 re (sqrt.f64 -2))) (sqrt.f64 (/.f64 1 im)))))
(fma.f64 1/2 (/.f64 (*.f64 (sqrt.f64 -2) (sqrt.f64 im)) (sqrt.f64 1/2)) (neg.f64 (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 (sqrt.f64 1/2) (*.f64 re (sqrt.f64 -2))))))
(-.f64 (*.f64 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2)) (*.f64 (sqrt.f64 im) 1/2)) (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 re (*.f64 (sqrt.f64 1/2) (sqrt.f64 -2)))))
(-.f64 (*.f64 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2)) (*.f64 (sqrt.f64 im) 1/2)) (*.f64 re (*.f64 (*.f64 (sqrt.f64 1/2) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 im)))))
(+.f64 (*.f64 -1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 -2) (-.f64 im (pow.f64 (*.f64 1/2 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 im))) 2))) (*.f64 (sqrt.f64 1/2) re)) (sqrt.f64 im))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2)) (sqrt.f64 im))) (*.f64 -1 (*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 re (sqrt.f64 -2))) (sqrt.f64 (/.f64 1 im))))))
(fma.f64 -1/2 (*.f64 (sqrt.f64 im) (*.f64 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2)) (/.f64 (-.f64 im (pow.f64 (*.f64 1/2 (*.f64 (sqrt.f64 im) (/.f64 1 (sqrt.f64 1/2)))) 2)) re))) (fma.f64 1/2 (/.f64 (*.f64 (sqrt.f64 -2) (sqrt.f64 im)) (sqrt.f64 1/2)) (neg.f64 (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 (sqrt.f64 1/2) (*.f64 re (sqrt.f64 -2)))))))
(-.f64 (*.f64 (sqrt.f64 im) (+.f64 (*.f64 (*.f64 -1/2 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2))) (/.f64 (-.f64 im (pow.f64 (*.f64 (sqrt.f64 im) (/.f64 1/2 (sqrt.f64 1/2))) 2)) re)) (*.f64 1/2 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2))))) (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 re (*.f64 (sqrt.f64 1/2) (sqrt.f64 -2)))))
(fma.f64 (sqrt.f64 im) (fma.f64 (*.f64 -1/2 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2))) (/.f64 (-.f64 im (pow.f64 (/.f64 (*.f64 (sqrt.f64 im) 1/2) (sqrt.f64 1/2)) 2)) re) (*.f64 1/2 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2)))) (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 (*.f64 re (sqrt.f64 1/2)) (neg.f64 (sqrt.f64 -2)))))
(+.f64 (*.f64 -1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 -2) (-.f64 im (pow.f64 (*.f64 1/2 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 im))) 2))) (*.f64 (sqrt.f64 1/2) re)) (sqrt.f64 im))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2)) (sqrt.f64 im))) (+.f64 (*.f64 -1/4 (*.f64 (/.f64 (*.f64 (sqrt.f64 -2) (-.f64 im (pow.f64 (*.f64 1/2 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 im))) 2))) (*.f64 (pow.f64 (sqrt.f64 1/2) 3) (pow.f64 re 2))) (sqrt.f64 (pow.f64 im 3)))) (*.f64 -1 (*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 re (sqrt.f64 -2))) (sqrt.f64 (/.f64 1 im)))))))
(fma.f64 -1/2 (*.f64 (sqrt.f64 im) (*.f64 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2)) (/.f64 (-.f64 im (pow.f64 (*.f64 1/2 (*.f64 (sqrt.f64 im) (/.f64 1 (sqrt.f64 1/2)))) 2)) re))) (fma.f64 1/2 (/.f64 (*.f64 (sqrt.f64 -2) (sqrt.f64 im)) (sqrt.f64 1/2)) (fma.f64 -1/4 (*.f64 (sqrt.f64 (pow.f64 im 3)) (*.f64 (/.f64 (sqrt.f64 -2) (pow.f64 (sqrt.f64 1/2) 3)) (/.f64 (-.f64 im (pow.f64 (*.f64 1/2 (*.f64 (sqrt.f64 im) (/.f64 1 (sqrt.f64 1/2)))) 2)) (*.f64 re re)))) (neg.f64 (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 (sqrt.f64 1/2) (*.f64 re (sqrt.f64 -2))))))))
(+.f64 (fma.f64 -1/4 (*.f64 (*.f64 (fabs.f64 (pow.f64 im 3/2)) (/.f64 (sqrt.f64 -2) (*.f64 1/2 (sqrt.f64 1/2)))) (/.f64 (-.f64 im (pow.f64 (*.f64 (sqrt.f64 im) (/.f64 1/2 (sqrt.f64 1/2))) 2)) (*.f64 re re))) (*.f64 (sqrt.f64 (/.f64 1 im)) (neg.f64 (*.f64 re (*.f64 (sqrt.f64 1/2) (sqrt.f64 -2)))))) (*.f64 (sqrt.f64 im) (+.f64 (*.f64 (*.f64 -1/2 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2))) (/.f64 (-.f64 im (pow.f64 (*.f64 (sqrt.f64 im) (/.f64 1/2 (sqrt.f64 1/2))) 2)) re)) (*.f64 1/2 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2))))))
(fma.f64 (sqrt.f64 im) (fma.f64 (*.f64 -1/2 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2))) (/.f64 (-.f64 im (pow.f64 (/.f64 (*.f64 (sqrt.f64 im) 1/2) (sqrt.f64 1/2)) 2)) re) (*.f64 1/2 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2)))) (fma.f64 (pow.f64 im 3/2) (*.f64 -1/2 (/.f64 (*.f64 (sqrt.f64 -2) (-.f64 im (pow.f64 (/.f64 (*.f64 (sqrt.f64 im) 1/2) (sqrt.f64 1/2)) 2))) (*.f64 re (*.f64 re (sqrt.f64 1/2))))) (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 (*.f64 re (sqrt.f64 1/2)) (neg.f64 (sqrt.f64 -2))))))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 re re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 re re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 re re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 re re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 re re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 re re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 re re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 re re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 re re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 re re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 re re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 re re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 re re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 re re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 re re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 re re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 re re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 re re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 re re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 re re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 re re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 re re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 re re))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 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 (fma.f64 -1/2 (/.f64 (*.f64 re re) im) re) im)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) (-.f64 re im))
(+.f64 re (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(+.f64 re (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im)))
(-.f64 (fma.f64 -1/2 (/.f64 (*.f64 re re) im) re) im)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) (-.f64 re im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 re re))
(+.f64 re (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(+.f64 re (*.f64 -1/2 (/.f64 (*.f64 re re) im)))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) re)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) re)
(+.f64 re (+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im))))
(+.f64 re (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im)))
(-.f64 (fma.f64 -1/2 (/.f64 (*.f64 re re) im) re) im)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) (-.f64 re im))
(+.f64 re (+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im))))
(+.f64 re (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im)))
(-.f64 (fma.f64 -1/2 (/.f64 (*.f64 re re) im) re) im)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) (-.f64 re im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 re re))
(+.f64 re (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(+.f64 re (*.f64 -1/2 (/.f64 (*.f64 re re) im)))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) re)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) re)
(+.f64 re (+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im))))
(+.f64 re (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im)))
(-.f64 (fma.f64 -1/2 (/.f64 (*.f64 re re) im) re) im)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) (-.f64 re im))
(+.f64 re (+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im))))
(+.f64 re (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im)))
(-.f64 (fma.f64 -1/2 (/.f64 (*.f64 re re) im) re) im)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) (-.f64 re im))
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 re re))
(+.f64 re (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(+.f64 re (*.f64 -1/2 (/.f64 (*.f64 re re) im)))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) re)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) re)
(+.f64 re (+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im))))
(+.f64 re (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im)))
(-.f64 (fma.f64 -1/2 (/.f64 (*.f64 re re) im) re) im)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) (-.f64 re im))
(+.f64 re (+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im))))
(+.f64 re (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im)))
(-.f64 (fma.f64 -1/2 (/.f64 (*.f64 re re) im) re) im)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) (-.f64 re im))
(*.f64 -1 im)
(neg.f64 im)
(+.f64 re (*.f64 -1 im))
(+.f64 re (neg.f64 im))
(-.f64 re im)
(+.f64 re (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(+.f64 re (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im)))
(-.f64 (fma.f64 -1/2 (/.f64 (*.f64 re re) im) re) im)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) (-.f64 re im))
(+.f64 re (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(+.f64 re (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im)))
(-.f64 (fma.f64 -1/2 (/.f64 (*.f64 re re) im) re) im)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) (-.f64 re im))
(*.f64 -1 im)
(neg.f64 im)
(+.f64 re (*.f64 -1 im))
(+.f64 re (neg.f64 im))
(-.f64 re im)
(+.f64 re (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(+.f64 re (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im)))
(-.f64 (fma.f64 -1/2 (/.f64 (*.f64 re re) im) re) im)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) (-.f64 re im))
(+.f64 re (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(+.f64 re (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im)))
(-.f64 (fma.f64 -1/2 (/.f64 (*.f64 re re) im) re) im)
(fma.f64 -1/2 (*.f64 (/.f64 re im) re) (-.f64 re im))
(*.f64 -1 im)
(neg.f64 im)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(-.f64 (*.f64 (/.f64 -1/2 im) (*.f64 re re)) im)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(-.f64 (*.f64 (/.f64 -1/2 im) (*.f64 re re)) im)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(-.f64 (*.f64 (/.f64 -1/2 im) (*.f64 re re)) im)
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 re re))
(+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(-.f64 (*.f64 (/.f64 -1/2 im) (*.f64 re re)) im)
(+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(-.f64 (*.f64 (/.f64 -1/2 im) (*.f64 re re)) im)
(+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(-.f64 (*.f64 (/.f64 -1/2 im) (*.f64 re re)) im)
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 re re))
(+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(-.f64 (*.f64 (/.f64 -1/2 im) (*.f64 re re)) im)
(+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(-.f64 (*.f64 (/.f64 -1/2 im) (*.f64 re re)) im)
(+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(-.f64 (*.f64 (/.f64 -1/2 im) (*.f64 re re)) im)
(*.f64 -1/2 (/.f64 (pow.f64 re 2) im))
(*.f64 -1/2 (/.f64 (*.f64 re re) im))
(*.f64 (/.f64 -1/2 im) (*.f64 re re))
(+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(-.f64 (*.f64 (/.f64 -1/2 im) (*.f64 re re)) im)
(+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(-.f64 (*.f64 (/.f64 -1/2 im) (*.f64 re re)) im)
(+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(-.f64 (*.f64 (/.f64 -1/2 im) (*.f64 re re)) im)
(*.f64 -1 im)
(neg.f64 im)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(-.f64 (*.f64 (/.f64 -1/2 im) (*.f64 re re)) im)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(-.f64 (*.f64 (/.f64 -1/2 im) (*.f64 re re)) im)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(-.f64 (*.f64 (/.f64 -1/2 im) (*.f64 re re)) im)
(*.f64 -1 im)
(neg.f64 im)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(-.f64 (*.f64 (/.f64 -1/2 im) (*.f64 re re)) im)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(-.f64 (*.f64 (/.f64 -1/2 im) (*.f64 re re)) im)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(-.f64 (*.f64 (/.f64 -1/2 im) (*.f64 re re)) im)

eval232.0ms (2.7%)

Compiler

Compiled 12388 to 7684 computations (38% saved)

prune97.0ms (1.1%)

Pruning

14 alts after pruning (6 fresh and 8 done)

PrunedKeptTotal
New5736579
Fresh101
Picked011
Done279
Total57614590
Error
5.4b
Counts
590 → 14
Alt Table
Click to see full alt table
StatusErrorProgram
47.5b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 re im))))
55.4b
(*.f64 1/2 (pow.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 2) 1/4))
49.7b
(*.f64 1/2 (sqrt.f64 (*.f64 (neg.f64 im) (/.f64 im re))))
49.7b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (/.f64 im (/.f64 re im)) -1/2))))
55.3b
(*.f64 1/2 (cbrt.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 3/2)))
52.8b
(sqrt.f64 (*.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/4))
46.4b
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
16.4b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))
49.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im))))
49.2b
(*.f64 1/2 (*.f64 2 (sqrt.f64 re)))
44.4b
(*.f64 1/2 (*.f64 (sqrt.f64 (+.f64 re im)) (sqrt.f64 2)))
53.2b
(*.f64 1/2 (*.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/6) (cbrt.f64 (*.f64 (/.f64 (*.f64 im im) re) -1))))
44.2b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
49.6b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (-.f64 (*.f64 (/.f64 re im) (*.f64 re -1/2)) im)))))
Compiler

Compiled 262 to 199 computations (24% saved)

localize17.0ms (0.2%)

Local error

Found 4 expressions with local error:

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

Compiled 53 to 25 computations (52.8% saved)

series7.0ms (0.1%)

Counts
4 → 72
Calls

24 calls:

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

rewrite87.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
651×log-prod_binary64
329×pow-prod-down_binary64
305×pow2_binary64
288×pow-unpow_binary64
214×pow1/3_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify84.0ms (1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
019764
143764
2114764
3300764
4706764
52232764
63757764
76226764
Stop Event
node limit
Counts
202 → 141
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 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
Outputs
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(neg.f64 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (neg.f64 (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 im)))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(neg.f64 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (neg.f64 (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 im)))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(neg.f64 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (neg.f64 (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 im)))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(neg.f64 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (neg.f64 (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 im)))
(/.f64 (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 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))) 1/2)
(*.f64 (*.f64 (sqrt.f64 -1) im) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (*.f64 im 1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im 1/2)))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))) 1/2)
(*.f64 (*.f64 (sqrt.f64 -1) im) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (*.f64 im 1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im 1/2)))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))) 1/2)
(*.f64 (*.f64 (sqrt.f64 -1) im) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (*.f64 im 1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im 1/2)))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))) 1/2)
(*.f64 (*.f64 (sqrt.f64 -1) im) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (*.f64 im 1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im 1/2)))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))) 1/2)
(*.f64 (*.f64 (sqrt.f64 -1) im) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (*.f64 im 1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im 1/2)))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))) 1/2)
(*.f64 (*.f64 (sqrt.f64 -1) im) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (*.f64 im 1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im 1/2)))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))) 1/2)
(*.f64 (*.f64 (sqrt.f64 -1) im) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (*.f64 im 1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im 1/2)))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))) 1/2)
(*.f64 (*.f64 (sqrt.f64 -1) im) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (*.f64 im 1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im 1/2)))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1) im) -1/2))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im -1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) -1/2)))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) -1/2)))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1) im) -1/2))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im -1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) -1/2)))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) -1/2)))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1) im) -1/2))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im -1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) -1/2)))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) -1/2)))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1) im) -1/2))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im -1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) -1/2)))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) -1/2)))

localize13.0ms (0.1%)

Local error

Found 3 expressions with local error:

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

Compiled 32 to 9 computations (71.9% saved)

series5.0ms (0.1%)

Counts
3 → 48
Calls

18 calls:

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

rewrite62.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
823×pow1_binary64
761×add-log-exp_binary64
760×log1p-expm1-u_binary64
760×expm1-log1p-u_binary64
744×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify78.0ms (0.9%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
019596
143596
2114596
3300596
4706596
52232596
63757596
76226596
Stop Event
node limit
Counts
105 → 67
Calls
Call 1
Inputs
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
Outputs
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(neg.f64 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (neg.f64 (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 im)))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(neg.f64 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (neg.f64 (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 im)))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(neg.f64 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (neg.f64 (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 im)))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(neg.f64 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (neg.f64 (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 im)))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 -1 (/.f64 (pow.f64 im 2) re))
(neg.f64 (/.f64 (*.f64 im im) re))
(neg.f64 (/.f64 im (/.f64 re im)))
(/.f64 (neg.f64 im) (/.f64 re im))
(*.f64 (/.f64 im re) (neg.f64 im))
(*.f64 im (/.f64 (neg.f64 im) re))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))) 1/2)
(*.f64 (*.f64 (sqrt.f64 -1) im) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (*.f64 im 1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im 1/2)))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))) 1/2)
(*.f64 (*.f64 (sqrt.f64 -1) im) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (*.f64 im 1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im 1/2)))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))) 1/2)
(*.f64 (*.f64 (sqrt.f64 -1) im) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (*.f64 im 1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im 1/2)))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))) 1/2)
(*.f64 (*.f64 (sqrt.f64 -1) im) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (*.f64 im 1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im 1/2)))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))) 1/2)
(*.f64 (*.f64 (sqrt.f64 -1) im) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (*.f64 im 1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im 1/2)))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))) 1/2)
(*.f64 (*.f64 (sqrt.f64 -1) im) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (*.f64 im 1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im 1/2)))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))) 1/2)
(*.f64 (*.f64 (sqrt.f64 -1) im) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (*.f64 im 1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im 1/2)))
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))) 1/2)
(*.f64 (*.f64 (sqrt.f64 -1) im) (*.f64 (sqrt.f64 (/.f64 1 re)) 1/2))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) (*.f64 im 1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im 1/2)))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1) im) -1/2))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im -1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) -1/2)))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) -1/2)))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1) im) -1/2))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im -1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) -1/2)))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) -1/2)))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1) im) -1/2))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im -1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) -1/2)))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) -1/2)))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (*.f64 (sqrt.f64 -1) im) -1/2))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im -1/2)))
(*.f64 (sqrt.f64 -1) (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) -1/2)))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) -1/2)))

localize12.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
7.6b
(/.f64 (*.f64 im im) re)
17.1b
(sqrt.f64 (*.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/4))
Compiler

Compiled 40 to 17 computations (57.5% saved)

series8.0ms (0.1%)

Counts
2 → 36
Calls

12 calls:

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

rewrite65.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
894×pow1_binary64
834×add-log-exp_binary64
834×log1p-expm1-u_binary64
834×expm1-log1p-u_binary64
815×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify95.0ms (1.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
015344
129344
266344
3154344
4345344
51047344
61997344
74731344
85531344
96324344
107606344
Stop Event
node limit
Counts
106 → 76
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 (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 im (*.f64 (sqrt.f64 -1/4) (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 im (*.f64 (sqrt.f64 -1/4) (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 im (*.f64 (sqrt.f64 -1/4) (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 im (*.f64 (sqrt.f64 -1/4) (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 im (*.f64 (sqrt.f64 -1/4) (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 im (*.f64 (sqrt.f64 -1/4) (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 im (*.f64 (sqrt.f64 -1/4) (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 im (*.f64 (sqrt.f64 -1/4) (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 (*.f64 (sqrt.f64 -1/4) im) (neg.f64 (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 -1/4) (*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 im)))
(*.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 (*.f64 (sqrt.f64 -1/4) im) (neg.f64 (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 -1/4) (*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 im)))
(*.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 (*.f64 (sqrt.f64 -1/4) im) (neg.f64 (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 -1/4) (*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 im)))
(*.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 (*.f64 (sqrt.f64 -1/4) im) (neg.f64 (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 -1/4) (*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 im)))
(/.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))

localize24.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(*.f64 1/2 (cbrt.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 3/2)))
7.6b
(/.f64 (*.f64 im im) re)
13.2b
(pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 3/2)
18.5b
(cbrt.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 3/2))
Compiler

Compiled 53 to 25 computations (52.8% saved)

series97.0ms (1.1%)

Counts
3 → 48
Calls

18 calls:

TimeVariablePointExpression
33.0ms
im
@0
(pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 3/2)
20.0ms
im
@inf
(pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 3/2)
17.0ms
re
@-inf
(pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 3/2)
14.0ms
re
@0
(pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 3/2)
7.0ms
re
@inf
(pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 3/2)

rewrite254.0ms (2.9%)

Algorithm
egg-rewrite-iter-limit
egg-rewrite
batch-egg-rewrite
Rules
870×pow1_binary64
816×pow1_binary64
816×add-log-exp_binary64
816×log1p-expm1-u_binary64
816×expm1-log1p-u_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01245
125145
2312245
01015
12106
226986
0913
119210
2247910
01218
125118
2311518
01218
Stop Event
iter limit
node limit
node limit
node limit
node limit
Counts
3 → 54
Calls
Call 1
Inputs
(cbrt.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 3/2))
(pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 3/2)
(*.f64 1/2 (cbrt.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 3/2)))
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 (/.f64 im (sqrt.f64 re)) (cbrt.f64 (pow.f64 -1 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 im (sqrt.f64 re)) (pow.f64 (pow.f64 -1 3/2) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 im (sqrt.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 im (sqrt.f64 re))) (cbrt.f64 (*.f64 (/.f64 im re) im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (/.f64 im re) im)) (cbrt.f64 (/.f64 im (sqrt.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 -1) (/.f64 im (sqrt.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 im (sqrt.f64 re))) (sqrt.f64 (/.f64 im (sqrt.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 (/.f64 im re) im)) 2)) (sqrt.f64 (cbrt.f64 (*.f64 (/.f64 im re) im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (/.f64 im (sqrt.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (*.f64 (/.f64 im re) im) 3/4) 1/3) (pow.f64 (pow.f64 (*.f64 (/.f64 im re) im) 3/4) 1/3))))) (#(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 (pow.f64 (/.f64 im (sqrt.f64 re)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 im (sqrt.f64 re)) 1)))) (#(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 sqrt.f64 (*.f64 (/.f64 im re) im))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (/.f64 im (sqrt.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 im (sqrt.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x 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 (pow.f64 (*.f64 (/.f64 im re) im) 3/2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 im re) im) (cbrt.f64 (pow.f64 (*.f64 (/.f64 im re) im) 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (/.f64 im re) im) 3/2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (/.f64 im re) im) 3/2) (pow.f64 -1 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (*.f64 (/.f64 im re) im) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (*.f64 (/.f64 im re) im) 3/2)) (*.f64 (/.f64 im re) im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 -1 3/2) (pow.f64 (*.f64 (/.f64 im re) im) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (/.f64 im re) im) 3/4) (pow.f64 (*.f64 (/.f64 im re) im) 3/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 im im) 3/2) (pow.f64 (/.f64 1 re) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 3/2) (pow.f64 (*.f64 (/.f64 im re) im) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 (/.f64 im re) im)) 2) 3/2) (pow.f64 (cbrt.f64 (*.f64 (/.f64 im re) im)) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 im (sqrt.f64 re)) 3/2) (pow.f64 (/.f64 im (sqrt.f64 re)) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (/.f64 im re) im) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (*.f64 (/.f64 im re) im) 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (*.f64 (/.f64 im re) im) 3/2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (*.f64 (/.f64 im re) im) 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (*.f64 (/.f64 im re) im) 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 3/2 (log.f64 (*.f64 (/.f64 im re) im))))))))
((#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 1/2 (cbrt.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 3/2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (*.f64 1/2 (cbrt.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 3/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (*.f64 (*.f64 1/2 (cbrt.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 3/2))) (*.f64 1/2 (cbrt.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 3/2)))) (*.f64 1/2 (cbrt.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 3/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 1/2 (cbrt.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 3/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 1/2 (cbrt.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 3/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 1/2 (cbrt.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 3/2)))))))))

simplify89.0ms (1%)

Algorithm
egg-herbie
Rules
619×exp-sum_binary64
540×fma-neg_binary64
472×fma-def_binary64
381×times-frac_binary64
247×exp-diff_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
053788
1129788
2346692
3883668
42165668
55784668
Stop Event
node limit
Counts
102 → 69
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))))
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(exp.f64 (*.f64 3/2 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(exp.f64 (*.f64 3/2 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(exp.f64 (*.f64 3/2 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(exp.f64 (*.f64 3/2 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(exp.f64 (*.f64 3/2 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 3/2 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 3/2 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re)))))
(exp.f64 (*.f64 3/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
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 -1) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(neg.f64 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (neg.f64 (sqrt.f64 -1)) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 -1) (neg.f64 (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (sqrt.f64 -1) (*.f64 im (neg.f64 (sqrt.f64 (/.f64 1 re)))))
(*.f64 -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 (neg.f64 (sqrt.f64 -1)) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 -1) (neg.f64 (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (sqrt.f64 -1) (*.f64 im (neg.f64 (sqrt.f64 (/.f64 1 re)))))
(*.f64 -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 (neg.f64 (sqrt.f64 -1)) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 -1) (neg.f64 (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (sqrt.f64 -1) (*.f64 im (neg.f64 (sqrt.f64 (/.f64 1 re)))))
(*.f64 -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 (neg.f64 (sqrt.f64 -1)) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 -1) (neg.f64 (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (sqrt.f64 -1) (*.f64 im (neg.f64 (sqrt.f64 (/.f64 1 re)))))
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 3/2) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) 3/2) (pow.f64 im 3))
(pow.f64 (/.f64 (*.f64 im (neg.f64 im)) re) 3/2)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 3/2)
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 3/2) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) 3/2) (pow.f64 im 3))
(pow.f64 (/.f64 (*.f64 im (neg.f64 im)) re) 3/2)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 3/2)
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 3/2) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) 3/2) (pow.f64 im 3))
(pow.f64 (/.f64 (*.f64 im (neg.f64 im)) re) 3/2)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 3/2)
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 3/2) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) 3/2) (pow.f64 im 3))
(pow.f64 (/.f64 (*.f64 im (neg.f64 im)) re) 3/2)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 3/2)
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 3/2) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) 3/2) (pow.f64 im 3))
(pow.f64 (/.f64 (*.f64 im (neg.f64 im)) re) 3/2)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 3/2)
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 3/2) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) 3/2) (pow.f64 im 3))
(pow.f64 (/.f64 (*.f64 im (neg.f64 im)) re) 3/2)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 3/2)
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 3/2) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) 3/2) (pow.f64 im 3))
(pow.f64 (/.f64 (*.f64 im (neg.f64 im)) re) 3/2)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 3/2)
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 3/2) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) 3/2) (pow.f64 im 3))
(pow.f64 (/.f64 (*.f64 im (neg.f64 im)) re) 3/2)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 3/2)
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 3/2) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) 3/2) (pow.f64 im 3))
(pow.f64 (/.f64 (*.f64 im (neg.f64 im)) re) 3/2)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 3/2)
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 3/2) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) 3/2) (pow.f64 im 3))
(pow.f64 (/.f64 (*.f64 im (neg.f64 im)) re) 3/2)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 3/2)
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 3/2) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) 3/2) (pow.f64 im 3))
(pow.f64 (/.f64 (*.f64 im (neg.f64 im)) re) 3/2)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 3/2)
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -2 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 3/2) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) 3/2) (pow.f64 im 3))
(pow.f64 (/.f64 (*.f64 im (neg.f64 im)) re) 3/2)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 3/2)
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(pow.f64 (exp.f64 3/2) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) 3/2) (pow.f64 im 3))
(pow.f64 (/.f64 (*.f64 im (neg.f64 im)) re) 3/2)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 3/2)
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(pow.f64 (exp.f64 3/2) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) 3/2) (pow.f64 im 3))
(pow.f64 (/.f64 (*.f64 im (neg.f64 im)) re) 3/2)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 3/2)
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(pow.f64 (exp.f64 3/2) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) 3/2) (pow.f64 im 3))
(pow.f64 (/.f64 (*.f64 im (neg.f64 im)) re) 3/2)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 3/2)
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -1 (log.f64 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(pow.f64 (exp.f64 3/2) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) 3/2) (pow.f64 im 3))
(pow.f64 (/.f64 (*.f64 im (neg.f64 im)) re) 3/2)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 3/2)
(exp.f64 (*.f64 3/2 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(pow.f64 (exp.f64 3/2) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) 3/2) (pow.f64 im 3))
(pow.f64 (/.f64 (*.f64 im (neg.f64 im)) re) 3/2)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 3/2)
(exp.f64 (*.f64 3/2 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(pow.f64 (exp.f64 3/2) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) 3/2) (pow.f64 im 3))
(pow.f64 (/.f64 (*.f64 im (neg.f64 im)) re) 3/2)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 3/2)
(exp.f64 (*.f64 3/2 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(pow.f64 (exp.f64 3/2) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) 3/2) (pow.f64 im 3))
(pow.f64 (/.f64 (*.f64 im (neg.f64 im)) re) 3/2)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 3/2)
(exp.f64 (*.f64 3/2 (+.f64 (log.f64 (/.f64 1 re)) (log.f64 (*.f64 -1 (pow.f64 im 2))))))
(pow.f64 (exp.f64 3/2) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) 3/2) (pow.f64 im 3))
(pow.f64 (/.f64 (*.f64 im (neg.f64 im)) re) 3/2)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 3/2)
(exp.f64 (*.f64 3/2 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 3/2) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) 3/2) (pow.f64 im 3))
(pow.f64 (/.f64 (*.f64 im (neg.f64 im)) re) 3/2)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 3/2)
(exp.f64 (*.f64 3/2 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 3/2) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) 3/2) (pow.f64 im 3))
(pow.f64 (/.f64 (*.f64 im (neg.f64 im)) re) 3/2)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 3/2)
(exp.f64 (*.f64 3/2 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 3/2) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) 3/2) (pow.f64 im 3))
(pow.f64 (/.f64 (*.f64 im (neg.f64 im)) re) 3/2)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 3/2)
(exp.f64 (*.f64 3/2 (+.f64 (log.f64 (pow.f64 im 2)) (log.f64 (/.f64 -1 re)))))
(pow.f64 (exp.f64 3/2) (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re))))
(*.f64 (pow.f64 (/.f64 -1 re) 3/2) (pow.f64 im 3))
(pow.f64 (/.f64 (*.f64 im (neg.f64 im)) re) 3/2)
(pow.f64 (*.f64 (neg.f64 im) (/.f64 im re)) 3/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 1/2 im) (sqrt.f64 -1)))
(*.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 1/2 im) (sqrt.f64 -1)))
(*.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 1/2 im) (sqrt.f64 -1)))
(*.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 1/2 im) (sqrt.f64 -1)))
(*.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 1/2 im) (sqrt.f64 -1)))
(*.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 1/2 im) (sqrt.f64 -1)))
(*.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 1/2 im) (sqrt.f64 -1)))
(*.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 1/2 im) (sqrt.f64 -1)))
(*.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 -1) (*.f64 (*.f64 im (sqrt.f64 (/.f64 1 re))) -1/2))
(*.f64 (sqrt.f64 -1) (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) -1/2)))
(*.f64 im (*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) -1/2)))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) -1/2)))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))) -1/2)
(*.f64 (sqrt.f64 -1) (*.f64 (*.f64 im (sqrt.f64 (/.f64 1 re))) -1/2))
(*.f64 (sqrt.f64 -1) (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) -1/2)))
(*.f64 im (*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) -1/2)))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) -1/2)))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))) -1/2)
(*.f64 (sqrt.f64 -1) (*.f64 (*.f64 im (sqrt.f64 (/.f64 1 re))) -1/2))
(*.f64 (sqrt.f64 -1) (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) -1/2)))
(*.f64 im (*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) -1/2)))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) -1/2)))
(*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (*.f64 (sqrt.f64 -1) im) (sqrt.f64 (/.f64 1 re))) -1/2)
(*.f64 (sqrt.f64 -1) (*.f64 (*.f64 im (sqrt.f64 (/.f64 1 re))) -1/2))
(*.f64 (sqrt.f64 -1) (*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) -1/2)))
(*.f64 im (*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 (/.f64 1 re)) -1/2)))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -1) -1/2)))

localize46.0ms (0.5%)

Local error

Found 4 expressions with local error:

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

Compiled 56 to 28 computations (50% saved)

series243.0ms (2.8%)

Counts
3 → 60
Calls

18 calls:

TimeVariablePointExpression
59.0ms
im
@0
(pow.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 2) 1/4)
56.0ms
im
@0
(*.f64 1/2 (pow.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 2) 1/4))
45.0ms
re
@0
(*.f64 1/2 (pow.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 2) 1/4))
29.0ms
re
@0
(pow.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 2) 1/4)
16.0ms
im
@inf
(pow.f64 (pow.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 2) 1/4)

rewrite95.0ms (1.1%)

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

Useful iterations: 2 (0.0ms)

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

simplify83.0ms (1%)

Algorithm
egg-herbie
Rules
552×associate-/l*_binary64
512×unswap-sqr_binary64
409×fma-neg_binary64
321×distribute-rgt-in_binary64
259×distribute-lft-in_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
056888
1141816
2364552
3946492
42623492
Stop Event
node limit
Counts
175 → 126
Calls
Call 1
Inputs
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 (/.f64 1 (pow.f64 re 2))) (*.f64 4 (log.f64 im)))))
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 (/.f64 1 (pow.f64 re 2))) (*.f64 4 (log.f64 im)))))
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 (/.f64 1 (pow.f64 re 2))) (*.f64 4 (log.f64 im)))))
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 (/.f64 1 (pow.f64 re 2))) (*.f64 4 (log.f64 im)))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -4 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 1 (pow.f64 re 2))))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -4 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 1 (pow.f64 re 2))))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -4 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 1 (pow.f64 re 2))))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -4 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 1 (pow.f64 re 2))))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -4 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 1 (pow.f64 re 2))))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -4 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 1 (pow.f64 re 2))))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -4 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 1 (pow.f64 re 2))))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -4 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 1 (pow.f64 re 2))))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -2 (log.f64 re)) (log.f64 (pow.f64 im 4)))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -2 (log.f64 re)) (log.f64 (pow.f64 im 4)))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -2 (log.f64 re)) (log.f64 (pow.f64 im 4)))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -2 (log.f64 re)) (log.f64 (pow.f64 im 4)))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 2 (log.f64 (/.f64 1 re))) (log.f64 (pow.f64 im 4)))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 2 (log.f64 (/.f64 1 re))) (log.f64 (pow.f64 im 4)))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 2 (log.f64 (/.f64 1 re))) (log.f64 (pow.f64 im 4)))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 2 (log.f64 (/.f64 1 re))) (log.f64 (pow.f64 im 4)))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 2 (log.f64 (/.f64 -1 re))) (log.f64 (pow.f64 im 4)))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 2 (log.f64 (/.f64 -1 re))) (log.f64 (pow.f64 im 4)))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 2 (log.f64 (/.f64 -1 re))) (log.f64 (pow.f64 im 4)))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 2 (log.f64 (/.f64 -1 re))) (log.f64 (pow.f64 im 4)))))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
Outputs
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 (/.f64 1 (pow.f64 re 2))) (*.f64 4 (log.f64 im)))))
(pow.f64 (exp.f64 1/4) (+.f64 (neg.f64 (log.f64 (*.f64 re re))) (*.f64 4 (log.f64 im))))
(exp.f64 (+.f64 (*.f64 1 (log.f64 im)) (*.f64 (neg.f64 (log.f64 re)) 1/2)))
(*.f64 im (pow.f64 re -1/2))
(/.f64 im (sqrt.f64 re))
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 (/.f64 1 (pow.f64 re 2))) (*.f64 4 (log.f64 im)))))
(pow.f64 (exp.f64 1/4) (+.f64 (neg.f64 (log.f64 (*.f64 re re))) (*.f64 4 (log.f64 im))))
(exp.f64 (+.f64 (*.f64 1 (log.f64 im)) (*.f64 (neg.f64 (log.f64 re)) 1/2)))
(*.f64 im (pow.f64 re -1/2))
(/.f64 im (sqrt.f64 re))
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 (/.f64 1 (pow.f64 re 2))) (*.f64 4 (log.f64 im)))))
(pow.f64 (exp.f64 1/4) (+.f64 (neg.f64 (log.f64 (*.f64 re re))) (*.f64 4 (log.f64 im))))
(exp.f64 (+.f64 (*.f64 1 (log.f64 im)) (*.f64 (neg.f64 (log.f64 re)) 1/2)))
(*.f64 im (pow.f64 re -1/2))
(/.f64 im (sqrt.f64 re))
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 (/.f64 1 (pow.f64 re 2))) (*.f64 4 (log.f64 im)))))
(pow.f64 (exp.f64 1/4) (+.f64 (neg.f64 (log.f64 (*.f64 re re))) (*.f64 4 (log.f64 im))))
(exp.f64 (+.f64 (*.f64 1 (log.f64 im)) (*.f64 (neg.f64 (log.f64 re)) 1/2)))
(*.f64 im (pow.f64 re -1/2))
(/.f64 im (sqrt.f64 re))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -4 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 1 (pow.f64 re 2))))))
(pow.f64 (exp.f64 1/4) (+.f64 (neg.f64 (log.f64 (*.f64 re re))) (*.f64 4 (log.f64 im))))
(exp.f64 (+.f64 (*.f64 1 (log.f64 im)) (*.f64 (neg.f64 (log.f64 re)) 1/2)))
(*.f64 im (pow.f64 re -1/2))
(/.f64 im (sqrt.f64 re))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -4 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 1 (pow.f64 re 2))))))
(pow.f64 (exp.f64 1/4) (+.f64 (neg.f64 (log.f64 (*.f64 re re))) (*.f64 4 (log.f64 im))))
(exp.f64 (+.f64 (*.f64 1 (log.f64 im)) (*.f64 (neg.f64 (log.f64 re)) 1/2)))
(*.f64 im (pow.f64 re -1/2))
(/.f64 im (sqrt.f64 re))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -4 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 1 (pow.f64 re 2))))))
(pow.f64 (exp.f64 1/4) (+.f64 (neg.f64 (log.f64 (*.f64 re re))) (*.f64 4 (log.f64 im))))
(exp.f64 (+.f64 (*.f64 1 (log.f64 im)) (*.f64 (neg.f64 (log.f64 re)) 1/2)))
(*.f64 im (pow.f64 re -1/2))
(/.f64 im (sqrt.f64 re))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -4 (log.f64 (/.f64 1 im))) (log.f64 (/.f64 1 (pow.f64 re 2))))))
(pow.f64 (exp.f64 1/4) (+.f64 (neg.f64 (log.f64 (*.f64 re re))) (*.f64 4 (log.f64 im))))
(exp.f64 (+.f64 (*.f64 1 (log.f64 im)) (*.f64 (neg.f64 (log.f64 re)) 1/2)))
(*.f64 im (pow.f64 re -1/2))
(/.f64 im (sqrt.f64 re))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -4 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 1 (pow.f64 re 2))))))
(pow.f64 (exp.f64 1/4) (+.f64 (neg.f64 (log.f64 (*.f64 re re))) (*.f64 4 (log.f64 im))))
(exp.f64 (+.f64 (*.f64 1 (log.f64 im)) (*.f64 (neg.f64 (log.f64 re)) 1/2)))
(*.f64 im (pow.f64 re -1/2))
(/.f64 im (sqrt.f64 re))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -4 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 1 (pow.f64 re 2))))))
(pow.f64 (exp.f64 1/4) (+.f64 (neg.f64 (log.f64 (*.f64 re re))) (*.f64 4 (log.f64 im))))
(exp.f64 (+.f64 (*.f64 1 (log.f64 im)) (*.f64 (neg.f64 (log.f64 re)) 1/2)))
(*.f64 im (pow.f64 re -1/2))
(/.f64 im (sqrt.f64 re))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -4 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 1 (pow.f64 re 2))))))
(pow.f64 (exp.f64 1/4) (+.f64 (neg.f64 (log.f64 (*.f64 re re))) (*.f64 4 (log.f64 im))))
(exp.f64 (+.f64 (*.f64 1 (log.f64 im)) (*.f64 (neg.f64 (log.f64 re)) 1/2)))
(*.f64 im (pow.f64 re -1/2))
(/.f64 im (sqrt.f64 re))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -4 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 1 (pow.f64 re 2))))))
(pow.f64 (exp.f64 1/4) (+.f64 (neg.f64 (log.f64 (*.f64 re re))) (*.f64 4 (log.f64 im))))
(exp.f64 (+.f64 (*.f64 1 (log.f64 im)) (*.f64 (neg.f64 (log.f64 re)) 1/2)))
(*.f64 im (pow.f64 re -1/2))
(/.f64 im (sqrt.f64 re))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -2 (log.f64 re)) (log.f64 (pow.f64 im 4)))))
(pow.f64 (exp.f64 1/4) (+.f64 (neg.f64 (log.f64 (*.f64 re re))) (*.f64 4 (log.f64 im))))
(exp.f64 (+.f64 (*.f64 1 (log.f64 im)) (*.f64 (neg.f64 (log.f64 re)) 1/2)))
(*.f64 im (pow.f64 re -1/2))
(/.f64 im (sqrt.f64 re))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -2 (log.f64 re)) (log.f64 (pow.f64 im 4)))))
(pow.f64 (exp.f64 1/4) (+.f64 (neg.f64 (log.f64 (*.f64 re re))) (*.f64 4 (log.f64 im))))
(exp.f64 (+.f64 (*.f64 1 (log.f64 im)) (*.f64 (neg.f64 (log.f64 re)) 1/2)))
(*.f64 im (pow.f64 re -1/2))
(/.f64 im (sqrt.f64 re))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -2 (log.f64 re)) (log.f64 (pow.f64 im 4)))))
(pow.f64 (exp.f64 1/4) (+.f64 (neg.f64 (log.f64 (*.f64 re re))) (*.f64 4 (log.f64 im))))
(exp.f64 (+.f64 (*.f64 1 (log.f64 im)) (*.f64 (neg.f64 (log.f64 re)) 1/2)))
(*.f64 im (pow.f64 re -1/2))
(/.f64 im (sqrt.f64 re))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -2 (log.f64 re)) (log.f64 (pow.f64 im 4)))))
(pow.f64 (exp.f64 1/4) (+.f64 (neg.f64 (log.f64 (*.f64 re re))) (*.f64 4 (log.f64 im))))
(exp.f64 (+.f64 (*.f64 1 (log.f64 im)) (*.f64 (neg.f64 (log.f64 re)) 1/2)))
(*.f64 im (pow.f64 re -1/2))
(/.f64 im (sqrt.f64 re))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 2 (log.f64 (/.f64 1 re))) (log.f64 (pow.f64 im 4)))))
(pow.f64 (exp.f64 1/4) (+.f64 (neg.f64 (log.f64 (*.f64 re re))) (*.f64 4 (log.f64 im))))
(exp.f64 (+.f64 (*.f64 1 (log.f64 im)) (*.f64 (neg.f64 (log.f64 re)) 1/2)))
(*.f64 im (pow.f64 re -1/2))
(/.f64 im (sqrt.f64 re))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 2 (log.f64 (/.f64 1 re))) (log.f64 (pow.f64 im 4)))))
(pow.f64 (exp.f64 1/4) (+.f64 (neg.f64 (log.f64 (*.f64 re re))) (*.f64 4 (log.f64 im))))
(exp.f64 (+.f64 (*.f64 1 (log.f64 im)) (*.f64 (neg.f64 (log.f64 re)) 1/2)))
(*.f64 im (pow.f64 re -1/2))
(/.f64 im (sqrt.f64 re))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 2 (log.f64 (/.f64 1 re))) (log.f64 (pow.f64 im 4)))))
(pow.f64 (exp.f64 1/4) (+.f64 (neg.f64 (log.f64 (*.f64 re re))) (*.f64 4 (log.f64 im))))
(exp.f64 (+.f64 (*.f64 1 (log.f64 im)) (*.f64 (neg.f64 (log.f64 re)) 1/2)))
(*.f64 im (pow.f64 re -1/2))
(/.f64 im (sqrt.f64 re))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 2 (log.f64 (/.f64 1 re))) (log.f64 (pow.f64 im 4)))))
(pow.f64 (exp.f64 1/4) (+.f64 (neg.f64 (log.f64 (*.f64 re re))) (*.f64 4 (log.f64 im))))
(exp.f64 (+.f64 (*.f64 1 (log.f64 im)) (*.f64 (neg.f64 (log.f64 re)) 1/2)))
(*.f64 im (pow.f64 re -1/2))
(/.f64 im (sqrt.f64 re))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 2 (log.f64 (/.f64 -1 re))) (log.f64 (pow.f64 im 4)))))
(pow.f64 (exp.f64 1/4) (+.f64 (neg.f64 (log.f64 (*.f64 re re))) (*.f64 4 (log.f64 im))))
(exp.f64 (+.f64 (*.f64 1 (log.f64 im)) (*.f64 (neg.f64 (log.f64 re)) 1/2)))
(*.f64 im (pow.f64 re -1/2))
(/.f64 im (sqrt.f64 re))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 2 (log.f64 (/.f64 -1 re))) (log.f64 (pow.f64 im 4)))))
(pow.f64 (exp.f64 1/4) (+.f64 (neg.f64 (log.f64 (*.f64 re re))) (*.f64 4 (log.f64 im))))
(exp.f64 (+.f64 (*.f64 1 (log.f64 im)) (*.f64 (neg.f64 (log.f64 re)) 1/2)))
(*.f64 im (pow.f64 re -1/2))
(/.f64 im (sqrt.f64 re))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 2 (log.f64 (/.f64 -1 re))) (log.f64 (pow.f64 im 4)))))
(pow.f64 (exp.f64 1/4) (+.f64 (neg.f64 (log.f64 (*.f64 re re))) (*.f64 4 (log.f64 im))))
(exp.f64 (+.f64 (*.f64 1 (log.f64 im)) (*.f64 (neg.f64 (log.f64 re)) 1/2)))
(*.f64 im (pow.f64 re -1/2))
(/.f64 im (sqrt.f64 re))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 2 (log.f64 (/.f64 -1 re))) (log.f64 (pow.f64 im 4)))))
(pow.f64 (exp.f64 1/4) (+.f64 (neg.f64 (log.f64 (*.f64 re re))) (*.f64 4 (log.f64 im))))
(exp.f64 (+.f64 (*.f64 1 (log.f64 im)) (*.f64 (neg.f64 (log.f64 re)) 1/2)))
(*.f64 im (pow.f64 re -1/2))
(/.f64 im (sqrt.f64 re))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (*.f64 re re))
(*.f64 (pow.f64 im 4) (pow.f64 re -2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (*.f64 re re))
(*.f64 (pow.f64 im 4) (pow.f64 re -2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (*.f64 re re))
(*.f64 (pow.f64 im 4) (pow.f64 re -2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (*.f64 re re))
(*.f64 (pow.f64 im 4) (pow.f64 re -2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (*.f64 re re))
(*.f64 (pow.f64 im 4) (pow.f64 re -2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (*.f64 re re))
(*.f64 (pow.f64 im 4) (pow.f64 re -2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (*.f64 re re))
(*.f64 (pow.f64 im 4) (pow.f64 re -2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (*.f64 re re))
(*.f64 (pow.f64 im 4) (pow.f64 re -2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (*.f64 re re))
(*.f64 (pow.f64 im 4) (pow.f64 re -2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (*.f64 re re))
(*.f64 (pow.f64 im 4) (pow.f64 re -2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (*.f64 re re))
(*.f64 (pow.f64 im 4) (pow.f64 re -2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (*.f64 re re))
(*.f64 (pow.f64 im 4) (pow.f64 re -2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (*.f64 re re))
(*.f64 (pow.f64 im 4) (pow.f64 re -2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (*.f64 re re))
(*.f64 (pow.f64 im 4) (pow.f64 re -2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (*.f64 re re))
(*.f64 (pow.f64 im 4) (pow.f64 re -2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (*.f64 re re))
(*.f64 (pow.f64 im 4) (pow.f64 re -2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (*.f64 re re))
(*.f64 (pow.f64 im 4) (pow.f64 re -2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (*.f64 re re))
(*.f64 (pow.f64 im 4) (pow.f64 re -2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (*.f64 re re))
(*.f64 (pow.f64 im 4) (pow.f64 re -2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (*.f64 re re))
(*.f64 (pow.f64 im 4) (pow.f64 re -2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (*.f64 re re))
(*.f64 (pow.f64 im 4) (pow.f64 re -2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (*.f64 re re))
(*.f64 (pow.f64 im 4) (pow.f64 re -2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (*.f64 re re))
(*.f64 (pow.f64 im 4) (pow.f64 re -2))
(/.f64 (pow.f64 im 4) (pow.f64 re 2))
(/.f64 (pow.f64 im 4) (*.f64 re re))
(*.f64 (pow.f64 im 4) (pow.f64 re -2))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 1/2 (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im 1/2))
(*.f64 im (*.f64 1/2 (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (/.f64 im (sqrt.f64 re)))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 1/2 (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im 1/2))
(*.f64 im (*.f64 1/2 (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (/.f64 im (sqrt.f64 re)))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 1/2 (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im 1/2))
(*.f64 im (*.f64 1/2 (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (/.f64 im (sqrt.f64 re)))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 1/2 (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im 1/2))
(*.f64 im (*.f64 1/2 (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (/.f64 im (sqrt.f64 re)))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 1/2 (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im 1/2))
(*.f64 im (*.f64 1/2 (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (/.f64 im (sqrt.f64 re)))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 1/2 (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im 1/2))
(*.f64 im (*.f64 1/2 (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (/.f64 im (sqrt.f64 re)))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 1/2 (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im 1/2))
(*.f64 im (*.f64 1/2 (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (/.f64 im (sqrt.f64 re)))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 1/2 (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im 1/2))
(*.f64 im (*.f64 1/2 (sqrt.f64 (/.f64 1 re))))
(*.f64 1/2 (/.f64 im (sqrt.f64 re)))
(*.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 (*.f64 im (sqrt.f64 (/.f64 1 re))) -1/2)
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im -1/2))
(*.f64 -1/2 (/.f64 im (sqrt.f64 re)))
(*.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 (*.f64 im (sqrt.f64 (/.f64 1 re))) -1/2)
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im -1/2))
(*.f64 -1/2 (/.f64 im (sqrt.f64 re)))
(*.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 (*.f64 im (sqrt.f64 (/.f64 1 re))) -1/2)
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im -1/2))
(*.f64 -1/2 (/.f64 im (sqrt.f64 re)))
(*.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 (*.f64 im (sqrt.f64 (/.f64 1 re))) -1/2)
(*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im -1/2))
(*.f64 -1/2 (/.f64 im (sqrt.f64 re)))

eval278.0ms (3.2%)

Compiler

Compiled 7751 to 4618 computations (40.4% saved)

prune186.0ms (2.1%)

Pruning

20 alts after pruning (12 fresh and 8 done)

PrunedKeptTotal
New55912571
Fresh101
Picked101
Done4812
Total56520585
Error
1.7b
Counts
585 → 20
Alt Table
Click to see full alt table
StatusErrorProgram
49.2b
(*.f64 1/2 (*.f64 2 (sqrt.f64 re)))
52.8b
(*.f64 1/2 (sqrt.f64 (/.f64 (*.f64 im im) (neg.f64 re))))
60.5b
(*.f64 1/2 (sqrt.f64 (/.f64 (*.f64 im im) re)))
57.8b
(*.f64 1/2 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -4 (log.f64 (/.f64 -1 im))) (log.f64 (/.f64 1 (pow.f64 re 2)))))))
44.4b
(*.f64 1/2 (*.f64 (sqrt.f64 (+.f64 re im)) (sqrt.f64 2)))
49.8b
(*.f64 1/2 (pow.f64 (pow.f64 (*.f64 (*.f64 im (/.f64 im re)) -1) 1/4) 2))
59.0b
(*.f64 1/2 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 (/.f64 1 (pow.f64 re 2))) (*.f64 4 (log.f64 im))))))
46.4b
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
49.7b
(*.f64 1/2 (sqrt.f64 (neg.f64 (/.f64 im (/.f64 re im)))))
16.4b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))
63.0b
(*.f64 -1/2 (/.f64 im (sqrt.f64 re)))
50.6b
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (sqrt.f64 (*.f64 (*.f64 im (/.f64 im re)) -1)) 1/2))) 3))
58.3b
(*.f64 1/2 (pow.f64 (/.f64 (pow.f64 im 4) (*.f64 re re)) 1/4))
49.6b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (-.f64 (*.f64 (/.f64 re im) (*.f64 re -1/2)) im)))))
47.5b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 re im))))
54.9b
(*.f64 1/2 (pow.f64 (/.f64 (*.f64 (*.f64 (/.f64 im re) im) im) (/.f64 re im)) 1/4))
49.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im))))
50.0b
(pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 (*.f64 (*.f64 im (/.f64 im re)) -1)) 1/2)) 3)
44.2b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
50.5b
(*.f64 1/2 (exp.f64 (*.f64 (log.f64 (*.f64 (*.f64 im (/.f64 im re)) -1)) 1/2)))
Compiler

Compiled 256 to 203 computations (20.7% saved)

regimes284.0ms (3.3%)

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

8 calls:

53.0ms
re
36.0ms
(sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)))
36.0ms
(*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))
35.0ms
(+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)
33.0ms
im
Results
ErrorSegmentsBranch
10.1b2re
16.4b1im
12.5b2(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))))
12.5b2(sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)))
12.9b2(*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))
12.9b2(+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)
16.4b1(*.f64 im im)
16.4b1(*.f64 im im)
Compiler

Compiled 432 to 284 computations (34.3% saved)

bsearch107.0ms (1.2%)

Algorithm
binary-search
Steps
TimeLeftRight
106.0ms
-1.3241244587292707e+72
-1.1438527055964837e+71
Compiler

Compiled 22 to 16 computations (27.3% saved)

regimes194.0ms (2.2%)

Counts
18 → 5
Calls
Call 1
Inputs
(*.f64 -1/2 (/.f64 im (sqrt.f64 re)))
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
(*.f64 1/2 (*.f64 2 (sqrt.f64 re)))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im))))
(*.f64 1/2 (sqrt.f64 (/.f64 (*.f64 im im) re)))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 re im))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
(*.f64 1/2 (sqrt.f64 (/.f64 (*.f64 im im) (neg.f64 re))))
(*.f64 1/2 (sqrt.f64 (neg.f64 (/.f64 im (/.f64 re im)))))
(*.f64 1/2 (sqrt.f64 (*.f64 (neg.f64 im) (/.f64 im re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (neg.f64 re)))))
(sqrt.f64 (*.f64 (*.f64 (/.f64 (*.f64 im im) re) -1) 1/4))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (/.f64 im (/.f64 re im)) -1/2))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (*.f64 (/.f64 im re) im) -1/2))))
(*.f64 1/2 (pow.f64 (/.f64 (*.f64 (*.f64 (/.f64 im re) im) im) (/.f64 re im)) 1/4))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (-.f64 (*.f64 (/.f64 re im) (*.f64 re -1/2)) im)))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (-.f64 (/.f64 (*.f64 re (*.f64 re -1/2)) im) im)))))
(*.f64 1/2 (*.f64 (sqrt.f64 (+.f64 re im)) (sqrt.f64 2)))
Outputs
(*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im))))
(*.f64 1/2 (sqrt.f64 (neg.f64 (/.f64 im (/.f64 re im)))))
(*.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 (+.f64 re im))))
Calls

4 calls:

54.0ms
re
50.0ms
im
47.0ms
(*.f64 im im)
33.0ms
(*.f64 im im)
Results
ErrorSegmentsBranch
25.8b5re
25.1b5im
35.9b5(*.f64 im im)
35.9b5(*.f64 im im)
Compiler

Compiled 193 to 123 computations (36.3% saved)

bsearch171.0ms (2%)

Algorithm
binary-search
Steps
TimeLeftRight
51.0ms
2.754913883790876e-104
1.5455717975170276e-102
43.0ms
-5.761005633512467e-19
-7.255739429802805e-28
40.0ms
-0.00011239761238096648
-1.1396900516570558e-8
38.0ms
-2.185195176650655e+53
-8.281879119770575e+38
Compiler

Compiled 22 to 16 computations (27.3% saved)

regimes103.0ms (1.2%)

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

4 calls:

31.0ms
im
30.0ms
re
21.0ms
(*.f64 im im)
19.0ms
(*.f64 im im)
Results
ErrorSegmentsBranch
27.7b5re
25.2b5im
35.9b5(*.f64 im im)
35.9b5(*.f64 im im)
Compiler

Compiled 76 to 53 computations (30.3% saved)

bsearch172.0ms (2%)

Algorithm
binary-search
Steps
TimeLeftRight
49.0ms
2.754913883790876e-104
1.5455717975170276e-102
44.0ms
-5.761005633512467e-19
-7.255739429802805e-28
41.0ms
-0.00011239761238096648
-1.1396900516570558e-8
37.0ms
-2.185195176650655e+53
-8.281879119770575e+38
Compiler

Compiled 22 to 16 computations (27.3% saved)

regimes261.0ms (3%)

Counts
7 → 3
Calls
Call 1
Inputs
(*.f64 -1/2 (/.f64 im (sqrt.f64 re)))
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
(*.f64 1/2 (*.f64 2 (sqrt.f64 re)))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im))))
(*.f64 1/2 (sqrt.f64 (/.f64 (*.f64 im im) re)))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 re im))))
(*.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)))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))
Calls

4 calls:

211.0ms
re
21.0ms
im
14.0ms
(*.f64 im im)
13.0ms
(*.f64 im im)
Results
ErrorSegmentsBranch
31.7b8re
26.3b3im
36.9b4(*.f64 im im)
36.9b4(*.f64 im im)
Compiler

Compiled 67 to 48 computations (28.4% saved)

bsearch260.0ms (3%)

Algorithm
binary-search
Steps
TimeLeftRight
69.0ms
2.754913883790876e-104
1.5455717975170276e-102
191.0ms
-5.761005633512467e-19
-7.255739429802805e-28
Compiler

Compiled 22 to 16 computations (27.3% saved)

regimes219.0ms (2.5%)

Counts
6 → 3
Calls
Call 1
Inputs
(*.f64 -1/2 (/.f64 im (sqrt.f64 re)))
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
(*.f64 1/2 (*.f64 2 (sqrt.f64 re)))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im))))
(*.f64 1/2 (sqrt.f64 (/.f64 (*.f64 im im) re)))
(*.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)))
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
Calls

4 calls:

149.0ms
(*.f64 im im)
43.0ms
re
18.0ms
im
6.0ms
(*.f64 im im)
Results
ErrorSegmentsBranch
31.7b8re
26.6b3im
38.7b2(*.f64 im im)
38.7b2(*.f64 im im)
Compiler

Compiled 59 to 42 computations (28.8% saved)

bsearch104.0ms (1.2%)

Algorithm
binary-search
Steps
TimeLeftRight
51.0ms
2.754913883790876e-104
1.5455717975170276e-102
52.0ms
-5.761005633512467e-19
-7.255739429802805e-28
Compiler

Compiled 22 to 16 computations (27.3% saved)

regimes30.0ms (0.3%)

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

2 calls:

16.0ms
re
13.0ms
im
Results
ErrorSegmentsBranch
35.9b4re
36.8b2im
Compiler

Compiled 26 to 19 computations (26.9% saved)

bsearch82.0ms (0.9%)

Algorithm
binary-search
Steps
TimeLeftRight
35.0ms
1.4760924174228285e-33
2.0321276061706285e-31
23.0ms
5.042955651378921e-110
4.1356847190161187e-103
24.0ms
1.4553570011052963e-196
3.348753095981174e-196
Compiler

Compiled 22 to 16 computations (27.3% saved)

regimes8.0ms (0.1%)

Accuracy

Total -17.4b remaining (-37.6%)

Threshold costs -17.4b (-37.6%)

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

2 calls:

3.0ms
re
3.0ms
im
Results
ErrorSegmentsBranch
46.4b1re
46.4b1im
Compiler

Compiled 20 to 15 computations (25% saved)

simplify18.0ms (0.2%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
066354
191342
2103342
3108342
4109342
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(if (<=.f64 re -1324124458729270713666736034518330035196905535671898767934018156083806208) (*.f64 1/2 (sqrt.f64 (neg.f64 (/.f64 im (/.f64 re im))))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))))
(if (<=.f64 im -218519517665065493829607086779104991131695628578455552) (*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im)))) (if (<=.f64 im -8293479960350787/73786976294838206464) (*.f64 1/2 (sqrt.f64 (neg.f64 (/.f64 im (/.f64 re im))))) (if (<=.f64 im -5982570290577645/10384593717069655257060992658440192) (*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im)))) (if (<=.f64 im 2223086262674663/80695308690215893426747474125094121072803306025913234775958104891895238188026287332176417290004307232371974124148359168) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))))))
(if (<=.f64 im -218519517665065493829607086779104991131695628578455552) (*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im)))) (if (<=.f64 im -8293479960350787/73786976294838206464) (*.f64 1/2 (sqrt.f64 (/.f64 (*.f64 im im) (neg.f64 re)))) (if (<=.f64 im -5982570290577645/10384593717069655257060992658440192) (*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im)))) (if (<=.f64 im 2223086262674663/80695308690215893426747474125094121072803306025913234775958104891895238188026287332176417290004307232371974124148359168) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))))))
(if (<=.f64 im -5982570290577645/10384593717069655257060992658440192) (*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im)))) (if (<=.f64 im 2223086262674663/80695308690215893426747474125094121072803306025913234775958104891895238188026287332176417290004307232371974124148359168) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))))
(if (<=.f64 im -5982570290577645/10384593717069655257060992658440192) (*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im)))) (if (<=.f64 im 2223086262674663/80695308690215893426747474125094121072803306025913234775958104891895238188026287332176417290004307232371974124148359168) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (*.f64 1/2 (sqrt.f64 (*.f64 2 im)))))
(if (<=.f64 re 1531075122216749/10520271803096747014481979765760257331100679605646347718996561806137464308594161644227333072555176902453965937712356435426038864500367607726255629541303761699910447342256889196383327515768645434542586503471562752) (*.f64 1/2 (sqrt.f64 (*.f64 2 im))) (if (<=.f64 re 8534210390242693/169230328010303641331690318856389386196071598838855992136870091590247882556495704531248437872567112920983350278405979725889536) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (if (<=.f64 re 4314622969830389/2923003274661805836407369665432566039311865085952) (*.f64 1/2 (sqrt.f64 (*.f64 2 im))) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
(*.f64 -1/2 (/.f64 im (sqrt.f64 re)))
Outputs
(if (<=.f64 re -1324124458729270713666736034518330035196905535671898767934018156083806208) (*.f64 1/2 (sqrt.f64 (neg.f64 (/.f64 im (/.f64 re im))))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))))
(if (<=.f64 re -1324124458729270713666736034518330035196905535671898767934018156083806208) (*.f64 1/2 (sqrt.f64 (/.f64 (neg.f64 im) (/.f64 re im)))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))))
(if (<=.f64 im -218519517665065493829607086779104991131695628578455552) (*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im)))) (if (<=.f64 im -8293479960350787/73786976294838206464) (*.f64 1/2 (sqrt.f64 (neg.f64 (/.f64 im (/.f64 re im))))) (if (<=.f64 im -5982570290577645/10384593717069655257060992658440192) (*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im)))) (if (<=.f64 im 2223086262674663/80695308690215893426747474125094121072803306025913234775958104891895238188026287332176417290004307232371974124148359168) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))))))
(if (<=.f64 im -218519517665065493829607086779104991131695628578455552) (*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im)))) (if (<=.f64 im -8293479960350787/73786976294838206464) (*.f64 1/2 (sqrt.f64 (/.f64 (neg.f64 im) (/.f64 re im)))) (if (<=.f64 im -5982570290577645/10384593717069655257060992658440192) (*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im)))) (if (<=.f64 im 2223086262674663/80695308690215893426747474125094121072803306025913234775958104891895238188026287332176417290004307232371974124148359168) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))))))
(if (<=.f64 im -218519517665065493829607086779104991131695628578455552) (*.f64 1/2 (sqrt.f64 (*.f64 im -2))) (if (<=.f64 im -8293479960350787/73786976294838206464) (*.f64 1/2 (sqrt.f64 (/.f64 (neg.f64 im) (/.f64 re im)))) (if (<=.f64 im -5982570290577645/10384593717069655257060992658440192) (*.f64 1/2 (sqrt.f64 (*.f64 im -2))) (if (<=.f64 im 2223086262674663/80695308690215893426747474125094121072803306025913234775958104891895238188026287332176417290004307232371974124148359168) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))))))
(if (<=.f64 im -218519517665065493829607086779104991131695628578455552) (*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im)))) (if (<=.f64 im -8293479960350787/73786976294838206464) (*.f64 1/2 (sqrt.f64 (/.f64 (*.f64 im im) (neg.f64 re)))) (if (<=.f64 im -5982570290577645/10384593717069655257060992658440192) (*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im)))) (if (<=.f64 im 2223086262674663/80695308690215893426747474125094121072803306025913234775958104891895238188026287332176417290004307232371974124148359168) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))))))
(if (<=.f64 im -218519517665065493829607086779104991131695628578455552) (*.f64 1/2 (sqrt.f64 (*.f64 im -2))) (if (<=.f64 im -8293479960350787/73786976294838206464) (*.f64 1/2 (sqrt.f64 (/.f64 (*.f64 im im) (neg.f64 re)))) (if (<=.f64 im -5982570290577645/10384593717069655257060992658440192) (*.f64 1/2 (sqrt.f64 (*.f64 im -2))) (if (<=.f64 im 2223086262674663/80695308690215893426747474125094121072803306025913234775958104891895238188026287332176417290004307232371974124148359168) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))))))
(if (<=.f64 im -5982570290577645/10384593717069655257060992658440192) (*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im)))) (if (<=.f64 im 2223086262674663/80695308690215893426747474125094121072803306025913234775958104891895238188026287332176417290004307232371974124148359168) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))))
(if (<=.f64 im -5982570290577645/10384593717069655257060992658440192) (*.f64 1/2 (sqrt.f64 (*.f64 im -2))) (if (<=.f64 im 2223086262674663/80695308690215893426747474125094121072803306025913234775958104891895238188026287332176417290004307232371974124148359168) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im))))))
(if (<=.f64 im -5982570290577645/10384593717069655257060992658440192) (*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im)))) (if (<=.f64 im 2223086262674663/80695308690215893426747474125094121072803306025913234775958104891895238188026287332176417290004307232371974124148359168) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (*.f64 1/2 (sqrt.f64 (*.f64 2 im)))))
(if (<=.f64 im -5982570290577645/10384593717069655257060992658440192) (*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im)))) (if (<=.f64 im 2223086262674663/80695308690215893426747474125094121072803306025913234775958104891895238188026287332176417290004307232371974124148359168) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (*.f64 1/2 (sqrt.f64 (*.f64 im 2)))))
(if (<=.f64 im -5982570290577645/10384593717069655257060992658440192) (*.f64 1/2 (sqrt.f64 (*.f64 im -2))) (if (<=.f64 im 2223086262674663/80695308690215893426747474125094121072803306025913234775958104891895238188026287332176417290004307232371974124148359168) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (*.f64 1/2 (sqrt.f64 (*.f64 im 2)))))
(if (<=.f64 re 1531075122216749/10520271803096747014481979765760257331100679605646347718996561806137464308594161644227333072555176902453965937712356435426038864500367607726255629541303761699910447342256889196383327515768645434542586503471562752) (*.f64 1/2 (sqrt.f64 (*.f64 2 im))) (if (<=.f64 re 8534210390242693/169230328010303641331690318856389386196071598838855992136870091590247882556495704531248437872567112920983350278405979725889536) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (if (<=.f64 re 4314622969830389/2923003274661805836407369665432566039311865085952) (*.f64 1/2 (sqrt.f64 (*.f64 2 im))) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))))))
(if (<=.f64 re 1531075122216749/10520271803096747014481979765760257331100679605646347718996561806137464308594161644227333072555176902453965937712356435426038864500367607726255629541303761699910447342256889196383327515768645434542586503471562752) (*.f64 1/2 (sqrt.f64 (*.f64 im 2))) (if (<=.f64 re 8534210390242693/169230328010303641331690318856389386196071598838855992136870091590247882556495704531248437872567112920983350278405979725889536) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))) (if (<=.f64 re 4314622969830389/2923003274661805836407369665432566039311865085952) (*.f64 1/2 (sqrt.f64 (*.f64 im 2))) (*.f64 1/2 (*.f64 2 (sqrt.f64 re))))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
(*.f64 1/2 (sqrt.f64 (*.f64 im 2)))
(*.f64 -1/2 (/.f64 im (sqrt.f64 re)))
Compiler

Compiled 243 to 190 computations (21.8% saved)

soundness390.0ms (4.5%)

Algorithm
egg-herbie
Rules
983×fma-def_binary64
735×fma-def_binary64
661×associate-*r*_binary64
609×associate-*l*_binary64
537×associate-*l*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01315
12515
23415
33615
01501391
14511326
214251270
365911270
019764
143764
2114764
3300764
4711764
52202764
63723764
76191764
01315
12515
23415
33615
Stop Event
saturated
node limit
node limit
saturated
Compiler

Compiled 190 to 135 computations (28.9% saved)

end156.0ms (1.8%)

Compiler

Compiled 229 to 165 computations (27.9% saved)

Profiling

Loading profile data...