classify/adaptive.h

Go to the documentation of this file.
00001 
00020 #ifndef ADAPTIVE_H
00021 #define ADAPTIVE_H
00022 
00023 /*
00024 =================
00025 Include Files and Type Defines
00026 ==================== */
00027 #include "oldlist.h"
00028 #include "intproto.h"
00029 #include <stdio.h>
00030 
00031 
00036 typedef struct
00037 {
00040   UINT16 ProtoId;
00042   UINT16 dummy;
00044   PROTO_STRUCT Proto;
00045 } TEMP_PROTO_STRUCT;
00046 
00051 typedef TEMP_PROTO_STRUCT *TEMP_PROTO;
00052 
00057 typedef struct
00058 {
00060   UINT8 NumTimesSeen;
00062   UINT8 ProtoVectorSize;
00067   PROTO_ID MaxProtoId;
00069   LIST ContextsSeen;
00071   BIT_VECTOR Protos;
00072 } TEMP_CONFIG_STRUCT;
00073 
00078 typedef TEMP_CONFIG_STRUCT *TEMP_CONFIG;
00079 
00090 typedef char *PERM_CONFIG;
00091 
00098 typedef union
00099 {
00101   TEMP_CONFIG Temp;
00103   PERM_CONFIG Perm;
00104 } ADAPTED_CONFIG;
00105 
00110 typedef struct
00111 {
00113   UINT8 NumPermConfigs;
00115   UINT8 dummy[3];
00117   BIT_VECTOR PermProtos;
00119   BIT_VECTOR PermConfigs;
00121   LIST TempProtos;
00123   ADAPTED_CONFIG Config[MAX_NUM_CONFIGS];
00124 } ADAPT_CLASS_STRUCT;
00125 
00130 typedef ADAPT_CLASS_STRUCT *ADAPT_CLASS;
00131 
00141 typedef struct
00142 {
00143   INT_TEMPLATES Templates;
00144   UINT8 NumPermClasses;
00145   UINT8 dummy[3];
00146   ADAPT_CLASS Class[MAX_NUM_CLASSES];
00147 } ADAPT_TEMPLATES_STRUCT;
00148 
00153 typedef ADAPT_TEMPLATES_STRUCT *ADAPT_TEMPLATES;
00154 
00155 /*
00156 =================
00157 Public Function Prototypes
00158 =================
00159 */
00160 #define ConfigIsPermanent(Class,ConfigId)    \
00161 (test_bit ((Class)->PermConfigs, ConfigId))
00162 
00163 #define MakeConfigPermanent(Class,ConfigId)  \
00164 (SET_BIT ((Class)->PermConfigs, ConfigId))
00165 
00166 #define MakeProtoPermanent(Class,ProtoId) \
00167 (SET_BIT ((Class)->PermProtos, ProtoId))
00168 
00169 #define TempConfigFor(Class,ConfigId)  \
00170 ((Class)->Config[ConfigId].Temp)
00171 
00172 #define PermConfigFor(Class,ConfigId)  \
00173 ((Class)->Config[ConfigId].Perm)
00174 
00175 #define IncreaseConfidence(TempConfig) \
00176 ((TempConfig)->NumTimesSeen++)
00177 
00178 int AddAdaptedClass(ADAPT_TEMPLATES Templates,
00179                     ADAPT_CLASS Class,
00180                     CLASS_ID ClassId);
00181 
00182 void FreeTempProto(void *arg); 
00183 
00184 void FreeTempConfig(TEMP_CONFIG Config); 
00185 
00186 ADAPT_CLASS NewAdaptedClass(); 
00187 
00188 void free_adapted_class(ADAPT_CLASS adapt_class); 
00189 
00190 ADAPT_TEMPLATES NewAdaptedTemplates(); 
00191 
00192 void free_adapted_templates(ADAPT_TEMPLATES templates); 
00193 
00194 TEMP_CONFIG NewTempConfig(int MaxProtoId); 
00195 
00196 TEMP_PROTO NewTempProto(); 
00197 
00198 void PrintAdaptedTemplates(FILE *File, ADAPT_TEMPLATES Templates); 
00199 
00200 ADAPT_CLASS ReadAdaptedClass(FILE *File); 
00201 
00202 ADAPT_TEMPLATES ReadAdaptedTemplates(FILE *File); 
00203 
00204 PERM_CONFIG ReadPermConfig(FILE *File); 
00205 
00206 TEMP_CONFIG ReadTempConfig(FILE *File); 
00207 
00208 void WriteAdaptedClass(FILE *File, ADAPT_CLASS Class, int NumConfigs); 
00209 
00210 void WriteAdaptedTemplates(FILE *File, ADAPT_TEMPLATES Templates); 
00211 
00212 void WritePermConfig(FILE *File, PERM_CONFIG Config); 
00213 
00214 void WriteTempConfig(FILE *File, TEMP_CONFIG Config); 
00215 
00216 /*
00217 #if defined(__STDC__) || defined(__cplusplus)
00218 # define        _ARGS(s) s
00219 #else
00220 # define        _ARGS(s) ()
00221 #endif*/
00222 
00223 /* adaptive.c
00224 int AddAdaptedClass
00225     _ARGS((ADAPT_TEMPLATES Templates,
00226   ADAPT_CLASS Class,
00227   CLASS_ID ClassId));
00228 
00229 void FreeTempConfig
00230     _ARGS((TEMP_CONFIG Config));
00231 
00232 ADAPT_CLASS NewAdaptedClass
00233     _ARGS((void));
00234 
00235 ADAPT_TEMPLATES NewAdaptedTemplates
00236     _ARGS((void));
00237 
00238 TEMP_CONFIG NewTempConfig
00239     _ARGS((int MaxProtoId));
00240 
00241 TEMP_PROTO NewTempProto
00242     _ARGS((void));
00243 
00244 void PrintAdaptedTemplates
00245     _ARGS((FILE *File,
00246   ADAPT_TEMPLATES Templates));
00247 
00248 ADAPT_CLASS ReadAdaptedClass
00249     _ARGS((FILE *File));
00250 
00251 ADAPT_TEMPLATES ReadAdaptedTemplates
00252     _ARGS((FILE *File));
00253 
00254 PERM_CONFIG ReadPermConfig
00255     _ARGS((FILE *File));
00256 
00257 TEMP_CONFIG ReadTempConfig
00258     _ARGS((FILE *File));
00259 
00260 void WriteAdaptedClass
00261     _ARGS((FILE *File,
00262   ADAPT_CLASS Class,
00263   int NumConfigs));
00264 
00265 void WriteAdaptedTemplates
00266     _ARGS((FILE *File,
00267   ADAPT_TEMPLATES Templates));
00268 
00269 void WritePermConfig
00270     _ARGS((FILE *File,
00271   PERM_CONFIG Config));
00272 
00273 void WriteTempConfig
00274     _ARGS((FILE *File,
00275   TEMP_CONFIG Config));
00276 
00277 #undef _ARGS
00278 */
00279 #endif

Generated on Wed Feb 28 19:49:09 2007 for Tesseract by  doxygen 1.5.1