Details

Time bar (total: 8.6s)

analyze178.0ms (2.1%)

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.6s (18.7%)

Results
851.0ms6419×body256valid
300.0ms539×body4096valid
273.0ms648×body2048valid
124.0ms406×body1024valid
55.0ms244×body512valid
Bogosity

preprocess39.0ms (0.5%)

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)

simplify31.0ms (0.4%)

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

Compiled 12 to 9 computations (25% saved)

localize18.0ms (0.2%)

Local error

Found 1 expressions with local error:

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

Compiled 39 to 16 computations (59% saved)

series29.0ms (0.3%)

Counts
1 → 0
Calls

6 calls:

TimeVariablePointExpression
1.0ms
re
@inf
(-.f64 (hypot.f64 re im) re)
1.0ms
im
@0
(-.f64 (hypot.f64 re im) re)
1.0ms
re
@0
(-.f64 (hypot.f64 re im) re)
1.0ms
re
@-inf
(-.f64 (hypot.f64 re im) re)
0.0ms
im
@inf
(-.f64 (hypot.f64 re im) re)
Compiler

Compiled 2705 to 2180 computations (19.4% saved)

rewrite42.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
622×pow1_binary64
578×add-log-exp_binary64
578×log1p-expm1-u_binary64
578×expm1-log1p-u_binary64
565×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
057
11117
215447
Stop Event
node limit
Counts
1 → 35
Calls
Call 1
Inputs
(-.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))))))

simplify40.0ms (0.5%)

Algorithm
egg-herbie
Rules
754×div-sub_binary64
608×fma-neg_binary64
354×associate-*l*_binary64
333×fma-def_binary64
331×associate-*r*_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
093395
1250370
2862370
34545370
Stop Event
node limit
Counts
35 → 38
Calls
Call 1
Inputs
(+.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))
Outputs
(+.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 (-.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) 3) (pow.f64 re 3)) (fma.f64 re re (*.f64 (hypot.f64 re im) (+.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 (hypot.f64 re im) re)
(*.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)) (/.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) 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) 3) (pow.f64 re 3)) (fma.f64 re re (*.f64 (hypot.f64 re im) (+.f64 re (hypot.f64 re im)))))
(/.f64 1 (/.f64 (+.f64 re (hypot.f64 re im)) (-.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 re re))))
(-.f64 (hypot.f64 re im) 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) 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) 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) 3) (pow.f64 re 3)) (fma.f64 re re (*.f64 (hypot.f64 re im) (+.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 (hypot.f64 re im) re)
(/.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 (-.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) 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) 3) (pow.f64 re 3)) (fma.f64 re re (*.f64 (hypot.f64 re im) (+.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 (hypot.f64 re im) re)
(/.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) 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) 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) 3) (pow.f64 re 3)) (fma.f64 re re (*.f64 (hypot.f64 re im) (+.f64 re (hypot.f64 re im)))))
(/.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 (hypot.f64 re im) re)
(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)

eval10.0ms (0.1%)

Compiler

Compiled 690 to 362 computations (47.5% saved)

prune7.0ms (0.1%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New34438
Fresh000
Picked011
Done000
Total34539
Error
12.8b
Counts
39 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
16.2b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (cbrt.f64 (hypot.f64 re im)) (neg.f64 re)))))
15.7b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re)))))
13.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))))
50.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (fma.f64 (neg.f64 (sqrt.f64 re)) (sqrt.f64 re) re)))))
15.7b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (fma.f64 (neg.f64 (cbrt.f64 re)) (pow.f64 (cbrt.f64 re) 2) re)))))
Compiler

Compiled 92 to 61 computations (33.7% saved)

localize33.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(-.f64 (hypot.f64 re im) re)
0.6b
(pow.f64 (cbrt.f64 re) 2)
0.6b
(cbrt.f64 re)
59.8b
(fma.f64 (neg.f64 (cbrt.f64 re)) (pow.f64 (cbrt.f64 re) 2) re)
Compiler

Compiled 102 to 39 computations (61.8% saved)

series66.0ms (0.8%)

Counts
3 → 0
Calls

9 calls:

TimeVariablePointExpression
2.0ms
re
@-inf
(fma.f64 (neg.f64 (cbrt.f64 re)) (pow.f64 (cbrt.f64 re) 2) re)
1.0ms
re
@0
(fma.f64 (neg.f64 (cbrt.f64 re)) (pow.f64 (cbrt.f64 re) 2) re)
1.0ms
re
@-inf
(pow.f64 (cbrt.f64 re) 2)
1.0ms
re
@inf
(fma.f64 (neg.f64 (cbrt.f64 re)) (pow.f64 (cbrt.f64 re) 2) re)
0.0ms
re
@-inf
(cbrt.f64 re)
Compiler

Compiled 5760 to 4535 computations (21.3% saved)

rewrite43.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
503×pow1_binary64
487×add-sqr-sqrt_binary64
468×add-log-exp_binary64
467×log1p-expm1-u_binary64
467×expm1-log1p-u_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify16.0ms (0.2%)

Algorithm
egg-herbie
Rules
63×associate-*r*_binary64
63×associate-*l*_binary64
37×fma-def_binary64
31×sqr-pow_binary64
30×unswap-sqr_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0130280
1269280
21228280
Stop Event
unsound
Counts
70 → 70
Calls
Call 1
Inputs
(+.f64 re re)
(-.f64 (+.f64 1 (+.f64 re re)) 1)
(*.f64 (+.f64 re re) 1)
(*.f64 1 (+.f64 re re))
(*.f64 (cbrt.f64 (+.f64 re re)) (pow.f64 (cbrt.f64 (+.f64 re re)) 2))
(*.f64 (pow.f64 (cbrt.f64 (+.f64 re re)) 2) (cbrt.f64 (+.f64 re re)))
(*.f64 (sqrt.f64 (+.f64 re re)) (sqrt.f64 (+.f64 re re)))
(/.f64 (+.f64 (pow.f64 re 3) (pow.f64 re 3)) (+.f64 (*.f64 re re) (-.f64 (*.f64 re re) (*.f64 re re))))
(/.f64 (-.f64 (*.f64 re re) (*.f64 re re)) (-.f64 re re))
(pow.f64 (+.f64 re re) 1)
(pow.f64 (pow.f64 (+.f64 re re) 3) 1/3)
(pow.f64 (cbrt.f64 (+.f64 re re)) 3)
(pow.f64 (sqrt.f64 (+.f64 re re)) 2)
(sqrt.f64 (pow.f64 (+.f64 re re) 2))
(log.f64 (exp.f64 (+.f64 re re)))
(cbrt.f64 (pow.f64 (+.f64 re re) 3))
(expm1.f64 (log1p.f64 (+.f64 re re)))
(log1p.f64 (expm1.f64 (+.f64 re re)))
(exp.f64 (log.f64 (+.f64 re re)))
(+.f64 0 (cbrt.f64 re))
(-.f64 0 (cbrt.f64 re))
(-.f64 (+.f64 1 (cbrt.f64 re)) 1)
(*.f64 (cbrt.f64 re) 1)
(*.f64 (cbrt.f64 re) -1)
(*.f64 1 (cbrt.f64 re))
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 re)) 2) (cbrt.f64 (cbrt.f64 re)))
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 re)) 2) (neg.f64 (cbrt.f64 (cbrt.f64 re))))
(*.f64 (cbrt.f64 (cbrt.f64 re)) (pow.f64 (cbrt.f64 (cbrt.f64 re)) 2))
(*.f64 (pow.f64 re 1/6) (pow.f64 re 1/6))
(*.f64 (pow.f64 re 1/6) (neg.f64 (pow.f64 re 1/6)))
(*.f64 -1 (cbrt.f64 re))
(*.f64 (sqrt.f64 (cbrt.f64 (*.f64 re (cbrt.f64 re)))) (sqrt.f64 (pow.f64 (cbrt.f64 (cbrt.f64 re)) 2)))
(*.f64 (pow.f64 1 1/3) (cbrt.f64 re))
(*.f64 (pow.f64 (sqrt.f64 re) 1/3) (pow.f64 (sqrt.f64 re) 1/3))
(*.f64 (neg.f64 (pow.f64 (cbrt.f64 (cbrt.f64 re)) 2)) (cbrt.f64 (cbrt.f64 re)))
(*.f64 (neg.f64 (pow.f64 re 1/6)) (pow.f64 re 1/6))
(*.f64 (*.f64 -1 (pow.f64 (cbrt.f64 (cbrt.f64 re)) 2)) (cbrt.f64 (cbrt.f64 re)))
(*.f64 (*.f64 -1 (pow.f64 re 1/6)) (pow.f64 re 1/6))
(/.f64 (-.f64 0 re) (+.f64 0 (+.f64 (cbrt.f64 (*.f64 re re)) (*.f64 0 (cbrt.f64 re)))))
(/.f64 (-.f64 0 (cbrt.f64 (*.f64 re re))) (cbrt.f64 re))
(pow.f64 re 1/3)
(pow.f64 (cbrt.f64 re) 1)
(pow.f64 (cbrt.f64 (*.f64 re re)) 1/2)
(pow.f64 (cbrt.f64 (cbrt.f64 re)) 3)
(pow.f64 (pow.f64 re 1/6) 2)
(neg.f64 (cbrt.f64 re))
(sqrt.f64 (cbrt.f64 (*.f64 re re)))
(fabs.f64 (cbrt.f64 re))
(log.f64 (exp.f64 (cbrt.f64 re)))
(expm1.f64 (log1p.f64 (cbrt.f64 re)))
(log1p.f64 (expm1.f64 (cbrt.f64 re)))
(exp.f64 (log.f64 (cbrt.f64 re)))
(-.f64 (+.f64 1 (cbrt.f64 (*.f64 re re))) 1)
(*.f64 (cbrt.f64 re) (cbrt.f64 re))
(*.f64 (cbrt.f64 (*.f64 re re)) 1)
(*.f64 1 (cbrt.f64 (*.f64 re re)))
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 re)) 2) (cbrt.f64 (*.f64 re (cbrt.f64 re))))
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 re)) 2) (*.f64 (cbrt.f64 (cbrt.f64 re)) (cbrt.f64 re)))
(*.f64 (cbrt.f64 (*.f64 re (cbrt.f64 re))) (pow.f64 (cbrt.f64 (cbrt.f64 re)) 2))
(*.f64 (pow.f64 re 1/6) (*.f64 (pow.f64 re 1/6) (cbrt.f64 re)))
(*.f64 (sqrt.f64 re) (pow.f64 re 1/6))
(*.f64 -1 (cbrt.f64 (*.f64 re re)))
(*.f64 (*.f64 (cbrt.f64 re) (pow.f64 (cbrt.f64 (cbrt.f64 re)) 2)) (cbrt.f64 (cbrt.f64 re)))
(neg.f64 (cbrt.f64 (*.f64 re re)))
(sqrt.f64 (*.f64 re (cbrt.f64 re)))
(log.f64 (exp.f64 (cbrt.f64 (*.f64 re re))))
(cbrt.f64 (*.f64 re re))
(expm1.f64 (log1p.f64 (cbrt.f64 (*.f64 re re))))
(log1p.f64 (expm1.f64 (cbrt.f64 (*.f64 re re))))
(exp.f64 (*.f64 2 (log.f64 (cbrt.f64 re))))
Outputs
(+.f64 re re)
(-.f64 (+.f64 1 (+.f64 re re)) 1)
(+.f64 re re)
(*.f64 (+.f64 re re) 1)
(+.f64 re re)
(*.f64 1 (+.f64 re re))
(+.f64 re re)
(*.f64 (cbrt.f64 (+.f64 re re)) (pow.f64 (cbrt.f64 (+.f64 re re)) 2))
(+.f64 re re)
(*.f64 (pow.f64 (cbrt.f64 (+.f64 re re)) 2) (cbrt.f64 (+.f64 re re)))
(+.f64 re re)
(*.f64 (sqrt.f64 (+.f64 re re)) (sqrt.f64 (+.f64 re re)))
(+.f64 re re)
(/.f64 (+.f64 (pow.f64 re 3) (pow.f64 re 3)) (+.f64 (*.f64 re re) (-.f64 (*.f64 re re) (*.f64 re re))))
(+.f64 re re)
(/.f64 (-.f64 (*.f64 re re) (*.f64 re re)) (-.f64 re re))
(+.f64 re re)
(pow.f64 (+.f64 re re) 1)
(+.f64 re re)
(pow.f64 (pow.f64 (+.f64 re re) 3) 1/3)
(+.f64 re re)
(pow.f64 (cbrt.f64 (+.f64 re re)) 3)
(+.f64 re re)
(pow.f64 (sqrt.f64 (+.f64 re re)) 2)
(+.f64 re re)
(sqrt.f64 (pow.f64 (+.f64 re re) 2))
(+.f64 re re)
(log.f64 (exp.f64 (+.f64 re re)))
(+.f64 re re)
(cbrt.f64 (pow.f64 (+.f64 re re) 3))
(+.f64 re re)
(expm1.f64 (log1p.f64 (+.f64 re re)))
(+.f64 re re)
(log1p.f64 (expm1.f64 (+.f64 re re)))
(+.f64 re re)
(exp.f64 (log.f64 (+.f64 re re)))
(+.f64 re re)
(+.f64 0 (cbrt.f64 re))
(+.f64 re re)
(-.f64 0 (cbrt.f64 re))
(+.f64 re re)
(-.f64 (+.f64 1 (cbrt.f64 re)) 1)
(+.f64 re re)
(*.f64 (cbrt.f64 re) 1)
(+.f64 re re)
(*.f64 (cbrt.f64 re) -1)
(+.f64 re re)
(*.f64 1 (cbrt.f64 re))
(+.f64 re re)
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 re)) 2) (cbrt.f64 (cbrt.f64 re)))
(+.f64 re re)
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 re)) 2) (neg.f64 (cbrt.f64 (cbrt.f64 re))))
(+.f64 re re)
(*.f64 (cbrt.f64 (cbrt.f64 re)) (pow.f64 (cbrt.f64 (cbrt.f64 re)) 2))
(+.f64 re re)
(*.f64 (pow.f64 re 1/6) (pow.f64 re 1/6))
(+.f64 re re)
(*.f64 (pow.f64 re 1/6) (neg.f64 (pow.f64 re 1/6)))
(+.f64 re re)
(*.f64 -1 (cbrt.f64 re))
(+.f64 re re)
(*.f64 (sqrt.f64 (cbrt.f64 (*.f64 re (cbrt.f64 re)))) (sqrt.f64 (pow.f64 (cbrt.f64 (cbrt.f64 re)) 2)))
(+.f64 re re)
(*.f64 (pow.f64 1 1/3) (cbrt.f64 re))
(+.f64 re re)
(*.f64 (pow.f64 (sqrt.f64 re) 1/3) (pow.f64 (sqrt.f64 re) 1/3))
(+.f64 re re)
(*.f64 (neg.f64 (pow.f64 (cbrt.f64 (cbrt.f64 re)) 2)) (cbrt.f64 (cbrt.f64 re)))
(+.f64 re re)
(*.f64 (neg.f64 (pow.f64 re 1/6)) (pow.f64 re 1/6))
(+.f64 re re)
(*.f64 (*.f64 -1 (pow.f64 (cbrt.f64 (cbrt.f64 re)) 2)) (cbrt.f64 (cbrt.f64 re)))
(+.f64 re re)
(*.f64 (*.f64 -1 (pow.f64 re 1/6)) (pow.f64 re 1/6))
(+.f64 re re)
(/.f64 (-.f64 0 re) (+.f64 0 (+.f64 (cbrt.f64 (*.f64 re re)) (*.f64 0 (cbrt.f64 re)))))
(+.f64 re re)
(/.f64 (-.f64 0 (cbrt.f64 (*.f64 re re))) (cbrt.f64 re))
(+.f64 re re)
(pow.f64 re 1/3)
(+.f64 re re)
(pow.f64 (cbrt.f64 re) 1)
(+.f64 re re)
(pow.f64 (cbrt.f64 (*.f64 re re)) 1/2)
(+.f64 re re)
(pow.f64 (cbrt.f64 (cbrt.f64 re)) 3)
(+.f64 re re)
(pow.f64 (pow.f64 re 1/6) 2)
(+.f64 re re)
(neg.f64 (cbrt.f64 re))
(+.f64 re re)
(sqrt.f64 (cbrt.f64 (*.f64 re re)))
(+.f64 re re)
(fabs.f64 (cbrt.f64 re))
(+.f64 re re)
(log.f64 (exp.f64 (cbrt.f64 re)))
(+.f64 re re)
(expm1.f64 (log1p.f64 (cbrt.f64 re)))
(+.f64 re re)
(log1p.f64 (expm1.f64 (cbrt.f64 re)))
(+.f64 re re)
(exp.f64 (log.f64 (cbrt.f64 re)))
(+.f64 re re)
(-.f64 (+.f64 1 (cbrt.f64 (*.f64 re re))) 1)
(+.f64 re re)
(*.f64 (cbrt.f64 re) (cbrt.f64 re))
(+.f64 re re)
(*.f64 (cbrt.f64 (*.f64 re re)) 1)
(+.f64 re re)
(*.f64 1 (cbrt.f64 (*.f64 re re)))
(+.f64 re re)
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 re)) 2) (cbrt.f64 (*.f64 re (cbrt.f64 re))))
(+.f64 re re)
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 re)) 2) (*.f64 (cbrt.f64 (cbrt.f64 re)) (cbrt.f64 re)))
(+.f64 re re)
(*.f64 (cbrt.f64 (*.f64 re (cbrt.f64 re))) (pow.f64 (cbrt.f64 (cbrt.f64 re)) 2))
(+.f64 re re)
(*.f64 (pow.f64 re 1/6) (*.f64 (pow.f64 re 1/6) (cbrt.f64 re)))
(+.f64 re re)
(*.f64 (sqrt.f64 re) (pow.f64 re 1/6))
(+.f64 re re)
(*.f64 -1 (cbrt.f64 (*.f64 re re)))
(+.f64 re re)
(*.f64 (*.f64 (cbrt.f64 re) (pow.f64 (cbrt.f64 (cbrt.f64 re)) 2)) (cbrt.f64 (cbrt.f64 re)))
(+.f64 re re)
(neg.f64 (cbrt.f64 (*.f64 re re)))
(+.f64 re re)
(sqrt.f64 (*.f64 re (cbrt.f64 re)))
(+.f64 re re)
(log.f64 (exp.f64 (cbrt.f64 (*.f64 re re))))
(+.f64 re re)
(cbrt.f64 (*.f64 re re))
(+.f64 re re)
(expm1.f64 (log1p.f64 (cbrt.f64 (*.f64 re re))))
(+.f64 re re)
(log1p.f64 (expm1.f64 (cbrt.f64 (*.f64 re re))))
(+.f64 re re)
(exp.f64 (*.f64 2 (log.f64 (cbrt.f64 re))))
(+.f64 re re)

