| 226 | extern "C" { |
| 227 | |
| 228 | void applyTrotterizedUnitaryTimeEvolution(Qureg qureg, PauliStrSum hamil, qreal time, int order, int reps) { |
| 229 | validate_quregFields(qureg, __func__); |
| 230 | validate_pauliStrSumFields(hamil, __func__); |
| 231 | validate_pauliStrSumTargets(hamil, qureg, __func__); |
| 232 | validate_pauliStrSumIsHermitian(hamil, __func__); |
| 233 | validate_trotterParams(qureg, order, reps, __func__); |
| 234 | |
| 235 | // exp(-i t H) = exp(x i H) | x=-t |
| 236 | qcomp angle = - time; |
| 237 | bool onlyLeftApply = false; |
| 238 | internal_applyAllTrotterRepetitions(qureg, nullptr, nullptr, 0, hamil, angle, order, reps, onlyLeftApply); |
| 239 | } |
| 240 | |
| 241 | void applyTrotterizedImaginaryTimeEvolution(Qureg qureg, PauliStrSum hamil, qreal tau, int order, int reps) { |
| 242 | validate_quregFields(qureg, __func__); |
no test coverage detected