4 #ifndef CONTAINER_CLASSES_H_ 
    5 #define CONTAINER_CLASSES_H_ 
   15 static const int32 
MA_VERS[
ML_TOP] = { 120070905, 220070803, 320071126 };
 
   18 #define MEM_LAYOUT_VAL C_TYPE 
   20 #define MEM_LAYOUT_VAL ARPA_TYPE 
   25 template<
class T, 
bool lgBC>
 
   28         static const int p_nd = lgBC ? 3 : 1;
 
   36                         if( t < 
p_p[1] || t >= 
p_p[2] )
 
  120 template<
class T, 
bool lgBC>
 
  141 template<
class T, 
bool lgBC>
 
  150 template<
class T, 
bool lgBC>
 
  188 template<
class T, 
bool lgBC>
 
  261                         return getvec(i-1,index).
d[index[i-1]];
 
  268                         return getvec(i-1,index).
d[index[i-1]];
 
  274 template<
int d,mem_layout ALLOC=MEM_LAYOUT_VAL>
 
  295                 for( 
int i=0; i < d; ++i )
 
  329                         for( 
int i=0; i < d; ++i )
 
  356                 s[n-1] = 
max(
s[n-1],index[n-1]);
 
  357                 nsl[n-1] += index[n-1];
 
  383                                "Allocation type must be C_TYPE or ARPA_TYPE" );
 
  387                         for( 
int dim=0; dim < d; ++dim )
 
  388                                 n1[dim] = n2[dim] = 0L;
 
  391                         for( 
int dim=0; dim < d-1; ++dim )
 
  395                 else if( ALLOC == 
C_TYPE )
 
  398                         for( 
int i = d-2; i >= 0; --i )
 
  399                                 st[i] = 
st[i+1]*
s[i];
 
  533 template<
class T, 
int N, mem_layout ALLOC, 
bool lgBC> 
class n_pointer;
 
  536 template<
class T, 
int N>
 
  551 template<
class T, 
int N>
 
  596 template<
class T, 
int N>
 
  613 template<
class T, 
int N>
 
  626                 return value_type( p_p+i*p_st[0], p_st+1, &p_v->d[i] );
 
  664 template<
class T, 
int N>
 
  679 template<
class T, 
int N>
 
  724 template<
class T, 
int N>
 
  741 template<
class T, 
int N>
 
  754                 return value_type( p_p+i*p_st[0], p_st+1, &p_v->d[i] );
 
  914 template<
class T, 
int d, mem_layout ALLOC=MEM_LAYOUT_VAL, 
bool lgBC=lgBOUNDSCHECKVAL>
 
  946                 for( 
int i=0; i < d-1; ++i )
 
  952                 for( 
int i=0; i < d-1; ++i )
 
  993                 size_type index[] = { d1, d2, d3, d4, d5 };
 
  999                 size_type index[] = { d1, d2, d3, d4, d5, d6 };
 
 1034                         memset( 
data(), 0, 
p_g.size*
sizeof(T) );
 
 1046                 p_g.reserve( 1, index );
 
 1052                 p_g.reserve( 2, index );
 
 1057                 const size_type index[] = { i1, i2, i3 };
 
 1058                 p_g.reserve( 3, index );
 
 1063                 const size_type index[] = { i1, i2, i3, i4 };
 
 1064                 p_g.reserve( 4, index );
 
 1069                 const size_type index[] = { i1, i2, i3, i4, i5 };
 
 1070                 p_g.reserve( 5, index );
 
 1075                 const size_type index[] = { i1, i2, i3, i4, i5, i6 };
 
 1076                 p_g.reserve( 6, index );
 
 1082                                "Allocation type must be C_TYPE or ARPA_TYPE" );
 
 1088                         for( 
int dim=0; dim < d; ++dim )
 
 1090                                 n1[dim] = n2[dim] = 0L;
 
 1094                                         if( 
p_g.nsl[dim] > 0 )
 
 1095                                                 p_psl[dim] = 
new T*[ 
p_g.nsl[dim] ];
 
 1107                 else if( ALLOC == 
C_TYPE )
 
 1109                         for( 
int i=0; i < d-1; ++i )
 
 1153                 size_type index[] = { d1, d2, d3, d4, d5 };
 
 1158                 size_type index[] = { d1, d2, d3, d4, d5, d6 };
 
 1163                 for( 
int n=0; n < d; n++ )
 
 1166                 p_g.reserve_recursive( 0, index );
 
 1206                 if( 
p_g.lgInbounds( 1, index ) )
 
 1210                         T* s = ( n > 0 ) ? &(*t)[i1][0] : 
NULL;
 
 1226                         return iterator( &(*t)[i1][i2][i3] );
 
 1232                 if( 
p_g.lgInbounds( 2, index ) )
 
 1236                         T* s = ( n > 0 ) ? &(*t)[i1][i2][0] : 
NULL;
 
 1252                         return iterator( &(*t)[i1][i2][i3][i4] );
 
 1258                 if( 
p_g.lgInbounds( 3, index ) )
 
 1262                         T* s = ( n > 0 ) ? &(*t)[i1][i2][i3][0] : 
NULL;
 
 1278                         return iterator( &(*t)[i1][i2][i3][i4][i5] );
 
 1284                 if( 
p_g.lgInbounds( 4, index ) )
 
 1288                         T* s = ( n > 0 ) ? &(*t)[i1][i2][i3][i4][0] : 
NULL;
 
 1304                         return iterator( &(*t)[i1][i2][i3][i4][i5][i6] );
 
 1309                 size_type index[] = { i1, i2, i3, i4, i5 };
 
 1310                 if( 
p_g.lgInbounds( 5, index ) )
 
 1314                         T* s = ( n > 0 ) ? &(*t)[i1][i2][i3][i4][i5][0] : 