localize25.0ms (0.3%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.2b
(-.f64 (hypot.f64 re im) re)
27.0b
(fma.f64 (neg.f64 (sqrt.f64 re)) (sqrt.f64 re) re)
Compiler

Compiled 88 to 20 computations (77.3% saved)

series16.0ms (0.2%)

Counts
1 → 0
Calls

3 calls:

TimeVariablePointExpression
1.0ms
re
@0
(fma.f64 (neg.f64 (sqrt.f64 re)) (sqrt.f64 re) re)
0.0ms
re
@inf
(fma.f64 (neg.f64 (sqrt.f64 re)) (sqrt.f64 re) re)
0.0ms
re
@-inf
(fma.f64 (neg.f64 (sqrt.f64 re)) (sqrt.f64 re) re)
Compiler

Compiled 1165 to 915 computations (21.5% saved)

rewrite81.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
376×pow1_binary64
364×add-sqr-sqrt_binary64
356×*-un-lft-identity_binary64
349×add-log-exp_binary64
348×log1p-expm1-u_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify79.0ms (0.9%)

Algorithm
egg-herbie
Rules
382×times-frac_binary64
310×log-prod_binary64
252×associate-+l+_binary64
226×unswap-sqr_binary64
197×associate-+r+_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02143536
15562237
21725748
36559740
Stop Event
node limit
Counts
85 → 123
Calls
Call 1
Inputs
(+.f64 re re)
(+.f64 (+.f64 re re) (+.f64 re re))
(+.f64 (+.f64 re re) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 re re))) (cbrt.f64 re) re))
(+.f64 (+.f64 re re) (fma.f64 (neg.f64 (cbrt.f64 re)) (cbrt.f64 (*.f64 re re)) re))
(+.f64 0 (+.f64 re re))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 re) 2)) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 re) 2))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 re) 2))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 re) 2))))
(+.f64 (fma.f64 re 1 (neg.f64 (*.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (cbrt.f64 re)))) (fma.f64 (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (cbrt.f64 re))))
(+.f64 (fma.f64 (sqrt.f64 re) (sqrt.f64 re) (neg.f64 (*.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (cbrt.f64 re)))) (fma.f64 (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (cbrt.f64 re))))
(+.f64 (fma.f64 1 re (neg.f64 (*.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (cbrt.f64 re)))) (fma.f64 (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (cbrt.f64 re))))
(+.f64 (fma.f64 (cbrt.f64 re) (cbrt.f64 (*.f64 re re)) (neg.f64 (*.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (cbrt.f64 re)))) (fma.f64 (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (cbrt.f64 re))))
(+.f64 (fma.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (neg.f64 (*.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (cbrt.f64 re)))) (fma.f64 (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (cbrt.f64 re))))
(+.f64 (fma.f64 (cbrt.f64 (*.f64 re re)) (cbrt.f64 re) (neg.f64 (*.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (cbrt.f64 re)))) (fma.f64 (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (cbrt.f64 re))))
(+.f64 (fma.f64 (pow.f64 re 1/4) (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (neg.f64 (*.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (cbrt.f64 re)))) (fma.f64 (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (cbrt.f64 re))))
(+.f64 (fma.f64 -1 re (neg.f64 (*.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (cbrt.f64 re)))) (fma.f64 (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (cbrt.f64 re))))
(+.f64 (fma.f64 (pow.f64 (pow.f64 re 1/4) 3) (pow.f64 re 1/4) (neg.f64 (*.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (cbrt.f64 re)))) (fma.f64 (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (cbrt.f64 re))))
(+.f64 (fma.f64 (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (cbrt.f64 re)))) (fma.f64 (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (cbrt.f64 re))))
(+.f64 (fma.f64 re 1 (neg.f64 (*.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (pow.f64 re 1/4)))) (fma.f64 (neg.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re))) (pow.f64 re 1/4) (*.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (pow.f64 re 1/4))))
(+.f64 (fma.f64 (sqrt.f64 re) (sqrt.f64 re) (neg.f64 (*.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (pow.f64 re 1/4)))) (fma.f64 (neg.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re))) (pow.f64 re 1/4) (*.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (pow.f64 re 1/4))))
(+.f64 (fma.f64 1 re (neg.f64 (*.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (pow.f64 re 1/4)))) (fma.f64 (neg.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re))) (pow.f64 re 1/4) (*.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (pow.f64 re 1/4))))
(+.f64 (fma.f64 (cbrt.f64 re) (cbrt.f64 (*.f64 re re)) (neg.f64 (*.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (pow.f64 re 1/4)))) (fma.f64 (neg.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re))) (pow.f64 re 1/4) (*.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (pow.f64 re 1/4))))
(+.f64 (fma.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (neg.f64 (*.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (pow.f64 re 1/4)))) (fma.f64 (neg.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re))) (pow.f64 re 1/4) (*.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (pow.f64 re 1/4))))
(+.f64 (fma.f64 (cbrt.f64 (*.f64 re re)) (cbrt.f64 re) (neg.f64 (*.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (pow.f64 re 1/4)))) (fma.f64 (neg.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re))) (pow.f64 re 1/4) (*.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (pow.f64 re 1/4))))
(+.f64 (fma.f64 (pow.f64 re 1/4) (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (neg.f64 (*.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (pow.f64 re 1/4)))) (fma.f64 (neg.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re))) (pow.f64 re 1/4) (*.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (pow.f64 re 1/4))))
(+.f64 (fma.f64 -1 re (neg.f64 (*.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (pow.f64 re 1/4)))) (fma.f64 (neg.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re))) (pow.f64 re 1/4) (*.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (pow.f64 re 1/4))))
(+.f64 (fma.f64 (pow.f64 (pow.f64 re 1/4) 3) (pow.f64 re 1/4) (neg.f64 (*.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (pow.f64 re 1/4)))) (fma.f64 (neg.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re))) (pow.f64 re 1/4) (*.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (pow.f64 re 1/4))))
(+.f64 (fma.f64 (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (pow.f64 re 1/4)))) (fma.f64 (neg.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re))) (pow.f64 re 1/4) (*.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (pow.f64 re 1/4))))
(+.f64 (fma.f64 re 1 (neg.f64 (*.f64 re -1))) (fma.f64 re -1 (*.f64 re -1)))
(+.f64 (fma.f64 (sqrt.f64 re) (sqrt.f64 re) (neg.f64 (*.f64 re -1))) (fma.f64 re -1 (*.f64 re -1)))
(+.f64 (fma.f64 1 re (neg.f64 (*.f64 re -1))) (fma.f64 re -1 (*.f64 re -1)))
(+.f64 (fma.f64 (cbrt.f64 re) (cbrt.f64 (*.f64 re re)) (neg.f64 (*.f64 re -1))) (fma.f64 re -1 (*.f64 re -1)))
(+.f64 (fma.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (neg.f64 (*.f64 re -1))) (fma.f64 re -1 (*.f64 re -1)))
(+.f64 (fma.f64 (cbrt.f64 (*.f64 re re)) (cbrt.f64 re) (neg.f64 (*.f64 re -1))) (fma.f64 re -1 (*.f64 re -1)))
(+.f64 (fma.f64 (pow.f64 re 1/4) (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (neg.f64 (*.f64 re -1))) (fma.f64 re -1 (*.f64 re -1)))
(+.f64 (fma.f64 -1 re (neg.f64 (*.f64 re -1))) (fma.f64 re -1 (*.f64 re -1)))
(+.f64 (fma.f64 (pow.f64 (pow.f64 re 1/4) 3) (pow.f64 re 1/4) (neg.f64 (*.f64 re -1))) (fma.f64 re -1 (*.f64 re -1)))
(+.f64 (fma.f64 (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 re -1))) (fma.f64 re -1 (*.f64 re -1)))
(+.f64 (fma.f64 re 1 (neg.f64 (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3)))) (fma.f64 (neg.f64 (pow.f64 re 1/4)) (pow.f64 (pow.f64 re 1/4) 3) (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3))))
(+.f64 (fma.f64 (sqrt.f64 re) (sqrt.f64 re) (neg.f64 (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3)))) (fma.f64 (neg.f64 (pow.f64 re 1/4)) (pow.f64 (pow.f64 re 1/4) 3) (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3))))
(+.f64 (fma.f64 1 re (neg.f64 (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3)))) (fma.f64 (neg.f64 (pow.f64 re 1/4)) (pow.f64 (pow.f64 re 1/4) 3) (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3))))
(+.f64 (fma.f64 (cbrt.f64 re) (cbrt.f64 (*.f64 re re)) (neg.f64 (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3)))) (fma.f64 (neg.f64 (pow.f64 re 1/4)) (pow.f64 (pow.f64 re 1/4) 3) (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3))))
(+.f64 (fma.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (neg.f64 (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3)))) (fma.f64 (neg.f64 (pow.f64 re 1/4)) (pow.f64 (pow.f64 re 1/4) 3) (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3))))
(+.f64 (fma.f64 (cbrt.f64 (*.f64 re re)) (cbrt.f64 re) (neg.f64 (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3)))) (fma.f64 (neg.f64 (pow.f64 re 1/4)) (pow.f64 (pow.f64 re 1/4) 3) (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3))))
(+.f64 (fma.f64 (pow.f64 re 1/4) (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (neg.f64 (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3)))) (fma.f64 (neg.f64 (pow.f64 re 1/4)) (pow.f64 (pow.f64 re 1/4) 3) (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3))))
(+.f64 (fma.f64 -1 re (neg.f64 (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3)))) (fma.f64 (neg.f64 (pow.f64 re 1/4)) (pow.f64 (pow.f64 re 1/4) 3) (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3))))
(+.f64 (fma.f64 (pow.f64 (pow.f64 re 1/4) 3) (pow.f64 re 1/4) (neg.f64 (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3)))) (fma.f64 (neg.f64 (pow.f64 re 1/4)) (pow.f64 (pow.f64 re 1/4) 3) (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3))))
(+.f64 (fma.f64 (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3)))) (fma.f64 (neg.f64 (pow.f64 re 1/4)) (pow.f64 (pow.f64 re 1/4) 3) (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3))))
(+.f64 (fma.f64 re 1 (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re))))) (fma.f64 (neg.f64 (sqrt.f64 (cbrt.f64 re))) (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re)))))
(+.f64 (fma.f64 (sqrt.f64 re) (sqrt.f64 re) (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re))))) (fma.f64 (neg.f64 (sqrt.f64 (cbrt.f64 re))) (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re)))))
(+.f64 (fma.f64 1 re (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re))))) (fma.f64 (neg.f64 (sqrt.f64 (cbrt.f64 re))) (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re)))))
(+.f64 (fma.f64 (cbrt.f64 re) (cbrt.f64 (*.f64 re re)) (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re))))) (fma.f64 (neg.f64 (sqrt.f64 (cbrt.f64 re))) (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re)))))
(+.f64 (fma.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re))))) (fma.f64 (neg.f64 (sqrt.f64 (cbrt.f64 re))) (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re)))))
(+.f64 (fma.f64 (cbrt.f64 (*.f64 re re)) (cbrt.f64 re) (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re))))) (fma.f64 (neg.f64 (sqrt.f64 (cbrt.f64 re))) (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re)))))
(+.f64 (fma.f64 (pow.f64 re 1/4) (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re))))) (fma.f64 (neg.f64 (sqrt.f64 (cbrt.f64 re))) (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re)))))
(+.f64 (fma.f64 -1 re (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re))))) (fma.f64 (neg.f64 (sqrt.f64 (cbrt.f64 re))) (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re)))))
(+.f64 (fma.f64 (pow.f64 (pow.f64 re 1/4) 3) (pow.f64 re 1/4) (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re))))) (fma.f64 (neg.f64 (sqrt.f64 (cbrt.f64 re))) (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re)))))
(+.f64 (fma.f64 (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re))))) (fma.f64 (neg.f64 (sqrt.f64 (cbrt.f64 re))) (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re)))))
(-.f64 re re)
(-.f64 (+.f64 1 (+.f64 re re)) 1)
(*.f64 (sqrt.f64 re) (+.f64 (sqrt.f64 re) (sqrt.f64 re)))
(*.f64 (+.f64 re re) 1)
(*.f64 1 (+.f64 re re))
(*.f64 (cbrt.f64 (+.f64 re re)) (cbrt.f64 (pow.f64 (+.f64 re re) 2)))
(*.f64 (cbrt.f64 (pow.f64 (+.f64 re re) 2)) (cbrt.f64 (+.f64 re re)))
(*.f64 (sqrt.f64 (+.f64 re re)) (sqrt.f64 (+.f64 re re)))
(*.f64 (pow.f64 1 1/3) (+.f64 re re))
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (+.f64 re re) 3)) 1/3) (pow.f64 (sqrt.f64 (pow.f64 (+.f64 re re) 3)) 1/3))
(*.f64 (pow.f64 (*.f64 (pow.f64 (+.f64 re re) 2) (cbrt.f64 (pow.f64 (+.f64 re re) 2))) 1/3) (cbrt.f64 (cbrt.f64 (+.f64 re re))))
(*.f64 (pow.f64 (*.f64 (pow.f64 (+.f64 re re) 2) (sqrt.f64 (+.f64 re re))) 1/3) (cbrt.f64 (sqrt.f64 (+.f64 re re))))
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (+.f64 re re))) 2) 3) (cbrt.f64 (+.f64 re re)))
(*.f64 (pow.f64 (sqrt.f64 (cbrt.f64 (+.f64 re re))) 3) (pow.f64 (sqrt.f64 (cbrt.f64 (+.f64 re re))) 3))
(/.f64 (+.f64 (pow.f64 re 3) (pow.f64 re 3)) (fma.f64 re re (-.f64 (*.f64 re re) (*.f64 re re))))
(/.f64 (-.f64 (*.f64 re re) (*.f64 re re)) (+.f64 re re))
(pow.f64 (+.f64 re re) 1)
(pow.f64 (pow.f64 (+.f64 re re) 2) 1/2)
(pow.f64 (pow.f64 (+.f64 re re) 3) 1/3)
(pow.f64 (cbrt.f64 (+.f64 re re)) 3)
(pow.f64 (sqrt.f64 (+.f64 re re)) 2)
(sqrt.f64 (pow.f64 (+.f64 re re) 2))
(log.f64 (pow.f64 (exp.f64 re) 2))
(log.f64 (/.f64 (exp.f64 re) (exp.f64 re)))
(cbrt.f64 (pow.f64 (+.f64 re re) 3))
(expm1.f64 (log1p.f64 (+.f64 re re)))
(log1p.f64 (expm1.f64 (+.f64 re re)))
(exp.f64 (log.f64 (+.f64 re re)))
Outputs
(+.f64 re re)
(+.f64 (+.f64 re re) (+.f64 re re))
(*.f64 2 (+.f64 re re))
(*.f64 re 4)
(+.f64 (+.f64 re re) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 re re))) (cbrt.f64 re) re))
(fma.f64 2 re (fma.f64 (neg.f64 (cbrt.f64 (*.f64 re re))) (cbrt.f64 re) re))
(fma.f64 2 re (-.f64 re (*.f64 (cbrt.f64 (*.f64 re re)) (cbrt.f64 re))))
(+.f64 (+.f64 re re) (fma.f64 (neg.f64 (cbrt.f64 re)) (cbrt.f64 (*.f64 re re)) re))
(+.f64 (+.f64 re re) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 re re))) (cbrt.f64 re) re))
(fma.f64 2 re (fma.f64 (neg.f64 (cbrt.f64 (*.f64 re re))) (cbrt.f64 re) re))
(fma.f64 2 re (-.f64 re (*.f64 (cbrt.f64 (*.f64 re re)) (cbrt.f64 re))))
(+.f64 0 (+.f64 re re))
(+.f64 re re)
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 re) 2)) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 re) 2))))
(*.f64 3 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 re) 2))))
(*.f64 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 re) 2))) 3)
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 re) 2))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 re) 2))))
(+.f64 re re)
(+.f64 (fma.f64 re 1 (neg.f64 (*.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (cbrt.f64 re)))) (fma.f64 (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (cbrt.f64 re))))
(+.f64 (fma.f64 re 1 (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (cbrt.f64 re) (sqrt.f64 re))))) (fma.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
(+.f64 (-.f64 re (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))) (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
(-.f64 re (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re))))
(+.f64 (fma.f64 (sqrt.f64 re) (sqrt.f64 re) (neg.f64 (*.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (cbrt.f64 re)))) (fma.f64 (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (cbrt.f64 re))))
(+.f64 (fma.f64 re 1 (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (cbrt.f64 re) (sqrt.f64 re))))) (fma.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
(+.f64 (-.f64 re (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))) (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
(-.f64 re (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re))))
(+.f64 (fma.f64 1 re (neg.f64 (*.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (cbrt.f64 re)))) (fma.f64 (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (cbrt.f64 re))))
(+.f64 (fma.f64 re 1 (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (cbrt.f64 re) (sqrt.f64 re))))) (fma.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
(+.f64 (-.f64 re (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))) (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
(-.f64 re (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re))))
(+.f64 (fma.f64 (cbrt.f64 re) (cbrt.f64 (*.f64 re re)) (neg.f64 (*.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (cbrt.f64 re)))) (fma.f64 (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (cbrt.f64 re))))
(+.f64 (fma.f64 (cbrt.f64 re) (cbrt.f64 (*.f64 re re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (cbrt.f64 re) (sqrt.f64 re))))) (fma.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
(+.f64 (*.f64 (cbrt.f64 re) (+.f64 (cbrt.f64 (*.f64 re re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (sqrt.f64 re))))) (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
(*.f64 (cbrt.f64 re) (-.f64 (cbrt.f64 (*.f64 re re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re))))
(+.f64 (fma.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (neg.f64 (*.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (cbrt.f64 re)))) (fma.f64 (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (cbrt.f64 re))))
(+.f64 (fma.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (cbrt.f64 re) (sqrt.f64 re))))) (fma.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
(+.f64 (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))) (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
0
(+.f64 (fma.f64 (cbrt.f64 (*.f64 re re)) (cbrt.f64 re) (neg.f64 (*.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (cbrt.f64 re)))) (fma.f64 (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (cbrt.f64 re))))
(+.f64 (fma.f64 (cbrt.f64 re) (cbrt.f64 (*.f64 re re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (cbrt.f64 re) (sqrt.f64 re))))) (fma.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
(+.f64 (*.f64 (cbrt.f64 re) (+.f64 (cbrt.f64 (*.f64 re re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (sqrt.f64 re))))) (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
(*.f64 (cbrt.f64 re) (-.f64 (cbrt.f64 (*.f64 re re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re))))
(+.f64 (fma.f64 (pow.f64 re 1/4) (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (neg.f64 (*.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (cbrt.f64 re)))) (fma.f64 (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (cbrt.f64 re))))
(+.f64 (fma.f64 re 1 (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (cbrt.f64 re) (sqrt.f64 re))))) (fma.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
(+.f64 (-.f64 re (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))) (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
(-.f64 re (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re))))
(+.f64 (fma.f64 -1 re (neg.f64 (*.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (cbrt.f64 re)))) (fma.f64 (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (cbrt.f64 re))))
(+.f64 (fma.f64 -1 re (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (cbrt.f64 re) (sqrt.f64 re))))) (fma.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
(+.f64 (*.f64 -1 (fma.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) re)) (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
(neg.f64 (fma.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) re))
(+.f64 (fma.f64 (pow.f64 (pow.f64 re 1/4) 3) (pow.f64 re 1/4) (neg.f64 (*.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (cbrt.f64 re)))) (fma.f64 (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (cbrt.f64 re))))
(+.f64 (fma.f64 re 1 (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (cbrt.f64 re) (sqrt.f64 re))))) (fma.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
(+.f64 (-.f64 re (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))) (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
(-.f64 re (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re))))
(+.f64 (fma.f64 (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (cbrt.f64 re)))) (fma.f64 (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (cbrt.f64 re))))
(+.f64 (fma.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (cbrt.f64 re) (sqrt.f64 re))))) (fma.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
(+.f64 (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))) (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
0
(+.f64 (fma.f64 re 1 (neg.f64 (*.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (pow.f64 re 1/4)))) (fma.f64 (neg.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re))) (pow.f64 re 1/4) (*.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (pow.f64 re 1/4))))
(+.f64 (fma.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (cbrt.f64 re) (sqrt.f64 re))))) (fma.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
(+.f64 (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))) (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
0
(+.f64 (fma.f64 (sqrt.f64 re) (sqrt.f64 re) (neg.f64 (*.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (pow.f64 re 1/4)))) (fma.f64 (neg.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re))) (pow.f64 re 1/4) (*.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (pow.f64 re 1/4))))
(+.f64 (fma.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (cbrt.f64 re) (sqrt.f64 re))))) (fma.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
(+.f64 (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))) (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
0
(+.f64 (fma.f64 1 re (neg.f64 (*.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (pow.f64 re 1/4)))) (fma.f64 (neg.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re))) (pow.f64 re 1/4) (*.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (pow.f64 re 1/4))))
(+.f64 (fma.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (cbrt.f64 re) (sqrt.f64 re))))) (fma.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
(+.f64 (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))) (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
0
(+.f64 (fma.f64 (cbrt.f64 re) (cbrt.f64 (*.f64 re re)) (neg.f64 (*.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (pow.f64 re 1/4)))) (fma.f64 (neg.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re))) (pow.f64 re 1/4) (*.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (pow.f64 re 1/4))))
(+.f64 (fma.f64 (*.f64 (neg.f64 (pow.f64 re 1/4)) (sqrt.f64 re)) (pow.f64 re 1/4) (*.f64 (pow.f64 re 1/4) (*.f64 (sqrt.f64 re) (pow.f64 re 1/4)))) (fma.f64 (cbrt.f64 re) (cbrt.f64 (*.f64 re re)) (*.f64 (*.f64 (sqrt.f64 re) (pow.f64 re 1/4)) (neg.f64 (pow.f64 re 1/4)))))
(+.f64 (*.f64 0 (*.f64 (sqrt.f64 re) (pow.f64 re 1/2))) (fma.f64 (cbrt.f64 (*.f64 re re)) (cbrt.f64 re) (neg.f64 (*.f64 (sqrt.f64 re) (pow.f64 re 1/2)))))
(fma.f64 (cbrt.f64 (*.f64 re re)) (cbrt.f64 re) (neg.f64 re))
(+.f64 (fma.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (neg.f64 (*.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (pow.f64 re 1/4)))) (fma.f64 (neg.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re))) (pow.f64 re 1/4) (*.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (pow.f64 re 1/4))))
(+.f64 (fma.f64 (*.f64 (neg.f64 (pow.f64 re 1/4)) (sqrt.f64 re)) (pow.f64 re 1/4) (*.f64 (pow.f64 re 1/4) (*.f64 (sqrt.f64 re) (pow.f64 re 1/4)))) (fma.f64 (*.f64 (cbrt.f64 re) (sqrt.f64 re)) (sqrt.f64 (cbrt.f64 re)) (*.f64 (*.f64 (sqrt.f64 re) (pow.f64 re 1/4)) (neg.f64 (pow.f64 re 1/4)))))
(+.f64 (*.f64 0 (*.f64 (sqrt.f64 re) (pow.f64 re 1/2))) (fma.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (cbrt.f64 re) (sqrt.f64 re)) (neg.f64 (*.f64 (sqrt.f64 re) (pow.f64 re 1/2)))))
(-.f64 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re))) re)
(+.f64 (fma.f64 (cbrt.f64 (*.f64 re re)) (cbrt.f64 re) (neg.f64 (*.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (pow.f64 re 1/4)))) (fma.f64 (neg.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re))) (pow.f64 re 1/4) (*.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (pow.f64 re 1/4))))
(+.f64 (fma.f64 (*.f64 (neg.f64 (pow.f64 re 1/4)) (sqrt.f64 re)) (pow.f64 re 1/4) (*.f64 (pow.f64 re 1/4) (*.f64 (sqrt.f64 re) (pow.f64 re 1/4)))) (fma.f64 (cbrt.f64 re) (cbrt.f64 (*.f64 re re)) (*.f64 (*.f64 (sqrt.f64 re) (pow.f64 re 1/4)) (neg.f64 (pow.f64 re 1/4)))))
(+.f64 (*.f64 0 (*.f64 (sqrt.f64 re) (pow.f64 re 1/2))) (fma.f64 (cbrt.f64 (*.f64 re re)) (cbrt.f64 re) (neg.f64 (*.f64 (sqrt.f64 re) (pow.f64 re 1/2)))))
(fma.f64 (cbrt.f64 (*.f64 re re)) (cbrt.f64 re) (neg.f64 re))
(+.f64 (fma.f64 (pow.f64 re 1/4) (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (neg.f64 (*.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (pow.f64 re 1/4)))) (fma.f64 (neg.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re))) (pow.f64 re 1/4) (*.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (pow.f64 re 1/4))))
(+.f64 (fma.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (cbrt.f64 re) (sqrt.f64 re))))) (fma.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
(+.f64 (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))) (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
0
(+.f64 (fma.f64 -1 re (neg.f64 (*.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (pow.f64 re 1/4)))) (fma.f64 (neg.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re))) (pow.f64 re 1/4) (*.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (pow.f64 re 1/4))))
(+.f64 (fma.f64 (*.f64 (neg.f64 (pow.f64 re 1/4)) (sqrt.f64 re)) (pow.f64 re 1/4) (*.f64 (pow.f64 re 1/4) (*.f64 (sqrt.f64 re) (pow.f64 re 1/4)))) (fma.f64 -1 re (*.f64 (*.f64 (sqrt.f64 re) (pow.f64 re 1/4)) (neg.f64 (pow.f64 re 1/4)))))
(+.f64 (*.f64 0 (*.f64 (sqrt.f64 re) (pow.f64 re 1/2))) (-.f64 (neg.f64 re) (*.f64 (sqrt.f64 re) (pow.f64 re 1/2))))
(*.f64 re -2)
(+.f64 (fma.f64 (pow.f64 (pow.f64 re 1/4) 3) (pow.f64 re 1/4) (neg.f64 (*.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (pow.f64 re 1/4)))) (fma.f64 (neg.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re))) (pow.f64 re 1/4) (*.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (pow.f64 re 1/4))))
(+.f64 (fma.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (cbrt.f64 re) (sqrt.f64 re))))) (fma.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
(+.f64 (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))) (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
0
(+.f64 (fma.f64 (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (pow.f64 re 1/4)))) (fma.f64 (neg.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re))) (pow.f64 re 1/4) (*.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (pow.f64 re 1/4))))
(+.f64 (fma.f64 (*.f64 (neg.f64 (pow.f64 re 1/4)) (sqrt.f64 re)) (pow.f64 re 1/4) (*.f64 (pow.f64 re 1/4) (*.f64 (sqrt.f64 re) (pow.f64 re 1/4)))) (fma.f64 (*.f64 (cbrt.f64 re) (sqrt.f64 re)) (sqrt.f64 (cbrt.f64 re)) (*.f64 (*.f64 (sqrt.f64 re) (pow.f64 re 1/4)) (neg.f64 (pow.f64 re 1/4)))))
(+.f64 (*.f64 0 (*.f64 (sqrt.f64 re) (pow.f64 re 1/2))) (fma.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (cbrt.f64 re) (sqrt.f64 re)) (neg.f64 (*.f64 (sqrt.f64 re) (pow.f64 re 1/2)))))
(-.f64 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re))) re)
(+.f64 (fma.f64 re 1 (neg.f64 (*.f64 re -1))) (fma.f64 re -1 (*.f64 re -1)))
(+.f64 (fma.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (cbrt.f64 re) (sqrt.f64 re))))) (fma.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
(+.f64 (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))) (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
0
(+.f64 (fma.f64 (sqrt.f64 re) (sqrt.f64 re) (neg.f64 (*.f64 re -1))) (fma.f64 re -1 (*.f64 re -1)))
(+.f64 (fma.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (cbrt.f64 re) (sqrt.f64 re))))) (fma.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
(+.f64 (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))) (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
0
(+.f64 (fma.f64 1 re (neg.f64 (*.f64 re -1))) (fma.f64 re -1 (*.f64 re -1)))
(+.f64 (fma.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (cbrt.f64 re) (sqrt.f64 re))))) (fma.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
(+.f64 (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))) (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
0
(+.f64 (fma.f64 (cbrt.f64 re) (cbrt.f64 (*.f64 re re)) (neg.f64 (*.f64 re -1))) (fma.f64 re -1 (*.f64 re -1)))
(+.f64 (fma.f64 (*.f64 (neg.f64 (pow.f64 re 1/4)) (sqrt.f64 re)) (pow.f64 re 1/4) (*.f64 (pow.f64 re 1/4) (*.f64 (sqrt.f64 re) (pow.f64 re 1/4)))) (fma.f64 (cbrt.f64 re) (cbrt.f64 (*.f64 re re)) (*.f64 (*.f64 (sqrt.f64 re) (pow.f64 re 1/4)) (neg.f64 (pow.f64 re 1/4)))))
(+.f64 (*.f64 0 (*.f64 (sqrt.f64 re) (pow.f64 re 1/2))) (fma.f64 (cbrt.f64 (*.f64 re re)) (cbrt.f64 re) (neg.f64 (*.f64 (sqrt.f64 re) (pow.f64 re 1/2)))))
(fma.f64 (cbrt.f64 (*.f64 re re)) (cbrt.f64 re) (neg.f64 re))
(+.f64 (fma.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (neg.f64 (*.f64 re -1))) (fma.f64 re -1 (*.f64 re -1)))
(+.f64 (fma.f64 (*.f64 (neg.f64 (pow.f64 re 1/4)) (sqrt.f64 re)) (pow.f64 re 1/4) (*.f64 (pow.f64 re 1/4) (*.f64 (sqrt.f64 re) (pow.f64 re 1/4)))) (fma.f64 (*.f64 (cbrt.f64 re) (sqrt.f64 re)) (sqrt.f64 (cbrt.f64 re)) (*.f64 (*.f64 (sqrt.f64 re) (pow.f64 re 1/4)) (neg.f64 (pow.f64 re 1/4)))))
(+.f64 (*.f64 0 (*.f64 (sqrt.f64 re) (pow.f64 re 1/2))) (fma.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (cbrt.f64 re) (sqrt.f64 re)) (neg.f64 (*.f64 (sqrt.f64 re) (pow.f64 re 1/2)))))
(-.f64 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re))) re)
(+.f64 (fma.f64 (cbrt.f64 (*.f64 re re)) (cbrt.f64 re) (neg.f64 (*.f64 re -1))) (fma.f64 re -1 (*.f64 re -1)))
(+.f64 (fma.f64 (*.f64 (neg.f64 (pow.f64 re 1/4)) (sqrt.f64 re)) (pow.f64 re 1/4) (*.f64 (pow.f64 re 1/4) (*.f64 (sqrt.f64 re) (pow.f64 re 1/4)))) (fma.f64 (cbrt.f64 re) (cbrt.f64 (*.f64 re re)) (*.f64 (*.f64 (sqrt.f64 re) (pow.f64 re 1/4)) (neg.f64 (pow.f64 re 1/4)))))
(+.f64 (*.f64 0 (*.f64 (sqrt.f64 re) (pow.f64 re 1/2))) (fma.f64 (cbrt.f64 (*.f64 re re)) (cbrt.f64 re) (neg.f64 (*.f64 (sqrt.f64 re) (pow.f64 re 1/2)))))
(fma.f64 (cbrt.f64 (*.f64 re re)) (cbrt.f64 re) (neg.f64 re))
(+.f64 (fma.f64 (pow.f64 re 1/4) (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (neg.f64 (*.f64 re -1))) (fma.f64 re -1 (*.f64 re -1)))
(+.f64 (fma.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (cbrt.f64 re) (sqrt.f64 re))))) (fma.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
(+.f64 (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))) (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
0
(+.f64 (fma.f64 -1 re (neg.f64 (*.f64 re -1))) (fma.f64 re -1 (*.f64 re -1)))
(+.f64 (fma.f64 (*.f64 (neg.f64 (pow.f64 re 1/4)) (sqrt.f64 re)) (pow.f64 re 1/4) (*.f64 (pow.f64 re 1/4) (*.f64 (sqrt.f64 re) (pow.f64 re 1/4)))) (fma.f64 -1 re (*.f64 (*.f64 (sqrt.f64 re) (pow.f64 re 1/4)) (neg.f64 (pow.f64 re 1/4)))))
(+.f64 (*.f64 0 (*.f64 (sqrt.f64 re) (pow.f64 re 1/2))) (-.f64 (neg.f64 re) (*.f64 (sqrt.f64 re) (pow.f64 re 1/2))))
(*.f64 re -2)
(+.f64 (fma.f64 (pow.f64 (pow.f64 re 1/4) 3) (pow.f64 re 1/4) (neg.f64 (*.f64 re -1))) (fma.f64 re -1 (*.f64 re -1)))
(+.f64 (fma.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (cbrt.f64 re) (sqrt.f64 re))))) (fma.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
(+.f64 (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))) (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
0
(+.f64 (fma.f64 (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 re -1))) (fma.f64 re -1 (*.f64 re -1)))
(+.f64 (fma.f64 (*.f64 (neg.f64 (pow.f64 re 1/4)) (sqrt.f64 re)) (pow.f64 re 1/4) (*.f64 (pow.f64 re 1/4) (*.f64 (sqrt.f64 re) (pow.f64 re 1/4)))) (fma.f64 (*.f64 (cbrt.f64 re) (sqrt.f64 re)) (sqrt.f64 (cbrt.f64 re)) (*.f64 (*.f64 (sqrt.f64 re) (pow.f64 re 1/4)) (neg.f64 (pow.f64 re 1/4)))))
(+.f64 (*.f64 0 (*.f64 (sqrt.f64 re) (pow.f64 re 1/2))) (fma.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (cbrt.f64 re) (sqrt.f64 re)) (neg.f64 (*.f64 (sqrt.f64 re) (pow.f64 re 1/2)))))
(-.f64 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re))) re)
(+.f64 (fma.f64 re 1 (neg.f64 (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3)))) (fma.f64 (neg.f64 (pow.f64 re 1/4)) (pow.f64 (pow.f64 re 1/4) 3) (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3))))
(+.f64 (fma.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (cbrt.f64 re) (sqrt.f64 re))))) (fma.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
(+.f64 (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))) (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
0
(+.f64 (fma.f64 (sqrt.f64 re) (sqrt.f64 re) (neg.f64 (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3)))) (fma.f64 (neg.f64 (pow.f64 re 1/4)) (pow.f64 (pow.f64 re 1/4) 3) (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3))))
(+.f64 (fma.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (cbrt.f64 re) (sqrt.f64 re))))) (fma.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
(+.f64 (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))) (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
0
(+.f64 (fma.f64 1 re (neg.f64 (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3)))) (fma.f64 (neg.f64 (pow.f64 re 1/4)) (pow.f64 (pow.f64 re 1/4) 3) (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3))))
(+.f64 (fma.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (cbrt.f64 re) (sqrt.f64 re))))) (fma.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
(+.f64 (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))) (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
0
(+.f64 (fma.f64 (cbrt.f64 re) (cbrt.f64 (*.f64 re re)) (neg.f64 (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3)))) (fma.f64 (neg.f64 (pow.f64 re 1/4)) (pow.f64 (pow.f64 re 1/4) 3) (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3))))
(+.f64 (fma.f64 (*.f64 (neg.f64 (pow.f64 re 1/4)) (sqrt.f64 re)) (pow.f64 re 1/4) (*.f64 (pow.f64 re 1/4) (*.f64 (sqrt.f64 re) (pow.f64 re 1/4)))) (fma.f64 (cbrt.f64 re) (cbrt.f64 (*.f64 re re)) (*.f64 (*.f64 (sqrt.f64 re) (pow.f64 re 1/4)) (neg.f64 (pow.f64 re 1/4)))))
(+.f64 (*.f64 0 (*.f64 (sqrt.f64 re) (pow.f64 re 1/2))) (fma.f64 (cbrt.f64 (*.f64 re re)) (cbrt.f64 re) (neg.f64 (*.f64 (sqrt.f64 re) (pow.f64 re 1/2)))))
(fma.f64 (cbrt.f64 (*.f64 re re)) (cbrt.f64 re) (neg.f64 re))
(+.f64 (fma.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (neg.f64 (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3)))) (fma.f64 (neg.f64 (pow.f64 re 1/4)) (pow.f64 (pow.f64 re 1/4) 3) (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3))))
(+.f64 (fma.f64 (*.f64 (neg.f64 (pow.f64 re 1/4)) (sqrt.f64 re)) (pow.f64 re 1/4) (*.f64 (pow.f64 re 1/4) (*.f64 (sqrt.f64 re) (pow.f64 re 1/4)))) (fma.f64 (*.f64 (cbrt.f64 re) (sqrt.f64 re)) (sqrt.f64 (cbrt.f64 re)) (*.f64 (*.f64 (sqrt.f64 re) (pow.f64 re 1/4)) (neg.f64 (pow.f64 re 1/4)))))
(+.f64 (*.f64 0 (*.f64 (sqrt.f64 re) (pow.f64 re 1/2))) (fma.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (cbrt.f64 re) (sqrt.f64 re)) (neg.f64 (*.f64 (sqrt.f64 re) (pow.f64 re 1/2)))))
(-.f64 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re))) re)
(+.f64 (fma.f64 (cbrt.f64 (*.f64 re re)) (cbrt.f64 re) (neg.f64 (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3)))) (fma.f64 (neg.f64 (pow.f64 re 1/4)) (pow.f64 (pow.f64 re 1/4) 3) (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3))))
(+.f64 (fma.f64 (*.f64 (neg.f64 (pow.f64 re 1/4)) (sqrt.f64 re)) (pow.f64 re 1/4) (*.f64 (pow.f64 re 1/4) (*.f64 (sqrt.f64 re) (pow.f64 re 1/4)))) (fma.f64 (cbrt.f64 re) (cbrt.f64 (*.f64 re re)) (*.f64 (*.f64 (sqrt.f64 re) (pow.f64 re 1/4)) (neg.f64 (pow.f64 re 1/4)))))
(+.f64 (*.f64 0 (*.f64 (sqrt.f64 re) (pow.f64 re 1/2))) (fma.f64 (cbrt.f64 (*.f64 re re)) (cbrt.f64 re) (neg.f64 (*.f64 (sqrt.f64 re) (pow.f64 re 1/2)))))
(fma.f64 (cbrt.f64 (*.f64 re re)) (cbrt.f64 re) (neg.f64 re))
(+.f64 (fma.f64 (pow.f64 re 1/4) (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (neg.f64 (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3)))) (fma.f64 (neg.f64 (pow.f64 re 1/4)) (pow.f64 (pow.f64 re 1/4) 3) (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3))))
(+.f64 (fma.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (cbrt.f64 re) (sqrt.f64 re))))) (fma.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
(+.f64 (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))) (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
0
(+.f64 (fma.f64 -1 re (neg.f64 (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3)))) (fma.f64 (neg.f64 (pow.f64 re 1/4)) (pow.f64 (pow.f64 re 1/4) 3) (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3))))
(+.f64 (fma.f64 (*.f64 (neg.f64 (pow.f64 re 1/4)) (sqrt.f64 re)) (pow.f64 re 1/4) (*.f64 (pow.f64 re 1/4) (*.f64 (sqrt.f64 re) (pow.f64 re 1/4)))) (fma.f64 -1 re (*.f64 (*.f64 (sqrt.f64 re) (pow.f64 re 1/4)) (neg.f64 (pow.f64 re 1/4)))))
(+.f64 (*.f64 0 (*.f64 (sqrt.f64 re) (pow.f64 re 1/2))) (-.f64 (neg.f64 re) (*.f64 (sqrt.f64 re) (pow.f64 re 1/2))))
(*.f64 re -2)
(+.f64 (fma.f64 (pow.f64 (pow.f64 re 1/4) 3) (pow.f64 re 1/4) (neg.f64 (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3)))) (fma.f64 (neg.f64 (pow.f64 re 1/4)) (pow.f64 (pow.f64 re 1/4) 3) (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3))))
(+.f64 (fma.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (cbrt.f64 re) (sqrt.f64 re))))) (fma.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
(+.f64 (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))) (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
0
(+.f64 (fma.f64 (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3)))) (fma.f64 (neg.f64 (pow.f64 re 1/4)) (pow.f64 (pow.f64 re 1/4) 3) (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3))))
(+.f64 (fma.f64 (*.f64 (neg.f64 (pow.f64 re 1/4)) (sqrt.f64 re)) (pow.f64 re 1/4) (*.f64 (pow.f64 re 1/4) (*.f64 (sqrt.f64 re) (pow.f64 re 1/4)))) (fma.f64 (*.f64 (cbrt.f64 re) (sqrt.f64 re)) (sqrt.f64 (cbrt.f64 re)) (*.f64 (*.f64 (sqrt.f64 re) (pow.f64 re 1/4)) (neg.f64 (pow.f64 re 1/4)))))
(+.f64 (*.f64 0 (*.f64 (sqrt.f64 re) (pow.f64 re 1/2))) (fma.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (cbrt.f64 re) (sqrt.f64 re)) (neg.f64 (*.f64 (sqrt.f64 re) (pow.f64 re 1/2)))))
(-.f64 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re))) re)
(+.f64 (fma.f64 re 1 (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re))))) (fma.f64 (neg.f64 (sqrt.f64 (cbrt.f64 re))) (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re)))))
(+.f64 (fma.f64 re 1 (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (cbrt.f64 re) (sqrt.f64 re))))) (fma.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
(+.f64 (-.f64 re (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))) (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
(-.f64 re (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re))))
(+.f64 (fma.f64 (sqrt.f64 re) (sqrt.f64 re) (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re))))) (fma.f64 (neg.f64 (sqrt.f64 (cbrt.f64 re))) (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re)))))
(+.f64 (fma.f64 re 1 (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (cbrt.f64 re) (sqrt.f64 re))))) (fma.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
(+.f64 (-.f64 re (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))) (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
(-.f64 re (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re))))
(+.f64 (fma.f64 1 re (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re))))) (fma.f64 (neg.f64 (sqrt.f64 (cbrt.f64 re))) (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re)))))
(+.f64 (fma.f64 re 1 (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (cbrt.f64 re) (sqrt.f64 re))))) (fma.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
(+.f64 (-.f64 re (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))) (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
(-.f64 re (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re))))
(+.f64 (fma.f64 (cbrt.f64 re) (cbrt.f64 (*.f64 re re)) (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re))))) (fma.f64 (neg.f64 (sqrt.f64 (cbrt.f64 re))) (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re)))))
(+.f64 (fma.f64 (cbrt.f64 re) (cbrt.f64 (*.f64 re re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (cbrt.f64 re) (sqrt.f64 re))))) (fma.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
(+.f64 (*.f64 (cbrt.f64 re) (+.f64 (cbrt.f64 (*.f64 re re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (sqrt.f64 re))))) (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
(*.f64 (cbrt.f64 re) (-.f64 (cbrt.f64 (*.f64 re re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re))))
(+.f64 (fma.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re))))) (fma.f64 (neg.f64 (sqrt.f64 (cbrt.f64 re))) (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re)))))
(+.f64 (fma.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (cbrt.f64 re) (sqrt.f64 re))))) (fma.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
(+.f64 (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))) (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
0
(+.f64 (fma.f64 (cbrt.f64 (*.f64 re re)) (cbrt.f64 re) (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re))))) (fma.f64 (neg.f64 (sqrt.f64 (cbrt.f64 re))) (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re)))))
(+.f64 (fma.f64 (cbrt.f64 re) (cbrt.f64 (*.f64 re re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (cbrt.f64 re) (sqrt.f64 re))))) (fma.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
(+.f64 (*.f64 (cbrt.f64 re) (+.f64 (cbrt.f64 (*.f64 re re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (sqrt.f64 re))))) (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
(*.f64 (cbrt.f64 re) (-.f64 (cbrt.f64 (*.f64 re re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re))))
(+.f64 (fma.f64 (pow.f64 re 1/4) (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re))))) (fma.f64 (neg.f64 (sqrt.f64 (cbrt.f64 re))) (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re)))))
(+.f64 (fma.f64 re 1 (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (cbrt.f64 re) (sqrt.f64 re))))) (fma.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
(+.f64 (-.f64 re (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))) (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
(-.f64 re (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re))))
(+.f64 (fma.f64 -1 re (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re))))) (fma.f64 (neg.f64 (sqrt.f64 (cbrt.f64 re))) (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re)))))
(+.f64 (fma.f64 -1 re (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (cbrt.f64 re) (sqrt.f64 re))))) (fma.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
(+.f64 (*.f64 -1 (fma.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) re)) (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
(neg.f64 (fma.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) re))
(+.f64 (fma.f64 (pow.f64 (pow.f64 re 1/4) 3) (pow.f64 re 1/4) (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re))))) (fma.f64 (neg.f64 (sqrt.f64 (cbrt.f64 re))) (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re)))))
(+.f64 (fma.f64 re 1 (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (cbrt.f64 re) (sqrt.f64 re))))) (fma.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
(+.f64 (-.f64 re (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))) (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
(-.f64 re (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re))))
(+.f64 (fma.f64 (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re))))) (fma.f64 (neg.f64 (sqrt.f64 (cbrt.f64 re))) (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re)))))
(+.f64 (fma.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (cbrt.f64 re) (sqrt.f64 re))))) (fma.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
(+.f64 (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))) (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
0
(-.f64 re re)
(+.f64 (fma.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (cbrt.f64 re) (sqrt.f64 re))))) (fma.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
(+.f64 (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))) (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
0
(-.f64 (+.f64 1 (+.f64 re re)) 1)
(+.f64 re re)
(*.f64 (sqrt.f64 re) (+.f64 (sqrt.f64 re) (sqrt.f64 re)))
(+.f64 re re)
(*.f64 (+.f64 re re) 1)
(+.f64 re re)
(*.f64 1 (+.f64 re re))
(+.f64 re re)
(*.f64 (cbrt.f64 (+.f64 re re)) (cbrt.f64 (pow.f64 (+.f64 re re) 2)))
(+.f64 re re)
(*.f64 (cbrt.f64 (pow.f64 (+.f64 re re) 2)) (cbrt.f64 (+.f64 re re)))
(+.f64 re re)
(*.f64 (sqrt.f64 (+.f64 re re)) (sqrt.f64 (+.f64 re re)))
(+.f64 re re)
(*.f64 (pow.f64 1 1/3) (+.f64 re re))
(+.f64 re re)
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (+.f64 re re) 3)) 1/3) (pow.f64 (sqrt.f64 (pow.f64 (+.f64 re re) 3)) 1/3))
(+.f64 re re)
(*.f64 (pow.f64 (*.f64 (pow.f64 (+.f64 re re) 2) (cbrt.f64 (pow.f64 (+.f64 re re) 2))) 1/3) (cbrt.f64 (cbrt.f64 (+.f64 re re))))
(*.f64 (cbrt.f64 (*.f64 (pow.f64 (+.f64 re re) 2) (cbrt.f64 (pow.f64 (+.f64 re re) 2)))) (cbrt.f64 (cbrt.f64 (+.f64 re re))))
(*.f64 (cbrt.f64 (*.f64 (*.f64 (*.f64 re 4) re) (cbrt.f64 (*.f64 (*.f64 re 4) re)))) (cbrt.f64 (cbrt.f64 (+.f64 re re))))
(*.f64 (cbrt.f64 (*.f64 (*.f64 re (*.f64 re 4)) (cbrt.f64 (*.f64 re (*.f64 re 4))))) (cbrt.f64 (cbrt.f64 (+.f64 re re))))
(*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 re (*.f64 re 4))) 4)) (cbrt.f64 (cbrt.f64 (+.f64 re re))))
(*.f64 (pow.f64 (*.f64 (pow.f64 (+.f64 re re) 2) (sqrt.f64 (+.f64 re re))) 1/3) (cbrt.f64 (sqrt.f64 (+.f64 re re))))
(*.f64 (cbrt.f64 (*.f64 (pow.f64 (+.f64 re re) 2) (sqrt.f64 (+.f64 re re)))) (cbrt.f64 (sqrt.f64 (+.f64 re re))))
(*.f64 (cbrt.f64 (*.f64 (*.f64 (*.f64 re 4) re) (sqrt.f64 (+.f64 re re)))) (cbrt.f64 (sqrt.f64 (+.f64 re re))))
(*.f64 (cbrt.f64 (pow.f64 (sqrt.f64 (+.f64 re re)) 5)) (cbrt.f64 (sqrt.f64 (+.f64 re re))))
(*.f64 (cbrt.f64 (pow.f64 (+.f64 re re) 5/2)) (cbrt.f64 (sqrt.f64 (+.f64 re re))))
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (+.f64 re re))) 2) 3) (cbrt.f64 (+.f64 re re)))
(+.f64 re re)
(*.f64 (pow.f64 (sqrt.f64 (cbrt.f64 (+.f64 re re))) 3) (pow.f64 (sqrt.f64 (cbrt.f64 (+.f64 re re))) 3))
(+.f64 re re)
(/.f64 (+.f64 (pow.f64 re 3) (pow.f64 re 3)) (fma.f64 re re (-.f64 (*.f64 re re) (*.f64 re re))))
(/.f64 (*.f64 2 (pow.f64 re 3)) (fma.f64 re re 0))
(/.f64 2 (/.f64 (*.f64 re re) (pow.f64 re 3)))
(/.f64 (*.f64 re re) (*.f64 re 1/2))
(/.f64 (-.f64 (*.f64 re re) (*.f64 re re)) (+.f64 re re))
(+.f64 (fma.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (cbrt.f64 re) (sqrt.f64 re))))) (fma.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
(+.f64 (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))) (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
0
(pow.f64 (+.f64 re re) 1)
(+.f64 re re)
(pow.f64 (pow.f64 (+.f64 re re) 2) 1/2)
(+.f64 re re)
(pow.f64 (pow.f64 (+.f64 re re) 3) 1/3)
(+.f64 re re)
(pow.f64 (cbrt.f64 (+.f64 re re)) 3)
(+.f64 re re)
(pow.f64 (sqrt.f64 (+.f64 re re)) 2)
(+.f64 re re)
(sqrt.f64 (pow.f64 (+.f64 re re) 2))
(+.f64 re re)
(log.f64 (pow.f64 (exp.f64 re) 2))
(+.f64 re re)
(log.f64 (/.f64 (exp.f64 re) (exp.f64 re)))
(+.f64 (fma.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (cbrt.f64 re) (sqrt.f64 re))))) (fma.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
(+.f64 (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))) (*.f64 0 (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))
0
(cbrt.f64 (pow.f64 (+.f64 re re) 3))
(+.f64 re re)
(expm1.f64 (log1p.f64 (+.f64 re re)))
(+.f64 re re)
(log1p.f64 (expm1.f64 (+.f64 re re)))
(+.f64 re re)
(exp.f64 (log.f64 (+.f64 re re)))
(+.f64 re re)

