def _linear_loc(coords, shape, signed=False):
n = reduce(operator.mul, shape, 1)
if signed:
n = -n
dtype = np.min_scalar_type(n)
out = np.zeros(coords.shape[1], dtype=dtype)
tmp = np.zeros(coords.shape[1], dtype=dtype)
strides = 1
for i, d in enumerate(shape[::-1]):
# out += self.coords[-(i + 1), :].astype(dtype) * strides
np.multiply(coords[-(i + 1), :], strides, out=tmp, dtype=dtype)
np.add(tmp, out, out=out)
strides *= d
return out
评论列表
文章目录