Dual-rail encoding module

Dual-rail encoding utilities for bosonic qubits.

This module provides functions to encode qubit circuits defined in Qiskit into dual-rail bosonic qubit Piquasso programs.

For the dual-rail encoding, the following convention is used:

\[\begin{split}|0\rangle_{\text{qubit}} = \ket{1, 0}_{\text{qumodes}} \\ |1\rangle_{\text{qubit}} = \ket{0, 1}_{\text{qumodes}}\end{split}\]
dual_rail_encode_from_qiskit(quantum_circuit: QuantumCircuit) Program

Encodes a Qiskit QuantumCircuit into a dual-rail bosonic qubit Piquasso program.

Parameters:

quantum_circuit – The Qiskit QuantumCircuit to be encoded.

Returns:

A Piquasso Program representing the dual-rail encoded bosonic qubit circuit.

get_bosonic_qubit_samples(raw_samples_for_modes: List[tuple]) List[tuple]

Post-processes the raw samples from dual-rail encoded bosonic qubits.

Parameters:

raw_samples_for_modes – The raw samples obtained from the simulator.

Returns:

The post-processed samples for the bosonic qubits.

Return type:

list[tuple]