Details

Time bar (total: 5.6s)

analyze118.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.8s (32%)

Infinites
0% of outputs are infinite.
Results
1.6s8256×body128valid
Compiler

Compiled 81 to 61 computations (24.7% saved)

simplify155.0ms (2.8%)

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

localize33.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
(log.f32 (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.2b
(exp.f32 (/.f32 -2 v))

series277.0ms (5%)

Counts
4 → 80
Calls

4 calls:

195.0ms
(log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u))
69.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))

rewrite6.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:

2.0ms
(exp.f32 (/.f32 -2 v))
1.0ms
(log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u))
1.0ms
(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)

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

prune220.0ms (4%)

Pruning

9 alts after pruning (9 fresh and 0 done)

PrunedKeptTotal
New1649173
Fresh101
Picked101
Done000
Total1669175
Error
0.0b
Counts
175 → 9
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)))
28.8b
(-.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 4 (*.f32 (/.f32 u v) (/.f32 u v)) (fma.f32 2 (/.f32 (*.f32 u u) v) 1)))
2.1b
(+.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
(+.f32 (*.f32 v (log.f32 (-.f32 (+.f32 (exp.f32 (/.f32 -2 v)) u) (*.f32 (exp.f32 (/.f32 -2 v)) u)))) 1)
0.3b
(*.f32 (*.f32 (cbrt.f32 (fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)) 1)) (cbrt.f32 (fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)) 1))) (cbrt.f32 (fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)) 1)))
30.2b
(-.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 1 (fma.f32 v u (*.f32 1/2 (/.f32 (*.f32 v (*.f32 u u)) (pow.f32 (exp.f32 (/.f32 -2 v)) 2)))))))
0.2b
(fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (pow.f32 (E.f32) (/.f32 -2 v)) u)) 1)
1.0b
(log.f32 (*.f32 (E.f32) (pow.f32 (fma.f32 (exp.f32 (/.f32 -2 v)) (-.f32 1 u) u) v)))
1.0b
(log.f32 (exp.f32 (fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)) 1)))
Compiler

Compiled 5406 to 3890 computations (28% saved)

localize35.0ms (0.6%)

Local error

Found 4 expressions with local error:

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

series305.0ms (5.5%)

Counts
4 → 84
Calls

4 calls:

179.0ms
(log.f32 (fma.f32 (-.f32 1 u) (pow.f32 (E.f32) (/.f32 -2 v)) u))
69.0ms
(fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (pow.f32 (E.f32) (/.f32 -2 v)) u)) 1)
54.0ms
(fma.f32 (-.f32 1 u) (pow.f32 (E.f32) (/.f32 -2 v)) u)
3.0ms
(pow.f32 (E.f32) (/.f32 -2 v))

rewrite6.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
13×pow-unpow_binary32
13×*-un-lft-identity_binary32
13×add-sqr-sqrt_binary32
13×add-cube-cbrt_binary32
times-frac_binary32
Counts
4 → 64
Calls

4 calls:

2.0ms
(pow.f32 (E.f32) (/.f32 -2 v))
1.0ms
(log.f32 (fma.f32 (-.f32 1 u) (pow.f32 (E.f32) (/.f32 -2 v)) u))
0.0ms
(fma.f32 (-.f32 1 u) (pow.f32 (E.f32) (/.f32 -2 v)) u)
0.0ms
(fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (pow.f32 (E.f32) (/.f32 -2 v)) u)) 1)

simplify124.0ms (2.2%)

Algorithm
egg-herbie
Rules
440×sub-neg_binary32
360×fma-neg_binary32
256×fma-def_binary32
234×+-commutative_binary32
220×times-frac_binary32
Counts
148 → 186
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
03534305
110794000
240073790
349323790
450113790

prune345.0ms (6.2%)

Pruning

8 alts after pruning (8 fresh and 0 done)

PrunedKeptTotal
New1842186
Fresh268
Picked101
Done000
Total1878195
Error
0.0b
Counts
195 → 8
Alt Table
StatusErrorProgram
0.3b
(*.f32 (*.f32 (cbrt.f32 (fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)) 1)) (cbrt.f32 (fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)) 1))) (cbrt.f32 (fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)) 1)))
30.2b
(-.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 1 (fma.f32 v u (*.f32 1/2 (/.f32 (*.f32 v (*.f32 u u)) (pow.f32 (exp.f32 (/.f32 -2 v)) 2)))))))
28.8b
(-.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 4 (*.f32 (/.f32 u v) (/.f32 u v)) (fma.f32 2 (/.f32 (*.f32 u u) v) 1)))
0.2b
(+.f32 (*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (pow.f32 (E.f32) (/.f32 -2 v)) u))) 1)
0.2b
(log1p.f32 (expm1.f32 (fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (pow.f32 (E.f32) (/.f32 -2 v)) u)) 1)))
2.1b
(+.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)))))))
1.0b
(log.f32 (*.f32 (E.f32) (pow.f32 (fma.f32 (exp.f32 (/.f32 -2 v)) (-.f32 1 u) u) v)))
1.0b
(log.f32 (exp.f32 (fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)) 1)))
Compiler

Compiled 5685 to 4011 computations (29.4% saved)

localize39.0ms (0.7%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(log.f32 (fma.f32 (-.f32 1 u) (pow.f32 (E.f32) (/.f32 -2 v)) u))
0.1b
(+.f32 (*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (pow.f32 (E.f32) (/.f32 -2 v)) u))) 1)
0.2b
(pow.f32 (E.f32) (/.f32 -2 v))
0.3b
(*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (pow.f32 (E.f32) (/.f32 -2 v)) u)))

series320.0ms (5.8%)

Counts
2 → 48
Calls

2 calls:

244.0ms
(*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (pow.f32 (E.f32) (/.f32 -2 v)) u)))
76.0ms
(+.f32 (*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (pow.f32 (E.f32) (/.f32 -2 v)) u))) 1)

rewrite11.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
12×log-prod_binary32
10×add-sqr-sqrt_binary32
*-un-lft-identity_binary32
add-cube-cbrt_binary32
associate-+l+_binary32
Counts
2 → 47
Calls

2 calls:

5.0ms
(+.f32 (*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (pow.f32 (E.f32) (/.f32 -2 v)) u))) 1)
3.0ms
(*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (pow.f32 (E.f32) (/.f32 -2 v)) u)))

simplify121.0ms (2.2%)

Algorithm
egg-herbie
Rules
519×cancel-sign-sub-inv_binary32
504×fma-neg_binary32
324×sub-neg_binary32
241×neg-sub0_binary32
238×neg-mul-1_binary32
Counts
95 → 134
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02593815
17823651
230763613
343983613
450233613

prune313.0ms (5.6%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New2372239
Fresh347
Picked011
Done000
Total2407247
Error
0.0b
Counts
247 → 7
Alt Table
StatusErrorProgram
0.3b
(/.f32 (+.f32 (pow.f32 (*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (pow.f32 (E.f32) (/.f32 -2 v)) u))) 3) (pow.f32 1 3)) (+.f32 (*.f32 (*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (pow.f32 (E.f32) (/.f32 -2 v)) u))) (*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (pow.f32 (E.f32) (/.f32 -2 v)) u)))) (-.f32 (*.f32 1 1) (*.f32 (*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (pow.f32 (E.f32) (/.f32 -2 v)) u))) 1))))
30.2b
(-.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 1 (fma.f32 v u (*.f32 1/2 (/.f32 (*.f32 v (*.f32 u u)) (pow.f32 (exp.f32 (/.f32 -2 v)) 2)))))))
28.8b
(-.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 4 (*.f32 (/.f32 u v) (/.f32 u v)) (fma.f32 2 (/.f32 (*.f32 u u) v) 1)))
0.2b
(+.f32 (*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (pow.f32 (E.f32) (/.f32 -2 v)) u))) 1)
0.2b
(log1p.f32 (expm1.f32 (fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (pow.f32 (E.f32) (/.f32 -2 v)) u)) 1)))
0.2b
(+.f32 (*.f32 (log.f32 (*.f32 (cbrt.f32 (fma.f32 (-.f32 1 u) (pow.f32 (E.f32) (/.f32 -2 v)) u)) (cbrt.f32 (fma.f32 (-.f32 1 u) (pow.f32 (E.f32) (/.f32 -2 v)) u)))) v) (+.f32 (*.f32 (log.f32 (cbrt.f32 (fma.f32 (-.f32 1 u) (pow.f32 (E.f32) (/.f32 -2 v)) u))) v) 1))
1.0b
(log.f32 (*.f32 (E.f32) (pow.f32 (fma.f32 (exp.f32 (/.f32 -2 v)) (-.f32 1 u) u) v)))
Compiler

