| 1419 | } |
| 1420 | |
| 1421 | void applyMultiQubitPhaseShift(Qureg qureg, int* targets, int numTargets, qreal angle) { |
| 1422 | validate_quregFields(qureg, __func__); |
| 1423 | validate_targets(qureg, targets, numTargets, __func__); |
| 1424 | |
| 1425 | // treat as a (numTargets-1)-controlled 1-target diagonal matrix |
| 1426 | DiagMatr1 matr = getDiagMatr1({1, std::exp(1_i * angle)}); |
| 1427 | |
| 1428 | // harmlessly re-validates |
| 1429 | applyMultiStateControlledDiagMatr1(qureg, &targets[1], nullptr, numTargets-1, targets[0], matr); |
| 1430 | } |
| 1431 | |
| 1432 | } // end de-mangler |
| 1433 |
no test coverage detected