| 945 | |
| 946 | |
| 947 | void 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 | |
| 962 | void localiser_statevec_anyCtrlOneTargDenseMatr(Qureg qureg, vector<int> ctrls, vector<int> ctrlStates, int targ, CompMatr1 matr, bool conj, bool transp) { |
no test coverage detected