📄 resize.cc
字号:
/*************************************************************************** * blitz/array/resize.cc Resizing 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_ARRAYRESIZE_CC#define BZ_ARRAYRESIZE_CC#ifndef BZ_ARRAY_H #error <blitz/array/resize.cc> must be included via <blitz/array.h>#endif#include <blitz/minmax.h>BZ_NAMESPACE(blitz)template<typename T_numtype, int N_rank>void Array<T_numtype, N_rank>::resize(int extent0){ BZPRECONDITION(extent0 >= 0); BZPRECONDITION(N_rank == 1); if (extent0 != length_[0]) { length_[0] = extent0; setupStorage(0); }}template<typename T_numtype, int N_rank>void Array<T_numtype, N_rank>::resize(int extent0, int extent1){ BZPRECONDITION((extent0 >= 0) && (extent1 >= 0)); BZPRECONDITION(N_rank == 2); if ((extent0 != length_[0]) || (extent1 != length_[1])) { length_[0] = extent0; length_[1] = extent1; setupStorage(1); }}template<typename T_numtype, int N_rank>void Array<T_numtype, N_rank>::resize(int extent0, int extent1, int extent2){ BZPRECONDITION((extent0 >= 0) && (extent1 >= 0) && (extent2 >= 0)); BZPRECONDITION(N_rank == 3); if ((extent0 != length_[0]) || (extent1 != length_[1]) || (extent2 != length_[2])) { length_[0] = extent0; length_[1] = extent1; length_[2] = extent2; setupStorage(2); }}template<typename T_numtype, int N_rank>void Array<T_numtype, N_rank>::resize(int extent0, int extent1, int extent2, int extent3){ BZPRECONDITION((extent0 >= 0) && (extent1 >= 0) && (extent2 >= 0) && (extent3 >= 0)); BZPRECONDITION(N_rank == 4); if ((extent0 != length_[0]) || (extent1 != length_[1]) || (extent2 != length_[2]) || (extent3 != length_[3])) { length_[0] = extent0; length_[1] = extent1; length_[2] = extent2; length_[3] = extent3; setupStorage(3); }}template<typename T_numtype, int N_rank>void Array<T_numtype, N_rank>::resize(int extent0, int extent1, int extent2, int extent3, int extent4){ BZPRECONDITION((extent0 >= 0) && (extent1 >= 0) && (extent2 >= 0) && (extent3 >= 0) && (extent4 >= 0)); BZPRECONDITION(N_rank == 5); if ((extent0 != length_[0]) || (extent1 != length_[1]) || (extent2 != length_[2]) || (extent3 != length_[3]) || (extent4 != length_[4])) { length_[0] = extent0; length_[1] = extent1; length_[2] = extent2; length_[3] = extent3; length_[4] = extent4; setupStorage(4); }}template<typename T_numtype, int N_rank>void Array<T_numtype, N_rank>::resize(int extent0, int extent1, int extent2, int extent3, int extent4, int extent5){ BZPRECONDITION((extent0 >= 0) && (extent1 >= 0) && (extent2 >= 0) && (extent3 >= 0) && (extent4 >= 0) && (extent5 >= 0)); BZPRECONDITION(N_rank == 6); if ((extent0 != length_[0]) || (extent1 != length_[1]) || (extent2 != length_[2]) || (extent3 != length_[3]) || (extent4 != length_[4]) || (extent5 != length_[5])) { length_[0] = extent0; length_[1] = extent1; length_[2] = extent2; length_[3] = extent3; length_[4] = extent4; length_[5] = extent5; setupStorage(5); }}template<typename T_numtype, int N_rank>void Array<T_numtype, N_rank>::resize(int extent0, int extent1, int extent2, int extent3, int extent4, int extent5, int extent6){ BZPRECONDITION((extent0 >= 0) && (extent1 >= 0) && (extent2 >= 0) && (extent3 >= 0) && (extent4 >= 0) && (extent5 >= 0) && (extent6 >= 0)); BZPRECONDITION(N_rank == 7); if ((extent0 != length_[0]) || (extent1 != length_[1]) || (extent2 != length_[2]) || (extent3 != length_[3]) || (extent4 != length_[4]) || (extent5 != length_[5]) || (extent6 != length_[6])) { length_[0] = extent0; length_[1] = extent1; length_[2] = extent2; length_[3] = extent3; length_[4] = extent4; length_[5] = extent5; length_[6] = extent6; setupStorage(6); }}template<typename T_numtype, int N_rank>void Array<T_numtype, N_rank>::resize(int extent0, int extent1, int extent2, int extent3, int extent4, int extent5, int extent6, int extent7){ BZPRECONDITION((extent0 >= 0) && (extent1 >= 0) && (extent2 >= 0) && (extent3 >= 0) && (extent4 >= 0) && (extent5 >= 0) && (extent6 >= 0) && (extent7 >= 0)); BZPRECONDITION(N_rank == 8); if ((extent0 != length_[0]) || (extent1 != length_[1]) || (extent2 != length_[2]) || (extent3 != length_[3]) || (extent4 != length_[4]) || (extent5 != length_[5]) || (extent6 != length_[6]) || (extent7 != length_[7])) { length_[0] = extent0; length_[1] = extent1; length_[2] = extent2; length_[3] = extent3; length_[4] = extent4; length_[5] = extent5; length_[6] = extent6; length_[7] = extent7; setupStorage(7); }}template<typename T_numtype, int N_rank>void Array<T_numtype, N_rank>::resize(int extent0, int extent1, int extent2, int extent3, int extent4, int extent5, int extent6, int extent7, int extent8){ BZPRECONDITION((extent0 >= 0) && (extent1 >= 0) && (extent2 >= 0) && (extent3 >= 0) && (extent4 >= 0) && (extent5 >= 0) && (extent6 >= 0) && (extent7 >= 0) && (extent8 >= 0)); BZPRECONDITION(N_rank == 9); if ((extent0 != length_[0]) || (extent1 != length_[1]) || (extent2 != length_[2]) || (extent3 != length_[3]) || (extent4 != length_[4]) || (extent5 != length_[5]) || (extent6 != length_[6]) || (extent7 != length_[7]) || (extent8 != length_[8])) { length_[0] = extent0; length_[1] = extent1; length_[2] = extent2; length_[3] = extent3; length_[4] = extent4; length_[5] = extent5; length_[6] = extent6; length_[7] = extent7; length_[8] = extent8; setupStorage(8); }}template<typename T_numtype, int N_rank>void Array<T_numtype, N_rank>::resize(int extent0, int extent1, int extent2, int extent3, int extent4, int extent5, int extent6, int extent7, int extent8, int extent9){ BZPRECONDITION((extent0 >= 0) && (extent1 >= 0) && (extent2 >= 0) && (extent3 >= 0) && (extent4 >= 0) && (extent5 >= 0) && (extent6 >= 0) && (extent7 >= 0) && (extent8 >= 0) && (extent9 >= 0)); BZPRECONDITION(N_rank == 10); if ((extent0 != length_[0]) || (extent1 != length_[1]) || (extent2 != length_[2]) || (extent3 != length_[3]) || (extent4 != length_[4]) || (extent5 != length_[5]) || (extent6 != length_[6]) || (extent7 != length_[7]) || (extent8 != length_[8]) || (extent9 != length_[9])) { length_[0] = extent0; length_[1] = extent1; length_[2] = extent2; length_[3] = extent3; length_[4] = extent4; length_[5] = extent5; length_[6] = extent6; length_[7] = extent7; length_[8] = extent8; length_[9] = extent9; setupStorage(9); }}template<typename T_numtype, int N_rank>void Array<T_numtype, N_rank>::resize(int extent0, int extent1, int extent2, int extent3, int extent4, int extent5, int extent6, int extent7, int extent8, int extent9, int extent10){ BZPRECONDITION((extent0 >= 0) && (extent1 >= 0) && (extent2 >= 0) && (extent3 >= 0) && (extent4 >= 0) && (extent5 >= 0) && (extent6 >= 0) && (extent7 >= 0) && (extent8 >= 0) && (extent9 >= 0) && (extent10 >= 0)); BZPRECONDITION(N_rank == 11); if ((extent0 != length_[0]) || (extent1 != length_[1]) || (extent2 != length_[2]) || (extent3 != length_[3]) || (extent4 != length_[4]) || (extent5 != length_[5]) || (extent6 != length_[6]) || (extent7 != length_[7]) || (extent8 != length_[8]) || (extent9 != length_[9]) || (extent10 != length_[10])) { length_[0] = extent0; length_[1] = extent1; length_[2] = extent2; length_[3] = extent3; length_[4] = extent4; length_[5] = extent5; length_[6] = extent6; length_[7] = extent7; length_[8] = extent8; length_[9] = extent9; length_[10] = extent10; setupStorage(10); }}template<typename T_numtype, int N_rank>void Array<T_numtype, N_rank>::resize(Range r0){ BZPRECONDITION(r0.isAscendingContiguous()); length_[0] = r0.length(); storage_.setBase(0, r0.first()); setupStorage(0);}template<typename T_numtype, int N_rank>void Array<T_numtype, N_rank>::resize(Range r0, Range r1){ BZPRECONDITION(r0.isAscendingContiguous() && r1.isAscendingContiguous()); length_[0] = r0.length(); storage_.setBase(0, r0.first()); length_[1] = r1.length(); storage_.setBase(1, r1.first()); setupStorage(1);}template<typename T_numtype, int N_rank>void Array<T_numtype, N_rank>::resize(Range r0, Range r1, Range r2){ BZPRECONDITION(r0.isAscendingContiguous() && r1.isAscendingContiguous() && r2.isAscendingContiguous()); length_[0] = r0.length(); storage_.setBase(0, r0.first()); length_[1] = r1.length(); storage_.setBase(1, r1.first()); length_[2] = r2.length(); storage_.setBase(2, r2.first()); setupStorage(2);}template<typename T_numtype, int N_rank>void Array<T_numtype, N_rank>::resize(Range r0, Range r1, Range r2, Range r3){ BZPRECONDITION(r0.isAscendingContiguous() && r1.isAscendingContiguous() && r2.isAscendingContiguous() && r3.isAscendingContiguous());
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -