math.sqrt on complex, real part

Time bar (total: 4.9s)

analyze132.0ms (2.7%)

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
50%50%50%0.1%0%0%0%3
50%50%50%0.1%0%0%0%4
62.5%62.4%37.5%0.1%0%0%0%5
62.5%62.4%37.5%0.1%0%0%0%6
68.8%68.7%31.2%0.1%0%0%0%7
68.8%68.7%31.2%0.1%0%0%0%8
71.9%71.8%28.1%0.1%0%0%0%9
71.9%71.8%28.1%0.1%0%0%0%10
73.4%73.4%26.5%0.1%0%0%0%11
73.4%73.4%26.5%0.1%0%0%0%12
Compiler

Compiled 18 to 13 computations (27.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 71.0ms
Operation ival-mult, time spent: 31.0ms, 44.0% of total-time
Operation ival-sqrt, time spent: 28.0ms, 39.0% of total-time
Operation ival-add, time spent: 10.0ms, 14.0% of total-time
Operation const, time spent: 2.0ms, 3.0% of total-time

sample2.7s (54.8%)

Results
2.5s8199×0valid
65.0ms56×1valid
0.0ms0valid
Precisions
Click to see histograms. Total time spent on operations: 1.2s
Operation ival-add, time spent: 578.0ms, 49.0% of total-time
Operation ival-mult, time spent: 294.0ms, 25.0% of total-time
Operation ival-sqrt, time spent: 286.0ms, 24.0% of total-time
Operation const, time spent: 27.0ms, 2.0% of total-time
Bogosity

preprocess306.0ms (6.2%)

Algorithm
egg-herbie
Rules
510×fma-neg
410×fma-define
122×distribute-rgt-in
86×sub-neg
86×distribute-lft-in
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
1250-0-(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
40-0-(+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)
00-0-(*.f64 im im)
00-0-re
00-0-(+.f64 (*.f64 re re) (*.f64 im im))
00-0-1/2
00-0-im
00-0-(sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)))
00-0-(*.f64 re re)
00-0-2
00-0-(*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))
00-0-(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
042266
1121266
2213266
3333266
4531266
5734266
6941266
71149266
81242266
91252266
Stop Event
saturated
Calls
Call 1
Inputs
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 (neg.f64 re) (neg.f64 re)) (*.f64 im im))) (neg.f64 re)))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 (neg.f64 im) (neg.f64 im)))) re))))
(neg.f64 (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 (neg.f64 re) (neg.f64 re)) (*.f64 im im))) (neg.f64 re))))))
(neg.f64 (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 (neg.f64 im) (neg.f64 im)))) re)))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 im im) (*.f64 re re))) im))))
Outputs
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 (neg.f64 re) (neg.f64 re)) (*.f64 im im))) (neg.f64 re)))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 (neg.f64 im) (neg.f64 im)))) re))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))
(neg.f64 (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 (neg.f64 re) (neg.f64 re)) (*.f64 im im))) (neg.f64 re))))))
(*.f64 -1/2 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))))
(*.f64 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))) -1/2)
(neg.f64 (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 (neg.f64 im) (neg.f64 im)))) re)))))
(*.f64 -1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))
(*.f64 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))) -1/2)
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 im im) (*.f64 re re))) im))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 im (hypot.f64 re im)))))
Symmetry

(abs im)

Compiler

Compiled 173 to 52 computations (69.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 61.0ms
Operation ival-mult, time spent: 23.0ms, 38.0% of total-time
Operation ival-sqrt, time spent: 22.0ms, 36.0% of total-time
Operation ival-add, time spent: 13.0ms, 21.0% of total-time
Operation const, time spent: 3.0ms, 5.0% of total-time

eval0.0ms (0%)

Compiler

Compiled 12 to 9 computations (25% saved)

prune49.0ms (1%)

Alt Table
Click to see full alt table
StatusAccuracyProgram
98.6%
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))
Compiler

Compiled 12 to 9 computations (25% saved)

localize144.0ms (2.9%)

Localize:

Found 1 expressions with local error:

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

Compiled 40 to 17 computations (57.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 112.0ms
Operation composed, time spent: 35.0ms, 31.0% of total-time
Operation ival-mult, time spent: 31.0ms, 28.0% of total-time
Operation ival-sqrt, time spent: 23.0ms, 21.0% of total-time
Operation ival-add, time spent: 19.0ms, 17.0% of total-time
Operation const, time spent: 4.0ms, 4.0% of total-time

series6.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
1.0ms
re
@inf
(+.f64 re (hypot.f64 re im))
1.0ms
im
@0
(+.f64 re (hypot.f64 re im))
1.0ms
re
@-inf
(+.f64 re (hypot.f64 re im))
1.0ms
re
@0
(+.f64 re (hypot.f64 re im))
1.0ms
im
@inf
(+.f64 re (hypot.f64 re im))

rewrite276.0ms (5.6%)

Algorithm
batch-egg-rewrite
Rules
1012×prod-diff
780×unpow-prod-down
474×log1p-expm1-u
474×expm1-log1p-u
424×log-prod
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0922
19722
2128422
Stop Event
node limit
Counts
1 → 53
Calls
Call 1
Inputs
(+.f64 re (hypot.f64 re im))
Outputs
(-.f64 (+.f64 1 (+.f64 re (hypot.f64 re im))) 1)
(-.f64 (/.f64 (pow.f64 re 2) (-.f64 re (hypot.f64 re im))) (/.f64 (pow.f64 (hypot.f64 re im) 2) (-.f64 re (hypot.f64 re im))))
(*.f64 (+.f64 re (hypot.f64 re im)) 1)
(*.f64 (+.f64 re (hypot.f64 re im)) (log.f64 (E.f64)))
(*.f64 1 (+.f64 re (hypot.f64 re im)))
(*.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im))) (pow.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im))) 2))
(*.f64 (pow.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im))) 2) (cbrt.f64 (+.f64 re (hypot.f64 re im))))
(*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 (+.f64 re (hypot.f64 re im))))
(*.f64 (+.f64 (pow.f64 (hypot.f64 re im) 3) (pow.f64 re 3)) (/.f64 1 (fma.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re) (pow.f64 re 2))))
(*.f64 (-.f64 (pow.f64 re 2) (pow.f64 (hypot.f64 re im) 2)) (/.f64 1 (-.f64 re (hypot.f64 re im))))
(*.f64 (pow.f64 1 1/3) (+.f64 re (hypot.f64 re im)))
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im)))) 2) 3) (cbrt.f64 (+.f64 re (hypot.f64 re im))))
(*.f64 (pow.f64 (sqrt.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im)))) 3) (pow.f64 (sqrt.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im)))) 3))
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 3)) 1/3) (pow.f64 (sqrt.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 3)) 1/3))
(*.f64 (pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) (cbrt.f64 (+.f64 re (hypot.f64 re im)))) 2) 1/3) (cbrt.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im)))))
(*.f64 (pow.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 5/2) 1/3) (cbrt.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im)))))
(/.f64 1 (/.f64 (fma.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re) (pow.f64 re 2)) (+.f64 (pow.f64 (hypot.f64 re im) 3) (pow.f64 re 3))))
(/.f64 1 (/.f64 (-.f64 re (hypot.f64 re im)) (-.f64 (pow.f64 re 2) (pow.f64 (hypot.f64 re im) 2))))
(/.f64 (+.f64 (pow.f64 (hypot.f64 re im) 3) (pow.f64 re 3)) (fma.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re) (pow.f64 re 2)))
(/.f64 (+.f64 (pow.f64 (hypot.f64 re im) 3) (pow.f64 re 3)) (+.f64 (pow.f64 (hypot.f64 re im) 2) (-.f64 (pow.f64 re 2) (*.f64 re (hypot.f64 re im)))))
(/.f64 (-.f64 (pow.f64 re 2) (pow.f64 (hypot.f64 re im) 2)) (-.f64 re (hypot.f64 re im)))
(/.f64 (neg.f64 (+.f64 (pow.f64 (hypot.f64 re im) 3) (pow.f64 re 3))) (neg.f64 (fma.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re) (pow.f64 re 2))))
(/.f64 (neg.f64 (-.f64 (pow.f64 re 2) (pow.f64 (hypot.f64 re im) 2))) (neg.f64 (-.f64 re (hypot.f64 re im))))
(/.f64 (-.f64 (pow.f64 (hypot.f64 re im) 2) (pow.f64 re 2)) (-.f64 (hypot.f64 re im) re))
(pow.f64 (+.f64 re (hypot.f64 re im)) 1)
(pow.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im))) 3)
(pow.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 2) 1/2)
(pow.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 3) 1/3)
(pow.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) 2)
(pow.f64 (E.f64) (log.f64 (+.f64 re (hypot.f64 re im))))
(pow.f64 (/.f64 (fma.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re) (pow.f64 re 2)) (+.f64 (pow.f64 (hypot.f64 re im) 3) (pow.f64 re 3))) -1)
(pow.f64 (/.f64 (-.f64 re (hypot.f64 re im)) (-.f64 (pow.f64 re 2) (pow.f64 (hypot.f64 re im) 2))) -1)
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (+.f64 re (hypot.f64 re im)))) 2)) (cbrt.f64 (log.f64 (+.f64 re (hypot.f64 re im)))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (+.f64 re (hypot.f64 re im))))) (sqrt.f64 (log.f64 (+.f64 re (hypot.f64 re im)))))
(sqrt.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 2))
(log.f64 (exp.f64 (+.f64 re (hypot.f64 re im))))
(cbrt.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 3))
(expm1.f64 (log1p.f64 (+.f64 re (hypot.f64 re im))))
(log1p.f64 (expm1.f64 (+.f64 re (hypot.f64 re im))))
(exp.f64 (log.f64 (+.f64 re (hypot.f64 re im))))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im)))) 3))
(exp.f64 (*.f64 (*.f64 3 (log.f64 (+.f64 re (hypot.f64 re im)))) 1/3))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im)))) 2))
(fma.f64 re 1 (hypot.f64 re im))
(fma.f64 (hypot.f64 re im) 1 re)
(fma.f64 1 re (hypot.f64 re im))
(fma.f64 1 (hypot.f64 re im) re)
(fma.f64 (cbrt.f64 (hypot.f64 re im)) (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) re)
(fma.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (cbrt.f64 (hypot.f64 re im)) re)
(fma.f64 (cbrt.f64 re) (pow.f64 (cbrt.f64 re) 2) (hypot.f64 re im))
(fma.f64 (pow.f64 (cbrt.f64 re) 2) (cbrt.f64 re) (hypot.f64 re im))
(fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) re)
(fma.f64 (sqrt.f64 re) (sqrt.f64 re) (hypot.f64 re im))

simplify93.0ms (1.9%)

Algorithm
egg-herbie
Rules
1032×fma-define
896×fma-neg
660×times-frac
540×unswap-sqr
464×sqr-pow
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02003513
15343176
215092883
355942883
Stop Event
node limit
Counts
77 → 119
Calls
Call 1
Inputs
im
(+.f64 im re)
(+.f64 im (+.f64 re (*.f64 1/2 (/.f64 (pow.f64 re 2) im))))
(+.f64 im (+.f64 re (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (*.f64 1/2 (/.f64 (pow.f64 re 2) im)))))
(*.f64 2 re)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 2 re))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 2 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 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 2 re))))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) 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 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 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 1/2 (/.f64 (+.f64 (*.f64 1/16 (pow.f64 im 8)) (pow.f64 (*.f64 -1/8 (pow.f64 im 4)) 2)) (pow.f64 re 7))))))
(*.f64 2 re)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 2 re))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 2 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 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 2 re))))
im
(+.f64 im re)
(+.f64 im (+.f64 re (*.f64 1/2 (/.f64 (pow.f64 re 2) im))))
(+.f64 im (+.f64 re (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (*.f64 1/2 (/.f64 (pow.f64 re 2) im)))))
(*.f64 -1 im)
(+.f64 re (*.f64 -1 im))
(+.f64 re (+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im))))
(+.f64 re (+.f64 (*.f64 -1 im) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))))))
(-.f64 (+.f64 1 (+.f64 re (hypot.f64 re im))) 1)
(-.f64 (/.f64 (pow.f64 re 2) (-.f64 re (hypot.f64 re im))) (/.f64 (pow.f64 (hypot.f64 re im) 2) (-.f64 re (hypot.f64 re im))))
(*.f64 (+.f64 re (hypot.f64 re im)) 1)
(*.f64 (+.f64 re (hypot.f64 re im)) (log.f64 (E.f64)))
(*.f64 1 (+.f64 re (hypot.f64 re im)))
(*.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im))) (pow.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im))) 2))
(*.f64 (pow.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im))) 2) (cbrt.f64 (+.f64 re (hypot.f64 re im))))
(*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 (+.f64 re (hypot.f64 re im))))
(*.f64 (+.f64 (pow.f64 (hypot.f64 re im) 3) (pow.f64 re 3)) (/.f64 1 (fma.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re) (pow.f64 re 2))))
(*.f64 (-.f64 (pow.f64 re 2) (pow.f64 (hypot.f64 re im) 2)) (/.f64 1 (-.f64 re (hypot.f64 re im))))
(*.f64 (pow.f64 1 1/3) (+.f64 re (hypot.f64 re im)))
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im)))) 2) 3) (cbrt.f64 (+.f64 re (hypot.f64 re im))))
(*.f64 (pow.f64 (sqrt.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im)))) 3) (pow.f64 (sqrt.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im)))) 3))
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 3)) 1/3) (pow.f64 (sqrt.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 3)) 1/3))
(*.f64 (pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) (cbrt.f64 (+.f64 re (hypot.f64 re im)))) 2) 1/3) (cbrt.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im)))))
(*.f64 (pow.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 5/2) 1/3) (cbrt.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im)))))
(/.f64 1 (/.f64 (fma.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re) (pow.f64 re 2)) (+.f64 (pow.f64 (hypot.f64 re im) 3) (pow.f64 re 3))))
(/.f64 1 (/.f64 (-.f64 re (hypot.f64 re im)) (-.f64 (pow.f64 re 2) (pow.f64 (hypot.f64 re im) 2))))
(/.f64 (+.f64 (pow.f64 (hypot.f64 re im) 3) (pow.f64 re 3)) (fma.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re) (pow.f64 re 2)))
(/.f64 (+.f64 (pow.f64 (hypot.f64 re im) 3) (pow.f64 re 3)) (+.f64 (pow.f64 (hypot.f64 re im) 2) (-.f64 (pow.f64 re 2) (*.f64 re (hypot.f64 re im)))))
(/.f64 (-.f64 (pow.f64 re 2) (pow.f64 (hypot.f64 re im) 2)) (-.f64 re (hypot.f64 re im)))
(/.f64 (neg.f64 (+.f64 (pow.f64 (hypot.f64 re im) 3) (pow.f64 re 3))) (neg.f64 (fma.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re) (pow.f64 re 2))))
(/.f64 (neg.f64 (-.f64 (pow.f64 re 2) (pow.f64 (hypot.f64 re im) 2))) (neg.f64 (-.f64 re (hypot.f64 re im))))
(/.f64 (-.f64 (pow.f64 (hypot.f64 re im) 2) (pow.f64 re 2)) (-.f64 (hypot.f64 re im) re))
(pow.f64 (+.f64 re (hypot.f64 re im)) 1)
(pow.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im))) 3)
(pow.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 2) 1/2)
(pow.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 3) 1/3)
(pow.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) 2)
(pow.f64 (E.f64) (log.f64 (+.f64 re (hypot.f64 re im))))
(pow.f64 (/.f64 (fma.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re) (pow.f64 re 2)) (+.f64 (pow.f64 (hypot.f64 re im) 3) (pow.f64 re 3))) -1)
(pow.f64 (/.f64 (-.f64 re (hypot.f64 re im)) (-.f64 (pow.f64 re 2) (pow.f64 (hypot.f64 re im) 2))) -1)
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (+.f64 re (hypot.f64 re im)))) 2)) (cbrt.f64 (log.f64 (+.f64 re (hypot.f64 re im)))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (+.f64 re (hypot.f64 re im))))) (sqrt.f64 (log.f64 (+.f64 re (hypot.f64 re im)))))
(sqrt.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 2))
(log.f64 (exp.f64 (+.f64 re (hypot.f64 re im))))
(cbrt.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 3))
(expm1.f64 (log1p.f64 (+.f64 re (hypot.f64 re im))))
(log1p.f64 (expm1.f64 (+.f64 re (hypot.f64 re im))))
(exp.f64 (log.f64 (+.f64 re (hypot.f64 re im))))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im)))) 3))
(exp.f64 (*.f64 (*.f64 3 (log.f64 (+.f64 re (hypot.f64 re im)))) 1/3))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im)))) 2))
(fma.f64 re 1 (hypot.f64 re im))
(fma.f64 (hypot.f64 re im) 1 re)
(fma.f64 1 re (hypot.f64 re im))
(fma.f64 1 (hypot.f64 re im) re)
(fma.f64 (cbrt.f64 (hypot.f64 re im)) (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) re)
(fma.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (cbrt.f64 (hypot.f64 re im)) re)
(fma.f64 (cbrt.f64 re) (pow.f64 (cbrt.f64 re) 2) (hypot.f64 re im))
(fma.f64 (pow.f64 (cbrt.f64 re) 2) (cbrt.f64 re) (hypot.f64 re im))
(fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) re)
(fma.f64 (sqrt.f64 re) (sqrt.f64 re) (hypot.f64 re im))
Outputs
im
(+.f64 im re)
(+.f64 im (+.f64 re (*.f64 1/2 (/.f64 (pow.f64 re 2) im))))
(+.f64 im (fma.f64 1/2 (/.f64 (pow.f64 re 2) im) re))
(+.f64 im (+.f64 re (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (*.f64 1/2 (/.f64 (pow.f64 re 2) im)))))
(+.f64 im (+.f64 re (fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (*.f64 1/2 (/.f64 (pow.f64 re 2) im)))))
(+.f64 (+.f64 im re) (fma.f64 1/2 (/.f64 (pow.f64 re 2) im) (/.f64 (*.f64 -1/8 (pow.f64 re 4)) (pow.f64 im 3))))
(+.f64 im (fma.f64 1/2 (/.f64 (pow.f64 re 2) im) (fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) re)))
(*.f64 2 re)
(*.f64 re 2)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 2 re))
(fma.f64 1/2 (/.f64 (pow.f64 im 2) re) (*.f64 re 2))
(fma.f64 re 2 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 2 re)))
(fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 1/2 (/.f64 (pow.f64 im 2) re) (*.f64 re 2)))
(fma.f64 re 2 (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (*.f64 1/2 (/.f64 (pow.f64 im 2) 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 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 2 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)) (fma.f64 1/2 (/.f64 (pow.f64 im 2) re) (*.f64 re 2))))
(fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 re 2 (fma.f64 1/2 (/.f64 (pow.f64 im 2) re) (*.f64 (pow.f64 im 6) (/.f64 1/16 (pow.f64 re 5))))))
(fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 1/2 (/.f64 (pow.f64 im 2) re) (fma.f64 re 2 (*.f64 (pow.f64 im 6) (/.f64 1/16 (pow.f64 re 5))))))
(*.f64 -1/2 (/.f64 (pow.f64 im 2) re))
(*.f64 (/.f64 (pow.f64 im 2) re) -1/2)
(*.f64 (pow.f64 im 2) (/.f64 -1/2 re))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))))
(fma.f64 -1/2 (/.f64 (pow.f64 im 2) re) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8))
(fma.f64 (/.f64 (pow.f64 im 2) re) -1/2 (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8))
(fma.f64 (/.f64 (pow.f64 im 2) re) -1/2 (*.f64 (pow.f64 im 4) (/.f64 1/8 (pow.f64 re 3))))
(fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8 (*.f64 (pow.f64 im 2) (/.f64 -1/2 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 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)))))
(fma.f64 -1/2 (/.f64 (pow.f64 im 2) re) (fma.f64 -1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8)))
(fma.f64 (/.f64 (pow.f64 im 2) re) -1/2 (fma.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) -1/16 (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8)))
(fma.f64 (/.f64 (pow.f64 im 2) re) -1/2 (fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8 (*.f64 (pow.f64 im 6) (/.f64 -1/16 (pow.f64 re 5)))))
(fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8 (fma.f64 (/.f64 (pow.f64 im 2) re) -1/2 (*.f64 (pow.f64 im 6) (/.f64 -1/16 (pow.f64 re 5)))))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 -1/16 (/.f64 (pow.f64 im 6) (pow.f64 re 5))) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (*.f64 1/2 (/.f64 (+.f64 (*.f64 1/16 (pow.f64 im 8)) (pow.f64 (*.f64 -1/8 (pow.f64 im 4)) 2)) (pow.f64 re 7))))))
(fma.f64 -1/2 (/.f64 (pow.f64 im 2) re) (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)) (*.f64 1/2 (/.f64 (fma.f64 1/16 (pow.f64 im 8) (pow.f64 (*.f64 -1/8 (pow.f64 im 4)) 2)) (pow.f64 re 7))))))
(fma.f64 (/.f64 (pow.f64 im 2) re) -1/2 (fma.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) -1/16 (fma.f64 1/2 (/.f64 (fma.f64 1/16 (pow.f64 im 8) (*.f64 (pow.f64 im 8) 1/64)) (pow.f64 re 7)) (*.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8))))
(fma.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) -1/16 (fma.f64 (/.f64 (pow.f64 im 2) re) -1/2 (fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) 1/8 (*.f64 (*.f64 (pow.f64 im 8) 5/64) (/.f64 1/2 (pow.f64 re 7))))))
(fma.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) -1/16 (fma.f64 (/.f64 (pow.f64 im 2) re) -1/2 (fma.f64 1/2 (/.f64 (*.f64 (pow.f64 im 8) 5/64) (pow.f64 re 7)) (*.f64 (pow.f64 im 4) (/.f64 1/8 (pow.f64 re 3))))))
(*.f64 2 re)
(*.f64 re 2)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 2 re))
(fma.f64 1/2 (/.f64 (pow.f64 im 2) re) (*.f64 re 2))
(fma.f64 re 2 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 2 re)))
(fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 1/2 (/.f64 (pow.f64 im 2) re) (*.f64 re 2)))
(fma.f64 re 2 (fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (*.f64 1/2 (/.f64 (pow.f64 im 2) 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 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)) (*.f64 2 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)) (fma.f64 1/2 (/.f64 (pow.f64 im 2) re) (*.f64 re 2))))
(fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 re 2 (fma.f64 1/2 (/.f64 (pow.f64 im 2) re) (*.f64 (pow.f64 im 6) (/.f64 1/16 (pow.f64 re 5))))))
(fma.f64 -1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 1/2 (/.f64 (pow.f64 im 2) re) (fma.f64 re 2 (*.f64 (pow.f64 im 6) (/.f64 1/16 (pow.f64 re 5))))))
im
(+.f64 im re)
(+.f64 im (+.f64 re (*.f64 1/2 (/.f64 (pow.f64 re 2) im))))
(+.f64 im (fma.f64 1/2 (/.f64 (pow.f64 re 2) im) re))
(+.f64 im (+.f64 re (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))) (*.f64 1/2 (/.f64 (pow.f64 re 2) im)))))
(+.f64 im (+.f64 re (fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) (*.f64 1/2 (/.f64 (pow.f64 re 2) im)))))
(+.f64 (+.f64 im re) (fma.f64 1/2 (/.f64 (pow.f64 re 2) im) (/.f64 (*.f64 -1/8 (pow.f64 re 4)) (pow.f64 im 3))))
(+.f64 im (fma.f64 1/2 (/.f64 (pow.f64 re 2) im) (fma.f64 -1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) re)))
(*.f64 -1 im)
(neg.f64 im)
(+.f64 re (*.f64 -1 im))
(+.f64 re (neg.f64 im))
(-.f64 re im)
(+.f64 re (+.f64 (*.f64 -1 im) (*.f64 -1/2 (/.f64 (pow.f64 re 2) im))))
(+.f64 re (fma.f64 -1 im (*.f64 (/.f64 (pow.f64 re 2) im) -1/2)))
(+.f64 re (fma.f64 (/.f64 (pow.f64 re 2) im) -1/2 (neg.f64 im)))
(-.f64 (fma.f64 (/.f64 (pow.f64 re 2) im) -1/2 re) im)
(fma.f64 (pow.f64 re 2) (/.f64 -1/2 im) (-.f64 re im))
(+.f64 re (+.f64 (*.f64 -1 im) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) im)) (*.f64 1/8 (/.f64 (pow.f64 re 4) (pow.f64 im 3))))))
(+.f64 re (fma.f64 -1 im (fma.f64 -1/2 (/.f64 (pow.f64 re 2) im) (*.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) 1/8))))
(+.f64 (-.f64 re im) (fma.f64 (/.f64 (pow.f64 re 2) im) -1/2 (*.f64 (/.f64 (pow.f64 re 4) (pow.f64 im 3)) 1/8)))
(+.f64 re (-.f64 (fma.f64 (/.f64 (pow.f64 re 2) im) -1/2 (*.f64 (pow.f64 re 4) (/.f64 1/8 (pow.f64 im 3)))) im))
(+.f64 re (fma.f64 (pow.f64 re 2) (/.f64 -1/2 im) (-.f64 (/.f64 (*.f64 (pow.f64 re 4) 1/8) (pow.f64 im 3)) im)))
(-.f64 (+.f64 1 (+.f64 re (hypot.f64 re im))) 1)
(+.f64 1 (-.f64 (+.f64 re (hypot.f64 re im)) 1))
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 im re))
(-.f64 (/.f64 (pow.f64 re 2) (-.f64 re (hypot.f64 re im))) (/.f64 (pow.f64 (hypot.f64 re im) 2) (-.f64 re (hypot.f64 re im))))
(+.f64 1 (-.f64 (+.f64 re (hypot.f64 re im)) 1))
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 im re))
(*.f64 (+.f64 re (hypot.f64 re im)) 1)
(+.f64 1 (-.f64 (+.f64 re (hypot.f64 re im)) 1))
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 im re))
(*.f64 (+.f64 re (hypot.f64 re im)) (log.f64 (E.f64)))
(+.f64 1 (-.f64 (+.f64 re (hypot.f64 re im)) 1))
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 im re))
(*.f64 1 (+.f64 re (hypot.f64 re im)))
(+.f64 1 (-.f64 (+.f64 re (hypot.f64 re im)) 1))
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 im re))
(*.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im))) (pow.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im))) 2))
(+.f64 1 (-.f64 (+.f64 re (hypot.f64 re im)) 1))
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 im re))
(*.f64 (pow.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im))) 2) (cbrt.f64 (+.f64 re (hypot.f64 re im))))
(+.f64 1 (-.f64 (+.f64 re (hypot.f64 re im)) 1))
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 im re))
(*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 (+.f64 re (hypot.f64 re im))))
(+.f64 1 (-.f64 (+.f64 re (hypot.f64 re im)) 1))
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 im re))
(*.f64 (+.f64 (pow.f64 (hypot.f64 re im) 3) (pow.f64 re 3)) (/.f64 1 (fma.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re) (pow.f64 re 2))))
(*.f64 (+.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3)) (/.f64 1 (fma.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re) (pow.f64 re 2))))
(/.f64 (+.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3)) (fma.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re) (pow.f64 re 2)))
(/.f64 (+.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 im re) 3)) (fma.f64 re (-.f64 re (hypot.f64 im re)) (pow.f64 (hypot.f64 im re) 2)))
(*.f64 (-.f64 (pow.f64 re 2) (pow.f64 (hypot.f64 re im) 2)) (/.f64 1 (-.f64 re (hypot.f64 re im))))
(+.f64 1 (-.f64 (+.f64 re (hypot.f64 re im)) 1))
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 im re))
(*.f64 (pow.f64 1 1/3) (+.f64 re (hypot.f64 re im)))
(+.f64 1 (-.f64 (+.f64 re (hypot.f64 re im)) 1))
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 im re))
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im)))) 2) 3) (cbrt.f64 (+.f64 re (hypot.f64 re im))))
(+.f64 1 (-.f64 (+.f64 re (hypot.f64 re im)) 1))
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 im re))
(*.f64 (pow.f64 (sqrt.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im)))) 3) (pow.f64 (sqrt.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im)))) 3))
(+.f64 1 (-.f64 (+.f64 re (hypot.f64 re im)) 1))
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 im re))
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 3)) 1/3) (pow.f64 (sqrt.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 3)) 1/3))
(+.f64 1 (-.f64 (+.f64 re (hypot.f64 re im)) 1))
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 im re))
(*.f64 (pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) (cbrt.f64 (+.f64 re (hypot.f64 re im)))) 2) 1/3) (cbrt.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im)))))
(*.f64 (cbrt.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im)))) (cbrt.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) (cbrt.f64 (+.f64 re (hypot.f64 re im)))) 2)))
(*.f64 (cbrt.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im)))) (cbrt.f64 (pow.f64 (pow.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im))) 4) 2)))
(*.f64 (cbrt.f64 (cbrt.f64 (+.f64 re (hypot.f64 im re)))) (cbrt.f64 (pow.f64 (cbrt.f64 (+.f64 re (hypot.f64 im re))) 8)))
(*.f64 (pow.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 5/2) 1/3) (cbrt.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im)))))
(*.f64 (cbrt.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 5/2)) (cbrt.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im)))))
(*.f64 (cbrt.f64 (pow.f64 (+.f64 re (hypot.f64 im re)) 5/2)) (cbrt.f64 (sqrt.f64 (+.f64 re (hypot.f64 im re)))))
(/.f64 1 (/.f64 (fma.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re) (pow.f64 re 2)) (+.f64 (pow.f64 (hypot.f64 re im) 3) (pow.f64 re 3))))
(*.f64 (+.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3)) (/.f64 1 (fma.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re) (pow.f64 re 2))))
(/.f64 (+.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3)) (fma.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re) (pow.f64 re 2)))
(/.f64 (+.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 im re) 3)) (fma.f64 re (-.f64 re (hypot.f64 im re)) (pow.f64 (hypot.f64 im re) 2)))
(/.f64 1 (/.f64 (-.f64 re (hypot.f64 re im)) (-.f64 (pow.f64 re 2) (pow.f64 (hypot.f64 re im) 2))))
(+.f64 1 (-.f64 (+.f64 re (hypot.f64 re im)) 1))
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 im re))
(/.f64 (+.f64 (pow.f64 (hypot.f64 re im) 3) (pow.f64 re 3)) (fma.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re) (pow.f64 re 2)))
(*.f64 (+.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3)) (/.f64 1 (fma.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re) (pow.f64 re 2))))
(/.f64 (+.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3)) (fma.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re) (pow.f64 re 2)))
(/.f64 (+.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 im re) 3)) (fma.f64 re (-.f64 re (hypot.f64 im re)) (pow.f64 (hypot.f64 im re) 2)))
(/.f64 (+.f64 (pow.f64 (hypot.f64 re im) 3) (pow.f64 re 3)) (+.f64 (pow.f64 (hypot.f64 re im) 2) (-.f64 (pow.f64 re 2) (*.f64 re (hypot.f64 re im)))))
(*.f64 (+.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3)) (/.f64 1 (fma.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re) (pow.f64 re 2))))
(/.f64 (+.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3)) (fma.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re) (pow.f64 re 2)))
(/.f64 (+.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 im re) 3)) (fma.f64 re (-.f64 re (hypot.f64 im re)) (pow.f64 (hypot.f64 im re) 2)))
(/.f64 (-.f64 (pow.f64 re 2) (pow.f64 (hypot.f64 re im) 2)) (-.f64 re (hypot.f64 re im)))
(+.f64 1 (-.f64 (+.f64 re (hypot.f64 re im)) 1))
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 im re))
(/.f64 (neg.f64 (+.f64 (pow.f64 (hypot.f64 re im) 3) (pow.f64 re 3))) (neg.f64 (fma.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re) (pow.f64 re 2))))
(*.f64 (+.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3)) (/.f64 1 (fma.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re) (pow.f64 re 2))))
(/.f64 (+.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3)) (fma.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re) (pow.f64 re 2)))
(/.f64 (+.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 im re) 3)) (fma.f64 re (-.f64 re (hypot.f64 im re)) (pow.f64 (hypot.f64 im re) 2)))
(/.f64 (neg.f64 (-.f64 (pow.f64 re 2) (pow.f64 (hypot.f64 re im) 2))) (neg.f64 (-.f64 re (hypot.f64 re im))))
(+.f64 1 (-.f64 (+.f64 re (hypot.f64 re im)) 1))
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 im re))
(/.f64 (-.f64 (pow.f64 (hypot.f64 re im) 2) (pow.f64 re 2)) (-.f64 (hypot.f64 re im) re))
(+.f64 1 (-.f64 (+.f64 re (hypot.f64 re im)) 1))
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 im re))
(pow.f64 (+.f64 re (hypot.f64 re im)) 1)
(+.f64 1 (-.f64 (+.f64 re (hypot.f64 re im)) 1))
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 im re))
(pow.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im))) 3)
(+.f64 1 (-.f64 (+.f64 re (hypot.f64 re im)) 1))
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 im re))
(pow.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 2) 1/2)
(+.f64 1 (-.f64 (+.f64 re (hypot.f64 re im)) 1))
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 im re))
(pow.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 3) 1/3)
(+.f64 1 (-.f64 (+.f64 re (hypot.f64 re im)) 1))
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 im re))
(pow.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) 2)
(+.f64 1 (-.f64 (+.f64 re (hypot.f64 re im)) 1))
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 im re))
(pow.f64 (E.f64) (log.f64 (+.f64 re (hypot.f64 re im))))
(+.f64 1 (-.f64 (+.f64 re (hypot.f64 re im)) 1))
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 im re))
(pow.f64 (/.f64 (fma.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re) (pow.f64 re 2)) (+.f64 (pow.f64 (hypot.f64 re im) 3) (pow.f64 re 3))) -1)
(*.f64 (+.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3)) (/.f64 1 (fma.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re) (pow.f64 re 2))))
(/.f64 (+.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 re im) 3)) (fma.f64 (hypot.f64 re im) (-.f64 (hypot.f64 re im) re) (pow.f64 re 2)))
(/.f64 (+.f64 (pow.f64 re 3) (pow.f64 (hypot.f64 im re) 3)) (fma.f64 re (-.f64 re (hypot.f64 im re)) (pow.f64 (hypot.f64 im re) 2)))
(pow.f64 (/.f64 (-.f64 re (hypot.f64 re im)) (-.f64 (pow.f64 re 2) (pow.f64 (hypot.f64 re im) 2))) -1)
(+.f64 1 (-.f64 (+.f64 re (hypot.f64 re im)) 1))
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 im re))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (+.f64 re (hypot.f64 re im)))) 2)) (cbrt.f64 (log.f64 (+.f64 re (hypot.f64 re im)))))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (+.f64 re (hypot.f64 im re)))) 2)) (cbrt.f64 (log.f64 (+.f64 re (hypot.f64 im re)))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (+.f64 re (hypot.f64 re im))))) (sqrt.f64 (log.f64 (+.f64 re (hypot.f64 re im)))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (+.f64 re (hypot.f64 im re))))) (sqrt.f64 (log.f64 (+.f64 re (hypot.f64 im re)))))
(sqrt.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 2))
(+.f64 1 (-.f64 (+.f64 re (hypot.f64 re im)) 1))
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 im re))
(log.f64 (exp.f64 (+.f64 re (hypot.f64 re im))))
(+.f64 1 (-.f64 (+.f64 re (hypot.f64 re im)) 1))
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 im re))
(cbrt.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 3))
(+.f64 1 (-.f64 (+.f64 re (hypot.f64 re im)) 1))
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 im re))
(expm1.f64 (log1p.f64 (+.f64 re (hypot.f64 re im))))
(+.f64 1 (-.f64 (+.f64 re (hypot.f64 re im)) 1))
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 im re))
(log1p.f64 (expm1.f64 (+.f64 re (hypot.f64 re im))))
(+.f64 1 (-.f64 (+.f64 re (hypot.f64 re im)) 1))
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 im re))
(exp.f64 (log.f64 (+.f64 re (hypot.f64 re im))))
(+.f64 1 (-.f64 (+.f64 re (hypot.f64 re im)) 1))
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 im re))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im)))) 3))
(+.f64 1 (-.f64 (+.f64 re (hypot.f64 re im)) 1))
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 im re))
(exp.f64 (*.f64 (*.f64 3 (log.f64 (+.f64 re (hypot.f64 re im)))) 1/3))
(+.f64 1 (-.f64 (+.f64 re (hypot.f64 re im)) 1))
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 im re))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im)))) 2))
(+.f64 1 (-.f64 (+.f64 re (hypot.f64 re im)) 1))
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 im re))
(fma.f64 re 1 (hypot.f64 re im))
(+.f64 1 (-.f64 (+.f64 re (hypot.f64 re im)) 1))
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 im re))
(fma.f64 (hypot.f64 re im) 1 re)
(+.f64 1 (-.f64 (+.f64 re (hypot.f64 re im)) 1))
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 im re))
(fma.f64 1 re (hypot.f64 re im))
(+.f64 1 (-.f64 (+.f64 re (hypot.f64 re im)) 1))
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 im re))
(fma.f64 1 (hypot.f64 re im) re)
(+.f64 1 (-.f64 (+.f64 re (hypot.f64 re im)) 1))
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 im re))
(fma.f64 (cbrt.f64 (hypot.f64 re im)) (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) re)
(+.f64 1 (-.f64 (+.f64 re (hypot.f64 re im)) 1))
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 im re))
(fma.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (cbrt.f64 (hypot.f64 re im)) re)
(+.f64 1 (-.f64 (+.f64 re (hypot.f64 re im)) 1))
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 im re))
(fma.f64 (cbrt.f64 re) (pow.f64 (cbrt.f64 re) 2) (hypot.f64 re im))
(+.f64 1 (-.f64 (+.f64 re (hypot.f64 re im)) 1))
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 im re))
(fma.f64 (pow.f64 (cbrt.f64 re) 2) (cbrt.f64 re) (hypot.f64 re im))
(+.f64 1 (-.f64 (+.f64 re (hypot.f64 re im)) 1))
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 im re))
(fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) re)
(+.f64 1 (-.f64 (+.f64 re (hypot.f64 re im)) 1))
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 im re))
(fma.f64 (sqrt.f64 re) (sqrt.f64 re) (hypot.f64 re im))
(+.f64 1 (-.f64 (+.f64 re (hypot.f64 re im)) 1))
(+.f64 (+.f64 re (hypot.f64 re im)) 0)
(+.f64 re (hypot.f64 im re))

eval183.0ms (3.7%)

Compiler

Compiled 2424 to 1600 computations (34% saved)

prune27.0ms (0.6%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New1154119
Fresh000
Picked011
Done000
Total1155120
Accuracy
99.6%
Counts
120 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
98.6%
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))
51.6%
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 im re))))
20.9%
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (pow.f64 im 2) (/.f64 -1/2 re)))))
25.6%
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 re 2))))
48.7%
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
Compiler

Compiled 54 to 45 computations (16.7% saved)

localize319.0ms (6.5%)

Compiler

Compiled 119 to 85 computations (28.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 182.0ms
Operation ival-mult, time spent: 121.0ms, 66.0% of total-time
Operation ival-sqrt, time spent: 24.0ms, 13.0% of total-time
Operation ival-pow, time spent: 16.0ms, 9.0% of total-time
Operation ival-div, time spent: 11.0ms, 6.0% of total-time
Operation const, time spent: 8.0ms, 4.0% of total-time
Operation ival-add, time spent: 3.0ms, 2.0% of total-time

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune4.0ms (0.1%)

Pruning

5 alts after pruning (0 fresh and 5 done)

PrunedKeptTotal
New000
Fresh000
Picked044
Done011
Total055
Accuracy
99.6%
Counts
5 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
98.6%
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))
51.6%
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 im re))))
20.9%
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (pow.f64 im 2) (/.f64 -1/2 re)))))
25.6%
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 re 2))))
48.7%
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
Compiler

Compiled 115 to 92 computations (20% saved)

regimes41.0ms (0.8%)

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

7 calls:

12.0ms
(*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))
8.0ms
im
5.0ms
re
4.0ms
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))))
4.0ms
(sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)))
Results
AccuracySegmentsBranch
98.6%1re
98.6%1im
98.6%1(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))))
98.6%1(sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)))
98.6%1(*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))
98.6%1(+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)
98.6%1(*.f64 im im)
Compiler

Compiled 69 to 45 computations (34.8% saved)

regimes22.0ms (0.4%)

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

2 calls:

15.0ms
im
6.0ms
re
Results
AccuracySegmentsBranch
62.4%2re
58.1%4im
Compiler

Compiled 6 to 4 computations (33.3% saved)

regimes14.0ms (0.3%)

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

1 calls:

13.0ms
re
Results
AccuracySegmentsBranch
63.6%4re
Compiler

Compiled 3 to 2 computations (33.3% saved)

regimes5.0ms (0.1%)

Accuracy

Total 0.0b remaining (0%)

Threshold costs 0b (0%)

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

2 calls:

3.0ms
re
3.0ms
im
Results
AccuracySegmentsBranch
48.7%1im
48.7%1re
Compiler

Compiled 6 to 4 computations (33.3% saved)

bsearch18.0ms (0.4%)

Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
18.0ms
6.364403896209896e+113
1.360577246241322e+114
Results
16.0ms79×0valid
0.0ms0valid
Compiler

Compiled 132 to 111 computations (15.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 6.0ms
Operation ival-add, time spent: 2.0ms, 31.0% of total-time
Operation ival-mult, time spent: 2.0ms, 31.0% of total-time
Operation ival-sqrt, time spent: 2.0ms, 31.0% of total-time
Operation const, time spent: 0.0ms, 0.0% of total-time

bsearch121.0ms (2.5%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
narrow-enough
Steps
TimeLeftRight
24.0ms
1.2384640609051682e+58
3.311030223750616e+61
59.0ms
1.847861724597845
51781610651266.19
38.0ms
6.506689815928955e-26
2.9874471954200283e-24
Results
111.0ms399×0valid
0.0ms0valid
Compiler

Compiled 522 to 466 computations (10.7% saved)

Precisions
Click to see histograms. Total time spent on operations: 32.0ms
Operation ival-mult, time spent: 11.0ms, 34.0% of total-time
Operation ival-add, time spent: 10.0ms, 31.0% of total-time
Operation ival-sqrt, time spent: 10.0ms, 31.0% of total-time
Operation const, time spent: 1.0ms, 3.0% of total-time

simplify16.0ms (0.3%)

Algorithm
egg-herbie
Rules
18×*-commutative
not-or
+-commutative
if-if-or-not
if-not
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
041234
157221
260221
363217
464217
565217
Stop Event
done
saturated
Calls
Call 1
Inputs
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))
(if (<=.f64 re 650000000000000010113620484153447965774330907998689931690350877280041957757091207122240503444780840989534082564096) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 im re)))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 re 2)))))
(if (<=.f64 re 3266710722441009/21778071482940061661655974875633165533184) (*.f64 1/2 (sqrt.f64 (*.f64 2 im))) (if (<=.f64 re 860000) (*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 re 2)))) (if (<=.f64 re 17499999999999998668259963728182867341149422239767446159360) (*.f64 1/2 (sqrt.f64 (*.f64 2 im))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 re 2)))))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
Outputs
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))
(if (<=.f64 re 650000000000000010113620484153447965774330907998689931690350877280041957757091207122240503444780840989534082564096) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 im re)))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 re 2)))))
(if (<=.f64 re 650000000000000010113620484153447965774330907998689931690350877280041957757091207122240503444780840989534082564096) (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re im)))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 2 re)))))
(if (<=.f64 re 3266710722441009/21778071482940061661655974875633165533184) (*.f64 1/2 (sqrt.f64 (*.f64 2 im))) (if (<=.f64 re 860000) (*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 re 2)))) (if (<=.f64 re 17499999999999998668259963728182867341149422239767446159360) (*.f64 1/2 (sqrt.f64 (*.f64 2 im))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 re 2)))))))
(if (<=.f64 re 3266710722441009/21778071482940061661655974875633165533184) (*.f64 1/2 (sqrt.f64 (*.f64 2 im))) (if (or (<=.f64 re 860000) (not (<=.f64 re 17499999999999998668259963728182867341149422239767446159360))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 2 re)))) (*.f64 1/2 (sqrt.f64 (*.f64 2 im)))))
(if (or (<=.f64 re 3266710722441009/21778071482940061661655974875633165533184) (not (or (<=.f64 re 860000) (not (<=.f64 re 17499999999999998668259963728182867341149422239767446159360))))) (*.f64 1/2 (sqrt.f64 (*.f64 2 im))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 2 re)))))
(if (or (<=.f64 re 3266710722441009/21778071482940061661655974875633165533184) (and (not (<=.f64 re 860000)) (<=.f64 re 17499999999999998668259963728182867341149422239767446159360))) (*.f64 1/2 (sqrt.f64 (*.f64 2 im))) (*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 2 re)))))
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
Compiler

Compiled 71 to 58 computations (18.3% saved)

soundness356.0ms (7.2%)

Rules
1032×fma-define
896×fma-neg
660×times-frac
540×unswap-sqr
510×fma-neg
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
042266
1121266
2213266
3333266
4531266
5734266
6941266
71149266
81242266
91252266
02003513
15343176
215092883
355942883
Stop Event
node limit
saturated
Compiler

Compiled 207 to 105 computations (49.3% saved)

end0.0ms (0%)

preprocess86.0ms (1.7%)

Remove

(abs im)

Compiler

Compiled 318 to 228 computations (28.3% saved)

Profiling

Loading profile data...