Details

Time bar (total: 3.8s)

analyze106.0ms (2.8%)

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.4s (38%)

Results
1.4s8256×body128valid
Compiler

Compiled 52 to 38 computations (26.9% saved)

preprocess63.0ms (1.7%)

Algorithm
egg-herbie
Rules
1209×fma-def_binary32
516×fma-neg_binary32
264×distribute-rgt-out--_binary32
220×associate--l+_binary32
202×distribute-rgt-in_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01428
13526
27826
316426
422826
530026
639526
757826
8112526
9177426
10229326
11262026
12294726
13325526
14333926
15340526
16380526
17458926
022
Stop Event
saturated
node limit
Compiler

Compiled 11 to 8 computations (27.3% saved)

simplify26.0ms (0.7%)

Algorithm
egg-herbie
Rules
544×fma-def_binary32
230×fma-neg_binary32
87×cancel-sign-sub-inv_binary32
81×distribute-rgt-in_binary32
69×distribute-lft-in_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0914
12213
24513
38913
412313
516413
621513
731513
859413
991013
10117413
11134113
12151113
13166513
14169213
15169313
Stop Event
saturated
Counts
1 → 2

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)))
15.3b
(*.f32 (*.f32 (neg.f32 alpha) alpha) (log.f32 (-.f32 1 u0)))
Compiler

Compiled 61 to 42 computations (31.1% saved)

localize20.0ms (0.5%)

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

series170.0ms (4.5%)

Counts
2 → 36
Calls

9 calls:

58.0ms
(*.f32 (*.f32 alpha (neg.f32 alpha)) (log1p.f32 (neg.f32 u0)))
alpha
0
52.0ms
(*.f32 (*.f32 alpha (neg.f32 alpha)) (log1p.f32 (neg.f32 u0)))
alpha
inf
52.0ms
(*.f32 (*.f32 alpha (neg.f32 alpha)) (log1p.f32 (neg.f32 u0)))
alpha
-inf
2.0ms
(*.f32 (*.f32 alpha (neg.f32 alpha)) (log1p.f32 (neg.f32 u0)))
u0
inf
2.0ms
(*.f32 (*.f32 alpha (neg.f32 alpha)) (log1p.f32 (neg.f32 u0)))
u0
0

rewrite35.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
570×pow1_binary32
523×add-log-exp_binary32
522×expm1-log1p-u_binary32
521×log1p-expm1-u_binary32
84×associate-*r*_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0818
116312
2210212
Stop Event
node limit
Counts
2 → 30

simplify37.0ms (1%)

Algorithm
egg-herbie
Rules
477×fma-neg_binary32
468×fma-def_binary32
366×times-frac_binary32
263×sub-neg_binary32
205×unswap-sqr_binary32
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
094752
1285698
2931650
33624644
Stop Event
node limit
Counts
66 → 80

prune47.0ms (1.2%)

Pruning

11 alts after pruning (10 fresh and 1 done)

PrunedKeptTotal
New71980
Fresh011
Picked011
Done000
Total711182
Error
0.1b
Counts
82 → 11
Alt Table
StatusErrorProgram
8.6b
(exp.f32 (log.f32 (*.f32 alpha (*.f32 alpha (log1p.f32 u0)))))
15.3b
(*.f32 (*.f32 (neg.f32 alpha) alpha) (log.f32 (-.f32 1 u0)))
7.3b
(*.f32 u0 (pow.f32 alpha 2))
10.6b
(cbrt.f32 (*.f32 (pow.f32 (*.f32 alpha alpha) 3) (pow.f32 (log1p.f32 u0) 3)))
8.0b
(pow.f32 (*.f32 alpha (sqrt.f32 (log1p.f32 u0))) 2)
8.1b
(pow.f32 (cbrt.f32 (*.f32 alpha (*.f32 alpha (log1p.f32 u0)))) 3)
1.8b
(*.f32 (*.f32 alpha alpha) (+.f32 u0 (fma.f32 1/4 (pow.f32 u0 4) (*.f32 (*.f32 u0 u0) (+.f32 1/2 (*.f32 u0 1/3))))))
1.8b
(+.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 u0 (*.f32 u0 1/2) u0)))
3.6b
(*.f32 alpha (*.f32 alpha (fma.f32 u0 (*.f32 u0 1/2) u0)))
0.3b
(*.f32 (*.f32 alpha (neg.f32 alpha)) (log1p.f32 (neg.f32 u0)))
Compiler

Compiled 1496 to 887 computations (40.7% saved)

localize44.0ms (1.2%)

Local error

Found 4 expressions with local error:

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

series40.0ms (1.1%)

Counts
4 → 60
Calls

15 calls:

11.0ms
(*.f32 (*.f32 alpha alpha) (+.f32 u0 (fma.f32 1/4 (pow.f32 u0 4) (*.f32 (*.f32 u0 u0) (+.f32 1/2 (*.f32 u0 1/3))))))
alpha
-inf
9.0ms
(*.f32 (*.f32 alpha alpha) (+.f32 u0 (fma.f32 1/4 (pow.f32 u0 4) (*.f32 (*.f32 u0 u0) (+.f32 1/2 (*.f32 u0 1/3))))))
alpha
0
8.0ms
(*.f32 (*.f32 alpha alpha) (+.f32 u0 (fma.f32 1/4 (pow.f32 u0 4) (*.f32 (*.f32 u0 u0) (+.f32 1/2 (*.f32 u0 1/3))))))
alpha
inf
2.0ms
(*.f32 (*.f32 alpha alpha) (+.f32 u0 (fma.f32 1/4 (pow.f32 u0 4) (*.f32 (*.f32 u0 u0) (+.f32 1/2 (*.f32 u0 1/3))))))
u0
-inf
2.0ms
(*.f32 (*.f32 alpha alpha) (+.f32 u0 (fma.f32 1/4 (pow.f32 u0 4) (*.f32 (*.f32 u0 u0) (+.f32 1/2 (*.f32 u0 1/3))))))
u0
inf

rewrite65.0ms (1.7%)

Algorithm
batch-egg-rewrite
Rules
292×log1p-udef_binary32
175×add-sqr-sqrt_binary32
170×pow1_binary32
169×*-un-lft-identity_binary32
168×add-log-exp_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01666
136060
2471960
Stop Event
node limit
Counts
4 → 89

simplify53.0ms (1.4%)

Algorithm
egg-herbie
Rules
694×unswap-sqr_binary32
577×distribute-rgt-out_binary32
444×*-commutative_binary32
279×fma-def_binary32
248×distribute-rgt-in_binary32
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0381050
11031018
2303964
31261937
42680937
54225937
Stop Event
node limit
Counts
149 → 116

prune140.0ms (3.7%)

Pruning

8 alts after pruning (7 fresh and 1 done)

PrunedKeptTotal
New1097116
Fresh909
Picked101
Done011
Total1198127
Error
0.1b
Counts
127 → 8
Alt Table
StatusErrorProgram
1.9b
(/.f32 (*.f32 (-.f32 (*.f32 u0 u0) (pow.f32 (fma.f32 1/4 (pow.f32 u0 4) (*.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2)))) 2)) (*.f32 alpha alpha)) (-.f32 u0 (fma.f32 1/4 (pow.f32 u0 4) (*.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2))))))
1.9b
(/.f32 (*.f32 (+.f32 (pow.f32 u0 3) (pow.f32 (fma.f32 1/4 (pow.f32 u0 4) (*.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2)))) 3)) (*.f32 alpha alpha)) (fma.f32 u0 u0 (*.f32 (fma.f32 1/4 (pow.f32 u0 4) (*.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2)))) (-.f32 (fma.f32 1/4 (pow.f32 u0 4) (*.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2)))) u0))))
4.9b
(/.f32 (+.f32 (pow.f32 (*.f32 (*.f32 alpha alpha) u0) 3) (pow.f32 (*.f32 (*.f32 alpha alpha) (fma.f32 1/4 (pow.f32 u0 4) (*.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2))))) 3)) (+.f32 (*.f32 (*.f32 (*.f32 alpha alpha) u0) (*.f32 (*.f32 alpha alpha) u0)) (-.f32 (*.f32 (*.f32 (*.f32 alpha alpha) (fma.f32 1/4 (pow.f32 u0 4) (*.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2))))) (*.f32 (*.f32 alpha alpha) (fma.f32 1/4 (pow.f32 u0 4) (*.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2)))))) (*.f32 (*.f32 (*.f32 alpha alpha) u0) (*.f32 (*.f32 alpha alpha) (fma.f32 1/4 (pow.f32 u0 4) (*.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2)))))))))
3.6b
(exp.f32 (log.f32 (*.f32 alpha (*.f32 alpha (+.f32 u0 (fma.f32 1/4 (pow.f32 u0 4) (*.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2)))))))))
1.7b
(fma.f32 (*.f32 alpha alpha) u0 (*.f32 (*.f32 alpha alpha) (fma.f32 1/4 (pow.f32 u0 4) (*.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2))))))
0.3b
(*.f32 (*.f32 alpha (neg.f32 alpha)) (log1p.f32 (neg.f32 u0)))
1.8b
(sqrt.f32 (*.f32 (pow.f32 (+.f32 u0 (fma.f32 1/4 (pow.f32 u0 4) (*.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2))))) 2) (pow.f32 alpha 4)))
2.0b
(pow.f32 (*.f32 alpha (sqrt.f32 (+.f32 u0 (fma.f32 1/4 (pow.f32 u0 4) (*.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2))))))) 2)
Compiler

Compiled 3464 to 2194 computations (36.7% saved)

localize46.0ms (1.2%)

Local error

Found 4 expressions with local error:

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

series63.0ms (1.7%)

Counts
4 → 72
Calls

18 calls:

8.0ms
(fma.f32 (*.f32 alpha alpha) u0 (*.f32 (*.f32 alpha alpha) (fma.f32 1/4 (pow.f32 u0 4) (*.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2))))))
alpha
0
8.0ms
(fma.f32 (*.f32 alpha alpha) u0 (*.f32 (*.f32 alpha alpha) (fma.f32 1/4 (pow.f32 u0 4) (*.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2))))))
alpha
-inf
8.0ms
(fma.f32 (*.f32 alpha alpha) u0 (*.f32 (*.f32 alpha alpha) (fma.f32 1/4 (pow.f32 u0 4) (*.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2))))))
alpha
inf
8.0ms
(*.f32 (*.f32 alpha alpha) (fma.f32 1/4 (pow.f32 u0 4) (*.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2)))))
alpha
-inf
7.0ms
(*.f32 (*.f32 alpha alpha) (fma.f32 1/4 (pow.f32 u0 4) (*.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2)))))
alpha
inf

rewrite56.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
372×prod-diff_binary32
253×expm1-udef_binary32
253×log1p-udef_binary32
145×add-sqr-sqrt_binary32
141×pow1_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01574
131070
2348470
Stop Event
node limit
Counts
4 → 75

simplify63.0ms (1.7%)

Algorithm
egg-herbie
Rules
694×unswap-sqr_binary32
585×distribute-rgt-out_binary32
454×*-commutative_binary32
309×fma-def_binary32
233×distribute-rgt-in_binary32
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0411509
11101471
23221408
313401369
428171369
543781369
Stop Event
node limit
Counts
147 → 106

prune113.0ms (3%)

Pruning

7 alts after pruning (5 fresh and 2 done)

PrunedKeptTotal
New1042106
Fresh336
Picked011
Done011
Total1077114
Error
0.0b
Counts
114 → 7
Alt Table
StatusErrorProgram
1.8b
(sqrt.f32 (*.f32 (pow.f32 (+.f32 u0 (fma.f32 1/4 (pow.f32 u0 4) (*.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2))))) 2) (pow.f32 alpha 4)))
2.5b
(*.f32 alpha (*.f32 (*.f32 u0 alpha) (+.f32 1 (*.f32 u0 (+.f32 1/2 (*.f32 1/3 u0))))))
1.9b
(/.f32 (*.f32 (-.f32 (*.f32 u0 u0) (pow.f32 (fma.f32 1/4 (pow.f32 u0 4) (*.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2)))) 2)) (*.f32 alpha alpha)) (-.f32 u0 (fma.f32 1/4 (pow.f32 u0 4) (*.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2))))))
2.2b
(*.f32 (cbrt.f32 (*.f32 (*.f32 alpha alpha) (+.f32 u0 (fma.f32 1/4 (pow.f32 u0 4) (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0)))))) (pow.f32 (cbrt.f32 (*.f32 (*.f32 alpha alpha) (+.f32 u0 (fma.f32 1/4 (pow.f32 u0 4) (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0)))))) 2))
1.7b
(fma.f32 (*.f32 alpha alpha) u0 (*.f32 (*.f32 alpha alpha) (fma.f32 1/4 (pow.f32 u0 4) (*.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2))))))
0.3b
(*.f32 (*.f32 alpha (neg.f32 alpha)) (log1p.f32 (neg.f32 u0)))
2.0b
(pow.f32 (*.f32 alpha (sqrt.f32 (+.f32 u0 (fma.f32 1/4 (pow.f32 u0 4) (*.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2))))))) 2)
Compiler

Compiled 2911 to 1664 computations (42.8% saved)

localize51.0ms (1.4%)

Local error

Found 4 expressions with local error:

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

series53.0ms (1.4%)

Counts
2 → 36
Calls

9 calls:

15.0ms
(*.f32 (pow.f32 (+.f32 u0 (fma.f32 1/4 (pow.f32 u0 4) (*.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2))))) 2) (pow.f32 alpha 4))
alpha
inf
14.0ms
(*.f32 (pow.f32 (+.f32 u0 (fma.f32 1/4 (pow.f32 u0 4) (*.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2))))) 2) (pow.f32 alpha 4))
alpha
-inf
14.0ms
(*.f32 (pow.f32 (+.f32 u0 (fma.f32 1/4 (pow.f32 u0 4) (*.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2))))) 2) (pow.f32 alpha 4))
alpha
0
2.0ms
(*.f32 (pow.f32 (+.f32 u0 (fma.f32 1/4 (pow.f32 u0 4) (*.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2))))) 2) (pow.f32 alpha 4))
u0
-inf
2.0ms
(*.f32 (pow.f32 (+.f32 u0 (fma.f32 1/4 (pow.f32 u0 4) (*.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2))))) 2) (pow.f32 alpha 4))
u0
inf

rewrite58.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
728×prod-diff_binary32
171×add-sqr-sqrt_binary32
167×pow1_binary32
165×add-log-exp_binary32
165×log1p-expm1-u_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01754
136354
2417654
Stop Event
node limit
Counts
2 → 45

simplify39.0ms (1%)

Algorithm
egg-herbie
Rules
629×fma-def_binary32
561×unswap-sqr_binary32
354×associate-*l*_binary32
306×distribute-lft-out_binary32
288×associate-*r*_binary32
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
072952
1196896
2636834
33191822
Stop Event
node limit
Counts
81 → 77

prune133.0ms (3.5%)

Pruning

7 alts after pruning (5 fresh and 2 done)

PrunedKeptTotal
New1202122
Fresh134
Picked101
Done022
Total1227129
Error
0.0b
Counts
129 → 7
Alt Table
StatusErrorProgram
1.9b
(/.f32 (*.f32 (-.f32 (*.f32 u0 u0) (pow.f32 (fma.f32 1/4 (pow.f32 u0 4) (*.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2)))) 2)) (*.f32 alpha alpha)) (-.f32 u0 (fma.f32 1/4 (pow.f32 u0 4) (*.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2))))))
2.2b
(*.f32 (cbrt.f32 (*.f32 (*.f32 alpha alpha) (+.f32 u0 (fma.f32 1/4 (pow.f32 u0 4) (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0)))))) (pow.f32 (cbrt.f32 (*.f32 (*.f32 alpha alpha) (+.f32 u0 (fma.f32 1/4 (pow.f32 u0 4) (*.f32 (fma.f32 u0 1/3 1/2) (*.f32 u0 u0)))))) 2))
1.8b
(sqrt.f32 (*.f32 (fma.f32 5/6 (pow.f32 u0 5) (fma.f32 u0 u0 (fma.f32 11/12 (pow.f32 u0 4) (pow.f32 u0 3)))) (pow.f32 alpha 4)))
1.7b
(fma.f32 (*.f32 alpha alpha) u0 (*.f32 (*.f32 alpha alpha) (fma.f32 1/4 (pow.f32 u0 4) (*.f32 u0 (*.f32 u0 (fma.f32 u0 1/3 1/2))))))
4.6b
(sqrt.f32 (*.f32 (pow.f32 (+.f32 u0 (fma.f32 1/4 (pow.f32 u0 4) (log.f32 (pow.f32 (pow.f32 (exp.f32 u0) (fma.f32 u0 1/3 1/2)) u0)))) 2) (pow.f32 alpha 4)))
0.3b
(*.f32 (*.f32 alpha (neg.f32 alpha)) (log1p.f32 (neg.f32 u0)))
2.5b
(*.f32 alpha (*.f32 (*.f32 u0 alpha) (+.f32 1 (*.f32 u0 (+.f32 1/2 (*.f32 1/3 u0))))))
Compiler

Compiled 3704 to 2616 computations (29.4% saved)

regimes682.0ms (18.2%)

Accuracy

Total 0.3b remaining (78%)

Threshold costs 0.3b (78%)

Counts
102 → 1
Compiler

Compiled 13622 to 9362 computations (31.3% 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
33913
44413
54713
64813
Stop Event
saturated

end118.0ms (3.2%)

Stop Event
fuel
Compiler

Compiled 206 to 141 computations (31.6% saved)

Profiling

Loading profile data...