📄 rmbnd.h
字号:
/* bnd.h Belief Network Decoder for the problem A x = z *//* Control parameters */typedef struct { /* bnd_control */#include "RMbnd_var_str.h" int verbose ;} bnd_control ;typedef struct { /* bnd_param */ /* The sizes of everything. */ int M ; /* number of rows in the matrix A */ int N ; /* number of columns in A */ int m , n ; /* used to keep track of which row / column we are up to during complex optimizations */ /* The matrix A is represented in a list structure */ alist_matrix *a ; /* unlike in fe.* , this is a pointer */ linear_trellis *lt ; /* this is used if each row uses the same trellis */ linear_trellis **lts ; /* this array points to multiple trellises */ int *trellism ; /* this says which trellis each row, m, uses */ int *totms ; /* how many ms use each of the trellises */ double *bias ; /* the prior on the s vector */ unsigned char *z ; unsigned char *xo ; /* decoded x */ unsigned char *t ; /* current value of Ax */ double *qp1 ; /* the pseudoposterior */ double **q0 ; /* the qs for the next iteration */ double **q1 ; /* the qs for the next iteration */ double **r0 , **r1 ; /* probabilities contributed from each relationship r0[1..N][1..umax] */ /* these are used in the vertical passes */ double *qc0 , *qc1 ; /* probabilities contributed by each bit to each relationship qc0[1..umax] */ double *qt0 , *qt1 ; /* product of probabilities from top relationship qt0[1..N][1..umax] */ double *qb0 , *qb1 ; /* and from bottom */ unsigned char *x ; /* the true binary state vector x[n] */ int count ; /* count of number of differences between the state and the true answer */ int count_high ; /* number of high bits in the s vector */ int count_s ; /* number of high bits in the true s vector */ int true_s ; /* whether the true s is supplied */ double v ; /* the score of the final state relative to the truth */ int count_viol ; /* number of checks z that aren't coming out right */ int not_decoded ; bnd_control *c ; } bnd_param;/* memory and so forth */void bnd_allocate ( bnd_param * , bnd_control * ) ;int set_up_trellism ( bnd_param *p, bnd_control *c ) ;int deduce_realM ( bnd_param *p , bnd_control *bndc ) ;void bnd_free ( bnd_param * , bnd_control * ) ;void bnd_defaults ( bnd_param * , bnd_control * ) ;void bnd_load_dqc ( bnd_param *p , bnd_control *c ) ;void bnd_fprint_state ( bnd_param *p , bnd_control *c ) ;/* the main routine */int bndecode ( bnd_param * , bnd_control * ) ;void bnd_score_state ( bnd_param *p ) ;void horizontal_pass ( bnd_param *p ) ;void vertical_pass ( bnd_param *p , bnd_control *c ) ;/*<!-- hhmts start -->Last modified: Thu Sep 21 00:43:48 1995<!-- hhmts end -->*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -