| 258 | } |
| 259 | |
| 260 | void rightapplyDiagMatrPower(Qureg qureg, int* targets, int numTargets, DiagMatr matrix, qcomp exponent) { |
| 261 | validate_quregFields(qureg, __func__); |
| 262 | validate_quregIsDensityMatrix(qureg, __func__); |
| 263 | validate_targets(qureg, targets, numTargets, __func__); |
| 264 | validate_matrixDimMatchesTargets(matrix, numTargets, __func__); // also validates fields and is-sync, but not unitarity |
| 265 | validate_matrixExpIsNonDiverging(matrix, exponent, __func__); // harmlessly re-validates fields and is-sync |
| 266 | |
| 267 | bool conj = false; |
| 268 | auto qubits = util_getBraQubits(util_getVector(targets, numTargets), qureg); |
| 269 | localiser_statevec_anyCtrlAnyTargDiagMatr(qureg, {}, {}, qubits, matrix, exponent, conj); |
| 270 | } |
| 271 | |
| 272 | } // end de-mangler |
| 273 |
nothing calls this directly
no test coverage detected