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

📄 array-impl.h

📁 A C++ class library for scientific computing
💻 H
📖 第 1 页 / 共 5 页
字号:
    //////////////////////////////////////////////    template<int N_rank2>    const T_numtype& restrict operator()(const TinyVector<int,N_rank2>& index) const    {        assertInRange(index);        return data_[dot(index, stride_)];    }    template<int N_rank2>    T_numtype& restrict operator()(const TinyVector<int,N_rank2>& index)     {        assertInRange(index);        return data_[dot(index, stride_)];    }    const T_numtype& restrict operator()(TinyVector<int,1> index) const    {        assertInRange(index[0]);        return data_[index[0] * stride_[0]];    }    T_numtype& operator()(TinyVector<int,1> index)    {        assertInRange(index[0]);        return data_[index[0] * stride_[0]];    }    const T_numtype& restrict operator()(TinyVector<int,2> index) const    {        assertInRange(index[0], index[1]);        return data_[index[0] * stride_[0] + index[1] * stride_[1]];    }    T_numtype& operator()(TinyVector<int,2> index)    {        assertInRange(index[0], index[1]);        return data_[index[0] * stride_[0] + index[1] * stride_[1]];    }    const T_numtype& restrict operator()(TinyVector<int,3> index) const    {        assertInRange(index[0], index[1], index[2]);        return data_[index[0] * stride_[0] + index[1] * stride_[1]            + index[2] * stride_[2]];    }    T_numtype& operator()(TinyVector<int,3> index)    {        assertInRange(index[0], index[1], index[2]);        return data_[index[0] * stride_[0] + index[1] * stride_[1]            + index[2] * stride_[2]];    }    const T_numtype& restrict operator()(const TinyVector<int,4>& index) const    {        assertInRange(index[0], index[1], index[2], index[3]);        return data_[index[0] * stride_[0] + index[1] * stride_[1]            + index[2] * stride_[2] + index[3] * stride_[3]];    }    T_numtype& operator()(const TinyVector<int,4>& index)    {        assertInRange(index[0], index[1], index[2], index[3]);        return data_[index[0] * stride_[0] + index[1] * stride_[1]            + index[2] * stride_[2] + index[3] * stride_[3]];    }    const T_numtype& restrict operator()(const TinyVector<int,5>& index) const    {        assertInRange(index[0], index[1], index[2], index[3],            index[4]);        return data_[index[0] * stride_[0] + index[1] * stride_[1]            + index[2] * stride_[2] + index[3] * stride_[3]            + index[4] * stride_[4]];    }    T_numtype& operator()(const TinyVector<int,5>& index)    {        assertInRange(index[0], index[1], index[2], index[3],            index[4]);        return data_[index[0] * stride_[0] + index[1] * stride_[1]            + index[2] * stride_[2] + index[3] * stride_[3]            + index[4] * stride_[4]];    }    const T_numtype& restrict operator()(const TinyVector<int,6>& index) const    {        assertInRange(index[0], index[1], index[2], index[3],            index[4], index[5]);        return data_[index[0] * stride_[0] + index[1] * stride_[1]            + index[2] * stride_[2] + index[3] * stride_[3]            + index[4] * stride_[4] + index[5] * stride_[5]];    }    T_numtype& operator()(const TinyVector<int,6>& index)    {        assertInRange(index[0], index[1], index[2], index[3],            index[4], index[5]);        return data_[index[0] * stride_[0] + index[1] * stride_[1]            + index[2] * stride_[2] + index[3] * stride_[3]            + index[4] * stride_[4] + index[5] * stride_[5]];    }    const T_numtype& restrict operator()(const TinyVector<int,7>& index) const    {        assertInRange(index[0], index[1], index[2], index[3],            index[4], index[5], index[6]);        return data_[index[0] * stride_[0] + index[1] * stride_[1]            + index[2] * stride_[2] + index[3] * stride_[3]            + index[4] * stride_[4] + index[5] * stride_[5]            + index[6] * stride_[6]];    }    T_numtype& operator()(const TinyVector<int,7>& index)    {        assertInRange(index[0], index[1], index[2], index[3],            index[4], index[5], index[6]);        return data_[index[0] * stride_[0] + index[1] * stride_[1]            + index[2] * stride_[2] + index[3] * stride_[3]            + index[4] * stride_[4] + index[5] * stride_[5]            + index[6] * stride_[6]];    }    const T_numtype& restrict operator()(const TinyVector<int,8>& index) const    {        assertInRange(index[0], index[1], index[2], index[3],            index[4], index[5], index[6], index[7]);        return data_[index[0] * stride_[0] + index[1] * stride_[1]            + index[2] * stride_[2] + index[3] * stride_[3]            + index[4] * stride_[4] + index[5] * stride_[5]            + index[6] * stride_[6] + index[7] * stride_[7]];    }    T_numtype& operator()(const TinyVector<int,8>& index)    {        assertInRange(index[0], index[1], index[2], index[3],            index[4], index[5], index[6], index[7]);        return data_[index[0] * stride_[0] + index[1] * stride_[1]            + index[2] * stride_[2] + index[3] * stride_[3]            + index[4] * stride_[4] + index[5] * stride_[5]            + index[6] * stride_[6] + index[7] * stride_[7]];    }    const T_numtype& restrict operator()(const TinyVector<int,9>& index) const    {        assertInRange(index[0], index[1], index[2], index[3],            index[4], index[5], index[6], index[7], index[8]);        return data_[index[0] * stride_[0] + index[1] * stride_[1]            + index[2] * stride_[2] + index[3] * stride_[3]            + index[4] * stride_[4] + index[5] * stride_[5]            + index[6] * stride_[6] + index[7] * stride_[7]            + index[8] * stride_[8]];    }    T_numtype& operator()(const TinyVector<int,9>& index)    {        assertInRange(index[0], index[1], index[2], index[3],            index[4], index[5], index[6], index[7], index[8]);        return data_[index[0] * stride_[0] + index[1] * stride_[1]            + index[2] * stride_[2] + index[3] * stride_[3]            + index[4] * stride_[4] + index[5] * stride_[5]            + index[6] * stride_[6] + index[7] * stride_[7]            + index[8] * stride_[8]];    }    const T_numtype& restrict operator()(const TinyVector<int,10>& index) const    {        assertInRange(index[0], index[1], index[2], index[3],            index[4], index[5], index[6], index[7], index[8], index[9]);        return data_[index[0] * stride_[0] + index[1] * stride_[1]            + index[2] * stride_[2] + index[3] * stride_[3]            + index[4] * stride_[4] + index[5] * stride_[5]            + index[6] * stride_[6] + index[7] * stride_[7]            + index[8] * stride_[8] + index[9] * stride_[9]];    }    T_numtype& operator()(const TinyVector<int,10>& index)    {        assertInRange(index[0], index[1], index[2], index[3],            index[4], index[5], index[6], index[7], index[8], index[9]);        return data_[index[0] * stride_[0] + index[1] * stride_[1]            + index[2] * stride_[2] + index[3] * stride_[3]            + index[4] * stride_[4] + index[5] * stride_[5]            + index[6] * stride_[6] + index[7] * stride_[7]            + index[8] * stride_[8] + index[9] * stride_[9]];    }    const T_numtype& restrict operator()(const TinyVector<int,11>& index) const    {        assertInRange(index[0], index[1], index[2], index[3],            index[4], index[5], index[6], index[7], index[8], index[9],            index[10]);        return data_[index[0] * stride_[0] + index[1] * stride_[1]            + index[2] * stride_[2] + index[3] * stride_[3]            + index[4] * stride_[4] + index[5] * stride_[5]            + index[6] * stride_[6] + index[7] * stride_[7]            + index[8] * stride_[8] + index[9] * stride_[9]            + index[10] * stride_[10]];    }    T_numtype& operator()(const TinyVector<int,11>& index)    {        assertInRange(index[0], index[1], index[2], index[3],            index[4], index[5], index[6], index[7], index[8], index[9],            index[10]);        return data_[index[0] * stride_[0] + index[1] * stride_[1]            + index[2] * stride_[2] + index[3] * stride_[3]            + index[4] * stride_[4] + index[5] * stride_[5]            + index[6] * stride_[6] + index[7] * stride_[7]            + index[8] * stride_[8] + index[9] * stride_[9]            + index[10] * stride_[10]];    }    const T_numtype& restrict operator()(int i0) const    {         assertInRange(i0);        return data_[i0 * stride_[0]];     }    T_numtype& restrict operator()(int i0)     {        assertInRange(i0);        return data_[i0 * stride_[0]];    }    const T_numtype& restrict operator()(int i0, int i1) const    {         assertInRange(i0, i1);        return data_[i0 * stride_[0] + i1 * stride_[1]];    }    T_numtype& restrict operator()(int i0, int i1)    {        assertInRange(i0, i1);        return data_[i0 * stride_[0] + i1 * stride_[1]];    }    const T_numtype& restrict operator()(int i0, int i1, int i2) const    {        assertInRange(i0, i1, i2);        return data_[i0 * stride_[0] + i1 * stride_[1]            + i2 * stride_[2]];    }    T_numtype& restrict operator()(int i0, int i1, int i2)     {        assertInRange(i0, i1, i2);        return data_[i0 * stride_[0] + i1 * stride_[1]            + i2 * stride_[2]];    }    const T_numtype& restrict operator()(int i0, int i1, int i2, int i3) const    {        assertInRange(i0, i1, i2, i3);        return data_[i0 * stride_[0] + i1 * stride_[1]            + i2 * stride_[2] + i3 * stride_[3]];    }    T_numtype& restrict operator()(int i0, int i1, int i2, int i3)    {        assertInRange(i0, i1, i2, i3);        return data_[i0 * stride_[0] + i1 * stride_[1]            + i2 * stride_[2] + i3 * stride_[3]];    }    const T_numtype& restrict operator()(int i0, int i1, int i2, int i3,        int i4) const    {        assertInRange(i0, i1, i2, i3, i4);        return data_[i0 * stride_[0] + i1 * stride_[1]            + i2 * stride_[2] + i3 * stride_[3] + i4 * stride_[4]];    }    T_numtype& restrict operator()(int i0, int i1, int i2, int i3,        int i4)    {        assertInRange(i0, i1, i2, i3, i4);        return data_[i0 * stride_[0] + i1 * stride_[1]            + i2 * stride_[2] + i3 * stride_[3] + i4 * stride_[4]];    }    const T_numtype& restrict operator()(int i0, int i1, int i2, int i3,        int i4, int i5) const    {        assertInRange(i0, i1, i2, i3, i4, i5);        return data_[i0 * stride_[0] + i1 * stride_[1]            + i2 * stride_[2] + i3 * stride_[3] + i4 * stride_[4]            + i5 * stride_[5]];    }    T_numtype& restrict operator()(int i0, int i1, int i2, int i3,        int i4, int i5)    {        assertInRange(i0, i1, i2, i3, i4, i5);        return data_[i0 * stride_[0] + i1 * stride_[1]            + i2 * stride_[2] + i3 * stride_[3] + i4 * stride_[4]            + i5 * stride_[5]];    }    const T_numtype& restrict operator()(int i0, int i1, int i2, int i3,        int i4, int i5, int i6) const    {        assertInRange(i0, i1, i2, i3, i4, i5, i6);        return data_[i0 * stride_[0] + i1 * stride_[1]            + i2 * stride_[2] + i3 * stride_[3] + i4 * stride_[4]            + i5 * stride_[5] + i6 * stride_[6]];    }    T_numtype& restrict operator()(int i0, int i1, int i2, int i3,        int i4, int i5, int i6)    {        assertInRange(i0, i1, i2, i3, i4, i5, i6);        return data_[i0 * stride_[0] + i1 * stride_[1]            + i2 * stride_[2] + i3 * stride_[3] + i4 * stride_[4]            + i5 * stride_[5] + i6 * stride_[6]];    }    const T_numtype& restrict operator()(int i0, int i1, int i2, int i3,        int i4, int i5, int i6, int i7) const    {        assertInRange(i0, i1, i2, i3, i4, i5, i6, i7);        return data_[i0 * stride_[0] + i1 * stride_[1]            + i2 * stride_[2] + i3 * stride_[3] + i4 * stride_[4]            + i5 * stride_[5] + i6 * stride_[6] + i7 * stride_[7]];    }    T_numtype& restrict operator()(int i0, int i1, int i2, int i3,        int i4, int i5, int i6, int i7)    {        assertInRange(i0, i1, i2, i3, i4, i5, i6, i7);        return data_[i0 * stride_[0] + i1 * stride_[1]            + i2 * stride_[2] + i3 * stride_[3] + i4 * stride_[4]            + i5 * stride_[5] + i6 * stride_[6] + i7 * stride_[7]];    }    const T_numtype& restrict operator()(int i0, int i1, int i2, int i3,        int i4, int i5, int i6, int i7, int i8) const    {        assertInRange(i0, i1, i2, i3, i4, i5, i6, i7, i8);        return data_[i0 * stride_[0] + i1 * stride_[1]            + i2 * stride_[2] + i3 * stride_[3] + i4 * stride_[4]            + i5 * stride_[5] + i6 * stride_[6] + i7 * stride_[7]            + i8 * stride_[8]];    }    T_numtype& restrict operator()(int i0, int i1, int i2, int i3,   

⌨️ 快捷键说明

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