Details

Time bar (total: 3.4s)

analyze88.0ms (2.6%)

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
25%74.9%0.1%5
25%62.4%12.6%6
37.5%43.7%18.8%7
50%31.2%18.8%8
56.2%20.3%23.5%9
61.7%14.8%23.5%10
64.4%9.8%25.9%11
66.9%7.2%25.9%12
68.2%4.8%27%13
69.4%3.6%27%14
Compiler

Compiled 11 to 7 computations (36.4% saved)

sample741.0ms (21.8%)

Symmetry

(sort a b)

Results
688.0ms8256×body128valid
13.0ms162×body128invalid
Compiler

Compiled 32 to 20 computations (37.5% saved)

simplify11.0ms (0.3%)

Algorithm
egg-herbie
Rules
284×fma-def_binary64
31×associate-*l*_binary64
24×distribute-rgt-in_binary64
24×sub-neg_binary64
19×fma-neg_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0712
12112
25912
312212
419212
526012
632312
737212
851712
960112
Stop Event
saturated
Counts
1 → 2

prune3.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
16.0b
Counts
3 → 2
Alt Table
StatusErrorProgram
23.2b
(*.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
16.0b
(neg.f64 (*.f64 (*.f64 (*.f64 a a) b) b))
Compiler

Compiled 58 to 33 computations (43.1% saved)

localize5.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
5.2b
(*.f64 (*.f64 (*.f64 a a) b) b)
10.1b
(*.f64 (*.f64 a a) b)

series18.0ms (0.5%)

Counts
2 → 48
Calls

2 calls:

11.0ms
(*.f64 (*.f64 (*.f64 a a) b) b)
7.0ms
(*.f64 (*.f64 a a) b)

rewrite33.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
509×log1p-expm1-u_binary64
509×expm1-log1p-u_binary64
455×unpow-prod-down_binary64
321×log-prod_binary64
151×pow2_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0617
112114
2148814
Stop Event
node limit
Counts
2 → 34
Calls

2 calls:

32.0ms
(*.f64 (*.f64 (*.f64 a a) b) b)
32.0ms
(*.f64 (*.f64 a a) b)

simplify98.0ms (2.9%)

Algorithm
egg-herbie
Rules
2154×associate-*l*_binary64
764×sqr-pow_binary64
304×unswap-sqr_binary64
257×pow-sqr_binary64
187×cube-prod_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
08408
118408
239408
3108408
4483408
51067408
61133408
71233408
81353408
91475408
101622408
111786408
121975408
132188408
142418408
152662408
162927408
173206408
183506408
193820408
Stop Event
node limit
Counts
82 → 38

prune28.0ms (0.8%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New33538
Fresh011
Picked011
Done000
Total33740
Error
0.1b
Counts
40 → 7
Alt Table
StatusErrorProgram
5.4b
(neg.f64 (*.f64 (*.f64 a (*.f64 a b)) b))
23.2b
(*.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
16.0b
(neg.f64 (*.f64 (*.f64 (*.f64 a a) b) b))
24.2b
(neg.f64 (cbrt.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 3)))
0.3b
(neg.f64 (pow.f64 (*.f64 a b) 2))
1.2b
(neg.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) 3))
18.9b
(neg.f64 (*.f64 (pow.f64 (*.f64 a (sqrt.f64 b)) 2) b))
Compiler

Compiled 539 to 314 computations (41.7% saved)

localize4.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.3b
(pow.f64 (*.f64 a b) 2)

series7.0ms (0.2%)

Counts
1 → 24
Calls

1 calls:

7.0ms
(pow.f64 (*.f64 a b) 2)

rewrite31.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
471×log1p-expm1-u_binary64
471×expm1-log1p-u_binary64
367×unpow-prod-down_binary64
262×log-prod_binary64
142×pow2_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
067
11247
213647
Stop Event
node limit
Counts
1 → 50
Calls

1 calls:

30.0ms
(pow.f64 (*.f64 a b) 2)

simplify67.0ms (2%)

Algorithm
egg-herbie
Rules
719×associate-*l*_binary64
564×sqr-pow_binary64
505×associate-*r*_binary64
482×*-commutative_binary64
263×cube-prod_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
07240
116240
237240
3103240
4432240
52343240
62435240
72636240
82834240
93072240
103391240
114063240
124557240
Stop Event
node limit
Counts
74 → 52

prune43.0ms (1.3%)

Pruning

9 alts after pruning (7 fresh and 2 done)

PrunedKeptTotal
New48452
Fresh235
Picked011
Done011
Total50959
Error
0.0b
Counts
59 → 9
Alt Table
StatusErrorProgram
5.4b
(neg.f64 (*.f64 (*.f64 a (*.f64 a b)) b))
23.2b
(*.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
16.0b
(neg.f64 (*.f64 (*.f64 (*.f64 a a) b) b))
23.8b
(neg.f64 (*.f64 (pow.f64 (sqrt.f64 (*.f64 a b)) 3) (sqrt.f64 (*.f64 a b))))
23.7b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 a b)) (*.f64 (sqrt.f64 (*.f64 a b)) (*.f64 a b))))
0.8b
(neg.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) (*.f64 (cbrt.f64 (*.f64 a b)) (*.f64 a b))))
5.8b
(neg.f64 (*.f64 a (*.f64 b (*.f64 a b))))
0.3b
(neg.f64 (pow.f64 (*.f64 a b) 2))
18.9b
(neg.f64 (*.f64 (pow.f64 (*.f64 a (sqrt.f64 b)) 2) b))
Compiler

Compiled 822 to 436 computations (47% saved)

localize7.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) (*.f64 (cbrt.f64 (*.f64 a b)) (*.f64 a b)))
0.3b
(*.f64 (cbrt.f64 (*.f64 a b)) (*.f64 a b))
0.4b
(pow.f64 (cbrt.f64 (*.f64 a b)) 2)
12.1b
(cbrt.f64 (*.f64 a b))

series1.1s (33.5%)

Counts
4 → 96
Calls

4 calls:

469.0ms
(*.f64 (cbrt.f64 (*.f64 a b)) (*.f64 a b))
321.0ms
(cbrt.f64 (*.f64 a b))
309.0ms
(pow.f64 (cbrt.f64 (*.f64 a b)) 2)
41.0ms
(*.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) (*.f64 (cbrt.f64 (*.f64 a b)) (*.f64 a b)))

rewrite41.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
667×log1p-expm1-u_binary64
667×expm1-log1p-u_binary64
133×expm1-udef_binary64
133×log1p-udef_binary64
126×log-pow_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0937
118331
2209631
Stop Event
node limit
Counts
4 → 77
Calls

4 calls:

40.0ms
(*.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) (*.f64 (cbrt.f64 (*.f64 a b)) (*.f64 a b)))
40.0ms
(*.f64 (cbrt.f64 (*.f64 a b)) (*.f64 a b))
40.0ms
(pow.f64 (cbrt.f64 (*.f64 a b)) 2)
40.0ms
(cbrt.f64 (*.f64 a b))

simplify44.0ms (1.3%)

Algorithm
egg-herbie
Rules
574×associate-*l*_binary64
339×fma-def_binary64
272×unswap-sqr_binary64
179×distribute-rgt-in_binary64
176×exp-prod_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0791592
12031552
24871384
315991048
Stop Event
node limit
Counts
173 → 101

prune100.0ms (2.9%)

Pruning

9 alts after pruning (7 fresh and 2 done)

PrunedKeptTotal
New1303133
Fresh246
Picked101
Done022
Total1339142
Error
0.0b
Counts
142 → 9
Alt Table
StatusErrorProgram
17.1b
(neg.f64 (*.f64 a (*.f64 a (*.f64 b b))))
23.2b
(*.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
0.6b
(neg.f64 (*.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 2)) (*.f64 (cbrt.f64 (*.f64 a b)) (*.f64 a b))))
5.4b
(neg.f64 (*.f64 (*.f64 a (*.f64 a b)) b))
0.7b
(neg.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) (*.f64 (*.f64 (cbrt.f64 a) (cbrt.f64 b)) (*.f64 a b))))
16.0b
(neg.f64 (*.f64 (*.f64 (*.f64 a a) b) b))
5.8b
(neg.f64 (*.f64 a (*.f64 b (*.f64 a b))))
0.3b
(neg.f64 (pow.f64 (*.f64 a b) 2))
18.9b
(neg.f64 (*.f64 (pow.f64 (*.f64 a (sqrt.f64 b)) 2) b))
Compiler

Compiled 2679 to 1195 computations (55.4% saved)

localize10.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (cbrt.f64 (*.f64 a b)) (*.f64 a b))
0.3b
(pow.f64 (*.f64 a b) 2)
12.1b
(cbrt.f64 (*.f64 a b))
20.6b
(cbrt.f64 (pow.f64 (*.f64 a b) 2))

series438.0ms (12.9%)

Counts
1 → 24
Calls

1 calls:

438.0ms
(cbrt.f64 (pow.f64 (*.f64 a b) 2))

rewrite33.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
532×log1p-expm1-u_binary64
532×expm1-log1p-u_binary64
471×unpow-prod-down_binary64
290×log-prod_binary64
158×pow2_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
079
11429
215569
Stop Event
node limit
Counts
1 → 54
Calls

1 calls:

32.0ms
(cbrt.f64 (pow.f64 (*.f64 a b) 2))

simplify28.0ms (0.8%)

Algorithm
egg-herbie
Rules
302×fma-neg_binary64
287×exp-prod_binary64
284×exp-sum_binary64
224×fma-def_binary64
175×unsub-neg_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
045408
1108384
2270312
3742288
42496216
Stop Event
node limit
Counts
78 → 61

prune134.0ms (3.9%)

Pruning

9 alts after pruning (7 fresh and 2 done)

PrunedKeptTotal
New1671168
Fresh066
Picked101
Done022
Total1689177
Error
0.0b
Counts
177 → 9
Alt Table
StatusErrorProgram
17.1b
(neg.f64 (*.f64 a (*.f64 a (*.f64 b b))))
23.2b
(*.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
0.6b
(neg.f64 (*.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 2)) (*.f64 (*.f64 (cbrt.f64 (/.f64 a (/.f64 -1 b))) (cbrt.f64 -1)) (*.f64 a b))))
0.3b
(neg.f64 (pow.f64 (*.f64 a b) 2))
5.4b
(neg.f64 (*.f64 (*.f64 a (*.f64 a b)) b))
0.7b
(neg.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) (*.f64 (*.f64 (cbrt.f64 a) (cbrt.f64 b)) (*.f64 a b))))
16.0b
(neg.f64 (*.f64 (*.f64 (*.f64 a a) b) b))
5.8b
(neg.f64 (*.f64 a (*.f64 b (*.f64 a b))))
18.9b
(neg.f64 (*.f64 (pow.f64 (*.f64 a (sqrt.f64 b)) 2) b))
Compiler

Compiled 3629 to 1571 computations (56.7% saved)

regimes148.0ms (4.3%)

Accuracy

Total 0.3b remaining (87.6%)

Threshold costs 0.3b (87.6%)

Counts
36 → 1
Compiler

Compiled 3040 to 1844 computations (39.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
079
1129
2149
3159
Stop Event
saturated

end99.0ms (2.9%)

Remove

(sort a b)

Compiler

Compiled 143 to 96 computations (32.9% saved)

Profiling

Loading profile data...