Changeset 1207 in Sophya for trunk/SophyaPI/PIext/nomtmatvecadapter.cc
- Timestamp:
- Sep 29, 2000, 4:26:15 PM (25 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SophyaPI/PIext/nomtmatvecadapter.cc
r1165 r1207 7 7 8 8 #include "tvector.h" 9 #include "objfitter.h" 9 10 #include "nomtmatvecadapter.h" 10 11 #include "piscdrawwdg.h" … … 119 120 } 120 121 122 123 /* --Methode-- */ 124 template <class T> 125 GeneralFitData* NOMAdapter_TMatrix<T>::GetGeneralFitData(bool& adel 126 ,GeneralFitData::FitErrType errtype,double errscale,double errmin 127 ,int i1,int i2,int j1,int j2) 128 { 129 adel = false; 130 if(!mMtx) return(NULL); 131 132 int nx,ny; 133 TVector<T>* vec = dynamic_cast<TVector<T> *>(mMtx); 134 135 if(vec) { // C'est un TVector 136 nx = vec->NElts(); 137 ny = 1; 138 } else { 139 nx = mMtx->NRows(); 140 ny = mMtx->NCol(); 141 if(nx<=0 || ny<=0) return(NULL); 142 } 143 144 i1 = (i1<0||i1>=nx)? 0: i1; 145 i2 = (i2<0||i2>=nx||i2<i1)? nx-1: i2; 146 j1 = (j1<0||j1>=ny)? 0: j1; 147 j2 = (j2<0||j2>=ny||j2<j1)? ny-1: j2; 148 149 GeneralFitData* mGData = NULL; 150 151 if(vec) { // C'est un TVector 152 mGData = new GeneralFitData(1,(i2-i1+1),0); 153 adel = true; 154 for(int i=i1;i<=i2;i++) { 155 double x = (double) i; 156 double f = (*vec)(i); 157 double e = 1.; 158 e = GeneralFitData::ComputeError(f,e,errtype,errscale,errmin); 159 mGData->AddData1(x,f,e); 160 } 161 } else { 162 mGData = new GeneralFitData(2,(i2-i1+1)*(j2-j1+1),0); 163 adel = true; 164 for(int i=i1;i<=i2;i++) for(int j=j1;j<=j2;j++) { 165 double x = (double) i; 166 double y = (double) j; 167 double f = (*mMtx)(i,j); 168 double e = 1.; 169 e = GeneralFitData::ComputeError(f,e,errtype,errscale,errmin); 170 mGData->AddData2(x,y,f,e); 171 } 172 } 173 174 return mGData; 175 } 176 177 template <class T> 178 AnyDataObj* NOMAdapter_TMatrix<T>::FitResidusObj(GeneralFit& mfit) 179 { 180 TVector<T>* vec = dynamic_cast<TVector<T> *>(mMtx); 181 if(vec) { 182 TVector<T>* v = new TVector<T>(ObjectFitter::FitResidus(*vec,mfit),true); 183 return v; 184 } else { 185 TMatrix<T>* m = new TMatrix<T>(ObjectFitter::FitResidus(*mMtx,mfit),true); 186 return m; 187 } 188 } 189 190 template <class T> 191 AnyDataObj* NOMAdapter_TMatrix<T>::FitFunctionObj(GeneralFit& mfit) 192 { 193 TVector<T>* vec = dynamic_cast<TVector<T> *>(mMtx); 194 if(vec) { 195 TVector<T>* v = new TVector<T>(ObjectFitter::FitFunction(*vec,mfit),true); 196 return v; 197 } else { 198 TMatrix<T>* m = new TMatrix<T>(ObjectFitter::FitFunction(*mMtx,mfit),true); 199 return m; 200 } 201 } 121 202 122 203 … … 226 307 #pragma define_template NOMAdapter_TMatrix<r_4> 227 308 #pragma define_template NOMAdapter_TMatrix<r_8> 228 #pragma define_template NOMAdapter_TMatrix< complex<r_4> >229 #pragma define_template NOMAdapter_TMatrix< complex<r_8> >309 //#pragma define_template NOMAdapter_TMatrix< complex<r_4> > 310 //#pragma define_template NOMAdapter_TMatrix< complex<r_8> > 230 311 //#pragma define_template NTupInt_TMatrix<uint_2> 231 312 //#pragma define_template NTupInt_TMatrix<int_2> … … 243 324 template class NOMAdapter_TMatrix<r_4>; 244 325 template class NOMAdapter_TMatrix<r_8>; 245 template class NOMAdapter_TMatrix< complex<r_4> >;246 template class NOMAdapter_TMatrix< complex<r_8> >;326 //template class NOMAdapter_TMatrix< complex<r_4> >; 327 //template class NOMAdapter_TMatrix< complex<r_8> >; 247 328 // template class NTupInt_TMatrix<uint_2>; 248 329 // template class NTupInt_TMatrix<int_2>;
Note:
See TracChangeset
for help on using the changeset viewer.