Details

Time bar (total: 22.3s)

analyze269.0ms (1.2%)

Algorithm
search
Search
TrueOtherFalseIter
0%1.6%98.4%0
0%1.6%98.4%1
0%1.6%98.4%2
0.4%1.2%98.4%3
0.6%1%98.4%4
0.9%0.7%98.4%5
1%0.5%98.4%6
1.2%0.4%98.4%7
1.3%0.3%98.4%8
1.4%0.2%98.4%9
1.4%0.1%98.4%10
1.5%0.1%98.4%11
1.5%0.1%98.4%12
1.5%0%98.4%13
1.5%0%98.4%14
Compiler

Compiled 54 to 41 computations (24.1% saved)

sample2.2s (9.8%)

Results
2.1s8256×body128valid
Compiler

Compiled 147 to 112 computations (23.8% saved)

simplify33.0ms (0.1%)

Algorithm
egg-herbie
Rules
745×fma-def_binary32
441×fma-neg_binary32
420×times-frac_binary32
347×associate-*l*_binary32
269×associate-*r*_binary32
Iterations

Useful iterations: 5 (0.0ms)

IterNodesCost
02259
14259
27359
313351
421348
536746
665246
7111546
8200146
9425446
Stop Event
node limit
Counts
1 → 2

prune4.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New112
Fresh101
Picked000
Done000
Total213
Error
0.3b
Counts
3 → 1
Alt Table
StatusErrorProgram
0.3b
(*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 -1 (-.f32 (/.f32 (+.f32 u -1) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))))) -1)))
Compiler

Compiled 127 to 93 computations (26.8% saved)

localize71.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(+.f32 (/.f32 -1 (-.f32 (/.f32 (+.f32 u -1) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))))) -1)
0.3b
(*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 -1 (-.f32 (/.f32 (+.f32 u -1) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))))) -1)))
0.3b
(/.f32 (PI.f32) s)
0.3b
(/.f32 (neg.f32 (PI.f32)) s)

series1.1s (5%)

Counts
4 → 60
Calls

4 calls:

1.0s
(*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 -1 (-.f32 (/.f32 (+.f32 u -1) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))))) -1)))
104.0ms
(+.f32 (/.f32 -1 (-.f32 (/.f32 (+.f32 u -1) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))))) -1)
3.0ms
(/.f32 (neg.f32 (PI.f32)) s)
2.0ms
(/.f32 (PI.f32) s)

rewrite45.0ms (0.2%)

Algorithm
batch-egg-rewrite
Rules
252×add-sqr-sqrt_binary32
239×log1p-expm1-u_binary32
239×expm1-log1p-u_binary32
238×add-cbrt-cube_binary32
234×add-log-exp_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02297
150097
Stop Event
node limit
Counts
4 → 83
Calls

4 calls:

43.0ms
(+.f32 (/.f32 -1 (-.f32 (/.f32 (+.f32 u -1) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))))) -1)
43.0ms
(*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 -1 (-.f32 (/.f32 (+.f32 u -1) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))))) -1)))
43.0ms
(/.f32 (PI.f32) s)
43.0ms
(/.f32 (neg.f32 (PI.f32)) s)

simplify92.0ms (0.4%)

Algorithm
egg-herbie
Rules
636×associate-/l*_binary32
627×associate-/r*_binary32
438×fma-def_binary32
187×+-commutative_binary32
160×*-commutative_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
05638314
120818190
Stop Event
node limit
Counts
143 → 148

prune259.0ms (1.2%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New13711148
Fresh000
Picked101
Done000
Total13811149
Error
0.1b
Counts
149 → 11
Alt Table
StatusErrorProgram
25.3b
(*.f32 (neg.f32 s) (log.f32 (log.f32 (exp.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))))))))))
26.0b
(-.f32 (exp.f32 (log1p.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s))))))))))) 1)
25.5b
(log1p.f32 (-.f32 (pow.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s))))))) (neg.f32 s)) 1))
18.8b
(cbrt.f32 (*.f32 (pow.f32 (neg.f32 s) 3) (pow.f32 (log.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))))))) 3)))
30.4b
(pow.f32 (sqrt.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))))))))) 2)
0.9b
(pow.f32 (cbrt.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))))))))) 3)
2.3b
(*.f32 (neg.f32 s) (log.f32 (pow.f32 (exp.f32 (sqrt.f32 (log.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))))))))) (sqrt.f32 (log.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s))))))))))))
0.9b
(*.f32 (neg.f32 s) (log.f32 (pow.f32 (exp.f32 (pow.f32 (cbrt.f32 (log.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s))))))))) 2)) (cbrt.f32 (log.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s))))))))))))
0.4b
(*.f32 (neg.f32 s) (log.f32 (pow.f32 (cbrt.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))))))) 3)))
0.5b
(*.f32 (neg.f32 s) (log.f32 (pow.f32 (pow.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s))))))) 3) 1/3)))
0.4b
(*.f32 (neg.f32 s) (log.f32 (fma.f32 (cbrt.f32 (pow.f32 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))))) 2)) (/.f32 -1 (cbrt.f32 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s))))))) -1)))
Compiler

Compiled 12729 to 7310 computations (42.6% saved)

localize79.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f32 (neg.f32 s) (log.f32 (pow.f32 (cbrt.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))))))) 3)))
0.3b
(/.f32 (PI.f32) s)
0.3b
(/.f32 (neg.f32 (PI.f32)) s)
0.7b
(pow.f32 (cbrt.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))))))) 3)

series3.8s (17%)

Counts
2 → 48
Calls

2 calls:

2.4s
(*.f32 (neg.f32 s) (log.f32 (pow.f32 (cbrt.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))))))) 3)))
1.4s
(pow.f32 (cbrt.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))))))) 3)

rewrite35.0ms (0.2%)

Algorithm
batch-egg-rewrite
Rules
259×log1p-expm1-u_binary32
259×expm1-log1p-u_binary32
257×add-cbrt-cube_binary32
252×add-log-exp_binary32
249×add-exp-log_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02585
156285
Stop Event
node limit
Counts
2 → 37
Calls

2 calls:

33.0ms
(*.f32 (neg.f32 s) (log.f32 (pow.f32 (cbrt.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))))))) 3)))
33.0ms
(pow.f32 (cbrt.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))))))) 3)

simplify101.0ms (0.5%)

Algorithm
egg-herbie
Rules
753×fma-def_binary32
680×associate-/r*_binary32
625×associate-/l*_binary32
219×*-commutative_binary32
202×+-commutative_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
06308455
124098255
Stop Event
node limit
Counts
85 → 106

prune318.0ms (1.4%)

Pruning

12 alts after pruning (11 fresh and 1 done)

PrunedKeptTotal
New1511152
Fresh01010
Picked011
Done000
Total15112163
Error
0.1b
Counts
163 → 12
Alt Table
StatusErrorProgram
25.3b
(*.f32 (neg.f32 s) (log.f32 (log.f32 (exp.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))))))))))
26.0b
(-.f32 (exp.f32 (log1p.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s))))))))))) 1)
0.5b
(*.f32 (neg.f32 s) (log.f32 (*.f32 (pow.f32 (sqrt.f32 (cbrt.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s))))))))) 3) (pow.f32 (sqrt.f32 (cbrt.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s))))))))) 3))))
0.4b
(*.f32 (neg.f32 s) (log.f32 (pow.f32 (cbrt.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))))))) 3)))
25.5b
(log1p.f32 (-.f32 (pow.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s))))))) (neg.f32 s)) 1))
18.8b
(cbrt.f32 (*.f32 (pow.f32 (neg.f32 s) 3) (pow.f32 (log.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))))))) 3)))
30.4b
(pow.f32 (sqrt.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))))))))) 2)
0.9b
(pow.f32 (cbrt.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))))))))) 3)
2.3b
(*.f32 (neg.f32 s) (log.f32 (pow.f32 (exp.f32 (sqrt.f32 (log.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))))))))) (sqrt.f32 (log.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s))))))))))))
0.9b
(*.f32 (neg.f32 s) (log.f32 (pow.f32 (exp.f32 (pow.f32 (cbrt.f32 (log.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s))))))))) 2)) (cbrt.f32 (log.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s))))))))))))
0.5b
(*.f32 (neg.f32 s) (log.f32 (pow.f32 (pow.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s))))))) 3) 1/3)))
0.4b
(*.f32 (neg.f32 s) (log.f32 (fma.f32 (cbrt.f32 (pow.f32 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))))) 2)) (/.f32 -1 (cbrt.f32 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s))))))) -1)))
Compiler

Compiled 14087 to 8524 computations (39.5% saved)

localize85.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(/.f32 (PI.f32) s)
0.3b
(/.f32 (neg.f32 (PI.f32)) s)
0.4b
(fma.f32 (cbrt.f32 (pow.f32 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))))) 2)) (/.f32 -1 (cbrt.f32 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s))))))) -1)
0.5b
(pow.f32 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))))) 2)

series8.3s (37.4%)

Counts
2 → 48
Calls

2 calls:

8.2s
(fma.f32 (cbrt.f32 (pow.f32 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))))) 2)) (/.f32 -1 (cbrt.f32 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s))))))) -1)
169.0ms
(pow.f32 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))))) 2)

rewrite38.0ms (0.2%)

Algorithm
batch-egg-rewrite
Rules
260×add-sqr-sqrt_binary32
251×log1p-expm1-u_binary32
251×expm1-log1p-u_binary32
250×add-cbrt-cube_binary32
243×add-cube-cbrt_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
024121
153678
Stop Event
node limit
Counts
2 → 30
Calls

2 calls:

37.0ms
(fma.f32 (cbrt.f32 (pow.f32 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))))) 2)) (/.f32 -1 (cbrt.f32 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s))))))) -1)
37.0ms
(pow.f32 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))))) 2)

simplify428.0ms (1.9%)

Algorithm
egg-herbie
Rules
911×fma-def_binary32
451×times-frac_binary32
unpow2_binary32
cube-mult_binary32
unpow3_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0337470034
Stop Event
node limit
Counts
78 → 96

prune1.9s (8.7%)

Pruning

12 alts after pruning (10 fresh and 2 done)

PrunedKeptTotal
New1880188
Fresh01010
Picked011
Done011
Total18812200
Error
0.1b
Counts
200 → 12
Alt Table
StatusErrorProgram
25.3b
(*.f32 (neg.f32 s) (log.f32 (log.f32 (exp.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))))))))))
26.0b
(-.f32 (exp.f32 (log1p.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s))))))))))) 1)
0.5b
(*.f32 (neg.f32 s) (log.f32 (*.f32 (pow.f32 (sqrt.f32 (cbrt.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s))))))))) 3) (pow.f32 (sqrt.f32 (cbrt.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s))))))))) 3))))
0.4b
(*.f32 (neg.f32 s) (log.f32 (pow.f32 (cbrt.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))))))) 3)))
25.5b
(log1p.f32 (-.f32 (pow.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s))))))) (neg.f32 s)) 1))
18.8b
(cbrt.f32 (*.f32 (pow.f32 (neg.f32 s) 3) (pow.f32 (log.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))))))) 3)))
30.4b
(pow.f32 (sqrt.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))))))))) 2)
0.9b
(pow.f32 (cbrt.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))))))))) 3)
2.3b
(*.f32 (neg.f32 s) (log.f32 (pow.f32 (exp.f32 (sqrt.f32 (log.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))))))))) (sqrt.f32 (log.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s))))))))))))
0.9b
(*.f32 (neg.f32 s) (log.f32 (pow.f32 (exp.f32 (pow.f32 (cbrt.f32 (log.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s))))))))) 2)) (cbrt.f32 (log.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s))))))))))))
0.5b
(*.f32 (neg.f32 s) (log.f32 (pow.f32 (pow.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s))))))) 3) 1/3)))
0.4b
(*.f32 (neg.f32 s) (log.f32 (fma.f32 (cbrt.f32 (pow.f32 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))))) 2)) (/.f32 -1 (cbrt.f32 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s))))))) -1)))
Compiler

Compiled 95826 to 63757 computations (33.5% saved)

localize89.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(/.f32 (PI.f32) s)
0.3b
(/.f32 (neg.f32 (PI.f32)) s)
0.4b
(*.f32 (pow.f32 (sqrt.f32 (cbrt.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s))))))))) 3) (pow.f32 (sqrt.f32 (cbrt.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s))))))))) 3))
0.8b
(pow.f32 (sqrt.f32 (cbrt.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s))))))))) 3)

