Details

Time bar (total: 7.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.1s (29.6%)

Results
2.0s8256×body128valid
Compiler

Compiled 99 to 52 computations (47.5% saved)

simplify36.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.6b
Counts
3 → 2
Alt Table
StatusErrorProgram
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)))))
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 136 to 64 computations (52.9% saved)

localize32.0ms (0.5%)

Local error

Found 4 expressions with local error:

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

4 calls:

27.0ms
(/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau))
8.0ms
(/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32)))
6.0ms
(sin.f32 (*.f32 (*.f32 x (PI.f32)) tau))
2.0ms
(*.f32 x (PI.f32))

rewrite57.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
720×prod-diff_binary32
203×expm1-udef_binary32
203×log1p-udef_binary32
116×egg-rr
111×add-sqr-sqrt_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01049
121349
2314149
Stop Event
node limit
Counts
4 → 116
Calls

4 calls:

54.0ms
(*.f32 x (PI.f32))
54.0ms
(/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32)))
54.0ms
(sin.f32 (*.f32 (*.f32 x (PI.f32)) tau))
54.0ms
(/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau))

simplify58.0ms (0.8%)

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

Useful iterations: 2 (0.0ms)

IterNodesCost
0781330
12451314
29221298
327911298
447741298
Stop Event
node limit
Counts
188 → 140

prune205.0ms (2.9%)

Pruning

16 alts after pruning (16 fresh and 0 done)

PrunedKeptTotal
New17315188
Fresh011
Picked101
Done000
Total17416190
Error
0.1b
Counts
190 → 16
Alt Table
StatusErrorProgram
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)))))
1.0b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (/.f32 (sqrt.f32 (sin.f32 (*.f32 x (PI.f32)))) x) (/.f32 (sqrt.f32 (sin.f32 (*.f32 x (PI.f32)))) (PI.f32))))
3.2b
(*.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 (*.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 x (*.f32 (PI.f32) tau))) (*.f32 x (*.f32 (PI.f32) 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 (*.f32 x (PI.f32)) tau)) (/.f32 (sin.f32 (cbrt.f32 (*.f32 (pow.f32 x 3) (pow.f32 (PI.f32) 3)))) (*.f32 x (PI.f32))))
3.0b
(*.f32 (pow.f32 (sqrt.f32 (/.f32 (sin.f32 (*.f32 x (*.f32 (PI.f32) tau))) (*.f32 x (*.f32 (PI.f32) tau)))) 2) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
5.3b
(*.f32 (/.f32 (-.f32 (exp.f32 (log1p.f32 (sin.f32 (*.f32 x (*.f32 (PI.f32) tau))))) 1) (*.f32 (*.f32 x (PI.f32)) tau)) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
1.2b
(*.f32 (*.f32 (/.f32 1 (pow.f32 (cbrt.f32 (*.f32 x (*.f32 (PI.f32) tau))) 2)) (/.f32 (sin.f32 (*.f32 x (*.f32 (PI.f32) tau))) (cbrt.f32 (*.f32 x (*.f32 (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 (*.f32 x (PI.f32))) (log1p.f32 (expm1.f32 (*.f32 x (PI.f32))))))
1.0b
(*.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 (sqrt.f32 (*.f32 x (PI.f32))) 2)))
5.2b
(*.f32 (/.f32 (log.f32 (+.f32 1 (expm1.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))))
4.9b
(*.f32 (fma.f32 (*.f32 (pow.f32 (PI.f32) 2) (*.f32 (*.f32 tau x) (*.f32 tau x))) -1/6 (fma.f32 (*.f32 (pow.f32 x 4) (*.f32 1/120 (pow.f32 (PI.f32) 4))) (pow.f32 tau 4) 1)) (/.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 (cbrt.f32 (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32)))) (pow.f32 (cbrt.f32 (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32)))) 2)))
1.0b
(*.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.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))
Compiler

Compiled 6001 to 1685 computations (71.9% saved)

localize41.0ms (0.6%)

Local error

Found 4 expressions with local error:

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

series12.0ms (0.2%)

Counts
2 → 24
Calls

2 calls:

9.0ms
(/.f32 (sin.f32 (*.f32 x (PI.f32))) (log1p.f32 (expm1.f32 (*.f32 x (PI.f32)))))
3.0ms
(expm1.f32 (*.f32 x (PI.f32)))

rewrite38.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
703×expm1-log1p-u_binary32
702×log1p-expm1-u_binary32
278×prod-diff_binary32
132×log1p-udef_binary32
72×add-sqr-sqrt_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0821
114621
2187921
Stop Event
node limit
Counts
2 → 59
Calls

2 calls:

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

simplify26.0ms (0.4%)

Algorithm
egg-herbie
Rules
735×cancel-sign-sub-inv_binary32
551×unswap-sqr_binary32
349×distribute-rgt-neg-in_binary32
348×associate-*r*_binary32
344×associate-*l*_binary32
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
046366
1138366
2432359
32203359
Stop Event
node limit
Counts
83 → 76

prune152.0ms (2.2%)

Pruning

16 alts after pruning (15 fresh and 1 done)

PrunedKeptTotal
New1521153
Fresh11415
Picked011
Done000
Total15316169
Error
0.1b
Counts
169 → 16
Alt Table
StatusErrorProgram
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)))))
1.0b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (/.f32 (sqrt.f32 (sin.f32 (*.f32 x (PI.f32)))) x) (/.f32 (sqrt.f32 (sin.f32 (*.f32 x (PI.f32)))) (PI.f32))))
3.2b
(*.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 (*.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 x (*.f32 (PI.f32) tau))) (*.f32 x (*.f32 (PI.f32) 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 (*.f32 x (PI.f32)) tau)) (/.f32 (sin.f32 (cbrt.f32 (*.f32 (pow.f32 x 3) (pow.f32 (PI.f32) 3)))) (*.f32 x (PI.f32))))
3.0b
(*.f32 (pow.f32 (sqrt.f32 (/.f32 (sin.f32 (*.f32 x (*.f32 (PI.f32) tau))) (*.f32 x (*.f32 (PI.f32) tau)))) 2) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
5.3b
(*.f32 (/.f32 (-.f32 (exp.f32 (log1p.f32 (sin.f32 (*.f32 x (*.f32 (PI.f32) tau))))) 1) (*.f32 (*.f32 x (PI.f32)) tau)) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
1.2b
(*.f32 (*.f32 (/.f32 1 (pow.f32 (cbrt.f32 (*.f32 x (*.f32 (PI.f32) tau))) 2)) (/.f32 (sin.f32 (*.f32 x (*.f32 (PI.f32) tau))) (cbrt.f32 (*.f32 x (*.f32 (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 (*.f32 x (PI.f32))) (log1p.f32 (expm1.f32 (*.f32 x (PI.f32))))))
1.0b
(*.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 (sqrt.f32 (*.f32 x (PI.f32))) 2)))
5.2b
(*.f32 (/.f32 (log.f32 (+.f32 1 (expm1.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))))
4.9b
(*.f32 (fma.f32 (*.f32 (pow.f32 (PI.f32) 2) (*.f32 (*.f32 tau x) (*.f32 tau x))) -1/6 (fma.f32 (*.f32 (pow.f32 x 4) (*.f32 1/120 (pow.f32 (PI.f32) 4))) (pow.f32 tau 4) 1)) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
2.9b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (fma.f32 (pow.f32 (PI.f32) 4) (*.f32 (pow.f32 x 4) 1/120) (fma.f32 (*.f32 (pow.f32 (PI.f32) 2) (*.f32 x x)) -1/6 1)))
1.0b
(*.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.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))
Compiler

Compiled 5456 to 1591 computations (70.8% saved)

localize49.0ms (0.7%)

Local error

Found 4 expressions with local error:

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

series18.0ms (0.2%)

Counts
2 → 12
Calls

2 calls:

17.0ms
(/.f32 (sin.f32 (cbrt.f32 (*.f32 (pow.f32 x 3) (pow.f32 (PI.f32) 3)))) (*.f32 x (PI.f32)))
0.0ms
(pow.f32 (PI.f32) 3)

rewrite44.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
533×log-prod_binary32
357×prod-diff_binary32
173×expm1-udef_binary32
173×log1p-udef_binary32
166×log-pow_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01119
123019
2271919
Stop Event
node limit
Counts
2 → 67
Calls

2 calls:

43.0ms
(/.f32 (sin.f32 (cbrt.f32 (*.f32 (pow.f32 x 3) (pow.f32 (PI.f32) 3)))) (*.f32 x (PI.f32)))
43.0ms
(pow.f32 (PI.f32) 3)

simplify30.0ms (0.4%)

Algorithm
egg-herbie
Rules
488×fma-def_binary32
486×cancel-sign-sub-inv_binary32
323×*-commutative_binary32
274×fma-neg_binary32
240×unswap-sqr_binary32
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
037234
199234
2292230
31300228
44426222
Stop Event
node limit
Counts
79 → 77

prune185.0ms (2.6%)

Pruning

15 alts after pruning (15 fresh and 0 done)

PrunedKeptTotal
New1504154
Fresh31114
Picked101
Done101
Total15515170
Error
0.1b
Counts
170 → 15
Alt Table
StatusErrorProgram
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)))))
1.0b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (/.f32 (sqrt.f32 (sin.f32 (*.f32 x (PI.f32)))) x) (/.f32 (sqrt.f32 (sin.f32 (*.f32 x (PI.f32)))) (PI.f32))))
3.2b
(*.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))))
2.9b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (fma.f32 (pow.f32 (PI.f32) 4) (*.f32 (pow.f32 x 4) 1/120) (fma.f32 (*.f32 (pow.f32 (PI.f32) 2) (*.f32 x x)) -1/6 1)))
1.1b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (/.f32 (sin.f32 (cbrt.f32 (*.f32 (pow.f32 x 3) (*.f32 (pow.f32 (pow.f32 (cbrt.f32 (PI.f32)) 2) 3) (PI.f32))))) (*.f32 x (PI.f32))))
5.3b
(*.f32 (/.f32 (-.f32 (exp.f32 (log1p.f32 (sin.f32 (*.f32 x (*.f32 (PI.f32) tau))))) 1) (*.f32 (*.f32 x (PI.f32)) tau)) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
1.2b
(*.f32 (*.f32 (/.f32 1 (pow.f32 (cbrt.f32 (*.f32 x (*.f32 (PI.f32) tau))) 2)) (/.f32 (sin.f32 (*.f32 x (*.f32 (PI.f32) tau))) (cbrt.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 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (pow.f32 (/.f32 (PI.f32) (/.f32 (sin.f32 (*.f32 (PI.f32) x)) x)) -1))
1.0b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (+.f32 (log.f32 (sqrt.f32 (exp.f32 (/.f32 (sin.f32 (*.f32 (PI.f32) x)) (*.f32 (PI.f32) x))))) (log.f32 (sqrt.f32 (exp.f32 (/.f32 (sin.f32 (*.f32 (PI.f32) x)) (*.f32 (PI.f32) x)))))))
5.2b
(*.f32 (/.f32 (log.f32 (+.f32 1 (expm1.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))))
4.9b
(*.f32 (fma.f32 (*.f32 (pow.f32 (PI.f32) 2) (*.f32 (*.f32 tau x) (*.f32 tau x))) -1/6 (fma.f32 (*.f32 (pow.f32 x 4) (*.f32 1/120 (pow.f32 (PI.f32) 4))) (pow.f32 tau 4) 1)) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
0.9b
(*.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))))
1.0b
(*.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.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.9b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (/.f32 (sin.f32 (cbrt.f32 (*.f32 (pow.f32 x 3) (exp.f32 (*.f32 3 (log.f32 (PI.f32))))))) (*.f32 x (PI.f32))))
Compiler

Compiled 5731 to 2293 computations (60% saved)

localize44.0ms (0.6%)

Local error

Found 4 expressions with local error:

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

series1.6s (22.4%)

Counts
1 → 12
Calls

1 calls:

1.6s
(-.f32 (exp.f32 (log1p.f32 (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))) 1)

rewrite46.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
601×prod-diff_binary32
468×log-prod_binary32
163×log1p-udef_binary32
162×expm1-udef_binary32
144×log-pow_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01014
119114
2255214
Stop Event
node limit
Counts
1 → 78
Calls

1 calls:

45.0ms
(-.f32 (exp.f32 (log1p.f32 (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))) 1)

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
90 → 86

prune200.0ms (2.9%)

Pruning

16 alts after pruning (15 fresh and 1 done)

PrunedKeptTotal
New2028210
Fresh7714
Picked011
Done000
Total20916225
Error
0.1b
Counts
225 → 16
Alt Table
StatusErrorProgram
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)))))
1.0b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (/.f32 (sqrt.f32 (sin.f32 (*.f32 x (PI.f32)))) x) (/.f32 (sqrt.f32 (sin.f32 (*.f32 x (PI.f32)))) (PI.f32))))
1.2b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (fma.f32 (sqrt.f32 (+.f32 (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))) 1)) (sqrt.f32 (+.f32 (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))) 1)) -1))
4.9b
(*.f32 (fma.f32 (*.f32 (pow.f32 (PI.f32) 2) (*.f32 (*.f32 tau x) (*.f32 tau x))) -1/6 (fma.f32 (*.f32 (pow.f32 x 4) (*.f32 1/120 (pow.f32 (PI.f32) 4))) (pow.f32 tau 4) 1)) (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))
2.9b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (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 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (-.f32 (exp.f32 (log1p.f32 (log.f32 (+.f32 1 (expm1.f32 (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32)))))))) 1))
1.0b
(*.f32 (log.f32 (exp.f32 (/.f32 (sin.f32 (*.f32 x (*.f32 (PI.f32) tau))) (*.f32 x (*.f32 (PI.f32) tau))))) (-.f32 (exp.f32 (log1p.f32 (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))) 1))
1.7b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (fma.f32 (cbrt.f32 (+.f32 (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))) 1)) (pow.f32 (cbrt.f32 (+.f32 (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))) 1)) 2) -1))
0.8b
(*.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 (*.f32 x (PI.f32))))))
5.3b
(*.f32 (/.f32 (-.f32 (exp.f32 (log1p.f32 (sin.f32 (*.f32 x (*.f32 (PI.f32) tau))))) 1) (*.f32 (*.f32 x (PI.f32)) tau)) (-.f32 (exp.f32 (log1p.f32 (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))) 1))
0.9b
(*.f32 (*.f32 (/.f32 1 x) (/.f32 (sin.f32 (*.f32 x (*.f32 (PI.f32) tau))) (*.f32 (PI.f32) tau))) (-.f32 (exp.f32 (log1p.f32 (/.f32 (sin.f32 (*.f32 x (PI.f32))) (*.f32 x (PI.f32))))) 1))
5.2b
(*.f32 (/.f32 (log.f32 (+.f32 1 (expm1.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 (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))))
1.0b
(*.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.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))
1.0b
(*.f32 (/.f32 (sin.f32 (*.f32 (*.f32 x (PI.f32)) tau)) (*.f32 (*.f32 x (PI.f32)) tau)) (+.f32 (log.f32 (sqrt.f32 (exp.f32 (/.f32 (sin.f32 (*.f32 (PI.f32) x)) (*.f32 (PI.f32) x))))) (log.f32 (sqrt.f32 (exp.f32 (/.f32 (sin.f32 (*.f32 (PI.f32) x)) (*.f32 (PI.f32) x)))))))
Compiler

Compiled 7092 to 1998 computations (71.8% saved)

regimes1.8s (25.2%)

Accuracy

Total 0.5b remaining (79.6%)

Threshold costs 0.5b (79.6%)

Counts
352 → 1
Compiler

Compiled 43579 to 24348 computations (44.1% saved)

simplify2.0ms (0%)

Algorithm
egg-herbie
Rules
*-commutative_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0164294967295
1194294967295
Stop Event
saturated

end248.0ms (3.5%)

Compiler

Compiled 552 to 295 computations (46.6% saved)

Profiling

Loading profile data...