Details

Time bar (total: 3.5s)

analyze93.0ms (2.7%)

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)

sample786.0ms (22.4%)

Symmetry

(sort a b)

Results
735.0ms8256×body128valid
13.0ms141×body128invalid
Compiler

Compiled 32 to 20 computations (37.5% saved)

simplify13.0ms (0.4%)

Algorithm
egg-herbie
Rules
284×fma-def_binary64
35×associate-*l*_binary64
24×distribute-rgt-in_binary64
24×sub-neg_binary64
19×fma-neg_binary64
Counts
1 → 2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0712
12112
25512
39712
414412
518512
623012
726412
827312
926712
1023312

prune4.0ms (0.1%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New112
Fresh011
Picked000
Done000
Total123
Error
17.1b
Counts
3 → 1
Alt Table
StatusErrorProgram
17.1b
(neg.f64 (*.f64 (*.f64 (*.f64 a a) b) b))
Compiler

Compiled 38 to 20 computations (47.4% saved)

localize5.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
6.1b
(*.f64 (*.f64 (*.f64 a a) b) b)
10.3b
(*.f64 (*.f64 a a) b)

series17.0ms (0.5%)

Counts
2 → 48
Calls

2 calls:

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

rewrite39.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
509×log1p-expm1-u_binary64
509×expm1-log1p-u_binary64
456×unpow-prod-down_binary64
321×log-prod_binary64
151×pow2_binary64
Counts
2 → 35
Calls

2 calls:

38.0ms
(*.f64 (*.f64 (*.f64 a a) b) b)
38.0ms
(*.f64 (*.f64 a a) b)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0617
112114
2137114
3518614
000
100

simplify113.0ms (3.2%)

Algorithm
egg-herbie
Rules
2226×associate-*l*_binary64
764×sqr-pow_binary64
304×unswap-sqr_binary64
257×pow-sqr_binary64
191×*-commutative_binary64
Counts
83 → 38
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
08408
118408
237408
392408
4314408
5558408
6557408
7645408
8750408
9859408
10974408
111082408
121227408
131402408
141597408
151806408
162036408
172280408
182545408
192824408
205866408

prune29.0ms (0.8%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New32638
Fresh000
Picked011
Done000
Total32739
Error
0.1b
Counts
39 → 7
Alt Table
StatusErrorProgram
26.4b
(neg.f64 (cbrt.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 3)))
1.2b
(neg.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) 3))
0.3b
(neg.f64 (pow.f64 (*.f64 a b) 2))
26.6b
(neg.f64 (*.f64 (cbrt.f64 (pow.f64 (*.f64 (*.f64 a a) b) 3)) b))
20.9b
(neg.f64 (*.f64 (pow.f64 (*.f64 a (sqrt.f64 b)) 2) b))
24.1b
(neg.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
17.1b
(neg.f64 (*.f64 (*.f64 (*.f64 a a) b) b))
Compiler

Compiled 545 to 323 computations (40.7% saved)

localize4.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

series8.0ms (0.2%)

Counts
1 → 24
Calls

1 calls:

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

rewrite76.0ms (2.2%)

Algorithm
batch-egg-rewrite
Rules
893×log1p-udef_binary64
471×log1p-expm1-u_binary64
471×expm1-log1p-u_binary64
366×unpow-prod-down_binary64
262×log-prod_binary64
Counts
1 → 51
Calls

1 calls:

75.0ms
(pow.f64 (*.f64 a b) 2)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
067
11247
212507
349027
464097
000
100

simplify167.0ms (4.7%)

Algorithm
egg-herbie
Rules
1022×sqr-pow_binary64
785×associate-*l*_binary64
636×*-commutative_binary64
598×fabs-mul_binary64
578×cube-prod_binary64
Counts
75 → 52
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
07240
116240
235240
388240
4295240
51349240
61413240
71542240
81721240
91930240
102180240
112322240
122724240
133047240
143626240
153983240
164262240
174371240
184402240
194414240
204876240

prune42.0ms (1.2%)

Pruning

10 alts after pruning (9 fresh and 1 done)

PrunedKeptTotal
New46652
Fresh235
Picked011
Done101
Total491059
Error
0.0b
Counts
59 → 10
Alt Table
StatusErrorProgram
1.2b
(neg.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) 3))
26.2b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 a b)) (*.f64 (sqrt.f64 (*.f64 a b)) (*.f64 a b))))
0.3b
(neg.f64 (pow.f64 (*.f64 a b) 2))
0.9b
(neg.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) (*.f64 (cbrt.f64 (*.f64 a b)) (*.f64 a b))))
20.9b
(neg.f64 (*.f64 (pow.f64 (*.f64 a (sqrt.f64 b)) 2) b))
6.0b
(neg.f64 (*.f64 a (*.f64 b (*.f64 a b))))
5.9b
(neg.f64 (*.f64 (pow.f64 (*.f64 b (pow.f64 (cbrt.f64 a) 2)) 2) (pow.f64 (cbrt.f64 a) 2)))
6.4b
(neg.f64 (*.f64 b (*.f64 a (*.f64 a b))))
48.4b
(neg.f64 (*.f64 a (pow.f64 (*.f64 (sqrt.f64 a) b) 2)))
24.1b
(neg.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
Compiler

Compiled 858 to 482 computations (43.8% saved)

localize8.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)
9.3b
(cbrt.f64 (*.f64 a b))

series1.3s (37.1%)

Counts
4 → 96
Calls

4 calls:

598.0ms
(*.f64 (cbrt.f64 (*.f64 a b)) (*.f64 a b))
341.0ms
(pow.f64 (cbrt.f64 (*.f64 a b)) 2)
328.0ms
(cbrt.f64 (*.f64 a b))
38.0ms
(*.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) (*.f64 (cbrt.f64 (*.f64 a b)) (*.f64 a b)))

rewrite50.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
667×log1p-expm1-u_binary64
667×expm1-log1p-u_binary64
395×log-prod_binary64
133×expm1-udef_binary64
133×log1p-udef_binary64
Counts
4 → 91
Calls

4 calls:

48.0ms
(*.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) (*.f64 (cbrt.f64 (*.f64 a b)) (*.f64 a b)))
48.0ms
(*.f64 (cbrt.f64 (*.f64 a b)) (*.f64 a b))
48.0ms
(pow.f64 (cbrt.f64 (*.f64 a b)) 2)
48.0ms
(cbrt.f64 (*.f64 a b))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0937
118131
2177331
3521831
000
100

simplify113.0ms (3.2%)

Algorithm
egg-herbie
Rules
577×associate-*l*_binary64
494×associate-*r*_binary64
439×exp-prod_binary64
365×fma-neg_binary64
338×fma-def_binary64
Counts
187 → 111
Iterations

Useful iterations: 6 (0.0ms)

IterNodesCost
0791592
11971552
23731384
311411048
443711024
54948976
64603904
74943904

prune133.0ms (3.8%)

Pruning

12 alts after pruning (12 fresh and 0 done)

PrunedKeptTotal
New1415146
Fresh178
Picked101
Done101
Total14412156
Error
0.0b
Counts
156 → 12
Alt Table
StatusErrorProgram
1.2b
(neg.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) 3))
26.2b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 a b)) (*.f64 (sqrt.f64 (*.f64 a b)) (*.f64 a b))))
0.6b
(neg.f64 (*.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 2)) (*.f64 (cbrt.f64 (*.f64 a b)) (*.f64 a b))))
48.4b
(neg.f64 (*.f64 a (pow.f64 (*.f64 (sqrt.f64 a) b) 2)))
1.4b
(neg.f64 (*.f64 (pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 a b))) 3) 2) (*.f64 (cbrt.f64 (*.f64 a b)) (*.f64 a b))))
20.9b
(neg.f64 (*.f64 (pow.f64 (*.f64 a (sqrt.f64 b)) 2) b))
6.0b
(neg.f64 (*.f64 a (*.f64 b (*.f64 a b))))
1.0b
(neg.f64 (*.f64 (pow.f64 (*.f64 (cbrt.f64 a) (cbrt.f64 b)) 2) (*.f64 (cbrt.f64 (*.f64 a b)) (*.f64 a b))))
0.3b
(neg.f64 (+.f64 0 (pow.f64 (*.f64 a b) 2)))
6.4b
(neg.f64 (*.f64 b (*.f64 a (*.f64 a b))))
24.1b
(neg.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
1.1b
(neg.f64 (*.f64 (pow.f64 (*.f64 (sqrt.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 4))) (sqrt.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 a b))) 2))) 2) (*.f64 (cbrt.f64 (*.f64 a b)) (*.f64 a b))))
Compiler

Compiled 3185 to 1425 computations (55.3% saved)

localize5.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

prune53.0ms (1.5%)

Pruning

12 alts after pruning (11 fresh and 1 done)

PrunedKeptTotal
New52052
Fresh01111
Picked011
Done000
Total521264
Error
0.0b
Counts
64 → 12
Alt Table
StatusErrorProgram
1.2b
(neg.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) 3))
26.2b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 a b)) (*.f64 (sqrt.f64 (*.f64 a b)) (*.f64 a b))))
0.6b
(neg.f64 (*.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 2)) (*.f64 (cbrt.f64 (*.f64 a b)) (*.f64 a b))))
48.4b
(neg.f64 (*.f64 a (pow.f64 (*.f64 (sqrt.f64 a) b) 2)))
1.4b
(neg.f64 (*.f64 (pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 a b))) 3) 2) (*.f64 (cbrt.f64 (*.f64 a b)) (*.f64 a b))))
20.9b
(neg.f64 (*.f64 (pow.f64 (*.f64 a (sqrt.f64 b)) 2) b))
6.0b
(neg.f64 (*.f64 a (*.f64 b (*.f64 a b))))
1.0b
(neg.f64 (*.f64 (pow.f64 (*.f64 (cbrt.f64 a) (cbrt.f64 b)) 2) (*.f64 (cbrt.f64 (*.f64 a b)) (*.f64 a b))))
0.3b
(neg.f64 (+.f64 0 (pow.f64 (*.f64 a b) 2)))
6.4b
(neg.f64 (*.f64 b (*.f64 a (*.f64 a b))))
24.1b
(neg.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
1.1b
(neg.f64 (*.f64 (pow.f64 (*.f64 (sqrt.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 4))) (sqrt.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 a b))) 2))) 2) (*.f64 (cbrt.f64 (*.f64 a b)) (*.f64 a b))))
Compiler

Compiled 906 to 546 computations (39.7% saved)

regimes314.0ms (8.9%)

Accuracy

Total 0.3b remaining (89.5%)

Threshold costs 0.3b (89.5%)

Counts
54 → 1
Compiler

Compiled 4907 to 2879 computations (41.3% saved)

simplify2.0ms (0.1%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
distribute-neg-in_binary64
+-commutative_binary64
+-lft-identity_binary64
neg-sub0_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
099
1169
2189
3179

end140.0ms (4%)

Remove

(sort a b)

Compiler

Compiled 210 to 136 computations (35.2% saved)

Profiling

Loading profile data...