Details

Time bar (total: 6.0s)

analyze1.8s (30%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.9%0.1%0
0%99.9%0.1%1
0%99.9%0.1%2
0%99.9%0.1%3
0%99.9%0.1%4
0%99.9%0.1%5
0%99.9%0.1%6
0%99.9%0.1%7
0%99.9%0.1%8
0%99.9%0.1%9
0%99.9%0.1%10
0%99.9%0.1%11
0%99.9%0.1%12
0%99.9%0.1%13
0%99.9%0.1%14
Compiler

Compiled 18 to 13 computations (27.8% saved)

sample1.8s (30.6%)

Results
816.0ms6248×body128valid
352.0ms694×body2048valid
330.0ms521×body4096valid
183.0ms433×body1024valid
70.0ms230×body512valid
28.0ms130×body256valid
Compiler

Compiled 35 to 25 computations (28.6% saved)

simplify7.0ms (0.1%)

Algorithm
egg-herbie
Rules
fma-def_binary64
*-commutative_binary64
+-commutative_binary64
distribute-lft-in_binary64
distribute-rgt-in_binary64
Counts
1 → 2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01315
12515
22915
33115
43115

prune4.0ms (0.1%)

Pruning

1 alts after pruning (1 fresh and 0 done)

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

Compiled 51 to 37 computations (27.5% saved)

localize6.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(hypot.f64 re im)
0.0b
(sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))
0.4b
(+.f64 re (hypot.f64 re im))

series109.0ms (1.8%)

Counts
3 → 56
Calls

3 calls:

51.0ms
(+.f64 re (hypot.f64 re im))
44.0ms
(sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))
14.0ms
(hypot.f64 re im)

rewrite8.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
pow1_binary64
*-un-lft-identity_binary64
add-log-exp_binary64
add-sqr-sqrt_binary64
add-cube-cbrt_binary64
Counts
3 → 42
Calls

3 calls:

3.0ms
(sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))
2.0ms
(+.f64 re (hypot.f64 re im))
0.0ms
(hypot.f64 re im)

simplify96.0ms (1.6%)

Algorithm
egg-herbie
Rules
615×fma-def_binary64
531×fma-neg_binary64
460×associate-*r*_binary64
385×associate-*l*_binary64
294×cancel-sign-sub-inv_binary64
Counts
98 → 118
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01881829
15141737
214651673
349901673
453081673

prune83.0ms (1.4%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New1126118
Fresh000
Picked011
Done000
Total1127119
Error
7.0b
Counts
119 → 7
Alt Table
StatusErrorProgram
13.4b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))
48.3b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im))))
55.7b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))))
14.5b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (*.f64 (*.f64 (cbrt.f64 (hypot.f64 re im)) (cbrt.f64 (hypot.f64 re im))) (cbrt.f64 (hypot.f64 re im)))))))
47.6b
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
13.5b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 (+.f64 re (hypot.f64 re im)))))))
16.3b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (expm1.f64 (log1p.f64 (+.f64 re (hypot.f64 re im)))))))
Compiler

Compiled 2683 to 1824 computations (32% saved)

localize9.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(sqrt.f64 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 (+.f64 re (hypot.f64 re im))))))
0.0b
(sqrt.f64 (+.f64 re (hypot.f64 re im)))
0.4b
(+.f64 re (hypot.f64 re im))
0.4b
(*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 (+.f64 re (hypot.f64 re im))))

series97.0ms (1.6%)

Counts
3 → 40
Calls

3 calls:

54.0ms
(sqrt.f64 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 (+.f64 re (hypot.f64 re im))))))
30.0ms
(sqrt.f64 (+.f64 re (hypot.f64 re im)))
12.0ms
(*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 (+.f64 re (hypot.f64 re im))))

rewrite34.0ms (0.6%)

Algorithm
rewrite-expression-head
Rules
34×sqrt-div_binary64
31×sqrt-prod_binary64
31×add-sqr-sqrt_binary64
28×*-un-lft-identity_binary64
25×pow1_binary64
Counts
3 → 107
Calls

3 calls:

12.0ms
(sqrt.f64 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 (+.f64 re (hypot.f64 re im))))))
9.0ms
(*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 (+.f64 re (hypot.f64 re im))))
3.0ms
(sqrt.f64 (+.f64 re (hypot.f64 re im)))

simplify119.0ms (2%)

Algorithm
egg-herbie
Rules
754×fma-def_binary64
437×times-frac_binary64
417×associate-/l*_binary64
400×cancel-sign-sub-inv_binary64
308×fma-neg_binary64
Counts
147 → 184
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02633119
16322887
219492776
348232776
449572776

prune218.0ms (3.6%)

Pruning

7 alts after pruning (5 fresh and 2 done)

PrunedKeptTotal
New3140314
Fresh055
Picked011
Done011
Total3147321
Error
7.0b
Counts
321 → 7
Alt Table
StatusErrorProgram
13.4b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))
48.3b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im))))
55.7b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))))
14.5b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (*.f64 (*.f64 (cbrt.f64 (hypot.f64 re im)) (cbrt.f64 (hypot.f64 re im))) (cbrt.f64 (hypot.f64 re im)))))))
47.6b
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
13.5b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 (+.f64 re (hypot.f64 re im)))))))
16.3b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (expm1.f64 (log1p.f64 (+.f64 re (hypot.f64 re im)))))))
Compiler

Compiled 8915 to 4401 computations (50.6% saved)

localize10.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (*.f64 (cbrt.f64 (hypot.f64 re im)) (cbrt.f64 (hypot.f64 re im))) (cbrt.f64 (hypot.f64 re im)))
0.5b
(*.f64 (cbrt.f64 (hypot.f64 re im)) (cbrt.f64 (hypot.f64 re im)))
0.6b
(cbrt.f64 (hypot.f64 re im))
10.6b
(+.f64 re (*.f64 (*.f64 (cbrt.f64 (hypot.f64 re im)) (cbrt.f64 (hypot.f64 re im))) (cbrt.f64 (hypot.f64 re im))))

series136.0ms (2.2%)

Counts
4 → 96
Calls

4 calls:

66.0ms
(*.f64 (cbrt.f64 (hypot.f64 re im)) (cbrt.f64 (hypot.f64 re im)))
41.0ms
(cbrt.f64 (hypot.f64 re im))
15.0ms
(*.f64 (*.f64 (cbrt.f64 (hypot.f64 re im)) (cbrt.f64 (hypot.f64 re im))) (cbrt.f64 (hypot.f64 re im)))
14.0ms
(+.f64 re (*.f64 (*.f64 (cbrt.f64 (hypot.f64 re im)) (cbrt.f64 (hypot.f64 re im))) (cbrt.f64 (hypot.f64 re im))))

rewrite22.0ms (0.4%)

Algorithm
rewrite-expression-head
Rules
30×pow1_binary64
26×add-sqr-sqrt_binary64
23×cbrt-prod_binary64
16×pow1/3_binary64
16×*-un-lft-identity_binary64
Counts
4 → 109
Calls

4 calls:

7.0ms
(*.f64 (*.f64 (cbrt.f64 (hypot.f64 re im)) (cbrt.f64 (hypot.f64 re im))) (cbrt.f64 (hypot.f64 re im)))
5.0ms
(*.f64 (cbrt.f64 (hypot.f64 re im)) (cbrt.f64 (hypot.f64 re im)))
3.0ms
(+.f64 re (*.f64 (*.f64 (cbrt.f64 (hypot.f64 re im)) (cbrt.f64 (hypot.f64 re im))) (cbrt.f64 (hypot.f64 re im))))
1.0ms
(cbrt.f64 (hypot.f64 re im))

simplify155.0ms (2.6%)

Algorithm
egg-herbie
Rules
458×fma-neg_binary64
418×cancel-sign-sub-inv_binary64
227×unswap-sqr_binary64
210×associate-*r*_binary64
209×distribute-rgt-neg-in_binary64
Counts
205 → 247
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02873864
18053722
223283622
346993595
449823595
549343595

prune227.0ms (3.8%)

Pruning

7 alts after pruning (5 fresh and 2 done)

