Skip to content

pytket v1.0.0 release candidate 10

Pre-release
Pre-release
Compare
Choose a tag to compare
@cqc-alec cqc-alec released this 21 Feb 08:15
· 926 commits to develop since this release
8b818fa
Feature/routing-v3 (#167)

* Update build_and_test.yml

* Feature/TokenSwapping (#94)

* Copy TokenSwapping CodeBase, update CMakeLists.txt

* Add TokenSwapping tests

* Update GraphTests to use TokenSwapping RNG

* Remove "class RNG;"

* Add cpp files to compilation

* Add "MappingManager" class and port older routing solution (#95)

* Copy code from private repository

* Add binders for mapping module

* Adding mapping module to setup.py

* Add shared_ptr to Architecture subclasses in binder file

* Port python test for mapping module

* Add token swapping stage to routing v3 (#96)

* Assert candidate swaps size (#108)

* Add assertion that there are at least some swaps to trial

* Pseudo code for Yao

* Fix routing with measurements issue

* Add classically controlled gates to lexiroute test

Co-authored-by: sjdilkes <[email protected]>

* Update Architecture method names

* get_all_nodes -> nodes

* Update Compilation Passes to use RoutingV3 (#115)

* Add token swapping stage, add test

* Update compilation passes to use new routing

* Add json serialization

* Continue adding JSON serialisation for routing_config

* Improve Json definitions

* Update JSON Serialization and use of Barrier

* Change from reference_wrapper to shared_ptr

* Add JSON_DECL for std::vector<RoutingMethodPtr>

* format routing_test

* Fix up tests and binders for python

* Uncoment measurement tests

* rename method to merge_ancilla

* debug proptest

* Make add_qubit add qubit to unit_bimaps_ if not nullptr

* Architectures -> Architecture

* Install boost on MacOS.

* comments to debug

* update proptest to support ancillas properly

* remove couts

* format

* Make Unitary dimensions match

* add tket assert for comparison

* Update test to check value

* add_qubit -> add_ancilla

* Remove kwargs formatting from argument

* Rename Architecture Methods

* rename architecture methods

* Allow architecture mapping to take original edges, to calculate Node to size_t mapping

* add get_square_grid_edges, to allow fixed tests independent of SquareGrid

* use ArchitectureMapping and edges in most tests, instead of Architecture

* trivial typos, comments, cmake update

* add copyright notices, pragma once, remove semicolon typos

* update binders for inheritance and docs

* format

* Remove NodeGraph

* update formatting

* Update CMakeLists and Setup.py

* Use explicit shared_ptr

* Refactor Routing module binder

Make "FullMappingPass" use a kwargs based argument to get round faulty docs type definitions.

* remove trailing whitespace

* update clang formatting

* reformat file

* update orientation of BRIDGE gates

* Update conf docs mapping, remove kwargs full mapping pass

Co-authored-by: Alec Edgington <[email protected]>
Co-authored-by: Zen Harper <[email protected]>

* Remove outdated Routing code from repository (#165)

* Add token swapping stage, add test

* Update compilation passes to use new routing

* Add json serialization

* Continue adding JSON serialisation for routing_config

* Improve Json definitions

* Update JSON Serialization and use of Barrier

* Change from reference_wrapper to shared_ptr

* Add JSON_DECL for std::vector<RoutingMethodPtr>

* format routing_test

* Fix up tests and binders for python

* Uncoment measurement tests

* rename method to merge_ancilla

* debug proptest

* Make add_qubit add qubit to unit_bimaps_ if not nullptr

* Architectures -> Architecture

* Install boost on MacOS.

* comments to debug

* update proptest to support ancillas properly

* remove couts

* format

* Make Unitary dimensions match

* add tket assert for comparison

* Update test to check value

* add_qubit -> add_ancilla

* Remove kwargs formatting from argument

* Rename Architecture Methods

* rename architecture methods

* Allow architecture mapping to take original edges, to calculate Node to size_t mapping

* add get_square_grid_edges, to allow fixed tests independent of SquareGrid

* use ArchitectureMapping and edges in most tests, instead of Architecture

* trivial typos, comments, cmake update

* add copyright notices, pragma once, remove semicolon typos

* update binders for inheritance and docs

* format

* Remove NodeGraph

* update formatting

* Update CMakeLists and Setup.py

* Use explicit shared_ptr

* Refactor Routing module binder

Make "FullMappingPass" use a kwargs based argument to get round faulty docs type definitions.

* remove trailing whitespace

* update clang formatting

* reformat file

* update orientation of BRIDGE gates

* Remove src/Routing

Move Placement files into new src/Placement subdirectory, update tests as necessary, move connectivty constraint verification to utils

* update tket/pytket to not install or use old pytket.routing

* clang formatting

* Update mitigation test to use explicit placement

* remove binder file

* Update conf docs mapping, remove kwargs full mapping pass

* update docs for new python modules

* Move Verification files to src/Mapping subdirectory

* Delete test_Routing.cpp

* Update imports for Verification.hpp

* Add default argument to LexiRouteRoutingMethod binder

Update python tests to use default

* upadte Verification.cpp compilation pass

* Formatting

Co-authored-by: Alec Edgington <[email protected]>
Co-authored-by: Zen Harper <[email protected]>

* Improve LexiRoute.cpp coverage

* Improve MappingFrontier.cpp test coverage

* Rmoeve decmopose_module method

* readd missing test

* Update LexiRoute test coverage

* Remove redundant comments

* Feature/reorder multi qubit gates (#157)

* Add token swapping stage, add test

* Update compilation passes to use new routing

* Add json serialization

* Continue adding JSON serialisation for routing_config

* Improve Json definitions

* Update JSON Serialization and use of Barrier

* Change from reference_wrapper to shared_ptr

* Add JSON_DECL for std::vector<RoutingMethodPtr>

* format routing_test

* Fix up tests and binders for python

* Uncoment measurement tests

* rename method to merge_ancilla

* debug proptest

* Make add_qubit add qubit to unit_bimaps_ if not nullptr

* Architectures -> Architecture

* Install boost on MacOS.

* comments to debug

* update proptest to support ancillas properly

* remove couts

* format

* Make Unitary dimensions match

* add tket assert for comparison

* Update test to check value

* add_qubit -> add_ancilla

* Remove kwargs formatting from argument

* Rename Architecture Methods

* rename architecture methods

* Allow architecture mapping to take original edges, to calculate Node to size_t mapping

* add get_square_grid_edges, to allow fixed tests independent of SquareGrid

* use ArchitectureMapping and edges in most tests, instead of Architecture

* trivial typos, comments, cmake update

* add copyright notices, pragma once, remove semicolon typos

* update binders for inheritance and docs

* format

* Remove NodeGraph

* update formatting

* Reorder CZ circuits

* Revert "Reorder CZ circuits"

This reverts commit 9d67720f2047fb6875c6c520f37fb28967b3752e.

* Make two methods in MappingFrontier public

* Add MultiGateReorderRoutingMethod

* Remove unnecessary frontier advancement

* Avoid copying the whole MappingFrontier

* Remove the edge_in_frontier method

* Add comment for vertex rewiring

* Allow users to set search limits

* Change default max depth/size limits to 10

* Fix using incorrect port colours

* Obtain unitid by traversing to frontier instead of inputs

* Add test for MultiGateReorderRoutingMethod

* Refactor condition checks and rewire

* Implement check_method

* Add test for routing with LexiRoute

Co-authored-by: sjdilkes <[email protected]>
Co-authored-by: Alec Edgington <[email protected]>
Co-authored-by: Zen Harper <[email protected]>

* modify TKET_ASSERT: allow extra messages, catch exceptions in evaluation

* replace some exceptions with tket asserts; should be ignored by test coverage

* Start moving files for modularisation

* compilation refactor commit

* Reorder base cmake

* add assertmessage.cpp to compiilation

* Rework TokenSwapping includes

* clang format

* update linking for pytket

* reformat with black

* Revert "reformat with black"

This reverts commit 66ce863e16ab6e7ba50c739eb7c696c9afbf7ffc.

* reformat setup.py

* update proptests cmakelists

* Feature/add serialisation for multi qubit reorder (#184)

* Add JSON serialisation for  MultiGateReorderRoutingMethod
and getters

* Add tests for JSON serialisation for MultiGateReorderRoutingMethod

* Update test coverage for RoutingMethod serialization

* make mapping_frontier from mapping_frontier

* routing -> mapping

* use TKET_ASSERT_WITH_THROW instead of TKET_ASSERT

* Replace TKET_ASSERT with throw and use GCOVR_EXCL_START,STOP where appropriate

* replace throws with TKET_ASSERT_WITH_THROW where appropriate

* Add the TKET_ASSERT_WITH_THROW macro

* add simple swap functions tests

* add TKET_ASSERT_WITH_THROW tests, for detailed error messages

* clang format

* try to fix code coverage branching problems in TKET_ASSERT_WITH_THROW by hiding throws

* correct "does not return a value" error

* Infra/use bimap for quantum boundary (#185)

* Add sequenced_bimap_t

* Use sequenced_bimap_t for unit_vertport_frontier_t

* Update MultiGateReorder

* remove try/catch from tket assert with throw, to cut down branching

* remove TKET_ASSERT_WITH_THROW, replace with TKET_ASSERT

* Remove AssertMessage(), add TKET_ASSERT_WITH_MESSAGE

* manually add coverage exclusion tags for now, until the branching problem is fixed

* Add copyright information

* [RV3] [refactor] Clean up of the dependencies of the modules (#199)

* remove cycle from cmake lists

* clean up

* add comment

* fix binder include

* try to fix pytket build

* try to fix problems

* fix windows build

* try to fix windows

* add bimaps attribute to MappingFrontier

* update_quantum_boundary_uids remaps bimaps entries

* Update build_and_test.yml

* Update changelog.rst

* Update copyright dates

2021 -> 2022

* Update pytket/binders/mapping.cpp

Co-authored-by: Alec Edgington <[email protected]>

* Update pytket/binders/mapping.cpp

Co-authored-by: Alec Edgington <[email protected]>

* Update pytket/binders/mapping.cpp

Co-authored-by: Alec Edgington <[email protected]>

* Corrections for PR

* Remove tokenswapping from dependneices

* Feature/decompose boxes in routing (#197)

* Reject boxes in Architecture::valid_operation

* Add `next_q_cut` method to a quantum cut
Only consider quantum edges

* Use `next_q_cut` in `advance_frontier_boundary`

* Add BoxDecompositionRoutingMethod

* Add tests

* Reformat

* Reject boxes in LexiRouteMethod::check_method

* Update tests

* Add JSON serialisation

* Handle unused arguments

* Refactor Circuit::decompose_boxes

* fix naming

Co-authored-by: sjdilkes <[email protected]>

* update compilation for tokenswapping

* Revert "Feature/decompose boxes in routing (#197)"

This reverts commit 86fb61e6f2922050a1ac438d1a8103ea6942a239.

* Address PR Requested changes

* change copyright to 2022

* remove unused code, including PathFinderInterface

* rename HybridTsa00 -> HybridTsa; move files out of include directory

* move DebugFunctions into tests

* move get_swaps_lower_bound out of tket into tests

* simple typos; unused code; extra comments, asserts

* rename main_entry_functions -> SwapsFromQubitMapping; remove unused function

* move RNG from token swapping to Utils; erase tests/Graphs/RNG

* move get_random_set out of token swapping into test utils

* move some stuff out of namespace tsa_internal into namespace tket

* more cleanup

* clang format

* added OpType dependency to token swapping

* clang format

* replace throws with TKET_ASSERT_WITH_MESSAGE

* move BruteForceColouring.hpp, ColouringPriority.hpp out of include directory

* add TokenSwappingWithArch project; move files out of TokenSwapping

* remove architecture from TokenSwapping

* move DistancesInterface, NeighboursInterface out of namespace tsa_internal

* update TokenSwapping tests to use TokenSwappingWithArch

* bool type for delay_measures

* Create architecture_test.py

* Reduce test times: add TSGlobalTestParameters with run_long_tests option

* add test_DebugFunctions.cpp and remove test coverage exclusion

* Remove unreachable code.

* update architecture binder

* Revert "update architecture binder"

This reverts commit d7bbd01adf9759adae0aabf1afd88a8678117f06.

* formatting, remove nodegraph test

* update architecture and mapping tests

* add architecture_aware_synthesis_test.py

* Create placement_test.py

* Update range of python mapping tests

* update routing test coverage

* Cover Alec's comments

* format transform_test

* change length of line

* remove trailing white space

* name -> name_of_ethod

* name -> name_of_method RoutingMethod

* tokenswappingwitharch

* add type ignores

* "name_of_method" -> "name'

* Update valid_operation description

* reformat transform_test

and remove "had"

* remove second auto_rebase_pass

* Add missing import.

* Add option to tket-tests conan build determining whether full tests are run.

If tket-tests:full=True, the compiler flag TKET_TESTS_FULL is defined.

* remove TokenSwappingWithArch project; move files into Architecture

* Set "full tests" option on scheduled CI runs only.

* change TKET_ASSERT_WITH_MESSAGE to have parentheses around message

* Add note to README.

* rename HybridTSA_00 to HybridTsa

* Replace TSGlobalTestParameters with #ifdef TKET_TESTS_FULL

* commit other forgotten files

* Remove GetTketAssertMessage and TKET_ASSERT_WITH_MESSAGE, go back to AssertMessage().

* clang format

* Move test_Utils.cpp to test/Utils directory, rename to test_HelperFunctions.cpp

* fix "function does not return a value" error

* fix "non-void function does not return a value" error, attempt 2!

* Forgot to remove final TokenSwappingWithArch bits

* Fix build failure.

Puzzling.

* Fix for mypy,

Co-authored-by: yao-cqc <[email protected]>
Co-authored-by: Alec Edgington <[email protected]>
Co-authored-by: Zen Harper <[email protected]>
Co-authored-by: cqc-melf <[email protected]>
Co-authored-by: Alec Edgington <[email protected]>
Co-authored-by: melf <[email protected]>