diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index 4380bad8b..e3006bf66 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -12,7 +12,7 @@ permissions: jobs: build-sdist: name: 🐍 Packaging - uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-packaging-sdist.yml@7f8eeed7a3dba08e1e9be54966e5722f5753d0df # v1.17.7 + uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-packaging-sdist.yml@99170045e26c2564e9573174b573310e211fca72 # v1.17.10 # Builds wheels on all supported platforms using cibuildwheel. # The wheels are uploaded as GitHub artifacts `dev-cibw-*` or `cibw-*`, depending on whether @@ -31,7 +31,7 @@ jobs: windows-2022, windows-11-arm, ] - uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-packaging-wheel-cibuildwheel.yml@7f8eeed7a3dba08e1e9be54966e5722f5753d0df # v1.17.7 + uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-packaging-wheel-cibuildwheel.yml@99170045e26c2564e9573174b573310e211fca72 # v1.17.10 with: runs-on: ${{ matrix.runs-on }} setup-z3: true diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4f08d6cb2..13066adae 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,7 +14,7 @@ concurrency: jobs: change-detection: name: 🔍 Change - uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-change-detection.yml@7f8eeed7a3dba08e1e9be54966e5722f5753d0df # v1.17.7 + uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-change-detection.yml@99170045e26c2564e9573174b573310e211fca72 # v1.17.10 cpp-tests-ubuntu: name: 🇨‌ Test 🐧 @@ -30,7 +30,7 @@ jobs: - runs-on: ubuntu-24.04 compiler: gcc config: Debug - uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-tests-ubuntu.yml@7f8eeed7a3dba08e1e9be54966e5722f5753d0df # v1.17.7 + uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-tests-ubuntu.yml@99170045e26c2564e9573174b573310e211fca72 # v1.17.10 with: runs-on: ${{ matrix.runs-on }} compiler: ${{ matrix.compiler }} @@ -51,7 +51,7 @@ jobs: - runs-on: macos-14 compiler: clang config: Debug - uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-tests-macos.yml@7f8eeed7a3dba08e1e9be54966e5722f5753d0df # v1.17.7 + uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-tests-macos.yml@99170045e26c2564e9573174b573310e211fca72 # v1.17.10 with: runs-on: ${{ matrix.runs-on }} compiler: ${{ matrix.compiler }} @@ -73,7 +73,7 @@ jobs: - runs-on: windows-2022 compiler: msvc config: Debug - uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-tests-windows.yml@7f8eeed7a3dba08e1e9be54966e5722f5753d0df # v1.17.7 + uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-tests-windows.yml@99170045e26c2564e9573174b573310e211fca72 # v1.17.10 with: runs-on: ${{ matrix.runs-on }} compiler: ${{ matrix.compiler }} @@ -91,7 +91,7 @@ jobs: runs-on: [ubuntu-24.04, ubuntu-24.04-arm] compiler: [gcc, clang, clang-20, clang-21] config: [Release, Debug] - uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-tests-ubuntu.yml@7f8eeed7a3dba08e1e9be54966e5722f5753d0df # v1.17.7 + uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-tests-ubuntu.yml@99170045e26c2564e9573174b573310e211fca72 # v1.17.10 with: runs-on: ${{ matrix.runs-on }} compiler: ${{ matrix.compiler }} @@ -109,7 +109,7 @@ jobs: runs-on: [macos-14, macos-15, macos-15-intel] compiler: [clang, clang-20, clang-21, gcc-14, gcc-15] config: [Release, Debug] - uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-tests-macos.yml@7f8eeed7a3dba08e1e9be54966e5722f5753d0df # v1.17.7 + uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-tests-macos.yml@99170045e26c2564e9573174b573310e211fca72 # v1.17.10 with: runs-on: ${{ matrix.runs-on }} compiler: ${{ matrix.compiler }} @@ -128,7 +128,7 @@ jobs: runs-on: [windows-2022, windows-2025, windows-11-arm] compiler: [msvc, clang] config: [Release, Debug] - uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-tests-windows.yml@7f8eeed7a3dba08e1e9be54966e5722f5753d0df # v1.17.7 + uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-tests-windows.yml@99170045e26c2564e9573174b573310e211fca72 # v1.17.10 with: runs-on: ${{ matrix.runs-on }} compiler: ${{ matrix.compiler }} @@ -139,7 +139,7 @@ jobs: name: 🇨‌ Coverage needs: change-detection if: fromJSON(needs.change-detection.outputs.run-cpp-tests) - uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-coverage.yml@7f8eeed7a3dba08e1e9be54966e5722f5753d0df # v1.17.7 + uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-coverage.yml@99170045e26c2564e9573174b573310e211fca72 # v1.17.10 with: setup-z3: true permissions: @@ -151,7 +151,7 @@ jobs: name: 🇨‌ Lint needs: change-detection if: fromJSON(needs.change-detection.outputs.run-cpp-linter) - uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-linter.yml@7f8eeed7a3dba08e1e9be54966e5722f5753d0df # v1.17.7 + uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-linter.yml@99170045e26c2564e9573174b573310e211fca72 # v1.17.10 with: clang-version: 20 cmake-args: -DBUILD_MQT_QMAP_BINDINGS=ON @@ -176,7 +176,7 @@ jobs: macos-14, windows-2022, ] - uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-tests.yml@7f8eeed7a3dba08e1e9be54966e5722f5753d0df # v1.17.7 + uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-tests.yml@99170045e26c2564e9573174b573310e211fca72 # v1.17.10 with: runs-on: ${{ matrix.runs-on }} setup-z3: true @@ -185,7 +185,7 @@ jobs: name: 🐍 Coverage needs: [change-detection, python-tests] if: fromJSON(needs.change-detection.outputs.run-python-tests) - uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-coverage.yml@7f8eeed7a3dba08e1e9be54966e5722f5753d0df # v1.17.7 + uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-coverage.yml@99170045e26c2564e9573174b573310e211fca72 # v1.17.10 permissions: contents: read id-token: write @@ -199,7 +199,7 @@ jobs: fail-fast: false matrix: runs-on: [macos-15, windows-2025] - uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-tests.yml@7f8eeed7a3dba08e1e9be54966e5722f5753d0df # v1.17.7 + uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-tests.yml@99170045e26c2564e9573174b573310e211fca72 # v1.17.10 with: runs-on: ${{ matrix.runs-on }} setup-z3: true @@ -208,7 +208,7 @@ jobs: name: 🐍 Lint needs: change-detection if: fromJSON(needs.change-detection.outputs.run-python-tests) - uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-linter.yml@7f8eeed7a3dba08e1e9be54966e5722f5753d0df # v1.17.7 + uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-linter.yml@99170045e26c2564e9573174b573310e211fca72 # v1.17.10 with: setup-z3: true @@ -216,7 +216,7 @@ jobs: name: 🚀 CD needs: change-detection if: fromJSON(needs.change-detection.outputs.run-cd) - uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-packaging-sdist.yml@7f8eeed7a3dba08e1e9be54966e5722f5753d0df # v1.17.7 + uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-packaging-sdist.yml@99170045e26c2564e9573174b573310e211fca72 # v1.17.10 build-wheel: name: 🚀 CD @@ -234,7 +234,7 @@ jobs: windows-2022, windows-11-arm, ] - uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-packaging-wheel-cibuildwheel.yml@7f8eeed7a3dba08e1e9be54966e5722f5753d0df # v1.17.7 + uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-packaging-wheel-cibuildwheel.yml@99170045e26c2564e9573174b573310e211fca72 # v1.17.10 with: runs-on: ${{ matrix.runs-on }} setup-z3: true diff --git a/.github/workflows/update-mqt-core.yml b/.github/workflows/update-mqt-core.yml index fa135530e..c3bfc5d36 100644 --- a/.github/workflows/update-mqt-core.yml +++ b/.github/workflows/update-mqt-core.yml @@ -21,7 +21,7 @@ concurrency: jobs: update-mqt-core: name: ⬆️ Update MQT Core - uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-mqt-core-update.yml@7f8eeed7a3dba08e1e9be54966e5722f5753d0df # v1.17.7 + uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-mqt-core-update.yml@99170045e26c2564e9573174b573310e211fca72 # v1.17.10 with: update-to-head: ${{ github.event.inputs.update-to-head == 'true' }} secrets: diff --git a/.github/workflows/upstream.yml b/.github/workflows/upstream.yml index 1b3535e64..d8e651e6a 100644 --- a/.github/workflows/upstream.yml +++ b/.github/workflows/upstream.yml @@ -19,7 +19,7 @@ jobs: fail-fast: false matrix: runs-on: [ubuntu-24.04, macos-14, windows-2022] - uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-qiskit-upstream-tests.yml@7f8eeed7a3dba08e1e9be54966e5722f5753d0df # v1.17.7 + uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-qiskit-upstream-tests.yml@99170045e26c2564e9573174b573310e211fca72 # v1.17.10 with: runs-on: ${{ matrix.runs-on }} setup-z3: true @@ -28,7 +28,7 @@ jobs: name: Create issue on failure needs: qiskit-upstream-tests if: ${{ always() }} - uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-qiskit-upstream-issue.yml@7f8eeed7a3dba08e1e9be54966e5722f5753d0df # v1.17.7 + uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-qiskit-upstream-issue.yml@99170045e26c2564e9573174b573310e211fca72 # v1.17.10 with: tests-result: ${{ needs.qiskit-upstream-tests.result }} permissions: diff --git a/.license-tools-config.json b/.license-tools-config.json index 4dee573ae..741379c13 100644 --- a/.license-tools-config.json +++ b/.license-tools-config.json @@ -1,9 +1,10 @@ { "author": { - "name": "Chair for Design Automation, TUM\nCopyright (c) 2025 Munich Quantum Software Company GmbH", - "years": [2023, 2025] + "name": "Chair for Design Automation, TUM\nCopyright (c) 2025 - 2026 Munich Quantum Software Company GmbH", + "years": [2023, 2026] }, "force_author": true, + "force_license": true, "license": "MIT", "title": false, "include": ["**/*"], diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index cb80ab64e..466e1749a 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -66,7 +66,7 @@ repos: # Ensure uv lock file is up-to-date - repo: https://github.com/astral-sh/uv-pre-commit - rev: 0.9.18 + rev: 0.9.21 hooks: - id: uv-lock @@ -100,8 +100,8 @@ repos: - mqt.core>=3.2.1 # Check for spelling - - repo: https://github.com/crate-ci/typos - rev: v1.40.0 + - repo: https://github.com/adhtruong/mirrors-typos + rev: v1.41.0 hooks: - id: typos @@ -154,7 +154,7 @@ repos: # Check the pyproject.toml file - repo: https://github.com/henryiii/validate-pyproject-schema-store - rev: 2025.11.21 + rev: 2026.01.02 hooks: - id: validate-pyproject diff --git a/CMakeLists.txt b/CMakeLists.txt index 084331443..eb7d2be0a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,5 @@ -# Copyright (c) 2023 - 2025 Chair for Design Automation, TUM -# Copyright (c) 2025 Munich Quantum Software Company GmbH +# Copyright (c) 2023 - 2026 Chair for Design Automation, TUM +# Copyright (c) 2025 - 2026 Munich Quantum Software Company GmbH # All rights reserved. # # SPDX-License-Identifier: MIT diff --git a/bindings/CMakeLists.txt b/bindings/CMakeLists.txt index a48cbd3d4..ba7af1ee3 100644 --- a/bindings/CMakeLists.txt +++ b/bindings/CMakeLists.txt @@ -1,5 +1,5 @@ -# Copyright (c) 2023 - 2025 Chair for Design Automation, TUM -# Copyright (c) 2025 Munich Quantum Software Company GmbH +# Copyright (c) 2023 - 2026 Chair for Design Automation, TUM +# Copyright (c) 2025 - 2026 Munich Quantum Software Company GmbH # All rights reserved. # # SPDX-License-Identifier: MIT diff --git a/bindings/clifford_synthesis/CMakeLists.txt b/bindings/clifford_synthesis/CMakeLists.txt index 421e13f1a..6df3ca3b5 100644 --- a/bindings/clifford_synthesis/CMakeLists.txt +++ b/bindings/clifford_synthesis/CMakeLists.txt @@ -1,5 +1,5 @@ -# Copyright (c) 2023 - 2025 Chair for Design Automation, TUM -# Copyright (c) 2025 Munich Quantum Software Company GmbH +# Copyright (c) 2023 - 2026 Chair for Design Automation, TUM +# Copyright (c) 2025 - 2026 Munich Quantum Software Company GmbH # All rights reserved. # # SPDX-License-Identifier: MIT diff --git a/bindings/clifford_synthesis/clifford_synthesis.cpp b/bindings/clifford_synthesis/clifford_synthesis.cpp index 9f671283b..e9f87dc9e 100644 --- a/bindings/clifford_synthesis/clifford_synthesis.cpp +++ b/bindings/clifford_synthesis/clifford_synthesis.cpp @@ -1,6 +1,6 @@ /* - * Copyright (c) 2023 - 2025 Chair for Design Automation, TUM - * Copyright (c) 2025 Munich Quantum Software Company GmbH + * Copyright (c) 2023 - 2026 Chair for Design Automation, TUM + * Copyright (c) 2025 - 2026 Munich Quantum Software Company GmbH * All rights reserved. * * SPDX-License-Identifier: MIT diff --git a/bindings/hybrid_mapper/CMakeLists.txt b/bindings/hybrid_mapper/CMakeLists.txt index 1d10c7a89..88e6005db 100644 --- a/bindings/hybrid_mapper/CMakeLists.txt +++ b/bindings/hybrid_mapper/CMakeLists.txt @@ -1,5 +1,5 @@ -# Copyright (c) 2023 - 2025 Chair for Design Automation, TUM -# Copyright (c) 2025 Munich Quantum Software Company GmbH +# Copyright (c) 2023 - 2026 Chair for Design Automation, TUM +# Copyright (c) 2025 - 2026 Munich Quantum Software Company GmbH # All rights reserved. # # SPDX-License-Identifier: MIT diff --git a/bindings/hybrid_mapper/hybrid_mapper.cpp b/bindings/hybrid_mapper/hybrid_mapper.cpp index baedf2407..f54def7ee 100644 --- a/bindings/hybrid_mapper/hybrid_mapper.cpp +++ b/bindings/hybrid_mapper/hybrid_mapper.cpp @@ -1,6 +1,6 @@ /* - * Copyright (c) 2023 - 2025 Chair for Design Automation, TUM - * Copyright (c) 2025 Munich Quantum Software Company GmbH + * Copyright (c) 2023 - 2026 Chair for Design Automation, TUM + * Copyright (c) 2025 - 2026 Munich Quantum Software Company GmbH * All rights reserved. * * SPDX-License-Identifier: MIT diff --git a/bindings/na/CMakeLists.txt b/bindings/na/CMakeLists.txt index 680296dd3..abb4880e2 100644 --- a/bindings/na/CMakeLists.txt +++ b/bindings/na/CMakeLists.txt @@ -1,5 +1,5 @@ -# Copyright (c) 2023 - 2025 Chair for Design Automation, TUM -# Copyright (c) 2025 Munich Quantum Software Company GmbH +# Copyright (c) 2023 - 2026 Chair for Design Automation, TUM +# Copyright (c) 2025 - 2026 Munich Quantum Software Company GmbH # All rights reserved. # # SPDX-License-Identifier: MIT diff --git a/bindings/na/nasp/CMakeLists.txt b/bindings/na/nasp/CMakeLists.txt index dce1fa201..5d0e3c274 100644 --- a/bindings/na/nasp/CMakeLists.txt +++ b/bindings/na/nasp/CMakeLists.txt @@ -1,5 +1,5 @@ -# Copyright (c) 2023 - 2025 Chair for Design Automation, TUM -# Copyright (c) 2025 Munich Quantum Software Company GmbH +# Copyright (c) 2023 - 2026 Chair for Design Automation, TUM +# Copyright (c) 2025 - 2026 Munich Quantum Software Company GmbH # All rights reserved. # # SPDX-License-Identifier: MIT diff --git a/bindings/na/nasp/nasp.cpp b/bindings/na/nasp/nasp.cpp index dcdb894fa..22ec47df7 100644 --- a/bindings/na/nasp/nasp.cpp +++ b/bindings/na/nasp/nasp.cpp @@ -1,6 +1,6 @@ /* - * Copyright (c) 2023 - 2025 Chair for Design Automation, TUM - * Copyright (c) 2025 Munich Quantum Software Company GmbH + * Copyright (c) 2023 - 2026 Chair for Design Automation, TUM + * Copyright (c) 2025 - 2026 Munich Quantum Software Company GmbH * All rights reserved. * * SPDX-License-Identifier: MIT diff --git a/bindings/na/zoned/CMakeLists.txt b/bindings/na/zoned/CMakeLists.txt index 7f7782eea..918599925 100644 --- a/bindings/na/zoned/CMakeLists.txt +++ b/bindings/na/zoned/CMakeLists.txt @@ -1,5 +1,5 @@ -# Copyright (c) 2023 - 2025 Chair for Design Automation, TUM -# Copyright (c) 2025 Munich Quantum Software Company GmbH +# Copyright (c) 2023 - 2026 Chair for Design Automation, TUM +# Copyright (c) 2025 - 2026 Munich Quantum Software Company GmbH # All rights reserved. # # SPDX-License-Identifier: MIT diff --git a/bindings/na/zoned/zoned.cpp b/bindings/na/zoned/zoned.cpp index 86ba2bdbc..11e8b8f8c 100644 --- a/bindings/na/zoned/zoned.cpp +++ b/bindings/na/zoned/zoned.cpp @@ -1,6 +1,6 @@ /* - * Copyright (c) 2023 - 2025 Chair for Design Automation, TUM - * Copyright (c) 2025 Munich Quantum Software Company GmbH + * Copyright (c) 2023 - 2026 Chair for Design Automation, TUM + * Copyright (c) 2025 - 2026 Munich Quantum Software Company GmbH * All rights reserved. * * SPDX-License-Identifier: MIT @@ -243,4 +243,105 @@ PYBIND11_MODULE(MQT_QMAP_MODULE_NAME, m, py::mod_gil_not_used()) { [](const na::zoned::RoutingAwareCompiler& self) -> nlohmann::json { return self.getStatistics(); }); + + //===--------------------------------------------------------------------===// + // Placement and Routing-aware Compiler + //===--------------------------------------------------------------------===// + py::class_ + placementAndRoutingAwareCompiler(m, "PlacementAndRoutingAwareCompiler"); + { + const na::zoned::PlacementAndRoutingAwareCompiler::Config defaultConfig; + placementAndRoutingAwareCompiler.def( + py::init( + [](const na::zoned::Architecture& arch, const std::string& logLevel, + const double maxFillingFactor, const bool useWindow, + const size_t windowMinWidth, const double windowRatio, + const double windowShare, + const na::zoned::HeuristicPlacer::Config::Method placementMethod, + const float deepeningFactor, const float deepeningValue, + const float lookaheadFactor, const float reuseLevel, + const size_t maxNodes, const size_t trials, + const size_t queueCapacity, + const na::zoned::IndependentSetRouter::Config::Method + routingMethod, + const double preferSplit, const bool warnUnsupportedGates) + -> na::zoned::PlacementAndRoutingAwareCompiler { + na::zoned::PlacementAndRoutingAwareCompiler::Config config; + config.logLevel = spdlog::level::from_str(logLevel); + config.schedulerConfig.maxFillingFactor = maxFillingFactor; + + config.layoutSynthesizerConfig.placerConfig = { + .useWindow = useWindow, + .windowMinWidth = windowMinWidth, + .windowRatio = windowRatio, + .windowShare = windowShare, + .method = placementMethod, + .deepeningFactor = deepeningFactor, + .deepeningValue = deepeningValue, + .lookaheadFactor = lookaheadFactor, + .reuseLevel = reuseLevel, + .maxNodes = maxNodes, + .trials = trials, + .queueCapacity = queueCapacity, + }; + config.layoutSynthesizerConfig.routerConfig = { + .method = routingMethod, .preferSplit = preferSplit}; + config.codeGeneratorConfig = {.warnUnsupportedGates = + warnUnsupportedGates}; + return {arch, config}; + }), + py::keep_alive<1, 2>(), "arch"_a, + "log_level"_a = spdlog::level::to_short_c_str(defaultConfig.logLevel), + "max_filling_factor"_a = defaultConfig.schedulerConfig.maxFillingFactor, + "use_window"_a = + defaultConfig.layoutSynthesizerConfig.placerConfig.useWindow, + "window_min_width"_a = + defaultConfig.layoutSynthesizerConfig.placerConfig.windowMinWidth, + "window_ratio"_a = + defaultConfig.layoutSynthesizerConfig.placerConfig.windowRatio, + "window_share"_a = + defaultConfig.layoutSynthesizerConfig.placerConfig.windowShare, + "placement_method"_a = + defaultConfig.layoutSynthesizerConfig.placerConfig.method, + "deepening_factor"_a = + defaultConfig.layoutSynthesizerConfig.placerConfig.deepeningFactor, + "deepening_value"_a = + defaultConfig.layoutSynthesizerConfig.placerConfig.deepeningValue, + "lookahead_factor"_a = + defaultConfig.layoutSynthesizerConfig.placerConfig.lookaheadFactor, + "reuse_level"_a = + defaultConfig.layoutSynthesizerConfig.placerConfig.reuseLevel, + "max_nodes"_a = + defaultConfig.layoutSynthesizerConfig.placerConfig.maxNodes, + "trials"_a = defaultConfig.layoutSynthesizerConfig.placerConfig.trials, + "queue_capacity"_a = + defaultConfig.layoutSynthesizerConfig.placerConfig.queueCapacity, + "routing_method"_a = + defaultConfig.layoutSynthesizerConfig.routerConfig.method, + "prefer_split"_a = + defaultConfig.layoutSynthesizerConfig.routerConfig.preferSplit, + "warn_unsupported_gates"_a = + defaultConfig.codeGeneratorConfig.warnUnsupportedGates); + } + placementAndRoutingAwareCompiler.def_static( + "from_json_string", + [](const na::zoned::Architecture& arch, const std::string& json) + -> na::zoned::PlacementAndRoutingAwareCompiler { + // The correct header is included, but clang-tidy + // confuses it with the wrong forward header + // NOLINTNEXTLINE(misc-include-cleaner) + return {arch, nlohmann::json::parse(json)}; + }, + "arch"_a, "json"_a); + placementAndRoutingAwareCompiler.def( + "compile", + [](na::zoned::PlacementAndRoutingAwareCompiler& self, + const qc::QuantumComputation& qc) -> std::string { + return self.compile(qc).toString(); + }, + "qc"_a); + placementAndRoutingAwareCompiler.def( + "stats", + [](const na::zoned::PlacementAndRoutingAwareCompiler& self) + -> nlohmann::json { return self.getStatistics(); }); } diff --git a/bindings/sc/CMakeLists.txt b/bindings/sc/CMakeLists.txt index 734acac81..7223b9bad 100644 --- a/bindings/sc/CMakeLists.txt +++ b/bindings/sc/CMakeLists.txt @@ -1,5 +1,5 @@ -# Copyright (c) 2023 - 2025 Chair for Design Automation, TUM -# Copyright (c) 2025 Munich Quantum Software Company GmbH +# Copyright (c) 2023 - 2026 Chair for Design Automation, TUM +# Copyright (c) 2025 - 2026 Munich Quantum Software Company GmbH # All rights reserved. # # SPDX-License-Identifier: MIT diff --git a/bindings/sc/sc.cpp b/bindings/sc/sc.cpp index fbd1bbaf4..f954028f7 100644 --- a/bindings/sc/sc.cpp +++ b/bindings/sc/sc.cpp @@ -1,6 +1,6 @@ /* - * Copyright (c) 2023 - 2025 Chair for Design Automation, TUM - * Copyright (c) 2025 Munich Quantum Software Company GmbH + * Copyright (c) 2023 - 2026 Chair for Design Automation, TUM + * Copyright (c) 2025 - 2026 Munich Quantum Software Company GmbH * All rights reserved. * * SPDX-License-Identifier: MIT diff --git a/cmake/ExternalDependencies.cmake b/cmake/ExternalDependencies.cmake index e0151de0f..15297a7c1 100644 --- a/cmake/ExternalDependencies.cmake +++ b/cmake/ExternalDependencies.cmake @@ -1,5 +1,5 @@ -# Copyright (c) 2023 - 2025 Chair for Design Automation, TUM -# Copyright (c) 2025 Munich Quantum Software Company GmbH +# Copyright (c) 2023 - 2026 Chair for Design Automation, TUM +# Copyright (c) 2025 - 2026 Munich Quantum Software Company GmbH # All rights reserved. # # SPDX-License-Identifier: MIT diff --git a/cmake/FindZ3.cmake b/cmake/FindZ3.cmake index 5a9ccec77..9a65d48f4 100644 --- a/cmake/FindZ3.cmake +++ b/cmake/FindZ3.cmake @@ -1,5 +1,5 @@ -# Copyright (c) 2023 - 2025 Chair for Design Automation, TUM -# Copyright (c) 2025 Munich Quantum Software Company GmbH +# Copyright (c) 2023 - 2026 Chair for Design Automation, TUM +# Copyright (c) 2025 - 2026 Munich Quantum Software Company GmbH # All rights reserved. # # SPDX-License-Identifier: MIT diff --git a/cmake/cmake_uninstall.cmake.in b/cmake/cmake_uninstall.cmake.in index 975508861..26b8ca693 100644 --- a/cmake/cmake_uninstall.cmake.in +++ b/cmake/cmake_uninstall.cmake.in @@ -1,5 +1,5 @@ -# Copyright (c) 2023 - 2025 Chair for Design Automation, TUM -# Copyright (c) 2025 Munich Quantum Software Company GmbH +# Copyright (c) 2023 - 2026 Chair for Design Automation, TUM +# Copyright (c) 2025 - 2026 Munich Quantum Software Company GmbH # All rights reserved. # # SPDX-License-Identifier: MIT diff --git a/cmake/try_z3.cpp b/cmake/try_z3.cpp index fafd612b5..c75f81212 100644 --- a/cmake/try_z3.cpp +++ b/cmake/try_z3.cpp @@ -1,6 +1,6 @@ /* - * Copyright (c) 2023 - 2025 Chair for Design Automation, TUM - * Copyright (c) 2025 Munich Quantum Software Company GmbH + * Copyright (c) 2023 - 2026 Chair for Design Automation, TUM + * Copyright (c) 2025 - 2026 Munich Quantum Software Company GmbH * All rights reserved. * * SPDX-License-Identifier: MIT diff --git a/docs/conf.py b/docs/conf.py index a3460daad..699ad1151 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -1,5 +1,5 @@ -# Copyright (c) 2023 - 2025 Chair for Design Automation, TUM -# Copyright (c) 2025 Munich Quantum Software Company GmbH +# Copyright (c) 2023 - 2026 Chair for Design Automation, TUM +# Copyright (c) 2025 - 2026 Munich Quantum Software Company GmbH # All rights reserved. # # SPDX-License-Identifier: MIT @@ -48,7 +48,7 @@ project = "MQT QMAP" author = "Chair for Design Automation, TUM & Munich Quantum Software Company" language = "en" -project_copyright = "2023 - 2025 Chair for Design Automation, TUM & 2025 Munich Quantum Software Company" +project_copyright = "2023 - 2026 Chair for Design Automation, TUM & 2025 - 2026 Munich Quantum Software Company" master_doc = "index" diff --git a/docs/images/linear_arch.svg b/docs/images/linear_arch.svg index 79453c80b..cc468c592 100644 --- a/docs/images/linear_arch.svg +++ b/docs/images/linear_arch.svg @@ -1,7 +1,7 @@