91 Feature->
Type = FeatureDesc;
107 (NumFeatures - 1) *
sizeof (
FEATURE));
137 assert (!isnan(Feature->
Params[i]));
159 if (
tfscanf(File,
"%d", &NumFeatures) != 1 || NumFeatures < 0)
163 for (i = 0; i < NumFeatures; i++)
184 assert(!isnan(Feature->
Params[i]));
205 for (
int i = 0; i < FeatureSet->
NumFeatures; i++) {
229 fprintf (File,
"%d\n", FeatureDesc->
NumParams);
230 for (i = 0; i < FeatureDesc->
NumParams; i++) {
232 fprintf (File,
"circular ");
234 fprintf (File,
"linear ");
237 fprintf (File,
"non-essential ");
239 fprintf (File,
"essential ");
241 fprintf (File,
"%f %f\n",
void DoError(int Error, const char *Message)
void add_str_int(const char *str, int number)
int tfscanf(FILE *stream, const char *format,...)
void WriteOldParamDesc(FILE *File, const FEATURE_DESC_STRUCT *FeatureDesc)
void WriteFeature(FEATURE Feature, STRING *str)
void add_str_double(const char *str, double number)
FEATURE_SET NewFeatureSet(int NumFeatures)
FEATURE_SET_STRUCT * FEATURE_SET
FEATURE_SET ReadFeatureSet(FILE *File, const FEATURE_DESC_STRUCT *FeatureDesc)
const PARAM_DESC * ParamDesc
void FreeFeatureSet(FEATURE_SET FeatureSet)
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
#define ILLEGAL_FEATURE_PARAM
#define ILLEGAL_NUM_FEATURES
BOOL8 AddFeature(FEATURE_SET FeatureSet, FEATURE Feature)
void FreeFeature(FEATURE Feature)