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

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

?? storage.h

?? A C++ class library for scientific computing
?? H
字號(hào):
/*************************************************************************** * blitz/array/storage.h  Memory layout of Arrays. * * Copyright (C) 1997-2001 Todd Veldhuizen <tveldhui@oonumerics.org> * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * Suggestions:          blitz-dev@oonumerics.org * Bugs:                 blitz-bugs@oonumerics.org * * For more information, please see the Blitz++ Home Page: *    http://oonumerics.org/blitz/ * ****************************************************************************/#ifndef BZ_ARRAY_STORAGE_H#define BZ_ARRAY_STORAGE_HBZ_NAMESPACE(blitz)/* * Declaration of class GeneralStorage<N_rank> * * This class describes a storage format for an N-dimensional array. * The dimensions can be stored in an arbitrary order (for example, as * a C-style row major array or Fortran-style column major array, or * something else entirely).  Each dimension can be stored in either * ascending (the most common) or descending order.  Each dimension * can have its own base (starting index value: e.g. 0 for C-style arrays,  * 1 for Fortran arrays). * * GeneralArrayStorage<N> defaults to C-style arrays.  To implement * other storage formats, subclass and modify the constructor.  The * class FortranArray, below, is an example. * * Objects inheriting from GeneralArrayStorage<N> can be passed as * an optional constructor argument to Array objects. * e.g. Array<int,3> A(16,16,16, FortranArray<3>()); * will create a 3-dimensional 16x16x16 Fortran-style array. */template<int N_rank>class GeneralArrayStorage {public:    class noInitializeFlag { };    GeneralArrayStorage(noInitializeFlag)    { }    GeneralArrayStorage()    {        for (int i=0; i < N_rank; ++i)          ordering_(i) = N_rank - 1 - i;        ascendingFlag_ = true;        base_ = 0;    }    GeneralArrayStorage(const GeneralArrayStorage<N_rank>& x)        : ordering_(x.ordering_), ascendingFlag_(x.ascendingFlag_),          base_(x.base_)    {     }    GeneralArrayStorage(TinyVector<int,N_rank> ordering,        TinyVector<bool,N_rank> ascendingFlag)      : ordering_(ordering), ascendingFlag_(ascendingFlag)    {        base_ = 0;    }    ~GeneralArrayStorage()    { }    GeneralArrayStorage<N_rank>& operator=(        const GeneralArrayStorage<N_rank>& rhs)    {        ordering_ = rhs.ordering();        ascendingFlag_ = rhs.ascendingFlag();        base_ = rhs.base();        return *this;    }    TinyVector<int, N_rank>& ordering()    { return ordering_; }    const TinyVector<int, N_rank>& ordering() const    { return ordering_; }    int ordering(int i) const    { return ordering_[i]; }    void setOrdering(int i, int order)     { ordering_[i] = order; }    bool allRanksStoredAscending() const    {        bool result = true;        for (int i=0; i < N_rank; ++i)            result &= ascendingFlag_[i];        return result;    }    bool isRankStoredAscending(int i) const    { return ascendingFlag_[i]; }    TinyVector<bool, N_rank>& ascendingFlag()     { return ascendingFlag_; }    const TinyVector<bool, N_rank>& ascendingFlag() const    { return ascendingFlag_; }    void setAscendingFlag(int i, bool ascendingFlag)     { ascendingFlag_[i] = ascendingFlag; }    TinyVector<int, N_rank>& base()    { return base_; }    const TinyVector<int, N_rank>& base() const    { return base_; }    int base(int i) const    { return base_[i]; }    void setBase(int i, int base)    { base_[i] = base; }    void setBase(const TinyVector<int, N_rank>& base)    { base_ = base; }protected:    /*     * ordering_[] specifies the order in which the array is stored in     * memory.  For a newly allocated array, ordering_(0) will give the     * rank with unit stride, and ordering_(N_rank-1) will be the rank     * with largest stride.  An order like [2, 1, 0] corresponds to     * C-style array storage; an order like [0, 1, 2] corresponds to     * Fortran array storage.     *     * ascendingFlag_[] indicates whether the data in a rank is stored     * in ascending or descending order.  Most of the time these values     * will all be true (indicating ascending order).  Some peculiar      * formats (e.g. MS-Windows BMP image format) store the data in      * descending order.     *       * base_[] gives the first valid index for each rank.  For a C-style     * array, all the base_ elements will be zero; for a Fortran-style     * array, they will be one.  base_[] can be set arbitrarily using     * the Array constructor which takes a Range argument, e.g.     * Array<float,2> A(Range(30,40),Range(23,33));     * will create an array with base_[] = { 30, 23 }.     */    TinyVector<int,  N_rank> ordering_;    TinyVector<bool, N_rank> ascendingFlag_;    TinyVector<int,  N_rank> base_;};/* * Class FortranArray specializes GeneralArrayStorage to provide Fortran * style arrays (column major ordering, base of 1).  The noInitializeFlag() * passed to the base constructor indicates that the subclass will take * care of initializing the ordering_, ascendingFlag_ and base_ members. */template<int N_rank>class FortranArray : public GeneralArrayStorage<N_rank> {private:    typedef GeneralArrayStorage<N_rank> T_base;    typedef _bz_typename T_base::noInitializeFlag noInitializeFlag;    using T_base::ordering_;    using T_base::ascendingFlag_;    using T_base::base_;public:    FortranArray()        : GeneralArrayStorage<N_rank>(noInitializeFlag())    {        for (int i=0; i < N_rank; ++i)          ordering_(i) = i;        ascendingFlag_ = true;        base_ = 1;    }};// This tag class can be used to provide a nicer notation for// constructing Fortran-style arrays: instead of//     Array<int,2> A(3, 3, FortranArray<2>());// one can simply write://     Array<int,2> A(3, 3, fortranArray);// where fortranArray is an object of type _bz_fortranTag.class _bz_fortranTag {public:    operator GeneralArrayStorage<1>()    { return FortranArray<1>(); }    operator GeneralArrayStorage<2>()    { return FortranArray<2>(); }    operator GeneralArrayStorage<3>()    { return FortranArray<3>(); }    operator GeneralArrayStorage<4>()    { return FortranArray<4>(); }    operator GeneralArrayStorage<5>()    { return FortranArray<5>(); }    operator GeneralArrayStorage<6>()    { return FortranArray<6>(); }    operator GeneralArrayStorage<7>()    { return FortranArray<7>(); }    operator GeneralArrayStorage<8>()    { return FortranArray<8>(); }    operator GeneralArrayStorage<9>()    { return FortranArray<9>(); }    operator GeneralArrayStorage<10>()    { return FortranArray<10>(); }    operator GeneralArrayStorage<11>()    { return FortranArray<11>(); }};// A global instance of this class will be placed in// the blitz library (libblitz.a on unix machines)._bz_global _bz_fortranTag fortranArray;/* * Class ColumnMajorArray specializes GeneralArrayStorage to provide column * major arrays (column major ordering, base of 0). */template<int N_rank>class ColumnMajorArray : public GeneralArrayStorage<N_rank> {private:    typedef GeneralArrayStorage<N_rank> T_base;    typedef _bz_typename T_base::noInitializeFlag noInitializeFlag;    using T_base::ordering_;    using T_base::ascendingFlag_;    using T_base::base_;public:    ColumnMajorArray()        : GeneralArrayStorage<N_rank>(noInitializeFlag())    {        ordering_ = Range(0, N_rank - 1);        ascendingFlag_ = true;        base_ = 0;    }};BZ_NAMESPACE_END#endif // BZ_ARRAY_STORAGE_H

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线精品视频一区二区| 日韩欧美亚洲一区二区| 久久 天天综合| 亚洲精品国产一区二区精华液| 精品国产精品一区二区夜夜嗨| 在线观看国产91| 成人性生交大片免费看中文| 日韩一区欧美二区| 亚洲精品第1页| 中文字幕在线观看不卡视频| 欧美大片在线观看| 宅男噜噜噜66一区二区66| 91免费看片在线观看| 国产米奇在线777精品观看| 日韩精品一二三| 一区二区三区在线高清| 一区在线中文字幕| 久久精品亚洲麻豆av一区二区| 欧美一级久久久久久久大片| 91久久精品网| av在线这里只有精品| 国产乱人伦偷精品视频不卡| 久久99精品久久久久久| 男女男精品视频网| 污片在线观看一区二区| 一区二区三区四区中文字幕| 亚洲另类色综合网站| 亚洲欧洲精品天堂一级 | 一二三四社区欧美黄| 国产精品美女久久久久久久网站| xnxx国产精品| 欧美v国产在线一区二区三区| 日韩一级精品视频在线观看| 欧美一区二区三区不卡| 欧美一区二区观看视频| 91精品国产91综合久久蜜臀| 91麻豆精品国产综合久久久久久| 欧美日韩一区二区欧美激情| 欧美日韩一区二区电影| 337p亚洲精品色噜噜狠狠| 7777精品久久久大香线蕉| 一区二区三区高清不卡| 一区二区三区精品视频| 亚洲永久精品大片| 亚洲国产精品一区二区久久| 亚洲在线观看免费| 婷婷丁香久久五月婷婷| 日本欧美在线观看| 国产麻豆午夜三级精品| 国产成人综合视频| eeuss鲁片一区二区三区在线观看| 99视频一区二区| 91久久人澡人人添人人爽欧美| 欧美制服丝袜第一页| 欧美精品v日韩精品v韩国精品v| 日韩欧美在线不卡| 国产亚洲一区字幕| 亚洲激情图片qvod| 男人的天堂久久精品| 国产精品亚洲第一区在线暖暖韩国| 国产寡妇亲子伦一区二区| 菠萝蜜视频在线观看一区| 色偷偷成人一区二区三区91| 欧美猛男超大videosgay| 日韩三级在线免费观看| 欧美激情在线一区二区| 亚洲一区二区高清| 久久精品国产亚洲5555| 成人福利视频在线| 欧美三级蜜桃2在线观看| 欧美精品一区二区三区一线天视频| 中文在线免费一区三区高中清不卡| 亚洲日本丝袜连裤袜办公室| 日本视频免费一区| 成人国产在线观看| 欧美绝品在线观看成人午夜影视| 日韩欧美另类在线| 亚洲男人的天堂在线aⅴ视频| 日韩和欧美的一区| 成人午夜看片网址| 7777精品伊人久久久大香线蕉完整版| 久久综合久色欧美综合狠狠| 亚洲免费观看高清完整版在线观看| 美腿丝袜亚洲色图| 91小宝寻花一区二区三区| 欧美一区二区播放| 国产精品二区一区二区aⅴ污介绍| 五月天精品一区二区三区| 国产99久久久国产精品潘金| 欧美放荡的少妇| 中文字幕亚洲区| 久久成人免费日本黄色| 日本伦理一区二区| 久久亚洲精精品中文字幕早川悠里 | 福利视频网站一区二区三区| 日本道免费精品一区二区三区| 精品国产一区二区三区久久久蜜月| 亚洲视频一区二区在线| 国产在线国偷精品免费看| 欧洲一区二区三区在线| 国产精品视频九色porn| 精品一区二区三区在线播放视频| 99久久久无码国产精品| 日韩欧美一区电影| thepron国产精品| 日韩欧美亚洲一区二区| 亚洲成人激情社区| 色婷婷久久久久swag精品| 久久久天堂av| 精品一区二区免费看| 欧美日韩成人综合| 亚洲综合色视频| 91论坛在线播放| 一区视频在线播放| 成人av资源下载| 欧美国产日韩在线观看| 久久99精品国产麻豆婷婷| 777午夜精品免费视频| 亚洲一区二区高清| 欧美在线综合视频| 亚洲精品日韩专区silk| 91麻豆免费观看| 国产精品福利一区| 99久久精品国产毛片| 国产精品欧美久久久久无广告| 精品一区二区三区在线播放视频 | 亚洲欧洲色图综合| 99久久99久久久精品齐齐| 国产精品视频观看| 成人看片黄a免费看在线| 国产欧美一区二区三区沐欲 | 国产一区二区在线视频| 欧美tickling挠脚心丨vk| 裸体歌舞表演一区二区| 精品国产伦一区二区三区免费| 美女看a上一区| 精品国产三级a在线观看| 久久aⅴ国产欧美74aaa| 日韩美女主播在线视频一区二区三区 | 欧美亚洲禁片免费| 亚洲国产成人高清精品| 欧洲亚洲精品在线| 天天色综合成人网| 欧美一区二区在线播放| 免费人成精品欧美精品| 精品日本一线二线三线不卡| 国产一区二区三区av电影| 国产婷婷精品av在线| 91一区二区三区在线观看| 亚洲美女精品一区| 欧美肥大bbwbbw高潮| 久草精品在线观看| 国产精品国产三级国产专播品爱网| 一道本成人在线| 亚洲18女电影在线观看| 欧美xxxx老人做受| 成人午夜激情视频| 亚洲一卡二卡三卡四卡无卡久久| 欧美日韩aaaaaa| 精品一区二区三区的国产在线播放| 久久久久综合网| jlzzjlzz国产精品久久| 亚洲成人黄色小说| 久久品道一品道久久精品| 成人免费看片app下载| 亚洲一二三专区| 欧美成人高清电影在线| 99久久婷婷国产精品综合| 亚洲成av人综合在线观看| 久久亚洲免费视频| 在线一区二区三区做爰视频网站| 午夜精品久久久久影视| 国产亚洲1区2区3区| 色哟哟精品一区| 久久国产精品72免费观看| 亚洲欧洲日韩综合一区二区| 欧美一区二区三区不卡| 99精品欧美一区二区蜜桃免费| 亚洲第一成年网| 欧美激情一区二区在线| 欧美日韩精品免费| 丰满少妇在线播放bd日韩电影| 亚洲网友自拍偷拍| 乱一区二区av| 一区二区三区免费观看| 久久久99精品免费观看| 欧美精品乱码久久久久久| 成人免费视频一区二区| 日韩av一级电影| 亚洲蜜臀av乱码久久精品| 精品国产凹凸成av人导航| 欧美系列一区二区| 成人一区二区三区在线观看 | 国产91高潮流白浆在线麻豆| 亚洲电影中文字幕在线观看| 国产精品无码永久免费888| 欧美一区二区免费视频| 91黄色激情网站| 成人免费黄色大片| 久久99精品国产麻豆婷婷洗澡|