math.square on complex, real part

Details

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)

sample647.0ms (49.6%)

Results
369.0ms4707×body256valid
267.0ms3549×body256infinite
Bogosity

preprocess172.0ms (13.2%)

Algorithm
egg-herbie
Rules
2428×fma-def
1090×sub-neg
988×distribute-rgt-in
972×distribute-lft-in
832×distribute-lft-out
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0838
12838
24938
310538
427238
581038
6207538
7382138
8545838
9603938
10615238
11626638
12634638
13634638
14772738
022
Stop Event
saturated
node limit
Alt Table
Click to see full alt table
StatusAccuracyProgram
93.8%
(-.f64 (*.f64 re re) (*.f64 im im))
93.8%
(-.f64 (*.f64 re re) (*.f64 im im))
Calls
Call 1
Inputs
0
1
Outputs
0
1
Call 2
Inputs
(-.f64 (*.f64 re re) (*.f64 im im))
(-.f64 (*.f64 im im) (*.f64 re re))
Outputs
(-.f64 (*.f64 re re) (*.f64 im im))
(-.f64 (*.f64 im im) (*.f64 re re))
Compiler

Compiled 29 to 17 computations (41.4% saved)

localize22.0ms (1.7%)

Local Accuracy

Found 1 expressions with local accuracy:

NewAccuracyProgram
94.5%
(-.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))

rewrite67.0ms (5.1%)

Algorithm
batch-egg-rewrite
Rules
1680×pow1
1560×add-exp-log
1560×log1p-expm1-u
1560×expm1-log1p-u
1522×add-log-exp
Iterations

Useful iterations: 0 (0.0ms)

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

simplify51.0ms (3.9%)

Algorithm
egg-herbie
Rules
1818×fma-def
742×distribute-lft-in
734×distribute-rgt-in
422×cancel-sign-sub-inv
340×unswap-sqr
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01282078
13441964
215241810
Stop Event
node limit
Counts
70 → 67
Calls
Call 1
Inputs
(*.f64 -1 (pow.f64 im 2))
(+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 im 2)))
(+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 im 2)))
(+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 im 2)))
(pow.f64 re 2)
(+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 im 2)))
(+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 im 2)))
(+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 im 2)))
(pow.f64 re 2)
(+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 im 2)))
(+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 im 2)))
(+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 im 2)))
(pow.f64 re 2)
(+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 im 2)))
(+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 im 2)))
(+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 im 2)))
(*.f64 -1 (pow.f64 im 2))
(+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 im 2)))
(+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 im 2)))
(+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 im 2)))
(*.f64 -1 (pow.f64 im 2))
(+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 im 2)))
(+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 im 2)))
(+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 im 2)))
(+.f64 (*.f64 re re) (*.f64 im (neg.f64 im)))
(+.f64 (*.f64 re re) (*.f64 (*.f64 im (neg.f64 im)) 1))
(+.f64 (*.f64 re re) (+.f64 (*.f64 im (neg.f64 im)) (fma.f64 (neg.f64 im) im (*.f64 im im))))
(+.f64 (-.f64 (*.f64 re re) (*.f64 im im)) (fma.f64 (neg.f64 im) im (*.f64 im im)))
(+.f64 (-.f64 (*.f64 re re) (*.f64 im im)) (fma.f64 (*.f64 im (neg.f64 im)) 1 (*.f64 im im)))
(+.f64 (-.f64 (*.f64 re re) (*.f64 im im)) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 im im))) (cbrt.f64 (pow.f64 im 4)) (*.f64 im im)))
(+.f64 (-.f64 (*.f64 re re) (*.f64 im im)) (*.f64 (fma.f64 (neg.f64 im) im (*.f64 im im)) 1))
(+.f64 (-.f64 (*.f64 re re) (*.f64 im im)) (+.f64 (fma.f64 (neg.f64 im) im (*.f64 im im)) (fma.f64 (neg.f64 im) im (*.f64 im im))))
(+.f64 (*.f64 im (neg.f64 im)) (*.f64 re re))
(+.f64 (fma.f64 (neg.f64 im) im (*.f64 im im)) (-.f64 (*.f64 re re) (*.f64 im im)))
(*.f64 (-.f64 (*.f64 re re) (*.f64 im im)) 1)
(*.f64 1 (-.f64 (*.f64 re re) (*.f64 im im)))
(*.f64 (cbrt.f64 (-.f64 (*.f64 re re) (*.f64 im im))) (cbrt.f64 (pow.f64 (-.f64 (*.f64 re re) (*.f64 im im)) 2)))
(*.f64 (cbrt.f64 (pow.f64 (-.f64 (*.f64 re re) (*.f64 im im)) 2)) (cbrt.f64 (-.f64 (*.f64 re re) (*.f64 im im))))
(*.f64 (sqrt.f64 (-.f64 (*.f64 re re) (*.f64 im im))) (sqrt.f64 (-.f64 (*.f64 re re) (*.f64 im 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 (fma.f64 re re (*.f64 im im))))
(*.f64 (+.f64 re im) (-.f64 re im))
(*.f64 (-.f64 re im) (+.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 (fma.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 4) (pow.f64 im 4)) (fma.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 (fma.f64 re re (*.f64 im im))))
(/.f64 (+.f64 (pow.f64 re 6) (pow.f64 (*.f64 im (neg.f64 im)) 3)) (+.f64 (pow.f64 re 4) (-.f64 (*.f64 (*.f64 im (neg.f64 im)) (*.f64 im (neg.f64 im))) (*.f64 (*.f64 re re) (*.f64 im (neg.f64 im))))))
(/.f64 (+.f64 (pow.f64 (-.f64 (*.f64 re re) (*.f64 im im)) 3) (pow.f64 (fma.f64 (neg.f64 im) im (*.f64 im im)) 3)) (+.f64 (pow.f64 (-.f64 (*.f64 re re) (*.f64 im im)) 2) (-.f64 (*.f64 (fma.f64 (neg.f64 im) im (*.f64 im im)) (fma.f64 (neg.f64 im) im (*.f64 im im))) (*.f64 (-.f64 (*.f64 re re) (*.f64 im im)) (fma.f64 (neg.f64 im) im (*.f64 im im))))))
(/.f64 (-.f64 (pow.f64 re 4) (*.f64 (*.f64 im (neg.f64 im)) (*.f64 im (neg.f64 im)))) (-.f64 (*.f64 re re) (*.f64 im (neg.f64 im))))
(/.f64 (-.f64 (pow.f64 (-.f64 (*.f64 re re) (*.f64 im im)) 2) (*.f64 (fma.f64 (neg.f64 im) im (*.f64 im im)) (fma.f64 (neg.f64 im) im (*.f64 im im)))) (-.f64 (-.f64 (*.f64 re re) (*.f64 im im)) (fma.f64 (neg.f64 im) im (*.f64 im im))))
(pow.f64 (-.f64 (*.f64 re re) (*.f64 im im)) 1)
(pow.f64 (cbrt.f64 (-.f64 (*.f64 re re) (*.f64 im im))) 3)
(pow.f64 (pow.f64 (-.f64 (*.f64 re re) (*.f64 im im)) 3) 1/3)
(pow.f64 (sqrt.f64 (-.f64 (*.f64 re re) (*.f64 im im))) 2)
(sqrt.f64 (pow.f64 (-.f64 (*.f64 re re) (*.f64 im im)) 2))
(log.f64 (pow.f64 (exp.f64 (+.f64 re im)) (-.f64 re im)))
(cbrt.f64 (pow.f64 (-.f64 (*.f64 re re) (*.f64 im im)) 3))
(expm1.f64 (log1p.f64 (-.f64 (*.f64 re re) (*.f64 im im))))
(exp.f64 (log.f64 (-.f64 (*.f64 re re) (*.f64 im im))))
(log1p.f64 (expm1.f64 (-.f64 (*.f64 re re) (*.f64 im im))))
(fma.f64 re re (*.f64 im (neg.f64 im)))
(fma.f64 1 (*.f64 re re) (*.f64 im (neg.f64 im)))
(fma.f64 1 (-.f64 (*.f64 re re) (*.f64 im im)) (fma.f64 (neg.f64 im) im (*.f64 im im)))
(fma.f64 (cbrt.f64 (pow.f64 (-.f64 (*.f64 re re) (*.f64 im im)) 2)) (cbrt.f64 (-.f64 (*.f64 re re) (*.f64 im im))) (fma.f64 (neg.f64 im) im (*.f64 im im)))
(fma.f64 (cbrt.f64 (pow.f64 re 4)) (pow.f64 (cbrt.f64 re) 2) (*.f64 im (neg.f64 im)))
(fma.f64 (sqrt.f64 (-.f64 (*.f64 re re) (*.f64 im im))) (sqrt.f64 (-.f64 (*.f64 re re) (*.f64 im im))) (fma.f64 (neg.f64 im) im (*.f64 im im)))
(fma.f64 (+.f64 re im) (-.f64 re im) (fma.f64 (neg.f64 im) im (*.f64 im im)))
Outputs
(*.f64 -1 (pow.f64 im 2))
(*.f64 im (neg.f64 im))
(neg.f64 (*.f64 im im))
(+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 im 2)))
(-.f64 (*.f64 re re) (*.f64 im im))
(+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 im 2)))
(-.f64 (*.f64 re re) (*.f64 im im))
(+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 im 2)))
(-.f64 (*.f64 re re) (*.f64 im im))
(pow.f64 re 2)
(*.f64 re re)
(+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 im 2)))
(-.f64 (*.f64 re re) (*.f64 im im))
(+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 im 2)))
(-.f64 (*.f64 re re) (*.f64 im im))
(+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 im 2)))
(-.f64 (*.f64 re re) (*.f64 im im))
(pow.f64 re 2)
(*.f64 re re)
(+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 im 2)))
(-.f64 (*.f64 re re) (*.f64 im im))
(+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 im 2)))
(-.f64 (*.f64 re re) (*.f64 im im))
(+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 im 2)))
(-.f64 (*.f64 re re) (*.f64 im im))
(pow.f64 re 2)
(*.f64 re re)
(+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 im 2)))
(-.f64 (*.f64 re re) (*.f64 im im))
(+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 im 2)))
(-.f64 (*.f64 re re) (*.f64 im im))
(+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 im 2)))
(-.f64 (*.f64 re re) (*.f64 im im))
(*.f64 -1 (pow.f64 im 2))
(*.f64 im (neg.f64 im))
(neg.f64 (*.f64 im im))
(+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 im 2)))
(-.f64 (*.f64 re re) (*.f64 im im))
(+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 im 2)))
(-.f64 (*.f64 re re) (*.f64 im im))
(+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 im 2)))
(-.f64 (*.f64 re re) (*.f64 im im))
(*.f64 -1 (pow.f64 im 2))
(*.f64 im (neg.f64 im))
(neg.f64 (*.f64 im im))
(+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 im 2)))
(-.f64 (*.f64 re re) (*.f64 im im))
(+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 im 2)))
(-.f64 (*.f64 re re) (*.f64 im im))
(+.f64 (pow.f64 re 2) (*.f64 -1 (pow.f64 im 2)))
(-.f64 (*.f64 re re) (*.f64 im im))
(+.f64 (*.f64 re re) (*.f64 im (neg.f64 im)))
(-.f64 (*.f64 re re) (*.f64 im im))
(+.f64 (*.f64 re re) (*.f64 (*.f64 im (neg.f64 im)) 1))
(-.f64 (*.f64 re re) (*.f64 im im))
(+.f64 (*.f64 re re) (+.f64 (*.f64 im (neg.f64 im)) (fma.f64 (neg.f64 im) im (*.f64 im im))))
(-.f64 (*.f64 re re) (*.f64 im im))
(+.f64 (-.f64 (*.f64 re re) (*.f64 im im)) (fma.f64 (neg.f64 im) im (*.f64 im im)))
(-.f64 (*.f64 re re) (*.f64 im im))
(+.f64 (-.f64 (*.f64 re re) (*.f64 im im)) (fma.f64 (*.f64 im (neg.f64 im)) 1 (*.f64 im im)))
(-.f64 (*.f64 re re) (*.f64 im im))
(+.f64 (-.f64 (*.f64 re re) (*.f64 im im)) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 im im))) (cbrt.f64 (pow.f64 im 4)) (*.f64 im im)))
(fma.f64 (+.f64 im re) (-.f64 re im) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 im im))) (cbrt.f64 (pow.f64 im 4)) (*.f64 im im)))
(fma.f64 (neg.f64 (cbrt.f64 (*.f64 im im))) (cbrt.f64 (pow.f64 im 4)) (fma.f64 re re 0))
(+.f64 (-.f64 (*.f64 re re) (*.f64 im im)) (*.f64 (fma.f64 (neg.f64 im) im (*.f64 im im)) 1))
(-.f64 (*.f64 re re) (*.f64 im im))
(+.f64 (-.f64 (*.f64 re re) (*.f64 im im)) (+.f64 (fma.f64 (neg.f64 im) im (*.f64 im im)) (fma.f64 (neg.f64 im) im (*.f64 im im))))
(-.f64 (*.f64 re re) (*.f64 im im))
(+.f64 (*.f64 im (neg.f64 im)) (*.f64 re re))
(-.f64 (*.f64 re re) (*.f64 im im))
(+.f64 (fma.f64 (neg.f64 im) im (*.f64 im im)) (-.f64 (*.f64 re re) (*.f64 im im)))
(-.f64 (*.f64 re re) (*.f64 im im))
(*.f64 (-.f64 (*.f64 re re) (*.f64 im im)) 1)
(-.f64 (*.f64 re re) (*.f64 im im))
(*.f64 1 (-.f64 (*.f64 re re) (*.f64 im im)))
(-.f64 (*.f64 re re) (*.f64 im im))
(*.f64 (cbrt.f64 (-.f64 (*.f64 re re) (*.f64 im im))) (cbrt.f64 (pow.f64 (-.f64 (*.f64 re re) (*.f64 im im)) 2)))
(*.f64 (cbrt.f64 (pow.f64 (-.f64 (*.f64 re re) (*.f64 im im)) 2)) (cbrt.f64 (-.f64 (*.f64 re re) (*.f64 im im))))
(*.f64 (cbrt.f64 (-.f64 (*.f64 re re) (*.f64 im im))) (cbrt.f64 (pow.f64 (-.f64 (*.f64 re re) (*.f64 im im)) 2)))
(*.f64 (sqrt.f64 (-.f64 (*.f64 re re) (*.f64 im im))) (sqrt.f64 (-.f64 (*.f64 re re) (*.f64 im im))))
(-.f64 (*.f64 re re) (*.f64 im 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 (-.f64 (pow.f64 re 6) (pow.f64 im 6)) 1) (+.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 (pow.f64 im 4) (+.f64 (pow.f64 (*.f64 im re) 2) (pow.f64 re 4))))
(/.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 4) (pow.f64 im 4)) (/.f64 1 (fma.f64 re re (*.f64 im im))))
(/.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (fma.f64 re re (*.f64 im im)))
(/.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (fma.f64 im im (*.f64 re re)))
(*.f64 (+.f64 re im) (-.f64 re im))
(-.f64 (*.f64 re re) (*.f64 im im))
(*.f64 (-.f64 re im) (+.f64 re im))
(-.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 (*.f64 (-.f64 (pow.f64 re 6) (pow.f64 im 6)) 1) (+.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 (pow.f64 im 4) (+.f64 (pow.f64 (*.f64 im re) 2) (pow.f64 re 4))))
(/.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 1 (/.f64 (fma.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 1 (fma.f64 re re (*.f64 im im))))
(/.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (fma.f64 re re (*.f64 im im)))
(/.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (fma.f64 im im (*.f64 re re)))
(/.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 (-.f64 (pow.f64 re 6) (pow.f64 im 6)) 1) (+.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 (pow.f64 im 4) (+.f64 (pow.f64 (*.f64 im re) 2) (pow.f64 re 4))))
(/.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 4) (pow.f64 im 4)) (fma.f64 re re (*.f64 im im)))
(*.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (/.f64 1 (fma.f64 re re (*.f64 im im))))
(/.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (fma.f64 im im (*.f64 re re)))
(/.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 (-.f64 (pow.f64 re 6) (pow.f64 im 6)) 1) (+.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 (pow.f64 im 4) (+.f64 (pow.f64 (*.f64 im re) 2) (pow.f64 re 4))))
(/.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 (neg.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4))) (neg.f64 (fma.f64 re re (*.f64 im im))))
(*.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (/.f64 1 (fma.f64 re re (*.f64 im im))))
(/.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (fma.f64 re re (*.f64 im im)))
(/.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (fma.f64 im im (*.f64 re re)))
(/.f64 (+.f64 (pow.f64 re 6) (pow.f64 (*.f64 im (neg.f64 im)) 3)) (+.f64 (pow.f64 re 4) (-.f64 (*.f64 (*.f64 im (neg.f64 im)) (*.f64 im (neg.f64 im))) (*.f64 (*.f64 re re) (*.f64 im (neg.f64 im))))))
(/.f64 (*.f64 (-.f64 (pow.f64 re 6) (pow.f64 im 6)) 1) (+.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 (pow.f64 im 4) (+.f64 (pow.f64 (*.f64 im re) 2) (pow.f64 re 4))))
(/.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 (-.f64 (*.f64 re re) (*.f64 im im)) 3) (pow.f64 (fma.f64 (neg.f64 im) im (*.f64 im im)) 3)) (+.f64 (pow.f64 (-.f64 (*.f64 re re) (*.f64 im im)) 2) (-.f64 (*.f64 (fma.f64 (neg.f64 im) im (*.f64 im im)) (fma.f64 (neg.f64 im) im (*.f64 im im))) (*.f64 (-.f64 (*.f64 re re) (*.f64 im im)) (fma.f64 (neg.f64 im) im (*.f64 im im))))))
(/.f64 (+.f64 (pow.f64 (-.f64 (*.f64 re re) (*.f64 im im)) 3) (pow.f64 (fma.f64 (neg.f64 im) im (*.f64 im im)) 3)) (+.f64 (pow.f64 (-.f64 (*.f64 re re) (*.f64 im im)) 2) (*.f64 (fma.f64 (neg.f64 im) im (*.f64 im im)) (-.f64 (fma.f64 (neg.f64 im) im (*.f64 im im)) (-.f64 (*.f64 re re) (*.f64 im im))))))
(/.f64 (+.f64 (pow.f64 (-.f64 (*.f64 re re) (*.f64 im im)) 3) (pow.f64 (*.f64 0 (*.f64 im im)) 3)) (fma.f64 (*.f64 0 (*.f64 im im)) (-.f64 (*.f64 0 (*.f64 im im)) (-.f64 (*.f64 re re) (*.f64 im im))) (pow.f64 (-.f64 (*.f64 re re) (*.f64 im im)) 2)))
(/.f64 (+.f64 0 (pow.f64 (-.f64 (*.f64 re re) (*.f64 im im)) 3)) (pow.f64 (-.f64 (*.f64 re re) (*.f64 im im)) 2))
(/.f64 (-.f64 (pow.f64 re 4) (*.f64 (*.f64 im (neg.f64 im)) (*.f64 im (neg.f64 im)))) (-.f64 (*.f64 re re) (*.f64 im (neg.f64 im))))
(*.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (/.f64 1 (fma.f64 re re (*.f64 im im))))
(/.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (fma.f64 re re (*.f64 im im)))
(/.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (fma.f64 im im (*.f64 re re)))
(/.f64 (-.f64 (pow.f64 (-.f64 (*.f64 re re) (*.f64 im im)) 2) (*.f64 (fma.f64 (neg.f64 im) im (*.f64 im im)) (fma.f64 (neg.f64 im) im (*.f64 im im)))) (-.f64 (-.f64 (*.f64 re re) (*.f64 im im)) (fma.f64 (neg.f64 im) im (*.f64 im im))))
(/.f64 (+.f64 (pow.f64 (-.f64 (*.f64 re re) (*.f64 im im)) 2) (*.f64 (*.f64 0 (*.f64 im im)) (*.f64 0 (*.f64 im im)))) (fma.f64 (+.f64 im re) (-.f64 re im) (*.f64 0 (*.f64 im im))))
(/.f64 (pow.f64 (-.f64 (*.f64 re re) (*.f64 im im)) 2) (-.f64 (*.f64 re re) (*.f64 im im)))
(pow.f64 (-.f64 (*.f64 re re) (*.f64 im im)) 1)
(-.f64 (*.f64 re re) (*.f64 im im))
(pow.f64 (cbrt.f64 (-.f64 (*.f64 re re) (*.f64 im im))) 3)
(-.f64 (*.f64 re re) (*.f64 im im))
(pow.f64 (pow.f64 (-.f64 (*.f64 re re) (*.f64 im im)) 3) 1/3)
(-.f64 (*.f64 re re) (*.f64 im im))
(pow.f64 (sqrt.f64 (-.f64 (*.f64 re re) (*.f64 im im))) 2)
(-.f64 (*.f64 re re) (*.f64 im im))
(sqrt.f64 (pow.f64 (-.f64 (*.f64 re re) (*.f64 im im)) 2))
(-.f64 (*.f64 re re) (*.f64 im im))
(log.f64 (pow.f64 (exp.f64 (+.f64 re im)) (-.f64 re im)))
(-.f64 (*.f64 re re) (*.f64 im im))
(cbrt.f64 (pow.f64 (-.f64 (*.f64 re re) (*.f64 im im)) 3))
(-.f64 (*.f64 re re) (*.f64 im im))
(expm1.f64 (log1p.f64 (-.f64 (*.f64 re re) (*.f64 im im))))
(-.f64 (*.f64 re re) (*.f64 im im))
(exp.f64 (log.f64 (-.f64 (*.f64 re re) (*.f64 im im))))
(-.f64 (*.f64 re re) (*.f64 im im))
(log1p.f64 (expm1.f64 (-.f64 (*.f64 re re) (*.f64 im im))))
(-.f64 (*.f64 re re) (*.f64 im im))
(fma.f64 re re (*.f64 im (neg.f64 im)))
(-.f64 (*.f64 re re) (*.f64 im im))
(fma.f64 1 (*.f64 re re) (*.f64 im (neg.f64 im)))
(-.f64 (*.f64 re re) (*.f64 im im))
(fma.f64 1 (-.f64 (*.f64 re re) (*.f64 im im)) (fma.f64 (neg.f64 im) im (*.f64 im im)))
(-.f64 (*.f64 re re) (*.f64 im im))
(fma.f64 (cbrt.f64 (pow.f64 (-.f64 (*.f64 re re) (*.f64 im im)) 2)) (cbrt.f64 (-.f64 (*.f64 re re) (*.f64 im im))) (fma.f64 (neg.f64 im) im (*.f64 im im)))
(fma.f64 (cbrt.f64 (-.f64 (*.f64 re re) (*.f64 im im))) (cbrt.f64 (pow.f64 (-.f64 (*.f64 re re) (*.f64 im im)) 2)) (*.f64 0 (*.f64 im im)))
(fma.f64 (cbrt.f64 (-.f64 (*.f64 re re) (*.f64 im im))) (cbrt.f64 (pow.f64 (-.f64 (*.f64 re re) (*.f64 im im)) 2)) 0)
(fma.f64 (cbrt.f64 (pow.f64 re 4)) (pow.f64 (cbrt.f64 re) 2) (*.f64 im (neg.f64 im)))
(-.f64 (*.f64 (cbrt.f64 (pow.f64 re 4)) (pow.f64 (cbrt.f64 re) 2)) (*.f64 im im))
(fma.f64 (sqrt.f64 (-.f64 (*.f64 re re) (*.f64 im im))) (sqrt.f64 (-.f64 (*.f64 re re) (*.f64 im im))) (fma.f64 (neg.f64 im) im (*.f64 im im)))
(-.f64 (*.f64 re re) (*.f64 im im))
(fma.f64 (+.f64 re im) (-.f64 re im) (fma.f64 (neg.f64 im) im (*.f64 im im)))
(-.f64 (*.f64 re re) (*.f64 im im))

eval13.0ms (1%)

Compiler

Compiled 1129 to 367 computations (67.5% saved)

prune10.0ms (0.8%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New65267
Fresh000
Picked011
Done000
Total65368
Accurracy
100.0%
Counts
68 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
93.8%
(-.f64 (*.f64 re re) (*.f64 im im))
54.5%
(*.f64 re re)
51.6%
(*.f64 im (neg.f64 im))
93.8%
(-.f64 (*.f64 re re) (*.f64 im im))
54.5%
(*.f64 re re)
51.6%
(*.f64 im (neg.f64 im))
Compiler

Compiled 40 to 24 computations (40% saved)

localize21.0ms (1.6%)

Compiler

Compiled 14 to 6 computations (57.1% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune7.0ms (0.6%)

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
93.8%
(-.f64 (*.f64 re re) (*.f64 im im))
54.5%
(*.f64 re re)
51.6%
(*.f64 im (neg.f64 im))
Compiler

Compiled 36 to 19 computations (47.2% saved)

regimes25.0ms (1.9%)

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

5 calls:

7.0ms
re
5.0ms
(-.f64 (*.f64 re re) (*.f64 im im))
5.0ms
(*.f64 im im)
4.0ms
(*.f64 re re)
3.0ms
im
Results
AccuracySegmentsBranch
96.9%2re
93.8%1im
97.7%2(-.f64 (*.f64 re re) (*.f64 im im))
97.7%2(*.f64 re re)
96.1%2(*.f64 im im)
Compiler

Compiled 41 to 22 computations (46.3% saved)

regimes36.0ms (2.8%)

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

3 calls:

16.0ms
re
11.0ms
(*.f64 re re)
8.0ms
im
Results
AccuracySegmentsBranch
79.3%3im
81.9%5re
82.6%6(*.f64 re re)
Compiler

Compiled 20 to 12 computations (40% saved)

regimes7.0ms (0.6%)

Accuracy

Total 0.0b remaining (0%)

Threshold costs 0b (0%)

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

3 calls:

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

Compiled 16 to 10 computations (37.5% saved)

bsearch10.0ms (0.8%)

Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
10.0ms
1.024158016631265e+307
+inf
Results
7.0ms91×body256valid
2.0ms21×body256infinite
Compiler

Compiled 98 to 65 computations (33.7% saved)

bsearch20.0ms (1.5%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
6.0ms
6.18429082268484e-44
9.650760608161025e-44
14.0ms
-3.3457085171269704e+44
-2.7845980283748844e+39
Results
14.0ms160×body256valid
4.0ms48×body256infinite
Compiler

Compiled 183 to 126 computations (31.1% saved)

simplify6.0ms (0.4%)

Algorithm
egg-herbie
Rules
sub-neg
+-commutative
*-commutative
neg-mul-1
neg-sub0
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02291
13691
24191
34491
44591
Stop Event
done
saturated
Calls
Call 1
Inputs
(if (<=.f64 (*.f64 re re) +inf.0) (-.f64 (*.f64 re re) (*.f64 im im)) (*.f64 re re))
(if (<=.f64 im -29000000000000001727227556168551056277504) (*.f64 im (neg.f64 im)) (if (<=.f64 im 4770597318893877/50216813883093446110686315385661331328818843555712276103168) (*.f64 re re) (*.f64 im (neg.f64 im))))
(*.f64 re re)
Outputs
(if (<=.f64 (*.f64 re re) +inf.0) (-.f64 (*.f64 re re) (*.f64 im im)) (*.f64 re re))
(if (<=.f64 im -29000000000000001727227556168551056277504) (*.f64 im (neg.f64 im)) (if (<=.f64 im 4770597318893877/50216813883093446110686315385661331328818843555712276103168) (*.f64 re re) (*.f64 im (neg.f64 im))))
(if (or (<=.f64 im -29000000000000001727227556168551056277504) (not (<=.f64 im 4770597318893877/50216813883093446110686315385661331328818843555712276103168))) (*.f64 im (neg.f64 im)) (*.f64 re re))
(*.f64 re re)
Compiler

Compiled 41 to 23 computations (43.9% saved)

soundness153.0ms (11.7%)

Rules
1818×fma-def
1818×fma-def
742×distribute-lft-in
742×distribute-lft-in
734×distribute-rgt-in
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01282078
13441964
215241810
01282078
13441964
215241810
Stop Event
node limit
node limit
Compiler

Compiled 28 to 17 computations (39.3% saved)

end35.0ms (2.7%)

Compiler

Compiled 92 to 44 computations (52.2% saved)

Profiling

Loading profile data...