Details

Time bar (total: 7.2s)

analyze3.0ms (0%)

Algorithm
search
Search
TrueOtherFalseIter
0%0%100%0
0%0%100%1
Compiler

Compiled 38 to 21 computations (44.7% saved)

sample1.9s (26.8%)

Results
1.9s8256×body128valid
Compiler

Compiled 76 to 42 computations (44.7% saved)

preprocess90.0ms (1.3%)

Algorithm
egg-herbie
Rules
967×associate-/l/_binary32
808×associate-/l*_binary32
710×times-frac_binary32
520×associate-/r/_binary32
385×associate-*r/_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01872
14972
217372
373372
4248772
5326772
6326772
7455472
8480772
9492772
10493972
11493972
12494172
13494172
022
Stop Event
saturated
saturated
Compiler

Compiled 23 to 10 computations (56.5% saved)

simplify37.0ms (0.5%)

Algorithm
egg-herbie
Rules
745×associate-/l/_binary32
396×associate-/l*_binary32
281×times-frac_binary32
253×associate-/r/_binary32
154×associate-*l/_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01136
12436
28336
333336
4118036
5255936
6268736
7271736
8272736
9273136
10273336
11273336
Stop Event
saturated
Counts
1 → 2

prune3.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
0.5b
Counts
3 → 2
Alt Table
StatusErrorProgram
0.6b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
0.9b
(*.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 x tau))) (/.f32 (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 (PI.f32) tau)) (*.f32 x (*.f32 x (PI.f32)))))
Compiler

Compiled 136 to 64 computations (52.9% saved)

localize37.0ms (0.5%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(sin.f32 (*.f32 (*.f32 x (PI.f32)) tau))
0.4b
(*.f32 x (PI.f32))
0.4b
(/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32)))
0.4b
(/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau))

series43.0ms (0.6%)

Counts
4 → 72
Calls

18 calls:

6.0ms
(/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau))
x
-inf
5.0ms
(/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau))
tau
-inf
4.0ms
(/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau))
tau
inf
4.0ms
(/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau))
x
inf
3.0ms
(/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau))
x
0

rewrite63.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
720×prod-diff_binary32
203×expm1-udef_binary32
203×log1p-udef_binary32
111×*-un-lft-identity_binary32
111×add-sqr-sqrt_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01049
121349
2311449
01049
Stop Event
saturated
node limit
Counts
4 → 116

simplify58.0ms (0.8%)

Algorithm
egg-herbie
Rules
473×fma-neg_binary32
450×distribute-rgt-neg-in_binary32
440×distribute-lft-neg-in_binary32
303×*-commutative_binary32
293×fma-def_binary32
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0781330
12451314
29221298
327891298
447731298
Stop Event
node limit
Counts
188 → 140

prune211.0ms (3%)

Pruning

13 alts after pruning (13 fresh and 0 done)

PrunedKeptTotal
New17513188
Fresh101
Picked101
Done000
Total17713190
Error
0.1b
Counts
190 → 13
Alt Table
StatusErrorProgram
0.8b
(*.f32 (log.f32 (exp.f32 (/.f32 (sin.f32 (*.f32 x (*.f32 (PI.f32) tau))) (*.f32 x (*.f32 (PI.f32) tau))))) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
0.7b
(*.f32 (/.f32 (sin.f32 (*.f32 (cbrt.f32 (*.f32 (pow.f32 x 3) (pow.f32 (PI.f32) 3))) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
1.1b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (/.f32 (sin.f32 (pow.f32 (cbrt.f32 (*.f32 x (PI.f32))) 3)) (*.f32 x (PI.f32))))
1.1b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (/.f32 (pow.f32 (cbrt.f32 (sin.f32 (*.f32 x (PI.f32)))) 2) (PI.f32)) (/.f32 (cbrt.f32 (sin.f32 (*.f32 x (PI.f32)))) x)))
2.5b
(*.f32 (*.f32 (/.f32 (sqrt.f32 (sin.f32 (*.f32 x (*.f32 (PI.f32) tau)))) (*.f32 x (PI.f32))) (/.f32 (sqrt.f32 (sin.f32 (*.f32 x (*.f32 (PI.f32) tau)))) tau)) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
0.8b
(*.f32 (-.f32 (exp.f32 (log1p.f32 (/.f32 (sin.f32 (*.f32 x (*.f32 (PI.f32) tau))) (*.f32 x (*.f32 (PI.f32) tau))))) 1) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
0.9b
(*.f32 (/.f32 (sin.f32 (*.f32 (pow.f32 (sqrt.f32 (*.f32 x (PI.f32))) 2) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
0.7b
(*.f32 (/.f32 (sin.f32 (*.f32 (expm1.f32 (log1p.f32 (*.f32 x (PI.f32)))) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
0.9b
(*.f32 (*.f32 (/.f32 1 (sqrt.f32 (*.f32 x (*.f32 (PI.f32) tau)))) (/.f32 (sin.f32 (*.f32 x (*.f32 (PI.f32) tau))) (sqrt.f32 (*.f32 x (*.f32 (PI.f32) tau))))) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
1.8b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (-.f32 (+.f32 (*.f32 1/120 (*.f32 (pow.f32 (PI.f32) 4) (pow.f32 x 4))) 1) (+.f32 (*.f32 1/5040 (*.f32 (pow.f32 (PI.f32) 6) (pow.f32 x 6))) (*.f32 1/6 (*.f32 (pow.f32 (PI.f32) 2) (pow.f32 x 2))))))
1.1b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (pow.f32 (cbrt.f32 (*.f32 x (PI.f32))) 3)))
0.9b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (/.f32 1 (sqrt.f32 (*.f32 x (PI.f32)))) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (sqrt.f32 (*.f32 x (PI.f32))))))
1.2b
(*.f32 (/.f32 (pow.f32 (cbrt.f32 (sin.f32 (*.f32 x (*.f32 (PI.f32) tau)))) 3) (*.f32 (*.f32 x (PI.f32)) tau)) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
Compiler

Compiled 5837 to 1617 computations (72.3% saved)

localize45.0ms (0.6%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(sin.f32 (*.f32 (expm1.f32 (log1p.f32 (*.f32 x (PI.f32)))) tau))
0.4b
(*.f32 x (PI.f32))
0.4b
(/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32)))
0.4b
(/.f32 (sin.f32 (*.f32 (expm1.f32 (log1p.f32 (*.f32 x (PI.f32)))) tau)) (*.f32 (*.f32 x (PI.f32)) tau))

series32.0ms (0.4%)

Counts
2 → 48
Calls

12 calls:

5.0ms
(/.f32 (sin.f32 (*.f32 (expm1.f32 (log1p.f32 (*.f32 x (PI.f32)))) tau)) (*.f32 (*.f32 x (PI.f32)) tau))
tau
-inf
5.0ms
(/.f32 (sin.f32 (*.f32 (expm1.f32 (log1p.f32 (*.f32 x (PI.f32)))) tau)) (*.f32 (*.f32 x (PI.f32)) tau))
x
-inf
4.0ms
(/.f32 (sin.f32 (*.f32 (expm1.f32 (log1p.f32 (*.f32 x (PI.f32)))) tau)) (*.f32 (*.f32 x (PI.f32)) tau))
x
inf
4.0ms
(/.f32 (sin.f32 (*.f32 (expm1.f32 (log1p.f32 (*.f32 x (PI.f32)))) tau)) (*.f32 (*.f32 x (PI.f32)) tau))
tau
inf
3.0ms
(/.f32 (sin.f32 (*.f32 (expm1.f32 (log1p.f32 (*.f32 x (PI.f32)))) tau)) (*.f32 (*.f32 x (PI.f32)) tau))
x
0

rewrite50.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
663×prod-diff_binary32
547×log-prod_binary32
172×expm1-udef_binary32
172×log1p-udef_binary32
150×log-pow_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01130
120930
2253830
01138
Stop Event
saturated
node limit
Counts
2 → 68

simplify52.0ms (0.7%)

Algorithm
egg-herbie
Rules
691×fma-def_binary32
497×cancel-sign-sub-inv_binary32
405×distribute-rgt-neg-in_binary32
398×distribute-lft-neg-in_binary32
372×fma-neg_binary32
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0641064
12011048
27671036
323211032
449051032
Stop Event
node limit
Counts
116 → 84

prune207.0ms (2.9%)

Pruning

15 alts after pruning (15 fresh and 0 done)

PrunedKeptTotal
New1878195
Fresh5712
Picked101
Done000
Total19315208
Error
0.1b
Counts
208 → 15
Alt Table
StatusErrorProgram
0.8b
(*.f32 (log.f32 (exp.f32 (/.f32 (sin.f32 (*.f32 x (*.f32 (PI.f32) tau))) (*.f32 x (*.f32 (PI.f32) tau))))) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
0.7b
(*.f32 (/.f32 (sin.f32 (*.f32 (cbrt.f32 (*.f32 (pow.f32 x 3) (pow.f32 (PI.f32) 3))) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
0.9b
(*.f32 (*.f32 (/.f32 1 (sqrt.f32 (*.f32 x (*.f32 (PI.f32) tau)))) (/.f32 (sin.f32 (*.f32 x (*.f32 (PI.f32) tau))) (sqrt.f32 (*.f32 x (*.f32 (PI.f32) tau))))) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
0.9b
(*.f32 (/.f32 (sin.f32 (*.f32 (expm1.f32 (log1p.f32 (*.f32 x (PI.f32)))) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (/.f32 1 (sqrt.f32 (*.f32 x (PI.f32)))) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (sqrt.f32 (*.f32 x (PI.f32))))))
5.1b
(*.f32 (/.f32 (-.f32 (*.f32 (sin.f32 (exp.f32 (log1p.f32 (*.f32 x (*.f32 (PI.f32) tau))))) (cos.f32 1)) (*.f32 (cos.f32 (exp.f32 (log1p.f32 (*.f32 x (*.f32 (PI.f32) tau))))) (sin.f32 1))) (*.f32 (*.f32 x (PI.f32)) tau)) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
1.8b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (-.f32 (+.f32 (*.f32 1/120 (*.f32 (pow.f32 (PI.f32) 4) (pow.f32 x 4))) 1) (+.f32 (*.f32 1/5040 (*.f32 (pow.f32 (PI.f32) 6) (pow.f32 x 6))) (*.f32 1/6 (*.f32 (pow.f32 (PI.f32) 2) (pow.f32 x 2))))))
6.2b
(*.f32 (/.f32 (+.f32 (log.f32 (*.f32 (cbrt.f32 (exp.f32 (sin.f32 (*.f32 x (*.f32 (PI.f32) tau))))) (cbrt.f32 (exp.f32 (sin.f32 (*.f32 x (*.f32 (PI.f32) tau))))))) (log.f32 (cbrt.f32 (exp.f32 (sin.f32 (*.f32 x (*.f32 (PI.f32) tau))))))) (*.f32 (*.f32 x (PI.f32)) tau)) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
0.9b
(*.f32 (/.f32 (sin.f32 (*.f32 (expm1.f32 (log1p.f32 (pow.f32 (sqrt.f32 (*.f32 x (PI.f32))) 2))) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
0.7b
(*.f32 (/.f32 (sin.f32 (*.f32 (expm1.f32 (log1p.f32 (*.f32 x (PI.f32)))) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (pow.f32 (/.f32 (*.f32 x (PI.f32)) (sin.f32 (*.f32 x (PI.f32)))) -1))
1.1b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (/.f32 (pow.f32 (cbrt.f32 (sin.f32 (*.f32 x (PI.f32)))) 2) (PI.f32)) (/.f32 (cbrt.f32 (sin.f32 (*.f32 x (PI.f32)))) x)))
1.1b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (pow.f32 (cbrt.f32 (*.f32 x (PI.f32))) 3)))
0.9b
(*.f32 (+.f32 (log.f32 (sqrt.f32 (exp.f32 (/.f32 (sin.f32 (*.f32 x (*.f32 (PI.f32) tau))) (*.f32 x (*.f32 (PI.f32) tau)))))) (log.f32 (sqrt.f32 (exp.f32 (/.f32 (sin.f32 (*.f32 x (*.f32 (PI.f32) tau))) (*.f32 x (*.f32 (PI.f32) tau))))))) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
1.4b
(*.f32 (+.f32 (log.f32 (*.f32 (cbrt.f32 (exp.f32 (/.f32 (sin.f32 (*.f32 x (*.f32 (PI.f32) tau))) (*.f32 x (*.f32 (PI.f32) tau))))) (cbrt.f32 (exp.f32 (/.f32 (sin.f32 (*.f32 x (*.f32 (PI.f32) tau))) (*.f32 x (*.f32 (PI.f32) tau))))))) (log.f32 (cbrt.f32 (exp.f32 (/.f32 (sin.f32 (*.f32 x (*.f32 (PI.f32) tau))) (*.f32 x (*.f32 (PI.f32) tau))))))) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
2.5b
(*.f32 (*.f32 (/.f32 (sqrt.f32 (sin.f32 (*.f32 x (*.f32 (PI.f32) tau)))) (*.f32 x (PI.f32))) (/.f32 (sqrt.f32 (sin.f32 (*.f32 x (*.f32 (PI.f32) tau)))) tau)) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
0.9b
(*.f32 (/.f32 (sin.f32 (*.f32 (expm1.f32 (log1p.f32 (*.f32 x (PI.f32)))) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (log.f32 (+.f32 1 (expm1.f32 (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32)))))))
Compiler

Compiled 6594 to 1790 computations (72.9% saved)

localize55.0ms (0.8%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(*.f32 x (PI.f32))
0.4b
(/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32)))
0.4b
(/.f32 (sin.f32 (*.f32 (cbrt.f32 (*.f32 (pow.f32 x 3) (pow.f32 (PI.f32) 3))) tau)) (*.f32 (*.f32 x (PI.f32)) tau))
1.0b
(pow.f32 (PI.f32) 3)

series37.0ms (0.5%)

Counts
2 → 24
Calls

6 calls:

16.0ms
(/.f32 (sin.f32 (*.f32 (cbrt.f32 (*.f32 (pow.f32 x 3) (pow.f32 (PI.f32) 3))) tau)) (*.f32 (*.f32 x (PI.f32)) tau))
x
-inf
5.0ms
(/.f32 (sin.f32 (*.f32 (cbrt.f32 (*.f32 (pow.f32 x 3) (pow.f32 (PI.f32) 3))) tau)) (*.f32 (*.f32 x (PI.f32)) tau))
tau
-inf
4.0ms
(/.f32 (sin.f32 (*.f32 (cbrt.f32 (*.f32 (pow.f32 x 3) (pow.f32 (PI.f32) 3))) tau)) (*.f32 (*.f32 x (PI.f32)) tau))
x
0
4.0ms
(/.f32 (sin.f32 (*.f32 (cbrt.f32 (*.f32 (pow.f32 x 3) (pow.f32 (PI.f32) 3))) tau)) (*.f32 (*.f32 x (PI.f32)) tau))
tau
inf
4.0ms
(/.f32 (sin.f32 (*.f32 (cbrt.f32 (*.f32 (pow.f32 x 3) (pow.f32 (PI.f32) 3))) tau)) (*.f32 (*.f32 x (PI.f32)) tau))
x
inf

rewrite49.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
471×prod-diff_binary32
211×expm1-udef_binary32
211×log1p-udef_binary32
123×add-sqr-sqrt_binary32
120×pow1_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01425
130625
2327025
01433
Stop Event
saturated
node limit
Counts
2 → 64

simplify36.0ms (0.5%)

Algorithm
egg-herbie
Rules
753×cancel-sign-sub-inv_binary32
705×fma-def_binary32
509×fma-neg_binary32
439×associate-*r*_binary32
425×associate-*l*_binary32
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
045616
1127608
2440600
32594596
Stop Event
node limit
Counts
88 → 74

prune227.0ms (3.2%)

Pruning

14 alts after pruning (14 fresh and 0 done)

PrunedKeptTotal
New1672169
Fresh21214
Picked101
Done000
Total17014184
Error
0.1b
Counts
184 → 14
Alt Table
StatusErrorProgram
0.8b
(*.f32 (log.f32 (exp.f32 (/.f32 (sin.f32 (*.f32 x (*.f32 (PI.f32) tau))) (*.f32 x (*.f32 (PI.f32) tau))))) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
0.9b
(*.f32 (*.f32 (/.f32 1 (sqrt.f32 (*.f32 (*.f32 tau x) (PI.f32)))) (/.f32 (sin.f32 (*.f32 (*.f32 tau x) (PI.f32))) (sqrt.f32 (*.f32 (*.f32 tau x) (PI.f32))))) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
5.1b
(*.f32 (/.f32 (-.f32 (*.f32 (sin.f32 (exp.f32 (log1p.f32 (*.f32 x (*.f32 (PI.f32) tau))))) (cos.f32 1)) (*.f32 (cos.f32 (exp.f32 (log1p.f32 (*.f32 x (*.f32 (PI.f32) tau))))) (sin.f32 1))) (*.f32 (*.f32 x (PI.f32)) tau)) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
1.8b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (-.f32 (+.f32 (*.f32 1/120 (*.f32 (pow.f32 (PI.f32) 4) (pow.f32 x 4))) 1) (+.f32 (*.f32 1/5040 (*.f32 (pow.f32 (PI.f32) 6) (pow.f32 x 6))) (*.f32 1/6 (*.f32 (pow.f32 (PI.f32) 2) (pow.f32 x 2))))))
6.2b
(*.f32 (/.f32 (+.f32 (log.f32 (*.f32 (cbrt.f32 (exp.f32 (sin.f32 (*.f32 x (*.f32 (PI.f32) tau))))) (cbrt.f32 (exp.f32 (sin.f32 (*.f32 x (*.f32 (PI.f32) tau))))))) (log.f32 (cbrt.f32 (exp.f32 (sin.f32 (*.f32 x (*.f32 (PI.f32) tau))))))) (*.f32 (*.f32 x (PI.f32)) tau)) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
0.9b
(*.f32 (/.f32 (sin.f32 (*.f32 (expm1.f32 (log1p.f32 (pow.f32 (sqrt.f32 (*.f32 x (PI.f32))) 2))) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
1.4b
(*.f32 (+.f32 (log.f32 (*.f32 (cbrt.f32 (exp.f32 (/.f32 (sin.f32 (*.f32 x (*.f32 (PI.f32) tau))) (*.f32 x (*.f32 (PI.f32) tau))))) (cbrt.f32 (exp.f32 (/.f32 (sin.f32 (*.f32 x (*.f32 (PI.f32) tau))) (*.f32 x (*.f32 (PI.f32) tau))))))) (log.f32 (cbrt.f32 (exp.f32 (/.f32 (sin.f32 (*.f32 x (*.f32 (PI.f32) tau))) (*.f32 x (*.f32 (PI.f32) tau))))))) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
1.2b
(*.f32 (/.f32 (sin.f32 (*.f32 (cbrt.f32 (*.f32 (pow.f32 x 3) (pow.f32 (PI.f32) 3))) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (/.f32 (pow.f32 (cbrt.f32 (sin.f32 (*.f32 x (PI.f32)))) 2) (sqrt.f32 (*.f32 x (PI.f32)))) (/.f32 (cbrt.f32 (sin.f32 (*.f32 x (PI.f32)))) (sqrt.f32 (*.f32 x (PI.f32))))))
0.7b
(*.f32 (/.f32 (sin.f32 (*.f32 (expm1.f32 (log1p.f32 (*.f32 x (PI.f32)))) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (pow.f32 (/.f32 (*.f32 x (PI.f32)) (sin.f32 (*.f32 x (PI.f32)))) -1))
1.1b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (/.f32 (pow.f32 (cbrt.f32 (sin.f32 (*.f32 x (PI.f32)))) 2) (PI.f32)) (/.f32 (cbrt.f32 (sin.f32 (*.f32 x (PI.f32)))) x)))
1.1b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (pow.f32 (cbrt.f32 (*.f32 x (PI.f32))) 3)))
0.9b
(*.f32 (+.f32 (log.f32 (sqrt.f32 (exp.f32 (/.f32 (sin.f32 (*.f32 x (*.f32 (PI.f32) tau))) (*.f32 x (*.f32 (PI.f32) tau)))))) (log.f32 (sqrt.f32 (exp.f32 (/.f32 (sin.f32 (*.f32 x (*.f32 (PI.f32) tau))) (*.f32 x (*.f32 (PI.f32) tau))))))) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
2.5b
(*.f32 (*.f32 (/.f32 (sqrt.f32 (sin.f32 (*.f32 x (*.f32 (PI.f32) tau)))) (*.f32 x (PI.f32))) (/.f32 (sqrt.f32 (sin.f32 (*.f32 x (*.f32 (PI.f32) tau)))) tau)) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
0.9b
(*.f32 (/.f32 (sin.f32 (*.f32 (expm1.f32 (log1p.f32 (*.f32 x (PI.f32)))) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (log.f32 (+.f32 1 (expm1.f32 (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32)))))))
Compiler

Compiled 6073 to 2485 computations (59.1% saved)

localize50.0ms (0.7%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(pow.f32 (/.f32 (*.f32 x (PI.f32)) (sin.f32 (*.f32 x (PI.f32)))) -1)
0.4b
(sin.f32 (*.f32 (expm1.f32 (log1p.f32 (*.f32 x (PI.f32)))) tau))
0.4b
(*.f32 x (PI.f32))
0.4b
(/.f32 (sin.f32 (*.f32 (expm1.f32 (log1p.f32 (*.f32 x (PI.f32)))) tau)) (*.f32 (*.f32 x (PI.f32)) tau))

series25.0ms (0.3%)

Counts
1 → 12
Calls

3 calls:

13.0ms
(pow.f32 (/.f32 (*.f32 x (PI.f32)) (sin.f32 (*.f32 x (PI.f32)))) -1)
x
-inf
8.0ms
(pow.f32 (/.f32 (*.f32 x (PI.f32)) (sin.f32 (*.f32 x (PI.f32)))) -1)
x
inf
3.0ms
(pow.f32 (/.f32 (*.f32 x (PI.f32)) (sin.f32 (*.f32 x (PI.f32)))) -1)
x
0

rewrite44.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
815×log1p-expm1-u_binary32
815×expm1-log1p-u_binary32
84×add-sqr-sqrt_binary32
82×pow1_binary32
81×*-un-lft-identity_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0817
116714
2219814
0817
Stop Event
saturated
node limit
Counts
1 → 51

simplify33.0ms (0.5%)

Algorithm
egg-herbie
Rules
836×distribute-rgt-neg-in_binary32
487×fma-def_binary32
475×cancel-sign-sub-inv_binary32
290×*-commutative_binary32
274×fma-neg_binary32
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
030206
182206
2243202
31148200
44116194
Stop Event
node limit
Counts
63 → 59

prune212.0ms (3%)

Pruning

13 alts after pruning (13 fresh and 0 done)

PrunedKeptTotal
New2043207
Fresh31013
Picked101
Done000
Total20813221
Error
0.0b
Counts
221 → 13
Alt Table
StatusErrorProgram
6.2b
(*.f32 (/.f32 (+.f32 (log.f32 (*.f32 (cbrt.f32 (exp.f32 (sin.f32 (*.f32 x (*.f32 (PI.f32) tau))))) (cbrt.f32 (exp.f32 (sin.f32 (*.f32 x (*.f32 (PI.f32) tau))))))) (log.f32 (cbrt.f32 (exp.f32 (sin.f32 (*.f32 x (*.f32 (PI.f32) tau))))))) (*.f32 (*.f32 x (PI.f32)) tau)) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
0.9b
(*.f32 (/.f32 (sin.f32 (*.f32 (expm1.f32 (log1p.f32 (pow.f32 (sqrt.f32 (*.f32 x (PI.f32))) 2))) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
1.4b
(*.f32 (+.f32 (log.f32 (*.f32 (cbrt.f32 (exp.f32 (/.f32 (sin.f32 (*.f32 x (*.f32 (PI.f32) tau))) (*.f32 x (*.f32 (PI.f32) tau))))) (cbrt.f32 (exp.f32 (/.f32 (sin.f32 (*.f32 x (*.f32 (PI.f32) tau))) (*.f32 x (*.f32 (PI.f32) tau))))))) (log.f32 (cbrt.f32 (exp.f32 (/.f32 (sin.f32 (*.f32 x (*.f32 (PI.f32) tau))) (*.f32 x (*.f32 (PI.f32) tau))))))) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
1.2b
(*.f32 (/.f32 (sin.f32 (*.f32 (cbrt.f32 (*.f32 (pow.f32 x 3) (pow.f32 (PI.f32) 3))) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (/.f32 (pow.f32 (cbrt.f32 (sin.f32 (*.f32 x (PI.f32)))) 2) (sqrt.f32 (*.f32 x (PI.f32)))) (/.f32 (cbrt.f32 (sin.f32 (*.f32 x (PI.f32)))) (sqrt.f32 (*.f32 x (PI.f32))))))
0.9b
(*.f32 (*.f32 (/.f32 1 (sqrt.f32 (*.f32 (*.f32 tau x) (PI.f32)))) (/.f32 (sin.f32 (*.f32 (*.f32 tau x) (PI.f32))) (sqrt.f32 (*.f32 (*.f32 tau x) (PI.f32))))) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
1.8b
(*.f32 (/.f32 (sin.f32 (*.f32 (expm1.f32 (log1p.f32 (*.f32 x (PI.f32)))) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (fma.f32 (pow.f32 (PI.f32) 6) (*.f32 (pow.f32 x 6) -1/5040) (fma.f32 1/120 (pow.f32 (*.f32 (PI.f32) x) 4) (fma.f32 (pow.f32 (PI.f32) 2) (*.f32 (*.f32 x x) -1/6) 1))))
0.8b
(*.f32 (log.f32 (exp.f32 (/.f32 (sin.f32 (*.f32 x (*.f32 (PI.f32) tau))) (*.f32 x (*.f32 (PI.f32) tau))))) (pow.f32 (/.f32 (*.f32 x (PI.f32)) (sin.f32 (*.f32 x (PI.f32)))) -1))
5.1b
(*.f32 (/.f32 (-.f32 (*.f32 (sin.f32 (exp.f32 (log1p.f32 (*.f32 x (*.f32 (PI.f32) tau))))) (cos.f32 1)) (*.f32 (cos.f32 (exp.f32 (log1p.f32 (*.f32 x (*.f32 (PI.f32) tau))))) (sin.f32 1))) (*.f32 (*.f32 x (PI.f32)) tau)) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
0.7b
(*.f32 (cbrt.f32 (/.f32 (pow.f32 (sin.f32 (*.f32 x (*.f32 (PI.f32) tau))) 3) (pow.f32 (*.f32 x (*.f32 (PI.f32) tau)) 3))) (pow.f32 (/.f32 (*.f32 x (PI.f32)) (sin.f32 (*.f32 x (PI.f32)))) -1))
1.1b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (pow.f32 (cbrt.f32 (*.f32 x (PI.f32))) 3)))
0.9b
(*.f32 (+.f32 (log.f32 (sqrt.f32 (exp.f32 (/.f32 (sin.f32 (*.f32 x (*.f32 (PI.f32) tau))) (*.f32 x (*.f32 (PI.f32) tau)))))) (log.f32 (sqrt.f32 (exp.f32 (/.f32 (sin.f32 (*.f32 x (*.f32 (PI.f32) tau))) (*.f32 x (*.f32 (PI.f32) tau))))))) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
2.5b
(*.f32 (*.f32 (/.f32 (sqrt.f32 (sin.f32 (*.f32 x (*.f32 (PI.f32) tau)))) (*.f32 x (PI.f32))) (/.f32 (sqrt.f32 (sin.f32 (*.f32 x (*.f32 (PI.f32) tau)))) tau)) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
0.9b
(*.f32 (/.f32 (sin.f32 (*.f32 (expm1.f32 (log1p.f32 (*.f32 x (PI.f32)))) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (log.f32 (+.f32 1 (expm1.f32 (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32)))))))
Compiler

Compiled 6673 to 1849 computations (72.3% saved)

regimes3.3s (46.6%)

Accuracy

Total 0.5b remaining (80.6%)

Threshold costs 0.5b (80.6%)

Counts
548 → 1
Compiler

Compiled 70907 to 39875 computations (43.8% saved)

simplify2.0ms (0%)

Algorithm
egg-herbie
Rules
*-commutative_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01752
12252
Stop Event
saturated

end203.0ms (2.8%)

Stop Event
fuel
Compiler

Compiled 541 to 279 computations (48.4% saved)

Profiling

Loading profile data...