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.

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.