ff_symb.h

Go to the documentation of this file.
00001 /*
00002 *    Copyright (c) 2007. The BATI team. All right reserved.
00003 *
00004 *    This file is part of BATI library.
00005 *
00006 *    BATI library is free software: you can redistribute it and/or modify
00007 *    it under the terms of the GNU General Public License as published by
00008 *    the Free Software Foundation, either version 3 of the License, or
00009 *    (at your option) any later version.
00010 *
00011 *    BATI library  is distributed in the hope that it will be useful,
00012 *    but WITHOUT ANY WARRANTY; without even the implied warranty of
00013 *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00014 *    GNU General Public License for more details.
00015 *
00016 *    You should have received a copy of the GNU General Public License
00017 *    along with BATI library.  If not, see <http://www.gnu.org/licenses/>.
00018 */
00019 /* ************************* fusion_floue.h  **********************************/
00020 /*                                                                            */
00021 /*      descripteurs et prototypes associes a l'operateur fusion_floue        */
00022 /*                                                                            */
00023 /*  Derniere modif : Lionel VALET, 19/11/99                                   */
00024 /* ****************************************************************************/
00025 
00026 /* pas de code avant cette ligne*/
00027 #ifndef __ff_symb2
00028 #define __ff_symb2
00029 
00030 
00031 #define MAXI(i,j) ( (i) > (j) ? (i) : (j) )
00032 #define MINI(i,j) ( (i) < (j) ? (i) : (j) )
00033 #define SQR(i) ( (i) * (i) )
00034 
00035 typedef int (*PFI)();           //pointer to function that returns int
00036 
00037 typedef char chaine[100];
00038 typedef unsigned char Byte;
00039 
00040 typedef struct
00041 {
00042     chaine nom;
00043     float gauche;
00044     float mode;
00045     float droite;
00046 }   Symbol;
00047 
00048 typedef struct
00049 {
00050     unsigned char * liste_in;
00051     unsigned char nom_out;
00052     float ponderation;
00053 }Une_regle;
00054 
00055 typedef struct
00056 {
00057     int nb_regle;
00058     Une_regle * regle;
00059 }Les_regles;
00060 
00061 typedef struct
00062 {
00063     chaine nom;
00064     unsigned char nb_fct;
00065     Symbol *part;
00066 }Partition;
00067 
00068 typedef float degre_app;
00069 typedef degre_app *ss_ens_flou_symb;
00070 
00071 typedef struct  
00072 {
00073     int nb_descripteur;
00074     ss_ens_flou_symb * descript;
00075 }Descripteur;
00076 
00077 typedef struct
00078 {
00079     unsigned char nb_entree;
00080     Partition *partition;
00081 }Fct_appartenance;
00082 
00085 typedef struct {
00086     int Tnorme;     
00087     int Tconorme;    
00088     PFI tn;             //pointeur a la fonction de calcul de norme
00089     PFI tcn;            //pointeur a la fonction de calcul de tconorme
00090     int defuzz;      
00091     Fct_appartenance fonction; 
00092     Les_regles rgl;            
00093     Descripteur des;           
00094     char *nom;    
00095 } fusion_floue_t;
00096 
00097 param *ff_symb_lect(fusion_floue_t *des, param *ptp, char *debq);
00098 int ff_symb_init(fusion_floue_t *des);     
00099 int ff_symb_calc(fusion_floue_t *des, float *data, float *result);     
00100 int ff_symb_ferm(fusion_floue_t *des);
00101 
00102 
00103 /*pas de code après cette ligne */
00104 #endif

Generated on Tue Apr 22 13:31:02 2008 for donnee1D by  doxygen 1.5.3