Details

Time bar (total: 6.6s)

analyze434.0ms (6.6%)

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)

sample79.0ms (1.2%)

Algorithm
intervals
Results
12.0ms197×body128valid
5.0ms19×body2048valid
5.0ms13×body4096valid
4.0ms256×pre128true
3.0ms14×body1024valid
1.0msbody512valid
1.0msbody256valid
Compiler

Compiled 39 to 28 computations (28.2% saved)

simplify35.0ms (0.5%)

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

prune3.0ms (0.1%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New112
Fresh101
Picked000
Done000
Total213
Error
13.8b
Counts
3 → 1
Alt Table
StatusErrorProgram
13.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))))
Compiler

Compiled 51 to 37 computations (27.5% saved)

localize6.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

series26.0ms (0.4%)

Counts
2 → 48
Calls

2 calls:

14.0ms
(-.f64 (hypot.f64 re im) re)
12.0ms
(hypot.f64 re im)

rewrite6.0ms (0.1%)

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:

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

simplify70.0ms (1.1%)

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

prune63.0ms (1%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New1013104
Fresh000
Picked011
Done000
Total1014105
Error
7.5b
Counts
105 → 4
Alt Table
StatusErrorProgram
13.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))))
55.7b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))))
30.3b
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
14.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re)))))
Compiler

Compiled 2236 to 1360 computations (39.2% saved)

localize9.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

series42.0ms (0.6%)

Counts
1 → 10
Calls

1 calls:

41.0ms
(fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re))

rewrite1.0ms (0%)

Algorithm
rewrite-expression-head
Rules
*-un-lft-identity_binary64
add-sqr-sqrt_binary64
add-cube-cbrt_binary64
add-cbrt-cube_binary64
add-exp-log_binary64
Counts
1 → 10
Calls

1 calls:

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

simplify45.0ms (0.7%)

Algorithm
egg-herbie
Rules
488×fma-def_binary64
469×fma-neg_binary64
442×cancel-sign-sub-inv_binary64
237×associate-/r/_binary64
212×associate-/l/_binary64
Counts
20 → 34
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
062312
1151269
2418267
31764267
44658267
54962267

prune62.0ms (0.9%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New1111112
Fresh022
Picked101
Done011
Total1124116
Error
7.5b
Counts
116 → 4
Alt Table
StatusErrorProgram
13.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))))
55.7b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))))
30.3b
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
18.3b
(*.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 2850 to 1588 computations (44.3% saved)

localize12.0ms (0.2%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(hypot.f64 re im)
4.7b
(exp.f64 (log.f64 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re))))
14.7b
(fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re))

series42.0ms (0.6%)

Counts
1 → 10
Calls

1 calls:

42.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%)

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))))

simplify49.0ms (0.7%)

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

prune82.0ms (1.2%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New1532155
Fresh022
Picked101
Done011
Total1545159
Error
7.5b
Counts
159 → 5
Alt Table
StatusErrorProgram
20.3b
(*.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))))))))
13.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))))
55.7b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))))
30.3b
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
32.5b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (exp.f64 (log.f64 im)))))
Compiler

Compiled 4133 to 2263 computations (45.2% saved)

localize17.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(cbrt.f64 (log.f64 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re))))
2.7b
(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))))))
4.7b
(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)))))
14.7b
(fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re))

series3.1s (46.4%)

Counts
3 → 30
Calls

3 calls:

2.0s
(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)))))
816.0ms
(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))))))
205.0ms
(cbrt.f64 (log.f64 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re))))

rewrite13.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
cbrt-prod_binary64
pow-unpow_binary64
*-un-lft-identity_binary64
add-sqr-sqrt_binary64
add-cube-cbrt_binary64
Counts
3 → 51
Calls

3 calls:

5.0ms
(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)))))
2.0ms
(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))))))
1.0ms
(cbrt.f64 (log.f64 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re))))

simplify214.0ms (3.2%)

Algorithm
egg-herbie
Rules
847×times-frac_binary64
395×*-commutative_binary64
206×associate-*r*_binary64
184×+-commutative_binary64
178×fma-def_binary64
Counts
81 → 141
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
092618059
1316014565
2496214565

prune543.0ms (8.2%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New3263329
Fresh033
Picked101
Done011
Total3277334
Error
5.7b
Counts
334 → 7
Alt Table
StatusErrorProgram
55.7b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 1/2 (/.f64 (pow.f64 im 2) re)))))
54.5b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (exp.f64 (cbrt.f64 (pow.f64 (fma.f64 2 (log.f64 im) (log.f64 (/.f64 1/2 re))) 3))))))
62.6b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (pow.f64 (exp.f64 (cbrt.f64 (pow.f64 (fma.f64 2 (log.f64 im) (log.f64 (/.f64 1/2 re))) 2))) (cbrt.f64 (log.f64 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re))))))))
13.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re))))
61.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (exp.f64 (pow.f64 (*.f64 (+.f64 (log.f64 (/.f64 1/2 re)) (*.f64 2 (log.f64 im))) (pow.f64 (+.f64 (*.f64 2 (log.f64 im)) (log.f64 (/.f64 1/2 re))) 2)) 1/3)))))
30.3b
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
32.5b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (exp.f64 (log.f64 im)))))
Compiler

Compiled 35843 to 18928 computations (47.2% saved)

regimes182.0ms (2.8%)

Accuracy

Total 4.8b remaining (45.1%)

Threshold costs 0b (0%)

Counts
19 → 2
Compiler

Compiled 2922 to 1970 computations (32.6% saved)

bsearch2.0ms (0%)

Compiler

Compiled 12 to 7 computations (41.7% saved)

simplify4.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
03062
13862
24362
34562
44662
54662

end1.0ms (0%)

Compiler

Compiled 42 to 32 computations (23.8% saved)

sample1.5s (22.7%)

Algorithm
intervals
Results
382.0ms6007×body128valid
208.0ms541×body4096valid
189.0ms629×body2048valid
118.0ms8000×pre128true
109.0ms442×body1024valid
45.0ms263×body512valid
13.0ms118×body256valid
Compiler

Compiled 191 to 152 computations (20.4% saved)

Profiling

Loading profile data...