* @brief Shift the quantum state one bit to the left * @ingroup ArithmeticUnit * @param[in] a qubits * @return QCircuit * @note The result of shift is saved in a. */
| 190 | * @note The result of shift is saved in a. |
| 191 | */ |
| 192 | QCircuit shift(QVec& a) |
| 193 | { |
| 194 | QCircuit circ; |
| 195 | auto len = a.size(); |
| 196 | for (auto i = len - 1; i > 0; i--) |
| 197 | { |
| 198 | circ << SWAP(a[i], a[i - 1]); |
| 199 | } |
| 200 | return circ; |
| 201 | } |
| 202 | |
| 203 | QCircuit QMultiplier(QVec& a, QVec& b, QVec& k, QVec& d) |
| 204 | { |
no test coverage detected