qibotn.backends package#
- class qibotn.backends.MetaBackend#
Bases:
object
Meta-backend class which takes care of loading the qibotn backends.
- list_available() dict #
Lists all the available qibotn backends.
- static load(platform: str, runcard: Optional[dict] = None) Union[CuTensorNet, QuimbBackend] #
Loads the backend.
- Parameters:
platform (str) – Name of the backend to load: either cutensornet or qutensornet.
runcard (dict) – Dictionary containing the simulation settings.
- Returns:
The loaded backend.
- Return type:
qibo.backends.abstract.Backend
Submodules#
qibotn.backends.cutensornet module#
- class qibotn.backends.cutensornet.CuTensorNet(runcard)#
Bases:
NumpyBackend
Creates CuQuantum backend for QiboTN.
- apply_gate(gate, state, nqubits)#
Apply a gate to state vector.
- apply_gate_density_matrix(gate, state, nqubits)#
Apply a gate to density matrix.
- assign_measurements(measurement_map, circuit_result)#
- cuda_type(dtype='complex64')#
Get CUDA Type.
- Parameters:
dtype (str, optional) – Either single (“complex64”) or double (complex128) precision. Defaults to “complex64”.
- Returns:
tuple of cuquantum.cudaDataType and cuquantum.ComputeType
- Return type:
CUDA Type
- execute_circuit(circuit, initial_state=None, nshots=None, return_array=False)#
Executes a quantum circuit using selected TN backend.
- Parameters:
circuit (
qibo.models.circuit.Circuit
) – Circuit to execute.initial_state (
qibo.models.circuit.Circuit
) – Circuit to prepare the initial state. IfNone
the default|00...0>
state is used.
- Returns:
If return_array is False, returns a QuantumState object representing the quantum state. If return_array is True, returns a numpy array representing the quantum state.
- Return type:
QuantumState or numpy.ndarray
- set_precision(precision)#
Set complex number precision.
- Parameters:
precision (str) – ‘single’ or ‘double’.
qibotn.backends.quimb module#
- class qibotn.backends.quimb.QuimbBackend(runcard)#
Bases:
NumpyBackend
- apply_gate(gate, state, nqubits)#
Apply a gate to state vector.
- apply_gate_density_matrix(gate, state, nqubits)#
Apply a gate to density matrix.
- assign_measurements(measurement_map, circuit_result)#
- execute_circuit(circuit, initial_state=None, nshots=None, return_array=False)#
Executes a quantum circuit.
- Parameters:
circuit (
qibo.models.circuit.Circuit
) – Circuit to execute.initial_state (
qibo.models.circuit.Circuit
) – Circuit to prepare the initial state. IfNone
the default|00...0>
state is used.
- Returns:
If return_array is False, returns a QuantumState object representing the quantum state. If return_array is True, returns a numpy array representing the quantum state.
- Return type:
QuantumState or numpy.ndarray
- set_precision(precision)#
Set complex number precision.
- Parameters:
precision (str) – ‘single’ or ‘double’.