Changeset 3773 in Sophya for trunk/Cosmo/SimLSS/genefluct3d.cc


Ignore:
Timestamp:
May 9, 2010, 12:47:58 AM (15 years ago)
Author:
cmv
Message:

speed-up FITS file read, cmv 09/05/2010

File:
1 edited

Legend:

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

    r3770 r3773  
    118118 Nz_ = nz;  if(Nz_ <= 0) Nz_ = Nx_;
    119119 N_.resize(0); N_.push_back(Nx_); N_.push_back(Ny_); N_.push_back(Nz_);
    120  NRtot_ = Nx_*Ny_*Nz_; // nombre de pixels dans le survey
     120 NRtot_ = (int_8)Nx_*(int_8)Ny_*(int_8)Nz_; // nombre de pixels dans le survey
    121121 NCz_ =  Nz_/2 +1;
    122122 NTz_ = 2*NCz_;
     
    766766// Take into account the real and complexe conjugate coefficients
    767767// because we want a realization of a real data in real space
    768 // On ecrit que: P(k_x,k_y,k_z) = P(-k_x,-k_y,-k_z)
     768// On ecrit que: conj(P(k_x,k_y,k_z)) = P(-k_x,-k_y,-k_z)
    769769//               avec k_x = i, -k_x = N_x - i  etc...
    770770{
     
    773773
    774774 // 1./ Le Continu et Nyquist sont reels
    775  long nreal = 0;
     775 int_8 nreal = 0;
    776776 for(long kk=0;kk<2;kk++) {
    777777   long k=0;  // continu
     
    795795
    796796 // a./ les lignes et colonnes du continu et de nyquist
    797  long nconj1 = 0;
     797 int_8 nconj1 = 0;
    798798 for(long kk=0;kk<2;kk++) {
    799799   long k=0;  // continu
     
    823823
    824824 // b./ les lignes et colonnes hors continu et de nyquist
    825  long nconj2 = 0;
     825 int_8 nconj2 = 0;
    826826 for(long kk=0;kk<2;kk++) {
    827827   long k=0;  // continu
     
    840840 if(lp_>1) cout<<"Number of forced conjugate hors cont+nyq ="<<nconj2<<endl;
    841841
    842  if(lp_>1) cout<<"Check: ddl= "<<NRtot_<<" =?= "<<2*(Nx_*Ny_*NCz_-nconj1-nconj2)-nreal<<endl;
     842 if(lp_>1) cout<<"Check: ddl= "<<NRtot_<<" =?= "<<2*(NRtot_-nconj1-nconj2)-nreal<<endl;
    843843
    844844 return nreal+nconj1+nconj2;
     
    897897//-------------------------------------------------------------------
    898898void GeneFluct3D::ToVelLoS(void)
     899// Le spectre Pk doit etre (dRho/Rho)(k)
    899900{
    900901 double zpk = compute_pk_redsh_ref_;
     
    912913       double kz = Kz(l);
    913914       double k2 = kt2 + kz*kz;
    914        if(k2<=0.) continue;
    915        T_(l,j,i) *= complex<double>(0.,dpsd*kz/k2);
    916      }
    917    }
    918  }
     915       if(l==0) k2 = 0.; else k2 = dpsd*kz/k2;
     916       T_(l,j,i) *= complex<double>(0.,k2);
     917     }
     918   }
     919 }
     920
    919921}
    920922
Note: See TracChangeset for help on using the changeset viewer.