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

📄 resize.cc

📁 著名的数学计算类库
💻 CC
📖 第 1 页 / 共 3 页
字号:
/*************************************************************************** * 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 + -