@@ -77,21 +77,23 @@ def adjust_measure(measure: ExpectationMeasure, circuit: QCircuit):
77
77
Id_before = np .eye (2 ** measure .rearranged_targets [0 ])
78
78
Id_after = np .eye (2 ** (circuit .nb_qubits - measure .rearranged_targets [- 1 ] - 1 ))
79
79
80
- if isinstance (measure .observable , list ):
81
- tweaked_observables = [
82
- Observable (np .kron (np .kron (Id_before , obs .matrix ), Id_after ))
83
- for obs in measure .observable
84
- ]
85
- else :
86
- tweaked_observables = Observable (
87
- np .kron (np .kron (Id_before , measure .observable .matrix ), Id_after )
88
- )
80
+ # if isinstance(measure.observable, list):
81
+ tweaked_observables = [
82
+ Observable (np .kron (np .kron (Id_before , obs .matrix ), Id_after ))
83
+ for obs in measure .observable
84
+ ]
85
+ # else:
86
+ # tweaked_observables = Observable(
87
+ # np.kron(np.kron(Id_before, measure.observable.matrix), Id_after)
88
+ # )
89
89
90
90
tweaked_measure = ExpectationMeasure (
91
91
tweaked_observables ,
92
92
list (range (circuit .nb_qubits )),
93
93
measure .shots ,
94
94
)
95
+ print ("Observable qubit size before tweaking:" , measure .observable [0 ].nb_qubits )
96
+ print ("Tweaked observable size:" , tweaked_observables [0 ].nb_qubits )
95
97
return tweaked_measure
96
98
97
99
@@ -129,11 +131,13 @@ def generate_job(
129
131
else :
130
132
job = Job (JobType .SAMPLE , circuit , device , measurement )
131
133
elif isinstance (measurement , ExpectationMeasure ):
134
+ adjusted_m = adjust_measure (measurement , circuit )
135
+ print (adjusted_m .observable [0 ].nb_qubits )
132
136
job = Job (
133
137
JobType .OBSERVABLE ,
134
138
circuit ,
135
139
device ,
136
- adjust_measure ( measurement , circuit ) ,
140
+ adjusted_m ,
137
141
)
138
142
else :
139
143
raise NotImplementedError (
0 commit comments