Changeset 3129 in Sophya for trunk/Cosmo/SimLSS


Ignore:
Timestamp:
Jan 11, 2007, 7:24:49 PM (19 years ago)
Author:
cmv
Message:

passage int en long aux endroits importants cmv 11/01/07

Location:
trunk/Cosmo/SimLSS
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Cosmo/SimLSS/cmvobserv3d.cc

    r3120 r3129  
    4242 //-----------------------------------------------------------------
    4343 // *** Survey definition
    44  int nx=360, ny=-1, nz=64; double dx=1., dy=-1., dz=-1.;
    45  //int nx=1000, ny=-1, nz=128; double dx=3., dy=-1., dz=6.;
    46  //int nx=1200, ny=-1, nz=128; double dx=1., dy=-1., dz=3;
     44 long nx=360, ny=-1, nz=64; double dx=1., dy=-1., dz=-1.;
     45 //long nx=1000, ny=-1, nz=128; double dx=3., dy=-1., dz=6.;
     46 //long nx=1200, ny=-1, nz=128; double dx=1., dy=-1., dz=3;
    4747
    4848 // *** Cosmography definition   (WMAP)
     
    9090    break;
    9191  case 'x' :
    92     sscanf(optarg,"%d,%lf",&nx,&dx);
     92    sscanf(optarg,"%ld,%lf",&nx,&dx);
    9393    break;
    9494  case 'y' :
    95     sscanf(optarg,"%d,%lf",&ny,&dy);
     95    sscanf(optarg,"%ld,%lf",&ny,&dy);
    9696    break;
    9797  case 'z' :
    98     sscanf(optarg,"%d,%lf",&nz,&dz);
     98    sscanf(optarg,"%ld,%lf",&nz,&dz);
    9999    break;
    100100  case 's' :
     
    230230
    231231 cout<<"\n--- Checking realization spectra"<<endl;
    232  int nhprof = int(fluct3d.GetKmax()/dkmin+0.5);
     232 long nhprof = long(fluct3d.GetKmax()/dkmin+0.5);
    233233 HProf hpkgen(0.,fluct3d.GetKmax(),nhprof);
    234234 hpkgen.ReCenterBin();
     
    307307
    308308 cout<<"\n--- Convert Galaxies number to HI mass"<<endl;
    309  int nhmdndm = int( (lschmax-lschmin+1.)*100. + 0.5);
     309 long nhmdndm = long( (lschmax-lschmin+1.)*100. + 0.5);
    310310 Histo hmdndm(lschmin,lschmax,nhmdndm);
    311311 sch.SetOutValue(1);
  • trunk/Cosmo/SimLSS/genefluct3d.cc

    r3120 r3129  
    4242
    4343//-------------------------------------------------------
    44 void GeneFluct3D::SetSize(int nx,int ny,int nz,double dx,double dy,double dz)
     44void GeneFluct3D::SetSize(long nx,long ny,long nz,double dx,double dy,double dz)
    4545{
    4646 if(nx<=0 || dx<=0. ) {
     
    126126 // On tient compte du pb de normalisation de FFTW3
    127127 double sntot = sqrt((double)NRtot_);
    128  for(int i=0;i<Nx_;i++) for(int j=0;j<Ny_;j++) for(int l=0;l<Nz_;l++) {
     128 for(long i=0;i<Nx_;i++) for(long j=0;j<Ny_;j++) for(long l=0;l<Nz_;l++) {
    129129   size_t ip = l+NTz_*(j+Ny_*i);
    130130   data[ip] = NorRand()/sntot;
     
    140140 if(lp>1) PrtTim("--- ComputeFourier0: before Fourier realization filling ---");
    141141 T_(0,0,0) = complex<r_8>(0.);  // on coupe le continue et on l'initialise
    142  int lmod = Nx_/10; if(lmod<1) lmod=1;
    143  for(int i=0;i<Nx_;i++) {
    144    int ii = (i>Nx_/2) ? Nx_-i : i;
     142 long lmod = Nx_/10; if(lmod<1) lmod=1;
     143 for(long i=0;i<Nx_;i++) {
     144   long ii = (i>Nx_/2) ? Nx_-i : i;
    145145   double kx = ii*Dkx_;  kx *= kx;
    146146   if(lp>1 && i%lmod==0) cout<<"i="<<i<<" ii="<<ii<<endl;
    147    for(int j=0;j<Ny_;j++) {
    148      int jj = (j>Ny_/2) ? Ny_-j : j;
     147   for(long j=0;j<Ny_;j++) {
     148     long jj = (j>Ny_/2) ? Ny_-j : j;
    149149     double ky = jj*Dky_;  ky *= ky;
    150      for(int l=0;l<NCz_;l++) {
     150     for(long l=0;l<NCz_;l++) {
    151151       double kz = l*Dkz_;  kz *= kz;
    152152       if(i==0 && j==0 && l==0) continue; // Suppression du continu
     
    209209 // --- On remplit avec une realisation
    210210 if(lp>1) PrtTim("--- ComputeFourier: before Fourier realization filling ---");
    211  int lmod = Nx_/10; if(lmod<1) lmod=1;
    212  for(int i=0;i<Nx_;i++) {
    213    int ii = (i>Nx_/2) ? Nx_-i : i;
     211 long lmod = Nx_/10; if(lmod<1) lmod=1;
     212 for(long i=0;i<Nx_;i++) {
     213   long ii = (i>Nx_/2) ? Nx_-i : i;
    214214   double kx = ii*Dkx_;  kx *= kx;
    215215   if(lp>1 && i%lmod==0) cout<<"i="<<i<<" ii="<<ii<<endl;
    216    for(int j=0;j<Ny_;j++) {
    217      int jj = (j>Ny_/2) ? Ny_-j : j;
     216   for(long j=0;j<Ny_;j++) {
     217     long jj = (j>Ny_/2) ? Ny_-j : j;
    218218     double ky = jj*Dky_;  ky *= ky;
    219      for(int l=0;l<NCz_;l++) {
     219     for(long l=0;l<NCz_;l++) {
    220220       double kz = l*Dkz_;  kz *= kz;
    221221       if(i==0 && j==0 && l==0) continue; // Suppression du continu
     
    242242}
    243243
    244 int GeneFluct3D::manage_coefficients(void)
     244long GeneFluct3D::manage_coefficients(void)
    245245// Take into account the real and complexe conjugate coefficients
    246246// because we want a realization of a real data in real space
     
    249249
    250250 // 1./ Le Continu et Nyquist sont reels
    251  int nreal = 0;
    252  for(int kk=0;kk<2;kk++) {
    253    int k=0;  // continu
     251 long nreal = 0;
     252 for(long kk=0;kk<2;kk++) {
     253   long k=0;  // continu
    254254   if(kk==1) {if(Nz_%2!=0) continue; else k = Nz_/2;}  // Nyquist
    255    for(int jj=0;jj<2;jj++) {
    256      int j=0;
     255   for(long jj=0;jj<2;jj++) {
     256     long j=0;
    257257     if(jj==1) {if( Ny_%2!=0) continue; else j = Ny_/2;}
    258      for(int ii=0;ii<2;ii++) {
    259        int i=0;
     258     for(long ii=0;ii<2;ii++) {
     259       long i=0;
    260260       if(ii==1) {if( Nx_%2!=0) continue; else i = Nx_/2;}
    261261       size_t ip = k+NCz_*(j+Ny_*i);
     
    271271
    272272 // a./ les lignes et colonnes du continu et de nyquist
    273  int nconj1 = 0;
    274  for(int kk=0;kk<2;kk++) {
    275    int k=0;  // continu
     273 long nconj1 = 0;
     274 for(long kk=0;kk<2;kk++) {
     275   long k=0;  // continu
    276276   if(kk==1) {if(Nz_%2!=0) continue; else k = Nz_/2;}  // Nyquist
    277    for(int jj=0;jj<2;jj++) { // selon j
    278      int j=0;
     277   for(long jj=0;jj<2;jj++) { // selon j
     278     long j=0;
    279279     if(jj==1) {if( Ny_%2!=0) continue; else j = Ny_/2;}
    280      for(int i=1;i<(Nx_+1)/2;i++) {
     280     for(long i=1;i<(Nx_+1)/2;i++) {
    281281       size_t ip = k+NCz_*(j+Ny_*i);
    282282       size_t ip1 = k+NCz_*(j+Ny_*(Nx_-i));
     
    285285     }
    286286   }
    287    for(int ii=0;ii<2;ii++) {
    288      int i=0;
     287   for(long ii=0;ii<2;ii++) {
     288     long i=0;
    289289     if(ii==1) {if( Nx_%2!=0) continue; else i = Nx_/2;}
    290      for(int j=1;j<(Ny_+1)/2;j++) {
     290     for(long j=1;j<(Ny_+1)/2;j++) {
    291291       size_t ip = k+NCz_*(j+Ny_*i);
    292292       size_t ip1 = k+NCz_*((Ny_-j)+Ny_*i);
     
    299299
    300300 // b./ les lignes et colonnes hors continu et de nyquist
    301  int nconj2 = 0;
    302  for(int kk=0;kk<2;kk++) {
    303    int k=0;  // continu
     301 long nconj2 = 0;
     302 for(long kk=0;kk<2;kk++) {
     303   long k=0;  // continu
    304304   if(kk==1) {if(Nz_%2!=0) continue; else k = Nz_/2;}  // Nyquist
    305    for(int j=1;j<(Ny_+1)/2;j++) {
     305   for(long j=1;j<(Ny_+1)/2;j++) {
    306306     if(Ny_%2==0 && j==Ny_/2) continue; // on ne retraite pas nyquist en j
    307      for(int i=1;i<Nx_;i++) {
     307     for(long i=1;i<Nx_;i++) {
    308308       if(Nx_%2==0 && i==Nx_/2) continue; // on ne retraite pas nyquist en i
    309309       size_t ip = k+NCz_*(j+Ny_*i);
     
    325325{
    326326 double s2 = 0.;
    327  for(int l=0;l<NCz_;l++)
    328    for(int j=0;j<Ny_;j++)
    329      for(int i=0;i<Nx_;i++) s2 += MODULE2(T_(l,j,i));
     327 for(long l=0;l<NCz_;l++)
     328   for(long j=0;j<Ny_;j++)
     329     for(long i=0;i<Nx_;i++) s2 += MODULE2(T_(l,j,i));
    330330
    331331 double s20 = 0.;
    332  for(int j=0;j<Ny_;j++)
    333    for(int i=0;i<Nx_;i++) s20 += MODULE2(T_(0,j,i));
     332 for(long j=0;j<Ny_;j++)
     333   for(long i=0;i<Nx_;i++) s20 += MODULE2(T_(0,j,i));
    334334
    335335 double s2n = 0.;
    336336 if(Nz_%2==0)
    337    for(int j=0;j<Ny_;j++)
    338      for(int i=0;i<Nx_;i++) s2n += MODULE2(T_(NCz_-1,j,i));
     337   for(long j=0;j<Ny_;j++)
     338     for(long i=0;i<Nx_;i++) s2n += MODULE2(T_(NCz_-1,j,i));
    339339
    340340 return 2.*s2 -s20 -s2n;
     
    353353 if(lp>1) PrtTim("--- FilterByPixel: before ---");
    354354
    355  for(int i=0;i<Nx_;i++) {
    356    int ii = (i>Nx_/2) ? Nx_-i : i;
     355 for(long i=0;i<Nx_;i++) {
     356   long ii = (i>Nx_/2) ? Nx_-i : i;
    357357   double kx = ii*Dkx_ *Dx_/2;
    358358   double pkx = pixelfilter(kx);
    359    for(int j=0;j<Ny_;j++) {
    360      int jj = (j>Ny_/2) ? Ny_-j : j;
     359   for(long j=0;j<Ny_;j++) {
     360     long jj = (j>Ny_/2) ? Ny_-j : j;
    361361     double ky = jj*Dky_ *Dy_/2;
    362362     double pky =  pixelfilter(ky);
    363      for(int l=0;l<NCz_;l++) {
     363     for(long l=0;l<NCz_;l++) {
    364364       double kz = l*Dkz_ *Dz_/2;
    365365       double pkz =  pixelfilter(kz);
     
    401401 // On corrige du pb de la normalisation de FFTW3
    402402 double v = (double)NRtot_;
    403  for(int i=0;i<Nx_;i++)
    404    for(int j=0;j<Ny_;j++)
    405      for(int l=0;l<NCz_;l++) T_(l,j,i) /= complex<r_8>(v);
     403 for(long i=0;i<Nx_;i++)
     404   for(long j=0;j<Ny_;j++)
     405     for(long l=0;l<NCz_;l++) T_(l,j,i) /= complex<r_8>(v);
    406406
    407407 Tcontent_ = 3;
     
    421421
    422422 // Attention a l'ordre
    423  for(int i=0;i<Nx_;i++) {
    424    int ii = (i>Nx_/2) ? Nx_-i : i;
     423 for(long i=0;i<Nx_;i++) {
     424   long ii = (i>Nx_/2) ? Nx_-i : i;
    425425   double kx = ii*Dkx_;  kx *= kx;
    426    for(int j=0;j<Ny_;j++) {
    427      int jj = (j>Ny_/2) ? Ny_-j : j;
     426   for(long j=0;j<Ny_;j++) {
     427     long jj = (j>Ny_/2) ? Ny_-j : j;
    428428     double ky = jj*Dky_;  ky *= ky;
    429      for(int l=0;l<NCz_;l++) {
     429     for(long l=0;l<NCz_;l++) {
    430430       double kz = l*Dkz_;  kz *= kz;
    431431       double k = sqrt(kx+ky+kz);
     
    452452
    453453 double *data = (double *) (&T_(0,0,0));
    454  int dnx = int(R/Dx_+0.5); if(dnx<=0) dnx = 1;
    455  int dny = int(R/Dy_+0.5); if(dny<=0) dny = 1;
    456  int dnz = int(R/Dz_+0.5); if(dnz<=0) dnz = 1;
     454 long dnx = long(R/Dx_+0.5); if(dnx<=0) dnx = 1;
     455 long dny = long(R/Dy_+0.5); if(dny<=0) dny = 1;
     456 long dnz = long(R/Dz_+0.5); if(dnz<=0) dnz = 1;
    457457 cout<<"dnx="<<dnx<<" dny="<<dny<<" dnz="<<dnz<<endl;
    458458
    459459 double sum=0., sum2=0., r2 = R*R; size_t nsum=0;
    460460
    461  for(int i=dnx;i<Nx_-dnx;i+=dnx) {
    462    for(int j=dny;j<Ny_-dny;j+=dny) {
    463      for(int l=dnz;l<Nz_-dnz;l+=dnz) {
     461 for(long i=dnx;i<Nx_-dnx;i+=dnx) {
     462   for(long j=dny;j<Ny_-dny;j+=dny) {
     463     for(long l=dnz;l<Nz_-dnz;l+=dnz) {
    464464       double s=0.; size_t n=0;
    465        for(int ii=i-dnx;ii<=i+dnx;ii++) {
     465       for(long ii=i-dnx;ii<=i+dnx;ii++) {
    466466         double x = (ii-i)*Dx_; x *= x;
    467          for(int jj=j-dny;jj<=j+dny;jj++) {
     467         for(long jj=j-dny;jj<=j+dny;jj++) {
    468468           double y = (jj-j)*Dy_; y *= y;
    469            for(int ll=l-dnz;ll<=l+dnz;ll++) {
     469           for(long ll=l-dnz;ll<=l+dnz;ll++) {
    470470             double z = (ll-l)*Dz_; z *= z;
    471471             if(x+y+z>r2) continue;
     
    503503
    504504 size_t nbad = 0;
    505  for(int i=0;i<Nx_;i++) for(int j=0;j<Ny_;j++) for(int l=0;l<Nz_;l++) {
     505 for(long i=0;i<Nx_;i++) for(long j=0;j<Ny_;j++) for(long l=0;l<Nz_;l++) {
    506506   size_t ip = l+NTz_*(j+Ny_*i);
    507507   double v = data[ip];
     
    521521 rm = rs2 = 0.;
    522522
    523  for(int i=0;i<Nx_;i++) for(int j=0;j<Ny_;j++) for(int l=0;l<Nz_;l++) {
     523 for(long i=0;i<Nx_;i++) for(long j=0;j<Ny_;j++) for(long l=0;l<Nz_;l++) {
    524524   size_t ip = l+NTz_*(j+Ny_*i);
    525525   double v = data[ip];
     
    545545
    546546 size_t nbad = 0;
    547  for(int i=0;i<Nx_;i++) for(int j=0;j<Ny_;j++) for(int l=0;l<Nz_;l++) {
     547 for(long i=0;i<Nx_;i++) for(long j=0;j<Ny_;j++) for(long l=0;l<Nz_;l++) {
    548548   size_t ip = l+NTz_*(j+Ny_*i);
    549549   double v = data[ip];
     
    562562 double *data = (double *) (&T_(0,0,0));
    563563
    564  for(int i=0;i<Nx_;i++) for(int j=0;j<Ny_;j++) for(int l=0;l<Nz_;l++) {
     564 for(long i=0;i<Nx_;i++) for(long j=0;j<Ny_;j++) for(long l=0;l<Nz_;l++) {
    565565   size_t ip = l+NTz_*(j+Ny_*i);
    566566   data[ip] += 1.;
     
    595595            <<n_by_mpc3*Vol_/double(NRtot_)<<" to "<<dn<<" / pixel"<<endl;
    596596 double sum = 0.;
    597  for(int i=0;i<Nx_;i++) for(int j=0;j<Ny_;j++) for(int l=0;l<Nz_;l++) {
     597 for(long i=0;i<Nx_;i++) for(long j=0;j<Ny_;j++) for(long l=0;l<Nz_;l++) {
    598598   size_t ip = l+NTz_*(j+Ny_*i);
    599599   data[ip] *= dn; // par coherence on multiplie aussi les <=0
     
    616616
    617617 double sum = 0.;
    618  for(int i=0;i<Nx_;i++) for(int j=0;j<Ny_;j++) for(int l=0;l<Nz_;l++) {
     618 for(long i=0;i<Nx_;i++) for(long j=0;j<Ny_;j++) for(long l=0;l<Nz_;l++) {
    619619   size_t ip = l+NTz_*(j+Ny_*i);
    620620   double v = data[ip];
     
    646646
    647647 double sum = 0.;
    648  for(int i=0;i<Nx_;i++) for(int j=0;j<Ny_;j++) for(int l=0;l<Nz_;l++) {
     648 for(long i=0;i<Nx_;i++) for(long j=0;j<Ny_;j++) for(long l=0;l<Nz_;l++) {
    649649   size_t ip = l+NTz_*(j+Ny_*i);
    650650   double v = data[ip];
    651651   if(v>0.) {
    652      int ngal = int(v+0.1);
     652     long ngal = long(v+0.1);
    653653     data[ip] = 0.;
    654      for(int i=0;i<ngal;i++) {
     654     for(long i=0;i<ngal;i++) {
    655655       double m = massdist.RandomInterp();  // massdist.Random();
    656656       if(axeslog) m = pow(10.,m);
     
    675675 double *data = (double *) (&T_(0,0,0));
    676676
    677  for(int i=0;i<Nx_;i++) for(int j=0;j<Ny_;j++) for(int l=0;l<Nz_;l++) {
     677 for(long i=0;i<Nx_;i++) for(long j=0;j<Ny_;j++) for(long l=0;l<Nz_;l++) {
    678678   size_t ip = l+NTz_*(j+Ny_*i);
    679679   data[ip] += snoise*NorRand();
  • trunk/Cosmo/SimLSS/genefluct3d.h

    r3120 r3129  
    2323
    2424  void SetNThread(unsigned short nthread=0) {nthread_ = nthread;}
    25   void SetSize(int nx,int ny,int nz,double dx,double dy,double dz);  // Mpc
     25  void SetSize(long nx,long ny,long nz,double dx,double dy,double dz);  // Mpc
    2626
    2727  inline void SetZ(double z) {pkz_.SetZ(z);}
     
    6262
    6363protected:
    64   int manage_coefficients(void);
     64  long manage_coefficients(void);
    6565  double compute_power_carte(void);
    6666  inline double pixelfilter(double x)
     
    6868
    6969
    70   int Nx_,Ny_,Nz_,SzK_[3];
    71   int NCz_,NTz_;
     70  long Nx_,Ny_,Nz_;
     71  sa_size_t SzK_[3];
     72  long NCz_,NTz_;
    7273  size_t NRtot_;
    7374  double Dx_,Dy_,Dz_;
Note: See TracChangeset for help on using the changeset viewer.