Details

Time bar (total: 3.9s)

analyze508.0ms (12.9%)

Algorithm
search
Search
TrueOtherFalseIter
0%50%50%0
0%50%50%1
25%25%50%2
25%25%50%3
31.2%18.7%50%4
31.2%18.7%50%5
34.3%15.6%50%6
34.3%15.6%50%7
35.9%14%50%8
35.9%14%50%9
36.7%13.3%50%10
36.7%13.3%50%11
37.1%12.9%50%12
37.1%12.9%50%13
37.3%12.7%50%14
Compiler

Compiled 20 to 14 computations (30% saved)

sample1.8s (45.9%)

Results
788.0ms6235×body128valid
325.0ms547×body4096valid
321.0ms657×body2048valid
217.0ms431×body1024valid
80.0ms260×body512valid
26.0ms126×body256valid
Compiler

Compiled 57 to 40 computations (29.8% saved)

simplify30.0ms (0.8%)

Algorithm
egg-herbie
Rules
203×fma-def_binary64
142×fma-neg_binary64
51×distribute-rgt-in_binary64
42×cancel-sign-sub-inv_binary64
28×sub-neg_binary64
Counts
1 → 2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01315
12015
23315
35015
46915
59815
615115
721115
826315
930515
1034315
1137915
1239615
1341515
1442815
1546515
1647715
1748615
1844915

prune4.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
13.3b
Counts
3 → 2
Alt Table
StatusErrorProgram
13.3b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))))
36.4b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))))
Compiler

Compiled 85 to 61 computations (28.2% saved)

localize6.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(hypot.f64 re im)
0.5b
(-.f64 (hypot.f64 re im) re)

series20.0ms (0.5%)

Counts
2 → 48
Calls

2 calls:

11.0ms
(-.f64 (hypot.f64 re im) re)
9.0ms
(hypot.f64 re im)

rewrite7.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
12×*-un-lft-identity_binary64
12×add-sqr-sqrt_binary64
10×add-cube-cbrt_binary64
prod-diff_binary64
add-log-exp_binary64
Counts
2 → 40
Calls

2 calls:

5.0ms
(-.f64 (hypot.f64 re im) re)
0.0ms
(hypot.f64 re im)

simplify77.0ms (1.9%)

Algorithm
egg-herbie
Rules
952×fma-neg_binary64
648×fma-def_binary64
605×times-frac_binary64
452×associate-*l*_binary64
282×associate-/r*_binary64
Counts
88 → 104
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01431564
13611325
211771271
346761269
452701269

prune72.0ms (1.8%)

Pruning

6 alts after pruning (5 fresh and 1 done)

PrunedKeptTotal
New995104
Fresh101
Picked011
Done000
Total1006106
Error
7.0b
Counts
106 → 6
Alt Table
StatusErrorProgram
13.3b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))))
56.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) -1/8 (*.f64 1/2 (/.f64 (*.f64 im im) re))))))
54.6b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))))
29.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
15.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re)))))
15.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 (*.f64 (cbrt.f64 re) (*.f64 (cbrt.f64 re) (cbrt.f64 re))))) (fma.f64 (neg.f64 (cbrt.f64 re)) (*.f64 (cbrt.f64 re) (cbrt.f64 re)) (*.f64 (cbrt.f64 re) (*.f64 (cbrt.f64 re) (cbrt.f64 re))))))))
Compiler

Compiled 2368 to 1430 computations (39.6% saved)

localize10.0ms (0.2%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(sqrt.f64 (hypot.f64 re im))
0.0b
(hypot.f64 re im)
14.9b
(fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re))

series45.0ms (1.1%)

Counts
2 → 18
Calls

2 calls:

30.0ms
(fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re))
15.0ms
(sqrt.f64 (hypot.f64 re im))

rewrite2.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
add-sqr-sqrt_binary64
sqrt-prod_binary64
*-un-lft-identity_binary64
add-cube-cbrt_binary64
pow1_binary64
Counts
2 → 25
Calls

2 calls:

1.0ms
(sqrt.f64 (hypot.f64 re im))
0.0ms
(fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re))

simplify61.0ms (1.5%)

Algorithm
egg-herbie
Rules
613×fma-neg_binary64
289×distribute-rgt-neg-in_binary64
287×distribute-lft-neg-in_binary64
276×associate-*r*_binary64
249×fma-def_binary64
Counts
43 → 64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0121692
1281642
2748630
32893630
44838630
54935630

prune114.0ms (2.9%)

Pruning

6 alts after pruning (5 fresh and 1 done)

PrunedKeptTotal
New1711172
Fresh044
Picked101
Done011
Total1726178
Error
7.0b
Counts
178 → 6
Alt Table
StatusErrorProgram
13.3b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))))
56.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) -1/8 (*.f64 1/2 (/.f64 (*.f64 im im) re))))))
54.6b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))))
29.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
15.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 (*.f64 (cbrt.f64 re) (*.f64 (cbrt.f64 re) (cbrt.f64 re))))) (fma.f64 (neg.f64 (cbrt.f64 re)) (*.f64 (cbrt.f64 re) (cbrt.f64 re)) (*.f64 (cbrt.f64 re) (*.f64 (cbrt.f64 re) (cbrt.f64 re))))))))
18.6b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (exp.f64 (log.f64 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re)))))))
Compiler

Compiled 4632 to 2550 computations (44.9% saved)

localize16.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.5b
(*.f64 (cbrt.f64 re) (cbrt.f64 re))
0.6b
(cbrt.f64 re)
14.8b
(fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 (*.f64 (cbrt.f64 re) (*.f64 (cbrt.f64 re) (cbrt.f64 re)))))
60.2b
(fma.f64 (neg.f64 (cbrt.f64 re)) (*.f64 (cbrt.f64 re) (cbrt.f64 re)) (*.f64 (cbrt.f64 re) (*.f64 (cbrt.f64 re) (cbrt.f64 re))))

series148.0ms (3.8%)

Counts
4 → 46
Calls

4 calls:

47.0ms
(fma.f64 (neg.f64 (cbrt.f64 re)) (*.f64 (cbrt.f64 re) (cbrt.f64 re)) (*.f64 (cbrt.f64 re) (*.f64 (cbrt.f64 re) (cbrt.f64 re))))
35.0ms
(*.f64 (cbrt.f64 re) (cbrt.f64 re))
34.0ms
(cbrt.f64 re)
32.0ms
(fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 (*.f64 (cbrt.f64 re) (*.f64 (cbrt.f64 re) (cbrt.f64 re)))))

rewrite10.0ms (0.3%)

Algorithm
rewrite-expression-head
Rules
21×add-sqr-sqrt_binary64
19×cbrt-prod_binary64
13×*-un-lft-identity_binary64
13×add-cube-cbrt_binary64
11×pow1_binary64
Counts
4 → 75
Calls

4 calls:

5.0ms
(*.f64 (cbrt.f64 re) (cbrt.f64 re))
1.0ms
(cbrt.f64 re)
0.0ms
(fma.f64 (neg.f64 (cbrt.f64 re)) (*.f64 (cbrt.f64 re) (cbrt.f64 re)) (*.f64 (cbrt.f64 re) (*.f64 (cbrt.f64 re) (cbrt.f64 re))))
0.0ms
(fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 (*.f64 (cbrt.f64 re) (*.f64 (cbrt.f64 re) (cbrt.f64 re)))))

simplify94.0ms (2.4%)

Algorithm
egg-herbie
Rules
694×times-frac_binary64
657×fma-neg_binary64
363×distribute-neg-frac_binary64
343×associate-/r*_binary64
273×associate-/l*_binary64
Counts
121 → 132
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01281113
1257994
2834908
33431893
44624881
54982881
64731881

prune256.0ms (6.5%)

Pruning

6 alts after pruning (5 fresh and 1 done)

PrunedKeptTotal
New4011402
Fresh044
Picked101
Done011
Total4026408
Error
7.0b
Counts
408 → 6
Alt Table
StatusErrorProgram
46.2b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (cbrt.f64 (pow.f64 (-.f64 (hypot.f64 re im) re) 3)) (fma.f64 (neg.f64 (cbrt.f64 re)) (*.f64 (cbrt.f64 re) (cbrt.f64 re)) (*.f64 (cbrt.f64 re) (*.f64 (cbrt.f64 re) (cbrt.f64 re))))))))
29.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
13.3b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))))
56.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) -1/8 (*.f64 1/2 (/.f64 (*.f64 im im) re))))))
54.6b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))))
18.6b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (exp.f64 (log.f64 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re)))))))
Compiler

Compiled 18239 to 4286 computations (76.5% saved)

localize13.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(sqrt.f64 (hypot.f64 re im))
0.0b
(hypot.f64 re im)
4.8b
(exp.f64 (log.f64 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re))))
14.9b
(fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re))

series31.0ms (0.8%)

Counts
1 → 10
Calls

1 calls:

31.0ms
(exp.f64 (log.f64 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re))))

rewrite3.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
exp-prod_binary64
exp-sum_binary64
log-prod_binary64
*-un-lft-identity_binary64
add-sqr-sqrt_binary64
Counts
1 → 17
Calls

1 calls:

2.0ms
(exp.f64 (log.f64 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re))))

simplify50.0ms (1.3%)

Algorithm
egg-herbie
Rules
490×fma-def_binary64
469×fma-neg_binary64
442×cancel-sign-sub-inv_binary64
237×associate-/r/_binary64
213×associate-/l/_binary64
Counts
27 → 43
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
082592
1172355
2446353
31804345
44720345
55026345

prune118.0ms (3%)

Pruning

8 alts after pruning (7 fresh and 1 done)

PrunedKeptTotal
New2123215
Fresh044
Picked101
Done011
Total2138221
Error
7.0b
Counts
221 → 8
Alt Table
StatusErrorProgram
55.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (exp.f64 (log.f64 (*.f64 1/2 (/.f64 (*.f64 im im) re)))))))
46.2b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (cbrt.f64 (pow.f64 (-.f64 (hypot.f64 re im) re) 3)) (fma.f64 (neg.f64 (cbrt.f64 re)) (*.f64 (cbrt.f64 re) (cbrt.f64 re)) (*.f64 (cbrt.f64 re) (*.f64 (cbrt.f64 re) (cbrt.f64 re))))))))
29.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
13.3b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))))
56.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) -1/8 (*.f64 1/2 (/.f64 (*.f64 im im) re))))))
54.6b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))))
32.3b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (exp.f64 (log.f64 im)))))
20.4b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (pow.f64 (exp.f64 (*.f64 (cbrt.f64 (log.f64 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re)))) (cbrt.f64 (log.f64 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re)))))) (cbrt.f64 (log.f64 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re))))))))
Compiler

Compiled 5894 to 3276 computations (44.4% saved)

regimes259.0ms (6.6%)

Accuracy

Total 4.8b remaining (39.5%)

Threshold costs 0b (0%)

Counts
25 → 2
Compiler

Compiled 4114 to 2515 computations (38.9% saved)

bsearch56.0ms (1.4%)

Steps
ItersRangePoint
7
1.529553500823353e+128
1.1538653277564137e+130
2.7128668689896868e+129
Compiler

Compiled 3 to 2 computations (33.3% saved)

simplify3.0ms (0.1%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
+-commutative_binary64
sub-neg_binary64
neg-sub0_binary64
neg-mul-1_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02039
12739
23239
33439
43539
53539

end122.0ms (3.1%)

Compiler

Compiled 221 to 146 computations (33.9% saved)

Profiling

Loading profile data...