Details

Time bar (total: 8.0s)

analyze229.0ms (2.9%)

Algorithm
search
Search
TrueOtherFalseIter
0%50%50%0
0%50%50%1
0%50%50%2
0%50%50%3
6.2%43.7%50%4
12.5%37.5%50%5
18.7%31.2%50%6
23.4%26.5%50%7
27.3%22.6%50%8
30%19.9%50%9
32.2%17.8%50%10
33.7%16.3%50%11
34.8%15.2%50%12
Compiler

Compiled 20 to 14 computations (30% saved)

sample2.5s (30.7%)

Results
1.3s6440×body256valid
585.0ms535×body4096valid
339.0ms646×body2048valid
161.0ms412×body1024valid
57.0ms223×body512valid

preprocess47.0ms (0.6%)

Algorithm
egg-herbie
Rules
318×fma-def_binary64
176×fma-neg_binary64
82×distribute-rgt-in_binary64
48×distribute-lft-in_binary64
48×cancel-sign-sub-inv_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01930
13330
25130
38830
413530
518530
630530
747930
868930
984030
10109030
11125130
12128330
13128730
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 (hypot.f64 re im) re))))
(*.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 (hypot.f64 re im) im))))
Compiler

Compiled 19 to 14 computations (26.3% saved)

simplify64.0ms (0.8%)

Algorithm
egg-herbie
Rules
203×fma-def_binary64
142×fma-neg_binary64
49×distribute-rgt-in_binary64
43×cancel-sign-sub-inv_binary64
28×sub-neg_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01315
12015
23315
35315
48015
510915
618015
728615
840715
949015
1060715
1167915
1270215
1374315
1479215
1585515
1689115
1790015
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 (hypot.f64 re im) re))))

eval1.0ms (0%)

Compiler

Compiled 27 to 19 computations (29.6% saved)

prune1.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

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

Compiled 12 to 9 computations (25% saved)

localize13.0ms (0.2%)

Local error

Found 3 expressions with local error:

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

Compiled 39 to 16 computations (59% saved)

series16.0ms (0.2%)

Counts
3 → 56
Calls

18 calls:

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

rewrite297.0ms (3.7%)

Algorithm
batch-egg-rewrite
Rules
873×pow1_binary64
812×add-log-exp_binary64
811×log1p-expm1-u_binary64
811×expm1-log1p-u_binary64
794×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify53.0ms (0.7%)

Algorithm
egg-herbie
Rules
773×fma-def_binary64
701×associate-*r*_binary64
654×associate-*l*_binary64
546×times-frac_binary64
426×associate-/l*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01741552
15331509
217221462
Stop Event
node limit
Counts
130 → 149
Calls
Call 1
Inputs
im
(+.f64 (*.f64 -1 re) im)
(+.f64 (*.f64 -1 re) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im))
(+.f64 (*.f64 -1 re) (+.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 1/2 (/.f64 (pow.f64 im 2) re))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 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 -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 -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 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(*.f64 -2 re)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -2 re))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -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 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -2 re))))
(*.f64 1/2 (/.f64 (pow.f64 im 2) re))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 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 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (*.f64 1/16 (/.f64 1 (pow.f64 re 6)))) (pow.f64 im 8)) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
im
(+.f64 (*.f64 -1 re) im)
(+.f64 (*.f64 -1 re) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im))
(+.f64 (*.f64 -1 re) (+.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 -1 im)
(+.f64 (*.f64 -1 re) (*.f64 -1 im))
(+.f64 (*.f64 -1 re) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(+.f64 (*.f64 -1 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 -1 im))))
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))))
(*.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) re) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.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 (*.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 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 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))
(+.f64 (*.f64 -1/16 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re))))
(+.f64 (*.f64 -1/16 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (pow.f64 (*.f64 -1/16 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) 2)) (pow.f64 im 5))) (sqrt.f64 1/2)) (sqrt.f64 re))) (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))))
(+.f64 (*.f64 -1/16 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (*.f64 1/16 (/.f64 1 (pow.f64 re 6)))) re)) (*.f64 -1/16 (/.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (pow.f64 (*.f64 -1/16 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) 2)) (*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 re 2))))) (pow.f64 im 7))) (sqrt.f64 1/2)) (sqrt.f64 re))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (pow.f64 (*.f64 -1/16 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) 2)) (pow.f64 im 5))) (sqrt.f64 1/2)) (sqrt.f64 re))) (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re))))))
Outputs
im
(+.f64 (*.f64 -1 re) im)
(fma.f64 -1 re im)
(-.f64 im re)
(+.f64 (*.f64 -1 re) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im))
(fma.f64 -1 re (fma.f64 1/2 (/.f64 (*.f64 re re) im) im))
(-.f64 (fma.f64 1/2 (/.f64 re (/.f64 im re)) im) re)
(-.f64 (fma.f64 1/2 (*.f64 (/.f64 re im) re) im) re)
(+.f64 (*.f64 -1 re) (+.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 re (fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 (*.f64 re re) im) im)))
(-.f64 (fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 re (/.f64 im re)) im)) re)
(-.f64 (fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (*.f64 (/.f64 re im) re) im)) re)
(*.f64 1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 1/2 (/.f64 (*.f64 im im) re))
(/.f64 (*.f64 1/2 (*.f64 im im)) re)
(*.f64 (/.f64 1/2 re) (*.f64 im im))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(fma.f64 1/2 (/.f64 im (/.f64 re im)) (/.f64 (*.f64 -1/8 (pow.f64 im 4)) (pow.f64 re 3)))
(fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (*.f64 (/.f64 1/2 re) (*.f64 im im)))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 -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 -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)) (/.f64 (*.f64 1/16 (pow.f64 im 6)) (pow.f64 re 5))))
(fma.f64 1/2 (*.f64 (/.f64 im re) im) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (/.f64 1/16 (/.f64 (pow.f64 re 5) (pow.f64 im 6)))))
(+.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 -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 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 -1/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 -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)) (/.f64 -1/2 (/.f64 (pow.f64 re 7) (fma.f64 1/16 (pow.f64 im 8) (*.f64 (pow.f64 im 8) 1/64)))))))
(fma.f64 1/2 (*.f64 (/.f64 im re) im) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (*.f64 (/.f64 -1/2 (pow.f64 re 7)) (*.f64 (pow.f64 im 8) 5/64)))))
(*.f64 -2 re)
(*.f64 re -2)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -2 re))
(fma.f64 -1/2 (/.f64 (*.f64 im im) re) (*.f64 re -2))
(fma.f64 re -2 (/.f64 (*.f64 (*.f64 im im) -1/2) re))
(fma.f64 re -2 (*.f64 (*.f64 (/.f64 im re) im) -1/2))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -2 re)))
(fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 -1/2 (/.f64 (*.f64 im im) re) (*.f64 re -2)))
(fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8 (fma.f64 re -2 (/.f64 (*.f64 (*.f64 im im) -1/2) re)))
(fma.f64 re -2 (fma.f64 (*.f64 (/.f64 im re) im) -1/2 (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8)))
(+.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 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -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)) (fma.f64 -1/2 (/.f64 (*.f64 im im) re) (*.f64 re -2))))
(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 re -2 (/.f64 (*.f64 (*.f64 im im) -1/2) re))))
(fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8 (fma.f64 re -2 (fma.f64 (*.f64 (/.f64 im re) im) -1/2 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) -1/16))))
(*.f64 1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 1/2 (/.f64 (*.f64 im im) re))
(/.f64 (*.f64 1/2 (*.f64 im im)) re)
(*.f64 (/.f64 1/2 re) (*.f64 im im))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(fma.f64 1/2 (/.f64 im (/.f64 re im)) (/.f64 (*.f64 -1/8 (pow.f64 im 4)) (pow.f64 re 3)))
(fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (*.f64 (/.f64 1/2 re) (*.f64 im im)))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 -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 -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)) (/.f64 (*.f64 1/16 (pow.f64 im 6)) (pow.f64 re 5))))
(fma.f64 1/2 (*.f64 (/.f64 im re) im) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (/.f64 1/16 (/.f64 (pow.f64 re 5) (pow.f64 im 6)))))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (*.f64 1/16 (/.f64 1 (pow.f64 re 6)))) (pow.f64 im 8)) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (fma.f64 -1/2 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (/.f64 1/16 (pow.f64 re 6))) (/.f64 re (pow.f64 im 8))) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(fma.f64 1/2 (/.f64 im (/.f64 re im)) (fma.f64 -1/2 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (/.f64 1/16 (pow.f64 re 6))) (/.f64 re (pow.f64 im 8))) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (/.f64 (*.f64 1/16 (pow.f64 im 6)) (pow.f64 re 5)))))
(fma.f64 1/2 (*.f64 (/.f64 im re) im) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (/.f64 (fma.f64 -1/2 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (/.f64 -1/32 (pow.f64 re 6))) (/.f64 re (pow.f64 im 8))))))
im
(+.f64 (*.f64 -1 re) im)
(fma.f64 -1 re im)
(-.f64 im re)
(+.f64 (*.f64 -1 re) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im))
(fma.f64 -1 re (fma.f64 1/2 (/.f64 (*.f64 re re) im) im))
(-.f64 (fma.f64 1/2 (/.f64 re (/.f64 im re)) im) re)
(-.f64 (fma.f64 1/2 (*.f64 (/.f64 re im) re) im) re)
(+.f64 (*.f64 -1 re) (+.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 re (fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 (*.f64 re re) im) im)))
(-.f64 (fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 re (/.f64 im re)) im)) re)
(-.f64 (fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (*.f64 (/.f64 re im) re) im)) re)
(*.f64 -1 im)
(neg.f64 im)
(+.f64 (*.f64 -1 re) (*.f64 -1 im))
(fma.f64 -1 re (neg.f64 im))
(-.f64 (neg.f64 re) im)
(+.f64 (*.f64 -1 re) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(fma.f64 -1 re (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im)))
(-.f64 (-.f64 (/.f64 -1/2 (/.f64 im (*.f64 re re))) im) re)
(-.f64 (/.f64 (*.f64 re re) (/.f64 im -1/2)) (+.f64 im re))
(+.f64 (*.f64 -1 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 -1 im))))
(fma.f64 -1 re (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))))
(-.f64 (fma.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) 1/8 (-.f64 (/.f64 -1/2 (/.f64 im (*.f64 re re))) im)) re)
(-.f64 (fma.f64 (*.f64 (/.f64 re im) re) -1/2 (*.f64 (/.f64 1/8 (pow.f64 im 3)) (pow.f64 re 4))) (+.f64 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/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (*.f64 (/.f64 re im) re) im))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5))) im)))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 (*.f64 re re) im) (fma.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) im)))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 re (/.f64 im re)) (fma.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) im)))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (*.f64 (/.f64 re im) re) (fma.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) im)))
re
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) re)
(fma.f64 1/2 (/.f64 (*.f64 im im) re) re)
(fma.f64 1/2 (/.f64 im (/.f64 re im)) re)
(fma.f64 1/2 (*.f64 (/.f64 im re) im) re)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(+.f64 (fma.f64 1/2 (/.f64 (*.f64 im im) re) re) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(fma.f64 1/2 (/.f64 im (/.f64 re im)) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) re))
(fma.f64 1/2 (*.f64 (/.f64 im re) im) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) re))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(fma.f64 1/2 (/.f64 im (/.f64 re im)) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) re)))
(fma.f64 1/2 (*.f64 (/.f64 im re) im) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) re)))
(*.f64 -1 re)
(neg.f64 re)
(+.f64 (*.f64 -1 re) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(fma.f64 -1 re (/.f64 (*.f64 -1/2 (*.f64 im im)) re))
(-.f64 (/.f64 (*.f64 (*.f64 im im) -1/2) re) 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 -1/2 (*.f64 im im)) re)))
(-.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 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8)) 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 -1/2 (*.f64 im im)) re))))
(-.f64 (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 (/.f64 (*.f64 (*.f64 im im) -1/2) re))) 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 (pow.f64 im 6) (pow.f64 re 5)) -1/16))) re)
re
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) re)
(fma.f64 1/2 (/.f64 (*.f64 im im) re) re)
(fma.f64 1/2 (/.f64 im (/.f64 re im)) re)
(fma.f64 1/2 (*.f64 (/.f64 im re) im) re)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(+.f64 (fma.f64 1/2 (/.f64 (*.f64 im im) re) re) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(fma.f64 1/2 (/.f64 im (/.f64 re im)) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) re))
(fma.f64 1/2 (*.f64 (/.f64 im re) im) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) re))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(fma.f64 1/2 (/.f64 im (/.f64 re im)) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) re)))
(fma.f64 1/2 (*.f64 (/.f64 im re) im) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) re)))
im
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im)
(fma.f64 1/2 (/.f64 (*.f64 re re) im) im)
(fma.f64 1/2 (/.f64 re (/.f64 im re)) im)
(fma.f64 1/2 (*.f64 (/.f64 re im) re) im)
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 (*.f64 re re) im) im))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 re (/.f64 im re)) im))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (*.f64 (/.f64 re im) re) im))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5))) im)))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 (*.f64 re re) im) (fma.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) im)))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 re (/.f64 im re)) (fma.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) im)))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (*.f64 (/.f64 re im) re) (fma.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) im)))
(*.f64 -1 im)
(neg.f64 im)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(-.f64 (/.f64 -1/2 (/.f64 im (*.f64 re re))) im)
(-.f64 (/.f64 (*.f64 re re) (/.f64 im -1/2)) im)
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(fma.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im)))
(fma.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) 1/8 (-.f64 (/.f64 -1/2 (/.f64 im (*.f64 re re))) im))
(-.f64 (fma.f64 (*.f64 (/.f64 re im) re) -1/2 (*.f64 (/.f64 1/8 (pow.f64 im 3)) (pow.f64 re 4))) 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 (-.f64 (/.f64 -1/2 (/.f64 im (*.f64 re re))) im)))
(-.f64 (fma.f64 -1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) (fma.f64 (*.f64 (/.f64 re im) re) -1/2 (*.f64 (/.f64 1/8 (pow.f64 im 3)) (pow.f64 re 4)))) im)
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(+.f64 (*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
(fma.f64 -1/2 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
(fma.f64 -1/2 (*.f64 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) re) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.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))))))
(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/2 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 (*.f64 re re) (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2))) (sqrt.f64 (/.f64 1 im)))))))
(fma.f64 -1/2 (*.f64 re (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 im)))) (fma.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 re re) (*.f64 (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (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 (*.f64 -1/2 re) (sqrt.f64 2)) (*.f64 (+.f64 (/.f64 1/2 im) (*.f64 (/.f64 1 im) -1/4)) (*.f64 (*.f64 (*.f64 re re) (sqrt.f64 2)) 1/2)))))
(+.f64 (*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.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 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))))))))
(fma.f64 -1/2 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 (/.f64 1 im)))) (fma.f64 (sqrt.f64 2) (sqrt.f64 im) (fma.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 (*.f64 re re) (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2))) (sqrt.f64 (/.f64 1 im)))) (*.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 re (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 im)))) (fma.f64 (sqrt.f64 2) (sqrt.f64 im) (fma.f64 1/4 (*.f64 (sqrt.f64 2) (*.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)))))) (*.f64 (*.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 (sqrt.f64 (/.f64 1 im)) 1/2)))))
(+.f64 (*.f64 (sqrt.f64 2) (+.f64 (sqrt.f64 im) (*.f64 (pow.f64 re 3) (*.f64 (*.f64 (+.f64 (/.f64 1/2 im) (*.f64 (/.f64 1 im) -1/4)) (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) 1/4)))) (*.f64 (sqrt.f64 (/.f64 1 im)) (+.f64 (*.f64 (+.f64 (/.f64 1/2 im) (*.f64 (/.f64 1 im) -1/4)) (*.f64 (*.f64 (*.f64 re re) (sqrt.f64 2)) 1/2)) (*.f64 (*.f64 -1/2 re) (sqrt.f64 2)))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 2) (*.f64 (*.f64 im (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) (sqrt.f64 2)) (*.f64 im (sqrt.f64 1/2)))
(*.f64 im (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 re))))
(+.f64 (*.f64 -1/16 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re))))
(fma.f64 -1/16 (*.f64 (/.f64 (*.f64 (pow.f64 im 3) (sqrt.f64 2)) (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5)))) (*.f64 (sqrt.f64 2) (*.f64 (*.f64 im (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 re)))))
(fma.f64 -1/16 (/.f64 (*.f64 (pow.f64 im 3) (sqrt.f64 2)) (/.f64 (sqrt.f64 1/2) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) (*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) (sqrt.f64 2)) (*.f64 im (sqrt.f64 1/2))))
(fma.f64 -1/16 (*.f64 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/2)) (pow.f64 im 3)) (sqrt.f64 (/.f64 1 (pow.f64 re 5)))) (*.f64 im (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 re)))))
(+.f64 (*.f64 -1/16 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (pow.f64 (*.f64 -1/16 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) 2)) (pow.f64 im 5))) (sqrt.f64 1/2)) (sqrt.f64 re))) (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))))
(fma.f64 -1/16 (*.f64 (/.f64 (*.f64 (pow.f64 im 3) (sqrt.f64 2)) (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5)))) (fma.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 im 5) (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 -1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 1 (sqrt.f64 1/2)))) 2))))) (sqrt.f64 re)) (*.f64 (sqrt.f64 2) (*.f64 (*.f64 im (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 re))))))
(fma.f64 -1/16 (/.f64 (*.f64 (pow.f64 im 3) (sqrt.f64 2)) (/.f64 (sqrt.f64 1/2) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) (fma.f64 1/2 (*.f64 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/2)) (*.f64 (pow.f64 im 5) (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 -1/16 (sqrt.f64 1/2))) 2)))) (sqrt.f64 re)) (*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) (sqrt.f64 2)) (*.f64 im (sqrt.f64 1/2)))))
(fma.f64 (sqrt.f64 re) (*.f64 (/.f64 (*.f64 1/2 (sqrt.f64 2)) (/.f64 (sqrt.f64 1/2) (pow.f64 im 5))) (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 -1/16 (sqrt.f64 1/2))) 2))) (fma.f64 -1/16 (*.f64 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/2)) (pow.f64 im 3)) (sqrt.f64 (/.f64 1 (pow.f64 re 5)))) (*.f64 im (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 re))))))
(+.f64 (*.f64 -1/16 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (*.f64 1/16 (/.f64 1 (pow.f64 re 6)))) re)) (*.f64 -1/16 (/.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (pow.f64 (*.f64 -1/16 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) 2)) (*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 re 2))))) (pow.f64 im 7))) (sqrt.f64 1/2)) (sqrt.f64 re))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (pow.f64 (*.f64 -1/16 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) 2)) (pow.f64 im 5))) (sqrt.f64 1/2)) (sqrt.f64 re))) (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re))))))
(fma.f64 -1/16 (*.f64 (/.f64 (*.f64 (pow.f64 im 3) (sqrt.f64 2)) (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5)))) (fma.f64 1/2 (*.f64 (sqrt.f64 re) (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (/.f64 1/16 (pow.f64 re 6))) re)) (*.f64 1/16 (/.f64 (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 -1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 1 (sqrt.f64 1/2)))) 2)) (*.f64 (*.f64 re re) (pow.f64 (sqrt.f64 1/2) 2))))) (pow.f64 im 7))))) (fma.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 im 5) (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 -1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 1 (sqrt.f64 1/2)))) 2))))) (sqrt.f64 re)) (*.f64 (sqrt.f64 2) (*.f64 (*.f64 im (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 re)))))))
(+.f64 (*.f64 (sqrt.f64 re) (+.f64 (/.f64 (*.f64 1/2 (sqrt.f64 2)) (/.f64 (sqrt.f64 1/2) (*.f64 (-.f64 (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (/.f64 1/16 (pow.f64 re 6))) re)) (*.f64 -1/8 (/.f64 (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 -1/16 (sqrt.f64 1/2))) 2)) (*.f64 re re)))) (pow.f64 im 7)))) (*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/2)) (*.f64 (pow.f64 im 5) (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 -1/16 (sqrt.f64 1/2))) 2))))))) (fma.f64 -1/16 (/.f64 (*.f64 (pow.f64 im 3) (sqrt.f64 2)) (/.f64 (sqrt.f64 1/2) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) (*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) (sqrt.f64 2)) (*.f64 im (sqrt.f64 1/2)))))
(fma.f64 1/2 (*.f64 (sqrt.f64 re) (+.f64 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/2)) (*.f64 (+.f64 (/.f64 (fma.f64 -1/2 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (/.f64 -1/32 (pow.f64 re 6))) re) (*.f64 1/8 (/.f64 (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 -1/16 (sqrt.f64 1/2))) 2)) (*.f64 re re)))) (pow.f64 im 7))) (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/2)) (*.f64 (pow.f64 im 5) (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 -1/16 (sqrt.f64 1/2))) 2)))))) (fma.f64 -1/16 (*.f64 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/2)) (pow.f64 im 3)) (sqrt.f64 (/.f64 1 (pow.f64 re 5)))) (*.f64 im (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 re))))))

eval73.0ms (0.9%)

Compiler

Compiled 3306 to 2311 computations (30.1% saved)

prune134.0ms (1.7%)

Pruning

12 alts after pruning (11 fresh and 1 done)

PrunedKeptTotal
New13811149
Fresh000
Picked011
Done000
Total13812150
Error
0.2b
Counts
150 → 12
Alt Table
Click to see full alt table
StatusErrorProgram
27.1b
(*.f64 1/2 (cbrt.f64 (pow.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2) 3/2)))
46.4b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 (-.f64 (*.f64 (*.f64 (/.f64 im re) im) -1/2) re) re))))
46.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 re -2))))
30.2b
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
12.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))))
60.3b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 re re))))
54.7b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))))
48.8b
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re))))
28.4b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 im re))))
57.5b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 1/2 (*.f64 (/.f64 im re) im) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (/.f64 1/16 (/.f64 (pow.f64 re 5) (pow.f64 im 6))))))))
54.7b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (/.f64 1/2 re) (*.f64 im im)))))
12.4b
(*.f64 1/2 (*.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) (sqrt.f64 2)))
Compiler

Compiled 330 to 265 computations (19.7% saved)

localize14.0ms (0.2%)

Local error

Found 4 expressions with local error:

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

Compiled 42 to 17 computations (59.5% saved)

series7.0ms (0.1%)

Counts
2 → 16
Calls

12 calls:

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

rewrite60.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
933×pow1_binary64
866×add-log-exp_binary64
865×log1p-expm1-u_binary64
865×expm1-log1p-u_binary64
846×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify71.0ms (0.9%)

Algorithm
egg-herbie
Rules
652×associate-*r*_binary64
609×associate-*l*_binary64
603×fma-def_binary64
309×times-frac_binary64
271×associate-/l*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01251061
13741009
21236916
36741916
Stop Event
node limit
Counts
52 → 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/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.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 (*.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 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 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))
(+.f64 (*.f64 -1/16 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re))))
(+.f64 (*.f64 -1/16 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (pow.f64 (*.f64 -1/16 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) 2)) (pow.f64 im 5))) (sqrt.f64 1/2)) (sqrt.f64 re))) (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))))
(+.f64 (*.f64 -1/16 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (*.f64 1/16 (/.f64 1 (pow.f64 re 6)))) re)) (*.f64 -1/16 (/.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (pow.f64 (*.f64 -1/16 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) 2)) (*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 re 2))))) (pow.f64 im 7))) (sqrt.f64 1/2)) (sqrt.f64 re))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (pow.f64 (*.f64 -1/16 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) 2)) (pow.f64 im 5))) (sqrt.f64 1/2)) (sqrt.f64 re))) (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/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 (*.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 -1/2 (*.f64 re (sqrt.f64 (/.f64 1 im))))))
(+.f64 (sqrt.f64 im) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 -1/2 (*.f64 re (sqrt.f64 (/.f64 1 im)))) (*.f64 1/4 (*.f64 (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 3)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))))))
(*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re)))
(+.f64 (*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re))) (*.f64 -1/16 (*.f64 (/.f64 (pow.f64 im 3) (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))))
(+.f64 (*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re))) (+.f64 (*.f64 -1/16 (*.f64 (/.f64 (pow.f64 im 3) (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) (*.f64 1/2 (*.f64 (/.f64 (*.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (pow.f64 (*.f64 -1/16 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) 2)) (pow.f64 im 5)) (sqrt.f64 1/2)) (sqrt.f64 re)))))
(+.f64 (*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re))) (+.f64 (*.f64 -1/16 (*.f64 (/.f64 (pow.f64 im 3) (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (pow.f64 im 7) (-.f64 (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (*.f64 1/16 (/.f64 1 (pow.f64 re 6)))) re)) (*.f64 -1/16 (/.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (pow.f64 (*.f64 -1/16 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) 2)) (*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 re 2)))))) (sqrt.f64 1/2)) (sqrt.f64 re))) (*.f64 1/2 (*.f64 (/.f64 (*.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (pow.f64 (*.f64 -1/16 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) 2)) (pow.f64 im 5)) (sqrt.f64 1/2)) (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 (/.f64 1 im)) (*.f64 (*.f64 -1/2 re) (sqrt.f64 2))))
(*.f64 (sqrt.f64 2) (fma.f64 -1/2 (*.f64 re (sqrt.f64 (/.f64 1 im))) (sqrt.f64 im)))
(+.f64 (*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.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))))))
(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/2 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (*.f64 re re)))))))
(fma.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im))) (fma.f64 1/2 (*.f64 (*.f64 re (*.f64 re (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)))) (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im))))
(fma.f64 (sqrt.f64 2) (sqrt.f64 im) (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (/.f64 1 im)) (fma.f64 -1/2 re (*.f64 re (*.f64 (*.f64 re (+.f64 (/.f64 1/2 im) (*.f64 (/.f64 1 im) -1/4))) 1/2))))))
(+.f64 (*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.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 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))))))))
(fma.f64 -1/2 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 (/.f64 1 im)))) (fma.f64 (sqrt.f64 2) (sqrt.f64 im) (fma.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (*.f64 re re)))) (*.f64 1/4 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (*.f64 (pow.f64 re 3) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))))))))
(fma.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im))) (fma.f64 (sqrt.f64 2) (sqrt.f64 im) (fma.f64 1/2 (*.f64 (*.f64 re (*.f64 re (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)))) (*.f64 (sqrt.f64 2) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (*.f64 (*.f64 (pow.f64 re 3) (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) 1/4))))))
(+.f64 (*.f64 (sqrt.f64 2) (fma.f64 -1/2 (*.f64 re (sqrt.f64 (/.f64 1 im))) (sqrt.f64 im))) (*.f64 (sqrt.f64 2) (*.f64 (+.f64 (/.f64 1/2 im) (*.f64 (/.f64 1 im) -1/4)) (+.f64 (*.f64 1/4 (*.f64 (pow.f64 re 3) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 re (*.f64 re 1/2)))))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 1/2)) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 2) (*.f64 (*.f64 im (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 re))))
(+.f64 (*.f64 -1/16 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re))))
(fma.f64 -1/16 (/.f64 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (sqrt.f64 (/.f64 1 (pow.f64 re 5)))) (sqrt.f64 1/2)) (*.f64 (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 1/2)) im) (sqrt.f64 (/.f64 1 re))))
(fma.f64 (sqrt.f64 2) (*.f64 (*.f64 im (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 re))) (*.f64 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/2)) (pow.f64 im 3)) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) -1/16)))
(fma.f64 (sqrt.f64 2) (*.f64 (*.f64 im (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 re))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/2)) (*.f64 (pow.f64 im 3) -1/16))))
(+.f64 (*.f64 -1/16 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (pow.f64 (*.f64 -1/16 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) 2)) (pow.f64 im 5))) (sqrt.f64 1/2)) (sqrt.f64 re))) (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))))
(fma.f64 -1/16 (/.f64 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (sqrt.f64 (/.f64 1 (pow.f64 re 5)))) (sqrt.f64 1/2)) (fma.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 1/2) (*.f64 (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 -1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 1 (sqrt.f64 1/2)))) 2)) (pow.f64 im 5)))) (sqrt.f64 re)) (*.f64 (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 1/2)) im) (sqrt.f64 (/.f64 1 re)))))
(fma.f64 -1/16 (*.f64 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/2)) (pow.f64 im 3)) (sqrt.f64 (/.f64 1 (pow.f64 re 5)))) (fma.f64 (sqrt.f64 2) (*.f64 (*.f64 im (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 re))) (*.f64 (sqrt.f64 re) (/.f64 (*.f64 1/2 (sqrt.f64 2)) (/.f64 (/.f64 (sqrt.f64 1/2) (pow.f64 im 5)) (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 -1/16 (sqrt.f64 1/2))) 2)))))))
(fma.f64 (*.f64 (*.f64 (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 -1/16 (sqrt.f64 1/2))) 2)) (pow.f64 im 5)) (/.f64 (sqrt.f64 2) (sqrt.f64 1/2))) (*.f64 1/2 (sqrt.f64 re)) (fma.f64 (sqrt.f64 2) (*.f64 (*.f64 im (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 re))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/2)) (*.f64 (pow.f64 im 3) -1/16)))))
(+.f64 (*.f64 -1/16 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (*.f64 1/16 (/.f64 1 (pow.f64 re 6)))) re)) (*.f64 -1/16 (/.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (pow.f64 (*.f64 -1/16 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) 2)) (*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 re 2))))) (pow.f64 im 7))) (sqrt.f64 1/2)) (sqrt.f64 re))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (pow.f64 (*.f64 -1/16 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) 2)) (pow.f64 im 5))) (sqrt.f64 1/2)) (sqrt.f64 re))) (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re))))))
(fma.f64 -1/16 (/.f64 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (sqrt.f64 (/.f64 1 (pow.f64 re 5)))) (sqrt.f64 1/2)) (fma.f64 1/2 (*.f64 (sqrt.f64 re) (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (/.f64 (*.f64 -1/2 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (/.f64 1/16 (pow.f64 re 6)))) re) (*.f64 1/16 (/.f64 (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 -1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 1 (sqrt.f64 1/2)))) 2)) (*.f64 (*.f64 re re) (pow.f64 (sqrt.f64 1/2) 2))))) (pow.f64 im 7))))) (fma.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 1/2) (*.f64 (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 -1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 1 (sqrt.f64 1/2)))) 2)) (pow.f64 im 5)))) (sqrt.f64 re)) (*.f64 (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 1/2)) im) (sqrt.f64 (/.f64 1 re))))))
(+.f64 (*.f64 (sqrt.f64 re) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/2)) (*.f64 (-.f64 (/.f64 -1/2 (/.f64 re (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (/.f64 1/16 (pow.f64 re 6))))) (*.f64 -1/8 (/.f64 (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 -1/16 (sqrt.f64 1/2))) 2)) (*.f64 re re)))) (pow.f64 im 7)))) (/.f64 (*.f64 1/2 (sqrt.f64 2)) (/.f64 (/.f64 (sqrt.f64 1/2) (pow.f64 im 5)) (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 -1/16 (sqrt.f64 1/2))) 2)))))) (fma.f64 (sqrt.f64 2) (*.f64 (*.f64 im (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 re))) (*.f64 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/2)) (pow.f64 im 3)) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) -1/16))))
(fma.f64 1/2 (*.f64 (sqrt.f64 re) (+.f64 (*.f64 (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 1/2) (pow.f64 im 7))) (-.f64 (/.f64 (fma.f64 -1/2 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (/.f64 -1/32 (pow.f64 re 6))) re) (/.f64 (/.f64 (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 -1/16 (sqrt.f64 1/2))) 2)) -8) (*.f64 re re)))) (*.f64 (*.f64 (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 -1/16 (sqrt.f64 1/2))) 2)) (pow.f64 im 5)) (/.f64 (sqrt.f64 2) (sqrt.f64 1/2))))) (fma.f64 (sqrt.f64 2) (*.f64 (*.f64 im (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 re))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 1/2)) (*.f64 (pow.f64 im 3) -1/16)))))
(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 (*.f64 -1/2 re) (sqrt.f64 (/.f64 1 im)) (sqrt.f64 im))
(fma.f64 -1/2 (*.f64 re (sqrt.f64 (/.f64 1 im))) (sqrt.f64 im))
(+.f64 (sqrt.f64 im) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 im)))) (*.f64 -1/2 (*.f64 re (sqrt.f64 (/.f64 1 im))))))
(+.f64 (sqrt.f64 im) (fma.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (*.f64 re re))) (*.f64 (*.f64 -1/2 re) (sqrt.f64 (/.f64 1 im)))))
(+.f64 (sqrt.f64 im) (*.f64 (sqrt.f64 (/.f64 1 im)) (+.f64 (*.f64 1/2 (*.f64 re (*.f64 re (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2))))) (*.f64 -1/2 re))))
(fma.f64 (sqrt.f64 (/.f64 1 im)) (fma.f64 -1/2 re (*.f64 re (*.f64 (*.f64 re (+.f64 (/.f64 1/2 im) (*.f64 (/.f64 1 im) -1/4))) 1/2))) (sqrt.f64 im))
(+.f64 (sqrt.f64 im) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 -1/2 (*.f64 re (sqrt.f64 (/.f64 1 im)))) (*.f64 1/4 (*.f64 (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 im)) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (pow.f64 re 3)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))))))
(+.f64 (sqrt.f64 im) (fma.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (*.f64 re re))) (fma.f64 -1/2 (*.f64 re (sqrt.f64 (/.f64 1 im))) (*.f64 1/4 (*.f64 (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (*.f64 (pow.f64 re 3) (sqrt.f64 (/.f64 1 (pow.f64 im 3)))))))))
(+.f64 (sqrt.f64 im) (+.f64 (*.f64 (sqrt.f64 (/.f64 1 im)) (+.f64 (*.f64 1/2 (*.f64 re (*.f64 re (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2))))) (*.f64 -1/2 re))) (*.f64 (-.f64 (/.f64 1/2 im) (pow.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) 2)) (*.f64 (*.f64 (pow.f64 re 3) (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) 1/4))))
(+.f64 (fma.f64 -1/2 (*.f64 re (sqrt.f64 (/.f64 1 im))) (sqrt.f64 im)) (*.f64 (+.f64 (/.f64 1/2 im) (*.f64 (/.f64 1 im) -1/4)) (+.f64 (*.f64 1/4 (*.f64 (pow.f64 re 3) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (*.f64 (sqrt.f64 (/.f64 1 im)) (*.f64 re (*.f64 re 1/2))))))
(*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 im (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 re)))
(+.f64 (*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re))) (*.f64 -1/16 (*.f64 (/.f64 (pow.f64 im 3) (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))))
(fma.f64 (*.f64 im (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 re)) (*.f64 -1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 (pow.f64 im 3) (sqrt.f64 1/2)))))
(fma.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (*.f64 -1/16 (/.f64 (pow.f64 im 3) (sqrt.f64 1/2)))))
(fma.f64 im (*.f64 (sqrt.f64 1/2) (sqrt.f64 (/.f64 1 re))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 (*.f64 (pow.f64 im 3) -1/16) (sqrt.f64 1/2))))
(+.f64 (*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re))) (+.f64 (*.f64 -1/16 (*.f64 (/.f64 (pow.f64 im 3) (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) (*.f64 1/2 (*.f64 (/.f64 (*.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (pow.f64 (*.f64 -1/16 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) 2)) (pow.f64 im 5)) (sqrt.f64 1/2)) (sqrt.f64 re)))))
(fma.f64 (*.f64 im (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 re)) (fma.f64 -1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 (pow.f64 im 3) (sqrt.f64 1/2))) (*.f64 1/2 (*.f64 (sqrt.f64 re) (/.f64 (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 -1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 1 (sqrt.f64 1/2)))) 2)) (/.f64 (sqrt.f64 1/2) (pow.f64 im 5)))))))
(fma.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re))) (fma.f64 1/2 (/.f64 (*.f64 (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 -1/16 (sqrt.f64 1/2))) 2)) (pow.f64 im 5)) (/.f64 (sqrt.f64 1/2) (sqrt.f64 re))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (*.f64 -1/16 (/.f64 (pow.f64 im 3) (sqrt.f64 1/2))))))
(fma.f64 (sqrt.f64 re) (*.f64 (/.f64 (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 -1/16 (sqrt.f64 1/2))) 2)) (sqrt.f64 1/2)) (*.f64 (pow.f64 im 5) 1/2)) (fma.f64 im (*.f64 (sqrt.f64 1/2) (sqrt.f64 (/.f64 1 re))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 (*.f64 (pow.f64 im 3) -1/16) (sqrt.f64 1/2)))))
(+.f64 (*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re))) (+.f64 (*.f64 -1/16 (*.f64 (/.f64 (pow.f64 im 3) (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (pow.f64 im 7) (-.f64 (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (*.f64 1/16 (/.f64 1 (pow.f64 re 6)))) re)) (*.f64 -1/16 (/.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (pow.f64 (*.f64 -1/16 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) 2)) (*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 re 2)))))) (sqrt.f64 1/2)) (sqrt.f64 re))) (*.f64 1/2 (*.f64 (/.f64 (*.f64 (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 5))) (pow.f64 (*.f64 -1/16 (*.f64 (/.f64 1 (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) 2)) (pow.f64 im 5)) (sqrt.f64 1/2)) (sqrt.f64 re))))))
(fma.f64 (*.f64 im (sqrt.f64 1/2)) (sqrt.f64 (/.f64 1 re)) (fma.f64 -1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 (pow.f64 im 3) (sqrt.f64 1/2))) (*.f64 1/2 (+.f64 (*.f64 (sqrt.f64 re) (/.f64 (pow.f64 im 7) (/.f64 (sqrt.f64 1/2) (+.f64 (/.f64 (*.f64 -1/2 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (/.f64 1/16 (pow.f64 re 6)))) re) (*.f64 1/16 (/.f64 (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 -1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 1 (sqrt.f64 1/2)))) 2)) (*.f64 (*.f64 re re) (pow.f64 (sqrt.f64 1/2) 2)))))))) (*.f64 (sqrt.f64 re) (/.f64 (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 -1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 1 (sqrt.f64 1/2)))) 2)) (/.f64 (sqrt.f64 1/2) (pow.f64 im 5))))))))
(fma.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re))) (fma.f64 1/2 (*.f64 (sqrt.f64 re) (+.f64 (*.f64 (/.f64 (pow.f64 im 7) (sqrt.f64 1/2)) (-.f64 (/.f64 -1/2 (/.f64 re (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (/.f64 1/16 (pow.f64 re 6))))) (*.f64 -1/8 (/.f64 (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 -1/16 (sqrt.f64 1/2))) 2)) (*.f64 re re))))) (*.f64 (/.f64 (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 -1/16 (sqrt.f64 1/2))) 2)) (sqrt.f64 1/2)) (pow.f64 im 5)))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (*.f64 -1/16 (/.f64 (pow.f64 im 3) (sqrt.f64 1/2))))))
(fma.f64 1/2 (*.f64 (sqrt.f64 re) (fma.f64 (/.f64 (pow.f64 im 7) (sqrt.f64 1/2)) (-.f64 (/.f64 (fma.f64 -1/2 (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2) (/.f64 -1/32 (pow.f64 re 6))) re) (/.f64 (/.f64 (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 -1/16 (sqrt.f64 1/2))) 2)) -8) (*.f64 re re))) (*.f64 (pow.f64 im 5) (/.f64 (-.f64 (/.f64 1/16 (pow.f64 re 5)) (pow.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 -1/16 (sqrt.f64 1/2))) 2)) (sqrt.f64 1/2))))) (fma.f64 im (*.f64 (sqrt.f64 1/2) (sqrt.f64 (/.f64 1 re))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 (*.f64 (pow.f64 im 3) -1/16) (sqrt.f64 1/2)))))

localize10.0ms (0.1%)

Compiler

Compiled 18 to 14 computations (22.2% saved)

localize13.0ms (0.2%)

Compiler

Compiled 28 to 15 computations (46.4% saved)

localize18.0ms (0.2%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(*.f64 2 (*.f64 (/.f64 1/2 re) (*.f64 im im)))
5.5b
(*.f64 (/.f64 1/2 re) (*.f64 im im))
20.5b
(sqrt.f64 (*.f64 2 (*.f64 (/.f64 1/2 re) (*.f64 im im))))
Compiler

Compiled 50 to 29 computations (42% saved)

series12.0ms (0.1%)

Counts
3 → 60
Calls

18 calls:

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

rewrite59.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
956×pow1_binary64
886×add-log-exp_binary64
886×log1p-expm1-u_binary64
886×expm1-log1p-u_binary64
102×add-sqr-sqrt_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify96.0ms (1.2%)

Algorithm
egg-herbie
Rules
967×fma-def_binary64
652×associate-*l/_binary64
553×associate-*r/_binary64
502×fma-neg_binary64
355×*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
014524
128524
252524
3102524
4265524
5893524
62080524
73218524
85040524
97136524
107955524
Stop Event
node limit
Counts
124 → 70
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 -1 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 -1 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 -1 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 -1 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 1/2 (/.f64 (pow.f64 im 2) re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
Outputs
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 -1 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(neg.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 im))
(*.f64 -1 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(neg.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 im))
(*.f64 -1 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(neg.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 im))
(*.f64 -1 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(neg.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 im))
(*.f64 1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 1/2 (/.f64 (*.f64 im im) re))
(*.f64 1/2 (/.f64 im (/.f64 re im)))
(*.f64 1/2 (*.f64 (/.f64 im re) im))
(*.f64 (*.f64 (/.f64 1/2 re) im) im)
(*.f64 im (*.f64 im (/.f64 1/2 re)))
(*.f64 (*.f64 im im) (/.f64 1/2 re))
(*.f64 im (/.f64 1/2 (/.f64 re im)))
(*.f64 1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 1/2 (/.f64 (*.f64 im im) re))
(*.f64 1/2 (/.f64 im (/.f64 re im)))
(*.f64 1/2 (*.f64 (/.f64 im re) im))
(*.f64 (*.f64 (/.f64 1/2 re) im) im)
(*.f64 im (*.f64 im (/.f64 1/2 re)))
(*.f64 (*.f64 im im) (/.f64 1/2 re))
(*.f64 im (/.f64 1/2 (/.f64 re im)))
(*.f64 1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 1/2 (/.f64 (*.f64 im im) re))
(*.f64 1/2 (/.f64 im (/.f64 re im)))
(*.f64 1/2 (*.f64 (/.f64 im re) im))
(*.f64 (*.f64 (/.f64 1/2 re) im) im)
(*.f64 im (*.f64 im (/.f64 1/2 re)))
(*.f64 (*.f64 im im) (/.f64 1/2 re))
(*.f64 im (/.f64 1/2 (/.f64 re im)))
(*.f64 1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 1/2 (/.f64 (*.f64 im im) re))
(*.f64 1/2 (/.f64 im (/.f64 re im)))
(*.f64 1/2 (*.f64 (/.f64 im re) im))
(*.f64 (*.f64 (/.f64 1/2 re) im) im)
(*.f64 im (*.f64 im (/.f64 1/2 re)))
(*.f64 (*.f64 im im) (/.f64 1/2 re))
(*.f64 im (/.f64 1/2 (/.f64 re im)))
(*.f64 1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 1/2 (/.f64 (*.f64 im im) re))
(*.f64 1/2 (/.f64 im (/.f64 re im)))
(*.f64 1/2 (*.f64 (/.f64 im re) im))
(*.f64 (*.f64 (/.f64 1/2 re) im) im)
(*.f64 im (*.f64 im (/.f64 1/2 re)))
(*.f64 (*.f64 im im) (/.f64 1/2 re))
(*.f64 im (/.f64 1/2 (/.f64 re im)))
(*.f64 1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 1/2 (/.f64 (*.f64 im im) re))
(*.f64 1/2 (/.f64 im (/.f64 re im)))
(*.f64 1/2 (*.f64 (/.f64 im re) im))
(*.f64 (*.f64 (/.f64 1/2 re) im) im)
(*.f64 im (*.f64 im (/.f64 1/2 re)))
(*.f64 (*.f64 im im) (/.f64 1/2 re))
(*.f64 im (/.f64 1/2 (/.f64 re im)))
(*.f64 1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 1/2 (/.f64 (*.f64 im im) re))
(*.f64 1/2 (/.f64 im (/.f64 re im)))
(*.f64 1/2 (*.f64 (/.f64 im re) im))
(*.f64 (*.f64 (/.f64 1/2 re) im) im)
(*.f64 im (*.f64 im (/.f64 1/2 re)))
(*.f64 (*.f64 im im) (/.f64 1/2 re))
(*.f64 im (/.f64 1/2 (/.f64 re im)))
(*.f64 1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 1/2 (/.f64 (*.f64 im im) re))
(*.f64 1/2 (/.f64 im (/.f64 re im)))
(*.f64 1/2 (*.f64 (/.f64 im re) im))
(*.f64 (*.f64 (/.f64 1/2 re) im) im)
(*.f64 im (*.f64 im (/.f64 1/2 re)))
(*.f64 (*.f64 im im) (/.f64 1/2 re))
(*.f64 im (/.f64 1/2 (/.f64 re im)))
(*.f64 1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 1/2 (/.f64 (*.f64 im im) re))
(*.f64 1/2 (/.f64 im (/.f64 re im)))
(*.f64 1/2 (*.f64 (/.f64 im re) im))
(*.f64 (*.f64 (/.f64 1/2 re) im) im)
(*.f64 im (*.f64 im (/.f64 1/2 re)))
(*.f64 (*.f64 im im) (/.f64 1/2 re))
(*.f64 im (/.f64 1/2 (/.f64 re im)))
(*.f64 1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 1/2 (/.f64 (*.f64 im im) re))
(*.f64 1/2 (/.f64 im (/.f64 re im)))
(*.f64 1/2 (*.f64 (/.f64 im re) im))
(*.f64 (*.f64 (/.f64 1/2 re) im) im)
(*.f64 im (*.f64 im (/.f64 1/2 re)))
(*.f64 (*.f64 im im) (/.f64 1/2 re))
(*.f64 im (/.f64 1/2 (/.f64 re im)))
(*.f64 1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 1/2 (/.f64 (*.f64 im im) re))
(*.f64 1/2 (/.f64 im (/.f64 re im)))
(*.f64 1/2 (*.f64 (/.f64 im re) im))
(*.f64 (*.f64 (/.f64 1/2 re) im) im)
(*.f64 im (*.f64 im (/.f64 1/2 re)))
(*.f64 (*.f64 im im) (/.f64 1/2 re))
(*.f64 im (/.f64 1/2 (/.f64 re im)))
(*.f64 1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 1/2 (/.f64 (*.f64 im im) re))
(*.f64 1/2 (/.f64 im (/.f64 re im)))
(*.f64 1/2 (*.f64 (/.f64 im re) im))
(*.f64 (*.f64 (/.f64 1/2 re) im) im)
(*.f64 im (*.f64 im (/.f64 1/2 re)))
(*.f64 (*.f64 im im) (/.f64 1/2 re))
(*.f64 im (/.f64 1/2 (/.f64 re im)))
(*.f64 1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 1/2 (/.f64 (*.f64 im im) re))
(*.f64 1/2 (/.f64 im (/.f64 re im)))
(*.f64 1/2 (*.f64 (/.f64 im re) im))
(*.f64 (*.f64 (/.f64 1/2 re) im) im)
(*.f64 im (*.f64 im (/.f64 1/2 re)))
(*.f64 (*.f64 im im) (/.f64 1/2 re))
(*.f64 im (/.f64 1/2 (/.f64 re im)))
(*.f64 1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 1/2 (/.f64 (*.f64 im im) re))
(*.f64 1/2 (/.f64 im (/.f64 re im)))
(*.f64 1/2 (*.f64 (/.f64 im re) im))
(*.f64 (*.f64 (/.f64 1/2 re) im) im)
(*.f64 im (*.f64 im (/.f64 1/2 re)))
(*.f64 (*.f64 im im) (/.f64 1/2 re))
(*.f64 im (/.f64 1/2 (/.f64 re im)))
(*.f64 1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 1/2 (/.f64 (*.f64 im im) re))
(*.f64 1/2 (/.f64 im (/.f64 re im)))
(*.f64 1/2 (*.f64 (/.f64 im re) im))
(*.f64 (*.f64 (/.f64 1/2 re) im) im)
(*.f64 im (*.f64 im (/.f64 1/2 re)))
(*.f64 (*.f64 im im) (/.f64 1/2 re))
(*.f64 im (/.f64 1/2 (/.f64 re im)))
(*.f64 1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 1/2 (/.f64 (*.f64 im im) re))
(*.f64 1/2 (/.f64 im (/.f64 re im)))
(*.f64 1/2 (*.f64 (/.f64 im re) im))
(*.f64 (*.f64 (/.f64 1/2 re) im) im)
(*.f64 im (*.f64 im (/.f64 1/2 re)))
(*.f64 (*.f64 im im) (/.f64 1/2 re))
(*.f64 im (/.f64 1/2 (/.f64 re im)))
(*.f64 1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 1/2 (/.f64 (*.f64 im im) re))
(*.f64 1/2 (/.f64 im (/.f64 re im)))
(*.f64 1/2 (*.f64 (/.f64 im re) im))
(*.f64 (*.f64 (/.f64 1/2 re) im) im)
(*.f64 im (*.f64 im (/.f64 1/2 re)))
(*.f64 (*.f64 im im) (/.f64 1/2 re))
(*.f64 im (/.f64 1/2 (/.f64 re im)))
(*.f64 1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 1/2 (/.f64 (*.f64 im im) re))
(*.f64 1/2 (/.f64 im (/.f64 re im)))
(*.f64 1/2 (*.f64 (/.f64 im re) im))
(*.f64 (*.f64 (/.f64 1/2 re) im) im)
(*.f64 im (*.f64 im (/.f64 1/2 re)))
(*.f64 (*.f64 im im) (/.f64 1/2 re))
(*.f64 im (/.f64 1/2 (/.f64 re im)))
(*.f64 1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 1/2 (/.f64 (*.f64 im im) re))
(*.f64 1/2 (/.f64 im (/.f64 re im)))
(*.f64 1/2 (*.f64 (/.f64 im re) im))
(*.f64 (*.f64 (/.f64 1/2 re) im) im)
(*.f64 im (*.f64 im (/.f64 1/2 re)))
(*.f64 (*.f64 im im) (/.f64 1/2 re))
(*.f64 im (/.f64 1/2 (/.f64 re im)))
(*.f64 1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 1/2 (/.f64 (*.f64 im im) re))
(*.f64 1/2 (/.f64 im (/.f64 re im)))
(*.f64 1/2 (*.f64 (/.f64 im re) im))
(*.f64 (*.f64 (/.f64 1/2 re) im) im)
(*.f64 im (*.f64 im (/.f64 1/2 re)))
(*.f64 (*.f64 im im) (/.f64 1/2 re))
(*.f64 im (/.f64 1/2 (/.f64 re im)))
(*.f64 1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 1/2 (/.f64 (*.f64 im im) re))
(*.f64 1/2 (/.f64 im (/.f64 re im)))
(*.f64 1/2 (*.f64 (/.f64 im re) im))
(*.f64 (*.f64 (/.f64 1/2 re) im) im)
(*.f64 im (*.f64 im (/.f64 1/2 re)))
(*.f64 (*.f64 im im) (/.f64 1/2 re))
(*.f64 im (/.f64 1/2 (/.f64 re im)))
(*.f64 1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 1/2 (/.f64 (*.f64 im im) re))
(*.f64 1/2 (/.f64 im (/.f64 re im)))
(*.f64 1/2 (*.f64 (/.f64 im re) im))
(*.f64 (*.f64 (/.f64 1/2 re) im) im)
(*.f64 im (*.f64 im (/.f64 1/2 re)))
(*.f64 (*.f64 im im) (/.f64 1/2 re))
(*.f64 im (/.f64 1/2 (/.f64 re im)))
(*.f64 1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 1/2 (/.f64 (*.f64 im im) re))
(*.f64 1/2 (/.f64 im (/.f64 re im)))
(*.f64 1/2 (*.f64 (/.f64 im re) im))
(*.f64 (*.f64 (/.f64 1/2 re) im) im)
(*.f64 im (*.f64 im (/.f64 1/2 re)))
(*.f64 (*.f64 im im) (/.f64 1/2 re))
(*.f64 im (/.f64 1/2 (/.f64 re im)))
(*.f64 1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 1/2 (/.f64 (*.f64 im im) re))
(*.f64 1/2 (/.f64 im (/.f64 re im)))
(*.f64 1/2 (*.f64 (/.f64 im re) im))
(*.f64 (*.f64 (/.f64 1/2 re) im) im)
(*.f64 im (*.f64 im (/.f64 1/2 re)))
(*.f64 (*.f64 im im) (/.f64 1/2 re))
(*.f64 im (/.f64 1/2 (/.f64 re im)))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))

localize52.0ms (0.6%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(*.f64 2 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))
5.4b
(/.f64 (pow.f64 im 2) re)
20.5b
(sqrt.f64 (*.f64 2 (*.f64 1/2 (/.f64 (pow.f64 im 2) re))))
Compiler

Compiled 52 to 39 computations (25% saved)

series5.0ms (0.1%)

Counts
3 → 36
Calls

18 calls:

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

rewrite63.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
873×pow1_binary64
810×add-log-exp_binary64
810×log1p-expm1-u_binary64
810×expm1-log1p-u_binary64
792×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify80.0ms (1%)

Algorithm
egg-herbie
Rules
688×fma-def_binary64
618×fma-neg_binary64
477×associate-*l*_binary64
434×unswap-sqr_binary64
423×associate-*r/_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
012284
123284
242284
378284
4181284
5564284
62025284
74865284
86506284
97954284
Stop Event
node limit
Counts
137 → 91
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 -1 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 -1 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 -1 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 -1 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.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 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 -1 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(neg.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 im))
(*.f64 im (neg.f64 (sqrt.f64 (/.f64 1 re))))
(*.f64 -1 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(neg.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 im))
(*.f64 im (neg.f64 (sqrt.f64 (/.f64 1 re))))
(*.f64 -1 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(neg.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 im))
(*.f64 im (neg.f64 (sqrt.f64 (/.f64 1 re))))
(*.f64 -1 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(neg.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 im))
(*.f64 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 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))

eval134.0ms (1.7%)

Compiler

Compiled 6508 to 4517 computations (30.6% saved)

prune91.0ms (1.1%)

Pruning

13 alts after pruning (10 fresh and 3 done)

PrunedKeptTotal
New3327339
Fresh336
Picked101
Done235
Total33813351
Error
0.1b
Counts
351 → 13
Alt Table
Click to see full alt table
StatusErrorProgram
48.7b
(*.f64 1/2 (*.f64 (*.f64 im (sqrt.f64 (/.f64 1/2 re))) (sqrt.f64 2)))
46.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 re -2))))
30.2b
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
48.7b
(*.f64 1/2 (/.f64 im (sqrt.f64 re)))
53.1b
(*.f64 1/2 (sqrt.f64 (*.f64 im (/.f64 im re))))
12.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))))
48.8b
(*.f64 1/2 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re))))
28.4b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 im re))))
46.4b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 (-.f64 (*.f64 (*.f64 (/.f64 im re) im) -1/2) re) re))))
56.2b
(*.f64 1/2 (pow.f64 (pow.f64 (/.f64 im (sqrt.f64 re)) 3) 1/3))
48.7b
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
53.1b
(*.f64 1/2 (sqrt.f64 (/.f64 im (/.f64 re im))))
28.6b
(*.f64 1/2 (*.f64 (sqrt.f64 (-.f64 im re)) (sqrt.f64 2)))
Compiler

Compiled 266 to 212 computations (20.3% saved)

localize12.0ms (0.2%)

Local error

Found 2 expressions with local error:

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

Compiled 31 to 16 computations (48.4% saved)

series9.0ms (0.1%)

Counts
2 → 16
Calls

12 calls:

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

rewrite49.0ms (0.6%)

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

Useful iterations: 0 (0.0ms)

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

simplify87.0ms (1.1%)

Algorithm
egg-herbie
Rules
863×associate-/r*_binary64
701×associate-/r/_binary64
436×fma-def_binary64
355×distribute-lft-out_binary64
336×unswap-sqr_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
098632
1269630
2824598
33369572
46367572
57562572
Stop Event
node limit
Counts
52 → 65
Calls
Call 1
Inputs
(*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -1)) (sqrt.f64 re))
(+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 re)))) (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -1)) (sqrt.f64 re)))
(+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 re)))) (+.f64 (*.f64 -1/8 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 2)) (pow.f64 (sqrt.f64 -1) 3)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -1)) (sqrt.f64 re))))
(+.f64 (*.f64 1/16 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (pow.f64 (sqrt.f64 -1) 5)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 re)))) (+.f64 (*.f64 -1/8 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 2)) (pow.f64 (sqrt.f64 -1) 3)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -1)) (sqrt.f64 re)))))
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(+.f64 (*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
(+.f64 (*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (*.f64 (sqrt.f64 2) (sqrt.f64 im))))
(+.f64 (*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 -1/16 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 3)) (sqrt.f64 (/.f64 1 (pow.f64 im 5))))) (+.f64 (*.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))))
(*.f64 (sqrt.f64 -1) (sqrt.f64 re))
(+.f64 (*.f64 1/2 (*.f64 (/.f64 im (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 re)))) (*.f64 (sqrt.f64 -1) (sqrt.f64 re)))
(+.f64 (*.f64 1/2 (*.f64 (/.f64 im (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 re)))) (+.f64 (*.f64 -1/8 (*.f64 (/.f64 (pow.f64 im 2) (pow.f64 (sqrt.f64 -1) 3)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) (*.f64 (sqrt.f64 -1) (sqrt.f64 re))))
(+.f64 (*.f64 1/2 (*.f64 (/.f64 im (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 re)))) (+.f64 (*.f64 -1/8 (*.f64 (/.f64 (pow.f64 im 2) (pow.f64 (sqrt.f64 -1) 3)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) (+.f64 (*.f64 (sqrt.f64 -1) (sqrt.f64 re)) (*.f64 1/16 (*.f64 (/.f64 (pow.f64 im 3) (pow.f64 (sqrt.f64 -1) 5)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))))))
(sqrt.f64 im)
(+.f64 (sqrt.f64 im) (*.f64 -1/2 (*.f64 re (sqrt.f64 (/.f64 1 im)))))
(+.f64 (sqrt.f64 im) (+.f64 (*.f64 -1/8 (*.f64 (pow.f64 re 2) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (*.f64 -1/2 (*.f64 re (sqrt.f64 (/.f64 1 im))))))
(+.f64 (sqrt.f64 im) (+.f64 (*.f64 -1/8 (*.f64 (pow.f64 re 2) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (*.f64 -1/2 (*.f64 re (sqrt.f64 (/.f64 1 im)))) (*.f64 -1/16 (*.f64 (pow.f64 re 3) (sqrt.f64 (/.f64 1 (pow.f64 im 5))))))))
Outputs
(*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -1)) (sqrt.f64 re))
(*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1) (sqrt.f64 re)))
(*.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 2) (sqrt.f64 re)))
(+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 re)))) (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -1)) (sqrt.f64 re)))
(fma.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re))) (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1) (sqrt.f64 re))))
(fma.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1) (sqrt.f64 re)) (*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re)))))
(fma.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1) (sqrt.f64 re)) (*.f64 1/2 (*.f64 (*.f64 im (/.f64 (sqrt.f64 2) (sqrt.f64 -1))) (sqrt.f64 (/.f64 1 re)))))
(fma.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1) (sqrt.f64 re)) (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 1/2 (*.f64 im (/.f64 (sqrt.f64 2) (sqrt.f64 -1))))))
(+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 re)))) (+.f64 (*.f64 -1/8 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 2)) (pow.f64 (sqrt.f64 -1) 3)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -1)) (sqrt.f64 re))))
(fma.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re))) (fma.f64 -1/8 (*.f64 (/.f64 (sqrt.f64 2) (/.f64 (pow.f64 (sqrt.f64 -1) 3) (*.f64 im im))) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1) (sqrt.f64 re)))))
(fma.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re))) (fma.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1) (sqrt.f64 re)) (*.f64 -1/8 (*.f64 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -1)) (/.f64 (*.f64 im im) -1)) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))))))
(fma.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1) (sqrt.f64 re)) (fma.f64 1/2 (*.f64 (*.f64 im (/.f64 (sqrt.f64 2) (sqrt.f64 -1))) (sqrt.f64 (/.f64 1 re))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 1/8 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 im im)) (sqrt.f64 -1))))))
(fma.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1) (sqrt.f64 re)) (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -1)) (+.f64 (*.f64 1/2 (*.f64 im (sqrt.f64 (/.f64 1 re)))) (*.f64 (*.f64 (/.f64 im -1) im) (*.f64 -1/8 (sqrt.f64 (/.f64 1 (pow.f64 re 3))))))))
(+.f64 (*.f64 1/16 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 3)) (pow.f64 (sqrt.f64 -1) 5)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 re)))) (+.f64 (*.f64 -1/8 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 2)) (pow.f64 (sqrt.f64 -1) 3)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -1)) (sqrt.f64 re)))))
(fma.f64 1/16 (*.f64 (/.f64 (sqrt.f64 2) (/.f64 (pow.f64 (sqrt.f64 -1) 5) (pow.f64 im 3))) (sqrt.f64 (/.f64 1 (pow.f64 re 5)))) (fma.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re))) (fma.f64 -1/8 (*.f64 (/.f64 (sqrt.f64 2) (/.f64 (pow.f64 (sqrt.f64 -1) 3) (*.f64 im im))) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1) (sqrt.f64 re))))))
(fma.f64 1/16 (*.f64 (/.f64 (pow.f64 im 3) (/.f64 (pow.f64 (sqrt.f64 -1) 5) (sqrt.f64 2))) (sqrt.f64 (/.f64 1 (pow.f64 re 5)))) (fma.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 -1) im)) (sqrt.f64 (/.f64 1 re))) (fma.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1) (sqrt.f64 re)) (*.f64 -1/8 (*.f64 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -1)) (/.f64 (*.f64 im im) -1)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))))))
(fma.f64 1/2 (*.f64 (*.f64 im (/.f64 (sqrt.f64 2) (sqrt.f64 -1))) (sqrt.f64 (/.f64 1 re))) (fma.f64 1/16 (*.f64 (*.f64 (/.f64 (pow.f64 im 3) (pow.f64 (sqrt.f64 -1) 5)) (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (pow.f64 re 5)))) (fma.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1) (sqrt.f64 re)) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 1/8 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 im im)) (sqrt.f64 -1)))))))
(fma.f64 1/16 (*.f64 (*.f64 (pow.f64 im 3) (/.f64 (sqrt.f64 2) (pow.f64 (sqrt.f64 -1) 5))) (sqrt.f64 (/.f64 1 (pow.f64 re 5)))) (fma.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -1) (sqrt.f64 re)) (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -1)) (+.f64 (*.f64 1/2 (*.f64 im (sqrt.f64 (/.f64 1 re)))) (*.f64 (*.f64 (/.f64 im -1) im) (*.f64 -1/8 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))))))))
(*.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 re (*.f64 (sqrt.f64 (/.f64 1 im)) -1/2))))
(*.f64 (sqrt.f64 2) (fma.f64 re (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) (sqrt.f64 im)))
(+.f64 (*.f64 -1/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (*.f64 (sqrt.f64 2) (sqrt.f64 im))))
(fma.f64 -1/2 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 (/.f64 1 im)))) (fma.f64 -1/8 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 re re) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (*.f64 (sqrt.f64 2) (sqrt.f64 im))))
(fma.f64 -1/2 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 (/.f64 1 im)))) (fma.f64 (sqrt.f64 2) (sqrt.f64 im) (*.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 2) (fma.f64 re (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) (*.f64 re (*.f64 re (*.f64 -1/8 (sqrt.f64 (/.f64 1 (pow.f64 im 3)))))))))
(*.f64 (sqrt.f64 2) (fma.f64 re (*.f64 -1/2 (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/2 (*.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (/.f64 1 im)))) (+.f64 (*.f64 -1/16 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 3)) (sqrt.f64 (/.f64 1 (pow.f64 im 5))))) (+.f64 (*.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 2)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))))
(fma.f64 -1/2 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 (/.f64 1 im)))) (fma.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 (sqrt.f64 2) (*.f64 (*.f64 re re) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))))
(fma.f64 -1/2 (*.f64 (sqrt.f64 2) (*.f64 re (sqrt.f64 (/.f64 1 im)))) (fma.f64 -1/16 (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 re 3) (sqrt.f64 (/.f64 1 (pow.f64 im 5))))) (fma.f64 (sqrt.f64 2) (sqrt.f64 im) (*.f64 -1/8 (*.f64 (*.f64 (sqrt.f64 2) (*.f64 re re)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))))))
(+.f64 (*.f64 (sqrt.f64 2) (fma.f64 -1/8 (*.f64 re (*.f64 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))) (*.f64 (pow.f64 re 3) (*.f64 -1/16 (sqrt.f64 (/.f64 1 (pow.f64 im 5))))))))
(*.f64 (sqrt.f64 2) (+.f64 (fma.f64 re (*.f64 -1/2 (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 -1/16 (*.f64 re (sqrt.f64 (/.f64 1 (pow.f64 im 5)))))))))
(*.f64 (sqrt.f64 2) (+.f64 (fma.f64 re (*.f64 -1/2 (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 -1) (sqrt.f64 re))
(+.f64 (*.f64 1/2 (*.f64 (/.f64 im (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 re)))) (*.f64 (sqrt.f64 -1) (sqrt.f64 re)))
(fma.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 im (sqrt.f64 -1))) (*.f64 (sqrt.f64 -1) (sqrt.f64 re)))
(fma.f64 (sqrt.f64 -1) (sqrt.f64 re) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 im (sqrt.f64 -1)))))
(fma.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (*.f64 1/2 im) (sqrt.f64 -1)) (*.f64 (sqrt.f64 -1) (sqrt.f64 re)))
(fma.f64 (sqrt.f64 -1) (sqrt.f64 re) (*.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 (*.f64 1/2 im) (sqrt.f64 -1))))
(+.f64 (*.f64 1/2 (*.f64 (/.f64 im (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 re)))) (+.f64 (*.f64 -1/8 (*.f64 (/.f64 (pow.f64 im 2) (pow.f64 (sqrt.f64 -1) 3)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) (*.f64 (sqrt.f64 -1) (sqrt.f64 re))))
(fma.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 im (sqrt.f64 -1))) (fma.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 (*.f64 im im) (pow.f64 (sqrt.f64 -1) 3))) (*.f64 (sqrt.f64 -1) (sqrt.f64 re))))
(fma.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 im (sqrt.f64 -1))) (fma.f64 (sqrt.f64 -1) (sqrt.f64 re) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 (/.f64 im (sqrt.f64 -1)) (/.f64 im -1))))))
(fma.f64 (sqrt.f64 -1) (sqrt.f64 re) (fma.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 im (sqrt.f64 -1))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 1/8 (/.f64 (*.f64 im im) (sqrt.f64 -1))))))
(fma.f64 (sqrt.f64 -1) (sqrt.f64 re) (*.f64 (/.f64 im (sqrt.f64 -1)) (+.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 re))) (*.f64 (*.f64 -1/8 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (/.f64 im -1)))))
(+.f64 (*.f64 1/2 (*.f64 (/.f64 im (sqrt.f64 -1)) (sqrt.f64 (/.f64 1 re)))) (+.f64 (*.f64 -1/8 (*.f64 (/.f64 (pow.f64 im 2) (pow.f64 (sqrt.f64 -1) 3)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) (+.f64 (*.f64 (sqrt.f64 -1) (sqrt.f64 re)) (*.f64 1/16 (*.f64 (/.f64 (pow.f64 im 3) (pow.f64 (sqrt.f64 -1) 5)) (sqrt.f64 (/.f64 1 (pow.f64 re 5))))))))
(fma.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 im (sqrt.f64 -1))) (fma.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 (*.f64 im im) (pow.f64 (sqrt.f64 -1) 3))) (fma.f64 (sqrt.f64 -1) (sqrt.f64 re) (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 (pow.f64 im 3) (pow.f64 (sqrt.f64 -1) 5)))))))
(fma.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 im (sqrt.f64 -1))) (fma.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 (/.f64 im (sqrt.f64 -1)) (/.f64 im -1))) (fma.f64 (sqrt.f64 -1) (sqrt.f64 re) (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 (pow.f64 im 3) (pow.f64 (sqrt.f64 -1) 5)))))))
(fma.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) (/.f64 im (sqrt.f64 -1))) (fma.f64 (sqrt.f64 -1) (sqrt.f64 re) (fma.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (*.f64 1/8 (/.f64 (*.f64 im im) (sqrt.f64 -1))) (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 (pow.f64 im 3) (pow.f64 (sqrt.f64 -1) 5)))))))
(+.f64 (fma.f64 (sqrt.f64 -1) (sqrt.f64 re) (*.f64 (/.f64 im (sqrt.f64 -1)) (+.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 re))) (*.f64 (*.f64 -1/8 (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (/.f64 im -1))))) (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 5))) (/.f64 (pow.f64 im 3) (pow.f64 (sqrt.f64 -1) 5)))))
(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 re (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) (sqrt.f64 im))
(+.f64 (sqrt.f64 im) (+.f64 (*.f64 -1/8 (*.f64 (pow.f64 re 2) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (*.f64 -1/2 (*.f64 re (sqrt.f64 (/.f64 1 im))))))
(+.f64 (sqrt.f64 im) (fma.f64 -1/8 (*.f64 (*.f64 re re) (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) (*.f64 (*.f64 -1/2 re) (sqrt.f64 (/.f64 1 im)))))
(+.f64 (sqrt.f64 im) (fma.f64 (*.f64 -1/8 (*.f64 re re)) (sqrt.f64 (/.f64 1 (pow.f64 im 3))) (*.f64 re (*.f64 (sqrt.f64 (/.f64 1 im)) -1/2))))
(fma.f64 re (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) (fma.f64 -1/8 (*.f64 re (*.f64 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 (*.f64 re re) (*.f64 -1/8 (sqrt.f64 (/.f64 1 (pow.f64 im 3)))) (sqrt.f64 im)))
(+.f64 (sqrt.f64 im) (+.f64 (*.f64 -1/8 (*.f64 (pow.f64 re 2) (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (+.f64 (*.f64 -1/2 (*.f64 re (sqrt.f64 (/.f64 1 im)))) (*.f64 -1/16 (*.f64 (pow.f64 re 3) (sqrt.f64 (/.f64 1 (pow.f64 im 5))))))))
(+.f64 (sqrt.f64 im) (fma.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))) (*.f64 -1/16 (*.f64 (pow.f64 re 3) (sqrt.f64 (/.f64 1 (pow.f64 im 5))))))))
(+.f64 (sqrt.f64 im) (fma.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))) (*.f64 (pow.f64 re 3) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 im 5))) -1/16)))))
(+.f64 (sqrt.f64 im) (fma.f64 re (*.f64 -1/2 (sqrt.f64 (/.f64 1 im))) (fma.f64 -1/8 (*.f64 re (*.f64 re (sqrt.f64 (/.f64 1 (pow.f64 im 3))))) (*.f64 (pow.f64 re 3) (*.f64 -1/16 (sqrt.f64 (/.f64 1 (pow.f64 im 5))))))))
(+.f64 (fma.f64 re (*.f64 -1/2 (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 -1/16 (*.f64 re (sqrt.f64 (/.f64 1 (pow.f64 im 5))))))))
(+.f64 (fma.f64 re (*.f64 -1/2 (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)))))

localize8.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 17 to 7 computations (58.8% saved)

series6.0ms (0.1%)

Counts
1 → 12
Calls

6 calls:

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

rewrite45.0ms (0.6%)

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

Useful iterations: 0 (0.0ms)

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

simplify7.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

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

localize182.0ms (2.3%)

Local error

Found 2 expressions with local error:

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

Compiled 27 to 8 computations (70.4% saved)

series4.0ms (0%)

Counts
2 → 36
Calls

12 calls:

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

rewrite51.0ms (0.6%)

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

Useful iterations: 1 (0.0ms)

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

simplify92.0ms (1.1%)

Algorithm
egg-herbie
Rules
688×fma-def_binary64
618×fma-neg_binary64
477×associate-*l*_binary64
434×unswap-sqr_binary64
423×associate-*r/_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
012284
123284
242284
378284
4181284
5564284
62025284
74865284
86506284
97954284
Stop Event
node limit
Counts
80 → 49
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 -1 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 -1 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 -1 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 -1 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.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 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 -1 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(neg.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 im))
(*.f64 im (neg.f64 (sqrt.f64 (/.f64 1 re))))
(*.f64 -1 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(neg.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 im))
(*.f64 im (neg.f64 (sqrt.f64 (/.f64 1 re))))
(*.f64 -1 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(neg.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 im))
(*.f64 im (neg.f64 (sqrt.f64 (/.f64 1 re))))
(*.f64 -1 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(neg.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 im))
(*.f64 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 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))

localize12.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 27 to 19 computations (29.6% saved)

series3.0ms (0%)

Counts
2 → 0
Calls

9 calls:

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

rewrite50.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
589×pow1_binary64
543×add-log-exp_binary64
543×log1p-expm1-u_binary64
543×expm1-log1p-u_binary64
529×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify7.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

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

localize19.0ms (0.2%)

Local error

Found 3 expressions with local error:

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

Compiled 41 to 31 computations (24.4% saved)

series27.0ms (0.3%)

Counts
3 → 24
Calls

15 calls:

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

rewrite75.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
929×pow1_binary64
860×add-log-exp_binary64
860×log1p-expm1-u_binary64
860×expm1-log1p-u_binary64
841×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify15.0ms (0.2%)

Algorithm
egg-herbie
Rules
29×associate-*l*_binary64
21×associate-*r*_binary64
13×*-commutative_binary64
1-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
014396
125396
248396
389396
492396
Stop Event
saturated
Counts
80 → 60
Calls
Call 1
Inputs
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re)))
Outputs
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re))))

eval101.0ms (1.3%)

Compiler

Compiled 3352 to 2363 computations (29.5% saved)

prune45.0ms (0.6%)

Pruning

13 alts after pruning (8 fresh and 5 done)

PrunedKeptTotal
New2385243
Fresh235
Picked101
Done257
Total24313256
Error
0.1b
Counts
256 → 13
Alt Table
Click to see full alt table
StatusErrorProgram
46.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 re -2))))
30.2b
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
53.1b
(*.f64 1/2 (sqrt.f64 (/.f64 im (/.f64 re im))))
49.5b
(*.f64 1/2 (*.f64 (*.f64 im (exp.f64 (log.f64 (sqrt.f64 (/.f64 1/2 re))))) (sqrt.f64 2)))
48.7b
(*.f64 1/2 (/.f64 im (sqrt.f64 re)))
12.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))))
28.4b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 im re))))
46.4b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 (-.f64 (*.f64 (*.f64 (/.f64 im re) im) -1/2) re) re))))
50.2b
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 im re)) (sqrt.f64 im)))
48.7b
(*.f64 1/2 (pow.f64 (/.f64 (sqrt.f64 re) im) -1))
28.6b
(*.f64 1/2 (*.f64 (sqrt.f64 (-.f64 im re)) (sqrt.f64 2)))
49.6b
(*.f64 1/2 (*.f64 (exp.f64 (log.f64 (pow.f64 re -1/2))) im))
48.7b
(*.f64 1/2 (*.f64 (pow.f64 re -1/2) im))
Compiler

Compiled 237 to 187 computations (21.1% saved)

localize12.0ms (0.1%)

Compiler

Compiled 28 to 23 computations (17.9% saved)

localize34.0ms (0.4%)

Local error

Found 1 expressions with local error:

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

Compiled 21 to 14 computations (33.3% saved)

series4.0ms (0%)

Counts
1 → 12
Calls

6 calls:

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

rewrite39.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
551×pow1_binary64
511×add-log-exp_binary64
511×log1p-expm1-u_binary64
511×expm1-log1p-u_binary64
499×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify7.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

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

localize180.0ms (2.2%)

Local error

Found 4 expressions with local error:

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

Compiled 85 to 38 computations (55.3% saved)

series13.0ms (0.2%)

Counts
4 → 84
Calls

24 calls:

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

rewrite136.0ms (1.7%)

Algorithm
batch-egg-rewrite
Rules
692×log-prod_binary64
580×fma-def_binary64
353×pow2_binary64
345×fma-neg_binary64
246×pow1/3_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify162.0ms (2%)

Algorithm
egg-herbie
Rules
720×associate-/r/_binary64
567×fma-neg_binary64
475×associate-/l/_binary64
370×associate-/r*_binary64
370×fma-def_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0981431
12771410
29071364
346361346
Stop Event
node limit
Counts
417 → 368
Calls
Call 1
Inputs
(*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -2)) (sqrt.f64 re))
(+.f64 (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -2)) (sqrt.f64 re)) (*.f64 -1/4 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 2)) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))))
(+.f64 (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -2)) (sqrt.f64 re)) (+.f64 (*.f64 -1/32 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 4)) (pow.f64 (sqrt.f64 -2) 3)) (sqrt.f64 (/.f64 1 (pow.f64 re 7))))) (*.f64 -1/4 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 2)) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))))))
(+.f64 (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -2)) (sqrt.f64 re)) (+.f64 (*.f64 -1/128 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 6)) (pow.f64 (sqrt.f64 -2) 5)) (sqrt.f64 (/.f64 1 (pow.f64 re 11))))) (+.f64 (*.f64 -1/32 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 4)) (pow.f64 (sqrt.f64 -2) 3)) (sqrt.f64 (/.f64 1 (pow.f64 re 7))))) (*.f64 -1/4 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 2)) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))))))
(*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (sqrt.f64 -2) im)) (sqrt.f64 (/.f64 1 re)))
(+.f64 (*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (sqrt.f64 -2) im)) (sqrt.f64 (/.f64 1 re))) (*.f64 (/.f64 (sqrt.f64 -2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (pow.f64 re 3))))
(+.f64 (*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (sqrt.f64 -2) im)) (sqrt.f64 (/.f64 1 re))) (+.f64 (*.f64 -1/2 (*.f64 (/.f64 (sqrt.f64 -2) (*.f64 (pow.f64 (sqrt.f64 1/2) 3) (pow.f64 im 3))) (sqrt.f64 (pow.f64 re 7)))) (*.f64 (/.f64 (sqrt.f64 -2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (pow.f64 re 3)))))
(+.f64 (*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (sqrt.f64 -2) im)) (sqrt.f64 (/.f64 1 re))) (+.f64 (*.f64 -1/2 (*.f64 (/.f64 (sqrt.f64 -2) (*.f64 (pow.f64 (sqrt.f64 1/2) 3) (pow.f64 im 3))) (sqrt.f64 (pow.f64 re 7)))) (+.f64 (*.f64 (/.f64 (sqrt.f64 -2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (pow.f64 re 3))) (*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 -2) (*.f64 (pow.f64 (sqrt.f64 1/2) 5) (pow.f64 im 5))) (sqrt.f64 (pow.f64 re 11)))))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (sqrt.f64 -2) im)) (sqrt.f64 (/.f64 1 re))))
(+.f64 (*.f64 -1 (*.f64 (/.f64 (sqrt.f64 -2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (pow.f64 re 3)))) (*.f64 -1 (*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (sqrt.f64 -2) im)) (sqrt.f64 (/.f64 1 re)))))
(+.f64 (*.f64 -1 (*.f64 (/.f64 (sqrt.f64 -2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (pow.f64 re 3)))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 -2) (*.f64 (pow.f64 (sqrt.f64 1/2) 3) (pow.f64 im 3))) (sqrt.f64 (pow.f64 re 7)))) (*.f64 -1 (*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (sqrt.f64 -2) im)) (sqrt.f64 (/.f64 1 re))))))
(+.f64 (*.f64 -1/2 (*.f64 (/.f64 (sqrt.f64 -2) (*.f64 (pow.f64 (sqrt.f64 1/2) 5) (pow.f64 im 5))) (sqrt.f64 (pow.f64 re 11)))) (+.f64 (*.f64 -1 (*.f64 (/.f64 (sqrt.f64 -2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (pow.f64 re 3)))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 -2) (*.f64 (pow.f64 (sqrt.f64 1/2) 3) (pow.f64 im 3))) (sqrt.f64 (pow.f64 re 7)))) (*.f64 -1 (*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (sqrt.f64 -2) 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 re)
(+.f64 (*.f64 -1 re) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 -1 re) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 -1 re) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(+.f64 (*.f64 -1 re) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 -1 re) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 -1 re) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(+.f64 (*.f64 -1 re) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 -1 re) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 -1 re) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(+.f64 (*.f64 -1 re) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 -1 re) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 -1 re) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(*.f64 -1 re)
(+.f64 (*.f64 -1 re) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 -1 re) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 -1 re) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(*.f64 -1 re)
(+.f64 (*.f64 -1 re) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 -1 re) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 -1 re) (*.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 -2 re))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -2 re))
(*.f64 -1/2 (/.f64 (pow.f64 im 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 -2 re))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -2 re))
(*.f64 -1/2 (/.f64 (pow.f64 im 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 -2 re))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -2 re))
(*.f64 -1/2 (/.f64 (pow.f64 im 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 -2 re))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -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 -2 re))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -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 -2 re))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -2 re))
Outputs
(*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -2)) (sqrt.f64 re))
(*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -2) (sqrt.f64 re)))
(*.f64 (*.f64 (sqrt.f64 re) (sqrt.f64 2)) (sqrt.f64 -2))
(+.f64 (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -2)) (sqrt.f64 re)) (*.f64 -1/4 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 2)) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))))
(fma.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -2)) (sqrt.f64 re) (*.f64 -1/4 (*.f64 (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 -2) (*.f64 im im))) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))))
(fma.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -2) (sqrt.f64 re)) (*.f64 -1/4 (*.f64 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -2)) (*.f64 im im)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))))
(fma.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -2) (sqrt.f64 re)) (*.f64 -1/4 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -2)) (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))))))
(fma.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -2) (sqrt.f64 re)) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 3))) (/.f64 (*.f64 (*.f64 -1/4 im) (*.f64 (sqrt.f64 2) im)) (sqrt.f64 -2))))
(+.f64 (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -2)) (sqrt.f64 re)) (+.f64 (*.f64 -1/32 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 4)) (pow.f64 (sqrt.f64 -2) 3)) (sqrt.f64 (/.f64 1 (pow.f64 re 7))))) (*.f64 -1/4 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 2)) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))))))
(fma.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -2)) (sqrt.f64 re) (fma.f64 -1/32 (*.f64 (/.f64 (sqrt.f64 2) (/.f64 (pow.f64 (sqrt.f64 -2) 3) (pow.f64 im 4))) (sqrt.f64 (/.f64 1 (pow.f64 re 7)))) (*.f64 -1/4 (*.f64 (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 -2) (*.f64 im im))) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))))))
(fma.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -2) (sqrt.f64 re)) (fma.f64 -1/4 (*.f64 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -2)) (*.f64 im im)) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (*.f64 -1/32 (*.f64 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -2)) (/.f64 (pow.f64 im 4) -2)) (sqrt.f64 (/.f64 1 (pow.f64 re 7)))))))
(fma.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -2) (sqrt.f64 re)) (fma.f64 -1/4 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -2)) (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) (*.f64 (/.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (/.f64 (sqrt.f64 -2) (*.f64 (sqrt.f64 2) (pow.f64 im 4)))) 1/64)))
(fma.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -2) (sqrt.f64 re)) (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -2)) (+.f64 (*.f64 (*.f64 im im) (*.f64 -1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) (*.f64 (/.f64 (pow.f64 im 4) -2) (*.f64 -1/32 (sqrt.f64 (/.f64 1 (pow.f64 re 7))))))))
(+.f64 (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -2)) (sqrt.f64 re)) (+.f64 (*.f64 -1/128 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 6)) (pow.f64 (sqrt.f64 -2) 5)) (sqrt.f64 (/.f64 1 (pow.f64 re 11))))) (+.f64 (*.f64 -1/32 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 4)) (pow.f64 (sqrt.f64 -2) 3)) (sqrt.f64 (/.f64 1 (pow.f64 re 7))))) (*.f64 -1/4 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 2)) (sqrt.f64 -2)) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))))))
(fma.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 -2)) (sqrt.f64 re) (fma.f64 -1/128 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 6)) (pow.f64 (sqrt.f64 -2) 5)) (sqrt.f64 (/.f64 1 (pow.f64 re 11)))) (fma.f64 -1/32 (*.f64 (/.f64 (sqrt.f64 2) (/.f64 (pow.f64 (sqrt.f64 -2) 3) (pow.f64 im 4))) (sqrt.f64 (/.f64 1 (pow.f64 re 7)))) (*.f64 -1/4 (*.f64 (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 -2) (*.f64 im im))) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))))))
(fma.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -2) (sqrt.f64 re)) (fma.f64 -1/128 (*.f64 (*.f64 (/.f64 (sqrt.f64 2) (pow.f64 (sqrt.f64 -2) 5)) (pow.f64 im 6)) (sqrt.f64 (/.f64 1 (pow.f64 re 11)))) (fma.f64 -1/4 (*.f64 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -2)) (*.f64 im im)) (sqrt.f64 (/.f64 1 (pow.f64 re 3)))) (*.f64 -1/32 (*.f64 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -2)) (/.f64 (pow.f64 im 4) -2)) (sqrt.f64 (/.f64 1 (pow.f64 re 7))))))))
(fma.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -2) (sqrt.f64 re)) (fma.f64 -1/4 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -2)) (*.f64 (*.f64 im im) (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) (fma.f64 (*.f64 (pow.f64 im 6) (/.f64 (sqrt.f64 2) (pow.f64 (sqrt.f64 -2) 5))) (*.f64 -1/128 (sqrt.f64 (/.f64 1 (pow.f64 re 11)))) (*.f64 (/.f64 (sqrt.f64 (/.f64 1 (pow.f64 re 7))) (/.f64 (sqrt.f64 -2) (*.f64 (sqrt.f64 2) (pow.f64 im 4)))) 1/64))))
(fma.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -2) (sqrt.f64 re)) (fma.f64 -1/128 (*.f64 (*.f64 (pow.f64 im 6) (/.f64 (sqrt.f64 2) (pow.f64 (sqrt.f64 -2) 5))) (sqrt.f64 (/.f64 1 (pow.f64 re 11)))) (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -2)) (+.f64 (*.f64 (*.f64 im im) (*.f64 -1/4 (sqrt.f64 (/.f64 1 (pow.f64 re 3))))) (*.f64 (/.f64 (pow.f64 im 4) -2) (*.f64 -1/32 (sqrt.f64 (/.f64 1 (pow.f64 re 7)))))))))
(*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (sqrt.f64 -2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 (sqrt.f64 -2) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -2) (sqrt.f64 1/2)) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 im (sqrt.f64 1/2))) (sqrt.f64 -2))
(*.f64 im (*.f64 (sqrt.f64 (/.f64 1 re)) (*.f64 (sqrt.f64 -2) (sqrt.f64 1/2))))
(+.f64 (*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (sqrt.f64 -2) im)) (sqrt.f64 (/.f64 1 re))) (*.f64 (/.f64 (sqrt.f64 -2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (pow.f64 re 3))))
(fma.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (sqrt.f64 -2) im)) (sqrt.f64 (/.f64 1 re)) (*.f64 (/.f64 (sqrt.f64 -2) (*.f64 im (sqrt.f64 1/2))) (sqrt.f64 (pow.f64 re 3))))
(fma.f64 (/.f64 (sqrt.f64 -2) (*.f64 im (sqrt.f64 1/2))) (sqrt.f64 (pow.f64 re 3)) (*.f64 (*.f64 (sqrt.f64 -2) (sqrt.f64 1/2)) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(fma.f64 (sqrt.f64 1/2) (*.f64 (*.f64 (sqrt.f64 -2) im) (sqrt.f64 (/.f64 1 re))) (*.f64 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2)) (/.f64 (pow.f64 re 3/2) im)))
(fma.f64 (sqrt.f64 1/2) (*.f64 (*.f64 (sqrt.f64 -2) im) (sqrt.f64 (/.f64 1 re))) (*.f64 (/.f64 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2)) im) (pow.f64 re 3/2)))
(+.f64 (*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (sqrt.f64 -2) im)) (sqrt.f64 (/.f64 1 re))) (+.f64 (*.f64 -1/2 (*.f64 (/.f64 (sqrt.f64 -2) (*.f64 (pow.f64 (sqrt.f64 1/2) 3) (pow.f64 im 3))) (sqrt.f64 (pow.f64 re 7)))) (*.f64 (/.f64 (sqrt.f64 -2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (pow.f64 re 3)))))
(fma.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (sqrt.f64 -2) im)) (sqrt.f64 (/.f64 1 re)) (fma.f64 -1/2 (*.f64 (/.f64 (sqrt.f64 -2) (*.f64 (pow.f64 (sqrt.f64 1/2) 3) (pow.f64 im 3))) (sqrt.f64 (pow.f64 re 7))) (*.f64 (/.f64 (sqrt.f64 -2) (*.f64 im (sqrt.f64 1/2))) (sqrt.f64 (pow.f64 re 3)))))
(fma.f64 (sqrt.f64 1/2) (*.f64 (sqrt.f64 -2) (*.f64 im (sqrt.f64 (/.f64 1 re)))) (fma.f64 (/.f64 (sqrt.f64 -2) (*.f64 im (sqrt.f64 1/2))) (sqrt.f64 (pow.f64 re 3)) (*.f64 -1/2 (/.f64 (/.f64 (*.f64 (sqrt.f64 -2) (sqrt.f64 (pow.f64 re 7))) (pow.f64 im 3)) (*.f64 1/2 (sqrt.f64 1/2))))))
(fma.f64 (sqrt.f64 1/2) (*.f64 (*.f64 (sqrt.f64 -2) im) (sqrt.f64 (/.f64 1 re))) (fma.f64 (/.f64 (sqrt.f64 -2) (*.f64 im (sqrt.f64 1/2))) (pow.f64 re 3/2) (*.f64 (pow.f64 re 7/2) (*.f64 -1 (/.f64 (sqrt.f64 -2) (*.f64 (sqrt.f64 1/2) (pow.f64 im 3)))))))
(fma.f64 (sqrt.f64 1/2) (*.f64 (*.f64 (sqrt.f64 -2) im) (sqrt.f64 (/.f64 1 re))) (-.f64 (*.f64 (/.f64 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2)) im) (pow.f64 re 3/2)) (/.f64 (sqrt.f64 -2) (*.f64 (sqrt.f64 1/2) (/.f64 (pow.f64 im 3) (pow.f64 re 7/2))))))
(+.f64 (*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (sqrt.f64 -2) im)) (sqrt.f64 (/.f64 1 re))) (+.f64 (*.f64 -1/2 (*.f64 (/.f64 (sqrt.f64 -2) (*.f64 (pow.f64 (sqrt.f64 1/2) 3) (pow.f64 im 3))) (sqrt.f64 (pow.f64 re 7)))) (+.f64 (*.f64 (/.f64 (sqrt.f64 -2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (pow.f64 re 3))) (*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 -2) (*.f64 (pow.f64 (sqrt.f64 1/2) 5) (pow.f64 im 5))) (sqrt.f64 (pow.f64 re 11)))))))
(fma.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (sqrt.f64 -2) im)) (sqrt.f64 (/.f64 1 re)) (fma.f64 -1/2 (*.f64 (/.f64 (sqrt.f64 -2) (*.f64 (pow.f64 (sqrt.f64 1/2) 3) (pow.f64 im 3))) (sqrt.f64 (pow.f64 re 7))) (fma.f64 (/.f64 (sqrt.f64 -2) (*.f64 im (sqrt.f64 1/2))) (sqrt.f64 (pow.f64 re 3)) (*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 -2) (*.f64 (pow.f64 (sqrt.f64 1/2) 5) (pow.f64 im 5))) (sqrt.f64 (pow.f64 re 11)))))))
(fma.f64 (sqrt.f64 1/2) (*.f64 (sqrt.f64 -2) (*.f64 im (sqrt.f64 (/.f64 1 re)))) (fma.f64 -1/2 (/.f64 (/.f64 (*.f64 (sqrt.f64 -2) (sqrt.f64 (pow.f64 re 7))) (pow.f64 im 3)) (*.f64 1/2 (sqrt.f64 1/2))) (fma.f64 1/2 (/.f64 (/.f64 (*.f64 (sqrt.f64 -2) (sqrt.f64 (pow.f64 re 11))) (pow.f64 im 5)) (pow.f64 (sqrt.f64 1/2) 5)) (*.f64 (/.f64 (sqrt.f64 -2) (*.f64 im (sqrt.f64 1/2))) (sqrt.f64 (pow.f64 re 3))))))
(fma.f64 (sqrt.f64 1/2) (*.f64 (*.f64 (sqrt.f64 -2) im) (sqrt.f64 (/.f64 1 re))) (fma.f64 1/2 (*.f64 (/.f64 (sqrt.f64 -2) (pow.f64 (sqrt.f64 1/2) 5)) (/.f64 (pow.f64 re 11/2) (pow.f64 im 5))) (fma.f64 (/.f64 (sqrt.f64 -2) (*.f64 im (sqrt.f64 1/2))) (pow.f64 re 3/2) (*.f64 (pow.f64 re 7/2) (*.f64 -1 (/.f64 (sqrt.f64 -2) (*.f64 (sqrt.f64 1/2) (pow.f64 im 3))))))))
(fma.f64 (sqrt.f64 1/2) (*.f64 (*.f64 (sqrt.f64 -2) im) (sqrt.f64 (/.f64 1 re))) (fma.f64 1/2 (/.f64 (*.f64 (/.f64 (pow.f64 re 11/2) (pow.f64 im 5)) (sqrt.f64 -2)) (pow.f64 (sqrt.f64 1/2) 5)) (-.f64 (*.f64 (/.f64 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2)) im) (pow.f64 re 3/2)) (/.f64 (sqrt.f64 -2) (*.f64 (sqrt.f64 1/2) (/.f64 (pow.f64 im 3) (pow.f64 re 7/2)))))))
(*.f64 -1 (*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (sqrt.f64 -2) im)) (sqrt.f64 (/.f64 1 re))))
(neg.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 (sqrt.f64 -2) im) (sqrt.f64 (/.f64 1 re)))))
(*.f64 (*.f64 im (*.f64 (sqrt.f64 -2) (sqrt.f64 1/2))) (neg.f64 (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 -2) im) (neg.f64 (*.f64 (sqrt.f64 1/2) (sqrt.f64 (/.f64 1 re)))))
(*.f64 (*.f64 (sqrt.f64 -2) im) (*.f64 (sqrt.f64 (/.f64 1 re)) (neg.f64 (sqrt.f64 1/2))))
(+.f64 (*.f64 -1 (*.f64 (/.f64 (sqrt.f64 -2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (pow.f64 re 3)))) (*.f64 -1 (*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (sqrt.f64 -2) im)) (sqrt.f64 (/.f64 1 re)))))
(*.f64 -1 (fma.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (sqrt.f64 -2) im)) (sqrt.f64 (/.f64 1 re)) (*.f64 (/.f64 (sqrt.f64 -2) (*.f64 im (sqrt.f64 1/2))) (sqrt.f64 (pow.f64 re 3)))))
(neg.f64 (fma.f64 (/.f64 (sqrt.f64 -2) (*.f64 im (sqrt.f64 1/2))) (sqrt.f64 (pow.f64 re 3)) (*.f64 (*.f64 (sqrt.f64 -2) (sqrt.f64 1/2)) (*.f64 im (sqrt.f64 (/.f64 1 re))))))
(neg.f64 (fma.f64 (sqrt.f64 1/2) (*.f64 (*.f64 (sqrt.f64 -2) im) (sqrt.f64 (/.f64 1 re))) (*.f64 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2)) (/.f64 (pow.f64 re 3/2) im))))
(neg.f64 (fma.f64 (sqrt.f64 1/2) (*.f64 (*.f64 (sqrt.f64 -2) im) (sqrt.f64 (/.f64 1 re))) (*.f64 (/.f64 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2)) im) (pow.f64 re 3/2))))
(+.f64 (*.f64 -1 (*.f64 (/.f64 (sqrt.f64 -2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (pow.f64 re 3)))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 -2) (*.f64 (pow.f64 (sqrt.f64 1/2) 3) (pow.f64 im 3))) (sqrt.f64 (pow.f64 re 7)))) (*.f64 -1 (*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (sqrt.f64 -2) im)) (sqrt.f64 (/.f64 1 re))))))
(fma.f64 -1 (*.f64 (/.f64 (sqrt.f64 -2) (*.f64 im (sqrt.f64 1/2))) (sqrt.f64 (pow.f64 re 3))) (fma.f64 1/2 (*.f64 (/.f64 (sqrt.f64 -2) (*.f64 (pow.f64 (sqrt.f64 1/2) 3) (pow.f64 im 3))) (sqrt.f64 (pow.f64 re 7))) (neg.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 (sqrt.f64 -2) im) (sqrt.f64 (/.f64 1 re)))))))
(-.f64 (-.f64 (*.f64 1/2 (/.f64 (/.f64 (*.f64 (sqrt.f64 -2) (sqrt.f64 (pow.f64 re 7))) (pow.f64 im 3)) (*.f64 1/2 (sqrt.f64 1/2)))) (*.f64 (*.f64 (sqrt.f64 -2) (sqrt.f64 1/2)) (*.f64 im (sqrt.f64 (/.f64 1 re))))) (*.f64 (/.f64 (sqrt.f64 -2) (*.f64 im (sqrt.f64 1/2))) (sqrt.f64 (pow.f64 re 3))))
(-.f64 (*.f64 1 (/.f64 (*.f64 (sqrt.f64 -2) (pow.f64 re 7/2)) (*.f64 (sqrt.f64 1/2) (pow.f64 im 3)))) (fma.f64 (sqrt.f64 1/2) (*.f64 (*.f64 (sqrt.f64 -2) im) (sqrt.f64 (/.f64 1 re))) (*.f64 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2)) (/.f64 (pow.f64 re 3/2) im))))
(-.f64 (/.f64 (sqrt.f64 -2) (*.f64 (sqrt.f64 1/2) (/.f64 (pow.f64 im 3) (pow.f64 re 7/2)))) (fma.f64 (sqrt.f64 1/2) (*.f64 (*.f64 (sqrt.f64 -2) im) (sqrt.f64 (/.f64 1 re))) (*.f64 (/.f64 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2)) im) (pow.f64 re 3/2))))
(+.f64 (*.f64 -1/2 (*.f64 (/.f64 (sqrt.f64 -2) (*.f64 (pow.f64 (sqrt.f64 1/2) 5) (pow.f64 im 5))) (sqrt.f64 (pow.f64 re 11)))) (+.f64 (*.f64 -1 (*.f64 (/.f64 (sqrt.f64 -2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (pow.f64 re 3)))) (+.f64 (*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 -2) (*.f64 (pow.f64 (sqrt.f64 1/2) 3) (pow.f64 im 3))) (sqrt.f64 (pow.f64 re 7)))) (*.f64 -1 (*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (sqrt.f64 -2) im)) (sqrt.f64 (/.f64 1 re)))))))
(fma.f64 -1/2 (*.f64 (/.f64 (sqrt.f64 -2) (*.f64 (pow.f64 (sqrt.f64 1/2) 5) (pow.f64 im 5))) (sqrt.f64 (pow.f64 re 11))) (fma.f64 -1 (*.f64 (/.f64 (sqrt.f64 -2) (*.f64 im (sqrt.f64 1/2))) (sqrt.f64 (pow.f64 re 3))) (fma.f64 1/2 (*.f64 (/.f64 (sqrt.f64 -2) (*.f64 (pow.f64 (sqrt.f64 1/2) 3) (pow.f64 im 3))) (sqrt.f64 (pow.f64 re 7))) (neg.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 (sqrt.f64 -2) im) (sqrt.f64 (/.f64 1 re))))))))
(fma.f64 -1/2 (/.f64 (/.f64 (*.f64 (sqrt.f64 -2) (sqrt.f64 (pow.f64 re 11))) (pow.f64 im 5)) (pow.f64 (sqrt.f64 1/2) 5)) (-.f64 (-.f64 (*.f64 1/2 (/.f64 (/.f64 (*.f64 (sqrt.f64 -2) (sqrt.f64 (pow.f64 re 7))) (pow.f64 im 3)) (*.f64 1/2 (sqrt.f64 1/2)))) (*.f64 (*.f64 (sqrt.f64 -2) (sqrt.f64 1/2)) (*.f64 im (sqrt.f64 (/.f64 1 re))))) (*.f64 (/.f64 (sqrt.f64 -2) (*.f64 im (sqrt.f64 1/2))) (sqrt.f64 (pow.f64 re 3)))))
(fma.f64 -1/2 (*.f64 (/.f64 (sqrt.f64 -2) (pow.f64 (sqrt.f64 1/2) 5)) (/.f64 (pow.f64 re 11/2) (pow.f64 im 5))) (-.f64 (*.f64 1 (/.f64 (*.f64 (sqrt.f64 -2) (pow.f64 re 7/2)) (*.f64 (sqrt.f64 1/2) (pow.f64 im 3)))) (fma.f64 (sqrt.f64 1/2) (*.f64 (*.f64 (sqrt.f64 -2) im) (sqrt.f64 (/.f64 1 re))) (*.f64 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2)) (/.f64 (pow.f64 re 3/2) im)))))
(fma.f64 -1/2 (/.f64 (*.f64 (/.f64 (pow.f64 re 11/2) (pow.f64 im 5)) (sqrt.f64 -2)) (pow.f64 (sqrt.f64 1/2) 5)) (-.f64 (/.f64 (sqrt.f64 -2) (*.f64 (sqrt.f64 1/2) (/.f64 (pow.f64 im 3) (pow.f64 re 7/2)))) (fma.f64 (sqrt.f64 1/2) (*.f64 (*.f64 (sqrt.f64 -2) im) (sqrt.f64 (/.f64 1 re))) (*.f64 (/.f64 (/.f64 (sqrt.f64 -2) (sqrt.f64 1/2)) im) (pow.f64 re 3/2)))))
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(/.f64 (pow.f64 im 2) re)
(/.f64 (*.f64 im im) re)
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im re) im)
(*.f64 -1 re)
(neg.f64 re)
(+.f64 (*.f64 -1 re) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(fma.f64 -1 re (*.f64 -1/2 (/.f64 (*.f64 im im) re)))
(-.f64 (/.f64 -1/2 (/.f64 re (*.f64 im im))) re)
(-.f64 (/.f64 (*.f64 im im) (/.f64 re -1/2)) re)
(-.f64 (*.f64 -1/2 (*.f64 (/.f64 im re) im)) re)
(+.f64 (*.f64 -1 re) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(fma.f64 -1 re (*.f64 -1/2 (/.f64 (*.f64 im im) re)))
(-.f64 (/.f64 -1/2 (/.f64 re (*.f64 im im))) re)
(-.f64 (/.f64 (*.f64 im im) (/.f64 re -1/2)) re)
(-.f64 (*.f64 -1/2 (*.f64 (/.f64 im re) im)) re)
(+.f64 (*.f64 -1 re) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(fma.f64 -1 re (*.f64 -1/2 (/.f64 (*.f64 im im) re)))
(-.f64 (/.f64 -1/2 (/.f64 re (*.f64 im im))) re)
(-.f64 (/.f64 (*.f64 im im) (/.f64 re -1/2)) re)
(-.f64 (*.f64 -1/2 (*.f64 (/.f64 im re) im)) re)
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(/.f64 -1/2 (/.f64 re (*.f64 im im)))
(/.f64 (*.f64 im im) (/.f64 re -1/2))
(*.f64 -1/2 (*.f64 (/.f64 im re) im))
(+.f64 (*.f64 -1 re) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(fma.f64 -1 re (*.f64 -1/2 (/.f64 (*.f64 im im) re)))
(-.f64 (/.f64 -1/2 (/.f64 re (*.f64 im im))) re)
(-.f64 (/.f64 (*.f64 im im) (/.f64 re -1/2)) re)
(-.f64 (*.f64 -1/2 (*.f64 (/.f64 im re) im)) re)
(+.f64 (*.f64 -1 re) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(fma.f64 -1 re (*.f64 -1/2 (/.f64 (*.f64 im im) re)))
(-.f64 (/.f64 -1/2 (/.f64 re (*.f64 im im))) re)
(-.f64 (/.f64 (*.f64 im im) (/.f64 re -1/2)) re)
(-.f64 (*.f64 -1/2 (*.f64 (/.f64 im re) im)) re)
(+.f64 (*.f64 -1 re) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(fma.f64 -1 re (*.f64 -1/2 (/.f64 (*.f64 im im) re)))
(-.f64 (/.f64 -1/2 (/.f64 re (*.f64 im im))) re)
(-.f64 (/.f64 (*.f64 im im) (/.f64 re -1/2)) re)
(-.f64 (*.f64 -1/2 (*.f64 (/.f64 im re) im)) re)
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(/.f64 -1/2 (/.f64 re (*.f64 im im)))
(/.f64 (*.f64 im im) (/.f64 re -1/2))
(*.f64 -1/2 (*.f64 (/.f64 im re) im))
(+.f64 (*.f64 -1 re) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(fma.f64 -1 re (*.f64 -1/2 (/.f64 (*.f64 im im) re)))
(-.f64 (/.f64 -1/2 (/.f64 re (*.f64 im im))) re)
(-.f64 (/.f64 (*.f64 im im) (/.f64 re -1/2)) re)
(-.f64 (*.f64 -1/2 (*.f64 (/.f64 im re) im)) re)
(+.f64 (*.f64 -1 re) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(fma.f64 -1 re (*.f64 -1/2 (/.f64 (*.f64 im im) re)))
(-.f64 (/.f64 -1/2 (/.f64 re (*.f64 im im))) re)
(-.f64 (/.f64 (*.f64 im im) (/.f64 re -1/2)) re)
(-.f64 (*.f64 -1/2 (*.f64 (/.f64 im re) im)) re)
(+.f64 (*.f64 -1 re) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(fma.f64 -1 re (*.f64 -1/2 (/.f64 (*.f64 im im) re)))
(-.f64 (/.f64 -1/2 (/.f64 re (*.f64 im im))) re)
(-.f64 (/.f64 (*.f64 im im) (/.f64 re -1/2)) re)
(-.f64 (*.f64 -1/2 (*.f64 (/.f64 im re) im)) re)
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(/.f64 -1/2 (/.f64 re (*.f64 im im)))
(/.f64 (*.f64 im im) (/.f64 re -1/2))
(*.f64 -1/2 (*.f64 (/.f64 im re) im))
(+.f64 (*.f64 -1 re) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(fma.f64 -1 re (*.f64 -1/2 (/.f64 (*.f64 im im) re)))
(-.f64 (/.f64 -1/2 (/.f64 re (*.f64 im im))) re)
(-.f64 (/.f64 (*.f64 im im) (/.f64 re -1/2)) re)
(-.f64 (*.f64 -1/2 (*.f64 (/.f64 im re) im)) re)
(+.f64 (*.f64 -1 re) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(fma.f64 -1 re (*.f64 -1/2 (/.f64 (*.f64 im im) re)))
(-.f64 (/.f64 -1/2 (/.f64 re (*.f64 im im))) re)
(-.f64 (/.f64 (*.f64 im im) (/.f64 re -1/2)) re)
(-.f64 (*.f64 -1/2 (*.f64 (/.f64 im re) im)) re)
(+.f64 (*.f64 -1 re) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(fma.f64 -1 re (*.f64 -1/2 (/.f64 (*.f64 im im) re)))
(-.f64 (/.f64 -1/2 (/.f64 re (*.f64 im im))) re)
(-.f64 (/.f64 (*.f64 im im) (/.f64 re -1/2)) re)
(-.f64 (*.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 -1/2 (/.f64 (*.f64 im im) re)))
(-.f64 (/.f64 -1/2 (/.f64 re (*.f64 im im))) re)
(-.f64 (/.f64 (*.f64 im im) (/.f64 re -1/2)) re)
(-.f64 (*.f64 -1/2 (*.f64 (/.f64 im re) im)) re)
(+.f64 (*.f64 -1 re) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(fma.f64 -1 re (*.f64 -1/2 (/.f64 (*.f64 im im) re)))
(-.f64 (/.f64 -1/2 (/.f64 re (*.f64 im im))) re)
(-.f64 (/.f64 (*.f64 im im) (/.f64 re -1/2)) re)
(-.f64 (*.f64 -1/2 (*.f64 (/.f64 im re) im)) re)
(+.f64 (*.f64 -1 re) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(fma.f64 -1 re (*.f64 -1/2 (/.f64 (*.f64 im im) re)))
(-.f64 (/.f64 -1/2 (/.f64 re (*.f64 im im))) re)
(-.f64 (/.f64 (*.f64 im im) (/.f64 re -1/2)) re)
(-.f64 (*.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 -1/2 (/.f64 (*.f64 im im) re)))
(-.f64 (/.f64 -1/2 (/.f64 re (*.f64 im im))) re)
(-.f64 (/.f64 (*.f64 im im) (/.f64 re -1/2)) re)
(-.f64 (*.f64 -1/2 (*.f64 (/.f64 im re) im)) re)
(+.f64 (*.f64 -1 re) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(fma.f64 -1 re (*.f64 -1/2 (/.f64 (*.f64 im im) re)))
(-.f64 (/.f64 -1/2 (/.f64 re (*.f64 im im))) re)
(-.f64 (/.f64 (*.f64 im im) (/.f64 re -1/2)) re)
(-.f64 (*.f64 -1/2 (*.f64 (/.f64 im re) im)) re)
(+.f64 (*.f64 -1 re) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(fma.f64 -1 re (*.f64 -1/2 (/.f64 (*.f64 im im) re)))
(-.f64 (/.f64 -1/2 (/.f64 re (*.f64 im im))) re)
(-.f64 (/.f64 (*.f64 im im) (/.f64 re -1/2)) re)
(-.f64 (*.f64 -1/2 (*.f64 (/.f64 im re) im)) re)
(*.f64 -2 re)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -2 re))
(fma.f64 -1/2 (/.f64 (*.f64 im im) re) (*.f64 -2 re))
(fma.f64 -2 re (/.f64 -1/2 (/.f64 re (*.f64 im im))))
(fma.f64 -2 re (/.f64 (*.f64 im im) (/.f64 re -1/2)))
(fma.f64 -1/2 (*.f64 (/.f64 im re) im) (*.f64 -2 re))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -2 re))
(fma.f64 -1/2 (/.f64 (*.f64 im im) re) (*.f64 -2 re))
(fma.f64 -2 re (/.f64 -1/2 (/.f64 re (*.f64 im im))))
(fma.f64 -2 re (/.f64 (*.f64 im im) (/.f64 re -1/2)))
(fma.f64 -1/2 (*.f64 (/.f64 im re) im) (*.f64 -2 re))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -2 re))
(fma.f64 -1/2 (/.f64 (*.f64 im im) re) (*.f64 -2 re))
(fma.f64 -2 re (/.f64 -1/2 (/.f64 re (*.f64 im im))))
(fma.f64 -2 re (/.f64 (*.f64 im im) (/.f64 re -1/2)))
(fma.f64 -1/2 (*.f64 (/.f64 im re) im) (*.f64 -2 re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(/.f64 -1/2 (/.f64 re (*.f64 im im)))
(/.f64 (*.f64 im im) (/.f64 re -1/2))
(*.f64 -1/2 (*.f64 (/.f64 im re) im))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -2 re))
(fma.f64 -1/2 (/.f64 (*.f64 im im) re) (*.f64 -2 re))
(fma.f64 -2 re (/.f64 -1/2 (/.f64 re (*.f64 im im))))
(fma.f64 -2 re (/.f64 (*.f64 im im) (/.f64 re -1/2)))
(fma.f64 -1/2 (*.f64 (/.f64 im re) im) (*.f64 -2 re))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -2 re))
(fma.f64 -1/2 (/.f64 (*.f64 im im) re) (*.f64 -2 re))
(fma.f64 -2 re (/.f64 -1/2 (/.f64 re (*.f64 im im))))
(fma.f64 -2 re (/.f64 (*.f64 im im) (/.f64 re -1/2)))
(fma.f64 -1/2 (*.f64 (/.f64 im re) im) (*.f64 -2 re))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -2 re))
(fma.f64 -1/2 (/.f64 (*.f64 im im) re) (*.f64 -2 re))
(fma.f64 -2 re (/.f64 -1/2 (/.f64 re (*.f64 im im))))
(fma.f64 -2 re (/.f64 (*.f64 im im) (/.f64 re -1/2)))
(fma.f64 -1/2 (*.f64 (/.f64 im re) im) (*.f64 -2 re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(/.f64 -1/2 (/.f64 re (*.f64 im im)))
(/.f64 (*.f64 im im) (/.f64 re -1/2))
(*.f64 -1/2 (*.f64 (/.f64 im re) im))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -2 re))
(fma.f64 -1/2 (/.f64 (*.f64 im im) re) (*.f64 -2 re))
(fma.f64 -2 re (/.f64 -1/2 (/.f64 re (*.f64 im im))))
(fma.f64 -2 re (/.f64 (*.f64 im im) (/.f64 re -1/2)))
(fma.f64 -1/2 (*.f64 (/.f64 im re) im) (*.f64 -2 re))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -2 re))
(fma.f64 -1/2 (/.f64 (*.f64 im im) re) (*.f64 -2 re))
(fma.f64 -2 re (/.f64 -1/2 (/.f64 re (*.f64 im im))))
(fma.f64 -2 re (/.f64 (*.f64 im im) (/.f64 re -1/2)))
(fma.f64 -1/2 (*.f64 (/.f64 im re) im) (*.f64 -2 re))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -2 re))
(fma.f64 -1/2 (/.f64 (*.f64 im im) re) (*.f64 -2 re))
(fma.f64 -2 re (/.f64 -1/2 (/.f64 re (*.f64 im im))))
(fma.f64 -2 re (/.f64 (*.f64 im im) (/.f64 re -1/2)))
(fma.f64 -1/2 (*.f64 (/.f64 im re) im) (*.f64 -2 re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(/.f64 -1/2 (/.f64 re (*.f64 im im)))
(/.f64 (*.f64 im im) (/.f64 re -1/2))
(*.f64 -1/2 (*.f64 (/.f64 im re) im))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -2 re))
(fma.f64 -1/2 (/.f64 (*.f64 im im) re) (*.f64 -2 re))
(fma.f64 -2 re (/.f64 -1/2 (/.f64 re (*.f64 im im))))
(fma.f64 -2 re (/.f64 (*.f64 im im) (/.f64 re -1/2)))
(fma.f64 -1/2 (*.f64 (/.f64 im re) im) (*.f64 -2 re))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -2 re))
(fma.f64 -1/2 (/.f64 (*.f64 im im) re) (*.f64 -2 re))
(fma.f64 -2 re (/.f64 -1/2 (/.f64 re (*.f64 im im))))
(fma.f64 -2 re (/.f64 (*.f64 im im) (/.f64 re -1/2)))
(fma.f64 -1/2 (*.f64 (/.f64 im re) im) (*.f64 -2 re))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -2 re))
(fma.f64 -1/2 (/.f64 (*.f64 im im) re) (*.f64 -2 re))
(fma.f64 -2 re (/.f64 -1/2 (/.f64 re (*.f64 im im))))
(fma.f64 -2 re (/.f64 (*.f64 im im) (/.f64 re -1/2)))
(fma.f64 -1/2 (*.f64 (/.f64 im re) im) (*.f64 -2 re))
(*.f64 -2 re)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -2 re))
(fma.f64 -1/2 (/.f64 (*.f64 im im) re) (*.f64 -2 re))
(fma.f64 -2 re (/.f64 -1/2 (/.f64 re (*.f64 im im))))
(fma.f64 -2 re (/.f64 (*.f64 im im) (/.f64 re -1/2)))
(fma.f64 -1/2 (*.f64 (/.f64 im re) im) (*.f64 -2 re))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -2 re))
(fma.f64 -1/2 (/.f64 (*.f64 im im) re) (*.f64 -2 re))
(fma.f64 -2 re (/.f64 -1/2 (/.f64 re (*.f64 im im))))
(fma.f64 -2 re (/.f64 (*.f64 im im) (/.f64 re -1/2)))
(fma.f64 -1/2 (*.f64 (/.f64 im re) im) (*.f64 -2 re))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -2 re))
(fma.f64 -1/2 (/.f64 (*.f64 im im) re) (*.f64 -2 re))
(fma.f64 -2 re (/.f64 -1/2 (/.f64 re (*.f64 im im))))
(fma.f64 -2 re (/.f64 (*.f64 im im) (/.f64 re -1/2)))
(fma.f64 -1/2 (*.f64 (/.f64 im re) im) (*.f64 -2 re))
(*.f64 -2 re)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -2 re))
(fma.f64 -1/2 (/.f64 (*.f64 im im) re) (*.f64 -2 re))
(fma.f64 -2 re (/.f64 -1/2 (/.f64 re (*.f64 im im))))
(fma.f64 -2 re (/.f64 (*.f64 im im) (/.f64 re -1/2)))
(fma.f64 -1/2 (*.f64 (/.f64 im re) im) (*.f64 -2 re))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -2 re))
(fma.f64 -1/2 (/.f64 (*.f64 im im) re) (*.f64 -2 re))
(fma.f64 -2 re (/.f64 -1/2 (/.f64 re (*.f64 im im))))
(fma.f64 -2 re (/.f64 (*.f64 im im) (/.f64 re -1/2)))
(fma.f64 -1/2 (*.f64 (/.f64 im re) im) (*.f64 -2 re))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -2 re))
(fma.f64 -1/2 (/.f64 (*.f64 im im) re) (*.f64 -2 re))
(fma.f64 -2 re (/.f64 -1/2 (/.f64 re (*.f64 im im))))
(fma.f64 -2 re (/.f64 (*.f64 im im) (/.f64 re -1/2)))
(fma.f64 -1/2 (*.f64 (/.f64 im re) im) (*.f64 -2 re))

