GCC Code Coverage Report


Directory: ./
File: Mapping/include/Mapping/AASLabelling.hpp
Date: 2022-10-15 05:10:18
Exec Total Coverage
Lines: 0 1 0.0%
Functions: 0 1 0.0%
Branches: 0 0 -%
Decisions: 0 0 -%

Line Branch Decision Exec Source
1 // Copyright 2019-2022 Cambridge Quantum Computing
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14
15 #pragma once
16
17 #include "Mapping/LexiRoute.hpp"
18 #include "Mapping/RoutingMethod.hpp"
19
20 namespace tket {
21
22 class AASLabellingMethod : public RoutingMethod {
23 public:
24 /**
25 * Checking and Routing methods redefined for dynamically assigning qubits to
26 * some Architecture.
27 */
28 AASLabellingMethod(){};
29
30 /**
31 * will place all the qubits of the given circuit that are not placed at the
32 * moment. All nodes assigend to placed qubits will not be changed
33 * @param mapping_frontier Contains boundary of routed/unrouted circuit for
34 * modifying
35 * @param architecture Architecture providing physical constraints
36 * @return bool if the method has been executed and logical to Physical
37 * mapping at boundary due to modification.
38 *
39 */
40 std::pair<bool, unit_map_t> routing_method(
41 std::shared_ptr<MappingFrontier>& mapping_frontier,
42 const ArchitecturePtr& architecture) const override;
43
44 nlohmann::json serialize() const override;
45
46 static AASLabellingMethod deserialize(const nlohmann::json& j);
47 };
48 } // namespace tket
49