Software details

Library structure

  • Eigen3: External library for matrix manipulation required by SOQCS. It is not part of the SOQCS code.

  • util: Module of utilities.

  • qocircuit: Circuit definition.

  • state: Quantum bosonic state definition.

  • qodev: Quantum optical device definition. Quantum device=Input photons + Circuit definition.

  • pbins: Set if probability bins. Output statistics.

  • dmat: Density matrix. Output statistics.

  • simulator: Simulator module. This is the core of SOQCS.

  • mthread: Parallelism support for SOQCS simulations.

  • SOQCS: The full C++ library

  • pySOQCS: Interface for the SOQCS port into Python.

_images/Public.png

Source tree structure

Inside the main SOQCS folder the next subfolders can be found in alphabetical order:

  • doc: Documentation folder. Here can be found the HTML files of the documentation.

  • examples: Examples of SOQCS simulations can be found here.

  • src/soqcs: Source tree of the SOQCS library.

Version release history

Version RV1.5:
  • New benchmark example.

  • Added Ryser method to calculate permanents

  • Added Ryser method with parallelism as shown in: P.H. Lundow, K. Markström, Journal of Computational Physics, Volume 455, 2022,110990.

  • Added optimization in the amount of permanents to be calculated when post-selection is present.

  • Samplers now return a list of samples instead of just their probability distribution.

  • C++ Muti-thread server functionality now available also on Python.

  • C++ restriction on the output selection functionality now available also on Python.

  • New packaging. pip install should be enough to install the library.

  • Improved documentation.

Version RV1.4.1:
  • Various bugs solved

Version RV1.4:
  • Added metropolis sampler.

  • Solved bug introduced in V1.3.

  • Various bugs solved.

Version RV1.3:
  • Qubit polarization encoding.

  • Post selection by polarization.

  • QOL improvements.

  • Various bugs solved.

Version RV1.2:
  • Qubit encoding.

  • More examples.

  • QOL improvements.

  • Various bugs solved.

  • Automated configuration.

  • Extended MacOsX support.

Version RV1.1:
  • Extended Python support.

  • QOL improvements.

  • Various bugs solved.

  • Simplified configuration.

  • Basic MacOsX support.

Version RV1.0:
  • Framework for circuit simulation.

  • Non-idealities in the emitter and detector statistics.

  • Partial distinguishability of photons and photon shape model.

  • Parallel execution support.

  • Density matrix and fidelity measurements.

  • Losses support.

  • Basic Sampling.

  • Basic Python support.