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

📄 slice.h

📁 著名的数学计算类库
💻 H
字号:
// -*- C++ -*-/*************************************************************************** * blitz/array/slice.h    Helper classes for slicing 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_ARRAYSLICE_H#define BZ_ARRAYSLICE_H#ifndef BZ_ARRAY_H #error <blitz/array/slice.h> must be included via <blitz/array.h>#endifBZ_NAMESPACE(blitz)// Forward declarationtemplate<typename T, int N>class Array;class nilArraySection { };template<typename T>class ArraySectionInfo {public:    static const int isValidType = 0, rank = 0, isPick = 0;};template<>class ArraySectionInfo<Range> {public:    static const int isValidType = 1, rank = 1, isPick = 0;};template<>class ArraySectionInfo<int> {public:    static const int isValidType = 1, rank = 0, isPick = 0;};template<>class ArraySectionInfo<nilArraySection> {public:    static const int isValidType = 1, rank = 0, isPick = 0;};template<typename T_numtype, typename T1, typename T2 = nilArraySection,     class T3 = nilArraySection, typename T4 = nilArraySection,     class T5 = nilArraySection, typename T6 = nilArraySection,     class T7 = nilArraySection, typename T8 = nilArraySection,     class T9 = nilArraySection, typename T10 = nilArraySection,     class T11 = nilArraySection>class SliceInfo {public:    static const int         numValidTypes = ArraySectionInfo<T1>::isValidType                      + ArraySectionInfo<T2>::isValidType                      + ArraySectionInfo<T3>::isValidType                      + ArraySectionInfo<T4>::isValidType                      + ArraySectionInfo<T5>::isValidType                      + ArraySectionInfo<T6>::isValidType                      + ArraySectionInfo<T7>::isValidType                      + ArraySectionInfo<T8>::isValidType                      + ArraySectionInfo<T9>::isValidType                      + ArraySectionInfo<T10>::isValidType                      + ArraySectionInfo<T11>::isValidType,        rank          = ArraySectionInfo<T1>::rank                      + ArraySectionInfo<T2>::rank                      + ArraySectionInfo<T3>::rank                      + ArraySectionInfo<T4>::rank                      + ArraySectionInfo<T5>::rank                      + ArraySectionInfo<T6>::rank                      + ArraySectionInfo<T7>::rank                      + ArraySectionInfo<T8>::rank                      + ArraySectionInfo<T9>::rank                      + ArraySectionInfo<T10>::rank                      + ArraySectionInfo<T11>::rank,        isPick        = ArraySectionInfo<T1>::isPick                      + ArraySectionInfo<T2>::isPick                      + ArraySectionInfo<T3>::isPick                      + ArraySectionInfo<T4>::isPick                      + ArraySectionInfo<T5>::isPick                      + ArraySectionInfo<T6>::isPick                      + ArraySectionInfo<T7>::isPick                      + ArraySectionInfo<T8>::isPick                      + ArraySectionInfo<T9>::isPick                      + ArraySectionInfo<T10>::isPick                      + ArraySectionInfo<T11>::isPick;    typedef Array<T_numtype,numValidTypes> T_array;    typedef Array<T_numtype,rank> T_slice;};BZ_NAMESPACE_END#endif // BZ_ARRAYSLICE_H

⌨️ 快捷键说明

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