Code to accompany: Deterministic transformations between unitary operations: Exponential advantage with adaptive quantum circuits and the power of indefinite causality
This is a repository for the code used to calculate the numerical results presented in the article Deterministic transformations between unitary operations: Exponential advantage with adaptive quantum circuits and the power of indefinite causality.
MATLAB code requires:
- cvx - a free MATLAB toolbox for rapid prototyping of optimization problems.
- QETLAB - a free MATLAB toolbox for quantum entanglement theory.
MATHEMATICA code requires:
- QI - a free quantum information Mathematica package.
The MATLAB code of this repository is:
-
run_max_F.m: Script used to evaluate the maximal average fidelity for transforming k copies of a d-dimensional unitary transformations (transposition, complex conjugation and inversion) based on the SDP primal.
-
run_max_F_dual.m: Script used to evaluate the maximal average fidelity for transforming k copies of a d-dimensional unitary transformations (transposition, complex conjugation and inversion) based on the SDP dual.
-
store_matlab_variables.m: Script used to evaluate the maximal average fidelity for transforming k copies of a d-dimensional unitary transformations (transposition, complex conjugation and inversion) for all cases considered in the paper. This script also creates and stores all variables required for the computer assisted proof.
-
optimal_fU.m: Function that evaluates the maximal average fidelity for transforming k copies of a d-dimensional unitary transformations (transposition, complex conjugation and inversion) based on the SDP dual.
-
make_OMEGA_permutation.m: Function uses to construct the performance operator Omega for transforming k copies of a d-dimensional unitary transformations (transposition, complex conjugation and inversion). This function constructs Omega based on the permutation operators.
-
make_OMEGA_group.m: Function uses to construct the performance operator Omega for transforming k copies of a d-dimensional unitary transformations (transposition, complex conjugation and inversion). This function constructs Omega based on the explicit basis obtain via group theory methods.
-
basis_UUU.m: Function that construct a basis for the commutant of U⊗U⊗U based on group theory methods.
-
basis_UstarUstarU.m: Function that construct a basis for the commutant of U⊗U⊗U* based on group theory methods.
-
basis_Uk_overcomplete_method.m: Function that construct a basis for the commutant of k copies of a d-dimension unitary U based on permutation operators.
-
basis_Ukstar_overcomplete_method.m: Function that construct a basis for the commutant of k copies of a d-dimension unitary U where some are conjugated based on permutation operators.
-
is_general_superchannel.m: Function that imposes the SDP constraint of a k-slot general superchannel.
-
GramSchmidtOrtonomalisation.m: Function that performs the Gram-Schmidt orthonormalisation algorithm on a set of vectors.
-
TR.m: Function that implements the trace-and-replace map on matrices.
The MATHEMATICA code of this repository is:
-
LoadFunctions.nb: Notebook used to load important functions.
-
ComputerAssitedProof.nb: Notebook used to certify the qubit values for unitary transposition in the table of the paper.
-
ComputerAssitedProofd3.nb: Notebook used to certify the qutrit values for unitary transposition, presented in the table of the paper.
-
ComputerAssitedProofd3INV.nb: Notebook used to certify the qutrit values for unitary inversion presented in the table of the paper.
This repository also includes the folder MatlabVariables, which contain important variables used in the computer assisted proof written in mathematica notebooks. Note that the MATLAB script creates this folder and all the variables included on it, hence if you run the MATLAB code before the computer assisted mathematica notebook, this folder is not required.