🐛 fix check for density matrices in compute tables #568
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
This PR fixes an easy to overlook bug in the compute table implementation. The check in the old implementation was never evaluating to true due to the types being used in the various compute tables.
This allowed matrix and density matrix nodes to me mixed because the subsequent condition was never checked.
This PR adjusts the condition so that the checks are evaluated for both, addition and multiplication of density matrices.
Note that this has quite some interesting consequences, where a density matrix can have two successors that have exactly the same structure, but are represented by different DDs due to one (0-successor) representing a density matrix and one (1-successor) representing a matrix. Although both successors have to represent diagonal matrices for this to occur.
Checklist: