diff --git a/docs/tket/api/BiMapHeaders_8hpp.html b/docs/tket/api/BiMapHeaders_8hpp.html index 49d19049f8..8090dfd0ad 100644 --- a/docs/tket/api/BiMapHeaders_8hpp.html +++ b/docs/tket/api/BiMapHeaders_8hpp.html @@ -91,66 +91,66 @@
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/docs/tket/api/BiMapHeaders_8hpp__dep__incl.map b/docs/tket/api/BiMapHeaders_8hpp__dep__incl.map index 0d076503f2..f04a8e7e1c 100644 --- a/docs/tket/api/BiMapHeaders_8hpp__dep__incl.map +++ b/docs/tket/api/BiMapHeaders_8hpp__dep__incl.map @@ -1,62 +1,62 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/tket/api/BiMapHeaders_8hpp__dep__incl.md5 b/docs/tket/api/BiMapHeaders_8hpp__dep__incl.md5 index e970b2e88b..c073656ee6 100644 --- a/docs/tket/api/BiMapHeaders_8hpp__dep__incl.md5 +++ b/docs/tket/api/BiMapHeaders_8hpp__dep__incl.md5 @@ -1 +1 @@ -b7ba52148e02ba960b34838163f7717b \ No newline at end of file +11192d902f59bfca86b832e5a4463de1 \ No newline at end of file diff --git a/docs/tket/api/BiMapHeaders_8hpp__dep__incl.png b/docs/tket/api/BiMapHeaders_8hpp__dep__incl.png index 01267c67fd..fda255e20c 100644 Binary files a/docs/tket/api/BiMapHeaders_8hpp__dep__incl.png and b/docs/tket/api/BiMapHeaders_8hpp__dep__incl.png differ diff --git a/docs/tket/api/Boxes_8hpp.html b/docs/tket/api/Boxes_8hpp.html index caa77ea20b..c8a483a6e9 100644 --- a/docs/tket/api/Boxes_8hpp.html +++ b/docs/tket/api/Boxes_8hpp.html @@ -155,66 +155,66 @@
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/docs/tket/api/Boxes_8hpp__dep__incl.map b/docs/tket/api/Boxes_8hpp__dep__incl.map index 4fbeb9c4c9..9880894624 100644 --- a/docs/tket/api/Boxes_8hpp__dep__incl.map +++ b/docs/tket/api/Boxes_8hpp__dep__incl.map @@ -1,62 +1,62 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/tket/api/Boxes_8hpp__dep__incl.md5 b/docs/tket/api/Boxes_8hpp__dep__incl.md5 index b3374a7111..dc6f2fe476 100644 --- a/docs/tket/api/Boxes_8hpp__dep__incl.md5 +++ b/docs/tket/api/Boxes_8hpp__dep__incl.md5 @@ -1 +1 @@ -ccba539efc406b76ffbdadb59ea6027e \ No newline at end of file +7c1eb28e361d84d0bd96142ba077c28e \ No newline at end of file diff --git a/docs/tket/api/Boxes_8hpp__dep__incl.png b/docs/tket/api/Boxes_8hpp__dep__incl.png index 719129b254..a5e37c7e6a 100644 Binary files a/docs/tket/api/Boxes_8hpp__dep__incl.png and b/docs/tket/api/Boxes_8hpp__dep__incl.png differ diff --git a/docs/tket/api/CircUtils_8cpp_source.html b/docs/tket/api/CircUtils_8cpp_source.html index 9465f8435e..ba51f577e0 100644 --- a/docs/tket/api/CircUtils_8cpp_source.html +++ b/docs/tket/api/CircUtils_8cpp_source.html @@ -1513,7 +1513,7 @@
tket::with_TK2
Circuit with_TK2(Gate_ptr op)
Express a gate as a circuit using TK2 as the only multi-qubit gate.
Definition: CircUtils.cpp:409
tket::SliceVec
std::vector< Slice > SliceVec
Definition: Circuit.hpp:61
tket::is_unitary
bool is_unitary(const Eigen::MatrixXcd &U, double tol)
Test matrix for unitarity.
Definition: MatrixAnalysis.cpp:31
-
tket::is_projective_type
bool is_projective_type(OpType optype)
Test for measurement and reset gates.
Definition: OpTypeFunctions.cpp:249
+
tket::is_projective_type
bool is_projective_type(OpType optype)
Test for measurement and reset gates.
Definition: OpTypeFunctions.cpp:250
tket::get_matrix_from_circ
Eigen::Matrix2cd get_matrix_from_circ(const Circuit &circ)
Convert a one-qubit circuit of TK1 operations to its corresponding matrix.
Definition: CircUtils.cpp:47
tket::get_matrix
Eigen::Matrix2cd get_matrix(const Circuit &circ, const Vertex &vert)
Convert a vertex holding a TK1 operation to its corresponding matrix.
Definition: CircUtils.cpp:37
tket::get_information_content
std::tuple< Eigen::Matrix4cd, std::array< double, 3 >, Eigen::Matrix4cd > get_information_content(const Eigen::Matrix4cd &X)
Performs KAK decomposition.
Definition: MatrixAnalysis.cpp:308
@@ -1523,12 +1523,12 @@
tket::unit_vector_t
std::vector< UnitID > unit_vector_t
Definition: UnitID.hpp:310
tket::UnitType::Qubit
@ Qubit
tket::fmodn
double fmodn(double x, unsigned n)
Evaluate modulo n in the range [0,n)
Definition: Expression.cpp:30
-
tket::is_single_qubit_type
bool is_single_qubit_type(OpType optype)
Test for gates over a single qubit.
Definition: OpTypeFunctions.cpp:217
+
tket::is_single_qubit_type
bool is_single_qubit_type(OpType optype)
Test for gates over a single qubit.
Definition: OpTypeFunctions.cpp:218
tket::DAG
boost::adjacency_list< boost::listS, boost::listS, boost::bidirectionalS, boost::property< boost::vertex_index_t, int, VertexProperties >, EdgeProperties > DAG
Graph representing a circuit, with operations as nodes.
Definition: DAGDefs.hpp:70
tket::is_box_type
bool is_box_type(OpType optype)
Test for boxes (complex packaged operations)
Definition: OpTypeFunctions.cpp:164
tket::decompose_2cx_DV
std::pair< Circuit, Complex > decompose_2cx_DV(const Eigen::Matrix4cd &U)
Decompose a unitary matrix into a 2-CXs preceding a diagonal operator.
Definition: CircUtils.cpp:261
tket::qubit_vector_t
std::vector< Qubit > qubit_vector_t
Definition: UnitID.hpp:314
-
tket::is_controlled_gate_type
bool is_controlled_gate_type(OpType optype)
Test for controlled gates.
Definition: OpTypeFunctions.cpp:257
+
tket::is_controlled_gate_type
bool is_controlled_gate_type(OpType optype)
Test for controlled gates.
Definition: OpTypeFunctions.cpp:258
tket::eval_expr_mod
std::optional< double > eval_expr_mod(const Expr &e, unsigned n)
Evaluate an expression modulo n.
Definition: Expression.cpp:79
tket::PI
constexpr double PI
Definition: Constants.hpp:41
tket::VertexVec
std::vector< Vertex > VertexVec
Definition: DAGDefs.hpp:75
diff --git a/docs/tket/api/CircuitSimulator_8hpp.html b/docs/tket/api/CircuitSimulator_8hpp.html index 9901578971..fad8cb05ff 100644 --- a/docs/tket/api/CircuitSimulator_8hpp.html +++ b/docs/tket/api/CircuitSimulator_8hpp.html @@ -126,66 +126,66 @@
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/docs/tket/api/CircuitSimulator_8hpp__dep__incl.map b/docs/tket/api/CircuitSimulator_8hpp__dep__incl.map index 7917265d03..d1f1d6232d 100644 --- a/docs/tket/api/CircuitSimulator_8hpp__dep__incl.map +++ b/docs/tket/api/CircuitSimulator_8hpp__dep__incl.map @@ -1,62 +1,62 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/tket/api/CircuitSimulator_8hpp__dep__incl.md5 b/docs/tket/api/CircuitSimulator_8hpp__dep__incl.md5 index def7dd7db5..3d53586a63 100644 --- a/docs/tket/api/CircuitSimulator_8hpp__dep__incl.md5 +++ b/docs/tket/api/CircuitSimulator_8hpp__dep__incl.md5 @@ -1 +1 @@ -3bc81a158fbbf6450c6d44d744fbde9e \ No newline at end of file +fac3083fb436ef0c9a9601ac68029b8b \ No newline at end of file diff --git a/docs/tket/api/CircuitSimulator_8hpp__dep__incl.png b/docs/tket/api/CircuitSimulator_8hpp__dep__incl.png index 4bedd19b97..ae336d16d7 100644 Binary files a/docs/tket/api/CircuitSimulator_8hpp__dep__incl.png and b/docs/tket/api/CircuitSimulator_8hpp__dep__incl.png differ diff --git a/docs/tket/api/Circuit_8hpp.html b/docs/tket/api/Circuit_8hpp.html index bdb4e69258..61ba0d459e 100644 --- a/docs/tket/api/Circuit_8hpp.html +++ b/docs/tket/api/Circuit_8hpp.html @@ -180,66 +180,66 @@
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/docs/tket/api/Circuit_8hpp__dep__incl.map b/docs/tket/api/Circuit_8hpp__dep__incl.map index 74bcdb0091..ba3b66bb8b 100644 --- a/docs/tket/api/Circuit_8hpp__dep__incl.map +++ b/docs/tket/api/Circuit_8hpp__dep__incl.map @@ -1,62 +1,62 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/tket/api/Circuit_8hpp__dep__incl.md5 b/docs/tket/api/Circuit_8hpp__dep__incl.md5 index 32162b8333..9d9325177f 100644 --- a/docs/tket/api/Circuit_8hpp__dep__incl.md5 +++ b/docs/tket/api/Circuit_8hpp__dep__incl.md5 @@ -1 +1 @@ -fd03c130bf09ff0208edeaf5d8018749 \ No newline at end of file +447c4b6549e6ca77789389c5cf2333f6 \ No newline at end of file diff --git a/docs/tket/api/Circuit_8hpp__dep__incl.png b/docs/tket/api/Circuit_8hpp__dep__incl.png index a43dc6a66f..409b663553 100644 Binary files a/docs/tket/api/Circuit_8hpp__dep__incl.png and b/docs/tket/api/Circuit_8hpp__dep__incl.png differ diff --git a/docs/tket/api/ClassicalExpBox_8hpp.html b/docs/tket/api/ClassicalExpBox_8hpp.html index 79854df4a7..65b1e76186 100644 --- a/docs/tket/api/ClassicalExpBox_8hpp.html +++ b/docs/tket/api/ClassicalExpBox_8hpp.html @@ -145,66 +145,66 @@
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/docs/tket/api/ClassicalExpBox_8hpp__dep__incl.map b/docs/tket/api/ClassicalExpBox_8hpp__dep__incl.map index b15ae4c5d6..89a86b534f 100644 --- a/docs/tket/api/ClassicalExpBox_8hpp__dep__incl.map +++ b/docs/tket/api/ClassicalExpBox_8hpp__dep__incl.map @@ -1,62 +1,62 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/tket/api/ClassicalExpBox_8hpp__dep__incl.md5 b/docs/tket/api/ClassicalExpBox_8hpp__dep__incl.md5 index b2a0293219..89cef0e196 100644 --- a/docs/tket/api/ClassicalExpBox_8hpp__dep__incl.md5 +++ b/docs/tket/api/ClassicalExpBox_8hpp__dep__incl.md5 @@ -1 +1 @@ -0c6d0fe74f8b4fc658d241feea505934 \ No newline at end of file +647ff9b1d82e43d44a2c980b2096c574 \ No newline at end of file diff --git a/docs/tket/api/ClassicalExpBox_8hpp__dep__incl.png b/docs/tket/api/ClassicalExpBox_8hpp__dep__incl.png index ace4e0eeee..c561e8f6b3 100644 Binary files a/docs/tket/api/ClassicalExpBox_8hpp__dep__incl.png and b/docs/tket/api/ClassicalExpBox_8hpp__dep__incl.png differ diff --git a/docs/tket/api/Command_8hpp.html b/docs/tket/api/Command_8hpp.html index 1c03c0ba39..2321b3f2b8 100644 --- a/docs/tket/api/Command_8hpp.html +++ b/docs/tket/api/Command_8hpp.html @@ -153,66 +153,66 @@
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/docs/tket/api/Command_8hpp__dep__incl.map b/docs/tket/api/Command_8hpp__dep__incl.map index f51e9e91de..1878dad828 100644 --- a/docs/tket/api/Command_8hpp__dep__incl.map +++ b/docs/tket/api/Command_8hpp__dep__incl.map @@ -1,62 +1,62 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/tket/api/Command_8hpp__dep__incl.md5 b/docs/tket/api/Command_8hpp__dep__incl.md5 index 2f8be2504b..2505facd02 100644 --- a/docs/tket/api/Command_8hpp__dep__incl.md5 +++ b/docs/tket/api/Command_8hpp__dep__incl.md5 @@ -1 +1 @@ -4e428e06ac56d586f2661a9c99e85b63 \ No newline at end of file +63af5f70a376971f233b14f804a9b7ac \ No newline at end of file diff --git a/docs/tket/api/Command_8hpp__dep__incl.png b/docs/tket/api/Command_8hpp__dep__incl.png index 664808fa7a..f6da40c4d7 100644 Binary files a/docs/tket/api/Command_8hpp__dep__incl.png and b/docs/tket/api/Command_8hpp__dep__incl.png differ diff --git a/docs/tket/api/Conditional_8hpp.html b/docs/tket/api/Conditional_8hpp.html index 365ee7d07b..6e73bc45c9 100644 --- a/docs/tket/api/Conditional_8hpp.html +++ b/docs/tket/api/Conditional_8hpp.html @@ -136,66 +136,66 @@
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/docs/tket/api/Conditional_8hpp__dep__incl.map b/docs/tket/api/Conditional_8hpp__dep__incl.map index 0576114d27..583d988115 100644 --- a/docs/tket/api/Conditional_8hpp__dep__incl.map +++ b/docs/tket/api/Conditional_8hpp__dep__incl.map @@ -1,62 +1,62 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/tket/api/Conditional_8hpp__dep__incl.md5 b/docs/tket/api/Conditional_8hpp__dep__incl.md5 index 59fbab9fa2..db3fea4725 100644 --- a/docs/tket/api/Conditional_8hpp__dep__incl.md5 +++ b/docs/tket/api/Conditional_8hpp__dep__incl.md5 @@ -1 +1 @@ -5b1a07bd54ce26955adf54b834599a7b \ No newline at end of file +78b9a7e718b7c45a36b35f98efb32a67 \ No newline at end of file diff --git a/docs/tket/api/Conditional_8hpp__dep__incl.png b/docs/tket/api/Conditional_8hpp__dep__incl.png index 32de9f9ac7..2350d541ca 100644 Binary files a/docs/tket/api/Conditional_8hpp__dep__incl.png and b/docs/tket/api/Conditional_8hpp__dep__incl.png differ diff --git a/docs/tket/api/ConjugationBox_8cpp.html b/docs/tket/api/ConjugationBox_8cpp.html new file mode 100644 index 0000000000..fc0b5f2dc7 --- /dev/null +++ b/docs/tket/api/ConjugationBox_8cpp.html @@ -0,0 +1,168 @@ + + + + + + + +tket: src/Circuit/ConjugationBox.cpp File Reference + + + + + + + + + + + +
+
+ + + + + + +
+
tket +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+Namespaces
+
+
ConjugationBox.cpp File Reference
+
+
+
#include "tket/Circuit/ConjugationBox.hpp"
+#include "tket/Circuit/Circuit.hpp"
+#include "tket/Ops/OpJsonFactory.hpp"
+#include "tket/Utils/HelperFunctions.hpp"
+#include "tket/Utils/Json.hpp"
+
+Include dependency graph for ConjugationBox.cpp:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Go to the source code of this file.

+ + + + + +

+Namespaces

 tket
 Defines tket::DeviceCharacterisation, used in NoiseAwarePlacement and in commute_SQ_gates_through_SWAPS as a simple device noise model.
 
