Work around lmfit limiting RBAnalysis to 10,000 Cliffords #1595
+24
−1
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.
lmfit (through its asteval dependnecy) limits exponentiation in its expression models to 10,000. The limit is there to avoid denial of service attacks where user input could be substituted into a model and Python integers which are unbounded and could take up exponential amounts of memory. In qiskit-experiments, this case is not a concern. The workaround implemented here is to divide the exponential in the curve by 10 and then exponentiate the result by 10. This change allows up to 100,000 Cliffords which should be enough. The alternative workaround is to change
asteval.astutils.MAX_EXPONENT
to a sufficiently large value.Closes #1594