Details

Time bar (total: 13.1s)

analyze409.0ms (3.1%)

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.1s (16.3%)

Results
2.1s8256×body128valid
1.0msbody128invalid
Compiler

Compiled 94 to 76 computations (19.1% saved)

simplify7.0ms (0.1%)

Algorithm
egg-herbie
Rules
10×rules-20_binary32
rules-1-rev_binary32
rules-1_binary32
rules-46_binary32
rules-47_binary32
Counts
1 → 1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01422
12322
23222
33222
43122

prune2.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Error
13.5b
Counts
2 → 1
Alt Table
StatusErrorProgram
13.5b
(*.f32 (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1)))) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
Compiler

Compiled 48 to 42 computations (12.5% saved)

localize37.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1))))
0.1b
(*.f32 (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1)))) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
0.4b
(*.f32 (*.f32 2 (PI.f32)) u2)
14.0b
(log.f32 (-.f32 1 u1))

series152.0ms (1.2%)

Counts
4 → 52
Calls

4 calls:

138.0ms
(*.f32 (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1)))) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
9.0ms
(sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1))))
3.0ms
(*.f32 (*.f32 2 (PI.f32)) u2)
3.0ms
(log.f32 (-.f32 1 u1))

rewrite95.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
782×prod-diff_binary32
198×egg-rr
134×add-sqr-sqrt_binary32
126×log1p-expm1-u_binary32
126×expm1-log1p-u_binary32
Counts
4 → 198
Calls

4 calls:

91.0ms
(sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1))))
91.0ms
(*.f32 (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1)))) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
91.0ms
(*.f32 (*.f32 2 (PI.f32)) u2)
91.0ms
(log.f32 (-.f32 1 u1))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01446
131946
2376046
3521746
000
100

simplify99.0ms (0.8%)

Algorithm
egg-herbie
Rules
595×rules-21_binary32
398×fma-def_binary32
376×rules-15-rev_binary32
303×rules-13_binary32
214×rules-20_binary32
Counts
250 → 263
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01992164
17641944
235261936
349651936
449921936

prune243.0ms (1.9%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New25211263
Fresh000
Picked101
Done000
Total25311264
Error
0.3b
Counts
264 → 11
Alt Table
StatusErrorProgram
13.5b
(+.f32 (fma.f32 (cbrt.f32 (neg.f32 (log.f32 (-.f32 1 u1)))) (*.f32 (cbrt.f32 (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1))))) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2))) (neg.f32 (*.f32 0 (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1))))))) (fma.f32 0 (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1)))) (*.f32 0 (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1)))))))
2.1b
(*.f32 (sqrt.f32 (neg.f32 (neg.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1)))))) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
13.5b
(*.f32 (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1)))) (cos.f32 (/.f32 (*.f32 2 (PI.f32)) (/.f32 1 u2))))
7.7b
(*.f32 (sqrt.f32 (neg.f32 (neg.f32 u1))) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
13.5b
(*.f32 (cbrt.f32 (pow.f32 (neg.f32 (log.f32 (-.f32 1 u1))) 3/2)) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
13.5b
(*.f32 (log.f32 (+.f32 1 (expm1.f32 (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1))))))) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
13.5b
(*.f32 (sqrt.f32 (neg.f32 (*.f32 (cbrt.f32 (log.f32 (-.f32 1 u1))) (pow.f32 (cbrt.f32 (log.f32 (-.f32 1 u1))) 2)))) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
14.3b
(*.f32 (sqrt.f32 (neg.f32 (-.f32 (exp.f32 (log1p.f32 (log.f32 (-.f32 1 u1)))) 1))) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
14.1b
(*.f32 (sqrt.f32 (neg.f32 (+.f32 (log.f32 (sqrt.f32 (-.f32 1 u1))) (log.f32 (sqrt.f32 (-.f32 1 u1)))))) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
14.8b
(*.f32 (sqrt.f32 (neg.f32 (+.f32 (log.f32 (pow.f32 (cbrt.f32 (-.f32 1 u1)) 2)) (log.f32 (cbrt.f32 (-.f32 1 u1)))))) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
13.5b
(*.f32 (-.f32 (exp.f32 (log1p.f32 (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1)))))) 1) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
Compiler

Compiled 8152 to 6461 computations (20.7% saved)

localize65.0ms (0.5%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(sqrt.f32 (neg.f32 (neg.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1))))))
0.1b
(fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1)))
0.1b
(*.f32 (sqrt.f32 (neg.f32 (neg.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1)))))) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
0.4b
(*.f32 (*.f32 2 (PI.f32)) u2)

series57.0ms (0.4%)

Counts
3 → 40
Calls

3 calls:

47.0ms
(*.f32 (sqrt.f32 (neg.f32 (neg.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1)))))) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
7.0ms
(sqrt.f32 (neg.f32 (neg.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1))))))
3.0ms
(fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1)))

rewrite85.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
365×log1p-udef_binary32
208×add-sqr-sqrt_binary32
205×log1p-expm1-u_binary32
205×expm1-log1p-u_binary32
200×add-cbrt-cube_binary32
Counts
3 → 77
Calls

3 calls:

82.0ms
(sqrt.f32 (neg.f32 (neg.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1))))))
82.0ms
(fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1)))
82.0ms
(*.f32 (sqrt.f32 (neg.f32 (neg.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1)))))) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02390
153490
2479190
3523290
000
100

simplify42.0ms (0.3%)

Algorithm
egg-herbie
Rules
605×fma-def_binary32
560×rules-4_binary32
454×rules-13_binary32
280×rules-20_binary32
197×rules-21_binary32
Counts
117 → 116
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0851240
12621140
21034980
34984980

prune331.0ms (2.5%)

Pruning

19 alts after pruning (19 fresh and 0 done)

PrunedKeptTotal
New17612188
Fresh3710
Picked101
Done000
Total18019199
Error
0.1b
Counts
199 → 19
Alt Table
StatusErrorProgram
2.1b
(*.f32 (sqrt.f32 (neg.f32 (neg.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1)))))) (cos.f32 (pow.f32 (cbrt.f32 (*.f32 (*.f32 2 (PI.f32)) u2)) 3)))
2.4b
(*.f32 (pow.f32 (pow.f32 (neg.f32 (neg.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1))))) 1/4) 2) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
2.1b
(cbrt.f32 (*.f32 (pow.f32 (neg.f32 (neg.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1))))) 3/2) (pow.f32 (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)) 3)))
3.3b
(*.f32 (pow.f32 (pow.f32 (neg.f32 (neg.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1))))) 3/2) 1/3) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
13.5b
(*.f32 (cbrt.f32 (pow.f32 (neg.f32 (log.f32 (-.f32 1 u1))) 3/2)) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
2.3b
(*.f32 (sqrt.f32 (neg.f32 (neg.f32 (*.f32 (pow.f32 (cbrt.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1)))) 2) (cbrt.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1)))))))) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
2.2b
(*.f32 (/.f32 (pow.f32 (neg.f32 (neg.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1))))) 3/2) (+.f32 (neg.f32 (neg.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1))))) (-.f32 0 (*.f32 (sqrt.f32 (neg.f32 (neg.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1)))))) 0)))) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
3.4b
(+.f32 (sqrt.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1)))) (*.f32 (sqrt.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1)))) (-.f32 (*.f32 2/3 (*.f32 (pow.f32 (PI.f32) 4) (pow.f32 u2 4))) (fma.f32 2 (*.f32 (*.f32 u2 u2) (pow.f32 (PI.f32) 2)) (*.f32 4/45 (*.f32 (pow.f32 u2 6) (pow.f32 (PI.f32) 6)))))))
14.3b
(*.f32 (sqrt.f32 (neg.f32 (-.f32 (exp.f32 (log1p.f32 (log.f32 (-.f32 1 u1)))) 1))) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
2.3b
(*.f32 (*.f32 (sqrt.f32 (pow.f32 (cbrt.f32 (neg.f32 (neg.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1)))))) 2)) (sqrt.f32 (cbrt.f32 (neg.f32 (neg.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1)))))))) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
3.0b
(*.f32 (sqrt.f32 (neg.f32 (neg.f32 (exp.f32 (log.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1)))))))) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
14.1b
(*.f32 (sqrt.f32 (neg.f32 (+.f32 (log.f32 (sqrt.f32 (-.f32 1 u1))) (log.f32 (sqrt.f32 (-.f32 1 u1)))))) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
4.5b
(exp.f32 (log.f32 (*.f32 (sqrt.f32 (neg.f32 (neg.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1)))))) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))))
2.2b
(*.f32 (sqrt.f32 (neg.f32 (neg.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1)))))) (cos.f32 (+.f32 (fma.f32 (pow.f32 (cbrt.f32 u2) 2) (*.f32 (cbrt.f32 u2) (*.f32 2 (PI.f32))) (neg.f32 (*.f32 0 u2))) (fma.f32 0 u2 (*.f32 0 u2)))))
13.5b
(*.f32 (log.f32 (+.f32 1 (expm1.f32 (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1))))))) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
13.5b
(*.f32 (sqrt.f32 (neg.f32 (*.f32 (cbrt.f32 (log.f32 (-.f32 1 u1))) (pow.f32 (cbrt.f32 (log.f32 (-.f32 1 u1))) 2)))) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
14.8b
(*.f32 (sqrt.f32 (neg.f32 (+.f32 (log.f32 (pow.f32 (cbrt.f32 (-.f32 1 u1)) 2)) (log.f32 (cbrt.f32 (-.f32 1 u1)))))) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
2.6b
(pow.f32 (cbrt.f32 (*.f32 (sqrt.f32 (neg.f32 (neg.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1)))))) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))) 3)
13.5b
(*.f32 (-.f32 (exp.f32 (log1p.f32 (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1)))))) 1) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
Compiler

