亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? make-ldpc.c

?? 用C語言編寫的LDPC譯碼程序
?? C
字號:
/* MAKE-LDPC.C - Make a Low Density Parity Check code's parity check matrix. *//* Copyright (c) 2000 by Radford M. Neal  * * Permission is granted for anyone to copy, use, or modify this program  * for purposes of research or education, provided this copyright notice  * is retained, and note is made of any changes that have been made.  * * This program is distributed without any warranty, express or implied. * As this program was written for research purposes only, it has not been * tested to the degree that would be advisable in any important application. * All use of this program is entirely at the user's own risk. */#include <stdio.h>#include <stdlib.h>#include <string.h>#include <math.h>#include "rand.h"#include "alloc.h"#include "intio.h"#include "mod2sparse.h"#include "mod2dense.h"#include "mod2convert.h"#include "rcode.h"/* METHODS FOR CONSTRUCTING CODES. */typedef enum { Evencol, 	/* Uniform number of bits per column, with number specified */  Evenboth 	/* Uniform (as possible) over both columns and rows */} make_method; void make_ldpc(int,make_method,int,int);void usage(void);/* MAIN PROGRAM. */int main( int argc,  char **argv){  make_method method;  char *file, *meth;  int seed, no4cycle;  char junk;  FILE *f;  int cb;  if (!(file = argv[1])   || !argv[2] || sscanf(argv[2],"%d%c",&M,&junk)!=1 || M<=0   || !argv[3] || sscanf(argv[3],"%d%c",&N,&junk)!=1 || N<=0   || !argv[4] || sscanf(argv[4],"%d%c",&seed,&junk)!=1   || !(meth = argv[5]))  { usage();  }  no4cycle = 0;  if (strcmp(meth,"evencol")==0 || strcmp(meth,"evenboth")==0)  { method = strcmp(meth,"evencol")==0 ? Evencol : Evenboth;    if (!argv[6] || sscanf(argv[6],"%d%c",&cb,&junk)!=1 || cb<=0)    { usage();    }    if (argv[7])    { if (strcmp(argv[7],"no4cycle")==0)      { no4cycle = 1;        if (argv[8])        { usage();        }      }      else      { usage();      }    }  }  else  { usage();  }      if (cb>M)  { fprintf(stderr,      "Number of checks per bit (%d) is greater than total checks (%d)\n",      cb, M);    exit(1);  }    if (cb==M && N>1 && no4cycle)  { fprintf(stderr,     "Can't eliminate cycles of length four with this many checks per bit\n");    exit(1);  }  make_ldpc(seed,method,cb,no4cycle);  f = fopen(file,"wb");  if (f==NULL)   { fprintf(stderr,"Can't create parity check file: %s\n",file);    exit(1);  }  intio_write(f,('P'<<8)+0x80);    if (ferror(f) || !mod2sparse_write(f,H) || fclose(f)!=0)  { fprintf(stderr,"Error writing to parity check file %s\n",file);    exit(1);  }  return 0;}/* PRINT USAGE MESSAGE AND EXIT. */void usage(void){ fprintf(stderr,"Usage:  make-ldpc pchk-file n-checks n-bits seed method\n");  fprintf(stderr,"Method: evencol  checks-per-col [ \"no4cycle\" ]\n");  fprintf(stderr,"    or: evenboth checks-per-col [ \"no4cycle\" ]\n");  exit(1);}/* CREATE A SPARSE PARITY-CHECK MATRIX.  Of size M by N, stored in H. */void make_ldpc( int seed,		/* Random number seed */  make_method method,	/* How to make it */  int cb,		/* Checks per bit */  int no4cycle		/* Eliminate cycles of length four? */){  mod2entry *e, *f, *g, *h;  int added, uneven, elim4;  int i, j, k, t;  int *u;  rand_seed(10*seed+1);  H = mod2sparse_allocate(M,N);  /* Create the initial version of the parity check matrix. */  switch (method)  {     case Evencol:    {       for (j = 0; j<N; j++)      { for (k = 0; k<cb; k++)        { do          { i = rand_int(M);          } while (mod2sparse_find(H,i,j));          mod2sparse_insert(H,i,j);        }      }      break;    }    case Evenboth:    {      u = chk_alloc (cb*N, sizeof *u);      for (k = cb*N-1; k>=0; k--)      { u[k] = k%M;      }      uneven = 0;      t = 0;      for (j = 0; j<N; j++)      { for (k = 0; k<cb; k++)        {           for (i = t; i<cb*N && mod2sparse_find(H,u[i],j); i++) ;          if (i==cb*N)          { uneven += 1;            do            { i = rand_int(M);            } while (mod2sparse_find(H,i,j));            mod2sparse_insert(H,i,j);          }          else          { do            { i = t + rand_int(cb*N-t);            } while (mod2sparse_find(H,u[i],j));            mod2sparse_insert(H,u[i],j);            u[i] = u[t];            t += 1;          }        }      }      if (uneven>0)      { fprintf(stderr,"Had to place %d checks in rows unevenly\n",uneven);      }      break;    }    default: abort();  }  /* Add extra bits to avoid rows with less than two checks. */  added = 0;  for (i = 0; i<M; i++)  { e = mod2sparse_first_in_row(H,i);    if (mod2sparse_at_end(e))    { j = rand_int(N);      e = mod2sparse_insert(H,i,j);      added += 1;    }    e = mod2sparse_first_in_row(H,i);    if (mod2sparse_at_end(mod2sparse_next_in_row(e)) && N>1)    { do       { j = rand_int(N);       } while (j==mod2sparse_col(e));      mod2sparse_insert(H,i,j);      added += 1;    }  }  if (added>0)  { fprintf(stderr,           "Added %d extra bit-checks to make row counts at least two\n",           added);  }  /* Add extra bits to try to avoid problems with even column counts. */  if (cb%2==0 && cb<M && N>1 && added<2)  { int a;    for (a = 0; added+a<2; a++)    { do      { i = rand_int(M);        j = rand_int(N);      } while (mod2sparse_find(H,i,j));      mod2sparse_insert(H,i,j);    }    fprintf(stderr, "Added %d extra bit-checks to try to avoid problems from even column counts\n",      a);  }  /* Eliminate cycles of length four, if asked, and if possible. */  if (no4cycle)  {     elim4 = 0;    for (t = 0; t<10; t++)     { k = 0;      for (j = 0; j<N; j++)      { for (e = mod2sparse_first_in_col(H,j);             !mod2sparse_at_end(e);             e = mod2sparse_next_in_col(e))        { for (f = mod2sparse_first_in_row(H,mod2sparse_row(e));               !mod2sparse_at_end(f);               f = mod2sparse_next_in_row(f))          { if (f==e) continue;            for (g = mod2sparse_first_in_col(H,mod2sparse_col(f));                 !mod2sparse_at_end(g);                 g = mod2sparse_next_in_col(g))            { if (g==f) continue;              for (h = mod2sparse_first_in_row(H,mod2sparse_row(g));                   !mod2sparse_at_end(h);                   h = mod2sparse_next_in_row(h))              { if (mod2sparse_col(h)==j)                { do                  { i = rand_int(M);                  } while (mod2sparse_find(H,i,j));                  mod2sparse_delete(H,e);                  mod2sparse_insert(H,i,j);                  elim4 += 1;                  k += 1;                  goto nextj;                }              }            }          }        }      nextj: ;      }      if (k==0) break;    }    if (elim4>0)    { fprintf(stderr,        "Eliminated %d cycles of length four by moving checks within column\n",         elim4);    }    if (t==10)     { fprintf(stderr,        "Couldn't eliminate all cycles of length four in 10 passes\n");    }  }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费精品视频最新在线| 欧美日韩亚洲高清一区二区| 欧美激情一区二区三区在线| 国产东北露脸精品视频| 欧美国产综合一区二区| 成人黄色大片在线观看| 亚洲欧美国产77777| 欧美吻胸吃奶大尺度电影 | 欧美欧美欧美欧美| 日韩高清不卡一区| 精品国产乱码久久久久久影片| 成人精品小蝌蚪| 亚洲欧美日韩国产手机在线 | 国产精品污www在线观看| 成人app在线观看| 亚洲午夜在线观看视频在线| 欧美久久久久免费| 国产乱码精品一区二区三区五月婷 | 精品少妇一区二区三区日产乱码 | 日韩视频在线一区二区| 国产91在线观看| 亚洲精品少妇30p| 日韩亚洲欧美一区二区三区| 国产成人午夜99999| 亚洲福利一二三区| 久久―日本道色综合久久| 91老师片黄在线观看| 日本美女一区二区| 日本一区二区三区久久久久久久久不 | 日韩一区二区三区三四区视频在线观看| 人人超碰91尤物精品国产| 中文字幕免费一区| 欧美精品亚洲二区| 成人av午夜影院| 日韩av中文字幕一区二区三区 | 成人免费不卡视频| 天天色天天爱天天射综合| 欧美国产亚洲另类动漫| 日韩一级视频免费观看在线| 成人综合婷婷国产精品久久| 欧美在线视频全部完| 精品国产污污免费网站入口 | 欧美本精品男人aⅴ天堂| 91一区在线观看| 国产成人亚洲综合色影视| 天天影视色香欲综合网老头| 亚洲人精品一区| 国产区在线观看成人精品| 在线不卡中文字幕播放| 99国产精品久久久久| 激情小说欧美图片| 亚洲成人一区二区在线观看| 亚洲人吸女人奶水| 欧美激情一区二区三区蜜桃视频| 日韩美一区二区三区| 欧美影院一区二区| 91尤物视频在线观看| 成人一区二区三区中文字幕| 麻豆精品视频在线观看免费| 日日摸夜夜添夜夜添国产精品| 亚洲三级理论片| 国产精品另类一区| 精品国产乱码久久久久久牛牛| 91精品国产麻豆国产自产在线 | 日韩国产在线一| 亚洲欧洲99久久| 国产精品系列在线| 国产欧美日韩麻豆91| 久久网站最新地址| 久久综合色天天久久综合图片| 日韩手机在线导航| 日韩欧美在线123| 欧美一区午夜视频在线观看| 欧美日本一道本在线视频| 欧美日韩一卡二卡| 欧美日韩高清一区二区不卡 | 精品一区二区免费| 麻豆一区二区三区| 久草精品在线观看| 黄色日韩网站视频| 国产成人aaaa| 99久久99久久免费精品蜜臀| av在线不卡电影| 欧美伊人久久久久久久久影院| 欧洲av一区二区嗯嗯嗯啊| 91黄色免费看| 欧美一区二区三区精品| 日韩手机在线导航| 国产亚洲va综合人人澡精品| 国产日韩精品一区二区浪潮av| 欧美激情一区不卡| 中文字幕亚洲综合久久菠萝蜜| 亚洲免费av高清| 日韩精品色哟哟| 国产精品一区二区黑丝| 岛国精品在线观看| 国产 日韩 欧美大片| 99精品国产视频| 欧美精品777| 欧美一级生活片| 国产视频不卡一区| 伊人开心综合网| 青娱乐精品在线视频| 国产激情一区二区三区| 一本色道**综合亚洲精品蜜桃冫 | 天天av天天翘天天综合网色鬼国产| 日韩av在线发布| 国产高清成人在线| 欧美色区777第一页| 精品福利在线导航| 亚洲欧美aⅴ...| 亚洲国产精品久久久男人的天堂 | 国产在线一区二区| 91网站在线观看视频| 91精品国产乱码久久蜜臀| 国产欧美日韩一区二区三区在线观看| 亚洲欧美日韩小说| 精品一区二区免费在线观看| 色天天综合久久久久综合片| 日韩欧美一区二区三区在线| 久久久国产精品午夜一区ai换脸| 亚洲自拍另类综合| 岛国av在线一区| 欧美亚洲国产bt| 国产欧美日韩久久| 色综合一区二区| 日韩一区二区三区三四区视频在线观看| 中文av一区二区| 日本不卡123| 日本韩国一区二区三区| 亚洲人妖av一区二区| 日本欧洲一区二区| 91麻豆文化传媒在线观看| 欧美videos大乳护士334| 亚洲精品免费在线播放| 丁香天五香天堂综合| 91精品国产欧美一区二区成人| 成人免费在线观看入口| 国内精品久久久久影院薰衣草| 欧美视频一区二区| 亚洲日韩欧美一区二区在线| 极品少妇xxxx偷拍精品少妇| 欧美精选在线播放| 一区二区三区四区国产精品| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 精品欧美一区二区久久| 亚洲免费在线播放| 懂色av中文一区二区三区 | 日韩电影在线免费观看| 色婷婷亚洲婷婷| ...av二区三区久久精品| 国产成人综合视频| 亚洲精品一区二区三区精华液| 日日噜噜夜夜狠狠视频欧美人 | 成人性生交大片免费看中文 | 久久一夜天堂av一区二区三区| 三级久久三级久久| 欧美视频一区二| 亚洲综合色婷婷| 91偷拍与自偷拍精品| 中文字幕一区二区三区四区| 粉嫩一区二区三区在线看| 国产性天天综合网| 国产精品一区二区男女羞羞无遮挡| 欧美不卡一二三| 九九国产精品视频| 久久久久久一二三区| 国产成人鲁色资源国产91色综 | 亚洲男同1069视频| 91在线视频网址| 亚洲人精品一区| 欧美三区在线观看| 亚洲成a人v欧美综合天堂| 欧美人与z0zoxxxx视频| 日韩精品午夜视频| 精品少妇一区二区三区在线播放 | 成人国产精品免费| 国产精品日产欧美久久久久| av亚洲精华国产精华| 亚洲欧美日韩综合aⅴ视频| 在线观看一区日韩| 全部av―极品视觉盛宴亚洲| 日韩一级黄色片| 国产91精品精华液一区二区三区 | 欧美日韩在线直播| 日韩av中文在线观看| 久久亚洲二区三区| 99精品国产99久久久久久白柏 | 亚洲欧美在线另类| 色www精品视频在线观看| 亚洲第一福利一区| 精品播放一区二区| 99视频超级精品| 亚洲h精品动漫在线观看| 精品国产三级电影在线观看| 北条麻妃国产九九精品视频| 一区二区三区中文免费| 日韩欧美久久一区| www.性欧美| 日韩—二三区免费观看av|