|
| Array () |
| Creates an empty array.
|
|
| Array (MemoryType mt) |
| Creates an empty array with a given MemoryType.
|
|
| Array (int asize) |
| Creates array of asize elements.
|
|
| Array (int asize, MemoryType mt) |
| Creates array of asize elements with a given MemoryType.
|
|
| Array (T *data_, int asize, bool own_data=false) |
| Creates array using an externally allocated host pointer data_ to asize elements. If own_data is true, the array takes ownership of the pointer.
|
|
| Array (const Array &src) |
| Copy constructor: deep copy from src.
|
|
template<typename CT > |
| Array (const Array< CT > &src) |
| Copy constructor (deep copy) from 'src', an Array of convertible type.
|
|
template<typename CT , int N> |
| Array (const CT(&values)[N]) |
| Construct an Array from a C-style array of static length.
|
|
template<typename CT , typename std::enable_if< std::is_convertible< CT, T >::value, bool >::type = true> |
| Array (std::initializer_list< CT > values) |
| Construct an Array from a braced initializer list of convertible type.
|
|
| Array (Array< T > &&src) |
| Move constructor ("steals" data from 'src')
|
|
| ~Array () |
| Destructor.
|
|
Array< T > & | operator= (const Array< T > &src) |
| Assignment operator: deep copy from 'src'.
|
|
template<typename CT > |
Array & | operator= (const Array< CT > &src) |
| Assignment operator (deep copy) from src, an Array of convertible type.
|
|
| operator T* () |
| Return the data as 'T *'.
|
|
| operator const T * () const |
| Return the data as 'const T *'.
|
|
T * | GetData () |
| Returns the data.
|
|
const T * | GetData () const |
| Returns the data.
|
|
Memory< T > & | GetMemory () |
| Return a reference to the Memory object used by the Array.
|
|
const Memory< T > & | GetMemory () const |
| Return a reference to the Memory object used by the Array, const version.
|
|
bool | UseDevice () const |
| Return the device flag of the Memory object used by the Array.
|
|
bool | OwnsData () const |
| Return true if the data will be deleted by the Array.
|
|
void | StealData (T **p) |
| Changes the ownership of the data.
|
|
void | LoseData () |
| NULL-ifies the data.
|
|
void | MakeDataOwner () const |
| Make the Array own the data.
|
|
int | Size () const |
| Return the logical size of the array.
|
|
void | SetSize (int nsize) |
| Change the logical size of the array, keep existing entries.
|
|
void | SetSize (int nsize, const T &initval) |
| Same as SetSize(int) plus initialize new entries with 'initval'.
|
|
void | SetSize (int nsize, MemoryType mt) |
| Resize the array to size nsize using MemoryType mt. Note that unlike the other versions of SetSize(), the current content of the array is not preserved.
|
|
int | Capacity () const |
|
void | Reserve (int capacity) |
| Ensures that the allocated size is at least the given size.
|
|
T & | operator[] (int i) |
| Reference access to the ith element.
|
|
const T & | operator[] (int i) const |
| Const reference access to the ith element.
|
|
int | Append (const T &el) |
| Append element 'el' to array, resize if necessary.
|
|
int | Append (const T *els, int nels) |
| Append another array to this array, resize if necessary.
|
|
int | Append (const Array< T > &els) |
| Append another array to this array, resize if necessary.
|
|
int | Prepend (const T &el) |
| Prepend an 'el' to the array, resize if necessary.
|
|
T & | Last () |
| Return the last element in the array.
|
|
const T & | Last () const |
| Return the last element in the array.
|
|
int | Union (const T &el) |
| Append element when it is not yet in the array, return index.
|
|
int | Find (const T &el) const |
| Return the first index where 'el' is found; return -1 if not found.
|
|
int | FindSorted (const T &el) const |
| Do bisection search for 'el' in a sorted array; return -1 if not found.
|
|
void | DeleteLast () |
| Delete the last entry of the array.
|
|
void | DeleteFirst (const T &el) |
| Delete the first entry with value == 'el'.
|
|
void | DeleteAll () |
| Delete the whole array.
|
|
void | ShrinkToFit () |
| Reduces the capacity of the array to exactly match the current size.
|
|
void | Copy (Array ©) const |
| Create a copy of the internal array to the provided copy.
|
|
void | MakeRef (T *data_, int size_, bool own_data=false) |
| Make this Array a reference to a pointer.
|
|
void | MakeRef (T *data_, int size, MemoryType mt, bool own_data) |
| Make this Array a reference to a pointer.
|
|
void | MakeRef (const Array &master) |
| Make this Array a reference to 'master'.
|
|
template<typename I > |
void | Permute (I &&indices) |
| Permute the array using the provided indices. Sorts the indices variable in the process, thereby destroying the permutation. The rvalue reference is to be used when this destruction is allowed, whilst the const reference preserves at the cost of duplication.
|
|
template<typename I > |
void | Permute (const I &indices) |
|
void | GetSubArray (int offset, int sa_size, Array< T > &sa) const |
| Copy sub array starting from offset out to the provided sa.
|
|
void | Print (std::ostream &out=mfem::out, int width=4) const |
| Prints array to stream with width elements per row.
|
|
void | Save (std::ostream &out, int fmt=0) const |
| Save the Array to the stream out using the format fmt. The format fmt can be:
|
|
void | Load (std::istream &in, int fmt=0) |
| Read an Array from the stream in using format fmt. The format fmt can be:
|
|
void | Load (int new_size, std::istream &in) |
| Set the Array size to new_size and read that many entries from the stream in.
|
|
T | Max () const |
| Find the maximal element in the array, using the comparison operator < for class T.
|
|
T | Min () const |
| Find the minimal element in the array, using the comparison operator < for class T.
|
|
void | Sort () |
| Sorts the array in ascending order. This requires operator< to be defined for T.
|
|
template<class Compare > |
void | Sort (Compare cmp) |
| Sorts the array in ascending order using the supplied comparison function object.
|
|
void | Unique () |
| Removes duplicities from a sorted array. This requires operator== to be defined for T.
|
|
int | IsSorted () const |
| Return 1 if the array is sorted from lowest to highest. Otherwise return 0.
|
|
bool | IsEmpty () const |
| Does the Array have Size zero.
|
|
void | PartialSum () |
| Fill the entries of the array with the cumulative sum of the entries.
|
|
T | Sum () const |
| Return the sum of all the array entries using the '+'' operator for class 'T'.
|
|
void | operator= (const T &a) |
| Set all entries of the array to the provided constant.
|
|
void | Assign (const T *) |
| Copy data from a pointer. 'Size()' elements are copied.
|
|
template<typename U > |
void | CopyTo (U *dest) |
| STL-like copyTo dest from begin to end.
|
|
template<typename U > |
void | CopyFrom (const U *src) |
| Copy from src into this array. Copies enough entries to fill the Capacity size of this array. Careful this does not update the Size to match this Capacity after this.
|
|
T * | begin () |
| STL-like begin. Returns pointer to the first element of the array.
|
|
T * | end () |
| STL-like end. Returns pointer after the last element of the array.
|
|
const T * | begin () const |
| STL-like begin. Returns const pointer to the first element of the array.
|
|
const T * | end () const |
| STL-like end. Returns const pointer after the last element of the array.
|
|
std::size_t | MemoryUsage () const |
| Returns the number of bytes allocated for the array including any reserve.
|
|
const T * | Read (bool on_dev=true) const |
| Shortcut for mfem::Read(a.GetMemory(), a.Size(), on_dev).
|
|
const T * | HostRead () const |
| Shortcut for mfem::Read(a.GetMemory(), a.Size(), false).
|
|
T * | Write (bool on_dev=true) |
| Shortcut for mfem::Write(a.GetMemory(), a.Size(), on_dev).
|
|
T * | HostWrite () |
| Shortcut for mfem::Write(a.GetMemory(), a.Size(), false).
|
|
T * | ReadWrite (bool on_dev=true) |
| Shortcut for mfem::ReadWrite(a.GetMemory(), a.Size(), on_dev).
|
|
T * | HostReadWrite () |
| Shortcut for mfem::ReadWrite(a.GetMemory(), a.Size(), false).
|
|
template<typename CT > |
Array< T > & | operator= (const Array< CT > &src) |
|
template<class T>
class mfem::Array< T >
Abstract data type Array.
Array<T> is an automatically increasing array containing elements of the generic type T, which must be a trivial type, see std::is_trivial
. The allocated size may be larger then the logical size of the array. The elements can be accessed by the [] operator, the range is 0 to size-1.
Definition at line 46 of file array.hpp.