math.abs on complex (squared)

Time bar (total: 1.6s)

analyze0.0ms (0%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
100%99.9%0%0.1%0%0%0%1
Compiler

Compiled 10 to 6 computations (40% saved)

sample911.0ms (56.7%)

Results
567.0ms4640×body256valid
333.0ms3616×body256infinite
Bogosity

preprocess112.0ms (7%)

Algorithm
egg-herbie
Rules
190×fma-def
38×distribute-lft-neg-in
26×unsub-neg
26×neg-sub0
26×neg-mul-1
Problems
256×No Errors
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
020197
147197
2100197
3223197
4309197
5336197
Stop Event
saturated
Calls
Call 1
Inputs
(+.f64 (*.f64 re re) (*.f64 im im))
(+.f64 (*.f64 re re) (*.f64 im im))
(+.f64 (*.f64 (neg.f64 re) (neg.f64 re)) (*.f64 im im))
(+.f64 (*.f64 re re) (*.f64 (neg.f64 im) (neg.f64 im)))
(neg.f64 (+.f64 (*.f64 (neg.f64 re) (neg.f64 re)) (*.f64 im im)))
(neg.f64 (+.f64 (*.f64 re re) (*.f64 (neg.f64 im) (neg.f64 im))))
(+.f64 (*.f64 im im) (*.f64 re re))
Outputs
(+.f64 (*.f64 re re) (*.f64 im im))
(fma.f64 re re (*.f64 im im))
(+.f64 (*.f64 re re) (*.f64 im im))
(fma.f64 re re (*.f64 im im))
(+.f64 (*.f64 (neg.f64 re) (neg.f64 re)) (*.f64 im im))
(fma.f64 re re (*.f64 im im))
(+.f64 (*.f64 re re) (*.f64 (neg.f64 im) (neg.f64 im)))
(fma.f64 re re (*.f64 im im))
(neg.f64 (+.f64 (*.f64 (neg.f64 re) (neg.f64 re)) (*.f64 im im)))
(neg.f64 (fma.f64 re re (*.f64 im im)))
(neg.f64 (+.f64 (*.f64 re re) (*.f64 (neg.f64 im) (neg.f64 im))))
(neg.f64 (fma.f64 re re (*.f64 im im)))
(+.f64 (*.f64 im im) (*.f64 re re))
(fma.f64 re re (*.f64 im im))
Symmetry

(abs re)

(abs im)

(sort re im)

Compiler

Compiled 27 to 11 computations (59.3% saved)

eval0.0ms (0%)

Compiler

Compiled 8 to 4 computations (50% saved)

prune1.0ms (0.1%)

Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(+.f64 (*.f64 re re) (*.f64 im im))
100.0%
(+.f64 (*.f64 re re) (*.f64 im im))
Compiler

Compiled 18 to 10 computations (44.4% saved)

localize25.0ms (1.5%)

Localize:

Found 1 expressions with local error:

NewAccuracyProgram
100.0%
(+.f64 (*.f64 re re) (*.f64 im im))
Compiler

Compiled 18 to 6 computations (66.7% saved)

series2.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

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

rewrite121.0ms (7.5%)

Algorithm
batch-egg-rewrite
Rules
1146×prod-diff
712×unpow-prod-down
534×prod-exp
504×log1p-expm1-u
504×expm1-log1p-u
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01024
111719
2145319
Stop Event
node limit
Counts
1 → 58
Calls
Call 1
Inputs
(+.f64 (*.f64 re re) (*.f64 im im))
Outputs
(-.f64 (exp.f64 (log1p.f64 (pow.f64 (hypot.f64 re im) 2))) 1)
(-.f64 (/.f64 (pow.f64 re 4) (-.f64 (pow.f64 re 2) (pow.f64 im 2))) (/.f64 (pow.f64 im 4) (-.f64 (pow.f64 re 2) (pow.f64 im 2))))
(*.f64 (pow.f64 (hypot.f64 re im) 2) 1)
(*.f64 (pow.f64 (hypot.f64 re im) 2) (log.f64 (exp.f64 1)))
(*.f64 1 (pow.f64 (hypot.f64 re im) 2))
(*.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (cbrt.f64 (pow.f64 (hypot.f64 re im) 4)))
(*.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 4)) (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2))
(*.f64 (hypot.f64 re im) (hypot.f64 re im))
(*.f64 (+.f64 (pow.f64 im 6) (pow.f64 re 6)) (/.f64 1 (-.f64 (+.f64 (pow.f64 re 4) (pow.f64 im 4)) (pow.f64 (*.f64 re im) 2))))
(*.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (/.f64 1 (-.f64 (pow.f64 re 2) (pow.f64 im 2))))
(*.f64 (pow.f64 1 1/3) (pow.f64 (hypot.f64 re im) 2))
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)) 2) 3) (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2))
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)) 3) (pow.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)) 3))
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (hypot.f64 re im) 6)) 1/3) (pow.f64 (sqrt.f64 (pow.f64 (hypot.f64 re im) 6)) 1/3))
(*.f64 (pow.f64 (*.f64 (pow.f64 (hypot.f64 re im) 4) (cbrt.f64 (pow.f64 (hypot.f64 re im) 4))) 1/3) (cbrt.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)))
(*.f64 (pow.f64 (pow.f64 (pow.f64 (hypot.f64 re im) 2) 5/2) 1/3) (cbrt.f64 (hypot.f64 re im)))
(/.f64 1 (/.f64 (-.f64 (+.f64 (pow.f64 re 4) (pow.f64 im 4)) (pow.f64 (*.f64 re im) 2)) (+.f64 (pow.f64 im 6) (pow.f64 re 6))))
(/.f64 1 (/.f64 (-.f64 (pow.f64 re 2) (pow.f64 im 2)) (-.f64 (pow.f64 re 4) (pow.f64 im 4))))
(/.f64 (+.f64 (pow.f64 im 6) (pow.f64 re 6)) (-.f64 (+.f64 (pow.f64 re 4) (pow.f64 im 4)) (pow.f64 (*.f64 re im) 2)))
(/.f64 (+.f64 (pow.f64 im 6) (pow.f64 re 6)) (+.f64 (pow.f64 im 4) (-.f64 (pow.f64 re 4) (pow.f64 (*.f64 re im) 2))))
(/.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (-.f64 (pow.f64 re 2) (pow.f64 im 2)))
(/.f64 (neg.f64 (+.f64 (pow.f64 im 6) (pow.f64 re 6))) (neg.f64 (-.f64 (+.f64 (pow.f64 re 4) (pow.f64 im 4)) (pow.f64 (*.f64 re im) 2))))
(/.f64 (neg.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4))) (neg.f64 (-.f64 (pow.f64 re 2) (pow.f64 im 2))))
(/.f64 (-.f64 (pow.f64 im 4) (pow.f64 re 4)) (-.f64 (pow.f64 im 2) (pow.f64 re 2)))
(pow.f64 (pow.f64 (hypot.f64 re im) 2) 1)
(pow.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) 3)
(pow.f64 (pow.f64 (hypot.f64 re im) 4) 1/2)
(pow.f64 (pow.f64 (hypot.f64 re im) 6) 1/3)
(pow.f64 (hypot.f64 re im) 2)
(pow.f64 (/.f64 (-.f64 (+.f64 (pow.f64 re 4) (pow.f64 im 4)) (pow.f64 (*.f64 re im) 2)) (+.f64 (pow.f64 im 6) (pow.f64 re 6))) -1)
(pow.f64 (/.f64 (-.f64 (pow.f64 re 2) (pow.f64 im 2)) (-.f64 (pow.f64 re 4) (pow.f64 im 4))) -1)
(sqrt.f64 (pow.f64 (hypot.f64 re im) 4))
(log.f64 (exp.f64 (pow.f64 (hypot.f64 re im) 2)))
(cbrt.f64 (pow.f64 (hypot.f64 re im) 6))
(expm1.f64 (log1p.f64 (pow.f64 (hypot.f64 re im) 2)))
(exp.f64 (*.f64 2 (log.f64 (hypot.f64 re im))))
(exp.f64 (*.f64 (*.f64 2 (log.f64 (hypot.f64 re im))) 1))
(exp.f64 (*.f64 (*.f64 (*.f64 2 (log.f64 (hypot.f64 re im))) 1) 1))
(exp.f64 (*.f64 (log.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)) 3))
(exp.f64 (*.f64 (log.f64 (pow.f64 (hypot.f64 re im) 6)) 1/3))
(exp.f64 (*.f64 (log.f64 (hypot.f64 re im)) 2))
(log1p.f64 (expm1.f64 (pow.f64 (hypot.f64 re im) 2)))
(fma.f64 re re (pow.f64 im 2))
(fma.f64 (pow.f64 re 2) 1 (pow.f64 im 2))
(fma.f64 im im (pow.f64 re 2))
(fma.f64 (pow.f64 im 2) 1 (pow.f64 re 2))
(fma.f64 1 (pow.f64 re 2) (pow.f64 im 2))
(fma.f64 1 (pow.f64 im 2) (pow.f64 re 2))
(fma.f64 (pow.f64 (cbrt.f64 im) 2) (pow.f64 (cbrt.f64 im) 4) (pow.f64 re 2))
(fma.f64 (pow.f64 (cbrt.f64 im) 4) (pow.f64 (cbrt.f64 im) 2) (pow.f64 re 2))
(fma.f64 (pow.f64 (cbrt.f64 re) 2) (pow.f64 (cbrt.f64 re) 4) (pow.f64 im 2))
(fma.f64 (pow.f64 (cbrt.f64 re) 4) (pow.f64 (cbrt.f64 re) 2) (pow.f64 im 2))
(fma.f64 (sqrt.f64 im) (pow.f64 im 3/2) (pow.f64 re 2))
(fma.f64 (sqrt.f64 re) (pow.f64 re 3/2) (pow.f64 im 2))
(fma.f64 (pow.f64 im 3/2) (sqrt.f64 im) (pow.f64 re 2))
(fma.f64 (pow.f64 re 3/2) (sqrt.f64 re) (pow.f64 im 2))
(fma.f64 (pow.f64 (cbrt.f64 im) 5) (cbrt.f64 im) (pow.f64 re 2))
(fma.f64 (pow.f64 (cbrt.f64 re) 5) (cbrt.f64 re) (pow.f64 im 2))

simplify64.0ms (4%)

Algorithm
egg-herbie
Rules
1002×fma-neg
822×div-sub
634×distribute-lft-neg-in
626×distribute-lft-in
610×associate-*r*
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01512482
13632446
29112446
336922271
Stop Event
node limit
Counts
82 → 67
Calls
Call 1
Inputs
(pow.f64 im 2)
(+.f64 (pow.f64 im 2) (pow.f64 re 2))
(+.f64 (pow.f64 im 2) (pow.f64 re 2))
(+.f64 (pow.f64 im 2) (pow.f64 re 2))
(pow.f64 re 2)
(+.f64 (pow.f64 im 2) (pow.f64 re 2))
(+.f64 (pow.f64 im 2) (pow.f64 re 2))
(+.f64 (pow.f64 im 2) (pow.f64 re 2))
(pow.f64 re 2)
(+.f64 (pow.f64 im 2) (pow.f64 re 2))
(+.f64 (pow.f64 im 2) (pow.f64 re 2))
(+.f64 (pow.f64 im 2) (pow.f64 re 2))
(pow.f64 re 2)
(+.f64 (pow.f64 im 2) (pow.f64 re 2))
(+.f64 (pow.f64 im 2) (pow.f64 re 2))
(+.f64 (pow.f64 im 2) (pow.f64 re 2))
(pow.f64 im 2)
(+.f64 (pow.f64 im 2) (pow.f64 re 2))
(+.f64 (pow.f64 im 2) (pow.f64 re 2))
(+.f64 (pow.f64 im 2) (pow.f64 re 2))
(pow.f64 im 2)
(+.f64 (pow.f64 im 2) (pow.f64 re 2))
(+.f64 (pow.f64 im 2) (pow.f64 re 2))
(+.f64 (pow.f64 im 2) (pow.f64 re 2))
(-.f64 (exp.f64 (log1p.f64 (pow.f64 (hypot.f64 re im) 2))) 1)
(-.f64 (/.f64 (pow.f64 re 4) (-.f64 (pow.f64 re 2) (pow.f64 im 2))) (/.f64 (pow.f64 im 4) (-.f64 (pow.f64 re 2) (pow.f64 im 2))))
(*.f64 (pow.f64 (hypot.f64 re im) 2) 1)
(*.f64 (pow.f64 (hypot.f64 re im) 2) (log.f64 (exp.f64 1)))
(*.f64 1 (pow.f64 (hypot.f64 re im) 2))
(*.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (cbrt.f64 (pow.f64 (hypot.f64 re im) 4)))
(*.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 4)) (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2))
(*.f64 (hypot.f64 re im) (hypot.f64 re im))
(*.f64 (+.f64 (pow.f64 im 6) (pow.f64 re 6)) (/.f64 1 (-.f64 (+.f64 (pow.f64 re 4) (pow.f64 im 4)) (pow.f64 (*.f64 re im) 2))))
(*.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (/.f64 1 (-.f64 (pow.f64 re 2) (pow.f64 im 2))))
(*.f64 (pow.f64 1 1/3) (pow.f64 (hypot.f64 re im) 2))
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)) 2) 3) (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2))
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)) 3) (pow.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)) 3))
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (hypot.f64 re im) 6)) 1/3) (pow.f64 (sqrt.f64 (pow.f64 (hypot.f64 re im) 6)) 1/3))
(*.f64 (pow.f64 (*.f64 (pow.f64 (hypot.f64 re im) 4) (cbrt.f64 (pow.f64 (hypot.f64 re im) 4))) 1/3) (cbrt.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)))
(*.f64 (pow.f64 (pow.f64 (pow.f64 (hypot.f64 re im) 2) 5/2) 1/3) (cbrt.f64 (hypot.f64 re im)))
(/.f64 1 (/.f64 (-.f64 (+.f64 (pow.f64 re 4) (pow.f64 im 4)) (pow.f64 (*.f64 re im) 2)) (+.f64 (pow.f64 im 6) (pow.f64 re 6))))
(/.f64 1 (/.f64 (-.f64 (pow.f64 re 2) (pow.f64 im 2)) (-.f64 (pow.f64 re 4) (pow.f64 im 4))))
(/.f64 (+.f64 (pow.f64 im 6) (pow.f64 re 6)) (-.f64 (+.f64 (pow.f64 re 4) (pow.f64 im 4)) (pow.f64 (*.f64 re im) 2)))
(/.f64 (+.f64 (pow.f64 im 6) (pow.f64 re 6)) (+.f64 (pow.f64 im 4) (-.f64 (pow.f64 re 4) (pow.f64 (*.f64 re im) 2))))
(/.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (-.f64 (pow.f64 re 2) (pow.f64 im 2)))
(/.f64 (neg.f64 (+.f64 (pow.f64 im 6) (pow.f64 re 6))) (neg.f64 (-.f64 (+.f64 (pow.f64 re 4) (pow.f64 im 4)) (pow.f64 (*.f64 re im) 2))))
(/.f64 (neg.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4))) (neg.f64 (-.f64 (pow.f64 re 2) (pow.f64 im 2))))
(/.f64 (-.f64 (pow.f64 im 4) (pow.f64 re 4)) (-.f64 (pow.f64 im 2) (pow.f64 re 2)))
(pow.f64 (pow.f64 (hypot.f64 re im) 2) 1)
(pow.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) 3)
(pow.f64 (pow.f64 (hypot.f64 re im) 4) 1/2)
(pow.f64 (pow.f64 (hypot.f64 re im) 6) 1/3)
(pow.f64 (hypot.f64 re im) 2)
(pow.f64 (/.f64 (-.f64 (+.f64 (pow.f64 re 4) (pow.f64 im 4)) (pow.f64 (*.f64 re im) 2)) (+.f64 (pow.f64 im 6) (pow.f64 re 6))) -1)
(pow.f64 (/.f64 (-.f64 (pow.f64 re 2) (pow.f64 im 2)) (-.f64 (pow.f64 re 4) (pow.f64 im 4))) -1)
(sqrt.f64 (pow.f64 (hypot.f64 re im) 4))
(log.f64 (exp.f64 (pow.f64 (hypot.f64 re im) 2)))
(cbrt.f64 (pow.f64 (hypot.f64 re im) 6))
(expm1.f64 (log1p.f64 (pow.f64 (hypot.f64 re im) 2)))
(exp.f64 (*.f64 2 (log.f64 (hypot.f64 re im))))
(exp.f64 (*.f64 (*.f64 2 (log.f64 (hypot.f64 re im))) 1))
(exp.f64 (*.f64 (*.f64 (*.f64 2 (log.f64 (hypot.f64 re im))) 1) 1))
(exp.f64 (*.f64 (log.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)) 3))
(exp.f64 (*.f64 (log.f64 (pow.f64 (hypot.f64 re im) 6)) 1/3))
(exp.f64 (*.f64 (log.f64 (hypot.f64 re im)) 2))
(log1p.f64 (expm1.f64 (pow.f64 (hypot.f64 re im) 2)))
(fma.f64 re re (pow.f64 im 2))
(fma.f64 (pow.f64 re 2) 1 (pow.f64 im 2))
(fma.f64 im im (pow.f64 re 2))
(fma.f64 (pow.f64 im 2) 1 (pow.f64 re 2))
(fma.f64 1 (pow.f64 re 2) (pow.f64 im 2))
(fma.f64 1 (pow.f64 im 2) (pow.f64 re 2))
(fma.f64 (pow.f64 (cbrt.f64 im) 2) (pow.f64 (cbrt.f64 im) 4) (pow.f64 re 2))
(fma.f64 (pow.f64 (cbrt.f64 im) 4) (pow.f64 (cbrt.f64 im) 2) (pow.f64 re 2))
(fma.f64 (pow.f64 (cbrt.f64 re) 2) (pow.f64 (cbrt.f64 re) 4) (pow.f64 im 2))
(fma.f64 (pow.f64 (cbrt.f64 re) 4) (pow.f64 (cbrt.f64 re) 2) (pow.f64 im 2))
(fma.f64 (sqrt.f64 im) (pow.f64 im 3/2) (pow.f64 re 2))
(fma.f64 (sqrt.f64 re) (pow.f64 re 3/2) (pow.f64 im 2))
(fma.f64 (pow.f64 im 3/2) (sqrt.f64 im) (pow.f64 re 2))
(fma.f64 (pow.f64 re 3/2) (sqrt.f64 re) (pow.f64 im 2))
(fma.f64 (pow.f64 (cbrt.f64 im) 5) (cbrt.f64 im) (pow.f64 re 2))
(fma.f64 (pow.f64 (cbrt.f64 re) 5) (cbrt.f64 re) (pow.f64 im 2))
Outputs
(pow.f64 im 2)
(+.f64 (pow.f64 im 2) (pow.f64 re 2))
(fma.f64 im im (pow.f64 re 2))
(+.f64 (pow.f64 im 2) (pow.f64 re 2))
(fma.f64 im im (pow.f64 re 2))
(+.f64 (pow.f64 im 2) (pow.f64 re 2))
(fma.f64 im im (pow.f64 re 2))
(pow.f64 re 2)
(+.f64 (pow.f64 im 2) (pow.f64 re 2))
(fma.f64 im im (pow.f64 re 2))
(+.f64 (pow.f64 im 2) (pow.f64 re 2))
(fma.f64 im im (pow.f64 re 2))
(+.f64 (pow.f64 im 2) (pow.f64 re 2))
(fma.f64 im im (pow.f64 re 2))
(pow.f64 re 2)
(+.f64 (pow.f64 im 2) (pow.f64 re 2))
(fma.f64 im im (pow.f64 re 2))
(+.f64 (pow.f64 im 2) (pow.f64 re 2))
(fma.f64 im im (pow.f64 re 2))
(+.f64 (pow.f64 im 2) (pow.f64 re 2))
(fma.f64 im im (pow.f64 re 2))
(pow.f64 re 2)
(+.f64 (pow.f64 im 2) (pow.f64 re 2))
(fma.f64 im im (pow.f64 re 2))
(+.f64 (pow.f64 im 2) (pow.f64 re 2))
(fma.f64 im im (pow.f64 re 2))
(+.f64 (pow.f64 im 2) (pow.f64 re 2))
(fma.f64 im im (pow.f64 re 2))
(pow.f64 im 2)
(+.f64 (pow.f64 im 2) (pow.f64 re 2))
(fma.f64 im im (pow.f64 re 2))
(+.f64 (pow.f64 im 2) (pow.f64 re 2))
(fma.f64 im im (pow.f64 re 2))
(+.f64 (pow.f64 im 2) (pow.f64 re 2))
(fma.f64 im im (pow.f64 re 2))
(pow.f64 im 2)
(+.f64 (pow.f64 im 2) (pow.f64 re 2))
(fma.f64 im im (pow.f64 re 2))
(+.f64 (pow.f64 im 2) (pow.f64 re 2))
(fma.f64 im im (pow.f64 re 2))
(+.f64 (pow.f64 im 2) (pow.f64 re 2))
(fma.f64 im im (pow.f64 re 2))
(-.f64 (exp.f64 (log1p.f64 (pow.f64 (hypot.f64 re im) 2))) 1)
(pow.f64 (hypot.f64 re im) 2)
(-.f64 (/.f64 (pow.f64 re 4) (-.f64 (pow.f64 re 2) (pow.f64 im 2))) (/.f64 (pow.f64 im 4) (-.f64 (pow.f64 re 2) (pow.f64 im 2))))
(/.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (-.f64 (pow.f64 re 2) (pow.f64 im 2)))
(*.f64 (fma.f64 im im (pow.f64 re 2)) 1)
(*.f64 (pow.f64 (hypot.f64 re im) 2) 1)
(pow.f64 (hypot.f64 re im) 2)
(*.f64 (pow.f64 (hypot.f64 re im) 2) (log.f64 (exp.f64 1)))
(pow.f64 (hypot.f64 re im) 2)
(*.f64 1 (pow.f64 (hypot.f64 re im) 2))
(pow.f64 (hypot.f64 re im) 2)
(*.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (cbrt.f64 (pow.f64 (hypot.f64 re im) 4)))
(*.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 4)) (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2))
(*.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (cbrt.f64 (pow.f64 (hypot.f64 re im) 4)))
(*.f64 (hypot.f64 re im) (hypot.f64 re im))
(pow.f64 (hypot.f64 re im) 2)
(*.f64 (+.f64 (pow.f64 im 6) (pow.f64 re 6)) (/.f64 1 (-.f64 (+.f64 (pow.f64 re 4) (pow.f64 im 4)) (pow.f64 (*.f64 re im) 2))))
(/.f64 (*.f64 (+.f64 (pow.f64 im 6) (pow.f64 re 6)) 1) (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 im re) 2))))
(/.f64 (+.f64 (pow.f64 im 6) (pow.f64 re 6)) (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 im re) 2))))
(/.f64 (+.f64 (pow.f64 im 6) (pow.f64 re 6)) (-.f64 (+.f64 (pow.f64 re 4) (pow.f64 im 4)) (pow.f64 (*.f64 im re) 2)))
(*.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (/.f64 1 (-.f64 (pow.f64 re 2) (pow.f64 im 2))))
(/.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (-.f64 (pow.f64 re 2) (pow.f64 im 2)))
(*.f64 (fma.f64 im im (pow.f64 re 2)) 1)
(*.f64 (pow.f64 1 1/3) (pow.f64 (hypot.f64 re im) 2))
(pow.f64 (hypot.f64 re im) 2)
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)) 2) 3) (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2))
(pow.f64 (hypot.f64 re im) 2)
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)) 3) (pow.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)) 3))
(pow.f64 (hypot.f64 re im) 2)
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (hypot.f64 re im) 6)) 1/3) (pow.f64 (sqrt.f64 (pow.f64 (hypot.f64 re im) 6)) 1/3))
(pow.f64 (hypot.f64 re im) 2)
(*.f64 (pow.f64 (*.f64 (pow.f64 (hypot.f64 re im) 4) (cbrt.f64 (pow.f64 (hypot.f64 re im) 4))) 1/3) (cbrt.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)))
(*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)) (cbrt.f64 (*.f64 (pow.f64 (hypot.f64 re im) 4) (cbrt.f64 (pow.f64 (hypot.f64 re im) 4)))))
(*.f64 (pow.f64 (pow.f64 (pow.f64 (hypot.f64 re im) 2) 5/2) 1/3) (cbrt.f64 (hypot.f64 re im)))
(*.f64 (cbrt.f64 (hypot.f64 re im)) (cbrt.f64 (pow.f64 (pow.f64 (hypot.f64 re im) 2) 5/2)))
(/.f64 1 (/.f64 (-.f64 (+.f64 (pow.f64 re 4) (pow.f64 im 4)) (pow.f64 (*.f64 re im) 2)) (+.f64 (pow.f64 im 6) (pow.f64 re 6))))
(/.f64 (*.f64 (+.f64 (pow.f64 im 6) (pow.f64 re 6)) 1) (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 im re) 2))))
(/.f64 (+.f64 (pow.f64 im 6) (pow.f64 re 6)) (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 im re) 2))))
(/.f64 (+.f64 (pow.f64 im 6) (pow.f64 re 6)) (-.f64 (+.f64 (pow.f64 re 4) (pow.f64 im 4)) (pow.f64 (*.f64 im re) 2)))
(/.f64 1 (/.f64 (-.f64 (pow.f64 re 2) (pow.f64 im 2)) (-.f64 (pow.f64 re 4) (pow.f64 im 4))))
(/.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (-.f64 (pow.f64 re 2) (pow.f64 im 2)))
(*.f64 (fma.f64 im im (pow.f64 re 2)) 1)
(/.f64 (+.f64 (pow.f64 im 6) (pow.f64 re 6)) (-.f64 (+.f64 (pow.f64 re 4) (pow.f64 im 4)) (pow.f64 (*.f64 re im) 2)))
(/.f64 (*.f64 (+.f64 (pow.f64 im 6) (pow.f64 re 6)) 1) (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 im re) 2))))
(/.f64 (+.f64 (pow.f64 im 6) (pow.f64 re 6)) (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 im re) 2))))
(/.f64 (+.f64 (pow.f64 im 6) (pow.f64 re 6)) (-.f64 (+.f64 (pow.f64 re 4) (pow.f64 im 4)) (pow.f64 (*.f64 im re) 2)))
(/.f64 (+.f64 (pow.f64 im 6) (pow.f64 re 6)) (+.f64 (pow.f64 im 4) (-.f64 (pow.f64 re 4) (pow.f64 (*.f64 re im) 2))))
(/.f64 (*.f64 (+.f64 (pow.f64 im 6) (pow.f64 re 6)) 1) (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 im re) 2))))
(/.f64 (+.f64 (pow.f64 im 6) (pow.f64 re 6)) (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 im re) 2))))
(/.f64 (+.f64 (pow.f64 im 6) (pow.f64 re 6)) (-.f64 (+.f64 (pow.f64 re 4) (pow.f64 im 4)) (pow.f64 (*.f64 im re) 2)))
(/.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (-.f64 (pow.f64 re 2) (pow.f64 im 2)))
(*.f64 (fma.f64 im im (pow.f64 re 2)) 1)
(/.f64 (neg.f64 (+.f64 (pow.f64 im 6) (pow.f64 re 6))) (neg.f64 (-.f64 (+.f64 (pow.f64 re 4) (pow.f64 im 4)) (pow.f64 (*.f64 re im) 2))))
(/.f64 (*.f64 (+.f64 (pow.f64 im 6) (pow.f64 re 6)) 1) (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 im re) 2))))
(/.f64 (+.f64 (pow.f64 im 6) (pow.f64 re 6)) (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 im re) 2))))
(/.f64 (+.f64 (pow.f64 im 6) (pow.f64 re 6)) (-.f64 (+.f64 (pow.f64 re 4) (pow.f64 im 4)) (pow.f64 (*.f64 im re) 2)))
(/.f64 (neg.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4))) (neg.f64 (-.f64 (pow.f64 re 2) (pow.f64 im 2))))
(/.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (-.f64 (pow.f64 re 2) (pow.f64 im 2)))
(*.f64 (fma.f64 im im (pow.f64 re 2)) 1)
(/.f64 (-.f64 (pow.f64 im 4) (pow.f64 re 4)) (-.f64 (pow.f64 im 2) (pow.f64 re 2)))
(/.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (-.f64 (pow.f64 re 2) (pow.f64 im 2)))
(*.f64 (fma.f64 im im (pow.f64 re 2)) 1)
(pow.f64 (pow.f64 (hypot.f64 re im) 2) 1)
(pow.f64 (hypot.f64 re im) 2)
(pow.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) 3)
(pow.f64 (hypot.f64 re im) 2)
(pow.f64 (pow.f64 (hypot.f64 re im) 4) 1/2)
(pow.f64 (hypot.f64 re im) 2)
(pow.f64 (pow.f64 (hypot.f64 re im) 6) 1/3)
(pow.f64 (hypot.f64 re im) 2)
(pow.f64 (hypot.f64 re im) 2)
(pow.f64 (/.f64 (-.f64 (+.f64 (pow.f64 re 4) (pow.f64 im 4)) (pow.f64 (*.f64 re im) 2)) (+.f64 (pow.f64 im 6) (pow.f64 re 6))) -1)
(/.f64 (*.f64 (+.f64 (pow.f64 im 6) (pow.f64 re 6)) 1) (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 im re) 2))))
(/.f64 (+.f64 (pow.f64 im 6) (pow.f64 re 6)) (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 im re) 2))))
(/.f64 (+.f64 (pow.f64 im 6) (pow.f64 re 6)) (-.f64 (+.f64 (pow.f64 re 4) (pow.f64 im 4)) (pow.f64 (*.f64 im re) 2)))
(pow.f64 (/.f64 (-.f64 (pow.f64 re 2) (pow.f64 im 2)) (-.f64 (pow.f64 re 4) (pow.f64 im 4))) -1)
(/.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (-.f64 (pow.f64 re 2) (pow.f64 im 2)))
(*.f64 (fma.f64 im im (pow.f64 re 2)) 1)
(sqrt.f64 (pow.f64 (hypot.f64 re im) 4))
(pow.f64 (hypot.f64 re im) 2)
(log.f64 (exp.f64 (pow.f64 (hypot.f64 re im) 2)))
(pow.f64 (hypot.f64 re im) 2)
(cbrt.f64 (pow.f64 (hypot.f64 re im) 6))
(pow.f64 (hypot.f64 re im) 2)
(expm1.f64 (log1p.f64 (pow.f64 (hypot.f64 re im) 2)))
(pow.f64 (hypot.f64 re im) 2)
(exp.f64 (*.f64 2 (log.f64 (hypot.f64 re im))))
(pow.f64 (hypot.f64 re im) 2)
(exp.f64 (*.f64 (*.f64 2 (log.f64 (hypot.f64 re im))) 1))
(pow.f64 (hypot.f64 re im) 2)
(exp.f64 (*.f64 (*.f64 (*.f64 2 (log.f64 (hypot.f64 re im))) 1) 1))
(pow.f64 (hypot.f64 re im) 2)
(exp.f64 (*.f64 (log.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)) 3))
(pow.f64 (hypot.f64 re im) 2)
(exp.f64 (*.f64 (log.f64 (pow.f64 (hypot.f64 re im) 6)) 1/3))
(pow.f64 (hypot.f64 re im) 2)
(exp.f64 (*.f64 (log.f64 (hypot.f64 re im)) 2))
(pow.f64 (hypot.f64 re im) 2)
(log1p.f64 (expm1.f64 (pow.f64 (hypot.f64 re im) 2)))
(pow.f64 (hypot.f64 re im) 2)
(fma.f64 re re (pow.f64 im 2))
(fma.f64 im im (pow.f64 re 2))
(fma.f64 (pow.f64 re 2) 1 (pow.f64 im 2))
(fma.f64 im im (pow.f64 re 2))
(fma.f64 im im (pow.f64 re 2))
(fma.f64 (pow.f64 im 2) 1 (pow.f64 re 2))
(fma.f64 im im (pow.f64 re 2))
(fma.f64 1 (pow.f64 re 2) (pow.f64 im 2))
(fma.f64 im im (pow.f64 re 2))
(fma.f64 1 (pow.f64 im 2) (pow.f64 re 2))
(fma.f64 im im (pow.f64 re 2))
(fma.f64 (pow.f64 (cbrt.f64 im) 2) (pow.f64 (cbrt.f64 im) 4) (pow.f64 re 2))
(fma.f64 im im (pow.f64 re 2))
(fma.f64 (pow.f64 (cbrt.f64 im) 4) (pow.f64 (cbrt.f64 im) 2) (pow.f64 re 2))
(fma.f64 im im (pow.f64 re 2))
(fma.f64 (pow.f64 (cbrt.f64 re) 2) (pow.f64 (cbrt.f64 re) 4) (pow.f64 im 2))
(fma.f64 im im (pow.f64 re 2))
(fma.f64 (pow.f64 (cbrt.f64 re) 4) (pow.f64 (cbrt.f64 re) 2) (pow.f64 im 2))
(fma.f64 im im (pow.f64 re 2))
(fma.f64 (sqrt.f64 im) (pow.f64 im 3/2) (pow.f64 re 2))
(fma.f64 im im (pow.f64 re 2))
(fma.f64 (sqrt.f64 re) (pow.f64 re 3/2) (pow.f64 im 2))
(fma.f64 im im (pow.f64 re 2))
(fma.f64 (pow.f64 im 3/2) (sqrt.f64 im) (pow.f64 re 2))
(fma.f64 im im (pow.f64 re 2))
(fma.f64 (pow.f64 re 3/2) (sqrt.f64 re) (pow.f64 im 2))
(fma.f64 im im (pow.f64 re 2))
(fma.f64 (pow.f64 (cbrt.f64 im) 5) (cbrt.f64 im) (pow.f64 re 2))
(fma.f64 im im (pow.f64 re 2))
(fma.f64 (pow.f64 (cbrt.f64 re) 5) (cbrt.f64 re) (pow.f64 im 2))
(fma.f64 im im (pow.f64 re 2))

eval32.0ms (2%)

Compiler

Compiled 809 to 513 computations (36.6% saved)

prune10.0ms (0.6%)

Pruning

2 alts after pruning (1 fresh and 1 done)

PrunedKeptTotal
New66167
Fresh000
Picked011
Done000
Total66268
Accuracy
100.0%
Counts
68 → 2
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(pow.f64 (hypot.f64 re im) 2)
100.0%
(+.f64 (*.f64 re re) (*.f64 im im))
100.0%
(pow.f64 (hypot.f64 re im) 2)
100.0%
(+.f64 (*.f64 re re) (*.f64 im im))
Compiler

Compiled 32 to 20 computations (37.5% saved)

localize24.0ms (1.5%)

Localize:

Found 1 expressions with local error:

NewAccuracyProgram
100.0%
(pow.f64 (hypot.f64 re im) 2)
Compiler

Compiled 14 to 7 computations (50% saved)

series4.0ms (0.3%)

Counts
1 → 24
Calls

6 calls:

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

rewrite55.0ms (3.4%)

Algorithm
batch-egg-rewrite
Rules
446×unpow-prod-down
338×log-prod
330×cbrt-prod
304×log1p-expm1-u
304×expm1-log1p-u
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01019
18919
291119
Stop Event
node limit
Counts
1 → 58
Calls
Call 1
Inputs
(pow.f64 (hypot.f64 re im) 2)
Outputs
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(+.f64 (pow.f64 im 2) (pow.f64 re 2))
(+.f64 (+.f64 1 (pow.f64 (hypot.f64 re im) 2)) -1)
(+.f64 0 (pow.f64 (hypot.f64 re im) 2))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (pow.f64 (hypot.f64 re im) 2))) 2)) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 (hypot.f64 re im) 2)))))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 (hypot.f64 re im) 2)))) (log.f64 (sqrt.f64 (exp.f64 (pow.f64 (hypot.f64 re im) 2)))))
(-.f64 (+.f64 1 (pow.f64 (hypot.f64 re im) 2)) 1)
(-.f64 (/.f64 (pow.f64 re 4) (-.f64 (pow.f64 re 2) (pow.f64 im 2))) (/.f64 (pow.f64 im 4) (-.f64 (pow.f64 re 2) (pow.f64 im 2))))
(*.f64 (hypot.f64 re im) (hypot.f64 re im))
(*.f64 (pow.f64 (hypot.f64 re im) 2) 1)
(*.f64 (pow.f64 (hypot.f64 re im) 2) (log.f64 (E.f64)))
(*.f64 1 (pow.f64 (hypot.f64 re im) 2))
(*.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) (pow.f64 (cbrt.f64 (hypot.f64 re im)) 4))
(*.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 4) (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)))
(*.f64 (sqrt.f64 (hypot.f64 re im)) (pow.f64 (hypot.f64 re im) 3/2))
(*.f64 (pow.f64 (hypot.f64 re im) 3/2) (sqrt.f64 (hypot.f64 re im)))
(*.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6)) (/.f64 1 (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 re im) 2)))))
(*.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (/.f64 1 (-.f64 (pow.f64 re 2) (pow.f64 im 2))))
(*.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 5) (cbrt.f64 (hypot.f64 re im)))
(*.f64 (pow.f64 1 1/3) (pow.f64 (hypot.f64 re im) 2))
(*.f64 (pow.f64 (pow.f64 (hypot.f64 re im) 5) 1/3) (cbrt.f64 (hypot.f64 re im)))
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 8)) 2) 1/3) (pow.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) 2))
(*.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 5)) (cbrt.f64 (hypot.f64 re im)))
(*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 8)) 2)) (pow.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) 2))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) 5)) (cbrt.f64 (hypot.f64 re im)))
(/.f64 1 (/.f64 (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 re im) 2))) (+.f64 (pow.f64 re 6) (pow.f64 im 6))))
(/.f64 1 (/.f64 (-.f64 (pow.f64 re 2) (pow.f64 im 2)) (-.f64 (pow.f64 re 4) (pow.f64 im 4))))
(/.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6)) (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 re im) 2))))
(/.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (-.f64 (pow.f64 re 2) (pow.f64 im 2)))
(/.f64 (neg.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6))) (neg.f64 (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 re im) 2)))))
(/.f64 (neg.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4))) (neg.f64 (-.f64 (pow.f64 re 2) (pow.f64 im 2))))
(/.f64 (+.f64 (pow.f64 im 6) (pow.f64 re 6)) (+.f64 (pow.f64 im 4) (-.f64 (pow.f64 re 4) (*.f64 (pow.f64 im 2) (pow.f64 re 2)))))
(/.f64 (-.f64 (pow.f64 (+.f64 1 (pow.f64 (hypot.f64 re im) 2)) 3) 1) (+.f64 (*.f64 (+.f64 1 (pow.f64 (hypot.f64 re im) 2)) (+.f64 1 (pow.f64 (hypot.f64 re im) 2))) (+.f64 1 (*.f64 (+.f64 1 (pow.f64 (hypot.f64 re im) 2)) 1))))
(/.f64 (-.f64 (pow.f64 im 4) (pow.f64 re 4)) (-.f64 (pow.f64 im 2) (pow.f64 re 2)))
(/.f64 (-.f64 (*.f64 (+.f64 1 (pow.f64 (hypot.f64 re im) 2)) (+.f64 1 (pow.f64 (hypot.f64 re im) 2))) 1) (+.f64 (+.f64 1 (pow.f64 (hypot.f64 re im) 2)) 1))
(sqrt.f64 (pow.f64 (hypot.f64 re im) 4))
(fabs.f64 (pow.f64 (hypot.f64 re im) 2))
(log.f64 (exp.f64 (pow.f64 (hypot.f64 re im) 2)))
(cbrt.f64 (pow.f64 (hypot.f64 re im) 6))
(expm1.f64 (log1p.f64 (pow.f64 (hypot.f64 re im) 2)))
(exp.f64 (*.f64 2 (log.f64 (hypot.f64 re im))))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2))) 3))
(exp.f64 (*.f64 (log.f64 (pow.f64 (hypot.f64 re im) 6)) 1/3))
(log1p.f64 (expm1.f64 (pow.f64 (hypot.f64 re im) 2)))
(fma.f64 re re (pow.f64 im 2))
(fma.f64 im im (pow.f64 re 2))
(fma.f64 1 (pow.f64 re 2) (pow.f64 im 2))
(fma.f64 1 (pow.f64 im 2) (pow.f64 re 2))
(fma.f64 (cbrt.f64 (pow.f64 re 2)) (pow.f64 (cbrt.f64 re) 4) (pow.f64 im 2))
(fma.f64 (pow.f64 (cbrt.f64 im) 2) (pow.f64 (cbrt.f64 im) 4) (pow.f64 re 2))
(fma.f64 (sqrt.f64 re) (pow.f64 re 3/2) (pow.f64 im 2))
(fma.f64 (sqrt.f64 im) (pow.f64 im 3/2) (pow.f64 re 2))
(fma.f64 (pow.f64 (cbrt.f64 im) 4) (pow.f64 (cbrt.f64 im) 2) (pow.f64 re 2))
(fma.f64 (pow.f64 (cbrt.f64 re) 4) (cbrt.f64 (pow.f64 re 2)) (pow.f64 im 2))
(fma.f64 (pow.f64 re 3/2) (sqrt.f64 re) (pow.f64 im 2))
(fma.f64 (pow.f64 im 3/2) (sqrt.f64 im) (pow.f64 re 2))
(fma.f64 (pow.f64 (cbrt.f64 im) 5) (cbrt.f64 im) (pow.f64 re 2))
(fma.f64 (pow.f64 (cbrt.f64 re) 5) (cbrt.f64 re) (pow.f64 im 2))

