示例#1
0
文件: png2y4m.c 项目: fidalco/daala
/*Generate a triangular deviate with zero mean and range [-_range,_range].*/
static int32_t triangle_rand(kiss99_ctx *_kiss,int32_t _range){
  uint32_t m;
  uint32_t r1;
  uint32_t r2;
  _range++;
  m=0xFFFFFFFFU/_range*_range;
  do r1=kiss99_rand(_kiss);
  while(r1>=m);
  do r2=kiss99_rand(_kiss);
  while(r2>=m);
  return (int32_t)(r1%_range)-(int32_t)(r2%_range);
}
示例#2
0
文件: kiss99.c 项目: andreasgal/daala
void kiss99_srand(kiss99_ctx *_this,const unsigned char *_data,int _ndata){
  int i;
  _this->z=362436069;
  _this->w=521288629;
  _this->jsr=123456789;
  _this->jcong=380116160;
  for(i=3;i<_ndata;i+=4){
    _this->z^=_data[i-3];
    _this->w^=_data[i-2];
    _this->jsr^=_data[i-1];
    _this->jcong^=_data[i];
    kiss99_rand(_this);
  }
  if(i-3<_ndata)_this->z^=_data[i-3];
  if(i-2<_ndata)_this->w^=_data[i-2];
  if(i-1<_ndata)_this->jsr^=_data[i-1];
}