Details

Time bar (total: 5.8s)

analyze179.0ms (3.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)

sample2.0s (35%)

Results
1.9s8256×body128valid
Compiler

Compiled 81 to 61 computations (24.7% saved)

simplify156.0ms (2.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.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.2b
(+.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)

localize37.0ms (0.6%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)
0.0b
(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))

series295.0ms (5.1%)

Counts
4 → 80
Calls

4 calls:

199.0ms
(log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u))
84.0ms
(fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)) 1)
10.0ms
(fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)
2.0ms
(exp.f32 (/.f32 -2 v))

rewrite7.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
13×exp-prod_binary32
12×*-un-lft-identity_binary32
12×add-sqr-sqrt_binary32
12×add-cube-cbrt_binary32
times-frac_binary32
Counts
4 → 57
Calls

4 calls:

3.0ms
(exp.f32 (/.f32 -2 v))
1.0ms
(log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u))
0.0ms
(fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)) 1)
0.0ms
(fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)

simplify100.0ms (1.7%)

Algorithm
egg-herbie
Rules
631×cancel-sign-sub-inv_binary32
440×sub-neg_binary32
256×fma-def_binary32
234×+-commutative_binary32
225×fma-neg_binary32
Counts
137 → 173
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
03394060
110133883
238163673
353693673

prune240.0ms (4.1%)

Pruning

7 alts after pruning (7 fresh and 0 done)

PrunedKeptTotal
New1667173
Fresh101
Picked101
Done000
Total1687175
Error
0.0b
Counts
175 → 7
Alt Table
StatusErrorProgram
0.2b
(log1p.f32 (expm1.f32 (fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)) 1)))
29.2b
(-.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)))
29.6b
(fma.f32 v (-.f32 (fma.f32 4/3 (/.f32 u (pow.f32 v 3)) (fma.f32 2 (/.f32 u v) (fma.f32 2 (/.f32 u (*.f32 v v)) (*.f32 8/3 (pow.f32 (/.f32 u v) 3))))) (fma.f32 2 (*.f32 (/.f32 u v) (/.f32 u v)) (fma.f32 4 (/.f32 (*.f32 u u) (pow.f32 v 3)) (/.f32 2 v)))) 1)
30.6b
(-.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)))))))
0.1b
(fma.f32 v (log.f32 (+.f32 (*.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v))) u)) 1)
1.5b
(+.f32 (fma.f32 (/.f32 v (-.f32 1 (exp.f32 (/.f32 -2 v)))) (/.f32 (exp.f32 (/.f32 -2 v)) u) (fma.f32 v (log1p.f32 (neg.f32 (exp.f32 (/.f32 -2 v)))) (*.f32 1/3 (*.f32 (/.f32 v (pow.f32 (-.f32 1 (exp.f32 (/.f32 -2 v))) 3)) (pow.f32 (/.f32 (exp.f32 (/.f32 -2 v)) u) 3))))) (+.f32 1 (-.f32 (*.f32 v (log.f32 u)) (*.f32 1/2 (/.f32 (*.f32 v (pow.f32 (exp.f32 (/.f32 -2 v)) 2)) (*.f32 (*.f32 u u) (pow.f32 (-.f32 1 (exp.f32 (/.f32 -2 v))) 2)))))))
0.2b
(fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (*.f32 (sqrt.f32 (exp.f32 (/.f32 -2 v))) (sqrt.f32 (exp.f32 (/.f32 -2 v)))) u)) 1)
Compiler

Compiled 5358 to 3846 computations (28.2% saved)

localize41.0ms (0.7%)

Local error

Found 4 expressions with local error:

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

series254.0ms (4.4%)

Counts
3 → 72
Calls

3 calls:

179.0ms
(log.f32 (+.f32 (*.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v))) u))
67.0ms
(fma.f32 v (log.f32 (+.f32 (*.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v))) u)) 1)
8.0ms
(*.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)))

rewrite24.0ms (0.4%)

Algorithm
rewrite-expression-head
Rules
11×add-sqr-sqrt_binary32
*-un-lft-identity_binary32
associate-*l*_binary32
add-cube-cbrt_binary32
pow1_binary32
Counts
3 → 51
Calls

3 calls:

12.0ms
(log.f32 (+.f32 (*.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v))) u))
9.0ms
(*.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)))
0.0ms
(fma.f32 v (log.f32 (+.f32 (*.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v))) u)) 1)

simplify122.0ms (2.1%)

Algorithm
egg-herbie
Rules
459×sub-neg_binary32
350×fma-neg_binary32
274×fma-def_binary32
242×+-commutative_binary32
219×times-frac_binary32
Counts
123 → 164
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
03434035
110513871
240063690
349953690
450603690

prune267.0ms (4.6%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New1970197
Fresh066
Picked011
Done000
Total1977204
Error
0.0b
Counts
204 → 7
Alt Table
StatusErrorProgram
0.2b
(log1p.f32 (expm1.f32 (fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)) 1)))
29.2b
(-.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)))
29.6b
(fma.f32 v (-.f32 (fma.f32 4/3 (/.f32 u (pow.f32 v 3)) (fma.f32 2 (/.f32 u v) (fma.f32 2 (/.f32 u (*.f32 v v)) (*.f32 8/3 (pow.f32 (/.f32 u v) 3))))) (fma.f32 2 (*.f32 (/.f32 u v) (/.f32 u v)) (fma.f32 4 (/.f32 (*.f32 u u) (pow.f32 v 3)) (/.f32 2 v)))) 1)
30.6b
(-.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)))))))
0.1b
(fma.f32 v (log.f32 (+.f32 (*.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v))) u)) 1)
1.5b
(+.f32 (fma.f32 (/.f32 v (-.f32 1 (exp.f32 (/.f32 -2 v)))) (/.f32 (exp.f32 (/.f32 -2 v)) u) (fma.f32 v (log1p.f32 (neg.f32 (exp.f32 (/.f32 -2 v)))) (*.f32 1/3 (*.f32 (/.f32 v (pow.f32 (-.f32 1 (exp.f32 (/.f32 -2 v))) 3)) (pow.f32 (/.f32 (exp.f32 (/.f32 -2 v)) u) 3))))) (+.f32 1 (-.f32 (*.f32 v (log.f32 u)) (*.f32 1/2 (/.f32 (*.f32 v (pow.f32 (exp.f32 (/.f32 -2 v)) 2)) (*.f32 (*.f32 u u) (pow.f32 (-.f32 1 (exp.f32 (/.f32 -2 v))) 2)))))))
0.2b
(fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (*.f32 (sqrt.f32 (exp.f32 (/.f32 -2 v))) (sqrt.f32 (exp.f32 (/.f32 -2 v)))) u)) 1)
Compiler

Compiled 6049 to 4370 computations (27.8% saved)

localize43.0ms (0.7%)

Local error

Found 4 expressions with local error:

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

series185.0ms (3.2%)

Counts
3 → 44
Calls

3 calls:

180.0ms
(log.f32 (fma.f32 (-.f32 1 u) (*.f32 (sqrt.f32 (exp.f32 (/.f32 -2 v))) (sqrt.f32 (exp.f32 (/.f32 -2 v)))) u))
3.0ms
(sqrt.f32 (exp.f32 (/.f32 -2 v)))
2.0ms
(*.f32 (sqrt.f32 (exp.f32 (/.f32 -2 v))) (sqrt.f32 (exp.f32 (/.f32 -2 v))))

rewrite40.0ms (0.7%)

Algorithm
rewrite-expression-head
Rules
104×sqrt-pow1_binary32
95×exp-prod_binary32
79×add-sqr-sqrt_binary32
68×*-un-lft-identity_binary32
65×times-frac_binary32
Counts
3 → 136
Calls

3 calls:

20.0ms
(*.f32 (sqrt.f32 (exp.f32 (/.f32 -2 v))) (sqrt.f32 (exp.f32 (/.f32 -2 v))))
3.0ms
(sqrt.f32 (exp.f32 (/.f32 -2 v)))
1.0ms
(log.f32 (fma.f32 (-.f32 1 u) (*.f32 (sqrt.f32 (exp.f32 (/.f32 -2 v))) (sqrt.f32 (exp.f32 (/.f32 -2 v)))) u))

simplify118.0ms (2%)

Algorithm
egg-herbie
Rules
867×fma-def_binary32
326×cancel-sign-sub-inv_binary32
326×fma-neg_binary32
226×sub-neg_binary32
177×times-frac_binary32
Counts
180 → 221
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
03113176
17602875
225882737
348832733
450202733

prune471.0ms (8.1%)

Pruning

7 alts after pruning (5 fresh and 2 done)

PrunedKeptTotal
New3270327
Fresh055
Picked011
Done011
Total3277334
Error
0.0b
Counts
334 → 7
Alt Table
StatusErrorProgram
0.2b
(log1p.f32 (expm1.f32 (fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)) 1)))
29.2b
(-.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)))
29.6b
(fma.f32 v (-.f32 (fma.f32 4/3 (/.f32 u (pow.f32 v 3)) (fma.f32 2 (/.f32 u v) (fma.f32 2 (/.f32 u (*.f32 v v)) (*.f32 8/3 (pow.f32 (/.f32 u v) 3))))) (fma.f32 2 (*.f32 (/.f32 u v) (/.f32 u v)) (fma.f32 4 (/.f32 (*.f32 u u) (pow.f32 v 3)) (/.f32 2 v)))) 1)
30.6b
(-.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)))))))
0.1b
(fma.f32 v (log.f32 (+.f32 (*.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v))) u)) 1)
1.5b
(+.f32 (fma.f32 (/.f32 v (-.f32 1 (exp.f32 (/.f32 -2 v)))) (/.f32 (exp.f32 (/.f32 -2 v)) u) (fma.f32 v (log1p.f32 (neg.f32 (exp.f32 (/.f32 -2 v)))) (*.f32 1/3 (*.f32 (/.f32 v (pow.f32 (-.f32 1 (exp.f32 (/.f32 -2 v))) 3)) (pow.f32 (/.f32 (exp.f32 (/.f32 -2 v)) u) 3))))) (+.f32 1 (-.f32 (*.f32 v (log.f32 u)) (*.f32 1/2 (/.f32 (*.f32 v (pow.f32 (exp.f32 (/.f32 -2 v)) 2)) (*.f32 (*.f32 u u) (pow.f32 (-.f32 1 (exp.f32 (/.f32 -2 v))) 2)))))))
0.2b
(fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (*.f32 (sqrt.f32 (exp.f32 (/.f32 -2 v))) (sqrt.f32 (exp.f32 (/.f32 -2 v)))) u)) 1)
Compiler

