math.abs on complex

Details

Time bar (total: 2.2s)

analyze1.0ms (0%)

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

Compiled 11 to 7 computations (36.4% saved)

sample1.3s (58.6%)

Results
1.3s8256×body256valid
Bogosity

preprocess14.0ms (0.6%)

Algorithm
egg-herbie
Rules
fma-def
hypot-def
swap-re-im
+-commutative
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01114
11614
022
122
Stop Event
unsound
saturated
Alt Table
Click to see full alt table
StatusAccuracyProgram
53.7%
(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
53.7%
(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
Calls
Call 1
Inputs
0
1
Outputs
0
1
0
Call 2
Inputs
(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
(sqrt.f64 (+.f64 (*.f64 im im) (*.f64 re re)))
Outputs
(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
(hypot.f64 re im)
(sqrt.f64 (+.f64 (*.f64 im im) (*.f64 re re)))
(hypot.f64 re im)
Symmetry

(sort re im)

Compiler

Compiled 32 to 20 computations (37.5% saved)

localize31.0ms (1.4%)

Local Accuracy

Found 1 expressions with local accuracy:

NewAccuracyProgram
53.7%
(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
Compiler

Compiled 26 to 7 computations (73.1% saved)

series3.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

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

rewrite56.0ms (2.5%)

Algorithm
batch-egg-rewrite
Rules
1818×pow1
1682×add-exp-log
1682×log1p-expm1-u
1682×expm1-log1p-u
1644×add-log-exp
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
097
11897
224337
Stop Event
node limit
Counts
1 → 24
Calls
Call 1
Inputs
(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
Outputs
(-.f64 (+.f64 1 (hypot.f64 re im)) 1)
(*.f64 (hypot.f64 re im) 1)
(*.f64 1 (hypot.f64 re im))
(*.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (cbrt.f64 (hypot.f64 re im)))
(*.f64 (cbrt.f64 (hypot.f64 re im)) (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2))
(*.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)))
(*.f64 (sqrt.f64 (pow.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) 2)) (sqrt.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)))
(*.f64 (pow.f64 1 1/2) (hypot.f64 re im))
(*.f64 (pow.f64 (pow.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) 2) 1/2) (pow.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) 1/2))
(/.f64 (sqrt.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4))) (sqrt.f64 (fma.f64 re re (neg.f64 (*.f64 im im)))))
(/.f64 (sqrt.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6))) (sqrt.f64 (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 re im) 2)))))
(pow.f64 (pow.f64 (hypot.f64 re im) 2) 1/2)
(pow.f64 (hypot.f64 re im) 1)
(pow.f64 (cbrt.f64 (hypot.f64 re im)) 3)
(pow.f64 (pow.f64 (hypot.f64 re im) 3) 1/3)
(pow.f64 (sqrt.f64 (hypot.f64 re im)) 2)
(fabs.f64 (hypot.f64 re im))
(log.f64 (exp.f64 (hypot.f64 re im)))
(cbrt.f64 (pow.f64 (hypot.f64 re im) 3))
(expm1.f64 (log1p.f64 (hypot.f64 re im)))
(hypot.f64 re im)
(hypot.f64 im re)
(exp.f64 (log.f64 (hypot.f64 re im)))
(log1p.f64 (expm1.f64 (hypot.f64 re im)))

simplify65.0ms (2.9%)

Algorithm
egg-herbie
Rules
850×associate-*r*
748×log-prod
730×fma-def
688×associate-*l*
664×fma-neg
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01221432
13081280
29471154
349131154
Stop Event
node limit
Counts
48 → 92
Calls
Call 1
Inputs
im
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im)
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5))) im)))
re
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) re)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(*.f64 -1 re)
(+.f64 (*.f64 -1 re) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 -1 re) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re))))
(+.f64 (*.f64 -1 re) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (+.f64 (*.f64 -1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))))
re
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) re)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
im
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im)
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5))) im)))
(*.f64 -1 im)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(+.f64 (*.f64 -1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5))) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))))
(-.f64 (+.f64 1 (hypot.f64 re im)) 1)
(*.f64 (hypot.f64 re im) 1)
(*.f64 1 (hypot.f64 re im))
(*.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (cbrt.f64 (hypot.f64 re im)))
(*.f64 (cbrt.f64 (hypot.f64 re im)) (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2))
(*.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)))
(*.f64 (sqrt.f64 (pow.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) 2)) (sqrt.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)))
(*.f64 (pow.f64 1 1/2) (hypot.f64 re im))
(*.f64 (pow.f64 (pow.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) 2) 1/2) (pow.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) 1/2))
(/.f64 (sqrt.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4))) (sqrt.f64 (fma.f64 re re (neg.f64 (*.f64 im im)))))
(/.f64 (sqrt.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6))) (sqrt.f64 (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 re im) 2)))))
(pow.f64 (pow.f64 (hypot.f64 re im) 2) 1/2)
(pow.f64 (hypot.f64 re im) 1)
(pow.f64 (cbrt.f64 (hypot.f64 re im)) 3)
(pow.f64 (pow.f64 (hypot.f64 re im) 3) 1/3)
(pow.f64 (sqrt.f64 (hypot.f64 re im)) 2)
(fabs.f64 (hypot.f64 re im))
(log.f64 (exp.f64 (hypot.f64 re im)))
(cbrt.f64 (pow.f64 (hypot.f64 re im) 3))
(expm1.f64 (log1p.f64 (hypot.f64 re im)))
(hypot.f64 re im)
(hypot.f64 im re)
(exp.f64 (log.f64 (hypot.f64 re im)))
(log1p.f64 (expm1.f64 (hypot.f64 re im)))
Outputs
im
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im)
(fma.f64 1/2 (/.f64 (*.f64 re re) im) im)
(fma.f64 1/2 (/.f64 re (/.f64 im re)) im)
(fma.f64 1/2 (*.f64 (/.f64 re im) re) im)
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 (*.f64 re re) im) im))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 re (/.f64 im re)) im))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (*.f64 (/.f64 re im) re) im))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5))) im)))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 (*.f64 re re) im) (fma.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) im)))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 re (/.f64 im re)) (fma.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) im)))
(fma.f64 1/2 (*.f64 (/.f64 re im) re) (fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) im)))
(fma.f64 1/2 (/.f64 re (/.f64 im re)) (fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) im)))
re
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) re)
(fma.f64 1/2 (/.f64 (*.f64 im im) re) re)
(fma.f64 1/2 (/.f64 im (/.f64 re im)) re)
(fma.f64 1/2 (*.f64 (/.f64 im re) im) re)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(+.f64 (fma.f64 1/2 (/.f64 (*.f64 im im) re) re) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(fma.f64 1/2 (/.f64 im (/.f64 re im)) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) re))
(fma.f64 1/2 (*.f64 (/.f64 im re) im) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) re))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(fma.f64 1/2 (/.f64 im (/.f64 re im)) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) re)))
(fma.f64 1/2 (*.f64 (/.f64 im re) im) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) re)))
(*.f64 -1 re)
(neg.f64 re)
(+.f64 (*.f64 -1 re) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))
(fma.f64 -1 re (/.f64 (*.f64 -1/2 (*.f64 im im)) re))
(-.f64 (*.f64 (/.f64 im (/.f64 re im)) -1/2) re)
(-.f64 (*.f64 (*.f64 (/.f64 im re) im) -1/2) re)
(-.f64 (*.f64 (/.f64 -1/2 re) (*.f64 im im)) re)
(+.f64 (*.f64 -1 re) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re))))
(fma.f64 -1 re (fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (/.f64 (*.f64 -1/2 (*.f64 im im)) re)))
(-.f64 (fma.f64 (/.f64 im (/.f64 re im)) -1/2 (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8)) re)
(-.f64 (fma.f64 (*.f64 (/.f64 im re) im) -1/2 (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8)) re)
(-.f64 (*.f64 (/.f64 -1/2 re) (*.f64 im im)) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) re))
(+.f64 (*.f64 -1 re) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (+.f64 (*.f64 -1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))))
(fma.f64 -1 re (fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 -1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (/.f64 (*.f64 -1/2 (*.f64 im im)) re))))
(-.f64 (fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8 (fma.f64 (/.f64 im (/.f64 re im)) -1/2 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) -1/16))) re)
(-.f64 (fma.f64 (*.f64 (/.f64 im re) im) -1/2 (fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) -1/16))) re)
(-.f64 (fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8 (*.f64 (/.f64 -1/2 re) (*.f64 im im))) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) re))
re
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) re)
(fma.f64 1/2 (/.f64 (*.f64 im im) re) re)
(fma.f64 1/2 (/.f64 im (/.f64 re im)) re)
(fma.f64 1/2 (*.f64 (/.f64 im re) im) re)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(+.f64 (fma.f64 1/2 (/.f64 (*.f64 im im) re) re) (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(fma.f64 1/2 (/.f64 im (/.f64 re im)) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) re))
(fma.f64 1/2 (*.f64 (/.f64 im re) im) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) re))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(fma.f64 1/2 (/.f64 (*.f64 im im) re) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (+.f64 re (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))))
(fma.f64 1/2 (/.f64 im (/.f64 re im)) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) re)))
(fma.f64 1/2 (*.f64 (/.f64 im re) im) (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) re)))
im
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im)
(fma.f64 1/2 (/.f64 (*.f64 re re) im) im)
(fma.f64 1/2 (/.f64 re (/.f64 im re)) im)
(fma.f64 1/2 (*.f64 (/.f64 re im) re) im)
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) im))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 (*.f64 re re) im) im))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 re (/.f64 im re)) im))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (*.f64 (/.f64 re im) re) im))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 2) im)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5))) im)))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 (*.f64 re re) im) (fma.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) im)))
(fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/2 (/.f64 re (/.f64 im re)) (fma.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) im)))
(fma.f64 1/2 (*.f64 (/.f64 re im) re) (fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) im)))
(fma.f64 1/2 (/.f64 re (/.f64 im re)) (fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) im)))
(*.f64 -1 im)
(neg.f64 im)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))
(fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))
(-.f64 (*.f64 (/.f64 re (/.f64 im re)) -1/2) im)
(-.f64 (*.f64 (*.f64 (/.f64 re im) re) -1/2) im)
(fma.f64 (/.f64 re (/.f64 im re)) -1/2 (neg.f64 im))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im)))
(fma.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im)))
(fma.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) 1/8 (-.f64 (*.f64 (/.f64 re (/.f64 im re)) -1/2) im))
(-.f64 (fma.f64 (*.f64 (/.f64 re im) re) -1/2 (/.f64 (*.f64 (pow.f64 re 4) 1/8) (pow.f64 im 3))) im)
(fma.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) 1/8 (fma.f64 (/.f64 re (/.f64 im re)) -1/2 (neg.f64 im)))
(+.f64 (*.f64 -1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5))) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 -1 im))))
(fma.f64 -1/16 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) (fma.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (fma.f64 -1/2 (/.f64 (*.f64 re re) im) (neg.f64 im))))
(fma.f64 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) -1/16 (fma.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) 1/8 (-.f64 (*.f64 (/.f64 re (/.f64 im re)) -1/2) im)))
(-.f64 (fma.f64 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) -1/16 (fma.f64 (*.f64 (/.f64 re im) re) -1/2 (/.f64 (*.f64 (pow.f64 re 4) 1/8) (pow.f64 im 3)))) im)
(-.f64 (fma.f64 (/.f64 (pow.f64 re 6) (pow.f64 im 5)) -1/16 (fma.f64 (/.f64 re (/.f64 im re)) -1/2 (/.f64 (*.f64 (pow.f64 re 4) 1/8) (pow.f64 im 3)))) im)
(-.f64 (+.f64 1 (hypot.f64 re im)) 1)
(+.f64 1 (-.f64 (hypot.f64 re im) 1))
(+.f64 (hypot.f64 re im) 0)
(hypot.f64 re im)
(*.f64 (hypot.f64 re im) 1)
(+.f64 1 (-.f64 (hypot.f64 re im) 1))
(+.f64 (hypot.f64 re im) 0)
(hypot.f64 re im)
(*.f64 1 (hypot.f64 re im))
(+.f64 1 (-.f64 (hypot.f64 re im) 1))
(+.f64 (hypot.f64 re im) 0)
(hypot.f64 re im)
(*.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (cbrt.f64 (hypot.f64 re im)))
(+.f64 1 (-.f64 (hypot.f64 re im) 1))
(+.f64 (hypot.f64 re im) 0)
(hypot.f64 re im)
(*.f64 (cbrt.f64 (hypot.f64 re im)) (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2))
(+.f64 1 (-.f64 (hypot.f64 re im) 1))
(+.f64 (hypot.f64 re im) 0)
(hypot.f64 re im)
(*.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)))
(+.f64 1 (-.f64 (hypot.f64 re im) 1))
(+.f64 (hypot.f64 re im) 0)
(hypot.f64 re im)
(*.f64 (sqrt.f64 (pow.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) 2)) (sqrt.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)))
(+.f64 1 (-.f64 (hypot.f64 re im) 1))
(+.f64 (hypot.f64 re im) 0)
(hypot.f64 re im)
(*.f64 (pow.f64 1 1/2) (hypot.f64 re im))
(+.f64 1 (-.f64 (hypot.f64 re im) 1))
(+.f64 (hypot.f64 re im) 0)
(hypot.f64 re im)
(*.f64 (pow.f64 (pow.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) 2) 1/2) (pow.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) 1/2))
(+.f64 1 (-.f64 (hypot.f64 re im) 1))
(+.f64 (hypot.f64 re im) 0)
(hypot.f64 re im)
(/.f64 (sqrt.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4))) (sqrt.f64 (fma.f64 re re (neg.f64 (*.f64 im im)))))
(/.f64 (sqrt.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4))) (sqrt.f64 (fma.f64 re re (*.f64 im (neg.f64 im)))))
(/.f64 (sqrt.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4))) (sqrt.f64 (-.f64 (*.f64 re re) (*.f64 im im))))
(/.f64 (sqrt.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6))) (sqrt.f64 (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 re im) 2)))))
(/.f64 (sqrt.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6))) (sqrt.f64 (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 im re) 2)))))
(/.f64 (hypot.f64 (pow.f64 im 3) (pow.f64 re 3)) (sqrt.f64 (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (pow.f64 (*.f64 im re) 2)))))
(/.f64 (hypot.f64 (pow.f64 im 3) (pow.f64 re 3)) (sqrt.f64 (+.f64 (pow.f64 im 4) (-.f64 (pow.f64 re 4) (pow.f64 (*.f64 im re) 2)))))
(pow.f64 (pow.f64 (hypot.f64 re im) 2) 1/2)
(+.f64 1 (-.f64 (hypot.f64 re im) 1))
(+.f64 (hypot.f64 re im) 0)
(hypot.f64 re im)
(pow.f64 (hypot.f64 re im) 1)
(+.f64 1 (-.f64 (hypot.f64 re im) 1))
(+.f64 (hypot.f64 re im) 0)
(hypot.f64 re im)
(pow.f64 (cbrt.f64 (hypot.f64 re im)) 3)
(+.f64 1 (-.f64 (hypot.f64 re im) 1))
(+.f64 (hypot.f64 re im) 0)
(hypot.f64 re im)
(pow.f64 (pow.f64 (hypot.f64 re im) 3) 1/3)
(+.f64 1 (-.f64 (hypot.f64 re im) 1))
(+.f64 (hypot.f64 re im) 0)
(hypot.f64 re im)
(pow.f64 (sqrt.f64 (hypot.f64 re im)) 2)
(+.f64 1 (-.f64 (hypot.f64 re im) 1))
(+.f64 (hypot.f64 re im) 0)
(hypot.f64 re im)
(fabs.f64 (hypot.f64 re im))
(+.f64 1 (-.f64 (hypot.f64 re im) 1))
(+.f64 (hypot.f64 re im) 0)
(hypot.f64 re im)
(log.f64 (exp.f64 (hypot.f64 re im)))
(+.f64 1 (-.f64 (hypot.f64 re im) 1))
(+.f64 (hypot.f64 re im) 0)
(hypot.f64 re im)
(cbrt.f64 (pow.f64 (hypot.f64 re im) 3))
(+.f64 1 (-.f64 (hypot.f64 re im) 1))
(+.f64 (hypot.f64 re im) 0)
(hypot.f64 re im)
(expm1.f64 (log1p.f64 (hypot.f64 re im)))
(+.f64 1 (-.f64 (hypot.f64 re im) 1))
(+.f64 (hypot.f64 re im) 0)
(hypot.f64 re im)
(hypot.f64 re im)
(+.f64 1 (-.f64 (hypot.f64 re im) 1))
(+.f64 (hypot.f64 re im) 0)
(hypot.f64 im re)
(exp.f64 (log.f64 (hypot.f64 re im)))
(+.f64 1 (-.f64 (hypot.f64 re im) 1))
(+.f64 (hypot.f64 re im) 0)
(hypot.f64 re im)
(log1p.f64 (expm1.f64 (hypot.f64 re im)))
(+.f64 1 (-.f64 (hypot.f64 re im) 1))
(+.f64 (hypot.f64 re im) 0)
(hypot.f64 re im)

eval25.0ms (1.1%)

Compiler

Compiled 1334 to 790 computations (40.8% saved)

prune16.0ms (0.7%)

Pruning

4 alts after pruning (4 fresh and 0 done)

PrunedKeptTotal
New88492
Fresh000
Picked101
Done000
Total89493
Accurracy
100.0%
Counts
93 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(hypot.f64 re im)
51.7%
(-.f64 (*.f64 (/.f64 im (/.f64 re im)) -1/2) re)
51.6%
(neg.f64 re)
50.8%
im
100.0%
(hypot.f64 re im)
51.7%
(-.f64 (*.f64 (/.f64 im (/.f64 re im)) -1/2) re)
51.6%
(neg.f64 re)
50.8%
im
Compiler

Compiled 46 to 30 computations (34.8% saved)

localize41.0ms (1.9%)

Local Accuracy

Found 2 expressions with local accuracy:

NewAccuracyProgram
100.0%
(*.f64 (/.f64 im (/.f64 re im)) -1/2)
99.8%
(/.f64 im (/.f64 re im))
Compiler

Compiled 38 to 13 computations (65.8% saved)

series4.0ms (0.2%)

Counts
2 → 48
Calls

12 calls:

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

rewrite67.0ms (3%)

Algorithm
batch-egg-rewrite
Rules
1866×pow1
1730×add-exp-log
1730×log1p-expm1-u
1730×expm1-log1p-u
1694×add-log-exp
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0832
117332
2234632
Stop Event
node limit
Counts
2 → 61
Calls
Call 1
Inputs
(/.f64 im (/.f64 re im))
(*.f64 (/.f64 im (/.f64 re im)) -1/2)
Outputs
(-.f64 (+.f64 1 (/.f64 im (/.f64 re im))) 1)
(*.f64 im (/.f64 im re))
(*.f64 (/.f64 im (/.f64 re im)) 1)
(*.f64 1 (/.f64 im (/.f64 re im)))
(*.f64 (cbrt.f64 (/.f64 im (/.f64 re im))) (pow.f64 (cbrt.f64 (/.f64 im (/.f64 re im))) 2))
(*.f64 (pow.f64 (cbrt.f64 (/.f64 im (/.f64 re im))) 2) (cbrt.f64 (/.f64 im (/.f64 re im))))
(*.f64 (pow.f64 (cbrt.f64 im) 2) (*.f64 (cbrt.f64 im) (/.f64 im re)))
(*.f64 (sqrt.f64 (/.f64 im (/.f64 re im))) (sqrt.f64 (/.f64 im (/.f64 re im))))
(*.f64 (sqrt.f64 im) (*.f64 (sqrt.f64 im) (/.f64 im re)))
(*.f64 (neg.f64 im) (/.f64 1 (neg.f64 (/.f64 re im))))
(*.f64 (/.f64 im re) im)
(*.f64 (/.f64 1 re) (/.f64 im (/.f64 1 im)))
(*.f64 (/.f64 1 (pow.f64 (cbrt.f64 (/.f64 re im)) 2)) (/.f64 im (cbrt.f64 (/.f64 re im))))
(*.f64 (/.f64 1 (sqrt.f64 (/.f64 re im))) (/.f64 im (sqrt.f64 (/.f64 re im))))
(*.f64 (/.f64 (pow.f64 (cbrt.f64 im) 2) re) (/.f64 (cbrt.f64 im) (/.f64 1 im)))
(*.f64 (/.f64 (pow.f64 (cbrt.f64 im) 2) 1) (/.f64 (cbrt.f64 im) (/.f64 re im)))
(*.f64 (/.f64 (pow.f64 (cbrt.f64 im) 2) (pow.f64 (cbrt.f64 (/.f64 re im)) 2)) (cbrt.f64 (/.f64 im (/.f64 re im))))
(*.f64 (/.f64 (pow.f64 (cbrt.f64 im) 2) (sqrt.f64 (/.f64 re im))) (/.f64 (cbrt.f64 im) (sqrt.f64 (/.f64 re im))))
(*.f64 (/.f64 (sqrt.f64 im) re) (/.f64 (sqrt.f64 im) (/.f64 1 im)))
(*.f64 (/.f64 (sqrt.f64 im) 1) (/.f64 (sqrt.f64 im) (/.f64 re im)))
(*.f64 (/.f64 (sqrt.f64 im) (pow.f64 (cbrt.f64 (/.f64 re im)) 2)) (/.f64 (sqrt.f64 im) (cbrt.f64 (/.f64 re im))))
(*.f64 (/.f64 im 1) (/.f64 im re))
(*.f64 (*.f64 (/.f64 im re) 1) im)
(*.f64 (*.f64 (/.f64 im re) (pow.f64 (cbrt.f64 im) 2)) (cbrt.f64 im))
(*.f64 (*.f64 (/.f64 im re) (sqrt.f64 im)) (sqrt.f64 im))
(*.f64 (/.f64 im (neg.f64 re)) (neg.f64 im))
(pow.f64 (/.f64 im (/.f64 re im)) 1)
(pow.f64 (cbrt.f64 (/.f64 im (/.f64 re im))) 3)
(pow.f64 (pow.f64 (/.f64 im (/.f64 re im)) 3) 1/3)
(pow.f64 (sqrt.f64 (/.f64 im (/.f64 re im))) 2)
(pow.f64 (/.f64 re (*.f64 im im)) -1)
(neg.f64 (/.f64 im (neg.f64 (/.f64 re im))))
(sqrt.f64 (pow.f64 (/.f64 im (/.f64 re im)) 2))
(log.f64 (pow.f64 (exp.f64 im) (/.f64 im re)))
(cbrt.f64 (pow.f64 (/.f64 im (/.f64 re im)) 3))
(cbrt.f64 (/.f64 (pow.f64 im 3) (pow.f64 (/.f64 re im) 3)))
(expm1.f64 (log1p.f64 (/.f64 im (/.f64 re im))))
(exp.f64 (log.f64 (/.f64 im (/.f64 re im))))
(log1p.f64 (expm1.f64 (/.f64 im (/.f64 re im))))
(-.f64 (+.f64 1 (*.f64 (/.f64 im (/.f64 re im)) -1/2)) 1)
(/.f64 im (/.f64 (/.f64 re im) -1/2))
(/.f64 -1/2 (/.f64 re (*.f64 im im)))
(/.f64 1 (/.f64 (/.f64 re im) (*.f64 im -1/2)))
(/.f64 (*.f64 im -1/2) (/.f64 re im))
(/.f64 (neg.f64 (*.f64 im -1/2)) (neg.f64 (/.f64 re im)))
(/.f64 (*.f64 -1/2 (neg.f64 im)) (neg.f64 (/.f64 re im)))
(/.f64 (*.f64 (neg.f64 im) -1/2) (neg.f64 (/.f64 re im)))
(/.f64 (/.f64 (*.f64 im -1/2) re) (/.f64 1 im))
(/.f64 (/.f64 (*.f64 im -1/2) 1) (/.f64 re im))
(/.f64 (/.f64 (*.f64 im -1/2) (pow.f64 (cbrt.f64 (/.f64 re im)) 2)) (cbrt.f64 (/.f64 re im)))
(/.f64 (/.f64 (*.f64 im -1/2) (sqrt.f64 (/.f64 re im))) (sqrt.f64 (/.f64 re im)))
(pow.f64 (*.f64 (/.f64 im (/.f64 re im)) -1/2) 1)
(pow.f64 (cbrt.f64 (*.f64 (/.f64 im (/.f64 re im)) -1/2)) 3)
(pow.f64 (pow.f64 (*.f64 (/.f64 im (/.f64 re im)) -1/2) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 (/.f64 im (/.f64 re im)) -1/2)) 2)
(sqrt.f64 (*.f64 (pow.f64 (/.f64 im (/.f64 re im)) 2) 1/4))
(log.f64 (pow.f64 (pow.f64 (exp.f64 im) (/.f64 im re)) -1/2))
(cbrt.f64 (pow.f64 (*.f64 (/.f64 im (/.f64 re im)) -1/2) 3))
(expm1.f64 (log1p.f64 (*.f64 (/.f64 im (/.f64 re im)) -1/2)))
(exp.f64 (log.f64 (*.f64 (/.f64 im (/.f64 re im)) -1/2)))
(log1p.f64 (expm1.f64 (*.f64 (/.f64 im (/.f64 re im)) -1/2)))

simplify78.0ms (3.5%)

Algorithm
egg-herbie
Rules
1380×times-frac
1300×associate-/l*
1082×fma-neg
822×associate-/r*
754×unswap-sqr
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01531745
13981745
214471739
377531739
Stop Event
node limit
Counts
109 → 68
Calls
Call 1
Inputs
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(/.f64 (pow.f64 im 2) re)
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(-.f64 (+.f64 1 (/.f64 im (/.f64 re im))) 1)
(*.f64 im (/.f64 im re))
(*.f64 (/.f64 im (/.f64 re im)) 1)
(*.f64 1 (/.f64 im (/.f64 re im)))
(*.f64 (cbrt.f64 (/.f64 im (/.f64 re im))) (pow.f64 (cbrt.f64 (/.f64 im (/.f64 re im))) 2))
(*.f64 (pow.f64 (cbrt.f64 (/.f64 im (/.f64 re im))) 2) (cbrt.f64 (/.f64 im (/.f64 re im))))
(*.f64 (pow.f64 (cbrt.f64 im) 2) (*.f64 (cbrt.f64 im) (/.f64 im re)))
(*.f64 (sqrt.f64 (/.f64 im (/.f64 re im))) (sqrt.f64 (/.f64 im (/.f64 re im))))
(*.f64 (sqrt.f64 im) (*.f64 (sqrt.f64 im) (/.f64 im re)))
(*.f64 (neg.f64 im) (/.f64 1 (neg.f64 (/.f64 re im))))
(*.f64 (/.f64 im re) im)
(*.f64 (/.f64 1 re) (/.f64 im (/.f64 1 im)))
(*.f64 (/.f64 1 (pow.f64 (cbrt.f64 (/.f64 re im)) 2)) (/.f64 im (cbrt.f64 (/.f64 re im))))
(*.f64 (/.f64 1 (sqrt.f64 (/.f64 re im))) (/.f64 im (sqrt.f64 (/.f64 re im))))
(*.f64 (/.f64 (pow.f64 (cbrt.f64 im) 2) re) (/.f64 (cbrt.f64 im) (/.f64 1 im)))
(*.f64 (/.f64 (pow.f64 (cbrt.f64 im) 2) 1) (/.f64 (cbrt.f64 im) (/.f64 re im)))
(*.f64 (/.f64 (pow.f64 (cbrt.f64 im) 2) (pow.f64 (cbrt.f64 (/.f64 re im)) 2)) (cbrt.f64 (/.f64 im (/.f64 re im))))
(*.f64 (/.f64 (pow.f64 (cbrt.f64 im) 2) (sqrt.f64 (/.f64 re im))) (/.f64 (cbrt.f64 im) (sqrt.f64 (/.f64 re im))))
(*.f64 (/.f64 (sqrt.f64 im) re) (/.f64 (sqrt.f64 im) (/.f64 1 im)))
(*.f64 (/.f64 (sqrt.f64 im) 1) (/.f64 (sqrt.f64 im) (/.f64 re im)))
(*.f64 (/.f64 (sqrt.f64 im) (pow.f64 (cbrt.f64 (/.f64 re im)) 2)) (/.f64 (sqrt.f64 im) (cbrt.f64 (/.f64 re im))))
(*.f64 (/.f64 im 1) (/.f64 im re))
(*.f64 (*.f64 (/.f64 im re) 1) im)
(*.f64 (*.f64 (/.f64 im re) (pow.f64 (cbrt.f64 im) 2)) (cbrt.f64 im))
(*.f64 (*.f64 (/.f64 im re) (sqrt.f64 im)) (sqrt.f64 im))
(*.f64 (/.f64 im (neg.f64 re)) (neg.f64 im))
(pow.f64 (/.f64 im (/.f64 re im)) 1)
(pow.f64 (cbrt.f64 (/.f64 im (/.f64 re im))) 3)
(pow.f64 (pow.f64 (/.f64 im (/.f64 re im)) 3) 1/3)
(pow.f64 (sqrt.f64 (/.f64 im (/.f64 re im))) 2)
(pow.f64 (/.f64 re (*.f64 im im)) -1)
(neg.f64 (/.f64 im (neg.f64 (/.f64 re im))))
(sqrt.f64 (pow.f64 (/.f64 im (/.f64 re im)) 2))
(log.f64 (pow.f64 (exp.f64 im) (/.f64 im re)))
(cbrt.f64 (pow.f64 (/.f64 im (/.f64 re im)) 3))
(cbrt.f64 (/.f64 (pow.f64 im 3) (pow.f64 (/.f64 re im) 3)))
(expm1.f64 (log1p.f64 (/.f64 im (/.f64 re im))))
(exp.f64 (log.f64 (/.f64 im (/.f64 re im))))
(log1p.f64 (expm1.f64 (/.f64 im (/.f64 re im))))
(-.f64 (+.f64 1 (*.f64 (/.f64 im (/.f64 re im)) -1/2)) 1)
(/.f64 im (/.f64 (/.f64 re im) -1/2))
(/.f64 -1/2 (/.f64 re (*.f64 im im)))
(/.f64 1 (/.f64 (/.f64 re im) (*.f64 im -1/2)))
(/.f64 (*.f64 im -1/2) (/.f64 re im))
(/.f64 (neg.f64 (*.f64 im -1/2)) (neg.f64 (/.f64 re im)))
(/.f64 (*.f64 -1/2 (neg.f64 im)) (neg.f64 (/.f64 re im)))
(/.f64 (*.f64 (neg.f64 im) -1/2) (neg.f64 (/.f64 re im)))
(/.f64 (/.f64 (*.f64 im -1/2) re) (/.f64 1 im))
(/.f64 (/.f64 (*.f64 im -1/2) 1) (/.f64 re im))
(/.f64 (/.f64 (*.f64 im -1/2) (pow.f64 (cbrt.f64 (/.f64 re im)) 2)) (cbrt.f64 (/.f64 re im)))
(/.f64 (/.f64 (*.f64 im -1/2) (sqrt.f64 (/.f64 re im))) (sqrt.f64 (/.f64 re im)))
(pow.f64 (*.f64 (/.f64 im (/.f64 re im)) -1/2) 1)
(pow.f64 (cbrt.f64 (*.f64 (/.f64 im (/.f64 re im)) -1/2)) 3)
(pow.f64 (pow.f64 (*.f64 (/.f64 im (/.f64 re im)) -1/2) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 (/.f64 im (/.f64 re im)) -1/2)) 2)
(sqrt.f64 (*.f64 (pow.f64 (/.f64 im (/.f64 re im)) 2) 1/4))
(log.f64 (pow.f64 (pow.f64 (exp.f64 im) (/.f64 im re)) -1/2))
(cbrt.f64 (pow.f64 (*.f64 (/.f64 im (/.f64 re im)) -1/2) 3))
(expm1.f64 (log1p.f64 (*.f64 (/.f64 im (/.f64 re im)) -1/2)))
(exp.f64 (log.f64 (*.f64 (/.f64 im (/.f64 re im)) -1/2)))
(log1p.f64 (expm1.f64 (*.f64 (/.f64 im (/.f64 re im)) -1/2)))
Outputs
(/.f64 (pow.f64 im 2) re)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(*.f64 im (/.f64 im re))
(/.f64 (pow.f64 im 2) re)
(*.f64 im (/.f64 im re))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(/.f64 im (/.f64 re (*.f64 im -1/2)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(/.f64 im (/.f64 re (*.f64 im -1/2)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(/.f64 im (/.f64 re (*.f64 im -1/2)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(/.f64 im (/.f64 re (*.f64 im -1/2)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(/.f64 im (/.f64 re (*.f64 im -1/2)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(/.f64 im (/.f64 re (*.f64 im -1/2)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(/.f64 im (/.f64 re (*.f64 im -1/2)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(/.f64 im (/.f64 re (*.f64 im -1/2)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(/.f64 im (/.f64 re (*.f64 im -1/2)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(/.f64 im (/.f64 re (*.f64 im -1/2)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(/.f64 im (/.f64 re (*.f64 im -1/2)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(/.f64 im (/.f64 re (*.f64 im -1/2)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(/.f64 im (/.f64 re (*.f64 im -1/2)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(/.f64 im (/.f64 re (*.f64 im -1/2)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(/.f64 im (/.f64 re (*.f64 im -1/2)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(/.f64 im (/.f64 re (*.f64 im -1/2)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(/.f64 im (/.f64 re (*.f64 im -1/2)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(/.f64 im (/.f64 re (*.f64 im -1/2)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(/.f64 im (/.f64 re (*.f64 im -1/2)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(/.f64 im (/.f64 re (*.f64 im -1/2)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(/.f64 im (/.f64 re (*.f64 im -1/2)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(/.f64 im (/.f64 re (*.f64 im -1/2)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(/.f64 im (/.f64 re (*.f64 im -1/2)))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(/.f64 im (/.f64 re (*.f64 im -1/2)))
(-.f64 (+.f64 1 (/.f64 im (/.f64 re im))) 1)
(*.f64 im (/.f64 im re))
(*.f64 im (/.f64 im re))
(*.f64 (/.f64 im (/.f64 re im)) 1)
(*.f64 im (/.f64 im re))
(*.f64 1 (/.f64 im (/.f64 re im)))
(*.f64 im (/.f64 im re))
(*.f64 (cbrt.f64 (/.f64 im (/.f64 re im))) (pow.f64 (cbrt.f64 (/.f64 im (/.f64 re im))) 2))
(*.f64 im (/.f64 im re))
(*.f64 (pow.f64 (cbrt.f64 (/.f64 im (/.f64 re im))) 2) (cbrt.f64 (/.f64 im (/.f64 re im))))
(*.f64 im (/.f64 im re))
(*.f64 (pow.f64 (cbrt.f64 im) 2) (*.f64 (cbrt.f64 im) (/.f64 im re)))
(*.f64 im (/.f64 im re))
(*.f64 (sqrt.f64 (/.f64 im (/.f64 re im))) (sqrt.f64 (/.f64 im (/.f64 re im))))
(*.f64 im (/.f64 im re))
(*.f64 (sqrt.f64 im) (*.f64 (sqrt.f64 im) (/.f64 im re)))
(*.f64 im (/.f64 im re))
(*.f64 (neg.f64 im) (/.f64 1 (neg.f64 (/.f64 re im))))
(*.f64 im (/.f64 im re))
(*.f64 (/.f64 im re) im)
(*.f64 im (/.f64 im re))
(*.f64 (/.f64 1 re) (/.f64 im (/.f64 1 im)))
(*.f64 im (/.f64 im re))
(*.f64 (/.f64 1 (pow.f64 (cbrt.f64 (/.f64 re im)) 2)) (/.f64 im (cbrt.f64 (/.f64 re im))))
(*.f64 im (/.f64 im re))
(*.f64 (/.f64 1 (sqrt.f64 (/.f64 re im))) (/.f64 im (sqrt.f64 (/.f64 re im))))
(*.f64 im (/.f64 im re))
(*.f64 (/.f64 (pow.f64 (cbrt.f64 im) 2) re) (/.f64 (cbrt.f64 im) (/.f64 1 im)))
(*.f64 im (/.f64 im re))
(*.f64 (/.f64 (pow.f64 (cbrt.f64 im) 2) 1) (/.f64 (cbrt.f64 im) (/.f64 re im)))
(*.f64 im (/.f64 im re))
(*.f64 (/.f64 (pow.f64 (cbrt.f64 im) 2) (pow.f64 (cbrt.f64 (/.f64 re im)) 2)) (cbrt.f64 (/.f64 im (/.f64 re im))))
(*.f64 (cbrt.f64 (*.f64 im (/.f64 im re))) (/.f64 (pow.f64 (cbrt.f64 im) 2) (pow.f64 (cbrt.f64 (/.f64 re im)) 2)))
(*.f64 (/.f64 (pow.f64 (cbrt.f64 im) 2) (sqrt.f64 (/.f64 re im))) (/.f64 (cbrt.f64 im) (sqrt.f64 (/.f64 re im))))
(*.f64 im (/.f64 im re))
(*.f64 (/.f64 (sqrt.f64 im) re) (/.f64 (sqrt.f64 im) (/.f64 1 im)))
(*.f64 im (/.f64 im re))
(*.f64 (/.f64 (sqrt.f64 im) 1) (/.f64 (sqrt.f64 im) (/.f64 re im)))
(*.f64 im (/.f64 im re))
(*.f64 (/.f64 (sqrt.f64 im) (pow.f64 (cbrt.f64 (/.f64 re im)) 2)) (/.f64 (sqrt.f64 im) (cbrt.f64 (/.f64 re im))))
(*.f64 im (/.f64 im re))
(*.f64 (/.f64 im 1) (/.f64 im re))
(*.f64 im (/.f64 im re))
(*.f64 (*.f64 (/.f64 im re) 1) im)
(*.f64 im (/.f64 im re))
(*.f64 (*.f64 (/.f64 im re) (pow.f64 (cbrt.f64 im) 2)) (cbrt.f64 im))
(*.f64 im (/.f64 im re))
(*.f64 (*.f64 (/.f64 im re) (sqrt.f64 im)) (sqrt.f64 im))
(*.f64 im (/.f64 im re))
(*.f64 (/.f64 im (neg.f64 re)) (neg.f64 im))
(*.f64 im (/.f64 im re))
(pow.f64 (/.f64 im (/.f64 re im)) 1)
(*.f64 im (/.f64 im re))
(pow.f64 (cbrt.f64 (/.f64 im (/.f64 re im))) 3)
(*.f64 im (/.f64 im re))
(pow.f64 (pow.f64 (/.f64 im (/.f64 re im)) 3) 1/3)
(*.f64 im (/.f64 im re))
(pow.f64 (sqrt.f64 (/.f64 im (/.f64 re im))) 2)
(*.f64 im (/.f64 im re))
(pow.f64 (/.f64 re (*.f64 im im)) -1)
(*.f64 im (/.f64 im re))
(neg.f64 (/.f64 im (neg.f64 (/.f64 re im))))
(*.f64 im (/.f64 im re))
(sqrt.f64 (pow.f64 (/.f64 im (/.f64 re im)) 2))
(*.f64 im (/.f64 im re))
(log.f64 (pow.f64 (exp.f64 im) (/.f64 im re)))
(*.f64 im (/.f64 im re))
(cbrt.f64 (pow.f64 (/.f64 im (/.f64 re im)) 3))
(*.f64 im (/.f64 im re))
(cbrt.f64 (/.f64 (pow.f64 im 3) (pow.f64 (/.f64 re im) 3)))
(*.f64 im (/.f64 im re))
(expm1.f64 (log1p.f64 (/.f64 im (/.f64 re im))))
(*.f64 im (/.f64 im re))
(exp.f64 (log.f64 (/.f64 im (/.f64 re im))))
(*.f64 im (/.f64 im re))
(log1p.f64 (expm1.f64 (/.f64 im (/.f64 re im))))
(*.f64 im (/.f64 im re))
(-.f64 (+.f64 1 (*.f64 (/.f64 im (/.f64 re im)) -1/2)) 1)
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(/.f64 im (/.f64 re (*.f64 im -1/2)))
(/.f64 im (/.f64 (/.f64 re im) -1/2))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(/.f64 im (/.f64 re (*.f64 im -1/2)))
(/.f64 -1/2 (/.f64 re (*.f64 im im)))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(/.f64 im (/.f64 re (*.f64 im -1/2)))
(/.f64 1 (/.f64 (/.f64 re im) (*.f64 im -1/2)))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(/.f64 im (/.f64 re (*.f64 im -1/2)))
(/.f64 (*.f64 im -1/2) (/.f64 re im))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(/.f64 im (/.f64 re (*.f64 im -1/2)))
(/.f64 (neg.f64 (*.f64 im -1/2)) (neg.f64 (/.f64 re im)))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(/.f64 im (/.f64 re (*.f64 im -1/2)))
(/.f64 (*.f64 -1/2 (neg.f64 im)) (neg.f64 (/.f64 re im)))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(/.f64 im (/.f64 re (*.f64 im -1/2)))
(/.f64 (*.f64 (neg.f64 im) -1/2) (neg.f64 (/.f64 re im)))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(/.f64 im (/.f64 re (*.f64 im -1/2)))
(/.f64 (/.f64 (*.f64 im -1/2) re) (/.f64 1 im))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(/.f64 im (/.f64 re (*.f64 im -1/2)))
(/.f64 (/.f64 (*.f64 im -1/2) 1) (/.f64 re im))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(/.f64 im (/.f64 re (*.f64 im -1/2)))
(/.f64 (/.f64 (*.f64 im -1/2) (pow.f64 (cbrt.f64 (/.f64 re im)) 2)) (cbrt.f64 (/.f64 re im)))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(/.f64 im (/.f64 re (*.f64 im -1/2)))
(/.f64 (/.f64 (*.f64 im -1/2) (sqrt.f64 (/.f64 re im))) (sqrt.f64 (/.f64 re im)))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(/.f64 im (/.f64 re (*.f64 im -1/2)))
(pow.f64 (*.f64 (/.f64 im (/.f64 re im)) -1/2) 1)
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(/.f64 im (/.f64 re (*.f64 im -1/2)))
(pow.f64 (cbrt.f64 (*.f64 (/.f64 im (/.f64 re im)) -1/2)) 3)
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(/.f64 im (/.f64 re (*.f64 im -1/2)))
(pow.f64 (pow.f64 (*.f64 (/.f64 im (/.f64 re im)) -1/2) 3) 1/3)
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(/.f64 im (/.f64 re (*.f64 im -1/2)))
(pow.f64 (sqrt.f64 (*.f64 (/.f64 im (/.f64 re im)) -1/2)) 2)
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(/.f64 im (/.f64 re (*.f64 im -1/2)))
(sqrt.f64 (*.f64 (pow.f64 (/.f64 im (/.f64 re im)) 2) 1/4))
(sqrt.f64 (*.f64 (pow.f64 (*.f64 im (/.f64 im re)) 2) 1/4))
(fabs.f64 (/.f64 im (/.f64 re (*.f64 im -1/2))))
(log.f64 (pow.f64 (pow.f64 (exp.f64 im) (/.f64 im re)) -1/2))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(/.f64 im (/.f64 re (*.f64 im -1/2)))
(cbrt.f64 (pow.f64 (*.f64 (/.f64 im (/.f64 re im)) -1/2) 3))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(/.f64 im (/.f64 re (*.f64 im -1/2)))
(expm1.f64 (log1p.f64 (*.f64 (/.f64 im (/.f64 re im)) -1/2)))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(/.f64 im (/.f64 re (*.f64 im -1/2)))
(exp.f64 (log.f64 (*.f64 (/.f64 im (/.f64 re im)) -1/2)))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(/.f64 im (/.f64 re (*.f64 im -1/2)))
(log1p.f64 (expm1.f64 (*.f64 (/.f64 im (/.f64 re im)) -1/2)))
(*.f64 -1/2 (*.f64 im (/.f64 im re)))
(/.f64 im (/.f64 re (*.f64 im -1/2)))

eval15.0ms (0.7%)

Compiler

Compiled 875 to 421 computations (51.9% saved)

prune10.0ms (0.5%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New68068
Fresh011
Picked033
Done000
Total68472
Accurracy
100.0%
Counts
72 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(hypot.f64 re im)
51.7%
(-.f64 (*.f64 (/.f64 im (/.f64 re im)) -1/2) re)
51.6%
(neg.f64 re)
50.8%
im
100.0%
(hypot.f64 re im)
51.7%
(-.f64 (*.f64 (/.f64 im (/.f64 re im)) -1/2) re)
51.6%
(neg.f64 re)
50.8%
im
Compiler

Compiled 46 to 30 computations (34.8% saved)

localize0.0ms (0%)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune3.0ms (0.1%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done033
Total044
Accurracy
100.0%
Counts
4 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(hypot.f64 re im)
51.7%
(-.f64 (*.f64 (/.f64 im (/.f64 re im)) -1/2) re)
51.6%
(neg.f64 re)
50.8%
im
100.0%
(hypot.f64 re im)
51.7%
(-.f64 (*.f64 (/.f64 im (/.f64 re im)) -1/2) re)
51.6%
(neg.f64 re)
50.8%
im
Compiler

Compiled 46 to 30 computations (34.8% saved)

localize0.0ms (0%)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune2.0ms (0.1%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done033
Total044
Accurracy
100.0%
Counts
4 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(hypot.f64 re im)
51.7%
(-.f64 (*.f64 (/.f64 im (/.f64 re im)) -1/2) re)
51.6%
(neg.f64 re)
50.8%
im
Compiler

Compiled 48 to 28 computations (41.7% saved)

regimes24.0ms (1.1%)

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

6 calls:

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

Compiled 60 to 34 computations (43.3% saved)

regimes20.0ms (0.9%)

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

2 calls:

12.0ms
im
7.0ms
re
Results
AccuracySegmentsBranch
86.3%2re
85.3%4im
Compiler

Compiled 20 to 12 computations (40% saved)

regimes6.0ms (0.3%)

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

1 calls:

6.0ms
re
Results
AccuracySegmentsBranch
86.1%2re
Compiler

Compiled 8 to 5 computations (37.5% saved)

regimes6.0ms (0.3%)

Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

Counts
1 → 1
Calls
Call 1
Inputs
im
Outputs
im
Calls

2 calls:

3.0ms
re
2.0ms
im
Results
AccuracySegmentsBranch
50.8%1im
50.8%1re
Compiler

Compiled 9 to 6 computations (33.3% saved)

bsearch16.0ms (0.7%)

Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
16.0ms
-3.503010246834482e-157
-1.9186199572926301e-162
Results
14.0ms144×body256valid
Compiler

Compiled 159 to 109 computations (31.4% saved)

bsearch15.0ms (0.7%)

Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
15.0ms
-3.503010246834482e-157
-1.9186199572926301e-162
Results
14.0ms144×body256valid
Compiler

Compiled 96 to 73 computations (24% saved)

simplify6.0ms (0.3%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
02158
12758
23058
33158
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(hypot.f64 re im)
(if (<=.f64 re -2705176266112081/7729075046034516689390703781863974688597854659412869997314470502903038284579120849072387533163845155924927232063004354354730157322085975311485817346934161497393961629646848) (-.f64 (*.f64 (/.f64 im (/.f64 re im)) -1/2) re) im)
(if (<=.f64 re -463744502762071/1932268761508629172347675945465993672149463664853217499328617625725759571144780212268096883290961288981231808015751088588682539330521493827871454336733540374348490407411712) (neg.f64 re) im)
im
Outputs
(hypot.f64 re im)
(if (<=.f64 re -2705176266112081/7729075046034516689390703781863974688597854659412869997314470502903038284579120849072387533163845155924927232063004354354730157322085975311485817346934161497393961629646848) (-.f64 (*.f64 (/.f64 im (/.f64 re im)) -1/2) re) im)
(if (<=.f64 re -463744502762071/1932268761508629172347675945465993672149463664853217499328617625725759571144780212268096883290961288981231808015751088588682539330521493827871454336733540374348490407411712) (neg.f64 re) im)
im
Compiler

Compiled 33 to 21 computations (36.4% saved)

soundness358.0ms (16.1%)

Rules
1818×pow1
1682×add-exp-log
1682×log1p-expm1-u
1682×expm1-log1p-u
1644×add-log-exp
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
097
11897
224337
01221432
13081280
29471154
349131154
01221432
13081280
29471154
349131154
01221432
13081280
29471154
349131154
Stop Event
node limit
node limit
node limit
node limit
Compiler

Compiled 173 to 95 computations (45.1% saved)

end35.0ms (1.6%)

Remove

(sort re im)

Compiler

Compiled 84 to 48 computations (42.9% saved)

Profiling

Loading profile data...