NULL;
 
 1347                 if( !
p_g.lgInbounds( 2, index ) )
 
 1349                 return (*
this)[i1][i2];
 
 1354                 if( !
p_g.lgInbounds( 2, index ) )
 
 1356                 return (*
this)[i1][i2];
 
 1361                 if( !
p_g.lgInbounds( 3, index ) )
 
 1363                 return (*
this)[i1][i2][i3];
 
 1368                 if( !
p_g.lgInbounds( 3, index ) )
 
 1370                 return (*
this)[i1][i2][i3];
 
 1375                 if( !
p_g.lgInbounds( 4, index ) )
 
 1377                 return (*
this)[i1][i2][i3][i4];
 
 1382                 if( !
p_g.lgInbounds( 4, index ) )
 
 1384                 return (*
this)[i1][i2][i3][i4];
 
 1388                 size_type index[] = { i1, i2, i3, i4, i5 };
 
 1389                 if( !
p_g.lgInbounds( 5, index ) )
 
 1391                 return (*
this)[i1][i2][i3][i4][i5];
 
 1395                 size_type index[] = { i1, i2, i3, i4, i5 };
 
 1396                 if( !
p_g.lgInbounds( 5, index ) )
 
 1398                 return (*
this)[i1][i2][i3][i4][i5];
 
 1402                 size_type index[] = { i1, i2, i3, i4, i5, i6 };
 
 1403                 if( !
p_g.lgInbounds( 6, index ) )
 
 1405                 return (*
this)[i1][i2][i3][i4][i5][i6];
 
 1409                 size_type index[] = { i1, i2, i3, i4, i5, i6 };
 
 1410                 if( !
p_g.lgInbounds( 6, index ) )
 
 1412                 return (*
this)[i1][i2][i3][i4][i5][i6];
 
 1544                         return p_iterator(i1, i2, i3, i4, 
p_g.v.d[i1].d[i2].d[i3].d[i4].n);
 
 1551                         return p_iterator(i1, i2, i3, i4, 
p_g.v.d[i1].d[i2].d[i3].d[i4].n);
 
 1558                         return p_iterator(i1, i2, i3, i4, i5, 
p_g.v.d[i1].d[i2].d[i3].d[i4].d[i5].n);
 
 1565                         return p_iterator(i1, i2, i3, i4, i5, 
p_g.v.d[i1].d[i2].d[i3].d[i4].d[i5].n);
 
 1578                 return *
begin(i1, i2);
 
 1582                 return *
begin(i1, i2);
 
 1586                 return *
begin(i1, i2, i3);
 
 1590                 return *
begin(i1, i2, i3);
 
 1594                 return *
begin(i1, i2, i3, i4);
 
 1598                 return *
begin(i1, i2, i3, i4);
 
 1602                 return *
begin(i1, i2, i3, i4, i5);
 
 1606                 return *
begin(i1, i2, i3, i4, i5);
 
 1611                 return *(
end(i1) - 1);
 
 1615                 return *(
end(i1) - 1);
 
 1619                 return *(
end(i1, i2) - 1);
 
 1623                 return *(
end(i1, i2) - 1);
 
 1627                 return *(
end(i1, i2, i3) - 1);
 
 1631                 return *(
end(i1, i2, i3) - 1);
 
 1635                 return *(
end(i1, i2, i3, i4) - 1);
 
 1639                 return *(
end(i1, i2, i3, i4) - 1);
 
 1643                 return *(
end(i1, i2, i3, i4, i5) - 1);
 
 1647                 return *(
end(i1, i2, i3, i4, i5) - 1);
 
 1660                 for( 
int i=0; i < d-1; ++i )
 
 1663                 return ( 
p_g.size == 0UL && 
p_dsl.size() == 0 );
 
 1742 #define INSTANTIATE_MULTI_ARR( TYPE, BC ) \ 
 1743 template class pntr<TYPE,BC>; \ 
 1744 template class const_pntr<TYPE,BC>; 
 1746 template<
class T, 
bool lgBC=lgBOUNDSCHECKVAL>
 
 1801                 alloc( begin, end );
 
 1871                         p_size = (size_t)(end-begin);
 
 1890                         T* nptr = nptr_alloc - 
p_begin;
 
 1903                         p_size = (size_t)(end-p_begin);
 
 2018                 return ( 
size() == 0 );
 
const_pointer data() const 
Definition: container_classes.h:2025
 
const_iterator end(size_type i1, size_type i2, size_type i3, size_type i4, size_type i5) const 
Definition: container_classes.h:1560
 
multi_arr< realnum, 2 >::const_iterator mr2ci
Definition: container_classes.h:1720
 
T * operator->() const 
Definition: container_classes.h:102
 
iterator begin(size_type i1)
Definition: container_classes.h:1456
 
random_access_iterator_tag iterator_category
Definition: container_classes.h:929
 
iterator p_iterator_bc(size_type i1, size_type i2, size_type i3) const 
Definition: container_classes.h:1229
 
multi_arr< double, 2 >::const_iterator md2ci
Definition: container_classes.h:1731
 
void p_setupArray(size_type n1[], size_type n2[], const tree_vec *g, size_type l)
Definition: container_classes.h:1172
 
pntr< T, lgBC > iterator
Definition: container_classes.h:937
 
void alloc(size_type d1, size_type d2, size_type d3, size_type d4, size_type d5)
Definition: container_classes.h:1151
 
