Details

Time bar (total: 5.4s)

analyze101.0ms (1.9%)

Algorithm
search
Search
TrueOtherFalseIter
0%1.5%98.5%0
0%1.5%98.5%1
0%1.5%98.5%2
0.8%0.8%98.5%3
0.8%0.8%98.5%4
1.2%0.4%98.5%5
1.2%0.4%98.5%6
1.4%0.2%98.5%7
1.4%0.2%98.5%8
1.4%0.1%98.5%9
1.4%0.1%98.5%10
1.5%0%98.5%11
1.5%0%98.5%12
1.5%0%98.5%13
1.5%0%98.5%14
Compiler

Compiled 27 to 21 computations (22.2% saved)

sample2.1s (38.5%)

Results
1.7s8256×body128valid
Compiler

Compiled 66 to 52 computations (21.2% saved)

simplify24.0ms (0.4%)

Algorithm
egg-herbie
Rules
175×fma-neg_binary32
156×fma-def_binary32
46×cancel-sign-sub-inv_binary32
46×sub-neg_binary32
29×distribute-rgt-in_binary32
Counts
1 → 2
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01014
12411
23811
36411
48311
511011
614411
719411
824411
929111
1031911
1136211
1240111
1347811
1449111
1544311

prune4.0ms (0.1%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New112
Fresh101
Picked000
Done000
Total213
Error
0.2b
Counts
3 → 1
Alt Table
StatusErrorProgram
0.2b
(*.f32 s (neg.f32 (log1p.f32 (*.f32 u -4))))
Compiler

Compiled 37 to 29 computations (21.6% saved)

localize21.0ms (0.4%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(log1p.f32 (*.f32 u -4))
0.2b
(*.f32 s (neg.f32 (log1p.f32 (*.f32 u -4))))

series294.0ms (5.4%)

Counts
2 → 36
Calls

2 calls:

291.0ms
(*.f32 s (neg.f32 (log1p.f32 (*.f32 u -4))))
3.0ms
(log1p.f32 (*.f32 u -4))

rewrite71.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
591×expm1-log1p-u_binary32
590×log1p-expm1-u_binary32
334×log-prod_binary32
311×fma-def_binary32
143×prod-diff_binary32
Counts
2 → 54
Calls

2 calls:

70.0ms
(log1p.f32 (*.f32 u -4))
70.0ms
(*.f32 s (neg.f32 (log1p.f32 (*.f32 u -4))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0817
116215
2158315
3485315
4506215
000
100

simplify80.0ms (1.5%)

Algorithm
egg-herbie
Rules
836×fma-neg_binary32
530×fma-def_binary32
369×sub-neg_binary32
321×unsub-neg_binary32
219×associate-+l+_binary32
Counts
90 → 103
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
0106726
1335675
2998632
32998621
44495618
54993618
64943618

prune63.0ms (1.2%)

Pruning

8 alts after pruning (7 fresh and 1 done)

PrunedKeptTotal
New967103
Fresh000
Picked011
Done000
Total968104
Error
0.1b
Counts
104 → 8
Alt Table
StatusErrorProgram
3.9b
(+.f32 (*.f32 8 (*.f32 s (pow.f32 u 2))) (*.f32 4 (*.f32 s u)))
0.2b
(*.f32 s (neg.f32 (log1p.f32 (*.f32 u -4))))
1.7b
(*.f32 s (neg.f32 (neg.f32 (+.f32 (*.f32 64 (pow.f32 u 4)) (+.f32 (*.f32 64/3 (pow.f32 u 3)) (+.f32 (*.f32 8 (pow.f32 u 2)) (*.f32 4 u)))))))
11.7b
(*.f32 s (neg.f32 (log.f32 (fma.f32 u -4 1))))
0.8b
(*.f32 s (neg.f32 (pow.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))) 3)))
13.4b
(*.f32 s (neg.f32 (+.f32 (log.f32 (*.f32 (cbrt.f32 (fma.f32 u -4 1)) (cbrt.f32 (fma.f32 u -4 1)))) (log.f32 (cbrt.f32 (fma.f32 u -4 1))))))
1.9b
(+.f32 (*.f32 (*.f32 s u) (+.f32 4 (*.f32 u 8))) (*.f32 s (*.f32 (pow.f32 u 3) (-.f32 64/3 (*.f32 -64 u)))))
1.9b
(+.f32 (*.f32 8 (*.f32 s (pow.f32 u 2))) (+.f32 (*.f32 64/3 (*.f32 s (pow.f32 u 3))) (+.f32 (*.f32 64 (*.f32 s (pow.f32 u 4))) (*.f32 4 (*.f32 s u)))))
Compiler

Compiled 1777 to 1344 computations (24.4% saved)

localize26.0ms (0.5%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(log1p.f32 (*.f32 u -4))
0.1b
(cbrt.f32 (log1p.f32 (*.f32 u -4)))
0.2b
(*.f32 s (neg.f32 (pow.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))) 3)))
0.7b
(pow.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))) 3)

series442.0ms (8.2%)

Counts
3 → 48
Calls

3 calls:

382.0ms
(*.f32 s (neg.f32 (pow.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))) 3)))
42.0ms
(pow.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))) 3)
18.0ms
(cbrt.f32 (log1p.f32 (*.f32 u -4)))

rewrite57.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
759×expm1-log1p-u_binary32
758×log1p-expm1-u_binary32
155×log1p-udef_binary32
143×prod-diff_binary32
99×add-sqr-sqrt_binary32
Counts
3 → 75
Calls

3 calls:

56.0ms
(cbrt.f32 (log1p.f32 (*.f32 u -4)))
56.0ms
(*.f32 s (neg.f32 (pow.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))) 3)))
56.0ms
(pow.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))) 3)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01125
121023
2202623
3494723
000
100

simplify164.0ms (3%)

Algorithm
egg-herbie
Rules
372×fma-def_binary32
275×associate-+r+_binary32
227×+-commutative_binary32
224×sub-neg_binary32
222×associate-/r*_binary32
Counts
123 → 148
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
03052700
110292419
238202383
349142305
449852305
549372305

prune238.0ms (4.4%)

Pruning

8 alts after pruning (6 fresh and 2 done)

PrunedKeptTotal
New2022204
Fresh246
Picked011
Done011
Total2048212
Error
0.1b
Counts
212 → 8
Alt Table
StatusErrorProgram
0.2b
(*.f32 s (neg.f32 (log1p.f32 (*.f32 u -4))))
1.8b
(fma.f32 8 (*.f32 u (*.f32 u s)) (fma.f32 64/3 (*.f32 (pow.f32 u 3) s) (fma.f32 4 (*.f32 u s) (*.f32 64 (*.f32 s (pow.f32 u 4))))))
1.7b
(*.f32 s (neg.f32 (neg.f32 (+.f32 (*.f32 64 (pow.f32 u 4)) (+.f32 (*.f32 64/3 (pow.f32 u 3)) (+.f32 (*.f32 8 (pow.f32 u 2)) (*.f32 4 u)))))))
3.9b
(fma.f32 4 (*.f32 u s) (*.f32 8 (*.f32 u (*.f32 u s))))
11.7b
(*.f32 s (neg.f32 (log.f32 (fma.f32 u -4 1))))
0.8b
(*.f32 s (neg.f32 (pow.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))) 3)))
13.4b
(*.f32 s (neg.f32 (+.f32 (log.f32 (*.f32 (cbrt.f32 (fma.f32 u -4 1)) (cbrt.f32 (fma.f32 u -4 1)))) (log.f32 (cbrt.f32 (fma.f32 u -4 1))))))
1.9b
(+.f32 (*.f32 (*.f32 s u) (+.f32 4 (*.f32 u 8))) (*.f32 s (*.f32 (pow.f32 u 3) (-.f32 64/3 (*.f32 -64 u)))))
Compiler

Compiled 5662 to 4506 computations (20.4% saved)

