Ignore:
Timestamp:
Apr 23, 1999, 10:03:30 AM (26 years ago)
Author:
ansari
Message:

modif rz+cmv 22/4/99

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaLib/BaseTools/ndatablock.cc

    r245 r249  
    104104if(!a.mSRef) {mSz=0; mSRef=NULL;} // cas ou "a" est cree par defaut
    105105else if(a.IsTemp()) Share(a);
    106 else {Alloc(a.mSz); memcpy(Dtata(),a.Dtata(),mSz*sizeof(T));}
     106else {Alloc(a.mSz); memcpy(Data(),a.Data(),mSz*sizeof(T));}
    107107}
    108108
     
    132132cout<<"NDataBlock::Delete() mSRef="<<mSRef;
    133133if(mSRef) cout<<" mSRef->nref"<<mSRef->nref<<" mSRef->data"<<mSRef->data;
    134 cour<<endl;
     134cout<<endl;
    135135#endif
    136136if(mSRef==NULL) return; // cas du createur par defaut
     
    172172if(mSRef) {nr = mSRef->nref; p = mSRef->data;}
    173173cout<<"NDataBlock::Print nel=%ld nref=%d (%p)\n",mSz,nr,p;
    174 if(i1<0 || i1>=mSz || n<=0 || !p) return;
     174if(i1>=mSz || n<=0 || !p) return;
    175175size_t i2 = i1+n; if(i2>mSz) i2=mSz;
    176176size_t im = 1;
     
    184184
    185185template <class T>
    186 NDataBlock<T>& NDataBlock<T>::operator = (const NDataBlock<T>& a)
     186NDataBlock<T>& NDataBlock<T>::operator = (NDataBlock<T>& a)
    187187// surcharge avec partage des donnees
    188188// Ecriture:  NDataBlock a; a = b;
     
    196196
    197197template <class T>
    198 NDataBlock<T>& NDataBlock<T>::operator = (const T v)
     198NDataBlock<T>& NDataBlock<T>::operator = (T v)
    199199// surcharge avec copie des donnees (pas de partage)
    200200// "this" est sur-ecrit, attention au partage de reference!
     
    202202{
    203203if(mSz==0) throw(SzMismatchError("NDataBlock::operator=v null size\n"));
    204 T* p=Begin(), pe=End();
     204T *p=Begin(), *pe=End();
    205205while (p<pe) *p++ = v;
    206206return *this;
     
    213213{
    214214if(mSz==0) throw(SzMismatchError("NDataBlock::operator+=v null size\n"));
    215 T* p=Begin(), pe=End();
     215T *p=Begin(), *pe=End();
    216216while (p<pe) *p++ += b;
    217217return *this;
     
    222222{
    223223if(mSz==0) throw(SzMismatchError("NDataBlock::operator-=v null size\n"));
    224 T* p=Begin(), pe=End();
     224T *p=Begin(), *pe=End();
    225225while (p<pe) *p++ -= b;
    226226return *this;
     
    231231{
    232232if(mSz==0) throw(SzMismatchError("NDataBlock::operator*=v null size\n"));
    233 T* p=Begin(), pe=End();
     233T *p=Begin(), *pe=End();
    234234while (p<pe) *p++ *= b;
    235235return *this;
     
    239239NDataBlock<T>& NDataBlock<T>::operator /= (T b)
    240240{
    241 if(b==(<T>) 0) throw(ParmError("NDataBlock::operator/=v divide by zero\n"));
     241if(b==(T) 0) throw(ParmError("NDataBlock::operator/=v divide by zero\n"));
    242242if(mSz==0) throw(SzMismatchError("NDataBlock::operator/=v null size\n"));
    243 T* p=Begin(), pe=End();
     243T *p=Begin(), *pe=End();
    244244while (p<pe) *p++ /= b;
    245245return *this;
     
    249249
    250250template <class T>
    251 NDataBlock<T>& NDataBlock<T>::operator += (const NDataBlock<T>& a)
     251NDataBlock<T>& NDataBlock<T>::operator += (NDataBlock<T>& a)
    252252{
    253253if(mSz==0 || mSz!=a.mSz) throw(SzMismatchError("NDataBlock::operator+=A size mismatch/null"));
    254 T* p=Begin(), pe=End(), pa=a.Begin();
     254T *p=Begin(), *pe=End(), *pa=a.Begin();
    255255while (p<pe) *p++ += *pa++; // ca marche meme si *this=a
    256256return *this;
     
    258258
    259259template <class T>
    260 NDataBlock<T>& NDataBlock<T>::operator -= (const NDataBlock<T>& a)
     260NDataBlock<T>& NDataBlock<T>::operator -= (NDataBlock<T>& a)
    261261{
    262262if(mSz==0 || mSz!=a.mSz) throw(SzMismatchError("NDataBlock::operator-=A size mismatch/null"));
    263 T* p=Begin(), pe=End(), pa=a.Begin();
     263T *p=Begin(), *pe=End(), *pa=a.Begin();
    264264while (p<pe) *p++ -= *pa++; // ca marche meme si *this=a
    265265return *this;
     
    267267
    268268template <class T>
    269 NDataBlock<T>& NDataBlock<T>::operator *= (const NDataBlock<T>& a)
     269NDataBlock<T>& NDataBlock<T>::operator *= (NDataBlock<T>& a)
    270270{
    271271if(mSz==0 || mSz!=a.mSz) throw(SzMismatchError("NDataBlock::operator*=A size mismatch/null"));
    272 T* p=Begin(), pe=End(), pa=a.Begin();
     272T *p=Begin(), *pe=End(), *pa=a.Begin();
    273273while (p<pe) *p++ *= *pa++; // ca marche meme si *this=a
    274274return *this;
     
    276276
    277277template <class T>
    278 NDataBlock<T>& NDataBlock<T>::operator /= (const NDataBlock<T>& a)
     278NDataBlock<T>& NDataBlock<T>::operator /= (NDataBlock<T>& a)
    279279{
    280280if(mSz==0 || mSz!=a.mSz) throw(SzMismatchError("NDataBlock::operator/=A size mismatch/null"));
    281 T* p=Begin(), pe=End(), pa=a.Begin();
     281T *p=Begin(), *pe=End(), *pa=a.Begin();
    282282while (p<pe) *p++ /= *pa++;
    283283return *this;
     
    314314{
    315315NDataBlock<T> result(a,false); result.SetTemp(true);
    316 T* p=result.Begin(), pe=result.End(), pa=a.Begin();
     316T *p=result.Begin(), *pe=result.End(), *pa=a.Begin();
    317317while(p<pe) {*p++ = b - *pa++;}
    318318return result;
     
    344344{
    345345NDataBlock<T> result(a,false); result.SetTemp(true);
    346 T* p=result.Begin(), pe=result.End(), pa=a.Begin();
     346T *p=result.Begin(), *pe=result.End(), *pa=a.Begin();
    347347while(p<pe) {*p++ = b / *pa++;}
    348348return result;
     
    383383if(b.IsTemp()) {
    384384  NDataBlock<T> result(b,true); result.SetTemp(true);
    385   T* p=result.Begin(), pe=result.End(), pa=a.Begin();
     385  T *p=result.Begin(), *pe=result.End(), *pa=a.Begin();
    386386  while(p<pe) {*p = *pa++  - *p; p++;}
    387387  return result;
     
    398398if(b.IsTemp()) {
    399399  NDataBlock<T> result(b,true); result.SetTemp(true);
    400   T* p=result.Begin(), pe=result.End(), pa=a.Begin();
     400  T *p=result.Begin(), *pe=result.End(), *pa=a.Begin();
    401401  while(p<pe) {*p = *pa++  / *p; p++;}
    402402  return result;
     
    421421#pragma define_template NDataBlock<r_4>
    422422#pragma define_template NDataBlock<r_8>
    423 #pragma define_template NDataBlock<complex<float>>
    424 #pragma define_template NDataBlock<complex<double>>
     423#pragma define_template NDataBlock< complex<float> >
     424#pragma define_template NDataBlock< complex<double> >
    425425#endif
    426426
     
    436436template class NDataBlock<r_4>;
    437437template class NDataBlock<r_8>;
    438 template class NDataBlock<complex<float>>;
    439 template class NDataBlock<complex<double>>;
     438template class NDataBlock< complex<float> >;
     439template class NDataBlock< complex<double> >;
    440440#endif
    441441
     
    451451template class NDataBlock<r_4>;
    452452template class NDataBlock<r_8>;
    453 template class NDataBlock<complex<float>>;
    454 template class NDataBlock<complex<double>>;
     453template class NDataBlock< complex<float> >;
     454template class NDataBlock< complex<double> >;
    455455#endif
    456456
    457457#ifdef __CXX_PRAGMA_TEMPLATES__
    458 #pragma define_template template<class uint_1> NDataBlock<uint_1> operator + (const NDataBlock<uint_1>& a, uint_1 b);
     458#pragma define_template (operator+) <float,float> mais comment on fait ca! CMV_A_FAIRE
    459459#endif
    460460
    461461#ifdef __GNU_TEMPLATES__
     462template NDataBlock<T> operator + (const NDataBlock<T>&, const NDataBlock<T>&); mais comment on fait ca! CMV_A_FAIRE
    462463#endif
    463464
Note: See TracChangeset for help on using the changeset viewer.