Fix tapering of zero/empty operators #7262
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.
Tapering logic would detect an empty/zero operator, log a warning and return the original operator unchanged. When running code with symmetry reduction in Qiskit Nature this ended up failing in VQE if one or more of the auxilary operators was zero. The set that ended up getting passed in would tapered non-zero operators and any zero operators were the originals which now were bigger, in terms of num_qubits, that the tapered operators. Given the number of qubits mismatched VQE raised an error.
This alters the code to so that a zero operator of the correct tapered size is returned from taper and not the original as before.