| 846 | |
| 847 | |
| 848 | void accel_densmatr_partialTrace_sub(Qureg inQureg, Qureg outQureg, vector<int> targs, vector<int> pairTargs) { |
| 849 | assert_partialTraceQuregsAreIdenticallyDeployed(inQureg, outQureg); |
| 850 | |
| 851 | auto cpuFunc = GET_FUNC_OPTIMISED_FOR_NUM_TARGS( cpu_densmatr_partialTrace_sub, targs.size() ); |
| 852 | auto gpuFunc = GET_FUNC_OPTIMISED_FOR_NUM_TARGS( gpu_densmatr_partialTrace_sub, targs.size() ); |
| 853 | |
| 854 | // inQureg == outQureg except for dimension, so use common backend |
| 855 | auto useFunc = (inQureg.isGpuAccelerated)? gpuFunc : cpuFunc; |
| 856 | useFunc(inQureg, outQureg, targs, pairTargs); |
| 857 | } |
| 858 | |
| 859 | |
| 860 |
no test coverage detected