Details

Time bar (total: 9.0s)

analyze111.0ms (1.2%)

Algorithm
search
Search
TrueOtherFalseIter
0%0.9%99.1%0
0%0.9%99.1%1
0%0.9%99.1%2
0.4%0.4%99.1%3
0.4%0.4%99.1%4
0.6%0.2%99.1%5
0.6%0.2%99.1%6
0.7%0.1%99.1%7
0.7%0.1%99.1%8
0.8%0.1%99.1%9
0.8%0.1%99.1%10
0.8%0%99.1%11
0.8%0%99.1%12
0.8%0%99.1%13
0.8%0%99.1%14
Compiler

Compiled 32 to 24 computations (25% saved)

sample2.1s (23.7%)

Results
2.0s8256×body128valid
Compiler

Compiled 81 to 61 computations (24.7% saved)

simplify155.0ms (1.7%)

Algorithm
egg-herbie
Rules
2879×fma-def_binary32
2626×associate-+l+_binary32
362×distribute-rgt-in_binary32
324×associate-+r+_binary32
323×distribute-rgt-out_binary32
Counts
1 → 2
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01323
12119
23519
35419
411019
517319
624719
740519
850519
956319
1061319
1163619
1267219
1378119
1495919
15121819
16155019
17155619
18154819
19189619
20211319
21220819
22230719
23227519
24227519
25227519
26426519
27426519
28426519
29426519
30561919

prune4.0ms (0%)

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 1 (*.f32 v (log.f32 (+.f32 u (*.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)))))))
0.2b
(fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)) 1)
Compiler

Compiled 94 to 70 computations (25.5% saved)

localize30.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)
0.1b
(fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)) 1)
0.1b
(log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u))
0.1b
(exp.f32 (/.f32 -2 v))

series243.0ms (2.7%)

Counts
4 → 80
Calls

4 calls:

169.0ms
(log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u))
64.0ms
(fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)) 1)
8.0ms
(fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)
2.0ms
(exp.f32 (/.f32 -2 v))

rewrite89.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
481×log-prod_binary32
268×prod-diff_binary32
198×expm1-udef_binary32
197×log1p-udef_binary32
172×log-pow_binary32
Counts
4 → 106
Calls

4 calls:

87.0ms
(fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)
87.0ms
(fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)) 1)
87.0ms
(log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u))
87.0ms
(exp.f32 (/.f32 -2 v))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01153
122453
2261853
3487253
4498853
000
100

simplify107.0ms (1.2%)

Algorithm
egg-herbie
Rules
629×cancel-sign-sub-inv_binary32
438×sub-neg_binary32
254×fma-def_binary32
231×+-commutative_binary32
225×fma-neg_binary32
Counts
186 → 194
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02633048
19122982
236302942
351572942

prune221.0ms (2.5%)

Pruning

9 alts after pruning (9 fresh and 0 done)

PrunedKeptTotal
New1859194
Fresh101
Picked101
Done000
Total1879196
Error
0.0b
Counts
196 → 9
Alt Table
StatusErrorProgram
0.9b
(log.f32 (exp.f32 (fma.f32 v (log.f32 (fma.f32 (exp.f32 (/.f32 -2 v)) (-.f32 1 u) u)) 1)))
29.9b
(fma.f32 v (-.f32 (/.f32 u (exp.f32 (/.f32 -2 v))) (+.f32 (/.f32 2 v) u)) 1)
0.2b
(+.f32 1 (*.f32 v (log.f32 (fma.f32 (exp.f32 (/.f32 -2 v)) (-.f32 1 u) u))))
0.3b
(fma.f32 v (*.f32 3 (log.f32 (cbrt.f32 (fma.f32 (exp.f32 (/.f32 -2 v)) (-.f32 1 u) u)))) 1)
0.2b
(fma.f32 v (*.f32 2 (log.f32 (sqrt.f32 (fma.f32 (exp.f32 (/.f32 -2 v)) (-.f32 1 u) u)))) 1)
29.9b
(fma.f32 v (-.f32 (+.f32 (/.f32 u (exp.f32 (/.f32 -2 v))) (/.f32 (*.f32 u u) (exp.f32 (/.f32 -2 v)))) (fma.f32 1/2 (/.f32 (*.f32 u u) (pow.f32 (exp.f32 (/.f32 -2 v)) 2)) (fma.f32 (*.f32 u u) 1/2 (+.f32 (/.f32 2 v) u)))) 1)
29.9b
(-.f32 (+.f32 (/.f32 (*.f32 v u) (exp.f32 (/.f32 -2 v))) (/.f32 (*.f32 v (*.f32 u u)) (exp.f32 (/.f32 -2 v)))) (fma.f32 1/2 (*.f32 v (*.f32 u u)) (+.f32 1 (fma.f32 v u (*.f32 1/2 (/.f32 (*.f32 v (*.f32 u u)) (pow.f32 (exp.f32 (/.f32 -2 v)) 2)))))))
28.4b
(-.f32 (fma.f32 2 (/.f32 u v) (fma.f32 8/3 (/.f32 (pow.f32 u 3) (*.f32 v v)) (fma.f32 2 u (*.f32 4/3 (/.f32 u (*.f32 v v)))))) (fma.f32 (*.f32 (/.f32 u v) (/.f32 u v)) 4 (fma.f32 2 (/.f32 (*.f32 u u) v) 1)))
1.0b
(+.f32 (log.f32 (sqrt.f32 (exp.f32 (fma.f32 v (log.f32 (fma.f32 (exp.f32 (/.f32 -2 v)) (-.f32 1 u) u)) 1)))) (log.f32 (sqrt.f32 (exp.f32 (fma.f32 v (log.f32 (fma.f32 (exp.f32 (/.f32 -2 v)) (-.f32 1 u) u)) 1)))))
Compiler

Compiled 5764 to 4178 computations (27.5% saved)

localize35.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(+.f32 1 (*.f32 v (log.f32 (fma.f32 (exp.f32 (/.f32 -2 v)) (-.f32 1 u) u))))
0.1b
(log.f32 (fma.f32 (exp.f32 (/.f32 -2 v)) (-.f32 1 u) u))
0.1b
(exp.f32 (/.f32 -2 v))
0.3b
(*.f32 v (log.f32 (fma.f32 (exp.f32 (/.f32 -2 v)) (-.f32 1 u) u)))

series448.0ms (5%)

Counts
3 → 72
Calls

3 calls:

218.0ms
(*.f32 v (log.f32 (fma.f32 (exp.f32 (/.f32 -2 v)) (-.f32 1 u) u)))
162.0ms
(log.f32 (fma.f32 (exp.f32 (/.f32 -2 v)) (-.f32 1 u) u))
68.0ms
(+.f32 1 (*.f32 v (log.f32 (fma.f32 (exp.f32 (/.f32 -2 v)) (-.f32 1 u) u))))

rewrite123.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
523×prod-diff_binary32
362×fma-udef_binary32
346×fma-def_binary32
222×expm1-udef_binary32
221×log1p-udef_binary32
Counts
3 → 84
Calls

3 calls:

121.0ms
(+.f32 1 (*.f32 v (log.f32 (fma.f32 (exp.f32 (/.f32 -2 v)) (-.f32 1 u) u))))
121.0ms
(log.f32 (fma.f32 (exp.f32 (/.f32 -2 v)) (-.f32 1 u) u))
121.0ms
(*.f32 v (log.f32 (fma.f32 (exp.f32 (/.f32 -2 v)) (-.f32 1 u) u)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01254
125152
2304752
3496752
4494652
000
100

simplify113.0ms (1.3%)

Algorithm
egg-herbie
Rules
695×cancel-sign-sub-inv_binary32
495×sub-neg_binary32
257×fma-def_binary32
247×+-commutative_binary32
247×fma-neg_binary32
Counts
156 → 185
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02683703
19313604
237733553
354303553

prune206.0ms (2.3%)

Pruning

8 alts after pruning (8 fresh and 0 done)

PrunedKeptTotal
New2132215
Fresh268
Picked101
Done000
Total2168224
Error
0b
Counts
224 → 8
Alt Table
StatusErrorProgram
0.2b
(+.f32 1 (log.f32 (pow.f32 (fma.f32 (exp.f32 (/.f32 -2 v)) (-.f32 1 u) u) v)))
1.0b
(+.f32 (log.f32 (sqrt.f32 (exp.f32 (fma.f32 v (log.f32 (fma.f32 (exp.f32 (/.f32 -2 v)) (-.f32 1 u) u)) 1)))) (log.f32 (sqrt.f32 (exp.f32 (fma.f32 v (log.f32 (fma.f32 (exp.f32 (/.f32 -2 v)) (-.f32 1 u) u)) 1)))))
0.3b
(fma.f32 v (*.f32 3 (log.f32 (cbrt.f32 (fma.f32 (exp.f32 (/.f32 -2 v)) (-.f32 1 u) u)))) 1)
0.2b
(fma.f32 v (*.f32 2 (log.f32 (sqrt.f32 (fma.f32 (exp.f32 (/.f32 -2 v)) (-.f32 1 u) u)))) 1)
29.9b
(fma.f32 v (-.f32 (+.f32 (/.f32 u (exp.f32 (/.f32 -2 v))) (/.f32 (*.f32 u u) (exp.f32 (/.f32 -2 v)))) (fma.f32 1/2 (/.f32 (*.f32 u u) (pow.f32 (exp.f32 (/.f32 -2 v)) 2)) (fma.f32 (*.f32 u u) 1/2 (+.f32 (/.f32 2 v) u)))) 1)
29.9b
(-.f32 (+.f32 (/.f32 (*.f32 v u) (exp.f32 (/.f32 -2 v))) (/.f32 (*.f32 v (*.f32 u u)) (exp.f32 (/.f32 -2 v)))) (fma.f32 (*.f32 v (*.f32 u u)) 1/2 (+.f32 (*.f32 1/2 (/.f32 (*.f32 v (*.f32 u u)) (pow.f32 (exp.f32 (/.f32 -2 v)) 2))) (fma.f32 v u 1))))
0.9b
(log.f32 (exp.f32 (fma.f32 v (log.f32 (fma.f32 (exp.f32 (/.f32 -2 v)) (-.f32 1 u) u)) 1)))
28.4b
(-.f32 (fma.f32 2 (/.f32 u v) (fma.f32 8/3 (/.f32 (pow.f32 u 3) (*.f32 v v)) (fma.f32 2 u (*.f32 4/3 (/.f32 u (*.f32 v v)))))) (fma.f32 (*.f32 (/.f32 u v) (/.f32 u v)) 4 (fma.f32 2 (/.f32 (*.f32 u u) v) 1)))
Compiler

Compiled 7044 to 5114 computations (27.4% saved)

localize37.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(+.f32 1 (log.f32 (pow.f32 (fma.f32 (exp.f32 (/.f32 -2 v)) (-.f32 1 u) u) v)))
0.1b
(pow.f32 (fma.f32 (exp.f32 (/.f32 -2 v)) (-.f32 1 u) u) v)
0.1b
(exp.f32 (/.f32 -2 v))
22.5b
(log.f32 (pow.f32 (fma.f32 (exp.f32 (/.f32 -2 v)) (-.f32 1 u) u) v))

series1.5s (16.9%)

Counts
3 → 72
Calls

3 calls:

1.2s
(log.f32 (pow.f32 (fma.f32 (exp.f32 (/.f32 -2 v)) (-.f32 1 u) u) v))
235.0ms
(+.f32 1 (log.f32 (pow.f32 (fma.f32 (exp.f32 (/.f32 -2 v)) (-.f32 1 u) u) v)))
64.0ms
(pow.f32 (fma.f32 (exp.f32 (/.f32 -2 v)) (-.f32 1 u) u) v)

rewrite121.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
413×prod-diff_binary32
335×fma-def_binary32
301×fma-udef_binary32
224×expm1-udef_binary32
223×log1p-udef_binary32
Counts
3 → 91
Calls

3 calls:

118.0ms
(+.f32 1 (log.f32 (pow.f32 (fma.f32 (exp.f32 (/.f32 -2 v)) (-.f32 1 u) u) v)))
118.0ms
(pow.f32 (fma.f32 (exp.f32 (/.f32 -2 v)) (-.f32 1 u) u) v)
118.0ms
(log.f32 (pow.f32 (fma.f32 (exp.f32 (/.f32 -2 v)) (-.f32 1 u) u) v))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01255
125653
2308753
3484153
4494453
5491653
000
100

simplify114.0ms (1.3%)

Algorithm
egg-herbie
Rules
567×times-frac_binary32
368×associate-/l*_binary32
356×fma-def_binary32
335×associate-/r*_binary32
281×associate-*r*_binary32
Counts
163 → 193
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
03825535
113925390
249465362
350045362

prune264.0ms (2.9%)

Pruning

8 alts after pruning (7 fresh and 1 done)

PrunedKeptTotal
New2230223
Fresh077
Picked011
Done000
Total2238231
Error
0b
Counts
231 → 8
Alt Table
StatusErrorProgram
0.2b
(+.f32 1 (log.f32 (pow.f32 (fma.f32 (exp.f32 (/.f32 -2 v)) (-.f32 1 u) u) v)))
1.0b
(+.f32 (log.f32 (sqrt.f32 (exp.f32 (fma.f32 v (log.f32 (fma.f32 (exp.f32 (/.f32 -2 v)) (-.f32 1 u) u)) 1)))) (log.f32 (sqrt.f32 (exp.f32 (fma.f32 v (log.f32 (fma.f32 (exp.f32 (/.f32 -2 v)) (-.f32 1 u) u)) 1)))))
0.3b
(fma.f32 v (*.f32 3 (log.f32 (cbrt.f32 (fma.f32 (exp.f32 (/.f32 -2 v)) (-.f32 1 u) u)))) 1)
0.2b
(fma.f32 v (*.f32 2 (log.f32 (sqrt.f32 (fma.f32 (exp.f32 (/.f32 -2 v)) (-.f32 1 u) u)))) 1)
29.9b
(fma.f32 v (-.f32 (+.f32 (/.f32 u (exp.f32 (/.f32 -2 v))) (/.f32 (*.f32 u u) (exp.f32 (/.f32 -2 v)))) (fma.f32 1/2 (/.f32 (*.f32 u u) (pow.f32 (exp.f32 (/.f32 -2 v)) 2)) (fma.f32 (*.f32 u u) 1/2 (+.f32 (/.f32 2 v) u)))) 1)
29.9b
(-.f32 (+.f32 (/.f32 (*.f32 v u) (exp.f32 (/.f32 -2 v))) (/.f32 (*.f32 v (*.f32 u u)) (exp.f32 (/.f32 -2 v)))) (fma.f32 (*.f32 v (*.f32 u u)) 1/2 (+.f32 (*.f32 1/2 (/.f32 (*.f32 v (*.f32 u u)) (pow.f32 (exp.f32 (/.f32 -2 v)) 2))) (fma.f32 v u 1))))
0.9b
(log.f32 (exp.f32 (fma.f32 v (log.f32 (fma.f32 (exp.f32 (/.f32 -2 v)) (-.f32 1 u) u)) 1)))
28.4b
(-.f32 (fma.f32 2 (/.f32 u v) (fma.f32 8/3 (/.f32 (pow.f32 u 3) (*.f32 v v)) (fma.f32 2 u (*.f32 4/3 (/.f32 u (*.f32 v v)))))) (fma.f32 (*.f32 (/.f32 u v) (/.f32 u v)) 4 (fma.f32 2 (/.f32 (*.f32 u u) v) 1)))
Compiler

Compiled 9333 to 6921 computations (25.8% saved)

localize39.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(fma.f32 (exp.f32 (/.f32 -2 v)) (-.f32 1 u) u)
0.1b
(fma.f32 v (*.f32 2 (log.f32 (sqrt.f32 (fma.f32 (exp.f32 (/.f32 -2 v)) (-.f32 1 u) u)))) 1)
0.1b
(exp.f32 (/.f32 -2 v))
0.3b
(log.f32 (sqrt.f32 (fma.f32 (exp.f32 (/.f32 -2 v)) (-.f32 1 u) u)))

series2.0s (22.5%)

Counts
3 → 56
Calls

3 calls:

1.1s
(log.f32 (sqrt.f32 (fma.f32 (exp.f32 (/.f32 -2 v)) (-.f32 1 u) u)))
875.0ms
(fma.f32 v (*.f32 2 (log.f32 (sqrt.f32 (fma.f32 (exp.f32 (/.f32 -2 v)) (-.f32 1 u) u)))) 1)
9.0ms
(fma.f32 (exp.f32 (/.f32 -2 v)) (-.f32 1 u) u)

rewrite69.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
589×log-prod_binary32
234×expm1-udef_binary32
233×log1p-udef_binary32
210×log-pow_binary32
205×prod-diff_binary32
Counts
3 → 91
Calls

3 calls:

67.0ms
(fma.f32 (exp.f32 (/.f32 -2 v)) (-.f32 1 u) u)
67.0ms
(fma.f32 v (*.f32 2 (log.f32 (sqrt.f32 (fma.f32 (exp.f32 (/.f32 -2 v)) (-.f32 1 u) u)))) 1)
67.0ms
(log.f32 (sqrt.f32 (fma.f32 (exp.f32 (/.f32 -2 v)) (-.f32 1 u) u)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01454
128249
2311849
3564049
000
100

simplify76.0ms (0.8%)

Algorithm
egg-herbie
Rules
714×times-frac_binary32
419×fma-neg_binary32
358×cancel-sign-sub-inv_binary32
274×sub-neg_binary32
200×fma-def_binary32
Counts
147 → 140
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02002083
16522044
224031818
347231814
449661814

prune184.0ms (2.1%)

Pruning

8 alts after pruning (6 fresh and 2 done)

PrunedKeptTotal
New1691170
Fresh156
Picked011
Done011
Total1708178
Error
0b
Counts
178 → 8
Alt Table
StatusErrorProgram
0.9b
(log.f32 (exp.f32 (fma.f32 v (log.f32 (fma.f32 (exp.f32 (/.f32 -2 v)) (-.f32 1 u) u)) 1)))
28.4b
(-.f32 (+.f32 (fma.f32 8/3 (/.f32 (pow.f32 u 3) (*.f32 v v)) (*.f32 u 2)) (*.f32 (/.f32 u v) (+.f32 (/.f32 4/3 v) 2))) (+.f32 1 (*.f32 (/.f32 (*.f32 u u) v) (+.f32 2 (/.f32 4 v)))))
0.2b
(+.f32 1 (log.f32 (pow.f32 (fma.f32 (exp.f32 (/.f32 -2 v)) (-.f32 1 u) u) v)))
1.0b
(+.f32 (log.f32 (sqrt.f32 (exp.f32 (fma.f32 v (log.f32 (fma.f32 (exp.f32 (/.f32 -2 v)) (-.f32 1 u) u)) 1)))) (log.f32 (sqrt.f32 (exp.f32 (fma.f32 v (log.f32 (fma.f32 (exp.f32 (/.f32 -2 v)) (-.f32 1 u) u)) 1)))))
0.3b
(fma.f32 v (*.f32 3 (log.f32 (cbrt.f32 (fma.f32 (exp.f32 (/.f32 -2 v)) (-.f32 1 u) u)))) 1)
0.2b
(fma.f32 v (*.f32 2 (log.f32 (sqrt.f32 (fma.f32 (exp.f32 (/.f32 -2 v)) (-.f32 1 u) u)))) 1)
29.9b
(fma.f32 v (-.f32 (+.f32 (/.f32 u (exp.f32 (/.f32 -2 v))) (/.f32 (*.f32 u u) (exp.f32 (/.f32 -2 v)))) (fma.f32 1/2 (/.f32 (*.f32 u u) (pow.f32 (exp.f32 (/.f32 -2 v)) 2)) (fma.f32 (*.f32 u u) 1/2 (+.f32 (/.f32 2 v) u)))) 1)
29.9b
(-.f32 (+.f32 (/.f32 (*.f32 v u) (exp.f32 (/.f32 -2 v))) (/.f32 (*.f32 v (*.f32 u u)) (exp.f32 (/.f32 -2 v)))) (fma.f32 (*.f32 v (*.f32 u u)) 1/2 (+.f32 (*.f32 1/2 (/.f32 (*.f32 v (*.f32 u u)) (pow.f32 (exp.f32 (/.f32 -2 v)) 2))) (fma.f32 v u 1))))
Compiler

Compiled 4706 to 3508 computations (25.5% saved)

regimes369.0ms (4.1%)

Accuracy

Total 0.1b remaining (73.2%)

Threshold costs 0.1b (73.2%)

Counts
82 → 1
Compiler

Compiled 7764 to 5768 computations (25.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
01221
11821
22221
32421
42521
52421

end147.0ms (1.6%)

Compiler

Compiled 265 to 187 computations (29.4% saved)

Profiling

Loading profile data...