Details

Time bar (total: 4.0s)

analyze1.5s (38.6%)

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

Compiled 8 to 6 computations (25% saved)

sample1.2s (29.8%)

Results
1.2s8256×body128valid
1.0msbody8192exit
Compiler

Compiled 15 to 11 computations (26.7% saved)

simplify7.0ms (0.2%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
associate-*r*_binary64
associate-*l*_binary64
Counts
1 → 1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
069
199
2119
3119

prune2.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Error
30.2b
Counts
2 → 1
Alt Table
StatusErrorProgram
30.2b
(sqrt.f64 (*.f64 2 (*.f64 x x)))
Compiler

Compiled 21 to 15 computations (28.6% saved)

localize4.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(*.f64 2 (*.f64 x x))
29.1b
(sqrt.f64 (*.f64 2 (*.f64 x x)))

series5.0ms (0.1%)

Counts
2 → 24
Calls

2 calls:

3.0ms
(sqrt.f64 (*.f64 2 (*.f64 x x)))
2.0ms
(*.f64 2 (*.f64 x x))

rewrite9.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
13×pow1_binary64
add-cbrt-cube_binary64
add-exp-log_binary64
pow-prod-down_binary64
add-sqr-sqrt_binary64
Counts
2 → 35
Calls

2 calls:

4.0ms
(*.f64 2 (*.f64 x x))
4.0ms
(sqrt.f64 (*.f64 2 (*.f64 x x)))

simplify77.0ms (1.9%)

Algorithm
egg-herbie
Rules
597×distribute-rgt-out_binary64
429×fma-def_binary64
339×*-commutative_binary64
318×times-frac_binary64
249×fma-neg_binary64
Counts
59 → 47
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
053514
197472
2229461
3599461
4904401
51456401
63025401
74826401
84904401

prune28.0ms (0.7%)

Pruning

8 alts after pruning (7 fresh and 1 done)

PrunedKeptTotal
New40747
Fresh000
Picked011
Done000
Total40848
Error
0.1b
Counts
48 → 8
Alt Table
StatusErrorProgram
41.2b
(cbrt.f64 (pow.f64 (hypot.f64 x x) 3))
28.7b
(*.f64 (sqrt.f64 2) x)
30.6b
(sqrt.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 2 (*.f64 x x))) (cbrt.f64 (*.f64 2 (*.f64 x x)))) (cbrt.f64 (*.f64 2 (*.f64 x x)))))
0.5b
(*.f64 (sqrt.f64 (hypot.f64 x x)) (sqrt.f64 (hypot.f64 x x)))
1.3b
(*.f64 (*.f64 (cbrt.f64 (hypot.f64 x x)) (cbrt.f64 (hypot.f64 x x))) (cbrt.f64 (hypot.f64 x x)))
30.2b
(sqrt.f64 (*.f64 2 (*.f64 x x)))
33.1b
(log1p.f64 (expm1.f64 (hypot.f64 x x)))
34.4b
(neg.f64 (*.f64 (sqrt.f64 2) x))
Compiler

Compiled 602 to 353 computations (41.4% saved)

localize5.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.1b
(sqrt.f64 (hypot.f64 x x))
0.1b
(hypot.f64 x x)
0.5b
(*.f64 (sqrt.f64 (hypot.f64 x x)) (sqrt.f64 (hypot.f64 x x)))

series18.0ms (0.5%)

Counts
3 → 24
Calls

3 calls:

11.0ms
(sqrt.f64 (hypot.f64 x x))
4.0ms
(*.f64 (sqrt.f64 (hypot.f64 x x)) (sqrt.f64 (hypot.f64 x x)))
4.0ms
(hypot.f64 x x)

rewrite11.0ms (0.3%)

Algorithm
rewrite-expression-head
Rules
29×add-sqr-sqrt_binary64
21×sqrt-prod_binary64
19×pow1_binary64
12×*-un-lft-identity_binary64
12×add-cube-cbrt_binary64
Counts
3 → 78
Calls

3 calls:

5.0ms
(*.f64 (sqrt.f64 (hypot.f64 x x)) (sqrt.f64 (hypot.f64 x x)))
1.0ms
(sqrt.f64 (hypot.f64 x x))
0.0ms
(hypot.f64 x x)

simplify83.0ms (2.1%)

Algorithm
egg-herbie
Rules
951×fma-def_binary64
446×unswap-sqr_binary64
308×sqr-pow_binary64
263×associate-+l+_binary64
259×associate-/l*_binary64
Counts
102 → 83
Iterations

Useful iterations: 6 (0.0ms)

IterNodesCost
061802
185752
2199739
3402701
4728701
51353701
62551685
74580685
85171685

prune52.0ms (1.3%)

Pruning

8 alts after pruning (7 fresh and 1 done)

PrunedKeptTotal
New995104
Fresh426
Picked011
Done101
Total1048112
Error
0.0b
Counts
112 → 8
Alt Table
StatusErrorProgram
34.4b
(neg.f64 (*.f64 (sqrt.f64 2) x))
0.1b
(hypot.f64 x x)
0.8b
(*.f64 (sqrt.f64 (hypot.f64 x x)) (*.f64 (cbrt.f64 (hypot.f64 x x)) (sqrt.f64 (cbrt.f64 (hypot.f64 x x)))))
0.5b
(*.f64 (sqrt.f64 (hypot.f64 x x)) (sqrt.f64 (hypot.f64 x x)))
1.4b
(*.f64 (*.f64 (sqrt.f64 (hypot.f64 x x)) (*.f64 (cbrt.f64 (sqrt.f64 (hypot.f64 x x))) (cbrt.f64 (sqrt.f64 (hypot.f64 x x))))) (cbrt.f64 (sqrt.f64 (hypot.f64 x x))))
28.7b
(*.f64 (sqrt.f64 2) x)
0.7b
(*.f64 (sqrt.f64 (sqrt.f64 (hypot.f64 x x))) (*.f64 (sqrt.f64 (sqrt.f64 (hypot.f64 x x))) (sqrt.f64 (hypot.f64 x x))))
1.4b
(*.f64 (*.f64 (sqrt.f64 (*.f64 (cbrt.f64 (hypot.f64 x x)) (cbrt.f64 (hypot.f64 x x)))) (sqrt.f64 (*.f64 (cbrt.f64 (hypot.f64 x x)) (cbrt.f64 (hypot.f64 x x))))) (*.f64 (sqrt.f64 (cbrt.f64 (hypot.f64 x x))) (sqrt.f64 (cbrt.f64 (hypot.f64 x x)))))
Compiler

Compiled 1580 to 382 computations (75.8% saved)

localize2.0ms (0%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.1b
(hypot.f64 x x)

prune8.0ms (0.2%)

Pruning

8 alts after pruning (6 fresh and 2 done)

PrunedKeptTotal
New404
Fresh066
Picked011
Done011
Total4812
Error
0.0b
Counts
12 → 8
Alt Table
StatusErrorProgram
34.4b
(neg.f64 (*.f64 (sqrt.f64 2) x))
0.1b
(hypot.f64 x x)
0.8b
(*.f64 (sqrt.f64 (hypot.f64 x x)) (*.f64 (cbrt.f64 (hypot.f64 x x)) (sqrt.f64 (cbrt.f64 (hypot.f64 x x)))))
0.5b
(*.f64 (sqrt.f64 (hypot.f64 x x)) (sqrt.f64 (hypot.f64 x x)))
1.4b
(*.f64 (*.f64 (sqrt.f64 (hypot.f64 x x)) (*.f64 (cbrt.f64 (sqrt.f64 (hypot.f64 x x))) (cbrt.f64 (sqrt.f64 (hypot.f64 x x))))) (cbrt.f64 (sqrt.f64 (hypot.f64 x x))))
28.7b
(*.f64 (sqrt.f64 2) x)
0.7b
(*.f64 (sqrt.f64 (sqrt.f64 (hypot.f64 x x))) (*.f64 (sqrt.f64 (sqrt.f64 (hypot.f64 x x))) (sqrt.f64 (hypot.f64 x x))))
1.4b
(*.f64 (*.f64 (sqrt.f64 (*.f64 (cbrt.f64 (hypot.f64 x x)) (cbrt.f64 (hypot.f64 x x)))) (sqrt.f64 (*.f64 (cbrt.f64 (hypot.f64 x x)) (cbrt.f64 (hypot.f64 x x))))) (*.f64 (sqrt.f64 (cbrt.f64 (hypot.f64 x x))) (sqrt.f64 (cbrt.f64 (hypot.f64 x x)))))
Compiler

Compiled 257 to 96 computations (62.6% saved)

localize6.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(sqrt.f64 (hypot.f64 x x))
0.1b
(hypot.f64 x x)
0.4b
(*.f64 (sqrt.f64 (sqrt.f64 (hypot.f64 x x))) (*.f64 (sqrt.f64 (sqrt.f64 (hypot.f64 x x))) (sqrt.f64 (hypot.f64 x x))))
0.4b
(*.f64 (sqrt.f64 (sqrt.f64 (hypot.f64 x x))) (sqrt.f64 (hypot.f64 x x)))

series405.0ms (10.1%)

Counts
2 → 24
Calls

2 calls:

401.0ms
(*.f64 (sqrt.f64 (sqrt.f64 (hypot.f64 x x))) (sqrt.f64 (hypot.f64 x x)))
4.0ms
(*.f64 (sqrt.f64 (sqrt.f64 (hypot.f64 x x))) (*.f64 (sqrt.f64 (sqrt.f64 (hypot.f64 x x))) (sqrt.f64 (hypot.f64 x x))))

rewrite29.0ms (0.7%)

Algorithm
rewrite-expression-head
Rules
51×sqrt-pow1_binary64
48×pow1_binary64
42×add-sqr-sqrt_binary64
37×sqrt-prod_binary64
36×pow-prod-up_binary64
Counts
2 → 100
Calls

2 calls:

13.0ms
(*.f64 (sqrt.f64 (sqrt.f64 (hypot.f64 x x))) (*.f64 (sqrt.f64 (sqrt.f64 (hypot.f64 x x))) (sqrt.f64 (hypot.f64 x x))))
7.0ms
(*.f64 (sqrt.f64 (sqrt.f64 (hypot.f64 x x))) (sqrt.f64 (hypot.f64 x x)))

simplify114.0ms (2.8%)

Algorithm
egg-herbie
Rules
666×fma-def_binary64
338×fma-neg_binary64
322×unswap-sqr_binary64
245×exp-prod_binary64
220×exp-sum_binary64
Counts
124 → 126
Iterations

Useful iterations: 5 (0.0ms)

IterNodesCost
01001686
11921428
24101242
37241206
417391160
544301156
649901156
748431156

prune93.0ms (2.3%)

Pruning

9 alts after pruning (6 fresh and 3 done)

PrunedKeptTotal
New1881189
Fresh055
Picked011
Done022
Total1889197
Error
0.0b
Counts
197 → 9
Alt Table
StatusErrorProgram
34.4b
(neg.f64 (*.f64 (sqrt.f64 2) x))
0.1b
(hypot.f64 x x)
0.8b
(*.f64 (sqrt.f64 (hypot.f64 x x)) (*.f64 (cbrt.f64 (hypot.f64 x x)) (sqrt.f64 (cbrt.f64 (hypot.f64 x x)))))
1.4b
(*.f64 (*.f64 (cbrt.f64 (sqrt.f64 (sqrt.f64 (hypot.f64 x x)))) (cbrt.f64 (sqrt.f64 (sqrt.f64 (hypot.f64 x x))))) (*.f64 (cbrt.f64 (sqrt.f64 (sqrt.f64 (hypot.f64 x x)))) (*.f64 (sqrt.f64 (sqrt.f64 (hypot.f64 x x))) (sqrt.f64 (hypot.f64 x x)))))
0.5b
(*.f64 (sqrt.f64 (hypot.f64 x x)) (sqrt.f64 (hypot.f64 x x)))
1.4b
(*.f64 (*.f64 (sqrt.f64 (hypot.f64 x x)) (*.f64 (cbrt.f64 (sqrt.f64 (hypot.f64 x x))) (cbrt.f64 (sqrt.f64 (hypot.f64 x x))))) (cbrt.f64 (sqrt.f64 (hypot.f64 x x))))
28.7b
(*.f64 (sqrt.f64 2) x)
0.7b
(*.f64 (sqrt.f64 (sqrt.f64 (hypot.f64 x x))) (*.f64 (sqrt.f64 (sqrt.f64 (hypot.f64 x x))) (sqrt.f64 (hypot.f64 x x))))
1.4b
(*.f64 (*.f64 (sqrt.f64 (*.f64 (cbrt.f64 (hypot.f64 x x)) (cbrt.f64 (hypot.f64 x x)))) (sqrt.f64 (*.f64 (cbrt.f64 (hypot.f64 x x)) (cbrt.f64 (hypot.f64 x x))))) (*.f64 (sqrt.f64 (cbrt.f64 (hypot.f64 x x))) (sqrt.f64 (cbrt.f64 (hypot.f64 x x)))))
Compiler

Compiled 3807 to 853 computations (77.6% saved)

regimes216.0ms (5.4%)

Accuracy

Total 0.1b remaining (84.5%)

Threshold costs 0.1b (84.5%)

Counts
52 → 1
Compiler

Compiled 3611 to 1752 computations (51.5% saved)

simplify2.0ms (0.1%)

Algorithm
egg-herbie
Rules
1-exp_binary64
unpow1_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
054
174
264

end91.0ms (2.3%)

Compiler

Compiled 155 to 57 computations (63.2% saved)

Profiling

Loading profile data...