コード例 #1
0
 def test_clifford_1_qubit_generation(self):
     """Verify 1-qubit clifford indeed generates the correct group"""
     clifford_dicts = [
         {"stabilizer": ["+Z"], "destabilizer": ["+X"]},
         {"stabilizer": ["+X"], "destabilizer": ["+Z"]},
         {"stabilizer": ["+Y"], "destabilizer": ["+X"]},
         {"stabilizer": ["+X"], "destabilizer": ["+Y"]},
         {"stabilizer": ["+Z"], "destabilizer": ["+Y"]},
         {"stabilizer": ["+Y"], "destabilizer": ["+Z"]},
         {"stabilizer": ["-Z"], "destabilizer": ["+X"]},
         {"stabilizer": ["+X"], "destabilizer": ["-Z"]},
         {"stabilizer": ["-Y"], "destabilizer": ["+X"]},
         {"stabilizer": ["+X"], "destabilizer": ["-Y"]},
         {"stabilizer": ["-Z"], "destabilizer": ["-Y"]},
         {"stabilizer": ["-Y"], "destabilizer": ["-Z"]},
         {"stabilizer": ["-Z"], "destabilizer": ["-X"]},
         {"stabilizer": ["-X"], "destabilizer": ["-Z"]},
         {"stabilizer": ["+Y"], "destabilizer": ["-X"]},
         {"stabilizer": ["-X"], "destabilizer": ["+Y"]},
         {"stabilizer": ["-Z"], "destabilizer": ["+Y"]},
         {"stabilizer": ["+Y"], "destabilizer": ["-Z"]},
         {"stabilizer": ["+Z"], "destabilizer": ["-X"]},
         {"stabilizer": ["-X"], "destabilizer": ["+Z"]},
         {"stabilizer": ["-Y"], "destabilizer": ["-X"]},
         {"stabilizer": ["-X"], "destabilizer": ["-Y"]},
         {"stabilizer": ["+Z"], "destabilizer": ["-Y"]},
         {"stabilizer": ["-Y"], "destabilizer": ["+Z"]},
     ]
     cliffords = [Clifford.from_dict(i) for i in clifford_dicts]
     utils = rb.CliffordUtils()
     for n in range(24):
         clifford = utils.clifford_1_qubit(n)
         self.assertEqual(clifford, cliffords[n])
コード例 #2
0
ファイル: backend_utils.py プロジェクト: jwoehr/qiskit-aer
def format_save_type(data, save_type, save_subtype):
    """Format raw simulator result data based on save type."""
    init_fns = {
        "save_statevector": Statevector,
        "save_density_matrix": DensityMatrix,
        "save_unitary": Operator,
        "save_superop": SuperOp,
        "save_stabilizer":
        (lambda data: StabilizerState(Clifford.from_dict(data))),
        "save_clifford": Clifford.from_dict,
        "save_probabilities_dict": ProbDistribution,
    }

    # Non-handled cases return raw data
    if save_type not in init_fns:
        return data

    if save_subtype in ["list", "c_list"]:

        def func(data):
            init_fn = init_fns[save_type]
            return [init_fn(i) for i in data]
    else:
        func = init_fns[save_type]

    # Conditional save
    if save_subtype[:2] == "c_":
        return {key: func(val) for key, val in data.items()}

    return func(data)