Skip to content
Snippets Groups Projects
Select Git revision
  • 6fd7b39685d42560bcec0ceb00e91315f6b42562
  • master default protected
  • loss
  • producer
4 results

buildAppImage.sh

Blame
  • 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;