Tomographer
v1.0a
Tomographer C++ Framework Documentation
|
A random walk in the density matrix space of a Hilbert state space of a quantum system. More...
#include <tomographer/dmmhrw.h>
Public Types | |
enum | |
typedef TomoProblem::MatrQ | MatrQ |
The data types of our problem. | |
typedef TomoProblem::LLHValueType | LLHValueType |
The loglikelihood function value type (see IndepMeasTomoProblem) | |
typedef MatrQ::MatrixType | MatrixType |
The matrix type for a density operator on our quantum system. | |
typedef MatrQ::VectorParamType | VectorParamType |
Type of an X-parameterization of a density operator (see param_x_to_herm()) | |
typedef MatrQ::RealScalar | RealScalar |
The real scalar corresponding to our data types. Usually a double . | |
typedef MatrQ::ComplexScalar | ComplexScalar |
The complex real scalar corresponding to our data types. Usually a std::complex<double> . | |
typedef MatrixType | PointType |
Provided for MHRandomWalk. A point in our random walk = a density matrix. | |
typedef LLHValueType | FnValueType |
Provided for MHRandomWalk. The function value type is the loglikelihood value type. | |
Public Member Functions | |
DMStateSpaceLLHMHWalker (const MatrixType &startpt, const TomoProblem &tomo, Rng &rng, Log &log_) | |
Constructor which just initializes the given fields. More... | |
void | init () |
Provided for MHRandomWalk. Initializes some fields and prepares for a random walk. More... | |
const MatrixType & | startpoint () |
Return the starting point given in the constructor, or a random start point. | |
void | thermalizing_done () |
Callback for after thermalizing is done. No-op. | |
void | done () |
Callback for after random walk is finished. No-op. | |
LLHValueType | fnlogval (const MatrixType &T) |
Calculate the logarithm of the Metropolis-Hastings function value. More... | |
MatrixType | jump_fn (const MatrixType &cur_T, RealScalar step_size) |
Decides of a new point to jump to for the random walk. | |
A random walk in the density matrix space of a Hilbert state space of a quantum system.
The random walk explores the density operators on a Hilbert space of a given dimension, according to the distribution given by the likelihood function on the Hilbert-schmidt uniform prior.
TomoProblem | the tomography data, expected to be a priori a IndepMeasTomoProblem |
Rng | a std::random random number generator (such as std::mt19937) |
MHRWStatsCollector | a type implementing a StatsCollector interface (MHRWStatsCollector Interface) |
anonymous enum |
|
inline |
|
inline |
Calculate the logarithm of the Metropolis-Hastings function value.
-0.5 * (-2-log-likelihood)
, where the -2-log-likelihood
is computed using IndepMeasTomoProblem::calc_llh()
|
inline |
Provided for MHRandomWalk. Initializes some fields and prepares for a random walk.