math.abs on complex (squared)

Time bar (total: 1.3s)

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)

sample765.0ms (59.3%)

Results
438.0ms4728×body256valid
316.0ms3528×body256infinite
Bogosity

preprocess23.0ms (1.8%)

Algorithm
egg-herbie
Rules
182×fma-def
30×distribute-lft-neg-in
28×unsub-neg
26×neg-sub0
20×associate-*r*
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01560
13460
27560
315860
425160
528760
629560
Stop Event
saturated
Calls
Call 1
Inputs
(+.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)))
(+.f64 (*.f64 im im) (*.f64 re re))
Outputs
(+.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))
(+.f64 (*.f64 im im) (*.f64 re re))
(fma.f64 re re (*.f64 im im))
Symmetry

(abs re)

(abs im)

(sort re im)

Compiler

Compiled 11 to 7 computations (36.4% saved)

simplify3.0ms (0.2%)

Algorithm
egg-herbie
Rules
fma-def
+-commutative
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0715
11015
21115
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(+.f64 (*.f64 re re) (*.f64 im im))
Outputs
(+.f64 (*.f64 re re) (*.f64 im im))
(fma.f64 re re (*.f64 im im))

eval0.0ms (0%)

Compiler

Compiled 15 to 6 computations (60% saved)

prune1.0ms (0.1%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New112
Fresh011
Picked000
Done000
Total123
Accurracy
100.0%
Counts
3 → 1
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(+.f64 (*.f64 re re) (*.f64 im im))
Compiler

Compiled 9 to 5 computations (44.4% saved)

localize24.0ms (1.8%)

Local Accuracy

Found 1 expressions with local accuracy:

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

Compiled 18 to 6 computations (66.7% saved)

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

rewrite57.0ms (4.4%)

Algorithm
batch-egg-rewrite
Rules
1514×pow1
1404×add-exp-log
1404×log1p-expm1-u
1404×expm1-log1p-u
1374×add-log-exp
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0715
115013
2201613
Stop Event
node limit
Counts
1 → 33
Calls
Call 1
Inputs
(+.f64 (*.f64 re re) (*.f64 im im))
Outputs
(-.f64 (+.f64 1 (pow.f64 (hypot.f64 re im) 2)) 1)
(-.f64 (/.f64 (pow.f64 re 4) (-.f64 (*.f64 re re) (*.f64 im im))) (/.f64 (pow.f64 im 4) (-.f64 (*.f64 re re) (*.f64 im im))))
(*.f64 (pow.f64 (hypot.f64 re im) 2) 1)
(*.f64 1 (pow.f64 (hypot.f64 re im) 2))
(*.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) (cbrt.f64 (pow.f64 (pow.f64 (hypot.f64 re im) 2) 2)))
(*.f64 (cbrt.f64 (pow.f64 (pow.f64 (hypot.f64 re im) 2) 2)) (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)))
(*.f64 (hypot.f64 re im) (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 (*.f64 re re) (*.f64 im 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 (*.f64 re re) (*.f64 im im)) (-.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 6) (pow.f64 im 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 (*.f64 re re) (*.f64 im im)))
(/.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 (*.f64 re re) (*.f64 im im))))
(/.f64 (-.f64 (pow.f64 im 4) (pow.f64 re 4)) (-.f64 (*.f64 im im) (*.f64 re re)))
(pow.f64 (pow.f64 (hypot.f64 re im) 2) 1)
(pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) 3)
(pow.f64 (pow.f64 (pow.f64 (hypot.f64 re im) 2) 3) 1/3)
(pow.f64 (hypot.f64 re im) 2)
(sqrt.f64 (pow.f64 (pow.f64 (hypot.f64 re im) 2) 2))
(log.f64 (exp.f64 (pow.f64 (hypot.f64 re im) 2)))
(cbrt.f64 (pow.f64 (pow.f64 (hypot.f64 re im) 2) 3))
(expm1.f64 (log1p.f64 (pow.f64 (hypot.f64 re im) 2)))
(exp.f64 (log.f64 (pow.f64 (hypot.f64 re im) 2)))
(log1p.f64 (expm1.f64 (pow.f64 (hypot.f64 re im) 2)))
(fma.f64 re re (*.f64 im im))
(fma.f64 im im (*.f64 re re))
(fma.f64 1 (*.f64 re re) (*.f64 im im))
(fma.f64 1 (*.f64 im im) (*.f64 re re))
(fma.f64 (cbrt.f64 (pow.f64 im 4)) (pow.f64 (cbrt.f64 im) 2) (*.f64 re re))
(fma.f64 (cbrt.f64 (pow.f64 re 4)) (pow.f64 (cbrt.f64 re) 2) (*.f64 im im))

simplify80.0ms (6.2%)

Algorithm
egg-herbie
Rules
1170×log-prod
1128×cancel-sign-sub-inv
1040×div-sub
986×fma-neg
850×associate-*r*
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0911435
12191309
27431213
345481081
Stop Event
node limit
Counts
57 → 46
Calls
Call 1
Inputs
(pow.f64 im 2)
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(pow.f64 re 2)
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(pow.f64 re 2)
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(pow.f64 re 2)
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(pow.f64 im 2)
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(pow.f64 im 2)
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(-.f64 (+.f64 1 (pow.f64 (hypot.f64 re im) 2)) 1)
(-.f64 (/.f64 (pow.f64 re 4) (-.f64 (*.f64 re re) (*.f64 im im))) (/.f64 (pow.f64 im 4) (-.f64 (*.f64 re re) (*.f64 im im))))
(*.f64 (pow.f64 (hypot.f64 re im) 2) 1)
(*.f64 1 (pow.f64 (hypot.f64 re im) 2))
(*.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) (cbrt.f64 (pow.f64 (pow.f64 (hypot.f64 re im) 2) 2)))
(*.f64 (cbrt.f64 (pow.f64 (pow.f64 (hypot.f64 re im) 2) 2)) (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)))
(*.f64 (hypot.f64 re im) (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 (*.f64 re re) (*.f64 im 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 (*.f64 re re) (*.f64 im im)) (-.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 6) (pow.f64 im 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 (*.f64 re re) (*.f64 im im)))
(/.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 (*.f64 re re) (*.f64 im im))))
(/.f64 (-.f64 (pow.f64 im 4) (pow.f64 re 4)) (-.f64 (*.f64 im im) (*.f64 re re)))
(pow.f64 (pow.f64 (hypot.f64 re im) 2) 1)
(pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) 3)
(pow.f64 (pow.f64 (pow.f64 (hypot.f64 re im) 2) 3) 1/3)
(pow.f64 (hypot.f64 re im) 2)
(sqrt.f64 (pow.f64 (pow.f64 (hypot.f64 re im) 2) 2))
(log.f64 (exp.f64 (pow.f64 (hypot.f64 re im) 2)))
(cbrt.f64 (pow.f64 (pow.f64 (hypot.f64 re im) 2) 3))
(expm1.f64 (log1p.f64 (pow.f64 (hypot.f64 re im) 2)))
(exp.f64 (log.f64 (pow.f64 (hypot.f64 re im) 2)))
(log1p.f64 (expm1.f64 (pow.f64 (hypot.f64 re im) 2)))
(fma.f64 re re (*.f64 im im))
(fma.f64 im im (*.f64 re re))
(fma.f64 1 (*.f64 re re) (*.f64 im im))
(fma.f64 1 (*.f64 im im) (*.f64 re re))
(fma.f64 (cbrt.f64 (pow.f64 im 4)) (pow.f64 (cbrt.f64 im) 2) (*.f64 re re))
(fma.f64 (cbrt.f64 (pow.f64 re 4)) (pow.f64 (cbrt.f64 re) 2) (*.f64 im im))
Outputs
(pow.f64 im 2)
(*.f64 im im)
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(fma.f64 im im (*.f64 re re))
(fma.f64 re re (*.f64 im im))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(fma.f64 im im (*.f64 re re))
(fma.f64 re re (*.f64 im im))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(fma.f64 im im (*.f64 re re))
(fma.f64 re re (*.f64 im im))
(pow.f64 re 2)
(*.f64 re re)
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(fma.f64 im im (*.f64 re re))
(fma.f64 re re (*.f64 im im))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(fma.f64 im im (*.f64 re re))
(fma.f64 re re (*.f64 im im))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(fma.f64 im im (*.f64 re re))
(fma.f64 re re (*.f64 im im))
(pow.f64 re 2)
(*.f64 re re)
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(fma.f64 im im (*.f64 re re))
(fma.f64 re re (*.f64 im im))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(fma.f64 im im (*.f64 re re))
(fma.f64 re re (*.f64 im im))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(fma.f64 im im (*.f64 re re))
(fma.f64 re re (*.f64 im im))
(pow.f64 re 2)
(*.f64 re re)
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(fma.f64 im im (*.f64 re re))
(fma.f64 re re (*.f64 im im))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(fma.f64 im im (*.f64 re re))
(fma.f64 re re (*.f64 im im))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(fma.f64 im im (*.f64 re re))
(fma.f64 re re (*.f64 im im))
(pow.f64 im 2)
(*.f64 im im)
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(fma.f64 im im (*.f64 re re))
(fma.f64 re re (*.f64 im im))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(fma.f64 im im (*.f64 re re))
(fma.f64 re re (*.f64 im im))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(fma.f64 im im (*.f64 re re))
(fma.f64 re re (*.f64 im im))
(pow.f64 im 2)
(*.f64 im im)
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(fma.f64 im im (*.f64 re re))
(fma.f64 re re (*.f64 im im))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(fma.f64 im im (*.f64 re re))
(fma.f64 re re (*.f64 im im))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(fma.f64 im im (*.f64 re re))
(fma.f64 re re (*.f64 im im))
(-.f64 (+.f64 1 (pow.f64 (hypot.f64 re im) 2)) 1)
(+.f64 1 (-.f64 (pow.f64 (hypot.f64 re im) 2) 1))
(+.f64 (pow.f64 (hypot.f64 re im) 2) 0)
(pow.f64 (hypot.f64 re im) 2)
(-.f64 (/.f64 (pow.f64 re 4) (-.f64 (*.f64 re re) (*.f64 im im))) (/.f64 (pow.f64 im 4) (-.f64 (*.f64 re re) (*.f64 im im))))
(/.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (-.f64 (*.f64 re re) (*.f64 im im)))
(*.f64 (fma.f64 im im (*.f64 re re)) 1)
(*.f64 (pow.f64 (hypot.f64 re im) 2) 1)
(+.f64 1 (-.f64 (pow.f64 (hypot.f64 re im) 2) 1))
(+.f64 (pow.f64 (hypot.f64 re im) 2) 0)
(pow.f64 (hypot.f64 re im) 2)
(*.f64 1 (pow.f64 (hypot.f64 re im) 2))
(+.f64 1 (-.f64 (pow.f64 (hypot.f64 re im) 2) 1))
(+.f64 (pow.f64 (hypot.f64 re im) 2) 0)
(pow.f64 (hypot.f64 re im) 2)
(*.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) (cbrt.f64 (pow.f64 (pow.f64 (hypot.f64 re im) 2) 2)))
(+.f64 1 (-.f64 (pow.f64 (hypot.f64 re im) 2) 1))
(+.f64 (pow.f64 (hypot.f64 re im) 2) 0)
(pow.f64 (hypot.f64 re im) 2)
(*.f64 (cbrt.f64 (pow.f64 (pow.f64 (hypot.f64 re im) 2) 2)) (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)))
(+.f64 1 (-.f64 (pow.f64 (hypot.f64 re im) 2) 1))
(+.f64 (pow.f64 (hypot.f64 re im) 2) 0)
(pow.f64 (hypot.f64 re im) 2)
(*.f64 (hypot.f64 re im) (hypot.f64 re im))
(+.f64 1 (-.f64 (pow.f64 (hypot.f64 re im) 2) 1))
(+.f64 (pow.f64 (hypot.f64 re im) 2) 0)
(pow.f64 (hypot.f64 re im) 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 re 6) (pow.f64 im 6)) (/.f64 1 (-.f64 (+.f64 (pow.f64 re 4) (pow.f64 im 4)) (pow.f64 (*.f64 im re) 2))))
(/.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6)) (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 im re) 2))))
(/.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 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 (*.f64 re re) (*.f64 im im))))
(/.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (-.f64 (*.f64 re re) (*.f64 im im)))
(*.f64 (fma.f64 im im (*.f64 re re)) 1)
(/.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 re 6) (pow.f64 im 6)) (/.f64 1 (-.f64 (+.f64 (pow.f64 re 4) (pow.f64 im 4)) (pow.f64 (*.f64 im re) 2))))
(/.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6)) (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 im re) 2))))
(/.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6)) (-.f64 (+.f64 (pow.f64 re 4) (pow.f64 im 4)) (pow.f64 (*.f64 im re) 2)))
(/.f64 1 (/.f64 (-.f64 (*.f64 re re) (*.f64 im im)) (-.f64 (pow.f64 re 4) (pow.f64 im 4))))
(/.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (-.f64 (*.f64 re re) (*.f64 im im)))
(*.f64 (fma.f64 im im (*.f64 re re)) 1)
(/.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 6) (pow.f64 im 6)) (/.f64 1 (-.f64 (+.f64 (pow.f64 re 4) (pow.f64 im 4)) (pow.f64 (*.f64 im re) 2))))
(/.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6)) (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 im re) 2))))
(/.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6)) (-.f64 (+.f64 (pow.f64 re 4) (pow.f64 im 4)) (pow.f64 (*.f64 im re) 2)))
(/.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6)) (+.f64 (pow.f64 im 4) (-.f64 (pow.f64 re 4) (pow.f64 (*.f64 re im) 2))))
(*.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6)) (/.f64 1 (-.f64 (+.f64 (pow.f64 re 4) (pow.f64 im 4)) (pow.f64 (*.f64 im re) 2))))
(/.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6)) (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 im re) 2))))
(/.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 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 (*.f64 re re) (*.f64 im im)))
(*.f64 (fma.f64 im im (*.f64 re re)) 1)
(/.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 re 6) (pow.f64 im 6)) (/.f64 1 (-.f64 (+.f64 (pow.f64 re 4) (pow.f64 im 4)) (pow.f64 (*.f64 im re) 2))))
(/.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6)) (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 im re) 2))))
(/.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 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 (*.f64 re re) (*.f64 im im))))
(/.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (-.f64 (*.f64 re re) (*.f64 im im)))
(*.f64 (fma.f64 im im (*.f64 re re)) 1)
(/.f64 (-.f64 (pow.f64 im 4) (pow.f64 re 4)) (-.f64 (*.f64 im im) (*.f64 re re)))
(/.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (-.f64 (*.f64 re re) (*.f64 im im)))
(*.f64 (fma.f64 im im (*.f64 re re)) 1)
(pow.f64 (pow.f64 (hypot.f64 re im) 2) 1)
(+.f64 1 (-.f64 (pow.f64 (hypot.f64 re im) 2) 1))
(+.f64 (pow.f64 (hypot.f64 re im) 2) 0)
(pow.f64 (hypot.f64 re im) 2)
(pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 re im) 2)) 3)
(+.f64 1 (-.f64 (pow.f64 (hypot.f64 re im) 2) 1))
(+.f64 (pow.f64 (hypot.f64 re im) 2) 0)
(pow.f64 (hypot.f64 re im) 2)
(pow.f64 (pow.f64 (pow.f64 (hypot.f64 re im) 2) 3) 1/3)
(+.f64 1 (-.f64 (pow.f64 (hypot.f64 re im) 2) 1))
(+.f64 (pow.f64 (hypot.f64 re im) 2) 0)
(pow.f64 (hypot.f64 re im) 2)
(pow.f64 (hypot.f64 re im) 2)
(+.f64 1 (-.f64 (pow.f64 (hypot.f64 re im) 2) 1))
(+.f64 (pow.f64 (hypot.f64 re im) 2) 0)
(sqrt.f64 (pow.f64 (pow.f64 (hypot.f64 re im) 2) 2))
(+.f64 1 (-.f64 (pow.f64 (hypot.f64 re im) 2) 1))
(+.f64 (pow.f64 (hypot.f64 re im) 2) 0)
(pow.f64 (hypot.f64 re im) 2)
(log.f64 (exp.f64 (pow.f64 (hypot.f64 re im) 2)))
(+.f64 1 (-.f64 (pow.f64 (hypot.f64 re im) 2) 1))
(+.f64 (pow.f64 (hypot.f64 re im) 2) 0)
(pow.f64 (hypot.f64 re im) 2)
(cbrt.f64 (pow.f64 (pow.f64 (hypot.f64 re im) 2) 3))
(+.f64 1 (-.f64 (pow.f64 (hypot.f64 re im) 2) 1))
(+.f64 (pow.f64 (hypot.f64 re im) 2) 0)
(pow.f64 (hypot.f64 re im) 2)
(expm1.f64 (log1p.f64 (pow.f64 (hypot.f64 re im) 2)))
(+.f64 1 (-.f64 (pow.f64 (hypot.f64 re im) 2) 1))
(+.f64 (pow.f64 (hypot.f64 re im) 2) 0)
(pow.f64 (hypot.f64 re im) 2)
(exp.f64 (log.f64 (pow.f64 (hypot.f64 re im) 2)))
(+.f64 1 (-.f64 (pow.f64 (hypot.f64 re im) 2) 1))
(+.f64 (pow.f64 (hypot.f64 re im) 2) 0)
(pow.f64 (hypot.f64 re im) 2)
(log1p.f64 (expm1.f64 (pow.f64 (hypot.f64 re im) 2)))
(+.f64 1 (-.f64 (pow.f64 (hypot.f64 re im) 2) 1))
(+.f64 (pow.f64 (hypot.f64 re im) 2) 0)
(pow.f64 (hypot.f64 re im) 2)
(fma.f64 re re (*.f64 im im))
(fma.f64 im im (*.f64 re re))
(fma.f64 im im (*.f64 re re))
(fma.f64 re re (*.f64 im im))
(fma.f64 1 (*.f64 re re) (*.f64 im im))
(fma.f64 im im (*.f64 re re))
(fma.f64 re re (*.f64 im im))
(fma.f64 1 (*.f64 im im) (*.f64 re re))
(fma.f64 im im (*.f64 re re))
(fma.f64 re re (*.f64 im im))
(fma.f64 (cbrt.f64 (pow.f64 im 4)) (pow.f64 (cbrt.f64 im) 2) (*.f64 re re))
(fma.f64 re re (*.f64 (cbrt.f64 (pow.f64 im 4)) (pow.f64 (cbrt.f64 im) 2)))
(fma.f64 (cbrt.f64 (pow.f64 re 4)) (pow.f64 (cbrt.f64 re) 2) (*.f64 im im))
(fma.f64 im im (*.f64 (cbrt.f64 (pow.f64 re 4)) (pow.f64 (cbrt.f64 re) 2)))