series1.4s (6.4%)

Counts
2 → 48
Calls

2 calls:

1.2s
(pow.f32 (sqrt.f32 (cbrt.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s))))))))) 3)
199.0ms
(*.f32 (pow.f32 (sqrt.f32 (cbrt.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s))))))))) 3) (pow.f32 (sqrt.f32 (cbrt.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s))))))))) 3))

rewrite39.0ms (0.2%)

Algorithm
batch-egg-rewrite
Rules
256×log1p-expm1-u_binary32
256×expm1-log1p-u_binary32
252×add-cbrt-cube_binary32
244×add-log-exp_binary32
243×add-cube-cbrt_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
02488
155080
Stop Event
node limit
Counts
2 → 45
Calls

2 calls:

38.0ms
(*.f32 (pow.f32 (sqrt.f32 (cbrt.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s))))))))) 3) (pow.f32 (sqrt.f32 (cbrt.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s))))))))) 3))
38.0ms
(pow.f32 (sqrt.f32 (cbrt.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s))))))))) 3)

simplify94.0ms (0.4%)

Algorithm
egg-herbie
Rules
612×fma-def_binary32
432×times-frac_binary32
404×associate-/r*_binary32
306×associate-/l*_binary32
236×associate-*l/_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
05167806
118837655
Stop Event
node limit
Counts
93 → 102

prune618.0ms (2.8%)

Pruning

11 alts after pruning (10 fresh and 1 done)

PrunedKeptTotal
New2393242
Fresh279
Picked101
Done112
Total24311254
Error
0.1b
Counts
254 → 11
Alt Table
StatusErrorProgram
25.3b
(*.f32 (neg.f32 s) (log.f32 (log.f32 (exp.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))))))))))
26.0b
(-.f32 (exp.f32 (log1p.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s))))))))))) 1)
0.4b
(*.f32 (neg.f32 s) (log.f32 (*.f32 (pow.f32 (sqrt.f32 (cbrt.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s))))))))) 3) (-.f32 (exp.f32 (log1p.f32 (sqrt.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))))))))) 1))))
0.9b
(*.f32 (neg.f32 s) (log.f32 (pow.f32 (exp.f32 (pow.f32 (cbrt.f32 (log.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s))))))))) 2)) (cbrt.f32 (log.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s))))))))))))
25.5b
(log1p.f32 (-.f32 (pow.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s))))))) (neg.f32 s)) 1))
18.8b
(cbrt.f32 (*.f32 (pow.f32 (neg.f32 s) 3) (pow.f32 (log.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))))))) 3)))
30.4b
(pow.f32 (sqrt.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))))))))) 2)
0.9b
(pow.f32 (cbrt.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))))))))) 3)
0.6b
(*.f32 (neg.f32 s) (log.f32 (exp.f32 (*.f32 (log.f32 (pow.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s))))))) 1/6)) 6))))
0.4b
(*.f32 (neg.f32 s) (log.f32 (fma.f32 (cbrt.f32 (pow.f32 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))))) 2)) (/.f32 -1 (cbrt.f32 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s))))))) -1)))
0.4b
(*.f32 (neg.f32 s) (log.f32 (*.f32 (pow.f32 (sqrt.f32 (cbrt.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s))))))))) 3) (exp.f32 (*.f32 (log.f32 (cbrt.f32 (+.f32 -1 (/.f32 -1 (-.f32 (/.f32 (+.f32 -1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s))))))))) 3/2)))))
Compiler

Compiled 25775 to 15280 computations (40.7% saved)

regimes478.0ms (2.1%)

Accuracy

Total 0.2b remaining (58.4%)

Threshold costs 0.2b (58.4%)

Counts
81 → 1
Compiler

Compiled 10635 to 8090 computations (23.9% saved)

simplify4.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
02690
14590
26490
37890
48590
58790
Stop Event
saturated

end318.0ms (1.4%)

Compiler

Compiled 595 to 451 computations (24.2% saved)

Profiling

Loading profile data...