QuantumSavory/QuantumClifford.jl

`iscss` function that announces a code type is a CSS code

Closed this issue · 5 comments

It should simply have methods defined for each code type, it should not run checks of the tableaux itself. It should be hooked into parity_checks_x/z for better error messages.

@Krastanov By each code type, do you mean the codes that are in the codes section?

Also, it seems that you want it to be implemented in ECC.jl as there is where parity_checks_x/z are implemented?

If we don't want to include checks of the Stabilizer, then do we need to separate the quantum codes into classical variants and then determine if every code word in suppose C2 is in C1. Because that's the standard definition of whether a code is CSS or not?

By each code type, I mean each subtype of AbstractECC, i.e. the implementation of a given code family in this library.

A CSS code is a code in which the checks (rows of the parity check tableaux) either contain only identity and X or contain only identity and Z. This library generates the code tableaux, so it would know in advance whether the tableau can be split like that or not -- it would be inefficient to just waste that knowledge and then run expensive checks on the generated tableaux. Similarly to how parity_checks_x/z does not run some filtering operations on the tableau, rather it knows what parts of the tableau to cut out and just does that without checking the content of the tableau.

The parity_checks_x/z is not implemented in ECC.jl. A function without any methods is defined there, but the methods for that functions are in the various files that define specific code families. The situation probably will be similar for iscss.

Thanks. For example, There is aparity_check_xzin the Toric case, right?

yes

done in #241