Changeset 1067 in Sophya for trunk/SophyaPI/PIext/servnobjm.cc
- Timestamp:
- Jul 12, 2000, 7:24:33 PM (25 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SophyaPI/PIext/servnobjm.cc
r1057 r1067 1024 1024 } 1025 1025 1026 /* --Methode-- cmv 12/07/00 */ 1027 void 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 1040 if(nomgfd=="!" || nomgfd.length()<1) 1041 {cout<<"FillGFDfrVec_Error: bad GenaralData name "<<nomgfd<<endl; return;} 1042 if(namx=="!" || namx.length()<1) 1043 {cout<<"FillGFDfrVec_Error: bad X vector name "<<namx<<endl; return;} 1044 if(namy=="!" || namy.length()<1) 1045 {cout<<"FillGFDfrVec_Error: bad Y vector name "<<namy<<endl; return;} 1046 if(namz.length()<1) namz = "!"; 1047 if(name.length()<1) name = "!"; 1048 int nvar = 0; 1049 if(namz=="!") nvar = 1; else nvar = 2; 1050 1051 // Identify data 1052 NamedObjMgr omg; 1053 AnyDataObj* mobj = NULL; 1054 Vector* v; 1055 int nel = 0; 1056 r_8 *x=NULL, *y=NULL, *z=NULL,* ez=NULL; 1057 1058 if( (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 1064 if( (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 1070 if( 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 1076 if(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 1084 if(nel<=0) 1085 {cout<<"FillGFDfrVec_Error: bad number of elements "<<nel<<endl; return;} 1086 1087 // Create GeneralData and fill it with vectors 1088 GeneralFitData* gfd = new GeneralFitData(nvar,nel+5,0); 1089 if(nvar==1) gfd->SetData1(nel,x,z,ez); // On remplit Y=f(X) 1090 else gfd->SetData2(nel,x,y,z,ez); // On remplit Z=f(X,y) 1091 1092 // Menage et table d'objets 1093 if( omg.GetObj(nomgfd) != NULL ) omg.DelObj(nomgfd); 1094 mOmg->AddObj(gfd,nomgfd); 1095 return; 1096 } 1026 1097 1027 1098 /* --Methode-- */
Note:
See TracChangeset
for help on using the changeset viewer.