const_n_pointer(const T *p, const size_t *st=NULL, const tree_vec *v=NULL)
Definition: container_classes.h:672
 
iterator p_iterator(size_type i1, size_type i2) const 
Definition: container_classes.h:1193
 
reference at(size_type i)
Definition: container_classes.h:1948
 
reference back(size_type i1, size_type i2, size_type i3, size_type i4, size_type i5)
Definition: container_classes.h:1641
 
const T * const_pointer
Definition: container_classes.h:1763
 
multi_arr< long, 5 >::iterator ml5i
Definition: container_classes.h:1714
 
reference back(size_type i1, size_type i2, size_type i3)
Definition: container_classes.h:1625
 
size_type size
Definition: container_classes.h:282
 
const T value_type
Definition: container_classes.h:701
 
valarray< T > p_dsl
Definition: container_classes.h:920
 
multi_geom()
Definition: container_classes.h:304
 
const size_t * p_st
Definition: container_classes.h:555
 
multi_arr< realnum, 6 >::iterator mr6i
Definition: container_classes.h:1727
 
const_reference back(size_type i1, size_type i2, size_type i3) const 
Definition: container_classes.h:1629
 
void clear()
Definition: container_classes.h:317
 
n_pointer(T *p, const size_t *st, const tree_vec *v=NULL)
Definition: container_classes.h:559
 
basic_pntr(T *p0)
Definition: container_classes.h:65
 
const_iterator ptr(size_type i1, size_type i2, size_type i3) const 
Definition: container_classes.h:1427
 
const_reference at(size_type i1, size_type i2, size_type i3, size_type i4) const 
Definition: container_classes.h:1379
 
pntr & operator++()
Definition: container_classes.h:130
 
T value_type
Definition: container_classes.h:654
 
const_pntr & operator--()
Definition: container_classes.h:164
 
multi_geom(const multi_geom &m)
Definition: container_classes.h:308
 
pntr - interface class to replace normal pointers 
Definition: container_classes.h:121
 
const_pntr(const pntr< T, lgBC > &t)
Definition: container_classes.h:159
 
flex_arr()
Definition: container_classes.h:1794
 
iterator begin(size_type i1, size_type i2)
Definition: container_classes.h:1464
 
iterator ptr(size_type i1, size_type i2, size_type i3, size_type i4, size_type i5, size_type i6)
Definition: container_classes.h:1447
 
const_iterator begin(size_type i1, size_type i2, size_type i3) const 
Definition: container_classes.h:1476
 
const_reference at(size_type i) const 
Definition: container_classes.h:1954
 
T * get_ptr(T *v)
Definition: cddefines.h:1115
 
NORETURN void TotalInsanity(void)
Definition: service.cpp:1174
 
void alloc()
Definition: container_classes.h:1078
 
T & operator[](const ptrdiff_t n) const 
Definition: container_classes.h:106
 
ptrdiff_t difference_type
Definition: container_classes.h:58
 
flex_arr< realnum >::const_iterator farci
Definition: container_classes.h:2046
 
void p_set_vals(T *p0, T *p1, T *p2)
Definition: container_classes.h:41
 
const T * const_pointer
Definition: container_classes.h:934
 
static const size_type npos
Definition: container_classes.h:941
 
long size_type
Definition: container_classes.h:1764
 
void zero()
Definition: container_classes.h:1030
 
const_iterator ptr(size_type i1, size_type i2, size_type i3, size_type i4) const 
Definition: container_classes.h:1435
 
multi_arr< bool, 5 >::const_iterator mb5ci
Definition: container_classes.h:1704
 
const T value_type
Definition: container_classes.h:765
 
const_reference at(size_type i1, size_type i2, size_type i3, size_type i4, size_type i5) const 
Definition: container_classes.h:1393
 
iterator p_iterator(size_type i1, size_type i2, size_type i3, size_type i4, size_type i5, size_type i6) const 
Definition: container_classes.h:1297
 
const_reference back(size_type i1, size_type i2, size_type i3, size_type i4, size_type i5) const 
Definition: container_classes.h:1645
 
T * p_p
Definition: container_classes.h:539
 
bool operator!=(const basic_pntr &t) const 
Definition: container_classes.h:112
 
const_pointer data() const 
Definition: container_classes.h:1673
 
const tree_vec * p_v
Definition: container_classes.h:714
 
multi_arr< long, 3 >::iterator ml3i
Definition: container_classes.h:1710
 
reference at(size_type i1, size_type i2)
Definition: container_classes.h:1344
 
void p_clear0()
Definition: container_classes.h:943
 
reference front(size_type i1, size_type i2)
Definition: container_classes.h:1576
 
void p_clear0()
Definition: container_classes.h:1770
 
multi_arr< long, 2 >::const_iterator ml2ci
Definition: container_classes.h:1709
 
const tree_vec * p_v
Definition: container_classes.h:652
 
T value_type
Definition: container_classes.h:930
 
basic_pntr()
Definition: container_classes.h:69
 
multi_arr< long, 2 >::iterator ml2i
Definition: container_classes.h:1708
 
const_iterator ptr(size_type i1, size_type i2, size_type i3, size_type i4, size_type i5) const 
Definition: container_classes.h:1443
 
const tree_vec & getvec(const size_type i, const size_type index[]) const 
Definition: container_classes.h:263
 
const tree_vec * p_v
Definition: container_classes.h:571
 
void invalidate_array(T *p, size_t size)
Definition: cddefines.h:1097
 
size_type size() const 
Definition: container_classes.h:1650
 
const_pntr - same as pntr, except that it replaces const pointers rather than normal pointers ...
Definition: container_classes.h:151
 
const_pntr< T, lgBC > const_iterator
Definition: container_classes.h:1767
 
void reserve(size_type i1, size_type i2, size_type i3, size_type i4, size_type i5, size_type i6)
Definition: container_classes.h:1072
 
const tree_vec * p_v
Definition: container_classes.h:635
 
void reserve(const size_type n, const size_type index[])
Definition: container_classes.h:345
 
bool operator<=(const basic_pntr &t) const 
Definition: container_classes.h:114
 
iterator end()
Definition: container_classes.h:1981
 
reference front(size_type i1)
Definition: container_classes.h:1568
 
void p_clear0()
Definition: container_classes.h:205
 
basic_pntr & operator++()
Definition: container_classes.h:80
 
Definition: container_classes.h:1747
 
void reserve(size_type i1, size_type i2)
Definition: container_classes.h:1048
 
size_type st[d]
size of each dimension (only used in C_TYPE layout) 
Definition: container_classes.h:284
 
iterator p_iterator(size_type i1, size_type i2, size_type i3, size_type i4, size_type i5) const 
Definition: container_classes.h:1271
 
size_t p_size
Definition: container_classes.h:1749
 
const_n_pointer(const T *p, const size_t *st, const tree_vec *v=NULL)
Definition: container_classes.h:717
 
reference operator[](size_type i)
Definition: container_classes.h:1939
 
multi_arr< realnum, 3 >::const_iterator mr3ci
Definition: container_classes.h:1722
 
flex_arr< realnum >::iterator fari
Definition: container_classes.h:2045
 
const T * p_p
Definition: container_classes.h:778
 
const tree_vec * p_v
Definition: container_classes.h:541
 
n_pointer(T *p, const size_t *st, const tree_vec *v)
Definition: container_classes.h:638
 
const size_t * p_st
Definition: container_classes.h:668
 
T value_type
Definition: container_classes.h:52
 
void invalidate()
Definition: container_classes.h:1843
 
const_n_pointer< T, d-1, ALLOC, lgBC > const_indexed_type
Definition: container_classes.h:1338
 
T *** p_ptr3
Definition: container_classes.h:923
 
const tree_vec * p_v
Definition: container_classes.h:669
 
iterator ptr(size_type i1, size_type i2)
Definition: container_classes.h:1415
 
const_iterator begin(size_type i1) const 
Definition: container_classes.h:1460
 
void clear()
Definition: container_classes.h:1011
 
iterator end(size_type i1, size_type i2, size_type i3, size_type i4, size_type i5)
Definition: container_classes.h:1553
 
void reserve(size_type size)
Definition: container_classes.h:1849
 
T ** p_ptr2
Definition: container_classes.h:922
 
const T & operator[](const ptrdiff_t n) const 
Definition: container_classes.h:177
 
T * pointer
Definition: container_classes.h:55
 
const_reference back(size_type i1) const 
Definition: container_classes.h:1613
 
NORETURN void OUT_OF_RANGE(const char *str)
Definition: cddefines.h:646
 
random_access_iterator_tag iterator_category
Definition: container_classes.h:1758
 
tree_vec * d
Definition: container_classes.h:202
 
reference at(size_type i1, size_type i2, size_type i3, size_type i4, size_type i5, size_type i6)
Definition: container_classes.h:1400
 
const tree_vec * p_v
Definition: container_classes.h:601
 
multi_arr< long, 4 >::const_iterator ml4ci
Definition: container_classes.h:1713
 
tree_vec & getvec(const size_type i, const size_type index[])
Definition: container_classes.h:256
 
flex_arr(const flex_arr &f)
Definition: container_classes.h:1803
 
const size_t * p_st
Definition: container_classes.h:683
 
multi_arr< long, 3 >::const_iterator ml3ci
Definition: container_classes.h:1711
 
multi_arr< bool, 5 >::iterator mb5i
Definition: container_classes.h:1703
 
~basic_pntr()
Definition: container_classes.h:77
 
void p_free(T *p) const 
Definition: container_classes.h:1788
 
T * p_p
Definition: container_classes.h:569
 
const size_t * p_st
Definition: container_classes.h:698
 
const_pointer ptr0() const 
Definition: container_classes.h:2034
 
n_pointer< T, N-1, C_TYPE, true > value_type
Definition: container_classes.h:620
 
multi_arr< bool, 4 >::iterator mb4i
Definition: container_classes.h:1701
 
void reserve(size_type i1, size_type i2, size_type i3)
Definition: container_classes.h:1054
 
size_type n
Definition: container_classes.h:201
 
multi_arr< bool, 2 >::const_iterator mb2ci
Definition: container_classes.h:1698
 
const_reference front(size_type i1, size_type i2, size_type i3) const 
Definition: container_classes.h:1588
 
size_type capacity() const 
Definition: container_classes.h:2012
 
pntr< T, lgBC > iterator
Definition: container_classes.h:1766
 
basic_pntr & operator+=(const ptrdiff_t n)
Definition: container_classes.h:95
 
iterator end(size_type i1, size_type i2, size_type i3, size_type i4)
Definition: container_classes.h:1539
 
void zero()
Definition: container_classes.h:1838
 
bool operator>=(const basic_pntr &t) const 
Definition: container_classes.h:116
 
const_n_pointer(const T *p, const size_t *st=NULL, const tree_vec *v=NULL)
Definition: container_classes.h:702
 
const_reference front(size_type i1, size_type i2, size_type i3, size_type i4) const 
Definition: container_classes.h:1596
 
const_reference front(size_type i1, size_type i2) const 
Definition: container_classes.h:1580
 
reference back()
Definition: container_classes.h:1999
 
basic_pntr(T *p0, T *p1, T *p2)
Definition: container_classes.h:61
 
const const_n_pointer< T, d, ALLOC, lgBC > n_ptr() const 
Definition: container_classes.h:1329
 
n_pointer(T *p, const size_t *st=NULL, const tree_vec *v=NULL)
Definition: container_classes.h:574
 
const_pntr(T *p0, T *p1, T *p2)
Definition: container_classes.h:156
 
bool p_init
Definition: container_classes.h:1752
 
const_pntr & operator+=(const ptrdiff_t n)
Definition: container_classes.h:166
 
flex_arr(size_type begin, size_type end)
Definition: container_classes.h:1798
 
void p_clear0()
sizes of each of the pointer arrays 
Definition: container_classes.h:288
 
const_reference back(size_type i1, size_type i2, size_type i3, size_type i4) const 
Definition: container_classes.h:1637
 
const T * p_p
Definition: container_classes.h:682
 
const_iterator end(size_type i1) const 
Definition: container_classes.h:1504
 
static const int p_nd
Definition: container_classes.h:28
 
n_pointer< T, N-1, C_TYPE, false > value_type
Definition: container_classes.h:558
 
bool empty() const 
Definition: container_classes.h:2016
 
const_iterator end(size_type i1, size_type i2, size_type i3, size_type i4) const 
Definition: container_classes.h:1546
 
const_iterator begin() const 
Definition: container_classes.h:1976
 
random_access_iterator_tag iterator_category
Definition: container_classes.h:51
 
size_type size() const 
Definition: container_classes.h:2008
 
multi_arr(size_type d1, size_type d2, size_type d3, size_type d4)
Definition: container_classes.h:984
 
multi_arr< bool, 2 >::iterator mb2i
Definition: container_classes.h:1697
 
T * p_p
Definition: container_classes.h:633
 
const T * p_p
Definition: container_classes.h:712
 
size_t size_type
Definition: container_classes.h:57
 
T **** p_ptr4
Definition: container_classes.h:924
 
const flex_arr & operator=(const flex_arr &f)
Definition: container_classes.h:1812
 
const multi_geom< d, ALLOC > & clone() const 
Definition: container_classes.h:1681
 
basic_pntr & operator--()
Definition: container_classes.h:86
 
void finalize(void)
Definition: container_classes.h:380
 
reference at(size_type i1, size_type i2, size_type i3, size_type i4)
Definition: container_classes.h:1372
 
const_reference at(size_type i1, size_type i2) const 
Definition: container_classes.h:1351
 
size_type capacity() const 
Definition: container_classes.h:1654
 
flex_arr< double >::iterator fadi
Definition: container_classes.h:2047
 
iterator ptr(size_type i1, size_type i2, size_type i3, size_type i4)
Definition: container_classes.h:1431
 
const_n_pointer< T, N-1, C_TYPE, true > value_type
Definition: container_classes.h:748
 
void p_setupArray(size_type n1[], size_type n2[], const tree_vec *w, size_type l)
Definition: container_classes.h:409
 
pointer p_pointer(size_type i) const 
Definition: container_classes.h:1910
 
n_pointer(T *p, const size_t *st, const tree_vec *v)
Definition: container_classes.h:655
 
const size_t * p_st
Definition: container_classes.h:634
 
multi_arr(size_type d1, size_type d2, size_type d3, size_type d4, size_type d5, size_type d6)
Definition: container_classes.h:996
 
const size_t * p_st
Definition: container_classes.h:713
 
const_iterator ptr(size_type i1, size_type i2, size_type i3, size_type i4, size_type i5, size_type i6) const 
Definition: container_classes.h:1451
 
multi_arr< long, 6 >::iterator ml6i
Definition: container_classes.h:1716
 
multi_geom< d, ALLOC > p_g
Definition: container_classes.h:918
 
bool operator==(const basic_pntr &t) const 
Definition: container_classes.h:111
 
void alloc(size_type d1, size_type d2)
Definition: container_classes.h:1136
 
const tree_vec * p_v
Definition: container_classes.h:780
 
const_pntr< T, lgBC > const_iterator
Definition: container_classes.h:938
 
iterator ptr(size_type i1, size_type i2, size_type i3, size_type i4, size_type i5)
Definition: container_classes.h:1439
 
const tree_vec * p_v
Definition: container_classes.h:684
 
~multi_arr()
Definition: container_classes.h:1007
 
Definition: container_classes.h:915
 
const_pntr()
Definition: container_classes.h:157
 
iterator end(size_type i1, size_type i2, size_type i3)
Definition: container_classes.h:1525
 
const T value_type
Definition: container_classes.h:716
 
const size_t * p_st
Definition: container_classes.h:651
 
void alloc(size_type d1, size_type d2, size_type d3, size_type d4)
Definition: container_classes.h:1146
 
T * p_ptr
Definition: container_classes.h:1755
 
multi_arr< bool, 3 >::iterator mb3i
Definition: container_classes.h:1699
 
const size_t * p_st
Definition: container_classes.h:762
 
iterator p_iterator(size_type i1, size_type i2, size_type i3) const 
Definition: container_classes.h:1219
 
const_iterator begin(size_type i1, size_type i2, size_type i3, size_type i4) const 
Definition: container_classes.h:1484
 
const indexed_type operator[](size_type i)
Definition: container_classes.h:1334
 
ptrdiff_t difference_type
Definition: container_classes.h:936
 
const_n_pointer< T, N-1, ARPA_TYPE, true > value_type
Definition: container_classes.h:731
 
ptrdiff_t difference_type
Definition: container_classes.h:1765
 
