Blame view

tools/sctk-2.4.10/src/sclite/rank.h 4.89 KB
8dcb6dfcb   Yannick Estève   first commit
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
  /**********************************************************************/
  /*                                                                    */
  /*           FILE: rank.h                                             */
  /*           WRITTEN BY: Jonathan G. Fiscus                           */
  /*                  NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY    */
  /*                  SPEECH RECOGNITION GROUP                          */
  /*                                                                    */
  /*           USAGE: for definition of the RANK structure and          */
  /*                  all it's macros for appropriate access            */
  /*                                                                    */
  /**********************************************************************/
  
  /**********************************************************************/
  /*   sizes of the rank structure                                      */
  #define MAX_BLOCKS	60
  #define MAX_TREATMENTS  60
  #define FOR_BLOCKS	TRUE
  #define FOR_TREATMENTS  FALSE
  
  /**********************************************************************/
  /*  command line values to change the means of calculating percentages*/
  #define PER_CORR_REC		'R'
  #define TOTAL_ERROR		'E'
  #define WORD_ACCURACY		'W'
  
  #define CORR_REC_STR		"Speaker Percent Correctly Recognized"
  #define TOT_ERR_STR		"Speaker Word Error Rate (%)"
  #define WORD_ACC_STR		"Speaker Word Accuracy Rate (%)"
  
  /**********************************************************************/
  /*   typedef for the RANK structure                                   */
  typedef struct rank_struct{
     int n_blk;                  /* number of blocks */ 
     int n_trt;                  /* number of treatments */
     char **blk_name;            /* string names of blocks */
     int *blk_srt_ind;           /* indexes that to blocks to sort them */
     double **blk_ranks;          /* 2DIM array for ranks for blocks over trts */
     double *blk_Ovr_ranks;       /* ranks after ANOVAR */
  
     char **trt_name;            /* string names of treatments */
     double *trt_Ovr_ranks;       /* ranks after ANOVAR */
     double **trt_ranks;          /* 2DIM array for ranks for trts over blocks */
     double **pcts;               /* the actual percentages for trts and blks */
     int *trt_srt_ind;           /* indexes that sorts trts into orders */
  } RANK;
  
  void init_RANK_struct_from_SCORES(RANK *rank, SCORES *scor[], int nscor,  char *calc_formula);
  void free_RANK(RANK *rank);
  void rank_on_pcts(RANK *rank, int ordering);
  void dump_full_RANK_struct(RANK *rank, char *t_name, char *b_name, char *blk_label, char *trt_label, char *formula_str, char *test_name, char *blk_desc, char *trt_desc);
  void print_n_winner_comp_matrix(RANK *rank, int ***wins, char **win_ids, int win_cnt, int page_width,FILE *fp);
  void print_composite_significance(RANK *rank, int pr_width, int num_win, int ***wins, char **win_desc, char **win_str1, int matrix, int report, char *test_name, char *outroot, int feedback, char *outdir);
  void print_composite_significance2(RANK *rank, int pr_width, int num_win, int ***wins, double ***conf, char **win_desc, char **win_str, int matrix, int report, char *test_name, char *outroot, int feedback, char *outdir);
  void print_n_winner_comp_report(RANK *rank, int ***wins, char **win_ids, char **win_str, char **win_desc, int win_cnt, int page_width, char *testname, char *outdir);
  int formula_index(char *str);
  char *formula_str(char *str);
  
  
  void print_rank_ranges(RANK *rank, char *percent_desc, char *testname, char *outroot, int);
  void print_gnu_rank_ranges(RANK *rank, char *percent_desc, char *testname,char *basename, int);
  void print_gnu_rank_ranges2(RANK *rank, char *percent_desc, char *testname,char *basename, int);
  void print_trt_comp_matrix_for_RANK_one_winner(int **winner, RANK *rank, char *title, char *formula_str, char *block_id, FILE *fp);
  
  /**********************************************************************/
  /*   RANK structure access macros                                     */
  #define rnk_blks(_r)	_r->n_blk
  #define rnk_trt(_r)	_r->n_trt
  
  #define rnk_t_rank(_r)	_r->trt_ranks
  #define rnk_t_rank_arr(_r,_n)	rnk_t_rank(_r)[_n]
  #define Vrnk_t_rank(_r,_b,_t)	rnk_t_rank(_r)[_b][_t]
  
  #define rnk_b_rank(_r)	_r->blk_ranks
  #define rnk_b_rank_arr(_r,_n)	rnk_b_rank[_n]
  #define Vrnk_b_rank(_r,_b,_t)	rnk_b_rank(_r)[_b][_t]
  
  #define rnk_pcts(_r)	_r->pcts
  #define rnk_pcts_arr(_r,_n)	_r->pcts[_n]
  #define Vrnk_pcts(_r,_b,_t)	rnk_pcts(_r)[_b][_t]
  
  #define rnk_b_name(_r)	_r->blk_name
  #define Vrnk_b_name(_r,_b)	rnk_b_name(_r)[_b]
  
  #define rnk_t_name(_r)	_r->trt_name
  #define Vrnk_t_name(_r,_t)	rnk_t_name(_r)[_t]
  
  #define ovr_t_rank(_r)		_r->trt_Ovr_ranks
  #define Vovr_t_rank(_r,_t)	ovr_t_rank(_r)[_t]
  
  #define ovr_b_rank(_r)		_r->blk_Ovr_ranks
  #define Vovr_b_rank(_r,_b)	ovr_t_rank(_r)[_b]
  
  #define srt_t_rank(_r)		_r->blk_srt_ind
  #define Vsrt_t_rank(_r,_t)	srt_t_rank(_r)[_t]
  
  #define srt_b_rank(_r)		_r->trt_srt_ind
  #define Vsrt_b_rank(_r,_b)	srt_b_rank(_r)[_b]