PrunedKeptTotal
New3392341
Fresh134
Picked101
Done022
Total3417348
Error
7.0b
Counts
348 → 7
Alt Table
StatusErrorProgram
13.4b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))
48.3b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im))))
55.7b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))))
47.6b
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
13.5b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 (+.f64 re (hypot.f64 re im)))))))
15.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) 6) (cbrt.f64 (hypot.f64 re im)))))))
14.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (*.f64 (*.f64 (cbrt.f64 (hypot.f64 re im)) (cbrt.f64 (hypot.f64 re im))) (*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) 6)) (cbrt.f64 (cbrt.f64 (hypot.f64 re im)))))))))
Compiler

Compiled 10286 to 5398 computations (47.5% saved)

localize16.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.6b
(cbrt.f64 (cbrt.f64 (hypot.f64 re im)))
0.6b
(cbrt.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) 6))
1.3b
(pow.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) 6)
9.4b
(+.f64 re (*.f64 (*.f64 (cbrt.f64 (hypot.f64 re im)) (cbrt.f64 (hypot.f64 re im))) (*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) 6)) (cbrt.f64 (cbrt.f64 (hypot.f64 re im))))))

series207.0ms (3.4%)

Counts
4 → 96
Calls

4 calls:

107.0ms
(pow.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) 6)
47.0ms
(cbrt.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) 6))
39.0ms
(cbrt.f64 (cbrt.f64 (hypot.f64 re im)))
13.0ms
(+.f64 re (*.f64 (*.f64 (cbrt.f64 (hypot.f64 re im)) (cbrt.f64 (hypot.f64 re im))) (*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) 6)) (cbrt.f64 (cbrt.f64 (hypot.f64 re im))))))

rewrite14.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
40×cbrt-prod_binary64
18×unpow-prod-down_binary64
15×*-un-lft-identity_binary64
15×add-sqr-sqrt_binary64
15×add-cube-cbrt_binary64
Counts
4 → 81
Calls

4 calls:

4.0ms
(cbrt.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) 6))
3.0ms
(+.f64 re (*.f64 (*.f64 (cbrt.f64 (hypot.f64 re im)) (cbrt.f64 (hypot.f64 re im))) (*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) 6)) (cbrt.f64 (cbrt.f64 (hypot.f64 re im))))))
2.0ms
(pow.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) 6)
1.0ms
(cbrt.f64 (cbrt.f64 (hypot.f64 re im)))

simplify122.0ms (2%)

Algorithm
egg-herbie
Rules
495×cancel-sign-sub-inv_binary64
317×unswap-sqr_binary64
305×distribute-rgt-neg-in_binary64
251×associate-*r*_binary64
242×fma-neg_binary64
Counts
177 → 197
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
03234874
18724636
226964382
350164382

prune189.0ms (3.1%)

Pruning

6 alts after pruning (4 fresh and 2 done)

PrunedKeptTotal
New2451246
Fresh134
Picked101
Done022
Total2476253
Error
7.0b
Counts
253 → 6
Alt Table
StatusErrorProgram
13.4b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))
48.3b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im))))
55.7b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))))
17.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (expm1.f64 (log1p.f64 (+.f64 re (*.f64 (*.f64 (cbrt.f64 (hypot.f64 re im)) (cbrt.f64 (hypot.f64 re im))) (*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) 6)) (cbrt.f64 (cbrt.f64 (hypot.f64 re im)))))))))))
47.6b
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
13.5b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 (+.f64 re (hypot.f64 re im)))))))
Compiler

Compiled 10247 to 5102 computations (50.2% saved)

regimes384.0ms (6.4%)

Accuracy

Total 2.8b remaining (27.5%)

Threshold costs 0b (0%)

Counts
42 → 2
Compiler

Compiled 5590 to 3853 computations (31.1% saved)

bsearch2.0ms (0%)

Compiler

Compiled 15 to 10 computations (33.3% saved)

simplify3.0ms (0%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
+-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02858
13758
23758

end100.0ms (1.7%)

Compiler

Compiled 178 to 126 computations (29.2% saved)

Profiling

Loading profile data...