+
+ + + + diff --git a/docs/tket/api/ConjugationBox_8cpp__incl.map b/docs/tket/api/ConjugationBox_8cpp__incl.map new file mode 100644 index 0000000000..416a77f63e --- /dev/null +++ b/docs/tket/api/ConjugationBox_8cpp__incl.map @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/tket/api/ConjugationBox_8cpp__incl.md5 b/docs/tket/api/ConjugationBox_8cpp__incl.md5 new file mode 100644 index 0000000000..d0c2159115 --- /dev/null +++ b/docs/tket/api/ConjugationBox_8cpp__incl.md5 @@ -0,0 +1 @@ +6f4c618ba6f145c801dd7396f0e413bb \ No newline at end of file diff --git a/docs/tket/api/ConjugationBox_8cpp__incl.png b/docs/tket/api/ConjugationBox_8cpp__incl.png new file mode 100644 index 0000000000..dcabf2d230 Binary files /dev/null and b/docs/tket/api/ConjugationBox_8cpp__incl.png differ diff --git a/docs/tket/api/ConjugationBox_8cpp_source.html b/docs/tket/api/ConjugationBox_8cpp_source.html new file mode 100644 index 0000000000..a65040112b --- /dev/null +++ b/docs/tket/api/ConjugationBox_8cpp_source.html @@ -0,0 +1,250 @@ + + + + + + + +tket: src/Circuit/ConjugationBox.cpp Source File + + + + + + + + + + + +
+
+ + + + + + +
+
tket +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ConjugationBox.cpp
+
+
+Go to the documentation of this file.
1 // Copyright 2019-2023 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 
+ +
16 
+
17 #include "tket/Circuit/Circuit.hpp"
+ + +
20 #include "tket/Utils/Json.hpp"
+
21 
+
22 namespace tket {
+
23 
+ +
25  const Op_ptr &compute, const Op_ptr &action,
+
26  const std::optional<Op_ptr> uncompute)
+ +
28  compute_(compute),
+
29  action_(action),
+
30  uncompute_(uncompute) {
+
31  op_signature_t compute_sig = compute_->get_signature();
+
32  op_signature_t action_sig = action_->get_signature();
+
33  unsigned compute_size_ = compute_sig.size();
+
34  unsigned action_size_ = action_sig.size();
+
35  unsigned compute_n_qubits_ =
+
36  std::count(compute_sig.begin(), compute_sig.end(), EdgeType::Quantum);
+
37  unsigned action_n_qubits_ =
+
38  std::count(action_sig.begin(), action_sig.end(), EdgeType::Quantum);
+
39  unsigned uncompute_size_ = 0, uncompute_n_qubits_ = 0;
+
40  if (uncompute_ != std::nullopt) {
+
41  op_signature_t uncompute_sig = uncompute_.value()->get_signature();
+
42  uncompute_size_ = uncompute_sig.size();
+
43  uncompute_n_qubits_ = std::count(
+
44  uncompute_sig.begin(), uncompute_sig.end(), EdgeType::Quantum);
+
45  }
+
46  if (compute_size_ != compute_n_qubits_ || action_size_ != action_n_qubits_ ||
+
47  uncompute_size_ != uncompute_n_qubits_) {
+
48  throw std::invalid_argument(
+
49  "ConjugationBox only supports quantum operations");
+
50  }
+
51  if (compute_size_ != action_size_ ||
+
52  (uncompute_ != std::nullopt && uncompute_size_ != compute_size_)) {
+
53  throw std::invalid_argument(
+
54  "Operations provided to ConjugationBox need to have the same number of "
+
55  "qubits");
+
56  }
+ +
58 }
+
59 
+ +
61  : Box(other),
+
62  compute_(other.compute_),
+
63  action_(other.action_),
+
64  uncompute_(other.uncompute_) {}
+
65 
+ +
67  return std::make_shared<ConjugationBox>(
+
68  compute_, action_->dagger(), uncompute_);
+
69 }
+
70 
+ +
72  return std::make_shared<ConjugationBox>(
+
73  (uncompute_ == std::nullopt) ? compute_->dagger()->transpose()
+
74  : uncompute_.value()->transpose(),
+
75  action_->transpose(), compute_->transpose());
+
76 }
+
77 
+ +
79  Circuit circ(signature_.size());
+
80  std::vector<unsigned> args(circ.n_qubits());
+
81  std::iota(args.begin(), args.end(), 0);
+
82  circ.add_op<unsigned>(compute_, args);
+
83  circ.add_op<unsigned>(action_, args);
+
84  if (uncompute_ != std::nullopt) {
+
85  circ.add_op<unsigned>(uncompute_.value(), args);
+
86  } else {
+
87  circ.add_op<unsigned>(compute_->dagger(), args);
+
88  }
+
89  circ_ = std::make_shared<Circuit>(circ);
+
90 }
+
91 
+
92 bool ConjugationBox::is_equal(const Op &op_other) const {
+
93  const ConjugationBox &other = dynamic_cast<const ConjugationBox &>(op_other);
+
94  if (id_ == other.get_id()) return true;
+
95  // if only one of them has uncompute_, compare the uncompute_ with
+
96  // the other's compute_.dagger().
+
97  return *compute_ == *other.compute_ && *action_ == *other.action_ &&
+
98  ((uncompute_ == std::nullopt && other.uncompute_ == std::nullopt) ||
+
99  (uncompute_ != std::nullopt && other.uncompute_ != std::nullopt &&
+
100  *uncompute_.value() == *other.uncompute_.value()) ||
+
101  (uncompute_ == std::nullopt && other.uncompute_ != std::nullopt &&
+
102  *compute_->dagger() == *other.uncompute_.value()) ||
+
103  (uncompute_ != std::nullopt && other.uncompute_ == std::nullopt &&
+
104  *uncompute_.value() == *other.compute_->dagger()));
+
105 }
+
106 
+
107 nlohmann::json ConjugationBox::to_json(const Op_ptr &op) {
+
108  const auto &box = static_cast<const ConjugationBox &>(*op);
+
109  nlohmann::json j = core_box_json(box);
+
110  j["compute"] = box.get_compute();
+
111  j["action"] = box.get_action();
+
112  // set j["uncompute"] to null
+
113  j["uncompute"] = nlohmann::json();
+
114  std::optional<Op_ptr> uncompute = box.get_uncompute();
+
115  if (uncompute != std::nullopt) {
+
116  j["uncompute"] = uncompute.value();
+
117  }
+
118  return j;
+
119 }
+
120 
+
121 Op_ptr ConjugationBox::from_json(const nlohmann::json &j) {
+
122  std::optional<Op_ptr> uncompute = std::nullopt;
+
123  if (j.contains("uncompute") && !j.at("uncompute").is_null()) {
+
124  uncompute = j.at("uncompute").get<Op_ptr>();
+
125  }
+ +
127  j.at("compute").get<Op_ptr>(), j.at("action").get<Op_ptr>(), uncompute);
+
128  return set_box_id(
+
129  box,
+
130  boost::lexical_cast<boost::uuids::uuid>(j.at("id").get<std::string>()));
+
131 }
+
132 
+ +
134 
+
135 } // namespace tket
+ + + + + +
#define REGISTER_OPFACTORY(type, opclass)
When an OpType needs custom JSON conversion methods (as is the case for box types),...
+
Abstract class for an operation from which a circuit can be extracted.
Definition: Boxes.hpp:39
+
friend Op_ptr set_box_id(BoxT &b, boost::uuids::uuid newid)
Set explicit ID on a box.
Definition: Boxes.hpp:126
+
std::shared_ptr< Circuit > circ_
Definition: Boxes.hpp:104
+
boost::uuids::uuid get_id() const
Unique identifier (preserved on copy)
Definition: Boxes.hpp:92
+
op_signature_t signature_
Definition: Boxes.hpp:103
+
boost::uuids::uuid id_
Definition: Boxes.hpp:105
+
A circuit.
Definition: Circuit.hpp:248
+
unsigned n_qubits() const
+
Vertex add_op(const Op_ptr &op, const std::vector< ID > &args, std::optional< std::string > opgroup=std::nullopt)
Append an operation to the circuit.
Definition: Circuit.hpp:1725
+
Box to express computations that follow the compute-action-uncompute pattern.
+
bool is_equal(const Op &op_other) const override
Equality check between two ConjugationBox instances.
+
void generate_circuit() const override
+
Op_ptr dagger() const override
Inverse (of a unitary operation)
+ +
static Op_ptr from_json(const nlohmann::json &j)
+
static nlohmann::json to_json(const Op_ptr &op)
+
Op_ptr transpose() const override
Transpose of a unitary operation.
+
Abstract class representing an operation type.
Definition: Op.hpp:52
+
Defines tket::DeviceCharacterisation, used in NoiseAwarePlacement and in commute_SQ_gates_through_SWA...
Definition: Path.cpp:19
+
OpType
Named operation types.
Definition: OpType.hpp:29
+
@ Quantum
A wire carrying quantum information, corresponding to some allocated Qubit.
+
std::shared_ptr< const Op > Op_ptr
Definition: OpPtr.hpp:23
+
std::vector< EdgeType > op_signature_t
Definition: EdgeType.hpp:62
+
nlohmann::json core_box_json(const Box &box)
Definition: Boxes.cpp:541
+
+ + + + diff --git a/docs/tket/api/ConjugationBox_8hpp.html b/docs/tket/api/ConjugationBox_8hpp.html new file mode 100644 index 0000000000..69b0a2633c --- /dev/null +++ b/docs/tket/api/ConjugationBox_8hpp.html @@ -0,0 +1,182 @@ + + + + + + + +tket: include/tket/Circuit/ConjugationBox.hpp File Reference + + + + + + + + + + + +
+
+ + + + + + +
+
tket +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+Classes | +Namespaces
+
+
ConjugationBox.hpp File Reference
+
+
+
#include "Boxes.hpp"
+#include "Circuit.hpp"
+#include "tket/Utils/Json.hpp"
+
+Include dependency graph for ConjugationBox.hpp:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + +
+
+

Go to the source code of this file.

+ + + + + +

+Classes

class  tket::ConjugationBox
 Box to express computations that follow the compute-action-uncompute pattern. More...
 
+ + + + +

+Namespaces

 tket
 Defines tket::DeviceCharacterisation, used in NoiseAwarePlacement and in commute_SQ_gates_through_SWAPS as a simple device noise model.
 
+
+ + + + diff --git a/docs/tket/api/ConjugationBox_8hpp__dep__incl.map b/docs/tket/api/ConjugationBox_8hpp__dep__incl.map new file mode 100644 index 0000000000..0e4af5104e --- /dev/null +++ b/docs/tket/api/ConjugationBox_8hpp__dep__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/tket/api/ConjugationBox_8hpp__dep__incl.md5 b/docs/tket/api/ConjugationBox_8hpp__dep__incl.md5 new file mode 100644 index 0000000000..cc501fdfee --- /dev/null +++ b/docs/tket/api/ConjugationBox_8hpp__dep__incl.md5 @@ -0,0 +1 @@ +f7aa93d8302859aa163945c1dd10a17c \ No newline at end of file diff --git a/docs/tket/api/ConjugationBox_8hpp__dep__incl.png b/docs/tket/api/ConjugationBox_8hpp__dep__incl.png new file mode 100644 index 0000000000..f41f888dfe Binary files /dev/null and b/docs/tket/api/ConjugationBox_8hpp__dep__incl.png differ diff --git a/docs/tket/api/ConjugationBox_8hpp__incl.map b/docs/tket/api/ConjugationBox_8hpp__incl.map new file mode 100644 index 0000000000..01da28c3c7 --- /dev/null +++ b/docs/tket/api/ConjugationBox_8hpp__incl.map @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/tket/api/ConjugationBox_8hpp__incl.md5 b/docs/tket/api/ConjugationBox_8hpp__incl.md5 new file mode 100644 index 0000000000..f4ee46075c --- /dev/null +++ b/docs/tket/api/ConjugationBox_8hpp__incl.md5 @@ -0,0 +1 @@ +c7af94df912f77cba857c4188e7d5b40 \ No newline at end of file diff --git a/docs/tket/api/ConjugationBox_8hpp__incl.png b/docs/tket/api/ConjugationBox_8hpp__incl.png new file mode 100644 index 0000000000..498b08f060 Binary files /dev/null and b/docs/tket/api/ConjugationBox_8hpp__incl.png differ diff --git a/docs/tket/api/ConjugationBox_8hpp_source.html b/docs/tket/api/ConjugationBox_8hpp_source.html new file mode 100644 index 0000000000..f71a2ce85e --- /dev/null +++ b/docs/tket/api/ConjugationBox_8hpp_source.html @@ -0,0 +1,170 @@ + + + + + + + +tket: include/tket/Circuit/ConjugationBox.hpp Source File + + + + + + + + + + + +
+
+ + + + + + +
+
tket +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ConjugationBox.hpp
+
+
+Go to the documentation of this file.
1 // Copyright 2019-2023 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 "Boxes.hpp"
+
18 #include "Circuit.hpp"
+
19 #include "tket/Utils/Json.hpp"
+
20 
+
21 namespace tket {
+
25 class ConjugationBox : public Box {
+
26  public:
+
38  explicit ConjugationBox(
+
39  const Op_ptr &compute, const Op_ptr &action,
+
40  const std::optional<Op_ptr> uncompute = std::nullopt);
+
41 
+
45  ConjugationBox(const ConjugationBox &other);
+
46  ~ConjugationBox() override {}
+
47 
+ +
49  const SymEngine::map_basic_basic &) const override {
+
50  return Op_ptr();
+
51  }
+
52 
+
53  SymSet free_symbols() const override { return {}; }
+
54 
+
58  bool is_equal(const Op &op_other) const override;
+
59 
+
60  Op_ptr dagger() const override;
+
61  Op_ptr transpose() const override;
+
62 
+
63  Op_ptr get_compute() const { return compute_; }
+
64  Op_ptr get_action() const { return action_; }
+
65  std::optional<Op_ptr> get_uncompute() const { return uncompute_; }
+
66 
+
67  static Op_ptr from_json(const nlohmann::json &j);
+
68 
+
69  static nlohmann::json to_json(const Op_ptr &op);
+
70 
+
71  protected:
+
72  void generate_circuit() const override;
+
73 
+ +
75  : Box(OpType::ConjugationBox), compute_(), action_(), uncompute_() {}
+
76 
+
77  private:
+
78  const Op_ptr compute_;
+
79  const Op_ptr action_;
+
80  const std::optional<Op_ptr> uncompute_;
+
81 };
+
82 } // namespace tket
+ + + +
Abstract class for an operation from which a circuit can be extracted.
Definition: Boxes.hpp:39
+
Box to express computations that follow the compute-action-uncompute pattern.
+
Op_ptr get_action() const
+
Op_ptr symbol_substitution(const SymEngine::map_basic_basic &) const override
Operation with values for symbols substituted.
+
bool is_equal(const Op &op_other) const override
Equality check between two ConjugationBox instances.
+
SymSet free_symbols() const override
Set of all free symbols occurring in operation parameters.
+
void generate_circuit() const override
+
Op_ptr get_compute() const
+
Op_ptr dagger() const override
Inverse (of a unitary operation)
+ + +
static Op_ptr from_json(const nlohmann::json &j)
+
static nlohmann::json to_json(const Op_ptr &op)
+
Op_ptr transpose() const override
Transpose of a unitary operation.
+
std::optional< Op_ptr > get_uncompute() const
+
Abstract class representing an operation type.
Definition: Op.hpp:52
+
Defines tket::DeviceCharacterisation, used in NoiseAwarePlacement and in commute_SQ_gates_through_SWA...
Definition: Path.cpp:19
+
OpType
Named operation types.
Definition: OpType.hpp:29
+
std::shared_ptr< const Op > Op_ptr
Definition: OpPtr.hpp:23
+
std::set< Sym, SymCompareLess > SymSet
Definition: Expression.hpp:82
+
+ + + + diff --git a/docs/tket/api/Constants_8hpp.html b/docs/tket/api/Constants_8hpp.html index 2562a73cc0..533338e6ed 100644 --- a/docs/tket/api/Constants_8hpp.html +++ b/docs/tket/api/Constants_8hpp.html @@ -100,66 +100,66 @@
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/docs/tket/api/Constants_8hpp__dep__incl.map b/docs/tket/api/Constants_8hpp__dep__incl.map index e35296eed0..11d594331b 100644 --- a/docs/tket/api/Constants_8hpp__dep__incl.map +++ b/docs/tket/api/Constants_8hpp__dep__incl.map @@ -1,62 +1,62 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/tket/api/Constants_8hpp__dep__incl.md5 b/docs/tket/api/Constants_8hpp__dep__incl.md5 index 25ddc6e3dc..5c3fdda75a 100644 --- a/docs/tket/api/Constants_8hpp__dep__incl.md5 +++ b/docs/tket/api/Constants_8hpp__dep__incl.md5 @@ -1 +1 @@ -675b08f5a8073231e2290f56cc04cdd5 \ No newline at end of file +795f9c3aa28b5a1aace6395a3aea951c \ No newline at end of file diff --git a/docs/tket/api/Constants_8hpp__dep__incl.png b/docs/tket/api/Constants_8hpp__dep__incl.png index 198eca38ea..395354ee4a 100644 Binary files a/docs/tket/api/Constants_8hpp__dep__incl.png and b/docs/tket/api/Constants_8hpp__dep__incl.png differ diff --git a/docs/tket/api/ControlledGates_8cpp_source.html b/docs/tket/api/ControlledGates_8cpp_source.html index b78d96c069..71999c4bbf 100644 --- a/docs/tket/api/ControlledGates_8cpp_source.html +++ b/docs/tket/api/ControlledGates_8cpp_source.html @@ -1205,7 +1205,7 @@
tket::is_unitary
bool is_unitary(const Eigen::MatrixXcd &U, double tol)
Test matrix for unitarity.
Definition: MatrixAnalysis.cpp:31
tket::unit_map_t
std::map< UnitID, UnitID > unit_map_t
Definition: UnitID.hpp:311
tket::gen_graycode
GrayCode gen_graycode(unsigned m_controls)
Construct a GrayCode over n bits.
Definition: HelperFunctions.cpp:21
-
tket::is_multi_qubit_type
bool is_multi_qubit_type(OpType optype)
Test for gates over more than one qubit.
Definition: OpTypeFunctions.cpp:213
+
tket::is_multi_qubit_type
bool is_multi_qubit_type(OpType optype)
Test for gates over more than one qubit.
Definition: OpTypeFunctions.cpp:214
tket::UnitType::Qubit
@ Qubit
tket::eval_expr_mod
std::optional< double > eval_expr_mod(const Expr &e, unsigned n)
Evaluate an expression modulo n.
Definition: Expression.cpp:79
tket::VertexVec
std::vector< Vertex > VertexVec
Definition: DAGDefs.hpp:75
diff --git a/docs/tket/api/DAGDefs_8hpp.html b/docs/tket/api/DAGDefs_8hpp.html index 2ccdad18d7..428c38f642 100644 --- a/docs/tket/api/DAGDefs_8hpp.html +++ b/docs/tket/api/DAGDefs_8hpp.html @@ -157,66 +157,66 @@
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/docs/tket/api/DAGDefs_8hpp__dep__incl.map b/docs/tket/api/DAGDefs_8hpp__dep__incl.map index b40bcd5cd6..4c22b326df 100644 --- a/docs/tket/api/DAGDefs_8hpp__dep__incl.map +++ b/docs/tket/api/DAGDefs_8hpp__dep__incl.map @@ -1,62 +1,62 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/tket/api/DAGDefs_8hpp__dep__incl.md5 b/docs/tket/api/DAGDefs_8hpp__dep__incl.md5 index 60db6d9f77..f130fd3202 100644 --- a/docs/tket/api/DAGDefs_8hpp__dep__incl.md5 +++ b/docs/tket/api/DAGDefs_8hpp__dep__incl.md5 @@ -1 +1 @@ -7b94043a2f41cf9fc4777123ad1f69f2 \ No newline at end of file +d7cc466b40ff3f275a1c2e93da0a7dc7 \ No newline at end of file diff --git a/docs/tket/api/DAGDefs_8hpp__dep__incl.png b/docs/tket/api/DAGDefs_8hpp__dep__incl.png index e3a7879a7f..70149b04c6 100644 Binary files a/docs/tket/api/DAGDefs_8hpp__dep__incl.png and b/docs/tket/api/DAGDefs_8hpp__dep__incl.png differ diff --git a/docs/tket/api/DecomposeCircuit_8cpp_source.html b/docs/tket/api/DecomposeCircuit_8cpp_source.html index 9170656aec..6fcdfa4947 100644 --- a/docs/tket/api/DecomposeCircuit_8cpp_source.html +++ b/docs/tket/api/DecomposeCircuit_8cpp_source.html @@ -267,11 +267,11 @@
tket::OpType::Barrier
@ Barrier
No-op that must be preserved by compilation.
tket::OpType::noop
@ noop
Identity.
tket::OpType::Conditional
@ Conditional
See Conditional.
-
tket::is_classical_type
bool is_classical_type(OpType optype)
Test for purely classical gates derived from ClassicalOp.
Definition: OpTypeFunctions.cpp:253
+
tket::is_classical_type
bool is_classical_type(OpType optype)
Test for purely classical gates derived from ClassicalOp.
Definition: OpTypeFunctions.cpp:254
tket::get_triplets
std::vector< TripletCd > get_triplets(const SparseMatrixXcd &matr, double abs_epsilon)
abs_epsilon is used to decide if a near-zero entry should be set to zero exactly.
Definition: MatrixAnalysis.cpp:478
tket::eval_expr
std::optional< double > eval_expr(const Expr &e)
Definition: Expression.cpp:59
tket::Op_ptr
std::shared_ptr< const Op > Op_ptr
Definition: OpPtr.hpp:23
-
tket::is_projective_type
bool is_projective_type(OpType optype)
Test for measurement and reset gates.
Definition: OpTypeFunctions.cpp:249
+
tket::is_projective_type
bool is_projective_type(OpType optype)
Test for measurement and reset gates.
Definition: OpTypeFunctions.cpp:250
tket::unit_vector_t
std::vector< UnitID > unit_vector_t
Definition: UnitID.hpp:310
tket::UnitType::Qubit
@ Qubit
tket::GateUnitaryMatrixError::Cause::GATE_NOT_IMPLEMENTED
@ GATE_NOT_IMPLEMENTED
diff --git a/docs/tket/api/Decomposition_8cpp_source.html b/docs/tket/api/Decomposition_8cpp_source.html index 069d8876cb..a7e279de41 100644 --- a/docs/tket/api/Decomposition_8cpp_source.html +++ b/docs/tket/api/Decomposition_8cpp_source.html @@ -2177,7 +2177,7 @@
tket::Transforms::decompose_MolmerSorensen
Transform decompose_MolmerSorensen()
Definition: Decomposition.cpp:503
tket::Transforms::decompose_ZYZ_to_TK1
Transform decompose_ZYZ_to_TK1()
Starting with Rz, Ry and multi-qubit gates, replace all singles with TK1.
Definition: Decomposition.cpp:202
tket
Defines tket::DeviceCharacterisation, used in NoiseAwarePlacement and in commute_SQ_gates_through_SWA...
Definition: Path.cpp:19
-
tket::is_single_qubit_unitary_type
bool is_single_qubit_unitary_type(OpType optype)
Test for single-qubit gates that can be expressed as TK1.
Definition: OpTypeFunctions.cpp:222
+
tket::is_single_qubit_unitary_type
bool is_single_qubit_unitary_type(OpType optype)
Test for single-qubit gates that can be expressed as TK1.
Definition: OpTypeFunctions.cpp:223
tket::Vertex
boost::graph_traits< DAG >::vertex_descriptor Vertex
Definition: DAGDefs.hpp:72
tket::as_gate_ptr
Gate_ptr as_gate_ptr(Op_ptr op)
Cast a general Op (of gate type) to a Gate.
Definition: GatePtr.cpp:25
tket::OpType
OpType
Named operation types.
Definition: OpType.hpp:29
@@ -2218,12 +2218,12 @@
tket::Op_ptr
std::shared_ptr< const Op > Op_ptr
Definition: OpPtr.hpp:23
tket::EdgeVec
std::vector< Edge > EdgeVec
Definition: DAGDefs.hpp:95
tket::trace_fidelity
double trace_fidelity(double a, double b, double c)
Similarity measure of TK2(a, b, c) to SU(4) identity.
Definition: MatrixAnalysis.cpp:295
-
tket::is_projective_type
bool is_projective_type(OpType optype)
Test for measurement and reset gates.
Definition: OpTypeFunctions.cpp:249
+
tket::is_projective_type
bool is_projective_type(OpType optype)
Test for measurement and reset gates.
Definition: OpTypeFunctions.cpp:250
tket::EPS
constexpr double EPS
Default tolerance for floating-point comparisons.
Definition: Constants.hpp:38
tket::unit_map_t
std::map< UnitID, UnitID > unit_map_t
Definition: UnitID.hpp:311
tket::UnitType::Qubit
@ Qubit
tket::TK2_circ_from_multiq
Circuit TK2_circ_from_multiq(const Op_ptr op)
Replace a multi-qubit operation with an equivalent circuit using TK2 gates.
Definition: Replacement.cpp:82
-
tket::is_single_qubit_type
bool is_single_qubit_type(OpType optype)
Test for gates over a single qubit.
Definition: OpTypeFunctions.cpp:217
+
tket::is_single_qubit_type
bool is_single_qubit_type(OpType optype)
Test for gates over a single qubit.
Definition: OpTypeFunctions.cpp:218
tket::DAG
boost::adjacency_list< boost::listS, boost::listS, boost::bidirectionalS, boost::property< boost::vertex_index_t, int, VertexProperties >, EdgeProperties > DAG
Graph representing a circuit, with operations as nodes.
Definition: DAGDefs.hpp:70
tket::equiv_expr
bool equiv_expr(const Expr &e0, const Expr &e1, unsigned n, double tol)
Test approximate equality of expressions modulo n.
Definition: Expression.cpp:130
tket::qubit_vector_t
std::vector< Qubit > qubit_vector_t
Definition: UnitID.hpp:314
diff --git a/docs/tket/api/EdgeType_8hpp.html b/docs/tket/api/EdgeType_8hpp.html index 10e02c7a57..3e414f8b11 100644 --- a/docs/tket/api/EdgeType_8hpp.html +++ b/docs/tket/api/EdgeType_8hpp.html @@ -105,11 +105,11 @@ - - + + - + @@ -117,51 +117,51 @@ - - + + - - + + - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/tket/api/EdgeType_8hpp__dep__incl.map b/docs/tket/api/EdgeType_8hpp__dep__incl.map index 8e18f5d7e3..f2594c45bd 100644 --- a/docs/tket/api/EdgeType_8hpp__dep__incl.map +++ b/docs/tket/api/EdgeType_8hpp__dep__incl.map @@ -2,11 +2,11 @@ - - + + - + @@ -14,49 +14,49 @@ - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/tket/api/EdgeType_8hpp__dep__incl.md5 b/docs/tket/api/EdgeType_8hpp__dep__incl.md5 index e35ac0f5e8..5669e6774b 100644 --- a/docs/tket/api/EdgeType_8hpp__dep__incl.md5 +++ b/docs/tket/api/EdgeType_8hpp__dep__incl.md5 @@ -1 +1 @@ -9349d0a5d171a32deea6a2bc67583cb7 \ No newline at end of file +2352d523f29e0c4cfc38638f6bd2247c \ No newline at end of file diff --git a/docs/tket/api/EdgeType_8hpp__dep__incl.png b/docs/tket/api/EdgeType_8hpp__dep__incl.png index c5e1508b08..c946907819 100644 Binary files a/docs/tket/api/EdgeType_8hpp__dep__incl.png and b/docs/tket/api/EdgeType_8hpp__dep__incl.png differ diff --git a/docs/tket/api/EigenConfig_8hpp.html b/docs/tket/api/EigenConfig_8hpp.html index b1f21ef6e2..48bcaeaa81 100644 --- a/docs/tket/api/EigenConfig_8hpp.html +++ b/docs/tket/api/EigenConfig_8hpp.html @@ -109,66 +109,66 @@
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/docs/tket/api/EigenConfig_8hpp__dep__incl.map b/docs/tket/api/EigenConfig_8hpp__dep__incl.map index 30d1b3ab7d..7c06683684 100644 --- a/docs/tket/api/EigenConfig_8hpp__dep__incl.map +++ b/docs/tket/api/EigenConfig_8hpp__dep__incl.map @@ -1,62 +1,62 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/tket/api/EigenConfig_8hpp__dep__incl.md5 b/docs/tket/api/EigenConfig_8hpp__dep__incl.md5 index feb81728b1..f8e2d55ecf 100644 --- a/docs/tket/api/EigenConfig_8hpp__dep__incl.md5 +++ b/docs/tket/api/EigenConfig_8hpp__dep__incl.md5 @@ -1 +1 @@ -aa0e3b444306f39e4fd55cf4c83a651b \ No newline at end of file +5c7be99acb906bd34d8832f60384e2cc \ No newline at end of file diff --git a/docs/tket/api/EigenConfig_8hpp__dep__incl.png b/docs/tket/api/EigenConfig_8hpp__dep__incl.png index a37994a47c..54eb9ceb14 100644 Binary files a/docs/tket/api/EigenConfig_8hpp__dep__incl.png and b/docs/tket/api/EigenConfig_8hpp__dep__incl.png differ diff --git a/docs/tket/api/Expression_8hpp__dep__incl.md5 b/docs/tket/api/Expression_8hpp__dep__incl.md5 index b276c2eae1..7eb47cd1d1 100644 --- a/docs/tket/api/Expression_8hpp__dep__incl.md5 +++ b/docs/tket/api/Expression_8hpp__dep__incl.md5 @@ -1 +1 @@ -6297b5e2a6353c87b8dabb8e673cb8d6 \ No newline at end of file +f342eeff545217924e7549126e33010a \ No newline at end of file diff --git a/docs/tket/api/FlowOp_8cpp_source.html b/docs/tket/api/FlowOp_8cpp_source.html index eb37b54023..d0603fb376 100644 --- a/docs/tket/api/FlowOp_8cpp_source.html +++ b/docs/tket/api/FlowOp_8cpp_source.html @@ -166,7 +166,7 @@
tket::OpType
OpType
Named operation types.
Definition: OpType.hpp:29
tket::OpType::Stop
@ Stop
Execution halts and the program terminates.
tket::Op_ptr
std::shared_ptr< const Op > Op_ptr
Definition: OpPtr.hpp:23
-
tket::is_flowop_type
bool is_flowop_type(OpType optype)
Test for flowops (just for high-level control flow)
Definition: OpTypeFunctions.cpp:192
+
tket::is_flowop_type
bool is_flowop_type(OpType optype)
Test for flowops (just for high-level control flow)
Definition: OpTypeFunctions.cpp:193
tket::SymSet
std::set< Sym, SymCompareLess > SymSet
Definition: Expression.hpp:82
tket::op_signature_t
std::vector< EdgeType > op_signature_t
Definition: EdgeType.hpp:62
diff --git a/docs/tket/api/Gate_8cpp_source.html b/docs/tket/api/Gate_8cpp_source.html index 5fe63d9537..badeeb5b47 100644 --- a/docs/tket/api/Gate_8cpp_source.html +++ b/docs/tket/api/Gate_8cpp_source.html @@ -1145,7 +1145,7 @@
tket::Expr
SymEngine::Expression Expr
Representation of a phase as a multiple of .
Definition: Expression.hpp:34
tket::eval_expr
std::optional< double > eval_expr(const Expr &e)
Definition: Expression.cpp:59
tket::Op_ptr
std::shared_ptr< const Op > Op_ptr
Definition: OpPtr.hpp:23
-
tket::is_clifford_type
bool is_clifford_type(OpType optype)
Test for Clifford operations.
Definition: OpTypeFunctions.cpp:238
+
tket::is_clifford_type
bool is_clifford_type(OpType optype)
Test for Clifford operations.
Definition: OpTypeFunctions.cpp:239
tket::EPS
constexpr double EPS
Default tolerance for floating-point comparisons.
Definition: Constants.hpp:38
tket::minus_times
Expr minus_times(const Expr &e)
Return -e.
Definition: Expression.cpp:120
tket::unit_vector_t
std::vector< UnitID > unit_vector_t
Definition: UnitID.hpp:310
diff --git a/docs/tket/api/GraphHeaders_8hpp.html b/docs/tket/api/GraphHeaders_8hpp.html index 8121dc7519..bf924622e1 100644 --- a/docs/tket/api/GraphHeaders_8hpp.html +++ b/docs/tket/api/GraphHeaders_8hpp.html @@ -103,66 +103,66 @@
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/docs/tket/api/GraphHeaders_8hpp__dep__incl.map b/docs/tket/api/GraphHeaders_8hpp__dep__incl.map index 4ea400b92a..52ac65bc27 100644 --- a/docs/tket/api/GraphHeaders_8hpp__dep__incl.map +++ b/docs/tket/api/GraphHeaders_8hpp__dep__incl.map @@ -1,62 +1,62 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/tket/api/GraphHeaders_8hpp__dep__incl.md5 b/docs/tket/api/GraphHeaders_8hpp__dep__incl.md5 index 828c292d47..4bcb8bb95e 100644 --- a/docs/tket/api/GraphHeaders_8hpp__dep__incl.md5 +++ b/docs/tket/api/GraphHeaders_8hpp__dep__incl.md5 @@ -1 +1 @@ -218f717e9ee013c66a8e60ff4e554c99 \ No newline at end of file +12d96d58e5fbc37e057470353c2ec5be \ No newline at end of file diff --git a/docs/tket/api/GraphHeaders_8hpp__dep__incl.png b/docs/tket/api/GraphHeaders_8hpp__dep__incl.png index e06a2ce6e4..e8371f19ed 100644 Binary files a/docs/tket/api/GraphHeaders_8hpp__dep__incl.png and b/docs/tket/api/GraphHeaders_8hpp__dep__incl.png differ diff --git a/docs/tket/api/HelperFunctions_8hpp.html b/docs/tket/api/HelperFunctions_8hpp.html index 6e9e5c4e07..83b74b8755 100644 --- a/docs/tket/api/HelperFunctions_8hpp.html +++ b/docs/tket/api/HelperFunctions_8hpp.html @@ -103,43 +103,44 @@
- + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/docs/tket/api/HelperFunctions_8hpp__dep__incl.map b/docs/tket/api/HelperFunctions_8hpp__dep__incl.map index 3591834be3..42aa3baa5b 100644 --- a/docs/tket/api/HelperFunctions_8hpp__dep__incl.map +++ b/docs/tket/api/HelperFunctions_8hpp__dep__incl.map @@ -1,39 +1,40 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/tket/api/HelperFunctions_8hpp__dep__incl.md5 b/docs/tket/api/HelperFunctions_8hpp__dep__incl.md5 index fa0523e90c..d0c5330a6f 100644 --- a/docs/tket/api/HelperFunctions_8hpp__dep__incl.md5 +++ b/docs/tket/api/HelperFunctions_8hpp__dep__incl.md5 @@ -1 +1 @@ -4450d98a61f7ad31b6851ee679cec633 \ No newline at end of file +1ae496ad42372cb8c61034a7cebb7329 \ No newline at end of file diff --git a/docs/tket/api/HelperFunctions_8hpp__dep__incl.png b/docs/tket/api/HelperFunctions_8hpp__dep__incl.png index c64864ceff..c4f7f2c3cc 100644 Binary files a/docs/tket/api/HelperFunctions_8hpp__dep__incl.png and b/docs/tket/api/HelperFunctions_8hpp__dep__incl.png differ diff --git a/docs/tket/api/Json_8hpp.html b/docs/tket/api/Json_8hpp.html index 8b4f290d1d..faa7355bf6 100644 --- a/docs/tket/api/Json_8hpp.html +++ b/docs/tket/api/Json_8hpp.html @@ -102,66 +102,66 @@
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/docs/tket/api/Json_8hpp__dep__incl.map b/docs/tket/api/Json_8hpp__dep__incl.map index 3a7e383082..1c488388db 100644 --- a/docs/tket/api/Json_8hpp__dep__incl.map +++ b/docs/tket/api/Json_8hpp__dep__incl.map @@ -1,62 +1,62 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/tket/api/Json_8hpp__dep__incl.md5 b/docs/tket/api/Json_8hpp__dep__incl.md5 index 0a7251d8ff..429057d81c 100644 --- a/docs/tket/api/Json_8hpp__dep__incl.md5 +++ b/docs/tket/api/Json_8hpp__dep__incl.md5 @@ -1 +1 @@ -5a64827fb75ed4cc430410bfc45df481 \ No newline at end of file +36afd7be064566e80457bf742f0707ae \ No newline at end of file diff --git a/docs/tket/api/Json_8hpp__dep__incl.png b/docs/tket/api/Json_8hpp__dep__incl.png index eedc5771e8..4d98c290c2 100644 Binary files a/docs/tket/api/Json_8hpp__dep__incl.png and b/docs/tket/api/Json_8hpp__dep__incl.png differ diff --git a/docs/tket/api/MatrixAnalysis_8hpp.html b/docs/tket/api/MatrixAnalysis_8hpp.html index 76cb5c880f..4461387636 100644 --- a/docs/tket/api/MatrixAnalysis_8hpp.html +++ b/docs/tket/api/MatrixAnalysis_8hpp.html @@ -130,41 +130,41 @@
- - - - - - - - - - + + + + + + + + + + - - - - + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + @@ -173,23 +173,23 @@ - - + + - - - - - - - - - - - - + + + + + + + + + + + +
diff --git a/docs/tket/api/MatrixAnalysis_8hpp__dep__incl.map b/docs/tket/api/MatrixAnalysis_8hpp__dep__incl.map index 6d4c9fc5b8..3c4ef2b6cc 100644 --- a/docs/tket/api/MatrixAnalysis_8hpp__dep__incl.map +++ b/docs/tket/api/MatrixAnalysis_8hpp__dep__incl.map @@ -1,39 +1,39 @@ - - - - - - - - - - + + + + + + + + + + - - - - + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + @@ -42,21 +42,21 @@ - - + + - - - - - - - - - - - - + + + + + + + + + + + + diff --git a/docs/tket/api/MatrixAnalysis_8hpp__dep__incl.md5 b/docs/tket/api/MatrixAnalysis_8hpp__dep__incl.md5 index 0d69fb23f8..a0b15daa8c 100644 --- a/docs/tket/api/MatrixAnalysis_8hpp__dep__incl.md5 +++ b/docs/tket/api/MatrixAnalysis_8hpp__dep__incl.md5 @@ -1 +1 @@ -d1ac10329a5bb48806994ea5edf8cd2d \ No newline at end of file +ed94dcd3c8ef1d826615c33d154c0ff5 \ No newline at end of file diff --git a/docs/tket/api/MatrixAnalysis_8hpp__dep__incl.png b/docs/tket/api/MatrixAnalysis_8hpp__dep__incl.png index 2210415529..650c478e9f 100644 Binary files a/docs/tket/api/MatrixAnalysis_8hpp__dep__incl.png and b/docs/tket/api/MatrixAnalysis_8hpp__dep__incl.png differ diff --git a/docs/tket/api/Multiplexor_8cpp_source.html b/docs/tket/api/Multiplexor_8cpp_source.html index f1a4f67048..016c83da5b 100644 --- a/docs/tket/api/Multiplexor_8cpp_source.html +++ b/docs/tket/api/Multiplexor_8cpp_source.html @@ -982,7 +982,7 @@
tket::Op
Abstract class representing an operation type.
Definition: Op.hpp:52
tket::Unsupported
Definition: Circuit.hpp:201
tket
Defines tket::DeviceCharacterisation, used in NoiseAwarePlacement and in commute_SQ_gates_through_SWA...
Definition: Path.cpp:19
-
tket::is_single_qubit_unitary_type
bool is_single_qubit_unitary_type(OpType optype)
Test for single-qubit gates that can be expressed as TK1.
Definition: OpTypeFunctions.cpp:222
+
tket::is_single_qubit_unitary_type
bool is_single_qubit_unitary_type(OpType optype)
Test for single-qubit gates that can be expressed as TK1.
Definition: OpTypeFunctions.cpp:223
tket::as_gate_ptr
Gate_ptr as_gate_ptr(Op_ptr op)
Cast a general Op (of gate type) to a Gate.
Definition: GatePtr.cpp:25
tket::OpType
OpType
Named operation types.
Definition: OpType.hpp:29
tket::OpType::QControlBox
@ QControlBox
See QControlBox.
diff --git a/docs/tket/api/OpDesc_8cpp_source.html b/docs/tket/api/OpDesc_8cpp_source.html index 92c02ad267..7e03b202cf 100644 --- a/docs/tket/api/OpDesc_8cpp_source.html +++ b/docs/tket/api/OpDesc_8cpp_source.html @@ -202,18 +202,18 @@
tket::OpDesc::latex
std::string latex() const
Name in Latex representation.
Definition: OpDesc.cpp:41
tket
Defines tket::DeviceCharacterisation, used in NoiseAwarePlacement and in commute_SQ_gates_through_SWA...
Definition: Path.cpp:19
tket::is_metaop_type
bool is_metaop_type(OpType optype)
Test for initial, final and barrier "ops".
Definition: OpTypeFunctions.cpp:127
-
tket::is_rotation_type
bool is_rotation_type(OpType optype)
Test for rotations (including controlled rotations)
Definition: OpTypeFunctions.cpp:198
+
tket::is_rotation_type
bool is_rotation_type(OpType optype)
Test for rotations (including controlled rotations)
Definition: OpTypeFunctions.cpp:199
tket::OpType
OpType
Named operation types.
Definition: OpType.hpp:29
-
tket::is_classical_type
bool is_classical_type(OpType optype)
Test for purely classical gates derived from ClassicalOp.
Definition: OpTypeFunctions.cpp:253
+
tket::is_classical_type
bool is_classical_type(OpType optype)
Test for purely classical gates derived from ClassicalOp.
Definition: OpTypeFunctions.cpp:254
tket::any
const OptUInt any
Unspecified unsigned integer.
Definition: OpDesc.hpp:29
tket::EdgeType::Quantum
@ Quantum
A wire carrying quantum information, corresponding to some allocated Qubit.
tket::EdgeType::Classical
@ Classical
A wire carrying classical information, corresponding to some allocated Bit.
tket::EdgeType::Boolean
@ Boolean
A wire carrying a bit of classical information from a classical output port of one op to a classical ...
tket::is_gate_type
bool is_gate_type(OpType optype)
Test for elementary gates.
Definition: OpTypeFunctions.cpp:160
-
tket::is_parameterised_pauli_rotation_type
bool is_parameterised_pauli_rotation_type(OpType optype)
Test for rotations around Pauli axes.
Definition: OpTypeFunctions.cpp:207
-
tket::is_clifford_type
bool is_clifford_type(OpType optype)
Test for Clifford operations.
Definition: OpTypeFunctions.cpp:238
-
tket::is_oneway_type
bool is_oneway_type(OpType optype)
Test for non-invertible operations.
Definition: OpTypeFunctions.cpp:226
-
tket::is_flowop_type
bool is_flowop_type(OpType optype)
Test for flowops (just for high-level control flow)
Definition: OpTypeFunctions.cpp:192
+
tket::is_parameterised_pauli_rotation_type
bool is_parameterised_pauli_rotation_type(OpType optype)
Test for rotations around Pauli axes.
Definition: OpTypeFunctions.cpp:208
+
tket::is_clifford_type
bool is_clifford_type(OpType optype)
Test for Clifford operations.
Definition: OpTypeFunctions.cpp:239
+
tket::is_oneway_type
bool is_oneway_type(OpType optype)
Test for non-invertible operations.
Definition: OpTypeFunctions.cpp:227
+
tket::is_flowop_type
bool is_flowop_type(OpType optype)
Test for flowops (just for high-level control flow)
Definition: OpTypeFunctions.cpp:193
tket::is_box_type
bool is_box_type(OpType optype)
Test for boxes (complex packaged operations)
Definition: OpTypeFunctions.cpp:164
tket::OptUInt
std::optional< unsigned > OptUInt
Optional unsigned integer.
Definition: OpDesc.hpp:26
tket::optypeinfo
const std::map< OpType, OpTypeInfo > & optypeinfo()
Information including name and shape of each operation type.
Definition: OpTypeInfo.cpp:22
diff --git a/docs/tket/api/OpDesc_8hpp.html b/docs/tket/api/OpDesc_8hpp.html index 1bc72d6d90..1b8e22f123 100644 --- a/docs/tket/api/OpDesc_8hpp.html +++ b/docs/tket/api/OpDesc_8hpp.html @@ -109,66 +109,66 @@
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/docs/tket/api/OpDesc_8hpp__dep__incl.map b/docs/tket/api/OpDesc_8hpp__dep__incl.map index fa585d6dc2..b6d37d0924 100644 --- a/docs/tket/api/OpDesc_8hpp__dep__incl.map +++ b/docs/tket/api/OpDesc_8hpp__dep__incl.map @@ -1,62 +1,62 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/tket/api/OpDesc_8hpp__dep__incl.md5 b/docs/tket/api/OpDesc_8hpp__dep__incl.md5 index cc1f9f9672..63ce3ff8d0 100644 --- a/docs/tket/api/OpDesc_8hpp__dep__incl.md5 +++ b/docs/tket/api/OpDesc_8hpp__dep__incl.md5 @@ -1 +1 @@ -a8943cfa5b5e437e00746c31b309dad1 \ No newline at end of file +d5a7e2bac41f1ebe41f3f54c81a82cfc \ No newline at end of file diff --git a/docs/tket/api/OpDesc_8hpp__dep__incl.png b/docs/tket/api/OpDesc_8hpp__dep__incl.png index 448dbbdcbc..2bd1f3e8ee 100644 Binary files a/docs/tket/api/OpDesc_8hpp__dep__incl.png and b/docs/tket/api/OpDesc_8hpp__dep__incl.png differ diff --git a/docs/tket/api/OpJsonFactory_8hpp.html b/docs/tket/api/OpJsonFactory_8hpp.html index 8854a30bf0..fb6a51c731 100644 --- a/docs/tket/api/OpJsonFactory_8hpp.html +++ b/docs/tket/api/OpJsonFactory_8hpp.html @@ -104,16 +104,17 @@
- + - - - - - - - - + + + + + + + + +
diff --git a/docs/tket/api/OpJsonFactory_8hpp__dep__incl.map b/docs/tket/api/OpJsonFactory_8hpp__dep__incl.map index 70bc514d39..040d0999c5 100644 --- a/docs/tket/api/OpJsonFactory_8hpp__dep__incl.map +++ b/docs/tket/api/OpJsonFactory_8hpp__dep__incl.map @@ -1,12 +1,13 @@ - + - - - - - - - - + + + + + + + + + diff --git a/docs/tket/api/OpJsonFactory_8hpp__dep__incl.md5 b/docs/tket/api/OpJsonFactory_8hpp__dep__incl.md5 index e08ae60f18..20ac93acf7 100644 --- a/docs/tket/api/OpJsonFactory_8hpp__dep__incl.md5 +++ b/docs/tket/api/OpJsonFactory_8hpp__dep__incl.md5 @@ -1 +1 @@ -adc81f26224fb14eccfdc1f8225b7739 \ No newline at end of file +3945274ad7d771ba7ec2d65a7d4c0613 \ No newline at end of file diff --git a/docs/tket/api/OpJsonFactory_8hpp__dep__incl.png b/docs/tket/api/OpJsonFactory_8hpp__dep__incl.png index 65922c0f15..cdb7484b77 100644 Binary files a/docs/tket/api/OpJsonFactory_8hpp__dep__incl.png and b/docs/tket/api/OpJsonFactory_8hpp__dep__incl.png differ diff --git a/docs/tket/api/OpJson_8cpp_source.html b/docs/tket/api/OpJson_8cpp_source.html index a2846f6d89..bb091cca57 100644 --- a/docs/tket/api/OpJson_8cpp_source.html +++ b/docs/tket/api/OpJson_8cpp_source.html @@ -145,7 +145,7 @@
tket::OpType
OpType
Named operation types.
Definition: OpType.hpp:29
tket::OpType::Conditional
@ Conditional
See Conditional.
tket::OpType::WASM
@ WASM
Op containing a classical wasm function call.
-
tket::is_classical_type
bool is_classical_type(OpType optype)
Test for purely classical gates derived from ClassicalOp.
Definition: OpTypeFunctions.cpp:253
+
tket::is_classical_type
bool is_classical_type(OpType optype)
Test for purely classical gates derived from ClassicalOp.
Definition: OpTypeFunctions.cpp:254
tket::is_gate_type
bool is_gate_type(OpType optype)
Test for elementary gates.
Definition: OpTypeFunctions.cpp:160
tket::Op_ptr
std::shared_ptr< const Op > Op_ptr
Definition: OpPtr.hpp:23
tket::from_json
void from_json(const nlohmann::json &j, Architecture::Connection &link)
Definition: Architecture.cpp:208
diff --git a/docs/tket/api/OpPtrFunctions_8hpp.html b/docs/tket/api/OpPtrFunctions_8hpp.html index da89840de7..693647ae10 100644 --- a/docs/tket/api/OpPtrFunctions_8hpp.html +++ b/docs/tket/api/OpPtrFunctions_8hpp.html @@ -114,66 +114,66 @@
- + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/docs/tket/api/OpPtrFunctions_8hpp__dep__incl.map b/docs/tket/api/OpPtrFunctions_8hpp__dep__incl.map index 4b218e3ce5..de47c18219 100644 --- a/docs/tket/api/OpPtrFunctions_8hpp__dep__incl.map +++ b/docs/tket/api/OpPtrFunctions_8hpp__dep__incl.map @@ -1,62 +1,62 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/tket/api/OpPtrFunctions_8hpp__dep__incl.md5 b/docs/tket/api/OpPtrFunctions_8hpp__dep__incl.md5 index dd8be56966..8f9b5f50ce 100644 --- a/docs/tket/api/OpPtrFunctions_8hpp__dep__incl.md5 +++ b/docs/tket/api/OpPtrFunctions_8hpp__dep__incl.md5 @@ -1 +1 @@ -5b9a4ff13198057aaec24c20e00b9e1a \ No newline at end of file +9dbb9b5f33916cfa80be24e51628adf9 \ No newline at end of file diff --git a/docs/tket/api/OpPtrFunctions_8hpp__dep__incl.png b/docs/tket/api/OpPtrFunctions_8hpp__dep__incl.png index f543ef6eb7..06508a55f4 100644 Binary files a/docs/tket/api/OpPtrFunctions_8hpp__dep__incl.png and b/docs/tket/api/OpPtrFunctions_8hpp__dep__incl.png differ diff --git a/docs/tket/api/OpPtr_8hpp.html b/docs/tket/api/OpPtr_8hpp.html index bc85a1a70f..b0eb8d210f 100644 --- a/docs/tket/api/OpPtr_8hpp.html +++ b/docs/tket/api/OpPtr_8hpp.html @@ -100,66 +100,66 @@
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/docs/tket/api/OpPtr_8hpp__dep__incl.map b/docs/tket/api/OpPtr_8hpp__dep__incl.map index ed5cf22675..8be3a2439e 100644 --- a/docs/tket/api/OpPtr_8hpp__dep__incl.map +++ b/docs/tket/api/OpPtr_8hpp__dep__incl.map @@ -1,62 +1,62 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/tket/api/OpPtr_8hpp__dep__incl.md5 b/docs/tket/api/OpPtr_8hpp__dep__incl.md5 index d93f4a7112..0a5d600fb8 100644 --- a/docs/tket/api/OpPtr_8hpp__dep__incl.md5 +++ b/docs/tket/api/OpPtr_8hpp__dep__incl.md5 @@ -1 +1 @@ -3be0f2474680505874f0028219c42148 \ No newline at end of file +e14219baf5699e905244e7c2a06595cc \ No newline at end of file diff --git a/docs/tket/api/OpPtr_8hpp__dep__incl.png b/docs/tket/api/OpPtr_8hpp__dep__incl.png index b4c2430be5..76e884b5b7 100644 Binary files a/docs/tket/api/OpPtr_8hpp__dep__incl.png and b/docs/tket/api/OpPtr_8hpp__dep__incl.png differ diff --git a/docs/tket/api/OpTypeFunctions_8cpp_source.html b/docs/tket/api/OpTypeFunctions_8cpp_source.html index 0d59e08f28..30d08a56d7 100644 --- a/docs/tket/api/OpTypeFunctions_8cpp_source.html +++ b/docs/tket/api/OpTypeFunctions_8cpp_source.html @@ -259,89 +259,90 @@
181  OpType::MultiplexedTensoredU2Box,
182  OpType::StatePreparationBox,
183  OpType::DiagonalBox,
-
184  OpType::ClassicalExpBox,
-
185  OpType::ProjectorAssertionBox,
-
186  OpType::StabiliserAssertionBox,
-
187  OpType::UnitaryTableauBox,
-
188  OpType::ToffoliBox};
-
189  return find_in_set(optype, boxes);
-
190 }
-
191 
-
192 bool is_flowop_type(OpType optype) {
-
193  static const OpTypeSet flowops = {
-
194  OpType::Label, OpType::Branch, OpType::Goto, OpType::Stop};
-
195  return find_in_set(optype, flowops);
-
196 }
-
197 
-
198 bool is_rotation_type(OpType optype) {
-
199  static const OpTypeSet rotation_gates = {
-
200  OpType::Rx, OpType::Ry, OpType::Rz, OpType::U1,
-
201  OpType::CnRy, OpType::CRz, OpType::CRx, OpType::CRy,
-
202  OpType::CU1, OpType::XXPhase, OpType::YYPhase, OpType::ZZPhase,
-
203  OpType::ESWAP, OpType::ISWAP, OpType::XXPhase3};
-
204  return find_in_set(optype, rotation_gates);
-
205 }
-
206 
-
207 bool is_parameterised_pauli_rotation_type(OpType optype) {
-
208  static const OpTypeSet parameterised_pauli_rotations = {
-
209  OpType::Rx, OpType::Ry, OpType::Rz, OpType::U1};
-
210  return find_in_set(optype, parameterised_pauli_rotations);
-
211 }
-
212 
-
213 bool is_multi_qubit_type(OpType optype) {
-
214  return find_in_set(optype, all_multi_qubit_types());
-
215 }
-
216 
-
217 bool is_single_qubit_type(OpType optype) {
-
218  return find_in_set(optype, all_single_qubit_types());
-
219 }
-
220 
-
221 // the set of OpTypes that implement Gate_ptr->get_tk1_angles()
-
222 bool is_single_qubit_unitary_type(OpType optype) {
-
223  return find_in_set(optype, all_single_qubit_unitary_types());
-
224 }
-
225 
-
226 bool is_oneway_type(OpType optype) {
-
227  // This set should contain only gates for which an dagger is nonsensical
-
228  // or we do not yet have the dagger gate as an OpType.
-
229  // If the gate can have an dagger, define it in the dagger() method.
-
230  static const OpTypeSet no_defined_inverse = {
-
231  OpType::Input, OpType::Output, OpType::Measure,
-
232  OpType::ClInput, OpType::ClOutput, OpType::Barrier,
-
233  OpType::Reset, OpType::Collapse, OpType::CustomGate,
-
234  OpType::PhasePolyBox, OpType::Create, OpType::Discard};
-
235  return find_in_set(optype, no_defined_inverse);
-
236 }
-
237 
-
238 bool is_clifford_type(OpType optype) {
-
239  static const OpTypeSet clifford_gates = {
-
240  OpType::Z, OpType::X, OpType::Y, OpType::S,
-
241  OpType::Sdg, OpType::V, OpType::Vdg, OpType::SX,
-
242  OpType::SXdg, OpType::H, OpType::CX, OpType::CY,
-
243  OpType::CZ, OpType::SWAP, OpType::BRIDGE, OpType::noop,
-
244  OpType::ZZMax, OpType::ECR, OpType::ISWAPMax, OpType::UnitaryTableauBox,
-
245  OpType::Phase};
-
246  return find_in_set(optype, clifford_gates);
-
247 }
-
248 
-
249 bool is_projective_type(OpType optype) {
-
250  return find_in_set(optype, all_projective_types());
-
251 }
-
252 
-
253 bool is_classical_type(OpType optype) {
-
254  return find_in_set(optype, all_classical_types());
-
255 }
-
256 
-
257 bool is_controlled_gate_type(OpType optype) {
-
258  return find_in_set(optype, all_controlled_gate_types());
-
259 }
-
260 } // namespace tket
+
184  OpType::ConjugationBox,
+
185  OpType::ClassicalExpBox,
+
186  OpType::ProjectorAssertionBox,
+
187  OpType::StabiliserAssertionBox,
+
188  OpType::UnitaryTableauBox,
+
189  OpType::ToffoliBox};
+
190  return find_in_set(optype, boxes);
+
191 }
+
192 
+
193 bool is_flowop_type(OpType optype) {
+
194  static const OpTypeSet flowops = {
+
195  OpType::Label, OpType::Branch, OpType::Goto, OpType::Stop};
+
196  return find_in_set(optype, flowops);
+
197 }
+
198 
+
199 bool is_rotation_type(OpType optype) {
+
200  static const OpTypeSet rotation_gates = {
+
201  OpType::Rx, OpType::Ry, OpType::Rz, OpType::U1,
+
202  OpType::CnRy, OpType::CRz, OpType::CRx, OpType::CRy,
+
203  OpType::CU1, OpType::XXPhase, OpType::YYPhase, OpType::ZZPhase,
+
204  OpType::ESWAP, OpType::ISWAP, OpType::XXPhase3};
+
205  return find_in_set(optype, rotation_gates);
+
206 }
+
207 
+
208 bool is_parameterised_pauli_rotation_type(OpType optype) {
+
209  static const OpTypeSet parameterised_pauli_rotations = {
+
210  OpType::Rx, OpType::Ry, OpType::Rz, OpType::U1};
+
211  return find_in_set(optype, parameterised_pauli_rotations);
+
212 }
+
213 
+
214 bool is_multi_qubit_type(OpType optype) {
+
215  return find_in_set(optype, all_multi_qubit_types());
+
216 }
+
217 
+
218 bool is_single_qubit_type(OpType optype) {
+
219  return find_in_set(optype, all_single_qubit_types());
+
220 }
+
221 
+
222 // the set of OpTypes that implement Gate_ptr->get_tk1_angles()
+
223 bool is_single_qubit_unitary_type(OpType optype) {
+
224  return find_in_set(optype, all_single_qubit_unitary_types());
+
225 }
+
226 
+
227 bool is_oneway_type(OpType optype) {
+
228  // This set should contain only gates for which an dagger is nonsensical
+
229  // or we do not yet have the dagger gate as an OpType.
+
230  // If the gate can have an dagger, define it in the dagger() method.
+
231  static const OpTypeSet no_defined_inverse = {
+
232  OpType::Input, OpType::Output, OpType::Measure,
+
233  OpType::ClInput, OpType::ClOutput, OpType::Barrier,
+
234  OpType::Reset, OpType::Collapse, OpType::CustomGate,
+
235  OpType::PhasePolyBox, OpType::Create, OpType::Discard};
+
236  return find_in_set(optype, no_defined_inverse);
+
237 }
+
238 
+
239 bool is_clifford_type(OpType optype) {
+
240  static const OpTypeSet clifford_gates = {
+
241  OpType::Z, OpType::X, OpType::Y, OpType::S,
+
242  OpType::Sdg, OpType::V, OpType::Vdg, OpType::SX,
+
243  OpType::SXdg, OpType::H, OpType::CX, OpType::CY,
+
244  OpType::CZ, OpType::SWAP, OpType::BRIDGE, OpType::noop,
+
245  OpType::ZZMax, OpType::ECR, OpType::ISWAPMax, OpType::UnitaryTableauBox,
+
246  OpType::Phase};
+
247  return find_in_set(optype, clifford_gates);
+
248 }
+
249 
+
250 bool is_projective_type(OpType optype) {
+
251  return find_in_set(optype, all_projective_types());
+
252 }
+
253 
+
254 bool is_classical_type(OpType optype) {
+
255  return find_in_set(optype, all_classical_types());
+
256 }
+
257 
+
258 bool is_controlled_gate_type(OpType optype) {
+
259  return find_in_set(optype, all_controlled_gate_types());
+
260 }
+
261 } // namespace tket
OpTypeFunctions.hpp
OpType.hpp
tket
Defines tket::DeviceCharacterisation, used in NoiseAwarePlacement and in commute_SQ_gates_through_SWA...
Definition: Path.cpp:19
-
tket::is_single_qubit_unitary_type
bool is_single_qubit_unitary_type(OpType optype)
Test for single-qubit gates that can be expressed as TK1.
Definition: OpTypeFunctions.cpp:222
+
tket::is_single_qubit_unitary_type
bool is_single_qubit_unitary_type(OpType optype)
Test for single-qubit gates that can be expressed as TK1.
Definition: OpTypeFunctions.cpp:223
tket::is_metaop_type
bool is_metaop_type(OpType optype)
Test for initial, final and barrier "ops".
Definition: OpTypeFunctions.cpp:127
-
tket::is_rotation_type
bool is_rotation_type(OpType optype)
Test for rotations (including controlled rotations)
Definition: OpTypeFunctions.cpp:198
+
tket::is_rotation_type
bool is_rotation_type(OpType optype)
Test for rotations (including controlled rotations)
Definition: OpTypeFunctions.cpp:199
tket::OpType
OpType
Named operation types.
Definition: OpType.hpp:29
tket::OpType::Sdg
@ Sdg
tket::OpType::ToffoliBox
@ ToffoliBox
See ToffoliBox.
@@ -352,6 +353,7 @@
tket::OpType::CRz
@ CRz
Controlled OpType::Rz.
tket::OpType::MultiBit
@ MultiBit
A classical operation applied to multiple bits simultaneously.
tket::OpType::CH
@ CH
Controlled OpType::H.
+
tket::OpType::ConjugationBox
@ ConjugationBox
See ConjugationBox.
tket::OpType::PhasePolyBox
@ PhasePolyBox
See PhasePolyBox.
tket::OpType::Output
@ Output
Quantum output node of the circuit.
tket::OpType::NPhasedX
@ NPhasedX
PhasedX gates on multiple qubits.
@@ -446,31 +448,31 @@
tket::OpType::PauliExpPairBox
@ PauliExpPairBox
See PauliExpPairBox.
tket::OpType::Unitary3qBox
@ Unitary3qBox
See Unitary3qBox.
tket::OpTypeSet
std::unordered_set< OpType > OpTypeSet
Set of operation types.
Definition: OpTypeFunctions.hpp:25
-
tket::is_classical_type
bool is_classical_type(OpType optype)
Test for purely classical gates derived from ClassicalOp.
Definition: OpTypeFunctions.cpp:253
+
tket::is_classical_type
bool is_classical_type(OpType optype)
Test for purely classical gates derived from ClassicalOp.
Definition: OpTypeFunctions.cpp:254
tket::X
@ X
tket::Z
@ Z
tket::Y
@ Y
tket::is_initial_q_type
bool is_initial_q_type(OpType optype)
Test for input or creation quantum "ops".
Definition: OpTypeFunctions.cpp:135
tket::is_gate_type
bool is_gate_type(OpType optype)
Test for elementary gates.
Definition: OpTypeFunctions.cpp:160
-
tket::is_parameterised_pauli_rotation_type
bool is_parameterised_pauli_rotation_type(OpType optype)
Test for rotations around Pauli axes.
Definition: OpTypeFunctions.cpp:207
+
tket::is_parameterised_pauli_rotation_type
bool is_parameterised_pauli_rotation_type(OpType optype)
Test for rotations around Pauli axes.
Definition: OpTypeFunctions.cpp:208
tket::is_boundary_w_type
bool is_boundary_w_type(OpType optype)
Test for input or output for wasm "ops".
Definition: OpTypeFunctions.cpp:156
tket::all_projective_types
const OpTypeSet & all_projective_types()
Set of all measurement and reset gates.
Definition: OpTypeFunctions.cpp:108
tket::all_gate_types
const OpTypeSet & all_gate_types()
Set of all elementary gates.
Definition: OpTypeFunctions.cpp:27
-
tket::is_clifford_type
bool is_clifford_type(OpType optype)
Test for Clifford operations.
Definition: OpTypeFunctions.cpp:238
+
tket::is_clifford_type
bool is_clifford_type(OpType optype)
Test for Clifford operations.
Definition: OpTypeFunctions.cpp:239
tket::is_boundary_type
bool is_boundary_type(OpType optype)
Test for input, creation, output or discard "ops".
Definition: OpTypeFunctions.cpp:143
-
tket::is_oneway_type
bool is_oneway_type(OpType optype)
Test for non-invertible operations.
Definition: OpTypeFunctions.cpp:226
+
tket::is_oneway_type
bool is_oneway_type(OpType optype)
Test for non-invertible operations.
Definition: OpTypeFunctions.cpp:227
tket::all_classical_types
const OpTypeSet & all_classical_types()
Set of all classical gates.
Definition: OpTypeFunctions.cpp:95
-
tket::is_projective_type
bool is_projective_type(OpType optype)
Test for measurement and reset gates.
Definition: OpTypeFunctions.cpp:249
-
tket::is_flowop_type
bool is_flowop_type(OpType optype)
Test for flowops (just for high-level control flow)
Definition: OpTypeFunctions.cpp:192
+
tket::is_projective_type
bool is_projective_type(OpType optype)
Test for measurement and reset gates.
Definition: OpTypeFunctions.cpp:250
+
tket::is_flowop_type
bool is_flowop_type(OpType optype)
Test for flowops (just for high-level control flow)
Definition: OpTypeFunctions.cpp:193
tket::find_in_set
bool find_in_set(const OpType &val, const OpTypeSet &set)
Whether a given operation type belongs to a given set.
Definition: OpTypeFunctions.cpp:23
-
tket::is_multi_qubit_type
bool is_multi_qubit_type(OpType optype)
Test for gates over more than one qubit.
Definition: OpTypeFunctions.cpp:213
-
tket::is_single_qubit_type
bool is_single_qubit_type(OpType optype)
Test for gates over a single qubit.
Definition: OpTypeFunctions.cpp:217
+
tket::is_multi_qubit_type
bool is_multi_qubit_type(OpType optype)
Test for gates over more than one qubit.
Definition: OpTypeFunctions.cpp:214
+
tket::is_single_qubit_type
bool is_single_qubit_type(OpType optype)
Test for gates over a single qubit.
Definition: OpTypeFunctions.cpp:218
tket::is_box_type
bool is_box_type(OpType optype)
Test for boxes (complex packaged operations)
Definition: OpTypeFunctions.cpp:164
tket::all_controlled_gate_types
const OpTypeSet & all_controlled_gate_types()
Set of all controlled gates.
Definition: OpTypeFunctions.cpp:116
tket::is_boundary_q_type
bool is_boundary_q_type(OpType optype)
Test for input, creation, output or discard quantum "ops".
Definition: OpTypeFunctions.cpp:148
tket::all_multi_qubit_types
const OpTypeSet & all_multi_qubit_types()
Set of all gates over more than one qubit.
Definition: OpTypeFunctions.cpp:50
tket::all_single_qubit_types
const OpTypeSet & all_single_qubit_types()
Set of all gates over a single qubit.
Definition: OpTypeFunctions.cpp:82
-
tket::is_controlled_gate_type
bool is_controlled_gate_type(OpType optype)
Test for controlled gates.
Definition: OpTypeFunctions.cpp:257
+
tket::is_controlled_gate_type
bool is_controlled_gate_type(OpType optype)
Test for controlled gates.
Definition: OpTypeFunctions.cpp:258
tket::is_final_q_type
bool is_final_q_type(OpType optype)
Test for output or discard quantum "ops".
Definition: OpTypeFunctions.cpp:139
tket::is_boundary_c_type
bool is_boundary_c_type(OpType optype)
Test for input or output for classical "ops".
Definition: OpTypeFunctions.cpp:152
tket::all_single_qubit_unitary_types
const OpTypeSet & all_single_qubit_unitary_types()
Set of all single-qubit gates that can be expressed as TK1.
Definition: OpTypeFunctions.cpp:70
diff --git a/docs/tket/api/OpTypeFunctions_8hpp.html b/docs/tket/api/OpTypeFunctions_8hpp.html index 65024bc784..53f04fd50b 100644 --- a/docs/tket/api/OpTypeFunctions_8hpp.html +++ b/docs/tket/api/OpTypeFunctions_8hpp.html @@ -104,66 +104,66 @@
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/docs/tket/api/OpTypeFunctions_8hpp__dep__incl.map b/docs/tket/api/OpTypeFunctions_8hpp__dep__incl.map index dbb1d53550..28f05877fc 100644 --- a/docs/tket/api/OpTypeFunctions_8hpp__dep__incl.map +++ b/docs/tket/api/OpTypeFunctions_8hpp__dep__incl.map @@ -1,62 +1,62 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/tket/api/OpTypeFunctions_8hpp__dep__incl.md5 b/docs/tket/api/OpTypeFunctions_8hpp__dep__incl.md5 index d7439a0372..a33ede74b3 100644 --- a/docs/tket/api/OpTypeFunctions_8hpp__dep__incl.md5 +++ b/docs/tket/api/OpTypeFunctions_8hpp__dep__incl.md5 @@ -1 +1 @@ -dcd236f6fce733307fba87460b63561d \ No newline at end of file +bba2a2a51bf784a72441b4b046dc3024 \ No newline at end of file diff --git a/docs/tket/api/OpTypeFunctions_8hpp__dep__incl.png b/docs/tket/api/OpTypeFunctions_8hpp__dep__incl.png index cac69d634e..8bc153fd0b 100644 Binary files a/docs/tket/api/OpTypeFunctions_8hpp__dep__incl.png and b/docs/tket/api/OpTypeFunctions_8hpp__dep__incl.png differ diff --git a/docs/tket/api/OpTypeFunctions_8hpp_source.html b/docs/tket/api/OpTypeFunctions_8hpp_source.html index dc55a21b39..4a0bcaddde 100644 --- a/docs/tket/api/OpTypeFunctions_8hpp_source.html +++ b/docs/tket/api/OpTypeFunctions_8hpp_source.html @@ -163,33 +163,33 @@
OpType.hpp
tket
Defines tket::DeviceCharacterisation, used in NoiseAwarePlacement and in commute_SQ_gates_through_SWA...
Definition: Path.cpp:19
tket::OpTypeVector
std::vector< OpType > OpTypeVector
Vector of operation types.
Definition: OpTypeFunctions.hpp:28
-
tket::is_single_qubit_unitary_type
bool is_single_qubit_unitary_type(OpType optype)
Test for single-qubit gates that can be expressed as TK1.
Definition: OpTypeFunctions.cpp:222
+
tket::is_single_qubit_unitary_type
bool is_single_qubit_unitary_type(OpType optype)
Test for single-qubit gates that can be expressed as TK1.
Definition: OpTypeFunctions.cpp:223
tket::is_metaop_type
bool is_metaop_type(OpType optype)
Test for initial, final and barrier "ops".
Definition: OpTypeFunctions.cpp:127
-
tket::is_rotation_type
bool is_rotation_type(OpType optype)
Test for rotations (including controlled rotations)
Definition: OpTypeFunctions.cpp:198
+
tket::is_rotation_type
bool is_rotation_type(OpType optype)
Test for rotations (including controlled rotations)
Definition: OpTypeFunctions.cpp:199
tket::OpType
OpType
Named operation types.
Definition: OpType.hpp:29
tket::OpTypeSet
std::unordered_set< OpType > OpTypeSet
Set of operation types.
Definition: OpTypeFunctions.hpp:25
-
tket::is_classical_type
bool is_classical_type(OpType optype)
Test for purely classical gates derived from ClassicalOp.
Definition: OpTypeFunctions.cpp:253
+
tket::is_classical_type
bool is_classical_type(OpType optype)
Test for purely classical gates derived from ClassicalOp.
Definition: OpTypeFunctions.cpp:254
tket::is_initial_q_type
bool is_initial_q_type(OpType optype)
Test for input or creation quantum "ops".
Definition: OpTypeFunctions.cpp:135
tket::is_gate_type
bool is_gate_type(OpType optype)
Test for elementary gates.
Definition: OpTypeFunctions.cpp:160
-
tket::is_parameterised_pauli_rotation_type
bool is_parameterised_pauli_rotation_type(OpType optype)
Test for rotations around Pauli axes.
Definition: OpTypeFunctions.cpp:207
+
tket::is_parameterised_pauli_rotation_type
bool is_parameterised_pauli_rotation_type(OpType optype)
Test for rotations around Pauli axes.
Definition: OpTypeFunctions.cpp:208
tket::is_boundary_w_type
bool is_boundary_w_type(OpType optype)
Test for input or output for wasm "ops".
Definition: OpTypeFunctions.cpp:156
tket::all_projective_types
const OpTypeSet & all_projective_types()
Set of all measurement and reset gates.
Definition: OpTypeFunctions.cpp:108
tket::all_gate_types
const OpTypeSet & all_gate_types()
Set of all elementary gates.
Definition: OpTypeFunctions.cpp:27
-
tket::is_clifford_type
bool is_clifford_type(OpType optype)
Test for Clifford operations.
Definition: OpTypeFunctions.cpp:238
+
tket::is_clifford_type
bool is_clifford_type(OpType optype)
Test for Clifford operations.
Definition: OpTypeFunctions.cpp:239
tket::is_boundary_type
bool is_boundary_type(OpType optype)
Test for input, creation, output or discard "ops".
Definition: OpTypeFunctions.cpp:143
-
tket::is_oneway_type
bool is_oneway_type(OpType optype)
Test for non-invertible operations.
Definition: OpTypeFunctions.cpp:226
+
tket::is_oneway_type
bool is_oneway_type(OpType optype)
Test for non-invertible operations.
Definition: OpTypeFunctions.cpp:227
tket::all_classical_types
const OpTypeSet & all_classical_types()
Set of all classical gates.
Definition: OpTypeFunctions.cpp:95
-
tket::is_projective_type
bool is_projective_type(OpType optype)
Test for measurement and reset gates.
Definition: OpTypeFunctions.cpp:249
-
tket::is_flowop_type
bool is_flowop_type(OpType optype)
Test for flowops (just for high-level control flow)
Definition: OpTypeFunctions.cpp:192
+
tket::is_projective_type
bool is_projective_type(OpType optype)
Test for measurement and reset gates.
Definition: OpTypeFunctions.cpp:250
+
tket::is_flowop_type
bool is_flowop_type(OpType optype)
Test for flowops (just for high-level control flow)
Definition: OpTypeFunctions.cpp:193
tket::find_in_set
bool find_in_set(const OpType &val, const OpTypeSet &set)
Whether a given operation type belongs to a given set.
Definition: OpTypeFunctions.cpp:23
-
tket::is_multi_qubit_type
bool is_multi_qubit_type(OpType optype)
Test for gates over more than one qubit.
Definition: OpTypeFunctions.cpp:213
-
tket::is_single_qubit_type
bool is_single_qubit_type(OpType optype)
Test for gates over a single qubit.
Definition: OpTypeFunctions.cpp:217
+
tket::is_multi_qubit_type
bool is_multi_qubit_type(OpType optype)
Test for gates over more than one qubit.
Definition: OpTypeFunctions.cpp:214
+
tket::is_single_qubit_type
bool is_single_qubit_type(OpType optype)
Test for gates over a single qubit.
Definition: OpTypeFunctions.cpp:218
tket::is_box_type
bool is_box_type(OpType optype)
Test for boxes (complex packaged operations)
Definition: OpTypeFunctions.cpp:164
tket::all_controlled_gate_types
const OpTypeSet & all_controlled_gate_types()
Set of all controlled gates.
Definition: OpTypeFunctions.cpp:116
tket::is_boundary_q_type
bool is_boundary_q_type(OpType optype)
Test for input, creation, output or discard quantum "ops".
Definition: OpTypeFunctions.cpp:148
tket::all_multi_qubit_types
const OpTypeSet & all_multi_qubit_types()
Set of all gates over more than one qubit.
Definition: OpTypeFunctions.cpp:50
tket::all_single_qubit_types
const OpTypeSet & all_single_qubit_types()
Set of all gates over a single qubit.
Definition: OpTypeFunctions.cpp:82
-
tket::is_controlled_gate_type
bool is_controlled_gate_type(OpType optype)
Test for controlled gates.
Definition: OpTypeFunctions.cpp:257
+
tket::is_controlled_gate_type
bool is_controlled_gate_type(OpType optype)
Test for controlled gates.
Definition: OpTypeFunctions.cpp:258
tket::is_final_q_type
bool is_final_q_type(OpType optype)
Test for output or discard quantum "ops".
Definition: OpTypeFunctions.cpp:139
tket::is_boundary_c_type
bool is_boundary_c_type(OpType optype)
Test for input or output for classical "ops".
Definition: OpTypeFunctions.cpp:152
tket::all_single_qubit_unitary_types
const OpTypeSet & all_single_qubit_unitary_types()
Set of all single-qubit gates that can be expressed as TK1.
Definition: OpTypeFunctions.cpp:70
diff --git a/docs/tket/api/OpTypeInfo_8cpp_source.html b/docs/tket/api/OpTypeInfo_8cpp_source.html index c3229950ac..0dd7a2af76 100644 --- a/docs/tket/api/OpTypeInfo_8cpp_source.html +++ b/docs/tket/api/OpTypeInfo_8cpp_source.html @@ -225,34 +225,36 @@
147  {OpType::StatePreparationBox,
148  {"StatePreparationBox", "StatePreparationBox", {}, std::nullopt}},
149  {OpType::DiagonalBox, {"DiagonalBox", "DiagonalBox", {}, std::nullopt}},
-
150  {OpType::Conditional, {"Conditional", "If", {}, std::nullopt}},
-
151  {OpType::ProjectorAssertionBox,
-
152  {"ProjectorAssertionBox", "ProjectorAssertionBox", {}, std::nullopt}},
-
153  {OpType::StabiliserAssertionBox,
-
154  {"StabiliserAssertionBox", "StabiliserAssertionBox", {}, std::nullopt}},
-
155  {OpType::ToffoliBox, {"ToffoliBox", "ToffoliBox", {}, std::nullopt}},
-
156  {OpType::ClassicalTransform,
-
157  {"ClassicalTransform", "ClassicalTransform", {}, std::nullopt}},
-
158  {OpType::WASM, {"WASM", "WASM", {}, std::nullopt}},
-
159  {OpType::SetBits, {"SetBits", "SetBits", {}, std::nullopt}},
-
160  {OpType::CopyBits, {"CopyBits", "CopyBits", {}, std::nullopt}},
-
161  {OpType::RangePredicate,
-
162  {"RangePredicate", "RangePredicate", {}, std::nullopt}},
-
163  {OpType::ExplicitPredicate,
-
164  {"ExplicitPredicate", "ExplicitPredicate", {}, std::nullopt}},
-
165  {OpType::ExplicitModifier,
-
166  {"ExplicitModifier", "ExplicitModifier", {}, std::nullopt}},
-
167  {OpType::ClassicalExpBox,
-
168  {"ClassicalExpBox", "ClassicalExpBox", {}, std::nullopt}},
-
169  {OpType::MultiBit, {"MultiBit", "MultiBit", {}, std::nullopt}},
-
170  {OpType::UnitaryTableauBox,
-
171  {"UnitaryTableauBox", "UnitaryTableauBox", {}, std::nullopt}}};
-
172  static std::unique_ptr<const std::map<OpType, OpTypeInfo>> opinfo =
-
173  std::make_unique<const std::map<OpType, OpTypeInfo>>(typeinfo);
-
174  return *opinfo;
-
175 }
-
176 
-
177 } // namespace tket
+
150  {OpType::ConjugationBox,
+
151  {"ConjugationBox", "ConjugationBox", {}, std::nullopt}},
+
152  {OpType::Conditional, {"Conditional", "If", {}, std::nullopt}},
+
153  {OpType::ProjectorAssertionBox,
+
154  {"ProjectorAssertionBox", "ProjectorAssertionBox", {}, std::nullopt}},
+
155  {OpType::StabiliserAssertionBox,
+
156  {"StabiliserAssertionBox", "StabiliserAssertionBox", {}, std::nullopt}},
+
157  {OpType::ToffoliBox, {"ToffoliBox", "ToffoliBox", {}, std::nullopt}},
+
158  {OpType::ClassicalTransform,
+
159  {"ClassicalTransform", "ClassicalTransform", {}, std::nullopt}},
+
160  {OpType::WASM, {"WASM", "WASM", {}, std::nullopt}},
+
161  {OpType::SetBits, {"SetBits", "SetBits", {}, std::nullopt}},
+
162  {OpType::CopyBits, {"CopyBits", "CopyBits", {}, std::nullopt}},
+
163  {OpType::RangePredicate,
+
164  {"RangePredicate", "RangePredicate", {}, std::nullopt}},
+
165  {OpType::ExplicitPredicate,
+
166  {"ExplicitPredicate", "ExplicitPredicate", {}, std::nullopt}},
+
167  {OpType::ExplicitModifier,
+
168  {"ExplicitModifier", "ExplicitModifier", {}, std::nullopt}},
+
169  {OpType::ClassicalExpBox,
+
170  {"ClassicalExpBox", "ClassicalExpBox", {}, std::nullopt}},
+
171  {OpType::MultiBit, {"MultiBit", "MultiBit", {}, std::nullopt}},
+
172  {OpType::UnitaryTableauBox,
+
173  {"UnitaryTableauBox", "UnitaryTableauBox", {}, std::nullopt}}};
+
174  static std::unique_ptr<const std::map<OpType, OpTypeInfo>> opinfo =
+
175  std::make_unique<const std::map<OpType, OpTypeInfo>>(typeinfo);
+
176  return *opinfo;
+
177 }
+
178 
+
179 } // namespace tket
OpTypeInfo.hpp
OpType.hpp
tket
Defines tket::DeviceCharacterisation, used in NoiseAwarePlacement and in commute_SQ_gates_through_SWA...
Definition: Path.cpp:19
@@ -265,6 +267,7 @@
tket::OpType::CRz
@ CRz
Controlled OpType::Rz.
tket::OpType::MultiBit
@ MultiBit
A classical operation applied to multiple bits simultaneously.
tket::OpType::CH
@ CH
Controlled OpType::H.
+
tket::OpType::ConjugationBox
@ ConjugationBox
See ConjugationBox.
tket::OpType::PhasePolyBox
@ PhasePolyBox
See PhasePolyBox.
tket::OpType::Output
@ Output
Quantum output node of the circuit.
tket::OpType::NPhasedX
@ NPhasedX
PhasedX gates on multiple qubits.
diff --git a/docs/tket/api/OpTypeInfo_8hpp.html b/docs/tket/api/OpTypeInfo_8hpp.html index 7f308d6aa5..0195ca9e7d 100644 --- a/docs/tket/api/OpTypeInfo_8hpp.html +++ b/docs/tket/api/OpTypeInfo_8hpp.html @@ -108,66 +108,66 @@
- + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + +
diff --git a/docs/tket/api/OpTypeInfo_8hpp__dep__incl.map b/docs/tket/api/OpTypeInfo_8hpp__dep__incl.map index a85a0b5cd5..f1fc68b465 100644 --- a/docs/tket/api/OpTypeInfo_8hpp__dep__incl.map +++ b/docs/tket/api/OpTypeInfo_8hpp__dep__incl.map @@ -1,62 +1,62 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + diff --git a/docs/tket/api/OpTypeInfo_8hpp__dep__incl.md5 b/docs/tket/api/OpTypeInfo_8hpp__dep__incl.md5 index 71470756e4..141234ab1f 100644 --- a/docs/tket/api/OpTypeInfo_8hpp__dep__incl.md5 +++ b/docs/tket/api/OpTypeInfo_8hpp__dep__incl.md5 @@ -1 +1 @@ -9ce3c238f8be87e2c24e18bd029d3c8f \ No newline at end of file +33a1515a76906698728c68e2e41f6da3 \ No newline at end of file diff --git a/docs/tket/api/OpTypeInfo_8hpp__dep__incl.png b/docs/tket/api/OpTypeInfo_8hpp__dep__incl.png index 7f0288980f..2e9da8e2fe 100644 Binary files a/docs/tket/api/OpTypeInfo_8hpp__dep__incl.png and b/docs/tket/api/OpTypeInfo_8hpp__dep__incl.png differ diff --git a/docs/tket/api/OpType_8hpp.html b/docs/tket/api/OpType_8hpp.html index 6b689bf73d..f08156a730 100644 --- a/docs/tket/api/OpType_8hpp.html +++ b/docs/tket/api/OpType_8hpp.html @@ -297,12 +297,13 @@ , tket::StatePreparationBox , tket::DiagonalBox ,
-  tket::ClassicalExpBox +  tket::ConjugationBox +, tket::ClassicalExpBox , tket::Conditional , tket::ProjectorAssertionBox -, tket::StabiliserAssertionBox ,
-  tket::ToffoliBox +  tket::StabiliserAssertionBox +, tket::ToffoliBox , tket::UnitaryTableauBox
} diff --git a/docs/tket/api/OpType_8hpp__dep__incl.md5 b/docs/tket/api/OpType_8hpp__dep__incl.md5 index 0d98f74278..75163a2351 100644 --- a/docs/tket/api/OpType_8hpp__dep__incl.md5 +++ b/docs/tket/api/OpType_8hpp__dep__incl.md5 @@ -1 +1 @@ -02388e7e57e6d45d4a22a76fa22f07ad \ No newline at end of file +e5dd69fb0acc81dc649e33082ad71d50 \ No newline at end of file diff --git a/docs/tket/api/OpType_8hpp_source.html b/docs/tket/api/OpType_8hpp_source.html index a816d143db..0e3cb17d6b 100644 --- a/docs/tket/api/OpType_8hpp_source.html +++ b/docs/tket/api/OpType_8hpp_source.html @@ -301,22 +301,24 @@
657 
661  DiagonalBox,
662 
-
666  ClassicalExpBox,
+
666  ConjugationBox,
667 
-
671  Conditional,
+
671  ClassicalExpBox,
672 
-
676  ProjectorAssertionBox,
+
676  Conditional,
677 
-
681  StabiliserAssertionBox,
+
681  ProjectorAssertionBox,
682 
-
686  ToffoliBox,
+
686  StabiliserAssertionBox,
687 
-
691  UnitaryTableauBox
-
692 };
-
693 
-
694 JSON_DECL(OpType)
-
695 
-
696 } // namespace tket
+
691  ToffoliBox,
+
692 
+
696  UnitaryTableauBox
+
697 };
+
698 
+
699 JSON_DECL(OpType)
+
700 
+
701 } // namespace tket
Json.hpp
tket::UnitaryTableauBox
Encapsulation of a unitary stabilizer tableau as a Box to use within a circuit.
Definition: UnitaryTableauBox.hpp:29
tket
Defines tket::DeviceCharacterisation, used in NoiseAwarePlacement and in commute_SQ_gates_through_SWA...
Definition: Path.cpp:19
@@ -330,6 +332,7 @@
tket::OpType::CRz
@ CRz
Controlled OpType::Rz.
tket::OpType::MultiBit
@ MultiBit
A classical operation applied to multiple bits simultaneously.
tket::OpType::CH
@ CH
Controlled OpType::H.
+
tket::OpType::ConjugationBox
@ ConjugationBox
See ConjugationBox.
tket::OpType::PhasePolyBox
@ PhasePolyBox
See PhasePolyBox.
tket::OpType::Output
@ Output
Quantum output node of the circuit.
tket::OpType::NPhasedX
@ NPhasedX
PhasedX gates on multiple qubits.
diff --git a/docs/tket/api/Op_8hpp.html b/docs/tket/api/Op_8hpp.html index 686285abb8..56bbd0434d 100644 --- a/docs/tket/api/Op_8hpp.html +++ b/docs/tket/api/Op_8hpp.html @@ -153,66 +153,66 @@
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/docs/tket/api/Op_8hpp__dep__incl.map b/docs/tket/api/Op_8hpp__dep__incl.map index 32e77cd343..42531e30cb 100644 --- a/docs/tket/api/Op_8hpp__dep__incl.map +++ b/docs/tket/api/Op_8hpp__dep__incl.map @@ -1,62 +1,62 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/tket/api/Op_8hpp__dep__incl.md5 b/docs/tket/api/Op_8hpp__dep__incl.md5 index 5375a61ce0..33097001ef 100644 --- a/docs/tket/api/Op_8hpp__dep__incl.md5 +++ b/docs/tket/api/Op_8hpp__dep__incl.md5 @@ -1 +1 @@ -d2147c2a121058e3dd3b696d5e8b39fc \ No newline at end of file +86e5fab696d7beca927c5214b5192982 \ No newline at end of file diff --git a/docs/tket/api/Op_8hpp__dep__incl.png b/docs/tket/api/Op_8hpp__dep__incl.png index 6163e6dcb2..14dad79ded 100644 Binary files a/docs/tket/api/Op_8hpp__dep__incl.png and b/docs/tket/api/Op_8hpp__dep__incl.png differ diff --git a/docs/tket/api/PauliStrings_8hpp__dep__incl.md5 b/docs/tket/api/PauliStrings_8hpp__dep__incl.md5 index fce737b13a..362f7cd249 100644 --- a/docs/tket/api/PauliStrings_8hpp__dep__incl.md5 +++ b/docs/tket/api/PauliStrings_8hpp__dep__incl.md5 @@ -1 +1 @@ -f18f12e8e0529ca1f7e74d953f0a189b \ No newline at end of file +c6654e5f7a4e0f93569a1896056f1079 \ No newline at end of file diff --git a/docs/tket/api/PhasedXFrontier_8cpp_source.html b/docs/tket/api/PhasedXFrontier_8cpp_source.html index 07baf7af90..d941f228a4 100644 --- a/docs/tket/api/PhasedXFrontier_8cpp_source.html +++ b/docs/tket/api/PhasedXFrontier_8cpp_source.html @@ -574,7 +574,7 @@
tket::Transforms::OptEdgeVec
std::vector< OptEdge > OptEdgeVec
Definition: PhasedXFrontier.hpp:32
tket::Transforms::OptEdge
std::optional< Edge > OptEdge
Definition: PhasedXFrontier.hpp:31
tket
Defines tket::DeviceCharacterisation, used in NoiseAwarePlacement and in commute_SQ_gates_through_SWA...
Definition: Path.cpp:19
-
tket::is_single_qubit_unitary_type
bool is_single_qubit_unitary_type(OpType optype)
Test for single-qubit gates that can be expressed as TK1.
Definition: OpTypeFunctions.cpp:222
+
tket::is_single_qubit_unitary_type
bool is_single_qubit_unitary_type(OpType optype)
Test for single-qubit gates that can be expressed as TK1.
Definition: OpTypeFunctions.cpp:223
tket::Vertex
boost::graph_traits< DAG >::vertex_descriptor Vertex
Definition: DAGDefs.hpp:72
tket::as_gate_ptr
Gate_ptr as_gate_ptr(Op_ptr op)
Cast a general Op (of gate type) to a Gate.
Definition: GatePtr.cpp:25
tket::OpType
OpType
Named operation types.
Definition: OpType.hpp:29
diff --git a/docs/tket/api/Rebase_8cpp_source.html b/docs/tket/api/Rebase_8cpp_source.html index bb243754f3..906a66c009 100644 --- a/docs/tket/api/Rebase_8cpp_source.html +++ b/docs/tket/api/Rebase_8cpp_source.html @@ -450,7 +450,7 @@
tket::CX_circ_from_multiq
Circuit CX_circ_from_multiq(const Op_ptr op)
Replace a multi-qubit operation with an equivalent circuit using CX gates.
Definition: Replacement.cpp:106
tket::Expr
SymEngine::Expression Expr
Representation of a phase as a multiple of .
Definition: Expression.hpp:34
tket::Op_ptr
std::shared_ptr< const Op > Op_ptr
Definition: OpPtr.hpp:23
-
tket::is_projective_type
bool is_projective_type(OpType optype)
Test for measurement and reset gates.
Definition: OpTypeFunctions.cpp:249
+
tket::is_projective_type
bool is_projective_type(OpType optype)
Test for measurement and reset gates.
Definition: OpTypeFunctions.cpp:250
tket::TK2_circ_from_multiq
Circuit TK2_circ_from_multiq(const Op_ptr op)
Replace a multi-qubit operation with an equivalent circuit using TK2 gates.
Definition: Replacement.cpp:82
diff --git a/docs/tket/api/SequencedContainers_8hpp.html b/docs/tket/api/SequencedContainers_8hpp.html index cabc8adf18..c1162b65b9 100644 --- a/docs/tket/api/SequencedContainers_8hpp.html +++ b/docs/tket/api/SequencedContainers_8hpp.html @@ -103,66 +103,66 @@
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/docs/tket/api/SequencedContainers_8hpp__dep__incl.map b/docs/tket/api/SequencedContainers_8hpp__dep__incl.map index 331196d1e7..e3116c45e7 100644 --- a/docs/tket/api/SequencedContainers_8hpp__dep__incl.map +++ b/docs/tket/api/SequencedContainers_8hpp__dep__incl.map @@ -1,62 +1,62 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/tket/api/SequencedContainers_8hpp__dep__incl.md5 b/docs/tket/api/SequencedContainers_8hpp__dep__incl.md5 index cc8462292a..bd09cc90ff 100644 --- a/docs/tket/api/SequencedContainers_8hpp__dep__incl.md5 +++ b/docs/tket/api/SequencedContainers_8hpp__dep__incl.md5 @@ -1 +1 @@ -0def71d64947e3ff480e1c92c70c1f16 \ No newline at end of file +86af4ee17cc6e9fd06d7f4f6b7f83d03 \ No newline at end of file diff --git a/docs/tket/api/SequencedContainers_8hpp__dep__incl.png b/docs/tket/api/SequencedContainers_8hpp__dep__incl.png index 7c149194d5..ca037d0c77 100644 Binary files a/docs/tket/api/SequencedContainers_8hpp__dep__incl.png and b/docs/tket/api/SequencedContainers_8hpp__dep__incl.png differ diff --git a/docs/tket/api/StandardSquash_8cpp_source.html b/docs/tket/api/StandardSquash_8cpp_source.html index 36dc7f1485..4181315829 100644 --- a/docs/tket/api/StandardSquash_8cpp_source.html +++ b/docs/tket/api/StandardSquash_8cpp_source.html @@ -216,8 +216,8 @@
tket::OpTypeSet
std::unordered_set< OpType > OpTypeSet
Set of operation types.
Definition: OpTypeFunctions.hpp:25
tket::Gate_ptr
std::shared_ptr< const Gate > Gate_ptr
Definition: GatePtr.hpp:24
tket::Expr
SymEngine::Expression Expr
Representation of a phase as a multiple of .
Definition: Expression.hpp:34
-
tket::is_projective_type
bool is_projective_type(OpType optype)
Test for measurement and reset gates.
Definition: OpTypeFunctions.cpp:249
-
tket::is_single_qubit_type
bool is_single_qubit_type(OpType optype)
Test for gates over a single qubit.
Definition: OpTypeFunctions.cpp:217
+
tket::is_projective_type
bool is_projective_type(OpType optype)
Test for measurement and reset gates.
Definition: OpTypeFunctions.cpp:250
+
tket::is_single_qubit_type
bool is_single_qubit_type(OpType optype)
Test for gates over a single qubit.
Definition: OpTypeFunctions.cpp:218
tket::DAG
boost::adjacency_list< boost::listS, boost::listS, boost::bidirectionalS, boost::property< boost::vertex_index_t, int, VertexProperties >, EdgeProperties > DAG
Graph representing a circuit, with operations as nodes.
Definition: DAGDefs.hpp:70
tket::is_boundary_q_type
bool is_boundary_q_type(OpType optype)
Test for input, creation, output or discard quantum "ops".
Definition: OpTypeFunctions.cpp:148
diff --git a/docs/tket/api/Symbols_8hpp__dep__incl.md5 b/docs/tket/api/Symbols_8hpp__dep__incl.md5 index b180dd90dd..8e101cfb6f 100644 --- a/docs/tket/api/Symbols_8hpp__dep__incl.md5 +++ b/docs/tket/api/Symbols_8hpp__dep__incl.md5 @@ -1 +1 @@ -c2d9f3139fa50651157fdc88831c88f5 \ No newline at end of file +db6b066c213367ffb1fd3bb499dc92f1 \ No newline at end of file diff --git a/docs/tket/api/UnitID_8hpp.html b/docs/tket/api/UnitID_8hpp.html index 7346f51e5e..80e1d1f5f7 100644 --- a/docs/tket/api/UnitID_8hpp.html +++ b/docs/tket/api/UnitID_8hpp.html @@ -124,66 +124,66 @@
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/docs/tket/api/UnitID_8hpp__dep__incl.map b/docs/tket/api/UnitID_8hpp__dep__incl.map index f5842290c4..2376196f5c 100644 --- a/docs/tket/api/UnitID_8hpp__dep__incl.map +++ b/docs/tket/api/UnitID_8hpp__dep__incl.map @@ -1,62 +1,62 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/tket/api/UnitID_8hpp__dep__incl.md5 b/docs/tket/api/UnitID_8hpp__dep__incl.md5 index 8a132b8332..5162b2f3fb 100644 --- a/docs/tket/api/UnitID_8hpp__dep__incl.md5 +++ b/docs/tket/api/UnitID_8hpp__dep__incl.md5 @@ -1 +1 @@ -33fe4cf0db707fd692279b78a3695f3d \ No newline at end of file +6457febfa660b751839c6ca71cd8149d \ No newline at end of file diff --git a/docs/tket/api/UnitID_8hpp__dep__incl.png b/docs/tket/api/UnitID_8hpp__dep__incl.png index b90fe6e6b1..c1e870fbff 100644 Binary files a/docs/tket/api/UnitID_8hpp__dep__incl.png and b/docs/tket/api/UnitID_8hpp__dep__incl.png differ diff --git a/docs/tket/api/ZXConverters_8cpp_source.html b/docs/tket/api/ZXConverters_8cpp_source.html index 25a84b9bb1..bde70d5b6d 100644 --- a/docs/tket/api/ZXConverters_8cpp_source.html +++ b/docs/tket/api/ZXConverters_8cpp_source.html @@ -1132,7 +1132,7 @@
tket::OpType::U1
@ U1
tket::equiv_0
bool equiv_0(const Expr &e, unsigned n, double tol)
Test whether a expression is approximately 0 modulo n.
Definition: Expression.cpp:143
tket::ZXVertPortVec
std::vector< ZXVertPort > ZXVertPortVec
Definition: ZXConverters.cpp:27
-
tket::is_classical_type
bool is_classical_type(OpType optype)
Test for purely classical gates derived from ClassicalOp.
Definition: OpTypeFunctions.cpp:253
+
tket::is_classical_type
bool is_classical_type(OpType optype)
Test for purely classical gates derived from ClassicalOp.
Definition: OpTypeFunctions.cpp:254
tket::add_n_bit_and
std::pair< ZXVertPortVec, ZXVertPort > add_n_bit_and(ZXDiagram &zxd, unsigned n, const QuantumType &qtype)
Definition: ZXConverters.cpp:90
tket::X
@ X
tket::Z
@ Z
@@ -1151,7 +1151,7 @@
tket::port_t
unsigned port_t
A specific entry or exit port of a vertex.
Definition: DAGDefs.hpp:43
tket::remove_all_gadgets
bool remove_all_gadgets(ZXDiagram &diag, const ZXVertVec &frontier, std::map< ZXVert, ZXVert > &input_qubits)
Definition: ZXConverters.cpp:705
tket::neighbours_of_frontier
ZXVertSeqSet neighbours_of_frontier(const ZXDiagram &diag, const ZXVertVec &frontier)
Definition: ZXConverters.cpp:662
-
tket::is_flowop_type
bool is_flowop_type(OpType optype)
Test for flowops (just for high-level control flow)
Definition: OpTypeFunctions.cpp:192
+
tket::is_flowop_type
bool is_flowop_type(OpType optype)
Test for flowops (just for high-level control flow)
Definition: OpTypeFunctions.cpp:193
tket::clean_frontier
void clean_frontier(ZXDiagram &diag, ZXVertVec &frontier, Circuit &circ, std::map< ZXVert, unsigned > &qubit_map)
Definition: ZXConverters.cpp:581
tket::unit_vector_t
std::vector< UnitID > unit_vector_t
Definition: UnitID.hpp:310
tket::add_conditional_zx
std::pair< std::pair< ZXVertPort, ZXVertPort >, ZXVertPortVec > add_conditional_zx(ZXDiagram &zxd, const ZXVert &left, const ZXVert &right, const QuantumType &qtype)
Definition: ZXConverters.cpp:63
diff --git a/docs/tket/api/annotated.html b/docs/tket/api/annotated.html index 1fd9413255..186d295f5c 100644 --- a/docs/tket/api/annotated.html +++ b/docs/tket/api/annotated.html @@ -223,159 +223,160 @@  CBadCommand  CCommand  CConditionalDecorates another op, adding a QASM-style classical condition - CVertexPropertiesDescription of a node in a circuit, representing some operation - CEdgePropertiesDescription of an edge in a circuit, representing a directional wire - CDiagonalBoxBox to synthesise a diagonal operator - CMultiplexorBoxMultiplexed ops - CMultiplexedRotationBoxMultiplexed single-axis rotations - CMultiplexedU2BoxMultiplexed U2 gate - CMultiplexedTensoredU2BoxMultiplexed-Tensored-U2 gate - CPauliExpBoxInvalidity - CPauliExpBoxOperation defined as the exponential of a tensor of Pauli operators - CPauliExpPairBox - CPauliExpCommutingSetBox - CStatePreparationBoxBox to synthesise a statevector - CToffoliBoxBox to synthesise a state permutation - CChoiMixTableau - CBoolPauliBoolean encoding of Pauli <x, z> = <false, false> ==> I <x, z> = <false, true> ==> Z <x, z> = <true, false> ==> X <x, z> = <true, true> ==> Y - CSymplecticTableau - CUnitaryTableau - CUnitaryRevTableau - CCXMaker - CDiagMatrix - CImplicitPermutationNotAllowed - CPhasePolyBoxA PhasePolyBox is capable of representing arbitrary Circuits made up of CNOT and RZ, as a PhasePolynomial plus a boolean matrix representing an additional linear transformation - CCircToPhasePolyConversionThis class realises the conversion all sub circuits of a given circuits which contains only CX+Rz to a PhasePolyBox - CUnitaryTableauBoxEncapsulation of a unitary stabilizer tableau as a Box to use within a circuit - Ccmp_tensors - CUnknownPauliPartitionStrat - CPauliPartitionerGraphA helper class for converting QubitOperator into PauliACGraphs and then colouring the PauliACGraph using some method - CSubstitutionFailure - CGate - CGateUnitaryMatrixFunctions to return the unitary matrix which a gate represents - CGateUnitaryMatrixErrorWe do not wish to couple tightly to exception classes elsewhere - CRotationA faithful representation of SU(2) - CSymTableUtility class for accessing the global symbol table - CAASLabellingMethod - CAASRouteError - CAASRouteRoutingMethod - CBoxDecomposition - CBoxDecompositionRoutingMethod - CLexicographicalComparisonError - CLexicographicalComparisonA class for running lexicographical comparisons of SWAP gates for some architecture and set of interacting qubits - CLexiLabellingMethod - CLexiRouteError - CLexiRouteA class for modifiying a Circuit held in a MappingFrontier object with either an Architecture permitted single SWAP gate or BRIDGE gate - CLexiRouteRoutingMethod - CMappingFrontierError - CMappingFrontier - CMappingManagerError - CMappingManager - CMultiGateReorder - CMultiGateReorderRoutingMethod - CRoutingMethod - CRoutingMethodCircuit - CMeasurementSetupMeasurementSetup Captures an expectation value experiment - CMeasurementBitMap - CQPSHasher - CClassicalOpA purely classical operation - CClassicalEvalOp - CClassicalTransformOpA general classical operation where all inputs are also outputs - CWASMOpOp containing a classical wasm function call - CSetBitsOpAn operation to set some bits to specified values - CCopyBitsOpAn operation to copy some bit values - CPredicateOpA classical operation with single output bit - CRangePredicateOpA predicate defined by a range of values in binary encoding - CExplicitPredicateOpA predicate defined explicitly by a truth table - CModifyingOpA classical operation with one output bit which is also an input bit - CExplicitModifierOpA modifying operation defined explicitly by a truth table - CMultiBitOpA classical operation applied simultaneously to multiple bits - CFlowOp - CMetaOp - CInvalidParameterCountWrong number of parameters for an operation - COpAbstract class representing an operation type - COpJsonFactory - COpDescOperation descriptor - COpTypeInfoGeneral information about an OpType - CBadOpTypeOperation type not valid in the current context - CPauliGadgetProperties - CDependencyEdgeProperties - CMidCircuitMeasurementNotAllowed - CPauliGraphDependency graph of a circuit wrt Pauli Gadgets - CNeighbourPlacementsGiven a placement map generates n nearby placement maps - CResult - CPlacement - CGraphPlacement - CFrontierHolds information for slice wise iteration of Circuit - CWeightedEdgeHolds information for constructing a weighted edge in a QubitGraph - CLinePlacement - CNoiseAwarePlacement - CQubitGraphInstance of DirectedGraph to hold dependencies between Qubit UnitID objects as given from some Circuit - CCompilationUnit - CIncompatibleCompilerPasses - CPassNotSerializable - CPostConditions - CBasePass - CStandardPass - CSequencePass - CRepeatPass - CRepeatWithMetricPass - CRepeatUntilSatisfiedPass - CIncorrectPredicate - CUnsatisfiedPredicate - CPredicateNotSerializable - CPredicate - CGateSetPredicateAsserts that all operations are in the specified set of types - CNoClassicalControlPredicateAsserts that there are no conditional gates in the circuit - CNoFastFeedforwardPredicate - CNoClassicalBitsPredicate - CNoWireSwapsPredicate - CMaxTwoQubitGatesPredicate - CPlacementPredicate - CConnectivityPredicate - CDirectednessPredicate - CCliffordCircuitPredicate - CUserDefinedPredicate - CDefaultRegisterPredicate - CMaxNQubitsPredicate - CMaxNClRegPredicateAsserts that the circuit only contains N classical registers or less - CNoBarriersPredicateAsserts that the circuit contains no OpType::Barrier - CCommutableMeasuresPredicateAsserts that any internal measurements can be commuted to the end of the circuit - CNoMidMeasurePredicateAsserts that any measurements occur at the end of the circuit - CNoSymbolsPredicateAsserts that no gates in the circuit have symbolic parameters - CGlobalPhasedXPredicateAsserts that all NPhasedX gates act on all qubits In the future, it might be useful to have a generic GlobalGatePredicate for other global gates, or flag some gates as global - CNormalisedTK2PredicateAsserts that all TK2 gates are normalised - CInteractionPointRepresents a position that one port of a 2qb Clifford gadget could be commuted to (towards the end of the circuit) - CRevInteractionPointRepresents a position that one port of a 2qb Clifford gadget could be commuted to (towards the start of the circuit) - CInteractionMatchRepresents a position to which two 2q Clifford gadgets could be commuted to Assumes: - CTagEdge - CTagSource - CCliffordReductionPass - CCliffordReductionPassTesterSimple friend class of CliffordReductionPass used for testing private member functions - CAbstractSquasherAbstract Squasher interface - CSingleQubitSquashSquashes single qubit gates using given Squasher - CTransformA transformation of a circuit that preserves its semantics - CSymCompareLess - CSymbolsNotSupportedException indicating that symbolic values are not supported - CJsonError - CUnknownPauliPauli not supported - CUnknownOpTypeOpType not supported - CUnknownCXConfigType - CNonDefaultQubit - CQubitPauliStringA string of Pauli letters from the alphabet {I, X, Y, Z}, implemented as a sparse list, indexed by qubit - CPauliStabiliserA simple struct for Pauli strings with +/- phase, used to represent Pauli strings in a stabiliser subgroup - CQubitPauliTensorA tensor of Pauli terms \( P = i^k \sigma_1 \otimes \sigma_2 \otimes \cdots \otimes \sigma_n \) - CTagKey - CTagValue - CTagSeq - CInvalidUnitConversionConversion invalid - CUnitIDLocation holding a bit or qubit of information - CQubitLocation holding a qubit - CBitLocation holding a bit - CWasmStateLocation holding a wasm UID - CNodeArchitectural qubit location - CWasmNodeWASM UID - Cunit_bimaps_tA pair of ("initial" and "final") correspondences between unit IDs + CConjugationBoxBox to express computations that follow the compute-action-uncompute pattern + CVertexPropertiesDescription of a node in a circuit, representing some operation + CEdgePropertiesDescription of an edge in a circuit, representing a directional wire + CDiagonalBoxBox to synthesise a diagonal operator + CMultiplexorBoxMultiplexed ops + CMultiplexedRotationBoxMultiplexed single-axis rotations + CMultiplexedU2BoxMultiplexed U2 gate + CMultiplexedTensoredU2BoxMultiplexed-Tensored-U2 gate + CPauliExpBoxInvalidity + CPauliExpBoxOperation defined as the exponential of a tensor of Pauli operators + CPauliExpPairBox + CPauliExpCommutingSetBox + CStatePreparationBoxBox to synthesise a statevector + CToffoliBoxBox to synthesise a state permutation + CChoiMixTableau + CBoolPauliBoolean encoding of Pauli <x, z> = <false, false> ==> I <x, z> = <false, true> ==> Z <x, z> = <true, false> ==> X <x, z> = <true, true> ==> Y + CSymplecticTableau + CUnitaryTableau + CUnitaryRevTableau + CCXMaker + CDiagMatrix + CImplicitPermutationNotAllowed + CPhasePolyBoxA PhasePolyBox is capable of representing arbitrary Circuits made up of CNOT and RZ, as a PhasePolynomial plus a boolean matrix representing an additional linear transformation + CCircToPhasePolyConversionThis class realises the conversion all sub circuits of a given circuits which contains only CX+Rz to a PhasePolyBox + CUnitaryTableauBoxEncapsulation of a unitary stabilizer tableau as a Box to use within a circuit + Ccmp_tensors + CUnknownPauliPartitionStrat + CPauliPartitionerGraphA helper class for converting QubitOperator into PauliACGraphs and then colouring the PauliACGraph using some method + CSubstitutionFailure + CGate + CGateUnitaryMatrixFunctions to return the unitary matrix which a gate represents + CGateUnitaryMatrixErrorWe do not wish to couple tightly to exception classes elsewhere + CRotationA faithful representation of SU(2) + CSymTableUtility class for accessing the global symbol table + CAASLabellingMethod + CAASRouteError + CAASRouteRoutingMethod + CBoxDecomposition + CBoxDecompositionRoutingMethod + CLexicographicalComparisonError + CLexicographicalComparisonA class for running lexicographical comparisons of SWAP gates for some architecture and set of interacting qubits + CLexiLabellingMethod + CLexiRouteError + CLexiRouteA class for modifiying a Circuit held in a MappingFrontier object with either an Architecture permitted single SWAP gate or BRIDGE gate + CLexiRouteRoutingMethod + CMappingFrontierError + CMappingFrontier + CMappingManagerError + CMappingManager + CMultiGateReorder + CMultiGateReorderRoutingMethod + CRoutingMethod + CRoutingMethodCircuit + CMeasurementSetupMeasurementSetup Captures an expectation value experiment + CMeasurementBitMap + CQPSHasher + CClassicalOpA purely classical operation + CClassicalEvalOp + CClassicalTransformOpA general classical operation where all inputs are also outputs + CWASMOpOp containing a classical wasm function call + CSetBitsOpAn operation to set some bits to specified values + CCopyBitsOpAn operation to copy some bit values + CPredicateOpA classical operation with single output bit + CRangePredicateOpA predicate defined by a range of values in binary encoding + CExplicitPredicateOpA predicate defined explicitly by a truth table + CModifyingOpA classical operation with one output bit which is also an input bit + CExplicitModifierOpA modifying operation defined explicitly by a truth table + CMultiBitOpA classical operation applied simultaneously to multiple bits + CFlowOp + CMetaOp + CInvalidParameterCountWrong number of parameters for an operation + COpAbstract class representing an operation type + COpJsonFactory + COpDescOperation descriptor + COpTypeInfoGeneral information about an OpType + CBadOpTypeOperation type not valid in the current context + CPauliGadgetProperties + CDependencyEdgeProperties + CMidCircuitMeasurementNotAllowed + CPauliGraphDependency graph of a circuit wrt Pauli Gadgets + CNeighbourPlacementsGiven a placement map generates n nearby placement maps + CResult + CPlacement + CGraphPlacement + CFrontierHolds information for slice wise iteration of Circuit + CWeightedEdgeHolds information for constructing a weighted edge in a QubitGraph + CLinePlacement + CNoiseAwarePlacement + CQubitGraphInstance of DirectedGraph to hold dependencies between Qubit UnitID objects as given from some Circuit + CCompilationUnit + CIncompatibleCompilerPasses + CPassNotSerializable + CPostConditions + CBasePass + CStandardPass + CSequencePass + CRepeatPass + CRepeatWithMetricPass + CRepeatUntilSatisfiedPass + CIncorrectPredicate + CUnsatisfiedPredicate + CPredicateNotSerializable + CPredicate + CGateSetPredicateAsserts that all operations are in the specified set of types + CNoClassicalControlPredicateAsserts that there are no conditional gates in the circuit + CNoFastFeedforwardPredicate + CNoClassicalBitsPredicate + CNoWireSwapsPredicate + CMaxTwoQubitGatesPredicate + CPlacementPredicate + CConnectivityPredicate + CDirectednessPredicate + CCliffordCircuitPredicate + CUserDefinedPredicate + CDefaultRegisterPredicate + CMaxNQubitsPredicate + CMaxNClRegPredicateAsserts that the circuit only contains N classical registers or less + CNoBarriersPredicateAsserts that the circuit contains no OpType::Barrier + CCommutableMeasuresPredicateAsserts that any internal measurements can be commuted to the end of the circuit + CNoMidMeasurePredicateAsserts that any measurements occur at the end of the circuit + CNoSymbolsPredicateAsserts that no gates in the circuit have symbolic parameters + CGlobalPhasedXPredicateAsserts that all NPhasedX gates act on all qubits In the future, it might be useful to have a generic GlobalGatePredicate for other global gates, or flag some gates as global + CNormalisedTK2PredicateAsserts that all TK2 gates are normalised + CInteractionPointRepresents a position that one port of a 2qb Clifford gadget could be commuted to (towards the end of the circuit) + CRevInteractionPointRepresents a position that one port of a 2qb Clifford gadget could be commuted to (towards the start of the circuit) + CInteractionMatchRepresents a position to which two 2q Clifford gadgets could be commuted to Assumes: + CTagEdge + CTagSource + CCliffordReductionPass + CCliffordReductionPassTesterSimple friend class of CliffordReductionPass used for testing private member functions + CAbstractSquasherAbstract Squasher interface + CSingleQubitSquashSquashes single qubit gates using given Squasher + CTransformA transformation of a circuit that preserves its semantics + CSymCompareLess + CSymbolsNotSupportedException indicating that symbolic values are not supported + CJsonError + CUnknownPauliPauli not supported + CUnknownOpTypeOpType not supported + CUnknownCXConfigType + CNonDefaultQubit + CQubitPauliStringA string of Pauli letters from the alphabet {I, X, Y, Z}, implemented as a sparse list, indexed by qubit + CPauliStabiliserA simple struct for Pauli strings with +/- phase, used to represent Pauli strings in a stabiliser subgroup + CQubitPauliTensorA tensor of Pauli terms \( P = i^k \sigma_1 \otimes \sigma_2 \otimes \cdots \otimes \sigma_n \) + CTagKey + CTagValue + CTagSeq + CInvalidUnitConversionConversion invalid + CUnitIDLocation holding a bit or qubit of information + CQubitLocation holding a qubit + CBitLocation holding a bit + CWasmStateLocation holding a wasm UID + CNodeArchitectural qubit location + CWasmNodeWASM UID + Cunit_bimaps_tA pair of ("initial" and "final") correspondences between unit IDs diff --git a/docs/tket/api/classes.html b/docs/tket/api/classes.html index 5db0435c78..a1b949c881 100644 --- a/docs/tket/api/classes.html +++ b/docs/tket/api/classes.html @@ -82,7 +82,7 @@
BadCommand (tket)
BadOpType (tket)
BasePass (tket)
BasicGen (tket::zx)
BestTsaWithArch (tket)
BFS (tket::graphs)
BicomponentGraph (tket::graphs::detail)
BicomponentGraphTester (tket::graphs::detail)
Bit (tket)
BoolPauli (tket)
BoundaryElement (tket)
BoundaryGen (tket::zx)
Box (tket)
BoxDecomposition (tket)
BoxDecompositionRoutingMethod (tket)
BruteForceColouring (tket::graphs)
C
-
ChoiMixTableau (tket)
CircBox (tket)
CircToPhasePolyConversion (tket)
Circuit (tket)
CircuitInequality (tket)
CircuitInvalidity (tket)
ClassicalEvalOp (tket)
ClassicalExpBox (tket)
ClassicalExpBoxBase (tket)
ClassicalOp (tket)
ClassicalTransformOp (tket)
CliffordCircuitPredicate (tket)
CliffordGen (tket::zx)
CliffordReductionPass (tket)
CliffordReductionPassTester (tket)
cmp_tensors (tket)
CNotSwapSynth (tket::aas)
ColouringPriority (tket::graphs)
Command (tket)
Circuit::CommandIterator (tket)
CommutableMeasuresPredicate (tket)
CompilationUnit (tket)
CompleteGraph (tket::graphs)
CompositeGateDef (tket)
Conditional (tket)
ConnectivityPredicate (tket)
ControlDecompError (tket::CircPool)
CopyBitsOp (tket)
CustomGate (tket)
CutFrontier (tket)
CXMaker (tket)
Cycle (tket)
CycleCom (tket)
CycleFinder (tket)
CycleHistory (tket)
+
ChoiMixTableau (tket)
CircBox (tket)
CircToPhasePolyConversion (tket)
Circuit (tket)
CircuitInequality (tket)
CircuitInvalidity (tket)
ClassicalEvalOp (tket)
ClassicalExpBox (tket)
ClassicalExpBoxBase (tket)
ClassicalOp (tket)
ClassicalTransformOp (tket)
CliffordCircuitPredicate (tket)
CliffordGen (tket::zx)
CliffordReductionPass (tket)
CliffordReductionPassTester (tket)
cmp_tensors (tket)
CNotSwapSynth (tket::aas)
ColouringPriority (tket::graphs)
Command (tket)
Circuit::CommandIterator (tket)
CommutableMeasuresPredicate (tket)
CompilationUnit (tket)
CompleteGraph (tket::graphs)
CompositeGateDef (tket)
Conditional (tket)
ConjugationBox (tket)
ConnectivityPredicate (tket)
ControlDecompError (tket::CircPool)
CopyBitsOp (tket)
CustomGate (tket)
CutFrontier (tket)
CXMaker (tket)
Cycle (tket)
CycleCom (tket)
CycleFinder (tket)
CycleHistory (tket)
D
DefaultRegisterPredicate (tket)
DependencyEdgeProperties (tket)
DeviceCharacterisation (tket)
DFS (tket::graphs)
DiagMatrix (tket)
DiagonalBox (tket)
DirectedGen (tket::zx)
DirectedGraph (tket::graphs)
DirectedGraphBase (tket::graphs)
DirectednessPredicate (tket)
DistancesFromArchitecture (tket)
diff --git a/docs/tket/api/classtket_1_1Box.html b/docs/tket/api/classtket_1_1Box.html index 103b0d918c..431423a098 100644 --- a/docs/tket/api/classtket_1_1Box.html +++ b/docs/tket/api/classtket_1_1Box.html @@ -94,31 +94,32 @@
Inheritance graph
- + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + +
[legend]
@@ -389,7 +390,7 @@

-

Implemented in tket::UnitaryTableauBox, tket::PhasePolyBox, tket::ToffoliBox, tket::StatePreparationBox, tket::PauliExpCommutingSetBox, tket::PauliExpPairBox, tket::PauliExpBox, tket::MultiplexedTensoredU2Box, tket::MultiplexedU2Box, tket::MultiplexedRotationBox, tket::MultiplexorBox, tket::DiagonalBox, tket::ClassicalExpBox< T >, tket::StabiliserAssertionBox, tket::ProjectorAssertionBox, tket::QControlBox, tket::CustomGate, tket::ExpBox, tket::Unitary3qBox, tket::Unitary2qBox, tket::Unitary1qBox, and tket::CircBox.

+

Implemented in tket::UnitaryTableauBox, tket::PhasePolyBox, tket::ToffoliBox, tket::StatePreparationBox, tket::PauliExpCommutingSetBox, tket::PauliExpPairBox, tket::PauliExpBox, tket::MultiplexedTensoredU2Box, tket::MultiplexedU2Box, tket::MultiplexedRotationBox, tket::MultiplexorBox, tket::DiagonalBox, tket::ConjugationBox, tket::ClassicalExpBox< T >, tket::StabiliserAssertionBox, tket::ProjectorAssertionBox, tket::QControlBox, tket::CustomGate, tket::ExpBox, tket::Unitary3qBox, tket::Unitary2qBox, tket::Unitary1qBox, and tket::CircBox.

diff --git a/docs/tket/api/classtket_1_1Box__inherit__graph.map b/docs/tket/api/classtket_1_1Box__inherit__graph.map index f7dfa5d8b9..53d3f0f8fe 100644 --- a/docs/tket/api/classtket_1_1Box__inherit__graph.map +++ b/docs/tket/api/classtket_1_1Box__inherit__graph.map @@ -1,28 +1,29 @@ - + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/tket/api/classtket_1_1Box__inherit__graph.md5 b/docs/tket/api/classtket_1_1Box__inherit__graph.md5 index 2f50ed8cb1..2569eeee1e 100644 --- a/docs/tket/api/classtket_1_1Box__inherit__graph.md5 +++ b/docs/tket/api/classtket_1_1Box__inherit__graph.md5 @@ -1 +1 @@ -7c56a496fcfd165f2a80a2f93220f72f \ No newline at end of file +b30ea2392b34d336a80eb910592ffa93 \ No newline at end of file diff --git a/docs/tket/api/classtket_1_1Box__inherit__graph.png b/docs/tket/api/classtket_1_1Box__inherit__graph.png index 26bce74432..48ce365e48 100644 Binary files a/docs/tket/api/classtket_1_1Box__inherit__graph.png and b/docs/tket/api/classtket_1_1Box__inherit__graph.png differ diff --git a/docs/tket/api/classtket_1_1ConjugationBox-members.html b/docs/tket/api/classtket_1_1ConjugationBox-members.html new file mode 100644 index 0000000000..a21f899a0c --- /dev/null +++ b/docs/tket/api/classtket_1_1ConjugationBox-members.html @@ -0,0 +1,136 @@ + + + + + + + +tket: Member List + + + + + + + + + + + +
+
+ + + + + + +
+
tket +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
tket::ConjugationBox Member List
+
+
+ +

