32 #ifndef CLASSES_CODES_H_ 33 #define CLASSES_CODES_H_ 85 result = (mket({0, 0, 0, 0, 0}) + mket({1, 0, 0, 1, 0}) +
86 mket({0, 1, 0, 0, 1}) + mket({1, 0, 1, 0, 0}) +
87 mket({0, 1, 0, 1, 0}) - mket({1, 1, 0, 1, 1}) -
88 mket({0, 0, 1, 1, 0}) - mket({1, 1, 0, 0, 0}) -
89 mket({1, 1, 1, 0, 1}) - mket({0, 0, 0, 1, 1}) -
90 mket({1, 1, 1, 1, 0}) - mket({0, 1, 1, 1, 1}) -
91 mket({1, 0, 0, 0, 1}) - mket({0, 1, 1, 0, 0}) -
92 mket({1, 0, 1, 1, 1}) + mket({0, 0, 1, 0, 1})) /
96 result = (mket({1, 1, 1, 1, 1}) + mket({0, 1, 1, 0, 1}) +
97 mket({1, 0, 1, 1, 0}) + mket({0, 1, 0, 1, 1}) +
98 mket({1, 0, 1, 0, 1}) - mket({0, 0, 1, 0, 0}) -
99 mket({1, 1, 0, 0, 1}) - mket({0, 0, 1, 1, 1}) -
100 mket({0, 0, 0, 1, 0}) - mket({1, 1, 1, 0, 0}) -
101 mket({0, 0, 0, 0, 1}) - mket({1, 0, 0, 0, 0}) -
102 mket({0, 1, 1, 1, 0}) - mket({1, 0, 0, 1, 1}) -
103 mket({0, 1, 0, 0, 0}) + mket({1, 1, 0, 1, 0})) /
115 (mket({0, 0, 0, 0, 0, 0, 0}) + mket({1, 0, 1, 0, 1, 0, 1}) +
116 mket({0, 1, 1, 0, 0, 1, 1}) + mket({1, 1, 0, 0, 1, 1, 0}) +
117 mket({0, 0, 0, 1, 1, 1, 1}) + mket({1, 0, 1, 1, 0, 1, 0}) +
118 mket({0, 1, 1, 1, 1, 0, 0}) +
119 mket({1, 1, 0, 1, 0, 0, 1})) /
125 (mket({1, 1, 1, 1, 1, 1, 1}) + mket({0, 1, 0, 1, 0, 1, 0}) +
126 mket({1, 0, 0, 1, 1, 0, 0}) + mket({0, 0, 1, 1, 0, 0, 1}) +
127 mket({1, 1, 1, 0, 0, 0, 0}) + mket({0, 1, 0, 0, 1, 0, 1}) +
128 mket({1, 0, 0, 0, 0, 1, 1}) +
129 mket({0, 0, 1, 0, 1, 1, 0})) /
139 shora = mket({0, 0, 0}) + mket({
142 shorb = mket({0, 0, 0}) - mket({
147 result = kron(shora, kron(shora, shora)) / std::sqrt(8.);
150 result = kron(shorb, kron(shorb, shorb)) / std::sqrt(8.);
Codes()
Default constructor.
Definition: codes.h:59
Singleton policy class, used internally to implement the singleton pattern via CRTP (Curiously recurr...
Definition: singleton.h:80
Eigen::VectorXcd ket
Complex (double precision) dynamic Eigen column vector.
Definition: types.h:54
Quantum++ main namespace.
Definition: codes.h:35
Type
Code types, add more codes here if needed.
Definition: codes.h:49
const Singleton class that defines quantum error correcting codes
Definition: codes.h:40
~Codes()=default
Default destructor.
[[7,1,3]] Steane qubit code
[[9,1,3]] Shor qubit code
Codeword does not exist exception.
Definition: exception.h:498
ket codeword(Type type, idx i) const
Returns the codeword of the specified code type.
Definition: codes.h:78
std::size_t idx
Non-negative integer index.
Definition: types.h:39