in dispenso/concurrent_vector.h [1003:1014]
DISPENSO_INLINE cv::BucketInfo bucketAndSubIndex(size_t index) const {
size_t l2idx = detail::log2(index | 1);
size_t bucket = (l2idx + 1) - firstBucketShift_;
size_t bucketCapacity = size_t{1} << l2idx;
size_t bucketIndex = index - bucketCapacity;
bucket = index < firstBucketLen_ ? 0 : bucket;
bucketIndex = index < firstBucketLen_ ? index : bucketIndex;
bucketCapacity = index < firstBucketLen_ ? firstBucketLen_ : bucketCapacity;
return {bucket, bucketIndex, bucketCapacity};
}