def _local_add_sparse(ltenss):
"""Computes the local tensors of a sum of MPArrays (except for the boundary
tensors). Works only for products right now
:param ltenss: Raveled local tensors
:returns: Correct local tensor representation
"""
dim = len(ltenss[0])
nr_summands = len(ltenss)
indptr = np.arange(nr_summands * dim + 1)
indices = np.concatenate((np.arange(nr_summands),) * dim)
data = np.concatenate([lt[None, :] for lt in ltenss])
data = np.rollaxis(data, 1).ravel()
return ssp.csc_matrix((data, indices, indptr),
shape=(nr_summands, dim * nr_summands))
评论列表
文章目录