Changeset 3520 in Sophya for trunk/SophyaPI/PIext/pitvmaad.cc


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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 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__
Note: See TracChangeset for help on using the changeset viewer.