#include <fix.h>
Public Member Functions | |
T & | operator() (IXTYPE i0) const |
T & | operator() (IXTYPE i0, IXTYPE i1) const |
T & | operator() (IXTYPE i0, IXTYPE i1, IXTYPE i2) const |
T & | operator() (IXTYPE i0, IXTYPE i1, IXTYPE i2, IXTYPE i3) const |
T & | operator() (IXTYPE i0, IXTYPE i1, IXTYPE i2, IXTYPE i3, IXTYPE i4) const |
T & | operator() (IXTYPE i0, IXTYPE i1, IXTYPE i2, IXTYPE i3, IXTYPE i4, IXTYPE i5) const |
T & | operator[] (const Ix< N > &ix) const |
constructor | |
Array () | |
Array (const Ix< varrank > &len0) | |
Array (const Ix< varrank > &len0, const Ix< N > &l0) | |
Array (const Array &src) | |
template<class TypeS> | Array (const Array< N, TypeS > &src) |
Array (IXTYPE i0) | |
Array (IXTYPE i0, IXTYPE i1) | |
Array (IXTYPE i0, IXTYPE i1, IXTYPE i2) | |
Array (IXTYPE i0, IXTYPE i1, IXTYPE i2, IXTYPE i3) | |
Array (IXTYPE i0, IXTYPE i1, IXTYPE i2, IXTYPE i3, IXTYPE i4) | |
Array (IXTYPE i0, IXTYPE i1, IXTYPE i2, IXTYPE i3, IXTYPE i4, IXTYPE i5) | |
const | |
IXTYPE | L (DIMT n) const |
IXTYPE | U (DIMT n) const |
IXTYPE | Len (DIMT n) const |
T * | Origo () const |
T * | Start () const |
bool | IsNull () const |
nonconst | |
bool | Dealloc () |
bool | Realloc (const Ix< varrank > &len0) |
bool | Realloc (const Ix< varrank > &len0, const Ix< N > &l0) |
template<class TypeS> bool | Realloc (const Array< N, TypeS > &src) |
template<class TypeS> bool | Refer (const Array< N, TypeS > &src) |
bool | Clone () |
template<class TypeS> bool | Clone (const Array< N, TypeS > &src) |
template<class TypeS> Array & | operator= (const Array< N, TypeS > &src) |
Array & | operator= (const Array &src) |
Array & | Shift (DIMT n, IXTYPE i) |
Array & | Shift (const Ix< N > &ix) |
Array & | Restrict (DIMT n, IXTYPE l0, IXTYPE u0) |
Array & | Restrict (const Ix< N > &l0, const Ix< N > &u0) |
Array & | RestrictL (DIMT n, IXTYPE l0) |
Array & | RestrictL (const Ix< N > &l0) |
Array & | RestrictU (DIMT n, IXTYPE u0) |
Array & | RestrictU (const Ix< N > &u0) |
Use this array for efficient numerical computations or other applications where powerful and efficient arrays are needed for large data sets.
This specialization of Array<N,T> is often more efficient than the default Array type.
The difference between Fix and standard Array is:
There may be two reasons for doing this. First it increases type safety, if the lowest dimension range is known then the compiler should be told about it. Second it may increase the compiler's ability to optimize some loops.
To retrieve a fortran-compatible pointer to first element, use member function Start.
|
6-dimensional array of given length and lower bounds =0 (only compiles for Array<6,T>) |
|
5-dimensional array of given length and lower bounds =0 (only compiles for Array<5,T>) |
|
4-dimensional array of given length and lower bounds =0 (only compiles for Array<4,T>) |
|
3-dimensional array of given length and lower bounds =0 (only compiles for Array<3,T>) |
|
2-dimensional array of given length and lower bounds =0 (only compiles for Array<2,T>) |
|
1-dimensional array of given length and lower bounds =0 (only compiles for Array<1,T>) |
|
Copy constructor from another array type object If possible, create a reference to the same memory area as src. If this is not possible, create a new memory area and copy src 's elements |
|
Copy constructor Creates a reference to the same memory area as src |
|
Constructor with given number of elements and given lower index bound |
|
Constructor with given number of elements and lower index bound = 0 |
|
Default constructor. Initialize array with no data and index bounds zero |
|
Release this object from it's element data and allocate a new data set with index bounds identical to those of src. Finally copy the element data from src Note that this is the same as Realloc followed by element-wise copy.
|
|
Same as Clone(*this).
|
|
Release this object from it's element data and set index bounds to zero
|
|
|
|
Lower index bounds L(n) is the lowest index allowed on dimension n |
|
Convenience function giving the number of array elements along given dimension. Simply put, Len(n) is U(n) - L(n) |
|
Get 6-dimensional array element at given position |
|
Get 5-dimensional array element at given position |
|
Get 4-dimensional array element at given position |
|
Get 3-dimensional array element at given position |
|
Get 2-dimensional array element at given position |
|
Get 1-dimensional array element at given position |
|
Create an identical reference to src data (same as Refer(src)) |
|
Create an identical reference to src data if possible (same as Refer(src) ), otherwise create a new data area and copy src 's elements into it (same as Clone(src)) |
|
Get element at given position |
|
Pointer to element at index (0,0,...,0) Useful in some rare circumstances. Note that this pointer does not point to a valid element if (0,0,...,0) is outside valid index range. |
|
Release this object from it's element data and allocate a new, uninitialized data set with index bounds identical to those of src.
|
|
Release this object from it's element data and allocate a new data set with given size and given lower index bounds
|
|
Release this object from it's element data and allocate a new data set with given size (lower index bounds zero)
|
|
Reinitialize this object as an identical copy of src (refering to the same element data as src)
|
|
Restrict valid index range along all dimensions |
|
Restrict valid index range along dimension n . Resulting index range along n is intersection of |
|
Restrict lower index bound along all dimensions |
|
Restrict lower index bound along dimension n |
|
Restrict upper index bound along all dimensions |
|
Restrict upper index bound along dimension n |
|
Shift data and valid index range along all dimensions |
|
Shift data and valid index range along dimension n |
|
Pointer to first valid element i.e. element at lowest index bound Use this function to get pointer to pass to fortran functions. |
|
Upper index bounds U(n) is one more than the largest index allowed on dimension n |