Details

Time bar (total: 5.4s)

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

sample199.0ms (3.7%)

Algorithm
intervals
Results
24.0ms256×body128valid
6.0ms256×pre128true
Compiler

Compiled 51 to 39 computations (23.5% saved)

simplify156.0ms (2.9%)

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

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

series253.0ms (4.7%)

Counts
4 → 80
Calls

4 calls:

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

simplify97.0ms (1.8%)

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

prune190.0ms (3.6%)

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
30.3b
(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)
30.1b
(-.f32 (fma.f32 1/3 (/.f32 v (pow.f32 (/.f32 (exp.f32 (/.f32 -2 v)) u) 3)) (+.f32 (/.f32 (*.f32 v u) (exp.f32 (/.f32 -2 v))) (+.f32 (/.f32 (*.f32 v (*.f32 u u)) (exp.f32 (/.f32 -2 v))) (/.f32 (*.f32 v (pow.f32 u 3)) (exp.f32 (/.f32 -2 v)))))) (fma.f32 (*.f32 v (*.f32 u u)) 1/2 (+.f32 1 (fma.f32 1/3 (*.f32 v (pow.f32 u 3)) (fma.f32 v u (fma.f32 1/2 (/.f32 (*.f32 v (*.f32 u u)) (pow.f32 (exp.f32 (/.f32 -2 v)) 2)) (/.f32 (*.f32 v (pow.f32 u 3)) (pow.f32 (exp.f32 (/.f32 -2 v)) 2))))))))
0.1b
(fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (pow.f32 (exp.f32 (/.f32 1 (sqrt.f32 v))) (/.f32 -2 (sqrt.f32 v))) u)) 1)
1.0b
(log.f32 (*.f32 (E.f32) (pow.f32 (fma.f32 (exp.f32 (/.f32 -2 v)) (-.f32 1 u) u) v)))
29.5b
(-.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)))))) (fma.f32 4 (/.f32 (pow.f32 u 4) (pow.f32 v 3)) (+.f32 1 (fma.f32 2 (/.f32 (*.f32 u u) v) (fma.f32 4 (*.f32 (/.f32 u v) (/.f32 u v)) (*.f32 14/3 (/.f32 (*.f32 u u) (pow.f32 v 3))))))))
0.1b
(+.f32 (*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u))) 1)
0.2b
(log1p.f32 (expm1.f32 (fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)) 1)))
Compiler

Compiled 5362 to 3836 computations (28.5% saved)

