Skip to content

Releases: CQCL/tket

pytket v1.1.0 release candidate 0

11 Apr 09:11
eb20746
Compare
Choose a tag to compare
Pre-release
v1.1.0rc0

[feature] Decompose CRx/y/z using 1xCX if possible (#321)

pytket v1.0.1 release

15 Mar 16:55
9370d6b
Compare
Choose a tag to compare
Merge pull request #292 from CQCL/release/1.0.1

Release/1.0.1

pytket v1.0.0 release

14 Mar 09:56
ea97df1
Compare
Choose a tag to compare
Merge pull request #287 from CQCL/release/1.0.0

Release/1.0.0

pytket v1.0.0 release candidate 18

11 Mar 12:28
c5c95b7
Compare
Choose a tag to compare
Pre-release
Not all qubits are in the initial map (#270)

* Add test case

* add second testcase

* Add debug info

* Fix maps update

* Add checks for mapping correctness

* Add back tests

* add tests

* clen up

* Update handling of the qubit maps

* Correct empty map checking criteria

* Remove ancilla_map_

* Remove size checking for maps

* Update tests

* Update maps when place isolate qubits

Co-authored-by: cqc-melf <[email protected]>
Co-authored-by: melf <[email protected]>

pytket v1.0.0 release candidate 17

08 Mar 18:52
92fc286
Compare
Choose a tag to compare
Pre-release
Bugfix/singlequbitlabelling (#285)

* add labelling for qubits with only single qubit gates

* update documentation

* c++ format

* rename label_isolated_qubits, remove comment

pytket v1.0.0 release candidate 16

03 Mar 08:11
90afb69
Compare
Choose a tag to compare
Pre-release
v1.0.0rc16

[infra] Cancel in-progress jobs in the same workflow. (#269)

pytket v1.0.0 release candidate 15

02 Mar 12:42
fb78dd3
Compare
Choose a tag to compare
Pre-release
Feature/add routing methods to binder (#267)

* Add MultiGateReorderRoutingMethod to binder

* Add BoxDecompositionRoutingMethod to binder

* Improve json test

* Improve docstrings

* Update changelog

pytket v1.0.0 release candidate 14

01 Mar 07:00
540de72
Compare
Choose a tag to compare
Pre-release
v1.0.0rc14

Update method names. (#261)

pytket v1.0.0 release candidate 13

28 Feb 19:37
57babdc
Compare
Choose a tag to compare
Pre-release
[TKET-1567] Add aas in rv3.1 (#254)

* 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

* rename method, remove predicate from routing

* 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

* [1777] Split `LexiRouteRoutingMethod` into two methods (#209)

* LexiLabellingRoutingMethod class

* Add labelling method using lexiroute methods

* First LexiLabelling implementation, with testing

* update defaults

* confirm correct imports and routing method config

* Expose LabellingRoutingMethod to pytket

* Update json serilaization

* reformat utils test

* Address PR Comments

* [1795] RoutingMethod for Box Decompositoin (#212)

* 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

* update checking method for LexiRoute

* Update lexilabelling check_method

Co-authored-by: Yao Tang <[email protected]>

* update ci check (#210)

* update ci check

* Update build_and_test.yml

* Update build_and_test.yml

* 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

* dummy pythonfile

* 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

* add ci run on push on - feature/RV3.1

* fix compilation issues

* remove token_swapping_method

* Update test_lexiroute

* add predicate back

* update setup.py

* Add LexiLabellingMethod

* 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,

* [fix] Feature/rv3.1 (#223)

* try to fix problems

* solve problem CMake

* fix delay measure

* format

* format

* format

* add archtecture pointer

* fix format

* black format

* fix mypy

* fix doxygen

* fix typo

* fix mypy

* fix black format

* fix merge

* fix merge

* mypy fix

* mypy

* mypy

* name_of_method -> name

* add ass to rv3.1

* format

* black format

* add override

* remove todo

* Merge develop into feature/RV3.1 (#255)

* Merge `RoutingMethod::check_method` and `RoutingMethod::routing_method` (#244)

* 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

* Comment out check_method, rewrite types and methods

* Update tests to not use check_method

* update test_routingmethod

* "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

* update test_json

* update python binders and tests

remove struct, use 4 element tuple

* remove commented out code, format

* change type return of method

for mypy

* address PR Comments

* use std::get

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]>

* [bugfix] [infra] Fix issues revealed by valgrind; add valgrind check on CI. (#242)

* Add StandardPass for basic qubit relabelling (#247)

* add NaivePlacement Class and naive_placement_mapping_pass

* clang format

* PR Requested Changes

* Add register accessors to Circuit (#246)

* Add register accessors to Circuit

* Add c_registers and q_registers methods

* [TKET-597] MBQC primitives and Flow Analysis (#218)

* Add MBQC generators for ZX

* Causal and Pauli flow, verification, identification, focus

* Focussed set identification

* Fix fall through annotation

* Add checks for is_graphlike in graphlike rewrites

* Move header to include folder

* Add files back into CMakeLists

* Update binders with new generator hierarchy

* Compiler warnings from uninitialised variables

* Improve docstrings and test coverage

* Fix compiler error on Windows CI

* Add method to get all opgroup names (#249)

* Add method to get all group names

* Improve test

* [infra] Don't invoke `setup.py` directly (#250)

* [infra] separated test utils from tests (#251)

* [feature] [rv3] Generate random nearby placements (#232)

* Add new LexirRouteROutingMethod header and cpp files

* add bool option to LexiRoute::set_interating_uids

* update methods to merge check and route

* Remove redundant line in Rebase.cpp (#253)

* address pr comments (and failing test)

* black formatting

* update build_and_test .yml

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]>
Co-authored-by: Will Simmons <[email protected]>
Co-authored-by: Luca Mondada <[email protected]>

* [TKET-1778] add architecture operation valid changes (#248)

* compiler pytket

* add tests and checks in python

* black format python

* update format c++

* c++ format

* get optype only once

* remove optype from valid_operation

* remove optype deps

* remove 3 node case

* Update build_and_test.yml

* try to debug

* add merge changes to aas

* add run on PR

* clean up

* address PR comments

* Update pytket/docs/changelog.rst

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

* Update pytket/binders/architecture.cpp

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

* Update pytket/docs/changelog.rst

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

* fix bug in lexi (#260)

* merge

* format

* remove run on rv3.1 branch

* fix merge from develop

* adress pr comments

Co-authored-by: Silas Dilkes <[email protected]>
Co-authored-by: yao-cqc <[email protected]>
Co-authored-by: sjdilkes <[email protected]>
Co-authored-by: Alec Edgington <[email protected]>
Co-authored-by: Zen Harper <[email protected]>
Co-authored-by: Yao Tang <[email protected]>
Co-authored-by: Alec Edgington <[email protected]>
Co-authored-by: Will Simmons <[email protected]>
Co-authored-by: Luca Mondada <[email protected]>

pytket v1.0.0 release candidate 12

22 Feb 15:11
a6f694f
Compare
Choose a tag to compare
Pre-release
Add StandardPass for basic qubit relabelling (#247)

* add NaivePlacement Class and naive_placement_mapping_pass

* clang format

* PR Requested Changes