def _process_block_mins(self):
max_size = floor(log2(len(self.block_mins)))
res = [[i for i in self.block_mins]]
def global_argmin(*sub_blocks):
return sub_blocks[argmin(self.array[i] for i in sub_blocks)]
for si in range(max_size):
t = [
global_argmin(res[si][i], res[si][i + 2**si]) for i in range(len(self.block_mins) - 2**si)
] + [
res[si][i] for i in range(len(self.block_mins) - 2**si, len(self.block_mins))
]
res.append(t)
return res
评论列表
文章目录