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

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

?? dense2d.h

?? Matrix_Template_Library.rar c++矩陣模塊庫函數
?? H
?? 第 1 頁 / 共 3 頁
字號:
  typedef size_t size_type;  typedef dimension<size_type, MM, NN> dim_type;  typedef dimension<int> band_type;  typedef banded_offset<size_type, MM, NN> transpose_type; /* bogus */  typedef not_strideable strideability;  inline packed_offset()     : dim(0,0), bw(band_type(0,0)) { }  inline packed_offset(size_type m, size_type n, size_type /* lead */,                       band_type bandwidth)    : dim(m,n), bw(bandwidth) { }  inline packed_offset& operator=(const packed_offset& x) {    dim = x.dim; bw = x.bw; return *this;  }  inline int elt(size_type i, size_type j) const {     return this->oned_offset(i) + j;   }  inline int calc_low(int i, int low) const {    int l = MTL_MIN(low, int(i));    int lower_area = low * i;    lower_area -= ( - l*l + 2*low*l + l) / 2;    return lower_area;  }  inline int calc_up(int i, int up) const {    int upper_area = up * i;    int n = i + up - dim.second();    if (n > 0) {      int n1 = MTL_MAX(n - up, 0);      int n2 = n - n1;      upper_area -= n1 * up;      upper_area -= ((n2 + 1) * n2) / 2;    }    return upper_area;  }  inline int oned_offset(size_type i) const { /* the ith major container */    int low = bw.first();    int up = bw.second();    int upper_area, lower_area;    if (up < -1)      upper_area = - calc_low(i, - (up + 1));    else if (up > 0)      upper_area = calc_up(i, up);    else      upper_area = 0;    if (low < -1)      lower_area = - calc_up(i, - (low + 1));    else if (low > 0)      lower_area = calc_low(i, low);    else      lower_area = 0;    size_type diagonal_len;    if (up < 0 || low < 0)      diagonal_len = 0;    else      diagonal_len = MTL_MIN(MTL_MIN(i, dim.first()), dim.second());    size_type ret =  upper_area + lower_area + diagonal_len;    return ret;  }  inline int stride() const { return 1; }  inline size_type oned_length(size_type i) const {    return MTL_MAX(0, MTL_MIN(int(dim.second()), int(i) + bw.second() + 1)               - MTL_MAX(0, int(i) - bw.first()));  }  inline size_type twod_length() const { return dim.first(); }  inline static size_type size(int m, int n, int low, int up) {     packed_offset offset(m, n, n, band_type(low, up));    return offset.oned_offset(m);  }  inline size_type major() const { return dim.first(); }  inline size_type minor() const { return dim.second(); }private:  dim_type dim;  band_type bw; /* bandwidth */};//: blah//!noindex:template <int M, int N>struct gen_packed_offset {#if defined( _MSVCPP_ )  typedef packed_offset<unsigned int, M, N> type;#else  template <class size_type>  struct bind {    typedef packed_offset<size_type, M, N> type;  };#endif  typedef gen_banded_offset<M,N> transpose_type; /* bogus */  typedef gen_banded_view_offset<M,N> banded_view_type; /* bogus */};/* egcs doesn't "see" the friend functions *   when the dense2D_iterator class is defined inside of dense2D *///: blah//!noindex:template <int isConst, class T, class Offset, class InnerOneD, class OneD>class dense2D_iterator {public:  typedef typename Offset::size_type size_type;  typedef std::pair<size_type,size_type> pair_type;  typedef typename IF<isConst, const T*,T*>::RET Iterator;      typedef dense2D_iterator self;  typedef int distance_type;  typedef int difference_type;      typedef std::random_access_iterator_tag iterator_category;  typedef OneD*           pointer;  typedef OneD            value_type;  typedef OneD            reference;  typedef difference_type Distance;  typedef Iterator        iterator_type;    protected:      Iterator start;  size_type pos;  size_type ld;    /* leading dimension */  pair_type starts;  Offset offset;public:      inline size_type index() const { return pos + starts.second; }      inline dense2D_iterator () {}      inline dense2D_iterator(const self& x)    : start(x.start), pos(x.pos),       ld(x.ld), starts(x.starts), offset(x.offset) { }  inline self& operator=(const self& x) {    start = x.start;    pos = x.pos;    ld = x.ld;    starts = x.starts;    offset = x.offset;    return *this;  }  inline explicit  dense2D_iterator(Iterator x, size_type ld_, size_type p, pair_type s,                   Offset os)    : start(x), pos(p), ld(ld_), starts(s), offset(os) { }      inline Iterator base () const { return start + pos; }      inline reference deref(Distance pos, not_strided_tag) const {     return reference((T*)start + offset.oned_offset(pos), 		offset.oned_length(pos), 		starts.first);  }  inline reference deref(Distance pos, strided_tag) const {     InnerOneD vec((T*)start + offset.oned_offset(pos),                   offset.oned_length(pos),                   starts.first);    return strided(vec, offset.stride());  }  inline reference operator*() const {     typedef typename Offset::is_strided Strided;    return deref(pos, Strided());  }  inline reference operator[] (Distance n) const {     typedef typename Offset::is_strided Strided;    return deref(pos + n, Strided());  }  /*  won't work, the OneD is temporary   pointer   operator-> () const { return & (operator* ()); }  */      inline self& operator++ () { ++pos; return *this; }  inline self operator++ (int) { self tmp = *this; ++pos; return tmp; }  inline self& operator-- () { --pos; return *this; }  inline self operator-- (int) { self tmp = *this; --pos; return tmp; }  inline self& operator+=(size_type n) { pos += n; return *this; }  inline self operator+(size_type n) const {    return self(start, ld, pos + n, starts);   }  inline self& operator-=(size_type n) { pos -= n; return *this; }            };template <int isConst, class T, class Offset, class InnerOneD, class OneD>inline typename dense2D_iterator<isConst,T,Offset,InnerOneD,OneD>::difference_typeoperator-(const dense2D_iterator<isConst,T,Offset,InnerOneD,OneD>& x,          const dense2D_iterator<isConst,T,Offset,InnerOneD,OneD>& y){  return x.index() - y.index(); }    template <int isConst,class T, class Offset, class InnerOneD, class OneD>inline booloperator== (const dense2D_iterator<isConst,T,Offset,InnerOneD,OneD>& x,            const dense2D_iterator<isConst,T,Offset,InnerOneD,OneD>& y){  return x.index() == y.index();}    template <int isConst, class T, class Offset, class InnerOneD, class OneD>inline booloperator!= (const dense2D_iterator<isConst, T,Offset,InnerOneD,OneD>& x,            const dense2D_iterator<isConst, T,Offset,InnerOneD,OneD>& y){  return x.index() != y.index();}    template <int isConst,class T, class Offset, class InnerOneD, class OneD>inline booloperator< (const dense2D_iterator<isConst,T,Offset,InnerOneD,OneD>& x,           const dense2D_iterator<isConst,T,Offset,InnerOneD,OneD>& y){  return x.index() < y.index(); }/*  Workaround (g++ 2.91) helper class */template <class Strided>struct __bracket { };template <>struct __bracket<strided_tag> {   template <class OneD, class InnerOneD, class elt_type, class size_type>  inline OneD  operator()(elt_type* d, size_type len, size_type f, size_type ld,             const OneD*, const InnerOneD*) {    InnerOneD vec(d , len, f);    return OneD(vec, ld);  }};  template <>struct __bracket<not_strided_tag> {   template <class OneD, class InnerOneD, class elt_type, class size_type>  inline OneD  operator()(elt_type* d, size_type len, size_type f, size_type,             const OneD*, const InnerOneD*) {    return OneD(d, len, f);  }};template<class T, class OffsetGen, int MM, int NN>class dense2D;template <class T, class OffsetGen, int MM, int NN>class external2D;//: Generic Dense 2-D Container//!category: containers//!component: type//// The generic_dense2D container implements sevaral of the MTL storage// types.  They include dense, packed, banded, and banded_view.  The// common theme here is that the matrix is stored in a contiguous// piece of memory.  The differences in these storage types has to do// with where to find the OneD segements in the linear// memory. Caclulating these offsets is the job of the Offset concept,// which has a model to handle each of the different storage types:// rect_offset, strided_offset, banded_offset, packed_offset, and// banded_view_offset.//// There are two derived classes of generic_dense2D that specify the// memory management, dense2D and external2D. The dense2D version owns// its memory, while the external2D imports its memory from somewhere// else through a pointer (which allows for interoperability with// other codes -- even with Fortran!).  <p>////!definition: dense2D.h//!tparam: RepType - The Container used to store the elements//!tparam: RepPtr - The type used to reference to the container//!tparam: OffsetGen - The generator that creates the Offset class//!tparam: MM - For static sized matrix, the major dimension//!tparam: NN - For static sized matrix, the minor dimension//!models: TwoDStoragetemplate <class RepType, class RepPtr, class OffsetGen, int MM, int NN>class generic_dense2D {public:  //: Static sizes (0 if dynamic)  enum { M = MM, N = NN };  //: The type for dimensions and indices  typedef typename RepType::size_type size_type;  //: The type for differences between iterators  typedef typename RepType::difference_type difference_type;protected:  typedef std::pair<size_type,size_type> pair_type;  typedef RepType reptype;  typedef RepPtr rep_ptr;  typedef typename RepType::value_type elt_type;#if defined(_MSVCPP_)  //JGS Nasty VC++ workaround  typedef typename OffsetGen::type Offset;#else  typedef typename OffsetGen:: MTL_TEMPLATE bind<size_type>::type Offset;#endif  typedef dimension<elt_type> dyn_dim;public:  //: A pair type for dimensions  typedef typename Offset::dim_type dim_type;  //: A pair type for bandwidth  typedef typename Offset::band_type band_type;  /* Type Definitions */    //: This is a dense matrix  typedef dense_tag sparsity;  typedef typename Offset::is_strided is_strided;protected:  typedef external_vec<elt_type, N> InnerOneD;#if defined(_MSVCPP_)  enum { offset_strided = Offset::IS_STRIDED };  typedef typename IF<offset_strided, strided1D<InnerOneD>, InnerOneD>::RET OneD;#else  typedef typename Offset:: MTL_TEMPLATE bind_oned<InnerOneD>::type OneD;#endif  typedef OneD OneDRef;  typedef OneD ConstOneDRef;public:  //: The 1D container type  typedef OneD value_type;  //: The type for a reference to value_type  typedef value_type reference;  //: The type for a const reference to value_type  typedef value_type const_reference;  //: The iterator type  typedef dense2D_iterator<0,elt_type, Offset, InnerOneD, OneD> iterator;  //: The const iterator type  typedef dense2D_iterator<1,elt_type, Offset, InnerOneD, OneD> const_iterator;  //: The reverse iterator type  typedef reverse_iter<iterator> reverse_iterator;  //: The const reverse iterator type  typedef reverse_iter<const_iterator> const_reverse_iterator;  //: The type for the transpose of this container  typedef generic_dense2D<RepType, RepPtr,             typename OffsetGen::transpose_type, MM, NN> transpose_type;  //: The type for a banded view of this container  typedef generic_dense2D<RepType, RepPtr,             typename OffsetGen::banded_view_type, MM, NN> banded_view_type;  //: The type for a sub-section of this 2D container  typedef external2D<elt_type, OffsetGen, MM, NN> submatrix_type;#ifndef MTL_DISABLE_BLOCKING  template <class Block>  struct blocked_view {    typedef block2D<Block, OffsetGen> type;  };#endif  //: This is a stridable container, can use rows(A), columns(A)  typedef typename Offset::strideability strideability;  /* Constructors */    //: Default Constructor  inline generic_dense2D()    : ld_(0), data_(0), starts(std::make_pair(0,0)) { }  //: Normal Constructor  inline generic_dense2D(rep_ptr data, size_type m, size_type n, size_type ld)    : ld_(ld), data_(data),      starts(std::make_pair(0,0)), offset(m, n, ld) { }  //: Constructor with non-zero upper-left corner indices  inline generic_dense2D(rep_ptr data, size_type m, size_type n, 			 size_type ld, dyn_dim s, char)    : ld_(ld), data_(data),      starts(std::make_pair(s.first(),s.second())), offset(m, n, ld) { }  //: Static M, N constructor  inline generic_dense2D(rep_ptr data, size_type ld)    : ld_(ld), data_(data),      starts(std::make_pair(0,0)), offset(M, N, ld) { }  //: with bandwidth constructor  inline generic_dense2D(rep_ptr data, size_type m, size_type n, size_type ld,                         band_type bw)    : ld_(ld), data_(data), starts(std::make_pair(0,0)),      offset(m, n, ld, bw) { }  //: Static M, N with bandwith?  //: Copy Constructor  inline generic_dense2D(const generic_dense2D& x)    : ld_(x.ld_), data_(x.data_), starts(x.starts),      offset(x.offset) { }  //: Assignment Operator  inline generic_dense2D& operator=(const generic_dense2D& x) {    ld_ = x.ld_; data_ = x.data_; starts = x.starts; offset = x.offset;    return *this;  }  //: Subclass Constructor  inline generic_dense2D(rep_ptr d, const generic_dense2D& x)    : ld_(x.ld_), data_(d), starts(x.starts), offset(x.offset) { }  //: Transpose Constructor  inline generic_dense2D(const transpose_type& x, do_transpose, do_transpose)    : ld_(x.ld_), data_(x.data_), starts(x.starts), offset(x.offset) { }        /* JGS, remove stream constructor, not very necessary     just have them call another constructor    */  //: Matrix Stream Constructor  template <class MatrixStream, class Orien>  inline generic_dense2D(rep_ptr data, MatrixStream& s, Orien)    : ld_(Orien::map(dim_type(s.nrows(),s.ncols())).second()),      data_(data),      starts(std::make_pair(0,0)),      offset(Orien::map(dim_type(s.nrows(),s.ncols())).first(),              Orien::map(dim_type(s.nrows(),s.ncols())).second(),             Orien::map(dim_type(s.nrows(),s.ncols())).second()) { }  //: Banded Matrix Stream Constructor  template <class MatrixStream, class Orien>  inline generic_dense2D(rep_ptr data, MatrixStream& s,                          Orien, band_type bw)    : ld_(Orien::map(dim_type(s.nrows(),s.ncols())).second()),      data_(data),       starts(std::make_pair(0,0)),      offset(Orien::map(dim_type(s.nrows(),s.ncols())).first(),              Orien::map(dim_type(s.nrows(),s.ncols())).second(),             Orien::map(dim_type(s.nrows(),s.ncols())).second(),             bw) { }  //: Banded View Constructor  template <class TwoD>  inline generic_dense2D(rep_ptr data, const TwoD& x, band_type bw, banded_tag)    : ld_(x.ld_),      data_(data),      starts(x.starts),      offset(x.offset, bw) { }// VC++ doesn't like this  //friend class transpose_type;  //: The destructor.  inline ~generic_dense2D() { }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩国产首页| 一区二区三区欧美| 亚洲sss视频在线视频| av在线一区二区三区| 制服.丝袜.亚洲.中文.综合| 国产精品私人自拍| 亚洲第一综合色| 欧洲精品视频在线观看| 日韩毛片精品高清免费| 成人深夜视频在线观看| 久久久久久久国产精品影院| 久久国产精品第一页| 欧美精品久久天天躁| 日韩专区中文字幕一区二区| 欧美高清激情brazzers| 视频一区二区三区中文字幕| 69堂精品视频| 日韩不卡一二三区| 日韩精品一区二区三区视频播放| 美女mm1313爽爽久久久蜜臀| 91精品国产欧美日韩| 奇米综合一区二区三区精品视频 | 欧美日韩一区二区在线观看| 一区二区三区四区中文字幕| 色狠狠av一区二区三区| 欧美aaaaaa午夜精品| 国产精品国产三级国产aⅴ无密码| 成人精品视频一区| 亚洲国产精品视频| 精品国内片67194| 色吧成人激情小说| 美国毛片一区二区| 亚洲欧洲无码一区二区三区| 欧美乱熟臀69xxxxxx| 成人免费毛片高清视频| 日韩精品欧美精品| 日韩女优毛片在线| 欧美日韩你懂得| 91视视频在线观看入口直接观看www| 亚洲午夜精品网| 久久久蜜臀国产一区二区| 色噜噜偷拍精品综合在线| 国产超碰在线一区| 人人狠狠综合久久亚洲| 亚洲午夜一二三区视频| 国产精品久久精品日日| 久久亚洲综合色| 欧美日韩精品综合在线| 91麻豆国产在线观看| 国产·精品毛片| 国产一区二区免费看| 麻豆免费精品视频| 自拍偷拍亚洲欧美日韩| 亚洲国产成人午夜在线一区| 欧美极品另类videosde| 国产日韩欧美麻豆| xvideos.蜜桃一区二区| 精品国产乱码久久久久久久久 | 国产精品资源网站| 老司机免费视频一区二区| 午夜一区二区三区视频| 亚洲一区在线视频| 五月天视频一区| 日韩成人一级片| 国产一区二区三区久久悠悠色av| 丝袜美腿亚洲一区| 黄色小说综合网站| 91免费小视频| 91久久精品午夜一区二区| 欧美二区在线观看| www激情久久| 亚洲欧美在线视频观看| 亚洲图片一区二区| 另类小说视频一区二区| 成人综合婷婷国产精品久久| 国产99精品国产| 日本精品裸体写真集在线观看| 欧美三区在线观看| 久久久久久免费网| 欧美经典三级视频一区二区三区| 午夜精品一区二区三区三上悠亚| 日本欧美在线观看| 国产a精品视频| 欧美久久婷婷综合色| 中文字幕一区二区视频| 视频一区在线播放| 91麻豆精品一区二区三区| 日韩免费成人网| 亚洲国产成人av| 亚洲成人动漫一区| 日韩欧美国产一区二区在线播放 | 国产精品丝袜91| 国产综合色视频| 欧美丝袜丝交足nylons图片| 欧美另类一区二区三区| 成人免费在线视频| 精品系列免费在线观看| 在线视频国内自拍亚洲视频| 欧美亚洲高清一区| 亚洲国产高清在线| 久色婷婷小香蕉久久| 色成人在线视频| 亚洲精品一二三四区| 精品在线一区二区| 欧美绝品在线观看成人午夜影视| 亚洲精品久久久蜜桃| av电影在线观看完整版一区二区| 国产色综合久久| 成人高清免费在线播放| 亚洲日本韩国一区| 色狠狠色噜噜噜综合网| 亚洲国产aⅴ天堂久久| 欧美色图天堂网| 日韩精品国产欧美| 欧美成人a视频| jlzzjlzz亚洲女人18| 国产精品久久久久久户外露出| 91精品91久久久中77777| 曰韩精品一区二区| 欧美一区二区视频在线观看 | 久久国产精品99久久人人澡| 久久精品视频一区| 久久久91精品国产一区二区三区| 粉嫩av一区二区三区粉嫩| 欧美一区二区福利在线| 日韩欧美激情四射| 国产亚洲婷婷免费| 亚洲女人的天堂| 午夜精品影院在线观看| 亚洲国产精品影院| 一区二区三区四区高清精品免费观看| 久久久精品2019中文字幕之3| 欧美成人国产一区二区| 日韩精品一区二区三区在线播放 | 午夜精品久久久久久| 亚洲欧美色图小说| 亚洲欧美乱综合| 中文字幕一区二区三区视频| 欧美国产禁国产网站cc| 国产精品三级在线观看| 1024成人网| 亚洲图片欧美色图| 麻豆久久久久久久| 床上的激情91.| 欧美三级乱人伦电影| 91免费看`日韩一区二区| 色婷婷激情一区二区三区| 8v天堂国产在线一区二区| 精品国产一区二区三区四区四| 久久噜噜亚洲综合| 亚洲日本丝袜连裤袜办公室| 亚洲福利一二三区| 国模一区二区三区白浆| 91天堂素人约啪| 欧美一二三区在线观看| 国产日本一区二区| 亚洲在线观看免费视频| 日本最新不卡在线| 国产精品亚洲成人| 91蝌蚪porny成人天涯| 日韩欧美一二三区| 国产精品麻豆一区二区| 免费成人美女在线观看| 色悠久久久久综合欧美99| 2023国产精华国产精品| 偷窥少妇高潮呻吟av久久免费| 国产成人在线看| 欧美一区二区三区啪啪| 亚洲欧美日韩一区二区 | 国产不卡视频一区二区三区| 91精品免费在线| 一个色在线综合| 不卡的电视剧免费网站有什么| 欧美刺激脚交jootjob| 亚洲成人动漫在线观看| 国内偷窥港台综合视频在线播放| 成人av电影在线| 日韩欧美国产三级电影视频| 夜夜嗨av一区二区三区网页| 国产成人精品三级| 精品国产免费一区二区三区四区 | 亚洲高清在线精品| 色婷婷av一区| 国产精品高清亚洲| 从欧美一区二区三区| 中文字幕免费在线观看视频一区| 麻豆精品一区二区av白丝在线| 欧美日韩www| 日韩精品高清不卡| 在线不卡的av| 美女www一区二区| 精品免费国产二区三区| 国产尤物一区二区| 国产色产综合产在线视频| 国产成人精品影视| 国产精品麻豆欧美日韩ww| caoporen国产精品视频| 亚洲女同女同女同女同女同69| 色天使色偷偷av一区二区| 亚洲一卡二卡三卡四卡五卡|