Skip to content

polyquantique/CatTelecorrection

Repository files navigation

a

CatTelecorrection

A set of functions for calculating the probabilities of photon number measurements $(n,m)$ on an optical teleportation circuit and the associated transformations for an input $L^{th}$-order $R_Z$ cat state subject to arbitrary loss.

The software behind "Generalised All-Optical Cat Telecorrection"; see manuscript_data.py and manuscript_figures.ipynb to recreate the figures of said manuscript.

Schematic of cat simulation

The primary functions responsible for simulating the transmission of a cat state are channel_tensor_f1(), channel_tensor_f1f2(), and apply_channel(). They have been written to optimise for repeated telecorrection of a single original state, such that parts of the epxression for the transformation of a state can be re-used when only changing parameters $\alpha \in \mathbb{R_{>\text{0}}}$ (alpha) and $\Gamma \in [0,1]$ (Gamma) or updating the input logical state $\rho_{\text{in}}$ (input_state).

Given some initial state,

$$ \rho_{\text{in}} = \sum^{{0,1}}_{J,J'} q_{J J'} \vert J \rangle \langle J' \vert, $$

in the logical $R_Z$ cat basis of order $L$, where the indices $J$ and $J'$ indicate logical codewords, when it is subject to loss and then teleported with a pair of PNRDs $(n,m)$, the final state, $\rho_{\text{out}}$, is given by

$$ \rho_{\text{out}}(n,m) = \sum^{{0,1}}_{J,J',K,K'} \sum^{2L+1}_{j,k,j',k'=0} f_1(L,n,m,J,K,J',K',j,k,j,k') \cdot f_2(L,n,m,\alpha,\Gamma,x,J,K,J',K',j,j) \cdot f_3(\rho_{\text{in}},J,K,J',K'), $$

with

$$ f_1(L,n,m,J,K,J',K',j,k,j,k') = (-1)^{jJ + j'J' + kK + k'K'} \Bigl[ e^{i j \pi /(L+1)} + e^{i k \pi /(L+1)} \Bigr]^n \Bigl[ e^{i k \pi /(L+1)} - e^{i j \pi /(L+1)} \Bigr]^m \Bigl[ e^{-i j' \pi /(L+1)} + e^{-i k' \pi /(L+1)} \Bigr]^n \Bigl[ e^{-i k' \pi /(L+1)} - e^{-i j' \pi /(L+1)} \Bigr]^m, $$

$$ f_2(L,n,m,\alpha,\Gamma,x,J,K,J',K',j,j) = \frac{x_K x^{*}_{K'}}{\sqrt{\mathcal{N}_J \underline{\mathcal{N}}_K \mathcal{N}_{J'} \underline{\mathcal{N}}_{K'}}} \frac{e^{ (\Gamma - 2) \alpha^2}}{n!m!} \left[ \frac{(1-\Gamma)}{2} \alpha ^2 \right]^{n+m} {\exp}{\left[ \Gamma \alpha^2 e^{i (j-j') \pi /(L+1)} \right]}, $$

$$ f_3(\rho_{\text{in}},J,K,J',K') = q_{JJ'} \vert K \rangle \langle K' \vert, $$

and where $x$ is a parameter of the biased ancilla, the indices $J$, $K$, $J'$, and $K'$ indicate logical codewords, and the indices $j$, $k$, $j'$, and $k'$ are the index of rotation on a set of coherent states. The function $f_1(\cdot)$ is calculated via channel_tensor_f1(), $f_2(\cdot)$ by channel_tensor_f1f2(), and $f_3(\cdot)$ along with all of the sums by apply_channel(). The pipeline of this code, which will produce by the end a logical state in $\vert K \rangle \langle K' \vert$ for some set of $(n,m)$ up to the maximum per-mode photon count, $n_{\text{max}}$ and $m_{\text{max}}$ (count_to), can be represented as follows:

diagram.

About

Python implementation of code to simulate telecorrection of the Rz-basis cat code

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors