📄 array-impl.h
字号:
////////////////////////////////////////////// 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 + -