-
Notifications
You must be signed in to change notification settings - Fork 127
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
Coherence limit error of gates with three or more qubits #779
base: main
Are you sure you want to change the base?
Conversation
Is there a better place to put the new function? Should it be a top-level function rather than a static method under |
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.
Quick review!
@@ -199,6 +206,83 @@ def coherence_limit(nQ=2, T1_list=None, T2_list=None, gatelen=0.1): | |||
|
|||
return coherence_limit_err | |||
|
|||
@staticmethod | |||
def coherence_limit_error( |
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.
We are going to deprecate RBUtils
class since this just behaves as a scope. I think this method should be placed in somewhere else. Although I think this is not limited to RB, it would be great if this value can be automatically computed for RB based on given backend property or instmap, and populate the metadata of EPG entries.
Currently we don't have any utils or tool collection in experiments. Perhaps it's good time to introduce something like qiskit_experiments.utils
? @chriseclectic
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 don't think stand alone functions like this should be added to qiskit experiments at all unless they are used directly in an experiment or its analysis, and for those cases they should typically be an internal method of those classes (this also applies to all the RBUtils functions that weren't actually being used as part of RB experiment/analysis)
If this is intended to be used as part of RB experiment to construct an analysis result, it should be integrated into RB. Otherwise I don't think really think it belongs in this repo and we need to think of a better home for these sort of utility functions.
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.
We often compute this value to investigate the error budget. It might be good to compute the error limit with this function as a metadata of EPG entries (as IRB compute theoretical error bounds). But this function can be used more widely to discuss lower error bound. In that sense perhaps this can be move to terra?
raise ValueError("Length of t1s/t2s must equal num_qubits") | ||
|
||
def amplitude_damping_choi(t1, t2, time): | ||
return qi.Choi( |
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.
Is it necessary a local function?
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.
No necessary. It's just for readability.
releasenotes/notes/upgrade-coherence-limit-9a1fccac402b4f5c.yaml
Outdated
Show resolved
Hide resolved
Co-authored-by: Naoki Kanazawa <[email protected]>
51beaf8
to
73488cd
Compare
Does this PR also handle issue #133 ? |
Summary
Extend coherence limit error computation to handle gates with three or more qubits.
Details and comments
Deprecate the original function
RBUtils.coherence_limit
and reimplement it from scratch as a new functionRBUtils.coherence_limit_error
.