int main() { int count = 1; for (unsigned int i : Ham({2,3,5,7})) { std::cout << i << ' '; if (count++ == 64) break; } std::cout << std::endl; return 0; }
void RelaxOneHamIntMul(MessRelaxInpPar &RelaxPar, double H,double Qs,double Eta,double Is,double Wid, double *x,double *y) { CMatrCl Rot3Rgt(4),Rot1Lft(2),Ham(8),Ham3(4),Ham1(2),tmp3(4),tmp1(2); Rot1Lft=Rot1Lft*0+1;Rot3Rgt=Rot3Rgt*0+1; my_comp *res=NULL; double Tstp; Wid=Wid/2; int Nit; //MaxNit=0; double CurT,CurItT,t0,t1; for (int xi=1;xi<=x[0];xi++) y[xi]=0; for (int t=1;t<=RelaxPar.NumHam;t++) { t1=RelaxPar.Times[t];t0=RelaxPar.Times[t-1]; QsHMat(Ham,RelaxPar.Teta[t],RelaxPar.Phi[t],H, -Qs, Eta, -Is,&Ham3,&Ham1); // GenerateIntVar(Ham3,Rot3Rgt,Ham1,Rot1Lft,t0,t1,0.01,res,Tstp,Nit); GenerateInt(Ham3,Rot3Rgt,Ham1,Rot1Lft,t0,t1,0.01,res,Tstp,Nit); CurT=t0; for (xi=1;xi<=x[0];xi++) { my_comp freq=my_comp(-Wid,x[xi]); CurItT=CurT; for (int ti=1;ti<=Nit;ti++) { y[xi]+=my_real(res[ti]*exp(freq*CurItT))*Tstp; CurItT+=Tstp; } } } delete []res; //cout<<MaxNit<<"\n"; //cout<<Ham3<<Ham1<<"\n"; };