Details

Time bar (total: 2.5min)

analyze259.0ms (0.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.4s (1.6%)

Results
2.3s8256×body128valid
Compiler

Compiled 147 to 112 computations (23.8% saved)

simplify74.0ms (0%)

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)

localize81.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(exp.f32 (/.f32 (neg.f32 (PI.f32)) s))
0.2b
(*.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)

series966.0ms (0.6%)

Counts
4 → 48
Calls

4 calls:

955.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)))
4.0ms
(exp.f32 (/.f32 (neg.f32 (PI.f32)) s))
3.0ms
(/.f32 (PI.f32) s)
3.0ms
(/.f32 (neg.f32 (PI.f32)) s)

rewrite75.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
73×times-frac_binary32
71×add-sqr-sqrt_binary32
69×*-un-lft-identity_binary32
61×add-cube-cbrt_binary32
34×exp-prod_binary32
Counts
4 → 179
Calls

4 calls:

46.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)))
6.0ms
(/.f32 (neg.f32 (PI.f32)) s)
4.0ms
(exp.f32 (/.f32 (neg.f32 (PI.f32)) s))
2.0ms
(/.f32 (PI.f32) s)

simplify162.0ms (0.1%)

Algorithm
egg-herbie
Rules
717×times-frac_binary32
490×associate-/l*_binary32
475×associate-/r*_binary32
286×fma-def_binary32
146×*-commutative_binary32
Counts
227 → 273
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
06099743
117909284
252979284

prune377.0ms (0.3%)

Pruning

7 alts after pruning (7 fresh and 0 done)

