This repository contains MATLAB code used to compute the coherent information of certain permutation-invariant quantum codes using representation theory as described in the paper
Sujeet Bhalerao, Felix Leditzky: "Improving quantum communication rates with permutation-invariant codes", arXiv:2508.09978.
- Parallel Computing Toolbox
- MATLAB's particleswarm function, available in the "Global Optimization Toolbox"
fastexpmfunction for computing matrix exponentials of sparse matrices (available at MATLAB File Exchange here)
-
Run the optimization script
pauli_opt.mwith the desired parameters. This is currently set up to optimize over permutation-invariant codes for the$2$ -Pauli channel with$9$ copies at a noise level of$0.2271$ , which is slightly beyond the hashing bound for this channel. -
The results will be saved in the
optimization_resultsdirectory.
Run the script single_code_ci.m with the desired parameters and input density matrices. The current parameters are set for
-
Using purifications: For qubit channels, this can compute the coherent information for a single code for up to
$100$ channel qubits. For channels with qutrit output (e.g. the dephrasure channel), this can compute the coherent information for a single code for up to$30$ channel qubits. -
Using complementary channels: For channels with a
$3$ -dimensional environment (e.g. the$2$ -Pauli channel), this can compute the coherent information for a single code for upto$40$ channel qubits. For channels with a$4$ -dimensional environment (e.g. the BB84 channel), this can compute the coherent information for a single code for upto$15$ channel qubits.
-
pauli_opt.m: Main optimization script that sets up the problem and calls the particle swarm optimization function. -
compute_ci_symmetries_opt.m: Objective function for the particle swarm optimization, which computes the coherent information for a given set of input states and probabilities using the complementary channel. -
compute_entropy_d2.m,compute_entropy_d3.m,compute_entropy_d4.m: Functions to compute the entropy of states in dimensions$2$ ,$3$ , and$4$ respectively (e.g. as outputs of qubit channels with environments of dimensions$3$ and$4$ ) using representation theory.
-
eval_codes.m: Script to verify the coherent information for the specific codes listed in Table 4 of the paper. Each case in the script sets the required channel parameters and code states, then calls the appropriate computation function. This script can be used as a template to evaluate other codes by modifying the parameters within a 'case' block. -
compute_ci_symmetries.m: Function to compute coherent information for a given set of input states and probabilities using our representation-theoretic approach - makes use of the complementary channel. -
compute_ci_purification.m: Function to compute coherent information using purifications for a given set of pure input states and probabilities using our representation-theoretic approach. -
compute_ci_purification_qutrit.m: Similar to the function above but for channels with qutrit output.
-
compute_symm_rep_formula.m: computes matrix elements for the GL(2) irrep on the symmetric subspace (see Appendix B in the paper). -
compute_S_RA_GL2.m,compute_S_RA_log.m,compute_S_RA_purification_qutrit.m: Functions to compute entropy at the environment for the coherent information.compute_S_RA_GL2uses explicit GL(2) irreps,compute_S_RA_loguses a log/exp approach, andcompute_S_RA_purification_qutritis for qutrit channels. -
get_states_bloch.mandget_states_measure.m: two parametrization schemes for qubit input states, one using Bloch vectors and the other using measurement outcomes. See Appendix D of the paper for details. -
comp_kraus.m: Function to compute the Kraus operators of the complementary channel for a given set of operators and output dimensions. -
q_logm.m: Function to compute logarithm of the positive part of a matrix. -
The folders
E_matricesandE_matrices_sparsecontain precomputed matrices for the representation of the Lie algebra$\mathfrak{gl}_d(\mathbb{C})$ as described in the paper. -
The folders
dimWlambdaandgt_patternscontain scripts for computing the dimensions of Specht modules and generating Gelfand-Tsetlin patterns for a given partition, respectively.
To install SageMath, follow the instructions at SageMath Installation.
dimWlambda/spechtmodule_dim.py: Script to compute the dimension of the Specht module for a given partition.gt_patterns/gen_gt_patterns.py: Script to generate Gelfand-Tsetlin patterns for a given partition and number of rows.