| 298 | } |
| 299 | |
| 300 | void leftapplyFullStateDiagMatrPower(Qureg qureg, FullStateDiagMatr matrix, qcomp exponent) { |
| 301 | validate_quregFields(qureg, __func__); |
| 302 | validate_matrixFields(matrix, __func__); |
| 303 | validate_matrixAndQuregAreCompatible(matrix, qureg, false, __func__); // matrix can be non-unitary |
| 304 | validate_matrixExpIsNonDiverging(matrix, exponent, __func__); |
| 305 | |
| 306 | // rho -> matrix^exponent rho |
| 307 | bool leftMultiply = true; |
| 308 | bool rightMultiply = false; |
| 309 | bool rightConj = false; |
| 310 | |
| 311 | (qureg.isDensityMatrix)? |
| 312 | localiser_densmatr_allTargDiagMatr(qureg, matrix, exponent, leftMultiply, rightMultiply, rightConj): |
| 313 | localiser_statevec_allTargDiagMatr(qureg, matrix, exponent); |
| 314 | } |
| 315 | |
| 316 | void rightapplyFullStateDiagMatr(Qureg qureg, FullStateDiagMatr matrix) { |
| 317 | validate_quregFields(qureg, __func__); |
no test coverage detected