ltl::MArray< T, N > Class Template Reference
[The Class MArray]
A dynamic N-dimensional array storing objects of type T.
More...
Inherits ExprBase< MArray< T, N >, N >.
List of all members.
Public Types
|
|
Public Member Functions
- MArray ()
- Construct an array without allocating memory.
- MArray (const MArray< T, N > &other)
- Copy constructor. Only makes a reference !!!.
- template<int N2, typename R1 , typename R2 , typename R3 , typename R4 , typename R5 , typename R6 , typename R7 > MArray (const MArray< T, N2 > &other, R1 r1, R2 r2, R3 r3, R4 r4, R5 r5, R6 r6, R7 r7)
- Constructor for mixed slicing (int, rank reducing) and Range arguments.
- MArray (const Shape< N > *s, const bool map=false, const char *filename=NULL)
- Construct from shape.
- template<typename Expr > MArray (const ExprNode< Expr, N > &e, const bool map=false, const char *filename=NULL)
- Construct from an array-valued expression.
- ~MArray ()
- Decrement reference count of memory block. If 0 delete.
- void free ()
- Free associated memory.
- bool empty () const
true
if MArray currenltly has have no memory allocated.
- template<typename Expr > MArray< T, N > & operator= (const ExprNode< Expr, N > &e)
- Assignment of an expression to a
MArray
.
- ListInitializationSwitch
< MArray< T, N > > operator= (T x)
- Assigns
x
to all elements.
- MArray< T, 1 > operator() (const IndexList< N > &l) const
- Index with ltl::IndexList (rhs version).
- IndexRef< T, N > operator[] (const IndexList< N > &l)
- Index with ltl::IndexList (lhs version).
- void makeReference (const MArray< T, N > &other)
- Make this being a referece to other's data.
- void realloc (const Shape< N > &s, const bool map=false, const char *filename=NULL)
- Reallocate memory. Data are abolished.
- T * data () const
- Pointer to first data element.
- IndexIterator indexBegin () const
- An iterator-style thing providing indices when dereferenced.
- MemoryBlock< T > * memoryBlock () const
- Return pointer to associated MemoryBlock .
- bool isAllocated () const
- Return true, if
MArray
has associated MemoryBlock.
- void describeSelf () const
- Debug output. Print geometry information.
- MArray< T, N > & derived ()
- const MArray< T, N > & derived () const
|
|
- MArray (const Range &r1, const bool map=false)
- MArray (const Range &r1, const Range &r2, const bool map=false)
- MArray (const Range &r1, const Range &r2, const Range &r3, const bool map=false)
- MArray (const Range &r1, const Range &r2, const Range &r3, const Range &r4, const bool map=false)
- MArray (const Range &r1, const Range &r2, const Range &r3, const Range &r4, const Range &r5, const bool map=false)
- MArray (const Range &r1, const Range &r2, const Range &r3, const Range &r4, const Range &r5, const Range &r6, const bool map=false)
- MArray (const Range &r1, const Range &r2, const Range &r3, const Range &r4, const Range &r5, const Range &r6, const Range &r7, const bool map=false)
|
Index ranges {1..ni, i=1..N} , int arguments, base defaults to 1.
|
- MArray (const int r1, const bool map=false)
- MArray (const int r1, const int r2, const bool map=false)
- MArray (const int r1, const int r2, const int r3, const bool map=false)
- MArray (const int r1, const int r2, const int r3, const int r4, const bool map=false)
- MArray (const int r1, const int r2, const int r3, const int r4, const int r5, const bool map=false)
- MArray (const int r1, const int r2, const int r3, const int r4, const int r5, const int r6, const bool map=false)
- MArray (const int r1, const int r2, const int r3, const int r4, const int r5, const int r6, const int r7, const bool map=false)
|
Other array's data is referenced, NOT copied ( use operator=() for copy)! Missing arguments are treated as Range::all() !
|
- MArray (const MArray< T, N > &other, const Range &r0)
- MArray (const MArray< T, N > &other, const Range &r1, const Range &r2)
- MArray (const MArray< T, N > &other, const Range &r1, const Range &r2, const Range &r3)
- MArray (const MArray< T, N > &other, const Range &r1, const Range &r2, const Range &r3, const Range &r4)
- MArray (const MArray< T, N > &other, const Range &r1, const Range &r2, const Range &r3, const Range &r4, const Range &r5)
- MArray (const MArray< T, N > &other, const Range &r1, const Range &r2, const Range &r3, const Range &r4, const Range &r5, const Range &r6)
- MArray (const MArray< T, N > &other, const Range &r1, const Range &r2, const Range &r3, const Range &r4, const Range &r5, const Range &r6, const Range &r7)
|
The array dims [] holds the lengths of each dimension (The number of dimensions, and hence the length of dims [] is known from the template parameter N .) No checking is performed. The index ranges are {1 ..dims[i]} along each dimension i .
|
- MArray (T *data, const int *dims)
- Construct from allocated memory.
- MArray (const string filename, const int *dims)
- Construct from map file.
|
|
|
rhs, an expression rhs, and a literal rhs for each operator. To have a single implementation of mathematical operations for scalar and vectorized code (where the C language extensions do not define X= ), we transform the
assignment into
and call
.
|
- template<typename T2 > MArray< T, N > & operator+= (const MArray< T2, N > &a)
- template<typename T2 > MArray< T, N > & operator-= (const MArray< T2, N > &a)
- template<typename T2 > MArray< T, N > & operator*= (const MArray< T2, N > &a)
- template<typename T2 > MArray< T, N > & operator/= (const MArray< T2, N > &a)
- template<typename T2 > MArray< T, N > & operator&= (const MArray< T2, N > &a)
- template<typename T2 > MArray< T, N > & operator|= (const MArray< T2, N > &a)
- template<typename T2 > MArray< T, N > & operator^= (const MArray< T2, N > &a)
- template<typename Expr > MArray< T, N > & operator+= (const ExprNode< Expr, N > &e)
- template<typename Expr > MArray< T, N > & operator-= (const ExprNode< Expr, N > &e)
- template<typename Expr > MArray< T, N > & operator*= (const ExprNode< Expr, N > &e)
- template<typename Expr > MArray< T, N > & operator/= (const ExprNode< Expr, N > &e)
- template<typename Expr > MArray< T, N > & operator&= (const ExprNode< Expr, N > &e)
- template<typename Expr > MArray< T, N > & operator|= (const ExprNode< Expr, N > &e)
- template<typename Expr > MArray< T, N > & operator^= (const ExprNode< Expr, N > &e)
- MArray< T, N > & operator+= (const T a)
- MArray< T, N > & operator-= (const T a)
- MArray< T, N > & operator*= (const T a)
- MArray< T, N > & operator/= (const T a)
- MArray< T, N > & operator&= (const T a)
- MArray< T, N > & operator|= (const T a)
- MArray< T, N > & operator^= (const T a)
|
int / ltl::FixedVector arguments, return (reference to) element.
|
- T operator() (const int i1) const
- T & operator() (const int i1)
- T operator() (const int i1, const int i2) const
- T & operator() (const int i1, const int i2)
- T operator() (const int i1, const int i2, const int i3) const
- T & operator() (const int i1, const int i2, const int i3)
- T operator() (const int i1, const int i2, const int i3, const int i4) const
- T & operator() (const int i1, const int i2, const int i3, const int i4)
- T operator() (const int i1, const int i2, const int i3, const int i4, const int i5) const
- T & operator() (const int i1, const int i2, const int i3, const int i4, const int i5)
- T operator() (const int i1, const int i2, const int i3, const int i4, const int i5, const int i6) const
- T & operator() (const int i1, const int i2, const int i3, const int i4, const int i5, const int i6)
- T operator() (const int i1, const int i2, const int i3, const int i4, const int i5, const int i6, const int i7) const
- T & operator() (const int i1, const int i2, const int i3, const int i4, const int i5, const int i6, const int i7)
- T operator() (const FixedVector< int, 1 > &i) const
- T & operator() (const FixedVector< int, 1 > &i)
- T operator() (const FixedVector< int, 2 > &i) const
- T & operator() (const FixedVector< int, 2 > &i)
- T operator() (const FixedVector< int, 3 > &i) const
- T & operator() (const FixedVector< int, 3 > &i)
- T operator() (const FixedVector< int, 4 > &i) const
- T & operator() (const FixedVector< int, 4 > &i)
- T operator() (const FixedVector< int, 5 > &i) const
- T & operator() (const FixedVector< int, 5 > &i)
- T operator() (const FixedVector< int, 6 > &i) const
- T & operator() (const FixedVector< int, 6 > &i)
- T operator() (const FixedVector< int, 7 > &i) const
- T & operator() (const FixedVector< int, 7 > &i)
|
ltl::Range arguments, return (reference to) element.
|
- MArray< T, N > operator() (const Range &r1) const
- MArray< T, N > operator() (const Range &r1, const Range &r2) const
- MArray< T, N > operator() (const Range &r1, const Range &r2, const Range &r3) const
- MArray< T, N > operator() (const Range &r1, const Range &r2, const Range &r3, const Range &r4) const
- MArray< T, N > operator() (const Range &r1, const Range &r2, const Range &r3, const Range &r4, const Range &r5) const
- MArray< T, N > operator() (const Range &r1, const Range &r2, const Range &r3, const Range &r4, const Range &r5, const Range &r6) const
- MArray< T, N > operator() (const Range &r1, const Range &r2, const Range &r3, const Range &r4, const Range &r5, const Range &r6, const Range &r7) const
- template<typename T1 , typename T2 > SliceCounter< T, T1, T2 >
::MArraySlice operator() (T1 r1, T2 r2) const
- template<typename T1 , typename T2 , typename T3 > SliceCounter< T, T1, T2, T3 >
::MArraySlice operator() (T1 r1, T2 r2, T3 r3) const
- template<typename T1 , typename T2 , typename T3 , typename T4 > SliceCounter< T, T1, T2, T3,
T4 >::MArraySlice operator() (T1 r1, T2 r2, T3 r3, T4 r4) const
- template<typename T1 , typename T2 , typename T3 , typename T4 , typename T5 > SliceCounter< T, T1, T2, T3,
T4, T5 >::MArraySlice operator() (T1 r1, T2 r2, T3 r3, T4 r4, T5 r5) const
- template<typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 > SliceCounter< T, T1, T2, T3,
T4, T5, T6 >::MArraySlice operator() (T1 r1, T2 r2, T3 r3, T4 r4, T5 r5, T6 r6) const
- template<typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 > SliceCounter< T, T1, T2, T3,
T4, T5, T6, T7 >::MArraySlice operator() (T1 r1, T2 r2, T3 r3, T4 r4, T5 r5, T6 r6, T7 r7) const
|
Change the bases of the array (the bases are the first indices of each dimension)
|
- void setBase (const int b1)
- void setBase (const int b1, const int b2)
- void setBase (const int b1, const int b2, const int b3)
- void setBase (const int b1, const int b2, const int b3, const int b4)
- void setBase (const int b1, const int b2, const int b3, const int b4, const int b5)
- void setBase (const int b1, const int b2, const int b3, const int b4, const int b5, const int b6)
- void setBase (const int b1, const int b2, const int b3, const int b4, const int b5, const int b6, const int b7)
|
|
|
|
|
Reorder array (without copy). Very fast!
|
Public Attributes
- T *restrict_ data_
- Pointer to element ( 0, 0, ..., 0 ).
Protected Member Functions
- template<typename T2 > void copy (const MArray< T2, N > &other)
- Copy from other.
- void fill (const T t)
- Fill with t.
- void subarray (const MArray< T, N > &other, const Range &r1)
- Constructs a pure subarray of other, i.e. rank is preserved.
- void subarray (const MArray< T, N > &other, const Range &r1, const Range &r2)
- void subarray (const MArray< T, N > &other, const Range &r1, const Range &r2, const Range &r3)
- void subarray (const MArray< T, N > &other, const Range &r1, const Range &r2, const Range &r3, const Range &r4)
- void subarray (const MArray< T, N > &other, const Range &r1, const Range &r2, const Range &r3, const Range &r4, const Range &r5)
- void subarray (const MArray< T, N > &other, const Range &r1, const Range &r2, const Range &r3, const Range &r4, const Range &r5, const Range &r6)
- void subarray (const MArray< T, N > &other, const Range &r1, const Range &r2, const Range &r3, const Range &r4, const Range &r5, const Range &r6, const Range &r7)
- template<int N2, typename R1 , typename R2 , typename R3 , typename R4 , typename R5 , typename R6 , typename R7 > void slicearray (const MArray< T, N2 > &other, R1 r1, R2 r2, R3 r3, R4 r4, R5 r5, R6 r6, R7 r7)
- template<int N2> void slice (int &setRank, Range r, const MArray< T, N2 > &other, int sourceRank)
- template<int N2> void slice (int &setRank, int r, const MArray< T, N2 > &other, int sourceRank)
- template<int N2> void slice (int &, NoArgument, const MArray< T, N2 > &, int)
- void setupMemory (const bool map=false, const char *filename=NULL)
- void setupShape (const int *dims)
- void setrange (const int dim, const Range &r)
Protected Attributes
- MemoryBlock< T > * memBlock_
- Our MemoryBlock.
- Shape< N > shape_
- Holds shape information.
Friends
Related Functions
(Note that these are not member functions.)
- template<class Expr > ostream & operator<< (ostream &os, const ExprBase< Expr, 1 > &E)
- template<class Expr > ostream & operator<< (ostream &os, const ExprBase< Expr, 2 > &E)
- template<class Expr > ostream & operator<< (ostream &os, const ExprBase< Expr, 3 > &E)
- template<class Expr > ostream & operator<< (ostream &os, const ExprBase< Expr, 4 > &E)
- template<class Expr > ostream & operator<< (ostream &os, const ExprBase< Expr, 5 > &E)
- template<class Expr > ostream & operator<< (ostream &os, const ExprBase< Expr, 6 > &E)
- template<class Expr > ostream & operator<< (ostream &os, const ExprBase< Expr, 7 > &E)
- template<class T , int N> istream & operator>> (istream &is, MArray< T, N > &A)
Detailed Description
template<typename T, int N>
class ltl::MArray< T, N >
A dynamic N-dimensional array storing objects of type T.
MArrays
feature subarrays (sometimes called views), slices, expression templated evaluation, and other features described below. The memory holding the actual data is reference counted, such that it is not freed until the last reference to the data by views or slices has been removed.
Member Typedef Documentation
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
Index iterator for ltl::where() (indexing arbitrary subsets).
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
Member Enumeration Documentation
anonymous enum [inherited] |
Constructor & Destructor Documentation
template<typename T, int N>
Construct an array without allocating memory.
This is useful for constructing MArrays
whose values are to be read from a file, and thus the dimensions are not known yet.
- Warning:
- Use this with care! Use this
MArray
only after being sure that ltl::MArray::realloc()
or
ltl::MArray::makeReference() has been called.
template<typename T, int N>
template<typename T, int N>
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
template<typename T, int N>
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
template<typename T, int N>
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
template<typename T, int N>
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
template<typename T, int N>
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
template<typename T, int N>
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
template<typename T, int N>
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
template<typename T, int N>
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
template<typename T, int N>
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
template<typename T, int N>
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
template<typename T, int N>
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
template<typename T, int N>
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
template<typename T, int N>
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
template<typename T, int N>
Copy constructor. Only makes a reference !!!.
template<typename T, int N>
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
template<typename T, int N>
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
template<typename T, int N>
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
template<typename T, int N>
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
template<typename T, int N>
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
template<typename T, int N>
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
template<typename T, int N>
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
template<typename T, int N>
template<int N2, typename R1 , typename R2 , typename R3 , typename R4 , typename R5 , typename R6 , typename R7 >
ltl::MArray< T, N >::MArray |
( |
const MArray< T, N2 > & |
other, |
|
|
R1 |
r1, |
|
|
R2 |
r2, |
|
|
R3 |
r3, |
|
|
R4 |
r4, |
|
|
R5 |
r5, |
|
|
R6 |
r6, |
|
|
R7 |
r7 | |
|
) |
| | [inline] |
Constructor for mixed slicing (int, rank reducing) and Range arguments.
Other array's data is referenced, NOT copied ( use operator=() for copy)!
template<typename T, int N>
Construct from allocated memory.
template<typename T, int N>
template<typename T, int N>
ltl::MArray< T, N >::MArray |
( |
const Shape< N > * |
s, |
|
|
const bool |
map = false , |
|
|
const char * |
filename = NULL | |
|
) |
| | |
Construct from shape.
Useful to construct an array having the same geometry as another array. If you have map == true and give a filename the memory map will be saved.
template<typename T, int N>
template<typename Expr >
Construct from an array-valued expression.
The new array is allocated with the shape of the expression and its elements are filled with the evaluated expression. If you have map == true and give a filename the memory map will be saved.
template<typename T, int N>
Decrement reference count of memory block. If 0 delete.
Member Function Documentation
template<typename T, int N>
Free associated memory.
Frees the memory used to store the data before the MArray goes out of scope (before the destructor is being called). Can help keeping code cleaner without using pointers to MArray.
template<typename T, int N>
template<typename T, int N>
This.
Arrays have to have conformable shapes, no automatic resize takes place. Use realloc() instead! If the lhs ltl::MArray is empty()
, i.e. no memory has been allocated then memory conforming to other's
shape will be allocated.
overloads the default.
template<typename T, int N>
template<typename T2 >
This.
is more general than the default.
template<typename T, int N>
template<typename Expr >
Assignment of an expression to a MArray
.
The MArray
and the expression have to have conformable shapes, no automatic resize takes place. Use realloc() instead! If the lhs ltl::MArray is empty()
, i.e. no memory has been allocated then memory conforming to the expression's shape will be allocated.
template<typename T, int N>
ListInitializationSwitch< MArray<T,N> > ltl::MArray< T, N >::operator= |
( |
T |
x |
) |
[inline] |
Assigns x
to all elements.
A bit more comlicated since we have to discriminate between
A = 3; and A = 1, 2, 3, 4;
which is done using ListInitializationSwitch which either calls ListInitializer or MArray::fill().
template<typename T, int N>
template<typename T2 >
template<typename T, int N>
template<typename T2 >
template<typename T, int N>
template<typename T2 >
template<typename T, int N>
template<typename T2 >
template<typename T, int N>
template<typename T2 >
template<typename T, int N>
template<typename T2 >
template<typename T, int N>
template<typename T2 >
template<typename T, int N>
template<typename Expr >
template<typename T, int N>
template<typename Expr >
template<typename T, int N>
template<typename Expr >
template<typename T, int N>
template<typename Expr >
template<typename T, int N>
template<typename Expr >
template<typename T, int N>
template<typename Expr >
template<typename T, int N>
template<typename Expr >
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
T ltl::MArray< T, N >::operator() |
( |
const FixedVector< int, 1 > & |
i |
) |
const [inline] |
template<typename T, int N>
T& ltl::MArray< T, N >::operator() |
( |
const FixedVector< int, 1 > & |
i |
) |
[inline] |
template<typename T, int N>
T ltl::MArray< T, N >::operator() |
( |
const FixedVector< int, 2 > & |
i |
) |
const [inline] |
template<typename T, int N>
T& ltl::MArray< T, N >::operator() |
( |
const FixedVector< int, 2 > & |
i |
) |
[inline] |
template<typename T, int N>
T ltl::MArray< T, N >::operator() |
( |
const FixedVector< int, 3 > & |
i |
) |
const [inline] |
template<typename T, int N>
T& ltl::MArray< T, N >::operator() |
( |
const FixedVector< int, 3 > & |
i |
) |
[inline] |
template<typename T, int N>
T ltl::MArray< T, N >::operator() |
( |
const FixedVector< int, 4 > & |
i |
) |
const [inline] |
template<typename T, int N>
T& ltl::MArray< T, N >::operator() |
( |
const FixedVector< int, 4 > & |
i |
) |
[inline] |
template<typename T, int N>
T ltl::MArray< T, N >::operator() |
( |
const FixedVector< int, 5 > & |
i |
) |
const [inline] |
template<typename T, int N>
T& ltl::MArray< T, N >::operator() |
( |
const FixedVector< int, 5 > & |
i |
) |
[inline] |
template<typename T, int N>
T ltl::MArray< T, N >::operator() |
( |
const FixedVector< int, 6 > & |
i |
) |
const [inline] |
template<typename T, int N>
T& ltl::MArray< T, N >::operator() |
( |
const FixedVector< int, 6 > & |
i |
) |
[inline] |
template<typename T, int N>
T ltl::MArray< T, N >::operator() |
( |
const FixedVector< int, 7 > & |
i |
) |
const [inline] |
template<typename T, int N>
T& ltl::MArray< T, N >::operator() |
( |
const FixedVector< int, 7 > & |
i |
) |
[inline] |
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
template<typename T1 , typename T2 >
SliceCounter<T,T1,T2>::MArraySlice ltl::MArray< T, N >::operator() |
( |
T1 |
r1, |
|
|
T2 |
r2 | |
|
) |
| | const [inline] |
template<typename T, int N>
template<typename T1 , typename T2 , typename T3 >
SliceCounter<T,T1,T2,T3>::MArraySlice ltl::MArray< T, N >::operator() |
( |
T1 |
r1, |
|
|
T2 |
r2, |
|
|
T3 |
r3 | |
|
) |
| | const [inline] |
template<typename T, int N>
template<typename T1 , typename T2 , typename T3 , typename T4 >
SliceCounter<T,T1,T2,T3,T4>::MArraySlice ltl::MArray< T, N >::operator() |
( |
T1 |
r1, |
|
|
T2 |
r2, |
|
|
T3 |
r3, |
|
|
T4 |
r4 | |
|
) |
| | const [inline] |
template<typename T, int N>
template<typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
SliceCounter<T,T1,T2,T3,T4,T5>::MArraySlice ltl::MArray< T, N >::operator() |
( |
T1 |
r1, |
|
|
T2 |
r2, |
|
|
T3 |
r3, |
|
|
T4 |
r4, |
|
|
T5 |
r5 | |
|
) |
| | const [inline] |
template<typename T, int N>
template<typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 >
SliceCounter<T,T1,T2,T3,T4,T5,T6>::MArraySlice ltl::MArray< T, N >::operator() |
( |
T1 |
r1, |
|
|
T2 |
r2, |
|
|
T3 |
r3, |
|
|
T4 |
r4, |
|
|
T5 |
r5, |
|
|
T6 |
r6 | |
|
) |
| | const [inline] |
template<typename T, int N>
template<typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 >
SliceCounter<T,T1,T2,T3,T4,T5,T6,T7>::MArraySlice ltl::MArray< T, N >::operator() |
( |
T1 |
r1, |
|
|
T2 |
r2, |
|
|
T3 |
r3, |
|
|
T4 |
r4, |
|
|
T5 |
r5, |
|
|
T6 |
r6, |
|
|
T7 |
r7 | |
|
) |
| | const [inline] |
template<typename T, int N>
MArray<T,1> ltl::MArray< T, N >::operator() |
( |
const IndexList< N > & |
l |
) |
const [inline] |
Index with ltl::IndexList (rhs version).
Return ltl::MArray<T,1> object.
template<typename T, int N>
IndexRef<T,N> ltl::MArray< T, N >::operator[] |
( |
const IndexList< N > & |
l |
) |
[inline] |
Index with ltl::IndexList (lhs version).
Assignment to self indexed with IndexList A[l] = Expr<T,1> IndexRef object is needed to carry the operator=( Expr ) method.
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
void ltl::MArray< T, N >::realloc |
( |
const Shape< N > & |
s, |
|
|
const bool |
map = false , |
|
|
const char * |
filename = NULL | |
|
) |
| | |
Reallocate memory. Data are abolished.
If you have map == true and give a filename the new memory map will be saved.
Referenced by ltl::MArray< T, N >::operator>>().
template<typename T, int N>
template<typename T, int N>
Referenced by ltl::average_clip_median(), ltl::PolynomFit< TPAR, TDAT, ORDER, true, 2 >::eval(), ltl::PolynomFit< TPAR, TDAT, ORDER, false, 2 >::eval(), ltl::PolynomFit< TPAR, TDAT, ORDER, EXT, 1 >::eval(), ltl::PolynomFit< TPAR, TDAT, ORDER, true, 2 >::fill(), ltl::PolynomFit< TPAR, TDAT, ORDER, false, 2 >::fill(), ltl::PolynomFit< TPAR, TDAT, ORDER, EXT, 1 >::fill(), ltl::insertFitsMArray(), ltl::median_clip_average(), ltl::median_sorted_array(), and ltl::MArray< T, N >::operator>>().
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
const T* ltl::MArray< T, N >::beginRA |
( |
|
) |
const [inline] |
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
An iterator-style thing providing indices when dereferenced.
I.e. *i or i() gives a FixedVector holding the indices and and i(int) gives the index in the i-th dimension
Referenced by ltl::PolynomFit< TPAR, TDAT, ORDER, true, 2 >::eval(), ltl::PolynomFit< TPAR, TDAT, ORDER, false, 2 >::eval(), ltl::PolynomFit< TPAR, TDAT, ORDER, EXT, 1 >::eval(), ltl::PolynomFit< TPAR, TDAT, ORDER, true, 2 >::fill(), ltl::PolynomFit< TPAR, TDAT, ORDER, false, 2 >::fill(), ltl::PolynomFit< TPAR, TDAT, ORDER, EXT, 1 >::fill(), ltl::indexPosDbl(), ltl::indexPosFlt(), and ltl::indexPosInt().
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
bool ltl::MArray< T, N >::isStorageContiguous |
( |
|
) |
const [inline] |
template<typename T, int N>
bool ltl::MArray< T, N >::isConformable |
( |
const Shape< N > & |
other |
) |
const [inline] |
Check conformability with other ltl::Shape.
template<typename T, int N>
template<typename T2 >
bool ltl::MArray< T, N >::isConformable |
( |
const MArray< T2, N > & |
other |
) |
const [inline] |
Check conformability with other array.
template<typename T, int N>
const Shape<N>* ltl::MArray< T, N >::shape |
( |
|
) |
const [inline] |
Return the ltl::Shape
.
Referenced by ltl::PolynomFit< TPAR, TDAT, ORDER, true, 2 >::fit(), ltl::PolynomFit< TPAR, TDAT, ORDER, false, 2 >::fit(), ltl::PolynomFit< TPAR, TDAT, ORDER, EXT, 1 >::fit(), ltl::MArray< TDAT, 2 >::isConformable(), and ltl::Gnuplot::send().
template<typename T, int N>
MemoryBlock<T>* ltl::MArray< T, N >::memoryBlock |
( |
|
) |
const [inline] |
Return pointer to associated MemoryBlock .
template<typename T, int N>
bool ltl::MArray< T, N >::isAllocated |
( |
|
) |
const [inline] |
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
Debug output. Print geometry information.
template<typename T, int N>
template<typename T2 >
template<typename T, int N>
void ltl::MArray< T, N >::fill |
( |
const T |
t |
) |
[protected] |
template<typename T, int N>
template<typename T, int N>
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
template<typename T, int N>
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
template<typename T, int N>
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
template<typename T, int N>
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
template<typename T, int N>
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
template<typename T, int N>
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
template<typename T, int N>
template<int N2, typename R1 , typename R2 , typename R3 , typename R4 , typename R5 , typename R6 , typename R7 >
void ltl::MArray< T, N >::slicearray |
( |
const MArray< T, N2 > & |
other, |
|
|
R1 |
r1, |
|
|
R2 |
r2, |
|
|
R3 |
r3, |
|
|
R4 |
r4, |
|
|
R5 |
r5, |
|
|
R6 |
r6, |
|
|
R7 |
r7 | |
|
) |
| | [inline, protected] |
template<typename T, int N>
template<int N2>
template<typename T, int N>
template<int N2>
template<typename T, int N>
template<int N2>
template<typename T, int N>
void ltl::MArray< T, N >::setupMemory |
( |
const bool |
map = false , |
|
|
const char * |
filename = NULL | |
|
) |
| | [protected] |
template<typename T, int N>
template<typename T, int N>
Friends And Related Function Documentation
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
friend class ListInitializationSwitch< MArray< T, N > > [friend] |
Member Data Documentation
template<typename T, int N>
template<typename T, int N>
Holds shape information.
And zeroOffset_ which is the distance between data_ and the the address of the first element of the array, such that
always holds.
Referenced by ltl::MArray< TDAT, 2 >::data(), ltl::MArray< TDAT, 2 >::isConformable(), ltl::MArray< TDAT, 2 >::isStorageContiguous(), ltl::MArray< TDAT, 2 >::length(), ltl::MArray< TDAT, 2 >::maxIndex(), ltl::MArray< TDAT, 2 >::minIndex(), ltl::MArray< TDAT, 2 >::nelements(), ltl::MArray< TDAT, 2 >::operator()(), ltl::MArray< TDAT, 2 >::shape(), ltl::MArray< TDAT, 2 >::stride(), and ltl::MArray< TDAT, 2 >::zeroOffset().
template<typename T, int N>
Pointer to element ( 0, 0, ..., 0 ).
Referenced by ltl::MArray< TDAT, 2 >::data(), ltl::MArray< TDAT, 2 >::free(), ltl::MArray< TDAT, 2 >::operator()(), and ltl::MArray< TDAT, 2 >::~MArray().