Details

Time bar (total: 46.5s)

analyze278.0ms (0.6%)

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.5s (5.3%)

Results
2.4s8256×body128valid
Compiler

Compiled 147 to 112 computations (23.8% saved)

simplify92.0ms (0.2%)

Algorithm
egg-herbie
Rules
1145×fma-def_binary32
518×unswap-sqr_binary32
445×fma-neg_binary32
420×times-frac_binary32
354×associate-*l*_binary32
Counts
1 → 2
Iterations

Useful iterations: 5 (0.0ms)

IterNodesCost
02259
14259
27259
312051
417948
531946
650546
778846
8124946
9258446
10441946
11483246
12482746

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 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1)))
Compiler

Compiled 127 to 93 computations (26.8% saved)

localize83.0ms (0.2%)

Local error

Found 4 expressions with local error:

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

series1.9s (4.1%)

Counts
4 → 60
Calls

4 calls:

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

rewrite342.0ms (0.7%)

Algorithm
egg-rewrite
Rules
87×egg
79×egg
22×egg
19×egg
Counts
4 → 207
Calls

4 calls:

98.0ms
(/.f32 (neg.f32 (PI.f32)) s)
85.0ms
(*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1)))
84.0ms
(/.f32 (PI.f32) s)
72.0ms
(log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1))
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
057
11095
211695
348345
450715
045
1845
211005
348185
450415
02246
149646
2496946
3523146
02041
145439
2399039
3505739

simplify179.0ms (0.4%)

Algorithm
egg-herbie
Rules
748×associate-/r*_binary32
678×associate-/l*_binary32
527×fma-def_binary32
221×+-commutative_binary32
184×associate-+r+_binary32
Counts
267 → 201
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
06209680
122839572
254739572

prune287.0ms (0.6%)

Pruning

6 alts after pruning (5 fresh and 1 done)

PrunedKeptTotal
New1965201
Fresh000
Picked011
Done000
Total1966202
Error
0.2b
Counts
202 → 6
Alt Table
StatusErrorProgram
0.3b
(*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1)))
15.9b
(cbrt.f32 (*.f32 (pow.f32 (neg.f32 s) 3) (pow.f32 (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1)) 3)))
31.4b
(pow.f32 (sqrt.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1)))) 2)
0.8b
(pow.f32 (cbrt.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1)))) 3)
0.9b
(*.f32 (pow.f32 (cbrt.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1)))) 2) (cbrt.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1)))))
24.2b
(-.f32 (exp.f32 (log1p.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1))))) 1)
Compiler

Compiled 15680 to 9139 computations (41.7% saved)

localize89.0ms (0.2%)

Local error

Found 4 expressions with local error:

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

series10.4s (22.3%)

Counts
1 → 24
Calls

1 calls:

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

rewrite81.0ms (0.2%)

Algorithm
egg-rewrite
Rules
24×egg
Counts
1 → 24
Calls

1 calls:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
02546
154446
2483946
3488846

simplify491.0ms (1.1%)

Algorithm
egg-herbie
Rules
886×fma-def_binary32
372×*-commutative_binary32
266×+-commutative_binary32
240×associate-+r+_binary32
179×distribute-rgt-in_binary32
Counts
48 → 63
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
096910964
1341210605
2497610263
3494310177
4499410177
5496610177

prune456.0ms (1%)

Pruning

7 alts after pruning (5 fresh and 2 done)

PrunedKeptTotal
New2091210
Fresh044
Picked011
Done011
Total2097216
Error
0.2b
Counts
216 → 7
Alt Table
StatusErrorProgram
0.3b
(*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1)))
31.4b
(*.f32 (pow.f32 (sqrt.f32 (cbrt.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1))))) 3) (pow.f32 (sqrt.f32 (cbrt.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1))))) 3))
15.9b
(cbrt.f32 (*.f32 (pow.f32 (neg.f32 s) 3) (pow.f32 (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1)) 3)))
31.4b
(pow.f32 (sqrt.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1)))) 2)
0.8b
(pow.f32 (cbrt.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1)))) 3)
0.9b
(*.f32 (pow.f32 (cbrt.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1)))) 2) (cbrt.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1)))))
24.2b
(-.f32 (exp.f32 (log1p.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1))))) 1)
Compiler

Compiled 23766 to 14130 computations (40.5% saved)

localize95.0ms (0.2%)

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 (cbrt.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1)))) 2) (cbrt.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1)))))
0.5b
(pow.f32 (cbrt.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1)))) 2)

series11.4s (24.6%)

Counts
2 → 48
Calls

2 calls:

10.4s
(pow.f32 (cbrt.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1)))) 2)
1.0s
(*.f32 (pow.f32 (cbrt.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1)))) 2) (cbrt.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1)))))

rewrite164.0ms (0.4%)

Algorithm
egg-rewrite
Rules
25×egg
19×egg
Counts
2 → 44
Calls

2 calls:

85.0ms
(pow.f32 (cbrt.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1)))) 2)
77.0ms
(*.f32 (pow.f32 (cbrt.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1)))) 2) (cbrt.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1)))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02551
155749
2482749
3575449
02646
156146
2484346
3489846

simplify391.0ms (0.8%)

Algorithm
egg-herbie
Rules
618×*-commutative_binary32
332×associate-+r+_binary32
323×fma-def_binary32
287×associate-*r*_binary32
227×associate-/l*_binary32
Counts
92 → 114
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0142721295
1500521295

prune850.0ms (1.8%)

Pruning

11 alts after pruning (8 fresh and 3 done)

PrunedKeptTotal
New3004304
Fresh044
Picked011
Done022
Total30011311
Error
0.1b
Counts
311 → 11
Alt Table
StatusErrorProgram
10.7b
(*.f32 (pow.f32 (pow.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1))) 2) 1/3) (cbrt.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1)))))
0.3b
(*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1)))
0.8b
(*.f32 (*.f32 (pow.f32 (cbrt.f32 (neg.f32 s)) 2) (pow.f32 (cbrt.f32 (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1))) 2)) (cbrt.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1)))))
3.9b
(*.f32 (*.f32 (pow.f32 (cbrt.f32 -1) 2) (pow.f32 (exp.f32 (*.f32 1/3 (+.f32 (log.f32 s) (log.f32 (log.f32 (+.f32 (/.f32 1 (-.f32 (+.f32 (/.f32 u (+.f32 (exp.f32 (neg.f32 (/.f32 (PI.f32) s))) 1)) (/.f32 1 (+.f32 1 (exp.f32 (/.f32 (PI.f32) s))))) (/.f32 u (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1)))))) 2)) (cbrt.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1)))))
31.4b
(*.f32 (pow.f32 (sqrt.f32 (cbrt.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1))))) 3) (pow.f32 (sqrt.f32 (cbrt.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1))))) 3))
15.9b
(cbrt.f32 (*.f32 (pow.f32 (neg.f32 s) 3) (pow.f32 (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1)) 3)))
31.4b
(pow.f32 (sqrt.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1)))) 2)
0.8b
(pow.f32 (cbrt.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1)))) 3)
0.9b
(*.f32 (pow.f32 (cbrt.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1)))) 2) (cbrt.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1)))))
24.2b
(-.f32 (exp.f32 (log1p.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1))))) 1)
9.5b
(*.f32 (cbrt.f32 (pow.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1))) 2)) (cbrt.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1)))))
Compiler

Compiled 42610 to 27339 computations (35.8% saved)

localize127.0ms (0.3%)

Local error

Found 4 expressions with local error:

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

series13.2s (28.5%)

Counts
4 → 84
Calls

4 calls:

8.0s
(*.f32 (pow.f32 (cbrt.f32 (neg.f32 s)) 2) (pow.f32 (cbrt.f32 (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1))) 2))
4.2s
(pow.f32 (cbrt.f32 (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1))) 2)
1.0s
(*.f32 (*.f32 (pow.f32 (cbrt.f32 (neg.f32 s)) 2) (pow.f32 (cbrt.f32 (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1))) 2)) (cbrt.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1)))))
53.0ms
(pow.f32 (cbrt.f32 (neg.f32 s)) 2)

rewrite210.0ms (0.5%)

Algorithm
egg-rewrite
Rules
65×egg
22×egg
21×egg
18×egg
Counts
4 → 126
Calls

4 calls:

77.0ms
(pow.f32 (cbrt.f32 (neg.f32 s)) 2)
45.0ms
(*.f32 (*.f32 (pow.f32 (cbrt.f32 (neg.f32 s)) 2) (pow.f32 (cbrt.f32 (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1))) 2)) (cbrt.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1)))))
43.0ms
(*.f32 (pow.f32 (cbrt.f32 (neg.f32 s)) 2) (pow.f32 (cbrt.f32 (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1))) 2))
41.0ms
(pow.f32 (cbrt.f32 (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1))) 2)
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
02346
151444
2491144
068
11224
210164
345554
455004
02753
159352
2504052
03046
165346
2534846

simplify462.0ms (1%)

Algorithm
egg-herbie
Rules
607×fma-def_binary32
350×associate-/l*_binary32
242×associate-/r*_binary32
228×associate-*l/_binary32
183×times-frac_binary32
Counts
210 → 235
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0247139179
1509239179

prune1.4s (2.9%)

Pruning

17 alts after pruning (15 fresh and 2 done)

PrunedKeptTotal
New22510235
Fresh257
Picked101
Done123
Total22917246
Error
0.1b
Counts
246 → 17
Alt Table
StatusErrorProgram
10.7b
(*.f32 (pow.f32 (pow.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1))) 2) 1/3) (cbrt.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1)))))
0.3b
(*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1)))
1.7b
(*.f32 (*.f32 (*.f32 (pow.f32 (sqrt.f32 (pow.f32 s 2/9)) 3) (pow.f32 (sqrt.f32 (pow.f32 s 2/9)) 3)) (pow.f32 (cbrt.f32 (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1))) 2)) (cbrt.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1)))))
1.5b
(*.f32 (*.f32 (pow.f32 (cbrt.f32 (neg.f32 s)) 2) (-.f32 (exp.f32 (log1p.f32 (pow.f32 (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1)) 2/3))) 1)) (cbrt.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1)))))
1.5b
(*.f32 (*.f32 (*.f32 (pow.f32 (pow.f32 s 2/3) 5/6) (pow.f32 s 1/9)) (pow.f32 (cbrt.f32 (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1))) 2)) (cbrt.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1)))))
0.9b
(*.f32 (pow.f32 (*.f32 (cbrt.f32 (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1))) (cbrt.f32 (neg.f32 s))) 2) (cbrt.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1)))))
1.7b
(*.f32 (*.f32 (*.f32 (sqrt.f32 s) (pow.f32 s 1/6)) (pow.f32 (cbrt.f32 (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1))) 2)) (cbrt.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1)))))
31.4b
(*.f32 (pow.f32 (sqrt.f32 (cbrt.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1))))) 3) (pow.f32 (sqrt.f32 (cbrt.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1))))) 3))
0.7b
(*.f32 (*.f32 (pow.f32 (cbrt.f32 (neg.f32 s)) 2) (cbrt.f32 (pow.f32 (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1)) 2))) (cbrt.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1)))))
0.9b
(*.f32 (pow.f32 (cbrt.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1)))) 2) (cbrt.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1)))))
1.5b
(*.f32 (*.f32 (pow.f32 (cbrt.f32 (neg.f32 s)) 2) (pow.f32 (sqrt.f32 (pow.f32 (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1)) 2/3)) 2)) (cbrt.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1)))))
2.7b
(*.f32 (*.f32 (pow.f32 (exp.f32 1) (*.f32 2/3 (log.f32 s))) (pow.f32 (cbrt.f32 (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1))) 2)) (cbrt.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1)))))
15.9b
(cbrt.f32 (*.f32 (pow.f32 (neg.f32 s) 3) (pow.f32 (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1)) 3)))
31.4b
(pow.f32 (sqrt.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1)))) 2)
24.2b
(-.f32 (exp.f32 (log1p.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1))))) 1)
1.6b
(*.f32 (*.f32 (pow.f32 (cbrt.f32 (neg.f32 s)) 2) (pow.f32 (cbrt.f32 (pow.f32 (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1)) 2/3)) 3)) (cbrt.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1)))))
0.8b
(*.f32 (*.f32 (pow.f32 (cbrt.f32 (neg.f32 s)) 2) (pow.f32 (pow.f32 (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1)) 2) 1/3)) (cbrt.f32 (*.f32 (neg.f32 s) (log.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (/.f32 (neg.f32 (PI.f32)) s)))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))) -1)))))
Compiler

Compiled 59070 to 38154 computations (35.4% saved)

regimes521.0ms (1.1%)

Accuracy

Total 0.2b remaining (68.1%)

Threshold costs 0.2b (68.1%)

Counts
53 → 1
Compiler

Compiled 9999 to 7286 computations (27.1% saved)

simplify5.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
02246
13846
25246
36346
46846
56946
66846

end515.0ms (1.1%)

Compiler

Compiled 1067 to 785 computations (26.4% saved)

Profiling

Loading profile data...