math.abs on complex (squared)

Time bar (total: 1.6s)

analyze0.0ms (0%)

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

Compiled 10 to 6 computations (40% saved)

sample732.0ms (45.9%)

Results
441.0ms4728×body256valid
275.0ms3528×body256infinite
Bogosity

preprocess13.0ms (0.8%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0830
11130
022
122
Stop Event
unsound
saturated
Calls
Call 1
Inputs
0
1
Outputs
0
1
0
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))
(fma.f64 re re (*.f64 im im))
(+.f64 (*.f64 im im) (*.f64 re re))
(fma.f64 re re (*.f64 im im))
Symmetry

(sort re im)

Compiler

Compiled 11 to 7 computations (36.4% saved)

simplify13.0ms (0.8%)

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)

prune2.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

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

Compiled 34 to 18 computations (47.1% saved)

localize31.0ms (2%)

Local Accuracy

Found 2 expressions with local accuracy:

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

Compiled 29 to 7 computations (75.9% saved)

series3.0ms (0.2%)

Counts
2 → 48
Calls

12 calls:

TimeVariablePointExpression
0.0ms
re
@-inf
(fma.f64 re re (*.f64 im im))
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))

rewrite59.0ms (3.7%)

Algorithm
batch-egg-rewrite
Rules
1670×pow1
1544×add-exp-log
1544×log1p-expm1-u
1544×expm1-log1p-u
1510×add-log-exp
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0930
118826
2223226
Stop Event
node limit
Counts
2 → 62
Calls
Call 1
Inputs
(+.f64 (*.f64 re re) (*.f64 im im))
(fma.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 (+.f64 (pow.f64 re 4) (pow.f64 im 4)) (pow.f64 (*.f64 re im) 2))))
(*.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (/.f64 1 (-.f64 (*.f64 re re) (*.f64 im im))))
(/.f64 1 (/.f64 (-.f64 (+.f64 (pow.f64 re 4) (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 (+.f64 (pow.f64 re 4) (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 (+.f64 (pow.f64 re 4) (pow.f64 im 4)) (pow.f64 (*.f64 re im) 2))))
(/.f64 (neg.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4))) (neg.f64 (-.f64 (*.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)) (cbrt.f64 (*.f64 im im)) (*.f64 re re))
(fma.f64 (cbrt.f64 (pow.f64 re 4)) (cbrt.f64 (*.f64 re re)) (*.f64 im im))
(+.f64 (*.f64 re re) (*.f64 im im))
(+.f64 (*.f64 im im) (*.f64 re re))
(-.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 (+.f64 (pow.f64 re 4) (pow.f64 im 4)) (pow.f64 (*.f64 re im) 2))))
(*.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (/.f64 1 (-.f64 (*.f64 re re) (*.f64 im im))))
(/.f64 1 (/.f64 (-.f64 (+.f64 (pow.f64 re 4) (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 (+.f64 (pow.f64 re 4) (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 (+.f64 (pow.f64 re 4) (pow.f64 im 4)) (pow.f64 (*.f64 re im) 2))))
(/.f64 (neg.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4))) (neg.f64 (-.f64 (*.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)))

simplify74.0ms (4.7%)

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

Useful iterations: 3 (0.0ms)

IterNodesCost
0912770
12112518
27452326
345712062
Stop Event
node limit
Counts
110 → 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))
(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 (+.f64 (pow.f64 re 4) (pow.f64 im 4)) (pow.f64 (*.f64 re im) 2))))
(*.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (/.f64 1 (-.f64 (*.f64 re re) (*.f64 im im))))
(/.f64 1 (/.f64 (-.f64 (+.f64 (pow.f64 re 4) (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 (+.f64 (pow.f64 re 4) (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 (+.f64 (pow.f64 re 4) (pow.f64 im 4)) (pow.f64 (*.f64 re im) 2))))
(/.f64 (neg.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4))) (neg.f64 (-.f64 (*.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)) (cbrt.f64 (*.f64 im im)) (*.f64 re re))
(fma.f64 (cbrt.f64 (pow.f64 re 4)) (cbrt.f64 (*.f64 re re)) (*.f64 im im))
(+.f64 (*.f64 re re) (*.f64 im im))
(+.f64 (*.f64 im im) (*.f64 re re))
(-.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 (+.f64 (pow.f64 re 4) (pow.f64 im 4)) (pow.f64 (*.f64 re im) 2))))
(*.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4)) (/.f64 1 (-.f64 (*.f64 re re) (*.f64 im im))))
(/.f64 1 (/.f64 (-.f64 (+.f64 (pow.f64 re 4) (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 (+.f64 (pow.f64 re 4) (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 (+.f64 (pow.f64 re 4) (pow.f64 im 4)) (pow.f64 (*.f64 re im) 2))))
(/.f64 (neg.f64 (-.f64 (pow.f64 re 4) (pow.f64 im 4))) (neg.f64 (-.f64 (*.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)))
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))
(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 (+.f64 (pow.f64 re 4) (pow.f64 im 4)) (pow.f64 (*.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 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 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 (+.f64 (pow.f64 re 4) (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 (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 re 4) (-.f64 (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 (+.f64 (pow.f64 re 4) (pow.f64 im 4)) (pow.f64 (*.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 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 (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 (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 re 4) (-.f64 (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 (+.f64 (pow.f64 re 4) (pow.f64 im 4)) (pow.f64 (*.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 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 (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)) (cbrt.f64 (*.f64 im im)) (*.f64 re re))
(fma.f64 (cbrt.f64 (pow.f64 re 4)) (cbrt.f64 (*.f64 re re)) (*.f64 im im))
(fma.f64 im im (*.f64 (cbrt.f64 (pow.f64 re 4)) (cbrt.f64 (*.f64 re re))))
(+.f64 (*.f64 re re) (*.f64 im im))
(fma.f64 im im (*.f64 re re))
(fma.f64 re re (*.f64 im im))
(+.f64 (*.f64 im im) (*.f64 re re))
(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 (+.f64 (pow.f64 re 4) (pow.f64 im 4)) (pow.f64 (*.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 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 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 (+.f64 (pow.f64 re 4) (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 (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 re 4) (-.f64 (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 (+.f64 (pow.f64 re 4) (pow.f64 im 4)) (pow.f64 (*.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 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 (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 (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 re 4) (-.f64 (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 (+.f64 (pow.f64 re 4) (pow.f64 im 4)) (pow.f64 (*.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 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 (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)

eval9.0ms (0.6%)

Compiler

Compiled 515 to 278 computations (46% saved)

prune9.0ms (0.5%)

Pruning

5 alts after pruning (3 fresh and 2 done)

PrunedKeptTotal
New43346
Fresh000
Picked022
Done000
Total43548
Accurracy
100.0%
Counts
48 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(fma.f64 re re (*.f64 im im))
100.0%
(fma.f64 im im (*.f64 re re))
100.0%
(+.f64 (*.f64 re re) (*.f64 im im))
53.9%
(*.f64 re re)
60.1%
(*.f64 im im)
100.0%
(fma.f64 re re (*.f64 im im))
100.0%
(fma.f64 im im (*.f64 re re))
100.0%
(+.f64 (*.f64 re re) (*.f64 im im))
53.9%
(*.f64 re re)
60.1%
(*.f64 im im)
Compiler

Compiled 70 to 38 computations (45.7% saved)

localize27.0ms (1.7%)

Local Accuracy

Found 1 expressions with local accuracy:

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

Compiled 22 to 6 computations (72.7% saved)

series1.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

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

rewrite49.0ms (3.1%)

Algorithm
batch-egg-rewrite
Rules
1242×pow1
1132×add-exp-log
1132×log1p-expm1-u
1132×expm1-log1p-u
1104×add-log-exp
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0715
113713
2159213
Stop Event
node limit
Counts
1 → 21
Calls
Call 1
Inputs
(fma.f64 im im (*.f64 re re))
Outputs
(+.f64 (*.f64 re re) (*.f64 im im))
(+.f64 (*.f64 im im) (*.f64 re re))
(+.f64 (*.f64 (*.f64 im im) 1) (*.f64 re re))
(-.f64 (+.f64 1 (pow.f64 (hypot.f64 im re) 2)) 1)
(*.f64 (pow.f64 (hypot.f64 im re) 2) 1)
(*.f64 1 (pow.f64 (hypot.f64 im re) 2))
(*.f64 (cbrt.f64 (pow.f64 (hypot.f64 im re) 2)) (pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 im re) 2)) 2))
(*.f64 (pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 im re) 2)) 2) (cbrt.f64 (pow.f64 (hypot.f64 im re) 2)))
(*.f64 (hypot.f64 im re) (hypot.f64 im re))
(/.f64 (+.f64 (pow.f64 (*.f64 im im) 3) (pow.f64 (*.f64 re re) 3)) (+.f64 (*.f64 (*.f64 im im) (*.f64 im im)) (-.f64 (pow.f64 re 4) (*.f64 (*.f64 im im) (*.f64 re re)))))
(/.f64 (-.f64 (*.f64 (*.f64 im im) (*.f64 im im)) (pow.f64 re 4)) (-.f64 (*.f64 im im) (*.f64 re re)))
(pow.f64 (pow.f64 (hypot.f64 im re) 2) 1)
(pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 im re) 2)) 3)
(pow.f64 (pow.f64 (pow.f64 (hypot.f64 im re) 2) 3) 1/3)
(pow.f64 (hypot.f64 im re) 2)
(sqrt.f64 (pow.f64 (pow.f64 (hypot.f64 im re) 2) 2))
(log.f64 (exp.f64 (pow.f64 (hypot.f64 im re) 2)))
(cbrt.f64 (pow.f64 (pow.f64 (hypot.f64 im re) 2) 3))
(expm1.f64 (log1p.f64 (pow.f64 (hypot.f64 im re) 2)))
(exp.f64 (log.f64 (pow.f64 (hypot.f64 im re) 2)))
(log1p.f64 (expm1.f64 (pow.f64 (hypot.f64 im re) 2)))

simplify48.0ms (3%)

Algorithm
egg-herbie
Rules
1684×fma-def
1232×log-prod
838×associate-*r*
720×associate-*l*
712×unswap-sqr
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
057899
1154771
2584671
33363649
Stop Event
node limit
Counts
45 → 36
Calls
Call 1
Inputs
(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))
(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))
(+.f64 (*.f64 re re) (*.f64 im im))
(+.f64 (*.f64 im im) (*.f64 re re))
(+.f64 (*.f64 (*.f64 im im) 1) (*.f64 re re))
(-.f64 (+.f64 1 (pow.f64 (hypot.f64 im re) 2)) 1)
(*.f64 (pow.f64 (hypot.f64 im re) 2) 1)
(*.f64 1 (pow.f64 (hypot.f64 im re) 2))
(*.f64 (cbrt.f64 (pow.f64 (hypot.f64 im re) 2)) (pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 im re) 2)) 2))
(*.f64 (pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 im re) 2)) 2) (cbrt.f64 (pow.f64 (hypot.f64 im re) 2)))
(*.f64 (hypot.f64 im re) (hypot.f64 im re))
(/.f64 (+.f64 (pow.f64 (*.f64 im im) 3) (pow.f64 (*.f64 re re) 3)) (+.f64 (*.f64 (*.f64 im im) (*.f64 im im)) (-.f64 (pow.f64 re 4) (*.f64 (*.f64 im im) (*.f64 re re)))))
(/.f64 (-.f64 (*.f64 (*.f64 im im) (*.f64 im im)) (pow.f64 re 4)) (-.f64 (*.f64 im im) (*.f64 re re)))
(pow.f64 (pow.f64 (hypot.f64 im re) 2) 1)
(pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 im re) 2)) 3)
(pow.f64 (pow.f64 (pow.f64 (hypot.f64 im re) 2) 3) 1/3)
(pow.f64 (hypot.f64 im re) 2)
(sqrt.f64 (pow.f64 (pow.f64 (hypot.f64 im re) 2) 2))
(log.f64 (exp.f64 (pow.f64 (hypot.f64 im re) 2)))
(cbrt.f64 (pow.f64 (pow.f64 (hypot.f64 im re) 2) 3))
(expm1.f64 (log1p.f64 (pow.f64 (hypot.f64 im re) 2)))
(exp.f64 (log.f64 (pow.f64 (hypot.f64 im re) 2)))
(log1p.f64 (expm1.f64 (pow.f64 (hypot.f64 im re) 2)))
Outputs
(pow.f64 re 2)
(*.f64 re re)
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(fma.f64 re re (*.f64 im im))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(fma.f64 re re (*.f64 im im))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(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 re re (*.f64 im im))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(fma.f64 re re (*.f64 im im))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(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 re re (*.f64 im im))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(fma.f64 re re (*.f64 im im))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(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 re re (*.f64 im im))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(fma.f64 re re (*.f64 im im))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(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 re re (*.f64 im im))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(fma.f64 re re (*.f64 im im))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(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 re re (*.f64 im im))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(fma.f64 re re (*.f64 im im))
(+.f64 (pow.f64 re 2) (pow.f64 im 2))
(fma.f64 re re (*.f64 im im))
(+.f64 (*.f64 re re) (*.f64 im im))
(fma.f64 re re (*.f64 im im))
(+.f64 (*.f64 im im) (*.f64 re re))
(fma.f64 re re (*.f64 im im))
(+.f64 (*.f64 (*.f64 im im) 1) (*.f64 re re))
(fma.f64 re re (*.f64 im im))
(-.f64 (+.f64 1 (pow.f64 (hypot.f64 im re) 2)) 1)
(+.f64 (+.f64 1 (pow.f64 (hypot.f64 im re) 2)) -1)
(+.f64 (pow.f64 (hypot.f64 im re) 2) 0)
(pow.f64 (hypot.f64 im re) 2)
(*.f64 (pow.f64 (hypot.f64 im re) 2) 1)
(+.f64 (+.f64 1 (pow.f64 (hypot.f64 im re) 2)) -1)
(+.f64 (pow.f64 (hypot.f64 im re) 2) 0)
(pow.f64 (hypot.f64 im re) 2)
(*.f64 1 (pow.f64 (hypot.f64 im re) 2))
(+.f64 (+.f64 1 (pow.f64 (hypot.f64 im re) 2)) -1)
(+.f64 (pow.f64 (hypot.f64 im re) 2) 0)
(pow.f64 (hypot.f64 im re) 2)
(*.f64 (cbrt.f64 (pow.f64 (hypot.f64 im re) 2)) (pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 im re) 2)) 2))
(+.f64 (+.f64 1 (pow.f64 (hypot.f64 im re) 2)) -1)
(+.f64 (pow.f64 (hypot.f64 im re) 2) 0)
(pow.f64 (hypot.f64 im re) 2)
(*.f64 (pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 im re) 2)) 2) (cbrt.f64 (pow.f64 (hypot.f64 im re) 2)))
(+.f64 (+.f64 1 (pow.f64 (hypot.f64 im re) 2)) -1)
(+.f64 (pow.f64 (hypot.f64 im re) 2) 0)
(pow.f64 (hypot.f64 im re) 2)
(*.f64 (hypot.f64 im re) (hypot.f64 im re))
(+.f64 (+.f64 1 (pow.f64 (hypot.f64 im re) 2)) -1)
(+.f64 (pow.f64 (hypot.f64 im re) 2) 0)
(pow.f64 (hypot.f64 im re) 2)
(/.f64 (+.f64 (pow.f64 (*.f64 im im) 3) (pow.f64 (*.f64 re re) 3)) (+.f64 (*.f64 (*.f64 im im) (*.f64 im im)) (-.f64 (pow.f64 re 4) (*.f64 (*.f64 im im) (*.f64 re re)))))
(/.f64 (+.f64 (pow.f64 (*.f64 im im) 3) (pow.f64 (*.f64 re re) 3)) (fma.f64 (*.f64 im im) (*.f64 im im) (-.f64 (pow.f64 re 4) (*.f64 (*.f64 re re) (*.f64 im im)))))
(/.f64 (+.f64 (pow.f64 im 6) (pow.f64 re 6)) (-.f64 (+.f64 (pow.f64 im 4) (pow.f64 re 4)) (*.f64 im (*.f64 im (*.f64 re re)))))
(/.f64 (+.f64 (pow.f64 im 6) (pow.f64 re 6)) (fma.f64 (*.f64 re re) (-.f64 (*.f64 re re) (*.f64 im im)) (pow.f64 im 4)))
(/.f64 (+.f64 (pow.f64 im 6) (pow.f64 re 6)) (fma.f64 re (-.f64 (pow.f64 re 3) (*.f64 re (*.f64 im im))) (pow.f64 im 4)))
(/.f64 (-.f64 (*.f64 (*.f64 im im) (*.f64 im im)) (pow.f64 re 4)) (-.f64 (*.f64 im im) (*.f64 re re)))
(/.f64 (-.f64 (*.f64 im (*.f64 im (*.f64 im im))) (pow.f64 re 4)) (-.f64 (*.f64 im im) (*.f64 re re)))
(/.f64 (-.f64 (pow.f64 im 4) (pow.f64 re 4)) (-.f64 (*.f64 im im) (*.f64 re re)))
(/.f64 (fma.f64 re re (*.f64 im im)) 1)
(pow.f64 (pow.f64 (hypot.f64 im re) 2) 1)
(+.f64 (+.f64 1 (pow.f64 (hypot.f64 im re) 2)) -1)
(+.f64 (pow.f64 (hypot.f64 im re) 2) 0)
(pow.f64 (hypot.f64 im re) 2)
(pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 im re) 2)) 3)
(+.f64 (+.f64 1 (pow.f64 (hypot.f64 im re) 2)) -1)
(+.f64 (pow.f64 (hypot.f64 im re) 2) 0)
(pow.f64 (hypot.f64 im re) 2)
(pow.f64 (pow.f64 (pow.f64 (hypot.f64 im re) 2) 3) 1/3)
(+.f64 (+.f64 1 (pow.f64 (hypot.f64 im re) 2)) -1)
(+.f64 (pow.f64 (hypot.f64 im re) 2) 0)
(pow.f64 (hypot.f64 im re) 2)
(pow.f64 (hypot.f64 im re) 2)
(+.f64 (+.f64 1 (pow.f64 (hypot.f64 im re) 2)) -1)
(+.f64 (pow.f64 (hypot.f64 im re) 2) 0)
(sqrt.f64 (pow.f64 (pow.f64 (hypot.f64 im re) 2) 2))
(+.f64 (+.f64 1 (pow.f64 (hypot.f64 im re) 2)) -1)
(+.f64 (pow.f64 (hypot.f64 im re) 2) 0)
(pow.f64 (hypot.f64 im re) 2)
(log.f64 (exp.f64 (pow.f64 (hypot.f64 im re) 2)))
(+.f64 (+.f64 1 (pow.f64 (hypot.f64 im re) 2)) -1)
(+.f64 (pow.f64 (hypot.f64 im re) 2) 0)
(pow.f64 (hypot.f64 im re) 2)
(cbrt.f64 (pow.f64 (pow.f64 (hypot.f64 im re) 2) 3))
(+.f64 (+.f64 1 (pow.f64 (hypot.f64 im re) 2)) -1)
(+.f64 (pow.f64 (hypot.f64 im re) 2) 0)
(pow.f64 (hypot.f64 im re) 2)
(expm1.f64 (log1p.f64 (pow.f64 (hypot.f64 im re) 2)))
(+.f64 (+.f64 1 (pow.f64 (hypot.f64 im re) 2)) -1)
(+.f64 (pow.f64 (hypot.f64 im re) 2) 0)
(pow.f64 (hypot.f64 im re) 2)
(exp.f64 (log.f64 (pow.f64 (hypot.f64 im re) 2)))
(+.f64 (+.f64 1 (pow.f64 (hypot.f64 im re) 2)) -1)
(+.f64 (pow.f64 (hypot.f64 im re) 2) 0)
(pow.f64 (hypot.f64 im re) 2)
(log1p.f64 (expm1.f64 (pow.f64 (hypot.f64 im re) 2)))
(+.f64 (+.f64 1 (pow.f64 (hypot.f64 im re) 2)) -1)
(+.f64 (pow.f64 (hypot.f64 im re) 2) 0)
(pow.f64 (hypot.f64 im re) 2)

eval7.0ms (0.4%)

Compiler

Compiled 388 to 185 computations (52.3% saved)

prune6.0ms (0.4%)

Pruning

5 alts after pruning (0 fresh and 5 done)

PrunedKeptTotal
New36036
Fresh000
Picked033
Done022
Total36541
Accurracy
100.0%
Counts
41 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(fma.f64 re re (*.f64 im im))
100.0%
(fma.f64 im im (*.f64 re re))
100.0%
(+.f64 (*.f64 re re) (*.f64 im im))
53.9%
(*.f64 re re)
60.1%
(*.f64 im im)
Compiler

Compiled 62 to 26 computations (58.1% saved)

regimes25.0ms (1.6%)

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

5 calls:

9.0ms
(+.f64 (*.f64 re re) (*.f64 im im))
5.0ms
re
4.0ms
im
3.0ms
(*.f64 re re)
3.0ms
(*.f64 im im)
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 52 to 22 computations (57.7% saved)

regimes18.0ms (1.1%)

Counts
4 → 1
Calls
Call 1
Inputs
(*.f64 im im)
(*.f64 re re)
(+.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
4.0ms
re
3.0ms
(+.f64 (*.f64 re re) (*.f64 im im))
3.0ms
(*.f64 im im)
3.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 46 to 21 computations (54.3% saved)

regimes16.0ms (1%)

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

5 calls:

3.0ms
(+.f64 (*.f64 re re) (*.f64 im im))
3.0ms
im
3.0ms
re
3.0ms
(*.f64 re re)
3.0ms
(*.f64 im im)
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 40 to 20 computations (50% saved)

regimes37.0ms (2.3%)

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

4 calls:

14.0ms
(*.f64 re re)
9.0ms
(*.f64 im im)
8.0ms
re
6.0ms
im
Results
AccuracySegmentsBranch
88.7%2re
91.7%2im
85.0%6(*.f64 re re)
86.1%4(*.f64 im im)
Compiler

Compiled 24 to 14 computations (41.7% saved)

regimes8.0ms (0.5%)

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:

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

Compiled 16 to 10 computations (37.5% saved)

bsearch12.0ms (0.8%)

Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
12.0ms
1.2312317484818791e-104
1.3586878545827422e-100
Results
8.0ms105×body256valid
3.0ms23×body256infinite
Compiler

Compiled 110 to 73 computations (33.6% saved)

simplify5.0ms (0.3%)

Algorithm
egg-herbie
Rules
+-commutative
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01679
11779
Stop Event
done
saturated
Calls
Call 1
Inputs
(fma.f64 re re (*.f64 im im))
(fma.f64 im im (*.f64 re re))
(+.f64 (*.f64 re re) (*.f64 im im))
(if (<=.f64 im 2462625387274655/19701003098197239606139520050071806902539869635232723333974146702122860885748605305707133127442457820403313995153408) (*.f64 re re) (*.f64 im im))
(*.f64 im im)
Outputs
(fma.f64 re re (*.f64 im im))
(fma.f64 im im (*.f64 re re))
(+.f64 (*.f64 re re) (*.f64 im im))
(+.f64 (*.f64 im im) (*.f64 re re))
(if (<=.f64 im 2462625387274655/19701003098197239606139520050071806902539869635232723333974146702122860885748605305707133127442457820403313995153408) (*.f64 re re) (*.f64 im im))
(*.f64 im im)
Compiler

Compiled 42 to 23 computations (45.2% saved)

soundness345.0ms (21.6%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0715
11015
21115
0912770
12112518
27452326
345712062
0912770
12112518
27452326
345712062
0912770
12112518
27452326
345712062
Stop Event
node limit
node limit
node limit
saturated
Compiler

Compiled 67 to 31 computations (53.7% saved)

end44.0ms (2.7%)

Compiler

Compiled 102 to 38 computations (62.7% saved)

Profiling

Loading profile data...