localize63.0ms (1.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(+.f32 (*.f32 64 (pow.f32 u 4)) (+.f32 (*.f32 64/3 (pow.f32 u 3)) (+.f32 (*.f32 8 (pow.f32 u 2)) (*.f32 4 u))))
0.1b
(+.f32 (*.f32 64/3 (pow.f32 u 3)) (+.f32 (*.f32 8 (pow.f32 u 2)) (*.f32 4 u)))
0.3b
(*.f32 s (neg.f32 (neg.f32 (+.f32 (*.f32 64 (pow.f32 u 4)) (+.f32 (*.f32 64/3 (pow.f32 u 3)) (+.f32 (*.f32 8 (pow.f32 u 2)) (*.f32 4 u)))))))
0.5b
(*.f32 64/3 (pow.f32 u 3))

series56.0ms (1%)

Counts
4 → 39
Calls

4 calls:

45.0ms
(*.f32 s (neg.f32 (neg.f32 (+.f32 (*.f32 64 (pow.f32 u 4)) (+.f32 (*.f32 64/3 (pow.f32 u 3)) (+.f32 (*.f32 8 (pow.f32 u 2)) (*.f32 4 u)))))))
4.0ms
(+.f32 (*.f32 64 (pow.f32 u 4)) (+.f32 (*.f32 64/3 (pow.f32 u 3)) (+.f32 (*.f32 8 (pow.f32 u 2)) (*.f32 4 u))))
3.0ms
(+.f32 (*.f32 64/3 (pow.f32 u 3)) (+.f32 (*.f32 8 (pow.f32 u 2)) (*.f32 4 u)))
3.0ms
(*.f32 64/3 (pow.f32 u 3))

rewrite86.0ms (1.6%)

Algorithm
batch-egg-rewrite
Rules
361×prod-diff_binary32
212×log1p-expm1-u_binary32
212×expm1-log1p-u_binary32
210×add-sqr-sqrt_binary32
203×add-cbrt-cube_binary32
Counts
4 → 107
Calls

4 calls:

83.0ms
(+.f32 (*.f32 64 (pow.f32 u 4)) (+.f32 (*.f32 64/3 (pow.f32 u 3)) (+.f32 (*.f32 8 (pow.f32 u 2)) (*.f32 4 u))))
83.0ms
(+.f32 (*.f32 64/3 (pow.f32 u 3)) (+.f32 (*.f32 8 (pow.f32 u 2)) (*.f32 4 u)))
83.0ms
(*.f32 s (neg.f32 (neg.f32 (+.f32 (*.f32 64 (pow.f32 u 4)) (+.f32 (*.f32 64/3 (pow.f32 u 3)) (+.f32 (*.f32 8 (pow.f32 u 2)) (*.f32 4 u)))))))
83.0ms
(*.f32 64/3 (pow.f32 u 3))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02278
147078
2441978
3484378
000
100

simplify180.0ms (3.3%)

Algorithm
egg-herbie
Rules
977×fma-def_binary32
888×*-commutative_binary32
786×unswap-sqr_binary32
531×distribute-rgt-out_binary32
497×associate-*l*_binary32
Counts
146 → 137
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
042765
1117765
2289718
3785639
42063639
52944639
63378639
73478639
83607639
93775639
103621639
114883639
124787639
134719639
144972639
154905639

prune163.0ms (3%)

Pruning

11 alts after pruning (9 fresh and 2 done)

PrunedKeptTotal
New1325137
Fresh145
Picked101
Done022
Total13411145
Error
0.0b
Counts
145 → 11
Alt Table
StatusErrorProgram
2.2b
(pow.f32 (cbrt.f32 (*.f32 s (fma.f32 64 (pow.f32 u 4) (fma.f32 64/3 (pow.f32 u 3) (fma.f32 u 4 (*.f32 8 (*.f32 u u))))))) 3)
13.4b
(*.f32 s (neg.f32 (+.f32 (log.f32 (*.f32 (cbrt.f32 (fma.f32 u -4 1)) (cbrt.f32 (fma.f32 u -4 1)))) (log.f32 (cbrt.f32 (fma.f32 u -4 1))))))
1.9b
(*.f32 s (neg.f32 (neg.f32 (+.f32 (*.f32 64 (pow.f32 u 4)) (*.f32 (+.f32 (*.f32 262144/27 (pow.f32 (pow.f32 u 3) 3)) (pow.f32 (fma.f32 u 4 (*.f32 8 (*.f32 u u))) 3)) (/.f32 1 (+.f32 (pow.f32 (*.f32 64/3 (pow.f32 u 3)) 2) (-.f32 (pow.f32 (fma.f32 u 4 (*.f32 8 (*.f32 u u))) 2) (*.f32 (*.f32 64/3 (pow.f32 u 3)) (fma.f32 u 4 (*.f32 8 (*.f32 u u))))))))))))
1.9b
(+.f32 (*.f32 (*.f32 s u) (+.f32 4 (*.f32 u 8))) (*.f32 s (*.f32 (pow.f32 u 3) (-.f32 64/3 (*.f32 -64 u)))))
3.9b
(fma.f32 4 (*.f32 u s) (*.f32 8 (*.f32 u (*.f32 u s))))
11.7b
(*.f32 s (neg.f32 (log.f32 (fma.f32 u -4 1))))
0.8b
(*.f32 s (neg.f32 (pow.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))) 3)))
2.0b
(*.f32 s (neg.f32 (neg.f32 (+.f32 (*.f32 64 (pow.f32 u 4)) (pow.f32 (sqrt.f32 (fma.f32 64/3 (pow.f32 u 3) (fma.f32 u 4 (*.f32 8 (*.f32 u u))))) 2)))))
1.9b
(pow.f32 (sqrt.f32 (*.f32 s (fma.f32 64 (pow.f32 u 4) (fma.f32 64/3 (pow.f32 u 3) (fma.f32 u 4 (*.f32 8 (*.f32 u u))))))) 2)
20.2b
(pow.f32 (pow.f32 (*.f32 s (fma.f32 64 (pow.f32 u 4) (fma.f32 64/3 (pow.f32 u 3) (fma.f32 u 4 (*.f32 8 (*.f32 u u)))))) 3) 1/3)
0.2b
(*.f32 s (neg.f32 (log1p.f32 (*.f32 u -4))))
Compiler

Compiled 4684 to 3430 computations (26.8% saved)

localize50.0ms (0.9%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f32 s (*.f32 (pow.f32 u 3) (-.f32 64/3 (*.f32 -64 u))))
0.3b
(-.f32 64/3 (*.f32 -64 u))
0.3b
(*.f32 (pow.f32 u 3) (-.f32 64/3 (*.f32 -64 u)))
0.4b
(*.f32 (*.f32 s u) (+.f32 4 (*.f32 u 8)))

series36.0ms (0.7%)

Counts
4 → 72
Calls

4 calls:

20.0ms
(*.f32 s (*.f32 (pow.f32 u 3) (-.f32 64/3 (*.f32 -64 u))))
10.0ms
(*.f32 (*.f32 s u) (+.f32 4 (*.f32 u 8)))
4.0ms
(*.f32 (pow.f32 u 3) (-.f32 64/3 (*.f32 -64 u)))
2.0ms
(-.f32 64/3 (*.f32 -64 u))

rewrite81.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
542×prod-diff_binary32
178×add-sqr-sqrt_binary32
175×log1p-expm1-u_binary32
175×expm1-log1p-u_binary32
172×add-log-exp_binary32
Counts
4 → 96
Calls

4 calls:

79.0ms
(*.f32 s (*.f32 (pow.f32 u 3) (-.f32 64/3 (*.f32 -64 u))))
79.0ms
(-.f32 64/3 (*.f32 -64 u))
79.0ms
(*.f32 (pow.f32 u 3) (-.f32 64/3 (*.f32 -64 u)))
79.0ms
(*.f32 (*.f32 s u) (+.f32 4 (*.f32 u 8)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01749
138047
2442047
3530247
000
100

simplify122.0ms (2.3%)

Algorithm
egg-herbie
Rules
1627×fma-def_binary32
966×*-commutative_binary32
786×unswap-sqr_binary32
643×associate-*l*_binary32
336×associate-*r*_binary32
Counts
168 → 121
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
038927
1105846
2230756
3537756
41523756
53354756
63306756
73397756
83526756
93694756
103084756
115102756

prune144.0ms (2.7%)

Pruning

10 alts after pruning (7 fresh and 3 done)

PrunedKeptTotal
New1192121
Fresh358
Picked011
Done022
Total12210132
Error
0.0b
Counts
132 → 10
Alt Table
StatusErrorProgram
2.2b
(pow.f32 (cbrt.f32 (*.f32 s (fma.f32 64 (pow.f32 u 4) (fma.f32 64/3 (pow.f32 u 3) (fma.f32 u 4 (*.f32 8 (*.f32 u u))))))) 3)
13.4b
(*.f32 s (neg.f32 (+.f32 (log.f32 (*.f32 (cbrt.f32 (fma.f32 u -4 1)) (cbrt.f32 (fma.f32 u -4 1)))) (log.f32 (cbrt.f32 (fma.f32 u -4 1))))))
1.9b
(*.f32 s (neg.f32 (neg.f32 (+.f32 (*.f32 64 (pow.f32 u 4)) (*.f32 (+.f32 (*.f32 262144/27 (pow.f32 (pow.f32 u 3) 3)) (pow.f32 (fma.f32 u 4 (*.f32 8 (*.f32 u u))) 3)) (/.f32 1 (+.f32 (pow.f32 (*.f32 64/3 (pow.f32 u 3)) 2) (-.f32 (pow.f32 (fma.f32 u 4 (*.f32 8 (*.f32 u u))) 2) (*.f32 (*.f32 64/3 (pow.f32 u 3)) (fma.f32 u 4 (*.f32 8 (*.f32 u u))))))))))))
1.9b
(+.f32 (*.f32 (*.f32 s u) (+.f32 4 (*.f32 u 8))) (*.f32 s (*.f32 (pow.f32 u 3) (-.f32 64/3 (*.f32 -64 u)))))
1.7b
(+.f32 (*.f32 s (+.f32 (*.f32 8 (pow.f32 u 2)) (*.f32 4 u))) (*.f32 s (*.f32 (pow.f32 u 3) (-.f32 64/3 (*.f32 -64 u)))))
11.7b
(*.f32 s (neg.f32 (log.f32 (fma.f32 u -4 1))))
0.8b
(*.f32 s (neg.f32 (pow.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))) 3)))
1.9b
(pow.f32 (sqrt.f32 (*.f32 s (fma.f32 64 (pow.f32 u 4) (fma.f32 64/3 (pow.f32 u 3) (fma.f32 u 4 (*.f32 8 (*.f32 u u))))))) 2)
1.8b
(+.f32 (/.f32 (*.f32 (+.f32 64 (*.f32 (pow.f32 u 3) 512)) (*.f32 s u)) (+.f32 16 (-.f32 (*.f32 (*.f32 u u) 64) (*.f32 32 u)))) (*.f32 s (*.f32 (pow.f32 u 3) (-.f32 64/3 (*.f32 -64 u)))))
0.2b
(*.f32 s (neg.f32 (log1p.f32 (*.f32 u -4))))
Compiler

Compiled 3321 to 2297 computations (30.8% saved)

regimes537.0ms (9.9%)

Accuracy

Total 0.2b remaining (77.6%)

Threshold costs 0.2b (77.6%)

Counts
73 → 1
Compiler

Compiled 11132 to 8295 computations (25.5% saved)

simplify3.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0811
11611
22311
32911
43211
53311
63311

end222.0ms (4.1%)

Compiler

Compiled 274 to 211 computations (23% saved)

Profiling

Loading profile data...