Changeset 3520 in Sophya


Ignore:
Timestamp:
Sep 11, 2008, 2:45:01 PM (17 years ago)
Author:
ansari
Message:

Ajout/codage methode P2DArrayAdapter::MeanVal() pour les classes adapter heritant de P2DArrayAdapter, Reza 11/09/2008

Location:
trunk/SophyaPI/PIext
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaPI/PIext/nomskymapadapter.cc

    r3433 r3520  
    3333  virtual       ~LocalMapArrAdapter() { if (ad) delete map; }
    3434  virtual double  Value(int ix, int iy) { return((*map)(ix, iy)); }
     35  virtual double  MeanVal(int ix1, int ix2, int jy1, int jy2)
     36  {
     37  int ec;
     38  if (ix1>ix2) { ec=ix1; ix1=ix2; ix2=ec; }
     39  if (jy1>jy2) { ec=jy1; jy1=jy2; jy2=ec; }   
     40  double ss = 0.;
     41  for(int j=jy1; j<=jy2; j++)
     42    for(int i=ix1; i<=ix2; i++)  ss += (double)((*map)(i, j));
     43  ss /= (double)((jy2-jy1+1)*(ix2-ix1+1));
     44  return ss; 
     45  }   
    3546
    3647protected :
     
    5667im = (*map)(iy, ix).imag();
    5768return(sqrt(re*re+im*im));
     69}
     70
     71/* --Methode-- */
     72DECL_TEMP_SPEC  /* equivalent a template <> , pour SGI-CC en particulier */
     73double LocalMapArrAdapter< complex<float> >::MeanVal(int ix1, int ix2, int jy1, int jy2)
     74{
     75int ec;
     76if (ix1>ix2) { ec=ix1; ix1=ix2; ix2=ec; }
     77if (jy1>jy2) { ec=jy1; jy1=jy2; jy2=ec; }   
     78complex<float> ss = 0.;
     79for(int j=jy1; j<=jy2; j++)
     80  for(int i=ix1; i<=ix2; i++)  ss += (*map)(i, j);
     81ss /= (double)((jy2-jy1+1)*(ix2-ix1+1));
     82return sqrt(ss.real()*ss.real()+ss.imag()*ss.imag()); 
     83}
     84
     85/* --Methode-- */
     86DECL_TEMP_SPEC  /* equivalent a template <> , pour SGI-CC en particulier */
     87double LocalMapArrAdapter< complex<double> >::MeanVal(int ix1, int ix2, int jy1, int jy2)
     88{
     89int ec;
     90if (ix1>ix2) { ec=ix1; ix1=ix2; ix2=ec; }
     91if (jy1>jy2) { ec=jy1; jy1=jy2; jy2=ec; }   
     92complex<double> ss = 0.;
     93for(int j=jy1; j<=jy2; j++)
     94  for(int i=ix1; i<=ix2; i++)  ss += (*map)(i, j);
     95ss /= (double)((jy2-jy1+1)*(ix2-ix1+1));
     96return sqrt(ss.real()*ss.real()+ss.imag()*ss.imag()); 
    5897}
    5998
  • trunk/SophyaPI/PIext/phistwrapper.h

    r3153 r3520  
    9999  // Identique a l'operateur ()(i)
    100100  virtual double Value(int i, int j) { return (*this)(i, j); }
     101  // Calcule la moyenne des bins entre (ix1,jy1) <= (ix2, jy2)
     102  virtual double MeanVal(int ix1, int ix2, int jy1, int jy2);
    101103
    102104  // Methode de mise a jour du contenu
  • trunk/SophyaPI/PIext/pihisto2d.cc

    r3153 r3520  
    2323P2DHistoWrapper::~P2DHistoWrapper()
    2424{
     25}
     26
     27
     28double P2DHistoWrapper::MeanVal(int ix1, int ix2, int jy1, int jy2)
     29{
     30  int ec;
     31  if (ix1>ix2) { ec=ix1; ix1=ix2; ix2=ec; }
     32  if (jy1>jy2) { ec=jy1; jy1=jy2; jy2=ec; }   
     33  double ss = 0.;
     34  for(int j=jy1; j<=jy2; j++)
     35    for(int i=ix1; i<=ix2; i++)  ss += (double)((*this)(i, j));
     36  ss /= (double)((jy2-jy1+1)*(ix2-ix1+1));
     37  return ss;     
    2538}
    2639
  • trunk/SophyaPI/PIext/pimgadapter.h

    r493 r3520  
    3232  virtual         ~ImageAdapter() { if (aDel) delete mImg; }
    3333  virtual double  Value(int ix, int iy) { return((*mImg)(ix, iy)); }
     34  virtual double  MeanVal(int ix1, int ix2, int jy1, int jy2) 
     35    {
     36    int ec;
     37    if (ix1>ix2) { ec=ix1; ix1=ix2; ix2=ec; }
     38    if (jy1>jy2) { ec=jy1; jy1=jy2; jy2=ec; }   
     39    double ss = 0.;
     40    for(int j=jy1; j<=jy2; j++)
     41      for(int i=ix1; i<=ix2; i++)  ss += (double)((*mImg)(i, j));
     42    ss /= (double)((jy2-jy1+1)*(ix2-ix1+1));
     43    return ss; 
     44    }   
    3445
    3546protected :
  • trunk/SophyaPI/PIext/pitvmaad.cc

    r2930 r3520  
    7171
    7272/* --Methode-- */
     73template <class T>
     74double POTMatrixAdapter<T>::MeanVal(int ix1, int ix2, int jy1, int jy2)
     75{
     76int ec;
     77if (ix1>ix2) { ec=ix1; ix1=ix2; ix2=ec; }
     78if (jy1>jy2) { ec=jy1; jy1=jy2; jy2=ec; }   
     79double ss = 0.;
     80for(int j=jy1; j<=jy2; j++)
     81  for(int i=ix1; i<=ix2; i++)  ss += (double)((*mMtx)(j, i));
     82ss /= (double)((jy2-jy1+1)*(ix2-ix1+1));
     83return ss; 
     84}   
     85
     86
     87/* --Methode-- */
    7388DECL_TEMP_SPEC  /* equivalent a template <> , pour SGI-CC en particulier */
    7489double POTMatrixAdapter< complex<float> >::Value(int ix, int iy)
     
    89104return(sqrt(re*re+im*im));
    90105}
     106
     107/* --Methode-- */
     108DECL_TEMP_SPEC  /* equivalent a template <> , pour SGI-CC en particulier */
     109double POTMatrixAdapter< complex<float> >::MeanVal(int ix1, int ix2, int jy1, int jy2)
     110{
     111int ec;
     112if (ix1>ix2) { ec=ix1; ix1=ix2; ix2=ec; }
     113if (jy1>jy2) { ec=jy1; jy1=jy2; jy2=ec; }   
     114complex<float> ss = 0.;
     115for(int j=jy1; j<=jy2; j++)
     116  for(int i=ix1; i<=ix2; i++)  ss += (*mMtx)(j, i);
     117ss /= (double)((jy2-jy1+1)*(ix2-ix1+1));
     118return sqrt(ss.real()*ss.real()+ss.imag()*ss.imag()); 
     119}   
     120
     121/* --Methode-- */
     122DECL_TEMP_SPEC  /* equivalent a template <> , pour SGI-CC en particulier */
     123double POTMatrixAdapter< complex<double> >::MeanVal(int ix1, int ix2, int jy1, int jy2)
     124{
     125int ec;
     126if (ix1>ix2) { ec=ix1; ix1=ix2; ix2=ec; }
     127if (jy1>jy2) { ec=jy1; jy1=jy2; jy2=ec; }   
     128complex<double> ss = 0.;
     129for(int j=jy1; j<=jy2; j++)
     130  for(int i=ix1; i<=ix2; i++)  ss += (*mMtx)(j, i);
     131ss /= (double)((jy2-jy1+1)*(ix2-ix1+1));
     132return sqrt(ss.real()*ss.real()+ss.imag()*ss.imag()); 
     133}   
    91134
    92135#ifdef __CXX_PRAGMA_TEMPLATES__
  • trunk/SophyaPI/PIext/pitvmaad.h

    r594 r3520  
    3838  virtual         ~POTMatrixAdapter();
    3939  virtual double  Value(int ix, int iy);
     40  virtual double  MeanVal(int ix1, int ix2, int jy1, int jy2);
    4041
    4142protected:
Note: See TracChangeset for help on using the changeset viewer.