Compiled 7902 to 5563 computations (29.6% saved)

localize44.0ms (0.8%)

Local error

Found 4 expressions with local error:

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

series159.0ms (2.9%)

Counts
2 → 48
Calls

2 calls:

91.0ms
(expm1.f32 (fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (pow.f32 (E.f32) (/.f32 -2 v)) u)) 1))
68.0ms
(log1p.f32 (expm1.f32 (fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (pow.f32 (E.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) (pow.f32 (E.f32) (/.f32 -2 v)) u)) 1))
0.0ms
(log1p.f32 (expm1.f32 (fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (pow.f32 (E.f32) (/.f32 -2 v)) u)) 1)))

simplify90.0ms (1.6%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
04125152
114174876
249864876

prune309.0ms (5.5%)

Pruning

7 alts after pruning (5 fresh and 2 done)

PrunedKeptTotal
New2011202
Fresh145
Picked011
Done011
Total2027209
Error
0.0b
Counts
209 → 7
Alt Table
StatusErrorProgram
28.7b
(log1p.f32 (expm1.f32 (-.f32 (/.f32 (*.f32 v u) (exp.f32 (/.f32 -2 v))) (fma.f32 v u 1))))
0.2b
(+.f32 (*.f32 (log.f32 (*.f32 (cbrt.f32 (fma.f32 (-.f32 1 u) (pow.f32 (E.f32) (/.f32 -2 v)) u)) (cbrt.f32 (fma.f32 (-.f32 1 u) (pow.f32 (E.f32) (/.f32 -2 v)) u)))) v) (+.f32 (*.f32 (log.f32 (cbrt.f32 (fma.f32 (-.f32 1 u) (pow.f32 (E.f32) (/.f32 -2 v)) u))) v) 1))
0.3b
(/.f32 (+.f32 (pow.f32 (*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (pow.f32 (E.f32) (/.f32 -2 v)) u))) 3) (pow.f32 1 3)) (+.f32 (*.f32 (*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (pow.f32 (E.f32) (/.f32 -2 v)) u))) (*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (pow.f32 (E.f32) (/.f32 -2 v)) u)))) (-.f32 (*.f32 1 1) (*.f32 (*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (pow.f32 (E.f32) (/.f32 -2 v)) u))) 1))))
30.2b
(-.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 1 (fma.f32 v u (*.f32 1/2 (/.f32 (*.f32 v (*.f32 u u)) (pow.f32 (exp.f32 (/.f32 -2 v)) 2)))))))
0.2b
(+.f32 (*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (pow.f32 (E.f32) (/.f32 -2 v)) u))) 1)
0.2b
(log1p.f32 (expm1.f32 (fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (pow.f32 (E.f32) (/.f32 -2 v)) u)) 1)))
1.0b
(log.f32 (*.f32 (E.f32) (pow.f32 (fma.f32 (exp.f32 (/.f32 -2 v)) (-.f32 1 u) u) v)))
Compiler

Compiled 8913 to 6550 computations (26.5% saved)

regimes508.0ms (9.1%)

Accuracy

Total 0.1b remaining (65.6%)

Threshold costs 0.1b (65.6%)

Counts
99 → 1
Compiler

Compiled 10550 to 7758 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
01323
12023
22423
32623
42723
52623

end140.0ms (2.5%)

Compiler

Compiled 264 to 187 computations (29.2% saved)

Profiling

Loading profile data...