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
Observable Measurement - 3.5 - Readout Correction #3649
Observable Measurement - 3.5 - Readout Correction #3649
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this looks OK. Added some nits. Also I think we could merge this but not refer to the non-existent methods yet in the docstrings...
…timation-x-readout-corr
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM with a nit for reference
f = a / b | ||
|
||
# assume cov(a,b) = 0, otherwise there would be another term. | ||
var = f ** 2 * (var_a / (a ** 2) + var_b / (b ** 2)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can you add a reference or derivation for this formula?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
added
This is part 3.5 or 4.5 of #2781
It comes either before or after #3647
This extends the vanilla
BitstringAccumulator
to handle readout calibrations which can be used to correct observables and mitigate the effect of readout error. However, users should probably never use this functionality directly; instead passing the appropriate configuration options to the functions defined in #3647. It would make git dependencies if this is merged first.More sophisticated readout mitigation schemes would be implemented by subclassing
BitstringAccumulator
. Subclasses would (1) modify the constructor to accept the relevant calibration info, if different than this simple scheme and (2) modify themean()
andvariance()
functions to correct those quantities using the new scheme.