Compiled 9391 to 7056 computations (24.9% saved)

localize46.0ms (0.8%)

Local error

Found 4 expressions with local error:

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

series164.0ms (2.8%)

Counts
2 → 48
Calls

2 calls:

94.0ms
(expm1.f32 (fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)) 1))
70.0ms
(log1p.f32 (expm1.f32 (fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)) 1)))

rewrite2.0ms (0%)

Algorithm
rewrite-expression-head
Rules
log1p-expm1-u_binary32
*-un-lft-identity_binary32
add-sqr-sqrt_binary32
add-cube-cbrt_binary32
add-cbrt-cube_binary32
Counts
2 → 22
Calls

2 calls:

0.0ms
(expm1.f32 (fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)) 1))
0.0ms
(log1p.f32 (expm1.f32 (fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)) 1)))

simplify112.0ms (1.9%)

Algorithm
egg-herbie
Rules
565×times-frac_binary32
364×associate-/l*_binary32
360×fma-def_binary32
334×associate-/r*_binary32
289×associate-*r*_binary32
Counts
70 → 104
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
04115100
114134832
249934831
349974831

prune296.0ms (5.1%)

Pruning

7 alts after pruning (4 fresh and 3 done)

PrunedKeptTotal
New1950195
Fresh044
Picked011
Done022
Total1957202
Error
0.0b
Counts
202 → 7
Alt Table
StatusErrorProgram
0.2b
(log1p.f32 (expm1.f32 (fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)) 1)))
29.2b
(-.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)))
29.6b
(fma.f32 v (-.f32 (fma.f32 4/3 (/.f32 u (pow.f32 v 3)) (fma.f32 2 (/.f32 u v) (fma.f32 2 (/.f32 u (*.f32 v v)) (*.f32 8/3 (pow.f32 (/.f32 u v) 3))))) (fma.f32 2 (*.f32 (/.f32 u v) (/.f32 u v)) (fma.f32 4 (/.f32 (*.f32 u u) (pow.f32 v 3)) (/.f32 2 v)))) 1)
30.6b
(-.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)))))))
0.1b
(fma.f32 v (log.f32 (+.f32 (*.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v))) u)) 1)
1.5b
(+.f32 (fma.f32 (/.f32 v (-.f32 1 (exp.f32 (/.f32 -2 v)))) (/.f32 (exp.f32 (/.f32 -2 v)) u) (fma.f32 v (log1p.f32 (neg.f32 (exp.f32 (/.f32 -2 v)))) (*.f32 1/3 (*.f32 (/.f32 v (pow.f32 (-.f32 1 (exp.f32 (/.f32 -2 v))) 3)) (pow.f32 (/.f32 (exp.f32 (/.f32 -2 v)) u) 3))))) (+.f32 1 (-.f32 (*.f32 v (log.f32 u)) (*.f32 1/2 (/.f32 (*.f32 v (pow.f32 (exp.f32 (/.f32 -2 v)) 2)) (*.f32 (*.f32 u u) (pow.f32 (-.f32 1 (exp.f32 (/.f32 -2 v))) 2)))))))
0.2b
(fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (*.f32 (sqrt.f32 (exp.f32 (/.f32 -2 v))) (sqrt.f32 (exp.f32 (/.f32 -2 v)))) u)) 1)
Compiler

Compiled 8717 to 6520 computations (25.2% saved)

regimes411.0ms (7%)

Accuracy

Total 0.1b remaining (64.7%)

Threshold costs 0.1b (64.7%)

Counts
94 → 1
Compiler

Compiled 8878 to 6658 computations (25% saved)

simplify3.0ms (0.1%)

Algorithm
egg-herbie
Rules
+-commutative_binary32
sub-neg_binary32
*-commutative_binary32
neg-sub0_binary32
neg-mul-1_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01638
12038
22438
32638
42738
52638

end170.0ms (2.9%)

Compiler

Compiled 329 to 227 computations (31% saved)

Profiling

Loading profile data...