Details

Time bar (total: 27.5s)

analyze150.0ms (0.5%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%50%50%0%0%0%0
0%0%50%50%0%0%0%1
0%0%50%50%0%0%0%2
0%0%50%50%0%0%0%3
12.5%6.2%43.7%50%0%0%0%4
25%12.5%37.5%50%0%0%0%5
37.5%18.7%31.2%50%0%0%0%6
46.9%23.4%26.5%50%0%0%0%7
54.7%27.3%22.6%50%0%0%0%8
60.2%30%19.9%50%0%0%0%9
64.5%32.2%17.8%50%0%0%0%10
67.4%33.7%16.3%50%0%0%0%11
69.6%34.8%15.2%50%0%0%0%12
Compiler

Compiled 20 to 14 computations (30% saved)

sample1.5s (5.4%)

Results
774.0ms6431×body256valid
290.0ms688×body2048valid
237.0ms496×body4096valid
116.0ms406×body1024valid
48.0ms235×body512valid
Bogosity

preprocess41.0ms (0.2%)

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)

simplify32.0ms (0.1%)

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
11.9b
Counts
3 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
11.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))))
Compiler

Compiled 12 to 9 computations (25% saved)

localize13.0ms (0%)

Local error

Found 2 expressions with local error:

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

Compiled 39 to 16 computations (59% saved)

series2.0s (7.3%)

Counts
2 → 32
Calls

12 calls:

TimeVariablePointExpression
544.0ms
re
@inf
(sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))
485.0ms
im
@inf
(sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))
471.0ms
im
@-inf
(sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))
471.0ms
re
@-inf
(sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))
6.0ms
re
@0
(sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))
Compiler

Compiled 165876 to 130227 computations (21.5% saved)

rewrite54.0ms (0.2%)

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
0819
117319
2221019
Stop Event
node limit
Counts
2 → 57
Calls
Call 1
Inputs
(-.f64 (hypot.f64 re im) re)
(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 (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))))))))

simplify58.0ms (0.2%)

Algorithm
egg-herbie
Rules
657×associate-/l*_binary64
340×unswap-sqr_binary64
252×fma-neg_binary64
241×fma-def_binary64
203×distribute-rgt-in_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02972365
18571987
231101640
Stop Event
node limit
Counts
89 → 178
Calls
Call 1
Inputs
(sqrt.f64 (pow.f64 im 2))
(+.f64 (*.f64 -1 re) (sqrt.f64 (pow.f64 im 2)))
(+.f64 (*.f64 -1 re) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) (sqrt.f64 (pow.f64 im 2)))) (sqrt.f64 (pow.f64 im 2))))
(+.f64 (*.f64 -1 re) (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (pow.f64 re 4) (pow.f64 (/.f64 1/2 (sqrt.f64 (pow.f64 im 2))) 2)) (sqrt.f64 (pow.f64 im 2)))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) (sqrt.f64 (pow.f64 im 2)))) (sqrt.f64 (pow.f64 im 2)))))
(*.f64 1/2 (/.f64 (pow.f64 im 2) re))
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 (*.f64 1/2 (pow.f64 im 2)) 2) (pow.f64 (/.f64 1 re) 3))) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 (*.f64 1/2 (pow.f64 im 2)) 2) (pow.f64 (/.f64 1 re) 3))) (+.f64 (*.f64 1/4 (*.f64 (pow.f64 (*.f64 1/2 (pow.f64 im 2)) 2) (*.f64 (pow.f64 im 2) (pow.f64 (/.f64 1 re) 5)))) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))))
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 (*.f64 1/2 (pow.f64 im 2)) 2) (pow.f64 (/.f64 1 re) 3))) (+.f64 (*.f64 1/4 (*.f64 (pow.f64 (*.f64 1/2 (pow.f64 im 2)) 2) (*.f64 (pow.f64 im 2) (pow.f64 (/.f64 1 re) 5)))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -1/2 (*.f64 (+.f64 (*.f64 1/4 (*.f64 (pow.f64 (*.f64 1/2 (pow.f64 im 2)) 2) (pow.f64 (pow.f64 im 2) 2))) (pow.f64 (*.f64 -1/2 (pow.f64 (*.f64 1/2 (pow.f64 im 2)) 2)) 2)) (pow.f64 (/.f64 1 re) 7))))))
(*.f64 -2 re)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -2 re))
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 (*.f64 1/2 (pow.f64 im 2)) 2) (pow.f64 (/.f64 -1 re) 3))) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -2 re)))
(+.f64 (*.f64 1/4 (*.f64 (pow.f64 (*.f64 1/2 (pow.f64 im 2)) 2) (*.f64 (pow.f64 im 2) (pow.f64 (/.f64 -1 re) 5)))) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 (*.f64 1/2 (pow.f64 im 2)) 2) (pow.f64 (/.f64 -1 re) 3))) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -2 re))))
(-.f64 (sqrt.f64 (pow.f64 re 2)) re)
(-.f64 (+.f64 (sqrt.f64 (pow.f64 re 2)) (*.f64 1/2 (/.f64 (pow.f64 im 2) (sqrt.f64 (pow.f64 re 2))))) re)
(-.f64 (+.f64 (sqrt.f64 (pow.f64 re 2)) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) (sqrt.f64 (pow.f64 re 2)))) (*.f64 -1/2 (/.f64 (*.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (pow.f64 re 2))) 2) (pow.f64 im 4)) (sqrt.f64 (pow.f64 re 2)))))) re)
(-.f64 (+.f64 (sqrt.f64 (pow.f64 re 2)) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) (sqrt.f64 (pow.f64 re 2)))) (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (pow.f64 re 2))) 2) (pow.f64 im 4)) (sqrt.f64 (pow.f64 re 2)))) (*.f64 1/4 (/.f64 (*.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (pow.f64 re 2))) 2) (pow.f64 im 6)) (*.f64 (sqrt.f64 (pow.f64 re 2)) (pow.f64 (sqrt.f64 (pow.f64 re 2)) 2))))))) re)
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/2 (/.f64 (pow.f64 re 2) im)) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 (*.f64 1/2 (pow.f64 re 2)) 2) (pow.f64 (/.f64 1 im) 3))) 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/2 (*.f64 (pow.f64 (/.f64 -1 im) 3) (pow.f64 (*.f64 1/2 (pow.f64 re 2)) 2))) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))))
(sqrt.f64 (*.f64 2 (sqrt.f64 (pow.f64 im 2))))
(+.f64 (*.f64 -1 (/.f64 re (sqrt.f64 (*.f64 2 (sqrt.f64 (pow.f64 im 2)))))) (sqrt.f64 (*.f64 2 (sqrt.f64 (pow.f64 im 2)))))
(+.f64 (*.f64 -1 (/.f64 re (sqrt.f64 (*.f64 2 (sqrt.f64 (pow.f64 im 2)))))) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (-.f64 (/.f64 1 (sqrt.f64 (pow.f64 im 2))) (pow.f64 (/.f64 -1 (sqrt.f64 (*.f64 2 (sqrt.f64 (pow.f64 im 2))))) 2)) (pow.f64 re 2)) (sqrt.f64 (*.f64 2 (sqrt.f64 (pow.f64 im 2)))))) (sqrt.f64 (*.f64 2 (sqrt.f64 (pow.f64 im 2))))))
(+.f64 (*.f64 -1 (/.f64 re (sqrt.f64 (*.f64 2 (sqrt.f64 (pow.f64 im 2)))))) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (-.f64 (/.f64 1 (sqrt.f64 (pow.f64 im 2))) (pow.f64 (/.f64 -1 (sqrt.f64 (*.f64 2 (sqrt.f64 (pow.f64 im 2))))) 2)) (pow.f64 re 3)) (*.f64 (pow.f64 (sqrt.f64 (*.f64 2 (sqrt.f64 (pow.f64 im 2)))) 2) (sqrt.f64 (*.f64 2 (sqrt.f64 (pow.f64 im 2))))))) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (-.f64 (/.f64 1 (sqrt.f64 (pow.f64 im 2))) (pow.f64 (/.f64 -1 (sqrt.f64 (*.f64 2 (sqrt.f64 (pow.f64 im 2))))) 2)) (pow.f64 re 2)) (sqrt.f64 (*.f64 2 (sqrt.f64 (pow.f64 im 2)))))) (sqrt.f64 (*.f64 2 (sqrt.f64 (pow.f64 im 2)))))))
(sqrt.f64 (*.f64 2 (-.f64 (sqrt.f64 (pow.f64 re 2)) re)))
(+.f64 (sqrt.f64 (*.f64 2 (-.f64 (sqrt.f64 (pow.f64 re 2)) re))) (*.f64 1/2 (/.f64 (pow.f64 im 2) (*.f64 (sqrt.f64 (pow.f64 re 2)) (sqrt.f64 (*.f64 2 (-.f64 (sqrt.f64 (pow.f64 re 2)) re)))))))
(+.f64 (*.f64 1/2 (/.f64 (*.f64 (-.f64 (*.f64 -1 (/.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (pow.f64 re 2))) 2) (sqrt.f64 (pow.f64 re 2)))) (pow.f64 (/.f64 1/2 (*.f64 (sqrt.f64 (pow.f64 re 2)) (sqrt.f64 (*.f64 2 (-.f64 (sqrt.f64 (pow.f64 re 2)) re))))) 2)) (pow.f64 im 4)) (sqrt.f64 (*.f64 2 (-.f64 (sqrt.f64 (pow.f64 re 2)) re))))) (+.f64 (sqrt.f64 (*.f64 2 (-.f64 (sqrt.f64 (pow.f64 re 2)) re))) (*.f64 1/2 (/.f64 (pow.f64 im 2) (*.f64 (sqrt.f64 (pow.f64 re 2)) (sqrt.f64 (*.f64 2 (-.f64 (sqrt.f64 (pow.f64 re 2)) re))))))))
(+.f64 (*.f64 1/2 (/.f64 (*.f64 (-.f64 (*.f64 1/2 (/.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (pow.f64 re 2))) 2) (*.f64 (sqrt.f64 (pow.f64 re 2)) (pow.f64 (sqrt.f64 (pow.f64 re 2)) 2)))) (*.f64 1/2 (/.f64 (-.f64 (*.f64 -1 (/.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (pow.f64 re 2))) 2) (sqrt.f64 (pow.f64 re 2)))) (pow.f64 (/.f64 1/2 (*.f64 (sqrt.f64 (pow.f64 re 2)) (sqrt.f64 (*.f64 2 (-.f64 (sqrt.f64 (pow.f64 re 2)) re))))) 2)) (*.f64 (sqrt.f64 (pow.f64 re 2)) (pow.f64 (sqrt.f64 (*.f64 2 (-.f64 (sqrt.f64 (pow.f64 re 2)) re))) 2))))) (pow.f64 im 6)) (sqrt.f64 (*.f64 2 (-.f64 (sqrt.f64 (pow.f64 re 2)) re))))) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (-.f64 (*.f64 -1 (/.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (pow.f64 re 2))) 2) (sqrt.f64 (pow.f64 re 2)))) (pow.f64 (/.f64 1/2 (*.f64 (sqrt.f64 (pow.f64 re 2)) (sqrt.f64 (*.f64 2 (-.f64 (sqrt.f64 (pow.f64 re 2)) re))))) 2)) (pow.f64 im 4)) (sqrt.f64 (*.f64 2 (-.f64 (sqrt.f64 (pow.f64 re 2)) re))))) (+.f64 (sqrt.f64 (*.f64 2 (-.f64 (sqrt.f64 (pow.f64 re 2)) re))) (*.f64 1/2 (/.f64 (pow.f64 im 2) (*.f64 (sqrt.f64 (pow.f64 re 2)) (sqrt.f64 (*.f64 2 (-.f64 (sqrt.f64 (pow.f64 re 2)) re)))))))))
(+.f64 (hypot.f64 re im) (neg.f64 re))
(+.f64 (hypot.f64 re im) (*.f64 (neg.f64 re) 1))
(+.f64 (-.f64 (hypot.f64 re im) re) (fma.f64 (neg.f64 re) 1 re))
(+.f64 (-.f64 (hypot.f64 re im) re) (fma.f64 (neg.f64 (cbrt.f64 re)) (pow.f64 (cbrt.f64 re) 2) re))
(+.f64 (-.f64 (hypot.f64 re im) re) (fma.f64 (neg.f64 (sqrt.f64 re)) (sqrt.f64 re) re))
(+.f64 (neg.f64 re) (hypot.f64 re im))
(*.f64 (-.f64 (hypot.f64 re im) re) 1)
(*.f64 1 (-.f64 (hypot.f64 re im) re))
(*.f64 (cbrt.f64 (-.f64 (hypot.f64 re im) re)) (pow.f64 (cbrt.f64 (-.f64 (hypot.f64 re im) re)) 2))
(*.f64 (pow.f64 (cbrt.f64 (-.f64 (hypot.f64 re im) re)) 2) (cbrt.f64 (-.f64 (hypot.f64 re im) re)))
(*.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) (sqrt.f64 (-.f64 (hypot.f64 re im) re)))
(*.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))))))
(*.f64 (-.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 re re)) (/.f64 1 (+.f64 re (hypot.f64 re im))))
(*.f64 (+.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 re)) (-.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 re)))
(/.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))))
(/.f64 1 (/.f64 (+.f64 re (hypot.f64 re im)) (-.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 re re))))
(/.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)))))
(/.f64 (-.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 re re)) (+.f64 re (hypot.f64 re im)))
(/.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))))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 re re))) (neg.f64 (+.f64 re (hypot.f64 re im))))
(/.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)))))
(/.f64 (-.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 (neg.f64 re) (neg.f64 re))) (-.f64 (hypot.f64 re im) (neg.f64 re)))
(pow.f64 (-.f64 (hypot.f64 re im) re) 1)
(pow.f64 (pow.f64 (-.f64 (hypot.f64 re im) re) 3) 1/3)
(pow.f64 (cbrt.f64 (-.f64 (hypot.f64 re im) re)) 3)
(pow.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) 2)
(sqrt.f64 (pow.f64 (-.f64 (hypot.f64 re im) re) 2))
(log.f64 (exp.f64 (-.f64 (hypot.f64 re im) re)))
(cbrt.f64 (pow.f64 (-.f64 (hypot.f64 re im) re) 3))
(expm1.f64 (log1p.f64 (-.f64 (hypot.f64 re im) re)))
(log1p.f64 (expm1.f64 (-.f64 (hypot.f64 re im) re)))
(exp.f64 (log.f64 (-.f64 (hypot.f64 re im) re)))
(fma.f64 1 (hypot.f64 re im) (neg.f64 re))
(fma.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (cbrt.f64 (hypot.f64 re im)) (neg.f64 re))
(fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re))
(-.f64 (+.f64 1 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2))) 1)
(*.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2)) 1)
(*.f64 1 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2)))
(*.f64 (cbrt.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2))) (cbrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2)))
(*.f64 (cbrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2)) (cbrt.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2))))
(*.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))
(*.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) (sqrt.f64 2))
(*.f64 (sqrt.f64 2) (sqrt.f64 (-.f64 (hypot.f64 re im) re)))
(*.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))))
(*.f64 (pow.f64 1 1/2) (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2)))
(*.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))
(pow.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2) 1/2)
(pow.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2)) 1)
(pow.f64 (pow.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2) 3/2) 1/3)
(pow.f64 (cbrt.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2))) 3)
(pow.f64 (pow.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2) 1/4) 2)
(fabs.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2)))
(log.f64 (exp.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2))))
(cbrt.f64 (pow.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2) 3/2))
(expm1.f64 (log1p.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2))))
(log1p.f64 (expm1.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2))))
(exp.f64 (log.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2))))
Outputs
(sqrt.f64 (pow.f64 im 2))
(sqrt.f64 (*.f64 im im))
(fabs.f64 im)
im
(+.f64 (*.f64 -1 re) (sqrt.f64 (pow.f64 im 2)))
(fma.f64 -1 re (sqrt.f64 (*.f64 im im)))
(-.f64 (fabs.f64 im) re)
(-.f64 im re)
(+.f64 (*.f64 -1 re) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) (sqrt.f64 (pow.f64 im 2)))) (sqrt.f64 (pow.f64 im 2))))
(fma.f64 -1 re (fma.f64 1/2 (/.f64 (*.f64 re re) (sqrt.f64 (*.f64 im im))) (sqrt.f64 (*.f64 im im))))
(-.f64 (fma.f64 1/2 (/.f64 re (/.f64 (fabs.f64 im) re)) (fabs.f64 im)) re)
(-.f64 (fma.f64 1/2 (*.f64 (/.f64 re im) re) im) re)
(+.f64 (*.f64 -1 re) (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (pow.f64 re 4) (pow.f64 (/.f64 1/2 (sqrt.f64 (pow.f64 im 2))) 2)) (sqrt.f64 (pow.f64 im 2)))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) (sqrt.f64 (pow.f64 im 2)))) (sqrt.f64 (pow.f64 im 2)))))
(fma.f64 -1 re (fma.f64 -1/2 (/.f64 (pow.f64 re 4) (/.f64 (sqrt.f64 (*.f64 im im)) (pow.f64 (/.f64 1/2 (sqrt.f64 (*.f64 im im))) 2))) (fma.f64 1/2 (/.f64 (*.f64 re re) (sqrt.f64 (*.f64 im im))) (sqrt.f64 (*.f64 im im)))))
(-.f64 (fma.f64 -1/2 (*.f64 (/.f64 (pow.f64 re 4) (fabs.f64 im)) (pow.f64 (/.f64 1/2 (fabs.f64 im)) 2)) (fma.f64 1/2 (/.f64 re (/.f64 (fabs.f64 im) re)) (fabs.f64 im))) re)
(-.f64 (fma.f64 -1/2 (*.f64 (/.f64 (pow.f64 re 4) im) (pow.f64 (/.f64 1/2 im) 2)) (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 im im) (/.f64 re 1/2))
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 (*.f64 1/2 (pow.f64 im 2)) 2) (pow.f64 (/.f64 1 re) 3))) (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))
(fma.f64 -1/2 (*.f64 (pow.f64 (*.f64 (*.f64 im im) 1/2) 2) (pow.f64 (/.f64 1 re) 3)) (*.f64 1/2 (/.f64 (*.f64 im im) re)))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (/.f64 (*.f64 (*.f64 -1/2 (*.f64 1/4 (pow.f64 im 4))) 1) (pow.f64 re 3)))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (/.f64 (*.f64 -1/2 (*.f64 1/4 (pow.f64 im 4))) (pow.f64 re 3)))
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 (*.f64 1/2 (pow.f64 im 2)) 2) (pow.f64 (/.f64 1 re) 3))) (+.f64 (*.f64 1/4 (*.f64 (pow.f64 (*.f64 1/2 (pow.f64 im 2)) 2) (*.f64 (pow.f64 im 2) (pow.f64 (/.f64 1 re) 5)))) (*.f64 1/2 (/.f64 (pow.f64 im 2) re))))
(fma.f64 -1/2 (*.f64 (pow.f64 (*.f64 (*.f64 im im) 1/2) 2) (pow.f64 (/.f64 1 re) 3)) (fma.f64 1/4 (*.f64 (pow.f64 (*.f64 (*.f64 im im) 1/2) 2) (*.f64 (*.f64 im im) (pow.f64 (/.f64 1 re) 5))) (*.f64 1/2 (/.f64 (*.f64 im im) re))))
(fma.f64 -1/2 (*.f64 (*.f64 1/4 (pow.f64 im 4)) (/.f64 1 (pow.f64 re 3))) (fma.f64 1/2 (/.f64 (*.f64 im im) re) (*.f64 (*.f64 1/4 (pow.f64 im 4)) (*.f64 (*.f64 (*.f64 im im) (pow.f64 (/.f64 1 re) 5)) 1/4))))
(+.f64 (/.f64 (*.f64 im im) (/.f64 re 1/2)) (*.f64 (*.f64 1/4 (pow.f64 im 4)) (+.f64 (*.f64 -1/2 (/.f64 1 (pow.f64 re 3))) (*.f64 1/4 (*.f64 (*.f64 im im) (pow.f64 (/.f64 1 re) 5))))))
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 (*.f64 1/2 (pow.f64 im 2)) 2) (pow.f64 (/.f64 1 re) 3))) (+.f64 (*.f64 1/4 (*.f64 (pow.f64 (*.f64 1/2 (pow.f64 im 2)) 2) (*.f64 (pow.f64 im 2) (pow.f64 (/.f64 1 re) 5)))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -1/2 (*.f64 (+.f64 (*.f64 1/4 (*.f64 (pow.f64 (*.f64 1/2 (pow.f64 im 2)) 2) (pow.f64 (pow.f64 im 2) 2))) (pow.f64 (*.f64 -1/2 (pow.f64 (*.f64 1/2 (pow.f64 im 2)) 2)) 2)) (pow.f64 (/.f64 1 re) 7))))))
(fma.f64 -1/2 (*.f64 (pow.f64 (*.f64 (*.f64 im im) 1/2) 2) (pow.f64 (/.f64 1 re) 3)) (fma.f64 1/4 (*.f64 (pow.f64 (*.f64 (*.f64 im im) 1/2) 2) (*.f64 (*.f64 im im) (pow.f64 (/.f64 1 re) 5))) (fma.f64 1/2 (/.f64 (*.f64 im im) re) (*.f64 (*.f64 -1/2 (fma.f64 1/4 (*.f64 (pow.f64 (*.f64 (*.f64 im im) 1/2) 2) (pow.f64 im 4)) (pow.f64 (*.f64 -1/2 (pow.f64 (*.f64 (*.f64 im im) 1/2) 2)) 2))) (pow.f64 (/.f64 1 re) 7)))))
(fma.f64 -1/2 (*.f64 (*.f64 1/4 (pow.f64 im 4)) (/.f64 1 (pow.f64 re 3))) (fma.f64 1/4 (*.f64 (*.f64 im im) (*.f64 (pow.f64 (/.f64 1 re) 5) (*.f64 1/4 (pow.f64 im 4)))) (fma.f64 1/2 (/.f64 (*.f64 im im) re) (*.f64 -1/2 (*.f64 (fma.f64 1/4 (*.f64 (*.f64 1/4 (pow.f64 im 4)) (pow.f64 im 4)) (pow.f64 (*.f64 -1/2 (*.f64 1/4 (pow.f64 im 4))) 2)) (pow.f64 (/.f64 1 re) 7))))))
(+.f64 (fma.f64 1/2 (/.f64 (*.f64 im im) re) (*.f64 (*.f64 5/4 (pow.f64 (*.f64 im (*.f64 im 1/2)) 4)) (*.f64 (pow.f64 (/.f64 1 re) 7) -1/2))) (*.f64 (*.f64 1/4 (pow.f64 im 4)) (+.f64 (*.f64 -1/2 (/.f64 1 (pow.f64 re 3))) (*.f64 1/4 (*.f64 (*.f64 im im) (pow.f64 (/.f64 1 re) 5))))))
(*.f64 -2 re)
(*.f64 re -2)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -2 re))
(fma.f64 -1/2 (/.f64 (*.f64 im im) re) (*.f64 re -2))
(fma.f64 re -2 (/.f64 -1/2 (/.f64 re (*.f64 im im))))
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 (*.f64 1/2 (pow.f64 im 2)) 2) (pow.f64 (/.f64 -1 re) 3))) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -2 re)))
(fma.f64 -1/2 (*.f64 (pow.f64 (*.f64 (*.f64 im im) 1/2) 2) (/.f64 -1 (pow.f64 re 3))) (fma.f64 -1/2 (/.f64 (*.f64 im im) re) (*.f64 re -2)))
(fma.f64 -1/2 (*.f64 (*.f64 1/4 (pow.f64 im 4)) (/.f64 -1 (pow.f64 re 3))) (fma.f64 re -2 (/.f64 -1/2 (/.f64 re (*.f64 im im)))))
(fma.f64 -1/2 (/.f64 (neg.f64 (*.f64 1/4 (pow.f64 im 4))) (pow.f64 re 3)) (fma.f64 -1/2 (/.f64 (*.f64 im im) re) (*.f64 re -2)))
(+.f64 (*.f64 1/4 (*.f64 (pow.f64 (*.f64 1/2 (pow.f64 im 2)) 2) (*.f64 (pow.f64 im 2) (pow.f64 (/.f64 -1 re) 5)))) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 (*.f64 1/2 (pow.f64 im 2)) 2) (pow.f64 (/.f64 -1 re) 3))) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 -2 re))))
(fma.f64 1/4 (*.f64 (pow.f64 (*.f64 (*.f64 im im) 1/2) 2) (*.f64 (*.f64 im im) (pow.f64 (/.f64 -1 re) 5))) (fma.f64 -1/2 (*.f64 (pow.f64 (*.f64 (*.f64 im im) 1/2) 2) (/.f64 -1 (pow.f64 re 3))) (fma.f64 -1/2 (/.f64 (*.f64 im im) re) (*.f64 re -2))))
(fma.f64 1/4 (*.f64 (*.f64 im im) (*.f64 (pow.f64 (/.f64 -1 re) 5) (*.f64 1/4 (pow.f64 im 4)))) (fma.f64 -1/2 (*.f64 (*.f64 1/4 (pow.f64 im 4)) (/.f64 -1 (pow.f64 re 3))) (fma.f64 re -2 (/.f64 -1/2 (/.f64 re (*.f64 im im))))))
(+.f64 (fma.f64 -1/2 (/.f64 (*.f64 im im) re) (*.f64 re -2)) (*.f64 (*.f64 1/4 (pow.f64 im 4)) (+.f64 (*.f64 -1/2 (/.f64 -1 (pow.f64 re 3))) (*.f64 1/4 (*.f64 im (*.f64 im (pow.f64 (/.f64 -1 re) 5)))))))
(-.f64 (sqrt.f64 (pow.f64 re 2)) re)
(-.f64 (sqrt.f64 (*.f64 re re)) re)
(-.f64 (fabs.f64 re) re)
0
(-.f64 (+.f64 (sqrt.f64 (pow.f64 re 2)) (*.f64 1/2 (/.f64 (pow.f64 im 2) (sqrt.f64 (pow.f64 re 2))))) re)
(+.f64 (sqrt.f64 (*.f64 re re)) (-.f64 (*.f64 1/2 (/.f64 (*.f64 im im) (sqrt.f64 (*.f64 re re)))) re))
(-.f64 (fma.f64 1/2 (/.f64 (*.f64 im im) (fabs.f64 re)) (fabs.f64 re)) re)
(+.f64 (/.f64 (*.f64 im im) (/.f64 re 1/2)) 0)
(-.f64 (+.f64 (sqrt.f64 (pow.f64 re 2)) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) (sqrt.f64 (pow.f64 re 2)))) (*.f64 -1/2 (/.f64 (*.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (pow.f64 re 2))) 2) (pow.f64 im 4)) (sqrt.f64 (pow.f64 re 2)))))) re)
(+.f64 (sqrt.f64 (*.f64 re re)) (-.f64 (fma.f64 1/2 (/.f64 (*.f64 im im) (sqrt.f64 (*.f64 re re))) (*.f64 -1/2 (/.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (*.f64 re re))) 2) (/.f64 (sqrt.f64 (*.f64 re re)) (pow.f64 im 4))))) re))
(+.f64 (fma.f64 1/2 (/.f64 (*.f64 im im) (fabs.f64 re)) (fabs.f64 re)) (-.f64 (*.f64 -1/2 (*.f64 (/.f64 (pow.f64 (/.f64 1/2 (fabs.f64 re)) 2) (fabs.f64 re)) (pow.f64 im 4))) re))
(+.f64 (fma.f64 1/2 (/.f64 (*.f64 im im) re) (*.f64 (/.f64 -1/2 re) (*.f64 (pow.f64 (/.f64 1/2 re) 2) (pow.f64 im 4)))) 0)
(-.f64 (+.f64 (sqrt.f64 (pow.f64 re 2)) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) (sqrt.f64 (pow.f64 re 2)))) (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (pow.f64 re 2))) 2) (pow.f64 im 4)) (sqrt.f64 (pow.f64 re 2)))) (*.f64 1/4 (/.f64 (*.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (pow.f64 re 2))) 2) (pow.f64 im 6)) (*.f64 (sqrt.f64 (pow.f64 re 2)) (pow.f64 (sqrt.f64 (pow.f64 re 2)) 2))))))) re)
(+.f64 (sqrt.f64 (*.f64 re re)) (-.f64 (fma.f64 1/2 (/.f64 (*.f64 im im) (sqrt.f64 (*.f64 re re))) (fma.f64 -1/2 (/.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (*.f64 re re))) 2) (/.f64 (sqrt.f64 (*.f64 re re)) (pow.f64 im 4))) (*.f64 1/4 (/.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (*.f64 re re))) 2) (/.f64 (*.f64 (sqrt.f64 (*.f64 re re)) (pow.f64 (sqrt.f64 (*.f64 re re)) 2)) (pow.f64 im 6)))))) re))
(+.f64 (fma.f64 1/2 (/.f64 (*.f64 im im) (fabs.f64 re)) (fabs.f64 re)) (-.f64 (fma.f64 -1/2 (*.f64 (/.f64 (pow.f64 (/.f64 1/2 (fabs.f64 re)) 2) (fabs.f64 re)) (pow.f64 im 4)) (*.f64 1/4 (*.f64 (/.f64 (pow.f64 (/.f64 1/2 (fabs.f64 re)) 2) (pow.f64 (fabs.f64 re) 3)) (pow.f64 im 6)))) re))
(+.f64 (fma.f64 1/2 (/.f64 (*.f64 im im) re) (fma.f64 1/4 (*.f64 (/.f64 (pow.f64 (/.f64 1/2 re) 2) (pow.f64 re 3)) (pow.f64 im 6)) (*.f64 (/.f64 -1/2 re) (*.f64 (pow.f64 (/.f64 1/2 re) 2) (pow.f64 im 4))))) 0)
im
(sqrt.f64 (*.f64 im im))
(fabs.f64 im)
(+.f64 (*.f64 -1 re) im)
(fma.f64 -1 re (sqrt.f64 (*.f64 im im)))
(-.f64 (fabs.f64 im) re)
(-.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) (sqrt.f64 (*.f64 im im))) (sqrt.f64 (*.f64 im im))))
(-.f64 (fma.f64 1/2 (/.f64 re (/.f64 (fabs.f64 im) re)) (fabs.f64 im)) re)
(-.f64 (fma.f64 1/2 (*.f64 (/.f64 re im) re) im) re)
(+.f64 (*.f64 -1 re) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 (*.f64 1/2 (pow.f64 re 2)) 2) (pow.f64 (/.f64 1 im) 3))) im)))
(fma.f64 -1 re (fma.f64 1/2 (/.f64 (*.f64 re re) im) (fma.f64 -1/2 (*.f64 (pow.f64 (*.f64 1/2 (*.f64 re re)) 2) (/.f64 1 (pow.f64 im 3))) im)))
(-.f64 (fma.f64 1/2 (/.f64 (*.f64 re re) im) (fma.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 4) 1/4)) (/.f64 1 (pow.f64 im 3)) im)) re)
(-.f64 (fma.f64 1/2 (*.f64 (/.f64 re im) re) (fma.f64 -1/2 (/.f64 (*.f64 (pow.f64 re 4) 1/4) (pow.f64 im 3)) 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 im) re)
(+.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 (*.f64 (*.f64 re re) -1/2) im) im) re)
(-.f64 (/.f64 (*.f64 re re) (/.f64 im -1/2)) (+.f64 im re))
(+.f64 (*.f64 -1 re) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 (/.f64 -1 im) 3) (pow.f64 (*.f64 1/2 (pow.f64 re 2)) 2))) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))))
(fma.f64 -1 re (fma.f64 -1/2 (*.f64 (pow.f64 (*.f64 1/2 (*.f64 re re)) 2) (/.f64 -1 (pow.f64 im 3))) (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))))
(-.f64 (fma.f64 (/.f64 1/2 (pow.f64 im 3)) (*.f64 (pow.f64 re 4) 1/4) (-.f64 (/.f64 (*.f64 (*.f64 re re) -1/2) im) im)) re)
(-.f64 (fma.f64 (/.f64 1/2 (pow.f64 im 3)) (*.f64 (pow.f64 re 4) 1/4) (/.f64 (*.f64 re re) (/.f64 im -1/2))) (+.f64 im re))
(sqrt.f64 (*.f64 2 (sqrt.f64 (pow.f64 im 2))))
(sqrt.f64 (*.f64 2 (sqrt.f64 (*.f64 im im))))
(sqrt.f64 (*.f64 2 (fabs.f64 im)))
(sqrt.f64 (*.f64 im 2))
(+.f64 (*.f64 -1 (/.f64 re (sqrt.f64 (*.f64 2 (sqrt.f64 (pow.f64 im 2)))))) (sqrt.f64 (*.f64 2 (sqrt.f64 (pow.f64 im 2)))))
(fma.f64 -1 (/.f64 re (sqrt.f64 (*.f64 2 (sqrt.f64 (*.f64 im im))))) (sqrt.f64 (*.f64 2 (sqrt.f64 (*.f64 im im)))))
(-.f64 (sqrt.f64 (*.f64 2 (fabs.f64 im))) (/.f64 re (sqrt.f64 (*.f64 2 (fabs.f64 im)))))
(-.f64 (sqrt.f64 (*.f64 im 2)) (/.f64 re (sqrt.f64 (*.f64 im 2))))
(+.f64 (*.f64 -1 (/.f64 re (sqrt.f64 (*.f64 2 (sqrt.f64 (pow.f64 im 2)))))) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (-.f64 (/.f64 1 (sqrt.f64 (pow.f64 im 2))) (pow.f64 (/.f64 -1 (sqrt.f64 (*.f64 2 (sqrt.f64 (pow.f64 im 2))))) 2)) (pow.f64 re 2)) (sqrt.f64 (*.f64 2 (sqrt.f64 (pow.f64 im 2)))))) (sqrt.f64 (*.f64 2 (sqrt.f64 (pow.f64 im 2))))))
(fma.f64 -1 (/.f64 re (sqrt.f64 (*.f64 2 (sqrt.f64 (*.f64 im im))))) (fma.f64 1/2 (/.f64 (-.f64 (/.f64 1 (sqrt.f64 (*.f64 im im))) (pow.f64 (/.f64 -1 (sqrt.f64 (*.f64 2 (sqrt.f64 (*.f64 im im))))) 2)) (/.f64 (sqrt.f64 (*.f64 2 (sqrt.f64 (*.f64 im im)))) (*.f64 re re))) (sqrt.f64 (*.f64 2 (sqrt.f64 (*.f64 im im))))))
(-.f64 (fma.f64 1/2 (*.f64 (/.f64 (-.f64 (/.f64 1 (fabs.f64 im)) (pow.f64 (/.f64 -1 (sqrt.f64 (*.f64 2 (fabs.f64 im)))) 2)) (sqrt.f64 (*.f64 2 (fabs.f64 im)))) (*.f64 re re)) (sqrt.f64 (*.f64 2 (fabs.f64 im)))) (/.f64 re (sqrt.f64 (*.f64 2 (fabs.f64 im)))))
(-.f64 (fma.f64 1/2 (*.f64 (/.f64 (-.f64 (/.f64 1 im) (pow.f64 (/.f64 -1 (sqrt.f64 (*.f64 im 2))) 2)) (sqrt.f64 (*.f64 im 2))) (*.f64 re re)) (sqrt.f64 (*.f64 im 2))) (/.f64 re (sqrt.f64 (*.f64 im 2))))
(+.f64 (*.f64 -1 (/.f64 re (sqrt.f64 (*.f64 2 (sqrt.f64 (pow.f64 im 2)))))) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (-.f64 (/.f64 1 (sqrt.f64 (pow.f64 im 2))) (pow.f64 (/.f64 -1 (sqrt.f64 (*.f64 2 (sqrt.f64 (pow.f64 im 2))))) 2)) (pow.f64 re 3)) (*.f64 (pow.f64 (sqrt.f64 (*.f64 2 (sqrt.f64 (pow.f64 im 2)))) 2) (sqrt.f64 (*.f64 2 (sqrt.f64 (pow.f64 im 2))))))) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (-.f64 (/.f64 1 (sqrt.f64 (pow.f64 im 2))) (pow.f64 (/.f64 -1 (sqrt.f64 (*.f64 2 (sqrt.f64 (pow.f64 im 2))))) 2)) (pow.f64 re 2)) (sqrt.f64 (*.f64 2 (sqrt.f64 (pow.f64 im 2)))))) (sqrt.f64 (*.f64 2 (sqrt.f64 (pow.f64 im 2)))))))
(fma.f64 -1 (/.f64 re (sqrt.f64 (*.f64 2 (sqrt.f64 (*.f64 im im))))) (fma.f64 1/2 (/.f64 (-.f64 (/.f64 1 (sqrt.f64 (*.f64 im im))) (pow.f64 (/.f64 -1 (sqrt.f64 (*.f64 2 (sqrt.f64 (*.f64 im im))))) 2)) (/.f64 (pow.f64 (sqrt.f64 (*.f64 2 (sqrt.f64 (*.f64 im im)))) 3) (pow.f64 re 3))) (fma.f64 1/2 (/.f64 (-.f64 (/.f64 1 (sqrt.f64 (*.f64 im im))) (pow.f64 (/.f64 -1 (sqrt.f64 (*.f64 2 (sqrt.f64 (*.f64 im im))))) 2)) (/.f64 (sqrt.f64 (*.f64 2 (sqrt.f64 (*.f64 im im)))) (*.f64 re re))) (sqrt.f64 (*.f64 2 (sqrt.f64 (*.f64 im im)))))))
(-.f64 (fma.f64 1/2 (/.f64 (-.f64 (/.f64 1 (fabs.f64 im)) (pow.f64 (/.f64 -1 (sqrt.f64 (*.f64 2 (fabs.f64 im)))) 2)) (/.f64 (pow.f64 (sqrt.f64 (*.f64 2 (fabs.f64 im))) 3) (pow.f64 re 3))) (fma.f64 1/2 (*.f64 (/.f64 (-.f64 (/.f64 1 (fabs.f64 im)) (pow.f64 (/.f64 -1 (sqrt.f64 (*.f64 2 (fabs.f64 im)))) 2)) (sqrt.f64 (*.f64 2 (fabs.f64 im)))) (*.f64 re re)) (sqrt.f64 (*.f64 2 (fabs.f64 im))))) (/.f64 re (sqrt.f64 (*.f64 2 (fabs.f64 im)))))
(+.f64 (*.f64 1/2 (*.f64 (/.f64 (-.f64 (/.f64 1 im) (pow.f64 (/.f64 -1 (sqrt.f64 (*.f64 im 2))) 2)) (sqrt.f64 (*.f64 im 2))) (+.f64 (/.f64 (pow.f64 re 3) (*.f64 im 2)) (*.f64 re re)))) (-.f64 (sqrt.f64 (*.f64 im 2)) (/.f64 re (sqrt.f64 (*.f64 im 2)))))
(sqrt.f64 (*.f64 2 (-.f64 (sqrt.f64 (pow.f64 re 2)) re)))
(sqrt.f64 (*.f64 2 (-.f64 (sqrt.f64 (*.f64 re re)) re)))
(sqrt.f64 (*.f64 2 (-.f64 (fabs.f64 re) re)))
(sqrt.f64 0)
(+.f64 (sqrt.f64 (*.f64 2 (-.f64 (sqrt.f64 (pow.f64 re 2)) re))) (*.f64 1/2 (/.f64 (pow.f64 im 2) (*.f64 (sqrt.f64 (pow.f64 re 2)) (sqrt.f64 (*.f64 2 (-.f64 (sqrt.f64 (pow.f64 re 2)) re)))))))
(+.f64 (sqrt.f64 (*.f64 2 (-.f64 (sqrt.f64 (*.f64 re re)) re))) (*.f64 1/2 (/.f64 (/.f64 (*.f64 im im) (sqrt.f64 (*.f64 re re))) (sqrt.f64 (*.f64 2 (-.f64 (sqrt.f64 (*.f64 re re)) re))))))
(fma.f64 1/2 (/.f64 (*.f64 im im) (*.f64 (fabs.f64 re) (sqrt.f64 (*.f64 2 (-.f64 (fabs.f64 re) re))))) (sqrt.f64 (*.f64 2 (-.f64 (fabs.f64 re) re))))
(fma.f64 1/2 (/.f64 im (/.f64 (sqrt.f64 0) (/.f64 im re))) (sqrt.f64 0))
(+.f64 (*.f64 1/2 (/.f64 (*.f64 (-.f64 (*.f64 -1 (/.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (pow.f64 re 2))) 2) (sqrt.f64 (pow.f64 re 2)))) (pow.f64 (/.f64 1/2 (*.f64 (sqrt.f64 (pow.f64 re 2)) (sqrt.f64 (*.f64 2 (-.f64 (sqrt.f64 (pow.f64 re 2)) re))))) 2)) (pow.f64 im 4)) (sqrt.f64 (*.f64 2 (-.f64 (sqrt.f64 (pow.f64 re 2)) re))))) (+.f64 (sqrt.f64 (*.f64 2 (-.f64 (sqrt.f64 (pow.f64 re 2)) re))) (*.f64 1/2 (/.f64 (pow.f64 im 2) (*.f64 (sqrt.f64 (pow.f64 re 2)) (sqrt.f64 (*.f64 2 (-.f64 (sqrt.f64 (pow.f64 re 2)) re))))))))
(fma.f64 1/2 (/.f64 (-.f64 (neg.f64 (/.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (*.f64 re re))) 2) (sqrt.f64 (*.f64 re re)))) (pow.f64 (/.f64 (/.f64 1/2 (sqrt.f64 (*.f64 re re))) (sqrt.f64 (*.f64 2 (-.f64 (sqrt.f64 (*.f64 re re)) re)))) 2)) (/.f64 (sqrt.f64 (*.f64 2 (-.f64 (sqrt.f64 (*.f64 re re)) re))) (pow.f64 im 4))) (+.f64 (sqrt.f64 (*.f64 2 (-.f64 (sqrt.f64 (*.f64 re re)) re))) (*.f64 1/2 (/.f64 (/.f64 (*.f64 im im) (sqrt.f64 (*.f64 re re))) (sqrt.f64 (*.f64 2 (-.f64 (sqrt.f64 (*.f64 re re)) re)))))))
(fma.f64 1/2 (*.f64 (/.f64 (-.f64 (/.f64 (neg.f64 (pow.f64 (/.f64 1/2 (fabs.f64 re)) 2)) (fabs.f64 re)) (pow.f64 (/.f64 (/.f64 1/2 (fabs.f64 re)) (sqrt.f64 (*.f64 2 (-.f64 (fabs.f64 re) re)))) 2)) (sqrt.f64 (*.f64 2 (-.f64 (fabs.f64 re) re)))) (pow.f64 im 4)) (fma.f64 1/2 (/.f64 (*.f64 im im) (*.f64 (fabs.f64 re) (sqrt.f64 (*.f64 2 (-.f64 (fabs.f64 re) re))))) (sqrt.f64 (*.f64 2 (-.f64 (fabs.f64 re) re)))))
(fma.f64 1/2 (*.f64 (/.f64 (pow.f64 im 4) (sqrt.f64 0)) (-.f64 (/.f64 (neg.f64 (pow.f64 (/.f64 1/2 re) 2)) re) (pow.f64 (/.f64 (/.f64 1/2 re) (sqrt.f64 0)) 2))) (fma.f64 1/2 (/.f64 im (/.f64 (sqrt.f64 0) (/.f64 im re))) (sqrt.f64 0)))
(+.f64 (*.f64 1/2 (/.f64 (*.f64 (-.f64 (*.f64 1/2 (/.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (pow.f64 re 2))) 2) (*.f64 (sqrt.f64 (pow.f64 re 2)) (pow.f64 (sqrt.f64 (pow.f64 re 2)) 2)))) (*.f64 1/2 (/.f64 (-.f64 (*.f64 -1 (/.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (pow.f64 re 2))) 2) (sqrt.f64 (pow.f64 re 2)))) (pow.f64 (/.f64 1/2 (*.f64 (sqrt.f64 (pow.f64 re 2)) (sqrt.f64 (*.f64 2 (-.f64 (sqrt.f64 (pow.f64 re 2)) re))))) 2)) (*.f64 (sqrt.f64 (pow.f64 re 2)) (pow.f64 (sqrt.f64 (*.f64 2 (-.f64 (sqrt.f64 (pow.f64 re 2)) re))) 2))))) (pow.f64 im 6)) (sqrt.f64 (*.f64 2 (-.f64 (sqrt.f64 (pow.f64 re 2)) re))))) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (-.f64 (*.f64 -1 (/.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (pow.f64 re 2))) 2) (sqrt.f64 (pow.f64 re 2)))) (pow.f64 (/.f64 1/2 (*.f64 (sqrt.f64 (pow.f64 re 2)) (sqrt.f64 (*.f64 2 (-.f64 (sqrt.f64 (pow.f64 re 2)) re))))) 2)) (pow.f64 im 4)) (sqrt.f64 (*.f64 2 (-.f64 (sqrt.f64 (pow.f64 re 2)) re))))) (+.f64 (sqrt.f64 (*.f64 2 (-.f64 (sqrt.f64 (pow.f64 re 2)) re))) (*.f64 1/2 (/.f64 (pow.f64 im 2) (*.f64 (sqrt.f64 (pow.f64 re 2)) (sqrt.f64 (*.f64 2 (-.f64 (sqrt.f64 (pow.f64 re 2)) re)))))))))
(fma.f64 1/2 (/.f64 (*.f64 1/2 (-.f64 (/.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (*.f64 re re))) 2) (*.f64 (sqrt.f64 (*.f64 re re)) (pow.f64 (sqrt.f64 (*.f64 re re)) 2))) (/.f64 (-.f64 (neg.f64 (/.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (*.f64 re re))) 2) (sqrt.f64 (*.f64 re re)))) (pow.f64 (/.f64 (/.f64 1/2 (sqrt.f64 (*.f64 re re))) (sqrt.f64 (*.f64 2 (-.f64 (sqrt.f64 (*.f64 re re)) re)))) 2)) (*.f64 (sqrt.f64 (*.f64 re re)) (pow.f64 (sqrt.f64 (*.f64 2 (-.f64 (sqrt.f64 (*.f64 re re)) re))) 2))))) (/.f64 (sqrt.f64 (*.f64 2 (-.f64 (sqrt.f64 (*.f64 re re)) re))) (pow.f64 im 6))) (fma.f64 1/2 (/.f64 (-.f64 (neg.f64 (/.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (*.f64 re re))) 2) (sqrt.f64 (*.f64 re re)))) (pow.f64 (/.f64 (/.f64 1/2 (sqrt.f64 (*.f64 re re))) (sqrt.f64 (*.f64 2 (-.f64 (sqrt.f64 (*.f64 re re)) re)))) 2)) (/.f64 (sqrt.f64 (*.f64 2 (-.f64 (sqrt.f64 (*.f64 re re)) re))) (pow.f64 im 4))) (+.f64 (sqrt.f64 (*.f64 2 (-.f64 (sqrt.f64 (*.f64 re re)) re))) (*.f64 1/2 (/.f64 (/.f64 (*.f64 im im) (sqrt.f64 (*.f64 re re))) (sqrt.f64 (*.f64 2 (-.f64 (sqrt.f64 (*.f64 re re)) re))))))))
(fma.f64 1/2 (/.f64 1/2 (/.f64 (/.f64 (sqrt.f64 (*.f64 2 (-.f64 (fabs.f64 re) re))) (pow.f64 im 6)) (-.f64 (/.f64 (pow.f64 (/.f64 1/2 (fabs.f64 re)) 2) (pow.f64 (fabs.f64 re) 3)) (/.f64 (-.f64 (/.f64 (neg.f64 (pow.f64 (/.f64 1/2 (fabs.f64 re)) 2)) (fabs.f64 re)) (pow.f64 (/.f64 (/.f64 1/2 (fabs.f64 re)) (sqrt.f64 (*.f64 2 (-.f64 (fabs.f64 re) re)))) 2)) (*.f64 (fabs.f64 re) (*.f64 2 (-.f64 (fabs.f64 re) re))))))) (fma.f64 1/2 (*.f64 (/.f64 (-.f64 (/.f64 (neg.f64 (pow.f64 (/.f64 1/2 (fabs.f64 re)) 2)) (fabs.f64 re)) (pow.f64 (/.f64 (/.f64 1/2 (fabs.f64 re)) (sqrt.f64 (*.f64 2 (-.f64 (fabs.f64 re) re)))) 2)) (sqrt.f64 (*.f64 2 (-.f64 (fabs.f64 re) re)))) (pow.f64 im 4)) (fma.f64 1/2 (/.f64 (*.f64 im im) (*.f64 (fabs.f64 re) (sqrt.f64 (*.f64 2 (-.f64 (fabs.f64 re) re))))) (sqrt.f64 (*.f64 2 (-.f64 (fabs.f64 re) re))))))
(fma.f64 1/2 (*.f64 (/.f64 1/2 (/.f64 (sqrt.f64 0) (+.f64 (+.f64 (/.f64 (pow.f64 (/.f64 1/2 re) 2) (pow.f64 re 3)) (/.f64 (pow.f64 (/.f64 1/2 re) 2) 0)) (/.f64 (pow.f64 (/.f64 (/.f64 1/2 re) (sqrt.f64 0)) 2) 0)))) (pow.f64 im 6)) (fma.f64 1/2 (*.f64 (/.f64 (pow.f64 im 4) (sqrt.f64 0)) (-.f64 (/.f64 (neg.f64 (pow.f64 (/.f64 1/2 re) 2)) re) (pow.f64 (/.f64 (/.f64 1/2 re) (sqrt.f64 0)) 2))) (fma.f64 1/2 (/.f64 im (/.f64 (sqrt.f64 0) (/.f64 im re))) (sqrt.f64 0))))
(+.f64 (hypot.f64 re im) (neg.f64 re))
(-.f64 (hypot.f64 re im) re)
(+.f64 (hypot.f64 re im) (*.f64 (neg.f64 re) 1))
(-.f64 (hypot.f64 re im) re)
(+.f64 (-.f64 (hypot.f64 re im) re) (fma.f64 (neg.f64 re) 1 re))
(-.f64 (hypot.f64 re im) re)
(+.f64 (-.f64 (hypot.f64 re im) re) (fma.f64 (neg.f64 (cbrt.f64 re)) (pow.f64 (cbrt.f64 re) 2) re))
(-.f64 (hypot.f64 re im) re)
(+.f64 (-.f64 (hypot.f64 re im) re) (fma.f64 (neg.f64 (sqrt.f64 re)) (sqrt.f64 re) re))
(-.f64 (hypot.f64 re im) re)
(+.f64 (neg.f64 re) (hypot.f64 re im))
(-.f64 (hypot.f64 re im) re)
(*.f64 (-.f64 (hypot.f64 re im) re) 1)
(-.f64 (hypot.f64 re im) re)
(*.f64 1 (-.f64 (hypot.f64 re im) re))
(-.f64 (hypot.f64 re im) re)
(*.f64 (cbrt.f64 (-.f64 (hypot.f64 re im) re)) (pow.f64 (cbrt.f64 (-.f64 (hypot.f64 re im) re)) 2))
(-.f64 (hypot.f64 re im) re)
(*.f64 (pow.f64 (cbrt.f64 (-.f64 (hypot.f64 re im) re)) 2) (cbrt.f64 (-.f64 (hypot.f64 re im) re)))
(-.f64 (hypot.f64 re im) re)
(*.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) (sqrt.f64 (-.f64 (hypot.f64 re im) re)))
(-.f64 (hypot.f64 re im) re)
(*.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))))))
(/.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))))
(/.f64 (-.f64 (pow.f64 (hypot.f64 re im) 3) (pow.f64 re 3)) (fma.f64 re (+.f64 re (hypot.f64 re im)) (pow.f64 (hypot.f64 re im) 2)))
(*.f64 (-.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 re re)) (/.f64 1 (+.f64 re (hypot.f64 re im))))
(/.f64 (-.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 re re)) (+.f64 re (hypot.f64 re im)))
(*.f64 (+.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 re)) (-.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 re)))
(-.f64 (hypot.f64 re im) re)
(/.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))))
(/.f64 (-.f64 (pow.f64 (hypot.f64 re im) 3) (pow.f64 re 3)) (fma.f64 re (+.f64 re (hypot.f64 re im)) (pow.f64 (hypot.f64 re im) 2)))
(/.f64 1 (/.f64 (+.f64 re (hypot.f64 re im)) (-.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 re re))))
(*.f64 (-.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 re re)) (/.f64 1 (+.f64 re (hypot.f64 re im))))
(/.f64 (-.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 re re)) (+.f64 re (hypot.f64 re im)))
(/.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)))))
(/.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))))
(/.f64 (-.f64 (pow.f64 (hypot.f64 re im) 3) (pow.f64 re 3)) (fma.f64 re (+.f64 re (hypot.f64 re im)) (pow.f64 (hypot.f64 re im) 2)))
(/.f64 (-.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 re re)) (+.f64 re (hypot.f64 re im)))
(*.f64 (-.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 re re)) (/.f64 1 (+.f64 re (hypot.f64 re im))))
(/.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))))))
(/.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))))
(/.f64 (-.f64 (pow.f64 (hypot.f64 re im) 3) (pow.f64 re 3)) (fma.f64 re (+.f64 re (hypot.f64 re im)) (pow.f64 (hypot.f64 re im) 2)))
(/.f64 (neg.f64 (-.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 re re))) (neg.f64 (+.f64 re (hypot.f64 re im))))
(*.f64 (-.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 re re)) (/.f64 1 (+.f64 re (hypot.f64 re im))))
(/.f64 (-.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 re re)) (+.f64 re (hypot.f64 re im)))
(/.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)))))
(/.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))))
(/.f64 (-.f64 (pow.f64 (hypot.f64 re im) 3) (pow.f64 re 3)) (fma.f64 re (+.f64 re (hypot.f64 re im)) (pow.f64 (hypot.f64 re im) 2)))
(/.f64 (-.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 (neg.f64 re) (neg.f64 re))) (-.f64 (hypot.f64 re im) (neg.f64 re)))
(*.f64 (-.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 re re)) (/.f64 1 (+.f64 re (hypot.f64 re im))))
(/.f64 (-.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 re re)) (+.f64 re (hypot.f64 re im)))
(pow.f64 (-.f64 (hypot.f64 re im) re) 1)
(-.f64 (hypot.f64 re im) re)
(pow.f64 (pow.f64 (-.f64 (hypot.f64 re im) re) 3) 1/3)
(-.f64 (hypot.f64 re im) re)
(pow.f64 (cbrt.f64 (-.f64 (hypot.f64 re im) re)) 3)
(-.f64 (hypot.f64 re im) re)
(pow.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) 2)
(-.f64 (hypot.f64 re im) re)
(sqrt.f64 (pow.f64 (-.f64 (hypot.f64 re im) re) 2))
(-.f64 (hypot.f64 re im) re)
(log.f64 (exp.f64 (-.f64 (hypot.f64 re im) re)))
(-.f64 (hypot.f64 re im) re)
(cbrt.f64 (pow.f64 (-.f64 (hypot.f64 re im) re) 3))
(-.f64 (hypot.f64 re im) re)
(expm1.f64 (log1p.f64 (-.f64 (hypot.f64 re im) re)))
(-.f64 (hypot.f64 re im) re)
(log1p.f64 (expm1.f64 (-.f64 (hypot.f64 re im) re)))
(-.f64 (hypot.f64 re im) re)
(exp.f64 (log.f64 (-.f64 (hypot.f64 re im) re)))
(-.f64 (hypot.f64 re im) re)
(fma.f64 1 (hypot.f64 re im) (neg.f64 re))
(-.f64 (hypot.f64 re im) re)
(fma.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (cbrt.f64 (hypot.f64 re im)) (neg.f64 re))
(-.f64 (hypot.f64 re im) re)
(fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re))
(-.f64 (hypot.f64 re im) re)
(-.f64 (+.f64 1 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2))) 1)
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))) 1))
(+.f64 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))) 0)
(sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))
(*.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2)) 1)
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))) 1))
(+.f64 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))) 0)
(sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))
(*.f64 1 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2)))
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))) 1))
(+.f64 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))) 0)
(sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))
(*.f64 (cbrt.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2))) (cbrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2)))
(*.f64 (cbrt.f64 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))) (cbrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))))
(*.f64 (cbrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2)) (cbrt.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2))))
(*.f64 (cbrt.f64 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))) (cbrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))))
(*.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))
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))) 1))
(+.f64 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))) 0)
(sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))
(*.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) (sqrt.f64 2))
(*.f64 (sqrt.f64 2) (sqrt.f64 (-.f64 (hypot.f64 re im) re)))
(*.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) (sqrt.f64 2))
(*.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))))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))) 2)) (sqrt.f64 (cbrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))))
(*.f64 (fabs.f64 (cbrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))) (sqrt.f64 (cbrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))))
(*.f64 (cbrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))) (sqrt.f64 (cbrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))))
(*.f64 (pow.f64 1 1/2) (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2)))
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))) 1))
(+.f64 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))) 0)
(sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))
(*.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))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))) 2)) (sqrt.f64 (cbrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))))
(*.f64 (fabs.f64 (cbrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))) (sqrt.f64 (cbrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))))
(*.f64 (cbrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))) (sqrt.f64 (cbrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))))
(pow.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2) 1/2)
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))) 1))
(+.f64 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))) 0)
(sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))
(pow.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2)) 1)
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))) 1))
(+.f64 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))) 0)
(sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))
(pow.f64 (pow.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2) 3/2) 1/3)
(cbrt.f64 (pow.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)) 3/2))
(pow.f64 (cbrt.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2))) 3)
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))) 1))
(+.f64 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))) 0)
(sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))
(pow.f64 (pow.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2) 1/4) 2)
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))) 1))
(+.f64 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))) 0)
(sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))
(fabs.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2)))
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))) 1))
(+.f64 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))) 0)
(sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))
(log.f64 (exp.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2))))
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))) 1))
(+.f64 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))) 0)
(sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))
(cbrt.f64 (pow.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2) 3/2))
(cbrt.f64 (pow.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)) 3/2))
(expm1.f64 (log1p.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2))))
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))) 1))
(+.f64 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))) 0)
(sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))
(log1p.f64 (expm1.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2))))
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))) 1))
(+.f64 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))) 0)
(sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))
(exp.f64 (log.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2))))
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))) 1))
(+.f64 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))) 0)
(sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))

eval130.0ms (0.5%)

Compiler

Compiled 4778 to 3156 computations (33.9% saved)

prune60.0ms (0.2%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New1726178
Fresh000
Picked011
Done000
Total1727179
Error
7.0b
Counts
179 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
12.1b
(*.f64 1/2 (*.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) (sqrt.f64 2)))
25.0b
(*.f64 1/2 (sqrt.f64 (*.f64 im 2)))
56.3b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (/.f64 (*.f64 im im) (/.f64 re 1/2)))))
11.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))))
23.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 im re))))
51.4b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 re -2))))
60.3b
(*.f64 1/2 (sqrt.f64 0))
Compiler

Compiled 134 to 111 computations (17.2% saved)

localize18.0ms (0.1%)

Local error

Found 3 expressions with local error:

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

Compiled 42 to 17 computations (59.5% saved)

series3.8s (13.8%)

Counts
2 → 16
Calls

12 calls:

TimeVariablePointExpression
611.0ms
re
@inf
(*.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) (sqrt.f64 2))
563.0ms
re
@inf
(sqrt.f64 (-.f64 (hypot.f64 re im) re))
496.0ms
im
@-inf
(*.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) (sqrt.f64 2))
455.0ms
re
@-inf
(*.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) (sqrt.f64 2))
441.0ms
im
@inf
(*.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) (sqrt.f64 2))
Compiler

Compiled 355081 to 284169 computations (20% saved)

rewrite51.0ms (0.2%)

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

simplify51.0ms (0.2%)

Algorithm
egg-herbie
Rules
637×associate-*r*_binary64
587×associate-*l*_binary64
526×times-frac_binary64
445×associate-/l*_binary64
379×fma-def_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01842006
15081600
216891297
Stop Event
node limit
Counts
52 → 111
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 2) (sqrt.f64 (sqrt.f64 (pow.f64 im 2))))
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (sqrt.f64 (pow.f64 im 2)))) (*.f64 -1/2 (/.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (sqrt.f64 (pow.f64 im 2))))))
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (sqrt.f64 (pow.f64 im 2)))) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 re 2) (-.f64 (*.f64 1/2 (/.f64 1 (sqrt.f64 (pow.f64 im 2)))) (pow.f64 (/.f64 -1/2 (sqrt.f64 (sqrt.f64 (pow.f64 im 2)))) 2)))) (sqrt.f64 (sqrt.f64 (pow.f64 im 2))))) (*.f64 -1/2 (/.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (sqrt.f64 (pow.f64 im 2)))))))
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (sqrt.f64 (pow.f64 im 2)))) (+.f64 (*.f64 1/4 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 re 3) (-.f64 (*.f64 1/2 (/.f64 1 (sqrt.f64 (pow.f64 im 2)))) (pow.f64 (/.f64 -1/2 (sqrt.f64 (sqrt.f64 (pow.f64 im 2)))) 2)))) (*.f64 (sqrt.f64 (sqrt.f64 (pow.f64 im 2))) (pow.f64 (sqrt.f64 (sqrt.f64 (pow.f64 im 2))) 2)))) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 re 2) (-.f64 (*.f64 1/2 (/.f64 1 (sqrt.f64 (pow.f64 im 2)))) (pow.f64 (/.f64 -1/2 (sqrt.f64 (sqrt.f64 (pow.f64 im 2)))) 2)))) (sqrt.f64 (sqrt.f64 (pow.f64 im 2))))) (*.f64 -1/2 (/.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (sqrt.f64 (pow.f64 im 2))))))))
(*.f64 (sqrt.f64 2) (sqrt.f64 (-.f64 (sqrt.f64 (pow.f64 re 2)) re)))
(+.f64 (*.f64 1/4 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 2)) (*.f64 (sqrt.f64 (pow.f64 re 2)) (sqrt.f64 (-.f64 (sqrt.f64 (pow.f64 re 2)) re))))) (*.f64 (sqrt.f64 2) (sqrt.f64 (-.f64 (sqrt.f64 (pow.f64 re 2)) re))))
(+.f64 (*.f64 1/4 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 2)) (*.f64 (sqrt.f64 (pow.f64 re 2)) (sqrt.f64 (-.f64 (sqrt.f64 (pow.f64 re 2)) re))))) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 -1/2 (/.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (pow.f64 re 2))) 2) (sqrt.f64 (pow.f64 re 2)))) (pow.f64 (/.f64 1/4 (*.f64 (sqrt.f64 (pow.f64 re 2)) (sqrt.f64 (-.f64 (sqrt.f64 (pow.f64 re 2)) re)))) 2)) (pow.f64 im 4))) (sqrt.f64 (-.f64 (sqrt.f64 (pow.f64 re 2)) re)))) (*.f64 (sqrt.f64 2) (sqrt.f64 (-.f64 (sqrt.f64 (pow.f64 re 2)) re)))))
(+.f64 (*.f64 1/4 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 2)) (*.f64 (sqrt.f64 (pow.f64 re 2)) (sqrt.f64 (-.f64 (sqrt.f64 (pow.f64 re 2)) re))))) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 -1/2 (/.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (pow.f64 re 2))) 2) (sqrt.f64 (pow.f64 re 2)))) (pow.f64 (/.f64 1/4 (*.f64 (sqrt.f64 (pow.f64 re 2)) (sqrt.f64 (-.f64 (sqrt.f64 (pow.f64 re 2)) re)))) 2)) (pow.f64 im 4))) (sqrt.f64 (-.f64 (sqrt.f64 (pow.f64 re 2)) re)))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (-.f64 (sqrt.f64 (pow.f64 re 2)) re))) (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/4 (/.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (pow.f64 re 2))) 2) (*.f64 (sqrt.f64 (pow.f64 re 2)) (pow.f64 (sqrt.f64 (pow.f64 re 2)) 2)))) (*.f64 1/4 (/.f64 (-.f64 (*.f64 -1/2 (/.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (pow.f64 re 2))) 2) (sqrt.f64 (pow.f64 re 2)))) (pow.f64 (/.f64 1/4 (*.f64 (sqrt.f64 (pow.f64 re 2)) (sqrt.f64 (-.f64 (sqrt.f64 (pow.f64 re 2)) re)))) 2)) (*.f64 (sqrt.f64 (pow.f64 re 2)) (pow.f64 (sqrt.f64 (-.f64 (sqrt.f64 (pow.f64 re 2)) re)) 2))))) (pow.f64 im 6))) (sqrt.f64 (-.f64 (sqrt.f64 (pow.f64 re 2)) re)))))))
(sqrt.f64 (sqrt.f64 (pow.f64 im 2)))
(+.f64 (sqrt.f64 (sqrt.f64 (pow.f64 im 2))) (*.f64 -1/2 (/.f64 re (sqrt.f64 (sqrt.f64 (pow.f64 im 2))))))
(+.f64 (sqrt.f64 (sqrt.f64 (pow.f64 im 2))) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (pow.f64 re 2) (-.f64 (*.f64 1/2 (/.f64 1 (sqrt.f64 (pow.f64 im 2)))) (pow.f64 (/.f64 -1/2 (sqrt.f64 (sqrt.f64 (pow.f64 im 2)))) 2))) (sqrt.f64 (sqrt.f64 (pow.f64 im 2))))) (*.f64 -1/2 (/.f64 re (sqrt.f64 (sqrt.f64 (pow.f64 im 2)))))))
(+.f64 (sqrt.f64 (sqrt.f64 (pow.f64 im 2))) (+.f64 (*.f64 1/4 (/.f64 (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 (sqrt.f64 (pow.f64 im 2)))) (pow.f64 (/.f64 -1/2 (sqrt.f64 (sqrt.f64 (pow.f64 im 2)))) 2)) (pow.f64 re 3)) (*.f64 (sqrt.f64 (sqrt.f64 (pow.f64 im 2))) (pow.f64 (sqrt.f64 (sqrt.f64 (pow.f64 im 2))) 2)))) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (pow.f64 re 2) (-.f64 (*.f64 1/2 (/.f64 1 (sqrt.f64 (pow.f64 im 2)))) (pow.f64 (/.f64 -1/2 (sqrt.f64 (sqrt.f64 (pow.f64 im 2)))) 2))) (sqrt.f64 (sqrt.f64 (pow.f64 im 2))))) (*.f64 -1/2 (/.f64 re (sqrt.f64 (sqrt.f64 (pow.f64 im 2))))))))
(sqrt.f64 (-.f64 (sqrt.f64 (pow.f64 re 2)) re))
(+.f64 (*.f64 1/4 (/.f64 (pow.f64 im 2) (*.f64 (sqrt.f64 (pow.f64 re 2)) (sqrt.f64 (-.f64 (sqrt.f64 (pow.f64 re 2)) re))))) (sqrt.f64 (-.f64 (sqrt.f64 (pow.f64 re 2)) re)))
(+.f64 (*.f64 1/2 (/.f64 (*.f64 (-.f64 (*.f64 -1/2 (/.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (pow.f64 re 2))) 2) (sqrt.f64 (pow.f64 re 2)))) (pow.f64 (/.f64 1/4 (*.f64 (sqrt.f64 (pow.f64 re 2)) (sqrt.f64 (-.f64 (sqrt.f64 (pow.f64 re 2)) re)))) 2)) (pow.f64 im 4)) (sqrt.f64 (-.f64 (sqrt.f64 (pow.f64 re 2)) re)))) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 im 2) (*.f64 (sqrt.f64 (pow.f64 re 2)) (sqrt.f64 (-.f64 (sqrt.f64 (pow.f64 re 2)) re))))) (sqrt.f64 (-.f64 (sqrt.f64 (pow.f64 re 2)) re))))
(+.f64 (*.f64 1/2 (/.f64 (*.f64 (-.f64 (*.f64 -1/2 (/.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (pow.f64 re 2))) 2) (sqrt.f64 (pow.f64 re 2)))) (pow.f64 (/.f64 1/4 (*.f64 (sqrt.f64 (pow.f64 re 2)) (sqrt.f64 (-.f64 (sqrt.f64 (pow.f64 re 2)) re)))) 2)) (pow.f64 im 4)) (sqrt.f64 (-.f64 (sqrt.f64 (pow.f64 re 2)) re)))) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 im 2) (*.f64 (sqrt.f64 (pow.f64 re 2)) (sqrt.f64 (-.f64 (sqrt.f64 (pow.f64 re 2)) re))))) (+.f64 (sqrt.f64 (-.f64 (sqrt.f64 (pow.f64 re 2)) re)) (*.f64 1/2 (/.f64 (*.f64 (-.f64 (*.f64 1/4 (/.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (pow.f64 re 2))) 2) (*.f64 (sqrt.f64 (pow.f64 re 2)) (pow.f64 (sqrt.f64 (pow.f64 re 2)) 2)))) (*.f64 1/4 (/.f64 (-.f64 (*.f64 -1/2 (/.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (pow.f64 re 2))) 2) (sqrt.f64 (pow.f64 re 2)))) (pow.f64 (/.f64 1/4 (*.f64 (sqrt.f64 (pow.f64 re 2)) (sqrt.f64 (-.f64 (sqrt.f64 (pow.f64 re 2)) re)))) 2)) (*.f64 (sqrt.f64 (pow.f64 re 2)) (pow.f64 (sqrt.f64 (-.f64 (sqrt.f64 (pow.f64 re 2)) re)) 2))))) (pow.f64 im 6)) (sqrt.f64 (-.f64 (sqrt.f64 (pow.f64 re 2)) re)))))))
(-.f64 (+.f64 1 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2))) 1)
(pow.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2)) 1)
(pow.f64 (pow.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2)) 3) 1/3)
(pow.f64 (cbrt.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2))) 3)
(pow.f64 (sqrt.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2))) 2)
(pow.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2) 1/2)
(sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2))
(log.f64 (exp.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2))))
(cbrt.f64 (pow.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2)) 3))
(cbrt.f64 (*.f64 (pow.f64 (-.f64 (hypot.f64 re im) re) 3/2) (*.f64 2 (sqrt.f64 2))))
(cbrt.f64 (*.f64 (*.f64 2 (sqrt.f64 2)) (pow.f64 (-.f64 (hypot.f64 re im) re) 3/2)))
(expm1.f64 (log1p.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2))))
(log1p.f64 (expm1.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2))))
(exp.f64 (log.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2))))
(-.f64 (+.f64 1 (sqrt.f64 (-.f64 (hypot.f64 re im) re))) 1)
(*.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) 1)
(*.f64 1 (sqrt.f64 (-.f64 (hypot.f64 re im) re)))
(*.f64 (cbrt.f64 (-.f64 (hypot.f64 re im) re)) (cbrt.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re))))
(*.f64 (cbrt.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re))) (cbrt.f64 (-.f64 (hypot.f64 re im) re)))
(*.f64 (pow.f64 (-.f64 (hypot.f64 re im) re) 1/4) (pow.f64 (-.f64 (hypot.f64 re im) re) 1/4))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (-.f64 (hypot.f64 re im) re)) 2)) (sqrt.f64 (cbrt.f64 (-.f64 (hypot.f64 re im) re))))
(*.f64 (pow.f64 1 1/2) (sqrt.f64 (-.f64 (hypot.f64 re im) re)))
(*.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))
(/.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))))))
(/.f64 (sqrt.f64 (-.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 re re))) (sqrt.f64 (+.f64 re (hypot.f64 re im))))
(pow.f64 (-.f64 (hypot.f64 re im) re) 1/2)
(pow.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) 1)
(pow.f64 (pow.f64 (-.f64 (hypot.f64 re im) re) 3/2) 1/3)
(pow.f64 (cbrt.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re))) 3)
(pow.f64 (pow.f64 (-.f64 (hypot.f64 re im) re) 1/4) 2)
(fabs.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)))
(log.f64 (exp.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re))))
(cbrt.f64 (pow.f64 (-.f64 (hypot.f64 re im) re) 3/2))
(expm1.f64 (log1p.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re))))
(log1p.f64 (expm1.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re))))
(exp.f64 (log.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re))))
Outputs
(*.f64 (sqrt.f64 2) (sqrt.f64 (sqrt.f64 (pow.f64 im 2))))
(*.f64 (sqrt.f64 2) (sqrt.f64 (sqrt.f64 (*.f64 im im))))
(*.f64 (sqrt.f64 2) (sqrt.f64 (fabs.f64 im)))
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (sqrt.f64 (pow.f64 im 2)))) (*.f64 -1/2 (/.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (sqrt.f64 (pow.f64 im 2))))))
(fma.f64 (sqrt.f64 2) (sqrt.f64 (sqrt.f64 (*.f64 im im))) (*.f64 -1/2 (/.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (sqrt.f64 (*.f64 im im))))))
(fma.f64 (sqrt.f64 2) (sqrt.f64 (fabs.f64 im)) (*.f64 -1/2 (/.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (fabs.f64 im)))))
(fma.f64 (sqrt.f64 2) (sqrt.f64 im) (*.f64 (/.f64 -1/2 (sqrt.f64 im)) (*.f64 (sqrt.f64 2) re)))
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (sqrt.f64 (pow.f64 im 2)))) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 re 2) (-.f64 (*.f64 1/2 (/.f64 1 (sqrt.f64 (pow.f64 im 2)))) (pow.f64 (/.f64 -1/2 (sqrt.f64 (sqrt.f64 (pow.f64 im 2)))) 2)))) (sqrt.f64 (sqrt.f64 (pow.f64 im 2))))) (*.f64 -1/2 (/.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (sqrt.f64 (pow.f64 im 2)))))))
(fma.f64 (sqrt.f64 2) (sqrt.f64 (sqrt.f64 (*.f64 im im))) (fma.f64 1/2 (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 (sqrt.f64 (*.f64 im im))) (*.f64 (*.f64 re re) (-.f64 (/.f64 1/2 (sqrt.f64 (*.f64 im im))) (pow.f64 (/.f64 -1/2 (sqrt.f64 (sqrt.f64 (*.f64 im im)))) 2))))) (*.f64 -1/2 (/.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (sqrt.f64 (*.f64 im im)))))))
(fma.f64 (sqrt.f64 2) (sqrt.f64 (fabs.f64 im)) (fma.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 (fabs.f64 im))) (*.f64 re (*.f64 re (-.f64 (/.f64 1/2 (fabs.f64 im)) (pow.f64 (/.f64 -1/2 (sqrt.f64 (fabs.f64 im))) 2))))) (*.f64 -1/2 (/.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (fabs.f64 im))))))
(fma.f64 (sqrt.f64 2) (sqrt.f64 im) (fma.f64 -1/2 (*.f64 (/.f64 re (sqrt.f64 im)) (sqrt.f64 2)) (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 (-.f64 (/.f64 1/2 im) (/.f64 1/4 im)) (*.f64 re (*.f64 re 1/2))))))
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (sqrt.f64 (pow.f64 im 2)))) (+.f64 (*.f64 1/4 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 re 3) (-.f64 (*.f64 1/2 (/.f64 1 (sqrt.f64 (pow.f64 im 2)))) (pow.f64 (/.f64 -1/2 (sqrt.f64 (sqrt.f64 (pow.f64 im 2)))) 2)))) (*.f64 (sqrt.f64 (sqrt.f64 (pow.f64 im 2))) (pow.f64 (sqrt.f64 (sqrt.f64 (pow.f64 im 2))) 2)))) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 re 2) (-.f64 (*.f64 1/2 (/.f64 1 (sqrt.f64 (pow.f64 im 2)))) (pow.f64 (/.f64 -1/2 (sqrt.f64 (sqrt.f64 (pow.f64 im 2)))) 2)))) (sqrt.f64 (sqrt.f64 (pow.f64 im 2))))) (*.f64 -1/2 (/.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (sqrt.f64 (pow.f64 im 2))))))))
(fma.f64 (sqrt.f64 2) (sqrt.f64 (sqrt.f64 (*.f64 im im))) (fma.f64 1/4 (/.f64 (*.f64 (*.f64 (sqrt.f64 2) (pow.f64 re 3)) (-.f64 (/.f64 1/2 (sqrt.f64 (*.f64 im im))) (pow.f64 (/.f64 -1/2 (sqrt.f64 (sqrt.f64 (*.f64 im im)))) 2))) (*.f64 (sqrt.f64 (sqrt.f64 (*.f64 im im))) (pow.f64 (sqrt.f64 (sqrt.f64 (*.f64 im im))) 2))) (fma.f64 1/2 (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 (sqrt.f64 (*.f64 im im))) (*.f64 (*.f64 re re) (-.f64 (/.f64 1/2 (sqrt.f64 (*.f64 im im))) (pow.f64 (/.f64 -1/2 (sqrt.f64 (sqrt.f64 (*.f64 im im)))) 2))))) (*.f64 -1/2 (/.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (sqrt.f64 (*.f64 im im))))))))
(fma.f64 (sqrt.f64 2) (sqrt.f64 (fabs.f64 im)) (fma.f64 1/4 (*.f64 (/.f64 (sqrt.f64 2) (pow.f64 (sqrt.f64 (fabs.f64 im)) 3)) (*.f64 (-.f64 (/.f64 1/2 (fabs.f64 im)) (pow.f64 (/.f64 -1/2 (sqrt.f64 (fabs.f64 im))) 2)) (pow.f64 re 3))) (fma.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 (fabs.f64 im))) (*.f64 re (*.f64 re (-.f64 (/.f64 1/2 (fabs.f64 im)) (pow.f64 (/.f64 -1/2 (sqrt.f64 (fabs.f64 im))) 2))))) (*.f64 -1/2 (/.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 (fabs.f64 im)))))))
(fma.f64 (sqrt.f64 2) (sqrt.f64 im) (fma.f64 -1/2 (*.f64 (/.f64 re (sqrt.f64 im)) (sqrt.f64 2)) (fma.f64 (/.f64 1/4 im) (*.f64 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 im)) (pow.f64 re 3)) (-.f64 (/.f64 1/2 im) (/.f64 1/4 im))) (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 (-.f64 (/.f64 1/2 im) (/.f64 1/4 im)) (*.f64 re (*.f64 re 1/2)))))))
(*.f64 (sqrt.f64 2) (sqrt.f64 (-.f64 (sqrt.f64 (pow.f64 re 2)) re)))
(*.f64 (sqrt.f64 2) (sqrt.f64 (-.f64 (sqrt.f64 (*.f64 re re)) re)))
(*.f64 (sqrt.f64 2) (sqrt.f64 (-.f64 (fabs.f64 re) re)))
(*.f64 (sqrt.f64 2) (sqrt.f64 (-.f64 re re)))
(+.f64 (*.f64 1/4 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 2)) (*.f64 (sqrt.f64 (pow.f64 re 2)) (sqrt.f64 (-.f64 (sqrt.f64 (pow.f64 re 2)) re))))) (*.f64 (sqrt.f64 2) (sqrt.f64 (-.f64 (sqrt.f64 (pow.f64 re 2)) re))))
(fma.f64 1/4 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 re re))) (/.f64 (*.f64 im im) (sqrt.f64 (-.f64 (sqrt.f64 (*.f64 re re)) re)))) (*.f64 (sqrt.f64 2) (sqrt.f64 (-.f64 (sqrt.f64 (*.f64 re re)) re))))
(fma.f64 1/4 (*.f64 (/.f64 (sqrt.f64 2) (fabs.f64 re)) (/.f64 (*.f64 im im) (sqrt.f64 (-.f64 (fabs.f64 re) re)))) (*.f64 (sqrt.f64 2) (sqrt.f64 (-.f64 (fabs.f64 re) re))))
(fma.f64 (sqrt.f64 2) (sqrt.f64 (-.f64 re re)) (*.f64 (*.f64 (/.f64 (sqrt.f64 2) re) (*.f64 im im)) (/.f64 1/4 (sqrt.f64 (-.f64 re re)))))
(+.f64 (*.f64 1/4 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 2)) (*.f64 (sqrt.f64 (pow.f64 re 2)) (sqrt.f64 (-.f64 (sqrt.f64 (pow.f64 re 2)) re))))) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 -1/2 (/.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (pow.f64 re 2))) 2) (sqrt.f64 (pow.f64 re 2)))) (pow.f64 (/.f64 1/4 (*.f64 (sqrt.f64 (pow.f64 re 2)) (sqrt.f64 (-.f64 (sqrt.f64 (pow.f64 re 2)) re)))) 2)) (pow.f64 im 4))) (sqrt.f64 (-.f64 (sqrt.f64 (pow.f64 re 2)) re)))) (*.f64 (sqrt.f64 2) (sqrt.f64 (-.f64 (sqrt.f64 (pow.f64 re 2)) re)))))
(fma.f64 1/4 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 re re))) (/.f64 (*.f64 im im) (sqrt.f64 (-.f64 (sqrt.f64 (*.f64 re re)) re)))) (fma.f64 1/2 (/.f64 (*.f64 (*.f64 (sqrt.f64 2) (fma.f64 -1/2 (/.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (*.f64 re re))) 2) (sqrt.f64 (*.f64 re re))) (neg.f64 (pow.f64 (/.f64 (/.f64 1/4 (sqrt.f64 (*.f64 re re))) (sqrt.f64 (-.f64 (sqrt.f64 (*.f64 re re)) re))) 2)))) (pow.f64 im 4)) (sqrt.f64 (-.f64 (sqrt.f64 (*.f64 re re)) re))) (*.f64 (sqrt.f64 2) (sqrt.f64 (-.f64 (sqrt.f64 (*.f64 re re)) re)))))
(fma.f64 1/4 (*.f64 (/.f64 (sqrt.f64 2) (fabs.f64 re)) (/.f64 (*.f64 im im) (sqrt.f64 (-.f64 (fabs.f64 re) re)))) (fma.f64 1/2 (/.f64 (*.f64 (sqrt.f64 2) (-.f64 (/.f64 (*.f64 -1/2 (pow.f64 (/.f64 1/2 (fabs.f64 re)) 2)) (fabs.f64 re)) (pow.f64 (/.f64 (/.f64 1/4 (fabs.f64 re)) (sqrt.f64 (-.f64 (fabs.f64 re) re))) 2))) (/.f64 (sqrt.f64 (-.f64 (fabs.f64 re) re)) (pow.f64 im 4))) (*.f64 (sqrt.f64 2) (sqrt.f64 (-.f64 (fabs.f64 re) re)))))
(fma.f64 (sqrt.f64 2) (sqrt.f64 (-.f64 re re)) (fma.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 (-.f64 re re)) (pow.f64 im 4))) (-.f64 (*.f64 (/.f64 -1/2 re) (/.f64 (/.f64 1/4 re) re)) (pow.f64 (/.f64 (/.f64 1/4 re) (sqrt.f64 (-.f64 re re))) 2))) (*.f64 (*.f64 (/.f64 (sqrt.f64 2) re) (*.f64 im im)) (/.f64 1/4 (sqrt.f64 (-.f64 re re))))))
(+.f64 (*.f64 1/4 (/.f64 (*.f64 (sqrt.f64 2) (pow.f64 im 2)) (*.f64 (sqrt.f64 (pow.f64 re 2)) (sqrt.f64 (-.f64 (sqrt.f64 (pow.f64 re 2)) re))))) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 -1/2 (/.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (pow.f64 re 2))) 2) (sqrt.f64 (pow.f64 re 2)))) (pow.f64 (/.f64 1/4 (*.f64 (sqrt.f64 (pow.f64 re 2)) (sqrt.f64 (-.f64 (sqrt.f64 (pow.f64 re 2)) re)))) 2)) (pow.f64 im 4))) (sqrt.f64 (-.f64 (sqrt.f64 (pow.f64 re 2)) re)))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (-.f64 (sqrt.f64 (pow.f64 re 2)) re))) (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (-.f64 (*.f64 1/4 (/.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (pow.f64 re 2))) 2) (*.f64 (sqrt.f64 (pow.f64 re 2)) (pow.f64 (sqrt.f64 (pow.f64 re 2)) 2)))) (*.f64 1/4 (/.f64 (-.f64 (*.f64 -1/2 (/.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (pow.f64 re 2))) 2) (sqrt.f64 (pow.f64 re 2)))) (pow.f64 (/.f64 1/4 (*.f64 (sqrt.f64 (pow.f64 re 2)) (sqrt.f64 (-.f64 (sqrt.f64 (pow.f64 re 2)) re)))) 2)) (*.f64 (sqrt.f64 (pow.f64 re 2)) (pow.f64 (sqrt.f64 (-.f64 (sqrt.f64 (pow.f64 re 2)) re)) 2))))) (pow.f64 im 6))) (sqrt.f64 (-.f64 (sqrt.f64 (pow.f64 re 2)) re)))))))
(fma.f64 1/4 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 re re))) (/.f64 (*.f64 im im) (sqrt.f64 (-.f64 (sqrt.f64 (*.f64 re re)) re)))) (fma.f64 1/2 (/.f64 (*.f64 (*.f64 (sqrt.f64 2) (fma.f64 -1/2 (/.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (*.f64 re re))) 2) (sqrt.f64 (*.f64 re re))) (neg.f64 (pow.f64 (/.f64 (/.f64 1/4 (sqrt.f64 (*.f64 re re))) (sqrt.f64 (-.f64 (sqrt.f64 (*.f64 re re)) re))) 2)))) (pow.f64 im 4)) (sqrt.f64 (-.f64 (sqrt.f64 (*.f64 re re)) re))) (fma.f64 (sqrt.f64 2) (sqrt.f64 (-.f64 (sqrt.f64 (*.f64 re re)) re)) (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 1/4 (-.f64 (/.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (*.f64 re re))) 2) (*.f64 (sqrt.f64 (*.f64 re re)) (pow.f64 (sqrt.f64 (*.f64 re re)) 2))) (/.f64 (fma.f64 -1/2 (/.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (*.f64 re re))) 2) (sqrt.f64 (*.f64 re re))) (neg.f64 (pow.f64 (/.f64 (/.f64 1/4 (sqrt.f64 (*.f64 re re))) (sqrt.f64 (-.f64 (sqrt.f64 (*.f64 re re)) re))) 2))) (*.f64 (sqrt.f64 (*.f64 re re)) (pow.f64 (sqrt.f64 (-.f64 (sqrt.f64 (*.f64 re re)) re)) 2))))) (pow.f64 im 6))) (sqrt.f64 (-.f64 (sqrt.f64 (*.f64 re re)) re)))))))
(fma.f64 1/4 (*.f64 (/.f64 (sqrt.f64 2) (fabs.f64 re)) (/.f64 (*.f64 im im) (sqrt.f64 (-.f64 (fabs.f64 re) re)))) (fma.f64 1/2 (/.f64 (*.f64 (sqrt.f64 2) (-.f64 (/.f64 (*.f64 -1/2 (pow.f64 (/.f64 1/2 (fabs.f64 re)) 2)) (fabs.f64 re)) (pow.f64 (/.f64 (/.f64 1/4 (fabs.f64 re)) (sqrt.f64 (-.f64 (fabs.f64 re) re))) 2))) (/.f64 (sqrt.f64 (-.f64 (fabs.f64 re) re)) (pow.f64 im 4))) (fma.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 (-.f64 (fabs.f64 re) re))) (*.f64 1/4 (*.f64 (-.f64 (/.f64 (pow.f64 (/.f64 1/2 (fabs.f64 re)) 2) (pow.f64 (fabs.f64 re) 3)) (/.f64 (-.f64 (/.f64 (*.f64 -1/2 (pow.f64 (/.f64 1/2 (fabs.f64 re)) 2)) (fabs.f64 re)) (pow.f64 (/.f64 (/.f64 1/4 (fabs.f64 re)) (sqrt.f64 (-.f64 (fabs.f64 re) re))) 2)) (*.f64 (fabs.f64 re) (-.f64 (fabs.f64 re) re)))) (pow.f64 im 6)))) (*.f64 (sqrt.f64 2) (sqrt.f64 (-.f64 (fabs.f64 re) re))))))
(fma.f64 1/4 (*.f64 (*.f64 (/.f64 im re) (/.f64 im (sqrt.f64 (-.f64 re re)))) (sqrt.f64 2)) (fma.f64 (sqrt.f64 2) (sqrt.f64 (-.f64 re re)) (*.f64 1/2 (+.f64 (*.f64 (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 (-.f64 re re)) (pow.f64 im 6))) (*.f64 (/.f64 1/4 re) (-.f64 (/.f64 (/.f64 1/4 re) (pow.f64 re 3)) (/.f64 (-.f64 (*.f64 (/.f64 -1/2 re) (/.f64 (/.f64 1/4 re) re)) (pow.f64 (/.f64 (/.f64 1/4 re) (sqrt.f64 (-.f64 re re))) 2)) (-.f64 re re))))) (*.f64 (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 (-.f64 re re)) (pow.f64 im 4))) (-.f64 (*.f64 (/.f64 -1/2 re) (/.f64 (/.f64 1/4 re) re)) (pow.f64 (/.f64 (/.f64 1/4 re) (sqrt.f64 (-.f64 re re))) 2)))))))
(sqrt.f64 (sqrt.f64 (pow.f64 im 2)))
(sqrt.f64 (sqrt.f64 (*.f64 im im)))
(sqrt.f64 (fabs.f64 im))
(sqrt.f64 im)
(+.f64 (sqrt.f64 (sqrt.f64 (pow.f64 im 2))) (*.f64 -1/2 (/.f64 re (sqrt.f64 (sqrt.f64 (pow.f64 im 2))))))
(+.f64 (sqrt.f64 (sqrt.f64 (*.f64 im im))) (/.f64 (*.f64 -1/2 re) (sqrt.f64 (sqrt.f64 (*.f64 im im)))))
(fma.f64 -1/2 (/.f64 re (sqrt.f64 (fabs.f64 im))) (sqrt.f64 (fabs.f64 im)))
(fma.f64 -1/2 (/.f64 re (sqrt.f64 im)) (sqrt.f64 im))
(+.f64 (sqrt.f64 (sqrt.f64 (pow.f64 im 2))) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (pow.f64 re 2) (-.f64 (*.f64 1/2 (/.f64 1 (sqrt.f64 (pow.f64 im 2)))) (pow.f64 (/.f64 -1/2 (sqrt.f64 (sqrt.f64 (pow.f64 im 2)))) 2))) (sqrt.f64 (sqrt.f64 (pow.f64 im 2))))) (*.f64 -1/2 (/.f64 re (sqrt.f64 (sqrt.f64 (pow.f64 im 2)))))))
(+.f64 (sqrt.f64 (sqrt.f64 (*.f64 im im))) (fma.f64 1/2 (/.f64 (*.f64 (*.f64 re re) (-.f64 (/.f64 1/2 (sqrt.f64 (*.f64 im im))) (pow.f64 (/.f64 -1/2 (sqrt.f64 (sqrt.f64 (*.f64 im im)))) 2))) (sqrt.f64 (sqrt.f64 (*.f64 im im)))) (/.f64 (*.f64 -1/2 re) (sqrt.f64 (sqrt.f64 (*.f64 im im))))))
(+.f64 (fma.f64 -1/2 (/.f64 re (sqrt.f64 (fabs.f64 im))) (sqrt.f64 (fabs.f64 im))) (/.f64 (*.f64 (*.f64 1/2 (*.f64 re re)) (-.f64 (/.f64 1/2 (fabs.f64 im)) (pow.f64 (/.f64 -1/2 (sqrt.f64 (fabs.f64 im))) 2))) (sqrt.f64 (fabs.f64 im))))
(fma.f64 -1/2 (/.f64 re (sqrt.f64 im)) (fma.f64 1/2 (*.f64 (/.f64 (-.f64 (/.f64 1/2 im) (/.f64 1/4 im)) (sqrt.f64 im)) (*.f64 re re)) (sqrt.f64 im)))
(+.f64 (sqrt.f64 (sqrt.f64 (pow.f64 im 2))) (+.f64 (*.f64 1/4 (/.f64 (*.f64 (-.f64 (*.f64 1/2 (/.f64 1 (sqrt.f64 (pow.f64 im 2)))) (pow.f64 (/.f64 -1/2 (sqrt.f64 (sqrt.f64 (pow.f64 im 2)))) 2)) (pow.f64 re 3)) (*.f64 (sqrt.f64 (sqrt.f64 (pow.f64 im 2))) (pow.f64 (sqrt.f64 (sqrt.f64 (pow.f64 im 2))) 2)))) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (pow.f64 re 2) (-.f64 (*.f64 1/2 (/.f64 1 (sqrt.f64 (pow.f64 im 2)))) (pow.f64 (/.f64 -1/2 (sqrt.f64 (sqrt.f64 (pow.f64 im 2)))) 2))) (sqrt.f64 (sqrt.f64 (pow.f64 im 2))))) (*.f64 -1/2 (/.f64 re (sqrt.f64 (sqrt.f64 (pow.f64 im 2))))))))
(+.f64 (sqrt.f64 (sqrt.f64 (*.f64 im im))) (fma.f64 1/4 (*.f64 (/.f64 (-.f64 (/.f64 1/2 (sqrt.f64 (*.f64 im im))) (pow.f64 (/.f64 -1/2 (sqrt.f64 (sqrt.f64 (*.f64 im im)))) 2)) (sqrt.f64 (sqrt.f64 (*.f64 im im)))) (/.f64 (pow.f64 re 3) (pow.f64 (sqrt.f64 (sqrt.f64 (*.f64 im im))) 2))) (fma.f64 1/2 (/.f64 (*.f64 (*.f64 re re) (-.f64 (/.f64 1/2 (sqrt.f64 (*.f64 im im))) (pow.f64 (/.f64 -1/2 (sqrt.f64 (sqrt.f64 (*.f64 im im)))) 2))) (sqrt.f64 (sqrt.f64 (*.f64 im im)))) (/.f64 (*.f64 -1/2 re) (sqrt.f64 (sqrt.f64 (*.f64 im im)))))))
(+.f64 (sqrt.f64 (fabs.f64 im)) (fma.f64 1/4 (/.f64 (-.f64 (/.f64 1/2 (fabs.f64 im)) (pow.f64 (/.f64 -1/2 (sqrt.f64 (fabs.f64 im))) 2)) (/.f64 (pow.f64 (sqrt.f64 (fabs.f64 im)) 3) (pow.f64 re 3))) (fma.f64 -1/2 (/.f64 re (sqrt.f64 (fabs.f64 im))) (/.f64 (*.f64 (*.f64 1/2 (*.f64 re re)) (-.f64 (/.f64 1/2 (fabs.f64 im)) (pow.f64 (/.f64 -1/2 (sqrt.f64 (fabs.f64 im))) 2))) (sqrt.f64 (fabs.f64 im))))))
(fma.f64 (/.f64 1/4 im) (*.f64 (/.f64 (-.f64 (/.f64 1/2 im) (/.f64 1/4 im)) (sqrt.f64 im)) (pow.f64 re 3)) (fma.f64 -1/2 (/.f64 re (sqrt.f64 im)) (fma.f64 1/2 (*.f64 (/.f64 (-.f64 (/.f64 1/2 im) (/.f64 1/4 im)) (sqrt.f64 im)) (*.f64 re re)) (sqrt.f64 im))))
(sqrt.f64 (-.f64 (sqrt.f64 (pow.f64 re 2)) re))
(sqrt.f64 (-.f64 (sqrt.f64 (*.f64 re re)) re))
(sqrt.f64 (-.f64 (fabs.f64 re) re))
(sqrt.f64 (-.f64 re re))
(+.f64 (*.f64 1/4 (/.f64 (pow.f64 im 2) (*.f64 (sqrt.f64 (pow.f64 re 2)) (sqrt.f64 (-.f64 (sqrt.f64 (pow.f64 re 2)) re))))) (sqrt.f64 (-.f64 (sqrt.f64 (pow.f64 re 2)) re)))
(fma.f64 1/4 (/.f64 (/.f64 (*.f64 im im) (sqrt.f64 (*.f64 re re))) (sqrt.f64 (-.f64 (sqrt.f64 (*.f64 re re)) re))) (sqrt.f64 (-.f64 (sqrt.f64 (*.f64 re re)) re)))
(fma.f64 1/4 (/.f64 (/.f64 (*.f64 im im) (sqrt.f64 (-.f64 (fabs.f64 re) re))) (fabs.f64 re)) (sqrt.f64 (-.f64 (fabs.f64 re) re)))
(fma.f64 1/4 (*.f64 (/.f64 im re) (/.f64 im (sqrt.f64 (-.f64 re re)))) (sqrt.f64 (-.f64 re re)))
(+.f64 (*.f64 1/2 (/.f64 (*.f64 (-.f64 (*.f64 -1/2 (/.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (pow.f64 re 2))) 2) (sqrt.f64 (pow.f64 re 2)))) (pow.f64 (/.f64 1/4 (*.f64 (sqrt.f64 (pow.f64 re 2)) (sqrt.f64 (-.f64 (sqrt.f64 (pow.f64 re 2)) re)))) 2)) (pow.f64 im 4)) (sqrt.f64 (-.f64 (sqrt.f64 (pow.f64 re 2)) re)))) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 im 2) (*.f64 (sqrt.f64 (pow.f64 re 2)) (sqrt.f64 (-.f64 (sqrt.f64 (pow.f64 re 2)) re))))) (sqrt.f64 (-.f64 (sqrt.f64 (pow.f64 re 2)) re))))
(fma.f64 1/2 (/.f64 (fma.f64 -1/2 (/.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (*.f64 re re))) 2) (sqrt.f64 (*.f64 re re))) (neg.f64 (pow.f64 (/.f64 (/.f64 1/4 (sqrt.f64 (*.f64 re re))) (sqrt.f64 (-.f64 (sqrt.f64 (*.f64 re re)) re))) 2))) (/.f64 (sqrt.f64 (-.f64 (sqrt.f64 (*.f64 re re)) re)) (pow.f64 im 4))) (fma.f64 1/4 (/.f64 (/.f64 (*.f64 im im) (sqrt.f64 (*.f64 re re))) (sqrt.f64 (-.f64 (sqrt.f64 (*.f64 re re)) re))) (sqrt.f64 (-.f64 (sqrt.f64 (*.f64 re re)) re))))
(fma.f64 1/2 (/.f64 (-.f64 (/.f64 (*.f64 -1/2 (pow.f64 (/.f64 1/2 (fabs.f64 re)) 2)) (fabs.f64 re)) (pow.f64 (/.f64 (/.f64 1/4 (fabs.f64 re)) (sqrt.f64 (-.f64 (fabs.f64 re) re))) 2)) (/.f64 (sqrt.f64 (-.f64 (fabs.f64 re) re)) (pow.f64 im 4))) (fma.f64 1/4 (/.f64 (/.f64 (*.f64 im im) (sqrt.f64 (-.f64 (fabs.f64 re) re))) (fabs.f64 re)) (sqrt.f64 (-.f64 (fabs.f64 re) re))))
(fma.f64 1/2 (*.f64 (/.f64 (-.f64 (*.f64 (/.f64 -1/2 re) (/.f64 (/.f64 1/4 re) re)) (pow.f64 (/.f64 (/.f64 1/4 re) (sqrt.f64 (-.f64 re re))) 2)) (sqrt.f64 (-.f64 re re))) (pow.f64 im 4)) (fma.f64 1/4 (*.f64 (/.f64 im re) (/.f64 im (sqrt.f64 (-.f64 re re)))) (sqrt.f64 (-.f64 re re))))
(+.f64 (*.f64 1/2 (/.f64 (*.f64 (-.f64 (*.f64 -1/2 (/.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (pow.f64 re 2))) 2) (sqrt.f64 (pow.f64 re 2)))) (pow.f64 (/.f64 1/4 (*.f64 (sqrt.f64 (pow.f64 re 2)) (sqrt.f64 (-.f64 (sqrt.f64 (pow.f64 re 2)) re)))) 2)) (pow.f64 im 4)) (sqrt.f64 (-.f64 (sqrt.f64 (pow.f64 re 2)) re)))) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 im 2) (*.f64 (sqrt.f64 (pow.f64 re 2)) (sqrt.f64 (-.f64 (sqrt.f64 (pow.f64 re 2)) re))))) (+.f64 (sqrt.f64 (-.f64 (sqrt.f64 (pow.f64 re 2)) re)) (*.f64 1/2 (/.f64 (*.f64 (-.f64 (*.f64 1/4 (/.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (pow.f64 re 2))) 2) (*.f64 (sqrt.f64 (pow.f64 re 2)) (pow.f64 (sqrt.f64 (pow.f64 re 2)) 2)))) (*.f64 1/4 (/.f64 (-.f64 (*.f64 -1/2 (/.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (pow.f64 re 2))) 2) (sqrt.f64 (pow.f64 re 2)))) (pow.f64 (/.f64 1/4 (*.f64 (sqrt.f64 (pow.f64 re 2)) (sqrt.f64 (-.f64 (sqrt.f64 (pow.f64 re 2)) re)))) 2)) (*.f64 (sqrt.f64 (pow.f64 re 2)) (pow.f64 (sqrt.f64 (-.f64 (sqrt.f64 (pow.f64 re 2)) re)) 2))))) (pow.f64 im 6)) (sqrt.f64 (-.f64 (sqrt.f64 (pow.f64 re 2)) re)))))))
(fma.f64 1/2 (/.f64 (fma.f64 -1/2 (/.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (*.f64 re re))) 2) (sqrt.f64 (*.f64 re re))) (neg.f64 (pow.f64 (/.f64 (/.f64 1/4 (sqrt.f64 (*.f64 re re))) (sqrt.f64 (-.f64 (sqrt.f64 (*.f64 re re)) re))) 2))) (/.f64 (sqrt.f64 (-.f64 (sqrt.f64 (*.f64 re re)) re)) (pow.f64 im 4))) (+.f64 (fma.f64 1/4 (/.f64 (/.f64 (*.f64 im im) (sqrt.f64 (*.f64 re re))) (sqrt.f64 (-.f64 (sqrt.f64 (*.f64 re re)) re))) (sqrt.f64 (-.f64 (sqrt.f64 (*.f64 re re)) re))) (*.f64 1/2 (/.f64 (*.f64 1/4 (-.f64 (/.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (*.f64 re re))) 2) (*.f64 (sqrt.f64 (*.f64 re re)) (pow.f64 (sqrt.f64 (*.f64 re re)) 2))) (/.f64 (fma.f64 -1/2 (/.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (*.f64 re re))) 2) (sqrt.f64 (*.f64 re re))) (neg.f64 (pow.f64 (/.f64 (/.f64 1/4 (sqrt.f64 (*.f64 re re))) (sqrt.f64 (-.f64 (sqrt.f64 (*.f64 re re)) re))) 2))) (*.f64 (sqrt.f64 (*.f64 re re)) (pow.f64 (sqrt.f64 (-.f64 (sqrt.f64 (*.f64 re re)) re)) 2))))) (/.f64 (sqrt.f64 (-.f64 (sqrt.f64 (*.f64 re re)) re)) (pow.f64 im 6))))))
(fma.f64 1/2 (/.f64 (-.f64 (/.f64 (*.f64 -1/2 (pow.f64 (/.f64 1/2 (fabs.f64 re)) 2)) (fabs.f64 re)) (pow.f64 (/.f64 (/.f64 1/4 (fabs.f64 re)) (sqrt.f64 (-.f64 (fabs.f64 re) re))) 2)) (/.f64 (sqrt.f64 (-.f64 (fabs.f64 re) re)) (pow.f64 im 4))) (fma.f64 1/4 (/.f64 (/.f64 (*.f64 im im) (sqrt.f64 (-.f64 (fabs.f64 re) re))) (fabs.f64 re)) (fma.f64 1/2 (/.f64 (*.f64 1/4 (-.f64 (/.f64 (pow.f64 (/.f64 1/2 (fabs.f64 re)) 2) (pow.f64 (fabs.f64 re) 3)) (/.f64 (-.f64 (/.f64 (*.f64 -1/2 (pow.f64 (/.f64 1/2 (fabs.f64 re)) 2)) (fabs.f64 re)) (pow.f64 (/.f64 (/.f64 1/4 (fabs.f64 re)) (sqrt.f64 (-.f64 (fabs.f64 re) re))) 2)) (*.f64 (fabs.f64 re) (-.f64 (fabs.f64 re) re))))) (/.f64 (sqrt.f64 (-.f64 (fabs.f64 re) re)) (pow.f64 im 6))) (sqrt.f64 (-.f64 (fabs.f64 re) re)))))
(fma.f64 1/2 (*.f64 (/.f64 (-.f64 (*.f64 (/.f64 -1/2 re) (/.f64 (/.f64 1/4 re) re)) (pow.f64 (/.f64 (/.f64 1/4 re) (sqrt.f64 (-.f64 re re))) 2)) (sqrt.f64 (-.f64 re re))) (pow.f64 im 4)) (fma.f64 1/2 (*.f64 (/.f64 (*.f64 (/.f64 1/4 re) (-.f64 (/.f64 (/.f64 1/4 re) (pow.f64 re 3)) (/.f64 (-.f64 (*.f64 (/.f64 -1/2 re) (/.f64 (/.f64 1/4 re) re)) (pow.f64 (/.f64 (/.f64 1/4 re) (sqrt.f64 (-.f64 re re))) 2)) (-.f64 re re)))) (sqrt.f64 (-.f64 re re))) (pow.f64 im 6)) (fma.f64 1/4 (*.f64 (/.f64 im re) (/.f64 im (sqrt.f64 (-.f64 re re)))) (sqrt.f64 (-.f64 re re)))))
(-.f64 (+.f64 1 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2))) 1)
(+.f64 (+.f64 1 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))) -1)
(+.f64 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))) 0)
(sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))
(pow.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2)) 1)
(+.f64 (+.f64 1 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))) -1)
(+.f64 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))) 0)
(sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))
(pow.f64 (pow.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2)) 3) 1/3)
(+.f64 (+.f64 1 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))) -1)
(+.f64 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))) 0)
(sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))
(pow.f64 (cbrt.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2))) 3)
(+.f64 (+.f64 1 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))) -1)
(+.f64 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))) 0)
(sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))
(pow.f64 (sqrt.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2))) 2)
(+.f64 (+.f64 1 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))) -1)
(+.f64 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))) 0)
(sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))
(pow.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2) 1/2)
(+.f64 (+.f64 1 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))) -1)
(+.f64 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))) 0)
(sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))
(sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2))
(+.f64 (+.f64 1 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))) -1)
(+.f64 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))) 0)
(sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))
(log.f64 (exp.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2))))
(+.f64 (+.f64 1 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))) -1)
(+.f64 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))) 0)
(sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))
(cbrt.f64 (pow.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2)) 3))
(+.f64 (+.f64 1 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))) -1)
(+.f64 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))) 0)
(sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))
(cbrt.f64 (*.f64 (pow.f64 (-.f64 (hypot.f64 re im) re) 3/2) (*.f64 2 (sqrt.f64 2))))
(cbrt.f64 (*.f64 (sqrt.f64 2) (*.f64 2 (pow.f64 (-.f64 (hypot.f64 re im) re) 3/2))))
(cbrt.f64 (*.f64 (*.f64 2 (sqrt.f64 2)) (pow.f64 (-.f64 (hypot.f64 re im) re) 3/2)))
(cbrt.f64 (*.f64 (pow.f64 (-.f64 (hypot.f64 re im) re) 3/2) (*.f64 2 (sqrt.f64 2))))
(cbrt.f64 (*.f64 (sqrt.f64 2) (*.f64 2 (pow.f64 (-.f64 (hypot.f64 re im) re) 3/2))))
(expm1.f64 (log1p.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2))))
(+.f64 (+.f64 1 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))) -1)
(+.f64 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))) 0)
(sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))
(log1p.f64 (expm1.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2))))
(+.f64 (+.f64 1 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))) -1)
(+.f64 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))) 0)
(sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))
(exp.f64 (log.f64 (sqrt.f64 (*.f64 (-.f64 (hypot.f64 re im) re) 2))))
(+.f64 (+.f64 1 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))) -1)
(+.f64 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))) 0)
(sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))
(-.f64 (+.f64 1 (sqrt.f64 (-.f64 (hypot.f64 re im) re))) 1)
(+.f64 1 (-.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) 1))
(+.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) 0)
(sqrt.f64 (-.f64 (hypot.f64 re im) re))
(*.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) 1)
(+.f64 1 (-.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) 1))
(+.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) 0)
(sqrt.f64 (-.f64 (hypot.f64 re im) re))
(*.f64 1 (sqrt.f64 (-.f64 (hypot.f64 re im) re)))
(+.f64 1 (-.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) 1))
(+.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) 0)
(sqrt.f64 (-.f64 (hypot.f64 re im) re))
(*.f64 (cbrt.f64 (-.f64 (hypot.f64 re im) re)) (cbrt.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re))))
(*.f64 (cbrt.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re))) (cbrt.f64 (-.f64 (hypot.f64 re im) re)))
(*.f64 (cbrt.f64 (-.f64 (hypot.f64 re im) re)) (cbrt.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re))))
(*.f64 (pow.f64 (-.f64 (hypot.f64 re im) re) 1/4) (pow.f64 (-.f64 (hypot.f64 re im) re) 1/4))
(+.f64 1 (-.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) 1))
(+.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) 0)
(sqrt.f64 (-.f64 (hypot.f64 re im) re))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (-.f64 (hypot.f64 re im) re)) 2)) (sqrt.f64 (cbrt.f64 (-.f64 (hypot.f64 re im) re))))
(*.f64 (fabs.f64 (cbrt.f64 (-.f64 (hypot.f64 re im) re))) (sqrt.f64 (cbrt.f64 (-.f64 (hypot.f64 re im) re))))
(*.f64 (cbrt.f64 (-.f64 (hypot.f64 re im) re)) (sqrt.f64 (cbrt.f64 (-.f64 (hypot.f64 re im) re))))
(*.f64 (pow.f64 1 1/2) (sqrt.f64 (-.f64 (hypot.f64 re im) re)))
(+.f64 1 (-.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) 1))
(+.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) 0)
(sqrt.f64 (-.f64 (hypot.f64 re im) re))
(*.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))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (-.f64 (hypot.f64 re im) re)) 2)) (sqrt.f64 (cbrt.f64 (-.f64 (hypot.f64 re im) re))))
(*.f64 (fabs.f64 (cbrt.f64 (-.f64 (hypot.f64 re im) re))) (sqrt.f64 (cbrt.f64 (-.f64 (hypot.f64 re im) re))))
(*.f64 (cbrt.f64 (-.f64 (hypot.f64 re im) re)) (sqrt.f64 (cbrt.f64 (-.f64 (hypot.f64 re im) re))))
(/.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))))))
(/.f64 (sqrt.f64 (-.f64 (pow.f64 (hypot.f64 re im) 3) (pow.f64 re 3))) (sqrt.f64 (fma.f64 re (+.f64 re (hypot.f64 re im)) (pow.f64 (hypot.f64 re im) 2))))
(/.f64 (sqrt.f64 (-.f64 (pow.f64 (hypot.f64 re im) 3) (pow.f64 re 3))) (sqrt.f64 (fma.f64 re re (*.f64 (hypot.f64 re im) (+.f64 re (hypot.f64 re im))))))
(/.f64 (sqrt.f64 (-.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 re re))) (sqrt.f64 (+.f64 re (hypot.f64 re im))))
(pow.f64 (-.f64 (hypot.f64 re im) re) 1/2)
(+.f64 1 (-.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) 1))
(+.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) 0)
(sqrt.f64 (-.f64 (hypot.f64 re im) re))
(pow.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) 1)
(+.f64 1 (-.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) 1))
(+.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) 0)
(sqrt.f64 (-.f64 (hypot.f64 re im) re))
(pow.f64 (pow.f64 (-.f64 (hypot.f64 re im) re) 3/2) 1/3)
(cbrt.f64 (pow.f64 (-.f64 (hypot.f64 re im) re) 3/2))
(pow.f64 (cbrt.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re))) 3)
(+.f64 1 (-.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) 1))
(+.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) 0)
(sqrt.f64 (-.f64 (hypot.f64 re im) re))
(pow.f64 (pow.f64 (-.f64 (hypot.f64 re im) re) 1/4) 2)
(+.f64 1 (-.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) 1))
(+.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) 0)
(sqrt.f64 (-.f64 (hypot.f64 re im) re))
(fabs.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)))
(+.f64 1 (-.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) 1))
(+.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) 0)
(sqrt.f64 (-.f64 (hypot.f64 re im) re))
(log.f64 (exp.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re))))
(+.f64 1 (-.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) 1))
(+.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) 0)
(sqrt.f64 (-.f64 (hypot.f64 re im) re))
(cbrt.f64 (pow.f64 (-.f64 (hypot.f64 re im) re) 3/2))
(expm1.f64 (log1p.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re))))
(+.f64 1 (-.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) 1))
(+.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) 0)
(sqrt.f64 (-.f64 (hypot.f64 re im) re))
(log1p.f64 (expm1.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re))))
(+.f64 1 (-.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) 1))
(+.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) 0)
(sqrt.f64 (-.f64 (hypot.f64 re im) re))
(exp.f64 (log.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re))))
(+.f64 1 (-.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) 1))
(+.f64 (sqrt.f64 (-.f64 (hypot.f64 re im) re)) 0)
(sqrt.f64 (-.f64 (hypot.f64 re im) re))

localize5.0ms (0%)

Compiler

Compiled 10 to 10 computations (0% saved)

localize8.0ms (0%)

Local error

Found 1 expressions with local error:

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

Compiled 18 to 14 computations (22.2% saved)

series970.0ms (3.5%)

Counts
1 → 0
Calls

3 calls:

TimeVariablePointExpression
337.0ms
im
@-inf
(sqrt.f64 (*.f64 im 2))
331.0ms
im
@inf
(sqrt.f64 (*.f64 im 2))
302.0ms
im
@0
(sqrt.f64 (*.f64 im 2))
Compiler

Compiled 77312 to 60160 computations (22.2% saved)

rewrite37.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

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

simplify35.0ms (0.1%)

Algorithm
egg-herbie
Rules
415×fma-def_binary64
330×*-commutative_binary64
320×associate-*l*_binary64
320×fma-neg_binary64
282×log-prod_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
060233
1112213
2290209
3937195
43284195
Stop Event
node limit
Counts
25 → 31
Calls
Call 1
Inputs
(+.f64 0 (sqrt.f64 (+.f64 im im)))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (+.f64 im im))))) (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (+.f64 im im))))))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (+.f64 im im)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (+.f64 im im))))))
(-.f64 (+.f64 1 (sqrt.f64 (+.f64 im im))) 1)
(*.f64 (sqrt.f64 (+.f64 im im)) 1)
(*.f64 1 (sqrt.f64 (+.f64 im im)))
(*.f64 (cbrt.f64 (sqrt.f64 (+.f64 im im))) (cbrt.f64 (+.f64 im im)))
(*.f64 (cbrt.f64 (+.f64 im im)) (cbrt.f64 (sqrt.f64 (+.f64 im im))))
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(*.f64 (pow.f64 (+.f64 im im) 1/4) (pow.f64 (+.f64 im im) 1/4))
(*.f64 (sqrt.f64 im) (sqrt.f64 2))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (+.f64 im im)) 2)) (sqrt.f64 (cbrt.f64 (+.f64 im im))))
(*.f64 (pow.f64 1 1/2) (sqrt.f64 (+.f64 im im)))
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (+.f64 im im)) 2) 1/2) (pow.f64 (cbrt.f64 (+.f64 im im)) 1/2))
(pow.f64 (+.f64 im im) 1/2)
(pow.f64 (sqrt.f64 (+.f64 im im)) 1)
(pow.f64 (pow.f64 (+.f64 im im) 3/2) 1/3)
(pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 im im))) 3)
(pow.f64 (pow.f64 (+.f64 im im) 1/4) 2)
(fabs.f64 (sqrt.f64 (+.f64 im im)))
(log.f64 (exp.f64 (sqrt.f64 (+.f64 im im))))
(cbrt.f64 (pow.f64 (+.f64 im im) 3/2))
(expm1.f64 (log1p.f64 (sqrt.f64 (+.f64 im im))))
(log1p.f64 (expm1.f64 (sqrt.f64 (+.f64 im im))))
(exp.f64 (log.f64 (sqrt.f64 (+.f64 im im))))
Outputs
(+.f64 0 (sqrt.f64 (+.f64 im im)))
(sqrt.f64 (+.f64 im im))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (+.f64 im im))))) (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (+.f64 im im))))))
(sqrt.f64 (+.f64 im im))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (+.f64 im im)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (+.f64 im im))))))
(*.f64 3 (log.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (+.f64 im im))))))
(*.f64 (log.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (+.f64 im im))))) 3)
(-.f64 (+.f64 1 (sqrt.f64 (+.f64 im im))) 1)
(sqrt.f64 (+.f64 im im))
(*.f64 (sqrt.f64 (+.f64 im im)) 1)
(sqrt.f64 (+.f64 im im))
(*.f64 1 (sqrt.f64 (+.f64 im im)))
(sqrt.f64 (+.f64 im im))
(*.f64 (cbrt.f64 (sqrt.f64 (+.f64 im im))) (cbrt.f64 (+.f64 im im)))
(*.f64 (cbrt.f64 (+.f64 im im)) (cbrt.f64 (sqrt.f64 (+.f64 im im))))
(*.f64 (cbrt.f64 (sqrt.f64 (+.f64 im im))) (cbrt.f64 (+.f64 im im)))
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(*.f64 (pow.f64 (+.f64 im im) 1/4) (pow.f64 (+.f64 im im) 1/4))
(sqrt.f64 (+.f64 im im))
(*.f64 (sqrt.f64 im) (sqrt.f64 2))
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (+.f64 im im)) 2)) (sqrt.f64 (cbrt.f64 (+.f64 im im))))
(*.f64 (fabs.f64 (cbrt.f64 (+.f64 im im))) (sqrt.f64 (cbrt.f64 (+.f64 im im))))
(*.f64 (cbrt.f64 (+.f64 im im)) (sqrt.f64 (cbrt.f64 (+.f64 im im))))
(pow.f64 (cbrt.f64 (+.f64 im im)) 3/2)
(*.f64 (pow.f64 1 1/2) (sqrt.f64 (+.f64 im im)))
(sqrt.f64 (+.f64 im im))
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (+.f64 im im)) 2) 1/2) (pow.f64 (cbrt.f64 (+.f64 im im)) 1/2))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (+.f64 im im)) 2)) (sqrt.f64 (cbrt.f64 (+.f64 im im))))
(*.f64 (fabs.f64 (cbrt.f64 (+.f64 im im))) (sqrt.f64 (cbrt.f64 (+.f64 im im))))
(*.f64 (cbrt.f64 (+.f64 im im)) (sqrt.f64 (cbrt.f64 (+.f64 im im))))
(pow.f64 (cbrt.f64 (+.f64 im im)) 3/2)
(pow.f64 (+.f64 im im) 1/2)
(sqrt.f64 (+.f64 im im))
(pow.f64 (sqrt.f64 (+.f64 im im)) 1)
(sqrt.f64 (+.f64 im im))
(pow.f64 (pow.f64 (+.f64 im im) 3/2) 1/3)
(cbrt.f64 (pow.f64 (+.f64 im im) 3/2))
(pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 im im))) 3)
(sqrt.f64 (+.f64 im im))
(pow.f64 (pow.f64 (+.f64 im im) 1/4) 2)
(sqrt.f64 (+.f64 im im))
(fabs.f64 (sqrt.f64 (+.f64 im im)))
(sqrt.f64 (+.f64 im im))
(log.f64 (exp.f64 (sqrt.f64 (+.f64 im im))))
(sqrt.f64 (+.f64 im im))
(cbrt.f64 (pow.f64 (+.f64 im im) 3/2))
(expm1.f64 (log1p.f64 (sqrt.f64 (+.f64 im im))))
(sqrt.f64 (+.f64 im im))
(log1p.f64 (expm1.f64 (sqrt.f64 (+.f64 im im))))
(sqrt.f64 (+.f64 im im))
(exp.f64 (log.f64 (sqrt.f64 (+.f64 im im))))
(sqrt.f64 (+.f64 im im))

localize11.0ms (0%)

Compiler

Compiled 28 to 23 computations (17.9% saved)

localize10.0ms (0%)

Local error

Found 1 expressions with local error:

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

Compiled 28 to 15 computations (46.4% saved)

series1.5s (5.4%)

Counts
1 → 8
Calls

6 calls:

TimeVariablePointExpression
384.0ms
im
@-inf
(sqrt.f64 (*.f64 2 (-.f64 im re)))
375.0ms
re
@-inf
(sqrt.f64 (*.f64 2 (-.f64 im re)))
364.0ms
re
@inf
(sqrt.f64 (*.f64 2 (-.f64 im re)))
362.0ms
im
@inf
(sqrt.f64 (*.f64 2 (-.f64 im re)))
4.0ms
re
@0
(sqrt.f64 (*.f64 2 (-.f64 im re)))
Compiler

Compiled 134670 to 103864 computations (22.9% saved)

rewrite44.0ms (0.2%)

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

Useful iterations: 0 (0.0ms)

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

simplify55.0ms (0.2%)

Algorithm
egg-herbie
Rules
526×unswap-sqr_binary64
489×times-frac_binary64
392×fma-neg_binary64
266×associate-/l*_binary64
235×associate-*r*_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
098663
1240608
2737534
34348496
47329494
Stop Event
node limit
Counts
30 → 54
Calls
Call 1
Inputs
(sqrt.f64 (*.f64 -2 re))
(+.f64 (/.f64 im (sqrt.f64 (*.f64 -2 re))) (sqrt.f64 (*.f64 -2 re)))
(+.f64 (/.f64 im (sqrt.f64 (*.f64 -2 re))) (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (pow.f64 (/.f64 1 (sqrt.f64 (*.f64 -2 re))) 2) (pow.f64 im 2)) (sqrt.f64 (*.f64 -2 re)))) (sqrt.f64 (*.f64 -2 re))))
(+.f64 (*.f64 1/2 (/.f64 (*.f64 (pow.f64 (/.f64 1 (sqrt.f64 (*.f64 -2 re))) 2) (pow.f64 im 3)) (*.f64 (pow.f64 (sqrt.f64 (*.f64 -2 re)) 2) (sqrt.f64 (*.f64 -2 re))))) (+.f64 (/.f64 im (sqrt.f64 (*.f64 -2 re))) (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (pow.f64 (/.f64 1 (sqrt.f64 (*.f64 -2 re))) 2) (pow.f64 im 2)) (sqrt.f64 (*.f64 -2 re)))) (sqrt.f64 (*.f64 -2 re)))))
(sqrt.f64 (*.f64 2 im))
(+.f64 (sqrt.f64 (*.f64 2 im)) (*.f64 -1 (/.f64 re (sqrt.f64 (*.f64 2 im)))))
(+.f64 (*.f64 -1/2 (/.f64 (*.f64 (pow.f64 re 2) (pow.f64 (/.f64 -1 (sqrt.f64 (*.f64 2 im))) 2)) (sqrt.f64 (*.f64 2 im)))) (+.f64 (sqrt.f64 (*.f64 2 im)) (*.f64 -1 (/.f64 re (sqrt.f64 (*.f64 2 im))))))
(+.f64 (*.f64 -1/2 (/.f64 (*.f64 (pow.f64 re 2) (pow.f64 (/.f64 -1 (sqrt.f64 (*.f64 2 im))) 2)) (sqrt.f64 (*.f64 2 im)))) (+.f64 (sqrt.f64 (*.f64 2 im)) (+.f64 (*.f64 -1 (/.f64 re (sqrt.f64 (*.f64 2 im)))) (*.f64 -1/2 (/.f64 (*.f64 (pow.f64 re 3) (pow.f64 (/.f64 -1 (sqrt.f64 (*.f64 2 im))) 2)) (*.f64 (sqrt.f64 (*.f64 2 im)) (pow.f64 (sqrt.f64 (*.f64 2 im)) 2)))))))
(-.f64 (+.f64 1 (sqrt.f64 (*.f64 2 (-.f64 im re)))) 1)
(*.f64 (sqrt.f64 (*.f64 2 (-.f64 im re))) 1)
(*.f64 1 (sqrt.f64 (*.f64 2 (-.f64 im re))))
(*.f64 (cbrt.f64 (*.f64 2 (-.f64 im re))) (cbrt.f64 (sqrt.f64 (*.f64 2 (-.f64 im re)))))
(*.f64 (cbrt.f64 (sqrt.f64 (*.f64 2 (-.f64 im re)))) (cbrt.f64 (*.f64 2 (-.f64 im re))))
(*.f64 (sqrt.f64 (-.f64 im re)) (sqrt.f64 2))
(*.f64 (sqrt.f64 2) (sqrt.f64 (-.f64 im re)))
(*.f64 (pow.f64 (*.f64 2 (-.f64 im re)) 1/4) (pow.f64 (*.f64 2 (-.f64 im re)) 1/4))
(*.f64 (sqrt.f64 (cbrt.f64 (*.f64 (pow.f64 (-.f64 im re) 2) 4))) (sqrt.f64 (cbrt.f64 (*.f64 2 (-.f64 im re)))))
(*.f64 (pow.f64 1 1/2) (sqrt.f64 (*.f64 2 (-.f64 im re))))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 (pow.f64 (-.f64 im re) 2) 4)) 1/2) (pow.f64 (cbrt.f64 (*.f64 2 (-.f64 im re))) 1/2))
(pow.f64 (*.f64 2 (-.f64 im re)) 1/2)
(pow.f64 (sqrt.f64 (*.f64 2 (-.f64 im re))) 1)
(pow.f64 (pow.f64 (*.f64 2 (-.f64 im re)) 3/2) 1/3)
(pow.f64 (cbrt.f64 (sqrt.f64 (*.f64 2 (-.f64 im re)))) 3)
(pow.f64 (pow.f64 (*.f64 2 (-.f64 im re)) 1/4) 2)
(fabs.f64 (sqrt.f64 (*.f64 2 (-.f64 im re))))
(log.f64 (exp.f64 (sqrt.f64 (*.f64 2 (-.f64 im re)))))
(cbrt.f64 (pow.f64 (*.f64 2 (-.f64 im re)) 3/2))
(expm1.f64 (log1p.f64 (sqrt.f64 (*.f64 2 (-.f64 im re)))))
(log1p.f64 (expm1.f64 (sqrt.f64 (*.f64 2 (-.f64 im re)))))
(exp.f64 (log.f64 (sqrt.f64 (*.f64 2 (-.f64 im re)))))
Outputs
(sqrt.f64 (*.f64 -2 re))
(+.f64 (/.f64 im (sqrt.f64 (*.f64 -2 re))) (sqrt.f64 (*.f64 -2 re)))
(+.f64 (sqrt.f64 (*.f64 -2 re)) (/.f64 im (sqrt.f64 (*.f64 -2 re))))
(+.f64 (/.f64 im (sqrt.f64 (*.f64 -2 re))) (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (pow.f64 (/.f64 1 (sqrt.f64 (*.f64 -2 re))) 2) (pow.f64 im 2)) (sqrt.f64 (*.f64 -2 re)))) (sqrt.f64 (*.f64 -2 re))))
(+.f64 (/.f64 im (sqrt.f64 (*.f64 -2 re))) (fma.f64 -1/2 (/.f64 (pow.f64 (/.f64 1 (sqrt.f64 (*.f64 -2 re))) 2) (/.f64 (sqrt.f64 (*.f64 -2 re)) (*.f64 im im))) (sqrt.f64 (*.f64 -2 re))))
(+.f64 (/.f64 im (sqrt.f64 (*.f64 -2 re))) (fma.f64 -1/2 (*.f64 (/.f64 (pow.f64 (/.f64 1 (sqrt.f64 (*.f64 -2 re))) 2) (sqrt.f64 (*.f64 -2 re))) (*.f64 im im)) (sqrt.f64 (*.f64 -2 re))))
(+.f64 (sqrt.f64 (*.f64 -2 re)) (fma.f64 -1/2 (*.f64 (/.f64 (*.f64 im im) (sqrt.f64 (*.f64 -2 re))) (/.f64 1 (*.f64 -2 re))) (/.f64 im (sqrt.f64 (*.f64 -2 re)))))
(+.f64 (sqrt.f64 (*.f64 -2 re)) (fma.f64 -1/2 (/.f64 (*.f64 im im) (pow.f64 (sqrt.f64 (*.f64 -2 re)) 3)) (/.f64 im (sqrt.f64 (*.f64 -2 re)))))
(+.f64 (*.f64 1/2 (/.f64 (*.f64 (pow.f64 (/.f64 1 (sqrt.f64 (*.f64 -2 re))) 2) (pow.f64 im 3)) (*.f64 (pow.f64 (sqrt.f64 (*.f64 -2 re)) 2) (sqrt.f64 (*.f64 -2 re))))) (+.f64 (/.f64 im (sqrt.f64 (*.f64 -2 re))) (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (pow.f64 (/.f64 1 (sqrt.f64 (*.f64 -2 re))) 2) (pow.f64 im 2)) (sqrt.f64 (*.f64 -2 re)))) (sqrt.f64 (*.f64 -2 re)))))
(fma.f64 1/2 (/.f64 (pow.f64 (/.f64 1 (sqrt.f64 (*.f64 -2 re))) 2) (/.f64 (pow.f64 (sqrt.f64 (*.f64 -2 re)) 3) (pow.f64 im 3))) (+.f64 (/.f64 im (sqrt.f64 (*.f64 -2 re))) (fma.f64 -1/2 (/.f64 (pow.f64 (/.f64 1 (sqrt.f64 (*.f64 -2 re))) 2) (/.f64 (sqrt.f64 (*.f64 -2 re)) (*.f64 im im))) (sqrt.f64 (*.f64 -2 re)))))
(+.f64 (fma.f64 -1/2 (*.f64 (/.f64 (pow.f64 (/.f64 1 (sqrt.f64 (*.f64 -2 re))) 2) (sqrt.f64 (*.f64 -2 re))) (*.f64 im im)) (sqrt.f64 (*.f64 -2 re))) (fma.f64 1/2 (*.f64 (/.f64 (pow.f64 (/.f64 1 (sqrt.f64 (*.f64 -2 re))) 2) (pow.f64 (sqrt.f64 (*.f64 -2 re)) 3)) (pow.f64 im 3)) (/.f64 im (sqrt.f64 (*.f64 -2 re)))))
(+.f64 (sqrt.f64 (*.f64 -2 re)) (fma.f64 1/2 (/.f64 (pow.f64 im 3) (/.f64 (pow.f64 (sqrt.f64 (*.f64 -2 re)) 3) (/.f64 1 (*.f64 -2 re)))) (fma.f64 -1/2 (*.f64 (/.f64 (*.f64 im im) (sqrt.f64 (*.f64 -2 re))) (/.f64 1 (*.f64 -2 re))) (/.f64 im (sqrt.f64 (*.f64 -2 re))))))
(+.f64 (+.f64 (sqrt.f64 (*.f64 -2 re)) (/.f64 im (sqrt.f64 (*.f64 -2 re)))) (*.f64 (/.f64 (*.f64 im im) (pow.f64 (sqrt.f64 (*.f64 -2 re)) 3)) (+.f64 (/.f64 1/2 (/.f64 -2 (/.f64 im re))) -1/2)))
(sqrt.f64 (*.f64 2 im))
(sqrt.f64 (*.f64 im 2))
(+.f64 (sqrt.f64 (*.f64 2 im)) (*.f64 -1 (/.f64 re (sqrt.f64 (*.f64 2 im)))))
(+.f64 (sqrt.f64 (*.f64 im 2)) (neg.f64 (/.f64 re (sqrt.f64 (*.f64 im 2)))))
(-.f64 (sqrt.f64 (*.f64 im 2)) (/.f64 re (sqrt.f64 (*.f64 im 2))))
(+.f64 (*.f64 -1/2 (/.f64 (*.f64 (pow.f64 re 2) (pow.f64 (/.f64 -1 (sqrt.f64 (*.f64 2 im))) 2)) (sqrt.f64 (*.f64 2 im)))) (+.f64 (sqrt.f64 (*.f64 2 im)) (*.f64 -1 (/.f64 re (sqrt.f64 (*.f64 2 im))))))
(fma.f64 -1/2 (/.f64 (*.f64 re re) (/.f64 (sqrt.f64 (*.f64 im 2)) (pow.f64 (/.f64 -1 (sqrt.f64 (*.f64 im 2))) 2))) (+.f64 (sqrt.f64 (*.f64 im 2)) (neg.f64 (/.f64 re (sqrt.f64 (*.f64 im 2))))))
(-.f64 (fma.f64 -1/2 (*.f64 (/.f64 (*.f64 re re) (sqrt.f64 (*.f64 im 2))) (pow.f64 (/.f64 -1 (sqrt.f64 (*.f64 im 2))) 2)) (sqrt.f64 (*.f64 im 2))) (/.f64 re (sqrt.f64 (*.f64 im 2))))
(fma.f64 -1/2 (*.f64 (/.f64 (/.f64 1 (sqrt.f64 (*.f64 im 2))) (*.f64 im 2)) (*.f64 re re)) (-.f64 (sqrt.f64 (*.f64 im 2)) (/.f64 re (sqrt.f64 (*.f64 im 2)))))
(-.f64 (fma.f64 -1/2 (*.f64 (/.f64 (/.f64 1 (sqrt.f64 (*.f64 im 2))) (*.f64 im 2)) (*.f64 re re)) (sqrt.f64 (*.f64 im 2))) (/.f64 re (sqrt.f64 (*.f64 im 2))))
(+.f64 (*.f64 -1/2 (/.f64 (*.f64 (pow.f64 re 2) (pow.f64 (/.f64 -1 (sqrt.f64 (*.f64 2 im))) 2)) (sqrt.f64 (*.f64 2 im)))) (+.f64 (sqrt.f64 (*.f64 2 im)) (+.f64 (*.f64 -1 (/.f64 re (sqrt.f64 (*.f64 2 im)))) (*.f64 -1/2 (/.f64 (*.f64 (pow.f64 re 3) (pow.f64 (/.f64 -1 (sqrt.f64 (*.f64 2 im))) 2)) (*.f64 (sqrt.f64 (*.f64 2 im)) (pow.f64 (sqrt.f64 (*.f64 2 im)) 2)))))))
(fma.f64 -1/2 (/.f64 (*.f64 re re) (/.f64 (sqrt.f64 (*.f64 im 2)) (pow.f64 (/.f64 -1 (sqrt.f64 (*.f64 im 2))) 2))) (+.f64 (sqrt.f64 (*.f64 im 2)) (fma.f64 -1 (/.f64 re (sqrt.f64 (*.f64 im 2))) (*.f64 -1/2 (*.f64 (/.f64 (pow.f64 re 3) (sqrt.f64 (*.f64 im 2))) (/.f64 (pow.f64 (/.f64 -1 (sqrt.f64 (*.f64 im 2))) 2) (pow.f64 (sqrt.f64 (*.f64 im 2)) 2)))))))
(+.f64 (-.f64 (fma.f64 -1/2 (*.f64 (/.f64 (*.f64 re re) (sqrt.f64 (*.f64 im 2))) (pow.f64 (/.f64 -1 (sqrt.f64 (*.f64 im 2))) 2)) (sqrt.f64 (*.f64 im 2))) (/.f64 re (sqrt.f64 (*.f64 im 2)))) (*.f64 -1/2 (*.f64 (/.f64 (pow.f64 re 3) (pow.f64 (sqrt.f64 (*.f64 im 2)) 3)) (pow.f64 (/.f64 -1 (sqrt.f64 (*.f64 im 2))) 2))))
(fma.f64 -1/2 (*.f64 (/.f64 (/.f64 1 (sqrt.f64 (*.f64 im 2))) (*.f64 im 2)) (*.f64 re re)) (-.f64 (fma.f64 (/.f64 -1/4 im) (*.f64 (/.f64 (/.f64 1 (sqrt.f64 (*.f64 im 2))) (*.f64 im 2)) (pow.f64 re 3)) (sqrt.f64 (*.f64 im 2))) (/.f64 re (sqrt.f64 (*.f64 im 2)))))
(+.f64 (sqrt.f64 (*.f64 im 2)) (-.f64 (*.f64 -1/2 (*.f64 (/.f64 (/.f64 1 (sqrt.f64 (*.f64 im 2))) (*.f64 im 2)) (+.f64 (/.f64 (pow.f64 re 3) (*.f64 im 2)) (*.f64 re re)))) (/.f64 re (sqrt.f64 (*.f64 im 2)))))
(fma.f64 -1/2 (*.f64 (/.f64 (/.f64 1 (sqrt.f64 (*.f64 im 2))) (*.f64 im 2)) (+.f64 (/.f64 (pow.f64 re 3) (*.f64 im 2)) (*.f64 re re))) (-.f64 (sqrt.f64 (*.f64 im 2)) (/.f64 re (sqrt.f64 (*.f64 im 2)))))
(-.f64 (+.f64 1 (sqrt.f64 (*.f64 2 (-.f64 im re)))) 1)
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 2 (-.f64 im re))) 1))
(+.f64 (sqrt.f64 (*.f64 2 (-.f64 im re))) 0)
(sqrt.f64 (*.f64 2 (-.f64 im re)))
(*.f64 (sqrt.f64 (*.f64 2 (-.f64 im re))) 1)
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 2 (-.f64 im re))) 1))
(+.f64 (sqrt.f64 (*.f64 2 (-.f64 im re))) 0)
(sqrt.f64 (*.f64 2 (-.f64 im re)))
(*.f64 1 (sqrt.f64 (*.f64 2 (-.f64 im re))))
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 2 (-.f64 im re))) 1))
(+.f64 (sqrt.f64 (*.f64 2 (-.f64 im re))) 0)
(sqrt.f64 (*.f64 2 (-.f64 im re)))
(*.f64 (cbrt.f64 (*.f64 2 (-.f64 im re))) (cbrt.f64 (sqrt.f64 (*.f64 2 (-.f64 im re)))))
(*.f64 (cbrt.f64 (sqrt.f64 (*.f64 2 (-.f64 im re)))) (cbrt.f64 (*.f64 2 (-.f64 im re))))
(*.f64 (cbrt.f64 (*.f64 2 (-.f64 im re))) (cbrt.f64 (sqrt.f64 (*.f64 2 (-.f64 im re)))))
(*.f64 (sqrt.f64 (-.f64 im re)) (sqrt.f64 2))
(*.f64 (sqrt.f64 2) (sqrt.f64 (-.f64 im re)))
(*.f64 (sqrt.f64 2) (sqrt.f64 (-.f64 im re)))
(*.f64 (sqrt.f64 (-.f64 im re)) (sqrt.f64 2))
(*.f64 (pow.f64 (*.f64 2 (-.f64 im re)) 1/4) (pow.f64 (*.f64 2 (-.f64 im re)) 1/4))
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 2 (-.f64 im re))) 1))
(+.f64 (sqrt.f64 (*.f64 2 (-.f64 im re))) 0)
(sqrt.f64 (*.f64 2 (-.f64 im re)))
(*.f64 (sqrt.f64 (cbrt.f64 (*.f64 (pow.f64 (-.f64 im re) 2) 4))) (sqrt.f64 (cbrt.f64 (*.f64 2 (-.f64 im re)))))
(*.f64 (pow.f64 1 1/2) (sqrt.f64 (*.f64 2 (-.f64 im re))))
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 2 (-.f64 im re))) 1))
(+.f64 (sqrt.f64 (*.f64 2 (-.f64 im re))) 0)
(sqrt.f64 (*.f64 2 (-.f64 im re)))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 (pow.f64 (-.f64 im re) 2) 4)) 1/2) (pow.f64 (cbrt.f64 (*.f64 2 (-.f64 im re))) 1/2))
(*.f64 (sqrt.f64 (cbrt.f64 (*.f64 (pow.f64 (-.f64 im re) 2) 4))) (sqrt.f64 (cbrt.f64 (*.f64 2 (-.f64 im re)))))
(pow.f64 (*.f64 2 (-.f64 im re)) 1/2)
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 2 (-.f64 im re))) 1))
(+.f64 (sqrt.f64 (*.f64 2 (-.f64 im re))) 0)
(sqrt.f64 (*.f64 2 (-.f64 im re)))
(pow.f64 (sqrt.f64 (*.f64 2 (-.f64 im re))) 1)
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 2 (-.f64 im re))) 1))
(+.f64 (sqrt.f64 (*.f64 2 (-.f64 im re))) 0)
(sqrt.f64 (*.f64 2 (-.f64 im re)))
(pow.f64 (pow.f64 (*.f64 2 (-.f64 im re)) 3/2) 1/3)
(cbrt.f64 (pow.f64 (*.f64 2 (-.f64 im re)) 3/2))
(pow.f64 (cbrt.f64 (sqrt.f64 (*.f64 2 (-.f64 im re)))) 3)
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 2 (-.f64 im re))) 1))
(+.f64 (sqrt.f64 (*.f64 2 (-.f64 im re))) 0)
(sqrt.f64 (*.f64 2 (-.f64 im re)))
(pow.f64 (pow.f64 (*.f64 2 (-.f64 im re)) 1/4) 2)
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 2 (-.f64 im re))) 1))
(+.f64 (sqrt.f64 (*.f64 2 (-.f64 im re))) 0)
(sqrt.f64 (*.f64 2 (-.f64 im re)))
(fabs.f64 (sqrt.f64 (*.f64 2 (-.f64 im re))))
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 2 (-.f64 im re))) 1))
(+.f64 (sqrt.f64 (*.f64 2 (-.f64 im re))) 0)
(sqrt.f64 (*.f64 2 (-.f64 im re)))
(log.f64 (exp.f64 (sqrt.f64 (*.f64 2 (-.f64 im re)))))
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 2 (-.f64 im re))) 1))
(+.f64 (sqrt.f64 (*.f64 2 (-.f64 im re))) 0)
(sqrt.f64 (*.f64 2 (-.f64 im re)))
(cbrt.f64 (pow.f64 (*.f64 2 (-.f64 im re)) 3/2))
(expm1.f64 (log1p.f64 (sqrt.f64 (*.f64 2 (-.f64 im re)))))
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 2 (-.f64 im re))) 1))
(+.f64 (sqrt.f64 (*.f64 2 (-.f64 im re))) 0)
(sqrt.f64 (*.f64 2 (-.f64 im re)))
(log1p.f64 (expm1.f64 (sqrt.f64 (*.f64 2 (-.f64 im re)))))
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 2 (-.f64 im re))) 1))
(+.f64 (sqrt.f64 (*.f64 2 (-.f64 im re))) 0)
(sqrt.f64 (*.f64 2 (-.f64 im re)))
(exp.f64 (log.f64 (sqrt.f64 (*.f64 2 (-.f64 im re)))))
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 2 (-.f64 im re))) 1))
(+.f64 (sqrt.f64 (*.f64 2 (-.f64 im re))) 0)
(sqrt.f64 (*.f64 2 (-.f64 im re)))

eval130.0ms (0.5%)

Compiler

Compiled 8331 to 5330 computations (36% saved)

prune58.0ms (0.2%)

Pruning

14 alts after pruning (9 fresh and 5 done)

PrunedKeptTotal
New3048312
Fresh011
Picked011
Done145
Total30514319
Error
7.0b
Counts
319 → 14
Alt Table
Click to see full alt table
StatusErrorProgram
36.8b
(*.f64 1/2 (pow.f64 (pow.f64 (+.f64 im im) 3/2) 1/3))
25.4b
(*.f64 1/2 (pow.f64 (cbrt.f64 (+.f64 im im)) 3/2))
25.7b
(*.f64 1/2 (pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 im im))) 3))
56.3b
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 (*.f64 im im) (/.f64 re 1/2))) (sqrt.f64 2)))
23.8b
(*.f64 1/2 (*.f64 (sqrt.f64 (-.f64 im re)) (sqrt.f64 2)))
25.0b
(*.f64 1/2 (*.f64 (sqrt.f64 im) (sqrt.f64 2)))
25.0b
(*.f64 1/2 (sqrt.f64 (*.f64 im 2)))
56.3b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (/.f64 (*.f64 im im) (/.f64 re 1/2)))))
11.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))))
23.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 im re))))
51.4b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 re -2))))
60.6b
(*.f64 1/2 (sqrt.f64 (*.f64 -2 re)))
60.3b
(*.f64 1/2 (sqrt.f64 0))
27.7b
(*.f64 1/2 (exp.f64 (log.f64 (sqrt.f64 (+.f64 im im)))))
Compiler

Compiled 244 to 201 computations (17.6% saved)

localize11.0ms (0%)

Local error

Found 2 expressions with local error:

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

Compiled 31 to 16 computations (48.4% saved)

series3.1s (11.3%)

Counts
2 → 16
Calls

12 calls:

TimeVariablePointExpression
415.0ms
im
@-inf
(sqrt.f64 (-.f64 im re))
408.0ms
re
@-inf
(*.f64 (sqrt.f64 (-.f64 im re)) (sqrt.f64 2))
407.0ms
im
@-inf
(*.f64 (sqrt.f64 (-.f64 im re)) (sqrt.f64 2))
399.0ms
re
@inf
(*.f64 (sqrt.f64 (-.f64 im re)) (sqrt.f64 2))
394.0ms
re
@inf
(sqrt.f64 (-.f64 im re))
Compiler

Compiled 271305 to 209579 computations (22.8% saved)

rewrite47.0ms (0.2%)

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

simplify39.0ms (0.1%)

Algorithm
egg-herbie
Rules
725×times-frac_binary64
648×associate-*r*_binary64
570×associate-*l*_binary64
504×associate-/l*_binary64
357×associate-/r*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01601152
14341033
21497865
Stop Event
node limit
Counts
52 → 96
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 2) (sqrt.f64 (neg.f64 re)))
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (neg.f64 re))) (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (neg.f64 re)))))
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (neg.f64 re))) (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (neg.f64 re))) 2) (pow.f64 im 2))) (sqrt.f64 (neg.f64 re)))) (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (neg.f64 re))))))
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (neg.f64 re))) (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (neg.f64 re))) 2) (pow.f64 im 2))) (sqrt.f64 (neg.f64 re)))) (+.f64 (*.f64 1/4 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 im 3) (pow.f64 (/.f64 1/2 (sqrt.f64 (neg.f64 re))) 2))) (*.f64 (sqrt.f64 (neg.f64 re)) (pow.f64 (sqrt.f64 (neg.f64 re)) 2)))) (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (neg.f64 re)))))))
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(+.f64 (*.f64 -1/2 (/.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 im))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
(+.f64 (*.f64 -1/2 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 re 2) (pow.f64 (/.f64 -1/2 (sqrt.f64 im)) 2))) (sqrt.f64 im))) (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 im))) (*.f64 (sqrt.f64 2) (sqrt.f64 im))))
(+.f64 (*.f64 -1/2 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 re 2) (pow.f64 (/.f64 -1/2 (sqrt.f64 im)) 2))) (sqrt.f64 im))) (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 im))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 -1/4 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 re 3) (pow.f64 (/.f64 -1/2 (sqrt.f64 im)) 2))) (*.f64 (sqrt.f64 im) (pow.f64 (sqrt.f64 im) 2)))))))
(sqrt.f64 (neg.f64 re))
(+.f64 (sqrt.f64 (neg.f64 re)) (*.f64 1/2 (/.f64 im (sqrt.f64 (neg.f64 re)))))
(+.f64 (*.f64 -1/2 (/.f64 (*.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (neg.f64 re))) 2) (pow.f64 im 2)) (sqrt.f64 (neg.f64 re)))) (+.f64 (sqrt.f64 (neg.f64 re)) (*.f64 1/2 (/.f64 im (sqrt.f64 (neg.f64 re))))))
(+.f64 (*.f64 1/4 (/.f64 (*.f64 (pow.f64 im 3) (pow.f64 (/.f64 1/2 (sqrt.f64 (neg.f64 re))) 2)) (*.f64 (sqrt.f64 (neg.f64 re)) (pow.f64 (sqrt.f64 (neg.f64 re)) 2)))) (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (neg.f64 re))) 2) (pow.f64 im 2)) (sqrt.f64 (neg.f64 re)))) (+.f64 (sqrt.f64 (neg.f64 re)) (*.f64 1/2 (/.f64 im (sqrt.f64 (neg.f64 re)))))))
(sqrt.f64 im)
(+.f64 (sqrt.f64 im) (*.f64 -1/2 (/.f64 re (sqrt.f64 im))))
(+.f64 (sqrt.f64 im) (+.f64 (*.f64 -1/2 (/.f64 re (sqrt.f64 im))) (*.f64 -1/2 (/.f64 (*.f64 (pow.f64 re 2) (pow.f64 (/.f64 -1/2 (sqrt.f64 im)) 2)) (sqrt.f64 im)))))
(+.f64 (sqrt.f64 im) (+.f64 (*.f64 -1/2 (/.f64 re (sqrt.f64 im))) (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (pow.f64 re 2) (pow.f64 (/.f64 -1/2 (sqrt.f64 im)) 2)) (sqrt.f64 im))) (*.f64 -1/4 (/.f64 (*.f64 (pow.f64 re 3) (pow.f64 (/.f64 -1/2 (sqrt.f64 im)) 2)) (*.f64 (sqrt.f64 im) (pow.f64 (sqrt.f64 im) 2)))))))
(-.f64 (+.f64 1 (sqrt.f64 (*.f64 (-.f64 im re) 2))) 1)
(pow.f64 (sqrt.f64 (*.f64 (-.f64 im re) 2)) 1)
(pow.f64 (pow.f64 (sqrt.f64 (*.f64 (-.f64 im re) 2)) 3) 1/3)
(pow.f64 (cbrt.f64 (sqrt.f64 (*.f64 (-.f64 im re) 2))) 3)
(pow.f64 (sqrt.f64 (sqrt.f64 (*.f64 (-.f64 im re) 2))) 2)
(pow.f64 (*.f64 (-.f64 im re) 2) 1/2)
(sqrt.f64 (*.f64 (-.f64 im re) 2))
(log.f64 (exp.f64 (sqrt.f64 (*.f64 (-.f64 im re) 2))))
(cbrt.f64 (pow.f64 (sqrt.f64 (*.f64 (-.f64 im re) 2)) 3))
(cbrt.f64 (*.f64 (pow.f64 (-.f64 im re) 3/2) (*.f64 2 (sqrt.f64 2))))
(cbrt.f64 (*.f64 (*.f64 2 (sqrt.f64 2)) (pow.f64 (-.f64 im re) 3/2)))
(expm1.f64 (log1p.f64 (sqrt.f64 (*.f64 (-.f64 im re) 2))))
(log1p.f64 (expm1.f64 (sqrt.f64 (*.f64 (-.f64 im re) 2))))
(exp.f64 (log.f64 (sqrt.f64 (*.f64 (-.f64 im re) 2))))
(-.f64 (+.f64 1 (sqrt.f64 (-.f64 im re))) 1)
(*.f64 (sqrt.f64 (-.f64 im re)) 1)
(*.f64 1 (sqrt.f64 (-.f64 im re)))
(*.f64 (cbrt.f64 (sqrt.f64 (-.f64 im re))) (cbrt.f64 (-.f64 im re)))
(*.f64 (cbrt.f64 (-.f64 im re)) (cbrt.f64 (sqrt.f64 (-.f64 im re))))
(*.f64 (pow.f64 (-.f64 im re) 1/4) (pow.f64 (-.f64 im re) 1/4))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (-.f64 im re)) 2)) (sqrt.f64 (cbrt.f64 (-.f64 im re))))
(*.f64 (pow.f64 1 1/2) (sqrt.f64 (-.f64 im re)))
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (-.f64 im re)) 2) 1/2) (pow.f64 (cbrt.f64 (-.f64 im re)) 1/2))
(/.f64 (sqrt.f64 (-.f64 (pow.f64 im 3) (pow.f64 re 3))) (sqrt.f64 (fma.f64 im im (*.f64 re (+.f64 im re)))))
(/.f64 (sqrt.f64 (-.f64 (*.f64 im im) (*.f64 re re))) (sqrt.f64 (+.f64 im re)))
(pow.f64 (-.f64 im re) 1/2)
(pow.f64 (sqrt.f64 (-.f64 im re)) 1)
(pow.f64 (pow.f64 (-.f64 im re) 3/2) 1/3)
(pow.f64 (cbrt.f64 (sqrt.f64 (-.f64 im re))) 3)
(pow.f64 (pow.f64 (-.f64 im re) 1/4) 2)
(fabs.f64 (sqrt.f64 (-.f64 im re)))
(log.f64 (exp.f64 (sqrt.f64 (-.f64 im re))))
(cbrt.f64 (pow.f64 (-.f64 im re) 3/2))
(expm1.f64 (log1p.f64 (sqrt.f64 (-.f64 im re))))
(log1p.f64 (expm1.f64 (sqrt.f64 (-.f64 im re))))
(exp.f64 (log.f64 (sqrt.f64 (-.f64 im re))))
Outputs
(*.f64 (sqrt.f64 2) (sqrt.f64 (neg.f64 re)))
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (neg.f64 re))) (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (neg.f64 re)))))
(fma.f64 (sqrt.f64 2) (sqrt.f64 (neg.f64 re)) (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (neg.f64 re)))))
(fma.f64 (sqrt.f64 2) (sqrt.f64 (neg.f64 re)) (/.f64 (*.f64 1/2 (*.f64 (sqrt.f64 2) im)) (sqrt.f64 (neg.f64 re))))
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (neg.f64 re))) (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (neg.f64 re))) 2) (pow.f64 im 2))) (sqrt.f64 (neg.f64 re)))) (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (neg.f64 re))))))
(fma.f64 (sqrt.f64 2) (sqrt.f64 (neg.f64 re)) (fma.f64 -1/2 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (neg.f64 re))) 2) (*.f64 im im))) (sqrt.f64 (neg.f64 re))) (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (neg.f64 re))))))
(fma.f64 (sqrt.f64 2) (sqrt.f64 (neg.f64 re)) (fma.f64 1/2 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 (neg.f64 re))) im) (/.f64 (*.f64 (sqrt.f64 2) -1/2) (/.f64 (/.f64 (sqrt.f64 (neg.f64 re)) (*.f64 im im)) (pow.f64 (/.f64 1/2 (sqrt.f64 (neg.f64 re))) 2)))))
(fma.f64 (sqrt.f64 2) (sqrt.f64 (neg.f64 re)) (fma.f64 1/2 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (neg.f64 re))) (*.f64 -1/2 (/.f64 (*.f64 (sqrt.f64 2) (/.f64 -1/4 re)) (/.f64 (sqrt.f64 (neg.f64 re)) (*.f64 im im))))))
(+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (neg.f64 re))) (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (neg.f64 re))) 2) (pow.f64 im 2))) (sqrt.f64 (neg.f64 re)))) (+.f64 (*.f64 1/4 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 im 3) (pow.f64 (/.f64 1/2 (sqrt.f64 (neg.f64 re))) 2))) (*.f64 (sqrt.f64 (neg.f64 re)) (pow.f64 (sqrt.f64 (neg.f64 re)) 2)))) (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (neg.f64 re)))))))
(fma.f64 (sqrt.f64 2) (sqrt.f64 (neg.f64 re)) (fma.f64 -1/2 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (neg.f64 re))) 2) (*.f64 im im))) (sqrt.f64 (neg.f64 re))) (fma.f64 1/4 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 (neg.f64 re))) (/.f64 (*.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (neg.f64 re))) 2) (pow.f64 im 3)) (pow.f64 (sqrt.f64 (neg.f64 re)) 2))) (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (neg.f64 re)))))))
(fma.f64 (sqrt.f64 2) (sqrt.f64 (neg.f64 re)) (fma.f64 -1/2 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 (neg.f64 re))) (*.f64 im (*.f64 im (pow.f64 (/.f64 1/2 (sqrt.f64 (neg.f64 re))) 2)))) (fma.f64 1/4 (*.f64 (/.f64 (sqrt.f64 2) (pow.f64 (sqrt.f64 (neg.f64 re)) 3)) (*.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (neg.f64 re))) 2) (pow.f64 im 3))) (/.f64 (*.f64 1/2 (*.f64 (sqrt.f64 2) im)) (sqrt.f64 (neg.f64 re))))))
(fma.f64 (sqrt.f64 2) (sqrt.f64 (neg.f64 re)) (fma.f64 1/2 (/.f64 (*.f64 (sqrt.f64 2) im) (sqrt.f64 (neg.f64 re))) (fma.f64 -1/2 (/.f64 (*.f64 (sqrt.f64 2) (/.f64 -1/4 re)) (/.f64 (sqrt.f64 (neg.f64 re)) (*.f64 im im))) (*.f64 (/.f64 -1/4 re) (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 (neg.f64 re))) (*.f64 (/.f64 -1/4 re) (pow.f64 im 3)))))))
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(+.f64 (*.f64 -1/2 (/.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 im))) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
(fma.f64 -1/2 (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 im) re)) (*.f64 (sqrt.f64 2) (sqrt.f64 im)))
(fma.f64 (sqrt.f64 2) (sqrt.f64 im) (*.f64 -1/2 (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 im) re))))
(fma.f64 (sqrt.f64 2) (sqrt.f64 im) (*.f64 (/.f64 -1/2 (sqrt.f64 im)) (*.f64 (sqrt.f64 2) re)))
(+.f64 (*.f64 -1/2 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 re 2) (pow.f64 (/.f64 -1/2 (sqrt.f64 im)) 2))) (sqrt.f64 im))) (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 im))) (*.f64 (sqrt.f64 2) (sqrt.f64 im))))
(fma.f64 -1/2 (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 im) (*.f64 (pow.f64 (/.f64 -1/2 (sqrt.f64 im)) 2) (*.f64 re re)))) (fma.f64 -1/2 (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 im) re)) (*.f64 (sqrt.f64 2) (sqrt.f64 im))))
(fma.f64 -1/2 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 (pow.f64 (/.f64 -1/2 (sqrt.f64 im)) 2) (*.f64 re re))) (fma.f64 (sqrt.f64 2) (sqrt.f64 im) (*.f64 -1/2 (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 im) re)))))
(fma.f64 (sqrt.f64 2) (sqrt.f64 im) (*.f64 -1/2 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 im)) (+.f64 (*.f64 re (*.f64 re (pow.f64 (/.f64 -1/2 (sqrt.f64 im)) 2))) re))))
(+.f64 (*.f64 -1/2 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 re 2) (pow.f64 (/.f64 -1/2 (sqrt.f64 im)) 2))) (sqrt.f64 im))) (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (sqrt.f64 2) re) (sqrt.f64 im))) (+.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 -1/4 (/.f64 (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 re 3) (pow.f64 (/.f64 -1/2 (sqrt.f64 im)) 2))) (*.f64 (sqrt.f64 im) (pow.f64 (sqrt.f64 im) 2)))))))
(fma.f64 -1/2 (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 im) (*.f64 (pow.f64 (/.f64 -1/2 (sqrt.f64 im)) 2) (*.f64 re re)))) (fma.f64 -1/2 (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 im) re)) (fma.f64 (sqrt.f64 2) (sqrt.f64 im) (*.f64 -1/4 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 im)) (/.f64 (*.f64 (pow.f64 (/.f64 -1/2 (sqrt.f64 im)) 2) (pow.f64 re 3)) (pow.f64 (sqrt.f64 im) 2)))))))
(fma.f64 -1/2 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 im)) (*.f64 (pow.f64 (/.f64 -1/2 (sqrt.f64 im)) 2) (*.f64 re re))) (fma.f64 -1/2 (/.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 im) re)) (fma.f64 (sqrt.f64 2) (sqrt.f64 im) (/.f64 (*.f64 (sqrt.f64 2) -1/4) (/.f64 (/.f64 (*.f64 im (sqrt.f64 im)) (pow.f64 re 3)) (pow.f64 (/.f64 -1/2 (sqrt.f64 im)) 2))))))
(fma.f64 -1/2 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 im)) (+.f64 (*.f64 re (*.f64 re (pow.f64 (/.f64 -1/2 (sqrt.f64 im)) 2))) re)) (fma.f64 -1/4 (*.f64 (*.f64 (/.f64 (/.f64 1/4 (sqrt.f64 im)) im) (/.f64 (pow.f64 re 3) im)) (sqrt.f64 2)) (*.f64 (sqrt.f64 2) (sqrt.f64 im))))
(sqrt.f64 (neg.f64 re))
(+.f64 (sqrt.f64 (neg.f64 re)) (*.f64 1/2 (/.f64 im (sqrt.f64 (neg.f64 re)))))
(fma.f64 1/2 (/.f64 im (sqrt.f64 (neg.f64 re))) (sqrt.f64 (neg.f64 re)))
(+.f64 (*.f64 -1/2 (/.f64 (*.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (neg.f64 re))) 2) (pow.f64 im 2)) (sqrt.f64 (neg.f64 re)))) (+.f64 (sqrt.f64 (neg.f64 re)) (*.f64 1/2 (/.f64 im (sqrt.f64 (neg.f64 re))))))
(fma.f64 -1/2 (/.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (neg.f64 re))) 2) (/.f64 (sqrt.f64 (neg.f64 re)) (*.f64 im im))) (+.f64 (sqrt.f64 (neg.f64 re)) (*.f64 1/2 (/.f64 im (sqrt.f64 (neg.f64 re))))))
(fma.f64 -1/2 (*.f64 (/.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (neg.f64 re))) 2) (sqrt.f64 (neg.f64 re))) (*.f64 im im)) (fma.f64 1/2 (/.f64 im (sqrt.f64 (neg.f64 re))) (sqrt.f64 (neg.f64 re))))
(fma.f64 1/2 (/.f64 im (sqrt.f64 (neg.f64 re))) (fma.f64 -1/2 (/.f64 im (/.f64 (sqrt.f64 (neg.f64 re)) (*.f64 im (/.f64 -1/4 re)))) (sqrt.f64 (neg.f64 re))))
(+.f64 (*.f64 1/4 (/.f64 (*.f64 (pow.f64 im 3) (pow.f64 (/.f64 1/2 (sqrt.f64 (neg.f64 re))) 2)) (*.f64 (sqrt.f64 (neg.f64 re)) (pow.f64 (sqrt.f64 (neg.f64 re)) 2)))) (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (neg.f64 re))) 2) (pow.f64 im 2)) (sqrt.f64 (neg.f64 re)))) (+.f64 (sqrt.f64 (neg.f64 re)) (*.f64 1/2 (/.f64 im (sqrt.f64 (neg.f64 re)))))))
(fma.f64 1/4 (*.f64 (/.f64 (pow.f64 im 3) (sqrt.f64 (neg.f64 re))) (/.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (neg.f64 re))) 2) (pow.f64 (sqrt.f64 (neg.f64 re)) 2))) (fma.f64 -1/2 (/.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (neg.f64 re))) 2) (/.f64 (sqrt.f64 (neg.f64 re)) (*.f64 im im))) (+.f64 (sqrt.f64 (neg.f64 re)) (*.f64 1/2 (/.f64 im (sqrt.f64 (neg.f64 re)))))))
(fma.f64 1/4 (*.f64 (/.f64 (pow.f64 im 3) (pow.f64 (sqrt.f64 (neg.f64 re)) 3)) (pow.f64 (/.f64 1/2 (sqrt.f64 (neg.f64 re))) 2)) (fma.f64 -1/2 (*.f64 (/.f64 (pow.f64 (/.f64 1/2 (sqrt.f64 (neg.f64 re))) 2) (sqrt.f64 (neg.f64 re))) (*.f64 im im)) (fma.f64 1/2 (/.f64 im (sqrt.f64 (neg.f64 re))) (sqrt.f64 (neg.f64 re)))))
(fma.f64 (/.f64 -1/4 re) (/.f64 (/.f64 -1/4 re) (/.f64 (sqrt.f64 (neg.f64 re)) (pow.f64 im 3))) (fma.f64 1/2 (/.f64 im (sqrt.f64 (neg.f64 re))) (fma.f64 -1/2 (/.f64 im (/.f64 (sqrt.f64 (neg.f64 re)) (*.f64 im (/.f64 -1/4 re)))) (sqrt.f64 (neg.f64 re)))))
(sqrt.f64 im)
(+.f64 (sqrt.f64 im) (*.f64 -1/2 (/.f64 re (sqrt.f64 im))))
(+.f64 (sqrt.f64 im) (/.f64 (*.f64 -1/2 re) (sqrt.f64 im)))
(fma.f64 -1/2 (/.f64 re (sqrt.f64 im)) (sqrt.f64 im))
(+.f64 (sqrt.f64 im) (+.f64 (*.f64 -1/2 (/.f64 re (sqrt.f64 im))) (*.f64 -1/2 (/.f64 (*.f64 (pow.f64 re 2) (pow.f64 (/.f64 -1/2 (sqrt.f64 im)) 2)) (sqrt.f64 im)))))
(+.f64 (sqrt.f64 im) (*.f64 -1/2 (+.f64 (/.f64 re (sqrt.f64 im)) (/.f64 (*.f64 (pow.f64 (/.f64 -1/2 (sqrt.f64 im)) 2) (*.f64 re re)) (sqrt.f64 im)))))
(fma.f64 -1/2 (+.f64 (/.f64 re (sqrt.f64 im)) (*.f64 (/.f64 (*.f64 re re) (sqrt.f64 im)) (pow.f64 (/.f64 -1/2 (sqrt.f64 im)) 2))) (sqrt.f64 im))
(fma.f64 -1/2 (+.f64 (/.f64 re (sqrt.f64 im)) (*.f64 (/.f64 (/.f64 1/4 (sqrt.f64 im)) im) (*.f64 re re))) (sqrt.f64 im))
(+.f64 (sqrt.f64 im) (+.f64 (*.f64 -1/2 (/.f64 re (sqrt.f64 im))) (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (pow.f64 re 2) (pow.f64 (/.f64 -1/2 (sqrt.f64 im)) 2)) (sqrt.f64 im))) (*.f64 -1/4 (/.f64 (*.f64 (pow.f64 re 3) (pow.f64 (/.f64 -1/2 (sqrt.f64 im)) 2)) (*.f64 (sqrt.f64 im) (pow.f64 (sqrt.f64 im) 2)))))))
(+.f64 (sqrt.f64 im) (fma.f64 -1/2 (/.f64 re (sqrt.f64 im)) (fma.f64 -1/2 (/.f64 (*.f64 (pow.f64 (/.f64 -1/2 (sqrt.f64 im)) 2) (*.f64 re re)) (sqrt.f64 im)) (*.f64 -1/4 (/.f64 (*.f64 (pow.f64 (/.f64 -1/2 (sqrt.f64 im)) 2) (pow.f64 re 3)) (*.f64 (sqrt.f64 im) (pow.f64 (sqrt.f64 im) 2)))))))
(+.f64 (sqrt.f64 im) (fma.f64 -1/2 (+.f64 (/.f64 re (sqrt.f64 im)) (*.f64 (/.f64 (*.f64 re re) (sqrt.f64 im)) (pow.f64 (/.f64 -1/2 (sqrt.f64 im)) 2))) (*.f64 -1/4 (*.f64 (/.f64 (pow.f64 re 3) (*.f64 im (sqrt.f64 im))) (pow.f64 (/.f64 -1/2 (sqrt.f64 im)) 2)))))
(fma.f64 -1/2 (+.f64 (/.f64 re (sqrt.f64 im)) (*.f64 (/.f64 (/.f64 1/4 (sqrt.f64 im)) im) (*.f64 re re))) (fma.f64 -1/4 (*.f64 (/.f64 (/.f64 1/4 (sqrt.f64 im)) im) (/.f64 (pow.f64 re 3) im)) (sqrt.f64 im)))
(-.f64 (+.f64 1 (sqrt.f64 (*.f64 (-.f64 im re) 2))) 1)
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 2 (-.f64 im re))) 1))
(+.f64 (sqrt.f64 (*.f64 2 (-.f64 im re))) 0)
(sqrt.f64 (*.f64 2 (-.f64 im re)))
(pow.f64 (sqrt.f64 (*.f64 (-.f64 im re) 2)) 1)
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 2 (-.f64 im re))) 1))
(+.f64 (sqrt.f64 (*.f64 2 (-.f64 im re))) 0)
(sqrt.f64 (*.f64 2 (-.f64 im re)))
(pow.f64 (pow.f64 (sqrt.f64 (*.f64 (-.f64 im re) 2)) 3) 1/3)
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 2 (-.f64 im re))) 1))
(+.f64 (sqrt.f64 (*.f64 2 (-.f64 im re))) 0)
(sqrt.f64 (*.f64 2 (-.f64 im re)))
(pow.f64 (cbrt.f64 (sqrt.f64 (*.f64 (-.f64 im re) 2))) 3)
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 2 (-.f64 im re))) 1))
(+.f64 (sqrt.f64 (*.f64 2 (-.f64 im re))) 0)
(sqrt.f64 (*.f64 2 (-.f64 im re)))
(pow.f64 (sqrt.f64 (sqrt.f64 (*.f64 (-.f64 im re) 2))) 2)
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 2 (-.f64 im re))) 1))
(+.f64 (sqrt.f64 (*.f64 2 (-.f64 im re))) 0)
(sqrt.f64 (*.f64 2 (-.f64 im re)))
(pow.f64 (*.f64 (-.f64 im re) 2) 1/2)
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 2 (-.f64 im re))) 1))
(+.f64 (sqrt.f64 (*.f64 2 (-.f64 im re))) 0)
(sqrt.f64 (*.f64 2 (-.f64 im re)))
(sqrt.f64 (*.f64 (-.f64 im re) 2))
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 2 (-.f64 im re))) 1))
(+.f64 (sqrt.f64 (*.f64 2 (-.f64 im re))) 0)
(sqrt.f64 (*.f64 2 (-.f64 im re)))
(log.f64 (exp.f64 (sqrt.f64 (*.f64 (-.f64 im re) 2))))
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 2 (-.f64 im re))) 1))
(+.f64 (sqrt.f64 (*.f64 2 (-.f64 im re))) 0)
(sqrt.f64 (*.f64 2 (-.f64 im re)))
(cbrt.f64 (pow.f64 (sqrt.f64 (*.f64 (-.f64 im re) 2)) 3))
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 2 (-.f64 im re))) 1))
(+.f64 (sqrt.f64 (*.f64 2 (-.f64 im re))) 0)
(sqrt.f64 (*.f64 2 (-.f64 im re)))
(cbrt.f64 (*.f64 (pow.f64 (-.f64 im re) 3/2) (*.f64 2 (sqrt.f64 2))))
(cbrt.f64 (*.f64 2 (*.f64 (sqrt.f64 2) (pow.f64 (-.f64 im re) 3/2))))
(cbrt.f64 (*.f64 (*.f64 2 (sqrt.f64 2)) (pow.f64 (-.f64 im re) 3/2)))
(cbrt.f64 (*.f64 (pow.f64 (-.f64 im re) 3/2) (*.f64 2 (sqrt.f64 2))))
(cbrt.f64 (*.f64 2 (*.f64 (sqrt.f64 2) (pow.f64 (-.f64 im re) 3/2))))
(expm1.f64 (log1p.f64 (sqrt.f64 (*.f64 (-.f64 im re) 2))))
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 2 (-.f64 im re))) 1))
(+.f64 (sqrt.f64 (*.f64 2 (-.f64 im re))) 0)
(sqrt.f64 (*.f64 2 (-.f64 im re)))
(log1p.f64 (expm1.f64 (sqrt.f64 (*.f64 (-.f64 im re) 2))))
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 2 (-.f64 im re))) 1))
(+.f64 (sqrt.f64 (*.f64 2 (-.f64 im re))) 0)
(sqrt.f64 (*.f64 2 (-.f64 im re)))
(exp.f64 (log.f64 (sqrt.f64 (*.f64 (-.f64 im re) 2))))
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 2 (-.f64 im re))) 1))
(+.f64 (sqrt.f64 (*.f64 2 (-.f64 im re))) 0)
(sqrt.f64 (*.f64 2 (-.f64 im re)))
(-.f64 (+.f64 1 (sqrt.f64 (-.f64 im re))) 1)
(+.f64 1 (-.f64 (sqrt.f64 (-.f64 im re)) 1))
(+.f64 (sqrt.f64 (-.f64 im re)) 0)
(sqrt.f64 (-.f64 im re))
(*.f64 (sqrt.f64 (-.f64 im re)) 1)
(+.f64 1 (-.f64 (sqrt.f64 (-.f64 im re)) 1))
(+.f64 (sqrt.f64 (-.f64 im re)) 0)
(sqrt.f64 (-.f64 im re))
(*.f64 1 (sqrt.f64 (-.f64 im re)))
(+.f64 1 (-.f64 (sqrt.f64 (-.f64 im re)) 1))
(+.f64 (sqrt.f64 (-.f64 im re)) 0)
(sqrt.f64 (-.f64 im re))
(*.f64 (cbrt.f64 (sqrt.f64 (-.f64 im re))) (cbrt.f64 (-.f64 im re)))
(*.f64 (cbrt.f64 (-.f64 im re)) (cbrt.f64 (sqrt.f64 (-.f64 im re))))
(*.f64 (cbrt.f64 (sqrt.f64 (-.f64 im re))) (cbrt.f64 (-.f64 im re)))
(*.f64 (pow.f64 (-.f64 im re) 1/4) (pow.f64 (-.f64 im re) 1/4))
(+.f64 1 (-.f64 (sqrt.f64 (-.f64 im re)) 1))
(+.f64 (sqrt.f64 (-.f64 im re)) 0)
(sqrt.f64 (-.f64 im re))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (-.f64 im re)) 2)) (sqrt.f64 (cbrt.f64 (-.f64 im re))))
(*.f64 (fabs.f64 (cbrt.f64 (-.f64 im re))) (sqrt.f64 (cbrt.f64 (-.f64 im re))))
(*.f64 (cbrt.f64 (-.f64 im re)) (sqrt.f64 (cbrt.f64 (-.f64 im re))))
(*.f64 (pow.f64 1 1/2) (sqrt.f64 (-.f64 im re)))
(+.f64 1 (-.f64 (sqrt.f64 (-.f64 im re)) 1))
(+.f64 (sqrt.f64 (-.f64 im re)) 0)
(sqrt.f64 (-.f64 im re))
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (-.f64 im re)) 2) 1/2) (pow.f64 (cbrt.f64 (-.f64 im re)) 1/2))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (-.f64 im re)) 2)) (sqrt.f64 (cbrt.f64 (-.f64 im re))))
(*.f64 (fabs.f64 (cbrt.f64 (-.f64 im re))) (sqrt.f64 (cbrt.f64 (-.f64 im re))))
(*.f64 (cbrt.f64 (-.f64 im re)) (sqrt.f64 (cbrt.f64 (-.f64 im re))))
(/.f64 (sqrt.f64 (-.f64 (pow.f64 im 3) (pow.f64 re 3))) (sqrt.f64 (fma.f64 im im (*.f64 re (+.f64 im re)))))
(/.f64 (sqrt.f64 (-.f64 (pow.f64 im 3) (pow.f64 re 3))) (sqrt.f64 (fma.f64 im im (*.f64 re (+.f64 re im)))))
(/.f64 (sqrt.f64 (-.f64 (pow.f64 im 3) (pow.f64 re 3))) (sqrt.f64 (fma.f64 re (+.f64 re im) (*.f64 im im))))
(/.f64 (sqrt.f64 (-.f64 (*.f64 im im) (*.f64 re re))) (sqrt.f64 (+.f64 im re)))
(/.f64 (sqrt.f64 (-.f64 (*.f64 im im) (*.f64 re re))) (sqrt.f64 (+.f64 re im)))
(pow.f64 (-.f64 im re) 1/2)
(+.f64 1 (-.f64 (sqrt.f64 (-.f64 im re)) 1))
(+.f64 (sqrt.f64 (-.f64 im re)) 0)
(sqrt.f64 (-.f64 im re))
(pow.f64 (sqrt.f64 (-.f64 im re)) 1)
(+.f64 1 (-.f64 (sqrt.f64 (-.f64 im re)) 1))
(+.f64 (sqrt.f64 (-.f64 im re)) 0)
(sqrt.f64 (-.f64 im re))
(pow.f64 (pow.f64 (-.f64 im re) 3/2) 1/3)
(cbrt.f64 (pow.f64 (-.f64 im re) 3/2))
(pow.f64 (cbrt.f64 (sqrt.f64 (-.f64 im re))) 3)
(+.f64 1 (-.f64 (sqrt.f64 (-.f64 im re)) 1))
(+.f64 (sqrt.f64 (-.f64 im re)) 0)
(sqrt.f64 (-.f64 im re))
(pow.f64 (pow.f64 (-.f64 im re) 1/4) 2)
(+.f64 1 (-.f64 (sqrt.f64 (-.f64 im re)) 1))
(+.f64 (sqrt.f64 (-.f64 im re)) 0)
(sqrt.f64 (-.f64 im re))
(fabs.f64 (sqrt.f64 (-.f64 im re)))
(+.f64 1 (-.f64 (sqrt.f64 (-.f64 im re)) 1))
(+.f64 (sqrt.f64 (-.f64 im re)) 0)
(sqrt.f64 (-.f64 im re))
(log.f64 (exp.f64 (sqrt.f64 (-.f64 im re))))
(+.f64 1 (-.f64 (sqrt.f64 (-.f64 im re)) 1))
(+.f64 (sqrt.f64 (-.f64 im re)) 0)
(sqrt.f64 (-.f64 im re))
(cbrt.f64 (pow.f64 (-.f64 im re) 3/2))
(expm1.f64 (log1p.f64 (sqrt.f64 (-.f64 im re))))
(+.f64 1 (-.f64 (sqrt.f64 (-.f64 im re)) 1))
(+.f64 (sqrt.f64 (-.f64 im re)) 0)
(sqrt.f64 (-.f64 im re))
(log1p.f64 (expm1.f64 (sqrt.f64 (-.f64 im re))))
(+.f64 1 (-.f64 (sqrt.f64 (-.f64 im re)) 1))
(+.f64 (sqrt.f64 (-.f64 im re)) 0)
(sqrt.f64 (-.f64 im re))
(exp.f64 (log.f64 (sqrt.f64 (-.f64 im re))))
(+.f64 1 (-.f64 (sqrt.f64 (-.f64 im re)) 1))
(+.f64 (sqrt.f64 (-.f64 im re)) 0)
(sqrt.f64 (-.f64 im re))

localize7.0ms (0%)

Compiler

Compiled 18 to 14 computations (22.2% saved)

localize9.0ms (0%)

Local error

Found 1 expressions with local error:

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

Compiled 21 to 15 computations (28.6% saved)

series1.5s (5.4%)

Counts
1 → 0
Calls

3 calls:

TimeVariablePointExpression
698.0ms
im
@-inf
(*.f64 (sqrt.f64 im) (sqrt.f64 2))
427.0ms
im
@0
(*.f64 (sqrt.f64 im) (sqrt.f64 2))
357.0ms
im
@inf
(*.f64 (sqrt.f64 im) (sqrt.f64 2))
Compiler

Compiled 100352 to 83200 computations (17.1% saved)

rewrite35.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

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

simplify45.0ms (0.2%)

Algorithm
egg-herbie
Rules
605×log-prod_binary64
408×fma-neg_binary64
399×exp-prod_binary64
327×exp-sum_binary64
232×unswap-sqr_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
028144
164108
226172
3170672
4396472
5583872
Stop Event
node limit
Counts
12 → 14
Calls
Call 1
Inputs
(-.f64 (+.f64 1 (sqrt.f64 (*.f64 im 2))) 1)
(pow.f64 (sqrt.f64 (*.f64 im 2)) 1)
(pow.f64 (pow.f64 (sqrt.f64 (*.f64 im 2)) 3) 1/3)
(pow.f64 (cbrt.f64 (sqrt.f64 (*.f64 im 2))) 3)
(pow.f64 (sqrt.f64 (sqrt.f64 (*.f64 im 2))) 2)
(pow.f64 (*.f64 im 2) 1/2)
(sqrt.f64 (*.f64 im 2))
(log.f64 (exp.f64 (sqrt.f64 (*.f64 im 2))))
(cbrt.f64 (pow.f64 (sqrt.f64 (*.f64 im 2)) 3))
(expm1.f64 (log1p.f64 (sqrt.f64 (*.f64 im 2))))
(log1p.f64 (expm1.f64 (sqrt.f64 (*.f64 im 2))))
(exp.f64 (log.f64 (sqrt.f64 (*.f64 im 2))))
Outputs
(-.f64 (+.f64 1 (sqrt.f64 (*.f64 im 2))) 1)
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 im 2)) 1))
(+.f64 (sqrt.f64 (*.f64 im 2)) 0)
(sqrt.f64 (*.f64 im 2))
(pow.f64 (sqrt.f64 (*.f64 im 2)) 1)
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 im 2)) 1))
(+.f64 (sqrt.f64 (*.f64 im 2)) 0)
(sqrt.f64 (*.f64 im 2))
(pow.f64 (pow.f64 (sqrt.f64 (*.f64 im 2)) 3) 1/3)
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 im 2)) 1))
(+.f64 (sqrt.f64 (*.f64 im 2)) 0)
(sqrt.f64 (*.f64 im 2))
(pow.f64 (cbrt.f64 (sqrt.f64 (*.f64 im 2))) 3)
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 im 2)) 1))
(+.f64 (sqrt.f64 (*.f64 im 2)) 0)
(sqrt.f64 (*.f64 im 2))
(pow.f64 (sqrt.f64 (sqrt.f64 (*.f64 im 2))) 2)
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 im 2)) 1))
(+.f64 (sqrt.f64 (*.f64 im 2)) 0)
(sqrt.f64 (*.f64 im 2))
(pow.f64 (*.f64 im 2) 1/2)
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 im 2)) 1))
(+.f64 (sqrt.f64 (*.f64 im 2)) 0)
(sqrt.f64 (*.f64 im 2))
(sqrt.f64 (*.f64 im 2))
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 im 2)) 1))
(+.f64 (sqrt.f64 (*.f64 im 2)) 0)
(log.f64 (exp.f64 (sqrt.f64 (*.f64 im 2))))
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 im 2)) 1))
(+.f64 (sqrt.f64 (*.f64 im 2)) 0)
(sqrt.f64 (*.f64 im 2))
(cbrt.f64 (pow.f64 (sqrt.f64 (*.f64 im 2)) 3))
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 im 2)) 1))
(+.f64 (sqrt.f64 (*.f64 im 2)) 0)
(sqrt.f64 (*.f64 im 2))
(expm1.f64 (log1p.f64 (sqrt.f64 (*.f64 im 2))))
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 im 2)) 1))
(+.f64 (sqrt.f64 (*.f64 im 2)) 0)
(sqrt.f64 (*.f64 im 2))
(log1p.f64 (expm1.f64 (sqrt.f64 (*.f64 im 2))))
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 im 2)) 1))
(+.f64 (sqrt.f64 (*.f64 im 2)) 0)
(sqrt.f64 (*.f64 im 2))
(exp.f64 (log.f64 (sqrt.f64 (*.f64 im 2))))
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 im 2)) 1))
(+.f64 (sqrt.f64 (*.f64 im 2)) 0)
(sqrt.f64 (*.f64 im 2))

localize19.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
22.9b
(pow.f64 (pow.f64 (+.f64 im im) 3/2) 1/3)
Compiler

Compiled 30 to 18 computations (40% saved)

series856.0ms (3.1%)

Counts
1 → 8
Calls

3 calls:

TimeVariablePointExpression
819.0ms
im
@-inf
(pow.f64 (pow.f64 (+.f64 im im) 3/2) 1/3)
27.0ms
im
@0
(pow.f64 (pow.f64 (+.f64 im im) 3/2) 1/3)
10.0ms
im
@inf
(pow.f64 (pow.f64 (+.f64 im im) 3/2) 1/3)
Compiler

Compiled 17528 to 16496 computations (5.9% saved)

rewrite39.0ms (0.1%)

Algorithm
batch-egg-rewrite
Rules
520×pow1_binary64
504×add-log-exp_binary64
503×log1p-expm1-u_binary64
503×expm1-log1p-u_binary64
493×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify13.0ms (0%)

Algorithm
egg-herbie
Rules
23×*-commutative_binary64
12×sqr-pow_binary64
associate-/l*_binary64
distribute-rgt-in_binary64
associate-*l*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0140392
1355392
Stop Event
unsound
Counts
65 → 74
Calls
Call 1
Inputs
(pow.f64 (exp.f64 (*.f64 3/2 (+.f64 (log.f64 2) (log.f64 im)))) 1/3)
(pow.f64 (exp.f64 (*.f64 3/2 (+.f64 (log.f64 2) (log.f64 im)))) 1/3)
(pow.f64 (exp.f64 (*.f64 3/2 (+.f64 (log.f64 2) (log.f64 im)))) 1/3)
(pow.f64 (exp.f64 (*.f64 3/2 (+.f64 (log.f64 2) (log.f64 im)))) 1/3)
(pow.f64 (exp.f64 (*.f64 3/2 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 im)))))) 1/3)
(pow.f64 (exp.f64 (*.f64 3/2 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 im)))))) 1/3)
(pow.f64 (exp.f64 (*.f64 3/2 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 im)))))) 1/3)
(pow.f64 (exp.f64 (*.f64 3/2 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 im)))))) 1/3)
(+.f64 im im)
(+.f64 (*.f64 im (+.f64 im im)) (*.f64 im (+.f64 im im)))
(+.f64 (*.f64 (+.f64 im im) im) (*.f64 (+.f64 im im) im))
(-.f64 (+.f64 1 (+.f64 im im)) 1)
(-.f64 (/.f64 (*.f64 im im) 0) (/.f64 (*.f64 im im) 0))
(*.f64 im 2)
(*.f64 (+.f64 im im) (+.f64 im im))
(*.f64 (+.f64 im im) 1)
(*.f64 1 (+.f64 im im))
(*.f64 (cbrt.f64 im) (+.f64 (pow.f64 (cbrt.f64 im) 2) (pow.f64 (cbrt.f64 im) 2)))
(*.f64 (pow.f64 (cbrt.f64 im) 2) (+.f64 (cbrt.f64 im) (cbrt.f64 im)))
(*.f64 (sqrt.f64 im) (+.f64 (sqrt.f64 im) (sqrt.f64 im)))
(*.f64 (*.f64 2 (pow.f64 im 3)) (/.f64 1 (fma.f64 im im 0)))
(*.f64 0 (/.f64 1 0))
(*.f64 2 im)
(*.f64 2 (*.f64 im (+.f64 im im)))
(*.f64 4 (*.f64 im im))
(*.f64 (cbrt.f64 2) (cbrt.f64 im))
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(*.f64 (pow.f64 1 3/2) (+.f64 im im))
(*.f64 (pow.f64 2 3/2) (pow.f64 im 3/2))
(*.f64 (pow.f64 1 3/4) (+.f64 im im))
(*.f64 (pow.f64 2 3/4) (pow.f64 im 3/4))
(*.f64 (pow.f64 1 1/6) (+.f64 im im))
(*.f64 (pow.f64 1 1/2) (+.f64 im im))
(*.f64 (pow.f64 2 1/2) (sqrt.f64 im))
(*.f64 (pow.f64 1 1/3) (+.f64 im im))
(*.f64 (pow.f64 (+.f64 im im) 3/8) (pow.f64 (+.f64 im im) 3/8))
(*.f64 (pow.f64 (+.f64 im im) 1/12) (pow.f64 (+.f64 im im) 1/12))
(*.f64 (*.f64 (+.f64 im im) 2) im)
(*.f64 (*.f64 2 (pow.f64 (cbrt.f64 im) 2)) (cbrt.f64 im))
(*.f64 (*.f64 2 (sqrt.f64 im)) (sqrt.f64 im))
(/.f64 1 (+.f64 im im))
(/.f64 1 (/.f64 (fma.f64 im im 0) (*.f64 2 (pow.f64 im 3))))
(/.f64 (*.f64 2 (pow.f64 im 3)) (fma.f64 im im 0))
(/.f64 0 0)
(/.f64 (*.f64 (*.f64 2 (pow.f64 im 3)) (*.f64 2 (pow.f64 im 3))) (*.f64 (fma.f64 im im 0) (fma.f64 im im 0)))
(/.f64 (cbrt.f64 (*.f64 2 (pow.f64 im 3))) (cbrt.f64 (fma.f64 im im 0)))
(/.f64 (sqrt.f64 0) (sqrt.f64 0))
(/.f64 (sqrt.f64 (*.f64 2 (pow.f64 im 3))) (sqrt.f64 (fma.f64 im im 0)))
(/.f64 (neg.f64 (*.f64 2 (pow.f64 im 3))) (neg.f64 (fma.f64 im im 0)))
(/.f64 (*.f64 0 (*.f64 2 (pow.f64 im 3))) (*.f64 0 (fma.f64 im im 0)))
(/.f64 (*.f64 (*.f64 2 (pow.f64 im 3)) 0) (*.f64 (fma.f64 im im 0) 0))
(/.f64 (*.f64 (*.f64 2 (pow.f64 im 3)) (+.f64 im im)) (fma.f64 im im 0))
(/.f64 (*.f64 0 (+.f64 im im)) 0)
(/.f64 (*.f64 (+.f64 im im) (*.f64 2 (pow.f64 im 3))) (fma.f64 im im 0))
(sqrt.f64 (+.f64 im im))
(fabs.f64 (+.f64 im im))
(log.f64 (pow.f64 (exp.f64 2) im))
(cbrt.f64 (+.f64 im im))
(hypot.f64 (sqrt.f64 im) (sqrt.f64 im))
(expm1.f64 (log1p.f64 (+.f64 im im)))
(log1p.f64 (expm1.f64 (+.f64 im im)))
(exp.f64 (log.f64 (+.f64 im im)))
(fma.f64 1 im im)
(fma.f64 (pow.f64 (cbrt.f64 im) 2) (cbrt.f64 im) im)
(fma.f64 (sqrt.f64 im) (sqrt.f64 im) im)
Outputs
(pow.f64 (exp.f64 (*.f64 3/2 (+.f64 (log.f64 2) (log.f64 im)))) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 3/2) (+.f64 (log.f64 2) (log.f64 im))))
(pow.f64 (exp.f64 (*.f64 3/2 (+.f64 (log.f64 2) (log.f64 im)))) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 3/2) (+.f64 (log.f64 2) (log.f64 im))))
(pow.f64 (exp.f64 (*.f64 3/2 (+.f64 (log.f64 2) (log.f64 im)))) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 3/2) (+.f64 (log.f64 2) (log.f64 im))))
(pow.f64 (exp.f64 (*.f64 3/2 (+.f64 (log.f64 2) (log.f64 im)))) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 3/2) (+.f64 (log.f64 2) (log.f64 im))))
(pow.f64 (exp.f64 (*.f64 3/2 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 im)))))) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 3/2) (+.f64 (log.f64 2) (neg.f64 (neg.f64 (log.f64 im))))))
(pow.f64 (exp.f64 (*.f64 3/2 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 im)))))) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 3/2) (+.f64 (log.f64 2) (neg.f64 (neg.f64 (log.f64 im))))))
(pow.f64 (exp.f64 (*.f64 3/2 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 im)))))) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 3/2) (+.f64 (log.f64 2) (neg.f64 (neg.f64 (log.f64 im))))))
(pow.f64 (exp.f64 (*.f64 3/2 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 im)))))) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 3/2) (+.f64 (log.f64 2) (neg.f64 (neg.f64 (log.f64 im))))))
(+.f64 im im)
0
(+.f64 (*.f64 im (+.f64 im im)) (*.f64 im (+.f64 im im)))
0
(+.f64 (*.f64 (+.f64 im im) im) (*.f64 (+.f64 im im) im))
0
(-.f64 (+.f64 1 (+.f64 im im)) 1)
-1
(-.f64 (/.f64 (*.f64 im im) 0) (/.f64 (*.f64 im im) 0))
0
(*.f64 im 2)
0
(*.f64 (+.f64 im im) (+.f64 im im))
0
(*.f64 (+.f64 im im) 1)
0
(*.f64 1 (+.f64 im im))
0
(*.f64 (cbrt.f64 im) (+.f64 (pow.f64 (cbrt.f64 im) 2) (pow.f64 (cbrt.f64 im) 2)))
(*.f64 0 (cbrt.f64 im))
(*.f64 (pow.f64 (cbrt.f64 im) 2) (+.f64 (cbrt.f64 im) (cbrt.f64 im)))
(*.f64 0 (cbrt.f64 im))
(*.f64 (sqrt.f64 im) (+.f64 (sqrt.f64 im) (sqrt.f64 im)))
(*.f64 2 (*.f64 (sqrt.f64 im) (sqrt.f64 im)))
(*.f64 (*.f64 2 (pow.f64 im 3)) (/.f64 1 (fma.f64 im im 0)))
0
(*.f64 0 (/.f64 1 0))
0
(*.f64 2 im)
0
(*.f64 2 (*.f64 im (+.f64 im im)))
0
(*.f64 4 (*.f64 im im))
(*.f64 (*.f64 im im) 4)
(*.f64 (cbrt.f64 2) (cbrt.f64 im))
(*.f64 (cbrt.f64 im) (cbrt.f64 2))
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(*.f64 (sqrt.f64 im) (sqrt.f64 2))
(*.f64 (pow.f64 1 3/2) (+.f64 im im))
0
(*.f64 (pow.f64 2 3/2) (pow.f64 im 3/2))
(*.f64 (pow.f64 1 3/4) (+.f64 im im))
0
(*.f64 (pow.f64 2 3/4) (pow.f64 im 3/4))
(*.f64 (pow.f64 1 1/6) (+.f64 im im))
0
(*.f64 (pow.f64 1 1/2) (+.f64 im im))
0
(*.f64 (pow.f64 2 1/2) (sqrt.f64 im))
(*.f64 (sqrt.f64 im) (sqrt.f64 2))
(*.f64 (pow.f64 1 1/3) (+.f64 im im))
0
(*.f64 (pow.f64 (+.f64 im im) 3/8) (pow.f64 (+.f64 im im) 3/8))
0
(*.f64 (pow.f64 (+.f64 im im) 1/12) (pow.f64 (+.f64 im im) 1/12))
0
(*.f64 (*.f64 (+.f64 im im) 2) im)
0
(*.f64 (*.f64 2 (pow.f64 (cbrt.f64 im) 2)) (cbrt.f64 im))
(*.f64 0 (cbrt.f64 im))
(*.f64 (*.f64 2 (sqrt.f64 im)) (sqrt.f64 im))
(*.f64 2 (*.f64 (sqrt.f64 im) (sqrt.f64 im)))
(/.f64 1 (+.f64 im im))
0
(/.f64 1 (/.f64 (fma.f64 im im 0) (*.f64 2 (pow.f64 im 3))))
0
(/.f64 (*.f64 2 (pow.f64 im 3)) (fma.f64 im im 0))
(/.f64 2 (/.f64 (fma.f64 im im 0) (pow.f64 im 3)))
(/.f64 0 0)
0
(/.f64 (*.f64 (*.f64 2 (pow.f64 im 3)) (*.f64 2 (pow.f64 im 3))) (*.f64 (fma.f64 im im 0) (fma.f64 im im 0)))
(/.f64 (*.f64 4 (*.f64 (pow.f64 im 3) (pow.f64 im 3))) (*.f64 (fma.f64 im im 0) (fma.f64 im im 0)))
(/.f64 (cbrt.f64 (*.f64 2 (pow.f64 im 3))) (cbrt.f64 (fma.f64 im im 0)))
(/.f64 (sqrt.f64 0) (sqrt.f64 0))
0
(/.f64 (sqrt.f64 (*.f64 2 (pow.f64 im 3))) (sqrt.f64 (fma.f64 im im 0)))
(/.f64 (neg.f64 (*.f64 2 (pow.f64 im 3))) (neg.f64 (fma.f64 im im 0)))
(/.f64 (*.f64 -2 (pow.f64 im 3)) (neg.f64 (fma.f64 im im 0)))
(/.f64 (*.f64 0 (*.f64 2 (pow.f64 im 3))) (*.f64 0 (fma.f64 im im 0)))
0
(/.f64 (*.f64 (*.f64 2 (pow.f64 im 3)) 0) (*.f64 (fma.f64 im im 0) 0))
0
(/.f64 (*.f64 (*.f64 2 (pow.f64 im 3)) (+.f64 im im)) (fma.f64 im im 0))
0
(/.f64 (*.f64 0 (+.f64 im im)) 0)
0
(/.f64 (*.f64 (+.f64 im im) (*.f64 2 (pow.f64 im 3))) (fma.f64 im im 0))
0
(sqrt.f64 (+.f64 im im))
0
(fabs.f64 (+.f64 im im))
0
(log.f64 (pow.f64 (exp.f64 2) im))
(*.f64 im (log.f64 (exp.f64 2)))
(cbrt.f64 (+.f64 im im))
0
(hypot.f64 (sqrt.f64 im) (sqrt.f64 im))
(expm1.f64 (log1p.f64 (+.f64 im im)))
0
(log1p.f64 (expm1.f64 (+.f64 im im)))
0
(exp.f64 (log.f64 (+.f64 im im)))
0
(fma.f64 1 im im)
(+.f64 0 im)
(fma.f64 (pow.f64 (cbrt.f64 im) 2) (cbrt.f64 im) im)
(fma.f64 0 (cbrt.f64 im) im)
(fma.f64 (sqrt.f64 im) (sqrt.f64 im) im)

localize11.0ms (0%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(log.f64 (sqrt.f64 (+.f64 im im)))
0.2b
(sqrt.f64 (+.f64 im im))
4.9b
(exp.f64 (log.f64 (sqrt.f64 (+.f64 im im))))
Compiler

Compiled 30 to 9 computations (70% saved)

series3.6s (13.2%)

Counts
3 → 0
Calls

9 calls:

TimeVariablePointExpression
583.0ms
im
@0
(log.f64 (sqrt.f64 (+.f64 im im)))
563.0ms
im
@-inf
(log.f64 (sqrt.f64 (+.f64 im im)))
542.0ms
im
@inf
(log.f64 (sqrt.f64 (+.f64 im im)))
386.0ms
im
@-inf
(exp.f64 (log.f64 (sqrt.f64 (+.f64 im im))))
326.0ms
im
@inf
(exp.f64 (log.f64 (sqrt.f64 (+.f64 im im))))
Compiler

Compiled 275968 to 220672 computations (20% saved)

rewrite45.0ms (0.2%)

Algorithm
batch-egg-rewrite
Rules
409×pow1_binary64
397×add-sqr-sqrt_binary64
388×*-un-lft-identity_binary64
386×add-log-exp_binary64
385×log1p-expm1-u_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify18.0ms (0.1%)

Algorithm
egg-herbie
Rules
20×*-commutative_binary64
20×sqr-pow_binary64
15×fma-udef_binary64
associate-/l*_binary64
associate-*l*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0166440
1461440
Stop Event
unsound
Counts
154 → 105
Calls
Call 1
Inputs
(+.f64 im im)
(+.f64 1 (fma.f64 im 2 -1))
(+.f64 (*.f64 im (+.f64 im im)) (*.f64 im (+.f64 im im)))
(+.f64 (*.f64 (+.f64 im im) im) (*.f64 (+.f64 im im) im))
(-.f64 (+.f64 1 (+.f64 im im)) 1)
(-.f64 (/.f64 (*.f64 im im) 0) (/.f64 (*.f64 im im) 0))
(*.f64 im 2)
(*.f64 (+.f64 im im) (+.f64 im im))
(*.f64 (+.f64 im im) 1)
(*.f64 1 (+.f64 im im))
(*.f64 (cbrt.f64 im) (+.f64 (pow.f64 (cbrt.f64 im) 2) (pow.f64 (cbrt.f64 im) 2)))
(*.f64 (pow.f64 (cbrt.f64 im) 2) (+.f64 (cbrt.f64 im) (cbrt.f64 im)))
(*.f64 (sqrt.f64 im) (+.f64 (sqrt.f64 im) (sqrt.f64 im)))
(*.f64 (*.f64 2 (pow.f64 im 3)) (/.f64 1 (fma.f64 im im 0)))
(*.f64 0 (/.f64 1 0))
(*.f64 2 im)
(*.f64 2 (*.f64 im (+.f64 im im)))
(*.f64 4 (*.f64 im im))
(*.f64 (cbrt.f64 2) (cbrt.f64 im))
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(*.f64 (pow.f64 1 1/2) (+.f64 im im))
(*.f64 (pow.f64 2 1/2) (sqrt.f64 im))
(*.f64 (*.f64 (+.f64 im im) 2) im)
(*.f64 (*.f64 2 (pow.f64 (cbrt.f64 im) 2)) (cbrt.f64 im))
(*.f64 (*.f64 2 (sqrt.f64 im)) (sqrt.f64 im))
(/.f64 1 (+.f64 im im))
(/.f64 1 (/.f64 (fma.f64 im im 0) (*.f64 2 (pow.f64 im 3))))
(/.f64 (*.f64 2 (pow.f64 im 3)) (fma.f64 im im 0))
(/.f64 0 0)
(/.f64 (*.f64 (*.f64 2 (pow.f64 im 3)) (*.f64 2 (pow.f64 im 3))) (*.f64 (fma.f64 im im 0) (fma.f64 im im 0)))
(/.f64 (cbrt.f64 (*.f64 2 (pow.f64 im 3))) (cbrt.f64 (fma.f64 im im 0)))
(/.f64 (sqrt.f64 (*.f64 2 (pow.f64 im 3))) (sqrt.f64 (fma.f64 im im 0)))
(/.f64 (sqrt.f64 0) (sqrt.f64 0))
(/.f64 (neg.f64 (*.f64 2 (pow.f64 im 3))) (neg.f64 (fma.f64 im im 0)))
(/.f64 (*.f64 0 (*.f64 2 (pow.f64 im 3))) (*.f64 0 (fma.f64 im im 0)))
(/.f64 (*.f64 (*.f64 2 (pow.f64 im 3)) 0) (*.f64 (fma.f64 im im 0) 0))
(/.f64 (*.f64 (*.f64 2 (pow.f64 im 3)) (+.f64 im im)) (fma.f64 im im 0))
(/.f64 (*.f64 0 (+.f64 im im)) 0)
(/.f64 (*.f64 (+.f64 im im) (*.f64 2 (pow.f64 im 3))) (fma.f64 im im 0))
(pow.f64 (+.f64 im im) 1)
(pow.f64 (+.f64 im im) 1/2)
(pow.f64 (+.f64 im im) 3)
(pow.f64 (+.f64 im im) 2)
(pow.f64 (+.f64 im im) 1/4)
(pow.f64 (+.f64 im im) 1/3)
(pow.f64 (+.f64 im im) 3/2)
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (+.f64 im im))) 2)) (cbrt.f64 (log.f64 (+.f64 im im))))
(pow.f64 (exp.f64 1) (log.f64 (+.f64 im im)))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (+.f64 im im)))) (sqrt.f64 (log.f64 (+.f64 im im))))
(sqrt.f64 (+.f64 im im))
(fabs.f64 (+.f64 im im))
(log.f64 (pow.f64 (exp.f64 2) im))
(cbrt.f64 (+.f64 im im))
(hypot.f64 (sqrt.f64 im) (sqrt.f64 im))
(expm1.f64 (log1p.f64 (+.f64 im im)))
(log1p.f64 (expm1.f64 (+.f64 im im)))
(fma.f64 im (+.f64 im im) (*.f64 im (+.f64 im im)))
(fma.f64 im 1 im)
(fma.f64 (+.f64 im im) im (*.f64 (+.f64 im im) im))
(fma.f64 1 im im)
(fma.f64 (cbrt.f64 im) (pow.f64 (cbrt.f64 im) 2) im)
(fma.f64 (pow.f64 (cbrt.f64 im) 2) (cbrt.f64 im) im)
(fma.f64 (sqrt.f64 im) (sqrt.f64 im) im)
(+.f64 im im)
(+.f64 1 (fma.f64 im 2 -1))
(+.f64 (*.f64 im (+.f64 im im)) (*.f64 im (+.f64 im im)))
(+.f64 (*.f64 (+.f64 im im) im) (*.f64 (+.f64 im im) im))
(-.f64 (+.f64 1 (+.f64 im im)) 1)
(-.f64 (/.f64 (*.f64 im im) 0) (/.f64 (*.f64 im im) 0))
(*.f64 im 2)
(*.f64 (+.f64 im im) (+.f64 im im))
(*.f64 (+.f64 im im) 1)
(*.f64 1 (+.f64 im im))
(*.f64 (cbrt.f64 im) (+.f64 (pow.f64 (cbrt.f64 im) 2) (pow.f64 (cbrt.f64 im) 2)))
(*.f64 (pow.f64 (cbrt.f64 im) 2) (+.f64 (cbrt.f64 im) (cbrt.f64 im)))
(*.f64 (sqrt.f64 im) (+.f64 (sqrt.f64 im) (sqrt.f64 im)))
(*.f64 (*.f64 2 (pow.f64 im 3)) (/.f64 1 (fma.f64 im im 0)))
(*.f64 0 (/.f64 1 0))
(*.f64 2 im)
(*.f64 2 (*.f64 im (+.f64 im im)))
(*.f64 4 (*.f64 im im))
(*.f64 (cbrt.f64 2) (cbrt.f64 im))
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(*.f64 (pow.f64 1 1/2) (+.f64 im im))
(*.f64 (pow.f64 2 1/2) (sqrt.f64 im))
(*.f64 (*.f64 (+.f64 im im) 2) im)
(*.f64 (*.f64 2 (pow.f64 (cbrt.f64 im) 2)) (cbrt.f64 im))
(*.f64 (*.f64 2 (sqrt.f64 im)) (sqrt.f64 im))
(/.f64 1 (+.f64 im im))
(/.f64 1 (/.f64 (fma.f64 im im 0) (*.f64 2 (pow.f64 im 3))))
(/.f64 (*.f64 2 (pow.f64 im 3)) (fma.f64 im im 0))
(/.f64 0 0)
(/.f64 (*.f64 (*.f64 2 (pow.f64 im 3)) (*.f64 2 (pow.f64 im 3))) (*.f64 (fma.f64 im im 0) (fma.f64 im im 0)))
(/.f64 (cbrt.f64 (*.f64 2 (pow.f64 im 3))) (cbrt.f64 (fma.f64 im im 0)))
(/.f64 (sqrt.f64 (*.f64 2 (pow.f64 im 3))) (sqrt.f64 (fma.f64 im im 0)))
(/.f64 (sqrt.f64 0) (sqrt.f64 0))
(/.f64 (neg.f64 (*.f64 2 (pow.f64 im 3))) (neg.f64 (fma.f64 im im 0)))
(/.f64 (*.f64 0 (*.f64 2 (pow.f64 im 3))) (*.f64 0 (fma.f64 im im 0)))
(/.f64 (*.f64 (*.f64 2 (pow.f64 im 3)) 0) (*.f64 (fma.f64 im im 0) 0))
(/.f64 (*.f64 (*.f64 2 (pow.f64 im 3)) (+.f64 im im)) (fma.f64 im im 0))
(/.f64 (*.f64 0 (+.f64 im im)) 0)
(/.f64 (*.f64 (+.f64 im im) (*.f64 2 (pow.f64 im 3))) (fma.f64 im im 0))
(pow.f64 (+.f64 im im) 1)
(pow.f64 (+.f64 im im) 1/2)
(pow.f64 (+.f64 im im) 3)
(pow.f64 (+.f64 im im) 2)
(pow.f64 (+.f64 im im) 1/4)
(pow.f64 (+.f64 im im) 1/3)
(pow.f64 (+.f64 im im) 3/2)
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (+.f64 im im))) 2)) (cbrt.f64 (log.f64 (+.f64 im im))))
(pow.f64 (exp.f64 1) (log.f64 (+.f64 im im)))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (+.f64 im im)))) (sqrt.f64 (log.f64 (+.f64 im im))))
(fabs.f64 (+.f64 im im))
(log.f64 (pow.f64 (exp.f64 2) im))
(cbrt.f64 (+.f64 im im))
(hypot.f64 (sqrt.f64 im) (sqrt.f64 im))
(expm1.f64 (log1p.f64 (+.f64 im im)))
(log1p.f64 (expm1.f64 (+.f64 im im)))
(exp.f64 (log.f64 (+.f64 im im)))
(fma.f64 im (+.f64 im im) (*.f64 im (+.f64 im im)))
(fma.f64 im 1 im)
(fma.f64 (+.f64 im im) im (*.f64 (+.f64 im im) im))
(fma.f64 1 im im)
(fma.f64 (cbrt.f64 im) (pow.f64 (cbrt.f64 im) 2) im)
(fma.f64 (pow.f64 (cbrt.f64 im) 2) (cbrt.f64 im) im)
(fma.f64 (sqrt.f64 im) (sqrt.f64 im) im)
(+.f64 (log.f64 (+.f64 im im)) (log.f64 (+.f64 im im)))
(+.f64 0 (log.f64 (+.f64 im im)))
(+.f64 (log.f64 2) (log.f64 im))
(-.f64 (+.f64 1 (log.f64 (+.f64 im im))) 1)
(-.f64 (log.f64 (*.f64 2 (pow.f64 im 3))) (log.f64 (fma.f64 im im 0)))
(-.f64 (log.f64 0) (log.f64 0))
(*.f64 (log.f64 (+.f64 im im)) 1)
(*.f64 (log.f64 (+.f64 im im)) 1/2)
(*.f64 1 (log.f64 (+.f64 im im)))
(*.f64 (cbrt.f64 (log.f64 (+.f64 im im))) (pow.f64 (cbrt.f64 (log.f64 (+.f64 im im))) 2))
(*.f64 (pow.f64 (cbrt.f64 (log.f64 (+.f64 im im))) 2) (cbrt.f64 (log.f64 (+.f64 im im))))
(*.f64 (sqrt.f64 (log.f64 (+.f64 im im))) (sqrt.f64 (log.f64 (+.f64 im im))))
(*.f64 1/2 (log.f64 (+.f64 im im)))
(pow.f64 (log.f64 (+.f64 im im)) 1)
(pow.f64 (pow.f64 (log.f64 (+.f64 im im)) 3) 1/3)
(pow.f64 (cbrt.f64 (log.f64 (+.f64 im im))) 3)
(pow.f64 (sqrt.f64 (log.f64 (+.f64 im im))) 2)
(sqrt.f64 (pow.f64 (log.f64 (+.f64 im im)) 2))
(cbrt.f64 (pow.f64 (log.f64 (+.f64 im im)) 3))
(expm1.f64 (log1p.f64 (log.f64 (+.f64 im im))))
(log1p.f64 (fma.f64 im 2 -1))
(exp.f64 (log.f64 (log.f64 (+.f64 im im))))
(fma.f64 (log.f64 (+.f64 im im)) 1 (log.f64 (+.f64 im im)))
(fma.f64 1 (log.f64 (+.f64 im im)) (log.f64 (+.f64 im im)))
(fma.f64 (cbrt.f64 (log.f64 (+.f64 im im))) (pow.f64 (cbrt.f64 (log.f64 (+.f64 im im))) 2) (log.f64 (+.f64 im im)))
(fma.f64 (pow.f64 (cbrt.f64 (log.f64 (+.f64 im im))) 2) (cbrt.f64 (log.f64 (+.f64 im im))) (log.f64 (+.f64 im im)))
(fma.f64 (sqrt.f64 (log.f64 (+.f64 im im))) (sqrt.f64 (log.f64 (+.f64 im im))) (log.f64 (+.f64 im im)))
(fma.f64 1/2 (log.f64 (+.f64 im im)) (log.f64 (+.f64 im im)))
Outputs
(+.f64 im im)
-2
(+.f64 1 (fma.f64 im 2 -1))
-2
(+.f64 (*.f64 im (+.f64 im im)) (*.f64 im (+.f64 im im)))
-2
(+.f64 (*.f64 (+.f64 im im) im) (*.f64 (+.f64 im im) im))
-2
(-.f64 (+.f64 1 (+.f64 im im)) 1)
-2
(-.f64 (/.f64 (*.f64 im im) 0) (/.f64 (*.f64 im im) 0))
-2
(*.f64 im 2)
-2
(*.f64 (+.f64 im im) (+.f64 im im))
-2
(*.f64 (+.f64 im im) 1)
-2
(*.f64 1 (+.f64 im im))
-2
(*.f64 (cbrt.f64 im) (+.f64 (pow.f64 (cbrt.f64 im) 2) (pow.f64 (cbrt.f64 im) 2)))
(*.f64 -2 (*.f64 (pow.f64 (cbrt.f64 im) -2) (cbrt.f64 im)))
(*.f64 (pow.f64 (cbrt.f64 im) 2) (+.f64 (cbrt.f64 im) (cbrt.f64 im)))
(*.f64 -2 (*.f64 (pow.f64 (cbrt.f64 im) -2) (cbrt.f64 im)))
(*.f64 (sqrt.f64 im) (+.f64 (sqrt.f64 im) (sqrt.f64 im)))
(*.f64 -2 (*.f64 (sqrt.f64 im) (sqrt.f64 im)))
(*.f64 (*.f64 2 (pow.f64 im 3)) (/.f64 1 (fma.f64 im im 0)))
-2
(*.f64 0 (/.f64 1 0))
-2
(*.f64 2 im)
-2
(*.f64 2 (*.f64 im (+.f64 im im)))
-2
(*.f64 4 (*.f64 im im))
-2
(*.f64 (cbrt.f64 2) (cbrt.f64 im))
(*.f64 -2 (cbrt.f64 im))
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(*.f64 -2 (sqrt.f64 im))
(*.f64 (pow.f64 1 1/2) (+.f64 im im))
-2
(*.f64 (pow.f64 2 1/2) (sqrt.f64 im))
(*.f64 -2 (sqrt.f64 im))
(*.f64 (*.f64 (+.f64 im im) 2) im)
-2
(*.f64 (*.f64 2 (pow.f64 (cbrt.f64 im) 2)) (cbrt.f64 im))
(*.f64 -2 (*.f64 (pow.f64 (cbrt.f64 im) -2) (cbrt.f64 im)))
(*.f64 (*.f64 2 (sqrt.f64 im)) (sqrt.f64 im))
(*.f64 -2 (*.f64 (sqrt.f64 im) (sqrt.f64 im)))
(/.f64 1 (+.f64 im im))
-2
(/.f64 1 (/.f64 (fma.f64 im im 0) (*.f64 2 (pow.f64 im 3))))
-2
(/.f64 (*.f64 2 (pow.f64 im 3)) (fma.f64 im im 0))
-2
(/.f64 0 0)
-2
(/.f64 (*.f64 (*.f64 2 (pow.f64 im 3)) (*.f64 2 (pow.f64 im 3))) (*.f64 (fma.f64 im im 0) (fma.f64 im im 0)))
-2
(/.f64 (cbrt.f64 (*.f64 2 (pow.f64 im 3))) (cbrt.f64 (fma.f64 im im 0)))
(/.f64 -2 (cbrt.f64 (fma.f64 im im -2)))
(/.f64 (sqrt.f64 (*.f64 2 (pow.f64 im 3))) (sqrt.f64 (fma.f64 im im 0)))
(/.f64 -2 (sqrt.f64 (fma.f64 im im -2)))
(/.f64 (sqrt.f64 0) (sqrt.f64 0))
-2
(/.f64 (neg.f64 (*.f64 2 (pow.f64 im 3))) (neg.f64 (fma.f64 im im 0)))
-2
(/.f64 (*.f64 0 (*.f64 2 (pow.f64 im 3))) (*.f64 0 (fma.f64 im im 0)))
-2
(/.f64 (*.f64 (*.f64 2 (pow.f64 im 3)) 0) (*.f64 (fma.f64 im im 0) 0))
-2
(/.f64 (*.f64 (*.f64 2 (pow.f64 im 3)) (+.f64 im im)) (fma.f64 im im 0))
-2
(/.f64 (*.f64 0 (+.f64 im im)) 0)
-2
(/.f64 (*.f64 (+.f64 im im) (*.f64 2 (pow.f64 im 3))) (fma.f64 im im 0))
-2
(pow.f64 (+.f64 im im) 1)
-2
(pow.f64 (+.f64 im im) 1/2)
-2
(pow.f64 (+.f64 im im) 3)
-2
(pow.f64 (+.f64 im im) 2)
-2
(pow.f64 (+.f64 im im) 1/4)
-2
(pow.f64 (+.f64 im im) 1/3)
-2
(pow.f64 (+.f64 im im) 3/2)
-2
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (+.f64 im im))) 2)) (cbrt.f64 (log.f64 (+.f64 im im))))
-2
(pow.f64 (exp.f64 1) (log.f64 (+.f64 im im)))
-2
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (+.f64 im im)))) (sqrt.f64 (log.f64 (+.f64 im im))))
-2
(sqrt.f64 (+.f64 im im))
-2
(fabs.f64 (+.f64 im im))
-2
(log.f64 (pow.f64 (exp.f64 2) im))
-2
(cbrt.f64 (+.f64 im im))
-2
(hypot.f64 (sqrt.f64 im) (sqrt.f64 im))
(expm1.f64 (log1p.f64 (+.f64 im im)))
-2
(log1p.f64 (expm1.f64 (+.f64 im im)))
-2
(fma.f64 im (+.f64 im im) (*.f64 im (+.f64 im im)))
-2
(fma.f64 im 1 im)
(+.f64 -2 im)
(fma.f64 (+.f64 im im) im (*.f64 (+.f64 im im) im))
-2
(fma.f64 1 im im)
(+.f64 -2 im)
(fma.f64 (cbrt.f64 im) (pow.f64 (cbrt.f64 im) 2) im)
(fma.f64 (cbrt.f64 im) (pow.f64 (cbrt.f64 im) -2) im)
(fma.f64 (pow.f64 (cbrt.f64 im) 2) (cbrt.f64 im) im)
(fma.f64 (pow.f64 (cbrt.f64 im) -2) (cbrt.f64 im) im)
(fma.f64 (sqrt.f64 im) (sqrt.f64 im) im)
(+.f64 im im)
-2
(+.f64 1 (fma.f64 im 2 -1))
-2
(+.f64 (*.f64 im (+.f64 im im)) (*.f64 im (+.f64 im im)))
-2
(+.f64 (*.f64 (+.f64 im im) im) (*.f64 (+.f64 im im) im))
-2
(-.f64 (+.f64 1 (+.f64 im im)) 1)
-2
(-.f64 (/.f64 (*.f64 im im) 0) (/.f64 (*.f64 im im) 0))
-2
(*.f64 im 2)
-2
(*.f64 (+.f64 im im) (+.f64 im im))
-2
(*.f64 (+.f64 im im) 1)
-2
(*.f64 1 (+.f64 im im))
-2
(*.f64 (cbrt.f64 im) (+.f64 (pow.f64 (cbrt.f64 im) 2) (pow.f64 (cbrt.f64 im) 2)))
(*.f64 -2 (*.f64 (pow.f64 (cbrt.f64 im) -2) (cbrt.f64 im)))
(*.f64 (pow.f64 (cbrt.f64 im) 2) (+.f64 (cbrt.f64 im) (cbrt.f64 im)))
(*.f64 -2 (*.f64 (pow.f64 (cbrt.f64 im) -2) (cbrt.f64 im)))
(*.f64 (sqrt.f64 im) (+.f64 (sqrt.f64 im) (sqrt.f64 im)))
(*.f64 -2 (*.f64 (sqrt.f64 im) (sqrt.f64 im)))
(*.f64 (*.f64 2 (pow.f64 im 3)) (/.f64 1 (fma.f64 im im 0)))
-2
(*.f64 0 (/.f64 1 0))
-2
(*.f64 2 im)
-2
(*.f64 2 (*.f64 im (+.f64 im im)))
-2
(*.f64 4 (*.f64 im im))
-2
(*.f64 (cbrt.f64 2) (cbrt.f64 im))
(*.f64 -2 (cbrt.f64 im))
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(*.f64 -2 (sqrt.f64 im))
(*.f64 (pow.f64 1 1/2) (+.f64 im im))
-2
(*.f64 (pow.f64 2 1/2) (sqrt.f64 im))
(*.f64 -2 (sqrt.f64 im))
(*.f64 (*.f64 (+.f64 im im) 2) im)
-2
(*.f64 (*.f64 2 (pow.f64 (cbrt.f64 im) 2)) (cbrt.f64 im))
(*.f64 -2 (*.f64 (pow.f64 (cbrt.f64 im) -2) (cbrt.f64 im)))
(*.f64 (*.f64 2 (sqrt.f64 im)) (sqrt.f64 im))
(*.f64 -2 (*.f64 (sqrt.f64 im) (sqrt.f64 im)))
(/.f64 1 (+.f64 im im))
-2
(/.f64 1 (/.f64 (fma.f64 im im 0) (*.f64 2 (pow.f64 im 3))))
-2
(/.f64 (*.f64 2 (pow.f64 im 3)) (fma.f64 im im 0))
-2
(/.f64 0 0)
-2
(/.f64 (*.f64 (*.f64 2 (pow.f64 im 3)) (*.f64 2 (pow.f64 im 3))) (*.f64 (fma.f64 im im 0) (fma.f64 im im 0)))
-2
(/.f64 (cbrt.f64 (*.f64 2 (pow.f64 im 3))) (cbrt.f64 (fma.f64 im im 0)))
(/.f64 -2 (cbrt.f64 (fma.f64 im im -2)))
(/.f64 (sqrt.f64 (*.f64 2 (pow.f64 im 3))) (sqrt.f64 (fma.f64 im im 0)))
(/.f64 -2 (sqrt.f64 (fma.f64 im im -2)))
(/.f64 (sqrt.f64 0) (sqrt.f64 0))
-2
(/.f64 (neg.f64 (*.f64 2 (pow.f64 im 3))) (neg.f64 (fma.f64 im im 0)))
-2
(/.f64 (*.f64 0 (*.f64 2 (pow.f64 im 3))) (*.f64 0 (fma.f64 im im 0)))
-2
(/.f64 (*.f64 (*.f64 2 (pow.f64 im 3)) 0) (*.f64 (fma.f64 im im 0) 0))
-2
(/.f64 (*.f64 (*.f64 2 (pow.f64 im 3)) (+.f64 im im)) (fma.f64 im im 0))
-2
(/.f64 (*.f64 0 (+.f64 im im)) 0)
-2
(/.f64 (*.f64 (+.f64 im im) (*.f64 2 (pow.f64 im 3))) (fma.f64 im im 0))
-2
(pow.f64 (+.f64 im im) 1)
-2
(pow.f64 (+.f64 im im) 1/2)
-2
(pow.f64 (+.f64 im im) 3)
-2
(pow.f64 (+.f64 im im) 2)
-2
(pow.f64 (+.f64 im im) 1/4)
-2
(pow.f64 (+.f64 im im) 1/3)
-2
(pow.f64 (+.f64 im im) 3/2)
-2
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (+.f64 im im))) 2)) (cbrt.f64 (log.f64 (+.f64 im im))))
-2
(pow.f64 (exp.f64 1) (log.f64 (+.f64 im im)))
-2
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (+.f64 im im)))) (sqrt.f64 (log.f64 (+.f64 im im))))
-2
(fabs.f64 (+.f64 im im))
-2
(log.f64 (pow.f64 (exp.f64 2) im))
-2
(cbrt.f64 (+.f64 im im))
-2
(hypot.f64 (sqrt.f64 im) (sqrt.f64 im))
(expm1.f64 (log1p.f64 (+.f64 im im)))
-2
(log1p.f64 (expm1.f64 (+.f64 im im)))
-2
(exp.f64 (log.f64 (+.f64 im im)))
-2
(fma.f64 im (+.f64 im im) (*.f64 im (+.f64 im im)))
-2
(fma.f64 im 1 im)
(+.f64 -2 im)
(fma.f64 (+.f64 im im) im (*.f64 (+.f64 im im) im))
-2
(fma.f64 1 im im)
(+.f64 -2 im)
(fma.f64 (cbrt.f64 im) (pow.f64 (cbrt.f64 im) 2) im)
(fma.f64 (cbrt.f64 im) (pow.f64 (cbrt.f64 im) -2) im)
(fma.f64 (pow.f64 (cbrt.f64 im) 2) (cbrt.f64 im) im)
(fma.f64 (pow.f64 (cbrt.f64 im) -2) (cbrt.f64 im) im)
(fma.f64 (sqrt.f64 im) (sqrt.f64 im) im)
(+.f64 (log.f64 (+.f64 im im)) (log.f64 (+.f64 im im)))
-2
(+.f64 0 (log.f64 (+.f64 im im)))
-2
(+.f64 (log.f64 2) (log.f64 im))
(+.f64 -2 (log.f64 im))
(-.f64 (+.f64 1 (log.f64 (+.f64 im im))) 1)
-2
(-.f64 (log.f64 (*.f64 2 (pow.f64 im 3))) (log.f64 (fma.f64 im im 0)))
(-.f64 -2 (log.f64 (fma.f64 im im -2)))
(-.f64 (log.f64 0) (log.f64 0))
-2
(*.f64 (log.f64 (+.f64 im im)) 1)
-2
(*.f64 (log.f64 (+.f64 im im)) 1/2)
-2
(*.f64 1 (log.f64 (+.f64 im im)))
-2
(*.f64 (cbrt.f64 (log.f64 (+.f64 im im))) (pow.f64 (cbrt.f64 (log.f64 (+.f64 im im))) 2))
-2
(*.f64 (pow.f64 (cbrt.f64 (log.f64 (+.f64 im im))) 2) (cbrt.f64 (log.f64 (+.f64 im im))))
-2
(*.f64 (sqrt.f64 (log.f64 (+.f64 im im))) (sqrt.f64 (log.f64 (+.f64 im im))))
-2
(*.f64 1/2 (log.f64 (+.f64 im im)))
-2
(pow.f64 (log.f64 (+.f64 im im)) 1)
-2
(pow.f64 (pow.f64 (log.f64 (+.f64 im im)) 3) 1/3)
-2
(pow.f64 (cbrt.f64 (log.f64 (+.f64 im im))) 3)
-2
(pow.f64 (sqrt.f64 (log.f64 (+.f64 im im))) 2)
-2
(sqrt.f64 (pow.f64 (log.f64 (+.f64 im im)) 2))
-2
(cbrt.f64 (pow.f64 (log.f64 (+.f64 im im)) 3))
-2
(expm1.f64 (log1p.f64 (log.f64 (+.f64 im im))))
-2
(log1p.f64 (fma.f64 im 2 -1))
(log1p.f64 -2)
(exp.f64 (log.f64 (log.f64 (+.f64 im im))))
-2
(fma.f64 (log.f64 (+.f64 im im)) 1 (log.f64 (+.f64 im im)))
-2
(fma.f64 1 (log.f64 (+.f64 im im)) (log.f64 (+.f64 im im)))
-2
(fma.f64 (cbrt.f64 (log.f64 (+.f64 im im))) (pow.f64 (cbrt.f64 (log.f64 (+.f64 im im))) 2) (log.f64 (+.f64 im im)))
-2
(fma.f64 (pow.f64 (cbrt.f64 (log.f64 (+.f64 im im))) 2) (cbrt.f64 (log.f64 (+.f64 im im))) (log.f64 (+.f64 im im)))
-2
(fma.f64 (sqrt.f64 (log.f64 (+.f64 im im))) (sqrt.f64 (log.f64 (+.f64 im im))) (log.f64 (+.f64 im im)))
-2
(fma.f64 1/2 (log.f64 (+.f64 im im)) (log.f64 (+.f64 im im)))
-2

eval120.0ms (0.4%)

Compiler

Compiled 4087 to 2524 computations (38.2% saved)

prune124.0ms (0.5%)

Pruning

37 alts after pruning (30 fresh and 7 done)

PrunedKeptTotal
New26326289
Fresh044
Picked101
Done279
Total26637303
Error
6.7b
Counts
303 → 37
Alt Table
Click to see full alt table
StatusErrorProgram
60.3b
(*.f64 1/2 (pow.f64 (+.f64 im im) 3))
59.2b
(*.f64 1/2 (pow.f64 (+.f64 im im) 3/2))
59.1b
(*.f64 1/2 (pow.f64 (+.f64 im im) 1/4))
59.6b
(*.f64 1/2 (pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (+.f64 im im))) 2)) (cbrt.f64 (log.f64 (+.f64 im im)))))
59.6b
(*.f64 1/2 (pow.f64 (exp.f64 1) (log.f64 (+.f64 im im))))
25.4b
(*.f64 1/2 (pow.f64 (cbrt.f64 (+.f64 im im)) 3/2))
25.7b
(*.f64 1/2 (pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 im im))) 3))
24.9b
(*.f64 1/2 (hypot.f64 (sqrt.f64 im) (sqrt.f64 im)))
61.1b
(*.f64 1/2 (/.f64 1 (+.f64 im im)))
58.7b
(*.f64 1/2 (-.f64 (+.f64 1 (+.f64 im im)) 1))
59.6b
(*.f64 1/2 (+.f64 im im))
59.6b
(*.f64 1/2 (+.f64 0 im))
61.1b
(*.f64 1/2 (+.f64 -2 im))
59.0b
(*.f64 1/2 (*.f64 (pow.f64 (+.f64 im im) 3/8) (pow.f64 (+.f64 im im) 3/8)))
59.4b
(*.f64 1/2 (*.f64 (pow.f64 (+.f64 im im) 1/12) (pow.f64 (+.f64 im im) 1/12)))
59.2b
(*.f64 1/2 (*.f64 (pow.f64 2 3/2) (pow.f64 im 3/2)))
59.0b
(*.f64 1/2 (*.f64 (pow.f64 2 3/4) (pow.f64 im 3/4)))
59.8b
(*.f64 1/2 (*.f64 (*.f64 im im) 4))
59.6b
(*.f64 1/2 (*.f64 (*.f64 2 (pow.f64 (cbrt.f64 im) 2)) (cbrt.f64 im)))
56.3b
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 (*.f64 im im) (/.f64 re 1/2))) (sqrt.f64 2)))
23.8b
(*.f64 1/2 (*.f64 (sqrt.f64 (-.f64 im re)) (sqrt.f64 2)))
25.0b
(*.f64 1/2 (*.f64 (sqrt.f64 im) (sqrt.f64 2)))
58.8b
(*.f64 1/2 (*.f64 (cbrt.f64 im) (cbrt.f64 2)))
59.8b
(*.f64 1/2 (*.f64 2 (*.f64 im (+.f64 im im))))
25.0b
(*.f64 1/2 (sqrt.f64 (*.f64 im 2)))
56.3b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (/.f64 (*.f64 im im) (/.f64 re 1/2)))))
11.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))))
23.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 im re))))
51.4b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 re -2))))
60.6b
(*.f64 1/2 (sqrt.f64 (*.f64 -2 re)))
59.6b
(*.f64 1/2 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (+.f64 im im))) 3)))
59.8b
(*.f64 1/2 (exp.f64 (+.f64 (log.f64 (+.f64 im im)) (log.f64 (+.f64 im im)))))
59.6b
(*.f64 1/2 (exp.f64 (+.f64 -2 (log.f64 im))))
27.7b
(*.f64 1/2 (exp.f64 (*.f64 (log.f64 (+.f64 im im)) 1/2)))
59.6b
(*.f64 1/2 (exp.f64 (log.f64 (+.f64 im im))))
58.8b
(*.f64 1/2 (cbrt.f64 (+.f64 im im)))
60.3b
(*.f64 1/2 0)
Compiler

Compiled 704 to 549 computations (22% saved)

localize6.0ms (0%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.3b
(hypot.f64 (sqrt.f64 im) (sqrt.f64 im))
Compiler

Compiled 18 to 7 computations (61.1% saved)

series3.5s (12.9%)

Counts
1 → 0
Calls

3 calls:

TimeVariablePointExpression
1.2s
im
@-inf
(hypot.f64 (sqrt.f64 im) (sqrt.f64 im))
1.2s
im
@0
(hypot.f64 (sqrt.f64 im) (sqrt.f64 im))
1.2s
im
@inf
(hypot.f64 (sqrt.f64 im) (sqrt.f64 im))
Compiler

Compiled 238592 to 206080 computations (13.6% saved)

rewrite40.0ms (0.1%)

Algorithm
batch-egg-rewrite
Rules
345×pow1_binary64
330×add-sqr-sqrt_binary64
323×*-un-lft-identity_binary64
319×add-log-exp_binary64
319×log1p-expm1-u_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify53.0ms (0.2%)

Algorithm
egg-herbie
Rules
838×fma-def_binary64
699×fma-neg_binary64
373×distribute-rgt-in_binary64
368×*-commutative_binary64
349×distribute-lft-in_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0143656
1288642
2655619
32147619
47608619
Stop Event
node limit
Counts
54 → 72
Calls
Call 1
Inputs
(+.f64 0 (sqrt.f64 (+.f64 im im)))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (+.f64 im im))))) (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (+.f64 im im))))))
(+.f64 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (sqrt.f64 (+.f64 im im))) 2))) (log.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (+.f64 im im))))))
(-.f64 (+.f64 1 (sqrt.f64 (+.f64 im im))) 1)
(*.f64 (sqrt.f64 im) (sqrt.f64 2))
(*.f64 (sqrt.f64 im) (pow.f64 2 1/2))
(*.f64 (sqrt.f64 (+.f64 im im)) 1)
(*.f64 1 (sqrt.f64 (+.f64 im im)))
(*.f64 (pow.f64 im 1/6) (sqrt.f64 (+.f64 (pow.f64 (cbrt.f64 im) 2) (pow.f64 (cbrt.f64 im) 2))))
(*.f64 (pow.f64 im 1/6) (pow.f64 (+.f64 (pow.f64 (cbrt.f64 im) 2) (pow.f64 (cbrt.f64 im) 2)) 1/2))
(*.f64 (cbrt.f64 im) (sqrt.f64 (+.f64 (cbrt.f64 im) (cbrt.f64 im))))
(*.f64 (cbrt.f64 im) (pow.f64 (+.f64 (cbrt.f64 im) (cbrt.f64 im)) 1/2))
(*.f64 (pow.f64 (+.f64 im im) 1/6) (cbrt.f64 (+.f64 im im)))
(*.f64 (pow.f64 (+.f64 im im) 1/6) (pow.f64 (cbrt.f64 (pow.f64 (+.f64 im im) 2)) 1/2))
(*.f64 (cbrt.f64 (+.f64 im im)) (pow.f64 (+.f64 im im) 1/6))
(*.f64 (pow.f64 im 1/4) (sqrt.f64 (+.f64 (sqrt.f64 im) (sqrt.f64 im))))
(*.f64 (pow.f64 im 1/4) (pow.f64 (+.f64 (sqrt.f64 im) (sqrt.f64 im)) 1/2))
(*.f64 (pow.f64 (+.f64 im im) 1/4) (pow.f64 (+.f64 im im) 1/4))
(*.f64 (sqrt.f64 (pow.f64 (+.f64 im im) 1/4)) (sqrt.f64 (pow.f64 (sqrt.f64 (+.f64 im im)) 3/2)))
(*.f64 (sqrt.f64 (pow.f64 (+.f64 im im) 1/4)) (pow.f64 (pow.f64 (sqrt.f64 (+.f64 im im)) 3/2) 1/2))
(*.f64 (cbrt.f64 (pow.f64 (sqrt.f64 (+.f64 im im)) 5/2)) (pow.f64 (sqrt.f64 (+.f64 im im)) 1/6))
(*.f64 (cbrt.f64 (*.f64 (+.f64 im im) (cbrt.f64 (+.f64 im im)))) (cbrt.f64 (pow.f64 (+.f64 im im) 1/6)))
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(*.f64 (sqrt.f64 (pow.f64 (pow.f64 (+.f64 im im) 1/6) 5)) (pow.f64 (sqrt.f64 (+.f64 im im)) 1/6))
(*.f64 (sqrt.f64 (pow.f64 (sqrt.f64 (+.f64 im im)) 3/2)) (sqrt.f64 (pow.f64 (+.f64 im im) 1/4)))
(*.f64 (pow.f64 1 1/3) (sqrt.f64 (+.f64 im im)))
(*.f64 (pow.f64 2 1/2) (sqrt.f64 im))
(*.f64 (pow.f64 (pow.f64 (sqrt.f64 (+.f64 im im)) 3/2) 1/2) (sqrt.f64 (pow.f64 (+.f64 im im) 1/4)))
(*.f64 (pow.f64 (cbrt.f64 (pow.f64 (+.f64 im im) 2)) 1/2) (pow.f64 (+.f64 im im) 1/6))
(*.f64 (pow.f64 (pow.f64 (pow.f64 (+.f64 im im) 1/6) 5) 1/2) (pow.f64 (sqrt.f64 (+.f64 im im)) 1/6))
(*.f64 (pow.f64 (*.f64 (+.f64 im im) (cbrt.f64 (+.f64 im im))) 1/3) (cbrt.f64 (pow.f64 (+.f64 im im) 1/6)))
(*.f64 (pow.f64 (pow.f64 (sqrt.f64 (+.f64 im im)) 5/2) 1/3) (pow.f64 (sqrt.f64 (+.f64 im im)) 1/6))
(/.f64 (sqrt.f64 (+.f64 (pow.f64 im 3) (pow.f64 im 3))) (sqrt.f64 (fma.f64 im im (-.f64 (*.f64 im im) (*.f64 im im)))))
(/.f64 (sqrt.f64 (-.f64 (*.f64 im im) (*.f64 im im))) (sqrt.f64 (-.f64 im im)))
(pow.f64 (sqrt.f64 (+.f64 im im)) 1)
(pow.f64 (+.f64 im im) 1/2)
(pow.f64 (pow.f64 (+.f64 im im) 3/2) 1/3)
(pow.f64 (pow.f64 (+.f64 im im) 1/6) 3)
(pow.f64 (pow.f64 (+.f64 im im) 1/4) 2)
(pow.f64 (E.f64) (log.f64 (sqrt.f64 (+.f64 im im))))
(pow.f64 (pow.f64 (+.f64 im im) 2) 1/4)
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (sqrt.f64 (+.f64 im im))))) (sqrt.f64 (log.f64 (sqrt.f64 (+.f64 im im)))))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (sqrt.f64 (+.f64 im im)))) 2)) (cbrt.f64 (log.f64 (sqrt.f64 (+.f64 im im)))))
(sqrt.f64 (+.f64 im im))
(fabs.f64 (sqrt.f64 (+.f64 im im)))
(log.f64 (exp.f64 (sqrt.f64 (+.f64 im im))))
(cbrt.f64 (pow.f64 (+.f64 im im) 3/2))
(expm1.f64 (log1p.f64 (sqrt.f64 (+.f64 im im))))
(log1p.f64 (expm1.f64 (sqrt.f64 (+.f64 im im))))
(exp.f64 (log.f64 (sqrt.f64 (+.f64 im im))))
(exp.f64 (*.f64 (log.f64 (+.f64 im im)) 1/2))
(exp.f64 (*.f64 (log.f64 (pow.f64 (+.f64 im im) 3/2)) 1/3))
(exp.f64 (*.f64 (log.f64 (pow.f64 (+.f64 im im) 1/6)) 3))
(exp.f64 (*.f64 (log.f64 (pow.f64 (+.f64 im im) 1/4)) 2))
Outputs
(+.f64 0 (sqrt.f64 (+.f64 im im)))
(sqrt.f64 (+.f64 im im))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (+.f64 im im))))) (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (+.f64 im im))))))
(sqrt.f64 (+.f64 im im))
(+.f64 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (sqrt.f64 (+.f64 im im))) 2))) (log.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (+.f64 im im))))))
(-.f64 (+.f64 1 (sqrt.f64 (+.f64 im im))) 1)
(sqrt.f64 (+.f64 im im))
(*.f64 (sqrt.f64 im) (sqrt.f64 2))
(*.f64 (sqrt.f64 im) (pow.f64 2 1/2))
(*.f64 (sqrt.f64 im) (sqrt.f64 2))
(*.f64 (sqrt.f64 (+.f64 im im)) 1)
(sqrt.f64 (+.f64 im im))
(*.f64 1 (sqrt.f64 (+.f64 im im)))
(sqrt.f64 (+.f64 im im))
(*.f64 (pow.f64 im 1/6) (sqrt.f64 (+.f64 (pow.f64 (cbrt.f64 im) 2) (pow.f64 (cbrt.f64 im) 2))))
(*.f64 (pow.f64 im 1/6) (sqrt.f64 (*.f64 2 (pow.f64 (cbrt.f64 im) 2))))
(*.f64 (pow.f64 im 1/6) (hypot.f64 (cbrt.f64 im) (cbrt.f64 im)))
(*.f64 (pow.f64 im 1/6) (pow.f64 (+.f64 (pow.f64 (cbrt.f64 im) 2) (pow.f64 (cbrt.f64 im) 2)) 1/2))
(*.f64 (pow.f64 im 1/6) (sqrt.f64 (*.f64 2 (pow.f64 (cbrt.f64 im) 2))))
(*.f64 (pow.f64 im 1/6) (hypot.f64 (cbrt.f64 im) (cbrt.f64 im)))
(*.f64 (cbrt.f64 im) (sqrt.f64 (+.f64 (cbrt.f64 im) (cbrt.f64 im))))
(*.f64 (cbrt.f64 im) (sqrt.f64 (*.f64 2 (cbrt.f64 im))))
(*.f64 (cbrt.f64 im) (pow.f64 (+.f64 (cbrt.f64 im) (cbrt.f64 im)) 1/2))
(*.f64 (cbrt.f64 im) (sqrt.f64 (*.f64 2 (cbrt.f64 im))))
(*.f64 (pow.f64 (+.f64 im im) 1/6) (cbrt.f64 (+.f64 im im)))
(sqrt.f64 (+.f64 im im))
(*.f64 (pow.f64 (+.f64 im im) 1/6) (pow.f64 (cbrt.f64 (pow.f64 (+.f64 im im) 2)) 1/2))
(*.f64 (pow.f64 (+.f64 im im) 1/6) (sqrt.f64 (cbrt.f64 (pow.f64 (+.f64 im im) 2))))
(*.f64 (pow.f64 (+.f64 im im) 1/6) (sqrt.f64 (cbrt.f64 (*.f64 im (*.f64 im 4)))))
(*.f64 (cbrt.f64 (+.f64 im im)) (pow.f64 (+.f64 im im) 1/6))
(sqrt.f64 (+.f64 im im))
(*.f64 (pow.f64 im 1/4) (sqrt.f64 (+.f64 (sqrt.f64 im) (sqrt.f64 im))))
(*.f64 (pow.f64 im 1/4) (sqrt.f64 (*.f64 2 (sqrt.f64 im))))
(*.f64 (pow.f64 im 1/4) (pow.f64 (+.f64 (sqrt.f64 im) (sqrt.f64 im)) 1/2))
(*.f64 (pow.f64 im 1/4) (sqrt.f64 (*.f64 2 (sqrt.f64 im))))
(*.f64 (pow.f64 (+.f64 im im) 1/4) (pow.f64 (+.f64 im im) 1/4))
(sqrt.f64 (+.f64 im im))
(*.f64 (sqrt.f64 (pow.f64 (+.f64 im im) 1/4)) (sqrt.f64 (pow.f64 (sqrt.f64 (+.f64 im im)) 3/2)))
(*.f64 (sqrt.f64 (pow.f64 (+.f64 im im) 1/4)) (fabs.f64 (pow.f64 (sqrt.f64 (+.f64 im im)) 3/4)))
(*.f64 (pow.f64 (sqrt.f64 (+.f64 im im)) 3/4) (pow.f64 (+.f64 im im) 1/8))
(*.f64 (sqrt.f64 (pow.f64 (+.f64 im im) 1/4)) (pow.f64 (pow.f64 (sqrt.f64 (+.f64 im im)) 3/2) 1/2))
(*.f64 (sqrt.f64 (pow.f64 (+.f64 im im) 1/4)) (sqrt.f64 (pow.f64 (sqrt.f64 (+.f64 im im)) 3/2)))
(*.f64 (sqrt.f64 (pow.f64 (+.f64 im im) 1/4)) (fabs.f64 (pow.f64 (sqrt.f64 (+.f64 im im)) 3/4)))
(*.f64 (pow.f64 (sqrt.f64 (+.f64 im im)) 3/4) (pow.f64 (+.f64 im im) 1/8))
(*.f64 (cbrt.f64 (pow.f64 (sqrt.f64 (+.f64 im im)) 5/2)) (pow.f64 (sqrt.f64 (+.f64 im im)) 1/6))
(*.f64 (pow.f64 (sqrt.f64 (+.f64 im im)) 1/6) (cbrt.f64 (pow.f64 (sqrt.f64 (+.f64 im im)) 5/2)))
(*.f64 (cbrt.f64 (*.f64 (+.f64 im im) (cbrt.f64 (+.f64 im im)))) (cbrt.f64 (pow.f64 (+.f64 im im) 1/6)))
(*.f64 (cbrt.f64 (pow.f64 (+.f64 im im) 1/6)) (cbrt.f64 (*.f64 (+.f64 im im) (cbrt.f64 (+.f64 im im)))))
(*.f64 (cbrt.f64 (pow.f64 (+.f64 im im) 1/6)) (cbrt.f64 (*.f64 im (*.f64 2 (cbrt.f64 (+.f64 im im))))))
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(*.f64 (sqrt.f64 im) (sqrt.f64 2))
(*.f64 (sqrt.f64 (pow.f64 (pow.f64 (+.f64 im im) 1/6) 5)) (pow.f64 (sqrt.f64 (+.f64 im im)) 1/6))
(*.f64 (pow.f64 (sqrt.f64 (+.f64 im im)) 1/6) (sqrt.f64 (pow.f64 (pow.f64 (+.f64 im im) 1/6) 5)))
(*.f64 (pow.f64 (sqrt.f64 (+.f64 im im)) 1/6) (pow.f64 (pow.f64 (+.f64 im im) 1/6) 5/2))
(*.f64 (sqrt.f64 (pow.f64 (sqrt.f64 (+.f64 im im)) 3/2)) (sqrt.f64 (pow.f64 (+.f64 im im) 1/4)))
(*.f64 (sqrt.f64 (pow.f64 (+.f64 im im) 1/4)) (sqrt.f64 (pow.f64 (sqrt.f64 (+.f64 im im)) 3/2)))
(*.f64 (sqrt.f64 (pow.f64 (+.f64 im im) 1/4)) (fabs.f64 (pow.f64 (sqrt.f64 (+.f64 im im)) 3/4)))
(*.f64 (pow.f64 (sqrt.f64 (+.f64 im im)) 3/4) (pow.f64 (+.f64 im im) 1/8))
(*.f64 (pow.f64 1 1/3) (sqrt.f64 (+.f64 im im)))
(sqrt.f64 (+.f64 im im))
(*.f64 (pow.f64 2 1/2) (sqrt.f64 im))
(*.f64 (sqrt.f64 im) (sqrt.f64 2))
(*.f64 (pow.f64 (pow.f64 (sqrt.f64 (+.f64 im im)) 3/2) 1/2) (sqrt.f64 (pow.f64 (+.f64 im im) 1/4)))
(*.f64 (sqrt.f64 (pow.f64 (+.f64 im im) 1/4)) (sqrt.f64 (pow.f64 (sqrt.f64 (+.f64 im im)) 3/2)))
(*.f64 (sqrt.f64 (pow.f64 (+.f64 im im) 1/4)) (fabs.f64 (pow.f64 (sqrt.f64 (+.f64 im im)) 3/4)))
(*.f64 (pow.f64 (sqrt.f64 (+.f64 im im)) 3/4) (pow.f64 (+.f64 im im) 1/8))
(*.f64 (pow.f64 (cbrt.f64 (pow.f64 (+.f64 im im) 2)) 1/2) (pow.f64 (+.f64 im im) 1/6))
(*.f64 (pow.f64 (+.f64 im im) 1/6) (sqrt.f64 (cbrt.f64 (pow.f64 (+.f64 im im) 2))))
(*.f64 (pow.f64 (+.f64 im im) 1/6) (sqrt.f64 (cbrt.f64 (*.f64 im (*.f64 im 4)))))
(*.f64 (pow.f64 (pow.f64 (pow.f64 (+.f64 im im) 1/6) 5) 1/2) (pow.f64 (sqrt.f64 (+.f64 im im)) 1/6))
(*.f64 (pow.f64 (sqrt.f64 (+.f64 im im)) 1/6) (sqrt.f64 (pow.f64 (pow.f64 (+.f64 im im) 1/6) 5)))
(*.f64 (pow.f64 (sqrt.f64 (+.f64 im im)) 1/6) (pow.f64 (pow.f64 (+.f64 im im) 1/6) 5/2))
(*.f64 (pow.f64 (*.f64 (+.f64 im im) (cbrt.f64 (+.f64 im im))) 1/3) (cbrt.f64 (pow.f64 (+.f64 im im) 1/6)))
(*.f64 (cbrt.f64 (pow.f64 (+.f64 im im) 1/6)) (cbrt.f64 (*.f64 (+.f64 im im) (cbrt.f64 (+.f64 im im)))))
(*.f64 (cbrt.f64 (pow.f64 (+.f64 im im) 1/6)) (cbrt.f64 (*.f64 im (*.f64 2 (cbrt.f64 (+.f64 im im))))))
(*.f64 (pow.f64 (pow.f64 (sqrt.f64 (+.f64 im im)) 5/2) 1/3) (pow.f64 (sqrt.f64 (+.f64 im im)) 1/6))
(*.f64 (pow.f64 (sqrt.f64 (+.f64 im im)) 1/6) (cbrt.f64 (pow.f64 (sqrt.f64 (+.f64 im im)) 5/2)))
(/.f64 (sqrt.f64 (+.f64 (pow.f64 im 3) (pow.f64 im 3))) (sqrt.f64 (fma.f64 im im (-.f64 (*.f64 im im) (*.f64 im im)))))
(/.f64 (sqrt.f64 (*.f64 2 (pow.f64 im 3))) (sqrt.f64 (fma.f64 im im 0)))
(/.f64 (sqrt.f64 (*.f64 2 (pow.f64 im 3))) (sqrt.f64 (*.f64 im im)))
(/.f64 (sqrt.f64 (*.f64 2 (pow.f64 im 3))) (fabs.f64 im))
(/.f64 (sqrt.f64 (-.f64 (*.f64 im im) (*.f64 im im))) (sqrt.f64 (-.f64 im im)))
(/.f64 (sqrt.f64 0) (sqrt.f64 0))
1
(pow.f64 (sqrt.f64 (+.f64 im im)) 1)
(sqrt.f64 (+.f64 im im))
(pow.f64 (+.f64 im im) 1/2)
(sqrt.f64 (+.f64 im im))
(pow.f64 (pow.f64 (+.f64 im im) 3/2) 1/3)
(sqrt.f64 (+.f64 im im))
(pow.f64 (pow.f64 (+.f64 im im) 1/6) 3)
(sqrt.f64 (+.f64 im im))
(pow.f64 (pow.f64 (+.f64 im im) 1/4) 2)
(sqrt.f64 (+.f64 im im))
(pow.f64 (E.f64) (log.f64 (sqrt.f64 (+.f64 im im))))
(sqrt.f64 (+.f64 im im))
(pow.f64 (pow.f64 (+.f64 im im) 2) 1/4)
(sqrt.f64 (+.f64 im im))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (sqrt.f64 (+.f64 im im))))) (sqrt.f64 (log.f64 (sqrt.f64 (+.f64 im im)))))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (sqrt.f64 (+.f64 im im)))) 2)) (cbrt.f64 (log.f64 (sqrt.f64 (+.f64 im im)))))
(sqrt.f64 (+.f64 im im))
(fabs.f64 (sqrt.f64 (+.f64 im im)))
(sqrt.f64 (+.f64 im im))
(log.f64 (exp.f64 (sqrt.f64 (+.f64 im im))))
(sqrt.f64 (+.f64 im im))
(cbrt.f64 (pow.f64 (+.f64 im im) 3/2))
(sqrt.f64 (+.f64 im im))
(expm1.f64 (log1p.f64 (sqrt.f64 (+.f64 im im))))
(sqrt.f64 (+.f64 im im))
(log1p.f64 (expm1.f64 (sqrt.f64 (+.f64 im im))))
(sqrt.f64 (+.f64 im im))
(exp.f64 (log.f64 (sqrt.f64 (+.f64 im im))))
(sqrt.f64 (+.f64 im im))
(exp.f64 (*.f64 (log.f64 (+.f64 im im)) 1/2))
(sqrt.f64 (+.f64 im im))
(exp.f64 (*.f64 (log.f64 (pow.f64 (+.f64 im im) 3/2)) 1/3))
(sqrt.f64 (+.f64 im im))
(exp.f64 (*.f64 (log.f64 (pow.f64 (+.f64 im im) 1/6)) 3))
(sqrt.f64 (+.f64 im im))
(exp.f64 (*.f64 (log.f64 (pow.f64 (+.f64 im im) 1/4)) 2))
(sqrt.f64 (+.f64 im im))

localize3.0ms (0%)

Compiler

Compiled 7 to 7 computations (0% saved)

localize9.0ms (0%)

Local error

Found 2 expressions with local error:

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

Compiled 29 to 17 computations (41.4% saved)

series5.0ms (0%)

Counts
2 → 24
Calls

6 calls:

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

Compiled 120 to 96 computations (20% saved)

rewrite50.0ms (0.2%)

Algorithm
batch-egg-rewrite
Rules
820×pow1_binary64
775×add-log-exp_binary64
773×log1p-expm1-u_binary64
773×expm1-log1p-u_binary64
763×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify34.0ms (0.1%)

Algorithm
egg-herbie
Rules
42×*-commutative_binary64
23×distribute-rgt-in_binary64
21×+-commutative_binary64
20×distribute-lft-in_binary64
19×associate-/l*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0254262
1919262
Stop Event
unsound
Counts
136 → 123
Calls
Call 1
Inputs
(*.f64 2 im)
(*.f64 2 im)
(*.f64 2 im)
(*.f64 2 im)
(*.f64 2 im)
(*.f64 2 im)
(*.f64 2 im)
(*.f64 2 im)
(*.f64 2 im)
(*.f64 2 im)
(*.f64 2 im)
(*.f64 2 im)
im
im
im
im
im
im
im
im
im
im
im
im
(+.f64 1 (fma.f64 2 im -1))
(+.f64 1 (*.f64 (fma.f64 2 im -1) 1))
(+.f64 im im)
(+.f64 (+.f64 im im) (+.f64 (+.f64 im im) (*.f64 -2 im)))
(+.f64 (+.f64 im im) 0)
(+.f64 (+.f64 im im) (*.f64 (fma.f64 2 im -1) (+.f64 im im)))
(+.f64 (fma.f64 2 im 1) -1)
(+.f64 -1 (fma.f64 2 im 1))
(+.f64 (fma.f64 2 im -1) 1)
(+.f64 (+.f64 1 im) (-.f64 im 1))
(+.f64 (+.f64 1 im) (+.f64 im -1))
(+.f64 (*.f64 (+.f64 im im) (fma.f64 2 im 1)) (*.f64 (+.f64 im im) -1))
(+.f64 (*.f64 im (+.f64 im im)) (*.f64 im (+.f64 im im)))
(+.f64 (*.f64 (fma.f64 2 im 1) (+.f64 im im)) (*.f64 -1 (+.f64 im im)))
(+.f64 (*.f64 (+.f64 im im) im) (*.f64 (+.f64 im im) im))
(*.f64 1 (+.f64 im im))
(*.f64 im 2)
(*.f64 (+.f64 im im) 1)
(*.f64 (+.f64 im im) (+.f64 im im))
(*.f64 (cbrt.f64 im) (+.f64 (pow.f64 (cbrt.f64 im) 2) (pow.f64 (cbrt.f64 im) 2)))
(*.f64 (pow.f64 (cbrt.f64 im) 2) (+.f64 (cbrt.f64 im) (cbrt.f64 im)))
(*.f64 (sqrt.f64 im) (+.f64 (sqrt.f64 im) (sqrt.f64 im)))
(*.f64 (+.f64 (pow.f64 (fma.f64 2 im 1) 3) -1) (/.f64 1 (+.f64 (pow.f64 (fma.f64 2 im 1) 2) (+.f64 (+.f64 im im) 2))))
(*.f64 (*.f64 2 (pow.f64 im 3)) (/.f64 1 (fma.f64 im im 0)))
(*.f64 (+.f64 (pow.f64 (fma.f64 2 im 1) 2) -1) (/.f64 1 (+.f64 (+.f64 im im) 2)))
(*.f64 0 (/.f64 1 0))
(*.f64 2 im)
(*.f64 2 (*.f64 im (+.f64 im im)))
(*.f64 4 (*.f64 im im))
(*.f64 8 (pow.f64 im 3))
(*.f64 (cbrt.f64 2) (cbrt.f64 im))
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(*.f64 (pow.f64 (+.f64 im im) 3/2) (pow.f64 (+.f64 im im) 3/2))
(*.f64 (+.f64 (sqrt.f64 (fma.f64 2 im 1)) 1) (-.f64 (sqrt.f64 (fma.f64 2 im 1)) 1))
(*.f64 (*.f64 (+.f64 im im) 2) im)
(*.f64 (*.f64 2 (pow.f64 (cbrt.f64 im) 2)) (cbrt.f64 im))
(*.f64 (*.f64 2 (sqrt.f64 im)) (sqrt.f64 im))
(/.f64 1 (+.f64 im im))
(/.f64 1 (/.f64 (+.f64 (pow.f64 (fma.f64 2 im 1) 2) (+.f64 (+.f64 im im) 2)) (+.f64 (pow.f64 (fma.f64 2 im 1) 3) -1)))
(/.f64 1 (/.f64 (+.f64 (+.f64 im im) 2) (+.f64 (pow.f64 (fma.f64 2 im 1) 2) -1)))
(/.f64 1 (/.f64 (fma.f64 im im 0) (*.f64 2 (pow.f64 im 3))))
(/.f64 (+.f64 (pow.f64 (fma.f64 2 im 1) 3) -1) (+.f64 (pow.f64 (fma.f64 2 im 1) 2) (+.f64 (+.f64 im im) 2)))
(/.f64 (+.f64 (pow.f64 (fma.f64 2 im 1) 3) -1) (+.f64 (pow.f64 (fma.f64 2 im 1) 2) (-.f64 1 (*.f64 (fma.f64 2 im 1) -1))))
(/.f64 (*.f64 2 (pow.f64 im 3)) (fma.f64 im im 0))
(/.f64 (+.f64 (pow.f64 (fma.f64 2 im 1) 2) -1) (+.f64 (+.f64 im im) 2))
(/.f64 (+.f64 (pow.f64 (fma.f64 2 im 1) 2) -1) (-.f64 (fma.f64 2 im 1) -1))
(/.f64 0 0)
(/.f64 (*.f64 (+.f64 (pow.f64 (fma.f64 2 im 1) 2) -1) (+.f64 (pow.f64 (fma.f64 2 im 1) 2) -1)) (*.f64 (+.f64 (+.f64 im im) 2) (+.f64 (+.f64 im im) 2)))
(/.f64 (*.f64 (+.f64 (pow.f64 (fma.f64 2 im 1) 3) -1) (+.f64 (pow.f64 (fma.f64 2 im 1) 3) -1)) (*.f64 (+.f64 (pow.f64 (fma.f64 2 im 1) 2) (+.f64 (+.f64 im im) 2)) (+.f64 (pow.f64 (fma.f64 2 im 1) 2) (+.f64 (+.f64 im im) 2))))
(/.f64 (*.f64 (*.f64 2 (pow.f64 im 3)) (*.f64 2 (pow.f64 im 3))) (*.f64 (fma.f64 im im 0) (fma.f64 im im 0)))
(/.f64 (cbrt.f64 (+.f64 (pow.f64 (fma.f64 2 im 1) 2) -1)) (cbrt.f64 (+.f64 (+.f64 im im) 2)))
(/.f64 (cbrt.f64 (+.f64 (pow.f64 (fma.f64 2 im 1) 3) -1)) (cbrt.f64 (+.f64 (pow.f64 (fma.f64 2 im 1) 2) (+.f64 (+.f64 im im) 2))))
(/.f64 (cbrt.f64 (*.f64 2 (pow.f64 im 3))) (cbrt.f64 (fma.f64 im im 0)))
(/.f64 (sqrt.f64 0) (sqrt.f64 0))
(/.f64 (sqrt.f64 (+.f64 (pow.f64 (fma.f64 2 im 1) 2) -1)) (sqrt.f64 (+.f64 (+.f64 im im) 2)))
(/.f64 (sqrt.f64 (+.f64 (pow.f64 (fma.f64 2 im 1) 3) -1)) (sqrt.f64 (+.f64 (pow.f64 (fma.f64 2 im 1) 2) (+.f64 (+.f64 im im) 2))))
(/.f64 (sqrt.f64 (*.f64 2 (pow.f64 im 3))) (sqrt.f64 (fma.f64 im im 0)))
(/.f64 (pow.f64 (*.f64 2 (pow.f64 im 3)) 3) (pow.f64 (fma.f64 im im 0) 3))
(/.f64 (neg.f64 (+.f64 (pow.f64 (fma.f64 2 im 1) 3) -1)) (neg.f64 (+.f64 (pow.f64 (fma.f64 2 im 1) 2) (+.f64 (+.f64 im im) 2))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (fma.f64 2 im 1) 2) -1)) (neg.f64 (+.f64 (+.f64 im im) 2)))
(/.f64 (neg.f64 (*.f64 2 (pow.f64 im 3))) (neg.f64 (fma.f64 im im 0)))
(/.f64 (*.f64 0 (*.f64 2 (pow.f64 im 3))) (*.f64 0 (fma.f64 im im 0)))
(/.f64 (*.f64 (*.f64 2 (pow.f64 im 3)) 0) (*.f64 (fma.f64 im im 0) 0))
(/.f64 (*.f64 (+.f64 (pow.f64 (fma.f64 2 im 1) 2) -1) (+.f64 (pow.f64 (fma.f64 2 im 1) 3) -1)) (*.f64 (+.f64 (+.f64 im im) 2) (+.f64 (pow.f64 (fma.f64 2 im 1) 2) (+.f64 (+.f64 im im) 2))))
(/.f64 (*.f64 (+.f64 (pow.f64 (fma.f64 2 im 1) 3) -1) (+.f64 (pow.f64 (fma.f64 2 im 1) 2) -1)) (*.f64 (+.f64 (pow.f64 (fma.f64 2 im 1) 2) (+.f64 (+.f64 im im) 2)) (+.f64 (+.f64 im im) 2)))
(/.f64 (+.f64 1 (pow.f64 (fma.f64 2 im -1) 3)) (+.f64 1 (-.f64 (*.f64 (fma.f64 2 im -1) (fma.f64 2 im -1)) (fma.f64 2 im -1))))
(/.f64 (-.f64 1 (*.f64 (fma.f64 2 im -1) (fma.f64 2 im -1))) (-.f64 1 (fma.f64 2 im -1)))
(/.f64 (*.f64 (*.f64 2 (pow.f64 im 3)) (+.f64 im im)) (fma.f64 im im 0))
(/.f64 (*.f64 0 (+.f64 im im)) 0)
(/.f64 (*.f64 (+.f64 (pow.f64 (fma.f64 2 im 1) 3) -1) (+.f64 im im)) (+.f64 (pow.f64 (fma.f64 2 im 1) 2) (+.f64 (+.f64 im im) 2)))
(/.f64 (*.f64 (+.f64 (pow.f64 (fma.f64 2 im 1) 2) -1) (+.f64 im im)) (+.f64 (+.f64 im im) 2))
(/.f64 (*.f64 (+.f64 im im) (+.f64 (pow.f64 (fma.f64 2 im 1) 3) -1)) (+.f64 (pow.f64 (fma.f64 2 im 1) 2) (+.f64 (+.f64 im im) 2)))
(/.f64 (*.f64 (+.f64 im im) (+.f64 (pow.f64 (fma.f64 2 im 1) 2) -1)) (+.f64 (+.f64 im im) 2))
(/.f64 (*.f64 (+.f64 im im) (*.f64 2 (pow.f64 im 3))) (fma.f64 im im 0))
(pow.f64 (+.f64 im im) 1)
(pow.f64 (+.f64 im im) 1/2)
(pow.f64 (+.f64 im im) 3)
(pow.f64 (+.f64 im im) 2)
(pow.f64 (+.f64 im im) 1/3)
(sqrt.f64 (+.f64 im im))
(fabs.f64 (+.f64 im im))
(log.f64 (pow.f64 (exp.f64 2) im))
(cbrt.f64 (+.f64 im im))
(hypot.f64 (sqrt.f64 im) (sqrt.f64 im))
(expm1.f64 (log1p.f64 (+.f64 im im)))
(log1p.f64 (expm1.f64 (+.f64 im im)))
(exp.f64 (log.f64 (+.f64 im im)))
(fma.f64 1 im im)
(fma.f64 1 (fma.f64 2 im 1) -1)
(fma.f64 (pow.f64 (cbrt.f64 (fma.f64 2 im 1)) 2) (cbrt.f64 (fma.f64 2 im 1)) -1)
(fma.f64 (pow.f64 (cbrt.f64 im) 2) (cbrt.f64 im) im)
(fma.f64 (sqrt.f64 (fma.f64 2 im 1)) (sqrt.f64 (fma.f64 2 im 1)) -1)
(fma.f64 (sqrt.f64 im) (sqrt.f64 im) im)
(+.f64 1/2 (*.f64 (fma.f64 2 im -1) 1/2))
(+.f64 1/2 (*.f64 1/2 (fma.f64 2 im -1)))
(+.f64 (*.f64 (fma.f64 2 im 1) 1/2) -1/2)
(+.f64 (*.f64 1/2 (fma.f64 2 im 1)) -1/2)
(-.f64 (+.f64 1 (*.f64 (+.f64 im im) 1/2)) 1)
(/.f64 (*.f64 (+.f64 (pow.f64 (fma.f64 2 im 1) 3) -1) 1/2) (+.f64 (pow.f64 (fma.f64 2 im 1) 2) (+.f64 (+.f64 im im) 2)))
(/.f64 (*.f64 (+.f64 (pow.f64 (fma.f64 2 im 1) 2) -1) 1/2) (+.f64 (+.f64 im im) 2))
(/.f64 (*.f64 1/2 (+.f64 (pow.f64 (fma.f64 2 im 1) 3) -1)) (+.f64 (pow.f64 (fma.f64 2 im 1) 2) (+.f64 (+.f64 im im) 2)))
(/.f64 (*.f64 1/2 (+.f64 (pow.f64 (fma.f64 2 im 1) 2) -1)) (+.f64 (+.f64 im im) 2))
(pow.f64 (*.f64 (+.f64 im im) 1/2) 1)
(pow.f64 (*.f64 (*.f64 (+.f64 im im) 1/4) 1/2) 1/3)
(pow.f64 (*.f64 (+.f64 im im) (cbrt.f64 1/2)) 3)
(pow.f64 (*.f64 (+.f64 im im) (sqrt.f64 1/2)) 2)
(sqrt.f64 (*.f64 (+.f64 im im) 1/4))
(log.f64 (pow.f64 (pow.f64 (exp.f64 2) im) 1/2))
(cbrt.f64 (*.f64 (*.f64 (+.f64 im im) 1/4) 1/2))
(expm1.f64 (log1p.f64 (*.f64 (+.f64 im im) 1/2)))
(log1p.f64 (expm1.f64 (*.f64 (+.f64 im im) 1/2)))
(exp.f64 (log.f64 (*.f64 (+.f64 im im) 1/2)))
Outputs
(*.f64 2 im)
-2
(*.f64 2 im)
-2
(*.f64 2 im)
-2
(*.f64 2 im)
-2
(*.f64 2 im)
-2
(*.f64 2 im)
-2
(*.f64 2 im)
-2
(*.f64 2 im)
-2
(*.f64 2 im)
-2
(*.f64 2 im)
-2
(*.f64 2 im)
-2
(*.f64 2 im)
-2
im
im
im
im
im
im
im
im
im
im
im
im
(+.f64 1 (fma.f64 2 im -1))
-2
(+.f64 1 (*.f64 (fma.f64 2 im -1) 1))
-2
(+.f64 im im)
-2
(+.f64 (+.f64 im im) (+.f64 (+.f64 im im) (*.f64 -2 im)))
-2
(+.f64 (+.f64 im im) 0)
-2
(+.f64 (+.f64 im im) (*.f64 (fma.f64 2 im -1) (+.f64 im im)))
-2
(+.f64 (fma.f64 2 im 1) -1)
-2
(+.f64 -1 (fma.f64 2 im 1))
-2
(+.f64 (fma.f64 2 im -1) 1)
-2
(+.f64 (+.f64 1 im) (-.f64 im 1))
-2
(+.f64 (+.f64 1 im) (+.f64 im -1))
-2
(+.f64 (*.f64 (+.f64 im im) (fma.f64 2 im 1)) (*.f64 (+.f64 im im) -1))
-2
(+.f64 (*.f64 im (+.f64 im im)) (*.f64 im (+.f64 im im)))
-2
(+.f64 (*.f64 (fma.f64 2 im 1) (+.f64 im im)) (*.f64 -1 (+.f64 im im)))
-2
(+.f64 (*.f64 (+.f64 im im) im) (*.f64 (+.f64 im im) im))
-2
(*.f64 1 (+.f64 im im))
-2
(*.f64 im 2)
-2
(*.f64 (+.f64 im im) 1)
-2
(*.f64 (+.f64 im im) (+.f64 im im))
-2
(*.f64 (cbrt.f64 im) (+.f64 (pow.f64 (cbrt.f64 im) 2) (pow.f64 (cbrt.f64 im) 2)))
(*.f64 (cbrt.f64 im) (*.f64 -2 (pow.f64 (cbrt.f64 im) -2)))
(*.f64 (pow.f64 (cbrt.f64 im) 2) (+.f64 (cbrt.f64 im) (cbrt.f64 im)))
(*.f64 (cbrt.f64 im) (*.f64 -2 (pow.f64 (cbrt.f64 im) -2)))
(*.f64 (sqrt.f64 im) (+.f64 (sqrt.f64 im) (sqrt.f64 im)))
(*.f64 -2 (*.f64 (sqrt.f64 im) (sqrt.f64 im)))
(*.f64 (+.f64 (pow.f64 (fma.f64 2 im 1) 3) -1) (/.f64 1 (+.f64 (pow.f64 (fma.f64 2 im 1) 2) (+.f64 (+.f64 im im) 2))))
-2
(*.f64 (*.f64 2 (pow.f64 im 3)) (/.f64 1 (fma.f64 im im 0)))
-2
(*.f64 (+.f64 (pow.f64 (fma.f64 2 im 1) 2) -1) (/.f64 1 (+.f64 (+.f64 im im) 2)))
-2
(*.f64 0 (/.f64 1 0))
-2
(*.f64 2 im)
-2
(*.f64 2 (*.f64 im (+.f64 im im)))
-2
(*.f64 4 (*.f64 im im))
-2
(*.f64 8 (pow.f64 im 3))
-2
(*.f64 (cbrt.f64 2) (cbrt.f64 im))
(*.f64 -2 (cbrt.f64 im))
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(*.f64 -2 (sqrt.f64 im))
(*.f64 (pow.f64 (+.f64 im im) 3/2) (pow.f64 (+.f64 im im) 3/2))
-2
(*.f64 (+.f64 (sqrt.f64 (fma.f64 2 im 1)) 1) (-.f64 (sqrt.f64 (fma.f64 2 im 1)) 1))
-2
(*.f64 (*.f64 (+.f64 im im) 2) im)
-2
(*.f64 (*.f64 2 (pow.f64 (cbrt.f64 im) 2)) (cbrt.f64 im))
(*.f64 (cbrt.f64 im) (*.f64 -2 (pow.f64 (cbrt.f64 im) -2)))
(*.f64 (*.f64 2 (sqrt.f64 im)) (sqrt.f64 im))
(*.f64 -2 (*.f64 (sqrt.f64 im) (sqrt.f64 im)))
(/.f64 1 (+.f64 im im))
-2
(/.f64 1 (/.f64 (+.f64 (pow.f64 (fma.f64 2 im 1) 2) (+.f64 (+.f64 im im) 2)) (+.f64 (pow.f64 (fma.f64 2 im 1) 3) -1)))
-2
(/.f64 1 (/.f64 (+.f64 (+.f64 im im) 2) (+.f64 (pow.f64 (fma.f64 2 im 1) 2) -1)))
-2
(/.f64 1 (/.f64 (fma.f64 im im 0) (*.f64 2 (pow.f64 im 3))))
-2
(/.f64 (+.f64 (pow.f64 (fma.f64 2 im 1) 3) -1) (+.f64 (pow.f64 (fma.f64 2 im 1) 2) (+.f64 (+.f64 im im) 2)))
-2
(/.f64 (+.f64 (pow.f64 (fma.f64 2 im 1) 3) -1) (+.f64 (pow.f64 (fma.f64 2 im 1) 2) (-.f64 1 (*.f64 (fma.f64 2 im 1) -1))))
-2
(/.f64 (*.f64 2 (pow.f64 im 3)) (fma.f64 im im 0))
-2
(/.f64 (+.f64 (pow.f64 (fma.f64 2 im 1) 2) -1) (+.f64 (+.f64 im im) 2))
-2
(/.f64 (+.f64 (pow.f64 (fma.f64 2 im 1) 2) -1) (-.f64 (fma.f64 2 im 1) -1))
-2
(/.f64 0 0)
-2
(/.f64 (*.f64 (+.f64 (pow.f64 (fma.f64 2 im 1) 2) -1) (+.f64 (pow.f64 (fma.f64 2 im 1) 2) -1)) (*.f64 (+.f64 (+.f64 im im) 2) (+.f64 (+.f64 im im) 2)))
-2
(/.f64 (*.f64 (+.f64 (pow.f64 (fma.f64 2 im 1) 3) -1) (+.f64 (pow.f64 (fma.f64 2 im 1) 3) -1)) (*.f64 (+.f64 (pow.f64 (fma.f64 2 im 1) 2) (+.f64 (+.f64 im im) 2)) (+.f64 (pow.f64 (fma.f64 2 im 1) 2) (+.f64 (+.f64 im im) 2))))
-2
(/.f64 (*.f64 (*.f64 2 (pow.f64 im 3)) (*.f64 2 (pow.f64 im 3))) (*.f64 (fma.f64 im im 0) (fma.f64 im im 0)))
-2
(/.f64 (cbrt.f64 (+.f64 (pow.f64 (fma.f64 2 im 1) 2) -1)) (cbrt.f64 (+.f64 (+.f64 im im) 2)))
-2
(/.f64 (cbrt.f64 (+.f64 (pow.f64 (fma.f64 2 im 1) 3) -1)) (cbrt.f64 (+.f64 (pow.f64 (fma.f64 2 im 1) 2) (+.f64 (+.f64 im im) 2))))
-2
(/.f64 (cbrt.f64 (*.f64 2 (pow.f64 im 3))) (cbrt.f64 (fma.f64 im im 0)))
(/.f64 -2 (cbrt.f64 (fma.f64 im im -2)))
(/.f64 (sqrt.f64 0) (sqrt.f64 0))
-2
(/.f64 (sqrt.f64 (+.f64 (pow.f64 (fma.f64 2 im 1) 2) -1)) (sqrt.f64 (+.f64 (+.f64 im im) 2)))
-2
(/.f64 (sqrt.f64 (+.f64 (pow.f64 (fma.f64 2 im 1) 3) -1)) (sqrt.f64 (+.f64 (pow.f64 (fma.f64 2 im 1) 2) (+.f64 (+.f64 im im) 2))))
-2
(/.f64 (sqrt.f64 (*.f64 2 (pow.f64 im 3))) (sqrt.f64 (fma.f64 im im 0)))
(/.f64 -2 (sqrt.f64 (fma.f64 im im -2)))
(/.f64 (pow.f64 (*.f64 2 (pow.f64 im 3)) 3) (pow.f64 (fma.f64 im im 0) 3))
(/.f64 -2 (pow.f64 (fma.f64 im im -2) 3))
(/.f64 (neg.f64 (+.f64 (pow.f64 (fma.f64 2 im 1) 3) -1)) (neg.f64 (+.f64 (pow.f64 (fma.f64 2 im 1) 2) (+.f64 (+.f64 im im) 2))))
-2
(/.f64 (neg.f64 (+.f64 (pow.f64 (fma.f64 2 im 1) 2) -1)) (neg.f64 (+.f64 (+.f64 im im) 2)))
-2
(/.f64 (neg.f64 (*.f64 2 (pow.f64 im 3))) (neg.f64 (fma.f64 im im 0)))
-2
(/.f64 (*.f64 0 (*.f64 2 (pow.f64 im 3))) (*.f64 0 (fma.f64 im im 0)))
-2
(/.f64 (*.f64 (*.f64 2 (pow.f64 im 3)) 0) (*.f64 (fma.f64 im im 0) 0))
-2
(/.f64 (*.f64 (+.f64 (pow.f64 (fma.f64 2 im 1) 2) -1) (+.f64 (pow.f64 (fma.f64 2 im 1) 3) -1)) (*.f64 (+.f64 (+.f64 im im) 2) (+.f64 (pow.f64 (fma.f64 2 im 1) 2) (+.f64 (+.f64 im im) 2))))
-2
(/.f64 (*.f64 (+.f64 (pow.f64 (fma.f64 2 im 1) 3) -1) (+.f64 (pow.f64 (fma.f64 2 im 1) 2) -1)) (*.f64 (+.f64 (pow.f64 (fma.f64 2 im 1) 2) (+.f64 (+.f64 im im) 2)) (+.f64 (+.f64 im im) 2)))
-2
(/.f64 (+.f64 1 (pow.f64 (fma.f64 2 im -1) 3)) (+.f64 1 (-.f64 (*.f64 (fma.f64 2 im -1) (fma.f64 2 im -1)) (fma.f64 2 im -1))))
-2
(/.f64 (-.f64 1 (*.f64 (fma.f64 2 im -1) (fma.f64 2 im -1))) (-.f64 1 (fma.f64 2 im -1)))
-2
(/.f64 (*.f64 (*.f64 2 (pow.f64 im 3)) (+.f64 im im)) (fma.f64 im im 0))
-2
(/.f64 (*.f64 0 (+.f64 im im)) 0)
-2
(/.f64 (*.f64 (+.f64 (pow.f64 (fma.f64 2 im 1) 3) -1) (+.f64 im im)) (+.f64 (pow.f64 (fma.f64 2 im 1) 2) (+.f64 (+.f64 im im) 2)))
-2
(/.f64 (*.f64 (+.f64 (pow.f64 (fma.f64 2 im 1) 2) -1) (+.f64 im im)) (+.f64 (+.f64 im im) 2))
-2
(/.f64 (*.f64 (+.f64 im im) (+.f64 (pow.f64 (fma.f64 2 im 1) 3) -1)) (+.f64 (pow.f64 (fma.f64 2 im 1) 2) (+.f64 (+.f64 im im) 2)))
-2
(/.f64 (*.f64 (+.f64 im im) (+.f64 (pow.f64 (fma.f64 2 im 1) 2) -1)) (+.f64 (+.f64 im im) 2))
-2
(/.f64 (*.f64 (+.f64 im im) (*.f64 2 (pow.f64 im 3))) (fma.f64 im im 0))
-2
(pow.f64 (+.f64 im im) 1)
-2
(pow.f64 (+.f64 im im) 1/2)
-2
(pow.f64 (+.f64 im im) 3)
-2
(pow.f64 (+.f64 im im) 2)
-2
(pow.f64 (+.f64 im im) 1/3)
-2
(sqrt.f64 (+.f64 im im))
-2
(fabs.f64 (+.f64 im im))
-2
(log.f64 (pow.f64 (exp.f64 2) im))
-2
(cbrt.f64 (+.f64 im im))
-2
(hypot.f64 (sqrt.f64 im) (sqrt.f64 im))
(expm1.f64 (log1p.f64 (+.f64 im im)))
-2
(log1p.f64 (expm1.f64 (+.f64 im im)))
-2
(exp.f64 (log.f64 (+.f64 im im)))
-2
(fma.f64 1 im im)
(+.f64 im -2)
(fma.f64 1 (fma.f64 2 im 1) -1)
-2
(fma.f64 (pow.f64 (cbrt.f64 (fma.f64 2 im 1)) 2) (cbrt.f64 (fma.f64 2 im 1)) -1)
-2
(fma.f64 (pow.f64 (cbrt.f64 im) 2) (cbrt.f64 im) im)
(fma.f64 (pow.f64 (cbrt.f64 im) -2) (cbrt.f64 im) im)
(fma.f64 (sqrt.f64 (fma.f64 2 im 1)) (sqrt.f64 (fma.f64 2 im 1)) -1)
-2
(fma.f64 (sqrt.f64 im) (sqrt.f64 im) im)
(+.f64 1/2 (*.f64 (fma.f64 2 im -1) 1/2))
-2
(+.f64 1/2 (*.f64 1/2 (fma.f64 2 im -1)))
-2
(+.f64 (*.f64 (fma.f64 2 im 1) 1/2) -1/2)
-2
(+.f64 (*.f64 1/2 (fma.f64 2 im 1)) -1/2)
-2
(-.f64 (+.f64 1 (*.f64 (+.f64 im im) 1/2)) 1)
-2
(/.f64 (*.f64 (+.f64 (pow.f64 (fma.f64 2 im 1) 3) -1) 1/2) (+.f64 (pow.f64 (fma.f64 2 im 1) 2) (+.f64 (+.f64 im im) 2)))
-2
(/.f64 (*.f64 (+.f64 (pow.f64 (fma.f64 2 im 1) 2) -1) 1/2) (+.f64 (+.f64 im im) 2))
-2
(/.f64 (*.f64 1/2 (+.f64 (pow.f64 (fma.f64 2 im 1) 3) -1)) (+.f64 (pow.f64 (fma.f64 2 im 1) 2) (+.f64 (+.f64 im im) 2)))
-2
(/.f64 (*.f64 1/2 (+.f64 (pow.f64 (fma.f64 2 im 1) 2) -1)) (+.f64 (+.f64 im im) 2))
-2
(pow.f64 (*.f64 (+.f64 im im) 1/2) 1)
-2
(pow.f64 (*.f64 (*.f64 (+.f64 im im) 1/4) 1/2) 1/3)
-2
(pow.f64 (*.f64 (+.f64 im im) (cbrt.f64 1/2)) 3)
-2
(pow.f64 (*.f64 (+.f64 im im) (sqrt.f64 1/2)) 2)
-2
(sqrt.f64 (*.f64 (+.f64 im im) 1/4))
-2
(log.f64 (pow.f64 (pow.f64 (exp.f64 2) im) 1/2))
-2
(cbrt.f64 (*.f64 (*.f64 (+.f64 im im) 1/4) 1/2))
-2
(expm1.f64 (log1p.f64 (*.f64 (+.f64 im im) 1/2)))
-2
(log1p.f64 (expm1.f64 (*.f64 (+.f64 im im) 1/2)))
-2
(exp.f64 (log.f64 (*.f64 (+.f64 im im) 1/2)))
-2

localize12.0ms (0%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(+.f64 -2 (log.f64 im))
5.7b
(exp.f64 (+.f64 -2 (log.f64 im)))
Compiler

Compiled 23 to 15 computations (34.8% saved)

series298.0ms (1.1%)

Counts
2 → 16
Calls

6 calls:

TimeVariablePointExpression
155.0ms
im
@-inf
(exp.f64 (+.f64 -2 (log.f64 im)))
124.0ms
im
@-inf
(+.f64 -2 (log.f64 im))
12.0ms
im
@0
(exp.f64 (+.f64 -2 (log.f64 im)))
6.0ms
im
@inf
(exp.f64 (+.f64 -2 (log.f64 im)))
1.0ms
im
@inf
(+.f64 -2 (log.f64 im))
Compiler

Compiled 29848 to 27784 computations (6.9% saved)

rewrite43.0ms (0.2%)

Algorithm
batch-egg-rewrite
Rules
623×pow1_binary64
581×add-log-exp_binary64
581×log1p-expm1-u_binary64
581×expm1-log1p-u_binary64
571×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0612
112512
2153712
Stop Event
node limit
Counts
2 → 54
Calls
Call 1
Inputs
(exp.f64 (+.f64 -2 (log.f64 im)))
(+.f64 -2 (log.f64 im))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (expm1.f64 (+.f64 -2 (log.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 im (exp.f64 -2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 im (exp.f64 -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 im (exp.f64 -2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 im (exp.f64 -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (exp.f64 -2) im)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 im (exp.f64 -2))) (pow.f64 (cbrt.f64 (*.f64 im (exp.f64 -2))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 im (exp.f64 -2))) 2) (cbrt.f64 (*.f64 im (exp.f64 -2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 im (exp.f64 -2))) (sqrt.f64 (*.f64 im (exp.f64 -2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (exp.f64 -2) 1) im)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (exp.f64 -2) (pow.f64 (cbrt.f64 im) 2)) (cbrt.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (exp.f64 -2) (sqrt.f64 im)) (sqrt.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 im (exp.f64 -2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 im (exp.f64 -2)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 im (exp.f64 -2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 im (exp.f64 -2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (+.f64 -2 (log.f64 im))) 2)) (cbrt.f64 (+.f64 -2 (log.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (+.f64 -2 (log.f64 im)))) (sqrt.f64 (+.f64 -2 (log.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (+.f64 -2 (log.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 im (exp.f64 -2)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (exp.f64 -2)) im))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 im (exp.f64 -2)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 im (exp.f64 -2))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 im (exp.f64 -2))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (+.f64 -2 (log.f64 im))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 4 (-.f64 -2 (log.f64 im))) (/.f64 (pow.f64 (log.f64 im) 2) (-.f64 -2 (log.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 -2 (log.f64 im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 -2 (log.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 -2 (log.f64 im))) (pow.f64 (cbrt.f64 (+.f64 -2 (log.f64 im))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 -2 (log.f64 im))) 2) (cbrt.f64 (+.f64 -2 (log.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 -2 (log.f64 im))) (sqrt.f64 (+.f64 -2 (log.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 -8 (pow.f64 (log.f64 im) 3)) (/.f64 1 (+.f64 4 (*.f64 (log.f64 im) (-.f64 (log.f64 im) -2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 4 (pow.f64 (log.f64 im) 2)) (/.f64 1 (-.f64 -2 (log.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 4 (*.f64 (log.f64 im) (-.f64 (log.f64 im) -2))) (+.f64 -8 (pow.f64 (log.f64 im) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 -2 (log.f64 im)) (-.f64 4 (pow.f64 (log.f64 im) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 -8 (pow.f64 (log.f64 im) 3)) (+.f64 4 (*.f64 (log.f64 im) (-.f64 (log.f64 im) -2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 -8 (pow.f64 (log.f64 im) 3)) (+.f64 (pow.f64 (log.f64 im) 2) (-.f64 4 (*.f64 -2 (log.f64 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 4 (pow.f64 (log.f64 im) 2)) (-.f64 -2 (log.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 -8 (pow.f64 (log.f64 im) 3))) (neg.f64 (+.f64 4 (*.f64 (log.f64 im) (-.f64 (log.f64 im) -2)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 4 (pow.f64 (log.f64 im) 2))) (neg.f64 (-.f64 -2 (log.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (log.f64 im) 2) 4) (-.f64 (log.f64 im) -2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 -2 (log.f64 im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 -2 (log.f64 im)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 -2 (log.f64 im))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 -2 (log.f64 im))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 -2 (log.f64 im)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 im (exp.f64 -2)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 -2 (log.f64 im)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 -2 (log.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 -2 (log.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (+.f64 -2 (log.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (log.f64 im) -2)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (log.f64 im)) 2) (cbrt.f64 (log.f64 im)) -2)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (log.f64 im)) (sqrt.f64 (log.f64 im)) -2)))))

simplify45.0ms (0.2%)

Algorithm
egg-herbie
Rules
445×log-prod_binary64
437×fma-neg_binary64
406×unswap-sqr_binary64
230×div-sub_binary64
198×cube-prod_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0127660
1308571
21003571
34483571
Stop Event
node limit
Counts
70 → 64
Calls
Call 1
Inputs
(exp.f64 (-.f64 (log.f64 im) 2))
(exp.f64 (-.f64 (log.f64 im) 2))
(exp.f64 (-.f64 (log.f64 im) 2))
(exp.f64 (-.f64 (log.f64 im) 2))
(exp.f64 (-.f64 (*.f64 -1 (log.f64 (/.f64 1 im))) 2))
(exp.f64 (-.f64 (*.f64 -1 (log.f64 (/.f64 1 im))) 2))
(exp.f64 (-.f64 (*.f64 -1 (log.f64 (/.f64 1 im))) 2))
(exp.f64 (-.f64 (*.f64 -1 (log.f64 (/.f64 1 im))) 2))
(-.f64 (log.f64 im) 2)
(-.f64 (log.f64 im) 2)
(-.f64 (log.f64 im) 2)
(-.f64 (log.f64 im) 2)
(-.f64 (*.f64 -1 (log.f64 (/.f64 1 im))) 2)
(-.f64 (*.f64 -1 (log.f64 (/.f64 1 im))) 2)
(-.f64 (*.f64 -1 (log.f64 (/.f64 1 im))) 2)
(-.f64 (*.f64 -1 (log.f64 (/.f64 1 im))) 2)
(+.f64 1 (expm1.f64 (+.f64 -2 (log.f64 im))))
(-.f64 (+.f64 1 (*.f64 im (exp.f64 -2))) 1)
(*.f64 im (exp.f64 -2))
(*.f64 (*.f64 im (exp.f64 -2)) 1)
(*.f64 1 (*.f64 im (exp.f64 -2)))
(*.f64 (exp.f64 -2) im)
(*.f64 (cbrt.f64 (*.f64 im (exp.f64 -2))) (pow.f64 (cbrt.f64 (*.f64 im (exp.f64 -2))) 2))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 im (exp.f64 -2))) 2) (cbrt.f64 (*.f64 im (exp.f64 -2))))
(*.f64 (sqrt.f64 (*.f64 im (exp.f64 -2))) (sqrt.f64 (*.f64 im (exp.f64 -2))))
(*.f64 (*.f64 (exp.f64 -2) 1) im)
(*.f64 (*.f64 (exp.f64 -2) (pow.f64 (cbrt.f64 im) 2)) (cbrt.f64 im))
(*.f64 (*.f64 (exp.f64 -2) (sqrt.f64 im)) (sqrt.f64 im))
(pow.f64 (*.f64 im (exp.f64 -2)) 1)
(pow.f64 (pow.f64 (*.f64 im (exp.f64 -2)) 3) 1/3)
(pow.f64 (cbrt.f64 (*.f64 im (exp.f64 -2))) 3)
(pow.f64 (sqrt.f64 (*.f64 im (exp.f64 -2))) 2)
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (+.f64 -2 (log.f64 im))) 2)) (cbrt.f64 (+.f64 -2 (log.f64 im))))
(pow.f64 (exp.f64 (sqrt.f64 (+.f64 -2 (log.f64 im)))) (sqrt.f64 (+.f64 -2 (log.f64 im))))
(pow.f64 (exp.f64 1) (+.f64 -2 (log.f64 im)))
(sqrt.f64 (pow.f64 (*.f64 im (exp.f64 -2)) 2))
(log.f64 (pow.f64 (exp.f64 (exp.f64 -2)) im))
(cbrt.f64 (pow.f64 (*.f64 im (exp.f64 -2)) 3))
(expm1.f64 (log1p.f64 (*.f64 im (exp.f64 -2))))
(log1p.f64 (expm1.f64 (*.f64 im (exp.f64 -2))))
(-.f64 (+.f64 1 (+.f64 -2 (log.f64 im))) 1)
(-.f64 (/.f64 4 (-.f64 -2 (log.f64 im))) (/.f64 (pow.f64 (log.f64 im) 2) (-.f64 -2 (log.f64 im))))
(*.f64 (+.f64 -2 (log.f64 im)) 1)
(*.f64 1 (+.f64 -2 (log.f64 im)))
(*.f64 (cbrt.f64 (+.f64 -2 (log.f64 im))) (pow.f64 (cbrt.f64 (+.f64 -2 (log.f64 im))) 2))
(*.f64 (pow.f64 (cbrt.f64 (+.f64 -2 (log.f64 im))) 2) (cbrt.f64 (+.f64 -2 (log.f64 im))))
(*.f64 (sqrt.f64 (+.f64 -2 (log.f64 im))) (sqrt.f64 (+.f64 -2 (log.f64 im))))
(*.f64 (+.f64 -8 (pow.f64 (log.f64 im) 3)) (/.f64 1 (+.f64 4 (*.f64 (log.f64 im) (-.f64 (log.f64 im) -2)))))
(*.f64 (-.f64 4 (pow.f64 (log.f64 im) 2)) (/.f64 1 (-.f64 -2 (log.f64 im))))
(/.f64 1 (/.f64 (+.f64 4 (*.f64 (log.f64 im) (-.f64 (log.f64 im) -2))) (+.f64 -8 (pow.f64 (log.f64 im) 3))))
(/.f64 1 (/.f64 (-.f64 -2 (log.f64 im)) (-.f64 4 (pow.f64 (log.f64 im) 2))))
(/.f64 (+.f64 -8 (pow.f64 (log.f64 im) 3)) (+.f64 4 (*.f64 (log.f64 im) (-.f64 (log.f64 im) -2))))
(/.f64 (+.f64 -8 (pow.f64 (log.f64 im) 3)) (+.f64 (pow.f64 (log.f64 im) 2) (-.f64 4 (*.f64 -2 (log.f64 im)))))
(/.f64 (-.f64 4 (pow.f64 (log.f64 im) 2)) (-.f64 -2 (log.f64 im)))
(/.f64 (neg.f64 (+.f64 -8 (pow.f64 (log.f64 im) 3))) (neg.f64 (+.f64 4 (*.f64 (log.f64 im) (-.f64 (log.f64 im) -2)))))
(/.f64 (neg.f64 (-.f64 4 (pow.f64 (log.f64 im) 2))) (neg.f64 (-.f64 -2 (log.f64 im))))
(/.f64 (-.f64 (pow.f64 (log.f64 im) 2) 4) (-.f64 (log.f64 im) -2))
(pow.f64 (+.f64 -2 (log.f64 im)) 1)
(pow.f64 (pow.f64 (+.f64 -2 (log.f64 im)) 3) 1/3)
(pow.f64 (cbrt.f64 (+.f64 -2 (log.f64 im))) 3)
(pow.f64 (sqrt.f64 (+.f64 -2 (log.f64 im))) 2)
(sqrt.f64 (pow.f64 (+.f64 -2 (log.f64 im)) 2))
(log.f64 (*.f64 im (exp.f64 -2)))
(cbrt.f64 (pow.f64 (+.f64 -2 (log.f64 im)) 3))
(expm1.f64 (log1p.f64 (+.f64 -2 (log.f64 im))))
(log1p.f64 (expm1.f64 (+.f64 -2 (log.f64 im))))
(exp.f64 (log.f64 (+.f64 -2 (log.f64 im))))
(fma.f64 1 (log.f64 im) -2)
(fma.f64 (pow.f64 (cbrt.f64 (log.f64 im)) 2) (cbrt.f64 (log.f64 im)) -2)
(fma.f64 (sqrt.f64 (log.f64 im)) (sqrt.f64 (log.f64 im)) -2)
Outputs
(exp.f64 (-.f64 (log.f64 im) 2))
(exp.f64 (+.f64 (log.f64 im) -2))
(*.f64 im (exp.f64 -2))
(exp.f64 (-.f64 (log.f64 im) 2))
(exp.f64 (+.f64 (log.f64 im) -2))
(*.f64 im (exp.f64 -2))
(exp.f64 (-.f64 (log.f64 im) 2))
(exp.f64 (+.f64 (log.f64 im) -2))
(*.f64 im (exp.f64 -2))
(exp.f64 (-.f64 (log.f64 im) 2))
(exp.f64 (+.f64 (log.f64 im) -2))
(*.f64 im (exp.f64 -2))
(exp.f64 (-.f64 (*.f64 -1 (log.f64 (/.f64 1 im))) 2))
(exp.f64 (+.f64 (log.f64 im) -2))
(*.f64 im (exp.f64 -2))
(exp.f64 (-.f64 (*.f64 -1 (log.f64 (/.f64 1 im))) 2))
(exp.f64 (+.f64 (log.f64 im) -2))
(*.f64 im (exp.f64 -2))
(exp.f64 (-.f64 (*.f64 -1 (log.f64 (/.f64 1 im))) 2))
(exp.f64 (+.f64 (log.f64 im) -2))
(*.f64 im (exp.f64 -2))
(exp.f64 (-.f64 (*.f64 -1 (log.f64 (/.f64 1 im))) 2))
(exp.f64 (+.f64 (log.f64 im) -2))
(*.f64 im (exp.f64 -2))
(-.f64 (log.f64 im) 2)
(+.f64 (log.f64 im) -2)
(-.f64 (log.f64 im) 2)
(+.f64 (log.f64 im) -2)
(-.f64 (log.f64 im) 2)
(+.f64 (log.f64 im) -2)
(-.f64 (log.f64 im) 2)
(+.f64 (log.f64 im) -2)
(-.f64 (*.f64 -1 (log.f64 (/.f64 1 im))) 2)
(+.f64 (log.f64 im) -2)
(-.f64 (*.f64 -1 (log.f64 (/.f64 1 im))) 2)
(+.f64 (log.f64 im) -2)
(-.f64 (*.f64 -1 (log.f64 (/.f64 1 im))) 2)
(+.f64 (log.f64 im) -2)
(-.f64 (*.f64 -1 (log.f64 (/.f64 1 im))) 2)
(+.f64 (log.f64 im) -2)
(+.f64 1 (expm1.f64 (+.f64 -2 (log.f64 im))))
(exp.f64 (+.f64 (log.f64 im) -2))
(*.f64 im (exp.f64 -2))
(-.f64 (+.f64 1 (*.f64 im (exp.f64 -2))) 1)
(exp.f64 (+.f64 (log.f64 im) -2))
(*.f64 im (exp.f64 -2))
(*.f64 im (exp.f64 -2))
(exp.f64 (+.f64 (log.f64 im) -2))
(*.f64 (*.f64 im (exp.f64 -2)) 1)
(exp.f64 (+.f64 (log.f64 im) -2))
(*.f64 im (exp.f64 -2))
(*.f64 1 (*.f64 im (exp.f64 -2)))
(exp.f64 (+.f64 (log.f64 im) -2))
(*.f64 im (exp.f64 -2))
(*.f64 (exp.f64 -2) im)
(exp.f64 (+.f64 (log.f64 im) -2))
(*.f64 im (exp.f64 -2))
(*.f64 (cbrt.f64 (*.f64 im (exp.f64 -2))) (pow.f64 (cbrt.f64 (*.f64 im (exp.f64 -2))) 2))
(exp.f64 (+.f64 (log.f64 im) -2))
(*.f64 im (exp.f64 -2))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 im (exp.f64 -2))) 2) (cbrt.f64 (*.f64 im (exp.f64 -2))))
(exp.f64 (+.f64 (log.f64 im) -2))
(*.f64 im (exp.f64 -2))
(*.f64 (sqrt.f64 (*.f64 im (exp.f64 -2))) (sqrt.f64 (*.f64 im (exp.f64 -2))))
(exp.f64 (+.f64 (log.f64 im) -2))
(*.f64 im (exp.f64 -2))
(*.f64 (*.f64 (exp.f64 -2) 1) im)
(exp.f64 (+.f64 (log.f64 im) -2))
(*.f64 im (exp.f64 -2))
(*.f64 (*.f64 (exp.f64 -2) (pow.f64 (cbrt.f64 im) 2)) (cbrt.f64 im))
(exp.f64 (+.f64 (log.f64 im) -2))
(*.f64 im (exp.f64 -2))
(*.f64 (*.f64 (exp.f64 -2) (sqrt.f64 im)) (sqrt.f64 im))
(exp.f64 (+.f64 (log.f64 im) -2))
(*.f64 im (exp.f64 -2))
(pow.f64 (*.f64 im (exp.f64 -2)) 1)
(exp.f64 (+.f64 (log.f64 im) -2))
(*.f64 im (exp.f64 -2))
(pow.f64 (pow.f64 (*.f64 im (exp.f64 -2)) 3) 1/3)
(exp.f64 (+.f64 (log.f64 im) -2))
(*.f64 im (exp.f64 -2))
(pow.f64 (cbrt.f64 (*.f64 im (exp.f64 -2))) 3)
(exp.f64 (+.f64 (log.f64 im) -2))
(*.f64 im (exp.f64 -2))
(pow.f64 (sqrt.f64 (*.f64 im (exp.f64 -2))) 2)
(exp.f64 (+.f64 (log.f64 im) -2))
(*.f64 im (exp.f64 -2))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (+.f64 -2 (log.f64 im))) 2)) (cbrt.f64 (+.f64 -2 (log.f64 im))))
(exp.f64 (+.f64 (log.f64 im) -2))
(*.f64 im (exp.f64 -2))
(pow.f64 (exp.f64 (sqrt.f64 (+.f64 -2 (log.f64 im)))) (sqrt.f64 (+.f64 -2 (log.f64 im))))
(exp.f64 (+.f64 (log.f64 im) -2))
(*.f64 im (exp.f64 -2))
(pow.f64 (exp.f64 1) (+.f64 -2 (log.f64 im)))
(exp.f64 (+.f64 (log.f64 im) -2))
(*.f64 im (exp.f64 -2))
(sqrt.f64 (pow.f64 (*.f64 im (exp.f64 -2)) 2))
(exp.f64 (+.f64 (log.f64 im) -2))
(*.f64 im (exp.f64 -2))
(log.f64 (pow.f64 (exp.f64 (exp.f64 -2)) im))
(exp.f64 (+.f64 (log.f64 im) -2))
(*.f64 im (exp.f64 -2))
(cbrt.f64 (pow.f64 (*.f64 im (exp.f64 -2)) 3))
(exp.f64 (+.f64 (log.f64 im) -2))
(*.f64 im (exp.f64 -2))
(expm1.f64 (log1p.f64 (*.f64 im (exp.f64 -2))))
(exp.f64 (+.f64 (log.f64 im) -2))
(*.f64 im (exp.f64 -2))
(log1p.f64 (expm1.f64 (*.f64 im (exp.f64 -2))))
(exp.f64 (+.f64 (log.f64 im) -2))
(*.f64 im (exp.f64 -2))
(-.f64 (+.f64 1 (+.f64 -2 (log.f64 im))) 1)
(+.f64 (log.f64 im) -2)
(-.f64 (/.f64 4 (-.f64 -2 (log.f64 im))) (/.f64 (pow.f64 (log.f64 im) 2) (-.f64 -2 (log.f64 im))))
(/.f64 (-.f64 4 (pow.f64 (log.f64 im) 2)) (-.f64 -2 (log.f64 im)))
(/.f64 (fma.f64 (log.f64 im) (log.f64 im) -4) (+.f64 (log.f64 im) 2))
(*.f64 (+.f64 -2 (log.f64 im)) 1)
(+.f64 (log.f64 im) -2)
(*.f64 1 (+.f64 -2 (log.f64 im)))
(+.f64 (log.f64 im) -2)
(*.f64 (cbrt.f64 (+.f64 -2 (log.f64 im))) (pow.f64 (cbrt.f64 (+.f64 -2 (log.f64 im))) 2))
(+.f64 (log.f64 im) -2)
(*.f64 (pow.f64 (cbrt.f64 (+.f64 -2 (log.f64 im))) 2) (cbrt.f64 (+.f64 -2 (log.f64 im))))
(+.f64 (log.f64 im) -2)
(*.f64 (sqrt.f64 (+.f64 -2 (log.f64 im))) (sqrt.f64 (+.f64 -2 (log.f64 im))))
(+.f64 (log.f64 im) -2)
(*.f64 (+.f64 -8 (pow.f64 (log.f64 im) 3)) (/.f64 1 (+.f64 4 (*.f64 (log.f64 im) (-.f64 (log.f64 im) -2)))))
(*.f64 (+.f64 -8 (pow.f64 (log.f64 im) 3)) (/.f64 1 (+.f64 4 (*.f64 (log.f64 im) (+.f64 (log.f64 im) 2)))))
(/.f64 (+.f64 -8 (pow.f64 (log.f64 im) 3)) (fma.f64 (log.f64 im) (+.f64 (log.f64 im) 2) 4))
(/.f64 (-.f64 8 (pow.f64 (log.f64 im) 3)) (fma.f64 (log.f64 im) (-.f64 -2 (log.f64 im)) -4))
(*.f64 (-.f64 4 (pow.f64 (log.f64 im) 2)) (/.f64 1 (-.f64 -2 (log.f64 im))))
(/.f64 (-.f64 4 (pow.f64 (log.f64 im) 2)) (-.f64 -2 (log.f64 im)))
(/.f64 (fma.f64 (log.f64 im) (log.f64 im) -4) (+.f64 (log.f64 im) 2))
(/.f64 1 (/.f64 (+.f64 4 (*.f64 (log.f64 im) (-.f64 (log.f64 im) -2))) (+.f64 -8 (pow.f64 (log.f64 im) 3))))
(*.f64 (+.f64 -8 (pow.f64 (log.f64 im) 3)) (/.f64 1 (+.f64 4 (*.f64 (log.f64 im) (+.f64 (log.f64 im) 2)))))
(/.f64 (+.f64 -8 (pow.f64 (log.f64 im) 3)) (fma.f64 (log.f64 im) (+.f64 (log.f64 im) 2) 4))
(/.f64 (-.f64 8 (pow.f64 (log.f64 im) 3)) (fma.f64 (log.f64 im) (-.f64 -2 (log.f64 im)) -4))
(/.f64 1 (/.f64 (-.f64 -2 (log.f64 im)) (-.f64 4 (pow.f64 (log.f64 im) 2))))
(/.f64 (-.f64 4 (pow.f64 (log.f64 im) 2)) (-.f64 -2 (log.f64 im)))
(/.f64 (fma.f64 (log.f64 im) (log.f64 im) -4) (+.f64 (log.f64 im) 2))
(/.f64 (+.f64 -8 (pow.f64 (log.f64 im) 3)) (+.f64 4 (*.f64 (log.f64 im) (-.f64 (log.f64 im) -2))))
(*.f64 (+.f64 -8 (pow.f64 (log.f64 im) 3)) (/.f64 1 (+.f64 4 (*.f64 (log.f64 im) (+.f64 (log.f64 im) 2)))))
(/.f64 (+.f64 -8 (pow.f64 (log.f64 im) 3)) (fma.f64 (log.f64 im) (+.f64 (log.f64 im) 2) 4))
(/.f64 (-.f64 8 (pow.f64 (log.f64 im) 3)) (fma.f64 (log.f64 im) (-.f64 -2 (log.f64 im)) -4))
(/.f64 (+.f64 -8 (pow.f64 (log.f64 im) 3)) (+.f64 (pow.f64 (log.f64 im) 2) (-.f64 4 (*.f64 -2 (log.f64 im)))))
(*.f64 (+.f64 -8 (pow.f64 (log.f64 im) 3)) (/.f64 1 (+.f64 4 (*.f64 (log.f64 im) (+.f64 (log.f64 im) 2)))))
(/.f64 (+.f64 -8 (pow.f64 (log.f64 im) 3)) (fma.f64 (log.f64 im) (+.f64 (log.f64 im) 2) 4))
(/.f64 (-.f64 8 (pow.f64 (log.f64 im) 3)) (fma.f64 (log.f64 im) (-.f64 -2 (log.f64 im)) -4))
(/.f64 (-.f64 4 (pow.f64 (log.f64 im) 2)) (-.f64 -2 (log.f64 im)))
(/.f64 (fma.f64 (log.f64 im) (log.f64 im) -4) (+.f64 (log.f64 im) 2))
(/.f64 (neg.f64 (+.f64 -8 (pow.f64 (log.f64 im) 3))) (neg.f64 (+.f64 4 (*.f64 (log.f64 im) (-.f64 (log.f64 im) -2)))))
(*.f64 (+.f64 -8 (pow.f64 (log.f64 im) 3)) (/.f64 1 (+.f64 4 (*.f64 (log.f64 im) (+.f64 (log.f64 im) 2)))))
(/.f64 (+.f64 -8 (pow.f64 (log.f64 im) 3)) (fma.f64 (log.f64 im) (+.f64 (log.f64 im) 2) 4))
(/.f64 (-.f64 8 (pow.f64 (log.f64 im) 3)) (fma.f64 (log.f64 im) (-.f64 -2 (log.f64 im)) -4))
(/.f64 (neg.f64 (-.f64 4 (pow.f64 (log.f64 im) 2))) (neg.f64 (-.f64 -2 (log.f64 im))))
(/.f64 (-.f64 4 (pow.f64 (log.f64 im) 2)) (-.f64 -2 (log.f64 im)))
(/.f64 (fma.f64 (log.f64 im) (log.f64 im) -4) (+.f64 (log.f64 im) 2))
(/.f64 (-.f64 (pow.f64 (log.f64 im) 2) 4) (-.f64 (log.f64 im) -2))
(/.f64 (-.f64 4 (pow.f64 (log.f64 im) 2)) (-.f64 -2 (log.f64 im)))
(/.f64 (fma.f64 (log.f64 im) (log.f64 im) -4) (+.f64 (log.f64 im) 2))
(pow.f64 (+.f64 -2 (log.f64 im)) 1)
(+.f64 (log.f64 im) -2)
(pow.f64 (pow.f64 (+.f64 -2 (log.f64 im)) 3) 1/3)
(+.f64 (log.f64 im) -2)
(pow.f64 (cbrt.f64 (+.f64 -2 (log.f64 im))) 3)
(+.f64 (log.f64 im) -2)
(pow.f64 (sqrt.f64 (+.f64 -2 (log.f64 im))) 2)
(+.f64 (log.f64 im) -2)
(sqrt.f64 (pow.f64 (+.f64 -2 (log.f64 im)) 2))
(+.f64 (log.f64 im) -2)
(log.f64 (*.f64 im (exp.f64 -2)))
(+.f64 (log.f64 im) -2)
(cbrt.f64 (pow.f64 (+.f64 -2 (log.f64 im)) 3))
(+.f64 (log.f64 im) -2)
(expm1.f64 (log1p.f64 (+.f64 -2 (log.f64 im))))
(+.f64 (log.f64 im) -2)
(log1p.f64 (expm1.f64 (+.f64 -2 (log.f64 im))))
(+.f64 (log.f64 im) -2)
(exp.f64 (log.f64 (+.f64 -2 (log.f64 im))))
(+.f64 (log.f64 im) -2)
(fma.f64 1 (log.f64 im) -2)
(+.f64 (log.f64 im) -2)
(fma.f64 (pow.f64 (cbrt.f64 (log.f64 im)) 2) (cbrt.f64 (log.f64 im)) -2)
(+.f64 (log.f64 im) -2)
(fma.f64 (sqrt.f64 (log.f64 im)) (sqrt.f64 (log.f64 im)) -2)
(+.f64 (log.f64 im) -2)

localize23.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.6b
(*.f64 (pow.f64 (+.f64 im im) 1/12) (pow.f64 (+.f64 im im) 1/12))
3.4b
(pow.f64 (+.f64 im im) 1/12)
Compiler

Compiled 37 to 19 computations (48.6% saved)

series372.0ms (1.4%)

Counts
2 → 16
Calls

6 calls:

TimeVariablePointExpression
220.0ms
im
@-inf
(*.f64 (pow.f64 (+.f64 im im) 1/12) (pow.f64 (+.f64 im im) 1/12))
147.0ms
im
@-inf
(pow.f64 (+.f64 im im) 1/12)
1.0ms
im
@inf
(*.f64 (pow.f64 (+.f64 im im) 1/12) (pow.f64 (+.f64 im im) 1/12))
1.0ms
im
@inf
(pow.f64 (+.f64 im im) 1/12)
1.0ms
im
@0
(*.f64 (pow.f64 (+.f64 im im) 1/12) (pow.f64 (+.f64 im im) 1/12))
Compiler

Compiled 32992 to 30928 computations (6.3% saved)

rewrite45.0ms (0.2%)

Algorithm
batch-egg-rewrite
Rules
441×pow1_binary64
438×add-sqr-sqrt_binary64
427×add-log-exp_binary64
426×log1p-expm1-u_binary64
426×expm1-log1p-u_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify18.0ms (0.1%)

Algorithm
egg-herbie
Rules
24×*-commutative_binary64
20×sqr-pow_binary64
associate-/l*_binary64
distribute-rgt-in_binary64
associate-*l*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0145542
1370542
Stop Event
unsound
Counts
110 → 83
Calls
Call 1
Inputs
(exp.f64 (*.f64 1/12 (+.f64 (log.f64 2) (log.f64 im))))
(exp.f64 (*.f64 1/12 (+.f64 (log.f64 2) (log.f64 im))))
(exp.f64 (*.f64 1/12 (+.f64 (log.f64 2) (log.f64 im))))
(exp.f64 (*.f64 1/12 (+.f64 (log.f64 2) (log.f64 im))))
(exp.f64 (*.f64 1/12 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 im))))))
(exp.f64 (*.f64 1/12 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 im))))))
(exp.f64 (*.f64 1/12 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 im))))))
(exp.f64 (*.f64 1/12 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 im))))))
(pow.f64 (exp.f64 (*.f64 1/12 (+.f64 (log.f64 2) (log.f64 im)))) 2)
(pow.f64 (exp.f64 (*.f64 1/12 (+.f64 (log.f64 2) (log.f64 im)))) 2)
(pow.f64 (exp.f64 (*.f64 1/12 (+.f64 (log.f64 2) (log.f64 im)))) 2)
(pow.f64 (exp.f64 (*.f64 1/12 (+.f64 (log.f64 2) (log.f64 im)))) 2)
(pow.f64 (exp.f64 (*.f64 1/12 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 im)))))) 2)
(pow.f64 (exp.f64 (*.f64 1/12 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 im)))))) 2)
(pow.f64 (exp.f64 (*.f64 1/12 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 im)))))) 2)
(pow.f64 (exp.f64 (*.f64 1/12 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 im)))))) 2)
(+.f64 im im)
(+.f64 (*.f64 im (+.f64 im im)) (*.f64 im (+.f64 im im)))
(+.f64 (*.f64 (+.f64 im im) im) (*.f64 (+.f64 im im) im))
(-.f64 (+.f64 1 (+.f64 im im)) 1)
(-.f64 (/.f64 (*.f64 im im) 0) (/.f64 (*.f64 im im) 0))
(*.f64 im 2)
(*.f64 1 (+.f64 im im))
(*.f64 (+.f64 im im) 1)
(*.f64 (+.f64 im im) (+.f64 im im))
(*.f64 (cbrt.f64 im) (+.f64 (pow.f64 (cbrt.f64 im) 2) (pow.f64 (cbrt.f64 im) 2)))
(*.f64 (pow.f64 (cbrt.f64 im) 2) (+.f64 (cbrt.f64 im) (cbrt.f64 im)))
(*.f64 (sqrt.f64 im) (+.f64 (sqrt.f64 im) (sqrt.f64 im)))
(*.f64 2 im)
(*.f64 2 (*.f64 im (+.f64 im im)))
(*.f64 (*.f64 2 (pow.f64 im 3)) (/.f64 1 (fma.f64 im im 0)))
(*.f64 0 (/.f64 1 0))
(*.f64 4 (*.f64 im im))
(*.f64 (cbrt.f64 2) (cbrt.f64 im))
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(*.f64 (pow.f64 1 1/6) (+.f64 im im))
(*.f64 (pow.f64 2 1/6) (pow.f64 im 1/6))
(*.f64 (pow.f64 1 1/12) (+.f64 im im))
(*.f64 (pow.f64 2 1/12) (pow.f64 im 1/12))
(*.f64 (pow.f64 1 1/24) (+.f64 im im))
(*.f64 (pow.f64 2 1/24) (pow.f64 im 1/24))
(*.f64 (pow.f64 (+.f64 im im) 1/48) (pow.f64 (+.f64 im im) 1/48))
(*.f64 (*.f64 (+.f64 im im) 2) im)
(*.f64 (*.f64 2 (pow.f64 (cbrt.f64 im) 2)) (cbrt.f64 im))
(*.f64 (*.f64 2 (sqrt.f64 im)) (sqrt.f64 im))
(/.f64 1 (+.f64 im im))
(/.f64 1 (/.f64 (fma.f64 im im 0) (*.f64 2 (pow.f64 im 3))))
(/.f64 (*.f64 2 (pow.f64 im 3)) (fma.f64 im im 0))
(/.f64 0 0)
(/.f64 (*.f64 (*.f64 2 (pow.f64 im 3)) (*.f64 2 (pow.f64 im 3))) (*.f64 (fma.f64 im im 0) (fma.f64 im im 0)))
(/.f64 (cbrt.f64 (*.f64 2 (pow.f64 im 3))) (cbrt.f64 (fma.f64 im im 0)))
(/.f64 (sqrt.f64 0) (sqrt.f64 0))
(/.f64 (sqrt.f64 (*.f64 2 (pow.f64 im 3))) (sqrt.f64 (fma.f64 im im 0)))
(/.f64 (neg.f64 (*.f64 2 (pow.f64 im 3))) (neg.f64 (fma.f64 im im 0)))
(/.f64 (*.f64 0 (*.f64 2 (pow.f64 im 3))) (*.f64 0 (fma.f64 im im 0)))
(/.f64 (*.f64 (*.f64 2 (pow.f64 im 3)) 0) (*.f64 (fma.f64 im im 0) 0))
(/.f64 (*.f64 (*.f64 2 (pow.f64 im 3)) (+.f64 im im)) (fma.f64 im im 0))
(/.f64 (*.f64 0 (+.f64 im im)) 0)
(/.f64 (*.f64 (+.f64 im im) (*.f64 2 (pow.f64 im 3))) (fma.f64 im im 0))
(sqrt.f64 (+.f64 im im))
(fabs.f64 (+.f64 im im))
(log.f64 (pow.f64 (exp.f64 2) im))
(cbrt.f64 (+.f64 im im))
(hypot.f64 (sqrt.f64 im) (sqrt.f64 im))
(expm1.f64 (log1p.f64 (+.f64 im im)))
(log1p.f64 (expm1.f64 (+.f64 im im)))
(exp.f64 (log.f64 (+.f64 im im)))
(fma.f64 1 im im)
(fma.f64 (pow.f64 (cbrt.f64 im) 2) (cbrt.f64 im) im)
(fma.f64 (sqrt.f64 im) (sqrt.f64 im) im)
(+.f64 im im)
(+.f64 (*.f64 im (+.f64 im im)) (*.f64 im (+.f64 im im)))
(+.f64 (*.f64 (+.f64 im im) im) (*.f64 (+.f64 im im) im))
(-.f64 (+.f64 1 (+.f64 im im)) 1)
(-.f64 (/.f64 (*.f64 im im) 0) (/.f64 (*.f64 im im) 0))
(/.f64 1 (+.f64 im im))
(/.f64 1 (/.f64 (fma.f64 im im 0) (*.f64 2 (pow.f64 im 3))))
(/.f64 (*.f64 2 (pow.f64 im 3)) (fma.f64 im im 0))
(/.f64 0 0)
(/.f64 (*.f64 (*.f64 2 (pow.f64 im 3)) (*.f64 2 (pow.f64 im 3))) (*.f64 (fma.f64 im im 0) (fma.f64 im im 0)))
(/.f64 (cbrt.f64 (*.f64 2 (pow.f64 im 3))) (cbrt.f64 (fma.f64 im im 0)))
(/.f64 (sqrt.f64 0) (sqrt.f64 0))
(/.f64 (sqrt.f64 (*.f64 2 (pow.f64 im 3))) (sqrt.f64 (fma.f64 im im 0)))
(/.f64 (neg.f64 (*.f64 2 (pow.f64 im 3))) (neg.f64 (fma.f64 im im 0)))
(/.f64 (*.f64 0 (*.f64 2 (pow.f64 im 3))) (*.f64 0 (fma.f64 im im 0)))
(/.f64 (*.f64 (*.f64 2 (pow.f64 im 3)) 0) (*.f64 (fma.f64 im im 0) 0))
(/.f64 (*.f64 (*.f64 2 (pow.f64 im 3)) (+.f64 im im)) (fma.f64 im im 0))
(/.f64 (*.f64 0 (+.f64 im im)) 0)
(/.f64 (*.f64 (+.f64 im im) (*.f64 2 (pow.f64 im 3))) (fma.f64 im im 0))
(pow.f64 (+.f64 im im) 1/12)
(pow.f64 (+.f64 im im) 1)
(pow.f64 (+.f64 im im) 2)
(pow.f64 (+.f64 im im) 1/6)
(pow.f64 (+.f64 im im) 3)
(pow.f64 (+.f64 im im) 1/24)
(pow.f64 (+.f64 im im) 4)
(pow.f64 (+.f64 im im) 1/3)
(pow.f64 (+.f64 im im) 1/2)
(pow.f64 (+.f64 im im) 1/4)
(sqrt.f64 (+.f64 im im))
(fabs.f64 (+.f64 im im))
(log.f64 (pow.f64 (exp.f64 2) im))
(cbrt.f64 (+.f64 im im))
(hypot.f64 (sqrt.f64 im) (sqrt.f64 im))
(expm1.f64 (log1p.f64 (+.f64 im im)))
(log1p.f64 (expm1.f64 (+.f64 im im)))
(exp.f64 (log.f64 (+.f64 im im)))
(fma.f64 1 im im)
(fma.f64 (pow.f64 (cbrt.f64 im) 2) (cbrt.f64 im) im)
(fma.f64 (sqrt.f64 im) (sqrt.f64 im) im)
Outputs
(exp.f64 (*.f64 1/12 (+.f64 (log.f64 2) (log.f64 im))))
(pow.f64 (exp.f64 1/12) (+.f64 (log.f64 2) (log.f64 im)))
(exp.f64 (*.f64 1/12 (+.f64 (log.f64 2) (log.f64 im))))
(pow.f64 (exp.f64 1/12) (+.f64 (log.f64 2) (log.f64 im)))
(exp.f64 (*.f64 1/12 (+.f64 (log.f64 2) (log.f64 im))))
(pow.f64 (exp.f64 1/12) (+.f64 (log.f64 2) (log.f64 im)))
(exp.f64 (*.f64 1/12 (+.f64 (log.f64 2) (log.f64 im))))
(pow.f64 (exp.f64 1/12) (+.f64 (log.f64 2) (log.f64 im)))
(exp.f64 (*.f64 1/12 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 im))))))
(pow.f64 (exp.f64 1/12) (+.f64 (log.f64 2) (neg.f64 (neg.f64 (log.f64 im)))))
(exp.f64 (*.f64 1/12 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 im))))))
(pow.f64 (exp.f64 1/12) (+.f64 (log.f64 2) (neg.f64 (neg.f64 (log.f64 im)))))
(exp.f64 (*.f64 1/12 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 im))))))
(pow.f64 (exp.f64 1/12) (+.f64 (log.f64 2) (neg.f64 (neg.f64 (log.f64 im)))))
(exp.f64 (*.f64 1/12 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 im))))))
(pow.f64 (exp.f64 1/12) (+.f64 (log.f64 2) (neg.f64 (neg.f64 (log.f64 im)))))
(pow.f64 (exp.f64 (*.f64 1/12 (+.f64 (log.f64 2) (log.f64 im)))) 2)
0
(pow.f64 (exp.f64 (*.f64 1/12 (+.f64 (log.f64 2) (log.f64 im)))) 2)
0
(pow.f64 (exp.f64 (*.f64 1/12 (+.f64 (log.f64 2) (log.f64 im)))) 2)
0
(pow.f64 (exp.f64 (*.f64 1/12 (+.f64 (log.f64 2) (log.f64 im)))) 2)
0
(pow.f64 (exp.f64 (*.f64 1/12 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 im)))))) 2)
0
(pow.f64 (exp.f64 (*.f64 1/12 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 im)))))) 2)
0
(pow.f64 (exp.f64 (*.f64 1/12 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 im)))))) 2)
0
(pow.f64 (exp.f64 (*.f64 1/12 (+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 im)))))) 2)
0
(+.f64 im im)
0
(+.f64 (*.f64 im (+.f64 im im)) (*.f64 im (+.f64 im im)))
0
(+.f64 (*.f64 (+.f64 im im) im) (*.f64 (+.f64 im im) im))
0
(-.f64 (+.f64 1 (+.f64 im im)) 1)
-1
(-.f64 (/.f64 (*.f64 im im) 0) (/.f64 (*.f64 im im) 0))
0
(*.f64 im 2)
0
(*.f64 1 (+.f64 im im))
0
(*.f64 (+.f64 im im) 1)
0
(*.f64 (+.f64 im im) (+.f64 im im))
0
(*.f64 (cbrt.f64 im) (+.f64 (pow.f64 (cbrt.f64 im) 2) (pow.f64 (cbrt.f64 im) 2)))
(*.f64 0 (cbrt.f64 im))
(*.f64 (pow.f64 (cbrt.f64 im) 2) (+.f64 (cbrt.f64 im) (cbrt.f64 im)))
(*.f64 0 (cbrt.f64 im))
(*.f64 (sqrt.f64 im) (+.f64 (sqrt.f64 im) (sqrt.f64 im)))
(*.f64 2 (*.f64 (sqrt.f64 im) (sqrt.f64 im)))
(*.f64 2 im)
0
(*.f64 2 (*.f64 im (+.f64 im im)))
0
(*.f64 (*.f64 2 (pow.f64 im 3)) (/.f64 1 (fma.f64 im im 0)))
0
(*.f64 0 (/.f64 1 0))
0
(*.f64 4 (*.f64 im im))
(*.f64 (*.f64 im im) 4)
(*.f64 (cbrt.f64 2) (cbrt.f64 im))
(*.f64 (cbrt.f64 im) (cbrt.f64 2))
(*.f64 (sqrt.f64 2) (sqrt.f64 im))
(*.f64 (sqrt.f64 im) (sqrt.f64 2))
(*.f64 (pow.f64 1 1/6) (+.f64 im im))
0
(*.f64 (pow.f64 2 1/6) (pow.f64 im 1/6))
(*.f64 (pow.f64 1 1/12) (+.f64 im im))
0
(*.f64 (pow.f64 2 1/12) (pow.f64 im 1/12))
(*.f64 (pow.f64 1 1/24) (+.f64 im im))
0
(*.f64 (pow.f64 2 1/24) (pow.f64 im 1/24))
(*.f64 (pow.f64 (+.f64 im im) 1/48) (pow.f64 (+.f64 im im) 1/48))
0
(*.f64 (*.f64 (+.f64 im im) 2) im)
0
(*.f64 (*.f64 2 (pow.f64 (cbrt.f64 im) 2)) (cbrt.f64 im))
(*.f64 0 (cbrt.f64 im))
(*.f64 (*.f64 2 (sqrt.f64 im)) (sqrt.f64 im))
(*.f64 2 (*.f64 (sqrt.f64 im) (sqrt.f64 im)))
(/.f64 1 (+.f64 im im))
0
(/.f64 1 (/.f64 (fma.f64 im im 0) (*.f64 2 (pow.f64 im 3))))
0
(/.f64 (*.f64 2 (pow.f64 im 3)) (fma.f64 im im 0))
(/.f64 2 (/.f64 (fma.f64 im im 0) (pow.f64 im 3)))
(/.f64 0 0)
0
(/.f64 (*.f64 (*.f64 2 (pow.f64 im 3)) (*.f64 2 (pow.f64 im 3))) (*.f64 (fma.f64 im im 0) (fma.f64 im im 0)))
(/.f64 (*.f64 4 (*.f64 (pow.f64 im 3) (pow.f64 im 3))) (*.f64 (fma.f64 im im 0) (fma.f64 im im 0)))
(/.f64 (cbrt.f64 (*.f64 2 (pow.f64 im 3))) (cbrt.f64 (fma.f64 im im 0)))
(/.f64 (sqrt.f64 0) (sqrt.f64 0))
0
(/.f64 (sqrt.f64 (*.f64 2 (pow.f64 im 3))) (sqrt.f64 (fma.f64 im im 0)))
(/.f64 (neg.f64 (*.f64 2 (pow.f64 im 3))) (neg.f64 (fma.f64 im im 0)))
(/.f64 (*.f64 -2 (pow.f64 im 3)) (neg.f64 (fma.f64 im im 0)))
(/.f64 (*.f64 0 (*.f64 2 (pow.f64 im 3))) (*.f64 0 (fma.f64 im im 0)))
0
(/.f64 (*.f64 (*.f64 2 (pow.f64 im 3)) 0) (*.f64 (fma.f64 im im 0) 0))
0
(/.f64 (*.f64 (*.f64 2 (pow.f64 im 3)) (+.f64 im im)) (fma.f64 im im 0))
0
(/.f64 (*.f64 0 (+.f64 im im)) 0)
0
(/.f64 (*.f64 (+.f64 im im) (*.f64 2 (pow.f64 im 3))) (fma.f64 im im 0))
0
(sqrt.f64 (+.f64 im im))
0
(fabs.f64 (+.f64 im im))
0
(log.f64 (pow.f64 (exp.f64 2) im))
(*.f64 im (log.f64 (exp.f64 2)))
(cbrt.f64 (+.f64 im im))
0
(hypot.f64 (sqrt.f64 im) (sqrt.f64 im))
(expm1.f64 (log1p.f64 (+.f64 im im)))
0
(log1p.f64 (expm1.f64 (+.f64 im im)))
0
(exp.f64 (log.f64 (+.f64 im im)))
0
(fma.f64 1 im im)
(+.f64 0 im)
(fma.f64 (pow.f64 (cbrt.f64 im) 2) (cbrt.f64 im) im)
(fma.f64 0 (cbrt.f64 im) im)
(fma.f64 (sqrt.f64 im) (sqrt.f64 im) im)
(+.f64 im im)
0
(+.f64 (*.f64 im (+.f64 im im)) (*.f64 im (+.f64 im im)))
0
(+.f64 (*.f64 (+.f64 im im) im) (*.f64 (+.f64 im im) im))
0
(-.f64 (+.f64 1 (+.f64 im im)) 1)
-1
(-.f64 (/.f64 (*.f64 im im) 0) (/.f64 (*.f64 im im) 0))
0
(/.f64 1 (+.f64 im im))
0
(/.f64 1 (/.f64 (fma.f64 im im 0) (*.f64 2 (pow.f64 im 3))))
0
(/.f64 (*.f64 2 (pow.f64 im 3)) (fma.f64 im im 0))
(/.f64 2 (/.f64 (fma.f64 im im 0) (pow.f64 im 3)))
(/.f64 0 0)
0
(/.f64 (*.f64 (*.f64 2 (pow.f64 im 3)) (*.f64 2 (pow.f64 im 3))) (*.f64 (fma.f64 im im 0) (fma.f64 im im 0)))
(/.f64 (*.f64 4 (*.f64 (pow.f64 im 3) (pow.f64 im 3))) (*.f64 (fma.f64 im im 0) (fma.f64 im im 0)))
(/.f64 (cbrt.f64 (*.f64 2 (pow.f64 im 3))) (cbrt.f64 (fma.f64 im im 0)))
(/.f64 (sqrt.f64 0) (sqrt.f64 0))
0
(/.f64 (sqrt.f64 (*.f64 2 (pow.f64 im 3))) (sqrt.f64 (fma.f64 im im 0)))
(/.f64 (neg.f64 (*.f64 2 (pow.f64 im 3))) (neg.f64 (fma.f64 im im 0)))
(/.f64 (*.f64 -2 (pow.f64 im 3)) (neg.f64 (fma.f64 im im 0)))
(/.f64 (*.f64 0 (*.f64 2 (pow.f64 im 3))) (*.f64 0 (fma.f64 im im 0)))
0
(/.f64 (*.f64 (*.f64 2 (pow.f64 im 3)) 0) (*.f64 (fma.f64 im im 0) 0))
0
(/.f64 (*.f64 (*.f64 2 (pow.f64 im 3)) (+.f64 im im)) (fma.f64 im im 0))
0
(/.f64 (*.f64 0 (+.f64 im im)) 0)
0
(/.f64 (*.f64 (+.f64 im im) (*.f64 2 (pow.f64 im 3))) (fma.f64 im im 0))
0
(pow.f64 (+.f64 im im) 1/12)
0
(pow.f64 (+.f64 im im) 1)
0
(pow.f64 (+.f64 im im) 2)
0
(pow.f64 (+.f64 im im) 1/6)
0
(pow.f64 (+.f64 im im) 3)
0
(pow.f64 (+.f64 im im) 1/24)
0
(pow.f64 (+.f64 im im) 4)
0
(pow.f64 (+.f64 im im) 1/3)
0
(pow.f64 (+.f64 im im) 1/2)
0
(pow.f64 (+.f64 im im) 1/4)
0
(sqrt.f64 (+.f64 im im))
0
(fabs.f64 (+.f64 im im))
0
(log.f64 (pow.f64 (exp.f64 2) im))
(*.f64 im (log.f64 (exp.f64 2)))
(cbrt.f64 (+.f64 im im))
0
(hypot.f64 (sqrt.f64 im) (sqrt.f64 im))
(expm1.f64 (log1p.f64 (+.f64 im im)))
0
(log1p.f64 (expm1.f64 (+.f64 im im)))
0
(exp.f64 (log.f64 (+.f64 im im)))
0
(fma.f64 1 im im)
(+.f64 0 im)
(fma.f64 (pow.f64 (cbrt.f64 im) 2) (cbrt.f64 im) im)
(fma.f64 0 (cbrt.f64 im) im)
(fma.f64 (sqrt.f64 im) (sqrt.f64 im) im)

eval108.0ms (0.4%)

Compiler

Compiled 5509 to 3556 computations (35.5% saved)

prune190.0ms (0.7%)

Pruning

52 alts after pruning (42 fresh and 10 done)

PrunedKeptTotal
New39022412
Fresh52025
Picked101
Done11011
Total39752449
Error
6.6b
Counts
449 → 52
Alt Table
Click to see full alt table
StatusErrorProgram
58.7b
(-.f64 (+.f64 1 (*.f64 (+.f64 im im) 1/2)) 1)
60.5b
(*.f64 1/2 (pow.f64 (+.f64 im im) 4))
59.2b
(*.f64 1/2 (pow.f64 (+.f64 im im) 3/2))
59.1b
(*.f64 1/2 (pow.f64 (+.f64 im im) 1/4))
59.4b
(*.f64 1/2 (pow.f64 (+.f64 im im) 1/6))
59.6b
(*.f64 1/2 (pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (+.f64 im im))) 2)) (cbrt.f64 (log.f64 (+.f64 im im)))))
59.6b
(*.f64 1/2 (pow.f64 (exp.f64 1) (+.f64 -2 (log.f64 im))))
59.6b
(*.f64 1/2 (pow.f64 (exp.f64 1) (log.f64 (+.f64 im im))))
25.4b
(*.f64 1/2 (pow.f64 (cbrt.f64 (+.f64 im im)) 3/2))
61.1b
(*.f64 1/2 (/.f64 1 (+.f64 im im)))
58.7b
(*.f64 1/2 (-.f64 (+.f64 1 (+.f64 im im)) 1))
61.1b
(*.f64 1/2 (+.f64 im -2))
59.6b
(*.f64 1/2 (+.f64 0 im))
59.0b
(*.f64 1/2 (*.f64 (pow.f64 (+.f64 im im) 3/8) (pow.f64 (+.f64 im im) 3/8)))
58.1b
(*.f64 1/2 (*.f64 (pow.f64 (+.f64 im im) 1/12) (hypot.f64 (sqrt.f64 im) (sqrt.f64 im))))
59.6b
(*.f64 1/2 (*.f64 (pow.f64 (+.f64 im im) 1/12) (+.f64 im im)))
59.6b
(*.f64 1/2 (*.f64 (pow.f64 (+.f64 im im) 1/12) (+.f64 0 im)))
59.9b
(*.f64 1/2 (*.f64 (pow.f64 (+.f64 im im) 1/12) (*.f64 (*.f64 im im) 4)))
59.6b
(*.f64 1/2 (*.f64 (pow.f64 (+.f64 im im) 1/12) (*.f64 (*.f64 2 (pow.f64 (cbrt.f64 im) 2)) (cbrt.f64 im))))
58.1b
(*.f64 1/2 (*.f64 (pow.f64 (+.f64 im im) 1/12) (*.f64 (sqrt.f64 im) (sqrt.f64 2))))
58.1b
(*.f64 1/2 (*.f64 (pow.f64 (+.f64 im im) 1/12) (sqrt.f64 (+.f64 im im))))
59.6b
(*.f64 1/2 (*.f64 (pow.f64 (+.f64 im im) 1/12) (exp.f64 (log.f64 (+.f64 im im)))))
58.2b
(*.f64 1/2 (*.f64 (pow.f64 (+.f64 im im) 1/12) (cbrt.f64 (+.f64 im im))))
24.9b
(*.f64 1/2 (*.f64 (pow.f64 im 1/4) (sqrt.f64 (*.f64 2 (sqrt.f64 im)))))
59.2b
(*.f64 1/2 (*.f64 (pow.f64 2 3/2) (pow.f64 im 3/2)))
59.0b
(*.f64 1/2 (*.f64 (pow.f64 2 3/4) (pow.f64 im 3/4)))
59.8b
(*.f64 1/2 (*.f64 (*.f64 im im) 4))
56.3b
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 (*.f64 im im) (/.f64 re 1/2))) (sqrt.f64 2)))
23.8b
(*.f64 1/2 (*.f64 (sqrt.f64 (-.f64 im re)) (sqrt.f64 2)))
25.0b
(*.f64 1/2 (*.f64 (sqrt.f64 im) (sqrt.f64 2)))
59.6b
(*.f64 1/2 (*.f64 (exp.f64 -2) im))
58.8b
(*.f64 1/2 (*.f64 (cbrt.f64 im) (cbrt.f64 2)))
59.8b
(*.f64 1/2 (*.f64 2 (*.f64 im (+.f64 im im))))
25.0b
(*.f64 1/2 (sqrt.f64 (*.f64 im 2)))
56.3b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (/.f64 (*.f64 im im) (/.f64 re 1/2)))))
11.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))))
23.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 im re))))
51.4b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 re -2))))
60.6b
(*.f64 1/2 (sqrt.f64 (*.f64 -2 re)))
59.6b
(*.f64 1/2 (exp.f64 (fma.f64 (pow.f64 (cbrt.f64 (log.f64 im)) 2) (cbrt.f64 (log.f64 im)) -2)))
59.6b
(*.f64 1/2 (exp.f64 (pow.f64 (cbrt.f64 (+.f64 -2 (log.f64 im))) 3)))
59.6b
(*.f64 1/2 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (+.f64 im im))) 3)))
59.6b
(*.f64 1/2 (exp.f64 (-.f64 (/.f64 4 (-.f64 -2 (log.f64 im))) (/.f64 (pow.f64 (log.f64 im) 2) (-.f64 -2 (log.f64 im))))))
59.8b
(*.f64 1/2 (exp.f64 (+.f64 (log.f64 (+.f64 im im)) (log.f64 (+.f64 im im)))))
59.6b
(*.f64 1/2 (exp.f64 (+.f64 -2 (log.f64 im))))
27.7b
(*.f64 1/2 (exp.f64 (*.f64 (log.f64 (+.f64 im im)) 1/2)))
59.6b
(*.f64 1/2 (exp.f64 (log.f64 (+.f64 im im))))
58.8b
(*.f64 1/2 (cbrt.f64 (+.f64 im im)))
59.8b
(*.f64 1/2 1)
60.3b
(*.f64 1/2 0)
59.6b
(exp.f64 (log.f64 (*.f64 (+.f64 im im) 1/2)))
59.6b
im
Compiler

Compiled 581 to 452 computations (22.2% saved)

regimes676.0ms (2.5%)

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

12 calls:

93.0ms
(*.f64 2 (-.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))
88.0ms
(*.f64 2 (-.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))
77.0ms
(-.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)
64.0ms
re
54.0ms
(-.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)
Results
ErrorSegmentsBranch
11.9b1re
11.9b1im
10.0b2(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))))
10.0b2(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))))
10.0b2(sqrt.f64 (*.f64 2 (-.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)))
10.0b2(sqrt.f64 (*.f64 2 (-.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)))
10.0b3(*.f64 2 (-.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))
10.0b3(*.f64 2 (-.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))
10.0b3(-.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)
10.0b3(-.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)
11.9b1(*.f64 im im)
11.9b1(*.f64 im im)
Compiler

Compiled 715 to 448 computations (37.3% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.0
7.170984716088688e-153
Compiler

Compiled 22 to 16 computations (27.3% saved)

regimes205.0ms (0.7%)

Counts
39 → 3
Calls
Call 1
Inputs
im
(*.f64 1/2 0)
(*.f64 1/2 1)
(*.f64 1/2 (+.f64 -2 im))
(*.f64 1/2 (+.f64 0 im))
(*.f64 1/2 (+.f64 im -2))
(*.f64 1/2 (+.f64 im im))
(*.f64 1/2 (*.f64 (*.f64 im im) 4))
(*.f64 1/2 (/.f64 1 (+.f64 im im)))
(*.f64 1/2 (*.f64 2 (*.f64 im (+.f64 im im))))
(*.f64 1/2 (-.f64 (+.f64 1 (+.f64 im im)) 1))
(-.f64 (+.f64 1 (*.f64 (+.f64 im im) 1/2)) 1)
(*.f64 1/2 (sqrt.f64 0))
(*.f64 1/2 (cbrt.f64 (+.f64 im im)))
(*.f64 1/2 (sqrt.f64 (*.f64 -2 re)))
(*.f64 1/2 (sqrt.f64 (*.f64 im 2)))
(*.f64 1/2 (*.f64 (exp.f64 -2) im))
(*.f64 1/2 (pow.f64 (+.f64 im im) 1/6))
(*.f64 1/2 (pow.f64 (+.f64 im im) 1/4))
(*.f64 1/2 (pow.f64 (+.f64 im im) 3/2))
(*.f64 1/2 (pow.f64 (+.f64 im im) 3))
(*.f64 1/2 (pow.f64 (+.f64 im im) 4))
(*.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 (+.f64 im im) 1/12) (+.f64 0 im)))
(*.f64 1/2 (*.f64 (pow.f64 (+.f64 im im) 1/12) (+.f64 im im)))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (/.f64 (*.f64 im im) (/.f64 re 1/2)))))
(*.f64 1/2 (*.f64 (pow.f64 (+.f64 im im) 1/12) (*.f64 (*.f64 im im) 4)))
(exp.f64 (log.f64 (*.f64 (+.f64 im im) 1/2)))
(*.f64 1/2 (exp.f64 (log.f64 (+.f64 im im))))
(*.f64 1/2 (exp.f64 (+.f64 -2 (log.f64 im))))
(*.f64 1/2 (*.f64 (cbrt.f64 im) (cbrt.f64 2)))
(*.f64 1/2 (*.f64 (sqrt.f64 im) (sqrt.f64 2)))
(*.f64 1/2 (pow.f64 (cbrt.f64 (+.f64 im im)) 3/2))
(*.f64 1/2 (exp.f64 (*.f64 (log.f64 (+.f64 im im)) 1/2)))
(*.f64 1/2 (*.f64 (sqrt.f64 (-.f64 im re)) (sqrt.f64 2)))
(*.f64 1/2 (*.f64 (pow.f64 2 3/4) (pow.f64 im 3/4)))
(*.f64 1/2 (*.f64 (pow.f64 2 3/2) (pow.f64 im 3/2)))
(*.f64 1/2 (pow.f64 (pow.f64 (+.f64 im im) 3/2) 1/3))
Outputs
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 re -2))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 im re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (/.f64 (*.f64 im im) (/.f64 re 1/2)))))
Calls

4 calls:

96.0ms
im
52.0ms
re
25.0ms
(*.f64 im im)
22.0ms
(*.f64 im im)
Results
ErrorSegmentsBranch
16.3b3re
22.2b2im
22.4b2(*.f64 im im)
22.4b2(*.f64 im im)
Compiler

Compiled 300 to 204 computations (32% saved)

bsearch59.0ms (0.2%)

Algorithm
binary-search
Steps
TimeLeftRight
38.0ms
3.546546509822184e+184
2.448350403395014e+186
21.0ms
-3.6939428391451526e+182
-7.209015503782516e+174
Results
24.0ms177×body256valid
15.0ms37×body2048valid
13.0ms29×body4096valid
2.0msbody512valid
1.0msbody1024valid
Compiler

Compiled 402 to 334 computations (16.9% saved)

regimes117.0ms (0.4%)

Counts
26 → 2
Calls
Call 1
Inputs
im
(*.f64 1/2 0)
(*.f64 1/2 1)
(*.f64 1/2 (+.f64 -2 im))
(*.f64 1/2 (+.f64 0 im))
(*.f64 1/2 (+.f64 im -2))
(*.f64 1/2 (+.f64 im im))
(*.f64 1/2 (*.f64 (*.f64 im im) 4))
(*.f64 1/2 (/.f64 1 (+.f64 im im)))
(*.f64 1/2 (*.f64 2 (*.f64 im (+.f64 im im))))
(*.f64 1/2 (-.f64 (+.f64 1 (+.f64 im im)) 1))
(-.f64 (+.f64 1 (*.f64 (+.f64 im im) 1/2)) 1)
(*.f64 1/2 (sqrt.f64 0))
(*.f64 1/2 (cbrt.f64 (+.f64 im im)))
(*.f64 1/2 (sqrt.f64 (*.f64 -2 re)))
(*.f64 1/2 (sqrt.f64 (*.f64 im 2)))
(*.f64 1/2 (*.f64 (exp.f64 -2) im))
(*.f64 1/2 (pow.f64 (+.f64 im im) 1/6))
(*.f64 1/2 (pow.f64 (+.f64 im im) 1/4))
(*.f64 1/2 (pow.f64 (+.f64 im im) 3/2))
(*.f64 1/2 (pow.f64 (+.f64 im im) 3))
(*.f64 1/2 (pow.f64 (+.f64 im im) 4))
(*.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 (+.f64 im im) 1/12) (+.f64 0 im)))
(*.f64 1/2 (*.f64 (pow.f64 (+.f64 im im) 1/12) (+.f64 im im)))
Outputs
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 re -2))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 im re))))
Calls

4 calls:

40.0ms
re
37.0ms
im
17.0ms
(*.f64 im im)
16.0ms
(*.f64 im im)
Results
ErrorSegmentsBranch
18.8b2re
22.2b2im
22.4b2(*.f64 im im)
22.4b2(*.f64 im im)
Compiler

Compiled 187 to 126 computations (32.6% saved)

bsearch19.0ms (0.1%)

Algorithm
binary-search
Steps
TimeLeftRight
19.0ms
-3.6939428391451526e+182
-7.209015503782516e+174
Results
17.0ms144×body256valid
Compiler

Compiled 220 to 187 computations (15% saved)

regimes97.0ms (0.4%)

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

4 calls:

40.0ms
re
21.0ms
im
14.0ms
(*.f64 im im)
14.0ms
(*.f64 im im)
Results
ErrorSegmentsBranch
18.9b2re
23.0b2im
23.1b2(*.f64 im im)
23.1b2(*.f64 im im)
Compiler

Compiled 157 to 108 computations (31.2% saved)

bsearch27.0ms (0.1%)

Algorithm
binary-search
Steps
TimeLeftRight
27.0ms
-1.5020559922919198e+91
-9.022923633634432e+77
Results
19.0ms160×body256valid
Compiler

Compiled 222 to 196 computations (11.7% saved)

regimes43.0ms (0.2%)

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

4 calls:

12.0ms
re
11.0ms
im
8.0ms
(*.f64 im im)
7.0ms
(*.f64 im im)
Results
ErrorSegmentsBranch
25.0b1re
25.0b1im
25.0b1(*.f64 im im)
25.0b1(*.f64 im im)
Compiler

Compiled 149 to 101 computations (32.2% saved)

regimes98.0ms (0.4%)

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

4 calls:

41.0ms
(*.f64 im im)
26.0ms
re
16.0ms
im
11.0ms
(*.f64 im im)
Results
ErrorSegmentsBranch
55.7b3re
57.2b2im
57.3b2(*.f64 im im)
57.3b2(*.f64 im im)
Compiler

Compiled 102 to 71 computations (30.4% saved)

bsearch55.0ms (0.2%)

Algorithm
binary-search
Steps
TimeLeftRight
36.0ms
3.546546509822184e+184
2.448350403395014e+186
19.0ms
-2.086560382311362e-59
-9.800637759820676e-69
Results
21.0ms177×body256valid
14.0ms27×body4096valid
11.0ms30×body2048valid
5.0ms16×body1024valid
1.0msbody512valid
Compiler

Compiled 331 to 270 computations (18.4% saved)

regimes78.0ms (0.3%)

Counts
14 → 2
Calls
Call 1
Inputs
im
(*.f64 1/2 0)
(*.f64 1/2 1)
(*.f64 1/2 (+.f64 -2 im))
(*.f64 1/2 (+.f64 0 im))
(*.f64 1/2 (+.f64 im -2))
(*.f64 1/2 (+.f64 im im))
(*.f64 1/2 (*.f64 (*.f64 im im) 4))
(*.f64 1/2 (/.f64 1 (+.f64 im im)))
(*.f64 1/2 (*.f64 2 (*.f64 im (+.f64 im im))))
(*.f64 1/2 (-.f64 (+.f64 1 (+.f64 im im)) 1))
(-.f64 (+.f64 1 (*.f64 (+.f64 im im) 1/2)) 1)
(*.f64 1/2 (sqrt.f64 0))
(*.f64 1/2 (cbrt.f64 (+.f64 im im)))
Outputs
(*.f64 1/2 0)
(*.f64 1/2 (cbrt.f64 (+.f64 im im)))
Calls

4 calls:

39.0ms
re
14.0ms
im
11.0ms
(*.f64 im im)
11.0ms
(*.f64 im im)
Results
ErrorSegmentsBranch
57.2b2re
57.2b2im
57.3b2(*.f64 im im)
57.3b2(*.f64 im im)
Compiler

Compiled 96 to 66 computations (31.3% saved)

bsearch64.0ms (0.2%)

Algorithm
binary-search
Steps
TimeLeftRight
64.0ms
2.5802076731221315e-213
2.627948197254593e-210
Results
42.0ms29×body4096valid
9.0ms66×body256valid
7.0ms18×body2048valid
3.0ms11×body1024valid
1.0msbody512valid
Compiler

Compiled 142 to 120 computations (15.5% saved)

regimes29.0ms (0.1%)

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

4 calls:

9.0ms
im
7.0ms
re
5.0ms
(*.f64 im im)
5.0ms
(*.f64 im im)
Results
ErrorSegmentsBranch
58.7b1re
58.7b1im
58.7b1(*.f64 im im)
58.7b1(*.f64 im im)
Compiler

Compiled 90 to 63 computations (30% saved)

regimes50.0ms (0.2%)

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

4 calls:

28.0ms
(*.f64 im im)
7.0ms
im
6.0ms
re
5.0ms
(*.f64 im im)
Results
ErrorSegmentsBranch
58.7b1re
58.7b1im
58.7b1(*.f64 im im)
58.7b1(*.f64 im im)
Compiler

Compiled 77 to 53 computations (31.2% saved)

regimes43.0ms (0.2%)

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

4 calls:

13.0ms
im
11.0ms
re
9.0ms
(*.f64 im im)
8.0ms
(*.f64 im im)
Results
ErrorSegmentsBranch
58.1b2re
58.1b2im
58.2b2(*.f64 im im)
58.2b2(*.f64 im im)
Compiler

Compiled 68 to 47 computations (30.9% saved)

bsearch32.0ms (0.1%)

Algorithm
binary-search
Steps
TimeLeftRight
31.0ms
9.19445670754821e-220
1.6806208778478232e-217
Results
12.0ms23×body4096valid
7.0ms19×body2048valid
7.0ms58×body256valid
3.0msbody1024valid
1.0msbody512valid
Compiler

Compiled 120 to 107 computations (10.8% saved)

regimes16.0ms (0.1%)

Accuracy

Total -4.4b remaining (-7.7%)

Threshold costs -4.4b (-7.7%)

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

2 calls:

8.0ms
re
7.0ms
im
Results
ErrorSegmentsBranch
58.1b2re
58.1b2im
Compiler

Compiled 20 to 16 computations (20% saved)

bsearch30.0ms (0.1%)

Algorithm
binary-search
Steps
TimeLeftRight
30.0ms
9.19445670754821e-220
1.6806208778478232e-217
Results
8.0ms17×body4096valid
7.0ms63×body256valid
7.0ms11×body1024valid
5.0ms14×body2048valid
1.0msbody512valid
Compiler

Compiled 92 to 79 computations (14.1% saved)

simplify15.0ms (0.1%)

Algorithm
egg-herbie
Rules
18×*-commutative_binary64
10×+-commutative_binary64
sub-neg_binary64
+-lft-identity_binary64
neg-sub0_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
081283
1112283
2119283
3121283
4122283
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(if (<=.f64 (sqrt.f64 (*.f64 2 (-.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))) 0) (*.f64 1/2 (sqrt.f64 (*.f64 2 (/.f64 (*.f64 im im) (/.f64 re 1/2))))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))))
(if (<=.f64 re -8200000000000000609386758826961482264858739120610900803093405131809736449390677926230208130603622074082501560254532314673159540889399233242350093290520933062104406626297446400) (*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 re -2)))) (if (<=.f64 re 42000000000000000351583831030549269903796902894653394480255339529473772181379582700118932702124264040861857535299247642262987419711358338910380662332576962881039932366025777456359669760) (*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 im re)))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (/.f64 (*.f64 im im) (/.f64 re 1/2)))))))
(if (<=.f64 re -7400000000000000378481884698142207211178217785445284761720835183663792912378646367427353195930102911403694772977761740150133662147106658535464335122912957542001416465150902272) (*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 re -2)))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 im re)))))
(if (<=.f64 re -4999999999999999817033982815443287105513571612636783896840181921713543250771443712) (*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 re -2)))) (*.f64 1/2 (sqrt.f64 (*.f64 im 2))))
(*.f64 1/2 (sqrt.f64 (*.f64 im 2)))
(if (<=.f64 re -4978089036328431/60708402882054033466233184588234965832575213720379360039119137804340758912662765568) (*.f64 1/2 (sqrt.f64 (*.f64 -2 re))) (if (<=.f64 re 61999999999999996924754774548390491532695827141375114788071005575470398576125764704343031710613102073532527621004825051465957590275010024324290853991144438003978708318708487055202058240) (*.f64 1/2 (cbrt.f64 (+.f64 im im))) (*.f64 1/2 (-.f64 (+.f64 1 (+.f64 im im)) 1))))
(if (<=.f64 im 5448595599810227/11844773043065711480323635013294239465766037117894719018089691452225120183459296312949206610325977157215024800850914559983608856537741198665193842125253152001987113769690322155382272992184436377145866387891513586051123404341248) (*.f64 1/2 0) (*.f64 1/2 (cbrt.f64 (+.f64 im im))))
(-.f64 (+.f64 1 (*.f64 (+.f64 im im) 1/2)) 1)
(*.f64 1/2 (-.f64 (+.f64 1 (+.f64 im im)) 1))
(if (<=.f64 im 7452086843043403/99361157907245371849534687261600163536440705095468583112899330433667260971928120725176218165033374588831214764616388685194981122823348121052434385602635592909085118465334393955216978280422300468816831948397854000057142198644227702784) (*.f64 1/2 0) (*.f64 1/2 (+.f64 0 im)))
(if (<=.f64 im 8197295527347743/49680578953622685924767343630800081768220352547734291556449665216833630485964060362588109082516687294415607382308194342597490561411674060526217192801317796454542559232667196977608489140211150234408415974198927000028571099322113851392) (*.f64 1/2 0) im)
im
Outputs
(if (<=.f64 (sqrt.f64 (*.f64 2 (-.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))) 0) (*.f64 1/2 (sqrt.f64 (*.f64 2 (/.f64 (*.f64 im im) (/.f64 re 1/2))))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))))
(if (<=.f64 re -8200000000000000609386758826961482264858739120610900803093405131809736449390677926230208130603622074082501560254532314673159540889399233242350093290520933062104406626297446400) (*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 re -2)))) (if (<=.f64 re 42000000000000000351583831030549269903796902894653394480255339529473772181379582700118932702124264040861857535299247642262987419711358338910380662332576962881039932366025777456359669760) (*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 im re)))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (/.f64 (*.f64 im im) (/.f64 re 1/2)))))))
(if (<=.f64 re -7400000000000000378481884698142207211178217785445284761720835183663792912378646367427353195930102911403694772977761740150133662147106658535464335122912957542001416465150902272) (*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 re -2)))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 im re)))))
(if (<=.f64 re -4999999999999999817033982815443287105513571612636783896840181921713543250771443712) (*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 re -2)))) (*.f64 1/2 (sqrt.f64 (*.f64 im 2))))
(if (<=.f64 re -4999999999999999817033982815443287105513571612636783896840181921713543250771443712) (*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 re -2)))) (*.f64 1/2 (sqrt.f64 (*.f64 2 im))))
(*.f64 1/2 (sqrt.f64 (*.f64 im 2)))
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
(if (<=.f64 re -4978089036328431/60708402882054033466233184588234965832575213720379360039119137804340758912662765568) (*.f64 1/2 (sqrt.f64 (*.f64 -2 re))) (if (<=.f64 re 61999999999999996924754774548390491532695827141375114788071005575470398576125764704343031710613102073532527621004825051465957590275010024324290853991144438003978708318708487055202058240) (*.f64 1/2 (cbrt.f64 (+.f64 im im))) (*.f64 1/2 (-.f64 (+.f64 1 (+.f64 im im)) 1))))
(if (<=.f64 re -4978089036328431/60708402882054033466233184588234965832575213720379360039119137804340758912662765568) (*.f64 1/2 (sqrt.f64 (*.f64 re -2))) (if (<=.f64 re 61999999999999996924754774548390491532695827141375114788071005575470398576125764704343031710613102073532527621004825051465957590275010024324290853991144438003978708318708487055202058240) (*.f64 1/2 (cbrt.f64 (+.f64 im im))) (*.f64 1/2 (+.f64 (+.f64 (+.f64 im im) 1) -1))))
(if (<=.f64 im 5448595599810227/11844773043065711480323635013294239465766037117894719018089691452225120183459296312949206610325977157215024800850914559983608856537741198665193842125253152001987113769690322155382272992184436377145866387891513586051123404341248) (*.f64 1/2 0) (*.f64 1/2 (cbrt.f64 (+.f64 im im))))
(if (<=.f64 im 5448595599810227/11844773043065711480323635013294239465766037117894719018089691452225120183459296312949206610325977157215024800850914559983608856537741198665193842125253152001987113769690322155382272992184436377145866387891513586051123404341248) 0 (*.f64 1/2 (cbrt.f64 (+.f64 im im))))
(-.f64 (+.f64 1 (*.f64 (+.f64 im im) 1/2)) 1)
(+.f64 (+.f64 1 (*.f64 1/2 (+.f64 im im))) -1)
(*.f64 1/2 (-.f64 (+.f64 1 (+.f64 im im)) 1))
(*.f64 1/2 (+.f64 (+.f64 (+.f64 im im) 1) -1))
(if (<=.f64 im 7452086843043403/99361157907245371849534687261600163536440705095468583112899330433667260971928120725176218165033374588831214764616388685194981122823348121052434385602635592909085118465334393955216978280422300468816831948397854000057142198644227702784) (*.f64 1/2 0) (*.f64 1/2 (+.f64 0 im)))
(if (<=.f64 im 7452086843043403/99361157907245371849534687261600163536440705095468583112899330433667260971928120725176218165033374588831214764616388685194981122823348121052434385602635592909085118465334393955216978280422300468816831948397854000057142198644227702784) 0 (*.f64 im 1/2))
(if (<=.f64 im 8197295527347743/49680578953622685924767343630800081768220352547734291556449665216833630485964060362588109082516687294415607382308194342597490561411674060526217192801317796454542559232667196977608489140211150234408415974198927000028571099322113851392) (*.f64 1/2 0) im)
(if (<=.f64 im 8197295527347743/49680578953622685924767343630800081768220352547734291556449665216833630485964060362588109082516687294415607382308194342597490561411674060526217192801317796454542559232667196977608489140211150234408415974198927000028571099322113851392) 0 im)
im
Compiler

Compiled 215 to 167 computations (22.3% saved)

soundness166.0ms (0.6%)

Algorithm
egg-herbie
Rules
657×associate-/l*_binary64
340×unswap-sqr_binary64
252×fma-neg_binary64
241×fma-def_binary64
203×fma-def_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
02972365
18571987
231101640
01315
12015
23315
35315
48015
510915
618015
728615
840715
949015
1060715
1167915
1270215
1374315
1479215
1585515
1689115
1790015
Stop Event
saturated
node limit
saturated
Compiler

Compiled 94 to 69 computations (26.6% saved)

end200.0ms (0.7%)

Compiler

Compiled 193 to 139 computations (28% saved)

Profiling

Loading profile data...