simplify86.0ms (5.4%)

Algorithm
egg-herbie
Rules
1642×fma-def
1372×times-frac
1188×associate-*r*
1014×associate-*l*
790×associate-+r+
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02203688
15663151
217612856
Stop Event
node limit
Counts
82 → 91
Calls
Call 1
Inputs
(pow.f64 im 2)
(+.f64 (pow.f64 im 2) (pow.f64 re 2))
(+.f64 (pow.f64 im 2) (pow.f64 re 2))
(+.f64 (*.f64 (pow.f64 re 8) (+.f64 (*.f64 -1 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 im 6))) (pow.f64 (/.f64 -1/8 (pow.f64 im 3)) 2))) (*.f64 5/64 (/.f64 1 (pow.f64 im 6))))) (+.f64 (pow.f64 im 2) (pow.f64 re 2)))
(pow.f64 re 2)
(+.f64 (pow.f64 im 2) (pow.f64 re 2))
(+.f64 (*.f64 -1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 2))) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 2))) (+.f64 (pow.f64 im 2) (pow.f64 re 2))))
(+.f64 (*.f64 -1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 2))) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 im 6) (pow.f64 re 4))) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 6) (pow.f64 re 4))) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 2))) (+.f64 (pow.f64 im 2) (pow.f64 re 2))))))
(pow.f64 re 2)
(+.f64 (pow.f64 im 2) (pow.f64 re 2))
(+.f64 (*.f64 -1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 2))) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 2))) (+.f64 (pow.f64 im 2) (pow.f64 re 2))))
(+.f64 (*.f64 -1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 2))) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 im 6) (pow.f64 re 4))) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 6) (pow.f64 re 4))) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 2))) (+.f64 (pow.f64 im 2) (pow.f64 re 2))))))
(pow.f64 re 2)
(+.f64 (pow.f64 im 2) (pow.f64 re 2))
(+.f64 (pow.f64 im 2) (pow.f64 re 2))
(+.f64 (*.f64 (pow.f64 im 8) (+.f64 (*.f64 -1 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 6))) (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2))) (*.f64 5/64 (/.f64 1 (pow.f64 re 6))))) (+.f64 (pow.f64 im 2) (pow.f64 re 2)))
(pow.f64 im 2)
(+.f64 (pow.f64 im 2) (pow.f64 re 2))
(+.f64 (*.f64 -1/4 (/.f64 (pow.f64 re 4) (pow.f64 im 2))) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 re 4) (pow.f64 im 2))) (+.f64 (pow.f64 im 2) (pow.f64 re 2))))
(+.f64 (*.f64 -1/4 (/.f64 (pow.f64 re 4) (pow.f64 im 2))) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 6) (pow.f64 im 4))) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 6) (pow.f64 im 4))) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 re 4) (pow.f64 im 2))) (+.f64 (pow.f64 im 2) (pow.f64 re 2))))))
(pow.f64 im 2)
(+.f64 (pow.f64 im 2) (pow.f64 re 2))
(+.f64 (*.f64 -1/4 (/.f64 (pow.f64 re 4) (pow.f64 im 2))) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 re 4) (pow.f64 im 2))) (+.f64 (pow.f64 im 2) (pow.f64 re 2))))
(+.f64 (*.f64 -1/4 (/.f64 (pow.f64 re 4) (pow.f64 im 2))) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 6) (pow.f64 im 4))) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 6) (pow.f64 im 4))) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 re 4) (pow.f64 im 2))) (+.f64 (pow.f64 im 2) (pow.f64 re 2))))))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(+.f64 (pow.f64 im 2) (pow.f64 re 2))
(+.f64 (+.f64 1 (pow.f64 (hypot.f64 re im) 2)) -1)
(+.f64 0 (pow.f64 (hypot.f64 re im) 2))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (pow.f64 (hypot.f64 re im) 2))) 2)) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 (hypot.f64 re im) 2)))))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 (hypot.f64 re im) 2)))) (log.f64 (sqrt.f64 (exp.f64 (pow.f64 (hypot.f64 re im) 2)))))
(-.f64 (+.f64 1 (pow.f64 (hypot.f64 re im) 2)) 1)
(-.f64 (/.f64 (pow.f64 re 4) (-.f64 (pow.f64 re 2) (pow.f64 im 2))) (/.f64 (pow.f64 im 4) (-.f64 (pow.f64 re 2) (pow.f64 im 2))))
(*.f64 (hypot.f64 re im) (hypot.f64 re im))
(*.f64 (pow.f64 (hypot.f64 re im) 2) 1)
(*.f64 (pow.f64 (hypot.f64 re im) 2) (log.f64 (E.f64)))
(*.f64 1 (pow.f64 (hypot.f64 re im) 2))
(*.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) (pow.f64 (cbrt.f64 (hypot.f64 re im)) 4))
(*.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 4) (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)))
(*.f64 (sqrt.f64 (hypot.f64 re im)) (pow.f64 (hypot.f64 re im) 3/2))
(*.f64 (pow.f64 (hypot.f64 re im) 3/2) (sqrt.f64 (hypot.f64 re im)))
(*.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6)) (/.f64 1 (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 re im) 2)))))
(*.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (/.f64 1 (-.f64 (pow.f64 re 2) (pow.f64 im 2))))
(*.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 5) (cbrt.f64 (hypot.f64 re im)))
(*.f64 (pow.f64 1 1/3) (pow.f64 (hypot.f64 re im) 2))
(*.f64 (pow.f64 (pow.f64 (hypot.f64 re im) 5) 1/3) (cbrt.f64 (hypot.f64 re im)))
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 8)) 2) 1/3) (pow.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) 2))
(*.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 5)) (cbrt.f64 (hypot.f64 re im)))
(*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 8)) 2)) (pow.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) 2))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) 5)) (cbrt.f64 (hypot.f64 re im)))
(/.f64 1 (/.f64 (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 re im) 2))) (+.f64 (pow.f64 re 6) (pow.f64 im 6))))
(/.f64 1 (/.f64 (-.f64 (pow.f64 re 2) (pow.f64 im 2)) (-.f64 (pow.f64 re 4) (pow.f64 im 4))))
(/.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6)) (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 re im) 2))))
(/.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (-.f64 (pow.f64 re 2) (pow.f64 im 2)))
(/.f64 (neg.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6))) (neg.f64 (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 re im) 2)))))
(/.f64 (neg.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4))) (neg.f64 (-.f64 (pow.f64 re 2) (pow.f64 im 2))))
(/.f64 (+.f64 (pow.f64 im 6) (pow.f64 re 6)) (+.f64 (pow.f64 im 4) (-.f64 (pow.f64 re 4) (*.f64 (pow.f64 im 2) (pow.f64 re 2)))))
(/.f64 (-.f64 (pow.f64 (+.f64 1 (pow.f64 (hypot.f64 re im) 2)) 3) 1) (+.f64 (*.f64 (+.f64 1 (pow.f64 (hypot.f64 re im) 2)) (+.f64 1 (pow.f64 (hypot.f64 re im) 2))) (+.f64 1 (*.f64 (+.f64 1 (pow.f64 (hypot.f64 re im) 2)) 1))))
(/.f64 (-.f64 (pow.f64 im 4) (pow.f64 re 4)) (-.f64 (pow.f64 im 2) (pow.f64 re 2)))
(/.f64 (-.f64 (*.f64 (+.f64 1 (pow.f64 (hypot.f64 re im) 2)) (+.f64 1 (pow.f64 (hypot.f64 re im) 2))) 1) (+.f64 (+.f64 1 (pow.f64 (hypot.f64 re im) 2)) 1))
(sqrt.f64 (pow.f64 (hypot.f64 re im) 4))
(fabs.f64 (pow.f64 (hypot.f64 re im) 2))
(log.f64 (exp.f64 (pow.f64 (hypot.f64 re im) 2)))
(cbrt.f64 (pow.f64 (hypot.f64 re im) 6))
(expm1.f64 (log1p.f64 (pow.f64 (hypot.f64 re im) 2)))
(exp.f64 (*.f64 2 (log.f64 (hypot.f64 re im))))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2))) 3))
(exp.f64 (*.f64 (log.f64 (pow.f64 (hypot.f64 re im) 6)) 1/3))
(log1p.f64 (expm1.f64 (pow.f64 (hypot.f64 re im) 2)))
(fma.f64 re re (pow.f64 im 2))
(fma.f64 im im (pow.f64 re 2))
(fma.f64 1 (pow.f64 re 2) (pow.f64 im 2))
(fma.f64 1 (pow.f64 im 2) (pow.f64 re 2))
(fma.f64 (cbrt.f64 (pow.f64 re 2)) (pow.f64 (cbrt.f64 re) 4) (pow.f64 im 2))
(fma.f64 (pow.f64 (cbrt.f64 im) 2) (pow.f64 (cbrt.f64 im) 4) (pow.f64 re 2))
(fma.f64 (sqrt.f64 re) (pow.f64 re 3/2) (pow.f64 im 2))
(fma.f64 (sqrt.f64 im) (pow.f64 im 3/2) (pow.f64 re 2))
(fma.f64 (pow.f64 (cbrt.f64 im) 4) (pow.f64 (cbrt.f64 im) 2) (pow.f64 re 2))
(fma.f64 (pow.f64 (cbrt.f64 re) 4) (cbrt.f64 (pow.f64 re 2)) (pow.f64 im 2))
(fma.f64 (pow.f64 re 3/2) (sqrt.f64 re) (pow.f64 im 2))
(fma.f64 (pow.f64 im 3/2) (sqrt.f64 im) (pow.f64 re 2))
(fma.f64 (pow.f64 (cbrt.f64 im) 5) (cbrt.f64 im) (pow.f64 re 2))
(fma.f64 (pow.f64 (cbrt.f64 re) 5) (cbrt.f64 re) (pow.f64 im 2))
Outputs
(pow.f64 im 2)
(+.f64 (pow.f64 im 2) (pow.f64 re 2))
(fma.f64 im im (pow.f64 re 2))
(+.f64 (pow.f64 im 2) (pow.f64 re 2))
(fma.f64 im im (pow.f64 re 2))
(+.f64 (*.f64 (pow.f64 re 8) (+.f64 (*.f64 -1 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 im 6))) (pow.f64 (/.f64 -1/8 (pow.f64 im 3)) 2))) (*.f64 5/64 (/.f64 1 (pow.f64 im 6))))) (+.f64 (pow.f64 im 2) (pow.f64 re 2)))
(fma.f64 (pow.f64 re 8) (fma.f64 -1 (+.f64 (/.f64 1/16 (pow.f64 im 6)) (pow.f64 (/.f64 -1/8 (pow.f64 im 3)) 2)) (/.f64 5/64 (pow.f64 im 6))) (fma.f64 im im (pow.f64 re 2)))
(fma.f64 (pow.f64 re 8) (-.f64 (/.f64 5/64 (pow.f64 im 6)) (+.f64 (/.f64 1/16 (pow.f64 im 6)) (pow.f64 (/.f64 -1/8 (pow.f64 im 3)) 2))) (fma.f64 im im (pow.f64 re 2)))
(fma.f64 (pow.f64 re 8) (-.f64 (*.f64 (/.f64 1 (pow.f64 im 6)) 1/64) (pow.f64 (/.f64 -1/8 (pow.f64 im 3)) 2)) (fma.f64 im im (pow.f64 re 2)))
(pow.f64 re 2)
(+.f64 (pow.f64 im 2) (pow.f64 re 2))
(fma.f64 im im (pow.f64 re 2))
(+.f64 (*.f64 -1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 2))) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 2))) (+.f64 (pow.f64 im 2) (pow.f64 re 2))))
(fma.f64 -1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 2)) (fma.f64 1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 2)) (fma.f64 im im (pow.f64 re 2))))
(+.f64 (fma.f64 im im (pow.f64 re 2)) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 2)) 0))
(+.f64 (fma.f64 im im (pow.f64 re 2)) 0)
(+.f64 (*.f64 -1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 2))) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 im 6) (pow.f64 re 4))) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 6) (pow.f64 re 4))) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 2))) (+.f64 (pow.f64 im 2) (pow.f64 re 2))))))
(fma.f64 -1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 2)) (fma.f64 1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 2)) (fma.f64 im im (pow.f64 re 2))))
(+.f64 (fma.f64 im im (pow.f64 re 2)) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 2)) 0))
(+.f64 (fma.f64 im im (pow.f64 re 2)) 0)
(pow.f64 re 2)
(+.f64 (pow.f64 im 2) (pow.f64 re 2))
(fma.f64 im im (pow.f64 re 2))
(+.f64 (*.f64 -1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 2))) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 2))) (+.f64 (pow.f64 im 2) (pow.f64 re 2))))
(fma.f64 -1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 2)) (fma.f64 1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 2)) (fma.f64 im im (pow.f64 re 2))))
(+.f64 (fma.f64 im im (pow.f64 re 2)) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 2)) 0))
(+.f64 (fma.f64 im im (pow.f64 re 2)) 0)
(+.f64 (*.f64 -1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 2))) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 im 6) (pow.f64 re 4))) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 6) (pow.f64 re 4))) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 2))) (+.f64 (pow.f64 im 2) (pow.f64 re 2))))))
(fma.f64 -1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 2)) (fma.f64 1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 2)) (fma.f64 im im (pow.f64 re 2))))
(+.f64 (fma.f64 im im (pow.f64 re 2)) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 2)) 0))
(+.f64 (fma.f64 im im (pow.f64 re 2)) 0)
(pow.f64 re 2)
(+.f64 (pow.f64 im 2) (pow.f64 re 2))
(fma.f64 im im (pow.f64 re 2))
(+.f64 (pow.f64 im 2) (pow.f64 re 2))
(fma.f64 im im (pow.f64 re 2))
(+.f64 (*.f64 (pow.f64 im 8) (+.f64 (*.f64 -1 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 re 6))) (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2))) (*.f64 5/64 (/.f64 1 (pow.f64 re 6))))) (+.f64 (pow.f64 im 2) (pow.f64 re 2)))
(fma.f64 (pow.f64 im 8) (fma.f64 -1 (+.f64 (/.f64 1/16 (pow.f64 re 6)) (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2)) (/.f64 5/64 (pow.f64 re 6))) (fma.f64 im im (pow.f64 re 2)))
(fma.f64 (pow.f64 im 8) (-.f64 (/.f64 5/64 (pow.f64 re 6)) (+.f64 (/.f64 1/16 (pow.f64 re 6)) (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2))) (fma.f64 im im (pow.f64 re 2)))
(fma.f64 (pow.f64 im 8) (-.f64 (*.f64 (/.f64 1 (pow.f64 re 6)) 1/64) (pow.f64 (/.f64 -1/8 (pow.f64 re 3)) 2)) (fma.f64 im im (pow.f64 re 2)))
(pow.f64 im 2)
(+.f64 (pow.f64 im 2) (pow.f64 re 2))
(fma.f64 im im (pow.f64 re 2))
(+.f64 (*.f64 -1/4 (/.f64 (pow.f64 re 4) (pow.f64 im 2))) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 re 4) (pow.f64 im 2))) (+.f64 (pow.f64 im 2) (pow.f64 re 2))))
(fma.f64 -1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 2)) (fma.f64 1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 2)) (fma.f64 im im (pow.f64 re 2))))
(+.f64 (fma.f64 im im (pow.f64 re 2)) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 2)) 0))
(+.f64 (fma.f64 im im (pow.f64 re 2)) 0)
(+.f64 (*.f64 -1/4 (/.f64 (pow.f64 re 4) (pow.f64 im 2))) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 6) (pow.f64 im 4))) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 6) (pow.f64 im 4))) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 re 4) (pow.f64 im 2))) (+.f64 (pow.f64 im 2) (pow.f64 re 2))))))
(fma.f64 -1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 2)) (fma.f64 1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 2)) (fma.f64 im im (pow.f64 re 2))))
(+.f64 (fma.f64 im im (pow.f64 re 2)) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 2)) 0))
(+.f64 (fma.f64 im im (pow.f64 re 2)) 0)
(pow.f64 im 2)
(+.f64 (pow.f64 im 2) (pow.f64 re 2))
(fma.f64 im im (pow.f64 re 2))
(+.f64 (*.f64 -1/4 (/.f64 (pow.f64 re 4) (pow.f64 im 2))) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 re 4) (pow.f64 im 2))) (+.f64 (pow.f64 im 2) (pow.f64 re 2))))
(fma.f64 -1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 2)) (fma.f64 1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 2)) (fma.f64 im im (pow.f64 re 2))))
(+.f64 (fma.f64 im im (pow.f64 re 2)) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 2)) 0))
(+.f64 (fma.f64 im im (pow.f64 re 2)) 0)
(+.f64 (*.f64 -1/4 (/.f64 (pow.f64 re 4) (pow.f64 im 2))) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 6) (pow.f64 im 4))) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 6) (pow.f64 im 4))) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 re 4) (pow.f64 im 2))) (+.f64 (pow.f64 im 2) (pow.f64 re 2))))))
(fma.f64 -1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 2)) (fma.f64 1/4 (/.f64 (pow.f64 im 4) (pow.f64 re 2)) (fma.f64 im im (pow.f64 re 2))))
(+.f64 (fma.f64 im im (pow.f64 re 2)) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 2)) 0))
(+.f64 (fma.f64 im im (pow.f64 re 2)) 0)
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(fma.f64 im im (pow.f64 re 2))
(+.f64 (pow.f64 im 2) (pow.f64 re 2))
(fma.f64 im im (pow.f64 re 2))
(+.f64 (+.f64 1 (pow.f64 (hypot.f64 re im) 2)) -1)
(+.f64 -1 (+.f64 1 (pow.f64 (hypot.f64 re im) 2)))
(pow.f64 (hypot.f64 re im) 2)
(+.f64 0 (pow.f64 (hypot.f64 re im) 2))
(+.f64 -1 (+.f64 1 (pow.f64 (hypot.f64 re im) 2)))
(pow.f64 (hypot.f64 re im) 2)
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (pow.f64 (hypot.f64 re im) 2))) 2)) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 (hypot.f64 re im) 2)))))
(*.f64 3 (log.f64 (cbrt.f64 (exp.f64 (pow.f64 (hypot.f64 re im) 2)))))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 (hypot.f64 re im) 2)))) (log.f64 (sqrt.f64 (exp.f64 (pow.f64 (hypot.f64 re im) 2)))))
(*.f64 2 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 (hypot.f64 re im) 2)))))
(-.f64 (+.f64 1 (pow.f64 (hypot.f64 re im) 2)) 1)
(+.f64 -1 (+.f64 1 (pow.f64 (hypot.f64 re im) 2)))
(pow.f64 (hypot.f64 re im) 2)
(-.f64 (/.f64 (pow.f64 re 4) (-.f64 (pow.f64 re 2) (pow.f64 im 2))) (/.f64 (pow.f64 im 4) (-.f64 (pow.f64 re 2) (pow.f64 im 2))))
(/.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (-.f64 (pow.f64 re 2) (pow.f64 im 2)))
(*.f64 (hypot.f64 re im) (hypot.f64 re im))
(+.f64 -1 (+.f64 1 (pow.f64 (hypot.f64 re im) 2)))
(pow.f64 (hypot.f64 re im) 2)
(*.f64 (pow.f64 (hypot.f64 re im) 2) 1)
(+.f64 -1 (+.f64 1 (pow.f64 (hypot.f64 re im) 2)))
(pow.f64 (hypot.f64 re im) 2)
(*.f64 (pow.f64 (hypot.f64 re im) 2) (log.f64 (E.f64)))
(+.f64 -1 (+.f64 1 (pow.f64 (hypot.f64 re im) 2)))
(pow.f64 (hypot.f64 re im) 2)
(*.f64 1 (pow.f64 (hypot.f64 re im) 2))
(+.f64 -1 (+.f64 1 (pow.f64 (hypot.f64 re im) 2)))
(pow.f64 (hypot.f64 re im) 2)
(*.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) (pow.f64 (cbrt.f64 (hypot.f64 re im)) 4))
(*.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 4) (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)))
(*.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) (pow.f64 (cbrt.f64 (hypot.f64 re im)) 4))
(*.f64 (sqrt.f64 (hypot.f64 re im)) (pow.f64 (hypot.f64 re im) 3/2))
(*.f64 (pow.f64 (hypot.f64 re im) 3/2) (sqrt.f64 (hypot.f64 re im)))
(*.f64 (pow.f64 (hypot.f64 re im) 3/2) (sqrt.f64 (hypot.f64 re im)))
(*.f64 (sqrt.f64 (hypot.f64 re im)) (pow.f64 (hypot.f64 re im) 3/2))
(*.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6)) (/.f64 1 (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 re im) 2)))))
(*.f64 (+.f64 (pow.f64 im 6) (pow.f64 re 6)) (/.f64 1 (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 im re) 2)))))
(/.f64 (+.f64 (pow.f64 im 6) (pow.f64 re 6)) (+.f64 (pow.f64 im 4) (-.f64 (pow.f64 re 4) (pow.f64 (*.f64 im re) 2))))
(/.f64 (+.f64 (pow.f64 im 6) (pow.f64 re 6)) (-.f64 (pow.f64 re 4) (-.f64 (pow.f64 (*.f64 im re) 2) (pow.f64 im 4))))
(*.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (/.f64 1 (-.f64 (pow.f64 re 2) (pow.f64 im 2))))
(/.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (-.f64 (pow.f64 re 2) (pow.f64 im 2)))
(*.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 5) (cbrt.f64 (hypot.f64 re im)))
(+.f64 -1 (+.f64 1 (pow.f64 (hypot.f64 re im) 2)))
(pow.f64 (hypot.f64 re im) 2)
(*.f64 (pow.f64 1 1/3) (pow.f64 (hypot.f64 re im) 2))
(+.f64 -1 (+.f64 1 (pow.f64 (hypot.f64 re im) 2)))
(pow.f64 (hypot.f64 re im) 2)
(*.f64 (pow.f64 (pow.f64 (hypot.f64 re im) 5) 1/3) (cbrt.f64 (hypot.f64 re im)))
(*.f64 (cbrt.f64 (hypot.f64 re im)) (cbrt.f64 (pow.f64 (hypot.f64 re im) 5)))
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 8)) 2) 1/3) (pow.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) 2))
(*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 8)) 2)) (pow.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) 2))
(*.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 5)) (cbrt.f64 (hypot.f64 re im)))
(*.f64 (cbrt.f64 (hypot.f64 re im)) (cbrt.f64 (pow.f64 (hypot.f64 re im) 5)))
(*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 8)) 2)) (pow.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) 2))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) 5)) (cbrt.f64 (hypot.f64 re im)))
(*.f64 (cbrt.f64 (hypot.f64 re im)) (sqrt.f64 (pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) 5)))
(*.f64 (cbrt.f64 (hypot.f64 re im)) (fabs.f64 (pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) 5/2)))
(*.f64 (cbrt.f64 (hypot.f64 re im)) (pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) 5/2))
(/.f64 1 (/.f64 (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 re im) 2))) (+.f64 (pow.f64 re 6) (pow.f64 im 6))))
(*.f64 (+.f64 (pow.f64 im 6) (pow.f64 re 6)) (/.f64 1 (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 im re) 2)))))
(/.f64 (+.f64 (pow.f64 im 6) (pow.f64 re 6)) (+.f64 (pow.f64 im 4) (-.f64 (pow.f64 re 4) (pow.f64 (*.f64 im re) 2))))
(/.f64 (+.f64 (pow.f64 im 6) (pow.f64 re 6)) (-.f64 (pow.f64 re 4) (-.f64 (pow.f64 (*.f64 im re) 2) (pow.f64 im 4))))
(/.f64 1 (/.f64 (-.f64 (pow.f64 re 2) (pow.f64 im 2)) (-.f64 (pow.f64 re 4) (pow.f64 im 4))))
(/.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (-.f64 (pow.f64 re 2) (pow.f64 im 2)))
(/.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6)) (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 re im) 2))))
(*.f64 (+.f64 (pow.f64 im 6) (pow.f64 re 6)) (/.f64 1 (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 im re) 2)))))
(/.f64 (+.f64 (pow.f64 im 6) (pow.f64 re 6)) (+.f64 (pow.f64 im 4) (-.f64 (pow.f64 re 4) (pow.f64 (*.f64 im re) 2))))
(/.f64 (+.f64 (pow.f64 im 6) (pow.f64 re 6)) (-.f64 (pow.f64 re 4) (-.f64 (pow.f64 (*.f64 im re) 2) (pow.f64 im 4))))
(/.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (-.f64 (pow.f64 re 2) (pow.f64 im 2)))
(/.f64 (neg.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6))) (neg.f64 (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 re im) 2)))))
(*.f64 (+.f64 (pow.f64 im 6) (pow.f64 re 6)) (/.f64 1 (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 im re) 2)))))
(/.f64 (+.f64 (pow.f64 im 6) (pow.f64 re 6)) (+.f64 (pow.f64 im 4) (-.f64 (pow.f64 re 4) (pow.f64 (*.f64 im re) 2))))
(/.f64 (+.f64 (pow.f64 im 6) (pow.f64 re 6)) (-.f64 (pow.f64 re 4) (-.f64 (pow.f64 (*.f64 im re) 2) (pow.f64 im 4))))
(/.f64 (neg.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4))) (neg.f64 (-.f64 (pow.f64 re 2) (pow.f64 im 2))))
(/.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (-.f64 (pow.f64 re 2) (pow.f64 im 2)))
(/.f64 (+.f64 (pow.f64 im 6) (pow.f64 re 6)) (+.f64 (pow.f64 im 4) (-.f64 (pow.f64 re 4) (*.f64 (pow.f64 im 2) (pow.f64 re 2)))))
(*.f64 (+.f64 (pow.f64 im 6) (pow.f64 re 6)) (/.f64 1 (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 im re) 2)))))
(/.f64 (+.f64 (pow.f64 im 6) (pow.f64 re 6)) (+.f64 (pow.f64 im 4) (-.f64 (pow.f64 re 4) (pow.f64 (*.f64 im re) 2))))
(/.f64 (+.f64 (pow.f64 im 6) (pow.f64 re 6)) (-.f64 (pow.f64 re 4) (-.f64 (pow.f64 (*.f64 im re) 2) (pow.f64 im 4))))
(/.f64 (-.f64 (pow.f64 (+.f64 1 (pow.f64 (hypot.f64 re im) 2)) 3) 1) (+.f64 (*.f64 (+.f64 1 (pow.f64 (hypot.f64 re im) 2)) (+.f64 1 (pow.f64 (hypot.f64 re im) 2))) (+.f64 1 (*.f64 (+.f64 1 (pow.f64 (hypot.f64 re im) 2)) 1))))
(/.f64 (+.f64 (pow.f64 (+.f64 1 (pow.f64 (hypot.f64 re im) 2)) 3) -1) (fma.f64 (+.f64 1 (pow.f64 (hypot.f64 re im) 2)) (+.f64 1 (pow.f64 (hypot.f64 re im) 2)) (+.f64 1 (+.f64 1 (pow.f64 (hypot.f64 re im) 2)))))
(/.f64 (+.f64 -1 (pow.f64 (+.f64 1 (pow.f64 (hypot.f64 re im) 2)) 3)) (fma.f64 (+.f64 1 (pow.f64 (hypot.f64 re im) 2)) (+.f64 1 (pow.f64 (hypot.f64 re im) 2)) (+.f64 2 (pow.f64 (hypot.f64 re im) 2))))
(/.f64 (+.f64 -1 (pow.f64 (+.f64 1 (pow.f64 (hypot.f64 re im) 2)) 3)) (+.f64 1 (*.f64 (+.f64 1 (pow.f64 (hypot.f64 re im) 2)) (+.f64 2 (pow.f64 (hypot.f64 re im) 2)))))
(/.f64 (-.f64 (pow.f64 im 4) (pow.f64 re 4)) (-.f64 (pow.f64 im 2) (pow.f64 re 2)))
(/.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (-.f64 (pow.f64 re 2) (pow.f64 im 2)))
(/.f64 (-.f64 (*.f64 (+.f64 1 (pow.f64 (hypot.f64 re im) 2)) (+.f64 1 (pow.f64 (hypot.f64 re im) 2))) 1) (+.f64 (+.f64 1 (pow.f64 (hypot.f64 re im) 2)) 1))
(+.f64 -1 (+.f64 1 (pow.f64 (hypot.f64 re im) 2)))
(pow.f64 (hypot.f64 re im) 2)
(sqrt.f64 (pow.f64 (hypot.f64 re im) 4))
(+.f64 -1 (+.f64 1 (pow.f64 (hypot.f64 re im) 2)))
(pow.f64 (hypot.f64 re im) 2)
(fabs.f64 (pow.f64 (hypot.f64 re im) 2))
(+.f64 -1 (+.f64 1 (pow.f64 (hypot.f64 re im) 2)))
(pow.f64 (hypot.f64 re im) 2)
(log.f64 (exp.f64 (pow.f64 (hypot.f64 re im) 2)))
(+.f64 -1 (+.f64 1 (pow.f64 (hypot.f64 re im) 2)))
(pow.f64 (hypot.f64 re im) 2)
(cbrt.f64 (pow.f64 (hypot.f64 re im) 6))
(+.f64 -1 (+.f64 1 (pow.f64 (hypot.f64 re im) 2)))
(pow.f64 (hypot.f64 re im) 2)
(expm1.f64 (log1p.f64 (pow.f64 (hypot.f64 re im) 2)))
(+.f64 -1 (+.f64 1 (pow.f64 (hypot.f64 re im) 2)))
(pow.f64 (hypot.f64 re im) 2)
(exp.f64 (*.f64 2 (log.f64 (hypot.f64 re im))))
(+.f64 -1 (+.f64 1 (pow.f64 (hypot.f64 re im) 2)))
(pow.f64 (hypot.f64 re im) 2)
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2))) 3))
(+.f64 -1 (+.f64 1 (pow.f64 (hypot.f64 re im) 2)))
(pow.f64 (hypot.f64 re im) 2)
(exp.f64 (*.f64 (log.f64 (pow.f64 (hypot.f64 re im) 6)) 1/3))
(+.f64 -1 (+.f64 1 (pow.f64 (hypot.f64 re im) 2)))
(pow.f64 (hypot.f64 re im) 2)
(log1p.f64 (expm1.f64 (pow.f64 (hypot.f64 re im) 2)))
(+.f64 -1 (+.f64 1 (pow.f64 (hypot.f64 re im) 2)))
(pow.f64 (hypot.f64 re im) 2)
(fma.f64 re re (pow.f64 im 2))
(fma.f64 im im (pow.f64 re 2))
(fma.f64 im im (pow.f64 re 2))
(fma.f64 1 (pow.f64 re 2) (pow.f64 im 2))
(fma.f64 im im (pow.f64 re 2))
(fma.f64 1 (pow.f64 im 2) (pow.f64 re 2))
(fma.f64 im im (pow.f64 re 2))
(fma.f64 (cbrt.f64 (pow.f64 re 2)) (pow.f64 (cbrt.f64 re) 4) (pow.f64 im 2))
(fma.f64 (pow.f64 (cbrt.f64 im) 2) (pow.f64 (cbrt.f64 im) 4) (pow.f64 re 2))
(fma.f64 im im (pow.f64 re 2))
(fma.f64 (sqrt.f64 re) (pow.f64 re 3/2) (pow.f64 im 2))
(fma.f64 (pow.f64 re 3/2) (sqrt.f64 re) (pow.f64 im 2))
(fma.f64 (sqrt.f64 im) (pow.f64 im 3/2) (pow.f64 re 2))
(fma.f64 (pow.f64 im 3/2) (sqrt.f64 im) (pow.f64 re 2))
(fma.f64 (pow.f64 (cbrt.f64 im) 4) (pow.f64 (cbrt.f64 im) 2) (pow.f64 re 2))
(fma.f64 im im (pow.f64 re 2))
(fma.f64 (pow.f64 (cbrt.f64 re) 4) (cbrt.f64 (pow.f64 re 2)) (pow.f64 im 2))
(fma.f64 (cbrt.f64 (pow.f64 re 2)) (pow.f64 (cbrt.f64 re) 4) (pow.f64 im 2))
(fma.f64 (pow.f64 re 3/2) (sqrt.f64 re) (pow.f64 im 2))
(fma.f64 (sqrt.f64 re) (pow.f64 re 3/2) (pow.f64 im 2))
(fma.f64 (pow.f64 im 3/2) (sqrt.f64 im) (pow.f64 re 2))
(fma.f64 (sqrt.f64 im) (pow.f64 im 3/2) (pow.f64 re 2))
(fma.f64 (pow.f64 (cbrt.f64 im) 5) (cbrt.f64 im) (pow.f64 re 2))
(fma.f64 im im (pow.f64 re 2))
(fma.f64 (pow.f64 (cbrt.f64 re) 5) (cbrt.f64 re) (pow.f64 im 2))
(+.f64 (pow.f64 im 2) (pow.f64 (cbrt.f64 re) 6))
(fma.f64 im im (pow.f64 (cbrt.f64 re) 6))