localize24.0ms (0.3%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(sqrt.f64 (hypot.f64 re im))
15.6b
(fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re))
Compiler

Compiled 69 to 18 computations (73.9% saved)

series124.0ms (1.4%)

Counts
2 → 0
Calls

12 calls:

TimeVariablePointExpression
3.0ms
im
@0
(fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re))
1.0ms
im
@inf
(fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re))
1.0ms
im
@-inf
(sqrt.f64 (hypot.f64 re im))
1.0ms
re
@0
(sqrt.f64 (hypot.f64 re im))
1.0ms
re
@0
(fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re))
Compiler

Compiled 9315 to 7560 computations (18.8% saved)

rewrite52.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
563×pow1_binary64
518×add-log-exp_binary64
517×log1p-expm1-u_binary64
517×expm1-log1p-u_binary64
505×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify39.0ms (0.5%)

Algorithm
egg-herbie
Rules
379×fma-neg_binary64
364×log-prod_binary64
332×associate-*l*_binary64
298×associate-*r*_binary64
247×times-frac_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
091451
1208401
2754355
34657341
Stop Event
node limit
Counts
43 → 51
Calls
Call 1
Inputs
(+.f64 (hypot.f64 re im) re)
(+.f64 re (hypot.f64 re im))
(-.f64 (hypot.f64 re im) re)
(-.f64 (+.f64 1 (+.f64 (hypot.f64 re im) re)) 1)
(-.f64 (+.f64 (hypot.f64 re im) 0) re)
(*.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 (pow.f64 (hypot.f64 re im) 2) (-.f64 (*.f64 re re) (*.f64 (hypot.f64 re im) re))))
(/.f64 (-.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 re re)) (+.f64 (hypot.f64 re im) 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)))
(-.f64 (+.f64 1 (sqrt.f64 (hypot.f64 re im))) 1)
(*.f64 (sqrt.f64 (hypot.f64 re im)) 1)
(*.f64 1 (sqrt.f64 (hypot.f64 re im)))
(*.f64 (cbrt.f64 (sqrt.f64 (hypot.f64 re im))) (cbrt.f64 (hypot.f64 re im)))
(*.f64 (cbrt.f64 (hypot.f64 re im)) (cbrt.f64 (sqrt.f64 (hypot.f64 re im))))
(*.f64 (pow.f64 (hypot.f64 re im) 1/4) (pow.f64 (hypot.f64 re im) 1/4))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)) (sqrt.f64 (cbrt.f64 (hypot.f64 re im))))
(*.f64 (pow.f64 1 1/2) (sqrt.f64 (hypot.f64 re im)))
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) 1/2) (pow.f64 (cbrt.f64 (hypot.f64 re im)) 1/2))
(pow.f64 (hypot.f64 re im) 1/2)
(pow.f64 (sqrt.f64 (hypot.f64 re im)) 1)
(pow.f64 (pow.f64 (hypot.f64 re im) 3/2) 1/3)
(pow.f64 (pow.f64 (hypot.f64 re im) 2) 1/4)
(pow.f64 (cbrt.f64 (sqrt.f64 (hypot.f64 re im))) 3)
(pow.f64 (pow.f64 (hypot.f64 re im) 1/4) 2)
(fabs.f64 (sqrt.f64 (hypot.f64 re im)))
(log.f64 (exp.f64 (sqrt.f64 (hypot.f64 re im))))
(cbrt.f64 (pow.f64 (hypot.f64 re im) 3/2))
(expm1.f64 (log1p.f64 (sqrt.f64 (hypot.f64 re im))))
(log1p.f64 (expm1.f64 (sqrt.f64 (hypot.f64 re im))))
(exp.f64 (log.f64 (sqrt.f64 (hypot.f64 re im))))
Outputs
(+.f64 (hypot.f64 re im) re)
(+.f64 re (hypot.f64 re im))
(+.f64 re (hypot.f64 re im))
(-.f64 (hypot.f64 re im) re)
(-.f64 (+.f64 1 (+.f64 (hypot.f64 re im) re)) 1)
(+.f64 re (hypot.f64 re im))
(-.f64 (+.f64 (hypot.f64 re im) 0) re)
(-.f64 (hypot.f64 re im) re)
(*.f64 (+.f64 (hypot.f64 re im) re) 1)
(+.f64 re (hypot.f64 re im))
(*.f64 1 (+.f64 (hypot.f64 re im) re))
(+.f64 re (hypot.f64 re im))
(*.f64 (cbrt.f64 (+.f64 (hypot.f64 re im) re)) (pow.f64 (cbrt.f64 (+.f64 (hypot.f64 re im) re)) 2))
(+.f64 re (hypot.f64 re im))
(*.f64 (pow.f64 (cbrt.f64 (+.f64 (hypot.f64 re im) re)) 2) (cbrt.f64 (+.f64 (hypot.f64 re im) re)))
(+.f64 re (hypot.f64 re im))
(*.f64 (sqrt.f64 (+.f64 (hypot.f64 re im) re)) (sqrt.f64 (+.f64 (hypot.f64 re im) 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 (*.f64 re re) (*.f64 (hypot.f64 re im) 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) 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 (hypot.f64 re im) re))
(-.f64 (hypot.f64 re im) re)
(pow.f64 (+.f64 (hypot.f64 re im) re) 1)
(+.f64 re (hypot.f64 re im))
(pow.f64 (pow.f64 (+.f64 (hypot.f64 re im) re) 3) 1/3)
(+.f64 re (hypot.f64 re im))
(pow.f64 (cbrt.f64 (+.f64 (hypot.f64 re im) re)) 3)
(+.f64 re (hypot.f64 re im))
(pow.f64 (sqrt.f64 (+.f64 (hypot.f64 re im) re)) 2)
(+.f64 re (hypot.f64 re im))
(sqrt.f64 (pow.f64 (+.f64 (hypot.f64 re im) re) 2))
(+.f64 re (hypot.f64 re im))
(log.f64 (exp.f64 (+.f64 (hypot.f64 re im) re)))
(+.f64 re (hypot.f64 re im))
(cbrt.f64 (pow.f64 (+.f64 (hypot.f64 re im) re) 3))
(+.f64 re (hypot.f64 re im))
(expm1.f64 (log1p.f64 (+.f64 (hypot.f64 re im) re)))
(+.f64 re (hypot.f64 re im))
(log1p.f64 (expm1.f64 (+.f64 (hypot.f64 re im) re)))
(+.f64 re (hypot.f64 re im))
(exp.f64 (log.f64 (+.f64 (hypot.f64 re im) re)))
(+.f64 re (hypot.f64 re im))
(-.f64 (+.f64 1 (sqrt.f64 (hypot.f64 re im))) 1)
(+.f64 1 (-.f64 (sqrt.f64 (hypot.f64 re im)) 1))
(+.f64 (sqrt.f64 (hypot.f64 re im)) 0)
(sqrt.f64 (hypot.f64 re im))
(*.f64 (sqrt.f64 (hypot.f64 re im)) 1)
(+.f64 1 (-.f64 (sqrt.f64 (hypot.f64 re im)) 1))
(+.f64 (sqrt.f64 (hypot.f64 re im)) 0)
(sqrt.f64 (hypot.f64 re im))
(*.f64 1 (sqrt.f64 (hypot.f64 re im)))
(+.f64 1 (-.f64 (sqrt.f64 (hypot.f64 re im)) 1))
(+.f64 (sqrt.f64 (hypot.f64 re im)) 0)
(sqrt.f64 (hypot.f64 re im))
(*.f64 (cbrt.f64 (sqrt.f64 (hypot.f64 re im))) (cbrt.f64 (hypot.f64 re im)))
(*.f64 (cbrt.f64 (hypot.f64 re im)) (cbrt.f64 (sqrt.f64 (hypot.f64 re im))))
(*.f64 (cbrt.f64 (sqrt.f64 (hypot.f64 re im))) (cbrt.f64 (hypot.f64 re im)))
(*.f64 (pow.f64 (hypot.f64 re im) 1/4) (pow.f64 (hypot.f64 re im) 1/4))
(+.f64 1 (-.f64 (sqrt.f64 (hypot.f64 re im)) 1))
(+.f64 (sqrt.f64 (hypot.f64 re im)) 0)
(sqrt.f64 (hypot.f64 re im))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)) (sqrt.f64 (cbrt.f64 (hypot.f64 re im))))
(*.f64 (fabs.f64 (cbrt.f64 (hypot.f64 re im))) (sqrt.f64 (cbrt.f64 (hypot.f64 re im))))
(*.f64 (cbrt.f64 (hypot.f64 re im)) (sqrt.f64 (cbrt.f64 (hypot.f64 re im))))
(pow.f64 (cbrt.f64 (hypot.f64 re im)) 3/2)
(*.f64 (pow.f64 1 1/2) (sqrt.f64 (hypot.f64 re im)))
(+.f64 1 (-.f64 (sqrt.f64 (hypot.f64 re im)) 1))
(+.f64 (sqrt.f64 (hypot.f64 re im)) 0)
(sqrt.f64 (hypot.f64 re im))
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) 1/2) (pow.f64 (cbrt.f64 (hypot.f64 re im)) 1/2))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)) (sqrt.f64 (cbrt.f64 (hypot.f64 re im))))
(*.f64 (fabs.f64 (cbrt.f64 (hypot.f64 re im))) (sqrt.f64 (cbrt.f64 (hypot.f64 re im))))
(*.f64 (cbrt.f64 (hypot.f64 re im)) (sqrt.f64 (cbrt.f64 (hypot.f64 re im))))
(pow.f64 (cbrt.f64 (hypot.f64 re im)) 3/2)
(pow.f64 (hypot.f64 re im) 1/2)
(+.f64 1 (-.f64 (sqrt.f64 (hypot.f64 re im)) 1))
(+.f64 (sqrt.f64 (hypot.f64 re im)) 0)
(sqrt.f64 (hypot.f64 re im))
(pow.f64 (sqrt.f64 (hypot.f64 re im)) 1)
(+.f64 1 (-.f64 (sqrt.f64 (hypot.f64 re im)) 1))
(+.f64 (sqrt.f64 (hypot.f64 re im)) 0)
(sqrt.f64 (hypot.f64 re im))
(pow.f64 (pow.f64 (hypot.f64 re im) 3/2) 1/3)
(cbrt.f64 (pow.f64 (hypot.f64 re im) 3/2))
(pow.f64 (pow.f64 (hypot.f64 re im) 2) 1/4)
(pow.f64 (cbrt.f64 (sqrt.f64 (hypot.f64 re im))) 3)
(+.f64 1 (-.f64 (sqrt.f64 (hypot.f64 re im)) 1))
(+.f64 (sqrt.f64 (hypot.f64 re im)) 0)
(sqrt.f64 (hypot.f64 re im))
(pow.f64 (pow.f64 (hypot.f64 re im) 1/4) 2)
(+.f64 1 (-.f64 (sqrt.f64 (hypot.f64 re im)) 1))
(+.f64 (sqrt.f64 (hypot.f64 re im)) 0)
(sqrt.f64 (hypot.f64 re im))
(fabs.f64 (sqrt.f64 (hypot.f64 re im)))
(+.f64 1 (-.f64 (sqrt.f64 (hypot.f64 re im)) 1))
(+.f64 (sqrt.f64 (hypot.f64 re im)) 0)
(sqrt.f64 (hypot.f64 re im))
(log.f64 (exp.f64 (sqrt.f64 (hypot.f64 re im))))
(+.f64 1 (-.f64 (sqrt.f64 (hypot.f64 re im)) 1))
(+.f64 (sqrt.f64 (hypot.f64 re im)) 0)
(sqrt.f64 (hypot.f64 re im))
(cbrt.f64 (pow.f64 (hypot.f64 re im) 3/2))
(expm1.f64 (log1p.f64 (sqrt.f64 (hypot.f64 re im))))
(+.f64 1 (-.f64 (sqrt.f64 (hypot.f64 re im)) 1))
(+.f64 (sqrt.f64 (hypot.f64 re im)) 0)
(sqrt.f64 (hypot.f64 re im))
(log1p.f64 (expm1.f64 (sqrt.f64 (hypot.f64 re im))))
(+.f64 1 (-.f64 (sqrt.f64 (hypot.f64 re im)) 1))
(+.f64 (sqrt.f64 (hypot.f64 re im)) 0)
(sqrt.f64 (hypot.f64 re im))
(exp.f64 (log.f64 (sqrt.f64 (hypot.f64 re im))))
(+.f64 1 (-.f64 (sqrt.f64 (hypot.f64 re im)) 1))
(+.f64 (sqrt.f64 (hypot.f64 re im)) 0)
(sqrt.f64 (hypot.f64 re im))

localize26.0ms (0.3%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.5b
(cbrt.f64 (hypot.f64 re im))
0.5b
(pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)
15.4b
(fma.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (cbrt.f64 (hypot.f64 re im)) (neg.f64 re))
Compiler

Compiled 83 to 31 computations (62.7% saved)

series472.0ms (5.5%)

Counts
3 → 0
Calls

18 calls:

TimeVariablePointExpression
6.0ms
im
@0
(fma.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (cbrt.f64 (hypot.f64 re im)) (neg.f64 re))
5.0ms
re
@0
(pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)
3.0ms
im
@inf
(pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)
2.0ms
re
@0
(fma.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (cbrt.f64 (hypot.f64 re im)) (neg.f64 re))
2.0ms
im
@inf
(fma.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (cbrt.f64 (hypot.f64 re im)) (neg.f64 re))
Compiler

Compiled 29720 to 24960 computations (16% saved)

rewrite108.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
688×pow1_binary64
635×add-log-exp_binary64
634×log1p-expm1-u_binary64
634×expm1-log1p-u_binary64
620×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify49.0ms (0.6%)

Algorithm
egg-herbie
Rules
499×associate-/r*_binary64
292×fma-neg_binary64
269×associate-*l/_binary64
260×associate-/l/_binary64
260×fma-def_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0116687
1247583
2980482
34069476
Stop Event
node limit
Counts
59 → 72
Calls
Call 1
Inputs
(+.f64 (hypot.f64 re im) re)
(+.f64 re (hypot.f64 re im))
(-.f64 (hypot.f64 re im) re)
(-.f64 (+.f64 1 (+.f64 (hypot.f64 re im) re)) 1)
(-.f64 (+.f64 (hypot.f64 re im) 0) re)
(*.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 (pow.f64 (hypot.f64 re im) 2) (-.f64 (*.f64 re re) (*.f64 (hypot.f64 re im) re))))
(/.f64 (-.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 re re)) (+.f64 (hypot.f64 re im) 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)))
(-.f64 (+.f64 1 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)) 1)
(*.f64 (cbrt.f64 (hypot.f64 re im)) (cbrt.f64 (hypot.f64 re im)))
(*.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) 1)
(*.f64 1 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2))
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) 2) (cbrt.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 4)))
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) 2) (*.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) (cbrt.f64 (hypot.f64 re im))))
(*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 4)) (pow.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) 2))
(*.f64 (pow.f64 (hypot.f64 re im) 1/6) (*.f64 (pow.f64 (hypot.f64 re im) 1/6) (cbrt.f64 (hypot.f64 re im))))
(*.f64 (sqrt.f64 (hypot.f64 re im)) (pow.f64 (hypot.f64 re im) 1/6))
(*.f64 (*.f64 (cbrt.f64 (hypot.f64 re im)) (pow.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) 2)) (cbrt.f64 (cbrt.f64 (hypot.f64 re im))))
(sqrt.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 4))
(log.f64 (exp.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)))
(cbrt.f64 (pow.f64 (hypot.f64 re im) 2))
(expm1.f64 (log1p.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)))
(log1p.f64 (expm1.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)))
(exp.f64 (*.f64 2 (log.f64 (cbrt.f64 (hypot.f64 re im)))))
(-.f64 (+.f64 1 (cbrt.f64 (hypot.f64 re im))) 1)
(*.f64 (cbrt.f64 (hypot.f64 re im)) 1)
(*.f64 1 (cbrt.f64 (hypot.f64 re im)))
(*.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) (pow.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) 2))
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) 2) (cbrt.f64 (cbrt.f64 (hypot.f64 re im))))
(*.f64 (pow.f64 (hypot.f64 re im) 1/6) (pow.f64 (hypot.f64 re im) 1/6))
(*.f64 (sqrt.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 4))) (sqrt.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) 2)))
(*.f64 (pow.f64 1 1/3) (cbrt.f64 (hypot.f64 re im)))
(*.f64 (pow.f64 (sqrt.f64 (hypot.f64 re im)) 1/3) (pow.f64 (sqrt.f64 (hypot.f64 re im)) 1/3))
(pow.f64 (hypot.f64 re im) 1/3)
(pow.f64 (cbrt.f64 (hypot.f64 re im)) 1)
(pow.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) 1/2)
(pow.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) 3)
(pow.f64 (pow.f64 (hypot.f64 re im) 1/6) 2)
(pow.f64 (pow.f64 (hypot.f64 re im) 2) 1/6)
(sqrt.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2))
(fabs.f64 (cbrt.f64 (hypot.f64 re im)))
(log.f64 (exp.f64 (cbrt.f64 (hypot.f64 re im))))
(expm1.f64 (log1p.f64 (cbrt.f64 (hypot.f64 re im))))
(log1p.f64 (expm1.f64 (cbrt.f64 (hypot.f64 re im))))
(exp.f64 (log.f64 (cbrt.f64 (hypot.f64 re im))))
Outputs
(+.f64 (hypot.f64 re im) re)
(+.f64 re (hypot.f64 re im))
(+.f64 re (hypot.f64 re im))
(-.f64 (hypot.f64 re im) re)
(-.f64 (+.f64 1 (+.f64 (hypot.f64 re im) re)) 1)
(+.f64 re (hypot.f64 re im))
(-.f64 (+.f64 (hypot.f64 re im) 0) re)
(-.f64 (hypot.f64 re im) re)
(*.f64 (+.f64 (hypot.f64 re im) re) 1)
(+.f64 re (hypot.f64 re im))
(*.f64 1 (+.f64 (hypot.f64 re im) re))
(+.f64 re (hypot.f64 re im))
(*.f64 (cbrt.f64 (+.f64 (hypot.f64 re im) re)) (pow.f64 (cbrt.f64 (+.f64 (hypot.f64 re im) re)) 2))
(+.f64 re (hypot.f64 re im))
(*.f64 (pow.f64 (cbrt.f64 (+.f64 (hypot.f64 re im) re)) 2) (cbrt.f64 (+.f64 (hypot.f64 re im) re)))
(+.f64 re (hypot.f64 re im))
(*.f64 (sqrt.f64 (+.f64 (hypot.f64 re im) re)) (sqrt.f64 (+.f64 (hypot.f64 re im) 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 (*.f64 re re) (*.f64 (hypot.f64 re im) 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) 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 (hypot.f64 re im) re))
(-.f64 (hypot.f64 re im) re)
(pow.f64 (+.f64 (hypot.f64 re im) re) 1)
(+.f64 re (hypot.f64 re im))
(pow.f64 (pow.f64 (+.f64 (hypot.f64 re im) re) 3) 1/3)
(+.f64 re (hypot.f64 re im))
(pow.f64 (cbrt.f64 (+.f64 (hypot.f64 re im) re)) 3)
(+.f64 re (hypot.f64 re im))
(pow.f64 (sqrt.f64 (+.f64 (hypot.f64 re im) re)) 2)
(+.f64 re (hypot.f64 re im))
(sqrt.f64 (pow.f64 (+.f64 (hypot.f64 re im) re) 2))
(+.f64 re (hypot.f64 re im))
(log.f64 (exp.f64 (+.f64 (hypot.f64 re im) re)))
(+.f64 re (hypot.f64 re im))
(cbrt.f64 (pow.f64 (+.f64 (hypot.f64 re im) re) 3))
(+.f64 re (hypot.f64 re im))
(expm1.f64 (log1p.f64 (+.f64 (hypot.f64 re im) re)))
(+.f64 re (hypot.f64 re im))
(log1p.f64 (expm1.f64 (+.f64 (hypot.f64 re im) re)))
(+.f64 re (hypot.f64 re im))
(exp.f64 (log.f64 (+.f64 (hypot.f64 re im) re)))
(+.f64 re (hypot.f64 re im))
(-.f64 (+.f64 1 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)) 1)
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) 0)
(pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)
(*.f64 (cbrt.f64 (hypot.f64 re im)) (cbrt.f64 (hypot.f64 re im)))
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) 0)
(pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)
(*.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) 1)
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) 0)
(pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)
(*.f64 1 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2))
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) 0)
(pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) 2) (cbrt.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 4)))
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) 0)
(pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) 2) (*.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) (cbrt.f64 (hypot.f64 re im))))
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) 0)
(pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)
(*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 4)) (pow.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) 2))
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) 0)
(pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)
(*.f64 (pow.f64 (hypot.f64 re im) 1/6) (*.f64 (pow.f64 (hypot.f64 re im) 1/6) (cbrt.f64 (hypot.f64 re im))))
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) 0)
(pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)
(*.f64 (sqrt.f64 (hypot.f64 re im)) (pow.f64 (hypot.f64 re im) 1/6))
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) 0)
(pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)
(*.f64 (*.f64 (cbrt.f64 (hypot.f64 re im)) (pow.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) 2)) (cbrt.f64 (cbrt.f64 (hypot.f64 re im))))
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) 0)
(pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)
(sqrt.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 4))
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) 0)
(pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)
(log.f64 (exp.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)))
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) 0)
(pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)
(cbrt.f64 (pow.f64 (hypot.f64 re im) 2))
(expm1.f64 (log1p.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)))
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) 0)
(pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)
(log1p.f64 (expm1.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)))
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) 0)
(pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)
(exp.f64 (*.f64 2 (log.f64 (cbrt.f64 (hypot.f64 re im)))))
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) 0)
(pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)
(-.f64 (+.f64 1 (cbrt.f64 (hypot.f64 re im))) 1)
(+.f64 1 (-.f64 (cbrt.f64 (hypot.f64 re im)) 1))
(+.f64 (cbrt.f64 (hypot.f64 re im)) 0)
(cbrt.f64 (hypot.f64 re im))
(*.f64 (cbrt.f64 (hypot.f64 re im)) 1)
(+.f64 1 (-.f64 (cbrt.f64 (hypot.f64 re im)) 1))
(+.f64 (cbrt.f64 (hypot.f64 re im)) 0)
(cbrt.f64 (hypot.f64 re im))
(*.f64 1 (cbrt.f64 (hypot.f64 re im)))
(+.f64 1 (-.f64 (cbrt.f64 (hypot.f64 re im)) 1))
(+.f64 (cbrt.f64 (hypot.f64 re im)) 0)
(cbrt.f64 (hypot.f64 re im))
(*.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) (pow.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) 2))
(+.f64 1 (-.f64 (cbrt.f64 (hypot.f64 re im)) 1))
(+.f64 (cbrt.f64 (hypot.f64 re im)) 0)
(cbrt.f64 (hypot.f64 re im))
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) 2) (cbrt.f64 (cbrt.f64 (hypot.f64 re im))))
(+.f64 1 (-.f64 (cbrt.f64 (hypot.f64 re im)) 1))
(+.f64 (cbrt.f64 (hypot.f64 re im)) 0)
(cbrt.f64 (hypot.f64 re im))
(*.f64 (pow.f64 (hypot.f64 re im) 1/6) (pow.f64 (hypot.f64 re im) 1/6))
(+.f64 1 (-.f64 (cbrt.f64 (hypot.f64 re im)) 1))
(+.f64 (cbrt.f64 (hypot.f64 re im)) 0)
(cbrt.f64 (hypot.f64 re im))
(*.f64 (sqrt.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 4))) (sqrt.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) 2)))
(*.f64 (sqrt.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 4))) (fabs.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im)))))
(*.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) (sqrt.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 4))))
(*.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) (sqrt.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) 4)))
(*.f64 (pow.f64 1 1/3) (cbrt.f64 (hypot.f64 re im)))
(+.f64 1 (-.f64 (cbrt.f64 (hypot.f64 re im)) 1))
(+.f64 (cbrt.f64 (hypot.f64 re im)) 0)
(cbrt.f64 (hypot.f64 re im))
(*.f64 (pow.f64 (sqrt.f64 (hypot.f64 re im)) 1/3) (pow.f64 (sqrt.f64 (hypot.f64 re im)) 1/3))
(*.f64 (cbrt.f64 (sqrt.f64 (hypot.f64 re im))) (cbrt.f64 (sqrt.f64 (hypot.f64 re im))))
(pow.f64 (pow.f64 (sqrt.f64 (hypot.f64 re im)) 1/6) 4)
(pow.f64 (hypot.f64 re im) 1/3)
(+.f64 1 (-.f64 (cbrt.f64 (hypot.f64 re im)) 1))
(+.f64 (cbrt.f64 (hypot.f64 re im)) 0)
(cbrt.f64 (hypot.f64 re im))
(pow.f64 (cbrt.f64 (hypot.f64 re im)) 1)
(+.f64 1 (-.f64 (cbrt.f64 (hypot.f64 re im)) 1))
(+.f64 (cbrt.f64 (hypot.f64 re im)) 0)
(cbrt.f64 (hypot.f64 re im))
(pow.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) 1/2)
(+.f64 1 (-.f64 (cbrt.f64 (hypot.f64 re im)) 1))
(+.f64 (cbrt.f64 (hypot.f64 re im)) 0)
(cbrt.f64 (hypot.f64 re im))
(pow.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) 3)
(+.f64 1 (-.f64 (cbrt.f64 (hypot.f64 re im)) 1))
(+.f64 (cbrt.f64 (hypot.f64 re im)) 0)
(cbrt.f64 (hypot.f64 re im))
(pow.f64 (pow.f64 (hypot.f64 re im) 1/6) 2)
(+.f64 1 (-.f64 (cbrt.f64 (hypot.f64 re im)) 1))
(+.f64 (cbrt.f64 (hypot.f64 re im)) 0)
(cbrt.f64 (hypot.f64 re im))
(pow.f64 (pow.f64 (hypot.f64 re im) 2) 1/6)
(sqrt.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2))
(+.f64 1 (-.f64 (cbrt.f64 (hypot.f64 re im)) 1))
(+.f64 (cbrt.f64 (hypot.f64 re im)) 0)
(cbrt.f64 (hypot.f64 re im))
(fabs.f64 (cbrt.f64 (hypot.f64 re im)))
(+.f64 1 (-.f64 (cbrt.f64 (hypot.f64 re im)) 1))
(+.f64 (cbrt.f64 (hypot.f64 re im)) 0)
(cbrt.f64 (hypot.f64 re im))
(log.f64 (exp.f64 (cbrt.f64 (hypot.f64 re im))))
(+.f64 1 (-.f64 (cbrt.f64 (hypot.f64 re im)) 1))
(+.f64 (cbrt.f64 (hypot.f64 re im)) 0)
(cbrt.f64 (hypot.f64 re im))
(expm1.f64 (log1p.f64 (cbrt.f64 (hypot.f64 re im))))
(+.f64 1 (-.f64 (cbrt.f64 (hypot.f64 re im)) 1))
(+.f64 (cbrt.f64 (hypot.f64 re im)) 0)
(cbrt.f64 (hypot.f64 re im))
(log1p.f64 (expm1.f64 (cbrt.f64 (hypot.f64 re im))))
(+.f64 1 (-.f64 (cbrt.f64 (hypot.f64 re im)) 1))
(+.f64 (cbrt.f64 (hypot.f64 re im)) 0)
(cbrt.f64 (hypot.f64 re im))
(exp.f64 (log.f64 (cbrt.f64 (hypot.f64 re im))))
(+.f64 1 (-.f64 (cbrt.f64 (hypot.f64 re im)) 1))
(+.f64 (cbrt.f64 (hypot.f64 re im)) 0)
(cbrt.f64 (hypot.f64 re im))

eval219.0ms (2.5%)

Compiler

Compiled 12000 to 5475 computations (54.4% saved)

prune226.0ms (2.6%)

Pruning

39 alts after pruning (34 fresh and 5 done)

PrunedKeptTotal
New44734481
Fresh000
Picked011
Done044
Total44739486
Error
12.8b
Counts
486 → 39
Alt Table
Click to see full alt table
StatusErrorProgram
15.7b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (pow.f64 (pow.f64 (hypot.f64 re im) 1/4) 2) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re)))))
16.2b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (pow.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) 3) (neg.f64 re)))))
16.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (*.f64 (cbrt.f64 (sqrt.f64 (hypot.f64 re im))) (cbrt.f64 (sqrt.f64 (hypot.f64 re im)))) (neg.f64 re)))))
16.2b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (cbrt.f64 (hypot.f64 re im)) (neg.f64 re)))))
15.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 3/2) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re)))))
16.3b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) 2) (*.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) (cbrt.f64 (hypot.f64 re im)))) (cbrt.f64 (hypot.f64 re im)) (neg.f64 re)))))
15.7b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re)))))
52.2b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (pow.f64 (pow.f64 (+.f64 (hypot.f64 re im) re) 3) 1/3))))
32.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (pow.f64 (sqrt.f64 (+.f64 (hypot.f64 re im) re)) 2))))
32.2b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (pow.f64 (cbrt.f64 (+.f64 (hypot.f64 re im) re)) 3))))
13.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))))
51.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (fma.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (cbrt.f64 (hypot.f64 re im)) (neg.f64 re)) (fma.f64 (neg.f64 (sqrt.f64 re)) (sqrt.f64 re) re)))))
15.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re)) (fma.f64 (neg.f64 (cbrt.f64 re)) (pow.f64 (cbrt.f64 re) 2) re)))))
31.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (hypot.f64 re im) re))))
15.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 (cbrt.f64 re)) 3)) (pow.f64 (cbrt.f64 re) 2) re)))))
50.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (fma.f64 (neg.f64 (sqrt.f64 re)) (sqrt.f64 re) re)))))
15.7b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (fma.f64 (neg.f64 (cbrt.f64 re)) (pow.f64 (cbrt.f64 re) 2) re)))))
21.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (fma.f64 (neg.f64 (cbrt.f64 re)) (sqrt.f64 (*.f64 re (cbrt.f64 re))) re)))))
25.4b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (fma.f64 (neg.f64 (cbrt.f64 re)) (cbrt.f64 (*.f64 re re)) re)))))
25.6b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (fma.f64 (cbrt.f64 (*.f64 re re)) (cbrt.f64 re) (neg.f64 re))))))
32.2b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (/.f64 (*.f64 re re) (*.f64 re 1/2))))))
50.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (+.f64 (fma.f64 (pow.f64 re 1/4) (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re))))) (fma.f64 (neg.f64 (sqrt.f64 (cbrt.f64 re))) (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re)))))))))
50.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (+.f64 (fma.f64 (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3)))) (fma.f64 (neg.f64 (pow.f64 re 1/4)) (pow.f64 (pow.f64 re 1/4) 3) (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3))))))))
50.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (+.f64 (fma.f64 (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (pow.f64 re 1/4)))) (fma.f64 (neg.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re))) (pow.f64 re 1/4) (*.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (pow.f64 re 1/4))))))))
50.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (+.f64 (fma.f64 (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (cbrt.f64 re)))) (fma.f64 (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (cbrt.f64 re))))))))
50.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (+.f64 (fma.f64 (sqrt.f64 re) (sqrt.f64 re) (neg.f64 (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3)))) (fma.f64 (neg.f64 (pow.f64 re 1/4)) (pow.f64 (pow.f64 re 1/4) 3) (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3))))))))
50.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (+.f64 (fma.f64 (sqrt.f64 re) (sqrt.f64 re) (neg.f64 (*.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (pow.f64 re 1/4)))) (fma.f64 (neg.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re))) (pow.f64 re 1/4) (*.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (pow.f64 re 1/4))))))))
52.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (+.f64 (fma.f64 (cbrt.f64 (*.f64 re re)) (cbrt.f64 re) (neg.f64 (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3)))) (fma.f64 (neg.f64 (pow.f64 re 1/4)) (pow.f64 (pow.f64 re 1/4) 3) (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3))))))))
52.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (+.f64 (fma.f64 (cbrt.f64 (*.f64 re re)) (cbrt.f64 re) (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re))))) (fma.f64 (neg.f64 (sqrt.f64 (cbrt.f64 re))) (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re)))))))))
50.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (+.f64 (fma.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (neg.f64 (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3)))) (fma.f64 (neg.f64 (pow.f64 re 1/4)) (pow.f64 (pow.f64 re 1/4) 3) (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3))))))))
50.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (+.f64 (fma.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re))))) (fma.f64 (neg.f64 (sqrt.f64 (cbrt.f64 re))) (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re)))))))))
52.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (+.f64 (fma.f64 (cbrt.f64 re) (cbrt.f64 (*.f64 re re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (cbrt.f64 re) (sqrt.f64 re))))) (fma.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))))))
50.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (+.f64 (fma.f64 re 1 (neg.f64 (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3)))) (fma.f64 (neg.f64 (pow.f64 re 1/4)) (pow.f64 (pow.f64 re 1/4) 3) (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3))))))))
50.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (+.f64 (fma.f64 re 1 (neg.f64 (*.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (pow.f64 re 1/4)))) (fma.f64 (neg.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re))) (pow.f64 re 1/4) (*.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (pow.f64 re 1/4))))))))
50.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (+.f64 (fma.f64 re 1 (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re))))) (fma.f64 (neg.f64 (sqrt.f64 (cbrt.f64 re))) (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re)))))))))
50.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (+.f64 (*.f64 0 (*.f64 (sqrt.f64 re) (pow.f64 re 1/2))) (fma.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (cbrt.f64 re) (sqrt.f64 re)) (neg.f64 (*.f64 (sqrt.f64 re) (pow.f64 re 1/2)))))))))
52.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (+.f64 (*.f64 0 (*.f64 (sqrt.f64 re) (pow.f64 re 1/2))) (fma.f64 (cbrt.f64 (*.f64 re re)) (cbrt.f64 re) (neg.f64 (*.f64 (sqrt.f64 re) (pow.f64 re 1/2)))))))))
33.6b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (expm1.f64 (log1p.f64 (+.f64 (hypot.f64 re im) re))))))
34.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (exp.f64 (log.f64 (+.f64 (hypot.f64 re im) re))))))
Compiler

Compiled 2406 to 1525 computations (36.6% saved)

localize54.0ms (0.6%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(sqrt.f64 (hypot.f64 re im))
0.5b
(pow.f64 (pow.f64 (hypot.f64 re im) 1/4) 2)
15.5b
(fma.f64 (pow.f64 (pow.f64 (hypot.f64 re im) 1/4) 2) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re))
Compiler

Compiled 94 to 44 computations (53.2% saved)

series260.0ms (3%)

Counts
2 → 0
Calls

12 calls:

TimeVariablePointExpression
26.0ms
im
@0
(fma.f64 (pow.f64 (pow.f64 (hypot.f64 re im) 1/4) 2) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re))
3.0ms
re
@inf
(fma.f64 (pow.f64 (pow.f64 (hypot.f64 re im) 1/4) 2) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re))
3.0ms
re
@0
(fma.f64 (pow.f64 (pow.f64 (hypot.f64 re im) 1/4) 2) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re))
2.0ms
re
@0
(pow.f64 (pow.f64 (hypot.f64 re im) 1/4) 2)
2.0ms
re
@inf
(pow.f64 (pow.f64 (hypot.f64 re im) 1/4) 2)
Compiler

Compiled 21430 to 18505 computations (13.6% saved)

rewrite54.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
777×pow1_binary64
721×add-log-exp_binary64
720×log1p-expm1-u_binary64
720×expm1-log1p-u_binary64
703×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify65.0ms (0.8%)

Algorithm
egg-herbie
Rules
357×associate-*l*_binary64
319×log-prod_binary64
316×fma-neg_binary64
315×associate-*r*_binary64
285×associate-*l/_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
096476
1212429
2696386
34323372
Stop Event
node limit
Counts
42 → 53
Calls
Call 1
Inputs
(+.f64 (hypot.f64 re im) re)
(+.f64 re (hypot.f64 re im))
(-.f64 (hypot.f64 re im) re)
(-.f64 (+.f64 1 (+.f64 (hypot.f64 re im) re)) 1)
(-.f64 (+.f64 (hypot.f64 re im) 0) re)
(*.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 (pow.f64 (hypot.f64 re im) 2) (-.f64 (*.f64 re re) (*.f64 (hypot.f64 re im) re))))
(/.f64 (-.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 re re)) (+.f64 (hypot.f64 re im) 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)))
(-.f64 (+.f64 1 (sqrt.f64 (hypot.f64 re im))) 1)
(*.f64 (pow.f64 (hypot.f64 re im) 1/4) (pow.f64 (hypot.f64 re im) 1/4))
(*.f64 (sqrt.f64 (hypot.f64 re im)) 1)
(*.f64 1 (sqrt.f64 (hypot.f64 re im)))
(*.f64 (cbrt.f64 (sqrt.f64 (hypot.f64 re im))) (cbrt.f64 (hypot.f64 re im)))
(*.f64 (cbrt.f64 (sqrt.f64 (hypot.f64 re im))) (*.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 1/4)) (pow.f64 (hypot.f64 re im) 1/4)))
(*.f64 (cbrt.f64 (hypot.f64 re im)) (cbrt.f64 (sqrt.f64 (hypot.f64 re im))))
(*.f64 (pow.f64 (hypot.f64 re im) 1/8) (*.f64 (pow.f64 (hypot.f64 re im) 1/8) (pow.f64 (hypot.f64 re im) 1/4)))
(*.f64 (*.f64 (pow.f64 (hypot.f64 re im) 1/4) (pow.f64 (hypot.f64 re im) 1/8)) (pow.f64 (hypot.f64 re im) 1/8))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)) (sqrt.f64 (cbrt.f64 (hypot.f64 re im))))
(*.f64 (pow.f64 1 1/2) (sqrt.f64 (hypot.f64 re im)))
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) 1/2) (pow.f64 (cbrt.f64 (hypot.f64 re im)) 1/2))
(*.f64 (*.f64 (pow.f64 (hypot.f64 re im) 1/4) (cbrt.f64 (sqrt.f64 (hypot.f64 re im)))) (cbrt.f64 (pow.f64 (hypot.f64 re im) 1/4)))
(sqrt.f64 (hypot.f64 re im))
(fabs.f64 (sqrt.f64 (hypot.f64 re im)))
(log.f64 (exp.f64 (sqrt.f64 (hypot.f64 re im))))
(cbrt.f64 (pow.f64 (hypot.f64 re im) 3/2))
(expm1.f64 (log1p.f64 (sqrt.f64 (hypot.f64 re im))))
(log1p.f64 (expm1.f64 (sqrt.f64 (hypot.f64 re im))))
(exp.f64 (log.f64 (sqrt.f64 (hypot.f64 re im))))
Outputs
(+.f64 (hypot.f64 re im) re)
(+.f64 re (hypot.f64 re im))
(+.f64 re (hypot.f64 re im))
(-.f64 (hypot.f64 re im) re)
(-.f64 (+.f64 1 (+.f64 (hypot.f64 re im) re)) 1)
(+.f64 re (hypot.f64 re im))
(-.f64 (+.f64 (hypot.f64 re im) 0) re)
(-.f64 (hypot.f64 re im) re)
(*.f64 (+.f64 (hypot.f64 re im) re) 1)
(+.f64 re (hypot.f64 re im))
(*.f64 1 (+.f64 (hypot.f64 re im) re))
(+.f64 re (hypot.f64 re im))
(*.f64 (cbrt.f64 (+.f64 (hypot.f64 re im) re)) (pow.f64 (cbrt.f64 (+.f64 (hypot.f64 re im) re)) 2))
(+.f64 re (hypot.f64 re im))
(*.f64 (pow.f64 (cbrt.f64 (+.f64 (hypot.f64 re im) re)) 2) (cbrt.f64 (+.f64 (hypot.f64 re im) re)))
(+.f64 re (hypot.f64 re im))
(*.f64 (sqrt.f64 (+.f64 (hypot.f64 re im) re)) (sqrt.f64 (+.f64 (hypot.f64 re im) 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 (*.f64 re re) (*.f64 (hypot.f64 re im) 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) 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) 3) (pow.f64 re 3)) (fma.f64 re re (*.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re))))
(/.f64 (-.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 re re)) (+.f64 (hypot.f64 re im) re))
(-.f64 (hypot.f64 re im) re)
(pow.f64 (+.f64 (hypot.f64 re im) re) 1)
(+.f64 re (hypot.f64 re im))
(pow.f64 (pow.f64 (+.f64 (hypot.f64 re im) re) 3) 1/3)
(+.f64 re (hypot.f64 re im))
(pow.f64 (cbrt.f64 (+.f64 (hypot.f64 re im) re)) 3)
(+.f64 re (hypot.f64 re im))
(pow.f64 (sqrt.f64 (+.f64 (hypot.f64 re im) re)) 2)
(+.f64 re (hypot.f64 re im))
(sqrt.f64 (pow.f64 (+.f64 (hypot.f64 re im) re) 2))
(+.f64 re (hypot.f64 re im))
(log.f64 (exp.f64 (+.f64 (hypot.f64 re im) re)))
(+.f64 re (hypot.f64 re im))
(cbrt.f64 (pow.f64 (+.f64 (hypot.f64 re im) re) 3))
(+.f64 re (hypot.f64 re im))
(expm1.f64 (log1p.f64 (+.f64 (hypot.f64 re im) re)))
(+.f64 re (hypot.f64 re im))
(log1p.f64 (expm1.f64 (+.f64 (hypot.f64 re im) re)))
(+.f64 re (hypot.f64 re im))
(exp.f64 (log.f64 (+.f64 (hypot.f64 re im) re)))
(+.f64 re (hypot.f64 re im))
(-.f64 (+.f64 1 (sqrt.f64 (hypot.f64 re im))) 1)
(+.f64 1 (-.f64 (sqrt.f64 (hypot.f64 re im)) 1))
(+.f64 (sqrt.f64 (hypot.f64 re im)) 0)
(sqrt.f64 (hypot.f64 re im))
(*.f64 (pow.f64 (hypot.f64 re im) 1/4) (pow.f64 (hypot.f64 re im) 1/4))
(+.f64 1 (-.f64 (sqrt.f64 (hypot.f64 re im)) 1))
(+.f64 (sqrt.f64 (hypot.f64 re im)) 0)
(sqrt.f64 (hypot.f64 re im))
(*.f64 (sqrt.f64 (hypot.f64 re im)) 1)
(+.f64 1 (-.f64 (sqrt.f64 (hypot.f64 re im)) 1))
(+.f64 (sqrt.f64 (hypot.f64 re im)) 0)
(sqrt.f64 (hypot.f64 re im))
(*.f64 1 (sqrt.f64 (hypot.f64 re im)))
(+.f64 1 (-.f64 (sqrt.f64 (hypot.f64 re im)) 1))
(+.f64 (sqrt.f64 (hypot.f64 re im)) 0)
(sqrt.f64 (hypot.f64 re im))
(*.f64 (cbrt.f64 (sqrt.f64 (hypot.f64 re im))) (cbrt.f64 (hypot.f64 re im)))
(*.f64 (cbrt.f64 (sqrt.f64 (hypot.f64 re im))) (*.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 1/4)) (pow.f64 (hypot.f64 re im) 1/4)))
(*.f64 (cbrt.f64 (sqrt.f64 (hypot.f64 re im))) (*.f64 (pow.f64 (hypot.f64 re im) 1/4) (cbrt.f64 (pow.f64 (hypot.f64 re im) 1/4))))
(*.f64 (pow.f64 (hypot.f64 re im) 1/4) (*.f64 (cbrt.f64 (sqrt.f64 (hypot.f64 re im))) (cbrt.f64 (pow.f64 (hypot.f64 re im) 1/4))))
(*.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 1/4)) (*.f64 (pow.f64 (hypot.f64 re im) 1/4) (cbrt.f64 (sqrt.f64 (hypot.f64 re im)))))
(*.f64 (cbrt.f64 (hypot.f64 re im)) (cbrt.f64 (sqrt.f64 (hypot.f64 re im))))
(*.f64 (cbrt.f64 (sqrt.f64 (hypot.f64 re im))) (cbrt.f64 (hypot.f64 re im)))
(*.f64 (pow.f64 (hypot.f64 re im) 1/8) (*.f64 (pow.f64 (hypot.f64 re im) 1/8) (pow.f64 (hypot.f64 re im) 1/4)))
(+.f64 1 (-.f64 (sqrt.f64 (hypot.f64 re im)) 1))
(+.f64 (sqrt.f64 (hypot.f64 re im)) 0)
(sqrt.f64 (hypot.f64 re im))
(*.f64 (*.f64 (pow.f64 (hypot.f64 re im) 1/4) (pow.f64 (hypot.f64 re im) 1/8)) (pow.f64 (hypot.f64 re im) 1/8))
(+.f64 1 (-.f64 (sqrt.f64 (hypot.f64 re im)) 1))
(+.f64 (sqrt.f64 (hypot.f64 re im)) 0)
(sqrt.f64 (hypot.f64 re im))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)) (sqrt.f64 (cbrt.f64 (hypot.f64 re im))))
(*.f64 (fabs.f64 (cbrt.f64 (hypot.f64 re im))) (sqrt.f64 (cbrt.f64 (hypot.f64 re im))))
(*.f64 (cbrt.f64 (hypot.f64 re im)) (sqrt.f64 (cbrt.f64 (hypot.f64 re im))))
(pow.f64 (cbrt.f64 (hypot.f64 re im)) 3/2)
(*.f64 (pow.f64 1 1/2) (sqrt.f64 (hypot.f64 re im)))
(+.f64 1 (-.f64 (sqrt.f64 (hypot.f64 re im)) 1))
(+.f64 (sqrt.f64 (hypot.f64 re im)) 0)
(sqrt.f64 (hypot.f64 re im))
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) 1/2) (pow.f64 (cbrt.f64 (hypot.f64 re im)) 1/2))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)) (sqrt.f64 (cbrt.f64 (hypot.f64 re im))))
(*.f64 (fabs.f64 (cbrt.f64 (hypot.f64 re im))) (sqrt.f64 (cbrt.f64 (hypot.f64 re im))))
(*.f64 (cbrt.f64 (hypot.f64 re im)) (sqrt.f64 (cbrt.f64 (hypot.f64 re im))))
(pow.f64 (cbrt.f64 (hypot.f64 re im)) 3/2)
(*.f64 (*.f64 (pow.f64 (hypot.f64 re im) 1/4) (cbrt.f64 (sqrt.f64 (hypot.f64 re im)))) (cbrt.f64 (pow.f64 (hypot.f64 re im) 1/4)))
(*.f64 (cbrt.f64 (sqrt.f64 (hypot.f64 re im))) (*.f64 (pow.f64 (hypot.f64 re im) 1/4) (cbrt.f64 (pow.f64 (hypot.f64 re im) 1/4))))
(*.f64 (pow.f64 (hypot.f64 re im) 1/4) (*.f64 (cbrt.f64 (sqrt.f64 (hypot.f64 re im))) (cbrt.f64 (pow.f64 (hypot.f64 re im) 1/4))))
(*.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 1/4)) (*.f64 (pow.f64 (hypot.f64 re im) 1/4) (cbrt.f64 (sqrt.f64 (hypot.f64 re im)))))
(sqrt.f64 (hypot.f64 re im))
(+.f64 1 (-.f64 (sqrt.f64 (hypot.f64 re im)) 1))
(+.f64 (sqrt.f64 (hypot.f64 re im)) 0)
(fabs.f64 (sqrt.f64 (hypot.f64 re im)))
(+.f64 1 (-.f64 (sqrt.f64 (hypot.f64 re im)) 1))
(+.f64 (sqrt.f64 (hypot.f64 re im)) 0)
(sqrt.f64 (hypot.f64 re im))
(log.f64 (exp.f64 (sqrt.f64 (hypot.f64 re im))))
(+.f64 1 (-.f64 (sqrt.f64 (hypot.f64 re im)) 1))
(+.f64 (sqrt.f64 (hypot.f64 re im)) 0)
(sqrt.f64 (hypot.f64 re im))
(cbrt.f64 (pow.f64 (hypot.f64 re im) 3/2))
(expm1.f64 (log1p.f64 (sqrt.f64 (hypot.f64 re im))))
(+.f64 1 (-.f64 (sqrt.f64 (hypot.f64 re im)) 1))
(+.f64 (sqrt.f64 (hypot.f64 re im)) 0)
(sqrt.f64 (hypot.f64 re im))
(log1p.f64 (expm1.f64 (sqrt.f64 (hypot.f64 re im))))
(+.f64 1 (-.f64 (sqrt.f64 (hypot.f64 re im)) 1))
(+.f64 (sqrt.f64 (hypot.f64 re im)) 0)
(sqrt.f64 (hypot.f64 re im))
(exp.f64 (log.f64 (sqrt.f64 (hypot.f64 re im))))
(+.f64 1 (-.f64 (sqrt.f64 (hypot.f64 re im)) 1))
(+.f64 (sqrt.f64 (hypot.f64 re im)) 0)
(sqrt.f64 (hypot.f64 re im))

localize13.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 39 to 16 computations (59% saved)

series92.0ms (1.1%)

Counts
2 → 0
Calls

12 calls:

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

Compiled 7940 to 6275 computations (21% saved)

rewrite51.0ms (0.6%)

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

Useful iterations: 0 (0.0ms)

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

simplify47.0ms (0.5%)

Algorithm
egg-herbie
Rules
653×fma-neg_binary64
464×associate-*l*_binary64
417×associate-*r*_binary64
382×log-prod_binary64
363×div-sub_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0125981
1290824
2911694
35045668
Stop Event
node limit
Counts
55 → 67
Calls
Call 1
Inputs
(-.f64 (+.f64 1 (+.f64 re (hypot.f64 re im))) 1)
(-.f64 (/.f64 (pow.f64 (hypot.f64 re im) 2) (-.f64 (hypot.f64 re im) re)) (/.f64 (*.f64 re re) (-.f64 (hypot.f64 re im) re)))
(*.f64 (+.f64 re (hypot.f64 re im)) 1)
(*.f64 1 (+.f64 re (hypot.f64 re im)))
(*.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im))) (pow.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im))) 2))
(*.f64 (pow.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im))) 2) (cbrt.f64 (+.f64 re (hypot.f64 re im))))
(*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 (+.f64 re (hypot.f64 re im))))
(*.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 (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 1 (/.f64 (-.f64 (hypot.f64 re im) re) (-.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) 3) (pow.f64 re 3)) (+.f64 (*.f64 re re) (-.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 re (hypot.f64 re im)))))
(/.f64 (-.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 re re)) (-.f64 (hypot.f64 re im) re))
(/.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 (hypot.f64 re im) re)))
(/.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (-.f64 re (hypot.f64 re im)))
(pow.f64 (+.f64 re (hypot.f64 re im)) 1)
(pow.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 3) 1/3)
(pow.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im))) 3)
(pow.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) 2)
(sqrt.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 2))
(log.f64 (exp.f64 (+.f64 re (hypot.f64 re im))))
(cbrt.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 3))
(expm1.f64 (log1p.f64 (+.f64 re (hypot.f64 re im))))
(log1p.f64 (expm1.f64 (+.f64 re (hypot.f64 re im))))
(exp.f64 (log.f64 (+.f64 re (hypot.f64 re im))))
(fma.f64 1 re (hypot.f64 re im))
(fma.f64 1 (hypot.f64 re im) re)
(fma.f64 (pow.f64 (cbrt.f64 re) 2) (cbrt.f64 re) (hypot.f64 re im))
(fma.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (cbrt.f64 (hypot.f64 re im)) re)
(fma.f64 (sqrt.f64 re) (sqrt.f64 re) (hypot.f64 re im))
(fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) re)
(-.f64 (+.f64 1 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))) 1)
(*.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 1)
(*.f64 1 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))
(*.f64 (cbrt.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))) (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))
(*.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) (cbrt.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))
(*.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4))
(*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2))
(*.f64 (sqrt.f64 2) (sqrt.f64 (+.f64 re (hypot.f64 re im))))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 2)) (sqrt.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))
(*.f64 (pow.f64 1 1/2) (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 2) 1/2) (pow.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 1/2))
(pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/2)
(pow.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 1)
(pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 3/2) 1/3)
(pow.f64 (cbrt.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))) 3)
(pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) 2)
(fabs.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))
(log.f64 (exp.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))
(cbrt.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 3/2))
(expm1.f64 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))
(log1p.f64 (expm1.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))
(exp.f64 (log.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))
Outputs
(-.f64 (+.f64 1 (+.f64 re (hypot.f64 re im))) 1)
(+.f64 (+.f64 (+.f64 1 re) (hypot.f64 re im)) -1)
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 re im))
(-.f64 (/.f64 (pow.f64 (hypot.f64 re im) 2) (-.f64 (hypot.f64 re im) re)) (/.f64 (*.f64 re re) (-.f64 (hypot.f64 re im) re)))
(+.f64 (+.f64 (+.f64 1 re) (hypot.f64 re im)) -1)
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 re im))
(*.f64 (+.f64 re (hypot.f64 re im)) 1)
(+.f64 (+.f64 (+.f64 1 re) (hypot.f64 re im)) -1)
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 re im))
(*.f64 1 (+.f64 re (hypot.f64 re im)))
(+.f64 (+.f64 (+.f64 1 re) (hypot.f64 re im)) -1)
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 re im))
(*.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im))) (pow.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im))) 2))
(+.f64 (+.f64 (+.f64 1 re) (hypot.f64 re im)) -1)
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 re im))
(*.f64 (pow.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im))) 2) (cbrt.f64 (+.f64 re (hypot.f64 re im))))
(+.f64 (+.f64 (+.f64 1 re) (hypot.f64 re im)) -1)
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 re im))
(*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 (+.f64 re (hypot.f64 re im))))
(+.f64 (+.f64 (+.f64 1 re) (hypot.f64 re im)) -1)
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 re im))
(*.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 (+.f64 (pow.f64 (hypot.f64 re im) 3) (pow.f64 re 3)) 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) 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) 3) (pow.f64 re 3)) (fma.f64 re re (*.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re))))
(*.f64 (-.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 re re)) (/.f64 1 (-.f64 (hypot.f64 re im) re)))
(+.f64 (+.f64 (+.f64 1 re) (hypot.f64 re im)) -1)
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.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 (+.f64 (pow.f64 (hypot.f64 re im) 3) (pow.f64 re 3)) 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) 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) 3) (pow.f64 re 3)) (fma.f64 re re (*.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re))))
(/.f64 1 (/.f64 (-.f64 (hypot.f64 re im) re) (-.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 re re))))
(+.f64 (+.f64 (+.f64 1 re) (hypot.f64 re im)) -1)
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.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 (*.f64 (+.f64 (pow.f64 (hypot.f64 re im) 3) (pow.f64 re 3)) 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) 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) 3) (pow.f64 re 3)) (fma.f64 re re (*.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re))))
(/.f64 (+.f64 (pow.f64 (hypot.f64 re im) 3) (pow.f64 re 3)) (+.f64 (*.f64 re re) (-.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 re (hypot.f64 re im)))))
(/.f64 (*.f64 (+.f64 (pow.f64 (hypot.f64 re im) 3) (pow.f64 re 3)) 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) 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) 3) (pow.f64 re 3)) (fma.f64 re re (*.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re))))
(/.f64 (-.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 re re)) (-.f64 (hypot.f64 re im) re))
(+.f64 (+.f64 (+.f64 1 re) (hypot.f64 re im)) -1)
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.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 (*.f64 (+.f64 (pow.f64 (hypot.f64 re im) 3) (pow.f64 re 3)) 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) 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) 3) (pow.f64 re 3)) (fma.f64 re re (*.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 re re))) (neg.f64 (-.f64 (hypot.f64 re im) re)))
(+.f64 (+.f64 (+.f64 1 re) (hypot.f64 re im)) -1)
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 re im))
(/.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (-.f64 re (hypot.f64 re im)))
(+.f64 (+.f64 (+.f64 1 re) (hypot.f64 re im)) -1)
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 re im))
(pow.f64 (+.f64 re (hypot.f64 re im)) 1)
(+.f64 (+.f64 (+.f64 1 re) (hypot.f64 re im)) -1)
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 re im))
(pow.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 3) 1/3)
(+.f64 (+.f64 (+.f64 1 re) (hypot.f64 re im)) -1)
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 re im))
(pow.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im))) 3)
(+.f64 (+.f64 (+.f64 1 re) (hypot.f64 re im)) -1)
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 re im))
(pow.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) 2)
(+.f64 (+.f64 (+.f64 1 re) (hypot.f64 re im)) -1)
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 re im))
(sqrt.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 2))
(+.f64 (+.f64 (+.f64 1 re) (hypot.f64 re im)) -1)
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 re im))
(log.f64 (exp.f64 (+.f64 re (hypot.f64 re im))))
(+.f64 (+.f64 (+.f64 1 re) (hypot.f64 re im)) -1)
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 re im))
(cbrt.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 3))
(+.f64 (+.f64 (+.f64 1 re) (hypot.f64 re im)) -1)
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 re im))
(expm1.f64 (log1p.f64 (+.f64 re (hypot.f64 re im))))
(+.f64 (+.f64 (+.f64 1 re) (hypot.f64 re im)) -1)
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 re im))
(log1p.f64 (expm1.f64 (+.f64 re (hypot.f64 re im))))
(+.f64 (+.f64 (+.f64 1 re) (hypot.f64 re im)) -1)
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 re im))
(exp.f64 (log.f64 (+.f64 re (hypot.f64 re im))))
(+.f64 (+.f64 (+.f64 1 re) (hypot.f64 re im)) -1)
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 re im))
(fma.f64 1 re (hypot.f64 re im))
(+.f64 (+.f64 (+.f64 1 re) (hypot.f64 re im)) -1)
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 re im))
(fma.f64 1 (hypot.f64 re im) re)
(+.f64 (+.f64 (+.f64 1 re) (hypot.f64 re im)) -1)
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 re im))
(fma.f64 (pow.f64 (cbrt.f64 re) 2) (cbrt.f64 re) (hypot.f64 re im))
(+.f64 (+.f64 (+.f64 1 re) (hypot.f64 re im)) -1)
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 re im))
(fma.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (cbrt.f64 (hypot.f64 re im)) re)
(+.f64 (+.f64 (+.f64 1 re) (hypot.f64 re im)) -1)
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 re im))
(fma.f64 (sqrt.f64 re) (sqrt.f64 re) (hypot.f64 re im))
(+.f64 (+.f64 (+.f64 1 re) (hypot.f64 re im)) -1)
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 re im))
(fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) re)
(+.f64 (+.f64 (+.f64 1 re) (hypot.f64 re im)) -1)
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 re im))
(-.f64 (+.f64 1 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))) 1)
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 1))
(+.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 0)
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(*.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 1)
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 1))
(+.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 0)
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(*.f64 1 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 1))
(+.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 0)
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(*.f64 (cbrt.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))) (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))
(*.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) (cbrt.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))
(*.f64 (cbrt.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))) (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))
(*.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4))
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 1))
(+.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 0)
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2))
(*.f64 (sqrt.f64 2) (sqrt.f64 (+.f64 re (hypot.f64 re im))))
(*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 2)) (sqrt.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))
(*.f64 (fabs.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))) (sqrt.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))
(*.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) (sqrt.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))
(pow.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 3/2)
(*.f64 (pow.f64 1 1/2) (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 1))
(+.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 0)
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 2) 1/2) (pow.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 1/2))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 2)) (sqrt.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))
(*.f64 (fabs.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))) (sqrt.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))
(*.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) (sqrt.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))
(pow.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 3/2)
(pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/2)
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 1))
(+.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 0)
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(pow.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 1)
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 1))
(+.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 0)
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 3/2) 1/3)
(cbrt.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 3/2))
(pow.f64 (cbrt.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))) 3)
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 1))
(+.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 0)
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) 2)
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 1))
(+.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 0)
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(fabs.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 1))
(+.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 0)
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(log.f64 (exp.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 1))
(+.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 0)
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(cbrt.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 3/2))
(expm1.f64 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 1))
(+.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 0)
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(log1p.f64 (expm1.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 1))
(+.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 0)
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(exp.f64 (log.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 1))
(+.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 0)
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))

localize23.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(-.f64 (hypot.f64 re im) re)
0.6b
(cbrt.f64 re)
27.6b
(cbrt.f64 (*.f64 re re))
60.3b
(fma.f64 (neg.f64 (cbrt.f64 re)) (cbrt.f64 (*.f64 re re)) re)
Compiler

Compiled 105 to 22 computations (79% saved)

series31.0ms (0.4%)

Counts
2 → 0
Calls

6 calls:

TimeVariablePointExpression
6.0ms
re
@-inf
(cbrt.f64 (*.f64 re re))
1.0ms
re
@-inf
(fma.f64 (neg.f64 (cbrt.f64 re)) (cbrt.f64 (*.f64 re re)) re)
1.0ms
re
@0
(fma.f64 (neg.f64 (cbrt.f64 re)) (cbrt.f64 (*.f64 re re)) re)
0.0ms
re
@inf
(fma.f64 (neg.f64 (cbrt.f64 re)) (cbrt.f64 (*.f64 re re)) re)
0.0ms
re
@inf
(cbrt.f64 (*.f64 re re))
Compiler

Compiled 2450 to 1805 computations (26.3% saved)

rewrite40.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
493×pow1_binary64
473×add-sqr-sqrt_binary64
458×add-log-exp_binary64
457×log1p-expm1-u_binary64
457×expm1-log1p-u_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0720
113910
2163210
Stop Event
node limit
Counts
2 → 43
Calls
Call 1
Inputs
(fma.f64 (neg.f64 (cbrt.f64 re)) (cbrt.f64 (*.f64 re re)) re)
(cbrt.f64 (*.f64 re re))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 re re)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (+.f64 re re)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 re re) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 re re))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 re re)) (pow.f64 (cbrt.f64 (+.f64 re re)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 re re)) 2) (cbrt.f64 (+.f64 re re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 re re)) (sqrt.f64 (+.f64 re re)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 re 3) (pow.f64 re 3)) (+.f64 (*.f64 re re) (-.f64 (*.f64 re re) (*.f64 re re))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 re re) (*.f64 re re)) (-.f64 re re))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 re re) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 re re) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 re re)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 re re)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 re re) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (+.f64 re re)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 re re) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 re re)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 re re)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (+.f64 re re)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (cbrt.f64 re) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 re) (cbrt.f64 re))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 re) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (cbrt.f64 re) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 re)) 2) (cbrt.f64 (*.f64 re (cbrt.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 re)) 2) (*.f64 (cbrt.f64 (cbrt.f64 re)) (cbrt.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 re (cbrt.f64 re))) (pow.f64 (cbrt.f64 (cbrt.f64 re)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 re 1/6) (*.f64 (pow.f64 re 1/6) (cbrt.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 re) (pow.f64 re 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (pow.f64 (cbrt.f64 re) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (pow.f64 (cbrt.f64 re) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 re (cbrt.f64 re)) 1/3) (pow.f64 (cbrt.f64 (cbrt.f64 re)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 re) (pow.f64 (cbrt.f64 (cbrt.f64 re)) 2)) (cbrt.f64 (cbrt.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 re 2/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 re) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 re re) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 re) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 re)) 2) 3)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (pow.f64 (cbrt.f64 re) 2))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 re (cbrt.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (cbrt.f64 re) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (cbrt.f64 re) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (cbrt.f64 re) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (pow.f64 (cbrt.f64 re) 2)))))))

simplify14.0ms (0.2%)

Algorithm
egg-herbie
Rules
35×associate-*l*_binary64
34×associate-*r*_binary64
31×sqr-pow_binary64
22×fma-def_binary64
16×unswap-sqr_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
085172
1199172
2839172
Stop Event
unsound
Counts
43 → 43
Calls
Call 1
Inputs
(+.f64 re re)
(-.f64 (+.f64 1 (+.f64 re re)) 1)
(*.f64 (+.f64 re re) 1)
(*.f64 1 (+.f64 re re))
(*.f64 (cbrt.f64 (+.f64 re re)) (pow.f64 (cbrt.f64 (+.f64 re re)) 2))
(*.f64 (pow.f64 (cbrt.f64 (+.f64 re re)) 2) (cbrt.f64 (+.f64 re re)))
(*.f64 (sqrt.f64 (+.f64 re re)) (sqrt.f64 (+.f64 re re)))
(/.f64 (+.f64 (pow.f64 re 3) (pow.f64 re 3)) (+.f64 (*.f64 re re) (-.f64 (*.f64 re re) (*.f64 re re))))
(/.f64 (-.f64 (*.f64 re re) (*.f64 re re)) (-.f64 re re))
(pow.f64 (+.f64 re re) 1)
(pow.f64 (pow.f64 (+.f64 re re) 3) 1/3)
(pow.f64 (cbrt.f64 (+.f64 re re)) 3)
(pow.f64 (sqrt.f64 (+.f64 re re)) 2)
(sqrt.f64 (pow.f64 (+.f64 re re) 2))
(log.f64 (exp.f64 (+.f64 re re)))
(cbrt.f64 (pow.f64 (+.f64 re re) 3))
(expm1.f64 (log1p.f64 (+.f64 re re)))
(log1p.f64 (expm1.f64 (+.f64 re re)))
(exp.f64 (log.f64 (+.f64 re re)))
(-.f64 (+.f64 1 (pow.f64 (cbrt.f64 re) 2)) 1)
(*.f64 (cbrt.f64 re) (cbrt.f64 re))
(*.f64 (pow.f64 (cbrt.f64 re) 2) 1)
(*.f64 1 (pow.f64 (cbrt.f64 re) 2))
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 re)) 2) (cbrt.f64 (*.f64 re (cbrt.f64 re))))
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 re)) 2) (*.f64 (cbrt.f64 (cbrt.f64 re)) (cbrt.f64 re)))
(*.f64 (cbrt.f64 (*.f64 re (cbrt.f64 re))) (pow.f64 (cbrt.f64 (cbrt.f64 re)) 2))
(*.f64 (pow.f64 re 1/6) (*.f64 (pow.f64 re 1/6) (cbrt.f64 re)))
(*.f64 (sqrt.f64 re) (pow.f64 re 1/6))
(*.f64 -1 (pow.f64 (cbrt.f64 re) 2))
(*.f64 (pow.f64 1 1/3) (pow.f64 (cbrt.f64 re) 2))
(*.f64 (pow.f64 (*.f64 re (cbrt.f64 re)) 1/3) (pow.f64 (cbrt.f64 (cbrt.f64 re)) 2))
(*.f64 (*.f64 (cbrt.f64 re) (pow.f64 (cbrt.f64 (cbrt.f64 re)) 2)) (cbrt.f64 (cbrt.f64 re)))
(pow.f64 re 2/3)
(pow.f64 (cbrt.f64 re) 2)
(pow.f64 (*.f64 re re) 1/3)
(pow.f64 (pow.f64 (cbrt.f64 re) 2) 1)
(pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 re)) 2) 3)
(neg.f64 (pow.f64 (cbrt.f64 re) 2))
(sqrt.f64 (*.f64 re (cbrt.f64 re)))
(log.f64 (exp.f64 (pow.f64 (cbrt.f64 re) 2)))
(expm1.f64 (log1p.f64 (pow.f64 (cbrt.f64 re) 2)))
(log1p.f64 (expm1.f64 (pow.f64 (cbrt.f64 re) 2)))
(exp.f64 (log.f64 (pow.f64 (cbrt.f64 re) 2)))
Outputs
(+.f64 re re)
(-.f64 (+.f64 1 (+.f64 re re)) 1)
(+.f64 re re)
(*.f64 (+.f64 re re) 1)
(+.f64 re re)
(*.f64 1 (+.f64 re re))
(+.f64 re re)
(*.f64 (cbrt.f64 (+.f64 re re)) (pow.f64 (cbrt.f64 (+.f64 re re)) 2))
(+.f64 re re)
(*.f64 (pow.f64 (cbrt.f64 (+.f64 re re)) 2) (cbrt.f64 (+.f64 re re)))
(+.f64 re re)
(*.f64 (sqrt.f64 (+.f64 re re)) (sqrt.f64 (+.f64 re re)))
(+.f64 re re)
(/.f64 (+.f64 (pow.f64 re 3) (pow.f64 re 3)) (+.f64 (*.f64 re re) (-.f64 (*.f64 re re) (*.f64 re re))))
(+.f64 re re)
(/.f64 (-.f64 (*.f64 re re) (*.f64 re re)) (-.f64 re re))
(+.f64 re re)
(pow.f64 (+.f64 re re) 1)
(+.f64 re re)
(pow.f64 (pow.f64 (+.f64 re re) 3) 1/3)
(+.f64 re re)
(pow.f64 (cbrt.f64 (+.f64 re re)) 3)
(+.f64 re re)
(pow.f64 (sqrt.f64 (+.f64 re re)) 2)
(+.f64 re re)
(sqrt.f64 (pow.f64 (+.f64 re re) 2))
(+.f64 re re)
(log.f64 (exp.f64 (+.f64 re re)))
(+.f64 re re)
(cbrt.f64 (pow.f64 (+.f64 re re) 3))
(+.f64 re re)
(expm1.f64 (log1p.f64 (+.f64 re re)))
(+.f64 re re)
(log1p.f64 (expm1.f64 (+.f64 re re)))
(+.f64 re re)
(exp.f64 (log.f64 (+.f64 re re)))
(+.f64 re re)
(-.f64 (+.f64 1 (pow.f64 (cbrt.f64 re) 2)) 1)
(+.f64 re re)
(*.f64 (cbrt.f64 re) (cbrt.f64 re))
(+.f64 re re)
(*.f64 (pow.f64 (cbrt.f64 re) 2) 1)
(+.f64 re re)
(*.f64 1 (pow.f64 (cbrt.f64 re) 2))
(+.f64 re re)
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 re)) 2) (cbrt.f64 (*.f64 re (cbrt.f64 re))))
(+.f64 re re)
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 re)) 2) (*.f64 (cbrt.f64 (cbrt.f64 re)) (cbrt.f64 re)))
(+.f64 re re)
(*.f64 (cbrt.f64 (*.f64 re (cbrt.f64 re))) (pow.f64 (cbrt.f64 (cbrt.f64 re)) 2))
(+.f64 re re)
(*.f64 (pow.f64 re 1/6) (*.f64 (pow.f64 re 1/6) (cbrt.f64 re)))
(+.f64 re re)
(*.f64 (sqrt.f64 re) (pow.f64 re 1/6))
(+.f64 re re)
(*.f64 -1 (pow.f64 (cbrt.f64 re) 2))
(+.f64 re re)
(*.f64 (pow.f64 1 1/3) (pow.f64 (cbrt.f64 re) 2))
(+.f64 re re)
(*.f64 (pow.f64 (*.f64 re (cbrt.f64 re)) 1/3) (pow.f64 (cbrt.f64 (cbrt.f64 re)) 2))
(+.f64 re re)
(*.f64 (*.f64 (cbrt.f64 re) (pow.f64 (cbrt.f64 (cbrt.f64 re)) 2)) (cbrt.f64 (cbrt.f64 re)))
(+.f64 re re)
(pow.f64 re 2/3)
(+.f64 re re)
(pow.f64 (cbrt.f64 re) 2)
(+.f64 re re)
(pow.f64 (*.f64 re re) 1/3)
(+.f64 re re)
(pow.f64 (pow.f64 (cbrt.f64 re) 2) 1)
(+.f64 re re)
(pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 re)) 2) 3)
(+.f64 re re)
(neg.f64 (pow.f64 (cbrt.f64 re) 2))
(+.f64 re re)
(sqrt.f64 (*.f64 re (cbrt.f64 re)))
(+.f64 re re)
(log.f64 (exp.f64 (pow.f64 (cbrt.f64 re) 2)))
(+.f64 re re)
(expm1.f64 (log1p.f64 (pow.f64 (cbrt.f64 re) 2)))
(+.f64 re re)
(log1p.f64 (expm1.f64 (pow.f64 (cbrt.f64 re) 2)))
(+.f64 re re)
(exp.f64 (log.f64 (pow.f64 (cbrt.f64 re) 2)))
(+.f64 re re)

localize33.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.5b
(*.f64 (cbrt.f64 (sqrt.f64 (hypot.f64 re im))) (cbrt.f64 (sqrt.f64 (hypot.f64 re im))))
0.5b
(pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)
0.6b
(cbrt.f64 (sqrt.f64 (hypot.f64 re im)))
15.5b
(fma.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (*.f64 (cbrt.f64 (sqrt.f64 (hypot.f64 re im))) (cbrt.f64 (sqrt.f64 (hypot.f64 re im)))) (neg.f64 re))
Compiler

Compiled 131 to 34 computations (74% saved)

series958.0ms (11.1%)

Counts
3 → 0
Calls

18 calls:

TimeVariablePointExpression
10.0ms
im
@0
(fma.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (*.f64 (cbrt.f64 (sqrt.f64 (hypot.f64 re im))) (cbrt.f64 (sqrt.f64 (hypot.f64 re im)))) (neg.f64 re))
7.0ms
re
@inf
(*.f64 (cbrt.f64 (sqrt.f64 (hypot.f64 re im))) (cbrt.f64 (sqrt.f64 (hypot.f64 re im))))
6.0ms
re
@0
(*.f64 (cbrt.f64 (sqrt.f64 (hypot.f64 re im))) (cbrt.f64 (sqrt.f64 (hypot.f64 re im))))
3.0ms
re
@0
(fma.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (*.f64 (cbrt.f64 (sqrt.f64 (hypot.f64 re im))) (cbrt.f64 (sqrt.f64 (hypot.f64 re im)))) (neg.f64 re))
3.0ms
im
@-inf
(*.f64 (cbrt.f64 (sqrt.f64 (hypot.f64 re im))) (cbrt.f64 (sqrt.f64 (hypot.f64 re im))))
Compiler

Compiled 49805 to 42405 computations (14.9% saved)

rewrite54.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
805×pow1_binary64
744×add-log-exp_binary64
743×log1p-expm1-u_binary64
743×expm1-log1p-u_binary64
723×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify50.0ms (0.6%)

Algorithm
egg-herbie
Rules
547×associate-/r*_binary64
342×unswap-sqr_binary64
319×fma-neg_binary64
315×log-prod_binary64
263×fma-def_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0112630
1252532
2915442
34596435
Stop Event
node limit
Counts
58 → 69
Calls
Call 1
Inputs
(+.f64 (hypot.f64 re im) re)
(+.f64 re (hypot.f64 re im))
(-.f64 (hypot.f64 re im) re)
(-.f64 (+.f64 1 (+.f64 (hypot.f64 re im) re)) 1)
(-.f64 (+.f64 (hypot.f64 re im) 0) re)
(*.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 (pow.f64 (hypot.f64 re im) 2) (-.f64 (*.f64 re re) (*.f64 (hypot.f64 re im) re))))
(/.f64 (-.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 re re)) (+.f64 (hypot.f64 re im) 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)))
(-.f64 (+.f64 1 (pow.f64 (hypot.f64 re im) 1/6)) 1)
(*.f64 (pow.f64 (hypot.f64 re im) 1/6) 1)
(*.f64 1 (pow.f64 (hypot.f64 re im) 1/6))
(*.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 1/6)) (cbrt.f64 (cbrt.f64 (hypot.f64 re im))))
(*.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) (cbrt.f64 (pow.f64 (hypot.f64 re im) 1/6)))
(*.f64 (pow.f64 (sqrt.f64 (hypot.f64 re im)) 1/6) (pow.f64 (sqrt.f64 (hypot.f64 re im)) 1/6))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) 2)) (sqrt.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im)))))
(*.f64 (pow.f64 1 1/3) (pow.f64 (hypot.f64 re im) 1/6))
(*.f64 (pow.f64 (pow.f64 (hypot.f64 re im) 1/4) 1/3) (pow.f64 (pow.f64 (hypot.f64 re im) 1/4) 1/3))
(pow.f64 (hypot.f64 re im) 1/6)
(pow.f64 (sqrt.f64 (hypot.f64 re im)) 1/3)
(pow.f64 (pow.f64 (hypot.f64 re im) 1/6) 1)
(pow.f64 (cbrt.f64 (hypot.f64 re im)) 1/2)
(pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 1/6)) 3)
(pow.f64 (pow.f64 (sqrt.f64 (hypot.f64 re im)) 1/6) 2)
(sqrt.f64 (cbrt.f64 (hypot.f64 re im)))
(fabs.f64 (pow.f64 (hypot.f64 re im) 1/6))
(log.f64 (exp.f64 (pow.f64 (hypot.f64 re im) 1/6)))
(expm1.f64 (log1p.f64 (pow.f64 (hypot.f64 re im) 1/6)))
(log1p.f64 (expm1.f64 (pow.f64 (hypot.f64 re im) 1/6)))
(exp.f64 (log.f64 (pow.f64 (hypot.f64 re im) 1/6)))
(-.f64 (+.f64 1 (cbrt.f64 (hypot.f64 re im))) 1)
(pow.f64 (hypot.f64 re im) 1/3)
(pow.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) 1/2)
(pow.f64 (sqrt.f64 (hypot.f64 re im)) 2/3)
(pow.f64 (pow.f64 (hypot.f64 re im) 1/6) 2)
(pow.f64 (cbrt.f64 (hypot.f64 re im)) 1)
(pow.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) 3)
(pow.f64 (pow.f64 (hypot.f64 re im) 2) 1/6)
(sqrt.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2))
(fabs.f64 (cbrt.f64 (hypot.f64 re im)))
(log.f64 (exp.f64 (cbrt.f64 (hypot.f64 re im))))
(cbrt.f64 (hypot.f64 re im))
(expm1.f64 (log1p.f64 (cbrt.f64 (hypot.f64 re im))))
(log1p.f64 (expm1.f64 (cbrt.f64 (hypot.f64 re im))))
(exp.f64 (log.f64 (cbrt.f64 (hypot.f64 re im))))
Outputs
(+.f64 (hypot.f64 re im) re)
(+.f64 re (hypot.f64 re im))
(+.f64 re (hypot.f64 re im))
(-.f64 (hypot.f64 re im) re)
(-.f64 (+.f64 1 (+.f64 (hypot.f64 re im) re)) 1)
(+.f64 re (hypot.f64 re im))
(-.f64 (+.f64 (hypot.f64 re im) 0) re)
(-.f64 (hypot.f64 re im) re)
(*.f64 (+.f64 (hypot.f64 re im) re) 1)
(+.f64 re (hypot.f64 re im))
(*.f64 1 (+.f64 (hypot.f64 re im) re))
(+.f64 re (hypot.f64 re im))
(*.f64 (cbrt.f64 (+.f64 (hypot.f64 re im) re)) (pow.f64 (cbrt.f64 (+.f64 (hypot.f64 re im) re)) 2))
(+.f64 re (hypot.f64 re im))
(*.f64 (pow.f64 (cbrt.f64 (+.f64 (hypot.f64 re im) re)) 2) (cbrt.f64 (+.f64 (hypot.f64 re im) re)))
(+.f64 re (hypot.f64 re im))
(*.f64 (sqrt.f64 (+.f64 (hypot.f64 re im) re)) (sqrt.f64 (+.f64 (hypot.f64 re im) 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 (*.f64 re re) (*.f64 (hypot.f64 re im) 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) 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 (hypot.f64 re im) re))
(-.f64 (hypot.f64 re im) re)
(pow.f64 (+.f64 (hypot.f64 re im) re) 1)
(+.f64 re (hypot.f64 re im))
(pow.f64 (pow.f64 (+.f64 (hypot.f64 re im) re) 3) 1/3)
(+.f64 re (hypot.f64 re im))
(pow.f64 (cbrt.f64 (+.f64 (hypot.f64 re im) re)) 3)
(+.f64 re (hypot.f64 re im))
(pow.f64 (sqrt.f64 (+.f64 (hypot.f64 re im) re)) 2)
(+.f64 re (hypot.f64 re im))
(sqrt.f64 (pow.f64 (+.f64 (hypot.f64 re im) re) 2))
(+.f64 re (hypot.f64 re im))
(log.f64 (exp.f64 (+.f64 (hypot.f64 re im) re)))
(+.f64 re (hypot.f64 re im))
(cbrt.f64 (pow.f64 (+.f64 (hypot.f64 re im) re) 3))
(+.f64 re (hypot.f64 re im))
(expm1.f64 (log1p.f64 (+.f64 (hypot.f64 re im) re)))
(+.f64 re (hypot.f64 re im))
(log1p.f64 (expm1.f64 (+.f64 (hypot.f64 re im) re)))
(+.f64 re (hypot.f64 re im))
(exp.f64 (log.f64 (+.f64 (hypot.f64 re im) re)))
(+.f64 re (hypot.f64 re im))
(-.f64 (+.f64 1 (pow.f64 (hypot.f64 re im) 1/6)) 1)
(+.f64 1 (-.f64 (pow.f64 (hypot.f64 re im) 1/6) 1))
(+.f64 (pow.f64 (hypot.f64 re im) 1/6) 0)
(pow.f64 (hypot.f64 re im) 1/6)
(*.f64 (pow.f64 (hypot.f64 re im) 1/6) 1)
(+.f64 1 (-.f64 (pow.f64 (hypot.f64 re im) 1/6) 1))
(+.f64 (pow.f64 (hypot.f64 re im) 1/6) 0)
(pow.f64 (hypot.f64 re im) 1/6)
(*.f64 1 (pow.f64 (hypot.f64 re im) 1/6))
(+.f64 1 (-.f64 (pow.f64 (hypot.f64 re im) 1/6) 1))
(+.f64 (pow.f64 (hypot.f64 re im) 1/6) 0)
(pow.f64 (hypot.f64 re im) 1/6)
(*.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 1/6)) (cbrt.f64 (cbrt.f64 (hypot.f64 re im))))
(+.f64 1 (-.f64 (pow.f64 (hypot.f64 re im) 1/6) 1))
(+.f64 (pow.f64 (hypot.f64 re im) 1/6) 0)
(pow.f64 (hypot.f64 re im) 1/6)
(*.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) (cbrt.f64 (pow.f64 (hypot.f64 re im) 1/6)))
(+.f64 1 (-.f64 (pow.f64 (hypot.f64 re im) 1/6) 1))
(+.f64 (pow.f64 (hypot.f64 re im) 1/6) 0)
(pow.f64 (hypot.f64 re im) 1/6)
(*.f64 (pow.f64 (sqrt.f64 (hypot.f64 re im)) 1/6) (pow.f64 (sqrt.f64 (hypot.f64 re im)) 1/6))
(cbrt.f64 (sqrt.f64 (hypot.f64 re im)))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) 2)) (sqrt.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im)))))
(+.f64 1 (-.f64 (pow.f64 (hypot.f64 re im) 1/6) 1))
(+.f64 (pow.f64 (hypot.f64 re im) 1/6) 0)
(pow.f64 (hypot.f64 re im) 1/6)
(*.f64 (pow.f64 1 1/3) (pow.f64 (hypot.f64 re im) 1/6))
(+.f64 1 (-.f64 (pow.f64 (hypot.f64 re im) 1/6) 1))
(+.f64 (pow.f64 (hypot.f64 re im) 1/6) 0)
(pow.f64 (hypot.f64 re im) 1/6)
(*.f64 (pow.f64 (pow.f64 (hypot.f64 re im) 1/4) 1/3) (pow.f64 (pow.f64 (hypot.f64 re im) 1/4) 1/3))
(*.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 1/4)) (cbrt.f64 (pow.f64 (hypot.f64 re im) 1/4)))
(pow.f64 (pow.f64 (pow.f64 (hypot.f64 re im) 1/4) 1/6) 4)
(pow.f64 (hypot.f64 re im) 1/6)
(+.f64 1 (-.f64 (pow.f64 (hypot.f64 re im) 1/6) 1))
(+.f64 (pow.f64 (hypot.f64 re im) 1/6) 0)
(pow.f64 (sqrt.f64 (hypot.f64 re im)) 1/3)
(cbrt.f64 (sqrt.f64 (hypot.f64 re im)))
(pow.f64 (pow.f64 (hypot.f64 re im) 1/6) 1)
(+.f64 1 (-.f64 (pow.f64 (hypot.f64 re im) 1/6) 1))
(+.f64 (pow.f64 (hypot.f64 re im) 1/6) 0)
(pow.f64 (hypot.f64 re im) 1/6)
(pow.f64 (cbrt.f64 (hypot.f64 re im)) 1/2)
(+.f64 1 (-.f64 (pow.f64 (hypot.f64 re im) 1/6) 1))
(+.f64 (pow.f64 (hypot.f64 re im) 1/6) 0)
(pow.f64 (hypot.f64 re im) 1/6)
(pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 1/6)) 3)
(+.f64 1 (-.f64 (pow.f64 (hypot.f64 re im) 1/6) 1))
(+.f64 (pow.f64 (hypot.f64 re im) 1/6) 0)
(pow.f64 (hypot.f64 re im) 1/6)
(pow.f64 (pow.f64 (sqrt.f64 (hypot.f64 re im)) 1/6) 2)
(cbrt.f64 (sqrt.f64 (hypot.f64 re im)))
(sqrt.f64 (cbrt.f64 (hypot.f64 re im)))
(+.f64 1 (-.f64 (pow.f64 (hypot.f64 re im) 1/6) 1))
(+.f64 (pow.f64 (hypot.f64 re im) 1/6) 0)
(pow.f64 (hypot.f64 re im) 1/6)
(fabs.f64 (pow.f64 (hypot.f64 re im) 1/6))
(+.f64 1 (-.f64 (pow.f64 (hypot.f64 re im) 1/6) 1))
(+.f64 (pow.f64 (hypot.f64 re im) 1/6) 0)
(pow.f64 (hypot.f64 re im) 1/6)
(log.f64 (exp.f64 (pow.f64 (hypot.f64 re im) 1/6)))
(+.f64 1 (-.f64 (pow.f64 (hypot.f64 re im) 1/6) 1))
(+.f64 (pow.f64 (hypot.f64 re im) 1/6) 0)
(pow.f64 (hypot.f64 re im) 1/6)
(expm1.f64 (log1p.f64 (pow.f64 (hypot.f64 re im) 1/6)))
(+.f64 1 (-.f64 (pow.f64 (hypot.f64 re im) 1/6) 1))
(+.f64 (pow.f64 (hypot.f64 re im) 1/6) 0)
(pow.f64 (hypot.f64 re im) 1/6)
(log1p.f64 (expm1.f64 (pow.f64 (hypot.f64 re im) 1/6)))
(+.f64 1 (-.f64 (pow.f64 (hypot.f64 re im) 1/6) 1))
(+.f64 (pow.f64 (hypot.f64 re im) 1/6) 0)
(pow.f64 (hypot.f64 re im) 1/6)
(exp.f64 (log.f64 (pow.f64 (hypot.f64 re im) 1/6)))
(+.f64 1 (-.f64 (pow.f64 (hypot.f64 re im) 1/6) 1))
(+.f64 (pow.f64 (hypot.f64 re im) 1/6) 0)
(pow.f64 (hypot.f64 re im) 1/6)
(-.f64 (+.f64 1 (cbrt.f64 (hypot.f64 re im))) 1)
(+.f64 1 (-.f64 (cbrt.f64 (hypot.f64 re im)) 1))
(+.f64 (cbrt.f64 (hypot.f64 re im)) 0)
(cbrt.f64 (hypot.f64 re im))
(pow.f64 (hypot.f64 re im) 1/3)
(+.f64 1 (-.f64 (cbrt.f64 (hypot.f64 re im)) 1))
(+.f64 (cbrt.f64 (hypot.f64 re im)) 0)
(cbrt.f64 (hypot.f64 re im))
(pow.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) 1/2)
(+.f64 1 (-.f64 (cbrt.f64 (hypot.f64 re im)) 1))
(+.f64 (cbrt.f64 (hypot.f64 re im)) 0)
(cbrt.f64 (hypot.f64 re im))
(pow.f64 (sqrt.f64 (hypot.f64 re im)) 2/3)
(*.f64 (cbrt.f64 (sqrt.f64 (hypot.f64 re im))) (cbrt.f64 (sqrt.f64 (hypot.f64 re im))))
(pow.f64 (pow.f64 (sqrt.f64 (hypot.f64 re im)) 1/6) 4)
(pow.f64 (pow.f64 (hypot.f64 re im) 1/6) 2)
(+.f64 1 (-.f64 (cbrt.f64 (hypot.f64 re im)) 1))
(+.f64 (cbrt.f64 (hypot.f64 re im)) 0)
(cbrt.f64 (hypot.f64 re im))
(pow.f64 (cbrt.f64 (hypot.f64 re im)) 1)
(+.f64 1 (-.f64 (cbrt.f64 (hypot.f64 re im)) 1))
(+.f64 (cbrt.f64 (hypot.f64 re im)) 0)
(cbrt.f64 (hypot.f64 re im))
(pow.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) 3)
(+.f64 1 (-.f64 (cbrt.f64 (hypot.f64 re im)) 1))
(+.f64 (cbrt.f64 (hypot.f64 re im)) 0)
(cbrt.f64 (hypot.f64 re im))
(pow.f64 (pow.f64 (hypot.f64 re im) 2) 1/6)
(sqrt.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2))
(+.f64 1 (-.f64 (cbrt.f64 (hypot.f64 re im)) 1))
(+.f64 (cbrt.f64 (hypot.f64 re im)) 0)
(cbrt.f64 (hypot.f64 re im))
(fabs.f64 (cbrt.f64 (hypot.f64 re im)))
(+.f64 1 (-.f64 (cbrt.f64 (hypot.f64 re im)) 1))
(+.f64 (cbrt.f64 (hypot.f64 re im)) 0)
(cbrt.f64 (hypot.f64 re im))
(log.f64 (exp.f64 (cbrt.f64 (hypot.f64 re im))))
(+.f64 1 (-.f64 (cbrt.f64 (hypot.f64 re im)) 1))
(+.f64 (cbrt.f64 (hypot.f64 re im)) 0)
(cbrt.f64 (hypot.f64 re im))
(cbrt.f64 (hypot.f64 re im))
(+.f64 1 (-.f64 (cbrt.f64 (hypot.f64 re im)) 1))
(+.f64 (cbrt.f64 (hypot.f64 re im)) 0)
(expm1.f64 (log1p.f64 (cbrt.f64 (hypot.f64 re im))))
(+.f64 1 (-.f64 (cbrt.f64 (hypot.f64 re im)) 1))
(+.f64 (cbrt.f64 (hypot.f64 re im)) 0)
(cbrt.f64 (hypot.f64 re im))
(log1p.f64 (expm1.f64 (cbrt.f64 (hypot.f64 re im))))
(+.f64 1 (-.f64 (cbrt.f64 (hypot.f64 re im)) 1))
(+.f64 (cbrt.f64 (hypot.f64 re im)) 0)
(cbrt.f64 (hypot.f64 re im))
(exp.f64 (log.f64 (cbrt.f64 (hypot.f64 re im))))
(+.f64 1 (-.f64 (cbrt.f64 (hypot.f64 re im)) 1))
(+.f64 (cbrt.f64 (hypot.f64 re im)) 0)
(cbrt.f64 (hypot.f64 re im))

localize49.0ms (0.6%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(-.f64 (hypot.f64 re im) re)
0.6b
(cbrt.f64 re)
13.2b
(fma.f64 re 1 (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re)))))
27.4b
(fma.f64 (neg.f64 (sqrt.f64 (cbrt.f64 re))) (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re))))
Compiler

Compiled 281 to 46 computations (83.6% saved)

series319.0ms (3.7%)

Counts
2 → 0
Calls

6 calls:

TimeVariablePointExpression
32.0ms
re
@inf
(fma.f64 (neg.f64 (sqrt.f64 (cbrt.f64 re))) (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re))))
10.0ms
re
@-inf
(fma.f64 (neg.f64 (sqrt.f64 (cbrt.f64 re))) (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re))))
6.0ms
re
@0
(fma.f64 (neg.f64 (sqrt.f64 (cbrt.f64 re))) (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re))))
1.0ms
re
@-inf
(fma.f64 re 1 (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re)))))
1.0ms
re
@inf
(fma.f64 re 1 (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re)))))
Compiler

Compiled 20475 to 15970 computations (22% saved)

rewrite43.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
672×pow1_binary64
624×add-log-exp_binary64
624×log1p-expm1-u_binary64
624×expm1-log1p-u_binary64
607×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01264
12398
230108
Stop Event
node limit
Counts
2 → 52
Calls
Call 1
Inputs
(fma.f64 (neg.f64 (sqrt.f64 (cbrt.f64 re))) (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re))))
(fma.f64 re 1 (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re)))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 re re)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 re re)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (+.f64 re re))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (+.f64 re re)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 re 0) re)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 re 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 re 1/6) (+.f64 (pow.f64 re 5/6) (pow.f64 re 5/6)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 re 5/6) (+.f64 (pow.f64 re 1/6) (pow.f64 re 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 re re) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 re re))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 0 re)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 re re)) 2) (cbrt.f64 (+.f64 re re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 re re)) (pow.f64 (cbrt.f64 (+.f64 re re)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 re re)) (sqrt.f64 (+.f64 re re)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 re 3) (pow.f64 re 3)) (+.f64 (*.f64 re re) (-.f64 (*.f64 re re) (*.f64 re re))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 re re) (*.f64 re re)) (+.f64 re re))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 re re) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 re re) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 re re)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 re re)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 re re) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (+.f64 re re)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 re re) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 re re)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 re re)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (+.f64 re re)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 re re)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 re re)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (+.f64 re re))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (+.f64 re re)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 re 0) re)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 re 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 re 1/6) (+.f64 (pow.f64 re 5/6) (pow.f64 re 5/6)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 re 5/6) (+.f64 (pow.f64 re 1/6) (pow.f64 re 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 re re) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 re re))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 0 re)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 re re)) 2) (cbrt.f64 (+.f64 re re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 re re)) (pow.f64 (cbrt.f64 (+.f64 re re)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 re re)) (sqrt.f64 (+.f64 re re)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 re 3) (pow.f64 re 3)) (+.f64 (*.f64 re re) (-.f64 (*.f64 re re) (*.f64 re re))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 re re) (*.f64 re re)) (+.f64 re re))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 re re) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 re re) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 re re)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 re re)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 re re) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (+.f64 re re)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 re re) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 re re)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 re re)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (+.f64 re re)))))))

simplify39.0ms (0.4%)

Algorithm
egg-herbie
Rules
356×associate-/l*_binary64
345×associate-/r*_binary64
344×associate-*l*_binary64
338×log-prod_binary64
305×associate-*r*_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
055218
1141214
2574214
33613214
Stop Event
node limit
Counts
52 → 32
Calls
Call 1
Inputs
(+.f64 re re)
(-.f64 re re)
(-.f64 0 (+.f64 re re))
(-.f64 (+.f64 1 (+.f64 re re)) 1)
(-.f64 (+.f64 re 0) re)
(*.f64 re 0)
(*.f64 (pow.f64 re 1/6) (+.f64 (pow.f64 re 5/6) (pow.f64 re 5/6)))
(*.f64 (pow.f64 re 5/6) (+.f64 (pow.f64 re 1/6) (pow.f64 re 1/6)))
(*.f64 (+.f64 re re) 1)
(*.f64 1 (+.f64 re re))
(*.f64 0 re)
(*.f64 (pow.f64 (cbrt.f64 (+.f64 re re)) 2) (cbrt.f64 (+.f64 re re)))
(*.f64 (cbrt.f64 (+.f64 re re)) (pow.f64 (cbrt.f64 (+.f64 re re)) 2))
(*.f64 (sqrt.f64 (+.f64 re re)) (sqrt.f64 (+.f64 re re)))
(/.f64 (+.f64 (pow.f64 re 3) (pow.f64 re 3)) (+.f64 (*.f64 re re) (-.f64 (*.f64 re re) (*.f64 re re))))
(/.f64 (-.f64 (*.f64 re re) (*.f64 re re)) (+.f64 re re))
(pow.f64 (+.f64 re re) 1)
(pow.f64 (pow.f64 (+.f64 re re) 3) 1/3)
(pow.f64 (cbrt.f64 (+.f64 re re)) 3)
(pow.f64 (sqrt.f64 (+.f64 re re)) 2)
(sqrt.f64 (pow.f64 (+.f64 re re) 2))
(log.f64 (exp.f64 (+.f64 re re)))
(cbrt.f64 (pow.f64 (+.f64 re re) 3))
(expm1.f64 (log1p.f64 (+.f64 re re)))
(log1p.f64 (expm1.f64 (+.f64 re re)))
(exp.f64 (log.f64 (+.f64 re re)))
(+.f64 re re)
(-.f64 re re)
(-.f64 0 (+.f64 re re))
(-.f64 (+.f64 1 (+.f64 re re)) 1)
(-.f64 (+.f64 re 0) re)
(*.f64 re 0)
(*.f64 (pow.f64 re 1/6) (+.f64 (pow.f64 re 5/6) (pow.f64 re 5/6)))
(*.f64 (pow.f64 re 5/6) (+.f64 (pow.f64 re 1/6) (pow.f64 re 1/6)))
(*.f64 (+.f64 re re) 1)
(*.f64 1 (+.f64 re re))
(*.f64 0 re)
(*.f64 (pow.f64 (cbrt.f64 (+.f64 re re)) 2) (cbrt.f64 (+.f64 re re)))
(*.f64 (cbrt.f64 (+.f64 re re)) (pow.f64 (cbrt.f64 (+.f64 re re)) 2))
(*.f64 (sqrt.f64 (+.f64 re re)) (sqrt.f64 (+.f64 re re)))
(/.f64 (+.f64 (pow.f64 re 3) (pow.f64 re 3)) (+.f64 (*.f64 re re) (-.f64 (*.f64 re re) (*.f64 re re))))
(/.f64 (-.f64 (*.f64 re re) (*.f64 re re)) (+.f64 re re))
(pow.f64 (+.f64 re re) 1)
(pow.f64 (pow.f64 (+.f64 re re) 3) 1/3)
(pow.f64 (cbrt.f64 (+.f64 re re)) 3)
(pow.f64 (sqrt.f64 (+.f64 re re)) 2)
(sqrt.f64 (pow.f64 (+.f64 re re) 2))
(log.f64 (exp.f64 (+.f64 re re)))
(cbrt.f64 (pow.f64 (+.f64 re re) 3))
(expm1.f64 (log1p.f64 (+.f64 re re)))
(log1p.f64 (expm1.f64 (+.f64 re re)))
(exp.f64 (log.f64 (+.f64 re re)))
Outputs
(+.f64 re re)
(-.f64 re re)
0
(-.f64 0 (+.f64 re re))
(neg.f64 (+.f64 re re))
(*.f64 -2 re)
(*.f64 re -2)
(-.f64 (+.f64 1 (+.f64 re re)) 1)
(+.f64 re re)
(-.f64 (+.f64 re 0) re)
0
(*.f64 re 0)
0
(*.f64 (pow.f64 re 1/6) (+.f64 (pow.f64 re 5/6) (pow.f64 re 5/6)))
(*.f64 (pow.f64 re 1/6) (*.f64 2 (pow.f64 re 5/6)))
(*.f64 (pow.f64 re 1/6) (*.f64 (pow.f64 re 5/6) 2))
(*.f64 (pow.f64 re 5/6) (+.f64 (pow.f64 re 1/6) (pow.f64 re 1/6)))
(*.f64 (pow.f64 re 1/6) (*.f64 2 (pow.f64 re 5/6)))
(*.f64 (pow.f64 re 1/6) (*.f64 (pow.f64 re 5/6) 2))
(*.f64 (+.f64 re re) 1)
(+.f64 re re)
(*.f64 1 (+.f64 re re))
(+.f64 re re)
(*.f64 0 re)
0
(*.f64 (pow.f64 (cbrt.f64 (+.f64 re re)) 2) (cbrt.f64 (+.f64 re re)))
(+.f64 re re)
(*.f64 (cbrt.f64 (+.f64 re re)) (pow.f64 (cbrt.f64 (+.f64 re re)) 2))
(+.f64 re re)
(*.f64 (sqrt.f64 (+.f64 re re)) (sqrt.f64 (+.f64 re re)))
(+.f64 re re)
(/.f64 (+.f64 (pow.f64 re 3) (pow.f64 re 3)) (+.f64 (*.f64 re re) (-.f64 (*.f64 re re) (*.f64 re re))))
(+.f64 re re)
(/.f64 (-.f64 (*.f64 re re) (*.f64 re re)) (+.f64 re re))
0
(pow.f64 (+.f64 re re) 1)
(+.f64 re re)
(pow.f64 (pow.f64 (+.f64 re re) 3) 1/3)
(+.f64 re re)
(pow.f64 (cbrt.f64 (+.f64 re re)) 3)
(+.f64 re re)
(pow.f64 (sqrt.f64 (+.f64 re re)) 2)
(+.f64 re re)
(sqrt.f64 (pow.f64 (+.f64 re re) 2))
(+.f64 re re)
(log.f64 (exp.f64 (+.f64 re re)))
(+.f64 re re)
(cbrt.f64 (pow.f64 (+.f64 re re) 3))
(+.f64 re re)
(expm1.f64 (log1p.f64 (+.f64 re re)))
(+.f64 re re)
(log1p.f64 (expm1.f64 (+.f64 re re)))
(+.f64 re re)
(exp.f64 (log.f64 (+.f64 re re)))
(+.f64 re re)
(+.f64 re re)
(-.f64 re re)
0
(-.f64 0 (+.f64 re re))
(neg.f64 (+.f64 re re))
(*.f64 -2 re)
(*.f64 re -2)
(-.f64 (+.f64 1 (+.f64 re re)) 1)
(+.f64 re re)
(-.f64 (+.f64 re 0) re)
0
(*.f64 re 0)
0
(*.f64 (pow.f64 re 1/6) (+.f64 (pow.f64 re 5/6) (pow.f64 re 5/6)))
(*.f64 (pow.f64 re 1/6) (*.f64 2 (pow.f64 re 5/6)))
(*.f64 (pow.f64 re 1/6) (*.f64 (pow.f64 re 5/6) 2))
(*.f64 (pow.f64 re 5/6) (+.f64 (pow.f64 re 1/6) (pow.f64 re 1/6)))
(*.f64 (pow.f64 re 1/6) (*.f64 2 (pow.f64 re 5/6)))
(*.f64 (pow.f64 re 1/6) (*.f64 (pow.f64 re 5/6) 2))
(*.f64 (+.f64 re re) 1)
(+.f64 re re)
(*.f64 1 (+.f64 re re))
(+.f64 re re)
(*.f64 0 re)
0
(*.f64 (pow.f64 (cbrt.f64 (+.f64 re re)) 2) (cbrt.f64 (+.f64 re re)))
(+.f64 re re)
(*.f64 (cbrt.f64 (+.f64 re re)) (pow.f64 (cbrt.f64 (+.f64 re re)) 2))
(+.f64 re re)
(*.f64 (sqrt.f64 (+.f64 re re)) (sqrt.f64 (+.f64 re re)))
(+.f64 re re)
(/.f64 (+.f64 (pow.f64 re 3) (pow.f64 re 3)) (+.f64 (*.f64 re re) (-.f64 (*.f64 re re) (*.f64 re re))))
(+.f64 re re)
(/.f64 (-.f64 (*.f64 re re) (*.f64 re re)) (+.f64 re re))
0
(pow.f64 (+.f64 re re) 1)
(+.f64 re re)
(pow.f64 (pow.f64 (+.f64 re re) 3) 1/3)
(+.f64 re re)
(pow.f64 (cbrt.f64 (+.f64 re re)) 3)
(+.f64 re re)
(pow.f64 (sqrt.f64 (+.f64 re re)) 2)
(+.f64 re re)
(sqrt.f64 (pow.f64 (+.f64 re re) 2))
(+.f64 re re)
(log.f64 (exp.f64 (+.f64 re re)))
(+.f64 re re)
(cbrt.f64 (pow.f64 (+.f64 re re) 3))
(+.f64 re re)
(expm1.f64 (log1p.f64 (+.f64 re re)))
(+.f64 re re)
(log1p.f64 (expm1.f64 (+.f64 re re)))
(+.f64 re re)
(exp.f64 (log.f64 (+.f64 re re)))
(+.f64 re re)

eval244.0ms (2.8%)

Compiler

Compiled 20904 to 7572 computations (63.8% saved)

prune284.0ms (3.3%)

Pruning

50 alts after pruning (40 fresh and 10 done)

PrunedKeptTotal
New62716643
Fresh52429
Picked011
Done099
Total63250682
Error
12.8b
Counts
682 → 50
Alt Table
Click to see full alt table
StatusErrorProgram
42.9b
(*.f64 1/2 (pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 3/2) 1/3))
32.1b
(*.f64 1/2 (pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) 2))
32.3b
(*.f64 1/2 (pow.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 3/2))
32.5b
(*.f64 1/2 (pow.f64 (cbrt.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))) 3))
38.6b
(*.f64 1/2 (-.f64 (+.f64 1 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))) 1))
15.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (pow.f64 (pow.f64 (hypot.f64 re im) 1/4) 2) (pow.f64 (cbrt.f64 (hypot.f64 re im)) 3/2) (neg.f64 re)))))
15.7b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (pow.f64 (pow.f64 (hypot.f64 re im) 1/4) 2) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re)))))
31.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (pow.f64 (pow.f64 (hypot.f64 re im) 1/4) 2) (cbrt.f64 (pow.f64 (hypot.f64 re im) 3/2)) (neg.f64 re)))))
16.2b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (pow.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) 3) (neg.f64 re)))))
16.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (*.f64 (*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) 2)) (sqrt.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))))) (cbrt.f64 (sqrt.f64 (hypot.f64 re im)))) (neg.f64 re)))))
16.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (*.f64 (cbrt.f64 (sqrt.f64 (hypot.f64 re im))) (cbrt.f64 (sqrt.f64 (hypot.f64 re im)))) (neg.f64 re)))))
16.2b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (cbrt.f64 (hypot.f64 re im)) (neg.f64 re)))))
15.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 3/2) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re)))))
16.3b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) 2) (*.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) (cbrt.f64 (hypot.f64 re im)))) (cbrt.f64 (hypot.f64 re im)) (neg.f64 re)))))
15.7b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re)))))
13.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))))
51.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (fma.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (cbrt.f64 (hypot.f64 re im)) (neg.f64 re)) (fma.f64 (neg.f64 (sqrt.f64 re)) (sqrt.f64 re) re)))))
15.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re)) (fma.f64 (neg.f64 (cbrt.f64 re)) (pow.f64 (cbrt.f64 re) 2) re)))))
31.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (hypot.f64 re im) re))))
15.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 (cbrt.f64 re)) 3)) (pow.f64 (cbrt.f64 re) 2) re)))))
50.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (fma.f64 (neg.f64 (sqrt.f64 re)) (sqrt.f64 re) re)))))
15.7b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (fma.f64 (neg.f64 (cbrt.f64 re)) (pow.f64 (cbrt.f64 re) 2) re)))))
50.7b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (fma.f64 (neg.f64 (cbrt.f64 re)) (pow.f64 re 2/3) re)))))
21.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (fma.f64 (neg.f64 (cbrt.f64 re)) (sqrt.f64 (*.f64 re (cbrt.f64 re))) re)))))
25.4b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (fma.f64 (neg.f64 (cbrt.f64 re)) (cbrt.f64 (*.f64 re re)) re)))))
25.6b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (fma.f64 (cbrt.f64 (*.f64 re re)) (cbrt.f64 re) (neg.f64 re))))))
50.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (+.f64 (fma.f64 (pow.f64 re 1/4) (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re))))) (fma.f64 (neg.f64 (sqrt.f64 (cbrt.f64 re))) (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re)))))))))
50.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (+.f64 (fma.f64 (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3)))) (fma.f64 (neg.f64 (pow.f64 re 1/4)) (pow.f64 (pow.f64 re 1/4) 3) (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3))))))))
50.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (+.f64 (fma.f64 (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (pow.f64 re 1/4)))) (fma.f64 (neg.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re))) (pow.f64 re 1/4) (*.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (pow.f64 re 1/4))))))))
50.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (+.f64 (fma.f64 (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (cbrt.f64 re)))) (fma.f64 (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (cbrt.f64 re))))))))
50.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (+.f64 (fma.f64 (sqrt.f64 re) (sqrt.f64 re) (neg.f64 (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3)))) (fma.f64 (neg.f64 (pow.f64 re 1/4)) (pow.f64 (pow.f64 re 1/4) 3) (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3))))))))
50.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (+.f64 (fma.f64 (sqrt.f64 re) (sqrt.f64 re) (neg.f64 (*.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (pow.f64 re 1/4)))) (fma.f64 (neg.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re))) (pow.f64 re 1/4) (*.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (pow.f64 re 1/4))))))))
52.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (+.f64 (fma.f64 (cbrt.f64 (*.f64 re re)) (cbrt.f64 re) (neg.f64 (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3)))) (fma.f64 (neg.f64 (pow.f64 re 1/4)) (pow.f64 (pow.f64 re 1/4) 3) (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3))))))))
52.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (+.f64 (fma.f64 (cbrt.f64 (*.f64 re re)) (cbrt.f64 re) (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re))))) (fma.f64 (neg.f64 (sqrt.f64 (cbrt.f64 re))) (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re)))))))))
50.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (+.f64 (fma.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (neg.f64 (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3)))) (fma.f64 (neg.f64 (pow.f64 re 1/4)) (pow.f64 (pow.f64 re 1/4) 3) (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3))))))))
50.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (+.f64 (fma.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re))))) (fma.f64 (neg.f64 (sqrt.f64 (cbrt.f64 re))) (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re)))))))))
52.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (+.f64 (fma.f64 (cbrt.f64 re) (cbrt.f64 (*.f64 re re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (cbrt.f64 re) (sqrt.f64 re))))) (fma.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))))))
50.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (+.f64 (fma.f64 re 1 (neg.f64 (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3)))) (fma.f64 (neg.f64 (pow.f64 re 1/4)) (pow.f64 (pow.f64 re 1/4) 3) (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3))))))))
50.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (+.f64 (fma.f64 re 1 (neg.f64 (*.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (pow.f64 re 1/4)))) (fma.f64 (neg.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re))) (pow.f64 re 1/4) (*.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (pow.f64 re 1/4))))))))
50.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (+.f64 (fma.f64 re 1 (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re))))) (fma.f64 (neg.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (cbrt.f64 re)) 3))) (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re)))))))))
50.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (+.f64 (fma.f64 re 1 (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re))))) (fma.f64 (neg.f64 (sqrt.f64 (cbrt.f64 re))) (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re)))))))))
50.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (+.f64 (*.f64 0 (*.f64 (sqrt.f64 re) (pow.f64 re 1/2))) (fma.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (cbrt.f64 re) (sqrt.f64 re)) (neg.f64 (*.f64 (sqrt.f64 re) (pow.f64 re 1/2)))))))))
52.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (+.f64 (*.f64 0 (*.f64 (sqrt.f64 re) (pow.f64 re 1/2))) (fma.f64 (cbrt.f64 (*.f64 re re)) (cbrt.f64 re) (neg.f64 (*.f64 (sqrt.f64 re) (pow.f64 re 1/2)))))))))
51.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (+.f64 (-.f64 (hypot.f64 re im) re) (fma.f64 (neg.f64 (sqrt.f64 re)) (sqrt.f64 re) re)) (fma.f64 (neg.f64 (cbrt.f64 re)) (cbrt.f64 (*.f64 re re)) re)))))
50.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (+.f64 (-.f64 (hypot.f64 re im) re) (fma.f64 (neg.f64 (sqrt.f64 re)) (sqrt.f64 re) re)) (+.f64 (fma.f64 re 1 (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re))))) (fma.f64 (neg.f64 (sqrt.f64 (cbrt.f64 re))) (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re)))))))))
34.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (exp.f64 (log.f64 (+.f64 (hypot.f64 re im) re))))))
61.4b
(*.f64 1/2 (log.f64 (exp.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))
33.5b
(*.f64 1/2 (expm1.f64 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))
34.0b
(*.f64 1/2 (exp.f64 (log.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))
41.5b
(*.f64 1/2 (cbrt.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 3/2)))
Compiler

Compiled 2854 to 1811 computations (36.5% saved)

localize35.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.6b
(pow.f64 (cbrt.f64 re) 2)
0.6b
(cbrt.f64 re)
15.6b
(fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re))
59.8b
(fma.f64 (neg.f64 (cbrt.f64 re)) (pow.f64 (cbrt.f64 re) 2) re)
Compiler

Compiled 138 to 41 computations (70.3% saved)

localize18.0ms (0.2%)

Local error

Found 3 expressions with local error:

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

Compiled 66 to 33 computations (50% saved)

series142.0ms (1.7%)

Counts
3 → 0
Calls

18 calls:

TimeVariablePointExpression
12.0ms
im
@inf
(-.f64 (+.f64 1 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))) 1)
0.0ms
im
@0
(-.f64 (+.f64 1 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))) 1)
0.0ms
im
@0
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
0.0ms
re
@0
(-.f64 (+.f64 1 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))) 1)
0.0ms
re
@-inf
(-.f64 (+.f64 1 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))) 1)
Compiler

Compiled 13265 to 10460 computations (21.1% saved)

rewrite73.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
603×fma-def_binary64
477×log-prod_binary64
322×pow-prod-down_binary64
280×pow2_binary64
276×fma-neg_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify101.0ms (1.2%)

Algorithm
egg-herbie
Rules
646×fma-neg_binary64
583×div-sub_binary64
347×fma-def_binary64
336×distribute-rgt-in_binary64
307×distribute-lft-in_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02744595
16404271
216604149
362074149
Stop Event
node limit
Counts
200 → 146
Calls
Call 1
Inputs
(+.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1))
(+.f64 1 (*.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1) 1))
(+.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 0)
(+.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) -1)
(+.f64 0 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))
(+.f64 -1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1))
(+.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1) 1)
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))))
(*.f64 1 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))
(*.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 1)
(*.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/6))
(*.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/6) (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))
(*.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4))
(*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2))
(*.f64 (sqrt.f64 2) (sqrt.f64 (+.f64 re (hypot.f64 re im))))
(*.f64 (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (/.f64 1 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 2) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2))))
(*.f64 (expm1.f64 (*.f64 2 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (/.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2)))
(*.f64 (pow.f64 1 1/2) (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))
(*.f64 (+.f64 (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)) 1) (-.f64 (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)) 1))
(/.f64 1 (/.f64 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 2) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2)) (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))))
(/.f64 1 (/.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2) (expm1.f64 (*.f64 2 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))))
(/.f64 (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (+.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 2) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2)))
(/.f64 (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (+.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 2) (-.f64 1 (*.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) -1))))
(/.f64 (expm1.f64 (*.f64 2 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2))
(/.f64 (neg.f64 (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))) (neg.f64 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 2) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2))))
(/.f64 (neg.f64 (expm1.f64 (*.f64 2 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))) (neg.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2)))
(/.f64 (+.f64 1 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1) 3)) (+.f64 1 (-.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1) 2) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1))))
(/.f64 (-.f64 1 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1) 2)) (-.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1)))
(pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/2)
(pow.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 1)
(pow.f64 (*.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 2) 4) 1/4)
(pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 3) 1/6)
(pow.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 3/2)
(pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/6) 3)
(pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) 2)
(pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 3/2) 1/3)
(pow.f64 (/.f64 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 2) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2)) (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))) -1)
(pow.f64 (/.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2) (expm1.f64 (*.f64 2 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))) -1)
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(fabs.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))
(log.f64 (exp.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))
(log.f64 (+.f64 1 (expm1.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))
(cbrt.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 3/2))
(hypot.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) (sqrt.f64 (-.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))
(expm1.f64 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))
(expm1.f64 (*.f64 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))) 1))
(log1p.f64 (expm1.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))
(exp.f64 (log.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))
(exp.f64 (*.f64 (log.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 1/2))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))) 1))
(fma.f64 1 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 0)
(fma.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) -1)
(fma.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1) 1)
(fma.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 1 0)
(fma.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 1 -1)
(fma.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/6) 0)
(fma.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/6) (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 0)
(fma.f64 (cbrt.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1)) (pow.f64 (cbrt.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1)) 2) -1)
(fma.f64 (pow.f64 (cbrt.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1)) 2) (cbrt.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1)) -1)
(fma.f64 (pow.f64 (cbrt.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1)) 2) (*.f64 (cbrt.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1)) 1) -1)
(fma.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) 0)
(fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 0)
(fma.f64 (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)) (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)) -1)
(fma.f64 (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)) (*.f64 (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)) 1) -1)
(fma.f64 (sqrt.f64 2) (sqrt.f64 (+.f64 re (hypot.f64 re im))) 0)
(fma.f64 (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (/.f64 1 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 2) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2))) 0)
(fma.f64 (+.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 3/2)) (/.f64 1 (-.f64 (+.f64 1 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))) -1)
(fma.f64 (expm1.f64 (*.f64 2 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (/.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2)) 0)
(fma.f64 (+.f64 1 (*.f64 -2 (+.f64 re (hypot.f64 re im)))) (/.f64 1 (-.f64 1 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))) -1)
(fma.f64 (pow.f64 (cbrt.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1)) 2) (cbrt.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1)) 1)
(fma.f64 (sqrt.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1)) (sqrt.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1)) 1)
(fma.f64 (pow.f64 1 1/2) (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 0)
(fma.f64 (+.f64 (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)) 1) (-.f64 (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)) 1) 0)
(fma.f64 (+.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) 1) (-.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) 1) 1)
(-.f64 (exp.f64 (log1p.f64 (+.f64 re (hypot.f64 re im)))) 1)
(-.f64 (/.f64 (*.f64 re re) (-.f64 re (hypot.f64 re im))) (/.f64 (pow.f64 (hypot.f64 re im) 2) (-.f64 re (hypot.f64 re im))))
(*.f64 1 (+.f64 re (hypot.f64 re im)))
(*.f64 (+.f64 re (hypot.f64 re im)) 1)
(*.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im))) (pow.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im))) 2))
(*.f64 (pow.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im))) 2) (cbrt.f64 (+.f64 re (hypot.f64 re im))))
(*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 (+.f64 re (hypot.f64 re im))))
(*.f64 (+.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3)) (/.f64 1 (fma.f64 re re (*.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re)))))
(*.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (/.f64 1 (-.f64 re (hypot.f64 re im))))
(/.f64 1 (/.f64 (fma.f64 re re (*.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re))) (+.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3))))
(/.f64 1 (/.f64 (-.f64 re (hypot.f64 re im)) (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))))
(/.f64 (+.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3)) (fma.f64 re re (*.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re))))
(/.f64 (+.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3)) (+.f64 (pow.f64 (hypot.f64 re im) 2) (-.f64 (*.f64 re re) (*.f64 re (hypot.f64 re im)))))
(/.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (-.f64 re (hypot.f64 re im)))
(/.f64 (neg.f64 (+.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3))) (neg.f64 (fma.f64 re re (*.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re)))))
(/.f64 (neg.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) (neg.f64 (-.f64 re (hypot.f64 re im))))
(/.f64 (-.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 re re)) (-.f64 (hypot.f64 re im) re))
(pow.f64 (+.f64 re (hypot.f64 re im)) 1)
(pow.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 2) 1/2)
(pow.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 3) 1/3)
(pow.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im))) 3)
(pow.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) 2)
(pow.f64 (/.f64 (fma.f64 re re (*.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re))) (+.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3))) -1)
(pow.f64 (/.f64 (-.f64 re (hypot.f64 re im)) (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) -1)
(sqrt.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 2))
(log.f64 (exp.f64 (+.f64 re (hypot.f64 re im))))
(log.f64 (+.f64 1 (expm1.f64 (+.f64 re (hypot.f64 re im)))))
(log.f64 (*.f64 (+.f64 1 (expm1.f64 re)) (exp.f64 (hypot.f64 re im))))
(log.f64 (*.f64 (exp.f64 re) (+.f64 1 (expm1.f64 (hypot.f64 re im)))))
(log.f64 (*.f64 (+.f64 1 (expm1.f64 re)) (+.f64 1 (expm1.f64 (hypot.f64 re im)))))
(log.f64 (*.f64 (+.f64 1 (expm1.f64 (hypot.f64 re im))) (exp.f64 re)))
(log.f64 (*.f64 (exp.f64 (hypot.f64 re im)) (+.f64 1 (expm1.f64 re))))
(log.f64 (*.f64 (+.f64 1 (expm1.f64 (hypot.f64 re im))) (+.f64 1 (expm1.f64 re))))
(cbrt.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 3))
(expm1.f64 (log1p.f64 (+.f64 re (hypot.f64 re im))))
(log1p.f64 (expm1.f64 (+.f64 re (hypot.f64 re im))))
(exp.f64 (log.f64 (+.f64 re (hypot.f64 re im))))
(exp.f64 (*.f64 (log.f64 (+.f64 re (hypot.f64 re im))) 1))
(fma.f64 1 re (hypot.f64 re im))
(fma.f64 1 (hypot.f64 re im) re)
(fma.f64 re 1 (hypot.f64 re im))
(fma.f64 (hypot.f64 re im) 1 re)
(fma.f64 (cbrt.f64 (hypot.f64 re im)) (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) re)
(fma.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (cbrt.f64 (hypot.f64 re im)) re)
(fma.f64 (cbrt.f64 re) (pow.f64 (cbrt.f64 re) 2) (hypot.f64 re im))
(fma.f64 (pow.f64 (cbrt.f64 re) 2) (cbrt.f64 re) (hypot.f64 re im))
(fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) re)
(fma.f64 (sqrt.f64 re) (sqrt.f64 re) (hypot.f64 re im))
(+.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1))
(+.f64 1 (*.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1) 1))
(+.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 0)
(+.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) -1)
(+.f64 0 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))
(+.f64 -1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1))
(+.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1) 1)
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))))
(-.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 1)
(-.f64 (/.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 3) (+.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 2) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2))) (/.f64 1 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 2) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2))))
(-.f64 (/.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 2) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2)) (/.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2)))
(*.f64 1 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))
(*.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 1)
(*.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/6))
(*.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/6) (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))
(*.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4))
(*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2))
(*.f64 (sqrt.f64 2) (sqrt.f64 (+.f64 re (hypot.f64 re im))))
(*.f64 (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (/.f64 1 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 2) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2))))
(*.f64 (expm1.f64 (*.f64 2 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (/.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2)))
(*.f64 (pow.f64 1 1/2) (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))
(*.f64 (+.f64 (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)) 1) (-.f64 (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)) 1))
(/.f64 1 (/.f64 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 2) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2)) (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))))
(/.f64 1 (/.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2) (expm1.f64 (*.f64 2 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))))
(/.f64 (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (+.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 2) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2)))
(/.f64 (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (+.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 2) (-.f64 1 (*.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) -1))))
(/.f64 (expm1.f64 (*.f64 2 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2))
(/.f64 (neg.f64 (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))) (neg.f64 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 2) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2))))
(/.f64 (neg.f64 (expm1.f64 (*.f64 2 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))) (neg.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2)))
(/.f64 (+.f64 1 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1) 3)) (+.f64 1 (-.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1) 2) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1))))
(/.f64 (-.f64 1 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1) 2)) (-.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1)))
(pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/2)
(pow.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 1)
(pow.f64 (*.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 2) 4) 1/4)
(pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 3) 1/6)
(pow.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 3/2)
(pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/6) 3)
(pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) 2)
(pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 3/2) 1/3)
(pow.f64 (/.f64 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 2) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2)) (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))) -1)
(pow.f64 (/.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2) (expm1.f64 (*.f64 2 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))) -1)
(fabs.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))
(log.f64 (exp.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))
(log.f64 (+.f64 1 (expm1.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))
(cbrt.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 3/2))
(hypot.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) (sqrt.f64 (-.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))
(expm1.f64 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))
(expm1.f64 (*.f64 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))) 1))
(log1p.f64 (expm1.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))
(exp.f64 (log.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))
(exp.f64 (*.f64 (log.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 1/2))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))) 1))
(fma.f64 1 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 0)
(fma.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) -1)
(fma.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1) 1)
(fma.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 1 0)
(fma.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 1 -1)
(fma.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/6) 0)
(fma.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/6) (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 0)
(fma.f64 (cbrt.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1)) (pow.f64 (cbrt.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1)) 2) -1)
(fma.f64 (pow.f64 (cbrt.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1)) 2) (cbrt.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1)) -1)
(fma.f64 (pow.f64 (cbrt.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1)) 2) (*.f64 (cbrt.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1)) 1) -1)
(fma.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) 0)
(fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 0)
(fma.f64 (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)) (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)) -1)
(fma.f64 (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)) (*.f64 (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)) 1) -1)
(fma.f64 (sqrt.f64 2) (sqrt.f64 (+.f64 re (hypot.f64 re im))) 0)
(fma.f64 (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (/.f64 1 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 2) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2))) 0)
(fma.f64 (+.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 3/2)) (/.f64 1 (-.f64 (+.f64 1 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))) -1)
(fma.f64 (expm1.f64 (*.f64 2 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (/.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2)) 0)
(fma.f64 (+.f64 1 (*.f64 -2 (+.f64 re (hypot.f64 re im)))) (/.f64 1 (-.f64 1 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))) -1)
(fma.f64 (pow.f64 (cbrt.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1)) 2) (cbrt.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1)) 1)
(fma.f64 (sqrt.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1)) (sqrt.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1)) 1)
(fma.f64 (pow.f64 1 1/2) (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 0)
(fma.f64 (+.f64 (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)) 1) (-.f64 (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)) 1) 0)
(fma.f64 (+.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) 1) (-.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) 1) 1)
Outputs
(+.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1))
(*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2))
(+.f64 1 (*.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1) 1))
(+.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1))
(*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2))
(+.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 0)
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(+.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) -1)
(+.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1))
(*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2))
(+.f64 0 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(+.f64 -1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1))
(+.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1))
(*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2))
(+.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1) 1)
(+.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1))
(*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))))
(*.f64 3 (log.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))))
(*.f64 (log.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) 3)
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))))
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(*.f64 1 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(*.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 1)
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(*.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/6))
(pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/6) 3)
(*.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/6) (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))
(*.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/6))
(pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/6) 3)
(*.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4))
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2))
(+.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1))
(*.f64 (sqrt.f64 2) (sqrt.f64 (+.f64 re (hypot.f64 re im))))
(+.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1))
(*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2))
(*.f64 (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (/.f64 1 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 2) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2))))
(/.f64 (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (+.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 2) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2)))
(/.f64 (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (+.f64 1 (*.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2))))
(*.f64 (expm1.f64 (*.f64 2 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (/.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2)))
(/.f64 (expm1.f64 (*.f64 2 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2))
(*.f64 (pow.f64 1 1/2) (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(*.f64 (+.f64 (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)) 1) (-.f64 (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)) 1))
(*.f64 (+.f64 1 (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4))) (+.f64 (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)) -1))
(fma.f64 (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)) (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)) -1)
(/.f64 1 (/.f64 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 2) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2)) (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))))
(*.f64 (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (/.f64 1 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 2) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2))))
(/.f64 (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (+.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 2) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2)))
(/.f64 (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (+.f64 1 (*.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2))))
(/.f64 1 (/.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2) (expm1.f64 (*.f64 2 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))))
(*.f64 (expm1.f64 (*.f64 2 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (/.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2)))
(/.f64 (expm1.f64 (*.f64 2 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2))
(/.f64 (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (+.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 2) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2)))
(*.f64 (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (/.f64 1 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 2) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2))))
(/.f64 (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (+.f64 1 (*.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2))))
(/.f64 (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (+.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 2) (-.f64 1 (*.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) -1))))
(*.f64 (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (/.f64 1 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 2) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2))))
(/.f64 (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (+.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 2) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2)))
(/.f64 (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (+.f64 1 (*.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2))))
(/.f64 (expm1.f64 (*.f64 2 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2))
(*.f64 (expm1.f64 (*.f64 2 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (/.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2)))
(/.f64 (neg.f64 (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))) (neg.f64 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 2) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2))))
(*.f64 (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (/.f64 1 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 2) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2))))
(/.f64 (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (+.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 2) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2)))
(/.f64 (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (+.f64 1 (*.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2))))
(/.f64 (neg.f64 (expm1.f64 (*.f64 2 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))) (neg.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2)))
(*.f64 (expm1.f64 (*.f64 2 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (/.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2)))
(/.f64 (expm1.f64 (*.f64 2 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2))
(/.f64 (+.f64 1 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1) 3)) (+.f64 1 (-.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1) 2) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1))))
(/.f64 (+.f64 1 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1) 3)) (+.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1) 2) (-.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1))))
(/.f64 (+.f64 1 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1) 3)) (fma.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1) (+.f64 (*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2)) -2) 1))
(/.f64 (-.f64 1 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1) 2)) (-.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1)))
(/.f64 (-.f64 1 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1) 2)) (-.f64 2 (*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2))))
(pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/2)
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(pow.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 1)
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(pow.f64 (*.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 2) 4) 1/4)
(pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 3) 1/6)
(pow.f64 (*.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 3) 8) 1/6)
(pow.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 3/2)
(pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/6) 3)
(*.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/6))
(pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) 2)
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 3/2) 1/3)
(cbrt.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 3/2))
(pow.f64 (/.f64 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 2) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2)) (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))) -1)
(*.f64 (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (/.f64 1 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 2) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2))))
(/.f64 (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (+.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 2) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2)))
(/.f64 (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (+.f64 1 (*.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2))))
(pow.f64 (/.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2) (expm1.f64 (*.f64 2 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))) -1)
(*.f64 (expm1.f64 (*.f64 2 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (/.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2)))
(/.f64 (expm1.f64 (*.f64 2 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2))
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(fabs.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(log.f64 (exp.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(log.f64 (+.f64 1 (expm1.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(cbrt.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 3/2))
(hypot.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) (sqrt.f64 (-.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))
(expm1.f64 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(expm1.f64 (*.f64 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))) 1))
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(log1p.f64 (expm1.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(exp.f64 (log.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(exp.f64 (*.f64 (log.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 1/2))
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))) 1))
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(fma.f64 1 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 0)
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(fma.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) -1)
(+.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1))
(*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2))
(fma.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1) 1)
(+.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1))
(*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2))
(fma.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 1 0)
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(fma.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 1 -1)
(+.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1))
(*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2))
(fma.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/6) 0)
(*.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/6))
(pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/6) 3)
(fma.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/6) (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 0)
(*.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/6))
(pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/6) 3)
(fma.f64 (cbrt.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1)) (pow.f64 (cbrt.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1)) 2) -1)
(+.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1))
(*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2))
(fma.f64 (pow.f64 (cbrt.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1)) 2) (cbrt.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1)) -1)
(+.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1))
(*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2))
(fma.f64 (pow.f64 (cbrt.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1)) 2) (*.f64 (cbrt.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1)) 1) -1)
(+.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1))
(*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2))
(fma.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) 0)
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 0)
(+.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1))
(*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2))
(fma.f64 (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)) (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)) -1)
(*.f64 (+.f64 1 (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4))) (+.f64 (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)) -1))
(fma.f64 (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)) (*.f64 (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)) 1) -1)
(*.f64 (+.f64 1 (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4))) (+.f64 (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)) -1))
(fma.f64 (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)) (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)) -1)
(fma.f64 (sqrt.f64 2) (sqrt.f64 (+.f64 re (hypot.f64 re im))) 0)
(+.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1))
(*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2))
(fma.f64 (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (/.f64 1 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 2) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2))) 0)
(*.f64 (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (/.f64 1 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 2) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2))))
(/.f64 (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (+.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 2) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2)))
(/.f64 (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (+.f64 1 (*.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2))))
(fma.f64 (+.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 3/2)) (/.f64 1 (-.f64 (+.f64 1 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))) -1)
(fma.f64 (+.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 3/2)) (/.f64 1 (+.f64 1 (-.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) -1)
(fma.f64 (+.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 3/2)) (/.f64 1 (-.f64 (fma.f64 (+.f64 re (hypot.f64 re im)) 2 1) (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))) -1)
(+.f64 -1 (/.f64 (+.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 3/2)) (-.f64 (fma.f64 (+.f64 re (hypot.f64 re im)) 2 1) (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))
(fma.f64 (expm1.f64 (*.f64 2 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (/.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2)) 0)
(*.f64 (expm1.f64 (*.f64 2 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (/.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2)))
(/.f64 (expm1.f64 (*.f64 2 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2))
(fma.f64 (+.f64 1 (*.f64 -2 (+.f64 re (hypot.f64 re im)))) (/.f64 1 (-.f64 1 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))) -1)
(fma.f64 (+.f64 1 (*.f64 (+.f64 re (hypot.f64 re im)) -2)) (/.f64 1 (-.f64 1 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))) -1)
(fma.f64 (fma.f64 (+.f64 re (hypot.f64 re im)) -2 1) (/.f64 1 (-.f64 1 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))) -1)
(+.f64 -1 (/.f64 (fma.f64 (+.f64 re (hypot.f64 re im)) -2 1) (-.f64 1 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))
(fma.f64 (pow.f64 (cbrt.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1)) 2) (cbrt.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1)) 1)
(+.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1))
(*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2))
(fma.f64 (sqrt.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1)) (sqrt.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1)) 1)
(+.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1))
(*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2))
(fma.f64 (pow.f64 1 1/2) (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 0)
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(fma.f64 (+.f64 (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)) 1) (-.f64 (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)) 1) 0)
(*.f64 (+.f64 1 (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4))) (+.f64 (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)) -1))
(fma.f64 (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)) (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)) -1)
(fma.f64 (+.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) 1) (-.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) 1) 1)
(fma.f64 (+.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)) (+.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) -1) 1)
(fma.f64 (+.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)) (+.f64 -1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)) 1)
(-.f64 (exp.f64 (log1p.f64 (+.f64 re (hypot.f64 re im)))) 1)
(+.f64 re (hypot.f64 re im))
(-.f64 (/.f64 (*.f64 re re) (-.f64 re (hypot.f64 re im))) (/.f64 (pow.f64 (hypot.f64 re im) 2) (-.f64 re (hypot.f64 re im))))
(/.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (-.f64 re (hypot.f64 re im)))
(/.f64 (-.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 re re)) (-.f64 (hypot.f64 re im) re))
(*.f64 1 (+.f64 re (hypot.f64 re im)))
(+.f64 re (hypot.f64 re im))
(*.f64 (+.f64 re (hypot.f64 re im)) 1)
(+.f64 re (hypot.f64 re im))
(*.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im))) (pow.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im))) 2))
(+.f64 re (hypot.f64 re im))
(*.f64 (pow.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im))) 2) (cbrt.f64 (+.f64 re (hypot.f64 re im))))
(+.f64 re (hypot.f64 re im))
(*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 (+.f64 re (hypot.f64 re im))))
(+.f64 re (hypot.f64 re im))
(*.f64 (+.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3)) (/.f64 1 (fma.f64 re re (*.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re)))))
(/.f64 (+.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3)) (fma.f64 re re (*.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re))))
(/.f64 (+.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3)) (fma.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re) (*.f64 re re)))
(*.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (/.f64 1 (-.f64 re (hypot.f64 re im))))
(/.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (-.f64 re (hypot.f64 re im)))
(/.f64 (-.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 re re)) (-.f64 (hypot.f64 re im) re))
(/.f64 1 (/.f64 (fma.f64 re re (*.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re))) (+.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3))))
(*.f64 (+.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3)) (/.f64 1 (fma.f64 re re (*.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re)))))
(/.f64 (+.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3)) (fma.f64 re re (*.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re))))
(/.f64 (+.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3)) (fma.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re) (*.f64 re re)))
(/.f64 1 (/.f64 (-.f64 re (hypot.f64 re im)) (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))))
(/.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (-.f64 re (hypot.f64 re im)))
(/.f64 (-.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 re re)) (-.f64 (hypot.f64 re im) re))
(/.f64 (+.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3)) (fma.f64 re re (*.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re))))
(*.f64 (+.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3)) (/.f64 1 (fma.f64 re re (*.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re)))))
(/.f64 (+.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3)) (fma.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re) (*.f64 re re)))
(/.f64 (+.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3)) (+.f64 (pow.f64 (hypot.f64 re im) 2) (-.f64 (*.f64 re re) (*.f64 re (hypot.f64 re im)))))
(*.f64 (+.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3)) (/.f64 1 (fma.f64 re re (*.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re)))))
(/.f64 (+.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3)) (fma.f64 re re (*.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re))))
(/.f64 (+.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3)) (fma.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re) (*.f64 re re)))
(/.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (-.f64 re (hypot.f64 re im)))
(/.f64 (-.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 re re)) (-.f64 (hypot.f64 re im) re))
(/.f64 (neg.f64 (+.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3))) (neg.f64 (fma.f64 re re (*.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re)))))
(*.f64 (+.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3)) (/.f64 1 (fma.f64 re re (*.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re)))))
(/.f64 (+.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3)) (fma.f64 re re (*.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re))))
(/.f64 (+.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3)) (fma.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re) (*.f64 re re)))
(/.f64 (neg.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) (neg.f64 (-.f64 re (hypot.f64 re im))))
(/.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (-.f64 re (hypot.f64 re im)))
(/.f64 (-.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 re re)) (-.f64 (hypot.f64 re im) re))
(/.f64 (-.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 re re)) (-.f64 (hypot.f64 re im) re))
(/.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (-.f64 re (hypot.f64 re im)))
(pow.f64 (+.f64 re (hypot.f64 re im)) 1)
(+.f64 re (hypot.f64 re im))
(pow.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 2) 1/2)
(+.f64 re (hypot.f64 re im))
(pow.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 3) 1/3)
(+.f64 re (hypot.f64 re im))
(pow.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im))) 3)
(+.f64 re (hypot.f64 re im))
(pow.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) 2)
(+.f64 re (hypot.f64 re im))
(pow.f64 (/.f64 (fma.f64 re re (*.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re))) (+.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3))) -1)
(*.f64 (+.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3)) (/.f64 1 (fma.f64 re re (*.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re)))))
(/.f64 (+.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3)) (fma.f64 re re (*.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re))))
(/.f64 (+.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3)) (fma.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re) (*.f64 re re)))
(pow.f64 (/.f64 (-.f64 re (hypot.f64 re im)) (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2))) -1)
(/.f64 (-.f64 (*.f64 re re) (pow.f64 (hypot.f64 re im) 2)) (-.f64 re (hypot.f64 re im)))
(/.f64 (-.f64 (pow.f64 (hypot.f64 re im) 2) (*.f64 re re)) (-.f64 (hypot.f64 re im) re))
(sqrt.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 2))
(+.f64 re (hypot.f64 re im))
(log.f64 (exp.f64 (+.f64 re (hypot.f64 re im))))
(+.f64 re (hypot.f64 re im))
(log.f64 (+.f64 1 (expm1.f64 (+.f64 re (hypot.f64 re im)))))
(+.f64 re (hypot.f64 re im))
(log.f64 (*.f64 (+.f64 1 (expm1.f64 re)) (exp.f64 (hypot.f64 re im))))
(+.f64 re (hypot.f64 re im))
(log.f64 (*.f64 (exp.f64 re) (+.f64 1 (expm1.f64 (hypot.f64 re im)))))
(+.f64 re (hypot.f64 re im))
(log.f64 (*.f64 (+.f64 1 (expm1.f64 re)) (+.f64 1 (expm1.f64 (hypot.f64 re im)))))
(+.f64 re (hypot.f64 re im))
(log.f64 (*.f64 (+.f64 1 (expm1.f64 (hypot.f64 re im))) (exp.f64 re)))
(+.f64 re (hypot.f64 re im))
(log.f64 (*.f64 (exp.f64 (hypot.f64 re im)) (+.f64 1 (expm1.f64 re))))
(+.f64 re (hypot.f64 re im))
(log.f64 (*.f64 (+.f64 1 (expm1.f64 (hypot.f64 re im))) (+.f64 1 (expm1.f64 re))))
(+.f64 re (hypot.f64 re im))
(cbrt.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 3))
(+.f64 re (hypot.f64 re im))
(expm1.f64 (log1p.f64 (+.f64 re (hypot.f64 re im))))
(+.f64 re (hypot.f64 re im))
(log1p.f64 (expm1.f64 (+.f64 re (hypot.f64 re im))))
(+.f64 re (hypot.f64 re im))
(exp.f64 (log.f64 (+.f64 re (hypot.f64 re im))))
(+.f64 re (hypot.f64 re im))
(exp.f64 (*.f64 (log.f64 (+.f64 re (hypot.f64 re im))) 1))
(+.f64 re (hypot.f64 re im))
(fma.f64 1 re (hypot.f64 re im))
(+.f64 re (hypot.f64 re im))
(fma.f64 1 (hypot.f64 re im) re)
(+.f64 re (hypot.f64 re im))
(fma.f64 re 1 (hypot.f64 re im))
(+.f64 re (hypot.f64 re im))
(fma.f64 (hypot.f64 re im) 1 re)
(+.f64 re (hypot.f64 re im))
(fma.f64 (cbrt.f64 (hypot.f64 re im)) (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) re)
(+.f64 re (hypot.f64 re im))
(fma.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (cbrt.f64 (hypot.f64 re im)) re)
(+.f64 re (hypot.f64 re im))
(fma.f64 (cbrt.f64 re) (pow.f64 (cbrt.f64 re) 2) (hypot.f64 re im))
(+.f64 re (hypot.f64 re im))
(fma.f64 (pow.f64 (cbrt.f64 re) 2) (cbrt.f64 re) (hypot.f64 re im))
(+.f64 re (hypot.f64 re im))
(fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) re)
(+.f64 re (hypot.f64 re im))
(fma.f64 (sqrt.f64 re) (sqrt.f64 re) (hypot.f64 re im))
(+.f64 re (hypot.f64 re im))
(+.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1))
(*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2))
(+.f64 1 (*.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1) 1))
(+.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1))
(*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2))
(+.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 0)
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(+.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) -1)
(+.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1))
(*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2))
(+.f64 0 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(+.f64 -1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1))
(+.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1))
(*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2))
(+.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1) 1)
(+.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1))
(*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))))
(*.f64 3 (log.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))))
(*.f64 (log.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) 3)
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))))
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(-.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 1)
(+.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1))
(*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2))
(-.f64 (/.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 3) (+.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 2) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2))) (/.f64 1 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 2) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2))))
(+.f64 (/.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 3) (+.f64 1 (*.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2)))) (/.f64 -1 (+.f64 1 (*.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2)))))
(-.f64 (/.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 2) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2)) (/.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2)))
(+.f64 (/.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 2) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2)) (/.f64 -1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2)))
(*.f64 1 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(*.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 1)
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(*.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/6))
(pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/6) 3)
(*.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/6) (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))
(*.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/6))
(pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/6) 3)
(*.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4))
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2))
(+.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1))
(*.f64 (sqrt.f64 2) (sqrt.f64 (+.f64 re (hypot.f64 re im))))
(+.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1))
(*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2))
(*.f64 (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (/.f64 1 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 2) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2))))
(/.f64 (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (+.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 2) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2)))
(/.f64 (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (+.f64 1 (*.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2))))
(*.f64 (expm1.f64 (*.f64 2 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (/.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2)))
(/.f64 (expm1.f64 (*.f64 2 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2))
(*.f64 (pow.f64 1 1/2) (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(*.f64 (+.f64 (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)) 1) (-.f64 (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)) 1))
(*.f64 (+.f64 1 (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4))) (+.f64 (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)) -1))
(fma.f64 (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)) (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)) -1)
(/.f64 1 (/.f64 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 2) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2)) (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))))
(*.f64 (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (/.f64 1 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 2) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2))))
(/.f64 (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (+.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 2) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2)))
(/.f64 (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (+.f64 1 (*.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2))))
(/.f64 1 (/.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2) (expm1.f64 (*.f64 2 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))))
(*.f64 (expm1.f64 (*.f64 2 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (/.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2)))
(/.f64 (expm1.f64 (*.f64 2 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2))
(/.f64 (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (+.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 2) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2)))
(*.f64 (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (/.f64 1 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 2) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2))))
(/.f64 (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (+.f64 1 (*.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2))))
(/.f64 (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (+.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 2) (-.f64 1 (*.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) -1))))
(*.f64 (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (/.f64 1 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 2) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2))))
(/.f64 (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (+.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 2) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2)))
(/.f64 (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (+.f64 1 (*.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2))))
(/.f64 (expm1.f64 (*.f64 2 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2))
(*.f64 (expm1.f64 (*.f64 2 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (/.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2)))
(/.f64 (neg.f64 (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))) (neg.f64 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 2) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2))))
(*.f64 (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (/.f64 1 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 2) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2))))
(/.f64 (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (+.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 2) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2)))
(/.f64 (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (+.f64 1 (*.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2))))
(/.f64 (neg.f64 (expm1.f64 (*.f64 2 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))) (neg.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2)))
(*.f64 (expm1.f64 (*.f64 2 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (/.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2)))
(/.f64 (expm1.f64 (*.f64 2 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2))
(/.f64 (+.f64 1 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1) 3)) (+.f64 1 (-.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1) 2) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1))))
(/.f64 (+.f64 1 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1) 3)) (+.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1) 2) (-.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1))))
(/.f64 (+.f64 1 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1) 3)) (fma.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1) (+.f64 (*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2)) -2) 1))
(/.f64 (-.f64 1 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1) 2)) (-.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1)))
(/.f64 (-.f64 1 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1) 2)) (-.f64 2 (*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2))))
(pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/2)
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(pow.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 1)
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(pow.f64 (*.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 2) 4) 1/4)
(pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 3) 1/6)
(pow.f64 (*.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 3) 8) 1/6)
(pow.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 3/2)
(pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/6) 3)
(*.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/6))
(pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) 2)
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 3/2) 1/3)
(cbrt.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 3/2))
(pow.f64 (/.f64 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 2) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2)) (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))) -1)
(*.f64 (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (/.f64 1 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 2) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2))))
(/.f64 (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (+.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 2) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2)))
(/.f64 (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (+.f64 1 (*.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2))))
(pow.f64 (/.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2) (expm1.f64 (*.f64 2 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))) -1)
(*.f64 (expm1.f64 (*.f64 2 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (/.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2)))
(/.f64 (expm1.f64 (*.f64 2 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2))
(fabs.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(log.f64 (exp.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(log.f64 (+.f64 1 (expm1.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(cbrt.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 3/2))
(hypot.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) (sqrt.f64 (-.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))
(expm1.f64 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(expm1.f64 (*.f64 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))) 1))
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(log1p.f64 (expm1.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(exp.f64 (log.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(exp.f64 (*.f64 (log.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 1/2))
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))) 1))
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(fma.f64 1 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 0)
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(fma.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) -1)
(+.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1))
(*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2))
(fma.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1) 1)
(+.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1))
(*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2))
(fma.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 1 0)
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(fma.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 1 -1)
(+.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1))
(*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2))
(fma.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/6) 0)
(*.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/6))
(pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/6) 3)
(fma.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/6) (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 0)
(*.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/6))
(pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/6) 3)
(fma.f64 (cbrt.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1)) (pow.f64 (cbrt.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1)) 2) -1)
(+.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1))
(*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2))
(fma.f64 (pow.f64 (cbrt.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1)) 2) (cbrt.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1)) -1)
(+.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1))
(*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2))
(fma.f64 (pow.f64 (cbrt.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1)) 2) (*.f64 (cbrt.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1)) 1) -1)
(+.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1))
(*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2))
(fma.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) 0)
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 0)
(+.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1))
(*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2))
(fma.f64 (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)) (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)) -1)
(*.f64 (+.f64 1 (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4))) (+.f64 (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)) -1))
(fma.f64 (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)) (*.f64 (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)) 1) -1)
(*.f64 (+.f64 1 (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4))) (+.f64 (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)) -1))
(fma.f64 (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)) (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)) -1)
(fma.f64 (sqrt.f64 2) (sqrt.f64 (+.f64 re (hypot.f64 re im))) 0)
(+.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1))
(*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2))
(fma.f64 (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (/.f64 1 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 2) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2))) 0)
(*.f64 (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (/.f64 1 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 2) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2))))
(/.f64 (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (+.f64 (pow.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) 2) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2)))
(/.f64 (expm1.f64 (*.f64 3 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (+.f64 1 (*.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 1) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2))))
(fma.f64 (+.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 3/2)) (/.f64 1 (-.f64 (+.f64 1 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))) -1)
(fma.f64 (+.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 3/2)) (/.f64 1 (+.f64 1 (-.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) -1)
(fma.f64 (+.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 3/2)) (/.f64 1 (-.f64 (fma.f64 (+.f64 re (hypot.f64 re im)) 2 1) (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))) -1)
(+.f64 -1 (/.f64 (+.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 3/2)) (-.f64 (fma.f64 (+.f64 re (hypot.f64 re im)) 2 1) (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))
(fma.f64 (expm1.f64 (*.f64 2 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (/.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2)) 0)
(*.f64 (expm1.f64 (*.f64 2 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (/.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2)))
(/.f64 (expm1.f64 (*.f64 2 (log1p.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))))) (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) 2))
(fma.f64 (+.f64 1 (*.f64 -2 (+.f64 re (hypot.f64 re im)))) (/.f64 1 (-.f64 1 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))) -1)
(fma.f64 (+.f64 1 (*.f64 (+.f64 re (hypot.f64 re im)) -2)) (/.f64 1 (-.f64 1 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))) -1)
(fma.f64 (fma.f64 (+.f64 re (hypot.f64 re im)) -2 1) (/.f64 1 (-.f64 1 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))) -1)
(+.f64 -1 (/.f64 (fma.f64 (+.f64 re (hypot.f64 re im)) -2 1) (-.f64 1 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))
(fma.f64 (pow.f64 (cbrt.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1)) 2) (cbrt.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1)) 1)
(+.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1))
(*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2))
(fma.f64 (sqrt.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1)) (sqrt.f64 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1)) 1)
(+.f64 1 (fma.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2) -1))
(*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2))
(fma.f64 (pow.f64 1 1/2) (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 0)
(sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))
(fma.f64 (+.f64 (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)) 1) (-.f64 (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)) 1) 0)
(*.f64 (+.f64 1 (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4))) (+.f64 (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)) -1))
(fma.f64 (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)) (hypot.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)) -1)
(fma.f64 (+.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) 1) (-.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) 1) 1)
(fma.f64 (+.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)) (+.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) -1) 1)
(fma.f64 (+.f64 1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)) (+.f64 -1 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)) 1)

localize69.0ms (0.8%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(-.f64 (hypot.f64 re im) re)
0.6b
(cbrt.f64 re)
2.7b
(pow.f64 re 2/3)
26.8b
(fma.f64 (neg.f64 (cbrt.f64 re)) (pow.f64 re 2/3) re)
Compiler

Compiled 97 to 40 computations (58.8% saved)

series63.0ms (0.7%)

Counts
2 → 0
Calls

6 calls:

TimeVariablePointExpression
26.0ms
re
@0
(pow.f64 re 2/3)
9.0ms
re
@-inf
(pow.f64 re 2/3)
6.0ms
re
@inf
(pow.f64 re 2/3)
1.0ms
re
@-inf
(fma.f64 (neg.f64 (cbrt.f64 re)) (pow.f64 re 2/3) re)
1.0ms
re
@0
(fma.f64 (neg.f64 (cbrt.f64 re)) (pow.f64 re 2/3) re)
Compiler

Compiled 1945 to 1565 computations (19.5% saved)

rewrite39.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
514×pow1_binary64
501×add-sqr-sqrt_binary64
482×add-log-exp_binary64
481×log1p-expm1-u_binary64
481×expm1-log1p-u_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0724
114610
2167610
Stop Event
node limit
Counts
2 → 40
Calls
Call 1
Inputs
(fma.f64 (neg.f64 (cbrt.f64 re)) (pow.f64 re 2/3) re)
(pow.f64 re 2/3)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 re re)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (+.f64 re re)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 re re) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 re re))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 re re)) (pow.f64 (cbrt.f64 (+.f64 re re)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 re re)) 2) (cbrt.f64 (+.f64 re re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 re re)) (sqrt.f64 (+.f64 re re)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 re 3) (pow.f64 re 3)) (+.f64 (*.f64 re re) (-.f64 (*.f64 re re) (*.f64 re re))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 re re) (*.f64 re re)) (-.f64 re re))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 re re) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 re re) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 re re)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 re re)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 re re) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (+.f64 re re)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 re re) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 re re)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 re re)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (+.f64 re re)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (cbrt.f64 (*.f64 re re))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 re) (cbrt.f64 re))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 re re)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (cbrt.f64 (*.f64 re re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 re)) 2) (cbrt.f64 (*.f64 re (cbrt.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 re)) 2) (*.f64 (cbrt.f64 (cbrt.f64 re)) (cbrt.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 re (cbrt.f64 re))) (pow.f64 (cbrt.f64 (cbrt.f64 re)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 re 1/6) (*.f64 (pow.f64 re 1/6) (cbrt.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 re) (pow.f64 re 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (cbrt.f64 (*.f64 re re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 re re)) 2/3) (pow.f64 (cbrt.f64 re) 2/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 2/3) (cbrt.f64 (*.f64 re re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 re) 2/3) (pow.f64 (sqrt.f64 re) 2/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 re) (pow.f64 (cbrt.f64 (cbrt.f64 re)) 2)) (cbrt.f64 (cbrt.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (cbrt.f64 (*.f64 re re)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 re (cbrt.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (cbrt.f64 (*.f64 re re))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 re re))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (cbrt.f64 (*.f64 re re))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (cbrt.f64 (*.f64 re re))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 2/3 (log.f64 re)))))))

simplify12.0ms (0.1%)

Algorithm
egg-herbie
Rules
32×associate-*r*_binary64
31×associate-*l*_binary64
27×sqr-pow_binary64
19×fma-def_binary64
14×*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
085165
1193165
2731165
Stop Event
unsound
Counts
40 → 41
Calls
Call 1
Inputs
(+.f64 re re)
(-.f64 (+.f64 1 (+.f64 re re)) 1)
(*.f64 (+.f64 re re) 1)
(*.f64 1 (+.f64 re re))
(*.f64 (cbrt.f64 (+.f64 re re)) (pow.f64 (cbrt.f64 (+.f64 re re)) 2))
(*.f64 (pow.f64 (cbrt.f64 (+.f64 re re)) 2) (cbrt.f64 (+.f64 re re)))
(*.f64 (sqrt.f64 (+.f64 re re)) (sqrt.f64 (+.f64 re re)))
(/.f64 (+.f64 (pow.f64 re 3) (pow.f64 re 3)) (+.f64 (*.f64 re re) (-.f64 (*.f64 re re) (*.f64 re re))))
(/.f64 (-.f64 (*.f64 re re) (*.f64 re re)) (-.f64 re re))
(pow.f64 (+.f64 re re) 1)
(pow.f64 (pow.f64 (+.f64 re re) 3) 1/3)
(pow.f64 (cbrt.f64 (+.f64 re re)) 3)
(pow.f64 (sqrt.f64 (+.f64 re re)) 2)
(sqrt.f64 (pow.f64 (+.f64 re re) 2))
(log.f64 (exp.f64 (+.f64 re re)))
(cbrt.f64 (pow.f64 (+.f64 re re) 3))
(expm1.f64 (log1p.f64 (+.f64 re re)))
(log1p.f64 (expm1.f64 (+.f64 re re)))
(exp.f64 (log.f64 (+.f64 re re)))
(-.f64 (+.f64 1 (cbrt.f64 (*.f64 re re))) 1)
(*.f64 (cbrt.f64 re) (cbrt.f64 re))
(*.f64 (cbrt.f64 (*.f64 re re)) 1)
(*.f64 1 (cbrt.f64 (*.f64 re re)))
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 re)) 2) (cbrt.f64 (*.f64 re (cbrt.f64 re))))
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 re)) 2) (*.f64 (cbrt.f64 (cbrt.f64 re)) (cbrt.f64 re)))
(*.f64 (cbrt.f64 (*.f64 re (cbrt.f64 re))) (pow.f64 (cbrt.f64 (cbrt.f64 re)) 2))
(*.f64 (pow.f64 re 1/6) (*.f64 (pow.f64 re 1/6) (cbrt.f64 re)))
(*.f64 (sqrt.f64 re) (pow.f64 re 1/6))
(*.f64 -1 (cbrt.f64 (*.f64 re re)))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 re re)) 2/3) (pow.f64 (cbrt.f64 re) 2/3))
(*.f64 (pow.f64 1 2/3) (cbrt.f64 (*.f64 re re)))
(*.f64 (pow.f64 (sqrt.f64 re) 2/3) (pow.f64 (sqrt.f64 re) 2/3))
(*.f64 (*.f64 (cbrt.f64 re) (pow.f64 (cbrt.f64 (cbrt.f64 re)) 2)) (cbrt.f64 (cbrt.f64 re)))
(neg.f64 (cbrt.f64 (*.f64 re re)))
(sqrt.f64 (*.f64 re (cbrt.f64 re)))
(log.f64 (exp.f64 (cbrt.f64 (*.f64 re re))))
(cbrt.f64 (*.f64 re re))
(expm1.f64 (log1p.f64 (cbrt.f64 (*.f64 re re))))
(log1p.f64 (expm1.f64 (cbrt.f64 (*.f64 re re))))
(exp.f64 (*.f64 2/3 (log.f64 re)))
Outputs
(+.f64 re re)
(-.f64 (+.f64 1 (+.f64 re re)) 1)
(+.f64 re re)
(*.f64 (+.f64 re re) 1)
(+.f64 re re)
(*.f64 1 (+.f64 re re))
(+.f64 re re)
(*.f64 (cbrt.f64 (+.f64 re re)) (pow.f64 (cbrt.f64 (+.f64 re re)) 2))
(+.f64 re re)
(*.f64 (pow.f64 (cbrt.f64 (+.f64 re re)) 2) (cbrt.f64 (+.f64 re re)))
(+.f64 re re)
(*.f64 (sqrt.f64 (+.f64 re re)) (sqrt.f64 (+.f64 re re)))
(+.f64 re re)
(/.f64 (+.f64 (pow.f64 re 3) (pow.f64 re 3)) (+.f64 (*.f64 re re) (-.f64 (*.f64 re re) (*.f64 re re))))
(+.f64 re re)
(/.f64 (-.f64 (*.f64 re re) (*.f64 re re)) (-.f64 re re))
(+.f64 re re)
(pow.f64 (+.f64 re re) 1)
(+.f64 re re)
(pow.f64 (pow.f64 (+.f64 re re) 3) 1/3)
(+.f64 re re)
(pow.f64 (cbrt.f64 (+.f64 re re)) 3)
(+.f64 re re)
(pow.f64 (sqrt.f64 (+.f64 re re)) 2)
(+.f64 re re)
(sqrt.f64 (pow.f64 (+.f64 re re) 2))
(+.f64 re re)
(log.f64 (exp.f64 (+.f64 re re)))
(+.f64 re re)
(cbrt.f64 (pow.f64 (+.f64 re re) 3))
(+.f64 re re)
(expm1.f64 (log1p.f64 (+.f64 re re)))
(+.f64 re re)
(log1p.f64 (expm1.f64 (+.f64 re re)))
(+.f64 re re)
(exp.f64 (log.f64 (+.f64 re re)))
(+.f64 re re)
(-.f64 (+.f64 1 (cbrt.f64 (*.f64 re re))) 1)
(+.f64 re re)
(*.f64 (cbrt.f64 re) (cbrt.f64 re))
(+.f64 re re)
(*.f64 (cbrt.f64 (*.f64 re re)) 1)
(+.f64 re re)
(*.f64 1 (cbrt.f64 (*.f64 re re)))
(+.f64 re re)
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 re)) 2) (cbrt.f64 (*.f64 re (cbrt.f64 re))))
(+.f64 re re)
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 re)) 2) (*.f64 (cbrt.f64 (cbrt.f64 re)) (cbrt.f64 re)))
(+.f64 re re)
(*.f64 (cbrt.f64 (*.f64 re (cbrt.f64 re))) (pow.f64 (cbrt.f64 (cbrt.f64 re)) 2))
(+.f64 re re)
(*.f64 (pow.f64 re 1/6) (*.f64 (pow.f64 re 1/6) (cbrt.f64 re)))
(+.f64 re re)
(*.f64 (sqrt.f64 re) (pow.f64 re 1/6))
(*.f64 (pow.f64 re 1/6) (sqrt.f64 re))
(*.f64 -1 (cbrt.f64 (*.f64 re re)))
(+.f64 re re)
(*.f64 (pow.f64 (cbrt.f64 (*.f64 re re)) 2/3) (pow.f64 (cbrt.f64 re) 2/3))
(+.f64 re re)
(*.f64 (pow.f64 1 2/3) (cbrt.f64 (*.f64 re re)))
(+.f64 re re)
(*.f64 (pow.f64 (sqrt.f64 re) 2/3) (pow.f64 (sqrt.f64 re) 2/3))
(+.f64 re re)
(*.f64 (*.f64 (cbrt.f64 re) (pow.f64 (cbrt.f64 (cbrt.f64 re)) 2)) (cbrt.f64 (cbrt.f64 re)))
(+.f64 re re)
(neg.f64 (cbrt.f64 (*.f64 re re)))
(+.f64 re re)
(sqrt.f64 (*.f64 re (cbrt.f64 re)))
(+.f64 re re)
(log.f64 (exp.f64 (cbrt.f64 (*.f64 re re))))
(+.f64 re re)
(cbrt.f64 (*.f64 re re))
(+.f64 re re)
(expm1.f64 (log1p.f64 (cbrt.f64 (*.f64 re re))))
(+.f64 re re)
(log1p.f64 (expm1.f64 (cbrt.f64 (*.f64 re re))))
(+.f64 re re)
(exp.f64 (*.f64 2/3 (log.f64 re)))
(+.f64 re re)

localize36.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.5b
(cbrt.f64 (hypot.f64 re im))
0.5b
(pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)
15.4b
(fma.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (cbrt.f64 (hypot.f64 re im)) (neg.f64 re))
27.0b
(fma.f64 (neg.f64 (sqrt.f64 re)) (sqrt.f64 re) re)
Compiler

Compiled 140 to 41 computations (70.7% saved)

localize137.0ms (1.6%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(pow.f64 (pow.f64 re 1/4) 3)
0.6b
(cbrt.f64 re)
27.0b
(fma.f64 (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3))))
27.4b
(fma.f64 (neg.f64 (pow.f64 re 1/4)) (pow.f64 (pow.f64 re 1/4) 3) (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3)))
Compiler

Compiled 326 to 199 computations (39% saved)

series107.0ms (1.2%)

Counts
3 → 0
Calls

9 calls:

TimeVariablePointExpression
17.0ms
re
@inf
(fma.f64 (neg.f64 (pow.f64 re 1/4)) (pow.f64 (pow.f64 re 1/4) 3) (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3)))
2.0ms
re
@-inf
(fma.f64 (neg.f64 (pow.f64 re 1/4)) (pow.f64 (pow.f64 re 1/4) 3) (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3)))
2.0ms
re
@0
(fma.f64 (neg.f64 (pow.f64 re 1/4)) (pow.f64 (pow.f64 re 1/4) 3) (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3)))
1.0ms
re
@-inf
(fma.f64 (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3))))
1.0ms
re
@inf
(fma.f64 (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3))))
Compiler

Compiled 6330 to 5365 computations (15.2% saved)

rewrite59.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
931×pow1_binary64
876×add-log-exp_binary64
875×log1p-expm1-u_binary64
875×expm1-log1p-u_binary64
147×add-sqr-sqrt_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify60.0ms (0.7%)

Algorithm
egg-herbie
Rules
307×associate-/r*_binary64
281×associate-/l*_binary64
219×*-commutative_binary64
208×log-prod_binary64
193×distribute-rgt-out_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0116421
1257416
2898416
33453404
47817404
Stop Event
node limit
Counts
82 → 71
Calls
Call 1
Inputs
(+.f64 re re)
(-.f64 re re)
(-.f64 0 (+.f64 re re))
(-.f64 (exp.f64 (log1p.f64 (+.f64 re re))) 1)
(-.f64 (+.f64 re 0) re)
(*.f64 (pow.f64 re 1/4) (+.f64 (pow.f64 re 3/4) (pow.f64 re 3/4)))
(*.f64 (pow.f64 re 3/4) (+.f64 (pow.f64 re 1/4) (pow.f64 re 1/4)))
(*.f64 re 0)
(*.f64 (+.f64 re re) 1)
(*.f64 1 (+.f64 re re))
(*.f64 (cbrt.f64 (+.f64 re re)) (pow.f64 (cbrt.f64 (+.f64 re re)) 2))
(*.f64 (pow.f64 (cbrt.f64 (+.f64 re re)) 2) (cbrt.f64 (+.f64 re re)))
(*.f64 (sqrt.f64 (+.f64 re re)) (sqrt.f64 (+.f64 re re)))
(*.f64 0 re)
(/.f64 (+.f64 (pow.f64 re 3) (pow.f64 re 3)) (+.f64 (*.f64 re re) (-.f64 (*.f64 re re) (*.f64 re re))))
(/.f64 (-.f64 (*.f64 re re) (*.f64 re re)) (+.f64 re re))
(pow.f64 (+.f64 re re) 1)
(pow.f64 (pow.f64 (+.f64 re re) 3) 1/3)
(pow.f64 (cbrt.f64 (+.f64 re re)) 3)
(pow.f64 (sqrt.f64 (+.f64 re re)) 2)
(sqrt.f64 (pow.f64 (+.f64 re re) 2))
(log.f64 (exp.f64 (+.f64 re re)))
(log.f64 (+.f64 1 (expm1.f64 (+.f64 re re))))
(cbrt.f64 (pow.f64 (+.f64 re re) 3))
(expm1.f64 (log1p.f64 (+.f64 re re)))
(log1p.f64 (expm1.f64 (+.f64 re re)))
(exp.f64 (log.f64 (+.f64 re re)))
(+.f64 re re)
(-.f64 re re)
(-.f64 0 (+.f64 re re))
(-.f64 (exp.f64 (log1p.f64 (+.f64 re re))) 1)
(-.f64 (+.f64 re 0) re)
(*.f64 (pow.f64 re 1/4) (+.f64 (pow.f64 re 3/4) (pow.f64 re 3/4)))
(*.f64 (pow.f64 re 3/4) (+.f64 (pow.f64 re 1/4) (pow.f64 re 1/4)))
(*.f64 re 0)
(*.f64 (+.f64 re re) 1)
(*.f64 1 (+.f64 re re))
(*.f64 (cbrt.f64 (+.f64 re re)) (pow.f64 (cbrt.f64 (+.f64 re re)) 2))
(*.f64 (pow.f64 (cbrt.f64 (+.f64 re re)) 2) (cbrt.f64 (+.f64 re re)))
(*.f64 (sqrt.f64 (+.f64 re re)) (sqrt.f64 (+.f64 re re)))
(*.f64 0 re)
(/.f64 (+.f64 (pow.f64 re 3) (pow.f64 re 3)) (+.f64 (*.f64 re re) (-.f64 (*.f64 re re) (*.f64 re re))))
(/.f64 (-.f64 (*.f64 re re) (*.f64 re re)) (+.f64 re re))
(pow.f64 (+.f64 re re) 1)
(pow.f64 (pow.f64 (+.f64 re re) 3) 1/3)
(pow.f64 (cbrt.f64 (+.f64 re re)) 3)
(pow.f64 (sqrt.f64 (+.f64 re re)) 2)
(sqrt.f64 (pow.f64 (+.f64 re re) 2))
(log.f64 (exp.f64 (+.f64 re re)))
(log.f64 (+.f64 1 (expm1.f64 (+.f64 re re))))
(cbrt.f64 (pow.f64 (+.f64 re re) 3))
(expm1.f64 (log1p.f64 (+.f64 re re)))
(log1p.f64 (expm1.f64 (+.f64 re re)))
(exp.f64 (log.f64 (+.f64 re re)))
(-.f64 0 (pow.f64 re 3/4))
(-.f64 (exp.f64 (log1p.f64 (pow.f64 re 3/4))) 1)
(*.f64 (pow.f64 re 1/4) (sqrt.f64 re))
(*.f64 (pow.f64 re 3/4) 1)
(*.f64 (sqrt.f64 re) (pow.f64 re 1/4))
(*.f64 1 (pow.f64 re 3/4))
(*.f64 (pow.f64 (cbrt.f64 re) 2) (cbrt.f64 (pow.f64 re 1/4)))
(*.f64 (pow.f64 re 1/6) (*.f64 (cbrt.f64 (pow.f64 re 1/4)) (sqrt.f64 re)))
(*.f64 (pow.f64 re 1/8) (*.f64 (pow.f64 re 1/8) (sqrt.f64 re)))
(*.f64 -1 (pow.f64 re 3/4))
(*.f64 (pow.f64 re 3/8) (pow.f64 re 3/8))
(*.f64 (pow.f64 re 3/8) (neg.f64 (pow.f64 re 3/8)))
(*.f64 (pow.f64 (sqrt.f64 re) 3/4) (pow.f64 (sqrt.f64 re) 3/4))
(*.f64 (pow.f64 1 3/4) (pow.f64 re 3/4))
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 re) 2) 3/4) (pow.f64 (cbrt.f64 re) 3/4))
(*.f64 (pow.f64 (pow.f64 re 1/8) 3) (pow.f64 (pow.f64 re 1/8) 3))
(*.f64 (neg.f64 (pow.f64 re 3/8)) (pow.f64 re 3/8))
(*.f64 (*.f64 (sqrt.f64 re) -1) (pow.f64 re 1/4))
(*.f64 (*.f64 (sqrt.f64 re) (pow.f64 re 1/8)) (pow.f64 re 1/8))
(neg.f64 (pow.f64 re 3/4))
(sqrt.f64 (pow.f64 re 3/2))
(log.f64 (exp.f64 (pow.f64 re 3/4)))
(log.f64 (+.f64 1 (expm1.f64 (pow.f64 re 3/4))))
(log.f64 (/.f64 1 (exp.f64 (pow.f64 re 3/4))))
(cbrt.f64 (pow.f64 (pow.f64 re 3/4) 3))
(expm1.f64 (log1p.f64 (pow.f64 re 3/4)))
(log1p.f64 (expm1.f64 (pow.f64 re 3/4)))
(exp.f64 (log.f64 (pow.f64 re 3/4)))
Outputs
(+.f64 re re)
(-.f64 re re)
0
(-.f64 0 (+.f64 re re))
(neg.f64 (+.f64 re re))
(*.f64 -2 re)
(*.f64 re -2)
(-.f64 (exp.f64 (log1p.f64 (+.f64 re re))) 1)
(+.f64 re re)
(-.f64 (+.f64 re 0) re)
0
(*.f64 (pow.f64 re 1/4) (+.f64 (pow.f64 re 3/4) (pow.f64 re 3/4)))
(*.f64 (pow.f64 re 1/4) (*.f64 2 (pow.f64 re 3/4)))
(*.f64 (pow.f64 re 3/4) (*.f64 (pow.f64 re 1/4) 2))
(*.f64 (pow.f64 re 1/4) (*.f64 (pow.f64 re 3/4) 2))
(*.f64 (pow.f64 re 3/4) (+.f64 (pow.f64 re 1/4) (pow.f64 re 1/4)))
(*.f64 (pow.f64 re 1/4) (*.f64 2 (pow.f64 re 3/4)))
(*.f64 (pow.f64 re 3/4) (*.f64 (pow.f64 re 1/4) 2))
(*.f64 (pow.f64 re 1/4) (*.f64 (pow.f64 re 3/4) 2))
(*.f64 re 0)
0
(*.f64 (+.f64 re re) 1)
(+.f64 re re)
(*.f64 1 (+.f64 re re))
(+.f64 re re)
(*.f64 (cbrt.f64 (+.f64 re re)) (pow.f64 (cbrt.f64 (+.f64 re re)) 2))
(+.f64 re re)
(*.f64 (pow.f64 (cbrt.f64 (+.f64 re re)) 2) (cbrt.f64 (+.f64 re re)))
(+.f64 re re)
(*.f64 (sqrt.f64 (+.f64 re re)) (sqrt.f64 (+.f64 re re)))
(+.f64 re re)
(*.f64 0 re)
0
(/.f64 (+.f64 (pow.f64 re 3) (pow.f64 re 3)) (+.f64 (*.f64 re re) (-.f64 (*.f64 re re) (*.f64 re re))))
(+.f64 re re)
(/.f64 (-.f64 (*.f64 re re) (*.f64 re re)) (+.f64 re re))
0
(pow.f64 (+.f64 re re) 1)
(+.f64 re re)
(pow.f64 (pow.f64 (+.f64 re re) 3) 1/3)
(+.f64 re re)
(pow.f64 (cbrt.f64 (+.f64 re re)) 3)
(+.f64 re re)
(pow.f64 (sqrt.f64 (+.f64 re re)) 2)
(+.f64 re re)
(sqrt.f64 (pow.f64 (+.f64 re re) 2))
(+.f64 re re)
(log.f64 (exp.f64 (+.f64 re re)))
(+.f64 re re)
(log.f64 (+.f64 1 (expm1.f64 (+.f64 re re))))
(+.f64 re re)
(cbrt.f64 (pow.f64 (+.f64 re re) 3))
(+.f64 re re)
(expm1.f64 (log1p.f64 (+.f64 re re)))
(+.f64 re re)
(log1p.f64 (expm1.f64 (+.f64 re re)))
(+.f64 re re)
(exp.f64 (log.f64 (+.f64 re re)))
(+.f64 re re)
(+.f64 re re)
(-.f64 re re)
0
(-.f64 0 (+.f64 re re))
(neg.f64 (+.f64 re re))
(*.f64 -2 re)
(*.f64 re -2)
(-.f64 (exp.f64 (log1p.f64 (+.f64 re re))) 1)
(+.f64 re re)
(-.f64 (+.f64 re 0) re)
0
(*.f64 (pow.f64 re 1/4) (+.f64 (pow.f64 re 3/4) (pow.f64 re 3/4)))
(*.f64 (pow.f64 re 1/4) (*.f64 2 (pow.f64 re 3/4)))
(*.f64 (pow.f64 re 3/4) (*.f64 (pow.f64 re 1/4) 2))
(*.f64 (pow.f64 re 1/4) (*.f64 (pow.f64 re 3/4) 2))
(*.f64 (pow.f64 re 3/4) (+.f64 (pow.f64 re 1/4) (pow.f64 re 1/4)))
(*.f64 (pow.f64 re 1/4) (*.f64 2 (pow.f64 re 3/4)))
(*.f64 (pow.f64 re 3/4) (*.f64 (pow.f64 re 1/4) 2))
(*.f64 (pow.f64 re 1/4) (*.f64 (pow.f64 re 3/4) 2))
(*.f64 re 0)
0
(*.f64 (+.f64 re re) 1)
(+.f64 re re)
(*.f64 1 (+.f64 re re))
(+.f64 re re)
(*.f64 (cbrt.f64 (+.f64 re re)) (pow.f64 (cbrt.f64 (+.f64 re re)) 2))
(+.f64 re re)
(*.f64 (pow.f64 (cbrt.f64 (+.f64 re re)) 2) (cbrt.f64 (+.f64 re re)))
(+.f64 re re)
(*.f64 (sqrt.f64 (+.f64 re re)) (sqrt.f64 (+.f64 re re)))
(+.f64 re re)
(*.f64 0 re)
0
(/.f64 (+.f64 (pow.f64 re 3) (pow.f64 re 3)) (+.f64 (*.f64 re re) (-.f64 (*.f64 re re) (*.f64 re re))))
(+.f64 re re)
(/.f64 (-.f64 (*.f64 re re) (*.f64 re re)) (+.f64 re re))
0
(pow.f64 (+.f64 re re) 1)
(+.f64 re re)
(pow.f64 (pow.f64 (+.f64 re re) 3) 1/3)
(+.f64 re re)
(pow.f64 (cbrt.f64 (+.f64 re re)) 3)
(+.f64 re re)
(pow.f64 (sqrt.f64 (+.f64 re re)) 2)
(+.f64 re re)
(sqrt.f64 (pow.f64 (+.f64 re re) 2))
(+.f64 re re)
(log.f64 (exp.f64 (+.f64 re re)))
(+.f64 re re)
(log.f64 (+.f64 1 (expm1.f64 (+.f64 re re))))
(+.f64 re re)
(cbrt.f64 (pow.f64 (+.f64 re re) 3))
(+.f64 re re)
(expm1.f64 (log1p.f64 (+.f64 re re)))
(+.f64 re re)
(log1p.f64 (expm1.f64 (+.f64 re re)))
(+.f64 re re)
(exp.f64 (log.f64 (+.f64 re re)))
(+.f64 re re)
(-.f64 0 (pow.f64 re 3/4))
(neg.f64 (pow.f64 re 3/4))
(-.f64 (exp.f64 (log1p.f64 (pow.f64 re 3/4))) 1)
(pow.f64 re 3/4)
(*.f64 (pow.f64 re 1/4) (sqrt.f64 re))
(pow.f64 (pow.f64 re 1/4) 3)
(*.f64 (pow.f64 re 3/4) 1)
(pow.f64 re 3/4)
(*.f64 (sqrt.f64 re) (pow.f64 re 1/4))
(*.f64 (pow.f64 re 1/4) (sqrt.f64 re))
(pow.f64 (pow.f64 re 1/4) 3)
(*.f64 1 (pow.f64 re 3/4))
(pow.f64 re 3/4)
(*.f64 (pow.f64 (cbrt.f64 re) 2) (cbrt.f64 (pow.f64 re 1/4)))
(*.f64 (pow.f64 re 1/6) (*.f64 (cbrt.f64 (pow.f64 re 1/4)) (sqrt.f64 re)))
(*.f64 (pow.f64 re 1/6) (*.f64 (sqrt.f64 re) (cbrt.f64 (pow.f64 re 1/4))))
(*.f64 (cbrt.f64 (pow.f64 re 1/4)) (*.f64 (sqrt.f64 re) (pow.f64 re 1/6)))
(*.f64 (pow.f64 re 1/8) (*.f64 (pow.f64 re 1/8) (sqrt.f64 re)))
(*.f64 (pow.f64 re 1/4) (sqrt.f64 re))
(pow.f64 (pow.f64 re 1/4) 3)
(*.f64 -1 (pow.f64 re 3/4))
(neg.f64 (pow.f64 re 3/4))
(*.f64 (pow.f64 re 3/8) (pow.f64 re 3/8))
(pow.f64 re 3/4)
(*.f64 (pow.f64 re 3/8) (neg.f64 (pow.f64 re 3/8)))
(neg.f64 (pow.f64 re 3/4))
(*.f64 (pow.f64 (sqrt.f64 re) 3/4) (pow.f64 (sqrt.f64 re) 3/4))
(pow.f64 (sqrt.f64 re) 3/2)
(*.f64 (pow.f64 1 3/4) (pow.f64 re 3/4))
(pow.f64 re 3/4)
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 re) 2) 3/4) (pow.f64 (cbrt.f64 re) 3/4))
(*.f64 (pow.f64 (pow.f64 re 1/8) 3) (pow.f64 (pow.f64 re 1/8) 3))
(*.f64 (pow.f64 re 1/4) (sqrt.f64 re))
(pow.f64 (pow.f64 re 1/4) 3)
(*.f64 (neg.f64 (pow.f64 re 3/8)) (pow.f64 re 3/8))
(neg.f64 (pow.f64 re 3/4))
(*.f64 (*.f64 (sqrt.f64 re) -1) (pow.f64 re 1/4))
(*.f64 (sqrt.f64 re) (*.f64 -1 (pow.f64 re 1/4)))
(*.f64 (sqrt.f64 re) (neg.f64 (pow.f64 re 1/4)))
(*.f64 (pow.f64 re 1/4) (neg.f64 (sqrt.f64 re)))
(neg.f64 (pow.f64 (pow.f64 re 1/4) 3))
(*.f64 (*.f64 (sqrt.f64 re) (pow.f64 re 1/8)) (pow.f64 re 1/8))
(*.f64 (pow.f64 re 1/4) (sqrt.f64 re))
(pow.f64 (pow.f64 re 1/4) 3)
(neg.f64 (pow.f64 re 3/4))
(sqrt.f64 (pow.f64 re 3/2))
(pow.f64 re 3/4)
(log.f64 (exp.f64 (pow.f64 re 3/4)))
(pow.f64 re 3/4)
(log.f64 (+.f64 1 (expm1.f64 (pow.f64 re 3/4))))
(pow.f64 re 3/4)
(log.f64 (/.f64 1 (exp.f64 (pow.f64 re 3/4))))
(neg.f64 (pow.f64 re 3/4))
(cbrt.f64 (pow.f64 (pow.f64 re 3/4) 3))
(pow.f64 re 3/4)
(expm1.f64 (log1p.f64 (pow.f64 re 3/4)))
(pow.f64 re 3/4)
(log1p.f64 (expm1.f64 (pow.f64 re 3/4)))
(pow.f64 re 3/4)
(exp.f64 (log.f64 (pow.f64 re 3/4)))
(pow.f64 re 3/4)

eval439.0ms (5.1%)

Compiler

Compiled 28138 to 14427 computations (48.7% saved)

prune334.0ms (3.9%)

Pruning

60 alts after pruning (46 fresh and 14 done)

PrunedKeptTotal
New80020820
Fresh92635
Picked011
Done11314
Total81060870
Error
12.8b
Counts
870 → 60
Alt Table
Click to see full alt table
StatusErrorProgram
42.9b
(*.f64 1/2 (pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 3/2) 1/3))
34.4b
(*.f64 1/2 (pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/6) 3))
32.3b
(*.f64 1/2 (pow.f64 (cbrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 3/2))
32.5b
(*.f64 1/2 (pow.f64 (cbrt.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))) 3))
38.6b
(*.f64 1/2 (-.f64 (+.f64 1 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2))) 1))
15.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (pow.f64 (pow.f64 (hypot.f64 re im) 1/4) 2) (pow.f64 (cbrt.f64 (hypot.f64 re im)) 3/2) (neg.f64 re)))))
15.7b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (pow.f64 (pow.f64 (hypot.f64 re im) 1/4) 2) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re)))))
31.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (pow.f64 (pow.f64 (hypot.f64 re im) 1/4) 2) (cbrt.f64 (pow.f64 (hypot.f64 re im) 3/2)) (neg.f64 re)))))
16.2b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (pow.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) 3) (neg.f64 re)))))
16.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (*.f64 (*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) 2)) (sqrt.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))))) (cbrt.f64 (sqrt.f64 (hypot.f64 re im)))) (neg.f64 re)))))
16.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (*.f64 (cbrt.f64 (sqrt.f64 (hypot.f64 re im))) (cbrt.f64 (sqrt.f64 (hypot.f64 re im)))) (neg.f64 re)))))
16.2b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (cbrt.f64 (hypot.f64 re im)) (neg.f64 re)))))
15.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 3/2) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re)))))
16.3b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) 2) (*.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) (cbrt.f64 (hypot.f64 re im)))) (cbrt.f64 (hypot.f64 re im)) (neg.f64 re)))))
15.7b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re)))))
13.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))))
51.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (fma.f64 (pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) 3) 2) (cbrt.f64 (hypot.f64 re im)) (neg.f64 re)) (fma.f64 (neg.f64 (sqrt.f64 re)) (sqrt.f64 re) re)))))
51.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (fma.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (*.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) (sqrt.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) 4))) (neg.f64 re)) (fma.f64 (neg.f64 (sqrt.f64 re)) (sqrt.f64 re) re)))))
51.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (fma.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (cbrt.f64 (hypot.f64 re im)) (neg.f64 re)) (fma.f64 (neg.f64 (sqrt.f64 re)) (sqrt.f64 re) re)))))
25.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (fma.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (cbrt.f64 (hypot.f64 re im)) (neg.f64 re)) (fma.f64 (cbrt.f64 (*.f64 re re)) (cbrt.f64 re) (neg.f64 re))))))
51.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (fma.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (cbrt.f64 (hypot.f64 re im)) (neg.f64 re)) (+.f64 (fma.f64 (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3)))) (fma.f64 (neg.f64 (pow.f64 re 1/4)) (pow.f64 (pow.f64 re 1/4) 3) (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3))))))))
51.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (fma.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (cbrt.f64 (hypot.f64 re im)) (neg.f64 re)) (+.f64 (fma.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (neg.f64 (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3)))) (fma.f64 (neg.f64 (pow.f64 re 1/4)) (pow.f64 (pow.f64 re 1/4) 3) (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3))))))))
51.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (fma.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (cbrt.f64 (hypot.f64 re im)) (neg.f64 re)) (+.f64 (fma.f64 re 1 (neg.f64 (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3)))) (fma.f64 (neg.f64 (pow.f64 re 1/4)) (pow.f64 (pow.f64 re 1/4) 3) (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3))))))))
51.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (fma.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (cbrt.f64 (hypot.f64 re im)) (neg.f64 re)) (+.f64 (*.f64 0 (*.f64 (sqrt.f64 re) (pow.f64 re 1/2))) (fma.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (cbrt.f64 re) (sqrt.f64 re)) (neg.f64 (*.f64 (sqrt.f64 re) (pow.f64 re 1/2)))))))))
54.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (fma.f64 (*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) 2) (cbrt.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 4))) (cbrt.f64 (hypot.f64 re im)) (neg.f64 re)) (fma.f64 (neg.f64 (sqrt.f64 re)) (sqrt.f64 re) re)))))
32.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re)) (fma.f64 (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 (*.f64 re (cbrt.f64 re)))) (sqrt.f64 (pow.f64 (cbrt.f64 (cbrt.f64 re)) 2)))) (pow.f64 (cbrt.f64 re) 2) re)))))
25.6b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re)) (fma.f64 (neg.f64 (cbrt.f64 re)) (pow.f64 (sqrt.f64 (cbrt.f64 (*.f64 re re))) 2) re)))))
15.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re)) (fma.f64 (neg.f64 (cbrt.f64 re)) (pow.f64 (cbrt.f64 re) 2) re)))))
16.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re)) (fma.f64 (neg.f64 (cbrt.f64 re)) (*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 re)) 2) (*.f64 (cbrt.f64 (cbrt.f64 re)) (cbrt.f64 re))) re)))))
58.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (fma.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) (cbrt.f64 (hypot.f64 re im)) (neg.f64 re)) (fma.f64 (neg.f64 (sqrt.f64 re)) (sqrt.f64 re) re)))))
31.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (hypot.f64 re im) re))))
15.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 (cbrt.f64 re)) 3)) (pow.f64 (cbrt.f64 re) 2) re)))))
50.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (fma.f64 (neg.f64 (sqrt.f64 re)) (sqrt.f64 re) re)))))
15.7b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (fma.f64 (neg.f64 (cbrt.f64 re)) (pow.f64 (cbrt.f64 re) 2) re)))))
50.7b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (fma.f64 (neg.f64 (cbrt.f64 re)) (pow.f64 re 2/3) re)))))
21.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (fma.f64 (neg.f64 (cbrt.f64 re)) (sqrt.f64 (*.f64 re (cbrt.f64 re))) re)))))
25.4b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (fma.f64 (neg.f64 (cbrt.f64 re)) (cbrt.f64 (*.f64 re re)) re)))))
25.6b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (fma.f64 (cbrt.f64 (*.f64 re re)) (cbrt.f64 re) (neg.f64 re))))))
50.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (+.f64 (fma.f64 (*.f64 (sqrt.f64 re) (pow.f64 (cbrt.f64 (cbrt.f64 re)) 3)) (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3)))) (fma.f64 (neg.f64 (pow.f64 re 1/4)) (pow.f64 (pow.f64 re 1/4) 3) (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3))))))))
52.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (+.f64 (fma.f64 (*.f64 (sqrt.f64 re) (sqrt.f64 (cbrt.f64 (*.f64 re re)))) (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3)))) (fma.f64 (neg.f64 (pow.f64 re 1/4)) (pow.f64 (pow.f64 re 1/4) 3) (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3))))))))
50.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (+.f64 (fma.f64 (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3)))) (fma.f64 (neg.f64 (pow.f64 re 1/4)) (pow.f64 (pow.f64 re 1/4) 3) (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3))))))))
50.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (+.f64 (fma.f64 (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3)))) (fma.f64 (neg.f64 (pow.f64 re 1/4)) (pow.f64 (pow.f64 re 1/4) 3) (*.f64 (pow.f64 re 1/4) (*.f64 (pow.f64 re 1/8) (*.f64 (pow.f64 re 1/8) (sqrt.f64 re))))))))))
50.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (+.f64 (fma.f64 (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3)))) (fma.f64 (neg.f64 (pow.f64 re 1/4)) (pow.f64 (sqrt.f64 re) 3/2) (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3))))))))
50.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (+.f64 (fma.f64 (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3)))) 0)))))
50.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (+.f64 (fma.f64 (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (pow.f64 re 1/4) (pow.f64 re 3/4)))) (fma.f64 (neg.f64 (pow.f64 re 1/4)) (pow.f64 (pow.f64 re 1/4) 3) (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3))))))))
50.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (+.f64 (fma.f64 (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (cbrt.f64 re)))) (fma.f64 (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (cbrt.f64 re))))))))
50.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (+.f64 (fma.f64 (sqrt.f64 re) (sqrt.f64 re) (neg.f64 (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3)))) (fma.f64 (neg.f64 (pow.f64 re 1/4)) (pow.f64 (pow.f64 re 1/4) 3) (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3))))))))
50.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (+.f64 (fma.f64 (sqrt.f64 re) (sqrt.f64 re) (neg.f64 (*.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (pow.f64 re 1/4)))) (fma.f64 (neg.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re))) (pow.f64 re 1/4) (*.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (pow.f64 re 1/4))))))))
52.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (+.f64 (fma.f64 (cbrt.f64 (*.f64 re re)) (cbrt.f64 re) (neg.f64 (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3)))) (fma.f64 (neg.f64 (pow.f64 re 1/4)) (pow.f64 (pow.f64 re 1/4) 3) (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3))))))))
50.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (+.f64 (fma.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)) (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re))))) (fma.f64 (neg.f64 (sqrt.f64 (cbrt.f64 re))) (*.f64 (sqrt.f64 re) (cbrt.f64 re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (sqrt.f64 re) (cbrt.f64 re)))))))))
52.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (+.f64 (fma.f64 (cbrt.f64 re) (cbrt.f64 (*.f64 re re)) (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (*.f64 (cbrt.f64 re) (sqrt.f64 re))))) (fma.f64 (*.f64 (sqrt.f64 (cbrt.f64 re)) (neg.f64 (sqrt.f64 re))) (cbrt.f64 re) (*.f64 (cbrt.f64 re) (*.f64 (sqrt.f64 (cbrt.f64 re)) (sqrt.f64 re)))))))))
50.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (+.f64 (fma.f64 re 1 (neg.f64 (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3)))) (fma.f64 (neg.f64 (pow.f64 re 1/4)) (pow.f64 (pow.f64 re 1/4) 3) (*.f64 (pow.f64 re 1/4) (pow.f64 (pow.f64 re 1/4) 3))))))))
50.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (+.f64 (fma.f64 re 1 (neg.f64 (*.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (pow.f64 re 1/4)))) (fma.f64 (neg.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re))) (pow.f64 re 1/4) (*.f64 (*.f64 (pow.f64 re 1/4) (sqrt.f64 re)) (pow.f64 re 1/4))))))))
50.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (+.f64 (*.f64 0 (*.f64 (sqrt.f64 re) (pow.f64 re 1/2))) (fma.f64 (sqrt.f64 (cbrt.f64 re)) (*.f64 (cbrt.f64 re) (sqrt.f64 re)) (neg.f64 (*.f64 (sqrt.f64 re) (pow.f64 re 1/2)))))))))
52.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (-.f64 (hypot.f64 re im) re) (+.f64 (*.f64 0 (*.f64 (sqrt.f64 re) (pow.f64 re 1/2))) (fma.f64 (cbrt.f64 (*.f64 re re)) (cbrt.f64 re) (neg.f64 (*.f64 (sqrt.f64 re) (pow.f64 re 1/2)))))))))
51.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (+.f64 (-.f64 (hypot.f64 re im) re) (fma.f64 (neg.f64 (sqrt.f64 re)) (sqrt.f64 re) re)) (fma.f64 (neg.f64 (cbrt.f64 re)) (cbrt.f64 (*.f64 re re)) re)))))
34.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (exp.f64 (log.f64 (+.f64 (hypot.f64 re im) re))))))
61.4b
(*.f64 1/2 (log.f64 (exp.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))
34.0b
(*.f64 1/2 (exp.f64 (*.f64 (log.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)) 1/2)))
41.5b
(*.f64 1/2 (cbrt.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 3/2)))
Compiler

Compiled 1957 to 1316 computations (32.8% saved)

regimes309.0ms (3.6%)

Accuracy

Total -49.7b remaining (-380.7%)

Threshold costs -49.7b (-380.7%)

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

7 calls:

48.0ms
(sqrt.f64 (*.f64 2 (-.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)))
43.0ms
re
41.0ms
(*.f64 im im)
31.0ms
im
22.0ms
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))))
Results
ErrorSegmentsBranch
13.1b1re
13.1b1im
13.1b1(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))))
13.1b1(sqrt.f64 (*.f64 2 (-.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)))
13.1b1(*.f64 2 (-.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))
13.1b1(-.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)
13.1b1(*.f64 im im)
Compiler

Compiled 2375 to 1157 computations (51.3% saved)

simplify3.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01430
12130
22630
32830
42930
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (hypot.f64 re im) re))))
Outputs
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (hypot.f64 re im) re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))
Compiler

Compiled 24 to 18 computations (25% saved)

soundness49.0ms (0.6%)

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
Compiler

Compiled 29 to 21 computations (27.6% saved)

end20.0ms (0.2%)

Compiler

Compiled 22 to 15 computations (31.8% saved)

Profiling

Loading profile data...