Commit 920bb1e
Adds the main transformer to do routing in Cirq (#5838)
* added abstract initial mapper and identity initial mapper
* added __str__ and __repr__ for MappingManager
* minor bug
* made MappingManager not serializable
* removed unused import
* pushed AbstractInitialMapping and IdentityInitialMapping name to 'cirq' namespace; made both classes not serializable
* minor lint fix
* addressed comments
* addressed comments
* fixed bug with edges not being sorted for graph equality testing
* fixed bug with digraphs repr method in MappingManager and added test for it
* addressed some comments
* added grid testing device
* added grid routing testing device
* formatting
* added line_initial_mapper and some tests; needs more testing
* formatting
* formatting
* changed interface for LineInitialMapper and added better tests; test for directed graph value equality remaining
* addressed comments and added ring device
* added test for supportin directed graphs
* changed interface for AbstractInitialMapper
* formatting
* changed RoutingTestingDevice interface; need to change is_isomorphic tests
* added hard-coded isomorphism tests
* fixed type issue
* removed redundant imports
* merged with routing testing device PR #5830
* simplified _value_equalit_values_
* addressed comments
* removed unused import
* pasted routing files
* fixed nits
* cleaned up circuit transformer class; needs tests
* addressed comments
* formatting
* small fixes
* removed unused import
* modified test file
* debugging
* removed print statements
* debugging statement
* debugging statement
* fix
* fix
* print statement
* edges sorting
* addressed comments; ready for review
* fixed type bug
* cleanup
* wrote some tests
* ready for review
* type and lint fixes
* working for basic tests
* slightly modified _make_circuit_graph()
* added some tests
* added test for testing valid circuits and fixed bug in _make_circuit_graph()
* debugging currently
* made dict of dict storing pqubit distances into numpy integer numpy array
* made dict of dict storing pqubit distances into numpy integer numpy array
* used better cost function that sped up algorithm by a lot
* cleaned up a little and added coverage tests
* removed unitary testing code; will add it in next PR
* fixed lint and type issues
* small lint fix
* added unitary testing for routed circuits
* changed api to accept only a final mapping of a set of qubits to itself
* fixed typos
* fixed some docstrings, changed __call__ and route_circuit() order, and move a class function to free function
* added tests
* refactored _get_timesteps() as per suggestion
* more fixes
* changed construction of two and single qubit ops lists
* fixed bug from _get_two_qubit_ops and added unitary testing
* addressed comments and refactored _route() function
* minor cleanup
* addressed comments
* made helper functions class variable and passed mapping manager as function argument everywhere
* docstring and nomenclature changes
Co-authored-by: Tanuj Khattar <[email protected]>1 parent 8f9a0bc commit 920bb1e
File tree
6 files changed
+653
-2
lines changed- cirq-core/cirq
- protocols/json_test_data
- transformers
- routing
6 files changed
+653
-2
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
366 | 366 | | |
367 | 367 | | |
368 | 368 | | |
| 369 | + | |
369 | 370 | | |
370 | 371 | | |
371 | 372 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
85 | 85 | | |
86 | 86 | | |
87 | 87 | | |
88 | | - | |
89 | 88 | | |
| 89 | + | |
| 90 | + | |
90 | 91 | | |
91 | 92 | | |
92 | 93 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
44 | 44 | | |
45 | 45 | | |
46 | 46 | | |
47 | | - | |
48 | 47 | | |
49 | 48 | | |
50 | 49 | | |
51 | 50 | | |
52 | 51 | | |
| 52 | + | |
53 | 53 | | |
54 | 54 | | |
55 | 55 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
| 20 | + | |
0 commit comments