Details

Time bar (total: 10.0s)

analyze3.0ms (0%)

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

Compiled 38 to 21 computations (44.7% saved)

sample2.7s (27.4%)

Results
2.6s8256×body128valid
Compiler

Compiled 99 to 52 computations (47.5% saved)

simplify48.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

prune2.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Error
0.7b
Counts
2 → 1
Alt Table
StatusErrorProgram
0.7b
(*.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)

localize41.0ms (0.4%)

Local error

Found 4 expressions with local error:

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

series56.0ms (0.6%)

Counts
4 → 72
Calls

4 calls:

35.0ms
(/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau))
10.0ms
(/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32)))
9.0ms
(sin.f32 (*.f32 (*.f32 x (PI.f32)) tau))
2.0ms
(*.f32 x (PI.f32))

rewrite18.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
20×add-cbrt-cube_binary32
20×add-exp-log_binary32
12×add-sqr-sqrt_binary32
10×*-un-lft-identity_binary32
10×add-cube-cbrt_binary32
Counts
4 → 77
Calls

4 calls:

5.0ms
(/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau))
4.0ms
(/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32)))
4.0ms
(*.f32 x (PI.f32))
1.0ms
(sin.f32 (*.f32 (*.f32 x (PI.f32)) tau))

simplify85.0ms (0.9%)

Algorithm
egg-herbie
Rules
805×associate-/l*_binary32
347×fma-def_binary32
320×cancel-sign-sub-inv_binary32
307×associate-/l/_binary32
235×unswap-sqr_binary32
Counts
149 → 150
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01902890
14842546
218542521
349702521

prune368.0ms (3.7%)

Pruning

16 alts after pruning (16 fresh and 0 done)

PrunedKeptTotal
New22416240
Fresh000
Picked101
Done000
Total22516241
Error
0.1b
Counts
241 → 16
Alt Table
StatusErrorProgram
0.9b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (/.f32 (sin.f32 (*.f32 (*.f32 x (sqrt.f32 (PI.f32))) (sqrt.f32 (PI.f32)))) (*.f32 x (PI.f32))))
0.8b
(*.f32 (/.f32 (/.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 x tau))) (*.f32 (PI.f32) x)) 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 (*.f32 (cbrt.f32 (sin.f32 (*.f32 x (PI.f32)))) (cbrt.f32 (sin.f32 (*.f32 x (PI.f32))))) (/.f32 (*.f32 x (PI.f32)) (cbrt.f32 (sin.f32 (*.f32 x (PI.f32)))))))
1.2b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 (*.f32 x (*.f32 (cbrt.f32 (PI.f32)) (cbrt.f32 (PI.f32)))) (cbrt.f32 (PI.f32)))))
0.8b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (/.f32 1 x) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (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))))
0.8b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (cbrt.f32 (*.f32 (*.f32 (*.f32 x x) x) (*.f32 (*.f32 (PI.f32) (PI.f32)) (PI.f32)))) tau)) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
1.7b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (-.f32 (fma.f32 1/120 (*.f32 (pow.f32 (PI.f32) 4) (pow.f32 x 4)) 1) (fma.f32 1/6 (*.f32 (pow.f32 (PI.f32) 2) (*.f32 x x)) (*.f32 1/5040 (pow.f32 (*.f32 (PI.f32) x) 6)))))
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))) (*.f32 (*.f32 (cbrt.f32 x) (cbrt.f32 x)) (*.f32 (cbrt.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 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 (*.f32 (sqrt.f32 x) (sqrt.f32 (PI.f32))) (*.f32 (sqrt.f32 x) (sqrt.f32 (PI.f32)))) tau)) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
0.7b
(*.f32 (/.f32 1 (/.f32 (*.f32 (*.f32 x (PI.f32)) tau) (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)))) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
0.7b
(*.f32 (*.f32 (/.f32 1 (*.f32 x (PI.f32))) (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) tau)) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
0.9b
(*.f32 (/.f32 (log1p.f32 (expm1.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 x 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.7b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (/.f32 (sin.f32 (expm1.f32 (log1p.f32 (*.f32 x (PI.f32))))) (*.f32 x (PI.f32))))
Compiler

Compiled 7429 to 1621 computations (78.2% saved)

localize48.0ms (0.5%)

Local error

Found 4 expressions with local error:

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

series15.0ms (0.1%)

Counts
2 → 24
Calls

2 calls:

10.0ms
(/.f32 (sin.f32 (expm1.f32 (log1p.f32 (*.f32 x (PI.f32))))) (*.f32 x (PI.f32)))
5.0ms
(expm1.f32 (log1p.f32 (*.f32 x (PI.f32))))

rewrite8.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
add-cbrt-cube_binary32
add-exp-log_binary32
*-un-lft-identity_binary32
add-sqr-sqrt_binary32
add-cube-cbrt_binary32
Counts
2 → 35
Calls

2 calls:

5.0ms
(/.f32 (sin.f32 (expm1.f32 (log1p.f32 (*.f32 x (PI.f32))))) (*.f32 x (PI.f32)))
1.0ms
(expm1.f32 (log1p.f32 (*.f32 x (PI.f32))))

simplify55.0ms (0.6%)

Algorithm
egg-herbie
Rules
632×fma-def_binary32
589×unswap-sqr_binary32
559×cancel-sign-sub-inv_binary32
346×times-frac_binary32
313×fma-neg_binary32
Counts
59 → 68
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
096890
1213793
2640786
32625778
45318778

prune246.0ms (2.5%)

Pruning

15 alts after pruning (15 fresh and 0 done)

PrunedKeptTotal
New2315236
Fresh51015
Picked101
Done000
Total23715252
Error
0.0b
Counts
252 → 15
Alt Table
StatusErrorProgram
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))) (*.f32 (*.f32 (cbrt.f32 x) (cbrt.f32 x)) (*.f32 (cbrt.f32 x) (PI.f32)))))
1.7b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (fma.f32 (pow.f32 (*.f32 (PI.f32) x) 6) -1/5040 (fma.f32 (pow.f32 (PI.f32) 2) (*.f32 (*.f32 x x) -1/6) (fma.f32 1/120 (pow.f32 (*.f32 (PI.f32) x) 4) 1))))
1.2b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (/.f32 (sin.f32 (expm1.f32 (log1p.f32 (*.f32 x (PI.f32))))) (*.f32 (*.f32 x (*.f32 (cbrt.f32 (PI.f32)) (cbrt.f32 (PI.f32)))) (cbrt.f32 (PI.f32)))))
0.7b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (/.f32 1 (/.f32 (*.f32 x (PI.f32)) (sin.f32 (expm1.f32 (log1p.f32 (*.f32 x (PI.f32))))))))
0.8b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (/.f32 1 x) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (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))))
0.8b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (cbrt.f32 (*.f32 (*.f32 (*.f32 x x) x) (*.f32 (*.f32 (PI.f32) (PI.f32)) (PI.f32)))) tau)) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
0.9b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (/.f32 (sin.f32 (*.f32 (sqrt.f32 (expm1.f32 (log1p.f32 (*.f32 x (PI.f32))))) (sqrt.f32 (expm1.f32 (log1p.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 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 (*.f32 (sqrt.f32 x) (sqrt.f32 (PI.f32))) (*.f32 (sqrt.f32 x) (sqrt.f32 (PI.f32)))) tau)) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
0.7b
(*.f32 (/.f32 1 (/.f32 (*.f32 (*.f32 x (PI.f32)) tau) (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)))) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
0.7b
(*.f32 (*.f32 (/.f32 1 (*.f32 x (PI.f32))) (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) tau)) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
0.9b
(*.f32 (/.f32 (log1p.f32 (expm1.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 x 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.8b
(*.f32 (/.f32 (/.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 x tau))) (*.f32 (PI.f32) x)) tau) (/.f32 (sin.f32 (expm1.f32 (log1p.f32 (*.f32 x (PI.f32))))) (*.f32 x (PI.f32))))
Compiler

Compiled 7612 to 1567 computations (79.4% saved)

localize40.0ms (0.4%)

Local error

Found 4 expressions with local error:

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

series37.0ms (0.4%)

Counts
1 → 24
Calls

1 calls:

37.0ms
(/.f32 1 (/.f32 (*.f32 (*.f32 x (PI.f32)) tau) (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau))))

rewrite13.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
35×add-exp-log_binary32
33×times-frac_binary32
17×*-un-lft-identity_binary32
17×add-sqr-sqrt_binary32
17×add-cube-cbrt_binary32
Counts
1 → 62
Calls

1 calls:

6.0ms
(/.f32 1 (/.f32 (*.f32 (*.f32 x (PI.f32)) tau) (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau))))

simplify121.0ms (1.2%)

Algorithm
egg-herbie
Rules
670×associate-/r*_binary32
461×fma-def_binary32
400×associate-*l/_binary32
345×associate-/r/_binary32
340×*-commutative_binary32
Counts
86 → 94
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01312606
13062289
211392239
343212235
449582235
549512235

prune318.0ms (3.2%)

Pruning

16 alts after pruning (15 fresh and 1 done)

PrunedKeptTotal
New2842286
Fresh11314
Picked011
Done000
Total28516301
Error
0.0b
Counts
301 → 16
Alt Table
StatusErrorProgram
1.2b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (/.f32 (sin.f32 (expm1.f32 (log1p.f32 (*.f32 x (PI.f32))))) (*.f32 (*.f32 x (*.f32 (cbrt.f32 (PI.f32)) (cbrt.f32 (PI.f32)))) (cbrt.f32 (PI.f32)))))
0.7b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (/.f32 1 (/.f32 (*.f32 x (PI.f32)) (sin.f32 (expm1.f32 (log1p.f32 (*.f32 x (PI.f32))))))))
0.8b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (/.f32 1 x) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (PI.f32))))
1.1b
(*.f32 (/.f32 1 (/.f32 (*.f32 (*.f32 (*.f32 (cbrt.f32 x) (cbrt.f32 x)) (*.f32 (PI.f32) (cbrt.f32 x))) tau) (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)))) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
0.7b
(*.f32 (/.f32 1 (/.f32 (*.f32 (*.f32 x (PI.f32)) tau) (sin.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))))
0.8b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (cbrt.f32 (*.f32 (*.f32 (*.f32 x x) x) (*.f32 (*.f32 (PI.f32) (PI.f32)) (PI.f32)))) tau)) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
0.9b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (/.f32 (sin.f32 (*.f32 (sqrt.f32 (expm1.f32 (log1p.f32 (*.f32 x (PI.f32))))) (sqrt.f32 (expm1.f32 (log1p.f32 (*.f32 x (PI.f32))))))) (*.f32 x (PI.f32))))
1.7b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (fma.f32 (pow.f32 (*.f32 (PI.f32) x) 6) -1/5040 (fma.f32 (pow.f32 (PI.f32) 2) (*.f32 (*.f32 x x) -1/6) (fma.f32 1/120 (pow.f32 (*.f32 (PI.f32) x) 4) 1))))
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 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 (*.f32 (sqrt.f32 x) (sqrt.f32 (PI.f32))) (*.f32 (sqrt.f32 x) (sqrt.f32 (PI.f32)))) tau)) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
0.7b
(*.f32 (/.f32 1 (/.f32 (*.f32 (*.f32 x (PI.f32)) tau) (sin.f32 (*.f32 (expm1.f32 (log1p.f32 (*.f32 (PI.f32) x))) tau)))) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
0.7b
(*.f32 (*.f32 (/.f32 1 (*.f32 x (PI.f32))) (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) tau)) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
0.9b
(*.f32 (/.f32 (log1p.f32 (expm1.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 x 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.8b
(*.f32 (/.f32 (/.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 x tau))) (*.f32 (PI.f32) x)) tau) (/.f32 (sin.f32 (expm1.f32 (log1p.f32 (*.f32 x (PI.f32))))) (*.f32 x (PI.f32))))
Compiler

Compiled 9424 to 2405 computations (74.5% saved)

localize49.0ms (0.5%)

Local error

Found 4 expressions with local error:

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

series11.0ms (0.1%)

Counts
1 → 12
Calls

1 calls:

11.0ms
(/.f32 1 (/.f32 (*.f32 x (PI.f32)) (sin.f32 (expm1.f32 (log1p.f32 (*.f32 x (PI.f32)))))))

rewrite9.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
33×times-frac_binary32
22×add-exp-log_binary32
17×*-un-lft-identity_binary32
17×add-sqr-sqrt_binary32
17×add-cube-cbrt_binary32
Counts
1 → 58
Calls

1 calls:

5.0ms
(/.f32 1 (/.f32 (*.f32 x (PI.f32)) (sin.f32 (expm1.f32 (log1p.f32 (*.f32 x (PI.f32)))))))

simplify75.0ms (0.8%)

Algorithm
egg-herbie
Rules
676×fma-def_binary32
604×unswap-sqr_binary32
443×associate-/l*_binary32
398×associate-*l*_binary32
360×associate-*r*_binary32
Counts
70 → 90
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01091611
12261406
27521357
333791349
453421349

prune344.0ms (3.5%)

Pruning

16 alts after pruning (15 fresh and 1 done)

PrunedKeptTotal
New2744278
Fresh31114
Picked101
Done011
Total27816294
Error
0.0b
Counts
294 → 16
Alt Table
StatusErrorProgram
0.9b
(*.f32 (/.f32 (neg.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 x tau)))) (*.f32 tau (neg.f32 (*.f32 (PI.f32) x)))) (/.f32 1 (/.f32 (*.f32 x (PI.f32)) (sin.f32 (expm1.f32 (log1p.f32 (*.f32 x (PI.f32))))))))
1.7b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (fma.f32 (pow.f32 (*.f32 (PI.f32) x) 6) -1/5040 (fma.f32 (pow.f32 (PI.f32) 2) (*.f32 (*.f32 x x) -1/6) (fma.f32 1/120 (pow.f32 (*.f32 (PI.f32) x) 4) 1))))
0.7b
(*.f32 (/.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 x tau))) (*.f32 (PI.f32) (*.f32 x tau))) (/.f32 1 (/.f32 (*.f32 x (PI.f32)) (sin.f32 (expm1.f32 (log1p.f32 (*.f32 x (PI.f32))))))))
1.1b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 (*.f32 (sqrt.f32 x) (sqrt.f32 (PI.f32))) (*.f32 (sqrt.f32 x) (sqrt.f32 (PI.f32)))) tau)) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
0.9b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 (sqrt.f32 x) (*.f32 (PI.f32) (sqrt.f32 x))) tau)) (/.f32 1 (/.f32 (*.f32 x (PI.f32)) (sin.f32 (expm1.f32 (log1p.f32 (*.f32 x (PI.f32))))))))
1.2b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (/.f32 (sin.f32 (expm1.f32 (log1p.f32 (*.f32 x (PI.f32))))) (*.f32 (*.f32 x (*.f32 (cbrt.f32 (PI.f32)) (cbrt.f32 (PI.f32)))) (cbrt.f32 (PI.f32)))))
0.8b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (/.f32 1 x) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (PI.f32))))
1.1b
(*.f32 (/.f32 1 (/.f32 (*.f32 (*.f32 (*.f32 (cbrt.f32 x) (cbrt.f32 x)) (*.f32 (PI.f32) (cbrt.f32 x))) tau) (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)))) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
0.7b
(*.f32 (/.f32 1 (/.f32 (*.f32 (*.f32 x (PI.f32)) tau) (sin.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 (PI.f32) (*.f32 x tau))) (*.f32 (PI.f32) (*.f32 x tau))))) (/.f32 1 (/.f32 (*.f32 x (PI.f32)) (sin.f32 (expm1.f32 (log1p.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 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (/.f32 (sin.f32 (*.f32 (sqrt.f32 (expm1.f32 (log1p.f32 (*.f32 x (PI.f32))))) (sqrt.f32 (expm1.f32 (log1p.f32 (*.f32 x (PI.f32))))))) (*.f32 x (PI.f32))))
0.7b
(*.f32 (/.f32 1 (/.f32 (*.f32 (*.f32 x (PI.f32)) tau) (sin.f32 (*.f32 (expm1.f32 (log1p.f32 (*.f32 (PI.f32) x))) tau)))) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
0.8b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (cbrt.f32 (*.f32 (*.f32 (*.f32 x x) x) (*.f32 (*.f32 (PI.f32) (PI.f32)) (PI.f32)))) tau)) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
0.7b
(*.f32 (*.f32 (/.f32 1 (*.f32 x (PI.f32))) (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) tau)) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
0.8b
(*.f32 (/.f32 (/.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 x tau))) (*.f32 (PI.f32) x)) tau) (/.f32 (sin.f32 (expm1.f32 (log1p.f32 (*.f32 x (PI.f32))))) (*.f32 x (PI.f32))))
Compiler

Compiled 9133 to 2115 computations (76.8% saved)

regimes4.8s (48.1%)

Accuracy

Total 0.5b remaining (75.8%)

Threshold costs 0.5b (75.8%)

Counts
431 → 1
Compiler

Compiled 50700 to 27136 computations (46.5% saved)

simplify4.0ms (0%)

Algorithm
egg-herbie
Rules
*-commutative_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01344
11644
21644

end419.0ms (4.2%)

Compiler

Compiled 521 to 278 computations (46.6% saved)

Profiling

Loading profile data...