const T * operator->() const 
Definition: container_classes.h:176
 
iterator p_iterator_bc(size_type i1, size_type i2, size_type i3, size_type i4, size_type i5, size_type i6) const 
Definition: container_classes.h:1307
 
multi_arr< double, 5 >::const_iterator md5ci
Definition: container_classes.h:1737
 
const pntr operator-(const ptrdiff_t n) const 
Definition: container_classes.h:136
 
pntr(T *p0)
Definition: container_classes.h:125
 
multi_arr< double, 5 >::iterator md5i
Definition: container_classes.h:1736
 
Definition: container_classes.h:534
 
const T & const_reference
Definition: container_classes.h:1761
 
iterator p_iterator(size_type i1, size_type i2, size_type i3, size_type i4) const 
Definition: container_classes.h:1245
 
const tree_vec & operator=(const tree_vec &m)
Definition: container_classes.h:239
 
const T & operator*() const 
Definition: container_classes.h:175
 
multi_arr(const multi_geom< d, ALLOC > &g)
Definition: container_classes.h:967
 
void invalidate()
Definition: container_classes.h:1036
 
T ** p_psl[d-1]
Definition: container_classes.h:919
 
reference p_index(size_type i) const 
Definition: container_classes.h:1928
 
const tree_vec * p_v
Definition: container_classes.h:699
 
const_pntr(T *p0)
Definition: container_classes.h:155
 
flex_arr< double >::const_iterator fadci
Definition: container_classes.h:2048
 
pointer data()
Definition: container_classes.h:2021
 
const_iterator begin(size_type i1, size_type i2, size_type i3, size_type i4, size_type i5) const 
Definition: container_classes.h:1492
 
const size_t * p_st
Definition: container_classes.h:600
 
const_reference front(size_type i1) const 
Definition: container_classes.h:1572
 
void p_clear1()
Definition: container_classes.h:950
 
Definition: container_classes.h:12
 
const pntr< T, lgBC > operator+(const ptrdiff_t n, const pntr< T, lgBC > &t)
Definition: container_classes.h:142
 
reference at(size_type i1, size_type i2, size_type i3, size_type i4, size_type i5)
Definition: container_classes.h:1386
 
const n_pointer< T, d, ALLOC, lgBC > n_ptr()
Definition: container_classes.h:1325
 
const_iterator end(size_type i1, size_type i2, size_type i3) const 
Definition: container_classes.h:1532
 
const_iterator begin(size_type i1, size_type i2) const 
Definition: container_classes.h:1468
 
flex_arr< long >::const_iterator falci
Definition: container_classes.h:2044
 
const_pntr & operator-=(const ptrdiff_t n)
Definition: container_classes.h:170
 
long max(int a, long b)
Definition: cddefines.h:821
 
const_iterator end() const 
Definition: container_classes.h:1985
 
bool p_lgInbounds(size_type i) const 
Definition: container_classes.h:1923
 
multi_arr< realnum, 3 >::iterator mr3i
Definition: container_classes.h:1721
 
reference front()
Definition: container_classes.h:1990
 
pntr & operator--()
Definition: container_classes.h:132
 
T & reference
Definition: container_classes.h:1760
 
T * p_p
Definition: container_classes.h:554
 
basic_pntr & operator=(const basic_pntr &)=default
 
multi_arr(const multi_arr &m)
Definition: container_classes.h:1002
 
size_type nsl[d]
stride for each dimension (only used in C_TYPE layout) 
Definition: container_classes.h:285
 
T & reference
Definition: container_classes.h:931
 
const_n_pointer(const T *p, const size_t *st, const tree_vec *v)
Definition: container_classes.h:732
 
const multi_geom & operator=(const multi_geom &m)
Definition: container_classes.h:322
 
Definition: container_classes.h:275
 
reference back(size_type i1)
Definition: container_classes.h:1609
 
#define NULL
Definition: cddefines.h:115
 
void clear()
Definition: container_classes.h:234
 
multi_arr(size_type d1, size_type d2, size_type d3, size_type d4, size_type d5)
Definition: container_classes.h:990
 
const_n_pointer(const T *p, const size_t *st, const tree_vec *v)
Definition: container_classes.h:783
 
basic_pntr & operator-=(const ptrdiff_t n)
Definition: container_classes.h:96
 
bool lgInbounds(const size_type n, const size_type index[]) const 
Definition: container_classes.h:338
 
const_reference front() const 
Definition: container_classes.h:1994
 
multi_arr< realnum, 4 >::iterator mr4i
Definition: container_classes.h:1723
 
tree_vec(const tree_vec &m)
Definition: container_classes.h:225
 
T value_type
Definition: container_classes.h:637
 
reference back(size_type i1, size_type i2)
Definition: container_classes.h:1617
 
n_pointer(T *p, const size_t *st, const tree_vec *v)
Definition: container_classes.h:604
 
reference front(size_type i1, size_type i2, size_type i3)
Definition: container_classes.h:1584
 
const T * p_p
Definition: container_classes.h:727
 
const_reference back() const 
Definition: container_classes.h:2003
 
iterator p_iterator_bc(size_type i1, size_type i2, size_type i3, size_type i4) const 
Definition: container_classes.h:1255
 
const T * p_p
Definition: container_classes.h:744
 
T * pointer
Definition: container_classes.h:1762
 
const_pntr & operator++()
Definition: container_classes.h:162
 
reference at(size_type i1, size_type i2, size_type i3)
Definition: container_classes.h:1358
 
const size_t * p_st
Definition: container_classes.h:779
 
Definition: container_classes.h:12
 
multi_arr< double, 4 >::iterator md4i
Definition: container_classes.h:1734
 
