Details

Time bar (total: 5.2s)

analyze118.0ms (2.3%)

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

Compiled 26 to 19 computations (26.9% saved)

sample1.8s (35%)

Results
1.6s8256×body128valid
Compiler

Compiled 63 to 46 computations (27% saved)

simplify39.0ms (0.8%)

Algorithm
egg-herbie
Rules
566×fma-def_binary32
230×fma-neg_binary32
88×cancel-sign-sub-inv_binary32
79×distribute-rgt-in_binary32
67×distribute-lft-in_binary32
Counts
1 → 2
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0914
12213
24313
37713
49313
513113
617013
721713
834013
947113
1048113
1155713
1256913
1367613
1469913
1570013
1664513

prune4.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
0.3b
Counts
3 → 2
Alt Table
StatusErrorProgram
0.3b
(*.f32 (*.f32 alpha (neg.f32 alpha)) (log1p.f32 (neg.f32 u0)))
14.4b
(*.f32 (*.f32 (neg.f32 alpha) alpha) (log.f32 (-.f32 1 u0)))
Compiler

Compiled 61 to 42 computations (31.1% saved)

localize22.0ms (0.4%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(log1p.f32 (neg.f32 u0))
0.3b
(*.f32 (*.f32 alpha (neg.f32 alpha)) (log1p.f32 (neg.f32 u0)))

series241.0ms (4.6%)

Counts
2 → 36
Calls

2 calls:

237.0ms
(*.f32 (*.f32 alpha (neg.f32 alpha)) (log1p.f32 (neg.f32 u0)))
3.0ms
(log1p.f32 (neg.f32 u0))

rewrite125.0ms (2.4%)

Algorithm
egg-rewrite
Rules
55×egg
35×egg
Counts
2 → 90
Calls

2 calls:

76.0ms
(log1p.f32 (neg.f32 u0))
47.0ms
(*.f32 (*.f32 alpha (neg.f32 alpha)) (log1p.f32 (neg.f32 u0)))
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0813
11639
214039
352659
045
1803
26993
348853
451233

simplify74.0ms (1.4%)

Algorithm
egg-herbie
Rules
960×fma-neg_binary32
468×fma-def_binary32
439×cancel-sign-sub-inv_binary32
366×times-frac_binary32
263×sub-neg_binary32
Counts
126 → 138
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
094752
1284698
2892650
32908644
44824644
55251644

prune67.0ms (1.3%)

Pruning

10 alts after pruning (9 fresh and 1 done)

PrunedKeptTotal
New1308138
Fresh011
Picked011
Done000
Total13010140
Error
0.1b
Counts
140 → 10
Alt Table
StatusErrorProgram
1.9b
(+.f32 (*.f32 1/3 (*.f32 (pow.f32 u0 3) (pow.f32 alpha 2))) (+.f32 (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))) (+.f32 (*.f32 1/4 (*.f32 (pow.f32 u0 4) (pow.f32 alpha 2))) (*.f32 u0 (pow.f32 alpha 2)))))
14.4b
(*.f32 (*.f32 (neg.f32 alpha) alpha) (log.f32 (-.f32 1 u0)))
2.4b
(*.f32 (*.f32 alpha alpha) (fma.f32 1/3 (pow.f32 u0 3) (fma.f32 1/2 (*.f32 u0 u0) u0)))
3.6b
(*.f32 (*.f32 alpha (neg.f32 alpha)) (-.f32 (log.f32 (-.f32 1 (*.f32 u0 u0))) (log1p.f32 u0)))
3.8b
(*.f32 alpha (*.f32 alpha (fma.f32 1/2 (*.f32 u0 u0) u0)))
7.8b
(*.f32 u0 (pow.f32 alpha 2))
8.6b
(*.f32 (sqrt.f32 (log1p.f32 u0)) (*.f32 (sqrt.f32 (log1p.f32 u0)) (*.f32 alpha alpha)))
8.6b
(*.f32 (sqrt.f32 alpha) (*.f32 (sqrt.f32 alpha) (*.f32 alpha (log1p.f32 u0))))
8.6b
(*.f32 (pow.f32 (cbrt.f32 (log1p.f32 u0)) 2) (*.f32 (cbrt.f32 (log1p.f32 u0)) (*.f32 alpha alpha)))
0.3b
(*.f32 (*.f32 alpha (neg.f32 alpha)) (log1p.f32 (neg.f32 u0)))
Compiler

Compiled 2294 to 1139 computations (50.3% saved)

localize76.0ms (1.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f32 (pow.f32 u0 3) (pow.f32 alpha 2))
0.3b
(*.f32 (pow.f32 u0 4) (pow.f32 alpha 2))
0.3b
(*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))
0.4b
(*.f32 1/3 (*.f32 (pow.f32 u0 3) (pow.f32 alpha 2)))

series63.0ms (1.2%)

Counts
4 → 0
Calls

4 calls:

20.0ms
(*.f32 1/3 (*.f32 (pow.f32 u0 3) (pow.f32 alpha 2)))
17.0ms
(*.f32 (pow.f32 u0 3) (pow.f32 alpha 2))
15.0ms
(*.f32 (pow.f32 u0 4) (pow.f32 alpha 2))
11.0ms
(*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))

rewrite210.0ms (4%)

Algorithm
egg-rewrite
Rules
54×egg
38×egg
36×egg
32×egg
Counts
4 → 160
Calls

4 calls:

74.0ms
(*.f32 (pow.f32 u0 4) (pow.f32 alpha 2))
46.0ms
(*.f32 1/3 (*.f32 (pow.f32 u0 3) (pow.f32 alpha 2)))
45.0ms
(*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))
42.0ms
(*.f32 (pow.f32 u0 3) (pow.f32 alpha 2))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01013
120813
2206113
3488013
077
11447
214057
351977
0810
116410
2155710
3499110
4494510
0810
116510
2159810
3494010

simplify10.0ms (0.2%)

Algorithm
egg-herbie
Counts
160 → 156
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
000
100

prune197.0ms (3.8%)

Pruning

10 alts after pruning (8 fresh and 2 done)

PrunedKeptTotal
New1560156
Fresh088
Picked011
Done011
Total15610166
Error
0.1b
Counts
166 → 10
Alt Table
StatusErrorProgram
1.9b
(+.f32 (*.f32 1/3 (*.f32 (pow.f32 u0 3) (pow.f32 alpha 2))) (+.f32 (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))) (+.f32 (*.f32 1/4 (*.f32 (pow.f32 u0 4) (pow.f32 alpha 2))) (*.f32 u0 (pow.f32 alpha 2)))))
14.4b
(*.f32 (*.f32 (neg.f32 alpha) alpha) (log.f32 (-.f32 1 u0)))
2.4b
(*.f32 (*.f32 alpha alpha) (fma.f32 1/3 (pow.f32 u0 3) (fma.f32 1/2 (*.f32 u0 u0) u0)))
3.6b
(*.f32 (*.f32 alpha (neg.f32 alpha)) (-.f32 (log.f32 (-.f32 1 (*.f32 u0 u0))) (log1p.f32 u0)))
3.8b
(*.f32 alpha (*.f32 alpha (fma.f32 1/2 (*.f32 u0 u0) u0)))
7.8b
(*.f32 u0 (pow.f32 alpha 2))
8.6b
(*.f32 (sqrt.f32 (log1p.f32 u0)) (*.f32 (sqrt.f32 (log1p.f32 u0)) (*.f32 alpha alpha)))
8.6b
(*.f32 (sqrt.f32 alpha) (*.f32 (sqrt.f32 alpha) (*.f32 alpha (log1p.f32 u0))))
8.6b
(*.f32 (pow.f32 (cbrt.f32 (log1p.f32 u0)) 2) (*.f32 (cbrt.f32 (log1p.f32 u0)) (*.f32 alpha alpha)))
0.3b
(*.f32 (*.f32 alpha (neg.f32 alpha)) (log1p.f32 (neg.f32 u0)))
Compiler

Compiled 6296 to 4546 computations (27.8% saved)

localize34.0ms (0.6%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(fma.f32 1/2 (*.f32 u0 u0) u0)
0.1b
(fma.f32 1/3 (pow.f32 u0 3) (fma.f32 1/2 (*.f32 u0 u0) u0))
0.3b
(*.f32 (*.f32 alpha alpha) (fma.f32 1/3 (pow.f32 u0 3) (fma.f32 1/2 (*.f32 u0 u0) u0)))

series36.0ms (0.7%)

Counts
3 → 48
Calls

3 calls:

30.0ms
(*.f32 (*.f32 alpha alpha) (fma.f32 1/3 (pow.f32 u0 3) (fma.f32 1/2 (*.f32 u0 u0) u0)))
3.0ms
(fma.f32 1/3 (pow.f32 u0 3) (fma.f32 1/2 (*.f32 u0 u0) u0))
2.0ms
(fma.f32 1/2 (*.f32 u0 u0) u0)

rewrite178.0ms (3.4%)

Algorithm
egg-rewrite
Rules
52×egg
40×egg
24×egg
Counts
3 → 116
Calls

3 calls:

80.0ms
(fma.f32 1/2 (*.f32 u0 u0) u0)
52.0ms
(*.f32 (*.f32 alpha alpha) (fma.f32 1/3 (pow.f32 u0 3) (fma.f32 1/2 (*.f32 u0 u0) u0)))
44.0ms
(fma.f32 1/3 (pow.f32 u0 3) (fma.f32 1/2 (*.f32 u0 u0) u0))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01221
124721
2252421
3483821
0915
118715
2184915
3482915
058
11018
210528
346728
459798

simplify167.0ms (3.2%)

Algorithm
egg-herbie
Rules
813×associate-*l*_binary32
655×distribute-rgt-out_binary32
609×distribute-lft-out_binary32
537×associate-*r*_binary32
438×fma-def_binary32
Counts
164 → 137
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
024779
161741
2172689
3559609
42148609
54088609
64240609
74567609
84742609
94947609
104975609
114922609

prune128.0ms (2.4%)

Pruning

9 alts after pruning (7 fresh and 2 done)

PrunedKeptTotal
New1325137
Fresh527
Picked101
Done022
Total1389147
Error
0.0b
Counts
147 → 9
Alt Table
StatusErrorProgram
2.5b
(*.f32 alpha (*.f32 alpha (fma.f32 1/3 (pow.f32 u0 3) (fma.f32 1/2 (*.f32 u0 u0) u0))))
3.6b
(*.f32 (*.f32 alpha (neg.f32 alpha)) (-.f32 (log.f32 (-.f32 1 (*.f32 u0 u0))) (log1p.f32 u0)))
1.9b
(+.f32 (*.f32 1/3 (*.f32 (pow.f32 u0 3) (pow.f32 alpha 2))) (+.f32 (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))) (+.f32 (*.f32 1/4 (*.f32 (pow.f32 u0 4) (pow.f32 alpha 2))) (*.f32 u0 (pow.f32 alpha 2)))))
14.4b
(*.f32 (*.f32 (neg.f32 alpha) alpha) (log.f32 (-.f32 1 u0)))
2.6b
(*.f32 (*.f32 alpha alpha) (fma.f32 1/3 (pow.f32 u0 3) (fma.f32 (sqrt.f32 u0) (sqrt.f32 u0) (*.f32 1/2 (*.f32 u0 u0)))))
3.7b
(*.f32 u0 (*.f32 alpha (*.f32 alpha (fma.f32 u0 1/2 1))))
2.6b
(*.f32 (sqrt.f32 alpha) (*.f32 (sqrt.f32 alpha) (*.f32 alpha (fma.f32 1/3 (pow.f32 u0 3) (fma.f32 1/2 (*.f32 u0 u0) u0)))))
2.8b
(*.f32 (pow.f32 (cbrt.f32 (fma.f32 1/3 (pow.f32 u0 3) (fma.f32 1/2 (*.f32 u0 u0) u0))) 2) (*.f32 (cbrt.f32 (fma.f32 1/3 (pow.f32 u0 3) (fma.f32 1/2 (*.f32 u0 u0) u0))) (*.f32 alpha alpha)))
0.3b
(*.f32 (*.f32 alpha (neg.f32 alpha)) (log1p.f32 (neg.f32 u0)))
Compiler

Compiled 3060 to 1753 computations (42.7% saved)

localize33.0ms (0.6%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(fma.f32 1/2 (*.f32 u0 u0) u0)
0.1b
(fma.f32 1/3 (pow.f32 u0 3) (fma.f32 1/2 (*.f32 u0 u0) u0))
0.2b
(*.f32 alpha (*.f32 alpha (fma.f32 1/3 (pow.f32 u0 3) (fma.f32 1/2 (*.f32 u0 u0) u0))))
0.3b
(*.f32 alpha (fma.f32 1/3 (pow.f32 u0 3) (fma.f32 1/2 (*.f32 u0 u0) u0)))

series56.0ms (1.1%)

Counts
2 → 48
Calls

2 calls:

29.0ms
(*.f32 alpha (fma.f32 1/3 (pow.f32 u0 3) (fma.f32 1/2 (*.f32 u0 u0) u0)))
27.0ms
(*.f32 alpha (*.f32 alpha (fma.f32 1/3 (pow.f32 u0 3) (fma.f32 1/2 (*.f32 u0 u0) u0))))

rewrite106.0ms (2%)

Algorithm
egg-rewrite
Rules
43×egg
31×egg
Counts
2 → 74
Calls

2 calls:

52.0ms
(*.f32 alpha (*.f32 alpha (fma.f32 1/3 (pow.f32 u0 3) (fma.f32 1/2 (*.f32 u0 u0) u0))))
51.0ms
(*.f32 alpha (fma.f32 1/3 (pow.f32 u0 3) (fma.f32 1/2 (*.f32 u0 u0) u0)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01118
122618
2231418
3549518
01221
124721
2258421
3495821

simplify220.0ms (4.2%)

Algorithm
egg-herbie
Rules
1980×fma-def_binary32
643×sqr-pow_binary32
534×*-commutative_binary32
433×unswap-sqr_binary32
338×cube-prod_binary32
Counts
122 → 94
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
032957
184934
2233854
3666738
41353738
52270738
62258738
72351738
82428738
92594738
102820738
112984738
123171738
133426738
143751738
154151738
164618738
174762738
184893738
194880738

prune137.0ms (2.6%)

Pruning

9 alts after pruning (6 fresh and 3 done)

PrunedKeptTotal
New1791180
Fresh156
Picked011
Done022
Total1809189
Error
0.0b
Counts
189 → 9
Alt Table
StatusErrorProgram
2.5b
(*.f32 alpha (*.f32 alpha (fma.f32 1/3 (pow.f32 u0 3) (fma.f32 1/2 (*.f32 u0 u0) u0))))
3.6b
(*.f32 (*.f32 alpha (neg.f32 alpha)) (-.f32 (log.f32 (-.f32 1 (*.f32 u0 u0))) (log1p.f32 u0)))
1.9b
(+.f32 (*.f32 1/3 (*.f32 (pow.f32 u0 3) (pow.f32 alpha 2))) (+.f32 (*.f32 1/2 (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))) (+.f32 (*.f32 1/4 (*.f32 (pow.f32 u0 4) (pow.f32 alpha 2))) (*.f32 u0 (pow.f32 alpha 2)))))
14.4b
(*.f32 (*.f32 (neg.f32 alpha) alpha) (log.f32 (-.f32 1 u0)))
2.6b
(*.f32 (*.f32 alpha alpha) (fma.f32 1/3 (pow.f32 u0 3) (fma.f32 (sqrt.f32 u0) (sqrt.f32 u0) (*.f32 1/2 (*.f32 u0 u0)))))
3.7b
(*.f32 u0 (*.f32 alpha (*.f32 alpha (fma.f32 u0 1/2 1))))
2.6b
(*.f32 (sqrt.f32 alpha) (*.f32 (sqrt.f32 alpha) (*.f32 alpha (fma.f32 1/3 (pow.f32 u0 3) (fma.f32 1/2 (*.f32 u0 u0) u0)))))
2.7b
(*.f32 (*.f32 (*.f32 alpha (fma.f32 1/3 (pow.f32 u0 3) (fma.f32 1/2 (*.f32 u0 u0) u0))) (pow.f32 (cbrt.f32 alpha) 2)) (cbrt.f32 alpha))
0.3b
(*.f32 (*.f32 alpha (neg.f32 alpha)) (log1p.f32 (neg.f32 u0)))
Compiler

Compiled 3774 to 2272 computations (39.8% saved)

regimes912.0ms (17.4%)

Accuracy

Total 0.3b remaining (76.7%)

Threshold costs 0.3b (76.7%)

Counts
150 → 1
Compiler

Compiled 17984 to 12164 computations (32.4% saved)

simplify4.0ms (0.1%)

Algorithm
egg-herbie
Rules
*-commutative_binary32
neg-sub0_binary32
neg-mul-1_binary32
+-commutative_binary32
sub-neg_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0813
11813
22813
33613
44113
54413
64513
74513

end155.0ms (3%)

Compiler

Compiled 188 to 129 computations (31.4% saved)

Profiling

Loading profile data...