Select Git revision
buildAppImage.sh
-
Franck Dary authoredFranck Dary authored
feat_model.c 3.51 KiB
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include "feat_model.h"
#include "feat_lib.h"
#include "feat_desc.h"
/* #include "feat_types.h" */
/* #include "config2feat_vec.h" */
/* returns type of the nth feature in fm */
/* if it is a complex feature, or if n is too large, returns -1 */
int feat_model_get_type_feat_n(feat_model *fm, int n)
{
feat_desc *fd;
simple_feat_desc *sfd;
if(n >= fm->nbelem) return -1;
fd = fm->array[n];
if(fd->nbelem > 1) return -1;
sfd = fd->array[0];
return sfd->type;
}
/* very basic version */
void feat_model_print(FILE *f, feat_model *fm)
{
int i,j;
feat_desc *fd;
simple_feat_desc *sfd;
if(fm == NULL) return;
for(i=0; i < fm->nbelem; i++){
fd = fm->array[i];
for(j=0; j < fd->nbelem; j++){
sfd = fd->array[j];
fprintf(f, "%s ", sfd->name);
}
fprintf(f, "\n");
}
}
void feat_model_free(feat_model *fm)
{
int i;
for(i=0; i < fm->nbelem; i++)
feat_desc_free(fm->array[i]);
free(fm->array);
free(fm->name);
feat_lib_free(fm->fl);
free(fm);
}
feat_model *feat_model_read(char *filename, feat_lib *fl, int verbose)
{
FILE *f = myfopen(filename, "r");
feat_model *fm = feat_model_new(filename);
int feature_number = 0;
char buffer[1000]; /* ugly */
char *feat_name;
//feat_lib *fl
/*fm->fl = feat_lib_build();*/ // must be preserved in feature_model to delete correctly features at the end
simple_feat_desc *sfd;
feat_desc *fd;
fm->fl = fl;
while(fgets(buffer, 1000, f)){
if(feof(f)) break;
if((buffer[0] == '\n') || (buffer[0] == '#')) continue;