48 template<
int FixedDim_ = Eigen::Dynamic,
int FixedMaxParamList_ = Eigen::Dynamic,
49 typename RealScalar_ = double,
typename IntFreqType_ =
int>
struct MatrQ;
51 namespace tomo_internal
54 template<
typename Derived>
55 struct matrq_traits { };
65 template<
int FixedDim_,
int FixedMaxParamList_,
66 typename RealScalar_,
typename IntFreqType_>
67 struct matrq_traits<
MatrQ<FixedDim_, FixedMaxParamList_, RealScalar_, IntFreqType_> >
77 FixedMaxParamList = FixedMaxParamList_
82 typedef RealScalar_ RealScalar;
92 typedef IntFreqType_ IntFreqType;
104 template<
typename Derived>
110 FixedDim = tomo_internal::matrq_traits<Derived>::FixedDim,
125 typedef typename tomo_internal::matrq_traits<Derived>::RealScalar
RealScalar;
127 typedef typename tomo_internal::matrq_traits<Derived>::ComplexScalar
ComplexScalar;
129 typedef typename tomo_internal::matrq_traits<Derived>::IntFreqType
IntFreqType;
170 template<
typename Derived,
bool has_fixed_dim>
260 template<
typename Derived>
335 template<
int FixedDim_,
int FixedMaxParamList_,
typename RealScalar_,
typename IntFreqType_>
337 :
public MatrQBaseDimStore<MatrQ<FixedDim_, FixedMaxParamList_, RealScalar_, IntFreqType_>,
338 FixedDim_ != Eigen::Dynamic>
349 FixedDim_ !=
Eigen::Dynamic>(dim_)
MatrQBase< Derived >::FreqListType::ConstantReturnType initFreqListType(std::size_t len) const
initializer for FreqListType. See MatrQBaseDimStore::initFreqListType() ...
MatrQBase< Derived >::VectorParamListType::ConstantReturnType initVectorParamListType(std::size_t len) const
initializer for VectorParamListType. See MatrQBaseDimStore::initVectorParamLis...
std::size_t dim2() const
The squared dimension of the quantum system. See MatrQBase::FixedDim2.
Eigen::Matrix< std::complex< RealScalar >, FixedDim, FixedDim > MatrixType
Complex dim x dim Matrix.
Defines the data types for a particular problem setting.
MatrQBase< Derived >::MatrixType::ConstantReturnType initMatrixType() const
initializer for MatrixType. See MatrQBaseDimStore::initMatrixType() ...
std::size_t ndof() const
The squared dimension of the quantum system, minus one. See MatrQBase::FixedNdof.
Base namespace for the Tomographer project.
The square of the dimension of the quantum system, or Eigen::Dynamic.
Eigen::Matrix< RealScalar, FixedNdof, 1 > VectorParamNdofType
Real dim*dim-1 Vector.
MatrQBase< Derived >::VectorParamType::ConstantReturnType initVectorParamType() const
Zero initializer for a VectorParamType.
MatrQBaseDimStore(std::size_t dim_)
Eigen::Array< IntFreqType, Eigen::Dynamic, 1, 0, FixedMaxParamList, 1 > FreqListType
dynamic Array of integers [maximum FixedMaxParamList entries or Dynamic]
Helper intermediate class for MatrQ.
std::size_t ndof() const
The squared dimension of the quantum system, minus one. See MatrQBase::FixedNdof.
MatrQBaseDimStore(std::size_t dim_)
Constructor, initialized to the given dimension.
std::size_t dim() const
The dimension of the quantum system. See MatrQBase::FixedDim.
MatrQBase< Derived >::VectorParamNdofType::ConstantReturnType initVectorParamNdofType() const
Zero initializer for a VectorParamNdofType.
tomo_internal::matrq_traits< Derived >::RealScalar RealScalar
Real scalar type (usually double)
MatrQBase< Derived >::MatrixType::ConstantReturnType initMatrixType() const
Zero initializer for a MatrixType.
MatrQBase< Derived >::VectorParamNdofType::ConstantReturnType initVectorParamNdofType() const
initializer for VectorParamNdofType. See MatrQBaseDimStore::initVectorParamNdo...
The dimension of the quantum system, or Eigen::Dynamic.
std::size_t dim2() const
The squared dimension of the quantum system. See MatrQBase::FixedDim2.
Maximum number of matrices in a list of X Parameterization form, or Eigen::Dynamic.
Eigen::Matrix< RealScalar, Eigen::Dynamic, FixedDim2, Eigen::RowMajor, FixedMaxParamList, FixedDim2 > VectorParamListType
dynamic Matrix with rows = dim*dim Vectors (row-major) [maximum FixedMaxParamList rows...
tomo_internal::matrq_traits< Derived >::ComplexScalar ComplexScalar
Complex scalar type (usually std::complex)
tomo_internal::matrq_traits< Derived >::IntFreqType IntFreqType
Integer type, used to count measurement frequencies. (int is fine)
MatrQ(std::size_t dim_)
Constructs a data type storage and initializer of given dimension.
MatrQBase< Derived >::FreqListType::ConstantReturnType initFreqListType(std::size_t len) const
Zero initializer for a FreqListType.
The square of the dimension of the quantum system minus one, or Eigen::Dynamic.
MatrQ< Eigen::Dynamic, Eigen::Dynamic, double, int > DefaultMatrQ
Data types for all arguments set at run-time.
MatrQBase< Derived >::VectorParamListType::ConstantReturnType initVectorParamListType(std::size_t len) const
Zero initializer for a VectorParamListType.
std::size_t dim() const
The dimension of the quantum system. See MatrQBase::FixedDim.
Eigen::Matrix< RealScalar, FixedDim2, 1 > VectorParamType
Real dim*dim Vector.
MatrQ< 2, 6, double, int > QubitPaulisMatrQ
Data types for Pauli measurements on a single qubit.
Basic definitions for MatrQ.
MatrQBase< Derived >::VectorParamType::ConstantReturnType initVectorParamType() const
initializer for VectorParamType. See MatrQBaseDimStore::initVectorParamType() ...