pygsti.modelmembers.povms.convert#
- convert(povm, to_type, basis, ideal_povm=None, flatten_structure=False, cp_penalty=1e-07)#
TODO: update docstring Convert a POVM to a new type of parameterization.
This potentially creates a new object. Raises ValueError for invalid conversions.
- Parameters:
povm (POVM) – POVM to convert
to_type ({"full","full TP","static","static pure","H+S terms",) – “H+S clifford terms”,”clifford”} The type of parameterizaton to convert to. See
Model.set_all_parameterizations()for more details. TODO docstring: update the options here.basis ({'std', 'gm', 'pp', 'qt'} or Basis object) – The basis for povm. Allowed values are Matrix-unit (std), Gell-Mann (gm), Pauli-product (pp), and Qutrit (qt) (or a custom basis object).
ideal_povm (POVM, optional) – The ideal version of povm, potentially used when converting to an error-generator type.
flatten_structure (bool, optional) – When False, the sub-members of composed and embedded operations are separately converted, leaving the original POVM’s structure unchanged. When True, composed and embedded operations are “flattened” into a single POVM of the requested to_type.
cp_penalty (float, optional (default 1e-7)) – Converting SPAM operations to an error generator representation may introduce trivial gauge degrees of freedom. These gauge degrees of freedom are called trivial because they quite literally do not change the dense representation (i.e. Hilbert-Schmidt vectors) at all. Despite being trivial, error generators along this trivial gauge orbit may be non-CP, so this cptp penalty is used to favor channels within this gauge orbit which are CPTP.
- Returns:
The converted POVM vector, usually a distinct object from the object passed as input.
- Return type: