Details

Time bar (total: 16.3s)

analyze677.0ms (4.2%)

Algorithm
search
Search
TrueOtherFalseIter
0%0%100%0
0%0%100%1
0%0%100%2
0%0%100%3
0%0%100%4
0%0%100%5
0%0%100%6
0%0%100%7
0%0%100%8
0%0%100%9
0%0%100%10
0%0%100%11
0%0%100%12
0%0%100%13
0%0%100%14
Compiler

Compiled 39 to 31 computations (20.5% saved)

sample2.9s (17.7%)

Results
2.8s8256×body128valid
1.0msbody128invalid
Compiler

Compiled 94 to 76 computations (19.1% saved)

simplify15.0ms (0.1%)

Algorithm
egg-herbie
Rules
40×fma-neg_binary32
22×sub-neg_binary32
17×cancel-sign-sub-inv_binary32
15×fma-def_binary32
11×*-commutative_binary32
Counts
1 → 2
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01422
12621
23821
34621
45621
56721
68221
710621
811921
912521
1014421
1114021
1216721
1318021
1418421
1518521
1616321

prune5.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
0.4b
Counts
3 → 2
Alt Table
StatusErrorProgram
0.4b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
14.0b
(*.f32 (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1)))) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
Compiler

Compiled 90 to 77 computations (14.4% saved)

localize36.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1))))
0.1b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
0.2b
(cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2))
0.4b
(*.f32 (*.f32 2 (PI.f32)) u2)

series160.0ms (1%)

Counts
4 → 52
Calls

4 calls:

146.0ms
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
9.0ms
(sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1))))
3.0ms
(*.f32 (*.f32 2 (PI.f32)) u2)
3.0ms
(cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2))

rewrite87.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
573×prod-diff_binary32
558×log-prod_binary32
196×expm1-udef_binary32
196×log1p-udef_binary32
179×log-pow_binary32
Counts
4 → 93
Calls

4 calls:

85.0ms
(sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1))))
85.0ms
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
85.0ms
(cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2))
85.0ms
(*.f32 (*.f32 2 (PI.f32)) u2)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01348
126040
2252740
3494840
4505840
000
100

simplify114.0ms (0.7%)

Algorithm
egg-herbie
Rules
532×cancel-sign-sub-inv_binary32
440×fma-neg_binary32
324×times-frac_binary32
279×associate-*r/_binary32
258×associate-*l/_binary32
Counts
145 → 144
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01782124
15581958
218731812
345411806
449921806

prune193.0ms (1.2%)

Pruning

13 alts after pruning (13 fresh and 0 done)

PrunedKeptTotal
New13113144
Fresh101
Picked101
Done000
Total13313146
Error
0.1b
Counts
146 → 13
Alt Table
StatusErrorProgram
8.1b
(*.f32 (*.f32 (cbrt.f32 (log1p.f32 u1)) (cbrt.f32 (sqrt.f32 (log1p.f32 u1)))) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
0.9b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (log.f32 (exp.f32 (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))))
1.0b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (+.f32 (log.f32 (sqrt.f32 (exp.f32 (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2))))) (log.f32 (sqrt.f32 (exp.f32 (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))))))
0.5b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (cos.f32 (pow.f32 (cbrt.f32 (*.f32 (*.f32 2 (PI.f32)) u2)) 3)))
8.7b
(*.f32 (pow.f32 (pow.f32 (log1p.f32 u1) 3/2) 1/3) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
1.3b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (+.f32 (log.f32 (*.f32 (cbrt.f32 (exp.f32 (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))) (cbrt.f32 (exp.f32 (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))))) (log.f32 (cbrt.f32 (exp.f32 (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))))))
8.1b
(cbrt.f32 (*.f32 (pow.f32 (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)) 3) (pow.f32 (log1p.f32 u1) 3/2)))
0.5b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (fma.f32 (cos.f32 (*.f32 (PI.f32) u2)) (cos.f32 (*.f32 (PI.f32) u2)) (neg.f32 (*.f32 (sin.f32 (*.f32 (PI.f32) u2)) (sin.f32 (*.f32 (PI.f32) u2))))))
0.7b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (+.f32 (*.f32 (cos.f32 (exp.f32 (log1p.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))) (cos.f32 1)) (*.f32 (sin.f32 (exp.f32 (log1p.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))) (sin.f32 1))))
0.4b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (cos.f32 (+.f32 (log.f32 (sqrt.f32 (pow.f32 (pow.f32 (exp.f32 2) (PI.f32)) u2))) (log.f32 (sqrt.f32 (pow.f32 (pow.f32 (exp.f32 2) (PI.f32)) u2))))))
8.1b
(*.f32 (pow.f32 (pow.f32 (log1p.f32 u1) 1/4) 2) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
0.6b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (*.f32 (cbrt.f32 (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2))) (pow.f32 (cbrt.f32 (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2))) 2)))
0.4b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (cos.f32 (+.f32 (log.f32 (*.f32 (cbrt.f32 (pow.f32 (pow.f32 (exp.f32 2) (PI.f32)) u2)) (cbrt.f32 (pow.f32 (pow.f32 (exp.f32 2) (PI.f32)) u2)))) (log.f32 (cbrt.f32 (pow.f32 (pow.f32 (exp.f32 2) (PI.f32)) u2))))))
Compiler

Compiled 4380 to 3010 computations (31.3% saved)

localize58.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(sqrt.f32 (pow.f32 (pow.f32 (exp.f32 2) (PI.f32)) u2))
0.2b
(cos.f32 (+.f32 (log.f32 (sqrt.f32 (pow.f32 (pow.f32 (exp.f32 2) (PI.f32)) u2))) (log.f32 (sqrt.f32 (pow.f32 (pow.f32 (exp.f32 2) (PI.f32)) u2)))))
1.6b
(pow.f32 (exp.f32 2) (PI.f32))
13.8b
(log.f32 (sqrt.f32 (pow.f32 (pow.f32 (exp.f32 2) (PI.f32)) u2)))

series1.1s (6.9%)

Counts
4 → 20
Calls

4 calls:

804.0ms
(log.f32 (sqrt.f32 (pow.f32 (pow.f32 (exp.f32 2) (PI.f32)) u2)))
307.0ms
(cos.f32 (+.f32 (log.f32 (sqrt.f32 (pow.f32 (pow.f32 (exp.f32 2) (PI.f32)) u2))) (log.f32 (sqrt.f32 (pow.f32 (pow.f32 (exp.f32 2) (PI.f32)) u2)))))
6.0ms
(sqrt.f32 (pow.f32 (pow.f32 (exp.f32 2) (PI.f32)) u2))
0.0ms
(pow.f32 (exp.f32 2) (PI.f32))

rewrite158.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
824×prod-diff_binary32
593×fma-udef_binary32
235×fma-neg_binary32
221×fma-def_binary32
189×expm1-udef_binary32
Counts
4 → 160
Calls

4 calls:

154.0ms
(sqrt.f32 (pow.f32 (pow.f32 (exp.f32 2) (PI.f32)) u2))
154.0ms
(cos.f32 (+.f32 (log.f32 (sqrt.f32 (pow.f32 (pow.f32 (exp.f32 2) (PI.f32)) u2))) (log.f32 (sqrt.f32 (pow.f32 (pow.f32 (exp.f32 2) (PI.f32)) u2)))))
154.0ms
(pow.f32 (exp.f32 2) (PI.f32))
154.0ms
(log.f32 (sqrt.f32 (pow.f32 (pow.f32 (exp.f32 2) (PI.f32)) u2)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01147
122928
2255628
3474428
4464528
5497828
6506128
000
100

simplify51.0ms (0.3%)

Algorithm
egg-herbie
Rules
834×fma-neg_binary32
616×cancel-sign-sub-inv_binary32
555×unswap-sqr_binary32
349×distribute-rgt-neg-in_binary32
340×distribute-lft-neg-in_binary32
Counts
180 → 175
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
049337
1131331
2391324
31711323
44254319
54976319

prune275.0ms (1.7%)

Pruning

12 alts after pruning (12 fresh and 0 done)

PrunedKeptTotal
New2542256
Fresh21012
Picked101
Done000
Total25712269
Error
0.1b
Counts
269 → 12
Alt Table
StatusErrorProgram
8.1b
(*.f32 (*.f32 (cbrt.f32 (log1p.f32 u1)) (cbrt.f32 (sqrt.f32 (log1p.f32 u1)))) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
0.9b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (log.f32 (exp.f32 (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))))
8.7b
(*.f32 (pow.f32 (pow.f32 (log1p.f32 u1) 3/2) 1/3) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
1.3b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (+.f32 (log.f32 (*.f32 (cbrt.f32 (exp.f32 (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))) (cbrt.f32 (exp.f32 (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))))) (log.f32 (cbrt.f32 (exp.f32 (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))))))
8.1b
(cbrt.f32 (*.f32 (pow.f32 (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)) 3) (pow.f32 (log1p.f32 u1) 3/2)))
0.5b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (fma.f32 (cos.f32 (*.f32 (PI.f32) u2)) (cos.f32 (*.f32 (PI.f32) u2)) (neg.f32 (*.f32 (sin.f32 (*.f32 (PI.f32) u2)) (sin.f32 (*.f32 (PI.f32) u2))))))
0.7b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (+.f32 (*.f32 (cos.f32 (exp.f32 (log1p.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))) (cos.f32 1)) (*.f32 (sin.f32 (exp.f32 (log1p.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))) (sin.f32 1))))
8.1b
(*.f32 (pow.f32 (pow.f32 (log1p.f32 u1) 1/4) 2) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
0.4b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (cos.f32 (+.f32 (log.f32 (sqrt.f32 (pow.f32 (pow.f32 (exp.f32 2) (PI.f32)) u2))) (log.f32 (sqrt.f32 (pow.f32 (*.f32 (pow.f32 (sqrt.f32 (exp.f32 2)) (PI.f32)) (pow.f32 (sqrt.f32 (exp.f32 2)) (PI.f32))) u2))))))
0.6b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (*.f32 (cbrt.f32 (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2))) (pow.f32 (cbrt.f32 (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2))) 2)))
0.5b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (cos.f32 (pow.f32 (cbrt.f32 (*.f32 (*.f32 2 (PI.f32)) u2)) 3)))
4.5b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (cos.f32 (+.f32 (log.f32 (sqrt.f32 (pow.f32 (pow.f32 (exp.f32 2) (PI.f32)) u2))) (log.f32 (fma.f32 (PI.f32) u2 1)))))
Compiler

Compiled 8228 to 6296 computations (23.5% saved)

localize88.0ms (0.5%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(cos.f32 (+.f32 (log.f32 (sqrt.f32 (pow.f32 (pow.f32 (exp.f32 2) (PI.f32)) u2))) (log.f32 (sqrt.f32 (pow.f32 (*.f32 (pow.f32 (sqrt.f32 (exp.f32 2)) (PI.f32)) (pow.f32 (sqrt.f32 (exp.f32 2)) (PI.f32))) u2)))))
1.6b
(pow.f32 (exp.f32 2) (PI.f32))
13.8b
(log.f32 (sqrt.f32 (pow.f32 (*.f32 (pow.f32 (sqrt.f32 (exp.f32 2)) (PI.f32)) (pow.f32 (sqrt.f32 (exp.f32 2)) (PI.f32))) u2)))
13.8b
(log.f32 (sqrt.f32 (pow.f32 (pow.f32 (exp.f32 2) (PI.f32)) u2)))

series2.0s (12.5%)

Counts
2 → 24
Calls

2 calls:

1.4s
(log.f32 (sqrt.f32 (pow.f32 (*.f32 (pow.f32 (sqrt.f32 (exp.f32 2)) (PI.f32)) (pow.f32 (sqrt.f32 (exp.f32 2)) (PI.f32))) u2)))
681.0ms
(cos.f32 (+.f32 (log.f32 (sqrt.f32 (pow.f32 (pow.f32 (exp.f32 2) (PI.f32)) u2))) (log.f32 (sqrt.f32 (pow.f32 (*.f32 (pow.f32 (sqrt.f32 (exp.f32 2)) (PI.f32)) (pow.f32 (sqrt.f32 (exp.f32 2)) (PI.f32))) u2)))))

rewrite127.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
497×prod-diff_binary32
346×fma-neg_binary32
334×fma-udef_binary32
231×log-pow_binary32
213×fma-def_binary32
Counts
2 → 99
Calls

2 calls:

125.0ms
(cos.f32 (+.f32 (log.f32 (sqrt.f32 (pow.f32 (pow.f32 (exp.f32 2) (PI.f32)) u2))) (log.f32 (sqrt.f32 (pow.f32 (*.f32 (pow.f32 (sqrt.f32 (exp.f32 2)) (PI.f32)) (pow.f32 (sqrt.f32 (exp.f32 2)) (PI.f32))) u2)))))
125.0ms
(log.f32 (sqrt.f32 (pow.f32 (*.f32 (pow.f32 (sqrt.f32 (exp.f32 2)) (PI.f32)) (pow.f32 (sqrt.f32 (exp.f32 2)) (PI.f32))) u2)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01728
128011
2283711
3489411
4485511
5491311
000
100

simplify74.0ms (0.5%)

Algorithm
egg-herbie
Rules
885×fma-neg_binary32
787×fma-def_binary32
568×associate-+l+_binary32
299×cancel-sign-sub-inv_binary32
297×associate--l+_binary32
Counts
123 → 110
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01161206
13391194
213561156
348781154
457161154

prune221.0ms (1.4%)

Pruning

13 alts after pruning (12 fresh and 1 done)

PrunedKeptTotal
New1493152
Fresh2911
Picked011
Done000
Total15113164
Error
0.1b
Counts
164 → 13
Alt Table
StatusErrorProgram
0.4b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (+.f32 (+.f32 (pow.f32 (cos.f32 (*.f32 (PI.f32) u2)) 2) (neg.f32 (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)))))) (fma.f32 (neg.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2))) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2))) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)))))))
8.1b
(*.f32 (*.f32 (cbrt.f32 (log1p.f32 u1)) (cbrt.f32 (sqrt.f32 (log1p.f32 u1)))) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
0.9b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (log.f32 (exp.f32 (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))))
0.5b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (fma.f32 (*.f32 (cbrt.f32 (pow.f32 (cos.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (cos.f32 (*.f32 (PI.f32) u2)) 2))) (cbrt.f32 (pow.f32 (cos.f32 (*.f32 (PI.f32) u2)) 2)) (neg.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2))))
0.5b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (cos.f32 (pow.f32 (cbrt.f32 (*.f32 (*.f32 2 (PI.f32)) u2)) 3)))
8.7b
(*.f32 (pow.f32 (pow.f32 (log1p.f32 u1) 3/2) 1/3) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
1.3b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (+.f32 (log.f32 (*.f32 (cbrt.f32 (exp.f32 (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))) (cbrt.f32 (exp.f32 (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))))) (log.f32 (cbrt.f32 (exp.f32 (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))))))
8.1b
(cbrt.f32 (*.f32 (pow.f32 (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)) 3) (pow.f32 (log1p.f32 u1) 3/2)))
0.7b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (+.f32 (*.f32 (cos.f32 (exp.f32 (log1p.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))) (cos.f32 1)) (*.f32 (sin.f32 (exp.f32 (log1p.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))) (sin.f32 1))))
8.1b
(*.f32 (pow.f32 (pow.f32 (log1p.f32 u1) 1/4) 2) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
0.4b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (cos.f32 (+.f32 (log.f32 (sqrt.f32 (pow.f32 (pow.f32 (exp.f32 2) (PI.f32)) u2))) (log.f32 (sqrt.f32 (pow.f32 (*.f32 (pow.f32 (sqrt.f32 (exp.f32 2)) (PI.f32)) (pow.f32 (sqrt.f32 (exp.f32 2)) (PI.f32))) u2))))))
0.6b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (*.f32 (cbrt.f32 (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2))) (pow.f32 (cbrt.f32 (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2))) 2)))
0.6b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (fma.f32 (+.f32 (cos.f32 (*.f32 (PI.f32) u2)) (sin.f32 (*.f32 (PI.f32) u2))) (-.f32 (cos.f32 (*.f32 (PI.f32) u2)) (sin.f32 (*.f32 (PI.f32) u2))) (fma.f32 (neg.f32 (sin.f32 (*.f32 (PI.f32) u2))) (sin.f32 (*.f32 (PI.f32) u2)) (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2))))
Compiler

Compiled 5637 to 3665 computations (35% saved)

localize85.0ms (0.5%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(*.f32 (PI.f32) u2)
0.4b
(*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)))
0.5b
(pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)
29.1b
(fma.f32 (neg.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2))) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2))) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)))))

series1.9s (11.4%)

Counts
4 → 32
Calls

4 calls:

1.6s
(fma.f32 (neg.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2))) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2))) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)))))
232.0ms
(*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)))
6.0ms
(pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)
2.0ms
(*.f32 (PI.f32) u2)

rewrite57.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
787×log1p-expm1-u_binary32
787×expm1-log1p-u_binary32
602×prod-diff_binary32
106×add-sqr-sqrt_binary32
100×add-cbrt-cube_binary32
Counts
4 → 84
Calls

4 calls:

55.0ms
(*.f32 (PI.f32) u2)
55.0ms
(*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)))
55.0ms
(pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)
55.0ms
(fma.f32 (neg.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2))) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2))) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01271
122649
2209649
3579849
000
100

simplify65.0ms (0.4%)

Algorithm
egg-herbie
Rules
842×associate-*l*_binary32
659×distribute-rgt-neg-in_binary32
556×fma-def_binary32
298×cancel-sign-sub-inv_binary32
267×*-commutative_binary32
Counts
116 → 112
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0931123
12721035
2954736
33769730
45050730

prune2.8s (17.1%)

Pruning

15 alts after pruning (14 fresh and 1 done)

PrunedKeptTotal
New6146620
Fresh3811
Picked101
Done011
Total61815633
Error
0.1b
Counts
633 → 15
Alt Table
StatusErrorProgram
0.6b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (*.f32 (cbrt.f32 (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2))) (pow.f32 (cbrt.f32 (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2))) 2)))
0.4b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (+.f32 (+.f32 (pow.f32 (cos.f32 (*.f32 (PI.f32) u2)) 2) (neg.f32 (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (pow.f32 (cbrt.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 4))) 3)))) (fma.f32 (neg.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2))) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2))) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)))))))
8.7b
(*.f32 (pow.f32 (pow.f32 (log1p.f32 u1) 3/2) 1/3) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
1.3b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (+.f32 (log.f32 (*.f32 (cbrt.f32 (exp.f32 (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))) (cbrt.f32 (exp.f32 (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))))) (log.f32 (cbrt.f32 (exp.f32 (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))))))
0.5b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (+.f32 (+.f32 (pow.f32 (cos.f32 (pow.f32 (cbrt.f32 (*.f32 (PI.f32) u2)) 3)) 2) (neg.f32 (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)))))) (fma.f32 (neg.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2))) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2))) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)))))))
8.1b
(cbrt.f32 (*.f32 (pow.f32 (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)) 3) (pow.f32 (log1p.f32 u1) 3/2)))
0.7b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (+.f32 (*.f32 (cos.f32 (exp.f32 (log1p.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))) (cos.f32 1)) (*.f32 (sin.f32 (exp.f32 (log1p.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))) (sin.f32 1))))
8.1b
(*.f32 (*.f32 (cbrt.f32 (log1p.f32 u1)) (cbrt.f32 (sqrt.f32 (log1p.f32 u1)))) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
0.5b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (+.f32 (+.f32 (pow.f32 (cos.f32 (*.f32 (PI.f32) u2)) 2) (neg.f32 (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)))))) (fma.f32 (neg.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2))) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2))) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 u2 (PI.f32))) 4))))))
8.1b
(*.f32 (pow.f32 (pow.f32 (log1p.f32 u1) 1/4) 2) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
0.4b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (cos.f32 (+.f32 (log.f32 (sqrt.f32 (pow.f32 (pow.f32 (exp.f32 2) (PI.f32)) u2))) (log.f32 (sqrt.f32 (pow.f32 (*.f32 (pow.f32 (sqrt.f32 (exp.f32 2)) (PI.f32)) (pow.f32 (sqrt.f32 (exp.f32 2)) (PI.f32))) u2))))))
0.4b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (+.f32 (+.f32 (pow.f32 (cos.f32 (*.f32 (PI.f32) u2)) 2) (neg.f32 (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (-.f32 (exp.f32 (log1p.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 4)))) 1)))) (fma.f32 (neg.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2))) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2))) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)))))))
0.5b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (fma.f32 (*.f32 (cbrt.f32 (pow.f32 (cos.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (cos.f32 (*.f32 (PI.f32) u2)) 2))) (cbrt.f32 (pow.f32 (cos.f32 (*.f32 (PI.f32) u2)) 2)) (neg.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2))))
0.4b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (+.f32 (+.f32 (pow.f32 (cos.f32 (*.f32 (PI.f32) u2)) 2) (neg.f32 (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)))))) (fma.f32 (neg.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2))) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (pow.f32 (cbrt.f32 (*.f32 (PI.f32) u2)) 3)) 2))) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)))))))
0.5b
(*.f32 (sqrt.f32 (neg.f32 (log1p.f32 (neg.f32 u1)))) (+.f32 (+.f32 (pow.f32 (cos.f32 (*.f32 (PI.f32) u2)) 2) (neg.f32 (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)))))) (fma.f32 (neg.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2))) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2))) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (*.f32 (cbrt.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) u2)) 2)) (cbrt.f32 (pow.f32 (sin.f32 (pow.f32 (cbrt.f32 (*.f32 (PI.f32) u2)) 3)) 2)))))))
Compiler

Compiled 56777 to 28029 computations (50.6% saved)

regimes2.6s (15.7%)

Accuracy

Total 0.2b remaining (67%)

Threshold costs 0.2b (67%)

Counts
184 → 1
Compiler

Compiled 58100 to 44306 computations (23.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
01957
13257
23857
34157
44157

end484.0ms (3%)

Compiler

Compiled 825 to 545 computations (33.9% saved)

Profiling

Loading profile data...