about summary refs log tree commit diff
path: root/sourcecodes/k-best/src/score_net.c
blob: fccec93f1c5510b9c2a246c8c244c11cde3847ac (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include "cfg.h"

#include <stdlib.h>
#include <stdio.h>
#include <string.h>

#include "files.h"
#include "varpar.h"

score_t score_net(char* netfile, char* dirprefix){
  score_t score = 0.0;

  int v;
  varset_t varset;
  FILE* netf = strcmp(netfile,"-") ? fopen(netfile, "rt") : stdin;
  for(v=0; 1 == fscanf(netf, "%u", &varset); ++v){
    score_t vscore;
    FILE* fin = open_file(dirprefix, v, "", "rb");
    fseek(fin, varset2parset(v, varset)*sizeof(score_t), SEEK_SET);
    fread(&vscore, sizeof(score_t), 1, fin);
    fclose(fin);
    score += vscore;
  }
  fclose(netf);
  return score;
}

int main(int argc, char* argv[])
{

  if (argc!=3) {
    fprintf(stderr, "Usage: score_net netfile dirname\n");
    return 1;
  }

  printf("%.3f\n", score_net(argv[1], argv[2]));

  return 0;
}