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

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

?? rand.c

?? ldpc的11個程序 encode decode extract make-gen make-ldpc make-pchk print-gen print-pchk rand-src transm
?? C
字號:
/* RAND.C - Random number generation module. *//* Copyright (c) 1995, 1996, 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. *//* NOTE:  See rand.html for documentation on these procedures. */#include <stdlib.h>#include <stdio.h>#include <string.h>#include <math.h>#include "rand.h"
#define RAND_FILE  "c:\\randfile"/* This module uses the 'drand48' pseudo-random number generator found   on most Unix systems, the output of which is combined with a file   of real random numbers.   Many of the methods used in this module may be found in the following   reference:      Devroye, L. (1986) Non-Uniform Random Variate Generation,         New York: Springer-Verlag.   The methods used here are not necessarily the fastest available.  They're   selected to be reasonably fast while also being easy to write.*//* CONSTANT PI.  Defined here if not in <math.h>. */#ifndef M_PI#define M_PI 3.14159265358979323846#endif/* TABLES OF REAL RANDOM NUMBERS.  A file of 100000 real random numbers   (NOT pseudo-random) is used in conjunction with pseudo-random numbers   for extra insurance.  These are employed in the form of five tables   of 5000 32-bit integers.     The file must be located at the path given by RAND_FILE, which should   be defined on the "cc" command line. */#define Table_size 5000			/* Number of words in each table */static int rn[N_tables][Table_size];	/* Random number tables *//* STATE OF RANDOM NUMBER GENERATOR. */static int initialized = 0;		/* Has module been initialized? */static rand_state state0;		/* Default state structure */static rand_state *state;		/* Pointer to current state *//* INITIALIZE MODULE.  Sets things up using the default state structure,   set as if rand_seed had been called with a seed of one. */static void initialize (void){  int i, j, k, w;  char b;  FILE *f;  if (!initialized)  {    f = fopen(RAND_FILE,"rb");        if (f==NULL)    { fprintf(stderr,"Can't open file of random numbers (%s)\n",RAND_FILE);      exit(1);    }    for (i = 0; i<N_tables; i++)    { for (j = 0; j<Table_size; j++)      { w = 0;        for (k = 0; k<4; k++)        { if (fread(&b,1,1,f)!=1)          { fprintf(stderr,"Error reading file of random numbers (%s)\n",                            RAND_FILE);            exit(1);          }          w = (w<<8) | (b&0xff);        }        rn[i][j] = w;      }    }    state = &state0;    initialized = 1;    rand_seed(1);  }}/* SET CURRENT STATE ACCORDING TO SEED. */void rand_seed( int seed){   int j;  if (!initialized) initialize();  state->seed = seed;  state->state48[0] = seed>>16;  state->state48[1] = seed&0xffff;  state->state48[2] = rn[0][(seed&0x7fffffff)%Table_size];  for (j = 0; j<N_tables; j++)   { 
	state->ptr[j] = seed%Table_size;    seed /= Table_size;  }}/* SET STATE STRUCTURE TO USE. */void rand_use_state( rand_state *st){   if (!initialized) initialize();  state = st;}/* RETURN POINTER TO CURRENT STATE. */rand_state *rand_get_state (void){   if (!initialized) initialize();  return state;}/* GENERATE RANDOM 31-BIT INTEGER.  Not really meant for use outside this   module. */int rand_word(void){  int v;  int j;  if (!initialized) initialize();  //v = nrand48(state->state48);
  v=1000;  for (j = 0; j<N_tables; j++)  { 
	  v ^= rn[j][state->ptr[j]];  }  for (j = 0; j<N_tables && state->ptr[j]==Table_size-1; j++)   {
	  state->ptr[j] = 0;  }  if (j<N_tables)   { state->ptr[j] += 1;  }  return v & 0x7fffffff;}/* GENERATE UNIFORMLY FROM [0,1). */double rand_uniform (void){  return (double)rand_word() / (1.0+(double)0x7fffffff);}/* GENERATE UNIFORMLY FORM (0,1). */double rand_uniopen (void){  return (0.5+(double)rand_word()) / (1.0+(double)0x7fffffff);}/* GENERATE RANDOM INTEGER FROM 0, 1, ..., (n-1). */int rand_int( int n){   return (int) (n * rand_uniform());}/* GENERATE INTEGER FROM 0, 1, ..., (n-1), WITH GIVEN DISTRIBUTION. */int rand_pickd( double *p,  int n){   double t, r;  int i;  t = 0;  for (i = 0; i<n; i++)  { if (p[i]<0) abort();    t += p[i];  }  if (t<=0) abort();  r = t * rand_uniform();  for (i = 0; i<n; i++)  { r -= p[i];    if (r<0) return i;  }  /* Return value with non-zero probability if we get here due to roundoff. */  for (i = 0; i<n; i++)   { if (p[i]>0) return i;  }  abort(); }/* SAME PROCEDURE AS ABOVE, BUT WITH FLOAT ARGUMENT. */int rand_pickf( float *p,  int n){   double t, r;  int i;  t = 0;  for (i = 0; i<n; i++)  { if (p[i]<=0) abort();    t += p[i];  }  if (t<=0) abort();  r = t * rand_uniform();  for (i = 0; i<n; i++)  { r -= p[i];    if (r<0) return i;  }  /* Return value with non-zero probability if we get here due to roundoff. */  for (i = 0; i<n; i++)   { if (p[i]>0) return i;  }  abort(); }/* GAUSSIAN GENERATOR.  Done by using the Box-Muller method, but only one   of the variates is retained (using both would require saving more state).   See Devroye, p. 235.    As written, should never deliver exactly zero, which may sometimes be   helpful. */double rand_gaussian (void){  double a, b;  a = rand_uniform();  b = rand_uniopen();  return cos(2.0*M_PI*a) * sqrt(-2.0*log(b));}/* EXPONENTIAL GENERATOR.  See Devroye, p. 29.  Written so as to never   return exactly zero. */double rand_exp (void){  return -log(rand_uniopen());}/* LOGISTIC GENERATOR.  Just inverts the CDF. */double rand_logistic (void){ double u;  u = rand_uniopen();  return log(u/(1-u));}/* CAUCHY GENERATOR.  See Devroye, p. 29. */double rand_cauchy (void){  return tan (M_PI * (rand_uniopen()-0.5));}/* GAMMA GENERATOR.  Generates a positive real number, r, with density   proportional to r^(a-1) * exp(-r).  See Devroye, p. 410 and p. 420.    Things are fiddled to avoid ever returning a value that is very near    zero. */double rand_gamma( double a){  double b, c, X, Y, Z, U, V, W;  if (a<0.00001)  { X = a;  }  else if (a<=1)   {     U = rand_uniopen();    X = rand_gamma(1+a) * pow(U,1/a);  }  else if (a<1.00001)  { X = rand_exp();  }  else  {    b = a-1;    c = 3*a - 0.75;      for (;;)    {      U = rand_uniopen();      V = rand_uniopen();          W = U*(1-U);      Y = sqrt(c/W) * (U-0.5);      X = b+Y;        if (X>=0)      {         Z = 64*W*W*W*V*V;          if (Z <= 1 - 2*Y*Y/X || log(Z) <= 2 * (b*log(X/b) - Y)) break;      }    }  }  return X<1e-30 && X<a ? (a<1e-30 ? a : 1e-30) : X;}/* BETA GENERATOR. Generates a real number, r, in (0,1), with density   proportional to r^(a-1) * (1-r)^(b-1).  Things are fiddled to avoid   the end-points, and to make the procedure symmetric between a and b. */double rand_beta ( double a,   double b){  double x, y, r;  do  { x = rand_gamma(a);    y = rand_gamma(b);    r = 1.0 + x/(x+y);    r = r - 1.0;  } while (r<=0.0 || r>=1.0);  return r;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品一线二线三线精华| 国产日本欧美一区二区| 日本免费新一区视频| 国产亚洲欧美日韩在线一区| 不卡一卡二卡三乱码免费网站| 亚洲欧美激情一区二区| www激情久久| 欧美日韩国产欧美日美国产精品| 狠狠色丁香婷综合久久| 亚洲一区免费视频| 久久蜜臀精品av| 欧美体内she精高潮| 99久久综合99久久综合网站| 国模冰冰炮一区二区| 午夜精品久久久| 亚洲网友自拍偷拍| 一区二区三区不卡视频| 亚洲另类春色校园小说| 精品国产自在久精品国产| 欧美成人女星排行榜| 在线观看av一区二区| 成人av在线网站| 国产成人一级电影| 狠狠狠色丁香婷婷综合久久五月| 亚洲国产欧美一区二区三区丁香婷| 中文字幕一区二区三区在线观看| 国产清纯在线一区二区www| 欧美成人在线直播| 欧美电影免费提供在线观看| 91色乱码一区二区三区| 91福利精品第一导航| 99久久99久久精品免费看蜜桃| 激情综合网av| 国产成人免费xxxxxxxx| 粉嫩aⅴ一区二区三区四区五区| 国产精品 欧美精品| 天天综合色天天| 国产乱码精品一区二区三| 懂色av中文字幕一区二区三区| 午夜视频在线观看一区| 捆绑调教一区二区三区| 不卡在线观看av| 99久久伊人精品| 国产精品毛片高清在线完整版 | 麻豆国产精品777777在线| 欧亚洲嫩模精品一区三区| 91.com在线观看| 欧美国产国产综合| 亚洲一二三级电影| 成人性生交大片免费| 欧美一级国产精品| 综合激情成人伊人| 国产成人免费视频一区| 欧美调教femdomvk| 欧美国产丝袜视频| 五月婷婷色综合| 欧美日韩在线综合| 精品久久久久久久久久久久久久久 | 日韩美女主播在线视频一区二区三区| 欧美午夜一区二区| 欧美精品一区二| 亚洲一区二区在线播放相泽| 国产麻豆精品视频| 3atv一区二区三区| 亚洲激情网站免费观看| 日韩国产精品久久久久久亚洲| 成人午夜视频网站| 国产免费久久精品| 国产成人av一区二区| 久久婷婷国产综合精品青草| 免费一级片91| 欧美日本精品一区二区三区| 国产精品久久久久久久久免费相片| 免费在线欧美视频| 欧美精品xxxxbbbb| 亚洲1区2区3区4区| 欧美在线观看18| 五月激情六月综合| 日韩欧美国产午夜精品| 日韩av一区二区在线影视| 欧美日韩国产乱码电影| 亚洲午夜影视影院在线观看| 99在线精品免费| 国产精品看片你懂得| 高清不卡一二三区| 亚洲欧洲av另类| 欧美日韩亚洲综合在线| 亚洲一区二区三区小说| 欧美日韩色综合| 日韩高清在线电影| 日韩欧美国产一二三区| 成人免费观看视频| 五月天视频一区| 久久久综合精品| 欧洲一区在线电影| 麻豆成人久久精品二区三区小说| 精品成人免费观看| 国产成人午夜精品5599| 亚洲精品国产高清久久伦理二区| 欧美三级视频在线观看| 日韩精品一区第一页| 国产日产精品一区| 欧美日韩小视频| 91网页版在线| 国产精品中文有码| 五月天婷婷综合| 国产欧美中文在线| 在线成人高清不卡| 91天堂素人约啪| 国产高清精品网站| 日韩精品乱码免费| 国产三级一区二区三区| 欧美精品自拍偷拍动漫精品| 99视频在线精品| 99久久伊人久久99| 粗大黑人巨茎大战欧美成人| 日韩精品国产精品| 亚洲综合清纯丝袜自拍| 成人欧美一区二区三区白人| 久久影院视频免费| 久久你懂得1024| 久久这里只有精品6| 欧美一区二区精品| 欧美精品日韩一本| 欧美精品一级二级| 欧美浪妇xxxx高跟鞋交| 91麻豆精品国产自产在线观看一区 | 久久99最新地址| 蜜臀av一级做a爰片久久| 亚洲黄网站在线观看| 亚洲日本免费电影| 亚洲一区二区偷拍精品| 午夜av电影一区| 国产一区二区在线免费观看| 激情久久久久久久久久久久久久久久| 亚洲国产日韩av| 日韩精品一卡二卡三卡四卡无卡| 亚洲综合在线电影| 亚洲成人av一区二区三区| 日韩av午夜在线观看| 国产丶欧美丶日本不卡视频| eeuss鲁片一区二区三区在线看| 99精品视频中文字幕| 色屁屁一区二区| 日韩免费一区二区三区在线播放| 国产日韩欧美亚洲| 午夜精品国产更新| 成人免费视频视频| 91精品国产综合久久香蕉麻豆| 日韩精品专区在线| 亚洲女人****多毛耸耸8| 色综合一个色综合| 精品国产乱码久久久久久牛牛| 26uuu欧美| 亚洲一区在线播放| 国产毛片精品国产一区二区三区| 97精品超碰一区二区三区| 日韩一区二区三区精品视频| 亚洲精品乱码久久久久久黑人| 午夜天堂影视香蕉久久| 国产一区三区三区| 欧美日韩在线免费视频| 国产精品亲子伦对白| 久久精品国产免费看久久精品| 国产精品18久久久| 久久久久九九视频| 久久 天天综合| 欧美人成免费网站| 亚洲成人动漫在线免费观看| 欧美亚洲愉拍一区二区| 亚洲免费观看高清完整版在线观看熊| 日韩电影免费在线| 在线免费观看成人短视频| 最好看的中文字幕久久| 国产精品亚洲视频| 欧美电影免费观看高清完整版在线观看 | 欧美一区二区三区啪啪| 亚洲美女屁股眼交3| 福利一区在线观看| 欧美激情综合五月色丁香| 国产成人三级在线观看| www一区二区| 国产99久久久久久免费看农村| 久久久精品人体av艺术| 韩国av一区二区三区在线观看| 日韩欧美久久久| 开心九九激情九九欧美日韩精美视频电影 | 国产精品一区二区久久不卡| 国产欧美日韩亚州综合| 91丝袜呻吟高潮美腿白嫩在线观看| 精品免费视频.| 国产成人av网站| 亚洲日本va午夜在线影院| 欧美色图12p| 国产综合色视频| 国产精品女人毛片| 欧美三级电影精品| 国产精品一二三区在线| 国产精品久久久久永久免费观看 | 99久久国产综合色|国产精品|