27 #ifndef CLASSES_CODES_H_ 28 #define CLASSES_CODES_H_ 86 result = (
mket({0, 0, 0, 0, 0}) +
87 mket({1, 0, 0, 1, 0}) +
88 mket({0, 1, 0, 0, 1}) +
89 mket({1, 0, 1, 0, 0}) +
90 mket({0, 1, 0, 1, 0}) -
91 mket({1, 1, 0, 1, 1}) -
92 mket({0, 0, 1, 1, 0}) -
93 mket({1, 1, 0, 0, 0}) -
94 mket({1, 1, 1, 0, 1}) -
95 mket({0, 0, 0, 1, 1}) -
96 mket({1, 1, 1, 1, 0}) -
97 mket({0, 1, 1, 1, 1}) -
98 mket({1, 0, 0, 0, 1}) -
99 mket({0, 1, 1, 0, 0}) -
100 mket({1, 0, 1, 1, 1}) +
101 mket({0, 0, 1, 0, 1}))
105 result = (
mket({1, 1, 1, 1, 1}) +
106 mket({0, 1, 1, 0, 1}) +
107 mket({1, 0, 1, 1, 0}) +
108 mket({0, 1, 0, 1, 1}) +
109 mket({1, 0, 1, 0, 1}) -
110 mket({0, 0, 1, 0, 0}) -
111 mket({1, 1, 0, 0, 1}) -
112 mket({0, 0, 1, 1, 1}) -
113 mket({0, 0, 0, 1, 0}) -
114 mket({1, 1, 1, 0, 0}) -
115 mket({0, 0, 0, 0, 1}) -
116 mket({1, 0, 0, 0, 0}) -
117 mket({0, 1, 1, 1, 0}) -
118 mket({1, 0, 0, 1, 1}) -
119 mket({0, 1, 0, 0, 0}) +
120 mket({1, 1, 0, 1, 0}))
132 result = (
mket({0, 0, 0, 0, 0, 0, 0}) +
133 mket({1, 0, 1, 0, 1, 0, 1}) +
134 mket({0, 1, 1, 0, 0, 1, 1}) +
135 mket({1, 1, 0, 0, 1, 1, 0}) +
136 mket({0, 0, 0, 1, 1, 1, 1}) +
137 mket({1, 0, 1, 1, 0, 1, 0}) +
138 mket({0, 1, 1, 1, 1, 0, 0}) +
139 mket({1, 1, 0, 1, 0, 0, 1})) /
144 result = (
mket({1, 1, 1, 1, 1, 1, 1}) +
145 mket({0, 1, 0, 1, 0, 1, 0}) +
146 mket({1, 0, 0, 1, 1, 0, 0}) +
147 mket({0, 0, 1, 1, 0, 0, 1}) +
148 mket({1, 1, 1, 0, 0, 0, 0}) +
149 mket({0, 1, 0, 0, 1, 0, 1}) +
150 mket({1, 0, 0, 0, 0, 1, 1}) +
151 mket({0, 0, 1, 0, 1, 1, 0})) /
161 shora =
mket({0, 0, 0}) +
mket({1, 1, 1,});
162 shorb =
mket({0, 0, 0}) -
mket({1, 1, 1,});
166 result =
kron(shora,
kron(shora, shora))
170 result =
kron(shorb,
kron(shorb, shorb))
Codes()
Default constructor.
Definition: codes.h:56
Singleton policy class, used internally to implement the singleton pattern via CRTP (Curiously recurr...
Definition: singleton.h:76
Eigen::VectorXcd ket
Complex (double precision) dynamic Eigen column vector.
Definition: types.h:50
Quantum++ main namespace.
Definition: codes.h:30
Type
Code types, add more codes here if needed.
Definition: codes.h:45
const Singleton class that defines quantum error correcting codes
Definition: codes.h:36
~Codes()=default
Default destructor.
[[7,1,3]] Steane qubit code
dyn_mat< typename T::Scalar > kron(const T &head)
Kronecker product.
Definition: functions.h:899
[[9,1,3]] Shor qubit code
Codeword does not exist exception.
Definition: exception.h:550
ket mket(const std::vector< idx > &mask, const std::vector< idx > &dims)
Multi-partite qudit ket.
Definition: functions.h:1465
ket codeword(Type type, idx i) const
Returns the codeword of the specified code type.
Definition: codes.h:76
std::size_t idx
Non-negative integer index.
Definition: types.h:35