Closed ghost closed 1 year ago
Are you thinking of having a general classical code class? Let's start with what definition you want to use for a classical code as the base class and then have subclasses for the specific types - binary/GF(2) codes, GF(q) codes, ... As with the Pauli operators classes I would not try to develop a general non base class for all classical codes - gets to complex and slow. Separating GF(2) codes from GF(q) codes is okay since the methods and properties can be quite different. I would also have separate classes for the internal representations - i.e. numpy arrays for check matrices and the a sparse version.
So propose you definition of for a base classical code class and some of the essential subclasses? Let's start with the mathematical definitions before we move on creating the classes.
I think you make a good point that a lot more mathematical formality is needed before we can dive in to add a classical code. Maybe this isn't a priority for qiskit-qec right now. I can turn #293 into a draft.
Closing to focus on QEC only
Given that a lot of quantum error correcting research starts by developing and experimenting with a classical code, using it as a foundational to build up a quantum sister, having a simple classical code representation would be handy to researchers using qiskit-qec.