Ignore:
Timestamp:
Sep 29, 2000, 4:26:15 PM (25 years ago)
Author:
ercodmgr
Message:
  • refonte de piaffiting avec les fits adapteurs
  • addapteur de fit pour les objets existants
  • entree des Image<T> dans les fits (retour !!!)

cmv 29/9/00

File:
1 edited

Legend:

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

    r1165 r1207  
    77
    88#include "tvector.h"
     9#include "objfitter.h"
    910#include "nomtmatvecadapter.h"
    1011#include "piscdrawwdg.h"
     
    119120}
    120121
     122
     123/* --Methode-- */
     124template <class T>
     125GeneralFitData* NOMAdapter_TMatrix<T>::GetGeneralFitData(bool& adel
     126 ,GeneralFitData::FitErrType errtype,double errscale,double errmin
     127 ,int i1,int i2,int j1,int j2)
     128{
     129adel = false;
     130if(!mMtx) return(NULL);
     131
     132int nx,ny;
     133TVector<T>* vec = dynamic_cast<TVector<T> *>(mMtx);
     134
     135if(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
     144i1 = (i1<0||i1>=nx)? 0: i1;
     145i2 = (i2<0||i2>=nx||i2<i1)? nx-1: i2;
     146j1 = (j1<0||j1>=ny)? 0: j1;
     147j2 = (j2<0||j2>=ny||j2<j1)? ny-1: j2;
     148
     149GeneralFitData* mGData = NULL;
     150
     151if(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
     174return mGData;
     175}
     176
     177template <class T>
     178AnyDataObj* NOMAdapter_TMatrix<T>::FitResidusObj(GeneralFit& mfit)
     179{
     180TVector<T>* vec = dynamic_cast<TVector<T> *>(mMtx);
     181if(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
     190template <class T>
     191AnyDataObj* NOMAdapter_TMatrix<T>::FitFunctionObj(GeneralFit& mfit)
     192{
     193TVector<T>* vec = dynamic_cast<TVector<T> *>(mMtx);
     194if(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}
    121202
    122203
     
    226307#pragma define_template NOMAdapter_TMatrix<r_4>
    227308#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> >
    230311//#pragma define_template NTupInt_TMatrix<uint_2>
    231312//#pragma define_template NTupInt_TMatrix<int_2>
     
    243324template class NOMAdapter_TMatrix<r_4>;
    244325template 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> >;
    247328// template class NTupInt_TMatrix<uint_2>;
    248329// template class NTupInt_TMatrix<int_2>;
Note: See TracChangeset for help on using the changeset viewer.