PSCF v1.1
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
Util::Array< Data > Class Template Reference

Array container class template. More...

#include <Array.h>

Inheritance diagram for Util::Array< Data >:
Util::DArray< double > Util::DArray< Pscf::Monomer > Util::DArray< Polymer > Util::DArray< Solvent > Util::DArray< DArray< System::WField > > Util::DArray< System::WField > Util::DArray< DArray< System::WField > * > Util::DArray< DArray< double > > Util::DArray< Block< D > > Util::DArray< Pscf::Vertex > Util::DArray< Util::Pair< int > > Util::DArray< fftw_complex > Util::DArray< BasisFieldState< D > > Util::DArray< BasisFieldState< D > * > Util::DArray< Pscf::Basis::Wave > Util::DArray< int > Util::DArray< Pscf::Fd1d::SweepParameter > Util::DArray< Pscf::Homogeneous::Molecule > Util::DArray< Pscf::Homogeneous::Clump > Util::DArray< Block > Util::DArray< Util::DArray< double > > Util::DArray< Pscf::Pspc::RField< D > > Util::DArray< FT > Util::DArray< Pscf::Pspc::SweepParameter< D > > Util::DArray< Pscf::Pspc::RField > Util::DArray< Pscf::Pspc::RFieldDft< D > > Util::DArray< Pscf::Pspg::RDField< D > > Util::DArray< Pscf::Pspg::SweepParameter< D > > Util::DArray< Pscf::Pspg::RDFieldDft< D > > Util::DArray< Pscf::IntVec< D > > Util::DArray< State > Util::DArray< State * > Util::DArray< Product > Util::DArray< Util::RingBuffer< Data > > Util::DArray< Util::Polynomial< double > > Util::DArray< Type > Util::DArray< long > Util::DArray< Data > Util::RArray< Data >

Public Member Functions

virtual ~Array ()
 Destructor. More...
 
int capacity () const
 Return allocated size. More...
 
void begin (ArrayIterator< Data > &iterator)
 Set an iterator to begin this Array. More...
 
void begin (ConstArrayIterator< Data > &iterator) const
 Set a const iterator to begin this Array. More...
 
Data & operator[] (int i)
 Get an element by non-const reference. More...
 
Data const & operator[] (int i) const
 Get an element by const reference. More...
 
Data * cArray ()
 Return a pointer to the underlying C array. More...
 
Data const * cArray () const
 Return pointer to const to the underlying C array. More...
 

Protected Member Functions

 Array ()
 Default constructor. More...
 

Protected Attributes

Data * data_
 Pointer to an array of Data elements. More...
 
int capacity_
 Allocated size of the data_ array. More...
 

Detailed Description

template<typename Data>
class Util::Array< Data >

Array container class template.

An Array is a sequence that supports random access via an overloaded operator [], and that wraps a dynamically allocated C array.

Array is a base class for DArray, which is dynamically allocated, and RArray, which acts as a reference to another DArray or FSArray.

When compiled in debug mode (i.e., when NDEBUG is not defined) the subscript operator [] checks the validity of the element index.

Definition at line 33 of file Array.h.

Constructor & Destructor Documentation

◆ ~Array()

template<typename Data >
Util::Array< Data >::~Array
virtual

Destructor.

Definition at line 152 of file Array.h.

◆ Array()

template<typename Data >
Util::Array< Data >::Array
protected

Default constructor.

Protected to prevent direct instantiation.

Definition at line 143 of file Array.h.

Member Function Documentation

◆ capacity()

template<typename Data >
int Util::Array< Data >::capacity
inline

Return allocated size.

Returns
number of elements allocated in array

Definition at line 159 of file Array.h.

Referenced by Util::ArraySet< Data >::allocate(), Util::DRaggedMatrix< Data >::allocate(), Util::RArray< Data >::associate(), Util::bcast(), Pscf::Fd1d::Sweep::checkAllocation(), Pscf::FieldComparison< FT >::compare(), Pscf::Pspg::KFieldComparison< D >::compare(), Pscf::Pspc::KFieldComparison< D >::compare(), Pscf::Pspc::Mixture< D >::compute(), Pscf::Fd1d::Mixture::compute(), Pscf::Fd1d::HomogeneousComparison::compute(), Pscf::Fd1d::Block::computeConcentration(), Pscf::Homogeneous::Mixture::computePhi(), Pscf::Pspc::Propagator< D >::computeQ(), Util::Distribution::Distribution(), Pscf::Fd1d::FieldIo::extend(), Pscf::Pspc::FFT< D >::forwardTransform(), Pscf::Fd1d::Domain::innerProduct(), Util::IntDistribution::IntDistribution(), Pscf::Pspc::FFT< D >::inverseTransform(), Pscf::Pspc::FFT< D >::inverseTransformSafe(), Util::Distribution::loadParameters(), Util::IntDistribution::loadParameters(), Util::RadialDistribution::loadParameters(), Util::Distribution::operator=(), Util::IntDistribution::operator=(), Pscf::Pspc::RField< D >::operator=(), Util::DArray< Data >::operator=(), Pscf::Field< T >::operator=(), Pscf::Pspc::RFieldDft< D >::operator=(), Util::Polynomial< T >::Polynomial(), Pscf::Pspc::FieldIo< D >::readFieldBasis(), Pscf::Fd1d::FieldIo::readFields(), Util::recv(), Pscf::Fd1d::FieldIo::remesh(), Util::send(), Util::Distribution::serialize(), Pscf::Pspc::WFieldContainer< D >::setBasis(), Pscf::Pspg::WFieldContainer< D >::setBasis(), Pscf::Pspc::Mask< D >::setBasis(), Pscf::Pspc::WFieldContainer< D >::setRGrid(), Pscf::Pspc::FFT< D >::setup(), Pscf::Fd1d::Block::setupSolver(), Pscf::LuSolver::solve(), Pscf::Pspc::Propagator< D >::solve(), Pscf::Fd1d::Domain::spatialAverage(), Pscf::Pspc::Block< D >::step(), Pscf::Pspc::System< D >::writeBlockCRGrid(), Pscf::Pspg::System< D >::writeBlockCRGrid(), Pscf::Fd1d::FieldIo::writeField(), Pscf::Pspc::FieldIo< D >::writeFieldBasis(), and Pscf::Fd1d::FieldIo::writeFields().

◆ begin() [1/2]

template<typename Data >
void Util::Array< Data >::begin ( ArrayIterator< Data > &  iterator)
inline

Set an iterator to begin this Array.

On return, iterator points to the first element of the array, and the iterator end pointer is set to one past the last element.

Parameters
iteratorArrayIterator, initialized on output

Definition at line 166 of file Array.h.

References Util::ArrayIterator< Data >::setCurrent(), and Util::ArrayIterator< Data >::setEnd().

◆ begin() [2/2]

template<typename Data >
void Util::Array< Data >::begin ( ConstArrayIterator< Data > &  iterator) const
inline

Set a const iterator to begin this Array.

On return, iterator points to the first element of the array, and the iterator end pointer is set to one past the last element.

Parameters
iteratorConstArrayIterator, initialized on output

Definition at line 178 of file Array.h.

References Util::ConstArrayIterator< Data >::setCurrent(), and Util::ConstArrayIterator< Data >::setEnd().

◆ operator[]() [1/2]

template<typename Data >
Data & Util::Array< Data >::operator[] ( int  i)
inline

Get an element by non-const reference.

Mimic C-array subscripting.

Parameters
iarray index
Returns
non-const reference to element i

Definition at line 190 of file Array.h.

◆ operator[]() [2/2]

template<typename Data >
Data const & Util::Array< Data >::operator[] ( int  i) const
inline

Get an element by const reference.

Mimics C-array subscripting.

Parameters
iarray index
Returns
const reference to element i

Definition at line 202 of file Array.h.

◆ cArray() [1/2]

template<typename Data >
Data * Util::Array< Data >::cArray
inline

Return a pointer to the underlying C array.

Definition at line 214 of file Array.h.

Referenced by Util::Distribution::reduce(), and Pscf::LuSolver::solve().

◆ cArray() [2/2]

template<typename Data >
Data const * Util::Array< Data >::cArray
inline

Return pointer to const to the underlying C array.

Definition at line 221 of file Array.h.

Member Data Documentation

◆ data_

template<typename Data >
Data* Util::Array< Data >::data_
protected

◆ capacity_

template<typename Data >
int Util::Array< Data >::capacity_
protected

The documentation for this class was generated from the following files: