dual_from_marginal_probabilities¶
- dual_from_marginal_probabilities(povm: BasePOVM, state: SparsePauliOp | DensityMatrix | Statevector, *, threshold: float = 1e-05) BaseDual [source]¶
Return the Dual frame of
povm
based on the marginal distribution of a suppliedstate
.This method constructs a product Dual frame where each local Dual frame is parametrized with the alpha-parameters set as the marginal outcome probabilities of the supplied
state
.You can use this function like any of the Dual frame constructors to set the
POVMPostProcessor.dual
attribute as shown in this how-to guide.Warning
Computing this Dual frame obviously requires knowledge of an exact reference state and, thus, is limited in its applicability to development and testing cases in which an exact state is available.
- Parameters:
povm (BasePOVM) – the POVM for which we want to build a Dual frame.
state (SparsePauliOp | DensityMatrix | Statevector) – the state from which to compute the marginal outcome probabilities.
threshold (float) – if an outcome probability is below this value, an offset equal to the threshold magnitude will be added to all probabilities in the same marginal distribution. This is designed to avoid having parameters of the frame super-operator set to zero, which would result in a
ZeroDivisionError
.
- Raises:
NotImplementedError – if
povm
is not aProductPOVM
instance. If you haveMultiQubitPOVM
, have a look atdual_from_state()
.- Returns:
The Dual frame based on the marginal outcome probabilities of the given
state
.- Return type: