Details

Time bar (total: 2.3s)

analyze63.0ms (2.7%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.9%0.1%0
0%99.9%0.1%1
0%99.9%0.1%2
0%99.9%0.1%3
0%99.9%0.1%4
25%74.9%0.1%5
37.5%62.4%0.1%6
56.2%43.7%0.1%7
65.6%34.3%0.1%8
76.5%23.4%0.1%9
82%18%0.1%10
87.8%12.1%0.1%11
90.7%9.2%0.1%12
Compiler

Compiled 11 to 7 computations (36.4% saved)

sample852.0ms (36.9%)

Results
840.0ms8256×body256valid

preprocess21.0ms (0.9%)

Algorithm
egg-herbie
Rules
hypot-def_binary64
fma-def_binary64
swap-re-im
+-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
098
1138
022
122
Stop Event
unsound
saturated
Calls
Call 1
Inputs
0
1
Outputs
0
1
0
Call 2
Inputs
(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
(sqrt.f64 (+.f64 (*.f64 im im) (*.f64 re re)))
Outputs
(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
(hypot.f64 re im)
(sqrt.f64 (+.f64 (*.f64 im im) (*.f64 re re)))
(hypot.f64 re im)
Symmetry

(sort re im)

Compiler

Compiled 12 to 8 computations (33.3% saved)

simplify11.0ms (0.5%)

Algorithm
egg-herbie
Rules
hypot-def_binary64
fma-def_binary64
+-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
074
1104
2124
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
Outputs
(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
(hypot.f64 re im)

eval1.0ms (0%)

Compiler

Compiled 13 to 7 computations (46.2% saved)

prune2.0ms (0.1%)

Pruning

1 alts after pruning (1 fresh and 0 done)

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

Compiled 5 to 3 computations (40% saved)

localize7.0ms (0.3%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(hypot.f64 re im)
Compiler

Compiled 7 to 3 computations (57.1% saved)

series8.0ms (0.4%)

Counts
1 → 24
Calls

6 calls:

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

rewrite85.0ms (3.7%)

Algorithm
batch-egg-rewrite
Rules
360×pow1_binary64
343×add-sqr-sqrt_binary64
339×*-un-lft-identity_binary64
329×add-log-exp_binary64
329×log1p-expm1-u_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify74.0ms (3.2%)

Algorithm
egg-herbie
Rules
774×unswap-sqr_binary64
754×associate-*l/_binary64
606×associate-*r/_binary64
320×*-commutative_binary64
314×associate-/l/_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
064465
1192454
2561454
32284454
46188454
Stop Event
node limit
Counts
69 → 75
Calls
Call 1
Inputs
im
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im)
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5))) im)))
re
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) re)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(*.f64 -1 re)
(+.f64 (*.f64 -1 re) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 -1 re) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re))))
(+.f64 (*.f64 -1 re) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (+.f64 (*.f64 -1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))))
re
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) re)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
im
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im)
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5))) im)))
(*.f64 -1 im)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(+.f64 (*.f64 -1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5))) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))))
Outputs
im
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im)
(fma.f64 1/2 (/.f64 (*.f64 re re) im) im)
(fma.f64 1/2 (/.f64 re (/.f64 im re)) im)
(fma.f64 1/2 (*.f64 (/.f64 re im) re) im)
(fma.f64 1/2 (*.f64 re (/.f64 re im)) im)
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 (*.f64 re re) im) im))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 re (/.f64 im re)) im))
(fma.f64 1/2 (*.f64 (/.f64 re im) re) (fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) im))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (*.f64 re (/.f64 re im)) im))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5))) im)))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 (*.f64 re re) im) (fma.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) im)))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 re (/.f64 im re)) (fma.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) im)))
(fma.f64 1/2 (*.f64 (/.f64 re im) re) (fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) im)))
(fma.f64 1/2 (*.f64 re (/.f64 re im)) (fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) im)))
re
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) re)
(fma.f64 1/2 (/.f64 (*.f64 im im) re) re)
(fma.f64 1/2 (/.f64 im (/.f64 re im)) re)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(+.f64 (fma.f64 1/2 (/.f64 (*.f64 im im) re) re) (/.f64 (*.f64 -1/8 (pow.f64 im 4)) (pow.f64 re 3)))
(fma.f64 1/2 (/.f64 im (/.f64 re im)) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) re))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (+.f64 re (/.f64 (*.f64 -1/8 (pow.f64 im 4)) (pow.f64 re 3)))))
(fma.f64 1/2 (/.f64 im (/.f64 re im)) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) re)))
(fma.f64 1/2 (/.f64 im (/.f64 re im)) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) re)))
(*.f64 -1 re)
(neg.f64 re)
(+.f64 (*.f64 -1 re) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(fma.f64 -1 re (*.f64 (/.f64 (*.f64 im im) re) -1/2))
(-.f64 (*.f64 (/.f64 im (/.f64 re im)) -1/2) re)
(-.f64 (*.f64 (*.f64 im im) (/.f64 -1/2 re)) re)
(+.f64 (*.f64 -1 re) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re))))
(fma.f64 -1 re (fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (*.f64 (/.f64 (*.f64 im im) re) -1/2)))
(-.f64 (fma.f64 (/.f64 im (/.f64 re im)) -1/2 (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8)) re)
(fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8 (-.f64 (*.f64 (/.f64 im (/.f64 re im)) -1/2) re))
(-.f64 (*.f64 (*.f64 im im) (/.f64 -1/2 re)) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) re))
(+.f64 (*.f64 -1 re) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (+.f64 (*.f64 -1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))))
(fma.f64 -1 re (fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 -1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (*.f64 (/.f64 (*.f64 im im) re) -1/2))))
(-.f64 (fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8 (fma.f64 (/.f64 im (/.f64 re im)) -1/2 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) -1/16))) re)
(-.f64 (fma.f64 (/.f64 im (/.f64 re im)) -1/2 (fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) -1/16))) re)
(-.f64 (fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8 (*.f64 (*.f64 im im) (/.f64 -1/2 re))) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) re))
re
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) re)
(fma.f64 1/2 (/.f64 (*.f64 im im) re) re)
(fma.f64 1/2 (/.f64 im (/.f64 re im)) re)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(+.f64 (fma.f64 1/2 (/.f64 (*.f64 im im) re) re) (/.f64 (*.f64 -1/8 (pow.f64 im 4)) (pow.f64 re 3)))
(fma.f64 1/2 (/.f64 im (/.f64 re im)) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) re))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (+.f64 re (/.f64 (*.f64 -1/8 (pow.f64 im 4)) (pow.f64 re 3)))))
(fma.f64 1/2 (/.f64 im (/.f64 re im)) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) re)))
(fma.f64 1/2 (/.f64 im (/.f64 re im)) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) re)))
im
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im)
(fma.f64 1/2 (/.f64 (*.f64 re re) im) im)
(fma.f64 1/2 (/.f64 re (/.f64 im re)) im)
(fma.f64 1/2 (*.f64 (/.f64 re im) re) im)
(fma.f64 1/2 (*.f64 re (/.f64 re im)) im)
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 (*.f64 re re) im) im))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 re (/.f64 im re)) im))
(fma.f64 1/2 (*.f64 (/.f64 re im) re) (fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) im))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (*.f64 re (/.f64 re im)) im))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5))) im)))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 (*.f64 re re) im) (fma.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) im)))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 re (/.f64 im re)) (fma.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) im)))
(fma.f64 1/2 (*.f64 (/.f64 re im) re) (fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) im)))
(fma.f64 1/2 (*.f64 re (/.f64 re im)) (fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) im)))
(*.f64 -1 im)
(neg.f64 im)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(-.f64 (*.f64 (/.f64 re (/.f64 im re)) -1/2) im)
(-.f64 (*.f64 (/.f64 -1/2 im) (*.f64 re re)) im)
(-.f64 (*.f64 (*.f64 re re) (/.f64 -1/2 im)) im)
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(fma.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im)))
(-.f64 (fma.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) 1/8 (*.f64 (/.f64 re (/.f64 im re)) -1/2)) im)
(fma.f64 (*.f64 (/.f64 re im) re) -1/2 (-.f64 (/.f64 (*.f64 (pow.f64 re 4) 1/8) (pow.f64 im 3)) im))
(-.f64 (/.f64 (*.f64 (pow.f64 re 4) 1/8) (pow.f64 im 3)) (fma.f64 1/2 (*.f64 re (/.f64 re im)) im))
(+.f64 (*.f64 -1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5))) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))))
(fma.f64 -1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) (fma.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))))
(fma.f64 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) -1/16 (-.f64 (fma.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) 1/8 (*.f64 (/.f64 re (/.f64 im re)) -1/2)) im))
(fma.f64 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) -1/16 (fma.f64 (*.f64 (/.f64 re im) re) -1/2 (-.f64 (/.f64 (*.f64 (pow.f64 re 4) 1/8) (pow.f64 im 3)) im)))
(fma.f64 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) -1/16 (-.f64 (/.f64 (*.f64 (pow.f64 re 4) 1/8) (pow.f64 im 3)) (fma.f64 1/2 (*.f64 re (/.f64 re im)) im)))

eval21.0ms (0.9%)

Compiler

Compiled 902 to 508 computations (43.7% saved)

prune13.0ms (0.6%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New71475
Fresh000
Picked011
Done000
Total71576
Error
0b
Counts
76 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(hypot.f64 re im)
17.3b
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 4) 1/2) (cbrt.f64 (hypot.f64 re im)))
35.6b
(-.f64 (*.f64 (*.f64 im im) (/.f64 -1/2 re)) re)
29.8b
im
32.7b
(neg.f64 re)
Compiler

Compiled 38 to 24 computations (36.8% saved)

localize2.0ms (0.1%)

Compiler

Compiled 5 to 3 computations (40% saved)

localize19.0ms (0.8%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 4) 1/2) (cbrt.f64 (hypot.f64 re im)))
0.5b
(cbrt.f64 (hypot.f64 re im))
0.7b
(pow.f64 (cbrt.f64 (hypot.f64 re im)) 4)
15.6b
(pow.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 4) 1/2)
Compiler

Compiled 40 to 17 computations (57.5% saved)

series32.0ms (1.4%)

Counts
4 → 48
Calls

24 calls:

TimeVariablePointExpression
5.0ms
re
@0
(pow.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 4) 1/2)
5.0ms
im
@0
(pow.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 4) 1/2)
5.0ms
re
@inf
(pow.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 4) 1/2)
2.0ms
im
@inf
(pow.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 4) 1/2)
2.0ms
im
@inf
(pow.f64 (cbrt.f64 (hypot.f64 re im)) 4)

rewrite65.0ms (2.8%)

Algorithm
batch-egg-rewrite
Rules
715×pow1_binary64
667×add-log-exp_binary64
667×log1p-expm1-u_binary64
667×expm1-log1p-u_binary64
649×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify65.0ms (2.8%)

Algorithm
egg-herbie
Rules
890×times-frac_binary64
458×associate-+l+_binary64
411×distribute-lft-in_binary64
411×distribute-rgt-in_binary64
340×associate-/l*_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
02481861
17911810
228011810
Stop Event
node limit
Counts
125 → 155
Calls
Call 1
Inputs
(pow.f64 (pow.f64 im 2) 1/3)
(+.f64 (*.f64 1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 4)) 1/3) (pow.f64 re 2))) (pow.f64 (pow.f64 im 2) 1/3))
(+.f64 (*.f64 1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 4)) 1/3) (pow.f64 re 2))) (+.f64 (pow.f64 (pow.f64 im 2) 1/3) (*.f64 1/2 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 2)) 1/3) (*.f64 (-.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 (*.f64 1 (pow.f64 im 2)) 1/3) (+.f64 (*.f64 1/36 (pow.f64 (/.f64 1 (pow.f64 im 10)) 1/3)) (*.f64 -5/36 (pow.f64 (/.f64 1 (pow.f64 im 10)) 1/3))))) (*.f64 1/9 (pow.f64 (/.f64 1 (pow.f64 im 8)) 1/3))) (pow.f64 (*.f64 1/3 (pow.f64 (/.f64 1 (pow.f64 im 4)) 1/3)) 2)) (pow.f64 re 4))))))
(+.f64 (*.f64 1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 4)) 1/3) (pow.f64 re 2))) (+.f64 (pow.f64 (pow.f64 im 2) 1/3) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 2)) 1/3) (*.f64 (-.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 (*.f64 1 (pow.f64 im 2)) 1/3) (+.f64 (*.f64 1/36 (pow.f64 (/.f64 1 (pow.f64 im 10)) 1/3)) (*.f64 -5/36 (pow.f64 (/.f64 1 (pow.f64 im 10)) 1/3))))) (*.f64 1/9 (pow.f64 (/.f64 1 (pow.f64 im 8)) 1/3))) (pow.f64 (*.f64 1/3 (pow.f64 (/.f64 1 (pow.f64 im 4)) 1/3)) 2)) (pow.f64 re 4)))) (*.f64 1/2 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 2)) 1/3) (*.f64 (pow.f64 re 6) (-.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 (*.f64 1 (pow.f64 im 2)) 1/3) (+.f64 (*.f64 55/648 (pow.f64 (/.f64 1 (pow.f64 im 16)) 1/3)) (*.f64 -5/216 (pow.f64 (/.f64 1 (pow.f64 im 16)) 1/3))))) (*.f64 2/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 4)) 1/3) (+.f64 (*.f64 1/36 (pow.f64 (/.f64 1 (pow.f64 im 10)) 1/3)) (*.f64 -5/36 (pow.f64 (/.f64 1 (pow.f64 im 10)) 1/3)))))) (*.f64 1/3 (*.f64 (pow.f64 1 1/3) (/.f64 (-.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 (*.f64 1 (pow.f64 im 2)) 1/3) (+.f64 (*.f64 1/36 (pow.f64 (/.f64 1 (pow.f64 im 10)) 1/3)) (*.f64 -5/36 (pow.f64 (/.f64 1 (pow.f64 im 10)) 1/3))))) (*.f64 1/9 (pow.f64 (/.f64 1 (pow.f64 im 8)) 1/3))) (pow.f64 (*.f64 1/3 (pow.f64 (/.f64 1 (pow.f64 im 4)) 1/3)) 2)) (pow.f64 im 2)))))))))))
(pow.f64 (pow.f64 re 2) 1/3)
(+.f64 (*.f64 1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 re 4)) 1/3) (pow.f64 im 2))) (pow.f64 (pow.f64 re 2) 1/3))
(+.f64 (*.f64 1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 re 4)) 1/3) (pow.f64 im 2))) (+.f64 (pow.f64 (pow.f64 re 2) 1/3) (*.f64 1/2 (*.f64 (pow.f64 (/.f64 1 (pow.f64 re 2)) 1/3) (*.f64 (-.f64 (+.f64 (*.f64 1/9 (pow.f64 (/.f64 1 (pow.f64 re 8)) 1/3)) (*.f64 2 (*.f64 (pow.f64 (*.f64 1 (pow.f64 re 2)) 1/3) (+.f64 (*.f64 -5/36 (pow.f64 (/.f64 1 (pow.f64 re 10)) 1/3)) (*.f64 1/36 (pow.f64 (/.f64 1 (pow.f64 re 10)) 1/3)))))) (pow.f64 (*.f64 1/3 (pow.f64 (/.f64 1 (pow.f64 re 4)) 1/3)) 2)) (pow.f64 im 4))))))
(+.f64 (*.f64 1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 re 4)) 1/3) (pow.f64 im 2))) (+.f64 (pow.f64 (pow.f64 re 2) 1/3) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 (/.f64 1 (pow.f64 re 2)) 1/3) (*.f64 (-.f64 (+.f64 (*.f64 1/9 (pow.f64 (/.f64 1 (pow.f64 re 8)) 1/3)) (*.f64 2 (*.f64 (pow.f64 (*.f64 1 (pow.f64 re 2)) 1/3) (+.f64 (*.f64 -5/36 (pow.f64 (/.f64 1 (pow.f64 re 10)) 1/3)) (*.f64 1/36 (pow.f64 (/.f64 1 (pow.f64 re 10)) 1/3)))))) (pow.f64 (*.f64 1/3 (pow.f64 (/.f64 1 (pow.f64 re 4)) 1/3)) 2)) (pow.f64 im 4)))) (*.f64 1/2 (*.f64 (*.f64 (-.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 (*.f64 1 (pow.f64 re 2)) 1/3) (+.f64 (*.f64 -5/216 (pow.f64 (/.f64 1 (pow.f64 re 16)) 1/3)) (*.f64 55/648 (pow.f64 (/.f64 1 (pow.f64 re 16)) 1/3))))) (*.f64 2/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 re 4)) 1/3) (+.f64 (*.f64 -5/36 (pow.f64 (/.f64 1 (pow.f64 re 10)) 1/3)) (*.f64 1/36 (pow.f64 (/.f64 1 (pow.f64 re 10)) 1/3)))))) (*.f64 1/3 (*.f64 (pow.f64 1 1/3) (/.f64 (-.f64 (+.f64 (*.f64 1/9 (pow.f64 (/.f64 1 (pow.f64 re 8)) 1/3)) (*.f64 2 (*.f64 (pow.f64 (*.f64 1 (pow.f64 re 2)) 1/3) (+.f64 (*.f64 -5/36 (pow.f64 (/.f64 1 (pow.f64 re 10)) 1/3)) (*.f64 1/36 (pow.f64 (/.f64 1 (pow.f64 re 10)) 1/3)))))) (pow.f64 (*.f64 1/3 (pow.f64 (/.f64 1 (pow.f64 re 4)) 1/3)) 2)) (pow.f64 re 2))))) (pow.f64 im 6)) (pow.f64 (/.f64 1 (pow.f64 re 2)) 1/3))))))
(pow.f64 (pow.f64 im 4) 1/3)
(+.f64 (pow.f64 (pow.f64 im 4) 1/3) (*.f64 2/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 2)) 1/3) (pow.f64 re 2))))
(+.f64 (*.f64 (+.f64 (*.f64 1/9 (pow.f64 (/.f64 1 (pow.f64 im 8)) 1/3)) (*.f64 2 (*.f64 (pow.f64 (*.f64 1 (pow.f64 im 2)) 1/3) (+.f64 (*.f64 1/36 (pow.f64 (/.f64 1 (pow.f64 im 10)) 1/3)) (*.f64 -5/36 (pow.f64 (/.f64 1 (pow.f64 im 10)) 1/3)))))) (pow.f64 re 4)) (+.f64 (pow.f64 (pow.f64 im 4) 1/3) (*.f64 2/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 2)) 1/3) (pow.f64 re 2)))))
(+.f64 (*.f64 (+.f64 (*.f64 1/9 (pow.f64 (/.f64 1 (pow.f64 im 8)) 1/3)) (*.f64 2 (*.f64 (pow.f64 (*.f64 1 (pow.f64 im 2)) 1/3) (+.f64 (*.f64 1/36 (pow.f64 (/.f64 1 (pow.f64 im 10)) 1/3)) (*.f64 -5/36 (pow.f64 (/.f64 1 (pow.f64 im 10)) 1/3)))))) (pow.f64 re 4)) (+.f64 (pow.f64 (pow.f64 im 4) 1/3) (+.f64 (*.f64 (+.f64 (*.f64 2/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 4)) 1/3) (+.f64 (*.f64 1/36 (pow.f64 (/.f64 1 (pow.f64 im 10)) 1/3)) (*.f64 -5/36 (pow.f64 (/.f64 1 (pow.f64 im 10)) 1/3))))) (*.f64 2 (*.f64 (pow.f64 (*.f64 1 (pow.f64 im 2)) 1/3) (+.f64 (*.f64 -5/216 (pow.f64 (/.f64 1 (pow.f64 im 16)) 1/3)) (*.f64 55/648 (pow.f64 (/.f64 1 (pow.f64 im 16)) 1/3)))))) (pow.f64 re 6)) (*.f64 2/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 2)) 1/3) (pow.f64 re 2))))))
(pow.f64 (pow.f64 re 4) 1/3)
(+.f64 (*.f64 2/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 re 2)) 1/3) (pow.f64 im 2))) (pow.f64 (pow.f64 re 4) 1/3))
(+.f64 (*.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 (*.f64 1 (pow.f64 re 2)) 1/3) (+.f64 (*.f64 -5/36 (pow.f64 (/.f64 1 (pow.f64 re 10)) 1/3)) (*.f64 1/36 (pow.f64 (/.f64 1 (pow.f64 re 10)) 1/3))))) (*.f64 1/9 (pow.f64 (/.f64 1 (pow.f64 re 8)) 1/3))) (pow.f64 im 4)) (+.f64 (*.f64 2/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 re 2)) 1/3) (pow.f64 im 2))) (pow.f64 (pow.f64 re 4) 1/3)))
(+.f64 (*.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 (*.f64 1 (pow.f64 re 2)) 1/3) (+.f64 (*.f64 -5/216 (pow.f64 (/.f64 1 (pow.f64 re 16)) 1/3)) (*.f64 55/648 (pow.f64 (/.f64 1 (pow.f64 re 16)) 1/3))))) (*.f64 2/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 re 4)) 1/3) (+.f64 (*.f64 -5/36 (pow.f64 (/.f64 1 (pow.f64 re 10)) 1/3)) (*.f64 1/36 (pow.f64 (/.f64 1 (pow.f64 re 10)) 1/3)))))) (pow.f64 im 6)) (+.f64 (*.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 (*.f64 1 (pow.f64 re 2)) 1/3) (+.f64 (*.f64 -5/36 (pow.f64 (/.f64 1 (pow.f64 re 10)) 1/3)) (*.f64 1/36 (pow.f64 (/.f64 1 (pow.f64 re 10)) 1/3))))) (*.f64 1/9 (pow.f64 (/.f64 1 (pow.f64 re 8)) 1/3))) (pow.f64 im 4)) (+.f64 (*.f64 2/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 re 2)) 1/3) (pow.f64 im 2))) (pow.f64 (pow.f64 re 4) 1/3))))
(pow.f64 im 1/3)
(+.f64 (pow.f64 im 1/3) (*.f64 1/6 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 5)) 1/3) (pow.f64 re 2))))
(+.f64 (pow.f64 im 1/3) (+.f64 (*.f64 -5/72 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 11)) 1/3) (pow.f64 re 4))) (*.f64 1/6 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 5)) 1/3) (pow.f64 re 2)))))
(+.f64 (pow.f64 im 1/3) (+.f64 (*.f64 -5/72 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 11)) 1/3) (pow.f64 re 4))) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 5)) 1/3) (pow.f64 re 2))) (*.f64 55/1296 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 17)) 1/3) (pow.f64 re 6))))))
(pow.f64 re 1/3)
(+.f64 (*.f64 1/6 (*.f64 (pow.f64 (/.f64 1 (pow.f64 re 5)) 1/3) (pow.f64 im 2))) (pow.f64 re 1/3))
(+.f64 (*.f64 -5/72 (*.f64 (pow.f64 (/.f64 1 (pow.f64 re 11)) 1/3) (pow.f64 im 4))) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 (/.f64 1 (pow.f64 re 5)) 1/3) (pow.f64 im 2))) (pow.f64 re 1/3)))
(+.f64 (*.f64 55/1296 (*.f64 (pow.f64 (/.f64 1 (pow.f64 re 17)) 1/3) (pow.f64 im 6))) (+.f64 (*.f64 -5/72 (*.f64 (pow.f64 (/.f64 1 (pow.f64 re 11)) 1/3) (pow.f64 im 4))) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 (/.f64 1 (pow.f64 re 5)) 1/3) (pow.f64 im 2))) (pow.f64 re 1/3))))
im
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im)
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5))) im)))
re
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) re)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(*.f64 -1 re)
(+.f64 (*.f64 -1 re) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 -1 re) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re))))
(+.f64 (*.f64 -1 re) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (+.f64 (*.f64 -1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))))
re
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) re)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
im
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im)
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5))) im)))
(*.f64 -1 im)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(+.f64 (*.f64 -1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5))) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))))
Outputs
(pow.f64 (pow.f64 im 2) 1/3)
(cbrt.f64 (*.f64 im im))
(+.f64 (*.f64 1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 4)) 1/3) (pow.f64 re 2))) (pow.f64 (pow.f64 im 2) 1/3))
(fma.f64 1/3 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 4))) (*.f64 re re)) (cbrt.f64 (*.f64 im im)))
(fma.f64 (*.f64 1/3 (cbrt.f64 (/.f64 1 (pow.f64 im 4)))) (*.f64 re re) (cbrt.f64 (*.f64 im im)))
(+.f64 (*.f64 1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 4)) 1/3) (pow.f64 re 2))) (+.f64 (pow.f64 (pow.f64 im 2) 1/3) (*.f64 1/2 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 2)) 1/3) (*.f64 (-.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 (*.f64 1 (pow.f64 im 2)) 1/3) (+.f64 (*.f64 1/36 (pow.f64 (/.f64 1 (pow.f64 im 10)) 1/3)) (*.f64 -5/36 (pow.f64 (/.f64 1 (pow.f64 im 10)) 1/3))))) (*.f64 1/9 (pow.f64 (/.f64 1 (pow.f64 im 8)) 1/3))) (pow.f64 (*.f64 1/3 (pow.f64 (/.f64 1 (pow.f64 im 4)) 1/3)) 2)) (pow.f64 re 4))))))
(+.f64 (fma.f64 1/3 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 4))) (*.f64 re re)) (cbrt.f64 (*.f64 im im))) (*.f64 1/2 (*.f64 (cbrt.f64 (/.f64 1 (*.f64 im im))) (*.f64 (-.f64 (fma.f64 2 (*.f64 (cbrt.f64 (*.f64 im im)) (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 10))) -1/9)) (*.f64 1/9 (cbrt.f64 (/.f64 1 (pow.f64 im 8))))) (pow.f64 (*.f64 1/3 (cbrt.f64 (/.f64 1 (pow.f64 im 4)))) 2)) (pow.f64 re 4)))))
(fma.f64 1/3 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 4))) (*.f64 re re)) (fma.f64 1/2 (*.f64 (cbrt.f64 (/.f64 1 (*.f64 im im))) (*.f64 (-.f64 (fma.f64 2 (*.f64 (cbrt.f64 (*.f64 im im)) (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 10))) -1/9)) (*.f64 1/9 (cbrt.f64 (/.f64 1 (pow.f64 im 8))))) (pow.f64 (*.f64 1/3 (cbrt.f64 (/.f64 1 (pow.f64 im 4)))) 2)) (pow.f64 re 4))) (cbrt.f64 (*.f64 im im))))
(fma.f64 1/3 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 4))) (*.f64 re re)) (fma.f64 1/2 (*.f64 (cbrt.f64 (/.f64 1 (*.f64 im im))) (*.f64 (-.f64 (fma.f64 2 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 10))) (*.f64 -1/9 (cbrt.f64 (*.f64 im im)))) (*.f64 1/9 (cbrt.f64 (/.f64 1 (pow.f64 im 8))))) (pow.f64 (*.f64 1/3 (cbrt.f64 (/.f64 1 (pow.f64 im 4)))) 2)) (pow.f64 re 4))) (cbrt.f64 (*.f64 im im))))
(+.f64 (*.f64 1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 4)) 1/3) (pow.f64 re 2))) (+.f64 (pow.f64 (pow.f64 im 2) 1/3) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 2)) 1/3) (*.f64 (-.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 (*.f64 1 (pow.f64 im 2)) 1/3) (+.f64 (*.f64 1/36 (pow.f64 (/.f64 1 (pow.f64 im 10)) 1/3)) (*.f64 -5/36 (pow.f64 (/.f64 1 (pow.f64 im 10)) 1/3))))) (*.f64 1/9 (pow.f64 (/.f64 1 (pow.f64 im 8)) 1/3))) (pow.f64 (*.f64 1/3 (pow.f64 (/.f64 1 (pow.f64 im 4)) 1/3)) 2)) (pow.f64 re 4)))) (*.f64 1/2 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 2)) 1/3) (*.f64 (pow.f64 re 6) (-.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 (*.f64 1 (pow.f64 im 2)) 1/3) (+.f64 (*.f64 55/648 (pow.f64 (/.f64 1 (pow.f64 im 16)) 1/3)) (*.f64 -5/216 (pow.f64 (/.f64 1 (pow.f64 im 16)) 1/3))))) (*.f64 2/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 4)) 1/3) (+.f64 (*.f64 1/36 (pow.f64 (/.f64 1 (pow.f64 im 10)) 1/3)) (*.f64 -5/36 (pow.f64 (/.f64 1 (pow.f64 im 10)) 1/3)))))) (*.f64 1/3 (*.f64 (pow.f64 1 1/3) (/.f64 (-.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 (*.f64 1 (pow.f64 im 2)) 1/3) (+.f64 (*.f64 1/36 (pow.f64 (/.f64 1 (pow.f64 im 10)) 1/3)) (*.f64 -5/36 (pow.f64 (/.f64 1 (pow.f64 im 10)) 1/3))))) (*.f64 1/9 (pow.f64 (/.f64 1 (pow.f64 im 8)) 1/3))) (pow.f64 (*.f64 1/3 (pow.f64 (/.f64 1 (pow.f64 im 4)) 1/3)) 2)) (pow.f64 im 2)))))))))))
(+.f64 (fma.f64 1/3 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 4))) (*.f64 re re)) (cbrt.f64 (*.f64 im im))) (*.f64 1/2 (+.f64 (*.f64 (cbrt.f64 (/.f64 1 (*.f64 im im))) (*.f64 (-.f64 (fma.f64 2 (*.f64 (cbrt.f64 (*.f64 im im)) (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 10))) -1/9)) (*.f64 1/9 (cbrt.f64 (/.f64 1 (pow.f64 im 8))))) (pow.f64 (*.f64 1/3 (cbrt.f64 (/.f64 1 (pow.f64 im 4)))) 2)) (pow.f64 re 4))) (*.f64 (cbrt.f64 (/.f64 1 (*.f64 im im))) (*.f64 (pow.f64 re 6) (-.f64 (fma.f64 2 (*.f64 (cbrt.f64 (*.f64 im im)) (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 16))) 5/81)) (*.f64 2/3 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 4))) (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 10))) -1/9)))) (*.f64 1/3 (/.f64 (-.f64 (fma.f64 2 (*.f64 (cbrt.f64 (*.f64 im im)) (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 10))) -1/9)) (*.f64 1/9 (cbrt.f64 (/.f64 1 (pow.f64 im 8))))) (pow.f64 (*.f64 1/3 (cbrt.f64 (/.f64 1 (pow.f64 im 4)))) 2)) (*.f64 im im)))))))))
(fma.f64 1/3 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 4))) (*.f64 re re)) (fma.f64 1/2 (*.f64 (cbrt.f64 (/.f64 1 (*.f64 im im))) (+.f64 (*.f64 (-.f64 (fma.f64 2 (*.f64 (cbrt.f64 (*.f64 im im)) (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 10))) -1/9)) (*.f64 1/9 (cbrt.f64 (/.f64 1 (pow.f64 im 8))))) (pow.f64 (*.f64 1/3 (cbrt.f64 (/.f64 1 (pow.f64 im 4)))) 2)) (pow.f64 re 4)) (*.f64 (pow.f64 re 6) (fma.f64 2 (*.f64 (cbrt.f64 (*.f64 im im)) (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 16))) 5/81)) (fma.f64 2/3 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 4))) (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 10))) -1/9)) (/.f64 (*.f64 -1/3 (-.f64 (fma.f64 2 (*.f64 (cbrt.f64 (*.f64 im im)) (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 10))) -1/9)) (*.f64 1/9 (cbrt.f64 (/.f64 1 (pow.f64 im 8))))) (pow.f64 (*.f64 1/3 (cbrt.f64 (/.f64 1 (pow.f64 im 4)))) 2))) (*.f64 im im))))))) (cbrt.f64 (*.f64 im im))))
(fma.f64 1/3 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 4))) (*.f64 re re)) (fma.f64 1/2 (*.f64 (cbrt.f64 (/.f64 1 (*.f64 im im))) (+.f64 (*.f64 (pow.f64 re 6) (fma.f64 2 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 16))) (*.f64 5/81 (cbrt.f64 (*.f64 im im)))) (fma.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 4))) (*.f64 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 10))) -1/9) 2/3) (*.f64 (/.f64 -1/3 (*.f64 im im)) (-.f64 (fma.f64 2 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 10))) (*.f64 -1/9 (cbrt.f64 (*.f64 im im)))) (*.f64 1/9 (cbrt.f64 (/.f64 1 (pow.f64 im 8))))) (pow.f64 (*.f64 1/3 (cbrt.f64 (/.f64 1 (pow.f64 im 4)))) 2)))))) (*.f64 (-.f64 (fma.f64 2 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 10))) (*.f64 -1/9 (cbrt.f64 (*.f64 im im)))) (*.f64 1/9 (cbrt.f64 (/.f64 1 (pow.f64 im 8))))) (pow.f64 (*.f64 1/3 (cbrt.f64 (/.f64 1 (pow.f64 im 4)))) 2)) (pow.f64 re 4)))) (cbrt.f64 (*.f64 im im))))
(pow.f64 (pow.f64 re 2) 1/3)
(cbrt.f64 (*.f64 re re))
(+.f64 (*.f64 1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 re 4)) 1/3) (pow.f64 im 2))) (pow.f64 (pow.f64 re 2) 1/3))
(fma.f64 1/3 (*.f64 (*.f64 im im) (cbrt.f64 (/.f64 1 (pow.f64 re 4)))) (cbrt.f64 (*.f64 re re)))
(+.f64 (*.f64 1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 re 4)) 1/3) (pow.f64 im 2))) (+.f64 (pow.f64 (pow.f64 re 2) 1/3) (*.f64 1/2 (*.f64 (pow.f64 (/.f64 1 (pow.f64 re 2)) 1/3) (*.f64 (-.f64 (+.f64 (*.f64 1/9 (pow.f64 (/.f64 1 (pow.f64 re 8)) 1/3)) (*.f64 2 (*.f64 (pow.f64 (*.f64 1 (pow.f64 re 2)) 1/3) (+.f64 (*.f64 -5/36 (pow.f64 (/.f64 1 (pow.f64 re 10)) 1/3)) (*.f64 1/36 (pow.f64 (/.f64 1 (pow.f64 re 10)) 1/3)))))) (pow.f64 (*.f64 1/3 (pow.f64 (/.f64 1 (pow.f64 re 4)) 1/3)) 2)) (pow.f64 im 4))))))
(+.f64 (fma.f64 1/3 (*.f64 (*.f64 im im) (cbrt.f64 (/.f64 1 (pow.f64 re 4)))) (cbrt.f64 (*.f64 re re))) (*.f64 1/2 (*.f64 (cbrt.f64 (/.f64 1 (*.f64 re re))) (*.f64 (pow.f64 im 4) (-.f64 (fma.f64 2 (*.f64 (cbrt.f64 (*.f64 re re)) (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 re 10))) -1/9)) (*.f64 1/9 (cbrt.f64 (/.f64 1 (pow.f64 re 8))))) (pow.f64 (*.f64 1/3 (cbrt.f64 (/.f64 1 (pow.f64 re 4)))) 2))))))
(fma.f64 1/3 (*.f64 (*.f64 im im) (cbrt.f64 (/.f64 1 (pow.f64 re 4)))) (fma.f64 1/2 (*.f64 (pow.f64 im 4) (*.f64 (cbrt.f64 (/.f64 1 (*.f64 re re))) (-.f64 (fma.f64 2 (*.f64 (*.f64 (cbrt.f64 (*.f64 re re)) (cbrt.f64 (/.f64 1 (pow.f64 re 10)))) -1/9) (*.f64 1/9 (cbrt.f64 (/.f64 1 (pow.f64 re 8))))) (pow.f64 (*.f64 1/3 (cbrt.f64 (/.f64 1 (pow.f64 re 4)))) 2)))) (cbrt.f64 (*.f64 re re))))
(fma.f64 1/3 (*.f64 (*.f64 im im) (cbrt.f64 (/.f64 1 (pow.f64 re 4)))) (fma.f64 1/2 (*.f64 (-.f64 (fma.f64 2 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 re 10))) (*.f64 -1/9 (cbrt.f64 (*.f64 re re)))) (*.f64 1/9 (cbrt.f64 (/.f64 1 (pow.f64 re 8))))) (pow.f64 (*.f64 1/3 (cbrt.f64 (/.f64 1 (pow.f64 re 4)))) 2)) (*.f64 (pow.f64 im 4) (cbrt.f64 (/.f64 1 (*.f64 re re))))) (cbrt.f64 (*.f64 re re))))
(+.f64 (*.f64 1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 re 4)) 1/3) (pow.f64 im 2))) (+.f64 (pow.f64 (pow.f64 re 2) 1/3) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 (/.f64 1 (pow.f64 re 2)) 1/3) (*.f64 (-.f64 (+.f64 (*.f64 1/9 (pow.f64 (/.f64 1 (pow.f64 re 8)) 1/3)) (*.f64 2 (*.f64 (pow.f64 (*.f64 1 (pow.f64 re 2)) 1/3) (+.f64 (*.f64 -5/36 (pow.f64 (/.f64 1 (pow.f64 re 10)) 1/3)) (*.f64 1/36 (pow.f64 (/.f64 1 (pow.f64 re 10)) 1/3)))))) (pow.f64 (*.f64 1/3 (pow.f64 (/.f64 1 (pow.f64 re 4)) 1/3)) 2)) (pow.f64 im 4)))) (*.f64 1/2 (*.f64 (*.f64 (-.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 (*.f64 1 (pow.f64 re 2)) 1/3) (+.f64 (*.f64 -5/216 (pow.f64 (/.f64 1 (pow.f64 re 16)) 1/3)) (*.f64 55/648 (pow.f64 (/.f64 1 (pow.f64 re 16)) 1/3))))) (*.f64 2/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 re 4)) 1/3) (+.f64 (*.f64 -5/36 (pow.f64 (/.f64 1 (pow.f64 re 10)) 1/3)) (*.f64 1/36 (pow.f64 (/.f64 1 (pow.f64 re 10)) 1/3)))))) (*.f64 1/3 (*.f64 (pow.f64 1 1/3) (/.f64 (-.f64 (+.f64 (*.f64 1/9 (pow.f64 (/.f64 1 (pow.f64 re 8)) 1/3)) (*.f64 2 (*.f64 (pow.f64 (*.f64 1 (pow.f64 re 2)) 1/3) (+.f64 (*.f64 -5/36 (pow.f64 (/.f64 1 (pow.f64 re 10)) 1/3)) (*.f64 1/36 (pow.f64 (/.f64 1 (pow.f64 re 10)) 1/3)))))) (pow.f64 (*.f64 1/3 (pow.f64 (/.f64 1 (pow.f64 re 4)) 1/3)) 2)) (pow.f64 re 2))))) (pow.f64 im 6)) (pow.f64 (/.f64 1 (pow.f64 re 2)) 1/3))))))
(+.f64 (fma.f64 1/3 (*.f64 (*.f64 im im) (cbrt.f64 (/.f64 1 (pow.f64 re 4)))) (cbrt.f64 (*.f64 re re))) (*.f64 1/2 (+.f64 (*.f64 (cbrt.f64 (/.f64 1 (*.f64 re re))) (*.f64 (pow.f64 im 4) (-.f64 (fma.f64 2 (*.f64 (cbrt.f64 (*.f64 re re)) (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 re 10))) -1/9)) (*.f64 1/9 (cbrt.f64 (/.f64 1 (pow.f64 re 8))))) (pow.f64 (*.f64 1/3 (cbrt.f64 (/.f64 1 (pow.f64 re 4)))) 2)))) (*.f64 (cbrt.f64 (/.f64 1 (*.f64 re re))) (*.f64 (-.f64 (fma.f64 2 (*.f64 (cbrt.f64 (*.f64 re re)) (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 re 16))) 5/81)) (*.f64 (*.f64 2/3 (cbrt.f64 (/.f64 1 (pow.f64 re 4)))) (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 re 10))) -1/9))) (*.f64 1/3 (/.f64 (-.f64 (fma.f64 2 (*.f64 (cbrt.f64 (*.f64 re re)) (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 re 10))) -1/9)) (*.f64 1/9 (cbrt.f64 (/.f64 1 (pow.f64 re 8))))) (pow.f64 (*.f64 1/3 (cbrt.f64 (/.f64 1 (pow.f64 re 4)))) 2)) (*.f64 re re)))) (pow.f64 im 6))))))
(fma.f64 1/3 (*.f64 (*.f64 im im) (cbrt.f64 (/.f64 1 (pow.f64 re 4)))) (fma.f64 1/2 (*.f64 (cbrt.f64 (/.f64 1 (*.f64 re re))) (+.f64 (*.f64 (pow.f64 im 4) (-.f64 (fma.f64 2 (*.f64 (*.f64 (cbrt.f64 (*.f64 re re)) (cbrt.f64 (/.f64 1 (pow.f64 re 10)))) -1/9) (*.f64 1/9 (cbrt.f64 (/.f64 1 (pow.f64 re 8))))) (pow.f64 (*.f64 1/3 (cbrt.f64 (/.f64 1 (pow.f64 re 4)))) 2))) (*.f64 (fma.f64 2 (*.f64 (*.f64 (cbrt.f64 (*.f64 re re)) (cbrt.f64 (/.f64 1 (pow.f64 re 16)))) 5/81) (fma.f64 2/3 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 re 4))) (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 re 10))) -1/9)) (*.f64 (/.f64 (-.f64 (fma.f64 2 (*.f64 (*.f64 (cbrt.f64 (*.f64 re re)) (cbrt.f64 (/.f64 1 (pow.f64 re 10)))) -1/9) (*.f64 1/9 (cbrt.f64 (/.f64 1 (pow.f64 re 8))))) (pow.f64 (*.f64 1/3 (cbrt.f64 (/.f64 1 (pow.f64 re 4)))) 2)) (*.f64 re re)) -1/3))) (pow.f64 im 6)))) (cbrt.f64 (*.f64 re re))))
(fma.f64 1/3 (*.f64 (*.f64 im im) (cbrt.f64 (/.f64 1 (pow.f64 re 4)))) (fma.f64 1/2 (*.f64 (cbrt.f64 (/.f64 1 (*.f64 re re))) (+.f64 (*.f64 (pow.f64 im 4) (-.f64 (fma.f64 2 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 re 10))) (*.f64 -1/9 (cbrt.f64 (*.f64 re re)))) (*.f64 1/9 (cbrt.f64 (/.f64 1 (pow.f64 re 8))))) (pow.f64 (*.f64 1/3 (cbrt.f64 (/.f64 1 (pow.f64 re 4)))) 2))) (*.f64 (fma.f64 2 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 re 16))) (*.f64 5/81 (cbrt.f64 (*.f64 re re)))) (fma.f64 2/3 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 re 4))) (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 re 10))) -1/9)) (*.f64 (/.f64 -1/3 (*.f64 re re)) (-.f64 (fma.f64 2 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 re 10))) (*.f64 -1/9 (cbrt.f64 (*.f64 re re)))) (*.f64 1/9 (cbrt.f64 (/.f64 1 (pow.f64 re 8))))) (pow.f64 (*.f64 1/3 (cbrt.f64 (/.f64 1 (pow.f64 re 4)))) 2))))) (pow.f64 im 6)))) (cbrt.f64 (*.f64 re re))))
(pow.f64 (pow.f64 im 4) 1/3)
(cbrt.f64 (pow.f64 im 4))
(+.f64 (pow.f64 (pow.f64 im 4) 1/3) (*.f64 2/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 2)) 1/3) (pow.f64 re 2))))
(+.f64 (cbrt.f64 (pow.f64 im 4)) (*.f64 2/3 (*.f64 (*.f64 re re) (cbrt.f64 (/.f64 1 (*.f64 im im))))))
(fma.f64 2/3 (*.f64 (*.f64 re re) (cbrt.f64 (/.f64 1 (*.f64 im im)))) (cbrt.f64 (pow.f64 im 4)))
(+.f64 (*.f64 (+.f64 (*.f64 1/9 (pow.f64 (/.f64 1 (pow.f64 im 8)) 1/3)) (*.f64 2 (*.f64 (pow.f64 (*.f64 1 (pow.f64 im 2)) 1/3) (+.f64 (*.f64 1/36 (pow.f64 (/.f64 1 (pow.f64 im 10)) 1/3)) (*.f64 -5/36 (pow.f64 (/.f64 1 (pow.f64 im 10)) 1/3)))))) (pow.f64 re 4)) (+.f64 (pow.f64 (pow.f64 im 4) 1/3) (*.f64 2/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 2)) 1/3) (pow.f64 re 2)))))
(fma.f64 (fma.f64 2 (*.f64 (cbrt.f64 (*.f64 im im)) (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 10))) -1/9)) (*.f64 1/9 (cbrt.f64 (/.f64 1 (pow.f64 im 8))))) (pow.f64 re 4) (+.f64 (cbrt.f64 (pow.f64 im 4)) (*.f64 2/3 (*.f64 (*.f64 re re) (cbrt.f64 (/.f64 1 (*.f64 im im)))))))
(fma.f64 (pow.f64 re 4) (fma.f64 2 (*.f64 (cbrt.f64 (*.f64 im im)) (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 10))) -1/9)) (*.f64 1/9 (cbrt.f64 (/.f64 1 (pow.f64 im 8))))) (fma.f64 2/3 (*.f64 (*.f64 re re) (cbrt.f64 (/.f64 1 (*.f64 im im)))) (cbrt.f64 (pow.f64 im 4))))
(fma.f64 (pow.f64 re 4) (fma.f64 2 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 10))) (*.f64 -1/9 (cbrt.f64 (*.f64 im im)))) (*.f64 1/9 (cbrt.f64 (/.f64 1 (pow.f64 im 8))))) (fma.f64 2/3 (*.f64 (*.f64 re re) (cbrt.f64 (/.f64 1 (*.f64 im im)))) (cbrt.f64 (pow.f64 im 4))))
(+.f64 (*.f64 (+.f64 (*.f64 1/9 (pow.f64 (/.f64 1 (pow.f64 im 8)) 1/3)) (*.f64 2 (*.f64 (pow.f64 (*.f64 1 (pow.f64 im 2)) 1/3) (+.f64 (*.f64 1/36 (pow.f64 (/.f64 1 (pow.f64 im 10)) 1/3)) (*.f64 -5/36 (pow.f64 (/.f64 1 (pow.f64 im 10)) 1/3)))))) (pow.f64 re 4)) (+.f64 (pow.f64 (pow.f64 im 4) 1/3) (+.f64 (*.f64 (+.f64 (*.f64 2/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 4)) 1/3) (+.f64 (*.f64 1/36 (pow.f64 (/.f64 1 (pow.f64 im 10)) 1/3)) (*.f64 -5/36 (pow.f64 (/.f64 1 (pow.f64 im 10)) 1/3))))) (*.f64 2 (*.f64 (pow.f64 (*.f64 1 (pow.f64 im 2)) 1/3) (+.f64 (*.f64 -5/216 (pow.f64 (/.f64 1 (pow.f64 im 16)) 1/3)) (*.f64 55/648 (pow.f64 (/.f64 1 (pow.f64 im 16)) 1/3)))))) (pow.f64 re 6)) (*.f64 2/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 2)) 1/3) (pow.f64 re 2))))))
(fma.f64 (fma.f64 2 (*.f64 (cbrt.f64 (*.f64 im im)) (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 10))) -1/9)) (*.f64 1/9 (cbrt.f64 (/.f64 1 (pow.f64 im 8))))) (pow.f64 re 4) (+.f64 (cbrt.f64 (pow.f64 im 4)) (fma.f64 (fma.f64 2 (*.f64 (cbrt.f64 (*.f64 im im)) (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 16))) 5/81)) (*.f64 2/3 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 4))) (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 10))) -1/9)))) (pow.f64 re 6) (*.f64 2/3 (*.f64 (*.f64 re re) (cbrt.f64 (/.f64 1 (*.f64 im im))))))))
(+.f64 (fma.f64 (pow.f64 re 4) (fma.f64 2 (*.f64 (cbrt.f64 (*.f64 im im)) (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 10))) -1/9)) (*.f64 1/9 (cbrt.f64 (/.f64 1 (pow.f64 im 8))))) (fma.f64 2/3 (*.f64 (*.f64 re re) (cbrt.f64 (/.f64 1 (*.f64 im im)))) (cbrt.f64 (pow.f64 im 4)))) (*.f64 (pow.f64 re 6) (fma.f64 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 4))) 2/3) (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 10))) -1/9) (*.f64 2 (*.f64 (cbrt.f64 (*.f64 im im)) (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 16))) 5/81))))))
(+.f64 (fma.f64 (pow.f64 re 4) (fma.f64 2 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 10))) (*.f64 -1/9 (cbrt.f64 (*.f64 im im)))) (*.f64 1/9 (cbrt.f64 (/.f64 1 (pow.f64 im 8))))) (fma.f64 2/3 (*.f64 (*.f64 re re) (cbrt.f64 (/.f64 1 (*.f64 im im)))) (cbrt.f64 (pow.f64 im 4)))) (*.f64 (pow.f64 re 6) (fma.f64 2 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 16))) (*.f64 5/81 (cbrt.f64 (*.f64 im im)))) (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 4))) (*.f64 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 10))) -1/9) 2/3)))))
(pow.f64 (pow.f64 re 4) 1/3)
(cbrt.f64 (pow.f64 re 4))
(+.f64 (*.f64 2/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 re 2)) 1/3) (pow.f64 im 2))) (pow.f64 (pow.f64 re 4) 1/3))
(fma.f64 2/3 (*.f64 (*.f64 im im) (cbrt.f64 (/.f64 1 (*.f64 re re)))) (cbrt.f64 (pow.f64 re 4)))
(+.f64 (*.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 (*.f64 1 (pow.f64 re 2)) 1/3) (+.f64 (*.f64 -5/36 (pow.f64 (/.f64 1 (pow.f64 re 10)) 1/3)) (*.f64 1/36 (pow.f64 (/.f64 1 (pow.f64 re 10)) 1/3))))) (*.f64 1/9 (pow.f64 (/.f64 1 (pow.f64 re 8)) 1/3))) (pow.f64 im 4)) (+.f64 (*.f64 2/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 re 2)) 1/3) (pow.f64 im 2))) (pow.f64 (pow.f64 re 4) 1/3)))
(fma.f64 (fma.f64 2 (*.f64 (cbrt.f64 (*.f64 re re)) (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 re 10))) -1/9)) (*.f64 1/9 (cbrt.f64 (/.f64 1 (pow.f64 re 8))))) (pow.f64 im 4) (fma.f64 2/3 (*.f64 (*.f64 im im) (cbrt.f64 (/.f64 1 (*.f64 re re)))) (cbrt.f64 (pow.f64 re 4))))
(fma.f64 (pow.f64 im 4) (fma.f64 2 (*.f64 (*.f64 (cbrt.f64 (*.f64 re re)) (cbrt.f64 (/.f64 1 (pow.f64 re 10)))) -1/9) (*.f64 1/9 (cbrt.f64 (/.f64 1 (pow.f64 re 8))))) (fma.f64 2/3 (*.f64 (*.f64 im im) (cbrt.f64 (/.f64 1 (*.f64 re re)))) (cbrt.f64 (pow.f64 re 4))))
(fma.f64 (pow.f64 im 4) (fma.f64 2 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 re 10))) (*.f64 -1/9 (cbrt.f64 (*.f64 re re)))) (*.f64 1/9 (cbrt.f64 (/.f64 1 (pow.f64 re 8))))) (fma.f64 2/3 (*.f64 (*.f64 im im) (cbrt.f64 (/.f64 1 (*.f64 re re)))) (cbrt.f64 (pow.f64 re 4))))
(+.f64 (*.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 (*.f64 1 (pow.f64 re 2)) 1/3) (+.f64 (*.f64 -5/216 (pow.f64 (/.f64 1 (pow.f64 re 16)) 1/3)) (*.f64 55/648 (pow.f64 (/.f64 1 (pow.f64 re 16)) 1/3))))) (*.f64 2/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 re 4)) 1/3) (+.f64 (*.f64 -5/36 (pow.f64 (/.f64 1 (pow.f64 re 10)) 1/3)) (*.f64 1/36 (pow.f64 (/.f64 1 (pow.f64 re 10)) 1/3)))))) (pow.f64 im 6)) (+.f64 (*.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 (*.f64 1 (pow.f64 re 2)) 1/3) (+.f64 (*.f64 -5/36 (pow.f64 (/.f64 1 (pow.f64 re 10)) 1/3)) (*.f64 1/36 (pow.f64 (/.f64 1 (pow.f64 re 10)) 1/3))))) (*.f64 1/9 (pow.f64 (/.f64 1 (pow.f64 re 8)) 1/3))) (pow.f64 im 4)) (+.f64 (*.f64 2/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 re 2)) 1/3) (pow.f64 im 2))) (pow.f64 (pow.f64 re 4) 1/3))))
(fma.f64 (fma.f64 2 (*.f64 (cbrt.f64 (*.f64 re re)) (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 re 16))) 5/81)) (*.f64 (*.f64 2/3 (cbrt.f64 (/.f64 1 (pow.f64 re 4)))) (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 re 10))) -1/9))) (pow.f64 im 6) (fma.f64 (fma.f64 2 (*.f64 (cbrt.f64 (*.f64 re re)) (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 re 10))) -1/9)) (*.f64 1/9 (cbrt.f64 (/.f64 1 (pow.f64 re 8))))) (pow.f64 im 4) (fma.f64 2/3 (*.f64 (*.f64 im im) (cbrt.f64 (/.f64 1 (*.f64 re re)))) (cbrt.f64 (pow.f64 re 4)))))
(fma.f64 (fma.f64 2 (*.f64 (*.f64 (cbrt.f64 (*.f64 re re)) (cbrt.f64 (/.f64 1 (pow.f64 re 16)))) 5/81) (*.f64 2/3 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 re 4))) (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 re 10))) -1/9)))) (pow.f64 im 6) (fma.f64 (pow.f64 im 4) (fma.f64 2 (*.f64 (*.f64 (cbrt.f64 (*.f64 re re)) (cbrt.f64 (/.f64 1 (pow.f64 re 10)))) -1/9) (*.f64 1/9 (cbrt.f64 (/.f64 1 (pow.f64 re 8))))) (fma.f64 2/3 (*.f64 (*.f64 im im) (cbrt.f64 (/.f64 1 (*.f64 re re)))) (cbrt.f64 (pow.f64 re 4)))))
(fma.f64 (fma.f64 2 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 re 16))) (*.f64 5/81 (cbrt.f64 (*.f64 re re)))) (*.f64 (*.f64 (*.f64 2/3 (cbrt.f64 (/.f64 1 (pow.f64 re 4)))) (cbrt.f64 (/.f64 1 (pow.f64 re 10)))) -1/9)) (pow.f64 im 6) (fma.f64 (pow.f64 im 4) (fma.f64 2 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 re 10))) (*.f64 -1/9 (cbrt.f64 (*.f64 re re)))) (*.f64 1/9 (cbrt.f64 (/.f64 1 (pow.f64 re 8))))) (fma.f64 2/3 (*.f64 (*.f64 im im) (cbrt.f64 (/.f64 1 (*.f64 re re)))) (cbrt.f64 (pow.f64 re 4)))))
(pow.f64 im 1/3)
(cbrt.f64 im)
(+.f64 (pow.f64 im 1/3) (*.f64 1/6 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 5)) 1/3) (pow.f64 re 2))))
(+.f64 (cbrt.f64 im) (*.f64 1/6 (*.f64 (*.f64 re re) (cbrt.f64 (/.f64 1 (pow.f64 im 5))))))
(fma.f64 1/6 (*.f64 (*.f64 re re) (cbrt.f64 (/.f64 1 (pow.f64 im 5)))) (cbrt.f64 im))
(+.f64 (pow.f64 im 1/3) (+.f64 (*.f64 -5/72 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 11)) 1/3) (pow.f64 re 4))) (*.f64 1/6 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 5)) 1/3) (pow.f64 re 2)))))
(+.f64 (cbrt.f64 im) (fma.f64 -5/72 (*.f64 (pow.f64 re 4) (cbrt.f64 (/.f64 1 (pow.f64 im 11)))) (*.f64 1/6 (*.f64 (*.f64 re re) (cbrt.f64 (/.f64 1 (pow.f64 im 5)))))))
(+.f64 (cbrt.f64 im) (fma.f64 1/6 (*.f64 (*.f64 re re) (cbrt.f64 (/.f64 1 (pow.f64 im 5)))) (*.f64 (pow.f64 re 4) (*.f64 -5/72 (cbrt.f64 (/.f64 1 (pow.f64 im 11)))))))
(+.f64 (pow.f64 im 1/3) (+.f64 (*.f64 -5/72 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 11)) 1/3) (pow.f64 re 4))) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 5)) 1/3) (pow.f64 re 2))) (*.f64 55/1296 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 17)) 1/3) (pow.f64 re 6))))))
(+.f64 (cbrt.f64 im) (fma.f64 -5/72 (*.f64 (pow.f64 re 4) (cbrt.f64 (/.f64 1 (pow.f64 im 11)))) (fma.f64 1/6 (*.f64 (*.f64 re re) (cbrt.f64 (/.f64 1 (pow.f64 im 5)))) (*.f64 55/1296 (*.f64 (pow.f64 re 6) (cbrt.f64 (/.f64 1 (pow.f64 im 17))))))))
(+.f64 (cbrt.f64 im) (fma.f64 -5/72 (*.f64 (pow.f64 re 4) (cbrt.f64 (/.f64 1 (pow.f64 im 11)))) (fma.f64 1/6 (*.f64 (*.f64 re re) (cbrt.f64 (/.f64 1 (pow.f64 im 5)))) (*.f64 (pow.f64 re 6) (*.f64 55/1296 (cbrt.f64 (/.f64 1 (pow.f64 im 17))))))))
(+.f64 (cbrt.f64 im) (fma.f64 -5/72 (*.f64 (pow.f64 re 4) (cbrt.f64 (/.f64 1 (pow.f64 im 11)))) (fma.f64 1/6 (*.f64 (*.f64 re re) (cbrt.f64 (/.f64 1 (pow.f64 im 5)))) (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 17))) (*.f64 (pow.f64 re 6) 55/1296)))))
(pow.f64 re 1/3)
(cbrt.f64 re)
(+.f64 (*.f64 1/6 (*.f64 (pow.f64 (/.f64 1 (pow.f64 re 5)) 1/3) (pow.f64 im 2))) (pow.f64 re 1/3))
(fma.f64 1/6 (*.f64 (*.f64 im im) (cbrt.f64 (/.f64 1 (pow.f64 re 5)))) (cbrt.f64 re))
(+.f64 (*.f64 -5/72 (*.f64 (pow.f64 (/.f64 1 (pow.f64 re 11)) 1/3) (pow.f64 im 4))) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 (/.f64 1 (pow.f64 re 5)) 1/3) (pow.f64 im 2))) (pow.f64 re 1/3)))
(fma.f64 -5/72 (*.f64 (pow.f64 im 4) (cbrt.f64 (/.f64 1 (pow.f64 re 11)))) (fma.f64 1/6 (*.f64 (*.f64 im im) (cbrt.f64 (/.f64 1 (pow.f64 re 5)))) (cbrt.f64 re)))
(+.f64 (*.f64 55/1296 (*.f64 (pow.f64 (/.f64 1 (pow.f64 re 17)) 1/3) (pow.f64 im 6))) (+.f64 (*.f64 -5/72 (*.f64 (pow.f64 (/.f64 1 (pow.f64 re 11)) 1/3) (pow.f64 im 4))) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 (/.f64 1 (pow.f64 re 5)) 1/3) (pow.f64 im 2))) (pow.f64 re 1/3))))
(fma.f64 55/1296 (*.f64 (pow.f64 im 6) (cbrt.f64 (/.f64 1 (pow.f64 re 17)))) (fma.f64 -5/72 (*.f64 (pow.f64 im 4) (cbrt.f64 (/.f64 1 (pow.f64 re 11)))) (fma.f64 1/6 (*.f64 (*.f64 im im) (cbrt.f64 (/.f64 1 (pow.f64 re 5)))) (cbrt.f64 re))))
im
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im)
(fma.f64 1/2 (/.f64 (*.f64 re re) im) im)
(fma.f64 1/2 (/.f64 re (/.f64 im re)) im)
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 (*.f64 re re) im) im))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 re (/.f64 im re)) im))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5))) im)))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 (*.f64 re re) im) (fma.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) im)))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 re (/.f64 im re)) (fma.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) im)))
re
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) re)
(fma.f64 1/2 (/.f64 (*.f64 im im) re) re)
(fma.f64 1/2 (/.f64 im (/.f64 re im)) re)
(fma.f64 1/2 (*.f64 (/.f64 im re) im) re)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(fma.f64 1/2 (/.f64 im (/.f64 re im)) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) re))
(fma.f64 1/2 (*.f64 (/.f64 im re) im) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) re))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(fma.f64 1/2 (/.f64 im (/.f64 re im)) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) re)))
(fma.f64 1/2 (*.f64 (/.f64 im re) im) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) re)))
(*.f64 -1 re)
(neg.f64 re)
(+.f64 (*.f64 -1 re) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(fma.f64 -1 re (*.f64 (/.f64 (*.f64 im im) re) -1/2))
(-.f64 (/.f64 (*.f64 (*.f64 im im) -1/2) re) re)
(-.f64 (/.f64 (*.f64 im im) (/.f64 re -1/2)) re)
(+.f64 (*.f64 -1 re) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re))))
(fma.f64 -1 re (fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (*.f64 (/.f64 (*.f64 im im) re) -1/2)))
(-.f64 (fma.f64 (/.f64 im (/.f64 re im)) -1/2 (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8)) re)
(-.f64 (fma.f64 (*.f64 (/.f64 im re) im) -1/2 (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8)) re)
(+.f64 (*.f64 -1 re) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (+.f64 (*.f64 -1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))))
(fma.f64 -1 re (fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 -1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (*.f64 (/.f64 (*.f64 im im) re) -1/2))))
(-.f64 (fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8 (fma.f64 (/.f64 im (/.f64 re im)) -1/2 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) -1/16))) re)
(-.f64 (fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8 (fma.f64 (*.f64 (/.f64 im re) im) -1/2 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) -1/16))) re)
re
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) re)
(fma.f64 1/2 (/.f64 (*.f64 im im) re) re)
(fma.f64 1/2 (/.f64 im (/.f64 re im)) re)
(fma.f64 1/2 (*.f64 (/.f64 im re) im) re)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(fma.f64 1/2 (/.f64 im (/.f64 re im)) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) re))
(fma.f64 1/2 (*.f64 (/.f64 im re) im) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) re))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(fma.f64 1/2 (/.f64 im (/.f64 re im)) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) re)))
(fma.f64 1/2 (*.f64 (/.f64 im re) im) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) re)))
im
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im)
(fma.f64 1/2 (/.f64 (*.f64 re re) im) im)
(fma.f64 1/2 (/.f64 re (/.f64 im re)) im)
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 (*.f64 re re) im) im))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 re (/.f64 im re)) im))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5))) im)))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 (*.f64 re re) im) (fma.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) im)))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 re (/.f64 im re)) (fma.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) im)))
(*.f64 -1 im)
(neg.f64 im)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(-.f64 (*.f64 (/.f64 re (/.f64 im re)) -1/2) im)
(-.f64 (*.f64 (/.f64 -1/2 im) (*.f64 re re)) im)
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(fma.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im)))
(-.f64 (fma.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) 1/8 (*.f64 (/.f64 re (/.f64 im re)) -1/2)) im)
(fma.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) 1/8 (-.f64 (*.f64 (/.f64 -1/2 im) (*.f64 re re)) im))
(+.f64 (*.f64 -1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5))) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))))
(fma.f64 -1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) (fma.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))))
(fma.f64 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) -1/16 (-.f64 (fma.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) 1/8 (*.f64 (/.f64 re (/.f64 im re)) -1/2)) im))
(fma.f64 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) -1/16 (fma.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) 1/8 (-.f64 (*.f64 (/.f64 -1/2 im) (*.f64 re re)) im)))

localize11.0ms (0.5%)

Local error

Found 1 expressions with local error:

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

Compiled 27 to 13 computations (51.9% saved)

series5.0ms (0.2%)

Counts
1 → 24
Calls

6 calls:

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

rewrite50.0ms (2.2%)

Algorithm
batch-egg-rewrite
Rules
705×pow1_binary64
656×add-log-exp_binary64
655×log1p-expm1-u_binary64
655×expm1-log1p-u_binary64
641×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify127.0ms (5.5%)

Algorithm
egg-herbie
Rules
682×associate-/l/_binary64
528×associate-*l*_binary64
493×*-commutative_binary64
470×sqr-pow_binary64
437×associate-*l/_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
08240
116240
231240
362240
4169240
5615240
62654240
73723240
83933240
94152240
104380240
114718240
126225240
136892240
147688240
Stop Event
node limit
Counts
46 → 24
Calls
Call 1
Inputs
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
Outputs
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 -1/2 (/.f64 im (/.f64 re im)))
(*.f64 -1/2 (*.f64 (/.f64 im re) im))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 -1/2 (/.f64 im (/.f64 re im)))
(*.f64 -1/2 (*.f64 (/.f64 im re) im))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 -1/2 (/.f64 im (/.f64 re im)))
(*.f64 -1/2 (*.f64 (/.f64 im re) im))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 -1/2 (/.f64 im (/.f64 re im)))
(*.f64 -1/2 (*.f64 (/.f64 im re) im))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 -1/2 (/.f64 im (/.f64 re im)))
(*.f64 -1/2 (*.f64 (/.f64 im re) im))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 -1/2 (/.f64 im (/.f64 re im)))
(*.f64 -1/2 (*.f64 (/.f64 im re) im))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 -1/2 (/.f64 im (/.f64 re im)))
(*.f64 -1/2 (*.f64 (/.f64 im re) im))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 -1/2 (/.f64 im (/.f64 re im)))
(*.f64 -1/2 (*.f64 (/.f64 im re) im))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 -1/2 (/.f64 im (/.f64 re im)))
(*.f64 -1/2 (*.f64 (/.f64 im re) im))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 -1/2 (/.f64 im (/.f64 re im)))
(*.f64 -1/2 (*.f64 (/.f64 im re) im))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 -1/2 (/.f64 im (/.f64 re im)))
(*.f64 -1/2 (*.f64 (/.f64 im re) im))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 -1/2 (/.f64 im (/.f64 re im)))
(*.f64 -1/2 (*.f64 (/.f64 im re) im))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 -1/2 (/.f64 im (/.f64 re im)))
(*.f64 -1/2 (*.f64 (/.f64 im re) im))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 -1/2 (/.f64 im (/.f64 re im)))
(*.f64 -1/2 (*.f64 (/.f64 im re) im))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 -1/2 (/.f64 im (/.f64 re im)))
(*.f64 -1/2 (*.f64 (/.f64 im re) im))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 -1/2 (/.f64 im (/.f64 re im)))
(*.f64 -1/2 (*.f64 (/.f64 im re) im))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 -1/2 (/.f64 im (/.f64 re im)))
(*.f64 -1/2 (*.f64 (/.f64 im re) im))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 -1/2 (/.f64 im (/.f64 re im)))
(*.f64 -1/2 (*.f64 (/.f64 im re) im))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 -1/2 (/.f64 im (/.f64 re im)))
(*.f64 -1/2 (*.f64 (/.f64 im re) im))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 -1/2 (/.f64 im (/.f64 re im)))
(*.f64 -1/2 (*.f64 (/.f64 im re) im))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 -1/2 (/.f64 im (/.f64 re im)))
(*.f64 -1/2 (*.f64 (/.f64 im re) im))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 -1/2 (/.f64 im (/.f64 re im)))
(*.f64 -1/2 (*.f64 (/.f64 im re) im))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 -1/2 (/.f64 im (/.f64 re im)))
(*.f64 -1/2 (*.f64 (/.f64 im re) im))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (*.f64 im im) re))
(*.f64 -1/2 (/.f64 im (/.f64 re im)))
(*.f64 -1/2 (*.f64 (/.f64 im re) im))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))

eval126.0ms (5.5%)

Compiler

Compiled 5418 to 3457 computations (36.2% saved)

prune62.0ms (2.7%)

Pruning

5 alts after pruning (2 fresh and 3 done)

PrunedKeptTotal
New2201221
Fresh011
Picked011
Done123
Total2215226
Error
0b
Counts
226 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(hypot.f64 re im)
17.3b
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 4)) (cbrt.f64 (hypot.f64 re im)))
35.6b
(-.f64 (*.f64 (*.f64 im im) (/.f64 -1/2 re)) re)
29.8b
im
32.7b
(neg.f64 re)
Compiler

Compiled 37 to 23 computations (37.8% saved)

localize28.0ms (1.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 4)) (cbrt.f64 (hypot.f64 re im)))
0.5b
(cbrt.f64 (hypot.f64 re im))
0.7b
(pow.f64 (cbrt.f64 (hypot.f64 re im)) 4)
15.6b
(sqrt.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 4))
Compiler

Compiled 37 to 14 computations (62.2% saved)

series20.0ms (0.9%)

Counts
2 → 32
Calls

12 calls:

TimeVariablePointExpression
7.0ms
re
@0
(sqrt.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 4))
3.0ms
im
@0
(sqrt.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 4))
2.0ms
re
@inf
(sqrt.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 4))
2.0ms
im
@inf
(sqrt.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 4))
1.0ms
im
@-inf
(sqrt.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 4))

rewrite207.0ms (9%)

Algorithm
batch-egg-rewrite
Rules
644×pow1_binary64
601×add-log-exp_binary64
601×log1p-expm1-u_binary64
601×expm1-log1p-u_binary64
584×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify54.0ms (2.3%)

Algorithm
egg-herbie
Rules
754×associate-*l/_binary64
610×associate-*r/_binary64
578×unswap-sqr_binary64
456×fma-def_binary64
409×associate-*r*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0111733
1328720
2960718
34017718
Stop Event
node limit
Counts
70 → 84
Calls
Call 1
Inputs
(pow.f64 (pow.f64 im 2) 1/3)
(+.f64 (*.f64 1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 4)) 1/3) (pow.f64 re 2))) (pow.f64 (pow.f64 im 2) 1/3))
(+.f64 (*.f64 1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 4)) 1/3) (pow.f64 re 2))) (+.f64 (*.f64 -1/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 10)) 1/3) (pow.f64 re 4))) (pow.f64 (pow.f64 im 2) 1/3)))
(+.f64 (*.f64 1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 4)) 1/3) (pow.f64 re 2))) (+.f64 (*.f64 5/81 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 16)) 1/3) (pow.f64 re 6))) (+.f64 (*.f64 -1/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 10)) 1/3) (pow.f64 re 4))) (pow.f64 (pow.f64 im 2) 1/3))))
(pow.f64 (pow.f64 re 2) 1/3)
(+.f64 (*.f64 1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 re 4)) 1/3) (pow.f64 im 2))) (pow.f64 (pow.f64 re 2) 1/3))
(+.f64 (*.f64 1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 re 4)) 1/3) (pow.f64 im 2))) (+.f64 (pow.f64 (pow.f64 re 2) 1/3) (*.f64 -1/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 re 10)) 1/3) (pow.f64 im 4)))))
(+.f64 (*.f64 1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 re 4)) 1/3) (pow.f64 im 2))) (+.f64 (pow.f64 (pow.f64 re 2) 1/3) (+.f64 (*.f64 -1/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 re 10)) 1/3) (pow.f64 im 4))) (*.f64 5/81 (*.f64 (pow.f64 (/.f64 1 (pow.f64 re 16)) 1/3) (pow.f64 im 6))))))
im
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im)
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5))) im)))
re
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) re)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(*.f64 -1 re)
(+.f64 (*.f64 -1 re) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 -1 re) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re))))
(+.f64 (*.f64 -1 re) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (+.f64 (*.f64 -1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))))
re
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) re)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
im
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im)
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5))) im)))
(*.f64 -1 im)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(+.f64 (*.f64 -1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5))) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))))
Outputs
(pow.f64 (pow.f64 im 2) 1/3)
(cbrt.f64 (*.f64 im im))
(+.f64 (*.f64 1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 4)) 1/3) (pow.f64 re 2))) (pow.f64 (pow.f64 im 2) 1/3))
(fma.f64 1/3 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 4))) (*.f64 re re)) (cbrt.f64 (*.f64 im im)))
(fma.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 4))) (*.f64 1/3 (*.f64 re re)) (cbrt.f64 (*.f64 im im)))
(+.f64 (*.f64 1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 4)) 1/3) (pow.f64 re 2))) (+.f64 (*.f64 -1/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 10)) 1/3) (pow.f64 re 4))) (pow.f64 (pow.f64 im 2) 1/3)))
(fma.f64 1/3 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 4))) (*.f64 re re)) (fma.f64 -1/9 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 10))) (pow.f64 re 4)) (cbrt.f64 (*.f64 im im))))
(fma.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 4))) (*.f64 1/3 (*.f64 re re)) (fma.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 10))) (*.f64 -1/9 (pow.f64 re 4)) (cbrt.f64 (*.f64 im im))))
(fma.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 4))) (*.f64 1/3 (*.f64 re re)) (fma.f64 -1/9 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 10))) (pow.f64 re 4)) (cbrt.f64 (*.f64 im im))))
(+.f64 (*.f64 1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 4)) 1/3) (pow.f64 re 2))) (+.f64 (*.f64 5/81 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 16)) 1/3) (pow.f64 re 6))) (+.f64 (*.f64 -1/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 10)) 1/3) (pow.f64 re 4))) (pow.f64 (pow.f64 im 2) 1/3))))
(fma.f64 1/3 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 4))) (*.f64 re re)) (fma.f64 5/81 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 16))) (pow.f64 re 6)) (fma.f64 -1/9 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 10))) (pow.f64 re 4)) (cbrt.f64 (*.f64 im im)))))
(fma.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 4))) (*.f64 1/3 (*.f64 re re)) (fma.f64 -1/9 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 10))) (pow.f64 re 4)) (fma.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 16))) (*.f64 5/81 (pow.f64 re 6)) (cbrt.f64 (*.f64 im im)))))
(fma.f64 1/3 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 4))) (*.f64 re re)) (fma.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 16))) (*.f64 5/81 (pow.f64 re 6)) (fma.f64 -1/9 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 im 10))) (pow.f64 re 4)) (cbrt.f64 (*.f64 im im)))))
(pow.f64 (pow.f64 re 2) 1/3)
(cbrt.f64 (*.f64 re re))
(+.f64 (*.f64 1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 re 4)) 1/3) (pow.f64 im 2))) (pow.f64 (pow.f64 re 2) 1/3))
(fma.f64 1/3 (*.f64 (*.f64 im im) (cbrt.f64 (/.f64 1 (pow.f64 re 4)))) (cbrt.f64 (*.f64 re re)))
(fma.f64 (*.f64 im im) (*.f64 1/3 (cbrt.f64 (/.f64 1 (pow.f64 re 4)))) (cbrt.f64 (*.f64 re re)))
(+.f64 (*.f64 1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 re 4)) 1/3) (pow.f64 im 2))) (+.f64 (pow.f64 (pow.f64 re 2) 1/3) (*.f64 -1/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 re 10)) 1/3) (pow.f64 im 4)))))
(+.f64 (fma.f64 1/3 (*.f64 (*.f64 im im) (cbrt.f64 (/.f64 1 (pow.f64 re 4)))) (cbrt.f64 (*.f64 re re))) (*.f64 -1/9 (*.f64 (pow.f64 im 4) (cbrt.f64 (/.f64 1 (pow.f64 re 10))))))
(fma.f64 1/3 (*.f64 (*.f64 im im) (cbrt.f64 (/.f64 1 (pow.f64 re 4)))) (fma.f64 -1/9 (*.f64 (pow.f64 im 4) (cbrt.f64 (/.f64 1 (pow.f64 re 10)))) (cbrt.f64 (*.f64 re re))))
(fma.f64 (*.f64 im im) (*.f64 1/3 (cbrt.f64 (/.f64 1 (pow.f64 re 4)))) (fma.f64 (pow.f64 im 4) (*.f64 -1/9 (cbrt.f64 (/.f64 1 (pow.f64 re 10)))) (cbrt.f64 (*.f64 re re))))
(+.f64 (*.f64 1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 re 4)) 1/3) (pow.f64 im 2))) (+.f64 (pow.f64 (pow.f64 re 2) 1/3) (+.f64 (*.f64 -1/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 re 10)) 1/3) (pow.f64 im 4))) (*.f64 5/81 (*.f64 (pow.f64 (/.f64 1 (pow.f64 re 16)) 1/3) (pow.f64 im 6))))))
(+.f64 (fma.f64 1/3 (*.f64 (*.f64 im im) (cbrt.f64 (/.f64 1 (pow.f64 re 4)))) (cbrt.f64 (*.f64 re re))) (fma.f64 -1/9 (*.f64 (pow.f64 im 4) (cbrt.f64 (/.f64 1 (pow.f64 re 10)))) (*.f64 5/81 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 re 16))) (pow.f64 im 6)))))
(fma.f64 (*.f64 im im) (*.f64 1/3 (cbrt.f64 (/.f64 1 (pow.f64 re 4)))) (fma.f64 (pow.f64 im 4) (*.f64 -1/9 (cbrt.f64 (/.f64 1 (pow.f64 re 10)))) (fma.f64 (cbrt.f64 (/.f64 1 (pow.f64 re 16))) (*.f64 5/81 (pow.f64 im 6)) (cbrt.f64 (*.f64 re re)))))
(fma.f64 (*.f64 im im) (*.f64 1/3 (cbrt.f64 (/.f64 1 (pow.f64 re 4)))) (fma.f64 (pow.f64 im 4) (*.f64 -1/9 (cbrt.f64 (/.f64 1 (pow.f64 re 10)))) (fma.f64 5/81 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 re 16))) (pow.f64 im 6)) (cbrt.f64 (*.f64 re re)))))
im
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im)
(fma.f64 1/2 (/.f64 (*.f64 re re) im) im)
(fma.f64 1/2 (/.f64 re (/.f64 im re)) im)
(fma.f64 1/2 (*.f64 (/.f64 re im) re) im)
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 (*.f64 re re) im) im))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 re (/.f64 im re)) im))
(fma.f64 1/2 (*.f64 (/.f64 re im) re) (fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) im))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5))) im)))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 (*.f64 re re) im) (fma.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) im)))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 re (/.f64 im re)) (fma.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) im)))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (*.f64 (/.f64 re im) re) (fma.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) im)))
(fma.f64 1/2 (*.f64 (/.f64 re im) re) (fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) im)))
re
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) re)
(fma.f64 1/2 (/.f64 (*.f64 im im) re) re)
(fma.f64 1/2 (/.f64 im (/.f64 re im)) re)
(fma.f64 1/2 (*.f64 (/.f64 im re) im) re)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(+.f64 (fma.f64 1/2 (/.f64 (*.f64 im im) re) re) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(fma.f64 1/2 (/.f64 im (/.f64 re im)) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) re))
(fma.f64 1/2 (*.f64 (/.f64 im re) im) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) re))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(fma.f64 1/2 (/.f64 im (/.f64 re im)) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) re)))
(fma.f64 1/2 (*.f64 (/.f64 im re) im) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) re)))
(fma.f64 1/2 (*.f64 (/.f64 im re) im) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) re)))
(*.f64 -1 re)
(neg.f64 re)
(+.f64 (*.f64 -1 re) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(fma.f64 -1 re (*.f64 (/.f64 (*.f64 im im) re) -1/2))
(-.f64 (*.f64 (/.f64 im (/.f64 re im)) -1/2) re)
(-.f64 (*.f64 (/.f64 -1/2 re) (*.f64 im im)) re)
(-.f64 (*.f64 (*.f64 (/.f64 im re) im) -1/2) re)
(+.f64 (*.f64 -1 re) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re))))
(fma.f64 -1 re (fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (*.f64 (/.f64 (*.f64 im im) re) -1/2)))
(-.f64 (fma.f64 (/.f64 im (/.f64 re im)) -1/2 (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8)) re)
(-.f64 (fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8 (*.f64 (/.f64 -1/2 re) (*.f64 im im))) re)
(fma.f64 (*.f64 (/.f64 im re) im) -1/2 (fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8 (neg.f64 re)))
(+.f64 (*.f64 -1 re) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (+.f64 (*.f64 -1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))))
(fma.f64 -1 re (fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 -1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (*.f64 (/.f64 (*.f64 im im) re) -1/2))))
(-.f64 (fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8 (fma.f64 (/.f64 im (/.f64 re im)) -1/2 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) -1/16))) re)
(-.f64 (fma.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) -1/16 (fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8 (*.f64 (/.f64 -1/2 re) (*.f64 im im)))) re)
(-.f64 (fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8 (*.f64 (*.f64 (/.f64 im re) im) -1/2)) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) re))
re
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) re)
(fma.f64 1/2 (/.f64 (*.f64 im im) re) re)
(fma.f64 1/2 (/.f64 im (/.f64 re im)) re)
(fma.f64 1/2 (*.f64 (/.f64 im re) im) re)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(+.f64 (fma.f64 1/2 (/.f64 (*.f64 im im) re) re) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(fma.f64 1/2 (/.f64 im (/.f64 re im)) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) re))
(fma.f64 1/2 (*.f64 (/.f64 im re) im) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) re))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(fma.f64 1/2 (/.f64 im (/.f64 re im)) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) re)))
(fma.f64 1/2 (*.f64 (/.f64 im re) im) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) re)))
(fma.f64 1/2 (*.f64 (/.f64 im re) im) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) re)))
im
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im)
(fma.f64 1/2 (/.f64 (*.f64 re re) im) im)
(fma.f64 1/2 (/.f64 re (/.f64 im re)) im)
(fma.f64 1/2 (*.f64 (/.f64 re im) re) im)
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 (*.f64 re re) im) im))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 re (/.f64 im re)) im))
(fma.f64 1/2 (*.f64 (/.f64 re im) re) (fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) im))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5))) im)))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 (*.f64 re re) im) (fma.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) im)))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 re (/.f64 im re)) (fma.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) im)))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (*.f64 (/.f64 re im) re) (fma.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) im)))
(fma.f64 1/2 (*.f64 (/.f64 re im) re) (fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) im)))
(*.f64 -1 im)
(neg.f64 im)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(-.f64 (*.f64 (/.f64 re (/.f64 im re)) -1/2) im)
(-.f64 (/.f64 (*.f64 (*.f64 re re) -1/2) im) im)
(-.f64 (*.f64 (/.f64 -1/2 (/.f64 im re)) re) im)
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(fma.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im)))
(-.f64 (fma.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) 1/8 (*.f64 (/.f64 re (/.f64 im re)) -1/2)) im)
(fma.f64 (*.f64 (/.f64 re im) re) -1/2 (fma.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) 1/8 (neg.f64 im)))
(-.f64 (*.f64 (/.f64 -1/2 (/.f64 im re)) re) (fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) im))
(+.f64 (*.f64 -1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5))) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))))
(fma.f64 -1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) (fma.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))))
(fma.f64 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) -1/16 (-.f64 (fma.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) 1/8 (*.f64 (/.f64 re (/.f64 im re)) -1/2)) im))
(fma.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) 1/8 (fma.f64 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) -1/16 (-.f64 (/.f64 (*.f64 (*.f64 re re) -1/2) im) im)))
(-.f64 (fma.f64 (*.f64 (/.f64 re im) re) -1/2 (*.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) 1/8)) (fma.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) im))

eval115.0ms (5%)

Compiler

Compiled 4367 to 2596 computations (40.6% saved)

prune28.0ms (1.2%)

Pruning

5 alts after pruning (1 fresh and 4 done)

PrunedKeptTotal
New2020202
Fresh011
Picked011
Done033
Total2025207
Error
0b
Counts
207 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(hypot.f64 re im)
17.3b
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 4)) (cbrt.f64 (hypot.f64 re im)))
35.6b
(-.f64 (*.f64 (*.f64 im im) (/.f64 -1/2 re)) re)
29.8b
im
32.7b
(neg.f64 re)
Compiler

Compiled 37 to 23 computations (37.8% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune2.0ms (0.1%)

Pruning

5 alts after pruning (1 fresh and 4 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done044
Total055
Error
0b
Counts
5 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(hypot.f64 re im)
17.3b
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 4)) (cbrt.f64 (hypot.f64 re im)))
35.6b
(-.f64 (*.f64 (*.f64 im im) (/.f64 -1/2 re)) re)
29.8b
im
32.7b
(neg.f64 re)
Compiler

Compiled 37 to 23 computations (37.8% saved)

regimes37.0ms (1.6%)

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

8 calls:

6.0ms
im
5.0ms
re
5.0ms
(*.f64 im im)
5.0ms
(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
4.0ms
(+.f64 (*.f64 re re) (*.f64 im im))
Results
ErrorSegmentsBranch
0.0b1re
0.0b1im
0.0b1(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
0.0b1(+.f64 (*.f64 re re) (*.f64 im im))
0.0b1(*.f64 re re)
0.0b1(*.f64 re re)
0.0b1(*.f64 im im)
0.0b1(*.f64 im im)
Compiler

Compiled 95 to 49 computations (48.4% saved)

regimes48.0ms (2.1%)

Accuracy

Total -54.0b remaining (-630%)

Threshold costs -54.0b (-630%)

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

4 calls:

18.0ms
(*.f64 im im)
12.0ms
im
10.0ms
(*.f64 im im)
7.0ms
re
Results
ErrorSegmentsBranch
9.6b2re
8.6b2im
13.4b4(*.f64 im im)
13.4b4(*.f64 im im)
Compiler

Compiled 30 to 18 computations (40% saved)

bsearch18.0ms (0.8%)

Algorithm
binary-search
Steps
TimeLeftRight
17.0ms
3.547216812216539e-117
5.8835338682343454e-111
Compiler

Compiled 15 to 10 computations (33.3% saved)

simplify3.0ms (0.1%)

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
0915
11315
21515
31615
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(hypot.f64 re im)
(if (<=.f64 im 5035653403498825/1419606883389857208104148062281258856159455782592418086487285545274686109596480318996466895925319463985864300012238628776434768805888) (neg.f64 re) im)
im
Outputs
(hypot.f64 re im)
(if (<=.f64 im 5035653403498825/1419606883389857208104148062281258856159455782592418086487285545274686109596480318996466895925319463985864300012238628776434768805888) (neg.f64 re) im)
im
Compiler

Compiled 17 to 11 computations (35.3% saved)

soundness7.0ms (0.3%)

Algorithm
egg-herbie
Rules
hypot-def_binary64
fma-def_binary64
+-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
074
1104
2124
Stop Event
saturated
Compiler

Compiled 15 to 9 computations (40% saved)

end22.0ms (1%)

Remove

(sort re im)

Compiler

Compiled 23 to 13 computations (43.5% saved)

Profiling

Loading profile data...