⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 array-impl.h

📁 A C++ class library for scientific computing
💻 H
📖 第 1 页 / 共 5 页
字号:
                                        Range r4, Range r5, Range r6,                                        Range r7, Range r8, Range r9);    void                              resize(Range r1, Range r2, Range r3,                                        Range r4, Range r5, Range r6,                                        Range r7, Range r8, Range r9,                                         Range r10);    void                              resize(Range r1, Range r2, Range r3,                                        Range r4, Range r5, Range r6,                                        Range r7, Range r8, Range r9,                                         Range r10, Range r11);    void                              resize(const TinyVector<int,N_rank>&);     void                              resizeAndPreserve(const TinyVector<int,                                                                   N_rank>&);    void                              resizeAndPreserve(int extent);    void                              resizeAndPreserve(int extent1,                                         int extent2);    void                              resizeAndPreserve(int extent1,                                         int extent2, int extent3);    void                              resizeAndPreserve(int extent1,                                        int extent2, int extent3, int extent4);    void                              resizeAndPreserve(int extent1,                                        int extent2, int extent3, int extent4,                                        int extent5);    void                              resizeAndPreserve(int extent1,                                        int extent2, int extent3, int extent4,                                        int extent5, int extent6);    void                              resizeAndPreserve(int extent1,                                        int extent2, int extent3, int extent4,                                        int extent5, int extent6, int extent7);    void                              resizeAndPreserve(int extent1,                                        int extent2, int extent3, int extent4,                                        int extent5, int extent6, int extent7,                                        int extent8);    void                              resizeAndPreserve(int extent1,                                        int extent2, int extent3, int extent4,                                        int extent5, int extent6, int extent7,                                        int extent8, int extent9);    void                              resizeAndPreserve(int extent1,                                        int extent2, int extent3, int extent4,                                        int extent5, int extent6, int extent7,                                        int extent8, int extent9,                                         int extent10);    void                              resizeAndPreserve(int extent1,                                        int extent2, int extent3, int extent4,                                        int extent5, int extent6, int extent7,                                        int extent8, int extent9, int extent10,                                        int extent11);    // NEEDS_WORK -- resizeAndPreserve(Range,...)    // NEEDS_WORK -- resizeAndPreserve(const Domain<N_rank>&);    T_array                           reverse(int rank);    void                              reverseSelf(int rank);    int                               rows() const    { return length_[0]; }        void                              setStorage(GeneralArrayStorage<N_rank>);        void                              slice(int rank, Range r);    const TinyVector<int, N_rank>&    shape() const    { return length_; }    int                               size() const    { return numElements(); }    const TinyVector<int, N_rank>&    stride() const    { return stride_; }    int                               stride(int rank) const    { return stride_[rank]; }    int                               ubound(int rank) const    { return base(rank) + length_(rank) - 1; }    TinyVector<int, N_rank>           ubound() const    {         TinyVector<int, N_rank> ub;        for (int i=0; i < N_rank; ++i)          ub(i) = base(i) + extent(i) - 1;        // WAS: ub = base() + extent() - 1;        return ub;    }    int                               zeroOffset() const    { return zeroOffset_; }    //////////////////////////////////////////////    // Debugging routines    //////////////////////////////////////////////    bool isInRangeForDim(int i, int d) const {        return i >= base(d) && (i - base(d)) < length_[d];    }    bool isInRange(int i0) const {        return i0 >= base(0) && (i0 - base(0)) < length_[0];    }    bool isInRange(int i0, int i1) const {        return i0 >= base(0) && (i0 - base(0)) < length_[0]            && i1 >= base(1) && (i1 - base(1)) < length_[1];    }    bool isInRange(int i0, int i1, int i2) const {        return i0 >= base(0) && (i0 - base(0)) < length_[0]            && i1 >= base(1) && (i1 - base(1)) < length_[1]            && i2 >= base(2) && (i2 - base(2)) < length_[2];    }    bool isInRange(int i0, int i1, int i2, int i3) const {        return i0 >= base(0) && (i0 - base(0)) < length_[0]            && i1 >= base(1) && (i1 - base(1)) < length_[1]            && i2 >= base(2) && (i2 - base(2)) < length_[2]            && i3 >= base(3) && (i3 - base(3)) < length_[3];    }    bool isInRange(int i0, int i1, int i2, int i3, int i4) const {        return i0 >= base(0) && (i0 - base(0)) < length_[0]            && i1 >= base(1) && (i1 - base(1)) < length_[1]            && i2 >= base(2) && (i2 - base(2)) < length_[2]            && i3 >= base(3) && (i3 - base(3)) < length_[3]            && i4 >= base(4) && (i4 - base(4)) < length_[4];    }    bool isInRange(int i0, int i1, int i2, int i3, int i4, int i5) const {        return i0 >= base(0) && (i0 - base(0)) < length_[0]            && i1 >= base(1) && (i1 - base(1)) < length_[1]            && i2 >= base(2) && (i2 - base(2)) < length_[2]            && i3 >= base(3) && (i3 - base(3)) < length_[3]            && i4 >= base(4) && (i4 - base(4)) < length_[4]            && i5 >= base(5) && (i5 - base(5)) < length_[5];    }    bool isInRange(int i0, int i1, int i2, int i3, int i4, int i5, int i6) const {        return i0 >= base(0) && (i0 - base(0)) < length_[0]            && i1 >= base(1) && (i1 - base(1)) < length_[1]            && i2 >= base(2) && (i2 - base(2)) < length_[2]            && i3 >= base(3) && (i3 - base(3)) < length_[3]            && i4 >= base(4) && (i4 - base(4)) < length_[4]            && i5 >= base(5) && (i5 - base(5)) < length_[5]            && i6 >= base(6) && (i6 - base(6)) < length_[6];    }    bool isInRange(int i0, int i1, int i2, int i3, int i4,        int i5, int i6, int i7) const {        return i0 >= base(0) && (i0 - base(0)) < length_[0]            && i1 >= base(1) && (i1 - base(1)) < length_[1]            && i2 >= base(2) && (i2 - base(2)) < length_[2]            && i3 >= base(3) && (i3 - base(3)) < length_[3]            && i4 >= base(4) && (i4 - base(4)) < length_[4]            && i5 >= base(5) && (i5 - base(5)) < length_[5]            && i6 >= base(6) && (i6 - base(6)) < length_[6]            && i7 >= base(7) && (i7 - base(7)) < length_[7];    }    bool isInRange(int i0, int i1, int i2, int i3, int i4,        int i5, int i6, int i7, int i8) const {        return i0 >= base(0) && (i0 - base(0)) < length_[0]            && i1 >= base(1) && (i1 - base(1)) < length_[1]            && i2 >= base(2) && (i2 - base(2)) < length_[2]            && i3 >= base(3) && (i3 - base(3)) < length_[3]            && i4 >= base(4) && (i4 - base(4)) < length_[4]            && i5 >= base(5) && (i5 - base(5)) < length_[5]            && i6 >= base(6) && (i6 - base(6)) < length_[6]            && i7 >= base(7) && (i7 - base(7)) < length_[7]            && i8 >= base(8) && (i8 - base(8)) < length_[8];    }    bool isInRange(int i0, int i1, int i2, int i3, int i4,        int i5, int i6, int i7, int i8, int i9) const {        return i0 >= base(0) && (i0 - base(0)) < length_[0]            && i1 >= base(1) && (i1 - base(1)) < length_[1]            && i2 >= base(2) && (i2 - base(2)) < length_[2]            && i3 >= base(3) && (i3 - base(3)) < length_[3]            && i4 >= base(4) && (i4 - base(4)) < length_[4]            && i5 >= base(5) && (i5 - base(5)) < length_[5]            && i6 >= base(6) && (i6 - base(6)) < length_[6]            && i7 >= base(7) && (i7 - base(7)) < length_[7]            && i8 >= base(8) && (i8 - base(8)) < length_[8]            && i9 >= base(9) && (i9 - base(9)) < length_[9];    }    bool isInRange(int i0, int i1, int i2, int i3, int i4,        int i5, int i6, int i7, int i8, int i9, int i10) const {        return i0 >= base(0) && (i0 - base(0)) < length_[0]            && i1 >= base(1) && (i1 - base(1)) < length_[1]            && i2 >= base(2) && (i2 - base(2)) < length_[2]            && i3 >= base(3) && (i3 - base(3)) < length_[3]            && i4 >= base(4) && (i4 - base(4)) < length_[4]            && i5 >= base(5) && (i5 - base(5)) < length_[5]            && i6 >= base(6) && (i6 - base(6)) < length_[6]            && i7 >= base(7) && (i7 - base(7)) < length_[7]            && i8 >= base(8) && (i8 - base(8)) < length_[8]            && i9 >= base(9) && (i9 - base(9)) < length_[9]            && i10 >= base(10) && (i10 - base(10)) < length_[10];    }    bool isInRange(const T_index& index) const {        for (int i=0; i < N_rank; ++i)            if (index[i] < base(i) || (index[i] - base(i)) >= length_[i])                return false;        return true;    }    bool assertInRange(const T_index& BZ_DEBUG_PARAM(index)) const {        BZPRECHECK(isInRange(index), "Array index out of range: " << index            << endl << "Lower bounds: " << storage_.base() << endl            <<         "Length:       " << length_ << endl);        return true;    }    bool assertInRange(int BZ_DEBUG_PARAM(i0)) const {        BZPRECHECK(isInRange(i0), "Array index out of range: " << i0            << endl << "Lower bounds: " << storage_.base() << endl            <<         "Length:       " << length_ << endl);        return true;    }    bool assertInRange(int BZ_DEBUG_PARAM(i0), int BZ_DEBUG_PARAM(i1)) const {        BZPRECHECK(isInRange(i0,i1), "Array index out of range: ("             << i0 << ", " << i1 << ")"            << endl << "Lower bounds: " << storage_.base() << endl            <<         "Length:       " << length_ << endl);        return true;    }    bool assertInRange(int BZ_DEBUG_PARAM(i0), int BZ_DEBUG_PARAM(i1),        int BZ_DEBUG_PARAM(i2)) const    {        BZPRECHECK(isInRange(i0,i1,i2), "Array index out of range: ("            << i0 << ", " << i1 << ", " << i2 << ")"            << endl << "Lower bounds: " << storage_.base() << endl            <<         "Length:       " << length_ << endl);        return true;    }    bool assertInRange(int BZ_DEBUG_PARAM(i0), int BZ_DEBUG_PARAM(i1),        int BZ_DEBUG_PARAM(i2), int BZ_DEBUG_PARAM(i3)) const    {        BZPRECHECK(isInRange(i0,i1,i2,i3), "Array index out of range: ("            << i0 << ", " << i1 << ", " << i2 << ", " << i3 << ")"            << endl << "Lower bounds: " << storage_.base() << endl            <<         "Length:       " << length_ << endl);        return true;    }    bool assertInRange(int BZ_DEBUG_PARAM(i0), int BZ_DEBUG_PARAM(i1),        int BZ_DEBUG_PARAM(i2), int BZ_DEBUG_PARAM(i3),        int BZ_DEBUG_PARAM(i4)) const    {        BZPRECHECK(isInRange(i0,i1,i2,i3,i4), "Array index out of range: ("            << i0 << ", " << i1 << ", " << i2 << ", " << i3             << ", " << i4 << ")"            << endl << "Lower bounds: " << storage_.base() << endl            <<         "Length:       " << length_ << endl);        return true;    }    bool assertInRange(int BZ_DEBUG_PARAM(i0), int BZ_DEBUG_PARAM(i1),        int BZ_DEBUG_PARAM(i2), int BZ_DEBUG_PARAM(i3), int BZ_DEBUG_PARAM(i4),        int BZ_DEBUG_PARAM(i5)) const    {        BZPRECHECK(isInRange(i0,i1,i2,i3,i4,i5), "Array index out of range: ("            << i0 << ", " << i1 << ", " << i2 << ", " << i3            << ", " << i4 << ", " << i5 << ")"            << endl << "Lower bounds: " << storage_.base() << endl            <<         "Length:       " << length_ << endl);        return true;    }    bool assertInRange(int BZ_DEBUG_PARAM(i0), int BZ_DEBUG_PARAM(i1),        int BZ_DEBUG_PARAM(i2), int BZ_DEBUG_PARAM(i3), int BZ_DEBUG_PARAM(i4),        int BZ_DEBUG_PARAM(i5), int BZ_DEBUG_PARAM(i6)) const    {        BZPRECHECK(isInRange(i0,i1,i2,i3,i4,i5,i6),             "Array index out of range: ("            << i0 << ", " << i1 << ", " << i2 << ", " << i3            << ", " << i4 << ", " << i5 << ", " << i6 << ")"            << endl << "Lower bounds: " << storage_.base() << endl            <<         "Length:       " << length_ << endl);        return true;    }    bool assertInRange(int BZ_DEBUG_PARAM(i0), int BZ_DEBUG_PARAM(i1),        int BZ_DEBUG_PARAM(i2), int BZ_DEBUG_PARAM(i3), int BZ_DEBUG_PARAM(i4),        int BZ_DEBUG_PARAM(i5), int BZ_DEBUG_PARAM(i6),        int BZ_DEBUG_PARAM(i7)) const    {        BZPRECHECK(isInRange(i0,i1,i2,i3,i4,i5,i6,i7),            "Array index out of range: ("            << i0 << ", " << i1 << ", " << i2 << ", " << i3            << ", " << i4 << ", " << i5 << ", " << i6 << ", " << i7 << ")"            << endl << "Lower bounds: " << storage_.base() << endl            <<         "Length:       " << length_ << endl);        return true;    }    bool assertInRange(int BZ_DEBUG_PARAM(i0), int BZ_DEBUG_PARAM(i1),        int BZ_DEBUG_PARAM(i2), int BZ_DEBUG_PARAM(i3), int BZ_DEBUG_PARAM(i4),        int BZ_DEBUG_PARAM(i5), int BZ_DEBUG_PARAM(i6), int BZ_DEBUG_PARAM(i7),        int BZ_DEBUG_PARAM(i8)) const    {        BZPRECHECK(isInRange(i0,i1,i2,i3,i4,i5,i6,i7,i8),            "Array index out of range: ("            << i0 << ", " << i1 << ", " << i2 << ", " << i3            << ", " << i4 << ", " << i5 << ", " << i6 << ", " << i7             << ", " << i8 << ")"            << endl << "Lower bounds: " << storage_.base() << endl            <<         "Length:       " << length_ << endl);        return true;    }    bool assertInRange(int BZ_DEBUG_PARAM(i0), int BZ_DEBUG_PARAM(i1),        int BZ_DEBUG_PARAM(i2), int BZ_DEBUG_PARAM(i3), int BZ_DEBUG_PARAM(i4),        int BZ_DEBUG_PARAM(i5), int BZ_DEBUG_PARAM(i6), int BZ_DEBUG_PARAM(i7),        int BZ_DEBUG_PARAM(i8), int BZ_DEBUG_PARAM(i9)) const    {        BZPRECHECK(isInRange(i0,i1,i2,i3,i4,i5,i6,i7,i8,i9),            "Array index out of range: ("            << i0 << ", " << i1 << ", " << i2 << ", " << i3            << ", " << i4 << ", " << i5 << ", " << i6 << ", " << i7            << ", " << i8 << ", " << i9 << ")"            << endl << "Lower bounds: " << storage_.base() << endl            <<         "Length:       " << length_ << endl);        return true;    }    bool assertInRange(int BZ_DEBUG_PARAM(i0), int BZ_DEBUG_PARAM(i1),        int BZ_DEBUG_PARAM(i2), int BZ_DEBUG_PARAM(i3), int BZ_DEBUG_PARAM(i4),        int BZ_DEBUG_PARAM(i5), int BZ_DEBUG_PARAM(i6), int BZ_DEBUG_PARAM(i7),        int BZ_DEBUG_PARAM(i8), int BZ_DEBUG_PARAM(i9),        int BZ_DEBUG_PARAM(i10)) const    {        BZPRECHECK(isInRange(i0,i1,i2,i3,i4,i5,i6,i7,i8,i9,i10),            "Array index out of range: ("            << i0 << ", " << i1 << ", " << i2 << ", " << i3            << ", " << i4 << ", " << i5 << ", " << i6 << ", " << i7            << ", " << i8 << ", " << i9 << ", " << i10 << ")"            << endl << "Lower bounds: " << storage_.base() << endl            <<         "Length:       " << length_ << endl);        return true;    }    //////////////////////////////////////////////    // Subscripting operators

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -