def group_sites(self, sites_per_group):
"""Group several MPA sites into one site.
The resulting MPA has length ``len(self) // sites_per_group`` and
``sites_per_group * self.ndims[i]`` physical legs on site ``i``. The
physical legs on each sites are in local form.
:param int sites_per_group: Number of sites to be grouped into one
:returns: An MPA with ``sites_per_group`` fewer sites and more ndims
"""
if (len(self) % sites_per_group) != 0:
raise ValueError('Cannot group: {} not a multiple of {}'
.format(len(self), sites_per_group))
if sites_per_group == 1:
return self
ltens = [_ltens_to_array(self._lt[i:i + sites_per_group])
for i in range(0, len(self), sites_per_group)]
return MPArray(ltens)
评论列表
文章目录