Details

Time bar (total: 5.8s)

analyze119.0ms (2.1%)

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)

sample1.6s (27.7%)

Results
1.6s8256×body128valid
Compiler

Compiled 64 to 48 computations (25% saved)

preprocess59.0ms (1%)

Algorithm
egg-herbie
Rules
862×fma-def_binary32
412×fma-neg_binary32
273×unsub-neg_binary32
261×associate--r+_binary32
256×distribute-rgt-in_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02146
13538
26238
311538
424538
541838
666738
7104638
8174638
9202938
10243038
11323838
12371638
13474738
022
Stop Event
saturated
node limit
Compiler

Compiled 17 to 13 computations (23.5% saved)

simplify77.0ms (1.3%)

Algorithm
egg-herbie
Rules
2871×fma-def_binary32
361×distribute-rgt-in_binary32
327×distribute-rgt-out_binary32
316×associate-+r+_binary32
188×fma-neg_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01323
12119
23519
36219
412919
521819
633719
751719
884619
996619
10104319
11107219
12111319
13124119
14150919
15185419
16227319
17237319
18237919
19273119
20309019
21331019
22355019
23355019
24355019
25355019
Stop Event
node limit
Counts
1 → 2

prune3.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
0.1b
Counts
3 → 2
Alt Table
StatusErrorProgram
0.1b
(fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)) 1)
0.1b
(+.f32 1 (*.f32 v (log.f32 (+.f32 u (*.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)))))))
Compiler

Compiled 94 to 70 computations (25.5% saved)

localize39.0ms (0.7%)

Local error

Found 4 expressions with local error:

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

series341.0ms (5.9%)

Counts
4 → 80
Calls

21 calls:

143.0ms
(*.f32 v (log.f32 (+.f32 u (*.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v))))))
v
0
110.0ms
(log.f32 (+.f32 u (*.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)))))
v
0
26.0ms
(+.f32 1 (*.f32 v (log.f32 (+.f32 u (*.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)))))))
v
0
6.0ms
(*.f32 v (log.f32 (+.f32 u (*.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v))))))
u
0
6.0ms
(+.f32 1 (*.f32 v (log.f32 (+.f32 u (*.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)))))))
v
inf

rewrite65.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
523×fma-def_binary32
250×expm1-udef_binary32
249×log1p-udef_binary32
230×fma-neg_binary32
140×add-sqr-sqrt_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01366
128258
2374858
Stop Event
node limit
Counts
4 → 105

simplify76.0ms (1.3%)

Algorithm
egg-herbie
Rules
509×sub-neg_binary32
263×fma-def_binary32
259×fma-neg_binary32
254×+-commutative_binary32
219×times-frac_binary32
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02773801
19753702
240063647
Stop Event
node limit
Counts
185 → 213

prune244.0ms (4.2%)

Pruning

7 alts after pruning (7 fresh and 0 done)

PrunedKeptTotal
New2067213
Fresh101
Picked101
Done000
Total2087215
Error
0b
Counts
215 → 7
Alt Table
StatusErrorProgram
0.1b
(fma.f32 1 (*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u))) 1)
29.6b
(+.f32 1 (fma.f32 2/3 (/.f32 u (pow.f32 v 3)) (-.f32 (fma.f32 2 (+.f32 u (/.f32 u v)) (fma.f32 4/3 (/.f32 u (*.f32 v v)) (fma.f32 8/3 (/.f32 (pow.f32 u 3) (*.f32 v v)) (*.f32 8 (pow.f32 (/.f32 u v) 3))))) (+.f32 (fma.f32 2 (/.f32 u (/.f32 v u)) (fma.f32 4 (/.f32 u (/.f32 (*.f32 v v) u)) (*.f32 14/3 (/.f32 u (/.f32 (pow.f32 v 3) u))))) (fma.f32 4 (/.f32 (pow.f32 u 4) (pow.f32 v 3)) 2)))))
1.0b
(log.f32 (+.f32 1 (fma.f32 (pow.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u) v) (E.f32) -1)))
29.6b
(-.f32 (fma.f32 2/3 (/.f32 u (pow.f32 v 3)) (fma.f32 2 (+.f32 u (/.f32 u v)) (fma.f32 4/3 (/.f32 u (*.f32 v v)) (fma.f32 8/3 (/.f32 (pow.f32 u 3) (*.f32 v v)) (*.f32 8 (pow.f32 (/.f32 u v) 3)))))) (+.f32 (fma.f32 2 (/.f32 u (/.f32 v u)) (fma.f32 4 (/.f32 u (/.f32 (*.f32 v v) u)) (*.f32 14/3 (/.f32 u (/.f32 (pow.f32 v 3) u))))) (fma.f32 4 (/.f32 (pow.f32 u 4) (pow.f32 v 3)) 1)))
30.6b
(+.f32 1 (-.f32 (+.f32 (/.f32 (*.f32 v u) (exp.f32 (/.f32 -2 v))) (/.f32 (*.f32 v (pow.f32 u 2)) (exp.f32 (/.f32 -2 v)))) (+.f32 (*.f32 1/2 (*.f32 v (pow.f32 u 2))) (+.f32 2 (+.f32 (*.f32 1/2 (/.f32 (*.f32 v (pow.f32 u 2)) (pow.f32 (exp.f32 (/.f32 -2 v)) 2))) (*.f32 v u))))))
0.1b
(fma.f32 (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)) v 1)
0.2b
(+.f32 1 (pow.f32 (cbrt.f32 (*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)))) 3))
Compiler

Compiled 7145 to 5209 computations (27.1% saved)

localize32.0ms (0.6%)

Local error

Found 4 expressions with local error:

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

series172.0ms (3%)

Counts
3 → 72
Calls

18 calls:

102.0ms
(log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u))
v
0
25.0ms
(fma.f32 (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)) v 1)
v
0
5.0ms
(fma.f32 (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)) v 1)
v
inf
5.0ms
(log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u))
v
inf
4.0ms
(fma.f32 (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)) v 1)
v
-inf

rewrite50.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
481×log-prod_binary32
205×prod-diff_binary32
198×expm1-udef_binary32
197×log1p-udef_binary32
172×log-pow_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01147
122647
2272147
Stop Event
node limit
Counts
3 → 83

simplify65.0ms (1.1%)

Algorithm
egg-herbie
Rules
613×cancel-sign-sub-inv_binary32
426×sub-neg_binary32
250×fma-def_binary32
226×+-commutative_binary32
219×times-frac_binary32
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02582950
19072884
237342844
Stop Event
node limit
Counts
155 → 165

prune204.0ms (3.5%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New1911192
Fresh156
Picked011
Done000
Total1927199
Error
0b
Counts
199 → 7
Alt Table
StatusErrorProgram
0.2b
(+.f32 1 (pow.f32 (cbrt.f32 (*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)))) 3))
0.1b
(+.f32 1 (*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u))))
1.0b
(log.f32 (+.f32 1 (fma.f32 (pow.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u) v) (E.f32) -1)))
29.6b
(-.f32 (fma.f32 2/3 (/.f32 u (pow.f32 v 3)) (fma.f32 2 (+.f32 u (/.f32 u v)) (fma.f32 4/3 (/.f32 u (*.f32 v v)) (fma.f32 8/3 (/.f32 (pow.f32 u 3) (*.f32 v v)) (*.f32 8 (pow.f32 (/.f32 u v) 3)))))) (+.f32 (fma.f32 2 (/.f32 u (/.f32 v u)) (fma.f32 4 (/.f32 u (/.f32 (*.f32 v v) u)) (*.f32 14/3 (/.f32 u (/.f32 (pow.f32 v 3) u))))) (fma.f32 4 (/.f32 (pow.f32 u 4) (pow.f32 v 3)) 1)))
30.6b
(+.f32 1 (-.f32 (+.f32 (/.f32 (*.f32 v u) (exp.f32 (/.f32 -2 v))) (/.f32 (*.f32 v (pow.f32 u 2)) (exp.f32 (/.f32 -2 v)))) (+.f32 (*.f32 1/2 (*.f32 v (pow.f32 u 2))) (+.f32 2 (+.f32 (*.f32 1/2 (/.f32 (*.f32 v (pow.f32 u 2)) (pow.f32 (exp.f32 (/.f32 -2 v)) 2))) (*.f32 v u))))))
0.1b
(fma.f32 (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)) v 1)
29.6b
(+.f32 1 (fma.f32 2/3 (/.f32 u (pow.f32 v 3)) (-.f32 (fma.f32 2 (+.f32 u (/.f32 u v)) (fma.f32 4/3 (/.f32 u (*.f32 v v)) (fma.f32 8/3 (/.f32 (pow.f32 u 3) (*.f32 v v)) (*.f32 8 (pow.f32 (/.f32 u v) 3))))) (+.f32 (fma.f32 2 (/.f32 u (/.f32 v u)) (fma.f32 4 (/.f32 u (/.f32 (*.f32 v v) u)) (*.f32 14/3 (/.f32 u (/.f32 (pow.f32 v 3) u))))) (fma.f32 4 (/.f32 (pow.f32 u 4) (pow.f32 v 3)) 2)))))
Compiler

Compiled 5718 to 4153 computations (27.4% saved)

localize36.0ms (0.6%)

Local error

Found 4 expressions with local error:

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

series159.0ms (2.8%)

Counts
1 → 24
Calls

6 calls:

136.0ms
(*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)))
v
0
9.0ms
(*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)))
v
-inf
4.0ms
(*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)))
v
inf
3.0ms
(*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)))
u
0
3.0ms
(*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)))
u
-inf

rewrite38.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
494×log-prod_binary32
205×prod-diff_binary32
196×expm1-udef_binary32
195×log1p-udef_binary32
171×log-pow_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01118
122518
2270918
Stop Event
node limit
Counts
1 → 18

simplify37.0ms (0.6%)

Algorithm
egg-herbie
Rules
741×fma-def_binary32
691×associate-/r*_binary32
297×cancel-sign-sub-inv_binary32
184×sub-neg_binary32
159×distribute-rgt-in_binary32
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01521248
15161212
220941108
Stop Event
node limit
Counts
42 → 52

prune166.0ms (2.9%)

Pruning

7 alts after pruning (5 fresh and 2 done)

PrunedKeptTotal
New1831184
Fresh145
Picked011
Done011
Total1847191
Error
0b
Counts
191 → 7
Alt Table
StatusErrorProgram
0.2b
(+.f32 1 (pow.f32 (cbrt.f32 (*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)))) 3))
0.1b
(+.f32 1 (*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u))))
1.0b
(log.f32 (+.f32 1 (fma.f32 (pow.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u) v) (E.f32) -1)))
29.6b
(-.f32 (fma.f32 2/3 (/.f32 u (pow.f32 v 3)) (fma.f32 2 (+.f32 u (/.f32 u v)) (fma.f32 4/3 (/.f32 u (*.f32 v v)) (fma.f32 8/3 (/.f32 (pow.f32 u 3) (*.f32 v v)) (*.f32 8 (pow.f32 (/.f32 u v) 3)))))) (+.f32 (fma.f32 2 (/.f32 u (/.f32 v u)) (fma.f32 4 (/.f32 u (/.f32 (*.f32 v v) u)) (*.f32 14/3 (/.f32 u (/.f32 (pow.f32 v 3) u))))) (fma.f32 4 (/.f32 (pow.f32 u 4) (pow.f32 v 3)) 1)))
30.6b
(+.f32 1 (-.f32 (*.f32 (/.f32 v (exp.f32 (/.f32 -2 v))) (+.f32 (*.f32 u u) u)) (fma.f32 v (*.f32 (*.f32 u u) 1/2) (fma.f32 v u (fma.f32 1/2 (*.f32 (/.f32 v (pow.f32 (exp.f32 (/.f32 -2 v)) 2)) (*.f32 u u)) 2)))))
0.1b
(fma.f32 (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)) v 1)
29.6b
(+.f32 1 (fma.f32 2/3 (/.f32 u (pow.f32 v 3)) (-.f32 (fma.f32 2 (+.f32 u (/.f32 u v)) (fma.f32 4/3 (/.f32 u (*.f32 v v)) (fma.f32 8/3 (/.f32 (pow.f32 u 3) (*.f32 v v)) (*.f32 8 (pow.f32 (/.f32 u v) 3))))) (+.f32 (fma.f32 2 (/.f32 u (/.f32 v u)) (fma.f32 4 (/.f32 u (/.f32 (*.f32 v v) u)) (*.f32 14/3 (/.f32 u (/.f32 (pow.f32 v 3) u))))) (fma.f32 4 (/.f32 (pow.f32 u 4) (pow.f32 v 3)) 2)))))
Compiler

Compiled 5583 to 4113 computations (26.3% saved)

localize42.0ms (0.7%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(exp.f32 (/.f32 -2 v))
0.1b
(cbrt.f32 (*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u))))
0.2b
(*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)))
0.7b
(pow.f32 (cbrt.f32 (*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)))) 3)

series968.0ms (16.8%)

Counts
2 → 48
Calls

12 calls:

266.0ms
(pow.f32 (cbrt.f32 (*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)))) 3)
v
0
251.0ms
(cbrt.f32 (*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u))))
v
0
154.0ms
(pow.f32 (cbrt.f32 (*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)))) 3)
v
-inf
85.0ms
(cbrt.f32 (*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u))))
v
-inf
49.0ms
(pow.f32 (cbrt.f32 (*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)))) 3)
v
inf

rewrite52.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
571×log-prod_binary32
224×expm1-udef_binary32
223×log1p-udef_binary32
205×prod-diff_binary32
198×log-pow_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01438
128538
2318238
Stop Event
node limit
Counts
2 → 65

simplify107.0ms (1.9%)

Algorithm
egg-herbie
Rules
768×associate-/r*_binary32
623×associate-/l*_binary32
300×*-commutative_binary32
224×+-commutative_binary32
210×fma-def_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
07908443
129557904
Stop Event
node limit
Counts
113 → 149

prune378.0ms (6.6%)

Pruning

6 alts after pruning (4 fresh and 2 done)

PrunedKeptTotal
New2262228
Fresh224
Picked011
Done112
Total2296235
Error
0b
Counts
235 → 6
Alt Table
StatusErrorProgram
1.0b
(log.f32 (+.f32 1 (fma.f32 (pow.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u) v) (E.f32) -1)))
29.6b
(-.f32 (fma.f32 2/3 (/.f32 u (pow.f32 v 3)) (fma.f32 2 (+.f32 u (/.f32 u v)) (fma.f32 4/3 (/.f32 u (*.f32 v v)) (fma.f32 8/3 (/.f32 (pow.f32 u 3) (*.f32 v v)) (*.f32 8 (pow.f32 (/.f32 u v) 3)))))) (+.f32 (fma.f32 2 (/.f32 u (/.f32 v u)) (fma.f32 4 (/.f32 u (/.f32 (*.f32 v v) u)) (*.f32 14/3 (/.f32 u (/.f32 (pow.f32 v 3) u))))) (fma.f32 4 (/.f32 (pow.f32 u 4) (pow.f32 v 3)) 1)))
0.1b
(+.f32 1 (+.f32 0 (log.f32 (pow.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u) v))))
30.6b
(+.f32 1 (+.f32 (+.f32 (*.f32 (cbrt.f32 -8) (+.f32 (*.f32 1/2 (*.f32 v u)) (*.f32 1/4 (*.f32 v (*.f32 u u))))) (*.f32 (+.f32 (*.f32 1/4 (*.f32 (/.f32 v (pow.f32 (exp.f32 (/.f32 -2 v)) 2)) (*.f32 u u))) 1) (cbrt.f32 -8))) (*.f32 -1/2 (*.f32 (cbrt.f32 -8) (+.f32 (*.f32 (/.f32 v (exp.f32 (/.f32 -2 v))) (*.f32 u u)) (*.f32 (/.f32 v (exp.f32 (/.f32 -2 v))) u))))))
0.1b
(fma.f32 (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)) v 1)
0.2b
(+.f32 1 (pow.f32 (cbrt.f32 (*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)))) 3))
Compiler

Compiled 15553 to 12193 computations (21.6% saved)

regimes509.0ms (8.8%)

Accuracy

Total 0.1b remaining (72.4%)

Threshold costs 0.1b (72.4%)

Counts
106 → 1
Compiler

Compiled 12168 to 8940 computations (26.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
01328
12428
23528
34128
44528
54628
Stop Event
saturated

end130.0ms (2.3%)

Stop Event
fuel
Compiler

Compiled 252 to 180 computations (28.6% saved)

Profiling

Loading profile data...