iterator p_iterator_bc(size_type i1, size_type i2, size_type i3, size_type i4, size_type i5) const 
Definition: container_classes.h:1281
 
iterator begin(size_type i1, size_type i2, size_type i3)
Definition: container_classes.h:1472
 
T ***** p_ptr5
Definition: container_classes.h:925
 
void reserve_recursive(const size_type n, size_type index[])
Definition: container_classes.h:359
 
bool operator>(const basic_pntr &t) const 
Definition: container_classes.h:115
 
valarray< T > & vals()
Definition: container_classes.h:1686
 
multi_arr(size_type d1, size_type d2, size_type d3)
Definition: container_classes.h:978
 
const T * p_p
Definition: container_classes.h:667
 
const tree_vec * p_v
Definition: container_classes.h:586
 
tree_vec v
Definition: container_classes.h:280
 
#define ASSERT(exp)
Definition: cddefines.h:637
 
multi_arr< realnum, 2 >::iterator mr2i
Definition: container_classes.h:1719
 
T * p_p
Definition: container_classes.h:616
 
T * p_alloc(size_t size) const 
Definition: container_classes.h:1784
 
void p_clear1()
Definition: container_classes.h:292
 
multi_arr< realnum, 4 >::const_iterator mr4ci
Definition: container_classes.h:1724
 
const T value_type
Definition: container_classes.h:782
 
iterator end(size_type i1, size_type i2)
Definition: container_classes.h:1511
 
const tree_vec * p_v
Definition: container_classes.h:729
 
void reserve(size_type i1)
Definition: container_classes.h:1042
 
multi_arr< bool, 6 >::const_iterator mb6ci
Definition: container_classes.h:1706
 
void realloc(size_type end)
Definition: container_classes.h:1883
 
iterator begin(size_type i1, size_type i2, size_type i3, size_type i4)
Definition: container_classes.h:1480
 
mem_layout
Definition: container_classes.h:12
 
n_pointer< T, N-1, ARPA_TYPE, true > value_type
Definition: container_classes.h:603
 
T value_type
Definition: container_classes.h:1759
 
const_iterator ptr(size_type i1, size_type i2) const 
Definition: container_classes.h:1419
 
n_pointer(T *p, const size_t *st=NULL, const tree_vec *v=NULL)
Definition: container_classes.h:544
 
T * p_p
Definition: container_classes.h:650
 
iterator end(size_type i1)
Definition: container_classes.h:1497
 
pntr(T *p0, T *p1, T *p2)
Definition: container_classes.h:126
 
iterator p_iterator_bc(size_type i1, size_type i2) const 
Definition: container_classes.h:1203
 
multi_arr< double, 2 >::iterator md2i
Definition: container_classes.h:1730
 
pntr()
Definition: container_classes.h:127
 
n_pointer(T *p, const size_t *st, const tree_vec *v=NULL)
Definition: container_classes.h:589
 
n_pointer(T *p, const size_t *st, const tree_vec *v)
Definition: container_classes.h:621
 
bool empty() const 
Definition: container_classes.h:1658
 
const tree_vec * p_v
Definition: container_classes.h:556
 
static const int32 MA_VERS[ML_TOP]
Definition: container_classes.h:15
 
const_iterator end(size_type i1, size_type i2) const 
Definition: container_classes.h:1518
 
const size_t * p_st
Definition: container_classes.h:540
 
multi_arr< long, 5 >::const_iterator ml5ci
Definition: container_classes.h:1715
 
void alloc(size_type d1, size_type d2, size_type d3, size_type d4, size_type d5, size_type d6)
Definition: container_classes.h:1156
 
const tree_vec * p_v
Definition: container_classes.h:618
 
const_n_pointer(const T *p, const size_t *st, const tree_vec *v)
Definition: container_classes.h:749
 
const tree_vec * p_v
Definition: container_classes.h:763
 
T * p_p[p_nd]
Definition: container_classes.h:29
 
T * p_p
Definition: container_classes.h:599
 
multi_arr< double, 6 >::const_iterator md6ci
Definition: container_classes.h:1739
 
const_reference at(size_type i1, size_type i2, size_type i3) const 
Definition: container_classes.h:1365
 
pointer data()
Definition: container_classes.h:1666
 
multi_arr< bool, 4 >::const_iterator mb4ci
Definition: container_classes.h:1702
 
const T & const_reference
Definition: container_classes.h:54
 
const T * const_pointer
Definition: container_classes.h:56
 
iterator begin(size_type i1, size_type i2, size_type i3, size_type i4, size_type i5)
Definition: container_classes.h:1488
 
const T * p_p
Definition: container_classes.h:697
 
void clear()
Definition: container_classes.h:1833
 
const T * p_p
Definition: container_classes.h:761
 
iterator begin()
Definition: container_classes.h:1972
 
size_t size_type
Definition: container_classes.h:199
 
multi_arr< bool, 3 >::const_iterator mb3ci
Definition: container_classes.h:1700
 
long p_begin
Definition: container_classes.h:1750
 
T * p_ptr
Definition: container_classes.h:921
 
Definition: container_classes.h:26
 
T * pointer
Definition: container_classes.h:933
 
T * p_p
Definition: container_classes.h:584
 
multi_arr< double, 3 >::const_iterator md3ci
Definition: container_classes.h:1733
 
reference front(size_type i1, size_type i2, size_type i3, size_type i4)
Definition: container_classes.h:1592
 
T * p_index_checked(const ptrdiff_t n) const 
Definition: container_classes.h:31
 
multi_arr(size_type d1, size_type d2)
Definition: container_classes.h:972
 