This is the complete list of members for tket::ConjugationBox, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Box(const OpType &type, const op_signature_t &signature={})tket::Boxinlineexplicit
Box(const Box &other)tket::Boxinline
circ_tket::Boxmutableprotected
commutes_with_basis(const std::optional< Pauli > &colour, unsigned i) consttket::Opinlinevirtual
commuting_basis(unsigned i) consttket::Opinlinevirtual
ConjugationBox(const Op_ptr &compute, const Op_ptr &action, const std::optional< Op_ptr > uncompute=std::nullopt)tket::ConjugationBoxexplicit
ConjugationBox(const ConjugationBox &other)tket::ConjugationBox
ConjugationBox()tket::ConjugationBoxinlineprotected
dagger() const overridetket::ConjugationBoxvirtual
desc_tket::Opprotected
deserialize(const nlohmann::json &j)tket::Boxstatic
free_symbols() const overridetket::ConjugationBoxinlinevirtual
from_json(const nlohmann::json &j)tket::ConjugationBoxstatic
generate_circuit() const overridetket::ConjugationBoxprotectedvirtual
get_action() consttket::ConjugationBoxinline
get_box_unitary() consttket::Boxinlinevirtual
get_command_str(const unit_vector_t &args) consttket::Opvirtual
get_compute() consttket::ConjugationBoxinline
get_desc() consttket::Opinline
get_id() consttket::Boxinline
get_name(bool latex=false) consttket::Opvirtual
get_params() consttket::Opinlinevirtual
get_params_reduced() consttket::Opinlinevirtual
get_signature() const overridetket::Boxvirtual
get_type() consttket::Opinline
get_uncompute() consttket::ConjugationBoxinline
get_unitary() const overridetket::Boxinlinevirtual
has_symmetry(unsigned port1, unsigned port2) consttket::Opinlinevirtual
id_tket::Boxprotected
idgen()tket::Boxinlineprotectedstatic
is_clifford() consttket::Opinlinevirtual
is_equal(const Op &op_other) const overridetket::ConjugationBoxvirtual
is_extern() consttket::Opinlinevirtual
is_identity() consttket::Opinlinevirtual
n_boolean() consttket::Box
n_classical() consttket::Box
n_qubits() const overridetket::Boxvirtual
Op(const OpType &type)tket::Opinlineexplicitprotected
operator==(const Op &other) consttket::Opinline
serialize() const overridetket::Boxvirtual
signature_tket::Boxprotected
symbol_substitution(const SymEngine::map_basic_basic &) const overridetket::ConjugationBoxinlinevirtual
to_circuit() consttket::Boxinline
to_json(const Op_ptr &op)tket::ConjugationBoxstatic
transpose() const overridetket::ConjugationBoxvirtual
type_tket::Opprotected
~ConjugationBox() overridetket::ConjugationBoxinline
~Op()tket::Opinlinevirtual
+ + + + diff --git a/docs/tket/api/classtket_1_1ConjugationBox.html b/docs/tket/api/classtket_1_1ConjugationBox.html new file mode 100644 index 0000000000..cfadaf799c --- /dev/null +++ b/docs/tket/api/classtket_1_1ConjugationBox.html @@ -0,0 +1,742 @@ + + + + + + + +tket: tket::ConjugationBox Class Reference + + + + + + + + + + + +
+
+ + + + + + +
+
tket +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+ +
+ +

