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

Fix symbol substitution for classical operations #1538

Merged
merged 5 commits into from
Aug 16, 2024
Merged

Fix symbol substitution for classical operations #1538

merged 5 commits into from
Aug 16, 2024

Conversation

cqc-alec
Copy link
Collaborator

@cqc-alec cqc-alec commented Aug 15, 2024

Description

The method, although trivial in all cases, needs to be defined on all the derived classes of ClassicalOp, in order to preserve the type information.

Related issues

Fixes #1536 .

Checklist

  • I have performed a self-review of my code.
  • I have commented hard-to-understand parts of my code.
  • I have made corresponding changes to the public API documentation.
  • I have added tests that prove my fix is effective or that my feature works.
  • I have updated the changelog with any user-facing changes.

@cqc-alec cqc-alec changed the title Ae/symsub Fix symbol substitution for classical operations Aug 15, 2024
@cqc-alec cqc-alec requested a review from sjdilkes August 15, 2024 16:12
@cqc-alec cqc-alec marked this pull request as ready for review August 15, 2024 16:12
@cqc-alec cqc-alec merged commit e677672 into main Aug 16, 2024
32 checks passed
@cqc-alec cqc-alec deleted the ae/symsub branch August 16, 2024 10:19
CalMacCQ added a commit that referenced this pull request Sep 6, 2024
* add docs check (#1516)

* add docs check

* add poetry.lock

* circuit-display: update css file to v0.9 (#1521)

* docs: update navbar config and theming submodule (#1523)

* update navbar config

* use latest quantinuum-sphinx

* fix some local build warnings

* bump quantinuum-sphinx (#1525)

* release 1.31.1 (#1522)

* update version and changelog

* Update pytket/docs/changelog.rst

* correct navbar links (#1527)

* Updated flake.lock to bring symengine-0.12.0 into nix (#1423)

* Update to pybind11 2.13.3 (#1531)

* Fix symbol substitution for classical operations (#1538)

* Update pybind11 and catch2 versions (#1539)

* docs: Add pytket-azure to list of extensions (#1540)

* feat: Refactor WASM module (#1503)

* feat: Refactor WASM module

- Add a new WasmModuleHandler class that takes raw wasm_module bytes on construction, but has the same interface as WasmFileHandler.
- WasmFileHandler now inherits from WasmModuleHandler.
- Split checking of the WASM module into a new function so it can be called after initialisation if required.
- Adds new cached properties, bytecode, bytecode_base64 and module_uid which allow lazy loading of the module in encoded form, or computation of a unique identifier for the module.
- Add deprecated properties _check_file, wasm_file_encoded and _wasmfileuid to maintain compatibility with existing versions of pytket-qir and pytket-quantinuum.
- Remove some exceptions that are no longer possible.

* Bugfix/incorrect multi line conditionals (#1510)

* Add failing tests

* Delay declaring registers

* Handle conditional blocks

* Raise error for conditional `RangePredicate`

* Refactor `mark_as_written`

* Refactor `self.range_preds`

* Replacing conditions with predicates

* Add changelog entry

* Format code

* Fix typing issue

* Add testcase for multi-bit condition

* Remove unnecessary 0 assignment

* reposition comment in test

* Fix order of `lower` and `upper` in constructing `RangePredicateOp` (#1549)

* fix: Add copy implementations for Unit IDs (#1550)

* Bump slackapi/slack-github-action from 1.26.0 to 1.27.0 (#1555)

Bumps [slackapi/slack-github-action](https://github.com/slackapi/slack-github-action) from 1.26.0 to 1.27.0.
- [Release notes](https://github.com/slackapi/slack-github-action/releases)
- [Commits](slackapi/slack-github-action@v1.26.0...v1.27.0)

---
updated-dependencies:
- dependency-name: slackapi/slack-github-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Update version and changelog. (#1557)

* Update to pybind11 2.13.5 (#1559)

* Update libs to boost 1.86.0. (#1560)

* Install pytket requirements before version consistency checks. (#1562)

* Run valgrind on ubuntu-24.04 (#1563)

* Allow constant ZZPhase fidelity in DecomposeTK2 (#1558)

feat: Allow constant ZZPhase fidelity in DecomposeTK2

Currently it is not possible to serialize the Decompose TK2 pass as it can include an arbitrary function. This commit
allows a constant float value in addition, which will allow serialization of the default compilation pass for pytket-quantinuum.

---------

Co-authored-by: Alec Edgington <alec.edgington@quantinuum.com>

* Use correct conan profile for valgrind build. (#1564)

* Update to boost 1.86.0, tktokenswap 0.3.9 and tkwsm 0.3.9 (#1561)

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: cqc-melf <70640934+cqc-melf@users.noreply.github.com>
Co-authored-by: Tiffany Duneau <37022011+DNA386@users.noreply.github.com>
Co-authored-by: Jake Arkinstall <65358059+jake-arkinstall@users.noreply.github.com>
Co-authored-by: Alec Edgington <54802828+cqc-alec@users.noreply.github.com>
Co-authored-by: John Children <32305209+johnchildren@users.noreply.github.com>
Co-authored-by: yao-cqc <75305462+yao-cqc@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Alec Edgington <alec.edgington@quantinuum.com>
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.

Quantum circuit with conditionals can cause RunTime error
2 participants