Skip to content

Conversation

nkoskelo
Copy link
Contributor

@nkoskelo nkoskelo commented Aug 19, 2025

TODO: Add description.

dhothem and others added 30 commits January 20, 2025 15:49
…c parent class of CrosstalkFreeExperimentDesign.
… just raise an more informative error). Add a copy in PermutationOperator.pp_braiding_operators.
…ys compute model violation w.r.t. logl objective function, rather than whatever might have been used as the final objective function.
…s. These are hacky changes. A proper change would be to use try-catch if encountering linalg errors.
…functions only use idles with explicit target qubits, rather than implicit global idles
… explicitmodel.py. Update convert_members_inplace so it can handle failures of conversion when dealing with embedded ops.
@rileyjmurray rileyjmurray changed the title Nick xfgst WIP: crosstalk-free GST Aug 19, 2025
@rileyjmurray
Copy link
Contributor

rileyjmurray commented Aug 19, 2025

Biggest changes:

New files in pygsti

  • /circuits/split_circuits_into_lanes.py
  • /modelmembers/operations/dyadickronop.py (TODO: move this somewhere into the /tools/ folder. The classes defined in this file don't subclass ModelMember.)
  • /modelmembers/operations/permutationop.py (TODO: remove this file. We have a swap gate built-in.)
  • /protocols/crosstalkfreeexperimentdesign.py
  • /protocols/unused_xfgst.py (TODO: remove this file; move useful code elsewhere.)
  • /tools/sequencetools.py

Heavily modified files in pygsti

  • /forwardsims/matrixforwardsim.py
  • /layouts/evaltree.py
  • /circuits/circuit.py
  • /layouts/matrixlayout.py
  • /models/explicitmodel.py
  • /models/implicitmodel.py
  • /models/singlequbitequivalencerules.py

Changes to tests

  • added /unit/objects/test_circuit_splitting.py
  • added /unit/objects/test_forwardsim_on_implicitop_model.py
  • added /unit/tools/test_sequencetools.py
  • rename of test_errgenoptools.py (TODO: revert this)

Comment on lines +686 to +691
try:
_ = self.__getattribute__(k)
except AttributeError:
_ = self.__dict__.pop(k)
self.__dict__['_' + k] = v
_ = self.__getattribute__(k)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I remember making this change but I don't remember why. We should revert unless we have a good reason to keep as-is.

@@ -185,7 +199,7 @@ def to_label(x):
"""
if isinstance(x, _Label): return x
# # do this manually when desired, as it "boxes" a circuit being inserted
#elif isinstance(x,Circuit): return x.to_circuit_label()
elif isinstance(x,Circuit): return x.to_label()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Neither Nick nor I remember making this change. The commented-out branch was broken. The uncommenting seems valid based on the to_label member function of Circuit objects.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a new layout class to work with the new caching method implemented in pygsti.layouts.evaltree.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tensor circuit construction should retain knowledge of original lane structure.

@@ -531,11 +547,13 @@ def _bare_init(self, labels, line_labels, editable, name='', stringrep=None, occ
self._name = name # can be None
#self._times = None # for FUTURE expansion
self.auxinfo = {} # for FUTURE expansion / user metadata
self.saved_auxinfo = {}
self.saved_auxinfo["lanes"] = {tuple(line_labels): self._labels}
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We are saving off the lane structure here so that it can be used in the future if the error models are cross-talk free.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants