diff --git a/README.md b/README.md index 55ad358..382f56f 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,33 @@ # LDPC version 2 (Beta version) -A C++ rewrite of the `LDPC` package for decoding low density parity check checks. Warning, this version is still in development, so breaking changes may occur. +A C++ rewrite of the `LDPC` package for decoding low density parity check checks. +Warning, whilst efforts have been made to provide backwards compatability with LDPCv1, the new version may introduce breaking changes. + +## Documentation + +The documentation for `LDPCv2` can be found [here](https://roffe.eu/software/ldpc) + +## Installation + +The easiest way to install the package is via pip. + +```pip install ldpc``` + +## Python - Installation from source + +The C++ source code can be found in src_cpp. Python bindings are implemented using Cython and can be found in src/ldpc. To install the Python version of the repository follows the instructions below: + +- Download the repo. +- Navigate to the root. +- Pip install with `python>=3.8`. +Note: installation requires a `C` compiler. Eg. `gcc` on Linux or `clang` on Windows. + +``` +git clone git@github.com:quantumgizmos/ldpc_v2.git +cd ldpc +pip install -Ue . +``` + ## New features @@ -13,38 +40,17 @@ A C++ rewrite of the `LDPC` package for decoding low density parity check checks - Flip and P-flip decoders as introduced by Thomas Scruby in https://arxiv.org/abs/2212.06985. - Improved GF2 linear algebra routines (useful for computing code parameters) -## Documentation - -The documentation for `LDPCv2` can be found [here](https://roffe.eu/software/ldpc2) - ## ToDos -`LDPCv2` is still a work in progress. ToDos below: -- I'm struggling to get the package to compile properly via GitHub actions for M1 Macs. Any help would be appreciated! +`LDPCv2` is still a work in progress. Ongoing projects are listed below: - Implement parallel version of BP+LSD algorithm using OpenMP. - Improve support for parallel processing across the package. - More decoders could be implemented (eg. small set-flip, https://arxiv.org/abs/1810.03681) - Stabiliser inactivation BP (https://arxiv.org/abs/2205.06125) - Generalised BP (https://arxiv.org/abs/2212.03214) - Functions need to be properly documented (in progress) -- STIM integration +- Further STIM integration - More functionality for studying classical codes. Eg. support for received vector decoding and the AWGN noise channel. -- Proper test coverage is required (C++ has 100%, Python tests still need to expanded). - -## Python - Installation from source - -The C++ source code can be found in src_cpp. Python bindings are implemented using Cython and can be found in src/ldpc. To install the Python version of the repository follows the instructions below: - -- Download the repo. -- Navigate to the root. -- Pip install with `python>=3.8`. -Note: installation requires a `C` compiler. Eg. `gcc` on Linux or `clang` on Windows. - -``` -git clone git@github.com:quantumgizmos/ldpc_v2.git -cd ldpc -pip install -Ue . -``` ## BP+LSD Quickstart diff --git a/docs/source/installation.md b/docs/source/installation.md index 5a0734d..8b225c5 100644 --- a/docs/source/installation.md +++ b/docs/source/installation.md @@ -1,5 +1,11 @@ # Setup +## Installation from Pip + +The package can be installed via pip: + +```pip install ldpc``` + ## Python - Installation from source The C++ source code can be found in src_cpp. Python bindings are implemented using Cython and can be found in src/ldpc. To install the Python version of the repository follows the instructions below: