Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add initial det/obs support to crumble, plus other polish #773

Merged
merged 22 commits into from
Jun 4, 2024
Merged

Conversation

Strilanc
Copy link
Collaborator

@Strilanc Strilanc commented May 24, 2024

Tagalong Stim diagram improvements:

  • Change 3d matchgraph diagrams to use a slightly more 3d indicator for detectors
  • Change matchgraph diagrams to not decompose if decomposition produces any errors
  • Change matchgraph diagrams to draw hypererrors that flip an observable in purple, instead of in blue

Crumble improvements:

  • Fix hitting 1-9 on an MPP operation not inferring that it should mark every target of the operation in their basis

  • Add initial support for detectors

    • d+# to turn a marked flow into a detector
    • o+# to turn a marked flow into an observable
    • Draw detecting regions of dets and obs as small squares on qubits at each moment in the timeslice, and between moment in the timeline
    • j+# to pick an arbitrary det or obs with a detection region going through the current selection, and turn it into a
    • k+# to add markers to dissipative gates overlapping the propagating flow in the current layer
      marked flow
  • Fix feedback operations not being correctly ignored, or causing non-feedback parts of an operation to be discarded

  • Polish the scrubber

    • Move it to run horizontally along the timeline
    • Add visual hints of what's in each layer
  • Polish the visuals

    • Improve the indication of marker flows beyond 4
    • Make timeline view justify left when near start of circuit, and justify right when near end of circuit, to always show as much information as possible
    • Only show timeline-to-timeslice qubit position indicators when hovering over that qubit in the timeline
    • Fade out unused qubits more
    • Set the default polygon alpha lower, so they are more faded
    • Fix several instances of fuzzy drawing due to off-by-0.5 coordinates
    • Draw example polygons and markers in the toolbox to better indicate what P and # do
  • Add quality of life controls

    • Fix needing to often hit cltr+z twice in order to undo once
    • Fix clicking on an example circuit link resulting in the undo history being lost
    • Press F to flip two qubit gates (e.g. exchange target and control)
      • Moved C_XYZ gate from F to c+t
    • Press G to reverse the order of layers starting from the current layer ending at first empty layer
    • Press >, <, ^, v to translate coordinates in the indicated direction
    • Press . to translate circuit downright one half step
    • Press home/end to jump to start/end of circuit
    • Press shift+q/e to jump 5 layers at a time
  • Added more example circuits, and moved examples behind a "show examples" button

  • Fix frame gate methods targeting indices instead of targets

  • Add frame undo gate methods

  • Fixes crumble e and q don't work with capslock #771

  • Fixes Crumble importing classically controlled gates #715

  • Fixes In crumble, fix pauli highlight not crossing a terminal pair measurement #738

@Strilanc Strilanc changed the title [WIP] Add UX for creating detectors in crumble Add initial det/obs support to crumble, plus other polish Jun 2, 2024
@Strilanc Strilanc enabled auto-merge (squash) June 3, 2024 23:51
@Strilanc Strilanc merged commit 985d6a7 into main Jun 4, 2024
53 checks passed
@Strilanc Strilanc deleted the crumbleflow branch June 4, 2024 00:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
1 participant