PrunedKeptTotal
New2667273
Fresh000
Picked101
Done000
Total2677274
Error
0.0b
Counts
274 → 7
Alt Table
StatusErrorProgram
0.8b
(*.f32 (*.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)))) (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))))) (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 (*.f32 (cbrt.f32 s) (cbrt.f32 s)) (*.f32 (neg.f32 (cbrt.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
(+.f32 (*.f32 (log.f32 (*.f32 (cbrt.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 (+.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)))) (neg.f32 s)) (*.f32 (log.f32 (cbrt.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))) (neg.f32 s)))
31.3b
(exp.f32 (log.f32 (*.f32 (log.f32 (+.f32 -1 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (neg.f32 (/.f32 (PI.f32) s))))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s)))))))) (neg.f32 s))))
0.4b
(+.f32 (*.f32 (neg.f32 s) (log1p.f32 (sqrt.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (neg.f32 (/.f32 (PI.f32) s))))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s))))))))) (*.f32 (neg.f32 s) (log.f32 (+.f32 (sqrt.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (neg.f32 (/.f32 (PI.f32) s))))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s))))))) -1))))
0.4b
(+.f32 (*.f32 (log.f32 (sqrt.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))) (neg.f32 s)) (*.f32 (log.f32 (sqrt.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))) (neg.f32 s)))
0.9b
(*.f32 (*.f32 (neg.f32 s) (*.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 (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 (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 15071 to 8330 computations (44.7% saved)

localize90.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(sqrt.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.2b
(*.f32 (log.f32 (sqrt.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))) (neg.f32 s))
0.3b
(/.f32 (PI.f32) s)
0.3b
(/.f32 (neg.f32 (PI.f32)) s)

series1.3s (0.9%)

Counts
2 → 48
Calls

2 calls:

1.1s
(*.f32 (log.f32 (sqrt.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))) (neg.f32 s))
240.0ms
(sqrt.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))

rewrite53.0ms (0%)

Algorithm
rewrite-expression-head
Rules
21×add-sqr-sqrt_binary32
12×*-un-lft-identity_binary32
10×associate-*r*_binary32
sqrt-prod_binary32
add-cube-cbrt_binary32
Counts
2 → 56
Calls

2 calls:

42.0ms
(sqrt.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))
6.0ms
(*.f32 (log.f32 (sqrt.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))) (neg.f32 s))

simplify187.0ms (0.1%)

Algorithm
egg-herbie
Rules
855×fma-def_binary32
556×associate-/l*_binary32
313×*-commutative_binary32
206×+-commutative_binary32
166×associate-+r+_binary32
Counts
104 → 148
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
081512754
1283112121
2531012121

prune1.7s (1.2%)

Pruning

8 alts after pruning (8 fresh and 0 done)

PrunedKeptTotal
New5053508
Fresh156
Picked101
Done000
Total5078515
Error
0.0b
Counts
515 → 8
Alt Table
StatusErrorProgram
0.3b
(+.f32 (*.f32 (log.f32 (sqrt.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))) (neg.f32 s)) (*.f32 (log.f32 (*.f32 (fabs.f32 (cbrt.f32 (+.f32 -1 (/.f32 1 (+.f32 (/.f32 u (+.f32 (exp.f32 (neg.f32 (/.f32 (PI.f32) s))) 1)) (/.f32 (-.f32 1 u) (+.f32 (exp.f32 (/.f32 (PI.f32) s)) 1))))))) (sqrt.f32 (cbrt.f32 (+.f32 -1 (/.f32 1 (+.f32 (/.f32 u (+.f32 (exp.f32 (neg.f32 (/.f32 (PI.f32) s))) 1)) (/.f32 (-.f32 1 u) (+.f32 (exp.f32 (/.f32 (PI.f32) s)) 1))))))))) (neg.f32 s)))
0.5b
(+.f32 (*.f32 (log.f32 (*.f32 (cbrt.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 (+.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)))) (neg.f32 s)) (*.f32 (log.f32 (cbrt.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))) (neg.f32 s)))
0.8b
(*.f32 (*.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)))) (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))))) (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.6b
(+.f32 (*.f32 (log.f32 (sqrt.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))) (neg.f32 s)) (*.f32 (*.f32 (log.f32 (sqrt.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))) (*.f32 (cbrt.f32 s) (cbrt.f32 s))) (neg.f32 (cbrt.f32 s))))
0.9b
(*.f32 (*.f32 (cbrt.f32 s) (cbrt.f32 s)) (*.f32 (neg.f32 (cbrt.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 (*.f32 (log.f32 (sqrt.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))) (neg.f32 s)) (*.f32 (log.f32 (/.f32 (sqrt.f32 (+.f32 (/.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 (exp.f32 (neg.f32 (/.f32 (PI.f32) s))) 1)) (/.f32 (-.f32 1 u) (+.f32 (exp.f32 (/.f32 (PI.f32) s)) 1)))) (+.f32 (/.f32 u (+.f32 (exp.f32 (neg.f32 (/.f32 (PI.f32) s))) 1)) (/.f32 (-.f32 1 u) (+.f32 (exp.f32 (/.f32 (PI.f32) s)) 1)))) -1)) (sqrt.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 (exp.f32 (neg.f32 (/.f32 (PI.f32) s))) 1)) (/.f32 (-.f32 1 u) (+.f32 (exp.f32 (/.f32 (PI.f32) s)) 1)))) 1)))) (neg.f32 s)))
0.4b
(+.f32 (*.f32 (neg.f32 s) (log1p.f32 (sqrt.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (neg.f32 (/.f32 (PI.f32) s))))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s))))))))) (*.f32 (neg.f32 s) (log.f32 (+.f32 (sqrt.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (neg.f32 (/.f32 (PI.f32) s))))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s))))))) -1))))
0.9b
(*.f32 (*.f32 (neg.f32 s) (*.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 (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 (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 53168 to 30227 computations (43.1% saved)

localize168.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f32 (log.f32 (sqrt.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))) (neg.f32 s))
0.3b
(*.f32 (fabs.f32 (cbrt.f32 (+.f32 -1 (/.f32 1 (+.f32 (/.f32 u (+.f32 (exp.f32 (neg.f32 (/.f32 (PI.f32) s))) 1)) (/.f32 (-.f32 1 u) (+.f32 (exp.f32 (/.f32 (PI.f32) s)) 1))))))) (sqrt.f32 (cbrt.f32 (+.f32 -1 (/.f32 1 (+.f32 (/.f32 u (+.f32 (exp.f32 (neg.f32 (/.f32 (PI.f32) s))) 1)) (/.f32 (-.f32 1 u) (+.f32 (exp.f32 (/.f32 (PI.f32) s)) 1))))))))
0.3b
(/.f32 (PI.f32) s)
0.3b
(/.f32 (neg.f32 (PI.f32)) s)

series868.0ms (0.6%)

Counts
1 → 24
Calls

1 calls:

868.0ms
(*.f32 (fabs.f32 (cbrt.f32 (+.f32 -1 (/.f32 1 (+.f32 (/.f32 u (+.f32 (exp.f32 (neg.f32 (/.f32 (PI.f32) s))) 1)) (/.f32 (-.f32 1 u) (+.f32 (exp.f32 (/.f32 (PI.f32) s)) 1))))))) (sqrt.f32 (cbrt.f32 (+.f32 -1 (/.f32 1 (+.f32 (/.f32 u (+.f32 (exp.f32 (neg.f32 (/.f32 (PI.f32) s))) 1)) (/.f32 (-.f32 1 u) (+.f32 (exp.f32 (/.f32 (PI.f32) s)) 1))))))))

rewrite107.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
42×add-sqr-sqrt_binary32
23×cbrt-prod_binary32
18×sqrt-prod_binary32
15×unswap-sqr_binary32
14×fabs-mul_binary32
Counts
1 → 63
Calls

1 calls:

91.0ms
(*.f32 (fabs.f32 (cbrt.f32 (+.f32 -1 (/.f32 1 (+.f32 (/.f32 u (+.f32 (exp.f32 (neg.f32 (/.f32 (PI.f32) s))) 1)) (/.f32 (-.f32 1 u) (+.f32 (exp.f32 (/.f32 (PI.f32) s)) 1))))))) (sqrt.f32 (cbrt.f32 (+.f32 -1 (/.f32 1 (+.f32 (/.f32 u (+.f32 (exp.f32 (neg.f32 (/.f32 (PI.f32) s))) 1)) (/.f32 (-.f32 1 u) (+.f32 (exp.f32 (/.f32 (PI.f32) s)) 1))))))))

simplify341.0ms (0.2%)

Algorithm
egg-herbie
Rules
734×associate-/l*_binary32
548×associate-/r*_binary32
475×fma-def_binary32
245×associate-*l/_binary32
225×*-commutative_binary32
Counts
87 → 131
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
058919717
1182318161
2498518161
3497118161

prune1.8s (1.2%)

Pruning

8 alts after pruning (7 fresh and 1 done)

PrunedKeptTotal
New4490449
Fresh077
Picked011
Done000
Total4498457
Error
0.0b
Counts
457 → 8
Alt Table
StatusErrorProgram
0.3b
(+.f32 (*.f32 (log.f32 (sqrt.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))) (neg.f32 s)) (*.f32 (log.f32 (*.f32 (fabs.f32 (cbrt.f32 (+.f32 -1 (/.f32 1 (+.f32 (/.f32 u (+.f32 (exp.f32 (neg.f32 (/.f32 (PI.f32) s))) 1)) (/.f32 (-.f32 1 u) (+.f32 (exp.f32 (/.f32 (PI.f32) s)) 1))))))) (sqrt.f32 (cbrt.f32 (+.f32 -1 (/.f32 1 (+.f32 (/.f32 u (+.f32 (exp.f32 (neg.f32 (/.f32 (PI.f32) s))) 1)) (/.f32 (-.f32 1 u) (+.f32 (exp.f32 (/.f32 (PI.f32) s)) 1))))))))) (neg.f32 s)))
0.5b
(+.f32 (*.f32 (log.f32 (*.f32 (cbrt.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 (+.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)))) (neg.f32 s)) (*.f32 (log.f32 (cbrt.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))) (neg.f32 s)))
0.8b
(*.f32 (*.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)))) (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))))) (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.6b
(+.f32 (*.f32 (log.f32 (sqrt.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))) (neg.f32 s)) (*.f32 (*.f32 (log.f32 (sqrt.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))) (*.f32 (cbrt.f32 s) (cbrt.f32 s))) (neg.f32 (cbrt.f32 s))))
0.9b
(*.f32 (*.f32 (cbrt.f32 s) (cbrt.f32 s)) (*.f32 (neg.f32 (cbrt.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 (*.f32 (log.f32 (sqrt.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))) (neg.f32 s)) (*.f32 (log.f32 (/.f32 (sqrt.f32 (+.f32 (/.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 (exp.f32 (neg.f32 (/.f32 (PI.f32) s))) 1)) (/.f32 (-.f32 1 u) (+.f32 (exp.f32 (/.f32 (PI.f32) s)) 1)))) (+.f32 (/.f32 u (+.f32 (exp.f32 (neg.f32 (/.f32 (PI.f32) s))) 1)) (/.f32 (-.f32 1 u) (+.f32 (exp.f32 (/.f32 (PI.f32) s)) 1)))) -1)) (sqrt.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 (exp.f32 (neg.f32 (/.f32 (PI.f32) s))) 1)) (/.f32 (-.f32 1 u) (+.f32 (exp.f32 (/.f32 (PI.f32) s)) 1)))) 1)))) (neg.f32 s)))
0.4b
(+.f32 (*.f32 (neg.f32 s) (log1p.f32 (sqrt.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (neg.f32 (/.f32 (PI.f32) s))))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s))))))))) (*.f32 (neg.f32 s) (log.f32 (+.f32 (sqrt.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (neg.f32 (/.f32 (PI.f32) s))))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s))))))) -1))))
0.9b
(*.f32 (*.f32 (neg.f32 s) (*.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 (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 (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 63440 to 36367 computations (42.7% saved)

localize156.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(/.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 (exp.f32 (neg.f32 (/.f32 (PI.f32) s))) 1)) (/.f32 (-.f32 1 u) (+.f32 (exp.f32 (/.f32 (PI.f32) s)) 1)))) (+.f32 (/.f32 u (+.f32 (exp.f32 (neg.f32 (/.f32 (PI.f32) s))) 1)) (/.f32 (-.f32 1 u) (+.f32 (exp.f32 (/.f32 (PI.f32) s)) 1))))
0.3b
(/.f32 (PI.f32) s)
0.3b
(/.f32 (neg.f32 (PI.f32)) s)
0.4b
(/.f32 (sqrt.f32 (+.f32 (/.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 (exp.f32 (neg.f32 (/.f32 (PI.f32) s))) 1)) (/.f32 (-.f32 1 u) (+.f32 (exp.f32 (/.f32 (PI.f32) s)) 1)))) (+.f32 (/.f32 u (+.f32 (exp.f32 (neg.f32 (/.f32 (PI.f32) s))) 1)) (/.f32 (-.f32 1 u) (+.f32 (exp.f32 (/.f32 (PI.f32) s)) 1)))) -1)) (sqrt.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 (exp.f32 (neg.f32 (/.f32 (PI.f32) s))) 1)) (/.f32 (-.f32 1 u) (+.f32 (exp.f32 (/.f32 (PI.f32) s)) 1)))) 1)))

series1.2min (49.7%)

Counts
2 → 48
Calls

2 calls:

1.2min
(/.f32 (sqrt.f32 (+.f32 (/.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 (exp.f32 (neg.f32 (/.f32 (PI.f32) s))) 1)) (/.f32 (-.f32 1 u) (+.f32 (exp.f32 (/.f32 (PI.f32) s)) 1)))) (+.f32 (/.f32 u (+.f32 (exp.f32 (neg.f32 (/.f32 (PI.f32) s))) 1)) (/.f32 (-.f32 1 u) (+.f32 (exp.f32 (/.f32 (PI.f32) s)) 1)))) -1)) (sqrt.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 (exp.f32 (neg.f32 (/.f32 (PI.f32) s))) 1)) (/.f32 (-.f32 1 u) (+.f32 (exp.f32 (/.f32 (PI.f32) s)) 1)))) 1)))
832.0ms
(/.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 (exp.f32 (neg.f32 (/.f32 (PI.f32) s))) 1)) (/.f32 (-.f32 1 u) (+.f32 (exp.f32 (/.f32 (PI.f32) s)) 1)))) (+.f32 (/.f32 u (+.f32 (exp.f32 (neg.f32 (/.f32 (PI.f32) s))) 1)) (/.f32 (-.f32 1 u) (+.f32 (exp.f32 (/.f32 (PI.f32) s)) 1))))

