Details

Time bar (total: 12.8s)

analyze7.0ms (0.1%)

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

Compiled 38 to 21 computations (44.7% saved)

sample3.8s (29.9%)

Results
3.7s8256×body128valid
Compiler

Compiled 99 to 52 computations (47.5% saved)

simplify62.0ms (0.5%)

Algorithm
egg-herbie
Rules
760×associate-/l/_binary32
455×associate-/l*_binary32
281×times-frac_binary32
257×associate-/r/_binary32
154×associate-*l/_binary32
Counts
1 → 1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01136
12436
28036
329936
482236
5126536
6121136
7123936
8124736
9125136
10125336
11121936
12121736

prune3.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Error
0.6b
Counts
2 → 1
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))))
Compiler

Compiled 69 to 30 computations (56.5% saved)

localize76.0ms (0.6%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.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))

series102.0ms (0.8%)

Counts
4 → 72
Calls

4 calls:

62.0ms
(/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau))
19.0ms
(/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32)))
16.0ms
(*.f32 (*.f32 x (PI.f32)) tau)
4.0ms
(*.f32 x (PI.f32))

rewrite170.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
720×prod-diff_binary32
487×fma-udef_binary32
203×expm1-udef_binary32
203×log1p-udef_binary32
201×fma-neg_binary32
Counts
4 → 113
Calls

4 calls:

166.0ms
(*.f32 (*.f32 x (PI.f32)) tau)
166.0ms
(*.f32 x (PI.f32))
166.0ms
(/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32)))
166.0ms
(/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01047
121347
2304047
3472747
4468747
5507547
000
100

simplify114.0ms (0.9%)

Algorithm
egg-herbie
Rules
778×fma-neg_binary32
570×distribute-rgt-neg-in_binary32
556×distribute-lft-neg-in_binary32
489×associate-*r*_binary32
481×associate-*l*_binary32
Counts
185 → 130
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0521046
11511038
24851026
324741026
449181026
549791026
649791026

prune405.0ms (3.2%)

Pruning

19 alts after pruning (19 fresh and 0 done)

PrunedKeptTotal
New17519194
Fresh000
Picked101
Done000
Total17619195
Error
0.1b
Counts
195 → 19
Alt Table
StatusErrorProgram
0.8b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (-.f32 (exp.f32 (log1p.f32 (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))) 1))
0.8b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (PI.f32) (*.f32 tau x))) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
0.7b
(*.f32 (/.f32 (sin.f32 (cbrt.f32 (*.f32 (pow.f32 (*.f32 x (PI.f32)) 3) (pow.f32 tau 3)))) (*.f32 (*.f32 x (PI.f32)) tau)) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
3.3b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (fma.f32 1/120 (*.f32 (pow.f32 (PI.f32) 4) (pow.f32 x 4)) (fma.f32 (*.f32 (pow.f32 (PI.f32) 2) (*.f32 x x)) -1/6 1)))
0.9b
(*.f32 (/.f32 (sin.f32 (*.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)))))))
0.9b
(*.f32 (log.f32 (exp.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))))
1.1b
(*.f32 (*.f32 (/.f32 1 (pow.f32 (cbrt.f32 (*.f32 (*.f32 x (PI.f32)) tau)) 2)) (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (cbrt.f32 (*.f32 (*.f32 x (PI.f32)) tau)))) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
1.0b
(*.f32 (/.f32 (sin.f32 (pow.f32 (sqrt.f32 (*.f32 (*.f32 x (PI.f32)) tau)) 2)) (*.f32 (*.f32 x (PI.f32)) tau)) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
0.7b
(*.f32 (pow.f32 (/.f32 (*.f32 (*.f32 x (PI.f32)) tau) (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau))) -1) (/.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 (*.f32 x (PI.f32))) (pow.f32 (cbrt.f32 (*.f32 x (PI.f32))) 3)))
0.9b
(*.f32 (pow.f32 (cbrt.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau))) 3) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
5.5b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (/.f32 (sin.f32 (-.f32 (exp.f32 (log1p.f32 (*.f32 x (PI.f32)))) 1)) (*.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) (sqrt.f32 (*.f32 x (PI.f32)))) (/.f32 (cbrt.f32 (sin.f32 (*.f32 x (PI.f32)))) (sqrt.f32 (*.f32 x (PI.f32))))))
0.8b
(*.f32 (-.f32 (exp.f32 (log1p.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)))) 1) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
6.7b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (/.f32 (sin.f32 (log.f32 (pow.f32 (exp.f32 x) (PI.f32)))) (*.f32 x (PI.f32))))
0.9b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (pow.f32 (sqrt.f32 (*.f32 x (PI.f32))) 2) tau)) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
0.9b
(*.f32 (*.f32 (/.f32 1 (sqrt.f32 (*.f32 (*.f32 x (PI.f32)) tau))) (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (sqrt.f32 (*.f32 (*.f32 x (PI.f32)) tau)))) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
0.7b
(*.f32 (/.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 tau x))) (*.f32 (PI.f32) (*.f32 tau x))) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
1.1b
(*.f32 (*.f32 (pow.f32 (cbrt.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau))) 2) (*.f32 (cbrt.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau))) (/.f32 1 (*.f32 (*.f32 x (PI.f32)) tau)))) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
Compiler

Compiled 6139 to 1664 computations (72.9% saved)

localize67.0ms (0.5%)

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 (PI.f32) (*.f32 tau x))) (*.f32 (PI.f32) (*.f32 tau x)))
0.4b
(*.f32 (PI.f32) (*.f32 tau x))

series61.0ms (0.5%)

Counts
2 → 8
Calls

2 calls:

49.0ms
(/.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 tau x))) (*.f32 (PI.f32) (*.f32 tau x)))
12.0ms
(*.f32 (PI.f32) (*.f32 tau x))

rewrite76.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
879×log1p-expm1-u_binary32
879×expm1-log1p-u_binary32
511×prod-diff_binary32
86×add-sqr-sqrt_binary32
80×associate-*r*_binary32
Counts
2 → 58
Calls

2 calls:

74.0ms
(/.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 tau x))) (*.f32 (PI.f32) (*.f32 tau x)))
74.0ms
(*.f32 (PI.f32) (*.f32 tau x))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0828
116628
2224328
3634128
000
100

simplify64.0ms (0.5%)

Algorithm
egg-herbie
Rules
755×fma-neg_binary32
726×cancel-sign-sub-inv_binary32
705×fma-def_binary32
440×distribute-rgt-neg-in_binary32
426×distribute-lft-neg-in_binary32
Counts
66 → 65
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
034268
198260
2325252
31826248
44253248
55052248

prune595.0ms (4.6%)

Pruning

16 alts after pruning (16 fresh and 0 done)

PrunedKeptTotal
New1563159
Fresh51318
Picked101
Done000
Total16216178
Error
0.1b
Counts
178 → 16
Alt Table
StatusErrorProgram
0.7b
(*.f32 (*.f32 (/.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 tau x))) (PI.f32)) (/.f32 1 (*.f32 tau x))) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
0.7b
(*.f32 (/.f32 (sin.f32 (cbrt.f32 (*.f32 (pow.f32 (*.f32 x (PI.f32)) 3) (pow.f32 tau 3)))) (*.f32 (*.f32 x (PI.f32)) tau)) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
3.3b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (fma.f32 1/120 (*.f32 (pow.f32 (PI.f32) 4) (pow.f32 x 4)) (fma.f32 (*.f32 (pow.f32 (PI.f32) 2) (*.f32 x x)) -1/6 1)))
0.9b
(*.f32 (/.f32 (sin.f32 (*.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)))))))
0.9b
(*.f32 (log.f32 (exp.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))))
1.0b
(*.f32 (/.f32 (sin.f32 (pow.f32 (sqrt.f32 (*.f32 (*.f32 x (PI.f32)) tau)) 2)) (*.f32 (*.f32 x (PI.f32)) tau)) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
0.7b
(*.f32 (pow.f32 (/.f32 (*.f32 (*.f32 x (PI.f32)) tau) (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau))) -1) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
0.7b
(*.f32 (/.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 tau x))) (*.f32 (PI.f32) (*.f32 tau x))) (log1p.f32 (expm1.f32 (/.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 (*.f32 x (PI.f32))) (pow.f32 (cbrt.f32 (*.f32 x (PI.f32))) 3)))
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) (sqrt.f32 (*.f32 x (PI.f32)))) (/.f32 (cbrt.f32 (sin.f32 (*.f32 x (PI.f32)))) (sqrt.f32 (*.f32 x (PI.f32))))))
0.8b
(*.f32 (-.f32 (exp.f32 (log1p.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)))) 1) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
6.7b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (/.f32 (sin.f32 (log.f32 (pow.f32 (exp.f32 x) (PI.f32)))) (*.f32 x (PI.f32))))
0.8b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (PI.f32) (*.f32 tau x))) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
0.9b
(*.f32 (*.f32 (/.f32 1 (sqrt.f32 (*.f32 (*.f32 x (PI.f32)) tau))) (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (sqrt.f32 (*.f32 (*.f32 x (PI.f32)) tau)))) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
0.7b
(*.f32 (/.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 tau x))) (*.f32 (PI.f32) (*.f32 tau x))) (/.f32 (sin.f32 (expm1.f32 (log1p.f32 (*.f32 x (PI.f32))))) (*.f32 x (PI.f32))))
1.1b
(*.f32 (*.f32 (pow.f32 (cbrt.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau))) 2) (*.f32 (cbrt.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau))) (/.f32 1 (*.f32 (*.f32 x (PI.f32)) tau)))) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
Compiler

Compiled 5129 to 1393 computations (72.8% saved)

localize69.0ms (0.5%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.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
(pow.f32 (/.f32 (*.f32 (*.f32 x (PI.f32)) tau) (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau))) -1)

series177.0ms (1.4%)

Counts
1 → 24
Calls

1 calls:

177.0ms
(pow.f32 (/.f32 (*.f32 (*.f32 x (PI.f32)) tau) (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau))) -1)

rewrite85.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
573×log-prod_binary32
468×prod-diff_binary32
184×expm1-udef_binary32
184×log1p-udef_binary32
170×log-pow_binary32
Counts
1 → 57
Calls

1 calls:

82.0ms
(pow.f32 (/.f32 (*.f32 (*.f32 x (PI.f32)) tau) (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau))) -1)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01023
120820
2263120
3524820
000
100

simplify76.0ms (0.6%)

Algorithm
egg-herbie
Rules
723×cancel-sign-sub-inv_binary32
705×fma-def_binary32
687×fma-neg_binary32
435×distribute-rgt-neg-in_binary32
421×distribute-lft-neg-in_binary32
Counts
81 → 65
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
038588
1108580
2345572
31868568
44233568
54976568

prune415.0ms (3.2%)

Pruning

15 alts after pruning (15 fresh and 0 done)

PrunedKeptTotal
New2008208
Fresh8715
Picked101
Done000
Total20915224
Error
0.0b
Counts
224 → 15
Alt Table
StatusErrorProgram
0.9b
(*.f32 (pow.f32 (/.f32 (*.f32 (*.f32 x (PI.f32)) tau) (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau))) -1) (*.f32 (/.f32 1 (sqrt.f32 (*.f32 x (PI.f32)))) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (sqrt.f32 (*.f32 x (PI.f32))))))
0.7b
(*.f32 (pow.f32 (/.f32 (*.f32 (*.f32 x (PI.f32)) tau) (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau))) -1) (expm1.f32 (log1p.f32 (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))))
0.7b
(*.f32 (*.f32 (/.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 tau x))) (PI.f32)) (/.f32 1 (*.f32 tau x))) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
0.7b
(*.f32 (/.f32 (sin.f32 (cbrt.f32 (*.f32 (pow.f32 (*.f32 x (PI.f32)) 3) (pow.f32 tau 3)))) (*.f32 (*.f32 x (PI.f32)) tau)) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
3.3b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (fma.f32 1/120 (*.f32 (pow.f32 (PI.f32) 4) (pow.f32 x 4)) (fma.f32 (*.f32 (pow.f32 (PI.f32) 2) (*.f32 x x)) -1/6 1)))
1.0b
(*.f32 (+.f32 (log.f32 (sqrt.f32 (exp.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau))))) (log.f32 (sqrt.f32 (exp.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))))
1.1b
(*.f32 (*.f32 (pow.f32 (cbrt.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau))) 2) (*.f32 (cbrt.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau))) (/.f32 1 (*.f32 (*.f32 x (PI.f32)) tau)))) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
0.7b
(*.f32 (pow.f32 (/.f32 (*.f32 (*.f32 x (PI.f32)) tau) (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau))) -1) (/.f32 (sin.f32 (cbrt.f32 (*.f32 (pow.f32 (PI.f32) 3) (pow.f32 x 3)))) (*.f32 x (PI.f32))))
0.8b
(*.f32 (-.f32 (exp.f32 (log1p.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)))) 1) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
0.7b
(*.f32 (/.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 x (PI.f32))) tau) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
0.9b
(*.f32 (pow.f32 (/.f32 (*.f32 (*.f32 x (PI.f32)) tau) (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau))) -1) (log.f32 (+.f32 1 (expm1.f32 (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32)))))))
0.9b
(*.f32 (*.f32 (/.f32 1 (sqrt.f32 (*.f32 (*.f32 x (PI.f32)) tau))) (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (sqrt.f32 (*.f32 (*.f32 x (PI.f32)) tau)))) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
0.9b
(*.f32 (log.f32 (exp.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.7b
(*.f32 (/.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) tau) (*.f32 x (PI.f32))) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
1.3b
(*.f32 (+.f32 (log.f32 (*.f32 (cbrt.f32 (exp.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)))) (cbrt.f32 (exp.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)))))) (log.f32 (cbrt.f32 (exp.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))))
Compiler

Compiled 6754 to 1919 computations (71.6% saved)

localize72.0ms (0.6%)

Local error

Found 4 expressions with local error:

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

series96.0ms (0.8%)

Counts
2 → 48
Calls

2 calls:

52.0ms
(/.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 x (PI.f32))) tau)
44.0ms
(/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 x (PI.f32)))

rewrite153.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
617×log-prod_binary32
495×prod-diff_binary32
183×expm1-udef_binary32
183×log1p-udef_binary32
167×log-pow_binary32
Counts
2 → 100
Calls

2 calls:

148.0ms
(/.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 x (PI.f32))) tau)
148.0ms
(/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 x (PI.f32)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0937
119337
2278537
3573837
000
100

simplify88.0ms (0.7%)

Algorithm
egg-herbie
Rules
992×fma-neg_binary32
899×distribute-rgt-neg-in_binary32
800×associate-*r*_binary32
733×associate-*l*_binary32
203×*-commutative_binary32
Counts
148 → 116
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0601120
11781112
26161096
334921096
456611096

prune432.0ms (3.4%)

Pruning

15 alts after pruning (15 fresh and 0 done)

PrunedKeptTotal
New2252227
Fresh11314
Picked101
Done000
Total22715242
Error
0.0b
Counts
242 → 15
Alt Table
StatusErrorProgram
0.9b
(*.f32 (pow.f32 (/.f32 (*.f32 (*.f32 x (PI.f32)) tau) (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau))) -1) (*.f32 (/.f32 1 (sqrt.f32 (*.f32 x (PI.f32)))) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (sqrt.f32 (*.f32 x (PI.f32))))))
0.7b
(*.f32 (pow.f32 (/.f32 (*.f32 (*.f32 x (PI.f32)) tau) (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau))) -1) (expm1.f32 (log1p.f32 (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))))
0.7b
(*.f32 (*.f32 (/.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 tau x))) (PI.f32)) (/.f32 1 (*.f32 tau x))) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
0.7b
(*.f32 (/.f32 (sin.f32 (cbrt.f32 (*.f32 (pow.f32 (*.f32 x (PI.f32)) 3) (pow.f32 tau 3)))) (*.f32 (*.f32 x (PI.f32)) tau)) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
3.3b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (fma.f32 1/120 (*.f32 (pow.f32 (PI.f32) 4) (pow.f32 x 4)) (fma.f32 (*.f32 (pow.f32 (PI.f32) 2) (*.f32 x x)) -1/6 1)))
0.7b
(*.f32 (/.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) tau) (*.f32 x (PI.f32))) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
0.8b
(*.f32 (/.f32 (+.f32 (log.f32 (sqrt.f32 (exp.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 x (PI.f32)))))) (log.f32 (sqrt.f32 (exp.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 x (PI.f32))))))) tau) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
1.0b
(*.f32 (+.f32 (log.f32 (sqrt.f32 (exp.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau))))) (log.f32 (sqrt.f32 (exp.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))))
1.1b
(*.f32 (*.f32 (pow.f32 (cbrt.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau))) 2) (*.f32 (cbrt.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau))) (/.f32 1 (*.f32 (*.f32 x (PI.f32)) tau)))) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
0.9b
(*.f32 (pow.f32 (/.f32 (*.f32 (*.f32 x (PI.f32)) tau) (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau))) -1) (log.f32 (+.f32 1 (expm1.f32 (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32)))))))
0.7b
(*.f32 (/.f32 (log.f32 (+.f32 1 (expm1.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.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 (*.f32 x (PI.f32)) tau))) (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (sqrt.f32 (*.f32 (*.f32 x (PI.f32)) tau)))) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
0.9b
(*.f32 (log.f32 (exp.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))))
1.3b
(*.f32 (+.f32 (log.f32 (*.f32 (cbrt.f32 (exp.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)))) (cbrt.f32 (exp.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)))))) (log.f32 (cbrt.f32 (exp.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.7b
(*.f32 (pow.f32 (/.f32 (*.f32 (*.f32 x (PI.f32)) tau) (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau))) -1) (/.f32 (sin.f32 (cbrt.f32 (*.f32 (pow.f32 (PI.f32) 3) (pow.f32 x 3)))) (*.f32 x (PI.f32))))
Compiler

Compiled 6758 to 1668 computations (75.3% saved)

regimes5.1s (40%)

Accuracy

Total 0.6b remaining (79.9%)

Threshold costs 0.6b (79.9%)

Counts
463 → 1
Compiler

Compiled 51924 to 26948 computations (48.1% saved)

simplify3.0ms (0%)

Algorithm
egg-herbie
Rules
*-commutative_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01340
11640
21640

end390.0ms (3%)

Compiler

Compiled 539 to 253 computations (53.1% saved)

Profiling

Loading profile data...