54#include <blitz/array/slice.h>
55#include <blitz/array/map.h>
56#include <blitz/array/multi.h>
57#include <blitz/array/domain.h>
58#include <blitz/array/storage.h>
60#ifdef BZ_HAVE_BOOST_SERIALIZATION
61#include <boost/serialization/serialization.hpp>
62#include <boost/serialization/base_object.hpp>
72template<
typename T_numtype,
int N_rank>
75template<
typename T_numtype,
int N_rank>
78template<
typename T_numtype,
int N_rank>
81template<
typename P_expr>
84template<
typename T_array,
typename T_index>
87template <
typename P_numtype,
int N_rank>
90template <
typename P_numtype,
int N_rank>
105template<
typename P_numtype,
int N_rank>
107#ifdef BZ_NEW_EXPRESSION_TEMPLATES
108 ,
public ETBase<Array<P_numtype,N_rank> >
149#if defined(BZ_FORTRAN_ARRAY)
151#elif defined(BZ_COLUMN_MAJOR_ARRAY)
168 template<
typename T_expr>
198 BZPRECONDITION(N_rank >= 2);
199 TAU_TYPE_STRING(p1,
"Array<T,N>::Array() [T="
200 + CT(
T_numtype) +
",N=" + CT(N_rank) +
"]");
201 TAU_PROFILE(p1,
"void (int,int)", TAU_BLITZ);
208 Array(
int length0,
int length1,
int length2,
212 BZPRECONDITION(N_rank >= 3);
219 Array(
int length0,
int length1,
int length2,
int length3,
223 BZPRECONDITION(N_rank >= 4);
231 Array(
int length0,
int length1,
int length2,
int length3,
int length4,
235 BZPRECONDITION(N_rank >= 5);
244 Array(
int length0,
int length1,
int length2,
int length3,
int length4,
249 BZPRECONDITION(N_rank >= 6);
259 Array(
int length0,
int length1,
int length2,
int length3,
int length4,
260 int length5,
int length6,
264 BZPRECONDITION(N_rank >= 7);
275 Array(
int length0,
int length1,
int length2,
int length3,
int length4,
276 int length5,
int length6,
int length7,
280 BZPRECONDITION(N_rank >= 8);
292 Array(
int length0,
int length1,
int length2,
int length3,
int length4,
293 int length5,
int length6,
int length7,
int length8,
297 BZPRECONDITION(N_rank >= 9);
310 Array(
int length0,
int length1,
int length2,
int length3,
int length4,
311 int length5,
int length6,
int length7,
int length8,
int length9,
315 BZPRECONDITION(N_rank >= 10);
329 Array(
int length0,
int length1,
int length2,
int length3,
int length4,
330 int length5,
int length6,
int length7,
int length8,
int length9,
335 BZPRECONDITION(N_rank >= 11);
355 GeneralArrayStorage<N_rank> storage =
381 GeneralArrayStorage<N_rank> storage =
404 GeneralArrayStorage<N_rank> storage =
432 GeneralArrayStorage<N_rank> storage =
470 const GeneralArrayStorage<N_rank>& storage
758#ifdef BZ_NEW_EXPRESSION_TEMPLATES
841 constructSubarray(array,
r0,
r1,
r2,
r3,
r4,
r5,
r6,
r7,
r8,
r9);
848 constructSubarray(array,
r0,
r1,
r2,
r3,
r4,
r5,
r6,
r7,
r8,
r9,
r10);
869 template<
int N_rank2,
typename R0,
typename R1,
typename R2,
typename R3,
typename R4,
870 typename R5,
typename R6,
typename R7,
typename R8,
typename R9,
typename R10>
874 constructSlice(array,
r0,
r1,
r2,
r3,
r4,
r5,
r6,
r7,
r8,
r9,
r10);
897 template<
typename P_numtype2>
945 for (
int i=0; i <
N_rank; ++i)
981 template<
typename P_numtype2>
1030 int r3=0,
int r4=0,
int r5=0,
int r6=0,
int r7=0,
int r8=0,
int
1033 int r3=0,
int r4=0,
int r5=0,
int r6=0,
int r7=0,
int r8=0,
int
1034 r9=0,
int r10=0)
const;
1188 for (
int i=0; i <
N_rank; ++i)
1259 int i5,
int i6,
int i7)
const {
1271 int i5,
int i6,
int i7,
int i8)
const {
1284 int i5,
int i6,
int i7,
int i8,
int i9)
const {
1313 for (
int i=0; i <
N_rank; ++i)
1336 <<
i0 <<
", " <<
i1 <<
")"
1346 <<
i0 <<
", " <<
i1 <<
", " <<
i2 <<
")"
1356 <<
i0 <<
", " <<
i1 <<
", " <<
i2 <<
", " <<
i3 <<
")"
1367 <<
i0 <<
", " <<
i1 <<
", " <<
i2 <<
", " <<
i3
1368 <<
", " <<
i4 <<
")"
1379 <<
i0 <<
", " <<
i1 <<
", " <<
i2 <<
", " <<
i3
1380 <<
", " <<
i4 <<
", " <<
i5 <<
")"
1391 "Array index out of range: ("
1392 <<
i0 <<
", " <<
i1 <<
", " <<
i2 <<
", " <<
i3
1393 <<
", " <<
i4 <<
", " <<
i5 <<
", " <<
i6 <<
")"
1405 "Array index out of range: ("
1406 <<
i0 <<
", " <<
i1 <<
", " <<
i2 <<
", " <<
i3
1407 <<
", " <<
i4 <<
", " <<
i5 <<
", " <<
i6 <<
", " <<
i7 <<
")"
1419 "Array index out of range: ("
1420 <<
i0 <<
", " <<
i1 <<
", " <<
i2 <<
", " <<
i3
1421 <<
", " <<
i4 <<
", " <<
i5 <<
", " <<
i6 <<
", " <<
i7
1422 <<
", " <<
i8 <<
")"
1433 BZPRECHECK(
isInRange(
i0,
i1,
i2,
i3,
i4,
i5,
i6,
i7,
i8,
i9),
1434 "Array index out of range: ("
1435 <<
i0 <<
", " <<
i1 <<
", " <<
i2 <<
", " <<
i3
1436 <<
", " <<
i4 <<
", " <<
i5 <<
", " <<
i6 <<
", " <<
i7
1437 <<
", " <<
i8 <<
", " <<
i9 <<
")"
1449 BZPRECHECK(
isInRange(
i0,
i1,
i2,
i3,
i4,
i5,
i6,
i7,
i8,
i9,
i10),
1450 "Array index out of range: ("
1451 <<
i0 <<
", " <<
i1 <<
", " <<
i2 <<
", " <<
i3
1452 <<
", " <<
i4 <<
", " <<
i5 <<
", " <<
i6 <<
", " <<
i7
1453 <<
", " <<
i8 <<
", " <<
i9 <<
", " <<
i10 <<
")"
1463 template<
int N_rank2>
1470 template<
int N_rank2>
1764 int i4,
int i5)
const
1782 int i4,
int i5,
int i6)
const
1800 int i4,
int i5,
int i6,
int i7)
const
1818 int i4,
int i5,
int i6,
int i7,
int i8)
const
1885 {
return const_cast<T_array&
>(*this); }
1950 return T_array(
noConst(),
r0,
r1,
r2,
r3,
r4,
r5,
r6,
r7,
r8,
r9);
1956 return T_array(
noConst(),
r0,
r1,
r2,
r3,
r4,
r5,
r6,
r7,
r8,
r9,
r10);
1982#ifdef BZ_HAVE_PARTIAL_ORDERING
1984 template<
typename T1,
typename T2>
1985 typename SliceInfo<T_numtype,T1,T2>::T_slice
1988 typedef typename SliceInfo<T_numtype,T1,T2>::T_slice
slice;
1994 template<
typename T1,
typename T2,
typename T3>
1995 typename SliceInfo<T_numtype,T1,T2,T3>::T_slice
1998 typedef typename SliceInfo<T_numtype,T1,T2,T3>::T_slice
slice;
2004 template<
typename T1,
typename T2,
typename T3,
typename T4>
2005 typename SliceInfo<T_numtype,T1,T2,T3,T4>::T_slice
2008 typedef typename SliceInfo<T_numtype,T1,T2,T3,T4>::T_slice
slice;
2014 template<
typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
2015 typename SliceInfo<T_numtype,T1,T2,T3,T4,T5>::T_slice
2018 typedef typename SliceInfo<T_numtype,T1,T2,T3,T4,T5>::T_slice
slice;
2024 template<
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
2025 typename SliceInfo<T_numtype,T1,T2,T3,T4,T5,T6>::T_slice
2028 typedef typename SliceInfo<T_numtype,T1,T2,T3,T4,T5,T6>::T_slice
slice;
2029 return slice(
noConst(),
r1,
r2,
r3,
r4,
r5,
r6,
nilArraySection(),
nilArraySection(),
nilArraySection(),
2033 template<
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6,
2035 typename SliceInfo<T_numtype,T1,T2,T3,T4,T5,T6,T7>::T_slice
2038 typedef typename SliceInfo<T_numtype,T1,T2,T3,T4,T5,T6,T7>::T_slice
slice;
2039 return slice(
noConst(),
r1,
r2,
r3,
r4,
r5,
r6,
r7,
nilArraySection(),
nilArraySection(),
2043 template<
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6,
2044 typename T7,
typename T8>
2045 typename SliceInfo<T_numtype,T1,T2,T3,T4,T5,T6,T7,T8>::T_slice
2048 typedef typename SliceInfo<T_numtype,T1,T2,T3,T4,T5,T6,T7,T8>::T_slice
slice;
2053 template<
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6,
2054 typename T7,
typename T8,
typename T9>
2055 typename SliceInfo<T_numtype,T1,T2,T3,T4,T5,T6,T7,T8,T9>::T_slice
2058 typedef typename SliceInfo<T_numtype,T1,T2,T3,T4,T5,T6,T7,T8,T9>::T_slice
slice;
2059 return slice(
noConst(),
r1,
r2,
r3,
r4,
r5,
r6,
r7,
r8,
r9,
nilArraySection(),
nilArraySection());
2062 template<
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6,
2063 typename T7,
typename T8,
typename T9,
typename T10>
2064 typename SliceInfo<T_numtype,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10>::T_slice
2067 typedef typename SliceInfo<T_numtype,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10>::T_slice
slice;
2068 return slice(
noConst(),
r1,
r2,
r3,
r4,
r5,
r6,
r7,
r8,
r9,
r10,
nilArraySection());
2071 template<
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6,
2072 typename T7,
typename T8,
typename T9,
typename T10,
typename T11>
2073 typename SliceInfo<T_numtype,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11>::T_slice
2074 operator()(
T1 r1,
T2 r2,
T3 r3,
T4 r4,
T5 r5,
T6 r6,
T7 r7,
T8 r8,
T9 r9,
T10 r10,
T11 r11)
const
2076 typedef typename SliceInfo<T_numtype,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11>::T_slice
slice;
2077 return slice(
noConst(),
r1,
r2,
r3,
r4,
r5,
r6,
r7,
r8,
r9,
r10,
r11);
2101 template<
int N0,
int N1>
2109 template<
int N0,
int N1,
int N2>
2118 template<
int N0,
int N1,
int N2,
int N3>
2127 template<
int N0,
int N1,
int N2,
int N3,
int N4>
2137 template<
int N0,
int N1,
int N2,
int N3,
int N4,
int N5>
2148 template<
int N0,
int N1,
int N2,
int N3,
int N4,
int N5,
int N6>
2251 template<
typename T_indexContainer>
2281#ifdef BZ_NEW_EXPRESSION_TEMPLATES
2342 template<
typename P_numtype2>
2344 template<
typename P_numtype2>
2346 template<
typename P_numtype2>
2348 template<
typename P_numtype2>
2350 template<
typename P_numtype2>
2352 template<
typename P_numtype2>
2354 template<
typename P_numtype2>
2356 template<
typename P_numtype2>
2358 template<
typename P_numtype2>
2360 template<
typename P_numtype2>
2362 template<
typename P_numtype2>
2366 template<
typename T_expr>
2368 template<
typename T_expr>
2370 template<
typename T_expr>
2372 template<
typename T_expr>
2374 template<
typename T_expr>
2376 template<
typename T_expr>
2378 template<
typename T_expr>
2380 template<
typename T_expr>
2382 template<
typename T_expr>
2384 template<
typename T_expr>
2386 template<
typename T_expr>
2399#ifdef BZ_DEBUG_TRAVERSE
2445 template<
int N_rank2,
typename R0,
typename R1,
typename R2,
typename R3,
typename R4,
2446 typename R5,
typename R6,
typename R7,
typename R8,
typename R9,
typename R10>
2450 template<
int N_rank2>
2454 template<
int N_rank2>
2458 template<
int N_rank2>
2467#ifdef BZ_HAVE_BOOST_SERIALIZATION
2468 friend class boost::serialization::access;
2470 template<
class T_arch>
2472 ar & boost::serialization::base_object<MemoryBlockReference<P_numtype> >(*this);
2513template<
typename T_numtype>
2516template<
typename T_numtype,
int N_rank>
2519template<
typename T_numtype,
int N_rank>
2522template <
typename P_numtype,
int N_rank>
2529template <
typename P_expr>
2536template <
typename P_numtype,
int N_rank>
2559#include <blitz/array.cc>
2560#include <blitz/tinyvec2.cc>
Definition array-impl.h:73
Declaration of class Array, the "Swiss army knife" of Blitz expression template classes.
Definition array-impl.h:110
void resize(int extent1, int extent2, int extent3, int extent4, int extent5, int extent6, int extent7, int extent8, int extent9, int extent10)
void constructSubarray(Array< T_numtype, N_rank > &array, Range r0, Range r1, Range r2, Range r3, Range r4, Range r5, Range r6, Range r7)
int cols() const
Definition array-impl.h:902
sizeType storageSize() const
Returns the length of the array storage.
Definition array-impl.h:1170
void transposeSelf(int r0, int r1, int r2=0, int r3=0, int r4=0, int r5=0, int r6=0, int r7=0, int r8=0, int r9=0, int r10=0)
const T_numtype *restrict dataFirst() const
Definition array-impl.h:952
void resize(Range r1, Range r2, Range r3, Range r4, Range r5, Range r6, Range r7, Range r8)
bool isMajorRank(int rank) const
Definition array-impl.h:991
void resizeAndPreserve(int extent1, int extent2, int extent3, int extent4, int extent5, int extent6)
int base(int rank) const
Definition array-impl.h:884
const T_numtype &restrict operator()(int i0) const
Definition array-impl.h:1695
Array< P_numtype2, N_rank > chopComponent(P_numtype2 a, int compNum, int numComponents) const
Definition array-impl.h:898
int depth() const
Definition array-impl.h:958
T_numtype & operator()(TinyVector< int, 1 > index)
Definition array-impl.h:1483
int ubound(int rank) const
Definition array-impl.h:1182
Array< P_numtype2, N_rank > extractComponent(P_numtype2, int compNum, int numComponents) const
T_numtype &restrict operator()(int i0, int i1, int i2, int i3, int i4, int i5, int i6, int i7, int i8, int i9, int i10)
Definition array-impl.h:1868
T_numtype &restrict operator()(int i0, int i1, int i2, int i3, int i4, int i5)
Definition array-impl.h:1772
void slice(int &, nilArraySection, Array< T_numtype, N_rank2 > &, TinyVector< int, N_rank2 > &, int)
Definition array-impl.h:2459
MemoryBlockReference< P_numtype > T_base
Definition array-impl.h:113
T_array & operator+=(const Array< P_numtype2, N_rank > &)
Scalar operand assignment.
T_array & operator/=(const Array< P_numtype2, N_rank > &)
Scalar operand assignment.
Array(const TinyVector< int, N_rank-1 > &shape, int lastExtent, const GeneralArrayStorage< N_rank > &storage)
Array(int length0, int length1, int length2, int length3, int length4, GeneralArrayStorage< N_rank > storage=T_default_storage())
Definition array-impl.h:231
T_array & operator&=(const Array< P_numtype2, N_rank > &)
Scalar operand assignment.
T_array & initialize(T_numtype)
Scalar operand assignment.
T_array & operator/=(BZ_ETPARM(_bz_ArrayExpr< T_expr >) expr)
Scalar operand assignment.
T_array & operator-=(BZ_ETPARM(_bz_ArrayExpr< T_expr >) expr)
Scalar operand assignment.
T_numtype & operator()(const TinyVector< int, 7 > &index)
Definition array-impl.h:1586
T_numtype & operator()(const TinyVector< int, 9 > &index)
Definition array-impl.h:1631
T_array & operator^=(const Array< P_numtype2, N_rank > &)
Scalar operand assignment.
void resize(int extent1, int extent2, int extent3, int extent4, int extent5, int extent6, int extent7, int extent8)
void resize(int extent1, int extent2, int extent3, int extent4, int extent5)
Array(const TinyVector< int, N_rank > &extent, GeneralArrayStorage< N_rank > storage=T_default_storage())
Definition array-impl.h:455
void calculateZeroOffset()
Array(int length0, int length1, int length2, GeneralArrayStorage< N_rank > storage=T_default_storage())
Definition array-impl.h:208
_bz_ArrayExpr< ArrayIndexMapping< typename asExpr< T_array >::T_expr, N0, N1, N2, N3, N4, N5, N6, N7, N8 > > operator()(IndexPlaceholder< N0 >, IndexPlaceholder< N1 >, IndexPlaceholder< N2 >, IndexPlaceholder< N3 >, IndexPlaceholder< N4 >, IndexPlaceholder< N5 >, IndexPlaceholder< N6 >, IndexPlaceholder< N7 >, IndexPlaceholder< N8 >) const
Definition array-impl.h:2176
bool isInRange(int i0, int i1, int i2, int i3, int i4, int i5, int i6, int i7, int i8, int i9) const
Definition array-impl.h:1283
void resize(int extent1, int extent2, int extent3, int extent4)
Array(int length0, int length1, int length2, int length3, int length4, int length5, int length6, int length7, int length8, int length9, int length10, GeneralArrayStorage< N_rank > storage=T_default_storage())
Definition array-impl.h:329
TinyVector< int, N_rank > length_
Definition array-impl.h:2503
T_numtype & operator()(const TinyVector< int, 5 > &index)
Definition array-impl.h:1545
Array(int length0, int length1, int length2, int length3, int length4, int length5, int length6, GeneralArrayStorage< N_rank > storage=T_default_storage())
Definition array-impl.h:259
T_array reindex(const TinyVector< int, N_rank > &)
T_numtype &restrict operator()(int i0, int i1, int i2, int i3, int i4, int i5, int i6, int i7, int i8)
Definition array-impl.h:1827
TinyVector< diffType, N_rank > stride_
Definition array-impl.h:2504
void resizeAndPreserve(int extent)
bool isVectorAligned(diffType offset) const
Returns true if the array is aligned on a simd vector width.
Definition array-impl.h:1198
bool assertInRange(int BZ_DEBUG_PARAM(i0)) const
Definition array-impl.h:1327
_bz_ArrayExpr< ArrayIndexMapping< typename asExpr< T_array >::T_expr, N0, N1, N2 > > operator()(IndexPlaceholder< N0 >, IndexPlaceholder< N1 >, IndexPlaceholder< N2 >) const
Definition array-impl.h:2111
void resize(Range r1, Range r2, Range r3, Range r4, Range r5, Range r6, Range r7, Range r8, Range r9, Range r10)
Array< T_numtype, N_rank > T_array
Definition array-impl.h:135
const_iterator begin() const
Definition array-impl.h:890
T_array & operator&=(BZ_ETPARM(_bz_ArrayExpr< T_expr >) expr)
Scalar operand assignment.
Array(Range r0, Range r1, Range r2, Range r3, Range r4, GeneralArrayStorage< N_rank > storage=T_default_storage())
Definition array-impl.h:541
T_array & operator>>=(BZ_ETPARM(_bz_ArrayExpr< T_expr >) expr)
Scalar operand assignment.
Array(GeneralArrayStorage< N_rank > storage=T_default_storage())
Definition array-impl.h:178
P_numtype T_numtype
Definition array-impl.h:133
const T_numtype &restrict operator()(TinyVector< int, 1 > index) const
Definition array-impl.h:1477
T_iterator beginFast() const
Definition array-impl.h:893
T_array & operator*=(BZ_ETPARM(_bz_ArrayExpr< T_expr >) expr)
Scalar operand assignment.
void constructSubarray(Array< T_numtype, N_rank > &array, Range r0)
Array(const TinyVector< int, N_rank > &lbounds, const TinyVector< int, N_rank > &extent, const GeneralArrayStorage< N_rank > &storage=T_default_storage())
bool isInRange(int i0, int i1) const
Definition array-impl.h:1213
const T_numtype &restrict operator()(TinyVector< int, 3 > index) const
Definition array-impl.h:1503
Array(Array< T_numtype, N_rank > &array, Range r0, Range r1, Range r2, Range r3, Range r4, Range r5)
Definition array-impl.h:814
T_array & operator%=(T_numtype)
Scalar operand assignment.
int zeroOffset() const
Definition array-impl.h:1194
bool assertInRange(int BZ_DEBUG_PARAM(i0), int BZ_DEBUG_PARAM(i1), int BZ_DEBUG_PARAM(i2), int BZ_DEBUG_PARAM(i3), int BZ_DEBUG_PARAM(i4)) const
Definition array-impl.h:1362
diffType dataFirstOffset() const
Definition array-impl.h:937
bool isInRange(int i0, int i1, int i2, int i3, int i4, int i5, int i6) const
Definition array-impl.h:1248
const T_numtype &restrict operator()(int i0, int i1, int i2, int i3, int i4, int i5, int i6, int i7) const
Definition array-impl.h:1799
bool canCollapse(int outerRank, int innerRank) const
Definition array-impl.h:2398
const_iterator end() const
Definition array-impl.h:972
bool isInRange(int i0, int i1, int i2, int i3, int i4, int i5, int i6, int i7, int i8) const
Definition array-impl.h:1270
bool assertInRange(int BZ_DEBUG_PARAM(i0), int BZ_DEBUG_PARAM(i1), int BZ_DEBUG_PARAM(i2), int BZ_DEBUG_PARAM(i3), int BZ_DEBUG_PARAM(i4), int BZ_DEBUG_PARAM(i5), int BZ_DEBUG_PARAM(i6), int BZ_DEBUG_PARAM(i7), int BZ_DEBUG_PARAM(i8), int BZ_DEBUG_PARAM(i9)) const
Definition array-impl.h:1428
Array(Array< T_numtype, N_rank > &array, Range r0, Range r1, Range r2, Range r3, Range r4, Range r5, Range r6, Range r7)
Definition array-impl.h:826
const T_numtype &restrict operator()(const TinyVector< int, 4 > &index) const
Definition array-impl.h:1519
T_numtype &restrict operator()(int i0, int i1, int i2, int i3, int i4, int i5, int i6)
Definition array-impl.h:1790
void resizeAndPreserve(int extent1, int extent2, int extent3, int extent4)
void resize(int extent1, int extent2, int extent3, int extent4, int extent5, int extent6, int extent7, int extent8, int extent9, int extent10, int extent11)
void constructSlice(Array< T_numtype, N_rank2 > &array, R0 r0, R1 r1, R2 r2, R3 r3, R4 r4, R5 r5, R6 r6, R7 r7, R8 r8, R9 r9, R10 r10)
T_array & operator>>=(T_numtype)
Scalar operand assignment.
Array(Range r0, Range r1, Range r2, Range r3, GeneralArrayStorage< N_rank > storage=T_default_storage())
Definition array-impl.h:521
Array(Range r0, Range r1, Range r2, Range r3, Range r4, Range r5, Range r6, Range r7, Range r8, GeneralArrayStorage< N_rank > storage=T_default_storage())
Definition array-impl.h:647
void weakReference(const T_array &)
T_array transpose(int r0, int r1, int r2=0, int r3=0, int r4=0, int r5=0, int r6=0, int r7=0, int r8=0, int r9=0, int r10=0) const
T_numtype &restrict operator()(int i0)
Definition array-impl.h:1701
void slice(int &setRank, int i, Array< T_numtype, N_rank2 > &array, TinyVector< int, N_rank2 > &rankMap, int sourceRank)
T_array operator()(Range r0, Range r1, Range r2, Range r3, Range r4, Range r5, Range r6, Range r7, Range r8, Range r9) const
Definition array-impl.h:1947
Array(Array< T_numtype, N_rank > &array, Range r0)
Definition array-impl.h:787
void constructSubarray(Array< T_numtype, N_rank > &array, Range r0, Range r1, Range r2)
const T_numtype &restrict operator()(int i0, int i1, int i2, int i3) const
Definition array-impl.h:1733
_bz_ArrayExpr< ArrayIndexMapping< typename asExpr< T_array >::T_expr, N0, N1, N2, N3, N4, N5, N6, N7, N8, N9, N10 > > operator()(IndexPlaceholder< N0 >, IndexPlaceholder< N1 >, IndexPlaceholder< N2 >, IndexPlaceholder< N3 >, IndexPlaceholder< N4 >, IndexPlaceholder< N5 >, IndexPlaceholder< N6 >, IndexPlaceholder< N7 >, IndexPlaceholder< N8 >, IndexPlaceholder< N9 >, IndexPlaceholder< N10 >) const
Definition array-impl.h:2202
bool isRankStoredAscending(int rank) const
Definition array-impl.h:995
Array(Array< T_numtype, N_rank2 > &array, R0 r0, R1 r1, R2 r2, R3 r3, R4 r4, R5 r5, R6 r6, R7 r7, R8 r8, R9 r9, R10 r10)
Definition array-impl.h:871
Array(Array< T_numtype, N_rank > &array, Range r0, Range r1, Range r2, Range r3, Range r4, Range r5, Range r6, Range r7, Range r8)
Definition array-impl.h:832
T_array & operator<<=(const Array< P_numtype2, N_rank > &)
Scalar operand assignment.
T_array & operator=(const Array< T_numtype, N_rank > &)
Scalar operand assignment.
const T_numtype &restrict operator()(int i0, int i1, int i2, int i3, int i4, int i5) const
Definition array-impl.h:1763
T_numtype & operator()(const TinyVector< int, 8 > &index)
Definition array-impl.h:1608
T_array operator()(Range r0, Range r1, Range r2, Range r3, Range r4, Range r5, Range r6, Range r7) const
Definition array-impl.h:1935
bool isInRange(int i0, int i1, int i2, int i3, int i4, int i5) const
Definition array-impl.h:1239
void resizeAndPreserve(int extent1, int extent2, int extent3, int extent4, int extent5, int extent6, int extent7, int extent8, int extent9, int extent10, int extent11)
T_array reverse(int rank)
ArrayIterator< T_numtype, N_rank > iterator
Definition array-impl.h:138
bool assertInRange(int BZ_DEBUG_PARAM(i0), int BZ_DEBUG_PARAM(i1), int BZ_DEBUG_PARAM(i2), int BZ_DEBUG_PARAM(i3), int BZ_DEBUG_PARAM(i4), int BZ_DEBUG_PARAM(i5), int BZ_DEBUG_PARAM(i6), int BZ_DEBUG_PARAM(i7), int BZ_DEBUG_PARAM(i8), int BZ_DEBUG_PARAM(i9), int BZ_DEBUG_PARAM(i10)) const
Definition array-impl.h:1443
const T_numtype &restrict operator()(int i0, int i1, int i2) const
Definition array-impl.h:1719
T_numtype *restrict dataZero()
Definition array-impl.h:931
_bz_ArrayExpr< ArrayIndexMapping< typename asExpr< T_array >::T_expr, N0, N1, N2, N3, N4, N5, N6, N7, N8, N9 > > operator()(IndexPlaceholder< N0 >, IndexPlaceholder< N1 >, IndexPlaceholder< N2 >, IndexPlaceholder< N3 >, IndexPlaceholder< N4 >, IndexPlaceholder< N5 >, IndexPlaceholder< N6 >, IndexPlaceholder< N7 >, IndexPlaceholder< N8 >, IndexPlaceholder< N9 >) const
Definition array-impl.h:2189
T_array & operator^=(T_numtype)
Scalar operand assignment.
bool assertInRange(int BZ_DEBUG_PARAM(i0), int BZ_DEBUG_PARAM(i1)) const
Definition array-impl.h:1334
void resize(Range r1, Range r2, Range r3, Range r4)
const Array< typename multicomponent_traits< T_numtype >::T_element, N_rank > operator[](const unsigned component) const
Definition array-impl.h:2230
const T_numtype *restrict dataZero() const
Definition array-impl.h:928
void resizeAndPreserve(int extent1, int extent2, int extent3, int extent4, int extent5, int extent6, int extent7, int extent8)
Array(T_numtype *restrict dataFirst, TinyVector< int, N_rank > shape, TinyVector< diffType, N_rank > stride, GeneralArrayStorage< N_rank > storage=T_default_storage(contiguousData))
Construct an array from an existing block of memory, with a given set of strides.
Definition array-impl.h:379
void constructSubarray(Array< T_numtype, N_rank > &array, Range r0, Range r1, Range r2, Range r3, Range r4)
Array(Range r0, GeneralArrayStorage< N_rank > storage=T_default_storage())
Definition array-impl.h:478
T_numtype & operator()(const TinyVector< int, 10 > &index)
Definition array-impl.h:1655
T_array & operator%=(BZ_ETPARM(_bz_ArrayExpr< T_expr >) expr)
Scalar operand assignment.
T_numtype & operator()(TinyVector< int, 3 > index)
Definition array-impl.h:1511
const T_numtype &restrict operator()(const TinyVector< int, 6 > &index) const
Definition array-impl.h:1555
T_array & operator%=(const Array< P_numtype2, N_rank > &)
Scalar operand assignment.
bool assertInRange(int BZ_DEBUG_PARAM(i0), int BZ_DEBUG_PARAM(i1), int BZ_DEBUG_PARAM(i2), int BZ_DEBUG_PARAM(i3), int BZ_DEBUG_PARAM(i4), int BZ_DEBUG_PARAM(i5), int BZ_DEBUG_PARAM(i6), int BZ_DEBUG_PARAM(i7), int BZ_DEBUG_PARAM(i8)) const
Definition array-impl.h:1413
T_array operator()(Range r0, Range r1, Range r2, Range r3, Range r4, Range r5) const
Definition array-impl.h:1923
TinyVector< int, N_rank > lbound() const
Definition array-impl.h:1002
const T_numtype &restrict operator()(const TinyVector< int, 11 > &index) const
Definition array-impl.h:1667
T_numtype *restrict getInitializationIterator()
Definition array-impl.h:2395
Array(T_numtype *restrict dataFirst, TinyVector< int, N_rank > shape, TinyVector< diffType, N_rank > stride, preexistingMemoryPolicy deletionPolicy, GeneralArrayStorage< N_rank > storage=T_default_storage(contiguousData))
Construct an array from an existing block of memory, with a given set of strides.
Definition array-impl.h:429
Array(Range r0, Range r1, Range r2, Range r3, Range r4, Range r5, GeneralArrayStorage< N_rank > storage=T_default_storage())
Definition array-impl.h:563
Array(Range r0, Range r1, Range r2, Range r3, Range r4, Range r5, Range r6, Range r7, Range r8, Range r9, Range r10, GeneralArrayStorage< N_rank > storage=T_default_storage())
Definition array-impl.h:716
FastArrayIterator< T_numtype, N_rank > T_iterator
Definition array-impl.h:136
void constructSubarray(Array< T_numtype, N_rank > &array, Range r0, Range r1, Range r2, Range r3, Range r4, Range r5)
T_array & operator=(BZ_ETPARM(_bz_ArrayExpr< T_expr >) expr)
Scalar operand assignment.
const TinyVector< int, N_rank > & shape() const
Definition array-impl.h:1159
T_array & operator<<=(T_numtype)
Scalar operand assignment.
void resize(int extent1, int extent2, int extent3, int extent4, int extent5, int extent6, int extent7)
bool assertInRange(int BZ_DEBUG_PARAM(i0), int BZ_DEBUG_PARAM(i1), int BZ_DEBUG_PARAM(i2), int BZ_DEBUG_PARAM(i3)) const
Definition array-impl.h:1352
const TinyVector< diffType, N_rank > & stride() const
Definition array-impl.h:1173
IndirectArray< T_array, T_indexContainer > operator[](const T_indexContainer &index)
Definition array-impl.h:2253
T_array operator()(Range r0, Range r1, Range r2, Range r3, Range r4, Range r5, Range r6, Range r7, Range r8) const
Definition array-impl.h:1941
void resize(int extent1, int extent2, int extent3)
static const int rank_
Definition array-impl.h:157
T_array & operator|=(T_numtype)
Scalar operand assignment.
Array(int length0, GeneralArrayStorage< N_rank > storage=T_default_storage())
Definition array-impl.h:186
T_array & noConst() const
Definition array-impl.h:1884
const T_numtype &restrict operator()(int i0, int i1, int i2, int i3, int i4, int i5, int i6, int i7, int i8) const
Definition array-impl.h:1817
T_array & operator>>=(const Array< P_numtype2, N_rank > &)
Scalar operand assignment.
Array(int length0, int length1, GeneralArrayStorage< N_rank > storage=T_default_storage())
Definition array-impl.h:194
bool isInRange(int i0, int i1, int i2, int i3) const
Definition array-impl.h:1224
Array< typename multicomponent_traits< T_numtype >::T_element, N_rank > operator[](const int component)
Definition array-impl.h:2238
_bz_ArrayExpr< ArrayIndexMapping< typename asExpr< T_array >::T_expr, N0 > > operator()(IndexPlaceholder< N0 >) const
Definition array-impl.h:2095
int length(int rank) const
Definition array-impl.h:1005
T_numtype &restrict operator()(int i0, int i1, int i2, int i3)
Definition array-impl.h:1740
void resize(const TinyVector< int, N_rank > &)
const T_numtype &restrict operator()(TinyVector< int, 2 > index) const
Definition array-impl.h:1489
_bz_ArrayExpr< ArrayIndexMapping< typename asExpr< T_array >::T_expr, N0, N1, N2, N3, N4 > > operator()(IndexPlaceholder< N0 >, IndexPlaceholder< N1 >, IndexPlaceholder< N2 >, IndexPlaceholder< N3 >, IndexPlaceholder< N4 >) const
Definition array-impl.h:2129
const T_numtype &restrict operator()(const TinyVector< int, 7 > &index) const
Definition array-impl.h:1575
_bz_ArrayExpr< ArrayIndexMapping< typename asExpr< T_array >::T_expr, N0, N1, N2, N3, N4, N5 > > operator()(IndexPlaceholder< N0 >, IndexPlaceholder< N1 >, IndexPlaceholder< N2 >, IndexPlaceholder< N3 >, IndexPlaceholder< N4 >, IndexPlaceholder< N5 >) const
Definition array-impl.h:2140
_bz_inline2 void setupStorage(int rank)
TinyVector< int, N_rank > ubound() const
Definition array-impl.h:1185
Array(_bz_ArrayExpr< T_expr > expr)
Construct an array from an expression.
void constructSubarray(Array< T_numtype, N_rank > &array, Range r0, Range r1, Range r2, Range r3, Range r4, Range r5, Range r6, Range r7, Range r8, Range r9)
void resize(Range r1, Range r2, Range r3, Range r4, Range r5, Range r6, Range r7, Range r8, Range r9, Range r10, Range r11)
const T_numtype &restrict operator()(int i0, int i1, int i2, int i3, int i4, int i5, int i6, int i7, int i8, int i9, int i10) const
Definition array-impl.h:1857
void resize(Range r1, Range r2, Range r3, Range r4, Range r5, Range r6, Range r7)
bool isInRange(int i0, int i1, int i2) const
Definition array-impl.h:1218
static int rank()
Definition array-impl.h:1036
_bz_ArrayExpr< ArrayIndexMapping< typename asExpr< T_array >::T_expr, N0, N1 > > operator()(IndexPlaceholder< N0 >, IndexPlaceholder< N1 >) const
Definition array-impl.h:2103
bool assertInRange(const T_index &BZ_DEBUG_PARAM(index)) const
Definition array-impl.h:1320
bool isInRange(int i0, int i1, int i2, int i3, int i4, int i5, int i6, int i7, int i8, int i9, int i10) const
Definition array-impl.h:1297
int ordering(int storageRankIndex) const
Definition array-impl.h:1023
Array(Array< T_numtype, N_rank > &array, Range r0, Range r1, Range r2, Range r3, Range r4, Range r5, Range r6, Range r7, Range r8, Range r9, Range r10)
Definition array-impl.h:844
T_array operator()(Range r0, Range r1, Range r2) const
Definition array-impl.h:1908
int extent(int rank) const
Definition array-impl.h:975
const TinyVector< int, N_rank > & extent() const
Definition array-impl.h:978
Array(Array< T_numtype, N_rank > &array, const StridedDomain< N_rank > &subdomain)
Definition array-impl.h:858
T_array operator()(Range r0, Range r1, Range r2, Range r3, Range r4, Range r5, Range r6, Range r7, Range r8, Range r9, Range r10) const
Definition array-impl.h:1953
Array(Array< T_numtype, N_rank > &array, Range r0, Range r1, Range r2, Range r3, Range r4, Range r5, Range r6, Range r7, Range r8, Range r9)
Definition array-impl.h:838
void reverseSelf(int rank)
T_array & operator|=(BZ_ETPARM(_bz_ArrayExpr< T_expr >) expr)
Scalar operand assignment.
T_numtype *restrict dataFirst()
Definition array-impl.h:955
bool assertInRange(int BZ_DEBUG_PARAM(i0), int BZ_DEBUG_PARAM(i1), int BZ_DEBUG_PARAM(i2), int BZ_DEBUG_PARAM(i3), int BZ_DEBUG_PARAM(i4), int BZ_DEBUG_PARAM(i5), int BZ_DEBUG_PARAM(i6), int BZ_DEBUG_PARAM(i7)) const
Definition array-impl.h:1399
T_numtype &restrict operator()(const TinyVector< int, N_rank2 > &index)
Definition array-impl.h:1471
Array(int length0, int length1, int length2, int length3, int length4, int length5, int length6, int length7, int length8, GeneralArrayStorage< N_rank > storage=T_default_storage())
Definition array-impl.h:292
Array(int length0, int length1, int length2, int length3, int length4, int length5, int length6, int length7, int length8, int length9, GeneralArrayStorage< N_rank > storage=T_default_storage())
Definition array-impl.h:310
diffType stride(int rank) const
Definition array-impl.h:1176
T_array & operator^=(BZ_ETPARM(_bz_ArrayExpr< T_expr >) expr)
Scalar operand assignment.
Array(Array< T_numtype, N_rank > &array, Range r0, Range r1, Range r2, Range r3, Range r4)
Definition array-impl.h:808
void resizeAndPreserve(int extent1, int extent2, int extent3, int extent4, int extent5, int extent6, int extent7, int extent8, int extent9, int extent10)
ConstArrayIterator< T_numtype, N_rank > const_iterator
Definition array-impl.h:139
void constructSubarray(Array< T_numtype, N_rank > &array, const RectDomain< N_rank > &)
Array(int length0, int length1, int length2, int length3, GeneralArrayStorage< N_rank > storage=T_default_storage())
Definition array-impl.h:219
T_numtype &restrict operator()(int i0, int i1, int i2, int i3, int i4)
Definition array-impl.h:1755
const T_numtype *restrict data() const
Definition array-impl.h:919
T_array & operator-=(T_numtype)
Scalar operand assignment.
bool assertInRange(int BZ_DEBUG_PARAM(i0), int BZ_DEBUG_PARAM(i1), int BZ_DEBUG_PARAM(i2), int BZ_DEBUG_PARAM(i3), int BZ_DEBUG_PARAM(i4), int BZ_DEBUG_PARAM(i5)) const
Definition array-impl.h:1374
void resize(Range r1, Range r2, Range r3, Range r4, Range r5, Range r6, Range r7, Range r8, Range r9)
const T_numtype &restrict operator()(int i0, int i1) const
Definition array-impl.h:1707
Array(int length0, int length1, int length2, int length3, int length4, int length5, GeneralArrayStorage< N_rank > storage=T_default_storage())
Definition array-impl.h:244
bool assertInRange(int BZ_DEBUG_PARAM(i0), int BZ_DEBUG_PARAM(i1), int BZ_DEBUG_PARAM(i2), int BZ_DEBUG_PARAM(i3), int BZ_DEBUG_PARAM(i4), int BZ_DEBUG_PARAM(i5), int BZ_DEBUG_PARAM(i6)) const
Definition array-impl.h:1386
Array(Array< T_numtype, N_rank > &array, Range r0, Range r1, Range r2, Range r3)
Definition array-impl.h:802
bool isInRange(int i0, int i1, int i2, int i3, int i4) const
Definition array-impl.h:1231
T_numtype &restrict operator()(int i0, int i1)
Definition array-impl.h:1713
T_array & operator|=(const Array< P_numtype2, N_rank > &)
Scalar operand assignment.
ListInitializationSwitch< T_array > operator=(T_numtype x)
Scalar operand assignment.
Definition array-impl.h:2271
T_numtype & operator()(const TinyVector< int, 11 > &index)
Definition array-impl.h:1681
void resize(int extent1, int extent2)
const T_numtype &restrict operator()(const TinyVector< int, 9 > &index) const
Definition array-impl.h:1619
Array< typename multicomponent_traits< T_numtype >::T_element, N_rank > operator[](const unsigned component)
Definition array-impl.h:2222
iterator begin()
Definition array-impl.h:887
T_array & operator/=(T_numtype)
Scalar operand assignment.
void resizeAndPreserve(int extent1, int extent2, int extent3)
const T_numtype &restrict operator()(const TinyVector< int, 10 > &index) const
Definition array-impl.h:1643
sizeType size() const
Definition array-impl.h:1162
TinyVector< int, N_rank > T_index
Definition array-impl.h:134
bool threadLocal(bool disableLock=true) const
Definition array-impl.h:1179
void slice(int rank, Range r)
Array(Range r0, Range r1, Range r2, Range r3, Range r4, Range r5, Range r6, Range r7, Range r8, Range r9, GeneralArrayStorage< N_rank > storage=T_default_storage())
Definition array-impl.h:680
_bz_ArrayExpr< ArrayIndexMapping< typename asExpr< T_array >::T_expr, N0, N1, N2, N3 > > operator()(IndexPlaceholder< N0 >, IndexPlaceholder< N1 >, IndexPlaceholder< N2 >, IndexPlaceholder< N3 >) const
Definition array-impl.h:2120
T_array operator()(Range r0, Range r1) const
Definition array-impl.h:1903
const T_numtype &restrict operator()(int i0, int i1, int i2, int i3, int i4) const
Definition array-impl.h:1747
void resize(int extent1, int extent2, int extent3, int extent4, int extent5, int extent6, int extent7, int extent8, int extent9)
Array(T_numtype *restrict dataFirst, TinyVector< int, N_rank > shape, preexistingMemoryPolicy deletionPolicy, GeneralArrayStorage< N_rank > storage=T_default_storage(contiguousData))
Construct an array from an existing block of memory.
Definition array-impl.h:402
T_numtype & operator()(const TinyVector< int, 4 > &index)
Definition array-impl.h:1527
const TinyVector< int, N_rank > & ordering() const
Definition array-impl.h:1026
T_array operator()(Range r0, Range r1, Range r2, Range r3) const
Definition array-impl.h:1913
bool assertInRange(int BZ_DEBUG_PARAM(i0), int BZ_DEBUG_PARAM(i1), int BZ_DEBUG_PARAM(i2)) const
Definition array-impl.h:1342
int lbound(int rank) const
Definition array-impl.h:1000
const T_numtype &restrict operator()(const TinyVector< int, 5 > &index) const
Definition array-impl.h:1535
Array(Array< T_numtype, N_rank > &array, Range r0, Range r1, Range r2)
Definition array-impl.h:797
T_array & operator<<=(BZ_ETPARM(_bz_ArrayExpr< T_expr >) expr)
Scalar operand assignment.
T_array operator()(const RectDomain< N_rank > &subdomain) const
Definition array-impl.h:1887
GeneralArrayStorage< N_rank > storage_
Definition array-impl.h:2502
T_array operator()(const StridedDomain< N_rank > &subdomain) const
Definition array-impl.h:1893
Array(Range r0, Range r1, Range r2, Range r3, Range r4, Range r5, Range r6, GeneralArrayStorage< N_rank > storage=T_default_storage())
Definition array-impl.h:588
int dimensions() const
Definition array-impl.h:961
T_numtype *restrict data()
Definition array-impl.h:922
T_array operator()(Range r0, Range r1, Range r2, Range r3, Range r4) const
Definition array-impl.h:1918
T_numtype & operator()(TinyVector< int, 2 > index)
Definition array-impl.h:1496
void resizeAndPreserve(int extent1, int extent2, int extent3, int extent4, int extent5, int extent6, int extent7)
void free()
Definition array-impl.h:985
diffType dataOffset() const
Definition array-impl.h:916
bool isInRange(const T_index &index) const
Definition array-impl.h:1312
T_array & operator*=(T_numtype)
Scalar operand assignment.
T_array & operator+=(BZ_ETPARM(_bz_ArrayExpr< T_expr >) expr)
Scalar operand assignment.
void constructSubarray(Array< T_numtype, N_rank > &array, Range r0, Range r1, Range r2, Range r3, Range r4, Range r5, Range r6, Range r7, Range r8)
int rows() const
Definition array-impl.h:1152
void setStorage(GeneralArrayStorage< N_rank >)
const T_numtype &restrict operator()(int i0, int i1, int i2, int i3, int i4, int i5, int i6, int i7, int i8, int i9) const
Definition array-impl.h:1837
void resizeAndPreserve(int extent1, int extent2)
bool isStorageContiguous() const
void constructSubarray(Array< T_numtype, N_rank > &array, Range r0, Range r1)
const T_numtype &restrict operator()(int i0, int i1, int i2, int i3, int i4, int i5, int i6) const
Definition array-impl.h:1781
void resize(int extent1, int extent2, int extent3, int extent4, int extent5, int extent6)
T_numtype &restrict operator()(int i0, int i1, int i2)
Definition array-impl.h:1726
Array(Array< T_numtype, N_rank > &array, Range r0, Range r1)
Definition array-impl.h:792
_bz_inline2 void computeStrides()
sizeType numElements() const
Definition array-impl.h:1012
Array(Range r0, Range r1, Range r2, GeneralArrayStorage< N_rank > storage=T_default_storage())
Definition array-impl.h:504
T_numtype & operator()(const TinyVector< int, 6 > &index)
Definition array-impl.h:1565
void resizeAndPreserve(int extent1, int extent2, int extent3, int extent4, int extent5)
diffType zeroOffset_
Definition array-impl.h:2505
_bz_ArrayExpr< ArrayIndexMapping< typename asExpr< T_array >::T_expr, N0, N1, N2, N3, N4, N5, N6, N7 > > operator()(IndexPlaceholder< N0 >, IndexPlaceholder< N1 >, IndexPlaceholder< N2 >, IndexPlaceholder< N3 >, IndexPlaceholder< N4 >, IndexPlaceholder< N5 >, IndexPlaceholder< N6 >, IndexPlaceholder< N7 >) const
Definition array-impl.h:2163
const T_numtype &restrict operator()(const TinyVector< int, N_rank2 > &index) const
Definition array-impl.h:1464
const T_numtype &restrict operator()(const TinyVector< int, 8 > &index) const
Definition array-impl.h:1597
T_array operator()(Range r0, Range r1, Range r2, Range r3, Range r4, Range r5, Range r6) const
Definition array-impl.h:1929
bool isInRangeForDim(int i, int d) const
Definition array-impl.h:1205
T_array & operator*=(const Array< P_numtype2, N_rank > &)
Scalar operand assignment.
void resizeAndPreserve(const TinyVector< int, N_rank > &)
RectDomain< N_rank > domain() const
Definition array-impl.h:964
bool isMinorRank(int rank) const
Definition array-impl.h:993
T_array & operator-=(const Array< P_numtype2, N_rank > &)
Scalar operand assignment.
const Array< typename multicomponent_traits< T_numtype >::T_element, N_rank > operator[](const int component) const
Definition array-impl.h:2243
void resize(Range r1, Range r2, Range r3, Range r4, Range r5, Range r6)
int columns() const
Definition array-impl.h:905
Array(Range r0, Range r1, Range r2, Range r3, Range r4, Range r5, Range r6, Range r7, GeneralArrayStorage< N_rank > storage=T_default_storage())
Definition array-impl.h:616
T_array operator()(Range r0) const
Definition array-impl.h:1898
void resize(Range r1, Range r2, Range r3, Range r4, Range r5)
T_numtype &restrict operator()(int i0, int i1, int i2, int i3, int i4, int i5, int i6, int i7)
Definition array-impl.h:1808
void resizeAndPreserve(int extent1, int extent2, int extent3, int extent4, int extent5, int extent6, int extent7, int extent8, int extent9)
T_numtype &restrict operator()(int i0, int i1, int i2, int i3, int i4, int i5, int i6, int i7, int i8, int i9)
Definition array-impl.h:1847
T_array & operator+=(T_numtype)
Scalar operand assignment.
Array(Range r0, Range r1, GeneralArrayStorage< N_rank > storage=T_default_storage())
Definition array-impl.h:489
Array(Array< T_numtype, N_rank > &array, Range r0, Range r1, Range r2, Range r3, Range r4, Range r5, Range r6)
Definition array-impl.h:820
Array(T_numtype *restrict dataFirst, TinyVector< int, N_rank > shape, GeneralArrayStorage< N_rank > storage=T_default_storage(contiguousData))
Definition array-impl.h:354
void constructSubarray(Array< T_numtype, N_rank > &array, const StridedDomain< N_rank > &)
Array(const Array< T_numtype, N_rank > &array)
Definition array-impl.h:757
Array(Array< T_numtype, N_rank > &array, const RectDomain< N_rank > &subdomain)
Definition array-impl.h:851
iterator end()
Definition array-impl.h:969
bool isInRange(int i0) const
Definition array-impl.h:1209
void doTranspose(int destRank, int sourceRank, T_array &array)
void resize(Range r1, Range r2)
bool isInRange(int i0, int i1, int i2, int i3, int i4, int i5, int i6, int i7) const
Definition array-impl.h:1258
void constructSubarray(Array< T_numtype, N_rank > &array, Range r0, Range r1, Range r2, Range r3, Range r4, Range r5, Range r6, Range r7, Range r8, Range r9, Range r10)
void reindexSelf(const TinyVector< int, N_rank > &)
GeneralArrayStorage< N_rank > T_default_storage
Set default storage order.
Definition array-impl.h:154
T_array & operator&=(T_numtype)
Scalar operand assignment.
const TinyVector< int, N_rank > & length() const
Definition array-impl.h:1007
void reference(const T_array &)
void constructSubarray(Array< T_numtype, N_rank > &array, Range r0, Range r1, Range r2, Range r3, Range r4, Range r5, Range r6)
_bz_ArrayExpr< ArrayIndexMapping< typename asExpr< T_array >::T_expr, N0, N1, N2, N3, N4, N5, N6 > > operator()(IndexPlaceholder< N0 >, IndexPlaceholder< N1 >, IndexPlaceholder< N2 >, IndexPlaceholder< N3 >, IndexPlaceholder< N4 >, IndexPlaceholder< N5 >, IndexPlaceholder< N6 >) const
Definition array-impl.h:2151
Array(int length0, int length1, int length2, int length3, int length4, int length5, int length6, int length7, GeneralArrayStorage< N_rank > storage=T_default_storage())
Definition array-impl.h:275
const TinyVector< int, N_rank > & base() const
Definition array-impl.h:881
void dumpStructureInformation(ostream &os=cout) const
void constructSubarray(Array< T_numtype, N_rank > &array, Range r0, Range r1, Range r2, Range r3)
void slice(int &setRank, Range r, Array< T_numtype, N_rank2 > &array, TinyVector< int, N_rank2 > &rankMap, int sourceRank)
T_array & operator=(const Array< P_numtype2, N_rank > &)
Scalar operand assignment.
void resize(Range r1, Range r2, Range r3)
Definition array-impl.h:76
Definition array-impl.h:79
Definition array-impl.h:85
Definition memblock.h:307
MemoryBlockReference()
Definition memblock.h:367
void changeToNullBlock()
Definition memblock.h:462
bool lockReferenceCount(bool lockingPolicy) const
Definition memblock.h:451
T_type *restrict data_
Definition memblock.h:313
sizeType blockLength() const
Returns the allocated length of the memory block.
Definition memblock.h:435
T_numtype first(T_numtype lowRange=0) const
Definition range.h:228
bool isAscendingContiguous() const
Definition range.h:253
int length(int=0) const
Definition range.h:242
The TinyVector class is a one-dimensional, fixed length vector that implements the blitz expression t...
Definition tinyvec2.h:73
Definition array-impl.h:82
Definition tvecglobs.h:70
static T_ret product(const TinyVector< T_numtype1, N_length > &a)
Definition tvecglobs.h:83
static bool isVectorAligned(const T *restrict pointer)
Test if a pointer to T is simd aligned.
Definition simdtypes.h:46
#define restrict
Definition compiler.h:95
Definition array-impl.h:66
ostream & operator<<(ostream &, const Array< T_numtype, 1 > &)
ptrdiff_t diffType
Definition blitz.h:111
N_length const TinyVector< T_numtype2, N_length > & b
Definition tvecglobs.h:49
istream & operator>>(istream &is, Array< T_numtype, N_rank > &x)
void find(Array< TinyVector< int, N_rank >, 1 > &, const Array< P_numtype, N_rank > &)
Definition array-impl.h:2537
void swap(Array< P_numtype, N_rank > &, Array< P_numtype, N_rank > &)
Definition array-impl.h:2523
size_t sizeType
Definition blitz.h:110
preexistingMemoryPolicy
Definition memblock.h:49
@ deleteDataWhenDone
Definition memblock.h:51
@ duplicateData
Definition memblock.h:50
@ neverDeleteData
Definition memblock.h:52
N_length & a
Definition tvecglobs.h:47
#define _bz_inline2
Definition tuning.h:126
#define BZ_ETPARM(X)
Definition tuning.h:138