rewrite874.0ms (0.6%)

Algorithm
rewrite-expression-head
Rules
4182×*-un-lft-identity_binary32
2453×times-frac_binary32
1446×distribute-lft-out_binary32
372×add-sqr-sqrt_binary32
332×distribute-lft-out--_binary32
Counts
2 → 731
Calls

2 calls:

251.0ms
(/.f32 (sqrt.f32 (+.f32 (/.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 (exp.f32 (neg.f32 (/.f32 (PI.f32) s))) 1)) (/.f32 (-.f32 1 u) (+.f32 (exp.f32 (/.f32 (PI.f32) s)) 1)))) (+.f32 (/.f32 u (+.f32 (exp.f32 (neg.f32 (/.f32 (PI.f32) s))) 1)) (/.f32 (-.f32 1 u) (+.f32 (exp.f32 (/.f32 (PI.f32) s)) 1)))) -1)) (sqrt.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 (exp.f32 (neg.f32 (/.f32 (PI.f32) s))) 1)) (/.f32 (-.f32 1 u) (+.f32 (exp.f32 (/.f32 (PI.f32) s)) 1)))) 1)))
81.0ms
(/.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 (exp.f32 (neg.f32 (/.f32 (PI.f32) s))) 1)) (/.f32 (-.f32 1 u) (+.f32 (exp.f32 (/.f32 (PI.f32) s)) 1)))) (+.f32 (/.f32 u (+.f32 (exp.f32 (neg.f32 (/.f32 (PI.f32) s))) 1)) (/.f32 (-.f32 1 u) (+.f32 (exp.f32 (/.f32 (PI.f32) s)) 1))))

simplify2.2s (1.5%)

Algorithm
egg-herbie
Rules
1372×fma-def_binary32
fma-neg_binary32
Counts
779 → 278
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
04770207331
16138207331

prune5.2s (3.5%)

Pruning

8 alts after pruning (7 fresh and 1 done)

PrunedKeptTotal
New5751576
Fresh066
Picked101
Done011
Total5768584
Error
0.0b
Counts
584 → 8
Alt Table
StatusErrorProgram
0.3b
(+.f32 (*.f32 (log.f32 (sqrt.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))) (neg.f32 s)) (*.f32 (log.f32 (*.f32 (fabs.f32 (cbrt.f32 (+.f32 -1 (/.f32 1 (+.f32 (/.f32 u (+.f32 (exp.f32 (neg.f32 (/.f32 (PI.f32) s))) 1)) (/.f32 (-.f32 1 u) (+.f32 (exp.f32 (/.f32 (PI.f32) s)) 1))))))) (sqrt.f32 (cbrt.f32 (+.f32 -1 (/.f32 1 (+.f32 (/.f32 u (+.f32 (exp.f32 (neg.f32 (/.f32 (PI.f32) s))) 1)) (/.f32 (-.f32 1 u) (+.f32 (exp.f32 (/.f32 (PI.f32) s)) 1))))))))) (neg.f32 s)))
0.5b
(+.f32 (*.f32 (log.f32 (*.f32 (cbrt.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 (+.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)))) (neg.f32 s)) (*.f32 (log.f32 (cbrt.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))) (neg.f32 s)))
0.8b
(*.f32 (*.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)))) (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))))) (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.6b
(+.f32 (*.f32 (log.f32 (sqrt.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))) (neg.f32 s)) (*.f32 (*.f32 (log.f32 (sqrt.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))) (*.f32 (cbrt.f32 s) (cbrt.f32 s))) (neg.f32 (cbrt.f32 s))))
0.3b
(+.f32 (*.f32 (log.f32 (sqrt.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))) (neg.f32 s)) (*.f32 (log.f32 (/.f32 (sqrt.f32 (+.f32 (/.f32 (/.f32 1 (+.f32 (pow.f32 (/.f32 u (+.f32 (exp.f32 (neg.f32 (/.f32 (PI.f32) s))) 1)) 3) (pow.f32 (/.f32 (-.f32 1 u) (+.f32 (exp.f32 (/.f32 (PI.f32) s)) 1)) 3))) (/.f32 (+.f32 (/.f32 u (+.f32 (exp.f32 (neg.f32 (/.f32 (PI.f32) s))) 1)) (/.f32 (-.f32 1 u) (+.f32 (exp.f32 (/.f32 (PI.f32) s)) 1))) (fma.f32 (/.f32 u (+.f32 (exp.f32 (neg.f32 (/.f32 (PI.f32) s))) 1)) (/.f32 u (+.f32 (exp.f32 (neg.f32 (/.f32 (PI.f32) s))) 1)) (-.f32 (*.f32 (/.f32 (-.f32 1 u) (+.f32 (exp.f32 (/.f32 (PI.f32) s)) 1)) (/.f32 (-.f32 1 u) (+.f32 (exp.f32 (/.f32 (PI.f32) s)) 1))) (*.f32 (/.f32 u (+.f32 (exp.f32 (neg.f32 (/.f32 (PI.f32) s))) 1)) (/.f32 (-.f32 1 u) (+.f32 (exp.f32 (/.f32 (PI.f32) s)) 1))))))) -1)) (sqrt.f32 (+.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 (exp.f32 (neg.f32 (/.f32 (PI.f32) s))) 1)) (/.f32 (-.f32 1 u) (+.f32 (exp.f32 (/.f32 (PI.f32) s)) 1)))) 1)))) (neg.f32 s)))
0.9b
(*.f32 (*.f32 (cbrt.f32 s) (cbrt.f32 s)) (*.f32 (neg.f32 (cbrt.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 (*.f32 (neg.f32 s) (log1p.f32 (sqrt.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (neg.f32 (/.f32 (PI.f32) s))))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s))))))))) (*.f32 (neg.f32 s) (log.f32 (+.f32 (sqrt.f32 (/.f32 1 (+.f32 (/.f32 u (+.f32 1 (exp.f32 (neg.f32 (/.f32 (PI.f32) s))))) (/.f32 (-.f32 1 u) (+.f32 1 (exp.f32 (/.f32 (PI.f32) s))))))) -1))))
0.9b
(*.f32 (*.f32 (neg.f32 s) (*.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 (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 (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 220483 to 118394 computations (46.3% saved)

regimes5.7s (3.8%)

Accuracy

Total 0.3b remaining (85.2%)

Threshold costs 0.3b (85.2%)

Counts
680 → 1
Compiler

Compiled 188145 to 124712 computations (33.7% 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
02659
13959
24959
35759
46159
56259
66059

end50.2s (33.5%)

Compiler

Compiled 882 to 592 computations (32.9% saved)

Profiling

Loading profile data...