1 //---------------------------------------------------------------------------
3 //---------------------------------------------------------------------------
5 //---------------------------------------------------------------------------
9 QC_pauliZ::QC_pauliZ(int _Target) : QCalcUnit() {
12 //---------------------------------------------------------------------------
17 QC_pauliZ::calc(int target, double R[], double I[], int NumberOfBits) {
19 unsigned int state = 1<< (NumberOfBits - 1);
20 for (unsigned int i=0;i<state;i++) {
21 unsigned int ix1 = insert1(i,target);
29 //---------------------------------------------------------------------------
31 QC_pauliZ::Calc(QBits *qBits) {
32 int N = qBits->GetNumberOfQBits();
33 double *R = qBits->GetBitsR();//Real Part
34 double *I = qBits->GetBitsI();//Imaginary Part
36 QC_pauliZ::calc(Target, R, I, N);
38 //---------------------------------------------------------------------------
41 QC_pauliZ::calcmpi(int t1, double R[], double I[], int N) {
46 unsigned int ix0, ix1;
48 for (int i = 0; i < (1 << (N - 1)); i++) {
49 // Obtain indices of state:
50 ix0 = QCalcUnit::insert0(i, t1);
51 ix1 = QCalcUnit::insert1(i, t1);
53 bool bstore = setup(R, I, ix0, ix1, r0, i0, r1, i1);
60 store(R, I, ix0, ix1, nr0, ni0, nr1, ni1);
65 //---------------------------------------------------------------------------