StateVectorSimulator
QuICT.simulation.state_vector.StateVectorSimulator ¶
StateVectorSimulator(device: str = 'CPU', precision: str = 'double', gpu_device_id: int = 0, sync: bool = True, hidden_empty_qubits: bool = False, ignore_last_measure: bool = True)
The simulator for qubits' vector state.
Parameters:
-
device(str, default:'CPU') –The device type, one of [CPU, GPU]. Defaults to "CPU".
-
precision(str, default:'double') –The precision for the state vector, one of [single, double]. Defaults to "double".
-
gpu_device_id(int, default:0) –The GPU device ID. Defaults to 0.
-
sync(bool, default:True) –Sync mode or Async mode. Defaults to True.
-
hidden_empty_qubits(bool, default:False) –Whether ignore the empty qubits or not, default to False.
Source code in QuICT/simulation/state_vector/statevector_simulator.py
apply_specialgate ¶
Apply Measure/Reset gate in to simulator
Parameters:
-
index(int) –The given qubit index
-
type(GateType) –the gate type of special gate
-
prob(float, default:None) –The given probability of measured the target qubit into 1
Returns:
-
–
[float]: The target qubit's measured value or reset value, <0 or <1
Source code in QuICT/simulation/state_vector/statevector_simulator.py
apply_zeros ¶
get_expectations ¶
Run the simulator to get expectations.
Parameters:
-
circuit(Circuit) –The quantum circuits.
-
hamiltonians(Hamiltonian) –The hamiltonians for calculating expectations.
-
quantum_state(ndarray, default:None) –The initial quantum state vector. Defaults to None.
Returns:
-
–
Union[float, np.ndarray]: The expectations.
-
–
Union[cp.array, np.array]: The state vector.
Source code in QuICT/simulation/state_vector/statevector_simulator.py
get_measured_prob ¶
Return the probability of measured qubit with given index to be 1
Parameters:
-
index(int) –The given qubit index
-
all_measured(bool, default:False) –Calculate measured probability with all state vector, only using with Multi-Node Simulation.
Source code in QuICT/simulation/state_vector/statevector_simulator.py
initial_circuit ¶
Initial the qubits, quantum gates and state vector by given quantum circuit.
Source code in QuICT/simulation/state_vector/statevector_simulator.py
initial_state_vector ¶
Initial qubits' vector states.
Source code in QuICT/simulation/state_vector/statevector_simulator.py
run ¶
run(circuit: Circuit, quantum_state: ndarray = None, quantum_machine_model: Union[NoiseModel, VirtualQuantumMachine] = None, use_previous: bool = False) -> np.ndarray
start simulator with given circuit
Parameters:
-
circuit(Circuit) –The quantum circuits.
-
quantum_state(ndarray, default:None) –The initial quantum state vector.
-
quantum_machine_model(Union[NoiseModel, VirtualQuantumMachine], default:None) –The model of quantum machine
-
use_previous(bool, default:False) –Using the previous state vector. Defaults to False.
Returns:
-
ndarray–Union[cp.array, np.array]: The state vector.
Source code in QuICT/simulation/state_vector/statevector_simulator.py
sample ¶
sample(shots: int = 1, target_qubits: list = None, extra_output: bool = False, seed: int = -1) -> dict
Sample the measured result from current state vector, please first run simulator.run().
Parameters:
-
shots(int, default:1) –The sample times for current state vector.
-
target_qubits(list, default:None) –The List of target sample qubits.
-
extra_output(bool, default:False) –Output with extra info: measured qubits (list), and samples (list)
Returns:
-
dict–List[int]: The measured result list with length equal to 2 ** self._qubits