| 326 | |
| 327 | template <NumQubitsFlag Ctrls> |
| 328 | int GENERATE_NUM_CTRLS(int numFreeQubits) { |
| 329 | |
| 330 | assertNumQubitsFlagsAreValid(Ctrls, one); |
| 331 | DEMAND( Ctrls != one || numFreeQubits >= 1 ); |
| 332 | DEMAND( numFreeQubits >= 0 ); |
| 333 | |
| 334 | if constexpr (Ctrls == zero) |
| 335 | return 0; |
| 336 | |
| 337 | if constexpr (Ctrls == one) |
| 338 | return 1; |
| 339 | |
| 340 | if constexpr (Ctrls == any || Ctrls == anystates) |
| 341 | return GENERATE_COPY( range(0, numFreeQubits+1) ); |
| 342 | } |
| 343 | |
| 344 | |
| 345 | /* |
nothing calls this directly
no test coverage detected