⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 graph.h

📁 This a framework to test new ideas in transmission technology. Actual development is a LDPC-coder in
💻 H
字号:
#define MAXDEGREENUM 100#define MAXCYCLE 4#define vnodedegree (*((*graph).vnodelist+node)).degree#define cnodedegree (*((*graph).cnodelist+node)).degree#define vtonodedegree (*((*graph).vnodelist+tonode)).degree #define ctonodedegree (*((*graph).cnodelist+tonode)).degree#define vnodevalue (*((*graph).vnodelist+node)).value#define vtonodevalue (*((*graph).vnodelist+tonode)).value#define vnodeedgelist (*((*graph).vnodelist+node)).edgelist#define cnodeedgelist (*((*graph).cnodelist+node)).edgelist#define vtonodeedgelist (*((*graph).vnodelist+tonode)).edgelist#define ctonodeedgelist (*((*graph).cnodelist+tonode)).edgelist#define vnodeedge (*((*((*graph).vnodelist+node)).edgelist+socket))#define cnodeedge (*((*((*graph).cnodelist+node)).edgelist+socket))#define vnodetoedge (*((*((*graph).vnodelist+tonode)).edgelist+tosocket))#define cnodetoedge (*((*((*graph).cnodelist+tonode)).edgelist+tosocket))#define vnodedegree1 (*((*graph1).vnodelist+node)).degree#define cnodedegree1 (*((*graph1).cnodelist+node)).degree#define vtonodedegree1 (*((*graph1).vnodelist+tonode)).degree #define ctonodedegree1 (*((*graph1).cnodelist+tonode)).degree#define vnodevalue1 (*((*graph1).vnodelist+node)).value#define vtonodevalue1 (*((*graph1).vnodelist+tonode)).value#define vnodeedgelist1 (*((*graph1).vnodelist+node)).edgelist#define cnodeedgelist1 (*((*graph1).cnodelist+node)).edgelist#define vtonodeedgelist1 (*((*graph1).vnodelist+tonode)).edgelist#define ctonodeedgelist1 (*((*graph1).cnodelist+tonode)).edgelist#define vnodeedge1 (*((*((*graph1).vnodelist+node)).edgelist+socket))#define cnodeedge1 (*((*((*graph1).cnodelist+node)).edgelist+socket))#define vnodetoedge1 (*((*((*graph1).vnodelist+tonode)).edgelist+tosocket))#define cnodetoedge1 (*((*((*graph1).cnodelist+tonode)).edgelist+tosocket))/*************************** edge: one integer which ** denotes the destination ** node and a double which ** contains the message    ***************************/typedef struct    {   int dest;              /* destination node */   int socket;            /* socket at the destination */   double message;        /* incoming message from distination node */   } edge;/************************* define structure of a ** variable node         *************************/typedef struct   {   int degree;             /* degree of node */   double value;           /* received value */   edge *edgelist;         /* list of connected edges */   } vnode;/************************* define structure of a ** check node            *************************/typedef struct   {   int degree;             /* degree of node */   edge *edgelist;         /* list of connected edges */   } cnode;/************************* define structure of a ** degreelist            *************************/typedef struct   {   int degree[MAXDEGREENUM];       /* particular degree */   int numofnodes[MAXDEGREENUM];   /* number of nodes with this particular degree */   } degreelist;/************************* define structure of a ** graph                 *************************/typedef struct   {   int vnodenum;               /* number of vnodes */   int cnodenum;               /* number of cnodes */   double rate;                /* rate of the code */   int vdegreesnum;            /* number of different vdegrees */   int cdegreesnum;            /* number of different cdegrees */   int vmaxdegree;             /* maximum vdegree              */   int cmaxdegree;             /* maximum cdegree              */   double sumc;                /* sum of rho_i/i               */   double sumv;                /* sum of lambda_i/i            */   degreelist *vdegreelist;    /* list of vdegrees             */   degreelist *cdegreelist;    /* list of cdegrees             */   vnode *vnodelist;           /* list of vnodes               */   cnode *cnodelist;           /* list of cnodes               */   } graphs;void printgraph(graphs *, int);void switchedges(graphs *, int, int, int, int);void constructirregulargraph(graphs *, int, int *, double *, int, int *, double *, int, int);void readgraph(graphs *graph, int *gap, int **iphi, char *graphfile, int verbose);void savegraph(graphs *graph, int gap, int *iphi, char *graphfile, int verbose, int val);void constructregulargraph(graphs *graph, int vnodenum, int vdegree, int cdegree);void constructtwoirregulargraph(graphs *graph, graphs *graph1, int vnodenum, int vnodenum1, int *vdegreelist, int *vdegreelist1, double *vpercentagelist, double *vpercentagelist1, int vdegreesnum, int vdegreesnum1, int *cdegreelist, int *cdegreelist1, double *cpercentagelist, double *cpercentagelist1, int cdegreesnum, int cdegreesnum1, int verbose);void beginconstructgraph(int user, graphs *graph, int *vnodenum, int *vdegreelist, double *vpercentagelist, int vdegreesnum, int *cdegreelist, double *cpercentagelist, int cdegreesnum, int verbose);int verifyvnodenum(int *vnodenum, int numuser);void arrangevnode(graphs *graph, int vdegreesnum, int vnodenum, int vnodemax);void secondpartgraph(graphs *graph, int user,int *vnodenum, int vdegreesnum, int *cdegreesnum, int *cdegreelist, double *cpercentagelist, int verbose);void lastpartgraph(graphs *graph, int user, char *graphfile, int verbose);	void constructseveralgraphs(int numus, graphs **graph, int *vnodenum, void *vdegreelist, double **vpercentagelist, int *vdegreesnum, int **cdegreelist, double **cpercentagelist, int *cdegreesnum, char **graphfile,int verbose);void freegraph(graphs *graph);// was before in sub.c:void *allocate(int);void skip(FILE *, int);void randompermutation(int *, int *, int);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -