nrenga / symplectic-arxiv18a

MATLAB codes for the 2018 arXiv paper discussing synthesis of logical Clifford operators for stabilizer codes.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

symplectic-arxiv18a

MATLAB codes for the 2018 arXiv paper discussing synthesis of logical Clifford operators for stabilizer codes.

Paper: https://arxiv.org/abs/1803.06987

Shorter Paper: https://arxiv.org/abs/1907.00310

Code: https://github.com/nrenga/symplectic-arxiv18a

Copyright (C) 2019 Narayanan Rengaswamy

This project is licensed under the terms of the GNU Affero General Public License (AGPL) v3.0. See LICENSE.md for details.

Scripts:

logical_cliff_ops_642.m: Execute this script to reproduce results published in Appendix II of the longer arXiv paper.

logical_cliff_ops.m: Generic script that can be easily modified to get logical Clifford operators for any stabilizer code. This script also gives a circuit for each obtained symplectic solution. It contains three examples: the [[6,4,2]] CSS code, the [[5,1,3]] perfect code and the [[15,7,3]] Hamming CSS code.

Functions:

find_symp_mat.m: Algorithm 1 in the paper.

find_all_symp_mat.m: Algorithm 2 in the paper.

qfind_all_symp_mat.m: Algorithm 2 in the paper specialized for the application of finding logical Clifford operators for stabilizer codes.

find_logical_cliff.m: Algorithm 3 in the paper.

find_symplectic.m: A function to calculate the symplectic matrix corresponding to a Clifford circuit.

symp_mat_decompose.m: Uses Trung Can's algorithm to decompose a symplectic matrix into a product of elementary ones.

find_circuit.m: Uses symp_mat_decompose.m to find the decomposition and then calculates the Clifford circuit for each elementary transformation.

find_unitary.m: A function to calculate the unitary operator corresponding to a given Clifford circuit.

calc_conjugate.m: A function to calculate the action of a Clifford circuit on an input Pauli operator under conjugation.

symp_inn_pdt.m: A one-line function to compute symplectic inner product between the corresponding rows of two matrices.

gf2rref.m: A function to reduce a binary matrix to its reduced row echelon form over GF(2). Developed by "esromneb" as "g2rref.m" and modified by Narayanan Rengaswamy (available on GitHub Gist).

gf2matinv.m: Uses the g2rref.m function to calculate the inverse of a binary matrix over GF(2).

gflineq.m: MATLAB in-built function (from Communications System Toolbox) to solve a system of linear equations by Gaussian elimination.

gflineq_all.m: A function to solve a system of linear equations by Gaussian elimination and determine all the solutions.

gf2lu.m: A function to perform LU decomposition on a binary matrix. Uses the algorithm given by Trefethen and Bau in the book "Numerical Linear Algebra".

Data:

logical_cliff_ops_642.mat: File containing all solutions listed in Appendix II of the longer arXiv paper. Also includes a circuit for each solution.

logical_cliff_ops_513.mat: File containing all solutions for the [[5,1,3]] code. Also includes a circuit for each solution.

License

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.

About

MATLAB codes for the 2018 arXiv paper discussing synthesis of logical Clifford operators for stabilizer codes.

License:GNU Affero General Public License v3.0


Languages

Language:MATLAB 100.0%