-
Notifications
You must be signed in to change notification settings - Fork 368
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
support single precision in state vector simulator #286
Conversation
57bdf96
to
ed8552c
Compare
ed8552c
to
0a55608
Compare
0a55608
to
dc548e0
Compare
@hhorii @atilag when using single precision do we have to worry about narrowing of data types when applying matrices given in double precision? The lambda loops will be things like |
This is valid narrowing conversion between two floating point types, it's stated in the standard as implicit so there's no need for |
@hhorii I'm ready to merge this PR, but it needs to be rebased from master to get the build to work. The merge update failed due to some changes in recently merged PRs (I think in the UnitaryMatrix class). |
* add new matrix functions to utils * add superop operation * add canonical superop mats to utils *allow kraus and superop qobj instructions to be conditional
…kit#291) * Fixed general conditional checking in op execution * Previously only gate type operations were checked for conditionals during execution. Now all op types are checked for conditional. * add tests for conditional unitary instructions * add test for conditional kraus instruction
* Add validation_threshold to backend options * Add validation threshold to backends and controllers for checking initial unitary states are unitary, and initial statevectors are normalized. * Move loading of OpenMP library to AerBackend base class
* Fixed bug in parallelization. It does not work correctly with vector push_back. Need to use assignment instead.
…t-aer into change_qv_data_type
Summary
This PR adds a new parameter
precision
forqasm simulator
.Details and comments
QubitVector<std::complex<double>*>
is changed toQubiveVector<double | float>
.By using single-precision, simulation becomes faster with reducing precision.