in pkg/unpack/unpack.go [119:143]
func ToPackedOffsets(off, blockSize, len int64, dpw int) (start, n int64, pre, post int) {
if dpw <= 0 {
panic("ToPackedOffsets: zero or negative dpw")
}
padding := int64(dpw) - blockSize%int64(dpw)
if padding == int64(dpw) {
padding = 0
}
len += padding * ((off+len)/blockSize - off/blockSize)
off += padding * (off / blockSize)
start = off / int64(dpw)
pre = int(off - start*int64(dpw))
if len == 0 {
n = 0
post = 0
} else {
n = (len + int64(pre) + int64(dpw) - 1) / int64(dpw)
post = int(n*int64(dpw) - (len + int64(pre)))
}
start *= WordSize
n *= WordSize
return
}