Skip to content

FlamingPy Release 0.8.2a5

Pre-release
Pre-release
Compare
Choose a tag to compare
@nariman87 nariman87 released this 31 May 12:01
· 47 commits to special-release since this release
4762f05

New features since the last release

  • Node and edge coloring can now be done based on any attribute and personalized colors can be defined via a dictionary: #32 (backward incompatible)
  • The EGraph plot legend is not limited to the "state" attribute of the node but to any attribute. #32 (backward incompatible)
  • The dims attribute of EGraph has been removed. Its function is replaced by the dimensions parameter that is passed to the draw_EGraph method. This method does not require the EGraph to have a dims attribute defined anymore. #42 (backward incompatible)
  • Our frontend simulator script, simulations.py, now supports simple and highly-scalable MPI jobs through mpi4py libraries in a non-intrusive manner. The users who do not have or want MPI, can run simulations.py single-threaded as per usual without facing any errors. MPI users can speed up Monte Carlo samplings in EC steps virtually up to as many processors they can throw at it. The script support jobs both on local machines and large-scale clusters. #47 (backward compatible)
    • MPI users on their local machines can simply run the following for a 4-processor job:
      mpirun -np 4 python flamingpy/simulations.py

Bug fixes

  • Fixed the class inheretance diagram displayed in fp.codes. #41

Improvements

  • The draw_EGraph function is refactored. #32
    • This reduces the function complexity; ensures nodes, edges, and general plot attributes are handled in different places; and allows for better code maintenance and readability.
    • display_axes is changed to show_axes for consistency.
  • xlim in viz.plot_Z_err_cond is adjusted to the relevant domain when plotting the central peak. #33
  • Added fig, ax returns for the draw methods in utils/viz.py. #33
  • Both upper and lower axes limits can now be specified for EGraph plots. #42
  • Improvements to the decoding example. #44
    • Rename function and add dosctring.
    • Decrease the size of markers for plotting stabilizer nodes.
    • Improve the way to scatter stabilizers via specifying indices.
  • Improved codefactor score for several key files. #51
  • Pandas is removed from the package requirements. #63
  • mpi4py is not a development requirement for Linux users. #64
  • CI test check that code executes properly with and without MPI. #64

Documentation changes

  • A pipeline for adding tutorials to the docs was introduced. #24
    • To add a tutorial, use the gallery-item directive from the xanadu-sphinx-theme. For the new document to be compiled its filename should start with run_. Thumbnails will be created out of the first figure generated and stored in tutorials/_out/images/thumb/ with the same name of the tutorial prepended with sphx_glr_.
  • Brief tutorials about graph states and error correction were added. #24
  • An introduction to quantum error correction was added. #24
  • Added UML class and package diagrams for fp page. #41
  • Improved class inheritance diagram for fp.codes, fp.cv, and fp.decoders. #41
  • Added libopenmpi-dev package to the apt list of .readthedoc.yml to allow documentation successful builds after adding recent mpi4py requirements. #59
  • Adds a section to guide_for_devs.rst explaining how to install and use MPI along with FlamingPy. #64

Contributors

This release contains contributions from (in alphabetical order):

Joost Bus, Sebastián Duque Mesa, Luis Mantilla, Nariman Saadatmand, Ilan Tzitrin, Trevor Vincent

See full commit details here.