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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? test_support.h

?? 惠普實(shí)驗(yàn)室的經(jīng)典代碼。用于huffman編碼的快速實(shí)現(xiàn)
?? H
字號(hào):
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
//                                                                           -
//                       *************************                           -
//                        HUFFMAN CODING EXAMPLES                            -
//                       *************************                           -
//                                                                           -
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
//                                                                           -
// Implementation of random-number generators and chronometer                -
//                                                                           -
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
//                                                                           -
// Version 1.00  -  January 24, 2005                                         -
//                                                                           -
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
//                                                                           -
//                                  WARNING                                  -
//                                 =========                                 -
//                                                                           -
// The only purpose of this program is to demonstrate the basic principles   -
// of Huffman codes. It is provided as is, without any express or implied    -
// warranty, without even the warranty of fitness for any particular         -
// purpose, or that the implementations are correct.                         -
//                                                                           -
// Permission to copy and redistribute this code is hereby granted, provided -
// that this warning and copyright notices are not removed or altered.       -
//                                                                           -
// Copyright (c) 2005 by Amir Said (said@ieee.org) &                         -
//                       William A. Pearlman (pearlw@ecse.rpi.edu)           -
//                                                                           -
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -


// - - Definitions - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

#ifndef TEST_SUPPORT
#define TEST_SUPPORT

void Error(const char * message);               // stops execution after error

const double MinProbability = 1e-4; // avoid prob. too small for static models


// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// - - Class definitions - - - - - - - - - - - - - - - - - - - - - - - - - - -

class Chronometer
{                                          // Class to measure execution times
public:

  Chronometer(void)  { time = 0.0;  on = false; }

  void   reset(void) { time = 0.0;  on = false; }

  void   start(char * s = 0);
  void   display(char * s = 0);
  void   restart(char * s = 0);

  void   stop(void);
  double read(void);

private:  //  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
  bool   on;
  double mark, time;
};

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

class Random_Generator
{                                            // Pseudo-random number generator
public:

  Random_Generator(void)          { set_seed(0); }
  Random_Generator(unsigned seed) { set_seed(seed); }

  void     set_seed(unsigned seed);

  unsigned word(void);                          // 32-bit pseudo-random number
  double   uniform(void);                      // same, converted to double fp
  unsigned integer(unsigned range) { return unsigned(range * uniform()); }

protected: // .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 
  unsigned s1, s2, s3;
};

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

class Random_Bit_Source : public Random_Generator
{
public:  // Pseudo-random generator of binary symbols with given probabilities

  Random_Bit_Source(void) { prob_0 = 0.5;  ent = 1.0; }

  double   entropy(void)              { return ent; }
  double   symbol_0_probability(void) { return prob_0; }
  double   symbol_1_probability(void) { return 1.0 - prob_0; }

  unsigned bit(void);         // pseudo-random bit with predefined probability

  void     switch_probabilities(void);
  void     shuffle_probabilities(void);

  void     set_entropy(double entropy);
  double   set_probability_0(double symbol_0_probability);

private:  //  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
  unsigned threshold;
  double   ent, prob_0;
};

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

class Random_Data_Source : public Random_Generator
{
public:    // Pseudo-random generator of data symbols with given probabilities

  Random_Data_Source(void);
 ~Random_Data_Source(void);

  double   entropy(void)      { return ent; }
  double * probability(void)  { return prob; }
  double   data_symbols(void) { return symbols; }

  unsigned data(void);     // pseudo-random data with predefined distributions

  void     shuffle_probabilities(void);

  double   set_distribution(unsigned data_symbols,
                            const double probability[]);

  double   set_truncated_geometric(unsigned data_symbols,
                                   double entropy);

private:  //  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
  void     assign_memory(unsigned);
  double   set_tg(double);
  double   ent, * prob;
  unsigned symbols, * dist, low_bound[257];
};

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

class Zero_Finder
{
public:        // Class used by 'Random_Data_Source' to find source parameters

  Zero_Finder(double first_test, double second_test);

  double set_new_result(double function_value);            // returns new test

private:  //  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
  int    phase, iter;
  double x0, y0, x1, y1, x2, y2, x;
};


// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// - - Inline implementations  - - - - - - - - - - - - - - - - - - - - - - - -

inline unsigned Random_Generator::word(void)
{
        // "Taus88" generator with period (2^31 - 1) * (2^29 - 1) * (2^28 - 1)

  register unsigned b;
  b  = ((s1 << 13) ^ s1)   >> 19;
  s1 = ((s1 & 0xFFFFFFFEU) << 12) ^ b;
  b  = ((s2 <<  2) ^ s2)   >> 25;
  s2 = ((s2 & 0xFFFFFFF8U) <<  4) ^ b;
  b  = ((s3 <<  3) ^ s3)   >> 11;
  s3 = ((s3 & 0xFFFFFFF0U) << 17) ^ b;
  return s1 ^ s2 ^ s3;
}

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

inline double Random_Generator::uniform(void)
{
  const double WordToDouble = 1.0 / (1.0 + double(0xFFFFFFFFU));
 
  register unsigned b;
  b  = ((s1 << 13) ^ s1)   >> 19;
  s1 = ((s1 & 0xFFFFFFFEU) << 12) ^ b;
  b  = ((s2 <<  2) ^ s2)   >> 25;
  s2 = ((s2 & 0xFFFFFFF8U) <<  4) ^ b;
  b  = ((s3 <<  3) ^ s3)   >> 11;
  s3 = ((s3 & 0xFFFFFFF0U) << 17) ^ b;             // open interval: 0 < r < 1
  return WordToDouble * (0.5 + double(s1 ^ s2 ^ s3));
}

#endif

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久国产精品区| 精品剧情v国产在线观看在线| 日本欧美在线看| 一区二区三区在线视频观看58 | 一区二区三区成人在线视频| 国产色婷婷亚洲99精品小说| 欧美成人国产一区二区| 日韩精品一区二| 精品日本一线二线三线不卡| 精品日本一线二线三线不卡| 日韩午夜激情电影| 欧美福利视频一区| 欧美酷刑日本凌虐凌虐| 69p69国产精品| 欧美tk—视频vk| 久久精品免费在线观看| 国产精品夫妻自拍| 亚洲综合免费观看高清在线观看| 国产精品美女久久久久久久| 亚洲人成伊人成综合网小说| 亚洲综合区在线| 久久精品噜噜噜成人av农村| 国产麻豆一精品一av一免费 | 91香蕉视频在线| 97精品久久久久中文字幕| 色综合中文字幕| 欧美猛男超大videosgay| 日韩欧美一级片| 国产精品人人做人人爽人人添| 1024亚洲合集| 日韩高清中文字幕一区| 狠狠色狠狠色综合系列| 91网站在线播放| 日韩一级欧美一级| 国产精品入口麻豆原神| 亚洲成人资源在线| 国产98色在线|日韩| 欧美亚州韩日在线看免费版国语版| 欧美一区二区在线视频| 国产精品久久久久久久久免费樱桃 | 亚洲三级在线播放| 日韩av一区二| 99久免费精品视频在线观看| 日韩一二在线观看| 亚洲欧美日韩久久| 国产精品系列在线播放| 欧美日韩在线播放三区四区| 国产色产综合色产在线视频| 日韩精品一级二级| 91丝袜美女网| 日本一区二区免费在线| 日本最新不卡在线| 欧美三级在线看| 国产精品美女久久久久久久| 日本女人一区二区三区| 99在线精品一区二区三区| 精品久久五月天| 婷婷久久综合九色国产成人| 99精品国产视频| 国产欧美日韩在线| 久久黄色级2电影| 91麻豆精品91久久久久久清纯 | 3d成人h动漫网站入口| 国产精品丝袜久久久久久app| 日韩制服丝袜av| 欧美午夜在线观看| 亚洲激情图片qvod| 91麻豆高清视频| 亚洲欧美综合网| 国产 欧美在线| 久久免费看少妇高潮| 久久er精品视频| 日韩一区二区三免费高清| 亚洲一区二区精品久久av| 成人h动漫精品| 亚洲国产高清aⅴ视频| 国产一区视频在线看| 精品日产卡一卡二卡麻豆| 精品一区二区三区的国产在线播放| 91精品国产91久久久久久一区二区| 亚洲一区二区三区视频在线播放| 一本色道久久综合狠狠躁的推荐 | 国产综合色产在线精品| 精品少妇一区二区三区视频免付费 | 色综合久久综合网欧美综合网| 国产精品嫩草99a| 9i在线看片成人免费| 亚洲免费三区一区二区| 欧美性色黄大片| 视频在线观看一区| 欧美精品一区视频| 成人精品电影在线观看| 亚洲另类在线视频| 69成人精品免费视频| 韩国成人在线视频| 国产精品高潮呻吟| 欧美日韩精品一区二区三区四区| 日韩电影在线观看一区| 久久久精品2019中文字幕之3| 福利电影一区二区三区| 亚洲婷婷综合久久一本伊一区| 91久久奴性调教| 青椒成人免费视频| 久久精品免费在线观看| 波多野结衣亚洲| 亚洲第一福利一区| 精品国产一二三区| 91麻豆国产福利精品| 日韩激情av在线| 国产精品美女久久福利网站| 欧美羞羞免费网站| 国产真实乱偷精品视频免| 日韩理论片中文av| 欧美xxxxx牲另类人与| 成人av在线资源网| 日韩精品福利网| 日本一区二区动态图| 欧美精品成人一区二区三区四区| 久久99精品久久久久婷婷| 18欧美乱大交hd1984| 欧美成人aa大片| 色8久久精品久久久久久蜜| 麻豆一区二区三| 亚洲老妇xxxxxx| 久久久久国产精品麻豆ai换脸| 色综合久久66| 国产成人在线色| 视频一区二区三区在线| 国产精品乱人伦中文| 日韩欧美中文字幕公布| 欧洲精品一区二区三区在线观看| 国产一区二区三区香蕉| 日韩精品一区第一页| 亚洲免费看黄网站| 中文在线一区二区| 精品国产91乱码一区二区三区 | 久久se这里有精品| 日韩激情一区二区| 亚洲成在人线在线播放| 亚洲特黄一级片| 中文字幕欧美区| 久久久久久久久免费| 欧美一二区视频| 91精品国产全国免费观看| 欧美日韩情趣电影| 欧洲av在线精品| 色狠狠av一区二区三区| 91亚洲午夜精品久久久久久| 成人午夜短视频| 成人污污视频在线观看| 成人美女视频在线观看18| 国产激情一区二区三区| 国产91综合网| 成人高清视频免费观看| 99视频有精品| 色成人在线视频| 欧美网站大全在线观看| 欧美性猛交xxxx乱大交退制版 | 91精品黄色片免费大全| 欧美亚洲禁片免费| 欧美日韩不卡一区二区| 欧美日韩国产综合草草| 一区二区三区在线免费播放| 亚洲人成精品久久久久久| 亚洲欧美日本在线| 亚洲成a人片在线不卡一二三区 | 成人黄色在线看| 日本道免费精品一区二区三区| 丁香天五香天堂综合| av网站免费线看精品| 91国产福利在线| 国产精品88av| 91视频在线观看免费| 欧美日韩中字一区| 日韩欧美专区在线| 日本一区二区高清| 亚洲不卡av一区二区三区| 美女性感视频久久| 成人午夜在线播放| 久久激情综合网| 成人国产一区二区三区精品| 日韩激情在线观看| 自拍偷拍亚洲综合| 亚洲欧美影音先锋| 国产清纯白嫩初高生在线观看91 | 亚洲色欲色欲www在线观看| 欧美国产日韩一二三区| 亚洲人成精品久久久久| 亚洲国产精品视频| 蜜臀av性久久久久蜜臀aⅴ四虎| 国产成人8x视频一区二区| 在线日韩一区二区| 2021中文字幕一区亚洲| 亚洲人精品一区| 精品在线播放免费| 91传媒视频在线播放| 国产日韩综合av| 日韩精品一二三四| 色欧美片视频在线观看在线视频| 日韩欧美久久久|