~flex_arr()
Definition: container_classes.h:1808
 
const valarray< T > & vals() const 
Definition: container_classes.h:1690
 
void reserve(size_type i1, size_type i2, size_type i3, size_type i4, size_type i5)
Definition: container_classes.h:1066
 
flex_arr< long >::iterator fali
Definition: container_classes.h:2043
 
const_iterator ptr(size_type i) const 
Definition: container_classes.h:1965
 
multi_arr< long, 6 >::const_iterator ml6ci
Definition: container_classes.h:1717
 
reference front(size_type i1, size_type i2, size_type i3, size_type i4, size_type i5)
Definition: container_classes.h:1600
 
n_pointer< T, N-1, ARPA_TYPE, false > value_type
Definition: container_classes.h:543
 
void p_clear1()
Definition: container_classes.h:214
 
const_reference at(size_type i1, size_type i2, size_type i3, size_type i4, size_type i5, size_type i6) const 
Definition: container_classes.h:1407
 
const_n_pointer(const T *p, const size_t *st, const tree_vec *v=NULL)
Definition: container_classes.h:687
 
multi_arr< double, 6 >::iterator md6i
Definition: container_classes.h:1738
 
n_pointer< T, d-1, ALLOC, lgBC > indexed_type
Definition: container_classes.h:1333
 
multi_arr< double, 4 >::const_iterator md4ci
Definition: container_classes.h:1735
 
const tree_vec * p_v
Definition: container_classes.h:746
 
void alloc(size_type begin, size_type end)
Definition: container_classes.h:1862
 
Definition: container_classes.h:533
 
multi_arr< double, 3 >::iterator md3i
Definition: container_classes.h:1732
 
void alloc(size_type index[])
Definition: container_classes.h:1161
 
const size_t * p_st
Definition: container_classes.h:617
 
const const_pntr operator-(const ptrdiff_t n) const 
Definition: container_classes.h:183
 
const T & const_reference
Definition: container_classes.h:932
 
void alloc(size_type d1, size_type d2, size_type d3)
Definition: container_classes.h:1141
 
void alloc(const multi_geom< d, ALLOC > &g)
Definition: container_classes.h:1126
 
void reserve(size_type i1, size_type i2, size_type i3, size_type i4)
Definition: container_classes.h:1060
 
const_reference back(size_type i1, size_type i2) const 
Definition: container_classes.h:1621
 
~tree_vec()
Definition: container_classes.h:230
 
tree_vec - a simple class to store the bounds checking information for multi_arr 
Definition: container_classes.h:197
 
T & reference
Definition: container_classes.h:53
 
reference back(size_type i1, size_type i2, size_type i3, size_type i4)
Definition: container_classes.h:1633
 
size_t size_type
Definition: container_classes.h:935
 
long p_end
Definition: container_classes.h:1751
 
multi_arr()
Definition: container_classes.h:963
 
tree_vec()
Definition: container_classes.h:221
 
T value_type
Definition: container_classes.h:588
 
flex_arr< bool >::const_iterator fabci
Definition: container_classes.h:2042
 
T value_type
Definition: container_classes.h:573
 
iterator ptr(size_type i1, size_type i2, size_type i3)
Definition: container_classes.h:1423
 
bool operator<(const basic_pntr &t) const 
Definition: container_classes.h:113
 
const_n_pointer< T, N-1, C_TYPE, false > value_type
Definition: container_classes.h:686
 
const_reference front(size_type i1, size_type i2, size_type i3, size_type i4, size_type i5) const 
Definition: container_classes.h:1604
 
const size_t * p_st
Definition: container_classes.h:745
 
multi_arr< realnum, 6 >::const_iterator mr6ci
Definition: container_classes.h:1728
 
const_n_pointer(const T *p, const size_t *st, const tree_vec *v)
Definition: container_classes.h:766
 
Definition: container_classes.h:12
 
flex_arr< bool >::iterator fabi
Definition: container_classes.h:2041
 
multi_arr< realnum, 5 >::iterator mr5i
Definition: container_classes.h:1725
 
const_n_pointer< T, N-1, ARPA_TYPE, false > value_type
Definition: container_classes.h:671
 
multi_arr< realnum, 5 >::const_iterator mr5ci
Definition: container_classes.h:1726
 
void p_clear1()
Definition: container_classes.h:1775
 
Definition: container_classes.h:12
 
const size_t * p_st
Definition: container_classes.h:570
 
multi_arr< bool, 6 >::iterator mb6i
Definition: container_classes.h:1705
 
iterator ptr(size_type i)
Definition: container_classes.h:1961
 
const size_t * p_st
Definition: container_classes.h:728
 
size_t size_type
Definition: container_classes.h:278
 
T ****** p_ptr6
Definition: container_classes.h:926
 
~multi_geom()
Definition: container_classes.h:313
 
const multi_arr & operator=(const multi_arr &m)
Definition: container_classes.h:1016
 
pointer ptr0()
Definition: container_classes.h:2030
 
multi_arr< long, 4 >::iterator ml4i
Definition: container_classes.h:1712
 
const const_pntr operator+(const ptrdiff_t n) const 
Definition: container_classes.h:182
 
iterator p_iterator(size_type i) const 
Definition: container_classes.h:1915
 
size_type s[d]
allocated size (number of data elements, pointers are not counted) 
Definition: container_classes.h:283
 
const pntr operator+(const ptrdiff_t n) const 
Definition: container_classes.h:135
 
const size_t * p_st
Definition: container_classes.h:585
 
T & operator*() const 
Definition: container_classes.h:98
 
T * p_ptr_alloc
Definition: container_classes.h:1754