Compiled 7837 to 5770 computations (26.4% saved)

localize81.0ms (0.6%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f32 (pow.f32 (neg.f32 (neg.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1))))) 3/2) (pow.f32 (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)) 3))
0.3b
(pow.f32 (neg.f32 (neg.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1))))) 3/2)
0.4b
(pow.f32 (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)) 3)
0.4b
(*.f32 (*.f32 2 (PI.f32)) u2)

series190.0ms (1.4%)

Counts
3 → 44
Calls

3 calls:

175.0ms
(*.f32 (pow.f32 (neg.f32 (neg.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1))))) 3/2) (pow.f32 (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)) 3))
9.0ms
(pow.f32 (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)) 3)
5.0ms
(pow.f32 (neg.f32 (neg.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1))))) 3/2)

rewrite75.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
392×log1p-udef_binary32
224×add-sqr-sqrt_binary32
224×log1p-expm1-u_binary32
224×expm1-log1p-u_binary32
217×add-cbrt-cube_binary32
Counts
3 → 73
Calls

3 calls:

73.0ms
(*.f32 (pow.f32 (neg.f32 (neg.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1))))) 3/2) (pow.f32 (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)) 3))
73.0ms
(pow.f32 (neg.f32 (neg.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1))))) 3/2)
73.0ms
(pow.f32 (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)) 3)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02586
158386
2470386
3519186
000
100

simplify100.0ms (0.8%)

Algorithm
egg-herbie
Rules
697×rules-21_binary32
659×fma-neg_binary32
450×fma-def_binary32
328×rules-13_binary32
326×rules-20_binary32
Counts
117 → 123
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02513216
18272658
235982466
350002466
449832466

prune478.0ms (3.7%)

Pruning

20 alts after pruning (20 fresh and 0 done)

PrunedKeptTotal
New1923195
Fresh11718
Picked101
Done000
Total19420214
Error
0.0b
Counts
214 → 20
Alt Table
StatusErrorProgram
2.1b
(*.f32 (sqrt.f32 (neg.f32 (neg.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1)))))) (cos.f32 (pow.f32 (cbrt.f32 (*.f32 (*.f32 2 (PI.f32)) u2)) 3)))
2.4b
(*.f32 (pow.f32 (pow.f32 (neg.f32 (neg.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1))))) 1/4) 2) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
3.3b
(*.f32 (pow.f32 (pow.f32 (neg.f32 (neg.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1))))) 3/2) 1/3) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
13.5b
(*.f32 (cbrt.f32 (pow.f32 (neg.f32 (log.f32 (-.f32 1 u1))) 3/2)) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
2.3b
(*.f32 (sqrt.f32 (neg.f32 (neg.f32 (*.f32 (pow.f32 (cbrt.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1)))) 2) (cbrt.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1)))))))) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
2.8b
(cbrt.f32 (*.f32 (+.f32 (sqrt.f32 (pow.f32 u1 3)) (+.f32 (*.f32 19/32 (sqrt.f32 (pow.f32 u1 7))) (*.f32 3/4 (sqrt.f32 (pow.f32 u1 5))))) (pow.f32 (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)) 3)))
2.2b
(*.f32 (/.f32 (pow.f32 (neg.f32 (neg.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1))))) 3/2) (+.f32 (neg.f32 (neg.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1))))) (-.f32 0 (*.f32 (sqrt.f32 (neg.f32 (neg.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1)))))) 0)))) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
14.3b
(*.f32 (sqrt.f32 (neg.f32 (-.f32 (exp.f32 (log1p.f32 (log.f32 (-.f32 1 u1)))) 1))) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
20.4b
(cbrt.f32 (*.f32 (log.f32 (exp.f32 (pow.f32 (neg.f32 (neg.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1))))) 3/2))) (pow.f32 (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)) 3)))
2.3b
(*.f32 (*.f32 (sqrt.f32 (pow.f32 (cbrt.f32 (neg.f32 (neg.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1)))))) 2)) (sqrt.f32 (cbrt.f32 (neg.f32 (neg.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1)))))))) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
3.0b
(*.f32 (sqrt.f32 (neg.f32 (neg.f32 (exp.f32 (log.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1)))))))) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
14.1b
(*.f32 (sqrt.f32 (neg.f32 (+.f32 (log.f32 (sqrt.f32 (-.f32 1 u1))) (log.f32 (sqrt.f32 (-.f32 1 u1)))))) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
4.5b
(exp.f32 (log.f32 (*.f32 (sqrt.f32 (neg.f32 (neg.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1)))))) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))))
4.4b
(cbrt.f32 (*.f32 (pow.f32 (neg.f32 (neg.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1))))) 3/2) (-.f32 (fma.f32 14 (*.f32 (pow.f32 u2 4) (pow.f32 (PI.f32) 4)) 1) (*.f32 6 (*.f32 (*.f32 u2 u2) (pow.f32 (PI.f32) 2))))))
13.5b
(*.f32 (-.f32 (exp.f32 (log1p.f32 (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1)))))) 1) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
2.2b
(*.f32 (sqrt.f32 (neg.f32 (neg.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1)))))) (cos.f32 (+.f32 (fma.f32 (pow.f32 (cbrt.f32 u2) 2) (*.f32 (cbrt.f32 u2) (*.f32 2 (PI.f32))) (neg.f32 (*.f32 0 u2))) (fma.f32 0 u2 (*.f32 0 u2)))))
13.5b
(*.f32 (log.f32 (+.f32 1 (expm1.f32 (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1))))))) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
13.5b
(*.f32 (sqrt.f32 (neg.f32 (*.f32 (cbrt.f32 (log.f32 (-.f32 1 u1))) (pow.f32 (cbrt.f32 (log.f32 (-.f32 1 u1))) 2)))) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
14.8b
(*.f32 (sqrt.f32 (neg.f32 (+.f32 (log.f32 (pow.f32 (cbrt.f32 (-.f32 1 u1)) 2)) (log.f32 (cbrt.f32 (-.f32 1 u1)))))) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
2.6b
(pow.f32 (cbrt.f32 (*.f32 (sqrt.f32 (neg.f32 (neg.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1)))))) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))) 3)
Compiler

Compiled 10658 to 8165 computations (23.4% saved)

localize77.0ms (0.6%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(cbrt.f32 (*.f32 (*.f32 2 (PI.f32)) u2))
0.1b
(*.f32 (sqrt.f32 (neg.f32 (neg.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1)))))) (cos.f32 (pow.f32 (cbrt.f32 (*.f32 (*.f32 2 (PI.f32)) u2)) 3)))
0.4b
(*.f32 (*.f32 2 (PI.f32)) u2)
0.7b
(pow.f32 (cbrt.f32 (*.f32 (*.f32 2 (PI.f32)) u2)) 3)

series728.0ms (5.6%)

Counts
3 → 44
Calls

3 calls:

326.0ms
(*.f32 (sqrt.f32 (neg.f32 (neg.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1)))))) (cos.f32 (pow.f32 (cbrt.f32 (*.f32 (*.f32 2 (PI.f32)) u2)) 3)))
215.0ms
(pow.f32 (cbrt.f32 (*.f32 (*.f32 2 (PI.f32)) u2)) 3)
187.0ms
(cbrt.f32 (*.f32 (*.f32 2 (PI.f32)) u2))

rewrite80.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
377×log1p-udef_binary32
215×add-sqr-sqrt_binary32
213×log1p-expm1-u_binary32
213×expm1-log1p-u_binary32
208×add-cbrt-cube_binary32
Counts
3 → 87
Calls

3 calls:

77.0ms
(cbrt.f32 (*.f32 (*.f32 2 (PI.f32)) u2))
77.0ms
(*.f32 (sqrt.f32 (neg.f32 (neg.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1)))))) (cos.f32 (pow.f32 (cbrt.f32 (*.f32 (*.f32 2 (PI.f32)) u2)) 3)))
77.0ms
(pow.f32 (cbrt.f32 (*.f32 (*.f32 2 (PI.f32)) u2)) 3)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02558
155958
2470758
3523758
000
100

simplify90.0ms (0.7%)

Algorithm
egg-herbie
Rules
773×rules-20_binary32
472×rules-14-rev_binary32
430×rules-21_binary32
365×fma-def_binary32
276×rules-13_binary32
Counts
131 → 110
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0731436
11891352
26111186
32578898
44643898
54978898
64960898

prune381.0ms (2.9%)

Pruning

20 alts after pruning (19 fresh and 1 done)

PrunedKeptTotal
New1820182
Fresh01919
Picked011
Done000
Total18220202
Error
0.0b
Counts
202 → 20
Alt Table
StatusErrorProgram
2.1b
(*.f32 (sqrt.f32 (neg.f32 (neg.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1)))))) (cos.f32 (pow.f32 (cbrt.f32 (*.f32 (*.f32 2 (PI.f32)) u2)) 3)))
2.4b
(*.f32 (pow.f32 (pow.f32 (neg.f32 (neg.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1))))) 1/4) 2) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
3.3b
(*.f32 (pow.f32 (pow.f32 (neg.f32 (neg.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1))))) 3/2) 1/3) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
13.5b
(*.f32 (cbrt.f32 (pow.f32 (neg.f32 (log.f32 (-.f32 1 u1))) 3/2)) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
2.3b
(*.f32 (sqrt.f32 (neg.f32 (neg.f32 (*.f32 (pow.f32 (cbrt.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1)))) 2) (cbrt.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1)))))))) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
2.8b
(cbrt.f32 (*.f32 (+.f32 (sqrt.f32 (pow.f32 u1 3)) (+.f32 (*.f32 19/32 (sqrt.f32 (pow.f32 u1 7))) (*.f32 3/4 (sqrt.f32 (pow.f32 u1 5))))) (pow.f32 (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)) 3)))
2.2b
(*.f32 (/.f32 (pow.f32 (neg.f32 (neg.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1))))) 3/2) (+.f32 (neg.f32 (neg.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1))))) (-.f32 0 (*.f32 (sqrt.f32 (neg.f32 (neg.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1)))))) 0)))) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
14.3b
(*.f32 (sqrt.f32 (neg.f32 (-.f32 (exp.f32 (log1p.f32 (log.f32 (-.f32 1 u1)))) 1))) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
20.4b
(cbrt.f32 (*.f32 (log.f32 (exp.f32 (pow.f32 (neg.f32 (neg.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1))))) 3/2))) (pow.f32 (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)) 3)))
2.3b
(*.f32 (*.f32 (sqrt.f32 (pow.f32 (cbrt.f32 (neg.f32 (neg.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1)))))) 2)) (sqrt.f32 (cbrt.f32 (neg.f32 (neg.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1)))))))) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
3.0b
(*.f32 (sqrt.f32 (neg.f32 (neg.f32 (exp.f32 (log.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1)))))))) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
14.1b
(*.f32 (sqrt.f32 (neg.f32 (+.f32 (log.f32 (sqrt.f32 (-.f32 1 u1))) (log.f32 (sqrt.f32 (-.f32 1 u1)))))) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
4.5b
(exp.f32 (log.f32 (*.f32 (sqrt.f32 (neg.f32 (neg.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1)))))) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))))
4.4b
(cbrt.f32 (*.f32 (pow.f32 (neg.f32 (neg.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1))))) 3/2) (-.f32 (fma.f32 14 (*.f32 (pow.f32 u2 4) (pow.f32 (PI.f32) 4)) 1) (*.f32 6 (*.f32 (*.f32 u2 u2) (pow.f32 (PI.f32) 2))))))
13.5b
(*.f32 (-.f32 (exp.f32 (log1p.f32 (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1)))))) 1) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
2.2b
(*.f32 (sqrt.f32 (neg.f32 (neg.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1)))))) (cos.f32 (+.f32 (fma.f32 (pow.f32 (cbrt.f32 u2) 2) (*.f32 (cbrt.f32 u2) (*.f32 2 (PI.f32))) (neg.f32 (*.f32 0 u2))) (fma.f32 0 u2 (*.f32 0 u2)))))
13.5b
(*.f32 (log.f32 (+.f32 1 (expm1.f32 (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1))))))) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
13.5b
(*.f32 (sqrt.f32 (neg.f32 (*.f32 (cbrt.f32 (log.f32 (-.f32 1 u1))) (pow.f32 (cbrt.f32 (log.f32 (-.f32 1 u1))) 2)))) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
14.8b
(*.f32 (sqrt.f32 (neg.f32 (+.f32 (log.f32 (pow.f32 (cbrt.f32 (-.f32 1 u1)) 2)) (log.f32 (cbrt.f32 (-.f32 1 u1)))))) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
2.6b
(pow.f32 (cbrt.f32 (*.f32 (sqrt.f32 (neg.f32 (neg.f32 (fma.f32 1/3 (pow.f32 u1 3) (fma.f32 1/2 (*.f32 u1 u1) (fma.f32 1/4 (pow.f32 u1 4) u1)))))) (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))) 3)
Compiler

Compiled 7207 to 5345 computations (25.8% saved)

regimes6.5s (50%)

Accuracy

Total 0.3b remaining (70.5%)

Threshold costs 0.3b (70.5%)

Counts
314 → 2
Compiler

Compiled 130195 to 106854 computations (17.9% saved)

bsearch16.0ms (0.1%)

Compiler

Compiled 6 to 5 computations (16.7% saved)

simplify2.0ms (0%)

Algorithm
egg-herbie
Rules
1-exp_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
045113
147113
246113

end491.0ms (3.8%)

Compiler

Compiled 824 to 673 computations (18.3% saved)

Profiling

Loading profile data...