Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixed bug in sample_measure_using_probabilities #1132

Merged
merged 9 commits into from
Mar 3, 2021

Conversation

merav-aharoni
Copy link
Contributor

@merav-aharoni merav-aharoni commented Feb 14, 2021

Summary

Fixed bug reported in issue #1126

Details and comments

When measuring on a subset of the qubits, when converting the sampled measurement to register form, the result was widened to all qubits in the call to int2reg. The gives incorrect results in the final register. Instead, we should only widen to the number of measured qubits.

Closes #1126 #1165

Copy link
Contributor

@vvilpas vvilpas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good! Can we add a small test reproducing the fixed problem? That way we'll be sure it doesn't happen again.

@chriseclectic chriseclectic added Changelog: Bugfix Include in the Fixed section of the changelog stable-backport-potential The issue or PR might be minimal and/or import enough to backport to stable labels Feb 16, 2021
vvilpas added a commit to vvilpas/qiskit-aer that referenced this pull request Mar 1, 2021
Fixes a bug in CopyIn/CopyOut operations where out of bounds array elemets
were accessed.
Qubitvector thrust has a number of qubits num_qubits. When move_to_vector or
copy_to_vector functions are called a temporary array or vector of size
(1 << num_qubits) is created and passed to chunk_ CopyOut function. There, a number
of elements (1 << chunk_qubits_) of the underlying structure are copied to
this array/vector. The problem is that chunk_qubits can be larger that num_qubits,
accessing values in the array or vector out of bounds. This is what was making
PR Qiskit#1132 failing in CI.
chriseclectic pushed a commit that referenced this pull request Mar 2, 2021
Fixes a bug in CopyIn/CopyOut operations where out of bounds array elemets
were accessed.
Qubitvector thrust has a number of qubits num_qubits. When move_to_vector or
copy_to_vector functions are called a temporary array or vector of size
(1 << num_qubits) is created and passed to chunk_ CopyOut function. There, a number
of elements (1 << chunk_qubits_) of the underlying structure are copied to
this array/vector. The problem is that chunk_qubits can be larger that num_qubits,
accessing values in the array or vector out of bounds. This is what was making
PR #1132 failing in CI.
@vvilpas vvilpas merged commit 7267429 into Qiskit:master Mar 3, 2021
mtreinish pushed a commit to mtreinish/qiskit-aer that referenced this pull request Mar 3, 2021
Co-authored-by: Victor Villar <vvilpas@gmail.com>
Co-authored-by: Christopher J. Wood <cjwood@us.ibm.com>
(cherry picked from commit 7267429)
@merav-aharoni merav-aharoni deleted the issue1126 branch August 8, 2021 09:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Changelog: Bugfix Include in the Fixed section of the changelog stable-backport-potential The issue or PR might be minimal and/or import enough to backport to stable
Projects
None yet
Development

Successfully merging this pull request may close these issues.

MPS simulator gives incorrect results
3 participants