Details

Time bar (total: 4.4s)

analyze130.0ms (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.9s (44.1%)

Results
1.7s8256×body128valid
Compiler

Compiled 63 to 46 computations (27% saved)

simplify33.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)

localize26.0ms (0.6%)

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)))

series243.0ms (5.6%)

Counts
2 → 36
Calls

2 calls:

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

rewrite52.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
48×egg-rr
Counts
2 → 48
Calls

2 calls:

51.0ms
((*.f32 (*.f32 alpha (neg.f32 alpha)) (log1p.f32 (neg.f32 u0))) (log1p.f32 (neg.f32 u0)))
0.0ms
()
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0818
116312
2140312
3526512
000
100

simplify64.0ms (1.5%)

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
84 → 98
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
094752
1284698
2892650
32908644
44824644
55251644

prune54.0ms (1.2%)

Pruning

10 alts after pruning (9 fresh and 1 done)

PrunedKeptTotal
New90898
Fresh011
Picked011
Done000
Total9010100
Error
0.1b
Counts
100 → 10
Alt Table
StatusErrorProgram
9.3b
(exp.f32 (log.f32 (*.f32 (*.f32 alpha alpha) (log1p.f32 u0))))
14.4b
(*.f32 (*.f32 (neg.f32 alpha) alpha) (log.f32 (-.f32 1 u0)))
0.3b
(*.f32 (*.f32 alpha (neg.f32 alpha)) (log1p.f32 (neg.f32 u0)))
3.6b
(*.f32 (*.f32 alpha (neg.f32 alpha)) (-.f32 (log.f32 (-.f32 1 (*.f32 u0 u0))) (log1p.f32 u0)))
8.6b
(pow.f32 (*.f32 alpha (sqrt.f32 (log1p.f32 u0))) 2)
8.6b
(pow.f32 (cbrt.f32 (*.f32 (*.f32 alpha alpha) (log1p.f32 u0))) 3)
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)))))
2.4b
(*.f32 (*.f32 alpha alpha) (fma.f32 1/3 (pow.f32 u0 3) (fma.f32 1/2 (*.f32 u0 u0) u0)))
3.8b
(*.f32 alpha (*.f32 alpha (fma.f32 1/2 (*.f32 u0 u0) u0)))
7.8b
(*.f32 u0 (pow.f32 alpha 2))
Compiler

Compiled 1730 to 976 computations (43.6% saved)

localize86.0ms (2%)

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)))

series67.0ms (1.5%)

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))
17.0ms
(*.f32 (pow.f32 u0 4) (pow.f32 alpha 2))
12.0ms
(*.f32 (pow.f32 u0 2) (pow.f32 alpha 2))

rewrite60.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
71×egg-rr
Counts
4 → 71
Calls

2 calls:

59.0ms
((*.f32 1/3 (*.f32 (pow.f32 u0 3) (pow.f32 alpha 2))) (*.f32 (pow.f32 u0 2) (pow.f32 alpha 2)) (*.f32 (pow.f32 u0 4) (pow.f32 alpha 2)) (*.f32 (pow.f32 u0 3) (pow.f32 alpha 2)))
0.0ms
()
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01540
131340
2297040
3482340
000
100

simplify7.0ms (0.2%)

Algorithm
egg-herbie
Counts
71 → 71
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
000
100

prune104.0ms (2.4%)

Pruning

10 alts after pruning (8 fresh and 2 done)

PrunedKeptTotal
New71071
Fresh088
Picked011
Done011
Total711081
Error
0.1b
Counts
81 → 10
Alt Table
StatusErrorProgram
9.3b
(exp.f32 (log.f32 (*.f32 (*.f32 alpha alpha) (log1p.f32 u0))))
14.4b
(*.f32 (*.f32 (neg.f32 alpha) alpha) (log.f32 (-.f32 1 u0)))
0.3b
(*.f32 (*.f32 alpha (neg.f32 alpha)) (log1p.f32 (neg.f32 u0)))
3.6b
(*.f32 (*.f32 alpha (neg.f32 alpha)) (-.f32 (log.f32 (-.f32 1 (*.f32 u0 u0))) (log1p.f32 u0)))
8.6b
(pow.f32 (*.f32 alpha (sqrt.f32 (log1p.f32 u0))) 2)
8.6b
(pow.f32 (cbrt.f32 (*.f32 (*.f32 alpha alpha) (log1p.f32 u0))) 3)
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)))))
2.4b
(*.f32 (*.f32 alpha alpha) (fma.f32 1/3 (pow.f32 u0 3) (fma.f32 1/2 (*.f32 u0 u0) u0)))
3.8b
(*.f32 alpha (*.f32 alpha (fma.f32 1/2 (*.f32 u0 u0) u0)))
7.8b
(*.f32 u0 (pow.f32 alpha 2))
Compiler

Compiled 3004 to 2207 computations (26.5% saved)

localize41.0ms (0.9%)

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.8%)

Counts
3 → 48
Calls

3 calls:

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

rewrite56.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
83×egg-rr
Counts
3 → 83
Calls

2 calls:

54.0ms
((*.f32 (*.f32 alpha alpha) (fma.f32 1/3 (pow.f32 u0 3) (fma.f32 1/2 (*.f32 u0 u0) u0))) (fma.f32 1/3 (pow.f32 u0 3) (fma.f32 1/2 (*.f32 u0 u0) u0)) (fma.f32 1/2 (*.f32 u0 u0) u0))
0.0ms
()
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01244
124744
2252444
3483844
000
100

simplify141.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
131 → 104
Iterations

Useful iterations: 3 (0.0ms)

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

prune104.0ms (2.4%)

Pruning

12 alts after pruning (10 fresh and 2 done)

PrunedKeptTotal
New977104
Fresh437
Picked101
Done022
Total10212114
Error
0.1b
Counts
114 → 12
Alt Table
StatusErrorProgram
2.5b
(*.f32 (*.f32 alpha alpha) (/.f32 (+.f32 (pow.f32 (*.f32 1/3 (pow.f32 u0 3)) 3) (pow.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) 3)) (+.f32 (pow.f32 (*.f32 1/3 (pow.f32 u0 3)) 2) (-.f32 (pow.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) 2) (*.f32 (*.f32 1/3 (pow.f32 u0 3)) (fma.f32 1/2 (*.f32 u0 u0) u0))))))
4.7b
(cbrt.f32 (*.f32 (pow.f32 (*.f32 alpha alpha) 3) (pow.f32 (fma.f32 1/3 (pow.f32 u0 3) (fma.f32 1/2 (*.f32 u0 u0) u0)) 3)))
0.3b
(*.f32 (*.f32 alpha (neg.f32 alpha)) (log1p.f32 (neg.f32 u0)))
2.7b
(pow.f32 (*.f32 alpha (sqrt.f32 (fma.f32 1/3 (pow.f32 u0 3) (fma.f32 1/2 (*.f32 u0 u0) u0)))) 2)
3.6b
(*.f32 (*.f32 alpha (neg.f32 alpha)) (-.f32 (log.f32 (-.f32 1 (*.f32 u0 u0))) (log1p.f32 u0)))
2.8b
(pow.f32 (cbrt.f32 (*.f32 (*.f32 alpha alpha) (fma.f32 1/3 (pow.f32 u0 3) (fma.f32 1/2 (*.f32 u0 u0) u0)))) 3)
14.4b
(*.f32 (*.f32 (neg.f32 alpha) alpha) (log.f32 (-.f32 1 u0)))
2.8b
(*.f32 (*.f32 alpha alpha) (pow.f32 (cbrt.f32 (fma.f32 1/3 (pow.f32 u0 3) (fma.f32 1/2 (*.f32 u0 u0) u0))) 3))
2.6b
(*.f32 (*.f32 alpha alpha) (fma.f32 1/3 (pow.f32 u0 3) (pow.f32 (sqrt.f32 (fma.f32 1/2 (*.f32 u0 u0) u0)) 2)))
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)))))
3.7b
(*.f32 u0 (*.f32 alpha (*.f32 alpha (fma.f32 u0 1/2 1))))
3.8b
(*.f32 alpha (*.f32 alpha (fma.f32 1/2 (*.f32 u0 u0) u0)))
Compiler

Compiled 2448 to 1442 computations (41.1% saved)

localize98.0ms (2.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(/.f32 (+.f32 (pow.f32 (*.f32 1/3 (pow.f32 u0 3)) 3) (pow.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) 3)) (+.f32 (pow.f32 (*.f32 1/3 (pow.f32 u0 3)) 2) (-.f32 (pow.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) 2) (*.f32 (*.f32 1/3 (pow.f32 u0 3)) (fma.f32 1/2 (*.f32 u0 u0) u0)))))
0.4b
(pow.f32 (*.f32 1/3 (pow.f32 u0 3)) 2)
0.4b
(pow.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) 2)
0.6b
(pow.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) 3)

series18.0ms (0.4%)

Counts
4 → 48
Calls

4 calls:

7.0ms
(/.f32 (+.f32 (pow.f32 (*.f32 1/3 (pow.f32 u0 3)) 3) (pow.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) 3)) (+.f32 (pow.f32 (*.f32 1/3 (pow.f32 u0 3)) 2) (-.f32 (pow.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) 2) (*.f32 (*.f32 1/3 (pow.f32 u0 3)) (fma.f32 1/2 (*.f32 u0 u0) u0)))))
4.0ms
(pow.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) 3)
3.0ms
(pow.f32 (*.f32 1/3 (pow.f32 u0 3)) 2)
3.0ms
(pow.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) 2)

rewrite77.0ms (1.8%)

Algorithm
batch-egg-rewrite
Rules
77×egg-rr
Counts
4 → 77
Calls

2 calls:

75.0ms
((pow.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) 3) (pow.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) 2) (pow.f32 (*.f32 1/3 (pow.f32 u0 3)) 2) (/.f32 (+.f32 (pow.f32 (*.f32 1/3 (pow.f32 u0 3)) 3) (pow.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) 3)) (+.f32 (pow.f32 (*.f32 1/3 (pow.f32 u0 3)) 2) (-.f32 (pow.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) 2) (*.f32 (*.f32 1/3 (pow.f32 u0 3)) (fma.f32 1/2 (*.f32 u0 u0) u0))))))
0.0ms
()
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01999
144544
2446744
3503344
000
100

simplify61.0ms (1.4%)

Algorithm
egg-herbie
Rules
567×associate-*l*_binary32
554×distribute-rgt-out_binary32
543×fma-def_binary32
493×unswap-sqr_binary32
449×distribute-rgt-in_binary32
Counts
125 → 108
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
040597
196579
2235553
3611531
41872527
54113527
64960527

prune160.0ms (3.7%)

Pruning

11 alts after pruning (9 fresh and 2 done)

PrunedKeptTotal
New1062108
Fresh279
Picked101
Done022
Total10911120
Error
0.1b
Counts
120 → 11
Alt Table
StatusErrorProgram
2.8b
(*.f32 (*.f32 alpha alpha) (pow.f32 (cbrt.f32 (fma.f32 1/3 (pow.f32 u0 3) (fma.f32 1/2 (*.f32 u0 u0) u0))) 3))
2.9b
(*.f32 (*.f32 alpha alpha) (*.f32 (/.f32 1 (pow.f32 (cbrt.f32 (-.f32 (fma.f32 1/9 (pow.f32 u0 6) (pow.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) 2)) (*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) (*.f32 1/3 (pow.f32 u0 3))))) 2)) (/.f32 (fma.f32 1/27 (pow.f32 u0 9) (pow.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) 3)) (cbrt.f32 (-.f32 (fma.f32 1/9 (pow.f32 u0 6) (pow.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) 2)) (*.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) (*.f32 1/3 (pow.f32 u0 3))))))))
4.7b
(cbrt.f32 (*.f32 (pow.f32 (*.f32 alpha alpha) 3) (pow.f32 (fma.f32 1/3 (pow.f32 u0 3) (fma.f32 1/2 (*.f32 u0 u0) u0)) 3)))
0.3b
(*.f32 (*.f32 alpha (neg.f32 alpha)) (log1p.f32 (neg.f32 u0)))
2.7b
(pow.f32 (*.f32 alpha (sqrt.f32 (fma.f32 1/3 (pow.f32 u0 3) (fma.f32 1/2 (*.f32 u0 u0) u0)))) 2)
3.6b
(*.f32 (*.f32 alpha (neg.f32 alpha)) (-.f32 (log.f32 (-.f32 1 (*.f32 u0 u0))) (log1p.f32 u0)))
14.4b
(*.f32 (*.f32 (neg.f32 alpha) alpha) (log.f32 (-.f32 1 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)))))
2.7b
(*.f32 (*.f32 alpha alpha) (/.f32 (+.f32 (pow.f32 (*.f32 1/3 (pow.f32 u0 3)) 3) (fma.f32 3/4 (pow.f32 u0 5) (fma.f32 3/2 (pow.f32 u0 4) (pow.f32 u0 3)))) (+.f32 (pow.f32 (*.f32 1/3 (pow.f32 u0 3)) 2) (-.f32 (pow.f32 (fma.f32 1/2 (*.f32 u0 u0) u0) 2) (*.f32 (*.f32 1/3 (pow.f32 u0 3)) (fma.f32 1/2 (*.f32 u0 u0) u0))))))
3.7b
(*.f32 u0 (*.f32 alpha (*.f32 alpha (fma.f32 u0 1/2 1))))
3.8b
(*.f32 alpha (*.f32 alpha (fma.f32 1/2 (*.f32 u0 u0) u0)))
Compiler

Compiled 5038 to 3241 computations (35.7% saved)

regimes530.0ms (12.2%)

Accuracy

Total 0.3b remaining (77.9%)

Threshold costs 0.3b (77.9%)

Counts
78 → 1
Compiler

Compiled 12008 to 8240 computations (31.4% saved)

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

end178.0ms (4.1%)

Compiler

Compiled 314 to 222 computations (29.3% saved)

Profiling

Loading profile data...