Changeset 466 in Sophya for trunk/SophyaPI/PIext/piafitting.cc


Ignore:
Timestamp:
Oct 14, 1999, 7:01:58 PM (26 years ago)
Author:
ercodmgr
Message:

Changement nom /func en /autoc
Nouvelles commandes PAW-like n/plot,...,reset,h/plot/2d etc..
Creation de helpfit pour commenatires fit,fitlin,fitw,crfitfun etc..

cmv 14/10/99

File:
1 edited

Legend:

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

    r392 r466  
    5454
    5555////////////////////////////////////////////////////////////////////////
     56// --- Generation automatique du "usage" pour helpfit:
     57// 1-/ copier le texte ci-dessous de piafitting.cc dans toto
     58// 2-/ cat toto | sed 's?^//?usage+="\\n?' | sed 's?$?    ";?'
     59// NE PAS EFFACER LA SUITE: c'est elle qui doit etre modifiee,
     60// le usage du helpfit sera regenere a l'aide des commandes ci-dessus.
     61////////////////////////////////////////////////////////////////////////
    5662//| --------------- Fit Lineaire a 1 et 2 dimensions ---------------
    5763//| Syntaxe:
    5864//| fitlin nom pnn [o:.aa,bb,cc, o;dd,ee,ff o:gg,hh,jj,kk etc...]
    5965//| avec:
    60 //| nom  : cf commentaire ordre "fit"
     66//| nom  : cf commentaire ordre ''fit''
    6167//| pnn  : fit polynome degre nn avec classe Poly (lineaire) 1D ou 2D
    62 //| o:aa,...,bb : cf commentaires ordre "fit"
     68//| o:aa,...,bb : cf commentaires ordre ''fit''
    6369//|
    6470////////////////////////////////////////////////////////////////////////
     
    6975//|     [p:p1,p2,...,pn s:s1,s2,...,sn m:m1,m2,...,mn M:M1,mM2,...,Mn f:f1,...,fn]
    7076//|     [o:.aa,bb,cc, o;dd,ee,ff o:gg,hh,jj,kk etc...]
    71 //| cf commentaire ordre "fit"
     77//| cf commentaire ordre ''fit''
    7278//|
    7379////////////////////////////////////////////////////////////////////////
     
    109115//|
    110116//|----- OPTIONS -----
    111 //| o    : options "o:Eaa.b,eaa.b,f,r,caa.b,Xaa.b"
     117//| o    : options ''o:Eaa.b,eaa.b,f,r,caa.b,Xaa.b''
    112118//|      F : initialisation a partir des resultats et de l'etat du fit precedent
    113119//|          (option non prioritaire sur les definitions p:,s:,m:,M:,f:o:)
    114120//|      a : initialisation automatique des parametres du fit (si disponible)
    115121//|          (option non prioritaire sur les definitions p:,s:,m:,M:,f:o:
    116 //|           et sur l'initialisation pa l'option "F")
     122//|           et sur l'initialisation pa l'option ''F'')
    117123//|      f : generation d'un Objet identique contenant la fonction fittee
    118124//|      r : generation d'un Objet identique contenant les residus
    119125//|      Xaa.b : aa.b valeur du DXi2 d'arret (def=1.e-3)
    120126//|      Naa : aa nombre maximum d'iterations (def=100)
    121 //|      la : niveau "a" de print: a=niveau de print Fit1/2D
    122 //|      da : niveau "a" de debug: a=niveau de GeneralFit
     127//|      la : niveau ''a'' de print: a=niveau de print Fit1/2D
     128//|      da : niveau ''a'' de debug: a=niveau de GeneralFit
    123129//|      Ii1/i2 : numeros des bins X de l'histos utilises pour le fit [i1,i2]
    124130//|2D    Jj1/j2 : numeros des bins Y de l'histos utilises pour le fit [j1,j2]
     
    137143//|          Actif pour  exp+poly 1D, poly 1D
    138144//|          Pour gauss+poly 1D, xc est le centre de la gaussienne.
    139 //|2D    yaa.b et y : idem "xaa.b et x" mais pour y
     145//|2D    yaa.b et y : idem ''xaa.b et x'' mais pour y
    140146//|
    141147////////////////////////////////////////////////////////////////////////
     
    156162//|            double gauss2_der(double const* x,double const* p,double* dp)
    157163//|     ou dp[i] = dF(x[];p[])/dp[i]
    158 //|     Par convention, cette fonction a le meme nom suivi de "_der"
     164//|     Par convention, cette fonction a le meme nom suivi de ''_der''
    159165//| > crfitfun nom_fichier nom_fonction nvar npar
    160 //|     Permet de compiler le fichier "nom_fichier" et de linker
    161 //|     la fonction "nom_fonction"
     166//|     Permet de compiler le fichier ''nom_fichier'' et de linker
     167//|     la fonction ''nom_fonction''
    162168//|   - Un meme fichier peut contenir plusieurs fonctions a fitter
    163169//|
     
    184190
    185191// enregistrement des ordres de fit
    186 string kw, usage;
     192string kw, usage, grp = "Fitting";
     193
     194kw = "helpfit";
     195usage="";
     196usage+="\n//////////////////////////////////////////////////////////////////////    ";
     197usage+="\n| --------------- Fit Lineaire a 1 et 2 dimensions ---------------    ";
     198usage+="\n| Syntaxe:    ";
     199usage+="\n| fitlin nom pnn [o:.aa,bb,cc, o;dd,ee,ff o:gg,hh,jj,kk etc...]    ";
     200usage+="\n| avec:    ";
     201usage+="\n| nom  : cf commentaire ordre ''fit''    ";
     202usage+="\n| pnn  : fit polynome degre nn avec classe Poly (lineaire) 1D ou 2D    ";
     203usage+="\n| o:aa,...,bb : cf commentaires ordre ''fit''    ";
     204usage+="\n|    ";
     205usage+="\n//////////////////////////////////////////////////////////////////////    ";
     206usage+="\n| --------------- Fit d'objets a 1 et 2 dimensions ---------------    ";
     207usage+="\n|                 avec interface d'aide graphique    ";
     208usage+="\n| Syntaxe:    ";
     209usage+="\n| fitw nom func    ";
     210usage+="\n|     [p:p1,p2,...,pn s:s1,s2,...,sn m:m1,m2,...,mn M:M1,mM2,...,Mn f:f1,...,fn]    ";
     211usage+="\n|     [o:.aa,bb,cc, o;dd,ee,ff o:gg,hh,jj,kk etc...]    ";
     212usage+="\n| cf commentaire ordre ''fit''    ";
     213usage+="\n|    ";
     214usage+="\n//////////////////////////////////////////////////////////////////////    ";
     215usage+="\n| --------------- Fit d'objets a 1 et 2 dimensions ---------------    ";
     216usage+="\n| Syntaxe:    ";
     217usage+="\n| fit nom func    ";
     218usage+="\n|     [p:p1,p2,...,pn s:s1,s2,...,sn m:m1,m2,...,mn M:M1,mM2,...,Mn f:f1,...,fn]    ";
     219usage+="\n|     [o:.aa,bb,cc, o;dd,ee,ff o:gg,hh,jj,kk etc...]    ";
     220usage+="\n|----- OBJET -----    ";
     221usage+="\n| nom  : nom de l'objet qui peut etre:    ";
     222usage+="\n|        fit-1D:  Vector,Histo1D,HProf ou GeneraFitData(1D)    ";
     223usage+="\n|        fit-2D:  Matrix,Histo2D,Image<T> ou GeneraFitData(2D)    ";
     224usage+="\n|    ";
     225usage+="\n|----- FUNCTION -----    ";
     226usage+="\n| func : pnn : fit polynome degre nn avec GeneralFit (non-lineaire) 1D ou 2D    ";
     227usage+="\n|      : gnn : fit gaussienne (hauteur) + polynome de degre nn 1D    ";
     228usage+="\n|      : g   : fit gaussienne (hauteur) 1D    ";
     229usage+="\n|      : enn : fit exponentielle + polynome de degre nn 1D    ";
     230usage+="\n|      : e   : fit exponentielle 1D    ";
     231usage+="\n|      : Gnn : fit gaussienne (volume) + polynome de degre nn 1D    ";
     232usage+="\n|      : G   : fit gaussienne (volume) 1D    ";
     233usage+="\n|      :     : fit gaussienne+fond (volume) 2D    ";
     234usage+="\n|      : Gi  : fit gaussienne+fond integree (volume) 2D    ";
     235usage+="\n|      : d   : fit DL de gaussienne+fond (volume) 2D    ";
     236usage+="\n|      : di  : fit DL de gaussienne+fond integree (volume) 2D    ";
     237usage+="\n|      : D   : fit DL de gaussienne+fond avec coeff variable p6 (volume) 2D    ";
     238usage+="\n|      : Di  : fit DL de gaussienne+fond integree avec coeff variable p6 (volume) 2D    ";
     239usage+="\n|      : M   : fit Moffat+fond (expos=p6) (volume) 2D    ";
     240usage+="\n|      : Mi  : fit Moffat+fond integree (expos=p6) (volume) 2D    ";
     241usage+="\n|      : Autre : fonction definie par l'utilisateur (cf commentaires ci apres)    ";
     242usage+="\n|    ";
     243usage+="\n|----- INIT PARAMETRES ET ETAT DU FIT -----    ";
     244usage+="\n| p    : p1,...,pn : valeur d'initialisation des parametres (def=0)    ";
     245usage+="\n| s    : s1,...,sn : valeur des steps de depart (def=1)    ";
     246usage+="\n| m    : m1,...,mn : valeur des minima (def=1)    ";
     247usage+="\n| M    : M1,...,Mn : valeur des maxima (def=-1) (max<=min : pas de limite)    ";
     248usage+="\n| f    : f1,...,fn : si >=1 parametre fixe sinon libre (def=0)    ";
     249usage+="\n| - Remarque: si pi,si,mi ou Mi = '!' la valeur correspondante n'est pas changee    ";
     250usage+="\n|    ";
     251usage+="\n|----- OPTIONS -----    ";
     252usage+="\n| o    : options ''o:Eaa.b,eaa.b,f,r,caa.b,Xaa.b''    ";
     253usage+="\n|      F : initialisation a partir des resultats et de l'etat du fit precedent    ";
     254usage+="\n|          (option non prioritaire sur les definitions p:,s:,m:,M:,f:o:)    ";
     255usage+="\n|      a : initialisation automatique des parametres du fit (si disponible)    ";
     256usage+="\n|          (option non prioritaire sur les definitions p:,s:,m:,M:,f:o:    ";
     257usage+="\n|           et sur l'initialisation pa l'option ''F'')    ";
     258usage+="\n|      f : generation d'un Objet identique contenant la fonction fittee    ";
     259usage+="\n|      r : generation d'un Objet identique contenant les residus    ";
     260usage+="\n|      Xaa.b : aa.b valeur du DXi2 d'arret (def=1.e-3)    ";
     261usage+="\n|      Naa : aa nombre maximum d'iterations (def=100)    ";
     262usage+="\n|      la : niveau ''a'' de print: a=niveau de print Fit1/2D    ";
     263usage+="\n|      da : niveau ''a'' de debug: a=niveau de GeneralFit    ";
     264usage+="\n|      Ii1/i2 : numeros des bins X de l'histos utilises pour le fit [i1,i2]    ";
     265usage+="\n|2D    Jj1/j2 : numeros des bins Y de l'histos utilises pour le fit [j1,j2]    ";
     266usage+="\n|    - L'erreur est celle associee a l'objet (si elle existe),    ";
     267usage+="\n|      elle est mise a 1 sinon, sauf si E... ou e... est precise:    ";
     268usage+="\n|      Eaa.b : si |val|>=1 erreur = aa.b*sqrt(|val|)    ";
     269usage+="\n|              si |val|<1  erreur = aa.b    ";
     270usage+="\n|              si aa.b <=0 alors aa.b=1.0    ";
     271usage+="\n|              E seul est equivalent a E1.0    ";
     272usage+="\n|      eaa.b : erreur = aa.b    ";
     273usage+="\n|              si aa.b <=0 alors aa.b=1.0    ";
     274usage+="\n|              e seul est equivalent a e1.0    ";
     275usage+="\n|      xaa.b : demande de centrage: on fit x-aa.b au lieu de x)    ";
     276usage+="\n|      x : demande de centrage: on fit x-xc au lieu de x    ";
     277usage+="\n|          avec xc=abscisse du milieu de l'histogramme    ";
     278usage+="\n|          Actif pour  exp+poly 1D, poly 1D    ";
     279usage+="\n|          Pour gauss+poly 1D, xc est le centre de la gaussienne.    ";
     280usage+="\n|2D    yaa.b et y : idem ''xaa.b et x'' mais pour y    ";
     281usage+="\n|    ";
     282usage+="\n//////////////////////////////////////////////////////////////////////    ";
     283usage+="\n| --------------- Def des fcts de fit par l'utilisateur ---------------    ";
     284usage+="\n| Pour definir une fonction parametree utilisateur:    ";
     285usage+="\n| Un exemple de fichier contenant des fonctions a fitter: PIext/userfitfunex.c    ";
     286usage+="\n| > crfitfil nom_fichier nom_fonction nvar npar    ";
     287usage+="\n|     pour creer un squelette de fichier C contenant la fonction a fitter    ";
     288usage+="\n|            nom_fichier : nom du fichier ou est le code de la fonction    ";
     289usage+="\n|                          c'est un fichier C de nom blabla.c    ";
     290usage+="\n|            nom_fonction : nom de la fonction ex: gauss2    ";
     291usage+="\n|            nvar : nombre de variables x[] (1D=1, 2D=2, etc...)    ";
     292usage+="\n|            npar : nombre de parametre p[]    ";
     293usage+="\n|   - La fonction est donc F(x[];p[]), soit par ex:    ";
     294usage+="\n|            double gauss2(double const* x,double const* p)    ";
     295usage+="\n|   - L'utilisateur a la possibilite de donner egalement la fonction    ";
     296usage+="\n|     retournant les derivees de la fonction par rapport aux parametres    ";
     297usage+="\n|            double gauss2_der(double const* x,double const* p,double* dp)    ";
     298usage+="\n|     ou dp[i] = dF(x[];p[])/dp[i]    ";
     299usage+="\n|     Par convention, cette fonction a le meme nom suivi de ''_der''    ";
     300usage+="\n| > crfitfun nom_fichier nom_fonction nvar npar    ";
     301usage+="\n|     Permet de compiler le fichier ''nom_fichier'' et de linker    ";
     302usage+="\n|     la fonction ''nom_fonction''    ";
     303usage+="\n|   - Un meme fichier peut contenir plusieurs fonctions a fitter    ";
     304usage+="\n|    ";
     305usage+="\n//////////////////////////////////////////////////////////////////////    ";
     306piac->RegisterHelp(kw,usage,grp);
    187307
    188308kw = "fit";
     
    190310usage += "\n Usage: fit nomobj func [Options]";
    191311usage += "\n [p:p1,...,pn s:s1,...,sn m:m1,...,mn M:M1,...,Mn o:... o:...]";
    192 piac->RegisterCommand(kw,usage,this,"Fitting");
     312usage += "\n  Related commands: fitw fitlin crfitfun crfitfil"; 
     313piac->RegisterCommand(kw,usage,this,grp);
    193314
    194315kw = "fitw";
     
    196317usage += "\n Usage: fitw nomobj func [Options]";
    197318usage += "\n [p:p1,...,pn s:s1,...,sn m:m1,...,mn M:M1,...,Mn o:... o:...]";
    198 piac->RegisterCommand(kw,usage,this,"Fitting");
     319usage += "\n  Related commands: fit fitlin crfitfun crfitfil"; 
     320piac->RegisterCommand(kw,usage,this,grp);
    199321
    200322kw = "fitlin";
    201323usage = "Linear Fitting of Polynoms to DataObjects";
    202324usage += "\n Usage: fitlin nomobj func [o:... o:...]";
    203 piac->RegisterCommand(kw,usage,this,"Fitting");
     325usage += "\n  Related commands: fit fitw crfitfun crfitfil"; 
     326piac->RegisterCommand(kw,usage,this,grp);
    204327
    205328kw = "crfitfun";
    206329usage = "Creation et link de function utilisateur pour le fit";
    207330usage += "\n Usage: crfitfun file func nvar npar";
    208 piac->RegisterCommand(kw,usage,this,"Fitting");
     331usage += "\n  Related commands: fit fitw fitlin crfitfil"; 
     332piac->RegisterCommand(kw,usage,this,grp);
    209333
    210334kw = "crfitfil";
    211335usage = "Creation de fichier C pour function utilisateur du fit";
    212336usage += "\n Usage: crfitfil file func nvar npar";
    213 piac->RegisterCommand(kw,usage,this,"Fitting");
     337usage += "\n  Related commands: fit fitw fitlin crfitfun"; 
     338piac->RegisterCommand(kw,usage,this,grp);
    214339}
    215340
Note: See TracChangeset for help on using the changeset viewer.