Leon4gr45's picture
Upload folder using huggingface_hub (part 10)
8d955a0 verified
Raw
History Blame Contribute Delete
1.55 kB
'use strict'
module.exports = reorder
function reorder(arr, index, stride) {
var n = index.length
if (!stride) {
stride = Math.floor(arr.length / index.length);
}
if (arr.length !== n * stride) {
throw Error('Bad length of index array')
}
if (stride === 1) {
reorderSimple()
}
else {
reorderStride(stride)
}
function reorderSimple () {
for (var start = 0; start < n; start++) {
var currId, pickId = index[start]
if (start === pickId) continue
while (pickId !== start) {
currId = pickId
pickId = index[currId]
var v = arr[pickId]
arr[pickId] = arr[currId]
arr[currId] = v
index[currId] = currId
}
}
}
function reorderStride (stride) {
for (var start = 0; start < n; start++) {
var currId, pickId = index[start]
if (start === pickId) continue
while (pickId !== start) {
currId = pickId
pickId = index[currId]
for (var j = 0; j < stride; j++) {
var value = arr[pickId * stride + j];
arr[pickId * stride + j] = arr[currId * stride + j];
arr[currId * stride + j] = value;
}
index[currId] = currId
}
}
}
return arr
}