1 //---------------------------------------------------------------------------
3 //---------------------------------------------------------------------------
5 //---------------------------------------------------------------------------
9 QC_pauliY::QC_pauliY(int _Target) : QCalcUnit() {
12 //---------------------------------------------------------------------------
17 QC_pauliY::calc(int target, double R[], double I[], int NumberOfBits) {
18 unsigned int state = 1<< (NumberOfBits - 1);
21 for (unsigned int i=0;i<state;i++) {
22 unsigned int ix0 = insert0(i,target);
23 unsigned int ix1 = insert1(i,target);
37 //---------------------------------------------------------------------------
38 void QC_pauliY::Calc(QBits *qBits)
40 int N = qBits->GetNumberOfQBits();
41 double *R = qBits->GetBitsR();//Real Part
42 double *I = qBits->GetBitsI();//Imaginary Part
44 QC_pauliY::calc(Target, R, I, N);
46 //---------------------------------------------------------------------------
49 QC_pauliY::calcmpi(int t1, double R[], double I[], int N) {
54 unsigned int ix0, ix1;
56 for (int i = 0; i < (1 << (N - 1)); i++)
58 // Obtain indices of state:
59 ix0 = QCalcUnit::insert0(i, t1);
60 ix1 = QCalcUnit::insert1(i, t1);
62 bool bstore = setup(R, I, ix0, ix1, r0, i0, r1, i1);
69 store(R, I, ix0, ix1, nr0, ni0, nr1, ni1);
74 //---------------------------------------------------------------------------