| 4313 | } |
| 4314 | |
| 4315 | void validate_quregCanBeSetToReducedDensMatr(Qureg out, Qureg in, int numTraceQubits, const char* caller) { |
| 4316 | |
| 4317 | int numRemainingQubits = in.numQubits - numTraceQubits; |
| 4318 | |
| 4319 | tokenSubs vars = { |
| 4320 | {"${IN_QUBITS}", in.numQubits}, |
| 4321 | {"${OUT_QUBITS}", out.numQubits}, |
| 4322 | {"${TRACE_QUBITS}", numTraceQubits}, |
| 4323 | {"${RETAIN_QUBITS}", numRemainingQubits}}; |
| 4324 | |
| 4325 | assertThat(out.numQubits == numRemainingQubits, report::NUM_TRACE_QUBITS_INCONSISTENT_WITH_REDUCED_QUREG, vars, caller); |
| 4326 | |
| 4327 | assertThat(out.isDistributed == in.isDistributed, report::REDUCED_QUREG_DIFFERING_DISTRIBUTION_TO_IN_QUREG, caller); |
| 4328 | assertThat(out.isGpuAccelerated == in.isGpuAccelerated, report::REDUCED_QUREG_DIFFERING_GPU_DEPLOYMENT_TO_IN_QUREG, caller); |
| 4329 | } |
| 4330 | |
| 4331 | |
| 4332 |
no test coverage detected