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
Simplify the structure of CircuitSimulator
#225
base: master
Are you sure you want to change the base?
Commits on Dec 10, 2023
-
Avoid expanding all propagators
Only expand the propagators when it is applied to the states.
Configuration menu - View commit details
-
Copy full SHA for 1b88cee - Browse repository at this point
Copy the full SHA 1b88ceeView commit details -
Remove U_list from the properties of CircuitSimulator
- Remove it from the input parameters, it makes little sense to provide them to the circuit and then do the simulation. If the unitaries are known. it can be trivally multiplied. - Remove U_list from the properties of CircuitSimulator. It is generated during the process and the dimensions of the unitaries are not determined. It should not be exposed to the the user.
Configuration menu - View commit details
-
Copy full SHA for a0d89ee - Browse repository at this point
Copy the full SHA a0d89eeView commit details -
Not generate the unitary during construction
- The method `_process_ops` was executed during the construction, which could be expensive. This is moved to the first execution of the circuit. - Remove some global members from the class to increase the clearity.
Configuration menu - View commit details
-
Copy full SHA for 35ab87f - Browse repository at this point
Copy the full SHA 35ab87fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 5e6bcd3 - Browse repository at this point
Copy the full SHA 5e6bcd3View commit details -
Configuration menu - View commit details
-
Copy full SHA for 6180d89 - Browse repository at this point
Copy the full SHA 6180d89View commit details -
Configuration menu - View commit details
-
Copy full SHA for 50f1e43 - Browse repository at this point
Copy the full SHA 50f1e43View commit details -
The parameters that will be updated during the circuit simulation are changed to private.
Configuration menu - View commit details
-
Copy full SHA for 7a638b3 - Browse repository at this point
Copy the full SHA 7a638b3View commit details -
Move all the calculation related to unitary-state multiplication to _evolve_state.
Configuration menu - View commit details
-
Copy full SHA for 2bc0c8d - Browse repository at this point
Copy the full SHA 2bc0c8dView commit details -
Configuration menu - View commit details
-
Copy full SHA for f9ab129 - Browse repository at this point
Copy the full SHA f9ab129View commit details -
Configuration menu - View commit details
-
Copy full SHA for e50feed - Browse repository at this point
Copy the full SHA e50feedView commit details -
Use the simulator to compute unitary
Provide qeye as the input states.
Configuration menu - View commit details
-
Copy full SHA for d9a2341 - Browse repository at this point
Copy the full SHA d9a2341View commit details
Commits on Dec 16, 2023
-
Configuration menu - View commit details
-
Copy full SHA for e554aa6 - Browse repository at this point
Copy the full SHA e554aa6View commit details -
Remove the support of precompute_unitary
This option computes the full unitary of all the gates, and caches it. It is beneficial if the circuit has a small number of qubits but a very large depth. This is a rare use case. At the same time, this feature makes the migration to the new efficient circuit evaluation very hard. If the unitary for the circuit is desired, one can just call QubitCircuit.compute_unitary to get the circuit and then apply it to different states.
Configuration menu - View commit details
-
Copy full SHA for e419b91 - Browse repository at this point
Copy the full SHA e419b91View commit details
Commits on Dec 18, 2023
-
Use np.einsum for gate-state multiplication
Use np.einsum to apply the gate matrix directly on the state vector, instead of expanding it first to the full dimension. - The private member self._state will remain a numpy array during the sequential application of gates. - If a measurement occurs, the state has to be transformed to a Qobj. - Returning the state after each step is removed as it inevitably creates Qobj and creates a copy in v4.
Configuration menu - View commit details
-
Copy full SHA for 9e48064 - Browse repository at this point
Copy the full SHA 9e48064View commit details
Commits on Feb 22, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 55705f1 - Browse repository at this point
Copy the full SHA 55705f1View commit details
Commits on Apr 3, 2024
-
Merge branch 'master' of https://github.com/qutip/qutip-qip into simu…
…lator_refactor.py
Configuration menu - View commit details
-
Copy full SHA for d1bd5bb - Browse repository at this point
Copy the full SHA d1bd5bbView commit details -
Configuration menu - View commit details
-
Copy full SHA for 474884d - Browse repository at this point
Copy the full SHA 474884dView commit details