else:
blockVectorBV = blockVectorV // Shared data!!!
gramVBV = np.dot(blockVectorV.T.conj(), blockVectorBV)
gramVBV = cholesky(gramVBV)
gramVBV = inv(gramVBV, overwrite_a=True)
// gramVBV is now R^{-1}.
blockVectorV = np.dot(blockVectorV, gramVBV)
if B is not None:
After Change
VBV = blockVectorV.T.conj() @ blockVectorBV
try:
// VBV is a Cholesky factor from now on...
VBV = cholesky(VBV, overwrite_a=True)
VBV = inv(VBV, overwrite_a=True)
blockVectorV = blockVectorV @ VBV
// blockVectorV = (cho_solve((VBV.T, True), blockVectorV.T)).T
if B is not None: