64 "sizeof(FEATURE_STRUCT)+sizeof(FLOAT32)*(NumParamsIn(Feature)-1)");
100 "sizeof(FEATURE_STRUCT)+sizeof(FLOAT32)*(NumParamsIn(Feature)-1)");
101 Feature->
Type = FeatureDesc;
117 (NumFeatures - 1) *
sizeof (
FEATURE));
147 assert (!isnan(Feature->
Params[i]));
169 if (
tfscanf(File,
"%d", &NumFeatures) != 1 || NumFeatures < 0)
173 for (i = 0; i < NumFeatures; i++)
194 assert(!isnan(Feature->
Params[i]));
215 for (
int i = 0; i < FeatureSet->
NumFeatures; i++) {
239 fprintf (File,
"%d\n", FeatureDesc->
NumParams);
240 for (i = 0; i < FeatureDesc->
NumParams; i++) {
242 fprintf (File,
"circular ");
244 fprintf (File,
"linear ");
247 fprintf (File,
"non-essential ");
249 fprintf (File,
"essential ");
251 fprintf (File,
"%f %f\n",
void WriteFeature(FEATURE Feature, STRING *str)
void free_struct(void *deadstruct, inT32, const char *)
void FreeFeature(FEATURE Feature)
void memfree(void *element)
int tfscanf(FILE *stream, const char *format,...)
void add_str_double(const char *str, double number)
void add_str_int(const char *str, int number)
FEATURE_SET_STRUCT * FEATURE_SET
#define ILLEGAL_NUM_FEATURES
const PARAM_DESC * ParamDesc
BOOL8 AddFeature(FEATURE_SET FeatureSet, FEATURE Feature)
void DoError(int Error, const char *Message)
void WriteFeatureSet(FEATURE_SET FeatureSet, STRING *str)
FEATURE NewFeature(const FEATURE_DESC_STRUCT *FeatureDesc)
FEATURE ReadFeature(FILE *File, const FEATURE_DESC_STRUCT *FeatureDesc)
const FEATURE_DESC_STRUCT * Type
FEATURE_SET NewFeatureSet(int NumFeatures)
FEATURE_SET ReadFeatureSet(FILE *File, const FEATURE_DESC_STRUCT *FeatureDesc)
void * alloc_struct(inT32 count, const char *)
#define ILLEGAL_FEATURE_PARAM
void FreeFeatureSet(FEATURE_SET FeatureSet)
void WriteOldParamDesc(FILE *File, const FEATURE_DESC_STRUCT *FeatureDesc)