Details

Time bar (total: 5.2s)

analyze126.0ms (2.4%)

Algorithm
search
Search
TrueOtherFalseIter
0%24.7%75.3%0
0%24.7%75.3%1
0%24.7%75.3%2
12.4%12.4%75.3%3
12.4%12.4%75.3%4
18.5%6.2%75.3%5
18.5%6.2%75.3%6
21.6%3.1%75.3%7
21.6%3.1%75.3%8
23.2%1.5%75.3%9
23.2%1.5%75.3%10
23.9%0.8%75.3%11
23.9%0.8%75.3%12
24.3%0.4%75.3%13
24.3%0.4%75.3%14
Compiler

Compiled 35 to 18 computations (48.6% saved)

sample1.4s (27.7%)

Results
1.4s8256×body128valid
Compiler

Compiled 98 to 49 computations (50% saved)

simplify79.0ms (1.5%)

Algorithm
egg-herbie
Rules
505×fma-def_binary32
440×times-frac_binary32
349×distribute-rgt-in_binary32
300×fma-neg_binary32
273×distribute-rgt-out_binary32
Counts
1 → 2
Iterations

Useful iterations: 6 (0.0ms)

IterNodesCost
01243
13843
28241
318141
435739
577230
6229229
7334129
8424329
9492229
10487529

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 (/.f32 1 s) (+.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) (+.f32 (exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s)) 2)))
0.2b
(/.f32 (exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s)) (*.f32 (*.f32 s (+.f32 1 (exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s)))) (+.f32 1 (exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s)))))
Compiler

Compiled 142 to 75 computations (47.2% saved)

localize42.0ms (0.8%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(+.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) (+.f32 (exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s)) 2))
0.0b
(exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s))
0.1b
(exp.f32 (/.f32 (fabs.f32 x) s))
0.1b
(/.f32 (/.f32 1 s) (+.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) (+.f32 (exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s)) 2)))

series105.0ms (2%)

Counts
4 → 80
Calls

4 calls:

64.0ms
(/.f32 (/.f32 1 s) (+.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) (+.f32 (exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s)) 2)))
21.0ms
(+.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) (+.f32 (exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s)) 2))
10.0ms
(exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s))
10.0ms
(exp.f32 (/.f32 (fabs.f32 x) s))

rewrite83.0ms (1.6%)

Algorithm
batch-egg-rewrite
Rules
678×prod-diff_binary32
225×log1p-udef_binary32
164×add-sqr-sqrt_binary32
155×log1p-expm1-u_binary32
155×expm1-log1p-u_binary32
Counts
4 → 114
Calls

4 calls:

80.0ms
(+.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) (+.f32 (exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s)) 2))
80.0ms
(exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s))
80.0ms
(exp.f32 (/.f32 (fabs.f32 x) s))
80.0ms
(/.f32 (/.f32 1 s) (+.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) (+.f32 (exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s)) 2)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01568
133142
2343542
3499242
000
100

simplify94.0ms (1.8%)

Algorithm
egg-herbie
Rules
567×cancel-sign-sub-inv_binary32
382×times-frac_binary32
368×unswap-sqr_binary32
292×fma-neg_binary32
228×distribute-neg-frac_binary32
Counts
194 → 125
Iterations

Useful iterations: 5 (0.0ms)

IterNodesCost
0751698
12021650
25711630
326761596
449401596
549781588
649361588

prune134.0ms (2.6%)

Pruning

5 alts after pruning (5 fresh and 0 done)

PrunedKeptTotal
New1205125
Fresh101
Picked101
Done000
Total1225127
Error
0.1b
Counts
127 → 5
Alt Table
StatusErrorProgram
0.2b
(/.f32 1 (fma.f32 s (+.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) 2) (/.f32 s (exp.f32 (/.f32 (fabs.f32 x) s)))))
0.2b
(/.f32 (/.f32 1 s) (exp.f32 (log.f32 (+.f32 2 (*.f32 2 (cosh.f32 (/.f32 x s)))))))
0.2b
(/.f32 (/.f32 1 s) (expm1.f32 (log1p.f32 (+.f32 2 (*.f32 2 (cosh.f32 (/.f32 x s)))))))
0.8b
(expm1.f32 (log1p.f32 (/.f32 (/.f32 1 s) (+.f32 2 (*.f32 2 (cosh.f32 (/.f32 x s)))))))
0.2b
(*.f32 (/.f32 1 (sqrt.f32 (+.f32 2 (*.f32 2 (cosh.f32 (/.f32 x s)))))) (/.f32 (/.f32 1 s) (sqrt.f32 (+.f32 2 (*.f32 2 (cosh.f32 (/.f32 x s)))))))
Compiler

Compiled 2974 to 1646 computations (44.7% saved)

localize32.0ms (0.6%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(/.f32 1 (fma.f32 s (+.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) 2) (/.f32 s (exp.f32 (/.f32 (fabs.f32 x) s)))))
0.0b
(/.f32 s (exp.f32 (/.f32 (fabs.f32 x) s)))
0.1b
(exp.f32 (/.f32 (fabs.f32 x) s))
0.1b
(fma.f32 s (+.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) 2) (/.f32 s (exp.f32 (/.f32 (fabs.f32 x) s))))

series169.0ms (3.2%)

Counts
3 → 56
Calls

3 calls:

99.0ms
(/.f32 1 (fma.f32 s (+.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) 2) (/.f32 s (exp.f32 (/.f32 (fabs.f32 x) s)))))
45.0ms
(fma.f32 s (+.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) 2) (/.f32 s (exp.f32 (/.f32 (fabs.f32 x) s))))
25.0ms
(/.f32 s (exp.f32 (/.f32 (fabs.f32 x) s)))

rewrite93.0ms (1.8%)

Algorithm
batch-egg-rewrite
Rules
578×prod-diff_binary32
211×expm1-udef_binary32
211×log1p-udef_binary32
185×log-pow_binary32
146×fma-def_binary32
Counts
3 → 88
Calls

3 calls:

91.0ms
(/.f32 1 (fma.f32 s (+.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) 2) (/.f32 s (exp.f32 (/.f32 (fabs.f32 x) s)))))
91.0ms
(/.f32 s (exp.f32 (/.f32 (fabs.f32 x) s)))
91.0ms
(fma.f32 s (+.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) 2) (/.f32 s (exp.f32 (/.f32 (fabs.f32 x) s))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01264
125854
2301454
3486254
4518354
000
100

simplify69.0ms (1.3%)

Algorithm
egg-herbie
Rules
753×fma-def_binary32
417×fma-neg_binary32
363×cancel-sign-sub-inv_binary32
320×associate-/r/_binary32
306×associate-/l/_binary32
Counts
144 → 116
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
0801408
12081364
25381324
320621316
448881312
550261312

prune188.0ms (3.6%)

Pruning

5 alts after pruning (5 fresh and 0 done)

PrunedKeptTotal
New1702172
Fresh134
Picked101
Done000
Total1725177
Error
0.1b
Counts
177 → 5
Alt Table
StatusErrorProgram
0.2b
(/.f32 1 (expm1.f32 (log1p.f32 (fma.f32 s (+.f32 (exp.f32 (/.f32 x s)) 2) (/.f32 s (exp.f32 (/.f32 x s)))))))
0.2b
(*.f32 (/.f32 1 (sqrt.f32 (+.f32 2 (*.f32 2 (cosh.f32 (/.f32 x s)))))) (/.f32 (/.f32 1 s) (sqrt.f32 (+.f32 2 (*.f32 2 (cosh.f32 (/.f32 x s)))))))
26.9b
(/.f32 1 (/.f32 (+.f32 (pow.f32 (*.f32 s (+.f32 (exp.f32 (/.f32 x s)) 2)) 3) (pow.f32 (/.f32 s (exp.f32 (/.f32 x s))) 3)) (fma.f32 (*.f32 s (+.f32 (exp.f32 (/.f32 x s)) 2)) (*.f32 s (+.f32 (exp.f32 (/.f32 x s)) 2)) (-.f32 (pow.f32 (/.f32 s (exp.f32 (/.f32 x s))) 2) (*.f32 (*.f32 s (+.f32 (exp.f32 (/.f32 x s)) 2)) (/.f32 s (exp.f32 (/.f32 x s))))))))
0.2b
(/.f32 (/.f32 1 s) (exp.f32 (log.f32 (+.f32 2 (*.f32 2 (cosh.f32 (/.f32 x s)))))))
0.2b
(/.f32 (/.f32 1 s) (expm1.f32 (log1p.f32 (+.f32 2 (*.f32 2 (cosh.f32 (/.f32 x s)))))))
Compiler

Compiled 4092 to 1758 computations (57% saved)

localize35.0ms (0.7%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(expm1.f32 (log1p.f32 (fma.f32 s (+.f32 (exp.f32 (/.f32 x s)) 2) (/.f32 s (exp.f32 (/.f32 x s))))))
0.1b
(exp.f32 (/.f32 x s))
0.1b
(fma.f32 s (+.f32 (exp.f32 (/.f32 x s)) 2) (/.f32 s (exp.f32 (/.f32 x s))))
2.1b
(log1p.f32 (fma.f32 s (+.f32 (exp.f32 (/.f32 x s)) 2) (/.f32 s (exp.f32 (/.f32 x s)))))

series567.0ms (10.8%)

Counts
4 → 84
Calls

4 calls:

495.0ms
(log1p.f32 (fma.f32 s (+.f32 (exp.f32 (/.f32 x s)) 2) (/.f32 s (exp.f32 (/.f32 x s)))))
35.0ms
(expm1.f32 (log1p.f32 (fma.f32 s (+.f32 (exp.f32 (/.f32 x s)) 2) (/.f32 s (exp.f32 (/.f32 x s))))))
32.0ms
(fma.f32 s (+.f32 (exp.f32 (/.f32 x s)) 2) (/.f32 s (exp.f32 (/.f32 x s))))
5.0ms
(exp.f32 (/.f32 x s))

rewrite102.0ms (1.9%)

Algorithm
batch-egg-rewrite
Rules
670×prod-diff_binary32
200×expm1-udef_binary32
200×log1p-udef_binary32
176×log-pow_binary32
155×fma-def_binary32
Counts
4 → 128
Calls

4 calls:

98.0ms
(expm1.f32 (log1p.f32 (fma.f32 s (+.f32 (exp.f32 (/.f32 x s)) 2) (/.f32 s (exp.f32 (/.f32 x s))))))
98.0ms
(exp.f32 (/.f32 x s))
98.0ms
(fma.f32 s (+.f32 (exp.f32 (/.f32 x s)) 2) (/.f32 s (exp.f32 (/.f32 x s))))
98.0ms
(log1p.f32 (fma.f32 s (+.f32 (exp.f32 (/.f32 x s)) 2) (/.f32 s (exp.f32 (/.f32 x s)))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01171
121771
2281971
3495571
4547871
000
100

simplify66.0ms (1.3%)

Algorithm
egg-herbie
Rules
635×associate-/l*_binary32
274×fma-def_binary32
263×cancel-sign-sub-inv_binary32
241×associate-+r+_binary32
195×+-commutative_binary32
Counts
212 → 148
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02192581
17082547
227592469
351172469

prune193.0ms (3.7%)

Pruning

5 alts after pruning (5 fresh and 0 done)

PrunedKeptTotal
New1722174
Fresh134
Picked101
Done000
Total1745179
Error
0.1b
Counts
179 → 5
Alt Table
StatusErrorProgram
0.2b
(/.f32 1 (expm1.f32 (log1p.f32 (fma.f32 s (+.f32 (exp.f32 (/.f32 x s)) 2) (/.f32 s (pow.f32 (exp.f32 1) (/.f32 x s)))))))
0.2b
(*.f32 (/.f32 1 (sqrt.f32 (+.f32 2 (*.f32 2 (cosh.f32 (/.f32 x s)))))) (/.f32 (/.f32 1 s) (sqrt.f32 (+.f32 2 (*.f32 2 (cosh.f32 (/.f32 x s)))))))
29.2b
(/.f32 1 (expm1.f32 (-.f32 (log1p.f32 (pow.f32 (fma.f32 s (+.f32 (exp.f32 (/.f32 x s)) 2) (/.f32 s (exp.f32 (/.f32 x s)))) 3)) (log.f32 (+.f32 1 (-.f32 (pow.f32 (fma.f32 s (+.f32 (exp.f32 (/.f32 x s)) 2) (/.f32 s (exp.f32 (/.f32 x s)))) 2) (fma.f32 s (+.f32 (exp.f32 (/.f32 x s)) 2) (/.f32 s (exp.f32 (/.f32 x s))))))))))
0.2b
(/.f32 (/.f32 1 s) (exp.f32 (log.f32 (+.f32 2 (*.f32 2 (cosh.f32 (/.f32 x s)))))))
0.2b
(/.f32 (/.f32 1 s) (expm1.f32 (log1p.f32 (+.f32 2 (*.f32 2 (cosh.f32 (/.f32 x s)))))))
Compiler

Compiled 5479 to 2862 computations (47.8% saved)

localize44.0ms (0.8%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(pow.f32 (exp.f32 1) (/.f32 x s))
0.1b
(exp.f32 (/.f32 x s))
0.1b
(fma.f32 s (+.f32 (exp.f32 (/.f32 x s)) 2) (/.f32 s (pow.f32 (exp.f32 1) (/.f32 x s))))
2.1b
(log1p.f32 (fma.f32 s (+.f32 (exp.f32 (/.f32 x s)) 2) (/.f32 s (pow.f32 (exp.f32 1) (/.f32 x s)))))

series550.0ms (10.5%)

Counts
3 → 72
Calls

3 calls:

507.0ms
(log1p.f32 (fma.f32 s (+.f32 (exp.f32 (/.f32 x s)) 2) (/.f32 s (pow.f32 (exp.f32 1) (/.f32 x s)))))
37.0ms
(fma.f32 s (+.f32 (exp.f32 (/.f32 x s)) 2) (/.f32 s (pow.f32 (exp.f32 1) (/.f32 x s))))
6.0ms
(pow.f32 (exp.f32 1) (/.f32 x s))

rewrite118.0ms (2.2%)

Algorithm
batch-egg-rewrite
Rules
424×prod-diff_binary32
340×fma-udef_binary32
224×fma-neg_binary32
217×expm1-udef_binary32
217×log1p-udef_binary32
Counts
3 → 60
Calls

3 calls:

116.0ms
(pow.f32 (exp.f32 1) (/.f32 x s))
116.0ms
(fma.f32 s (+.f32 (exp.f32 (/.f32 x s)) 2) (/.f32 s (pow.f32 (exp.f32 1) (/.f32 x s))))
116.0ms
(log1p.f32 (fma.f32 s (+.f32 (exp.f32 (/.f32 x s)) 2) (/.f32 s (pow.f32 (exp.f32 1) (/.f32 x s)))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01350
125250
2306250
3482950
4483450
5498550
000
100

simplify58.0ms (1.1%)

Algorithm
egg-herbie
Rules
635×associate-/l*_binary32
274×fma-def_binary32
263×cancel-sign-sub-inv_binary32
241×associate-+r+_binary32
195×+-commutative_binary32
Counts
132 → 109
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02192149
17082121
227592043
351172043

prune145.0ms (2.8%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New1350135
Fresh044
Picked011
Done000
Total1355140
Error
0.1b
Counts
140 → 5
Alt Table
StatusErrorProgram
0.2b
(/.f32 1 (expm1.f32 (log1p.f32 (fma.f32 s (+.f32 (exp.f32 (/.f32 x s)) 2) (/.f32 s (pow.f32 (exp.f32 1) (/.f32 x s)))))))
0.2b
(*.f32 (/.f32 1 (sqrt.f32 (+.f32 2 (*.f32 2 (cosh.f32 (/.f32 x s)))))) (/.f32 (/.f32 1 s) (sqrt.f32 (+.f32 2 (*.f32 2 (cosh.f32 (/.f32 x s)))))))
29.2b
(/.f32 1 (expm1.f32 (-.f32 (log1p.f32 (pow.f32 (fma.f32 s (+.f32 (exp.f32 (/.f32 x s)) 2) (/.f32 s (exp.f32 (/.f32 x s)))) 3)) (log.f32 (+.f32 1 (-.f32 (pow.f32 (fma.f32 s (+.f32 (exp.f32 (/.f32 x s)) 2) (/.f32 s (exp.f32 (/.f32 x s)))) 2) (fma.f32 s (+.f32 (exp.f32 (/.f32 x s)) 2) (/.f32 s (exp.f32 (/.f32 x s))))))))))
0.2b
(/.f32 (/.f32 1 s) (exp.f32 (log.f32 (+.f32 2 (*.f32 2 (cosh.f32 (/.f32 x s)))))))
0.2b
(/.f32 (/.f32 1 s) (expm1.f32 (log1p.f32 (+.f32 2 (*.f32 2 (cosh.f32 (/.f32 x s)))))))
Compiler

Compiled 4330 to 2445 computations (43.5% saved)

regimes595.0ms (11.4%)

Accuracy

Total 0.0b remaining (28.2%)

Threshold costs 0.0b (28.2%)

Counts
130 → 1
Compiler

Compiled 13626 to 9458 computations (30.6% saved)

simplify2.0ms (0%)

Algorithm
egg-herbie
Rules
+-commutative_binary32
sub-neg_binary32
exp-1-e_binary32
1-exp_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01837
12537
22637
32437

end95.0ms (1.8%)

Compiler

Compiled 188 to 124 computations (34% saved)

Profiling

Loading profile data...