@@ -712,17 +712,15 @@ def create_meas_cache(model, available_meas_fid_list, circuit_cache=None):
712
712
if circuit_cache is not None :
713
713
for povm in model .povms .values ():
714
714
for E in povm .values ():
715
- if isinstance (E , _ComplementPOVMEffect ): continue # complement is dependent on others
716
- new_povm_effect_key_pair = (povm .to_vector ().tobytes (), E .to_vector ().tobytes ())
715
+ new_povm_effect_key_pair = (povm .to_vector ().tobytes (), E .to_dense ().tobytes ())
717
716
keypairlist .append (new_povm_effect_key_pair )
718
717
for measFid in available_meas_fid_list :
719
718
meas_cache [(new_povm_effect_key_pair [0 ],new_povm_effect_key_pair [1 ],measFid .str )] = _np .dot (E .to_dense (), circuit_cache [measFid .str ])
720
719
721
720
else :
722
721
for povm in model .povms .values ():
723
722
for E in povm .values ():
724
- if isinstance (E , _ComplementPOVMEffect ): continue # complement is dependent on others
725
- new_povm_effect_key_pair = (povm .to_vector ().tobytes (), E .to_vector ().tobytes ())
723
+ new_povm_effect_key_pair = (povm .to_vector ().tobytes (), E .to_dense ().tobytes ())
726
724
keypairlist .append (new_povm_effect_key_pair )
727
725
for measFid in available_meas_fid_list :
728
726
meas_cache [(new_povm_effect_key_pair [0 ],new_povm_effect_key_pair [1 ],measFid .str )] = _np .dot (E .to_dense (), model .sim .product (measFid ))
@@ -777,7 +775,6 @@ def create_prep_mxs(model, prep_fid_list, prep_cache=None):
777
775
except KeyError as err :
778
776
print ('A (Rho, Circuit) pair is missing from the cache, all such pairs should be available is using the caching option.' )
779
777
raise err
780
- #outputMat[:, i] = _np.dot(model.sim.product(prepFid), rho.to_dense())
781
778
outputMatList .append (outputMat )
782
779
783
780
else :
@@ -832,17 +829,15 @@ def create_meas_mxs(model, meas_fid_list, meas_cache=None):
832
829
#Actually, this is slowing things down a good amount, let's just print a
833
830
#descriptive error message if the key is missing
834
831
try :
835
- outputMat [:, i ] = meas_cache [0 ][(povm_key , E_key ,measFid .str )]
832
+ outputMat [:, i ] = meas_cache [0 ][(povm_key , E_key , measFid .str )]
836
833
except KeyError as err :
837
- print ('A (POVM, Effect, Circuit) pair is missing from the cache, all such pairs should be available is using the caching option.' )
834
+ print ('A (POVM, Effect, Circuit) pair is missing from the cache, all such pairs should be available if using the caching option.' )
838
835
raise err
839
- #outputMat[:, i] = _np.dot(E.to_dense(), model.sim.product(measFid))
840
836
outputMatList .append (outputMat )
841
837
842
838
else :
843
839
for povm in model .povms .values ():
844
840
for E in povm .values ():
845
- if isinstance (E , _ComplementPOVMEffect ): continue # complement is dependent on others
846
841
outputMat = _np .zeros ([dimE , numFid ], float )
847
842
for i , measFid in enumerate (meas_fid_list ):
848
843
outputMat [:, i ] = _np .dot (E .to_dense (), model .sim .product (measFid ))
@@ -1774,10 +1769,6 @@ def _find_fiducials_greedy(model, fids_list, prep_or_meas, op_penalty=0.0,
1774
1769
else :
1775
1770
for fiducial in fids_list :
1776
1771
#calculate the score matrix
1777
- #if prep_or_meas == 'prep':
1778
- # fidArrayList = create_prep_mxs(model, [fiducial], fid_cache)
1779
- #elif prep_or_meas == 'meas':
1780
- # fidArrayList = create_meas_mxs(model, [fiducial], fid_cache)
1781
1772
current_score_mx = fiducial_compact_EVD_cache [fiducial ]
1782
1773
current_score_gramian = fiducial_compact_EVD_cache [fiducial ]@fiducial_compact_EVD_cache [fiducial ].T
1783
1774
current_inv_trace = _np .trace (_np .linalg .pinv (current_score_gramian , hermitian = True ))
0 commit comments