Tomographer  v5.4
Tomographer C++ Framework Documentation
Tomographer C++ Framework: API Documentation

The Tomographer C++ Framework groups a set of classes and functions which allow to reliably analyze data from quantum experiments. These serve in particular as components for the tomorun executable program.

The API documentation for the Python interface to Tomographer is available here.

Tomographer's Components

The classes and routines of the project belong to several categories.

Generic Tools

These are basic tools and utilities:

Engine for Running a Metropolis-Hastings Random Walk

Engine for Multiprocessing: Running Tasks in Parallel

  • An abstract multiprocessing framework is specified using a set of interfaces, see Multiprocessing Task Interfaces. This requires on one hand an implementation of a multiprocessing environment, and on the other hand a specification of which tasks are to be run.
  • Classes in the Tomographer::MultiProc::OMP namespace are an implementation of a multiprocessing environment using OpenMP. This dispatches the tasks over several threads (on a same machine).

Both Together: Running Metropolis-Hastings Random Walks in Parallel

Specific Implementation for Quantum States Specified as Densely Stored Matrices

These classes provide the types and specification of how to perform the random walk, how to calculate the loglikelihood function as well as the figures of merit for quantum states, with the quantum states and POVM effects stored explicitly as matrices (either directly, or via a X Parameterization or T Parameterization). Classes relating to this implementation are located in the Tomographer::DenseDM namespace.

Currently, this is the only concrete implementation of our tomography method. In the future, one could imagine extensions to other implementations, such as directly performing the random walk in the X-parameterization space.

Tools for writing C++ code interfaced with Python

A set of typedefs and utilities provided in the namespace tpy allow you to easily write fast C++ code using the above components, while providing a convenient Python interface for easy control and manipulation. See here for more info.

Documentation Pages

Important Namespaces

Specific Topics

Other Specific Resources

Tomorun — The Standalone Executable

The tomorun command-line program is simply a straightforward piecing together of the different components detailed above. It can be used as a standalone program, giving it the measurement data as input (via a MATLAB data file), and retrieving the final histogram of the figure of merit as output.

For help on using tomorun, refer to this "getting started" page, or query its help text using tomorun --help.

Topics:

Known Bugs & To Do List