Box to express computations that follow the compute-action-uncompute pattern. + More...

+ +

#include <ConjugationBox.hpp>

+
+Inheritance diagram for tket::ConjugationBox:
+
+
Inheritance graph
+ + + + + + +
[legend]
+
+Collaboration diagram for tket::ConjugationBox:
+
+
Collaboration graph
+ + + + + + + + + +
[legend]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 ConjugationBox (const Op_ptr &compute, const Op_ptr &action, const std::optional< Op_ptr > uncompute=std::nullopt)
 Construct a new ConjugationBox object from operations that perform compute, action, and uncompute. More...
 
 ConjugationBox (const ConjugationBox &other)
 Copy constructor. More...
 
 ~ConjugationBox () override
 
Op_ptr symbol_substitution (const SymEngine::map_basic_basic &) const override
 Operation with values for symbols substituted. More...
 
SymSet free_symbols () const override
 Set of all free symbols occurring in operation parameters. More...
 
bool is_equal (const Op &op_other) const override
 Equality check between two ConjugationBox instances. More...
 
Op_ptr dagger () const override
 Inverse (of a unitary operation) More...
 
Op_ptr transpose () const override
 Transpose of a unitary operation. More...
 
Op_ptr get_compute () const
 
Op_ptr get_action () const
 
std::optional< Op_ptrget_uncompute () const
 
- Public Member Functions inherited from tket::Box
 Box (const OpType &type, const op_signature_t &signature={})
 
 Box (const Box &other)
 
unsigned n_qubits () const override
 Number of Quantum inputs. More...
 
unsigned n_boolean () const
 Number of Boolean inputs. More...
 
unsigned n_classical () const
 Number of Classical inputs. More...
 
op_signature_t get_signature () const override
 Vector specifying type of data for each port on op. More...
 
nlohmann::json serialize () const override
 
std::shared_ptr< Circuitto_circuit () const
 Circuit represented by box. More...
 
virtual std::optional< Eigen::MatrixXcd > get_box_unitary () const
 If meaningful and implemented, return the numerical unitary matrix (in ILO-BE convention) which this Box represents. More...
 
Eigen::MatrixXcd get_unitary () const override
 If meaningful and implemented, return the numerical unitary matrix (in ILO-BE convention) which this Op represents. More...
 
boost::uuids::uuid get_id () const
 Unique identifier (preserved on copy) More...
 
- Public Member Functions inherited from tket::Op
virtual std::vector< Exprget_params () const
 Sequence of phase parameters, if applicable. More...
 
virtual std::vector< Exprget_params_reduced () const
 Sequence of phase parameters reduced to canonical range, if applicable. More...
 
virtual std::string get_name (bool latex=false) const
 String representation. More...
 
virtual std::string get_command_str (const unit_vector_t &args) const
 Command representation. More...
 
OpDesc get_desc () const
 Get operation descriptor. More...
 
OpType get_type () const
 Get operation type. More...
 
virtual std::optional< Paulicommuting_basis (unsigned i) const
 Which Pauli, if any, commutes with the operation at a given qubit. More...
 
virtual bool commutes_with_basis (const std::optional< Pauli > &colour, unsigned i) const
 Whether the operation commutes with the given Pauli at the given qubit. More...
 
virtual bool is_extern () const
 return if the op is external More...
 
virtual std::optional< double > is_identity () const
 Test whether operation is identity up to a phase and return phase if so. More...
 
virtual bool is_clifford () const
 Test whether operation is in the Clifford group. More...
 
virtual bool has_symmetry (unsigned port1, unsigned port2) const
 Checks for symmetry of port pairs. More...
 
virtual ~Op ()
 
bool operator== (const Op &other) const
 
+ + + + + + + + +

+Static Public Member Functions

static Op_ptr from_json (const nlohmann::json &j)
 
static nlohmann::json to_json (const Op_ptr &op)
 
- Static Public Member Functions inherited from tket::Box
static Op_ptr deserialize (const nlohmann::json &j)
 
+ + + + + + + + +

+Protected Member Functions

void generate_circuit () const override
 
 ConjugationBox ()
 
- Protected Member Functions inherited from tket::Op
 Op (const OpType &type)
 
+ + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Static Protected Member Functions inherited from tket::Box
static boost::uuids::uuid idgen ()
 
- Protected Attributes inherited from tket::Box
op_signature_t signature_
 
std::shared_ptr< Circuitcirc_
 
boost::uuids::uuid id_
 
- Protected Attributes inherited from tket::Op
const OpDesc desc_
 Operation descriptor. More...
 
const OpType type_
 Operation type. More...
 
+

Detailed Description

+

Box to express computations that follow the compute-action-uncompute pattern.

+ +

Definition at line 25 of file ConjugationBox.hpp.

+

Constructor & Destructor Documentation

+ +

◆ ConjugationBox() [1/3]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
tket::ConjugationBox::ConjugationBox (const Op_ptrcompute,
const Op_ptraction,
const std::optional< Op_ptruncompute = std::nullopt 
)
+
+explicit
+
+ +

Construct a new ConjugationBox object from operations that perform compute, action, and uncompute.

+

All three operations need to have the same signature.

+
Parameters
+ + + + +
computethe compute operation
actionthe action operation
uncomputeoptional uncompute operation, default to compute.dagger(). If provided, the user needs to make sure that uncompute.dagger() and compute have the same unitary.
+
+
+ +

Definition at line 24 of file ConjugationBox.cpp.

+ +
+
+ +

◆ ConjugationBox() [2/3]

+ +
+
+ + + + + + + + +
tket::ConjugationBox::ConjugationBox (const ConjugationBoxother)
+
+ +

Copy constructor.

+ +

Definition at line 60 of file ConjugationBox.cpp.

+ +
+
+ +

◆ ~ConjugationBox()

+ +
+
+ + + + + +
+ + + + + + + +
tket::ConjugationBox::~ConjugationBox ()
+
+inlineoverride
+
+ +

Definition at line 46 of file ConjugationBox.hpp.

+ +
+
+ +

◆ ConjugationBox() [3/3]

+ +
+
+ + + + + +
+ + + + + + + +
tket::ConjugationBox::ConjugationBox ()
+
+inlineprotected
+
+ +

Definition at line 74 of file ConjugationBox.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ dagger()

+ +
+
+ + + + + +
+ + + + + + + +
Op_ptr tket::ConjugationBox::dagger () const
+
+overridevirtual
+
+ +

Inverse (of a unitary operation)

+
Exceptions
+ + +
BadOpTypeif operation is not unitary
+
+
+ +

Reimplemented from tket::Op.

+ +

Definition at line 66 of file ConjugationBox.cpp.

+ +
+
+ +

◆ free_symbols()

+ +
+
+ + + + + +
+ + + + + + + +
SymSet tket::ConjugationBox::free_symbols () const
+
+inlineoverridevirtual
+
+ +

Set of all free symbols occurring in operation parameters.

+ +

Implements tket::Op.

+ +

Definition at line 53 of file ConjugationBox.hpp.

+ +
+
+ +

◆ from_json()

+ +
+
+ + + + + +
+ + + + + + + + +
Op_ptr tket::ConjugationBox::from_json (const nlohmann::json & j)
+
+static
+
+ +

Definition at line 121 of file ConjugationBox.cpp.

+ +
+
+ +

◆ generate_circuit()

+ +
+
+ + + + + +
+ + + + + + + +
void tket::ConjugationBox::generate_circuit () const
+
+overrideprotectedvirtual
+
+ +

Implements tket::Box.

+ +

Definition at line 78 of file ConjugationBox.cpp.

+ +
+
+ +

◆ get_action()

+ +
+
+ + + + + +
+ + + + + + + +
Op_ptr tket::ConjugationBox::get_action () const
+
+inline
+
+ +

Definition at line 64 of file ConjugationBox.hpp.

+ +
+
+ +

◆ get_compute()

+ +
+
+ + + + + +
+ + + + + + + +
Op_ptr tket::ConjugationBox::get_compute () const
+
+inline
+
+ +

Definition at line 63 of file ConjugationBox.hpp.

+ +
+
+ +

◆ get_uncompute()

+ +
+
+ + + + + +
+ + + + + + + +
std::optional<Op_ptr> tket::ConjugationBox::get_uncompute () const
+
+inline
+
+ +

Definition at line 65 of file ConjugationBox.hpp.

+ +
+
+ +

◆ is_equal()

+ +
+
+ + + + + +
+ + + + + + + + +
bool tket::ConjugationBox::is_equal (const Opop_other) const
+
+overridevirtual
+
+ +

Equality check between two ConjugationBox instances.

+ +

Reimplemented from tket::Op.

+ +

Definition at line 92 of file ConjugationBox.cpp.

+ +
+
+ +

◆ symbol_substitution()

+ +
+
+ + + + + +
+ + + + + + + + +
Op_ptr tket::ConjugationBox::symbol_substitution (const SymEngine::map_basic_basic & sub_map) const
+
+inlineoverridevirtual
+
+ +

Operation with values for symbols substituted.

+
Parameters
+ + +
sub_mapmap from symbols to values
+
+
+
Returns
New operation with symbols substituted, or a null pointer if the operation type does not support symbols.
+ +

Implements tket::Op.

+ +

Definition at line 48 of file ConjugationBox.hpp.

+ +
+
+ +

◆ to_json()

+ +
+
+ + + + + +
+ + + + + + + + +
nlohmann::json tket::ConjugationBox::to_json (const Op_ptrop)
+
+static
+
+ +

Definition at line 107 of file ConjugationBox.cpp.

+ +
+
+ +

◆ transpose()

+ +
+
+ + + + + +
+ + + + + + + +
Op_ptr tket::ConjugationBox::transpose () const
+
+overridevirtual
+
+ +

Transpose of a unitary operation.

+ +

Reimplemented from tket::Op.

+ +

Definition at line 71 of file ConjugationBox.cpp.

+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/docs/tket/api/classtket_1_1ConjugationBox__coll__graph.map b/docs/tket/api/classtket_1_1ConjugationBox__coll__graph.map new file mode 100644 index 0000000000..f3102484d8 --- /dev/null +++ b/docs/tket/api/classtket_1_1ConjugationBox__coll__graph.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/tket/api/classtket_1_1ConjugationBox__coll__graph.md5 b/docs/tket/api/classtket_1_1ConjugationBox__coll__graph.md5 new file mode 100644 index 0000000000..9d9741d19b --- /dev/null +++ b/docs/tket/api/classtket_1_1ConjugationBox__coll__graph.md5 @@ -0,0 +1 @@ +1757610fb021a57694c7c4d7c2e2e4a1 \ No newline at end of file diff --git a/docs/tket/api/classtket_1_1ConjugationBox__coll__graph.png b/docs/tket/api/classtket_1_1ConjugationBox__coll__graph.png new file mode 100644 index 0000000000..2196038ef6 Binary files /dev/null and b/docs/tket/api/classtket_1_1ConjugationBox__coll__graph.png differ diff --git a/docs/tket/api/classtket_1_1ConjugationBox__inherit__graph.map b/docs/tket/api/classtket_1_1ConjugationBox__inherit__graph.map new file mode 100644 index 0000000000..b3ed657e9e --- /dev/null +++ b/docs/tket/api/classtket_1_1ConjugationBox__inherit__graph.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/docs/tket/api/classtket_1_1ConjugationBox__inherit__graph.md5 b/docs/tket/api/classtket_1_1ConjugationBox__inherit__graph.md5 new file mode 100644 index 0000000000..209f15d697 --- /dev/null +++ b/docs/tket/api/classtket_1_1ConjugationBox__inherit__graph.md5 @@ -0,0 +1 @@ +f970b30cd62b77dd97e8639ed13605a7 \ No newline at end of file diff --git a/docs/tket/api/classtket_1_1ConjugationBox__inherit__graph.png b/docs/tket/api/classtket_1_1ConjugationBox__inherit__graph.png new file mode 100644 index 0000000000..0152bf64f1 Binary files /dev/null and b/docs/tket/api/classtket_1_1ConjugationBox__inherit__graph.png differ diff --git a/docs/tket/api/classtket_1_1Op.html b/docs/tket/api/classtket_1_1Op.html index aa8d58da0b..028875a242 100644 --- a/docs/tket/api/classtket_1_1Op.html +++ b/docs/tket/api/classtket_1_1Op.html @@ -91,48 +91,49 @@
Inheritance graph
- - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + +
[legend]
@@ -415,7 +416,7 @@

tket::Gate, tket::UnitaryTableauBox, tket::ToffoliBox, tket::StatePreparationBox, tket::PauliExpCommutingSetBox, tket::PauliExpPairBox, tket::PauliExpBox, tket::MultiplexedTensoredU2Box, tket::MultiplexedU2Box, tket::MultiplexedRotationBox, tket::MultiplexorBox, tket::DiagonalBox, tket::Conditional, tket::StabiliserAssertionBox, tket::ProjectorAssertionBox, tket::QControlBox, tket::ExpBox, tket::Unitary3qBox, tket::Unitary2qBox, tket::Unitary1qBox, and tket::CircBox.

+

Reimplemented in tket::Gate, tket::UnitaryTableauBox, tket::ToffoliBox, tket::StatePreparationBox, tket::PauliExpCommutingSetBox, tket::PauliExpPairBox, tket::PauliExpBox, tket::MultiplexedTensoredU2Box, tket::MultiplexedU2Box, tket::MultiplexedRotationBox, tket::MultiplexorBox, tket::DiagonalBox, tket::ConjugationBox, tket::Conditional, tket::StabiliserAssertionBox, tket::ProjectorAssertionBox, tket::QControlBox, tket::ExpBox, tket::Unitary3qBox, tket::Unitary2qBox, tket::Unitary1qBox, and tket::CircBox.

Definition at line 59 of file Op.hpp.

@@ -446,7 +447,7 @@

tket::MetaOp, tket::FlowOp, tket::ClassicalOp, tket::Gate, tket::UnitaryTableauBox, tket::PhasePolyBox, tket::ToffoliBox, tket::StatePreparationBox, tket::PauliExpCommutingSetBox, tket::PauliExpPairBox, tket::PauliExpBox, tket::MultiplexedTensoredU2Box, tket::MultiplexedU2Box, tket::MultiplexedRotationBox, tket::MultiplexorBox, tket::DiagonalBox, tket::Conditional, tket::ClassicalExpBox< T >, tket::StabiliserAssertionBox, tket::ProjectorAssertionBox, tket::QControlBox, tket::CustomGate, tket::ExpBox, tket::Unitary3qBox, tket::Unitary2qBox, tket::Unitary1qBox, and tket::CircBox.

+

Implemented in tket::MetaOp, tket::FlowOp, tket::ClassicalOp, tket::Gate, tket::UnitaryTableauBox, tket::PhasePolyBox, tket::ToffoliBox, tket::StatePreparationBox, tket::PauliExpCommutingSetBox, tket::PauliExpPairBox, tket::PauliExpBox, tket::MultiplexedTensoredU2Box, tket::MultiplexedU2Box, tket::MultiplexedRotationBox, tket::MultiplexorBox, tket::DiagonalBox, tket::ConjugationBox, tket::Conditional, tket::ClassicalExpBox< T >, tket::StabiliserAssertionBox, tket::ProjectorAssertionBox, tket::QControlBox, tket::CustomGate, tket::ExpBox, tket::Unitary3qBox, tket::Unitary2qBox, tket::Unitary1qBox, and tket::CircBox.

@@ -817,7 +818,7 @@

Op object passed as parameter must always be of the same type as this.

For base class Op, it is sufficient that they have same type

-

Reimplemented in tket::MetaOp, tket::FlowOp, tket::MultiBitOp, tket::RangePredicateOp, tket::WASMOp, tket::ClassicalEvalOp, tket::ClassicalOp, tket::Gate, tket::Conditional, tket::UnitaryTableauBox, tket::PhasePolyBox, tket::ToffoliBox, tket::StatePreparationBox, tket::PauliExpCommutingSetBox, tket::PauliExpPairBox, tket::PauliExpBox, tket::MultiplexedTensoredU2Box, tket::MultiplexedU2Box, tket::MultiplexedRotationBox, tket::MultiplexorBox, tket::DiagonalBox, tket::ClassicalExpBox< T >, tket::StabiliserAssertionBox, tket::ProjectorAssertionBox, tket::QControlBox, tket::CustomGate, tket::ExpBox, tket::Unitary3qBox, tket::Unitary2qBox, tket::Unitary1qBox, and tket::CircBox.

+

Reimplemented in tket::MetaOp, tket::FlowOp, tket::MultiBitOp, tket::RangePredicateOp, tket::WASMOp, tket::ClassicalEvalOp, tket::ClassicalOp, tket::Gate, tket::Conditional, tket::UnitaryTableauBox, tket::PhasePolyBox, tket::ToffoliBox, tket::StatePreparationBox, tket::PauliExpCommutingSetBox, tket::PauliExpPairBox, tket::PauliExpBox, tket::MultiplexedTensoredU2Box, tket::MultiplexedU2Box, tket::MultiplexedRotationBox, tket::MultiplexorBox, tket::DiagonalBox, tket::ConjugationBox, tket::ClassicalExpBox< T >, tket::StabiliserAssertionBox, tket::ProjectorAssertionBox, tket::QControlBox, tket::CustomGate, tket::ExpBox, tket::Unitary3qBox, tket::Unitary2qBox, tket::Unitary1qBox, and tket::CircBox.

Definition at line 197 of file Op.hpp.

@@ -1011,7 +1012,7 @@

Returns
New operation with symbols substituted, or a null pointer if the operation type does not support symbols.
-

Implemented in tket::MetaOp, tket::FlowOp, tket::Gate, tket::UnitaryTableauBox, tket::PhasePolyBox, tket::PauliExpCommutingSetBox, tket::PauliExpPairBox, tket::PauliExpBox, tket::MultiplexedTensoredU2Box, tket::MultiplexedU2Box, tket::MultiplexedRotationBox, tket::MultiplexorBox, tket::Conditional, tket::QControlBox, tket::CustomGate, tket::CircBox, tket::ClassicalOp, tket::ToffoliBox, tket::StatePreparationBox, tket::DiagonalBox, tket::ClassicalExpBox< T >, tket::StabiliserAssertionBox, tket::ProjectorAssertionBox, tket::ExpBox, tket::Unitary3qBox, tket::Unitary2qBox, and tket::Unitary1qBox.

+

Implemented in tket::MetaOp, tket::FlowOp, tket::Gate, tket::UnitaryTableauBox, tket::PhasePolyBox, tket::PauliExpCommutingSetBox, tket::PauliExpPairBox, tket::PauliExpBox, tket::MultiplexedTensoredU2Box, tket::MultiplexedU2Box, tket::MultiplexedRotationBox, tket::MultiplexorBox, tket::Conditional, tket::QControlBox, tket::CustomGate, tket::CircBox, tket::ClassicalOp, tket::ToffoliBox, tket::StatePreparationBox, tket::DiagonalBox, tket::ConjugationBox, tket::ClassicalExpBox< T >, tket::StabiliserAssertionBox, tket::ProjectorAssertionBox, tket::ExpBox, tket::Unitary3qBox, tket::Unitary2qBox, and tket::Unitary1qBox.

@@ -1040,7 +1041,7 @@

tket::Gate, tket::UnitaryTableauBox, tket::ToffoliBox, tket::PauliExpCommutingSetBox, tket::PauliExpPairBox, tket::PauliExpBox, tket::MultiplexedTensoredU2Box, tket::MultiplexedU2Box, tket::MultiplexedRotationBox, tket::MultiplexorBox, tket::DiagonalBox, tket::StabiliserAssertionBox, tket::ProjectorAssertionBox, tket::QControlBox, tket::ExpBox, tket::Unitary3qBox, tket::Unitary2qBox, tket::Unitary1qBox, and tket::CircBox.

+

Reimplemented in tket::Gate, tket::UnitaryTableauBox, tket::ToffoliBox, tket::PauliExpCommutingSetBox, tket::PauliExpPairBox, tket::PauliExpBox, tket::MultiplexedTensoredU2Box, tket::MultiplexedU2Box, tket::MultiplexedRotationBox, tket::MultiplexorBox, tket::DiagonalBox, tket::ConjugationBox, tket::StabiliserAssertionBox, tket::ProjectorAssertionBox, tket::QControlBox, tket::ExpBox, tket::Unitary3qBox, tket::Unitary2qBox, tket::Unitary1qBox, and tket::CircBox.

Definition at line 64 of file Op.hpp.

diff --git a/docs/tket/api/classtket_1_1Op__inherit__graph.map b/docs/tket/api/classtket_1_1Op__inherit__graph.map index 09090ea25c..7124bcbe16 100644 --- a/docs/tket/api/classtket_1_1Op__inherit__graph.map +++ b/docs/tket/api/classtket_1_1Op__inherit__graph.map @@ -1,44 +1,45 @@ - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + diff --git a/docs/tket/api/classtket_1_1Op__inherit__graph.md5 b/docs/tket/api/classtket_1_1Op__inherit__graph.md5 index ddc7aca4ac..ac07ed56e2 100644 --- a/docs/tket/api/classtket_1_1Op__inherit__graph.md5 +++ b/docs/tket/api/classtket_1_1Op__inherit__graph.md5 @@ -1 +1 @@ -70d3dced8309b0f76dab5824507137fa \ No newline at end of file +492dc8e35fe389e8de9b30d6e429b05a \ No newline at end of file diff --git a/docs/tket/api/classtket_1_1Op__inherit__graph.png b/docs/tket/api/classtket_1_1Op__inherit__graph.png index 28368521b8..17321071fc 100644 Binary files a/docs/tket/api/classtket_1_1Op__inherit__graph.png and b/docs/tket/api/classtket_1_1Op__inherit__graph.png differ diff --git a/docs/tket/api/dir_000005_000020.html b/docs/tket/api/dir_000005_000020.html index 94b1eec1f3..9633ec253a 100644 --- a/docs/tket/api/dir_000005_000020.html +++ b/docs/tket/api/dir_000005_000020.html @@ -72,7 +72,7 @@ +

Circuit → Utils Relation

File in include/tket/CircuitIncludes file in include/tket/Utils
AssertionSynthesis.hppEigenConfig.hpp
AssertionSynthesis.hppMatrixAnalysis.hpp
Boxes.hppBiMapHeaders.hpp
Boxes.hppEigenConfig.hpp
Boxes.hppJson.hpp
Boxes.hppMatrixAnalysis.hpp
Boxes.hppUnitID.hpp
CircPool.hppExpression.hpp
Circuit.hppConstants.hpp
Circuit.hppGraphHeaders.hpp
Circuit.hppJson.hpp
Circuit.hppSequencedContainers.hpp
Circuit.hppUnitID.hpp
CircUtils.hppEigenConfig.hpp
CircUtils.hppPauliStrings.hpp
Command.hppJson.hpp
Command.hppUnitID.hpp
Conditional.hppJson.hpp
ConjugationBox.hppJson.hpp
DAGDefs.hppGraphHeaders.hpp
DiagonalBox.hppJson.hpp
Multiplexor.hppJson.hpp
StatePreparation.hppJson.hpp
ThreeQubitConversion.hppEigenConfig.hpp
ToffoliBox.hppJson.hpp
Simulation / CircuitSimulator.hppMatrixAnalysis.hpp
Simulation / PauliExpBoxUnitaryCalculator.hppMatrixAnalysis.hpp