Details

Time bar (total: 5.2s)

analyze111.0ms (2.1%)

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 (41.1%)

Results
1.6s8256×body128valid
Compiler

Compiled 66 to 52 computations (21.2% saved)

simplify22.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

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
0.2b
Counts
3 → 2
Alt Table
StatusErrorProgram
0.2b
(*.f32 s (neg.f32 (log1p.f32 (*.f32 u -4))))
11.9b
(*.f32 s (log.f32 (/.f32 1 (-.f32 1 (*.f32 4 u)))))
Compiler

Compiled 61 to 49 computations (19.7% 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))))

series283.0ms (5.4%)

Counts
2 → 36
Calls

2 calls:

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

rewrite73.0ms (1.4%)

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 → 56
Calls

2 calls:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0817
116215
2158315
3485315
4506215
000
100

simplify83.0ms (1.6%)

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
92 → 105
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
0106726
1335675
2998632
32998621
44495618
54993618
64943618

prune70.0ms (1.3%)

Pruning

9 alts after pruning (8 fresh and 1 done)

PrunedKeptTotal
New978105
Fresh101
Picked011
Done000
Total989107
Error
0.0b
Counts
107 → 9
Alt Table
StatusErrorProgram
0.7b
(*.f32 s (neg.f32 (pow.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))) 3)))
0.2b
(*.f32 s (neg.f32 (log1p.f32 (*.f32 u -4))))
1.8b
(*.f32 s (neg.f32 (fma.f32 u (+.f32 -4 (*.f32 u -8)) (*.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)))))
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)))))
2.4b
(*.f32 s (neg.f32 (neg.f32 (+.f32 (*.f32 64/3 (pow.f32 u 3)) (+.f32 (*.f32 8 (pow.f32 u 2)) (*.f32 4 u))))))
11.9b
(*.f32 s (neg.f32 (+.f32 (log.f32 (sqrt.f32 (fma.f32 u -4 1))) (log.f32 (sqrt.f32 (fma.f32 u -4 1))))))
7.9b
(*.f32 s (*.f32 4 u))
11.2b
(*.f32 s (neg.f32 (log.f32 (fma.f32 u -4 1))))
Compiler

Compiled 1792 to 1353 computations (24.5% saved)

localize29.0ms (0.6%)

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)

series318.0ms (6.1%)

Counts
3 → 48
Calls

3 calls:

257.0ms
(*.f32 s (neg.f32 (pow.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))) 3)))
32.0ms
(cbrt.f32 (log1p.f32 (*.f32 u -4)))
28.0ms
(pow.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))) 3)

rewrite46.0ms (0.9%)

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 → 77
Calls

3 calls:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01125
121023
2202623
3494723
000
100

simplify112.0ms (2.1%)

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

Useful iterations: 3 (0.0ms)

IterNodesCost
03052700
110292419
238202407
349142305
449852305
549372305

prune183.0ms (3.5%)

Pruning

10 alts after pruning (8 fresh and 2 done)

PrunedKeptTotal
New2052207
Fresh167
Picked011
Done011
Total20610216
Error
0.0b
Counts
216 → 10
Alt Table
StatusErrorProgram
0.7b
(*.f32 s (neg.f32 (pow.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))) 3)))
0.2b
(*.f32 s (neg.f32 (log1p.f32 (*.f32 u -4))))
11.2b
(*.f32 s (neg.f32 (log.f32 (fma.f32 u -4 1))))
1.1b
(*.f32 s (neg.f32 (*.f32 (pow.f32 (pow.f32 (cbrt.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4)))) 2) 3) (cbrt.f32 (log1p.f32 (*.f32 u -4))))))
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
(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.8b
(*.f32 s (neg.f32 (fma.f32 u (+.f32 -4 (*.f32 u -8)) (*.f32 (pow.f32 u 3) (-.f32 -64/3 (*.f32 64 u))))))
2.4b
(*.f32 s (neg.f32 (neg.f32 (+.f32 (*.f32 64/3 (pow.f32 u 3)) (+.f32 (*.f32 8 (pow.f32 u 2)) (*.f32 4 u))))))
11.9b
(*.f32 s (neg.f32 (+.f32 (log.f32 (sqrt.f32 (fma.f32 u -4 1))) (log.f32 (sqrt.f32 (fma.f32 u -4 1))))))
7.9b
(*.f32 s (*.f32 4 u))
Compiler

Compiled 5754 to 4588 computations (20.3% saved)

localize45.0ms (0.9%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f32 s (neg.f32 (*.f32 (pow.f32 (pow.f32 (cbrt.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4)))) 2) 3) (cbrt.f32 (log1p.f32 (*.f32 u -4))))))
0.3b
(*.f32 (pow.f32 (pow.f32 (cbrt.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4)))) 2) 3) (cbrt.f32 (log1p.f32 (*.f32 u -4))))
0.5b
(pow.f32 (cbrt.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4)))) 2)
0.7b
(pow.f32 (pow.f32 (cbrt.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4)))) 2) 3)

series300.0ms (5.7%)

Counts
4 → 60
Calls

4 calls:

244.0ms
(*.f32 s (neg.f32 (*.f32 (pow.f32 (pow.f32 (cbrt.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4)))) 2) 3) (cbrt.f32 (log1p.f32 (*.f32 u -4))))))
32.0ms
(pow.f32 (pow.f32 (cbrt.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4)))) 2) 3)
20.0ms
(pow.f32 (cbrt.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4)))) 2)
3.0ms
(*.f32 (pow.f32 (pow.f32 (cbrt.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4)))) 2) 3) (cbrt.f32 (log1p.f32 (*.f32 u -4))))

rewrite68.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
527×log-prod_binary32
282×pow2_binary32
200×expm1-udef_binary32
200×log1p-udef_binary32
196×pow1/3_binary32
Counts
4 → 106
Calls

4 calls:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01577
130939
2261339
3487639
000
100

simplify116.0ms (2.2%)

Algorithm
egg-herbie
Rules
566×times-frac_binary32
338×cancel-sign-sub-inv_binary32
323×fma-def_binary32
263×distribute-neg-in_binary32
210×sub-neg_binary32
Counts
166 → 201
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02813168
19122902
230252896
350232896

prune181.0ms (3.5%)

Pruning

11 alts after pruning (8 fresh and 3 done)

PrunedKeptTotal
New1992201
Fresh167
Picked011
Done022
Total20011211
Error
0.0b
Counts
211 → 11
Alt Table
StatusErrorProgram
0.7b
(*.f32 s (neg.f32 (pow.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))) 3)))
0.2b
(*.f32 s (neg.f32 (log1p.f32 (*.f32 u -4))))
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.5b
(*.f32 s (neg.f32 (*.f32 (pow.f32 (+.f32 (log.f32 (sqrt.f32 (exp.f32 (pow.f32 (cbrt.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4)))) 2)))) (log.f32 (sqrt.f32 (exp.f32 (pow.f32 (cbrt.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4)))) 2))))) 3) (cbrt.f32 (log1p.f32 (*.f32 u -4))))))
11.2b
(*.f32 s (neg.f32 (log.f32 (fma.f32 u -4 1))))
1.1b
(*.f32 s (neg.f32 (*.f32 (pow.f32 (pow.f32 (cbrt.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4)))) 2) 3) (cbrt.f32 (log1p.f32 (*.f32 u -4))))))
1.9b
(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.8b
(*.f32 s (neg.f32 (fma.f32 u (+.f32 -4 (*.f32 u -8)) (*.f32 (pow.f32 u 3) (-.f32 -64/3 (*.f32 64 u))))))
2.4b
(*.f32 s (neg.f32 (fma.f32 (pow.f32 u 3) -64/3 (fma.f32 (*.f32 u u) -8 (*.f32 u -4)))))
11.9b
(*.f32 s (neg.f32 (+.f32 (log.f32 (sqrt.f32 (fma.f32 u -4 1))) (log.f32 (sqrt.f32 (fma.f32 u -4 1))))))
7.9b
(*.f32 s (*.f32 4 u))
Compiler

Compiled 6332 to 5180 computations (18.2% saved)

localize48.0ms (0.9%)

Local error

Found 4 expressions with local error:

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

series51.0ms (1%)

Counts
4 → 60
Calls

4 calls:

41.0ms
(*.f32 s (neg.f32 (fma.f32 u (+.f32 -4 (*.f32 u -8)) (*.f32 (pow.f32 u 3) (-.f32 -64/3 (*.f32 64 u))))))
4.0ms
(*.f32 (pow.f32 u 3) (-.f32 -64/3 (*.f32 64 u)))
3.0ms
(-.f32 -64/3 (*.f32 64 u))
3.0ms
(fma.f32 u (+.f32 -4 (*.f32 u -8)) (*.f32 (pow.f32 u 3) (-.f32 -64/3 (*.f32 64 u))))

rewrite76.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
437×prod-diff_binary32
179×add-sqr-sqrt_binary32
174×log1p-expm1-u_binary32
174×expm1-log1p-u_binary32
171×add-cbrt-cube_binary32
Counts
4 → 114
Calls

4 calls:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01771
137765
2409565
3472465
000
100

simplify107.0ms (2%)

Algorithm
egg-herbie
Rules
882×fma-neg_binary32
561×associate-*r*_binary32
544×cancel-sign-sub-inv_binary32
512×distribute-rgt-neg-in_binary32
419×distribute-neg-in_binary32
Counts
174 → 150
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0571056
11651038
2451937
31379854
43724854
54285854
64960854
74925854

prune133.0ms (2.5%)

Pruning

10 alts after pruning (7 fresh and 3 done)

PrunedKeptTotal
New1491150
Fresh167
Picked101
Done033
Total15110161
Error
0.0b
Counts
161 → 10
Alt Table
StatusErrorProgram
0.7b
(*.f32 s (neg.f32 (pow.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))) 3)))
0.2b
(*.f32 s (neg.f32 (log1p.f32 (*.f32 u -4))))
1.8b
(*.f32 (+.f32 (*.f32 (pow.f32 u 3) (fma.f32 u 64 64/3)) (*.f32 u (+.f32 (*.f32 u 8) 4))) s)
3.5b
(*.f32 s (neg.f32 (*.f32 (pow.f32 (+.f32 (log.f32 (sqrt.f32 (exp.f32 (pow.f32 (cbrt.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4)))) 2)))) (log.f32 (sqrt.f32 (exp.f32 (pow.f32 (cbrt.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4)))) 2))))) 3) (cbrt.f32 (log1p.f32 (*.f32 u -4))))))
11.2b
(*.f32 s (neg.f32 (log.f32 (fma.f32 u -4 1))))
1.1b
(*.f32 s (neg.f32 (*.f32 (pow.f32 (pow.f32 (cbrt.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4)))) 2) 3) (cbrt.f32 (log1p.f32 (*.f32 u -4))))))
1.9b
(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))))))
2.4b
(*.f32 s (neg.f32 (fma.f32 (pow.f32 u 3) -64/3 (fma.f32 (*.f32 u u) -8 (*.f32 u -4)))))
11.9b
(*.f32 s (neg.f32 (+.f32 (log.f32 (sqrt.f32 (fma.f32 u -4 1))) (log.f32 (sqrt.f32 (fma.f32 u -4 1))))))
7.9b
(*.f32 s (*.f32 4 u))
Compiler

Compiled 3566 to 2683 computations (24.8% saved)

regimes480.0ms (9.2%)

Accuracy

Total 0.1b remaining (65.6%)

Threshold costs 0.1b (65.6%)

Counts
63 → 1
Compiler

Compiled 7779 to 6167 computations (20.7% saved)

simplify2.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

end124.0ms (2.4%)

Compiler

Compiled 197 to 155 computations (21.3% saved)

Profiling

Loading profile data...