|
PSCF v1.4.0
|
Array container class template. More...
#include <Array.h>
Public Member Functions | |
| int | capacity () const |
| Return allocated size. | |
| void | begin (ArrayIterator< Data > &iterator) |
| Set an iterator to begin this Array. | |
| void | begin (ConstArrayIterator< Data > &iterator) const |
| Set a const iterator to begin this Array. | |
| Data & | operator[] (int i) |
| Get an element by non-const reference. | |
| Data const & | operator[] (int i) const |
| Get an element by const reference. | |
| Data * | cArray () |
| Return a pointer to the underlying C array. | |
| Data const * | cArray () const |
| Return pointer to const to the underlying C array. | |
Protected Member Functions | |
| Array () | |
| Constructor (protected to provent direct instantiation). | |
| ~Array () | |
| Destructor (protected to prevent direct destruction). | |
Protected Attributes | |
| Data * | data_ |
| Pointer to an array of Data elements. | |
| int | capacity_ |
| Allocated size of the data_ array. | |
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.
The Array class template is designed to be used as only as a base class, and does not provide functions for memory management. Specializations of the DArray, RArray, and DRArray class templates are derived from corresponding specializations of the Array template. The Array template has a protected constructor and a protected destructor. As a result, an Array can only be created as part of an instance of a derived class, and cannot be destroyed via a base class pointer or reference.
When compiled in debug mode (i.e., when NDEBUG is not defined) the subscript operator [] checks the validity of the element index.
|
protected |
|
protected |
|
inline |
Return allocated size.
Definition at line 144 of file Array.h.
References capacity_.
Referenced by Pscf::VecOp::absV(), Pscf::VecOp::addEqS(), Pscf::VecOp::addEqS(), Pscf::VecOp::addEqV(), Pscf::VecOp::addEqVc(), Pscf::VecOp::addVcS(), Pscf::VecOp::addVcVc(), Pscf::VecOp::addVcVcS(), Pscf::VecOp::addVcVcVc(), Pscf::VecOp::addVS(), Pscf::VecOp::addVS(), Pscf::VecOp::addVS(), Pscf::VecOp::addVV(), Pscf::VecOp::addVV(), Pscf::VecOp::addVV(), Pscf::Prdc::Cpu::FftwDArray< Data >::allocate(), Pscf::Rp::Mixture< D, Types< D > >::allocate(), Util::ArraySet< Data >::allocate(), Util::DArray< Data >::allocate(), Util::DRaggedMatrix< Data >::allocate(), Util::DRArray< Data >::allocate(), Util::DRArray< Data >::associate(), Util::RArray< Data >::associate(), Util::RArray< Data >::associate(), Pscf::Prdc::checkAllocateFields(), Pscf::FieldComparison< FT >::compare(), Pscf::Prdc::Cpu::CFieldComparison< D >::compare(), Pscf::Prdc::Cpu::RFieldDftComparison< D >::compare(), Pscf::Cpc::Solvent< D >::compute(), Pscf::R1d::Mixture::compute(), Pscf::Correlation::Polymer< WT >::computeOmega(), Pscf::Correlation::Mixture< WT >::computeOmegaTotal(), Pscf::Correlation::Mixture< RealT >::computeOmegaTotal(), Pscf::Correlation::Polymer< WT >::computeOmegaTotal(), Pscf::Rp::IntraCorrelation< D, T >::computeOmegaTotal(), Pscf::Rp::BinaryStructureFactor< D, T >::computeS(), Pscf::Rpg::FieldIo< D >::convertBasisToKGrid(), Pscf::Rp::FieldIo< D, RFT, KFT, FFT >::convertBasisToRGrid(), Pscf::Rpg::FieldIo< D >::convertKGridToBasis(), Pscf::Cp::FieldIo< D, CFT, FFT >::convertKGridToRGrid(), Pscf::Rp::FieldIo< D, RFT, KFT, FFT >::convertKGridToRGrid(), Pscf::Cp::FieldIo< D, CFT, FFT >::convertRGridToKGrid(), Pscf::Rp::FieldIo< D, RFT, KFT, FFT >::convertRGridToKGrid(), Pscf::Prdc::copyArrays(), Util::DArray< Data >::DArray(), Pscf::DeviceArray< Data >::DeviceArray(), Util::Distribution::Distribution(), Pscf::VecOp::divEqS(), Pscf::VecOp::divEqS(), Pscf::VecOp::divEqS(), Pscf::VecOp::divEqV(), Pscf::VecOp::divEqV(), Pscf::VecOp::divEqV(), Pscf::VecOp::divEqVc(), Pscf::VecOp::divSV(), Pscf::VecOp::divVS(), Pscf::VecOp::divVS(), Pscf::VecOp::divVS(), Pscf::VecOp::divVV(), Pscf::VecOp::divVV(), Pscf::VecOp::divVV(), Util::DRArray< Data >::DRArray(), Pscf::VecOp::eqS(), Pscf::VecOp::eqS(), Pscf::VecOp::eqS(), Pscf::VecOp::eqV(), Pscf::VecOp::eqV(), Pscf::VecOp::eqV(), Pscf::VecOp::eqV(), Pscf::VecOp::eqV(), Pscf::VecOp::eqV(), Pscf::VecOp::eqV(), Pscf::VecOp::eqV(), Pscf::VecOp::eqVPair(), Pscf::VecOp::expV(), Pscf::VecOp::expV(), Pscf::VecOp::expVc(), Pscf::R1d::FieldIo::extend(), Pscf::Prdc::Cpu::FFT< D >::forwardTransform(), Pscf::Prdc::Cpu::FFT< D >::forwardTransform(), Pscf::HostDArray< Data >::HostDArray(), Pscf::HostDArray< cudaComplex >::HostDArray(), Pscf::Prdc::Cuda::HostDArrayComplex::HostDArrayComplex(), Pscf::VecOp::imag(), Pscf::R1d::Domain::innerProduct(), Pscf::Reduce::innerProduct(), Pscf::Prdc::inspectArrays(), Pscf::Prdc::inspectFields(), Util::IntDistribution::IntDistribution(), Pscf::Prdc::Cpu::FFT< D >::inverseTransform(), Pscf::Prdc::Cpu::FFT< D >::inverseTransformSafe(), Pscf::Prdc::Cpu::FFT< D >::inverseTransformUnsafe(), Pscf::Reduce::max(), Pscf::Reduce::max(), Pscf::Reduce::maxAbs(), Pscf::Reduce::min(), Pscf::Reduce::min(), Pscf::Reduce::minAbs(), Pscf::VecOp::mulEqS(), Pscf::VecOp::mulEqS(), Pscf::VecOp::mulEqS(), Pscf::VecOp::mulEqV(), Pscf::VecOp::mulEqV(), Pscf::VecOp::mulEqV(), Pscf::VecOp::mulEqVPair(), Pscf::VecOp::mulVS(), Pscf::VecOp::mulVS(), Pscf::VecOp::mulVS(), Pscf::VecOp::mulVV(), Pscf::VecOp::mulVV(), Pscf::VecOp::mulVV(), Pscf::VecOp::mulVVPair(), Pscf::CpuVecRandom::normal(), Pscf::DeviceArray< Data >::operator=(), Pscf::Prdc::Cuda::CField< D >::operator=(), Pscf::Prdc::Cuda::RField< D >::operator=(), Pscf::Prdc::Cuda::RFieldDft< D >::operator=(), Util::DArray< Data >::operator=(), Util::DArray< Data >::operator=(), Util::Distribution::operator=(), Util::DRArray< Data >::operator=(), Util::DRArray< Data >::operator=(), Util::IntDistribution::operator=(), Util::Polynomial< T >::Polynomial(), Util::RArray< Data >::RArray(), Pscf::Prdc::readBasisData(), Pscf::Prdc::readBasisData(), Pscf::Prdc::readCFieldsData(), Pscf::Rp::FieldIo< D, RFT, KFT, FFT >::readFieldBasis(), Pscf::R1d::FieldIo::readFields(), Pscf::Prdc::readRGridData(), Pscf::VecOp::real(), Util::DArray< Data >::reallocate(), Pscf::R1d::FieldIo::remesh(), Pscf::Prdc::replicateUnitCell(), Pscf::Rp::FieldIo< D, RFT, KFT, FFT >::scaleFieldBasis(), Pscf::Rpc::FieldIo< D >::scaleFieldRGrid(), Pscf::Rp::FieldIo< D, RFT, KFT, FFT >::scaleFieldsRGrid(), Pscf::Prdc::Cpu::FftwDArray< Data >::serialize(), Util::DArray< Data >::serialize(), Pscf::Rp::WFields< D, RFT, FIT >::setBasis(), Pscf::Cp::Mixture< D, Polymer< D >, Solvent< D >, Types< D > >::setFieldIo(), Pscf::Rp::WFields< D, RFT, FIT >::setRGrid(), Pscf::Correlation::Polymer< WT >::setup(), Pscf::Prdc::Cpu::FFT< D >::setup(), Pscf::Rp::ShiftMove< D, T >::shiftField(), Pscf::LuSolver::solve(), Pscf::R1d::Domain::spatialAverage(), Pscf::VecOp::sqAbsV(), Pscf::VecOp::sqSqAbsV(), Pscf::VecOp::sqV(), Pscf::VecOp::sqV(), Pscf::Cpc::Block< D >::stepBondBead(), Pscf::Rpc::Block< D >::stepBondBead(), Pscf::Cpc::Block< D >::stepFieldBead(), Pscf::Rpc::Block< D >::stepFieldBead(), Pscf::Cpc::Block< D >::stepHalfBondBead(), Pscf::Rpc::Block< D >::stepHalfBondBead(), Pscf::Cpc::Block< D >::stepThread(), Pscf::Rpc::Block< D >::stepThread(), Pscf::Rpg::FilmFieldGenExt< D >::stress(), Pscf::VecOp::subEqS(), Pscf::VecOp::subEqS(), Pscf::VecOp::subEqS(), Pscf::VecOp::subEqV(), Pscf::VecOp::subEqV(), Pscf::VecOp::subEqV(), Pscf::VecOp::subVS(), Pscf::VecOp::subVS(), Pscf::VecOp::subVS(), Pscf::VecOp::subVV(), Pscf::VecOp::subVV(), Pscf::VecOp::subVV(), Pscf::Reduce::sum(), Pscf::Reduce::sum(), Pscf::Reduce::sum(), Pscf::Reduce::sum(), Pscf::Reduce::sumProduct(), Pscf::Reduce::sumSq(), Pscf::Reduce::sumSq(), Pscf::CpuVecRandom::uniform(), Pscf::CpuVecRandom::uniform(), Pscf::Prdc::writeBasisData(), Pscf::Prdc::writeBasisData(), Pscf::Prdc::writeCFieldsData(), Pscf::R1d::FieldIo::writeField(), Pscf::Rp::FieldIo< D, RFT, KFT, FFT >::writeFieldBasis(), Pscf::R1d::FieldIo::writeFields(), and Pscf::Prdc::writeRGridData().
|
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.
| iterator | ArrayIterator, initialized on output |
Definition at line 151 of file Array.h.
References capacity_, data_, Util::ArrayIterator< Data >::setCurrent(), and Util::ArrayIterator< Data >::setEnd().
|
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.
| iterator | ConstArrayIterator, initialized on output |
Definition at line 163 of file Array.h.
References capacity_, data_, Util::ConstArrayIterator< Data >::setCurrent(), and Util::ConstArrayIterator< Data >::setEnd().
|
inline |
|
inline |
|
inline |
Return a pointer to the underlying C array.
Definition at line 199 of file Array.h.
References data_.
Referenced by Pscf::VecOp::addVMany(), Pscf::VecOp::addVMany(), Util::DRArray< Data >::associate(), Pscf::Rpg::FilmFieldGenExt< D >::compute(), Pscf::DeviceArray< Data >::DeviceArray(), Pscf::VecOp::eqV(), Pscf::VecOp::eqV(), Pscf::VecOp::mulVMany(), Pscf::VecOp::mulVMany(), Pscf::DeviceArray< Data >::operator=(), Pscf::LuSolver::solve(), and Pscf::Rpg::FilmFieldGenExt< D >::stress().
|
inline |
|
protected |
Pointer to an array of Data elements.
Definition at line 107 of file Array.h.
Referenced by Util::DArray< Data >::allocate(), Util::DRArray< Data >::allocate(), Array(), Util::DRArray< Data >::associate(), Util::RArray< Data >::associate(), Util::RArray< Data >::associate(), begin(), begin(), cArray(), cArray(), Util::DArray< Data >::DArray(), Util::DArray< Data >::deallocate(), Util::DRArray< Data >::deallocate(), Util::DRArray< Data >::dissociate(), Util::DRArray< Data >::DRArray(), Pscf::Prdc::Cpu::FftwDArray< Data >::isAllocated(), Util::DArray< Data >::isAllocated(), Util::DRArray< Data >::isAllocated(), Util::DRArray< Data >::isAssociated(), Util::DRArray< Data >::isOwner(), Pscf::Prdc::Cpu::CField< D >::operator=(), Pscf::Prdc::Cpu::RFieldDft< D >::operator=(), Util::DArray< Data >::operator=(), Util::DArray< Data >::operator=(), Util::DRArray< Data >::operator=(), Util::DRArray< Data >::operator=(), operator[](), operator[](), Util::RArray< Data >::RArray(), Util::DArray< Data >::reallocate(), Pscf::Prdc::Cpu::RFieldDft< D >::RFieldDft(), Pscf::Prdc::Cpu::FftwDArray< Data >::serialize(), Util::DArray< Data >::serialize(), Util::DArray< Data >::~DArray(), Util::DRArray< Data >::~DRArray(), and Pscf::Prdc::Cpu::FftwDArray< Data >::~FftwDArray().
|
protected |
Allocated size of the data_ array.
Definition at line 110 of file Array.h.
Referenced by Util::DArray< Data >::allocate(), Util::DRArray< Data >::allocate(), Array(), Util::DRArray< Data >::associate(), Util::RArray< Data >::associate(), Util::RArray< Data >::associate(), begin(), begin(), capacity(), Pscf::Prdc::Cpu::CField< D >::CField(), Util::DArray< Data >::DArray(), Util::DArray< Data >::deallocate(), Util::DRArray< Data >::deallocate(), Util::DRArray< Data >::dissociate(), Util::DRArray< Data >::DRArray(), Pscf::Prdc::Cpu::CField< D >::operator=(), Pscf::Prdc::Cpu::RField< D >::operator=(), Pscf::Prdc::Cpu::RFieldDft< D >::operator=(), Util::DArray< Data >::operator=(), Util::DArray< Data >::operator=(), Util::DRArray< Data >::operator=(), Util::DRArray< Data >::operator=(), operator[](), operator[](), Util::RArray< Data >::RArray(), Util::DArray< Data >::reallocate(), Pscf::Prdc::Cpu::FftwDArray< Data >::serialize(), Util::DArray< Data >::serialize(), Util::DArray< Data >::~DArray(), Util::DRArray< Data >::~DRArray(), and Pscf::Prdc::Cpu::FftwDArray< Data >::~FftwDArray().