MCPcopy Create free account
hub / github.com/egonelbre/exp / CodeShuffleUnroll

Function CodeShuffleUnroll

permutation/code.go:191–250  ·  view source on GitHub ↗
(perm [base]byte)

Source from the content-addressed store, hash-verified

189}
190
191func CodeShuffleUnroll(perm [base]byte) int {
192 var state = [base]byte{
193 0, 1, 2, 3,
194 4, 5, 6, 7,
195 8, 9, 10, 11,
196 }
197 var inverse = [base]byte{
198 0, 1, 2, 3,
199 4, 5, 6, 7,
200 8, 9, 10, 11,
201 }
202
203 total := 0
204
205 j0 := inverse[perm[0]]
206 inverse[state[0]], state[j0] = j0, state[0]
207 total += int(j0-0) * 39916800
208
209 j1 := inverse[perm[1]]
210 inverse[state[1]], state[j1] = j1, state[1]
211 total += int(j1-1) * 3628800
212
213 j2 := inverse[perm[2]]
214 inverse[state[2]], state[j2] = j2, state[2]
215 total += int(j2-2) * 362880
216
217 j3 := inverse[perm[3]]
218 inverse[state[3]], state[j3] = j3, state[3]
219 total += int(j3-3) * 40320
220
221 j4 := inverse[perm[4]]
222 inverse[state[4]], state[j4] = j4, state[4]
223 total += int(j4-4) * 5040
224
225 j5 := inverse[perm[5]]
226 inverse[state[5]], state[j5] = j5, state[5]
227 total += int(j5-5) * 720
228
229 j6 := inverse[perm[6]]
230 inverse[state[6]], state[j6] = j6, state[6]
231 total += int(j6-6) * 120
232
233 j7 := inverse[perm[7]]
234 inverse[state[7]], state[j7] = j7, state[7]
235 total += int(j7-7) * 24
236
237 j8 := inverse[perm[8]]
238 inverse[state[8]], state[j8] = j8, state[8]
239 total += int(j8-8) * 6
240
241 j9 := inverse[perm[9]]
242 inverse[state[9]], state[j9] = j9, state[9]
243 total += int(j9-9) * 2
244
245 j10 := inverse[perm[10]]
246 inverse[state[10]], state[j10] = j10, state[10]
247 total += int(j10-10) * 1
248

Callers 2

TestShuffleRandomFunction · 0.85
BenchmarkShuffleUnrollFunction · 0.85

Calls

no outgoing calls

Tested by 2

TestShuffleRandomFunction · 0.68
BenchmarkShuffleUnrollFunction · 0.68