This is a ‘type interface.’ See Type Interfaces for more info on what that is.
Declares types for dealing with quantum states and POVMs of a fixed dimension which we'll call here dim. See also Tomographer::MatrQ.
- typedef ... RealScalar
- The real scalar type we're working with.
- typedef ... ComplexScalar
- The complex scalar type we're working with.
- typedef ... IntFreqType
- The integral type to use for measurement counts. Usually
int
is enough, except if in your experiment you take >1e9 measurements
- typedef ... MatrixType
- The type needed to represent a density matrix. This is usually expected to be a Eigen type.
- int dim() const
- The dimension of the quantum system. Return any integer type, usually std::size_t. Inline of course is better.
- int dim2() const
- The squared dimension of the quantum system. Return any integer type, usually std::size_t. Inline of course is better.
- int ndof() const
- The squared dimension of the quantum system, minus one. This is the number of degrees of freedom of the density matrix. Return any integer type, usually std::size_t. Inline of course is better.
- MatrixType initMatrixType() const
- Returns an expression which can be assigned to a MatrixType such that the matrix is initialized to a square dim x dim zero matrix.
- typedef ... VectorParamType
- The type needed to represent a X-parameterization of a density matrix. This is usually expected to be a Eigen type.
- MatrixType initVectorParamType() const
- Returns an expression which can be assigned to a VectorParamType such that the vector is initialized to a zero column vector with dim*dim entries.
- typedef ... VectorParamNdofType
- The type needed to represent some parameterization of a density matrix with dim*dim-1 parameters. This is usually expected to be a Eigen type.
- MatrixType initVectorParamNdofType() const
- Returns an expression which can be assigned to a VectorParamNdofType such that the vector is initialized to a zero column vector with dim*dim-1 entries.
- typedef ... VectorParamListType
- The type needed to represent a list of X-parameterizations of e.g. POVM effects, each with dim*dim parameters. This is usually expected to be a Eigen type.
- MatrixType initVectorParamListType(std::size_t length) const
- Returns an expression which can be assigned to a VectorParamListType such that the list is initialized to a list with length copies of a zero column vector with dim*dim entries.
- typedef ... FreqListType
- The type needed to represent frequency counts of measurements. This is typically an Eigen::Array integral type.
- MatrixType initFreqListType(std::size_t len) const
- Returns an expression which can be assigned to a FreqListType such that the vector is initialized to len items with zero counts each.