localize10.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (sqrt.f64 (/.f64 im re)) (sqrt.f64 im))
10.4b
(sqrt.f64 (/.f64 im re))
Compiler

Compiled 30 to 9 computations (70% saved)

series7.0ms (0.1%)

Counts
2 → 12
Calls

12 calls:

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

rewrite67.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
714×pow1_binary64
661×add-log-exp_binary64
661×log1p-expm1-u_binary64
661×expm1-log1p-u_binary64
642×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify253.0ms (3.2%)

Algorithm
egg-herbie
Rules
899×fma-def_binary64
446×cube-prod_binary64
388×fma-neg_binary64
385×distribute-rgt-neg-in_binary64
327×cancel-sign-sub-inv_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
014108
128108
275108
3181108
4696108
51532108
62552108
73700108
84826108
96672108
Stop Event
unsound
Counts
57 → 47
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 -1 (*.f64 (*.f64 (pow.f64 (sqrt.f64 -1) 2) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1 (*.f64 (*.f64 (pow.f64 (sqrt.f64 -1) 2) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1 (*.f64 (*.f64 (pow.f64 (sqrt.f64 -1) 2) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 -1 (*.f64 (*.f64 (pow.f64 (sqrt.f64 -1) 2) im) (sqrt.f64 (/.f64 1 re))))
Outputs
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 -1 (*.f64 (*.f64 (pow.f64 (sqrt.f64 -1) 2) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 -1 (*.f64 (*.f64 (pow.f64 (sqrt.f64 -1) 2) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 -1 (*.f64 (*.f64 (pow.f64 (sqrt.f64 -1) 2) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 (/.f64 1 re)) im)
(*.f64 -1 (*.f64 (*.f64 (pow.f64 (sqrt.f64 -1) 2) im) (sqrt.f64 (/.f64 1 re))))
(*.f64 (sqrt.f64 (/.f64 1 re)) im)

localize54.0ms (0.7%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(sqrt.f64 (/.f64 1/2 re))
0.1b
(*.f64 im (exp.f64 (log.f64 (sqrt.f64 (/.f64 1/2 re)))))
0.2b
(*.f64 (*.f64 im (exp.f64 (log.f64 (sqrt.f64 (/.f64 1/2 re))))) (sqrt.f64 2))
2.2b
(exp.f64 (log.f64 (sqrt.f64 (/.f64 1/2 re))))
Compiler

Compiled 58 to 46 computations (20.7% saved)

series5.0ms (0.1%)

Counts
3 → 24
Calls

15 calls:

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

rewrite110.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
500×log-prod_binary64
388×prod-exp_binary64
370×exp-prod_binary64
339×pow-prod-down_binary64
266×pow2_binary64
Iterations

Useful iterations: 2 (0.0ms)

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

simplify37.0ms (0.5%)

Algorithm
egg-herbie
Rules
29×associate-*l*_binary64
21×associate-*r*_binary64
13×*-commutative_binary64
1-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
014396
125396
248396
389396
492396
Stop Event
saturated
Counts
147 → 127
Calls
Call 1
Inputs
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re)))
Outputs
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) im)) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re)))))
(*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re))))
(*.f64 (*.f64 (sqrt.f64 1/2) im) (sqrt.f64 (/.f64 1 re)))
(*.f64 (sqrt.f64 1/2) (*.f64 im (sqrt.f64 (/.f64 1 re))))

eval349.0ms (4.4%)

Compiler

Compiled 12503 to 7792 computations (37.7% saved)

prune107.0ms (1.3%)

Pruning

15 alts after pruning (6 fresh and 9 done)

PrunedKeptTotal
New5784582
Fresh123
Picked101
Done099
Total58015595
Error
0.1b
Counts
595 → 15
Alt Table
Click to see full alt table
StatusErrorProgram
50.1b
(*.f64 1/2 (*.f64 (*.f64 im (pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (sqrt.f64 (/.f64 1/2 re)))) 2)) (cbrt.f64 (log.f64 (sqrt.f64 (/.f64 1/2 re)))))) (sqrt.f64 2)))
49.8b
(*.f64 1/2 (*.f64 (*.f64 im (pow.f64 (exp.f64 1/2) (log.f64 (/.f64 1/2 re)))) (sqrt.f64 2)))
46.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 re -2))))
30.2b
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
48.7b
(*.f64 1/2 (/.f64 im (sqrt.f64 re)))
59.9b
(*.f64 1/2 (*.f64 (-.f64 (+.f64 1 (sqrt.f64 (/.f64 im re))) 1) (sqrt.f64 im)))
12.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))))
28.4b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 im re))))
46.4b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 (-.f64 (*.f64 (*.f64 (/.f64 im re) im) -1/2) re) re))))
50.1b
(*.f64 1/2 (*.f64 (*.f64 im (pow.f64 (pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (sqrt.f64 (/.f64 1/2 re)))) 2)) (pow.f64 (cbrt.f64 (cbrt.f64 (log.f64 (sqrt.f64 (/.f64 1/2 re))))) 2)) (cbrt.f64 (cbrt.f64 (log.f64 (sqrt.f64 (/.f64 1/2 re))))))) (sqrt.f64 2)))
50.2b
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 im re)) (sqrt.f64 im)))
48.7b
(*.f64 1/2 (pow.f64 (/.f64 (sqrt.f64 re) im) -1))
53.1b
(*.f64 1/2 (sqrt.f64 (/.f64 im (/.f64 re im))))
28.6b
(*.f64 1/2 (*.f64 (sqrt.f64 (-.f64 im re)) (sqrt.f64 2)))
48.7b
(*.f64 1/2 (*.f64 (pow.f64 re -1/2) im))
Compiler

Compiled 209 to 171 computations (18.2% saved)

regimes297.0ms (3.7%)

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

8 calls:

69.0ms
re
47.0ms
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))))
44.0ms
(*.f64 im im)
44.0ms
im
27.0ms
(sqrt.f64 (*.f64 2 (-.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)))
Results
ErrorSegmentsBranch
5.8b2re
12.0b1im
6.8b2(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))))
6.8b2(sqrt.f64 (*.f64 2 (-.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)))
7.0b2(*.f64 2 (-.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))
7.0b2(-.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)
12.0b1(*.f64 im im)
12.0b1(*.f64 im im)
Compiler

Compiled 428 to 308 computations (28% saved)

bsearch76.0ms (1%)

Algorithm
binary-search
Steps
TimeLeftRight
76.0ms
1.4210319300751932e+102
1.089448230227023e+114
Compiler

Compiled 22 to 16 computations (27.3% saved)

regimes102.0ms (1.3%)

Counts
14 → 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 (pow.f64 re -1/2) im))
(*.f64 1/2 (sqrt.f64 (*.f64 im (/.f64 im re))))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 1/2 (sqrt.f64 (/.f64 im (/.f64 re im))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 re -2))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 re re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 im re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (/.f64 1/2 re) (*.f64 im im)))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 (-.f64 (*.f64 (*.f64 (/.f64 im re) im) -1/2) re) re))))
(*.f64 1/2 (pow.f64 (/.f64 (sqrt.f64 re) im) -1))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 im re)) (sqrt.f64 im)))
(*.f64 1/2 (*.f64 (sqrt.f64 (-.f64 im re)) (sqrt.f64 2)))
Outputs
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 re -2))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 im re))))
(*.f64 1/2 (*.f64 (pow.f64 re -1/2) im))
Calls

4 calls:

41.0ms
im
23.0ms
re
17.0ms
(*.f64 im im)
16.0ms
(*.f64 im im)
Results
ErrorSegmentsBranch
12.7b3re
19.2b5im
20.3b3(*.f64 im im)
20.3b3(*.f64 im im)
Compiler

Compiled 139 to 96 computations (30.9% saved)

bsearch109.0ms (1.4%)

Algorithm
binary-search
Steps
TimeLeftRight
75.0ms
1.4210319300751932e+102
1.089448230227023e+114
34.0ms
-5.226150229795468e+52
-3.4676564220494935e+52
Compiler

Compiled 22 to 16 computations (27.3% saved)

regimes78.0ms (1%)

Counts
8 → 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 (pow.f64 re -1/2) im))
(*.f64 1/2 (sqrt.f64 (*.f64 im (/.f64 im re))))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 1/2 (sqrt.f64 (/.f64 im (/.f64 re im))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 re -2))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 re re))))
Outputs
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 re -2))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
(*.f64 1/2 (*.f64 (pow.f64 re -1/2) im))
Calls

2 calls:

56.0ms
im
19.0ms
re
Results
ErrorSegmentsBranch
13.5b3re
19.6b5im
Compiler

Compiled 67 to 49 computations (26.9% saved)

bsearch105.0ms (1.3%)

Algorithm
binary-search
Steps
TimeLeftRight
75.0ms
1.4210319300751932e+102
1.089448230227023e+114
29.0ms
-5.226150229795468e+52
-3.4676564220494935e+52
Compiler

Compiled 22 to 16 computations (27.3% saved)

regimes22.0ms (0.3%)

Counts
6 → 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 (pow.f64 re -1/2) im))
(*.f64 1/2 (sqrt.f64 (*.f64 im (/.f64 im re))))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 re)) im))
(*.f64 1/2 (sqrt.f64 (/.f64 im (/.f64 re im))))
Outputs
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
(*.f64 1/2 (*.f64 (pow.f64 re -1/2) im))
Calls

2 calls:

10.0ms
im
10.0ms
re
Results
ErrorSegmentsBranch
22.3b2re
25.7b2im
Compiler

Compiled 51 to 36 computations (29.4% saved)

bsearch76.0ms (0.9%)

Algorithm
binary-search
Steps
TimeLeftRight
75.0ms
1.4210319300751932e+102
1.089448230227023e+114
Compiler

Compiled 22 to 16 computations (27.3% saved)

regimes13.0ms (0.2%)

Accuracy

Total -39.8b remaining (-178.3%)

Threshold costs -39.8b (-178.3%)

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

2 calls:

6.0ms
im
6.0ms
re
Results
ErrorSegmentsBranch
22.3b2re
25.7b2im
Compiler

Compiled 20 to 15 computations (25% saved)

bsearch103.0ms (1.3%)

Algorithm
binary-search
Steps
TimeLeftRight
103.0ms
1.4210319300751932e+102
1.089448230227023e+114
Compiler

Compiled 22 to 16 computations (27.3% saved)

simplify10.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
040178
155178
261178
363178
464178
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(if (<=.f64 re 1421031930075193158392851195001904816583119296836155210838174157234994338677445638435794703068054945792) (*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))) (*.f64 1/2 (*.f64 (pow.f64 re -1/2) im)))
(if (<=.f64 re -52261502297954681375297505331926291042416608992559104) (*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 re -2)))) (if (<=.f64 re 1421031930075193158392851195001904816583119296836155210838174157234994338677445638435794703068054945792) (*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 im re)))) (*.f64 1/2 (*.f64 (pow.f64 re -1/2) im))))
(if (<=.f64 re -52261502297954681375297505331926291042416608992559104) (*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 re -2)))) (if (<=.f64 re 1421031930075193158392851195001904816583119296836155210838174157234994338677445638435794703068054945792) (*.f64 1/2 (sqrt.f64 (*.f64 2 im))) (*.f64 1/2 (*.f64 (pow.f64 re -1/2) im))))
(if (<=.f64 re 1421031930075193158392851195001904816583119296836155210838174157234994338677445638435794703068054945792) (*.f64 1/2 (sqrt.f64 (*.f64 2 im))) (*.f64 1/2 (*.f64 (pow.f64 re -1/2) im)))
(if (<=.f64 re 1421031930075193158392851195001904816583119296836155210838174157234994338677445638435794703068054945792) (*.f64 1/2 (sqrt.f64 (*.f64 2 im))) (*.f64 1/2 (/.f64 im (sqrt.f64 re))))
(*.f64 1/2 (/.f64 im (sqrt.f64 re)))
Outputs
(if (<=.f64 re 1421031930075193158392851195001904816583119296836155210838174157234994338677445638435794703068054945792) (*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))) (*.f64 1/2 (*.f64 (pow.f64 re -1/2) im)))
(if (<=.f64 re 1421031930075193158392851195001904816583119296836155210838174157234994338677445638435794703068054945792) (*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))) (*.f64 1/2 (*.f64 im (pow.f64 re -1/2))))
(if (<=.f64 re -52261502297954681375297505331926291042416608992559104) (*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 re -2)))) (if (<=.f64 re 1421031930075193158392851195001904816583119296836155210838174157234994338677445638435794703068054945792) (*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 im re)))) (*.f64 1/2 (*.f64 (pow.f64 re -1/2) im))))
(if (<=.f64 re -52261502297954681375297505331926291042416608992559104) (*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 re -2)))) (if (<=.f64 re 1421031930075193158392851195001904816583119296836155210838174157234994338677445638435794703068054945792) (*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 im re)))) (*.f64 1/2 (*.f64 im (pow.f64 re -1/2)))))
(if (<=.f64 re -52261502297954681375297505331926291042416608992559104) (*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 re -2)))) (if (<=.f64 re 1421031930075193158392851195001904816583119296836155210838174157234994338677445638435794703068054945792) (*.f64 1/2 (sqrt.f64 (*.f64 2 im))) (*.f64 1/2 (*.f64 (pow.f64 re -1/2) im))))
(if (<=.f64 re -52261502297954681375297505331926291042416608992559104) (*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 re -2)))) (if (<=.f64 re 1421031930075193158392851195001904816583119296836155210838174157234994338677445638435794703068054945792) (*.f64 1/2 (sqrt.f64 (*.f64 2 im))) (*.f64 1/2 (*.f64 im (pow.f64 re -1/2)))))
(if (<=.f64 re 1421031930075193158392851195001904816583119296836155210838174157234994338677445638435794703068054945792) (*.f64 1/2 (sqrt.f64 (*.f64 2 im))) (*.f64 1/2 (*.f64 (pow.f64 re -1/2) im)))
(if (<=.f64 re 1421031930075193158392851195001904816583119296836155210838174157234994338677445638435794703068054945792) (*.f64 1/2 (sqrt.f64 (*.f64 2 im))) (*.f64 1/2 (*.f64 im (pow.f64 re -1/2))))
(if (<=.f64 re 1421031930075193158392851195001904816583119296836155210838174157234994338677445638435794703068054945792) (*.f64 1/2 (sqrt.f64 (*.f64 2 im))) (*.f64 1/2 (/.f64 im (sqrt.f64 re))))
(*.f64 1/2 (/.f64 im (sqrt.f64 re)))
Compiler

Compiled 132 to 103 computations (22% saved)

soundness117.0ms (1.5%)

Algorithm
egg-herbie
Rules
203×fma-def_binary64
203×fma-def_binary64
142×fma-neg_binary64
142×fma-neg_binary64
49×distribute-rgt-in_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01315
12015
23315
35315
48015
510915
618015
728615
840715
949015
1060715
1167915
1270215
1374315
1479215
1585515
1689115
1790015
01315
12015
23315
35315
48015
510915
618015
728615
840715
949015
1060715
1167915
1270215
1374315
1479215
1585515
1689115
1790015
Stop Event
saturated
saturated
Compiler

Compiled 58 to 42 computations (27.6% saved)

end239.0ms (3%)

Compiler

Compiled 122 to 91 computations (25.4% saved)

Profiling

Loading profile data...