pygsti.tools.errgenproptools.zassenhaus_formula

pygsti.tools.errgenproptools.zassenhaus_formula#

zassenhaus_formula(errorgen_groups, zassenhaus_order=1, truncation_threshold=1e-14)#

Function for computing the nth-order Zassenhaus formula for a set of error generators. Please see https://en.wikipedia.org/wiki/Baker%E2%80%93Campbell%E2%80%93Hausdorff_formula#Zassenhaus_formula for more information on this approximation.

Given an exponentiated sum of operators exp(X1+X2+…+Xn) the Zassenhaus formula allows one to disentangle this exponentiated sum into a product of exponentiated operators given by exp(X1)exp(X2)…exp(Xn)prod_{k=2}^infty exp(W_k) where the W_k’s are Lie polynomials (nested commutators) in the operators {X1, …, Xn}, and the value of k we go up to gives the order of the approximation.

errorgen_groupslist of dicts

List of dictionaries of the error generator coefficients and rates for a group of error generators corresponding to each of the operators in the sum to perform Zassenhaus with respect to. The error generator coefficients are represented using LocalStimErrorgenLabel.

zassenhaus_orderint, optional (default 1)

Order of the Zassenahaus formula to compute. Currently supports up to second order. Note that zassenhaus_order = 1 corresponds simply to the original list of error generator in errorgen_groups, and in this case we simply return errorgen_groups as-is (not a copy).

truncation_thresholdfloat, optional (default 1e-14)

Threshold for which any error generators with magnitudes below this value are truncated.

Returns:

zassenhaus_formula_dicts – A list of dictionaries, each corresponding to one of the operators which is exponentiated in the product as output by the Zassenhaus formula.

Return type:

list of dicts

Parameters:
  • errorgen_groups (list[dict[LocalStimErrorgenLabel, float]])

  • zassenhaus_order (Literal[1, 2])

  • truncation_threshold (float)