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

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

?? histogram.h~

?? 統計軟件包
?? H~
字號:

#ifndef _HISTOGRAM_H_
#define _HISTOGRAM_H_

#include <assert.h>

/**
  Support for calculating histograms.

  The histogram class constructor is initialized with the number of
  bins to be used in the histogram.

  Each bin is a histo_bin object which contains information on the
  start and end value of the bin range and the frequency in the bin.
  The frequency is the number of values in the data set which
  are greater than or equal to start and less than end.

  Example:

  Given an array of 20 double values, calculate the histogram.  The
  data does not need to be in sorted order.  The histogram calculation
  will sort it.  A vector of histo_bin objects is allocated by the
  histogram::bin_vec class constructor.  The data, number of elements
  in the data set and the vector of histogram bins is passed to the
  histogram calculate function.  This will initialize each of the
  histogram bins with a start, end and frequency.

<pre>
    const size_t num_bins = 20;
    histogram::bin_vec binz( num_bins );
    histogram histo;

    histo.calculate( data, N, binz );

    for (size_t i = 0; i &lt; num_bins; i++) {
      size_t freq = static_cast<size_t>( binz[i] );
      printf("%7.4f %2d\n", binz.start(i), freq );
    }
</pre>

  Note that binz[i] returns the frequency as a double, which is
  cast to a size_t value.

 */
class histogram
{
private:
  // copy constructor
  histogram( const histogram &rhs );

  class bin_vec;
  void init_bins( bin_vec &bins,
		  const double min,
		  const double max );

  /**
    Get values from a double array.
    */
  class value_pool
  {
  private:
    size_t ix_;
    const double *vec_;
    const size_t N_;

  public:
    value_pool( const double *vec, size_t N ) : vec_( vec ), N_( N )
    {
      ix_ = 0;
    }

    bool get_val( double &val )
    {
      bool rslt = false;
      val = 0.0;
      if (ix_ < N_) {
	rslt = true;
	val = vec_[ ix_ ];
	ix_++;
      }
      return rslt;
    } // get_val

  }; // value_pool

public:
  /**
    A histogram bin

    In a standard histogram a bin always contains a positive integer
    frequency (a.k.a. count of elements).  This histogram bin object
    is designed to be operated on a floating point wavelet
    transform.  So the frequency element is a double.

   */
  class histo_bin
  {
  private:
    /** number of values, v, such that start <= v < end */
    double frequency_;
    /** start of bin value range */
    double start_;
    /** end of bin value range */
    double end_;

  public:
    histo_bin() {}
    ~histo_bin() {}

    double frequency() { return frequency_; }
    void frequency( const double f ) { frequency_ = f; }

    double &freqPtr() { return frequency_; }

    double start() { return start_; }
    void start( const double s ) { start_ = s; }

    double end() { return end_; }
    void end( const double e ) { end_ = e; }

  }; // class histo_bin


  /**
    An array of histogram bins.

    This class overloads the array index operator [].  For an
    instance of bin_vec named binz, binz[i] will return the
    frequency value at index i.

    The class constructor is passed a value for the number of
    bin_vec elements.  It dynamically allocates an internal array.
    
    The class destructor deallocates the internal array.

    The start and end values for a given bin are referenced
    via the start and end functions.

   */
  class bin_vec
  {
  private:
    bin_vec( const bin_vec &rhs );
    const size_t num_bins;
    histo_bin *bins;

  public:
    bin_vec( size_t N ) : num_bins( N )
    {
      bins = new histo_bin[ num_bins ];
    }

    ~bin_vec()
    {
      delete [] bins;
    }

    size_t length() { return num_bins; }

    double start( const size_t i ) 
    { 
      assert( i < num_bins );
      return bins[i].start(); 
    }

    void start( const size_t i, const double val )
    {
      assert( i < num_bins );
      bins[i].start( val );
    }

    double end( const size_t i ) 
    { 
      assert( i < num_bins );
      return bins[i].end(); 
    }

    void end( const size_t i, const double val )
    {
      assert( i < num_bins );
      bins[i].end( val );
    }

    /** LHS [] operator */
    double &operator[]( const size_t i )
    {
      assert( i < num_bins );
      
      return bins[i].freqPtr();
    }

    /** RHS [] operator */
    double operator[]( const size_t i ) const
    {
      assert( i < num_bins );
      return bins[i].frequency();
    }

  }; // class bin_vec

public:
  histogram() {}
  ~histogram() {}

  void calculate( const double *raw_data,
		  const size_t N,
		  bin_vec &binz );
}; // histogram


#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品人人做人人爽97| 国产精品一区二区三区乱码| 宅男噜噜噜66一区二区66| 色婷婷激情一区二区三区| 日韩福利电影在线观看| 2023国产精品| 9i看片成人免费高清| 青青草精品视频| 国产视频一区在线观看| 欧美在线观看一区| 欧美日韩在线三级| 欧美日韩国产经典色站一区二区三区| 国产午夜精品在线观看| 欧美体内she精高潮| 美女尤物国产一区| 久久精品视频网| 99久久精品国产一区二区三区| 中文字幕一区二区三区精华液| 日本电影欧美片| 欧美日韩一区视频| 91精品国产福利| 欧美一二三在线| 91麻豆国产香蕉久久精品| 韩国理伦片一区二区三区在线播放 | 手机精品视频在线观看| 国产精品免费久久久久| 欧美电影免费观看高清完整版在| 日本欧美加勒比视频| 亚洲精品国久久99热| 亚洲成人免费在线观看| 日韩福利视频导航| 国产河南妇女毛片精品久久久| 亚洲午夜一区二区三区| 日韩制服丝袜av| 国产高清视频一区| 97se亚洲国产综合自在线观| 日韩一区二区免费在线观看| 欧美日韩亚洲国产综合| 成人午夜激情视频| 91久久线看在观草草青青| 欧美喷潮久久久xxxxx| 26uuu亚洲综合色| 最近中文字幕一区二区三区| 亚洲妇女屁股眼交7| 亚洲图片你懂的| 日韩av电影免费观看高清完整版在线观看 | 国产精品69毛片高清亚洲| 风间由美性色一区二区三区| 91国产丝袜在线播放| 精品日韩一区二区三区| 亚洲欧美二区三区| 麻豆精品在线播放| 一本到三区不卡视频| 日韩免费在线观看| 日韩精品中午字幕| 中文字幕在线播放不卡一区| 日韩精品久久久久久| 日韩av一级电影| 波多野结衣精品在线| 欧美一级免费大片| 日韩精品在线一区二区| 亚洲欧洲日本在线| 中文字幕日韩欧美一区二区三区| 日韩三级高清在线| 日韩一级黄色大片| 久久久久99精品国产片| 国产亚洲人成网站| 五月天一区二区三区| 日日夜夜免费精品视频| 不卡一区二区在线| 日本伦理一区二区| 久久久久免费观看| 1000部国产精品成人观看| 亚洲国产视频a| 美女视频网站久久| 91丨porny丨中文| 欧美在线你懂的| 中文字幕在线不卡一区二区三区| 欧美变态tickling挠脚心| 国产精品久久久久久久久晋中 | 五月天中文字幕一区二区| 成人一区二区三区视频在线观看| av在线综合网| 欧美在线999| 日韩一级欧美一级| 国产欧美一二三区| 蜜桃av一区二区三区| 高清久久久久久| 久久夜色精品一区| 麻豆精品视频在线观看免费| 欧美日韩视频在线第一区 | 国产精品久久久久一区| 喷水一区二区三区| 91福利在线看| 色婷婷av一区二区三区gif | 麻豆一区二区在线| 欧美一a一片一级一片| 欧美变态tickle挠乳网站| 国产精品一二二区| 亚洲欧洲三级电影| 国产三级欧美三级| 国产精品伦理在线| 日韩女优制服丝袜电影| wwwwww.欧美系列| 热久久一区二区| 成人免费观看av| 中文一区二区在线观看| 亚洲一级二级三级在线免费观看| 天涯成人国产亚洲精品一区av| 美女尤物国产一区| 制服丝袜中文字幕一区| 日韩av电影免费观看高清完整版在线观看 | 欧美激情一区二区三区四区| 一区二区三区在线免费视频| 成人av资源网站| 欧美一区在线视频| 久久精品久久综合| 色国产综合视频| 亚洲综合小说图片| 国产成人亚洲精品青草天美| 久久亚洲影视婷婷| 成人免费视频一区二区| 自拍偷拍亚洲综合| 国产乱对白刺激视频不卡| 久久婷婷成人综合色| 日日骚欧美日韩| 精品国精品自拍自在线| 亚洲一区二区精品久久av| 国产成人亚洲综合a∨婷婷 | 精品捆绑美女sm三区| 美日韩黄色大片| 国产日韩影视精品| 日韩avvvv在线播放| 精品蜜桃在线看| 成人一区二区视频| 亚洲一区二区av在线| 日韩视频免费观看高清在线视频| 一区二区三区高清| 宅男噜噜噜66一区二区66| 国产精品一区二区不卡| 日韩一区二区三区电影在线观看 | 亚洲视频网在线直播| 国产成人亚洲精品青草天美| 国产亚洲综合在线| 91极品美女在线| 蜜臂av日日欢夜夜爽一区| 中文字幕第一页久久| 欧美日韩一卡二卡| 亚洲地区一二三色| 精品福利av导航| 精品在线免费观看| 91精选在线观看| 国产一区二区免费看| 亚洲免费在线播放| 欧美r级在线观看| 蜜桃视频在线一区| 国产视频在线观看一区二区三区| 亚洲综合免费观看高清完整版在线| 日本亚洲电影天堂| 欧美电影一区二区| 成人午夜又粗又硬又大| 天天综合天天综合色| 久久久亚洲精品一区二区三区| 亚洲免费av在线| 26uuu亚洲综合色| 国产精品一区在线观看你懂的| 欧美va亚洲va| 欧美日韩午夜精品| 日韩精品电影一区亚洲| 欧美一区二区三区视频在线观看| 亚洲国产精品高清| 欧美狂野另类xxxxoooo| 成人av在线资源网站| 国产精品久久久久影院亚瑟| 成人h精品动漫一区二区三区| 日韩欧美的一区| 欧美亚洲国产一区在线观看网站 | 成人午夜电影网站| 蜜桃av噜噜一区| 久久久激情视频| 日韩一区二区在线看片| 美女国产一区二区| 亚洲午夜久久久久久久久电影网 | 欧美一区二区人人喊爽| 99国产精品久久| 亚洲一区二区三区不卡国产欧美| 91麻豆精品国产91久久久资源速度 | 欧美高清在线视频| av网站一区二区三区| 国产呦精品一区二区三区网站| 久久久久久久久久看片| 欧美精品一卡二卡| 欧美视频三区在线播放| 麻豆精品久久精品色综合| 亚洲va国产天堂va久久en| 中文字幕综合网| 欧美电影在线免费观看| 欧美视频一区二区三区在线观看| 免费精品视频在线| 中文字幕一区av|