eval38.0ms (2.4%)

Compiler

Compiled 1433 to 963 computations (32.8% saved)

prune50.0ms (3.1%)

Pruning

2 alts after pruning (0 fresh and 2 done)

PrunedKeptTotal
New91091
Fresh000
Picked011
Done011
Total91293
Accuracy
100.0%
Counts
93 → 2
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(pow.f64 (hypot.f64 re im) 2)
100.0%
(+.f64 (*.f64 re re) (*.f64 im im))
Compiler

Compiled 30 to 18 computations (40% saved)

regimes15.0ms (0.9%)

Accuracy

Total -0.0b remaining (-100%)

Threshold costs -0b (-100%)

Counts
2 → 1
Calls
Call 1
Inputs
(+.f64 (*.f64 re re) (*.f64 im im))
(pow.f64 (hypot.f64 re im) 2)
Outputs
(+.f64 (*.f64 re re) (*.f64 im im))
Calls

5 calls:

3.0ms
im
3.0ms
re
3.0ms
(+.f64 (*.f64 re re) (*.f64 im im))
3.0ms
(*.f64 im im)
2.0ms
(*.f64 re re)
Results
AccuracySegmentsBranch
100.0%1re
100.0%1im
100.0%1(+.f64 (*.f64 re re) (*.f64 im im))
100.0%1(*.f64 re re)
100.0%1(*.f64 im im)
Compiler

Compiled 39 to 23 computations (41% saved)

simplify2.0ms (0.1%)

Algorithm
egg-herbie
Rules
+-commutative
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01031
11131
Stop Event
done
saturated
Calls
Call 1
Inputs
(+.f64 (*.f64 re re) (*.f64 im im))
Outputs
(+.f64 (*.f64 re re) (*.f64 im im))
Compiler

Compiled 9 to 5 computations (44.4% saved)

soundness0.0ms (0%)

end0.0ms (0%)

preprocess55.0ms (3.4%)

Remove

(sort re im)

(abs im)

(abs re)

Compiler

Compiled 90 to 50 computations (44.4% saved)

Profiling

Loading profile data...