Details

Time bar (total: 13.2s)

analyze430.0ms (3.3%)

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.5s (19.2%)

Alt Table
StatusErrorProgram
13.6b
(*.f32 (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1)))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
Results
2.5s8256×body128valid
1.0msbody128invalid
Compiler

Compiled 126 to 104 computations (17.5% saved)

localize38.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2))
0.3b
(*.f32 (*.f32 2 (PI.f32)) u2)
0.4b
(*.f32 (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1)))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
14.3b
(log.f32 (-.f32 1 u1))

series216.0ms (1.6%)

Counts
4 → 56
Calls

4 calls:

207.0ms
(*.f32 (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1)))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
3.0ms
(sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2))
3.0ms
(*.f32 (*.f32 2 (PI.f32)) u2)
3.0ms
(log.f32 (-.f32 1 u1))

rewrite101.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
605×prod-diff_binary32
224×expm1-udef_binary32
224×log1p-udef_binary32
200×log-pow_binary32
162×fma-def_binary32
Counts
4 → 97
Calls

4 calls:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01446
128242
2298142
3481842
4497042
000
100

prune124.0ms (0.9%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New14211153
Fresh000
Picked101
Done000
Total14311154
Error
0.3b
Counts
154 → 11
Alt Table
StatusErrorProgram
0.6b
(*.f32 (sqrt.f32 (neg.f32 (*.f32 (cbrt.f32 (log1p.f32 (neg.f32 u1))) (pow.f32 (cbrt.f32 (log1p.f32 (neg.f32 u1))) 2)))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
14.2b
(-.f32 (+.f32 (*.f32 2 (*.f32 u2 (*.f32 (PI.f32) (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1))))))) (*.f32 4/15 (*.f32 (pow.f32 u2 5) (*.f32 (pow.f32 (PI.f32) 5) (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1)))))))) (+.f32 (*.f32 8/315 (*.f32 (pow.f32 u2 7) (*.f32 (pow.f32 (PI.f32) 7) (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1))))))) (*.f32 4/3 (*.f32 (pow.f32 u2 3) (*.f32 (pow.f32 (PI.f32) 3) (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1)))))))))
14.4b
(*.f32 (sqrt.f32 (neg.f32 (-.f32 (exp.f32 (log1p.f32 (log1p.f32 (neg.f32 u1)))) 1))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
7.6b
(*.f32 (sqrt.f32 (neg.f32 (*.f32 -1 u1))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
0.6b
(*.f32 (sqrt.f32 (neg.f32 (pow.f32 (cbrt.f32 (log1p.f32 (neg.f32 u1))) 3))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
18.8b
(*.f32 (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1)))) (-.f32 (exp.f32 (log1p.f32 (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))) 1))
0.6b
(*.f32 (sqrt.f32 (neg.f32 (*.f32 1/3 (*.f32 3 (log1p.f32 (neg.f32 u1)))))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
13.6b
(*.f32 (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1)))) (sin.f32 (pow.f32 (cbrt.f32 (*.f32 (*.f32 2 (PI.f32)) u2)) 3)))
2.9b
(*.f32 (sqrt.f32 (neg.f32 (neg.f32 (+.f32 (*.f32 1/3 (pow.f32 u1 3)) (+.f32 (*.f32 1/2 (pow.f32 u1 2)) u1))))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
4.0b
(*.f32 (sqrt.f32 (neg.f32 (neg.f32 (+.f32 (*.f32 1/2 (pow.f32 u1 2)) u1)))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
0.6b
(*.f32 (sqrt.f32 (neg.f32 (+.f32 (fma.f32 1 (log1p.f32 (neg.f32 (*.f32 u1 u1))) (neg.f32 (log1p.f32 u1))) (fma.f32 (neg.f32 (sqrt.f32 (log1p.f32 u1))) (sqrt.f32 (log1p.f32 u1)) (log1p.f32 u1))))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
Compiler

Compiled 3776 to 2739 computations (27.5% saved)

localize74.0ms (0.6%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(fma.f32 1 (log1p.f32 (neg.f32 (*.f32 u1 u1))) (neg.f32 (log1p.f32 u1)))
0.3b
(*.f32 (*.f32 2 (PI.f32)) u2)
0.4b
(*.f32 (sqrt.f32 (neg.f32 (+.f32 (fma.f32 1 (log1p.f32 (neg.f32 (*.f32 u1 u1))) (neg.f32 (log1p.f32 u1))) (fma.f32 (neg.f32 (sqrt.f32 (log1p.f32 u1))) (sqrt.f32 (log1p.f32 u1)) (log1p.f32 u1))))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
29.4b
(fma.f32 (neg.f32 (sqrt.f32 (log1p.f32 u1))) (sqrt.f32 (log1p.f32 u1)) (log1p.f32 u1))

series5.9s (44.3%)

Counts
4 → 53
Calls

4 calls:

4.9s
(fma.f32 (neg.f32 (sqrt.f32 (log1p.f32 u1))) (sqrt.f32 (log1p.f32 u1)) (log1p.f32 u1))
923.0ms
(*.f32 (sqrt.f32 (neg.f32 (+.f32 (fma.f32 1 (log1p.f32 (neg.f32 (*.f32 u1 u1))) (neg.f32 (log1p.f32 u1))) (fma.f32 (neg.f32 (sqrt.f32 (log1p.f32 u1))) (sqrt.f32 (log1p.f32 u1)) (log1p.f32 u1))))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
3.0ms
(fma.f32 1 (log1p.f32 (neg.f32 (*.f32 u1 u1))) (neg.f32 (log1p.f32 u1)))
3.0ms
(*.f32 (*.f32 2 (PI.f32)) u2)

rewrite113.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
923×prod-diff_binary32
227×egg-rr
214×add-sqr-sqrt_binary32
204×expm1-log1p-u_binary32
202×log1p-expm1-u_binary32
Counts
4 → 227
Calls

4 calls:

103.0ms
(fma.f32 1 (log1p.f32 (neg.f32 (*.f32 u1 u1))) (neg.f32 (log1p.f32 u1)))
103.0ms
(*.f32 (*.f32 2 (PI.f32)) u2)
103.0ms
(*.f32 (sqrt.f32 (neg.f32 (+.f32 (fma.f32 1 (log1p.f32 (neg.f32 (*.f32 u1 u1))) (neg.f32 (log1p.f32 u1))) (fma.f32 (neg.f32 (sqrt.f32 (log1p.f32 u1))) (sqrt.f32 (log1p.f32 u1)) (log1p.f32 u1))))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
103.0ms
(fma.f32 (neg.f32 (sqrt.f32 (log1p.f32 u1))) (sqrt.f32 (log1p.f32 u1)) (log1p.f32 u1))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02290
144762
2396152
3525052
000
100

prune431.0ms (3.3%)

Pruning

17 alts after pruning (16 fresh and 1 done)

PrunedKeptTotal
New2728280
Fresh2810
Picked011
Done000
Total27417291
Error
0.1b
Counts
291 → 17
Alt Table
StatusErrorProgram
18.8b
(*.f32 (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1)))) (-.f32 (exp.f32 (log1p.f32 (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))) 1))
9.0b
(*.f32 (sqrt.f32 (neg.f32 (+.f32 (+.f32 (fma.f32 (cbrt.f32 (+.f32 (log1p.f32 (*.f32 u1 u1)) (log1p.f32 u1))) (pow.f32 (cbrt.f32 (+.f32 (log1p.f32 (*.f32 u1 u1)) (log1p.f32 u1))) 2) (neg.f32 (*.f32 (+.f32 (log1p.f32 u1) (log1p.f32 u1)) -1))) (fma.f32 (+.f32 (log1p.f32 u1) (log1p.f32 u1)) -1 (*.f32 (+.f32 (log1p.f32 u1) (log1p.f32 u1)) -1))) (fma.f32 (neg.f32 (sqrt.f32 (log1p.f32 u1))) (sqrt.f32 (log1p.f32 u1)) (log1p.f32 u1))))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
0.6b
(*.f32 (sqrt.f32 (neg.f32 (*.f32 (cbrt.f32 (log1p.f32 (neg.f32 u1))) (pow.f32 (cbrt.f32 (log1p.f32 (neg.f32 u1))) 2)))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
14.2b
(-.f32 (+.f32 (*.f32 2 (*.f32 u2 (*.f32 (PI.f32) (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1))))))) (*.f32 4/15 (*.f32 (pow.f32 u2 5) (*.f32 (pow.f32 (PI.f32) 5) (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1)))))))) (+.f32 (*.f32 8/315 (*.f32 (pow.f32 u2 7) (*.f32 (pow.f32 (PI.f32) 7) (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1))))))) (*.f32 4/3 (*.f32 (pow.f32 u2 3) (*.f32 (pow.f32 (PI.f32) 3) (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1)))))))))
14.4b
(*.f32 (sqrt.f32 (neg.f32 (-.f32 (exp.f32 (log1p.f32 (log1p.f32 (neg.f32 u1)))) 1))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
7.6b
(*.f32 (sqrt.f32 (neg.f32 (*.f32 -1 u1))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
3.2b
(cbrt.f32 (*.f32 (pow.f32 (+.f32 (log1p.f32 (*.f32 u1 u1)) (log1p.f32 u1)) 3/2) (pow.f32 (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)) 3)))
3.9b
(sqrt.f32 (*.f32 (+.f32 (log1p.f32 (*.f32 u1 u1)) (log1p.f32 u1)) (pow.f32 (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)) 2)))
3.5b
(pow.f32 (cbrt.f32 (*.f32 (sqrt.f32 (+.f32 (log1p.f32 (*.f32 u1 u1)) (log1p.f32 u1))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))) 3)
3.3b
(*.f32 (sqrt.f32 (neg.f32 (+.f32 (*.f32 (sqrt.f32 (+.f32 (log1p.f32 (*.f32 u1 u1)) (log1p.f32 u1))) (neg.f32 (sqrt.f32 (+.f32 (log1p.f32 (*.f32 u1 u1)) (log1p.f32 u1))))) (fma.f32 (neg.f32 (sqrt.f32 (log1p.f32 u1))) (sqrt.f32 (log1p.f32 u1)) (log1p.f32 u1))))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
0.6b
(*.f32 (sqrt.f32 (neg.f32 (pow.f32 (cbrt.f32 (log1p.f32 (neg.f32 u1))) 3))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
9.0b
(*.f32 (sqrt.f32 (neg.f32 (+.f32 (+.f32 (fma.f32 1 (+.f32 (log1p.f32 (*.f32 u1 u1)) (log1p.f32 u1)) (neg.f32 (*.f32 (+.f32 (log1p.f32 u1) (log1p.f32 u1)) -1))) (fma.f32 (+.f32 (log1p.f32 u1) (log1p.f32 u1)) -1 (*.f32 (+.f32 (log1p.f32 u1) (log1p.f32 u1)) -1))) (fma.f32 (neg.f32 (sqrt.f32 (log1p.f32 u1))) (sqrt.f32 (log1p.f32 u1)) (log1p.f32 u1))))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
0.8b
(*.f32 (sqrt.f32 (neg.f32 (+.f32 (fma.f32 1 (log1p.f32 (neg.f32 (*.f32 u1 u1))) (neg.f32 (log1p.f32 u1))) (fma.f32 (neg.f32 (sqrt.f32 (log1p.f32 u1))) (sqrt.f32 (log1p.f32 u1)) (log1p.f32 u1))))) (sin.f32 (pow.f32 (sqrt.f32 (*.f32 (*.f32 2 (PI.f32)) u2)) 2)))
1.0b
(*.f32 (sqrt.f32 (neg.f32 (+.f32 (fma.f32 1 (log1p.f32 (neg.f32 (*.f32 u1 u1))) (neg.f32 (log1p.f32 u1))) (fma.f32 (neg.f32 (sqrt.f32 (log1p.f32 u1))) (sqrt.f32 (log1p.f32 u1)) (log1p.f32 u1))))) (sin.f32 (pow.f32 (cbrt.f32 (*.f32 (*.f32 2 (PI.f32)) u2)) 3)))
13.6b
(*.f32 (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1)))) (sin.f32 (pow.f32 (cbrt.f32 (*.f32 (*.f32 2 (PI.f32)) u2)) 3)))
2.9b
(*.f32 (sqrt.f32 (neg.f32 (neg.f32 (+.f32 (*.f32 1/3 (pow.f32 u1 3)) (+.f32 (*.f32 1/2 (pow.f32 u1 2)) u1))))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
0.6b
(*.f32 (sqrt.f32 (neg.f32 (+.f32 (fma.f32 1 (log1p.f32 (neg.f32 (*.f32 u1 u1))) (neg.f32 (log1p.f32 u1))) (fma.f32 (neg.f32 (sqrt.f32 (log1p.f32 u1))) (sqrt.f32 (log1p.f32 u1)) (log1p.f32 u1))))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
Compiler

Compiled 14226 to 5399 computations (62% saved)

localize41.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2))
0.3b
(*.f32 (*.f32 2 (PI.f32)) u2)
0.4b
(*.f32 (sqrt.f32 (neg.f32 (pow.f32 (cbrt.f32 (log1p.f32 (neg.f32 u1))) 3))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
0.8b
(pow.f32 (cbrt.f32 (log1p.f32 (neg.f32 u1))) 3)

series219.0ms (1.7%)

Counts
4 → 56
Calls

4 calls:

179.0ms
(*.f32 (sqrt.f32 (neg.f32 (pow.f32 (cbrt.f32 (log1p.f32 (neg.f32 u1))) 3))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
34.0ms
(pow.f32 (cbrt.f32 (log1p.f32 (neg.f32 u1))) 3)
3.0ms
(sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2))
3.0ms
(*.f32 (*.f32 2 (PI.f32)) u2)

rewrite100.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
619×log-prod_binary32
465×prod-diff_binary32
221×expm1-udef_binary32
221×log1p-udef_binary32
203×log-pow_binary32
Counts
4 → 100
Calls

4 calls:

97.0ms
(sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2))
97.0ms
(*.f32 (*.f32 2 (PI.f32)) u2)
97.0ms
(*.f32 (sqrt.f32 (neg.f32 (pow.f32 (cbrt.f32 (log1p.f32 (neg.f32 u1))) 3))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
97.0ms
(pow.f32 (cbrt.f32 (log1p.f32 (neg.f32 u1))) 3)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01644
130738
2290038
3535738
000
100

prune172.0ms (1.3%)

Pruning

19 alts after pruning (18 fresh and 1 done)

PrunedKeptTotal
New1515156
Fresh21315
Picked101
Done011
Total15419173
Error
0.0b
Counts
173 → 19
Alt Table
StatusErrorProgram
13.3b
(*.f32 (sqrt.f32 (neg.f32 (pow.f32 (cbrt.f32 (log1p.f32 (neg.f32 u1))) 3))) (-.f32 (exp.f32 (log1p.f32 (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))) 1))
3.9b
(sqrt.f32 (*.f32 (+.f32 (log1p.f32 (*.f32 u1 u1)) (log1p.f32 u1)) (pow.f32 (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)) 2)))
0.6b
(*.f32 (sqrt.f32 (neg.f32 (*.f32 (cbrt.f32 (log1p.f32 (neg.f32 u1))) (pow.f32 (cbrt.f32 (log1p.f32 (neg.f32 u1))) 2)))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
14.2b
(-.f32 (+.f32 (*.f32 2 (*.f32 u2 (*.f32 (PI.f32) (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1))))))) (*.f32 4/15 (*.f32 (pow.f32 u2 5) (*.f32 (pow.f32 (PI.f32) 5) (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1)))))))) (+.f32 (*.f32 8/315 (*.f32 (pow.f32 u2 7) (*.f32 (pow.f32 (PI.f32) 7) (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1))))))) (*.f32 4/3 (*.f32 (pow.f32 u2 3) (*.f32 (pow.f32 (PI.f32) 3) (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1)))))))))
1.0b
(*.f32 (sqrt.f32 (neg.f32 (+.f32 (fma.f32 1 (log1p.f32 (neg.f32 (*.f32 u1 u1))) (neg.f32 (log1p.f32 u1))) (fma.f32 (neg.f32 (sqrt.f32 (log1p.f32 u1))) (sqrt.f32 (log1p.f32 u1)) (log1p.f32 u1))))) (sin.f32 (pow.f32 (cbrt.f32 (*.f32 (*.f32 2 (PI.f32)) u2)) 3)))
0.9b
(*.f32 (sqrt.f32 (neg.f32 (pow.f32 (cbrt.f32 (log1p.f32 (neg.f32 u1))) 3))) (pow.f32 (cbrt.f32 (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2))) 3))
0.8b
(*.f32 (sqrt.f32 (neg.f32 (pow.f32 (cbrt.f32 (log1p.f32 (neg.f32 u1))) 3))) (sin.f32 (pow.f32 (sqrt.f32 (*.f32 (*.f32 2 (PI.f32)) u2)) 2)))
2.9b
(*.f32 (sqrt.f32 (neg.f32 (neg.f32 (+.f32 (*.f32 1/3 (pow.f32 u1 3)) (+.f32 (*.f32 1/2 (pow.f32 u1 2)) u1))))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
14.4b
(*.f32 (sqrt.f32 (neg.f32 (-.f32 (exp.f32 (log1p.f32 (log1p.f32 (neg.f32 u1)))) 1))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
7.6b
(*.f32 (sqrt.f32 (neg.f32 (*.f32 -1 u1))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
3.2b
(cbrt.f32 (*.f32 (pow.f32 (+.f32 (log1p.f32 (*.f32 u1 u1)) (log1p.f32 u1)) 3/2) (pow.f32 (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)) 3)))
14.6b
(*.f32 (sqrt.f32 (neg.f32 (pow.f32 (cbrt.f32 (log1p.f32 (neg.f32 u1))) 3))) (+.f32 (log.f32 (*.f32 (cbrt.f32 (exp.f32 (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))) (cbrt.f32 (exp.f32 (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))))) (log.f32 (cbrt.f32 (exp.f32 (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))))))
3.5b
(pow.f32 (cbrt.f32 (*.f32 (sqrt.f32 (+.f32 (log1p.f32 (*.f32 u1 u1)) (log1p.f32 u1))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))) 3)
3.3b
(*.f32 (sqrt.f32 (neg.f32 (+.f32 (*.f32 (sqrt.f32 (+.f32 (log1p.f32 (*.f32 u1 u1)) (log1p.f32 u1))) (neg.f32 (sqrt.f32 (+.f32 (log1p.f32 (*.f32 u1 u1)) (log1p.f32 u1))))) (fma.f32 (neg.f32 (sqrt.f32 (log1p.f32 u1))) (sqrt.f32 (log1p.f32 u1)) (log1p.f32 u1))))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
9.0b
(*.f32 (sqrt.f32 (neg.f32 (+.f32 (+.f32 (fma.f32 (cbrt.f32 (+.f32 (log1p.f32 (*.f32 u1 u1)) (log1p.f32 u1))) (pow.f32 (cbrt.f32 (+.f32 (log1p.f32 (*.f32 u1 u1)) (log1p.f32 u1))) 2) (neg.f32 (*.f32 (+.f32 (log1p.f32 u1) (log1p.f32 u1)) -1))) (fma.f32 (+.f32 (log1p.f32 u1) (log1p.f32 u1)) -1 (*.f32 (+.f32 (log1p.f32 u1) (log1p.f32 u1)) -1))) (fma.f32 (neg.f32 (sqrt.f32 (log1p.f32 u1))) (sqrt.f32 (log1p.f32 u1)) (log1p.f32 u1))))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
9.0b
(*.f32 (sqrt.f32 (neg.f32 (+.f32 (+.f32 (fma.f32 1 (+.f32 (log1p.f32 (*.f32 u1 u1)) (log1p.f32 u1)) (neg.f32 (*.f32 (+.f32 (log1p.f32 u1) (log1p.f32 u1)) -1))) (fma.f32 (+.f32 (log1p.f32 u1) (log1p.f32 u1)) -1 (*.f32 (+.f32 (log1p.f32 u1) (log1p.f32 u1)) -1))) (fma.f32 (neg.f32 (sqrt.f32 (log1p.f32 u1))) (sqrt.f32 (log1p.f32 u1)) (log1p.f32 u1))))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
13.6b
(*.f32 (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1)))) (sin.f32 (pow.f32 (cbrt.f32 (*.f32 (*.f32 2 (PI.f32)) u2)) 3)))
1.0b
(*.f32 (sqrt.f32 (neg.f32 (pow.f32 (cbrt.f32 (log1p.f32 (neg.f32 u1))) 3))) (sin.f32 (pow.f32 (cbrt.f32 (*.f32 (*.f32 2 (PI.f32)) u2)) 3)))
0.6b
(*.f32 (sqrt.f32 (neg.f32 (+.f32 (fma.f32 1 (log1p.f32 (neg.f32 (*.f32 u1 u1))) (neg.f32 (log1p.f32 u1))) (fma.f32 (neg.f32 (sqrt.f32 (log1p.f32 u1))) (sqrt.f32 (log1p.f32 u1)) (log1p.f32 u1))))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
Compiler

Compiled 4929 to 3525 computations (28.5% saved)

localize47.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f32 (*.f32 2 (PI.f32)) u2)
0.3b
(*.f32 (cbrt.f32 (log1p.f32 (neg.f32 u1))) (pow.f32 (cbrt.f32 (log1p.f32 (neg.f32 u1))) 2))
0.4b
(*.f32 (sqrt.f32 (neg.f32 (*.f32 (cbrt.f32 (log1p.f32 (neg.f32 u1))) (pow.f32 (cbrt.f32 (log1p.f32 (neg.f32 u1))) 2)))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
0.5b
(pow.f32 (cbrt.f32 (log1p.f32 (neg.f32 u1))) 2)

series219.0ms (1.7%)

Counts
4 → 56
Calls

4 calls:

185.0ms
(*.f32 (sqrt.f32 (neg.f32 (*.f32 (cbrt.f32 (log1p.f32 (neg.f32 u1))) (pow.f32 (cbrt.f32 (log1p.f32 (neg.f32 u1))) 2)))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
25.0ms
(pow.f32 (cbrt.f32 (log1p.f32 (neg.f32 u1))) 2)
5.0ms
(*.f32 (cbrt.f32 (log1p.f32 (neg.f32 u1))) (pow.f32 (cbrt.f32 (log1p.f32 (neg.f32 u1))) 2))
3.0ms
(*.f32 (*.f32 2 (PI.f32)) u2)

rewrite66.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
629×log-prod_binary32
465×prod-diff_binary32
217×expm1-udef_binary32
217×log1p-udef_binary32
203×log-pow_binary32
Counts
4 → 87
Calls

4 calls:

64.0ms
(*.f32 (*.f32 2 (PI.f32)) u2)
64.0ms
(*.f32 (cbrt.f32 (log1p.f32 (neg.f32 u1))) (pow.f32 (cbrt.f32 (log1p.f32 (neg.f32 u1))) 2))
64.0ms
(*.f32 (sqrt.f32 (neg.f32 (*.f32 (cbrt.f32 (log1p.f32 (neg.f32 u1))) (pow.f32 (cbrt.f32 (log1p.f32 (neg.f32 u1))) 2)))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
64.0ms
(pow.f32 (cbrt.f32 (log1p.f32 (neg.f32 u1))) 2)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01644
130634
2284934
3536134
000
100

prune119.0ms (0.9%)

Pruning

19 alts after pruning (17 fresh and 2 done)

PrunedKeptTotal
New1412143
Fresh21517
Picked011
Done011
Total14319162
Error
0.0b
Counts
162 → 19
Alt Table
StatusErrorProgram
13.3b
(*.f32 (sqrt.f32 (neg.f32 (pow.f32 (cbrt.f32 (log1p.f32 (neg.f32 u1))) 3))) (-.f32 (exp.f32 (log1p.f32 (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))) 1))
3.9b
(sqrt.f32 (*.f32 (+.f32 (log1p.f32 (*.f32 u1 u1)) (log1p.f32 u1)) (pow.f32 (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)) 2)))
3.3b
(*.f32 (sqrt.f32 (neg.f32 (+.f32 (*.f32 (sqrt.f32 (+.f32 (log1p.f32 (*.f32 u1 u1)) (log1p.f32 u1))) (neg.f32 (sqrt.f32 (+.f32 (log1p.f32 (*.f32 u1 u1)) (log1p.f32 u1))))) (fma.f32 (neg.f32 (sqrt.f32 (log1p.f32 u1))) (sqrt.f32 (log1p.f32 u1)) (log1p.f32 u1))))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
7.9b
(*.f32 (sqrt.f32 (neg.f32 (*.f32 (cbrt.f32 (log1p.f32 (neg.f32 u1))) (*.f32 (sqrt.f32 (log1p.f32 u1)) (pow.f32 (log1p.f32 u1) 1/6))))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
0.6b
(*.f32 (sqrt.f32 (neg.f32 (*.f32 (cbrt.f32 (log1p.f32 (neg.f32 u1))) (pow.f32 (cbrt.f32 (log1p.f32 (neg.f32 u1))) 2)))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
14.2b
(-.f32 (+.f32 (*.f32 2 (*.f32 u2 (*.f32 (PI.f32) (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1))))))) (*.f32 4/15 (*.f32 (pow.f32 u2 5) (*.f32 (pow.f32 (PI.f32) 5) (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1)))))))) (+.f32 (*.f32 8/315 (*.f32 (pow.f32 u2 7) (*.f32 (pow.f32 (PI.f32) 7) (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1))))))) (*.f32 4/3 (*.f32 (pow.f32 u2 3) (*.f32 (pow.f32 (PI.f32) 3) (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1)))))))))
1.0b
(*.f32 (sqrt.f32 (neg.f32 (+.f32 (fma.f32 1 (log1p.f32 (neg.f32 (*.f32 u1 u1))) (neg.f32 (log1p.f32 u1))) (fma.f32 (neg.f32 (sqrt.f32 (log1p.f32 u1))) (sqrt.f32 (log1p.f32 u1)) (log1p.f32 u1))))) (sin.f32 (pow.f32 (cbrt.f32 (*.f32 (*.f32 2 (PI.f32)) u2)) 3)))
0.9b
(*.f32 (sqrt.f32 (neg.f32 (pow.f32 (cbrt.f32 (log1p.f32 (neg.f32 u1))) 3))) (pow.f32 (cbrt.f32 (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2))) 3))
0.8b
(*.f32 (sqrt.f32 (neg.f32 (pow.f32 (cbrt.f32 (log1p.f32 (neg.f32 u1))) 3))) (sin.f32 (pow.f32 (sqrt.f32 (*.f32 (*.f32 2 (PI.f32)) u2)) 2)))
2.9b
(*.f32 (sqrt.f32 (neg.f32 (neg.f32 (+.f32 (*.f32 1/3 (pow.f32 u1 3)) (+.f32 (*.f32 1/2 (pow.f32 u1 2)) u1))))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
14.4b
(*.f32 (sqrt.f32 (neg.f32 (-.f32 (exp.f32 (log1p.f32 (log1p.f32 (neg.f32 u1)))) 1))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
7.6b
(*.f32 (sqrt.f32 (neg.f32 (*.f32 -1 u1))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
3.2b
(cbrt.f32 (*.f32 (pow.f32 (+.f32 (log1p.f32 (*.f32 u1 u1)) (log1p.f32 u1)) 3/2) (pow.f32 (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)) 3)))
0.6b
(*.f32 (sqrt.f32 (neg.f32 (+.f32 (fma.f32 1 (log1p.f32 (neg.f32 (*.f32 u1 u1))) (neg.f32 (log1p.f32 u1))) (fma.f32 (neg.f32 (sqrt.f32 (log1p.f32 u1))) (sqrt.f32 (log1p.f32 u1)) (log1p.f32 u1))))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
1.0b
(*.f32 (sqrt.f32 (neg.f32 (*.f32 (cbrt.f32 (log1p.f32 (neg.f32 u1))) (pow.f32 (cbrt.f32 (log1p.f32 (neg.f32 u1))) 2)))) (sin.f32 (pow.f32 (cbrt.f32 (*.f32 (*.f32 2 (PI.f32)) u2)) 3)))
14.6b
(*.f32 (sqrt.f32 (neg.f32 (pow.f32 (cbrt.f32 (log1p.f32 (neg.f32 u1))) 3))) (+.f32 (log.f32 (*.f32 (cbrt.f32 (exp.f32 (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))) (cbrt.f32 (exp.f32 (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))))) (log.f32 (cbrt.f32 (exp.f32 (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))))))
3.5b
(pow.f32 (cbrt.f32 (*.f32 (sqrt.f32 (+.f32 (log1p.f32 (*.f32 u1 u1)) (log1p.f32 u1))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))) 3)
9.0b
(*.f32 (sqrt.f32 (neg.f32 (+.f32 (+.f32 (fma.f32 (cbrt.f32 (+.f32 (log1p.f32 (*.f32 u1 u1)) (log1p.f32 u1))) (pow.f32 (cbrt.f32 (+.f32 (log1p.f32 (*.f32 u1 u1)) (log1p.f32 u1))) 2) (neg.f32 (*.f32 (+.f32 (log1p.f32 u1) (log1p.f32 u1)) -1))) (fma.f32 (+.f32 (log1p.f32 u1) (log1p.f32 u1)) -1 (*.f32 (+.f32 (log1p.f32 u1) (log1p.f32 u1)) -1))) (fma.f32 (neg.f32 (sqrt.f32 (log1p.f32 u1))) (sqrt.f32 (log1p.f32 u1)) (log1p.f32 u1))))) (sin.f32 (*.f32 (*.f32 2 (PI.f32)) u2)))
13.6b
(*.f32 (sqrt.f32 (neg.f32 (log.f32 (-.f32 1 u1)))) (sin.f32 (pow.f32 (cbrt.f32 (*.f32 (*.f32 2 (PI.f32)) u2)) 3)))
Compiler

Compiled 4376 to 3052 computations (30.3% saved)

regimes2.0s (15%)

Accuracy

Total 0.4b remaining (77.3%)

Threshold costs 0.4b (77.3%)

Counts
141 → 1
Compiler

Compiled 35748 to 28878 computations (19.2% saved)

simplify2.0ms (0%)

Algorithm
egg-herbie
Rules
*-commutative_binary32
neg-sub0_binary32
neg-mul-1_binary32
+-commutative_binary32
*-rgt-identity_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01521
12821
23321
33521
43321

end332.0ms (2.5%)

Compiler

Compiled 591 to 451 computations (23.7% saved)

Profiling

Loading profile data...