| 1568 | } |
| 1569 | |
| 1570 | void applyMultiQubitProjector(Qureg qureg, int* qubits, int* outcomes, int numQubits) { |
| 1571 | validate_quregFields(qureg, __func__); |
| 1572 | validate_targets(qureg, qubits, numQubits, __func__); |
| 1573 | validate_measurementOutcomesAreValid(outcomes, numQubits, __func__); |
| 1574 | |
| 1575 | qreal prob = 1; |
| 1576 | auto qubitVec = util_getVector(qubits, numQubits); |
| 1577 | auto outcomeVec = util_getVector(outcomes, numQubits); |
| 1578 | |
| 1579 | // density matrix has an optimised func in lieu of calling the statevector func twice |
| 1580 | (qureg.isDensityMatrix)? |
| 1581 | localiser_densmatr_multiQubitProjector(qureg, qubitVec, outcomeVec, prob): |
| 1582 | localiser_statevec_multiQubitProjector(qureg, qubitVec, outcomeVec, prob); |
| 1583 | } |
| 1584 | |
| 1585 | } // end de-mangler |
| 1586 |
no test coverage detected