/
std1Q_XYZI.py
130 lines (114 loc) · 4.3 KB
/
std1Q_XYZI.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
from __future__ import division, print_function, absolute_import, unicode_literals
#*****************************************************************
# pyGSTi 0.9: Copyright 2015 Sandia Corporation
# This Software is released under the GPL license detailed
# in the file "license.txt" in the top-level pyGSTi directory
#*****************************************************************
"""
Variables for working with the a model containing Idle, X(pi/2), Y(pi/2), and Z(pi/2) gates.
"""
import sys as _sys
from . import circuitconstruction as _strc
from . import modelconstruction as _setc
from . import stdtarget as _stdtarget
description = "Idle, X(pi/2), Y(pi/2), Z(pi/2) gates"
gates = ['Gi','Gx','Gy', 'Gz']
fiducials = _strc.circuit_list( [ (), ('Gx',), ('Gy',), ('Gx','Gx'),
('Gx','Gx','Gx'), ('Gy','Gy','Gy') ] ) # for 1Q MUB
prepStrs = effectStrs = fiducials
germs = _strc.circuit_list(
[('Gi',), ('Gx',), ('Gy',), ('Gz',),
('Gx','Gz'), ('Gx','Gy'),
('Gx','Gx','Gy'), ('Gx','Gx','Gz'),
('Gy','Gy','Gz'), ('Gx','Gy','Gz'),
('Gx','Gy','Gi'), ('Gx','Gi','Gy'),
('Gx','Gi','Gi'), ('Gy','Gi','Gi'),
('Gi','Gx','Gz'), ('Gi','Gy','Gz'),
('Gx','Gy','Gy','Gi'), ('Gx','Gx','Gy','Gx','Gy','Gy') ])
germs_lite = germs[0:10]
#Construct a target model: Identity, X(pi/2), Y(pi/2)
_target_model = _setc.build_explicit_model([('Q0',)], ['Gi','Gx','Gy','Gz'],
[ "I(Q0)","X(pi/2,Q0)", "Y(pi/2,Q0)", "Z(pi/2,Q0)"])
_gscache = { ("full","auto"): _target_model }
def target_model(parameterization_type="full", sim_type="auto"):
"""
Returns a copy of the target model in the given parameterization.
Parameters
----------
parameterization_type : {"TP", "CPTP", "H+S", "S", ... }
The gate and SPAM vector parameterization type. See
:function:`Model.set_all_parameterizations` for all allowed values.
sim_type : {"auto", "matrix", "map", "termorder:X" }
The simulator type to be used for model calculations (leave as
"auto" if you're not sure what this is).
Returns
-------
Model
"""
return _stdtarget._copy_target(_sys.modules[__name__],parameterization_type,
sim_type, _gscache)
global_fidPairs = [
(0, 0), (2, 3), (5, 2), (5, 4)]
pergerm_fidPairsDict = {
('Gx',): [
(1, 1), (3, 4), (4, 2), (5, 5)],
('Gi',): [
(0, 3), (1, 1), (5, 5)],
('Gz',): [
(0, 0), (2, 3), (5, 2), (5, 4)],
('Gy',): [
(0, 2), (2, 2), (2, 4), (4, 4)],
('Gx', 'Gz'): [
(0, 0), (2, 3), (5, 2), (5, 4)],
('Gx', 'Gy'): [
(0, 0), (0, 4), (2, 5), (5, 4)],
('Gy', 'Gi', 'Gi'): [
(0, 2), (2, 2), (2, 4), (4, 4)],
('Gx', 'Gx', 'Gz'): [
(0, 0), (0, 4), (1, 5), (2, 3), (2, 5), (5, 5)],
('Gy', 'Gy', 'Gz'): [
(0, 0), (0, 2), (1, 1), (4, 0), (4, 2), (5, 5)],
('Gx', 'Gy', 'Gi'): [
(0, 0), (0, 4), (2, 5), (5, 4)],
('Gx', 'Gy', 'Gz'): [
(0, 2), (2, 2), (2, 4), (4, 4)],
('Gx', 'Gi', 'Gy'): [
(0, 0), (0, 4), (2, 5), (5, 4)],
('Gx', 'Gx', 'Gy'): [
(1, 3), (1, 4), (3, 5), (5, 0), (5, 4), (5, 5)],
('Gi', 'Gx', 'Gz'): [
(0, 0), (2, 3), (5, 2), (5, 4)],
('Gi', 'Gy', 'Gz'): [
(0, 3), (3, 2), (4, 0), (5, 3)],
('Gx', 'Gi', 'Gi'): [
(1, 1), (3, 4), (4, 2), (5, 5)],
('Gx', 'Gy', 'Gy', 'Gi'): [
(0, 3), (1, 2), (2, 5), (3, 1), (3, 3), (5, 3)],
('Gx', 'Gx', 'Gy', 'Gx', 'Gy', 'Gy'): [
(0, 0), (2, 3), (5, 2), (5, 4)],
}
global_fidPairs_lite = [
(0, 4), (0, 5), (1, 0), (2, 0), (2, 4), (2, 5), (3, 0), (4, 2),
(4, 4), (5, 1), (5, 2), (5, 3)]
pergerm_fidPairsDict_lite = {
('Gx',): [
(1, 1), (3, 4), (4, 2), (5, 5)],
('Gi',): [
(0, 3), (1, 1), (5, 5)],
('Gz',): [
(0, 0), (2, 3), (5, 2), (5, 4)],
('Gy',): [
(0, 2), (2, 2), (2, 4), (4, 4)],
('Gx', 'Gz'): [
(0, 0), (2, 3), (5, 2), (5, 4)],
('Gx', 'Gy'): [
(0, 0), (0, 4), (2, 5), (5, 4)],
('Gy', 'Gy', 'Gz'): [
(0, 0), (0, 2), (1, 1), (4, 0), (4, 2), (5, 5)],
('Gx', 'Gy', 'Gz'): [
(0, 2), (2, 2), (2, 4), (4, 4)],
('Gx', 'Gx', 'Gy'): [
(1, 3), (1, 4), (3, 5), (5, 0), (5, 4), (5, 5)],
('Gx', 'Gx', 'Gz'): [
(0, 0), (0, 4), (1, 5), (2, 3), (2, 5), (5, 5)],
}