localize44.0ms (0.8%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(pow.f32 (exp.f32 (/.f32 1 (sqrt.f32 v))) (/.f32 -2 (sqrt.f32 v)))
0.1b
(exp.f32 (/.f32 1 (sqrt.f32 v)))
0.2b
(/.f32 -2 (sqrt.f32 v))
0.2b
(/.f32 1 (sqrt.f32 v))

series63.0ms (1.2%)

Counts
4 → 2
Calls

4 calls:

24.0ms
(pow.f32 (exp.f32 (/.f32 1 (sqrt.f32 v))) (/.f32 -2 (sqrt.f32 v)))
15.0ms
(/.f32 -2 (sqrt.f32 v))
14.0ms
(/.f32 1 (sqrt.f32 v))
10.0ms
(exp.f32 (/.f32 1 (sqrt.f32 v)))

rewrite30.0ms (0.6%)

Algorithm
rewrite-expression-head
Rules
90×times-frac_binary32
74×*-un-lft-identity_binary32
74×add-sqr-sqrt_binary32
74×add-cube-cbrt_binary32
51×sqrt-prod_binary32
Counts
4 → 180
Calls

4 calls:

7.0ms
(pow.f32 (exp.f32 (/.f32 1 (sqrt.f32 v))) (/.f32 -2 (sqrt.f32 v)))
5.0ms
(/.f32 1 (sqrt.f32 v))
3.0ms
(exp.f32 (/.f32 1 (sqrt.f32 v)))
3.0ms
(/.f32 -2 (sqrt.f32 v))

simplify102.0ms (1.9%)

Algorithm
egg-herbie
Rules
502×times-frac_binary32
432×unswap-sqr_binary32
399×associate-/l*_binary32
355×associate-/l/_binary32
312×fma-def_binary32
Counts
182 → 215
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01472352
12772190
26202182
314042171
436862171
551862171

prune213.0ms (4%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New2150215
Fresh066
Picked011
Done000
Total2157222
Error
0.0b
Counts
222 → 7
Alt Table
StatusErrorProgram
30.3b
(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)
30.1b
(-.f32 (fma.f32 1/3 (/.f32 v (pow.f32 (/.f32 (exp.f32 (/.f32 -2 v)) u) 3)) (+.f32 (/.f32 (*.f32 v u) (exp.f32 (/.f32 -2 v))) (+.f32 (/.f32 (*.f32 v (*.f32 u u)) (exp.f32 (/.f32 -2 v))) (/.f32 (*.f32 v (pow.f32 u 3)) (exp.f32 (/.f32 -2 v)))))) (fma.f32 (*.f32 v (*.f32 u u)) 1/2 (+.f32 1 (fma.f32 1/3 (*.f32 v (pow.f32 u 3)) (fma.f32 v u (fma.f32 1/2 (/.f32 (*.f32 v (*.f32 u u)) (pow.f32 (exp.f32 (/.f32 -2 v)) 2)) (/.f32 (*.f32 v (pow.f32 u 3)) (pow.f32 (exp.f32 (/.f32 -2 v)) 2))))))))
0.1b
(fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (pow.f32 (exp.f32 (/.f32 1 (sqrt.f32 v))) (/.f32 -2 (sqrt.f32 v))) u)) 1)
1.0b
(log.f32 (*.f32 (E.f32) (pow.f32 (fma.f32 (exp.f32 (/.f32 -2 v)) (-.f32 1 u) u) v)))
29.5b
(-.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)))))) (fma.f32 4 (/.f32 (pow.f32 u 4) (pow.f32 v 3)) (+.f32 1 (fma.f32 2 (/.f32 (*.f32 u u) v) (fma.f32 4 (*.f32 (/.f32 u v) (/.f32 u v)) (*.f32 14/3 (/.f32 (*.f32 u u) (pow.f32 v 3))))))))
0.1b
(+.f32 (*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u))) 1)
0.2b
(log1p.f32 (expm1.f32 (fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)) 1)))
Compiler

Compiled 6083 to 3868 computations (36.4% saved)

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

series286.0ms (5.3%)

Counts
2 → 48
Calls

2 calls:

221.0ms
(*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)))
65.0ms
(+.f32 (*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.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:

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

simplify108.0ms (2%)

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

Useful iterations: 3 (0.0ms)

IterNodesCost
02573739
17783583
230633423
344073411
450653411

prune260.0ms (4.9%)

Pruning

8 alts after pruning (7 fresh and 1 done)

PrunedKeptTotal
New2206226
Fresh415
Picked101
Done011
Total2258233
Error
0.0b
Counts
233 → 8
Alt Table
StatusErrorProgram
0.1b
(fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (pow.f32 (exp.f32 (/.f32 1 (sqrt.f32 v))) (/.f32 -2 (sqrt.f32 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 u 2 (*.f32 4/3 (/.f32 u (*.f32 v v)))))) (fma.f32 4 (*.f32 (/.f32 u v) (/.f32 u v)) (fma.f32 2 (*.f32 u (/.f32 u v)) 1)))
30.3b
(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)
0.2b
(+.f32 (log1p.f32 (expm1.f32 (*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u))))) 1)
30.1b
(-.f32 (+.f32 (+.f32 (/.f32 (*.f32 v u) (exp.f32 (/.f32 -2 v))) (/.f32 (*.f32 v (*.f32 u u)) (exp.f32 (/.f32 -2 v)))) (*.f32 (+.f32 (/.f32 1/3 (pow.f32 (exp.f32 (/.f32 -2 v)) 2)) 1) (/.f32 (*.f32 v (pow.f32 u 3)) (exp.f32 (/.f32 -2 v))))) (fma.f32 (*.f32 v (*.f32 u u)) 1/2 (+.f32 (fma.f32 1/3 (*.f32 v (pow.f32 u 3)) (fma.f32 v u (fma.f32 1/2 (/.f32 (*.f32 v (*.f32 u u)) (pow.f32 (exp.f32 (/.f32 -2 v)) 2)) (/.f32 (*.f32 v (pow.f32 u 3)) (pow.f32 (exp.f32 (/.f32 -2 v)) 2))))) 1)))
30.4b
(fma.f32 u (-.f32 (/.f32 v (exp.f32 (/.f32 -2 v))) v) -1)
0.2b
(/.f32 (-.f32 (*.f32 (*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u))) (*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)))) (*.f32 1 1)) (-.f32 (*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u))) 1))
0.9b
(log.f32 (exp.f32 (+.f32 (*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u))) 1)))
Compiler

Compiled 7539 to 5444 computations (27.8% saved)

localize41.0ms (0.8%)

Local error

Found 4 expressions with local error:

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

series309.0ms (5.8%)

Counts
2 → 48
Calls

2 calls:

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

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 (*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u))))
0.0ms
(log1p.f32 (expm1.f32 (*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)))))

simplify84.0ms (1.6%)

Algorithm
egg-herbie
Rules
653×times-frac_binary32
408×associate-/l*_binary32
402×fma-def_binary32
392×associate-/r*_binary32
179×associate-*l*_binary32
Counts
70 → 112
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
04595081
115694881
250784881

prune281.0ms (5.2%)

Pruning

8 alts after pruning (6 fresh and 2 done)

PrunedKeptTotal
New2120212
Fresh066
Picked011
Done011
Total2128220
Error
0.0b
Counts
220 → 8
Alt Table
StatusErrorProgram
0.1b
(fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (pow.f32 (exp.f32 (/.f32 1 (sqrt.f32 v))) (/.f32 -2 (sqrt.f32 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 u 2 (*.f32 4/3 (/.f32 u (*.f32 v v)))))) (fma.f32 4 (*.f32 (/.f32 u v) (/.f32 u v)) (fma.f32 2 (*.f32 u (/.f32 u v)) 1)))
30.3b
(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)
0.2b
(+.f32 (log1p.f32 (expm1.f32 (*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u))))) 1)
30.1b
(-.f32 (+.f32 (+.f32 (/.f32 (*.f32 v u) (exp.f32 (/.f32 -2 v))) (/.f32 (*.f32 v (*.f32 u u)) (exp.f32 (/.f32 -2 v)))) (*.f32 (+.f32 (/.f32 1/3 (pow.f32 (exp.f32 (/.f32 -2 v)) 2)) 1) (/.f32 (*.f32 v (pow.f32 u 3)) (exp.f32 (/.f32 -2 v))))) (fma.f32 (*.f32 v (*.f32 u u)) 1/2 (+.f32 (fma.f32 1/3 (*.f32 v (pow.f32 u 3)) (fma.f32 v u (fma.f32 1/2 (/.f32 (*.f32 v (*.f32 u u)) (pow.f32 (exp.f32 (/.f32 -2 v)) 2)) (/.f32 (*.f32 v (pow.f32 u 3)) (pow.f32 (exp.f32 (/.f32 -2 v)) 2))))) 1)))
30.4b
(fma.f32 u (-.f32 (/.f32 v (exp.f32 (/.f32 -2 v))) v) -1)
0.2b
(/.f32 (-.f32 (*.f32 (*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u))) (*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)))) (*.f32 1 1)) (-.f32 (*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u))) 1))
0.9b
(log.f32 (exp.f32 (+.f32 (*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u))) 1)))
Compiler

Compiled 9921 to 7512 computations (24.3% saved)

regimes864.0ms (16.1%)

Accuracy

Total 0.1b remaining (72.3%)

Threshold costs 0.1b (72.3%)

Counts
137 → 1
Compiler

Compiled 14516 to 10724 computations (26.1% 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
01527
11927
22327
32527
42627
52527

end1.0ms (0%)

Compiler

Compiled 20 to 15 computations (25% saved)

sample1.6s (29.3%)

Algorithm
intervals
Results
730.0ms8000×body128valid
212.0ms8000×pre128true
Compiler

Compiled 346 to 239 computations (30.9% saved)

Profiling

Loading profile data...