[debug][NDTensors] In-place contraction bug #1152
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
When computing C = \alpha AB + \beta C, with \beta != 0 there was a bug found that sometimes the tensor C would be evaluated incorrectly. This bug was found to occur when the output labels of C were permuted from the output labels of AB. I.e.
C(5,2,4,3) = A(-1, 2,3,4) * B(-1,5) + C(5,2,4,3)
.A(-1,2,3,4) * B(-1,5) => R(5,2,3,4)
and was matricized toR(5,234)
and added to the matricizedC(5,243)
. The additionR(5,234) + C(5,243)
has no runtime errors because the size(234) = (243)
however numerical errors occurred. This was fixed by permuting C when\beta != 0
Fixes #(issue)
This bug was discovered in this thread https://itensor.discourse.group/t/inplace-multiplication-of-tensors-with-the-same-shape-but-different-indicies/900/16