Fix mismatches between input state and simulation engine precision. #1680
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.
It may be the case that the state vector data is in a precision that does not match that of the simulator. The runtime library knows precisely what simulator has been selected and can therefore convert the state vector to the expected format at runtime. This conversion may be expensive if the state vector is quite long. As a result, the runtime may want to emit a warning when a conversion path is taken.
The following conversions happen at runtime with this change:
If the input is
vector<complex<float>>
orvector<complex<double>>
and the simulator's precision is a precise match, no conversions or runtime overhead is incurred.Fix #1670
Description