Changeset 1067 in Sophya for trunk/SophyaPI/PIext/servnobjm.cc


Ignore:
Timestamp:
Jul 12, 2000, 7:24:33 PM (25 years ago)
Author:
ercodmgr
Message:

piafitting.cc: GeneralData::GetMinMax -> GeneralData::GetMnMx
autres fichiers: intro de gdfrvec (FillGFDfrVec)

cmv 12/07/00

File:
1 edited

Legend:

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

    r1057 r1067  
    10241024}
    10251025
     1026/* --Methode-- cmv 12/07/00 */
     1027void Services2NObjMgr::FillGFDfrVec(string nomgfd,string namx,string namy,string namz,string name)
     1028//      Pour remplir un ``GeneralFitData'' a partir de vecteurs
     1029//| gdfrvec nomgd X Y ! !
     1030//| gdfrvec nomgd X Y ! EY
     1031//| gdfrvec nomgd X Y Z !
     1032//| gdfrvec nomgd X Y Z EZ
     1033//| - nomgfd = nom du generaldata a remplir
     1034//| - namx = nom du vecteur contenant les valeurs X
     1035//| - namy = nom du vecteur contenant les valeurs Y
     1036//| - namz = nom du vecteur contenant les valeurs Z (ou "!")
     1037//| - name = nom du vecteur contenant les valeurs des erreurs EY ou EZ
     1038{
     1039// Decodage des noms des vecteurs pour le remplissage du generaldata
     1040if(nomgfd=="!" || nomgfd.length()<1)
     1041  {cout<<"FillGFDfrVec_Error: bad GenaralData name "<<nomgfd<<endl; return;}
     1042if(namx=="!" || namx.length()<1)
     1043  {cout<<"FillGFDfrVec_Error: bad X vector name "<<namx<<endl; return;}
     1044if(namy=="!" || namy.length()<1)
     1045  {cout<<"FillGFDfrVec_Error: bad Y vector name "<<namy<<endl; return;}
     1046if(namz.length()<1) namz = "!";
     1047if(name.length()<1) name = "!";
     1048int nvar = 0;
     1049if(namz=="!") nvar = 1; else nvar = 2;
     1050
     1051// Identify data
     1052NamedObjMgr omg;
     1053AnyDataObj* mobj = NULL;
     1054Vector* v;
     1055int nel = 0;
     1056r_8 *x=NULL, *y=NULL, *z=NULL,* ez=NULL;
     1057
     1058if( (mobj=omg.GetObj(namx)) == NULL) {
     1059  cout<<"FillGFDfrVec_Error: unknown X object "<<namx<<endl; return;
     1060} else {
     1061  v = (Vector*) mobj; x = v->Data(); nel=v->NElts();
     1062}
     1063
     1064if( (mobj=omg.GetObj(namy)) == NULL) {
     1065  cout<<"FillGFDfrVec_Error: unknown Y object "<<namy<<endl; return;
     1066} else {
     1067  v = (Vector*) mobj; y = z = v->Data(); if(v->NElts()<nel) nel=v->NElts();
     1068}
     1069
     1070if( nvar==2 && (mobj=omg.GetObj(namz)) == NULL) {
     1071  cout<<"FillGFDfrVec_Error: unknown Z object "<<namz<<endl; return;
     1072} else {
     1073  v = (Vector*) mobj; z = v->Data(); if(v->NElts()<nel) nel=v->NElts();
     1074}
     1075
     1076if(name!="!") {
     1077  if( (mobj=omg.GetObj(name)) == NULL) {
     1078    cout<<"FillGFDfrVec_Error: unknown EZ object "<<name<<endl; return;
     1079  } else {
     1080    v = (Vector*) mobj; ez = v->Data(); if(v->NElts()<nel) nel=v->NElts();
     1081  }
     1082}
     1083
     1084if(nel<=0)
     1085  {cout<<"FillGFDfrVec_Error: bad number of elements "<<nel<<endl; return;}
     1086
     1087// Create GeneralData and fill it with vectors
     1088GeneralFitData* gfd = new GeneralFitData(nvar,nel+5,0);
     1089if(nvar==1) gfd->SetData1(nel,x,z,ez);     // On remplit Y=f(X)
     1090else        gfd->SetData2(nel,x,y,z,ez);   // On remplit Z=f(X,y)
     1091
     1092// Menage et table d'objets
     1093if( omg.GetObj(nomgfd) != NULL ) omg.DelObj(nomgfd);
     1094mOmg->AddObj(gfd,nomgfd);
     1095return;
     1096}
    10261097
    10271098/* --Methode-- */
Note: See TracChangeset for help on using the changeset viewer.