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

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

?? make-ldpc.c

?? ldpc的11個程序 encode decode extract make-gen make-ldpc make-pchk print-gen print-pchk rand-src transm
?? C
字號:
/* MAKE-LDPC.C - Make a Low Density Parity Check code's parity check matrix. *//* Copyright (c) 2000, 2001 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 "open.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;  /* Look at initial arguments. */  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)  { usage();  }  /* Look at the arguments specifying the method for producing the code. */  meth = argv+5;  if (!meth[0]) usage();  no4cycle = 0;  if (strcmp(meth[0],"evencol")==0 || strcmp(meth[0],"evenboth")==0)  { method = strcmp(meth[0],"evencol")==0 ? Evencol : Evenboth;    if (!meth[1] || sscanf(meth[1],"%d%c",&cb,&junk)!=1 || cb<=0)    { usage();    }    if (meth[2])    { if (strcmp(meth[2],"no4cycle")==0)      { no4cycle = 1;        if (meth[3])        { usage();        }      }      else      { usage();      }    }  }  else  { usage();  }  /* Check for some problems. */      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 the parity check matrix. */  make_ldpc(seed,method,cb,no4cycle);  /* Write out the parity check matrix. */  f = open_file_std(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, *dd;  int added, uneven, elim4;  int i, j, k, t;  int *u;  rand_seed(10*seed+1);  H = mod2sparse_allocate(M,N);

  dd= mod2sparse_last_in_row(H,4);
  dd=(dd)->right;  /* 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一区二区三区免费野_久草精品视频
7799精品视频| 欧美日韩精品福利| 日韩欧美国产综合| 日韩电影免费在线| 欧美精品一区二区三| 国产乱码精品一区二区三区忘忧草 | 日韩一级免费一区| 成人一区二区三区在线观看 | av激情综合网| 蜜臀久久99精品久久久画质超高清| 91丨porny丨中文| 伊人夜夜躁av伊人久久| 欧美性大战xxxxx久久久| 美女网站色91| 精品国产乱码久久久久久免费 | 蜜臀av在线播放一区二区三区| 欧美麻豆精品久久久久久| 久久电影网电视剧免费观看| 日韩女优av电影在线观看| 7777精品伊人久久久大香线蕉 | 日韩一区二区三区高清免费看看| 精品国产露脸精彩对白| 亚洲男人天堂一区| 国产精品综合久久| 欧美精品一区二区三区蜜臀| 亚洲成人你懂的| 91精品久久久久久蜜臀| 日本特黄久久久高潮| 91精品国产综合久久蜜臀| 亚洲动漫第一页| 欧美性猛交一区二区三区精品| 天堂精品中文字幕在线| 欧美一区二区三区在线视频| 久久99精品久久久| 亚洲精品美国一| 国产日产欧美一区| 91免费版在线| 国产精品一级片在线观看| 亚洲男人的天堂在线aⅴ视频| 91精品国产乱码| 日本高清不卡在线观看| 99精品桃花视频在线观看| 午夜在线电影亚洲一区| 亚洲国产精华液网站w| 欧美成人a∨高清免费观看| 99久久国产综合精品色伊| 国产一区二区三区日韩| 日本视频中文字幕一区二区三区| 亚洲国产精品黑人久久久| 久久无码av三级| 日韩欧美久久久| 日韩一级二级三级| 欧美一级在线视频| 精品欧美久久久| 久久美女艺术照精彩视频福利播放| 在线播放国产精品二区一二区四区| 欧美性猛交一区二区三区精品| 色呦呦网站一区| 欧美亚洲另类激情小说| 欧美日韩精品一区二区三区| 国产精品毛片无遮挡高清| 日韩丝袜情趣美女图片| 日韩一二在线观看| 久久久久久久国产精品影院| 中文字幕av一区二区三区高 | 久久免费偷拍视频| 国产精品三级av| 亚洲国产wwwccc36天堂| 久久丁香综合五月国产三级网站| 韩国毛片一区二区三区| 成人国产亚洲欧美成人综合网| 一本色道亚洲精品aⅴ| 538prom精品视频线放| 久久亚洲精华国产精华液 | 欧美人妇做爰xxxⅹ性高电影| 91天堂素人约啪| 91蜜桃在线免费视频| 欧美另类videos死尸| 久久日韩精品一区二区五区| 久久精品夜色噜噜亚洲aⅴ| 亚洲国产精品传媒在线观看| 一区二区高清视频在线观看| 久久精品国产99| 欧美精品日日鲁夜夜添| 国产欧美精品区一区二区三区| 日本在线不卡一区| 欧美亚州韩日在线看免费版国语版| 日韩精品最新网址| 免费看日韩精品| 宅男噜噜噜66一区二区66| 中文字幕在线不卡视频| 经典三级一区二区| 欧美不卡一二三| 免费日本视频一区| 欧美一区二区三区婷婷月色| 国产精品久久久久久妇女6080 | 久久先锋影音av鲁色资源| 午夜视黄欧洲亚洲| 欧美日韩一区小说| 亚洲国产sm捆绑调教视频| 欧美日精品一区视频| 亚洲综合丝袜美腿| 欧美日韩国产三级| 午夜精品一区在线观看| 在线不卡一区二区| 久久99国内精品| 国产日韩欧美精品一区| 国产超碰在线一区| 国产精品久久久久天堂| 91无套直看片红桃| 午夜天堂影视香蕉久久| 欧美一级日韩不卡播放免费| 激情五月婷婷综合网| 国产网站一区二区| 欧美日韩在线直播| 亚洲大片精品永久免费| 日韩午夜三级在线| 国产原创一区二区三区| 中日韩av电影| 91精品国产综合久久久久| 国产在线视频一区二区| 亚洲欧美日韩久久精品| 欧美一区二区视频在线观看2020 | 视频一区视频二区中文字幕| 日韩欧美久久久| 色婷婷综合视频在线观看| 国产另类ts人妖一区二区| 中文字幕一区二区三区乱码在线| 欧美三级视频在线| 不卡视频在线观看| 久久99精品久久久久| 亚洲自拍与偷拍| 亚洲国产精品国自产拍av| 91麻豆精品国产91久久久久久 | 欧美一区二区三区在线视频| 成人免费电影视频| 麻豆高清免费国产一区| 亚洲天堂免费看| 国产欧美日韩久久| 精品动漫一区二区三区在线观看| 欧美怡红院视频| 99久久精品免费| 99re这里只有精品首页| 国产成人高清视频| 国产91在线看| 国产不卡视频一区| 国产成人丝袜美腿| 国模无码大尺度一区二区三区| 视频一区视频二区中文| 亚洲主播在线观看| 亚洲欧美经典视频| 亚洲欧美日韩人成在线播放| 1区2区3区精品视频| 亚洲午夜三级在线| 亚洲午夜久久久久| 亚洲二区在线观看| 麻豆精品在线看| 狠狠狠色丁香婷婷综合久久五月| 亚洲成av人片一区二区梦乃| 亚洲第一福利视频在线| 午夜视频久久久久久| 美女视频一区二区| 成人国产一区二区三区精品| 不卡一卡二卡三乱码免费网站| 91免费在线播放| 91精品国产91综合久久蜜臀| 日韩欧美www| 中文字幕一区二区三中文字幕| 中文字幕一区二区不卡| 亚洲图片欧美综合| 国产精品一区二区无线| 99riav久久精品riav| 欧美电影在线免费观看| 久久久久久久久99精品| 一区二区三区日韩欧美精品| 久久99精品视频| 91麻豆免费视频| 一区二区三区在线免费| 精品日韩欧美一区二区| 欧美mv日韩mv国产网站| 亚洲日本一区二区三区| 久久精品国产久精国产| 日本精品视频一区二区| 久久精品水蜜桃av综合天堂| 亚洲午夜久久久久久久久电影网 | 久久精品国产99国产精品| 欧美午夜精品免费| 国产精品第五页| 成人视屏免费看| 国产欧美一区二区精品久导航| 人人精品人人爱| 欧美日韩在线播放一区| 成人免费在线播放视频| 国产精品中文字幕日韩精品 | 国产亚洲va综合人人澡精品 | 亚洲综合激情另类小说区| 99久久久国产精品| 亚洲色图第一区| 色婷婷国产精品| 亚洲色大成网站www久久九九|