Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added decoding pipeline file #11

Closed
wants to merge 1 commit into from

Conversation

Benzillaist
Copy link

The evaluate_decoder method should be the only public facing method as the rest should only need to be called by evaluate_classical_decoder.

  • Created 2 versions of evaluate_classical_decoder. One of them should work, and it takes in a decoder object. The type of the object detemines which decoder is called later on in the function. The decoding is done with a Pauli frame simulation based upon code written by Anthony for evaluating the belief propagation decoder.

  • Tried to test my methods, but I've been having a problem with running standard Stabilizer type methods on Stabilizer objects that I created from a Hx and Hz matrix. Pointers on how to fix this would be appreciated!

  • Included a CSS class below which includes some methods I use in the decoder, specifically the parity_checks method. In the future this will be added to QuantumClifford.

The evaluate_decoder method should be the only public facing method as the rest should only need to be called by evaluate_classical_decoder.

I have created 2 versions of evaluate_classical_decoder. One of them should work, and it takes in a decoder object. The type of the object detemines which decoder is called later on in the function. The decoding is done with a Pauli frame simulation based upon code written by Anthony for evaluating the belief propagation decoder.

I have tried to test my methods, but I've been having a problem with running standard Stabilizer type methods on Stabilizer objects that I created from a Hx and Hz matrix. Pointers on how to fix this would be appreciated!

I have included a CSS class below which includes some methods I use in the decoder.
Copy link
Member

@Krastanov Krastanov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • it is difficult to decide how to take care of interdependencies between LDPCDecoders and QuantumClifford. For the moment let's use the following structure:
    • QuantumClifford will start depending on LDPCDecoders
    • LDPCDecoders thus can not contain anything imported from QuantumClifford
    • LDPCDecoders should contain the API for classical decoders. Currently, that does not really exist, only an API for quantum decoders is implemented in this PR.
    • Let's move the quantum decoders API to QuantumClifford
    • No need to worry about creating a classical decoder API yet, it probably is not a good use of your limited time
    • If one day there is a classical decoder API in this package, the quantum decoder API in QuantumClifford should depend on the classical one, not the other way around

src/LDPCDecoders.jl Show resolved Hide resolved
src/decoder_pipeline.jl Show resolved Hide resolved
src/decoder_pipeline.jl Show resolved Hide resolved
src/decoder_pipeline.jl Show resolved Hide resolved
src/decoder_pipeline.jl Show resolved Hide resolved
@Benzillaist
Copy link
Author

Addressed the above comments and moved the code to QuantumClifford.jl
New pull request

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants