MCPcopy Create free account
hub / github.com/QuEST-Kit/QuEST / anyCtrlOneTargDenseMatrOnPrefix

Function anyCtrlOneTargDenseMatrOnPrefix

quest/src/core/localiser.cpp:947–959  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

945
946
947void anyCtrlOneTargDenseMatrOnPrefix(Qureg qureg, vector<int> ctrls, vector<int> ctrlStates, int targ, CompMatr1 matr) {
948
949 int pairRank = util_getRankWithQubitFlipped(targ, qureg);
950 exchangeAmpsToBuffersWhereQubitsAreInStates(qureg, pairRank, ctrls, ctrlStates);
951
952 // extract relevant gate elements
953 int bit = util_getRankBitOfQubit(targ, qureg);
954 qcomp fac0 = matr.elems[bit][ bit];
955 qcomp fac1 = matr.elems[bit][!bit];
956
957 // update local amps using received amps in buffer
958 accel_statevec_anyCtrlOneTargDenseMatr_subB(qureg, ctrls, ctrlStates, fac0, fac1);
959}
960
961
962void localiser_statevec_anyCtrlOneTargDenseMatr(Qureg qureg, vector<int> ctrls, vector<int> ctrlStates, int targ, CompMatr1 matr, bool conj, bool transp) {

Tested by

no test coverage detected