@@ -415,7 +415,7 @@ void gpu_statevec_anyCtrlAnyTargDiagMatr_sub(Qureg q, std::vector<int> ctrls, st
415415template <bool HasPower>
416416void gpu_statevec_allTargDiagMatr_sub (Qureg q, FullStateDiagMatr m, std::complex <double > globalPhase) {}
417417
418- template <bool HasPower, bool MultiplyOnly >
418+ template <bool HasPower, bool ApplyLeft, bool ApplyRight, bool ConjRight >
419419void gpu_densmatr_allTargDiagMatr_sub (Qureg q, FullStateDiagMatr m, std::complex <double > globalPhase) {}
420420
421421// Template stubs for partial trace operations
@@ -899,10 +899,22 @@ template void gpu_statevec_anyCtrlAnyTargDiagMatr_sub<-1, -1, true, true>(Qureg,
899899template void gpu_statevec_allTargDiagMatr_sub<false >(Qureg, FullStateDiagMatr, std::complex <double >);
900900template void gpu_statevec_allTargDiagMatr_sub<true >(Qureg, FullStateDiagMatr, std::complex <double >);
901901
902- template void gpu_densmatr_allTargDiagMatr_sub<false , false >(Qureg, FullStateDiagMatr, std::complex <double >);
903- template void gpu_densmatr_allTargDiagMatr_sub<false , true >(Qureg, FullStateDiagMatr, std::complex <double >);
904- template void gpu_densmatr_allTargDiagMatr_sub<true , false >(Qureg, FullStateDiagMatr, std::complex <double >);
905- template void gpu_densmatr_allTargDiagMatr_sub<true , true >(Qureg, FullStateDiagMatr, std::complex <double >);
902+ template void gpu_densmatr_allTargDiagMatr_sub<false , false , false , false >(Qureg, FullStateDiagMatr, std::complex <double >);
903+ template void gpu_densmatr_allTargDiagMatr_sub<false , false , false , true >(Qureg, FullStateDiagMatr, std::complex <double >);
904+ template void gpu_densmatr_allTargDiagMatr_sub<false , false , true , false >(Qureg, FullStateDiagMatr, std::complex <double >);
905+ template void gpu_densmatr_allTargDiagMatr_sub<false , false , true , true >(Qureg, FullStateDiagMatr, std::complex <double >);
906+ template void gpu_densmatr_allTargDiagMatr_sub<false , true , false , false >(Qureg, FullStateDiagMatr, std::complex <double >);
907+ template void gpu_densmatr_allTargDiagMatr_sub<false , true , false , true >(Qureg, FullStateDiagMatr, std::complex <double >);
908+ template void gpu_densmatr_allTargDiagMatr_sub<false , true , true , false >(Qureg, FullStateDiagMatr, std::complex <double >);
909+ template void gpu_densmatr_allTargDiagMatr_sub<false , true , true , true >(Qureg, FullStateDiagMatr, std::complex <double >);
910+ template void gpu_densmatr_allTargDiagMatr_sub<true , false , false , false >(Qureg, FullStateDiagMatr, std::complex <double >);
911+ template void gpu_densmatr_allTargDiagMatr_sub<true , false , false , true >(Qureg, FullStateDiagMatr, std::complex <double >);
912+ template void gpu_densmatr_allTargDiagMatr_sub<true , false , true , false >(Qureg, FullStateDiagMatr, std::complex <double >);
913+ template void gpu_densmatr_allTargDiagMatr_sub<true , false , true , true >(Qureg, FullStateDiagMatr, std::complex <double >);
914+ template void gpu_densmatr_allTargDiagMatr_sub<true , true , false , false >(Qureg, FullStateDiagMatr, std::complex <double >);
915+ template void gpu_densmatr_allTargDiagMatr_sub<true , true , false , true >(Qureg, FullStateDiagMatr, std::complex <double >);
916+ template void gpu_densmatr_allTargDiagMatr_sub<true , true , true , false >(Qureg, FullStateDiagMatr, std::complex <double >);
917+ template void gpu_densmatr_allTargDiagMatr_sub<true , true , true , true >(Qureg, FullStateDiagMatr, std::complex <double >);
906918
907919// Explicit template instantiations for partial trace operations
908920template void gpu_densmatr_partialTrace_sub<0 >(Qureg, Qureg, std::vector<int >, std::vector<int >);
0 commit comments