eval10.0ms (0.8%)

Compiler

Compiled 534 to 303 computations (43.3% saved)

prune13.0ms (1%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New44246
Fresh000
Picked011
Done000
Total44347
Accurracy
100.0%
Counts
47 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(fma.f64 im im (*.f64 re re))
100.0%
(+.f64 (*.f64 re re) (*.f64 im im))
98.3%
(*.f64 im im)
Compiler

Compiled 22 to 12 computations (45.5% saved)

localize25.0ms (1.9%)

Compiler

Compiled 18 to 6 computations (66.7% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune2.0ms (0.1%)

Pruning

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New000
Fresh000
Picked022
Done011
Total033
Accurracy
100.0%
Counts
3 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(fma.f64 im im (*.f64 re re))
100.0%
(+.f64 (*.f64 re re) (*.f64 im im))
98.3%
(*.f64 im im)
Compiler

Compiled 40 to 18 computations (55% saved)

regimes15.0ms (1.2%)

Counts
3 → 1
Calls
Call 1
Inputs
(*.f64 im im)
(+.f64 (*.f64 re re) (*.f64 im im))
(fma.f64 im im (*.f64 re re))
Outputs
(fma.f64 im im (*.f64 re re))
Calls

5 calls:

4.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 43 to 21 computations (51.2% saved)

regimes14.0ms (1.1%)

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

5 calls:

3.0ms
re
3.0ms
im
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 37 to 20 computations (45.9% saved)

regimes7.0ms (0.6%)

Accuracy

Total 0.0b remaining (0%)

Threshold costs 0b (0%)

Counts
1 → 1
Calls
Call 1
Inputs
(*.f64 im im)
Outputs
(*.f64 im im)
Calls

3 calls:

2.0ms
im
2.0ms
re
2.0ms
(*.f64 im im)
Results
AccuracySegmentsBranch
98.3%1re
98.3%1im
98.3%1(*.f64 im im)
Compiler

Compiled 16 to 10 computations (37.5% saved)

simplify4.0ms (0.3%)

Algorithm
egg-herbie
Rules
+-commutative
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0941
11041
Stop Event
done
saturated
Calls
Call 1
Inputs
(fma.f64 im im (*.f64 re re))
(+.f64 (*.f64 re re) (*.f64 im im))
(*.f64 im im)
Outputs
(fma.f64 im im (*.f64 re re))
(+.f64 (*.f64 re re) (*.f64 im im))
(*.f64 im im)
Compiler

Compiled 22 to 12 computations (45.5% saved)

soundness213.0ms (16.5%)

Rules
1170×log-prod
1170×log-prod
1128×cancel-sign-sub-inv
1128×cancel-sign-sub-inv
1040×div-sub
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0911435
12191309
27431213
345481081
0911435
12191309
27431213
345481081
Stop Event
node limit
node limit
Compiler

Compiled 44 to 20 computations (54.5% saved)

end32.0ms (2.5%)

Remove

(abs re)

Compiler

Compiled 134 to 62 computations (53.7% saved)

Profiling

Loading profile data...