![]() |
QMCPACK
|
A D-dimensional Array class based on PETE. More...
Public Types | |
using | Type_t = T |
using | Container_t = qmcplusplus::Vector< T, ALLOC > |
using | This_t = Array< T, D, ALLOC > |
using | sizes_type = decltype(std::declval< base_type const & >().sizes()) |
Public Member Functions | |
Array () | |
Array (const Array &rhs) | |
template<typename SIZET = size_t, typename = std::is_integral<SIZET>> | |
Array (const std::array< SIZET, D > &dims) | |
template<typename... Args> | |
Array (Args... sizes) | |
Provides specialized constructors with signature (size_1, ... , size_D) for array dimension D. More... | |
unsigned | dim () const |
const std::array< size_t, D > & | shape () const |
size_t | size () const |
size_t | size (int i) const |
Container_t & | storage () |
template<typename SIZET = size_t, typename = std::is_integral<SIZET>> | |
void | resize (const std::array< SIZET, D > &dims) |
Resize the container. More... | |
template<typename... Args> | |
void | resize (Args... sizes) |
Provides specialized resize(size_1, ... , size_D) functions for the array D. More... | |
Container_t::iterator | begin () |
Container_t::iterator | end () |
Container_t::const_iterator | begin () const |
Container_t::const_iterator | end () const |
const Type_t * | first_address () const |
const Type_t * | last_address () const |
Type_t * | first_address () |
Type_t * | last_address () |
This_t & | operator= (const T &rhs) |
This_t & | operator= (const Array &rhs) |
template<typename TT , typename ALLOC2 > | |
This_t & | operator= (const Array< TT, D, ALLOC2 > &rhs) |
Type_t | sum () const |
template<typename Allocator = ALLOC, typename = qmcplusplus::IsDualSpace<Allocator>> | |
void | updateTo (size_t size=0, std::ptrdiff_t offset=0) |
template<typename Allocator = ALLOC, typename = qmcplusplus::IsDualSpace<Allocator>> | |
void | updateFrom (size_t size=0, std::ptrdiff_t offset=0) |
Array & | operator= (const T t) |
Array (int rs, int cs) | |
std::ptrdiff_t | extent (int d) const |
auto | rows () const |
auto | cols () const |
void | resize (int rs, int cs) |
sizes_type | shape () const |
void | resize (sizes_type sizes) |
template<class... Ints> | |
void | resizeAndPreserve (Ints... sizes) |
void | resizeAndPreserve (sizes_type sizes) |
template<class... Ints> | |
void | resize (Ints... ns) |
base_type::element_ptr | data () |
base_type::element_const_ptr | data () const |
Type_t * | data () |
const Type_t * | data () const |
template<typename Allocator = ALLOC, typename = qmcplusplus::IsDualSpace<Allocator>> | |
Type_t * | device_data () |
template<typename Allocator = ALLOC, typename = qmcplusplus::IsDualSpace<Allocator>> | |
const Type_t * | device_data () const |
template<typename SIZET = size_t, typename = std::is_integral<SIZET>> | |
Type_t * | data_at (const std::array< SIZET, D > &indices) |
template<typename SIZET = size_t, typename = std::is_integral<SIZET>> | |
const Type_t * | data_at (const std::array< SIZET, D > &indices) const |
template<typename SIZET = size_t, typename = std::is_integral<SIZET>, typename Allocator = ALLOC, typename = qmcplusplus::IsDualSpace<Allocator>> | |
Type_t * | device_data_at (const std::array< SIZET, D > &indices) |
template<typename SIZET = size_t, typename = std::is_integral<SIZET>, typename Allocator = ALLOC, typename = qmcplusplus::IsDualSpace<Allocator>> | |
const Type_t * | device_data_at (const std::array< SIZET, D > &indices) const |
template<typename... Args> | |
Type_t * | data_at (Args... indices) |
template<typename... Args> | |
const Type_t * | data_at (Args... indices) const |
template<typename... Args, typename Allocator = ALLOC, typename = qmcplusplus::IsDualSpace<Allocator>> | |
Type_t * | device_data_at (Args... indices) |
template<typename... Args, typename Allocator = ALLOC, typename = qmcplusplus::IsDualSpace<Allocator>> | |
const Type_t * | device_data_at (Args... indices) const |
template<typename SIZET = size_t, typename = std::is_integral<SIZET>> | |
Type_t & | operator() (const std::array< SIZET, D > &indices) |
template<typename SIZET = size_t, typename = std::is_integral<SIZET>> | |
const Type_t & | operator() (const std::array< SIZET, D > &indices) const |
template<typename... Args> | |
Type_t & | operator() (Args... indices) |
template<typename... Args> | |
const Type_t & | operator() (Args... indices) const |
Private Member Functions | |
size_t | full_size (const std::array< size_t, D > &dims) const |
compute the full size of dims More... | |
template<typename SIZET = size_t, typename = std::is_integral<SIZET>> | |
SIZET | compute_offset (const std::array< SIZET, D > &indices) const |
Private Attributes | |
std::array< size_t, D > | Length |
Container_t | X |
A D-dimensional Array class based on PETE.
Definition at line 25 of file OhmmsArray.h.
using Container_t = qmcplusplus::Vector<T, ALLOC> |
Definition at line 29 of file OhmmsArray.h.
using sizes_type = decltype(std::declval<base_type const&>().sizes()) |
Definition at line 30 of file OhmmsArray.h.
using Type_t = T |
Definition at line 28 of file OhmmsArray.h.
|
inline |
Definition at line 33 of file OhmmsArray.h.
Definition at line 36 of file OhmmsArray.h.
|
inline |
Definition at line 43 of file OhmmsArray.h.
|
inline |
Provides specialized constructors with signature (size_1, ... , size_D) for array dimension D.
Definition at line 50 of file OhmmsArray.h.
|
inline |
Definition at line 80 of file OhmmsArray.h.
Referenced by JeeIOrbitalSoA< FT >::acceptMove(), Array< T, D >::Array(), Array< T, D >::operator=(), and TraceBuffer< TraceInt >::test_buffer_write().
|
inline |
Definition at line 82 of file OhmmsArray.h.
|
inline |
Definition at line 90 of file Blitz.h.
Referenced by RungeKutta2< IntegrandClass >::IntegrateForw(), and RungeKutta2< IntegrandClass >::IntegrateRev().
|
inlineprivate |
Definition at line 247 of file OhmmsArray.h.
Referenced by Array< T, D >::data_at(), Array< T, D >::device_data_at(), and Array< T, D >::operator()().
|
inline |
access the container data pointer
Definition at line 87 of file OhmmsArray.h.
Referenced by Array2Vec(), MultiQuinticSpline1D< T >::batched_evaluate(), SoaSphericalTensor< ST >::batched_evaluateV(), SoaCartesianTensor< T >::batched_evaluateV(), MultiFunctorAdapter< FN >::batched_evaluateVGL(), SoaSphericalTensor< ST >::batched_evaluateVGL(), SoaCartesianTensor< T >::batched_evaluateVGL(), MultiQuinticSpline1D< T >::batched_evaluateVGL(), Communicate::bcast(), TraceBuffer< TraceInt >::collect_sample(), MPC::compute_g_G(), conjdot(), OneSplineOrbData::create(), Grid::data(), BackflowTransformation::evaluateDerivatives(), OneSplineOrbData::fft_spline(), qmcplusplus::fix_phase_rotate(), qmcplusplus::fix_phase_rotate_c2c(), qmcplusplus::fix_phase_rotate_c2r(), container_traits< Array< T, D > >::getElementPtr(), MPC::init_spline(), WalkerLogBuffer< WLog::Real >::makeNewRow(), SoaAtomicBasisSet< ROT, SH >::mw_evaluateV(), LCAOrbitalSet::mw_evaluateValueImplGEMM(), LCAOrbitalSet::mw_evaluateValueVPsImplGEMM(), SoaAtomicBasisSet< ROT, SH >::mw_evaluateVGL(), LCAOrbitalSet::mw_evaluateVGLandDetRatioGrads(), SplineC2COMPTarget< ST >::mw_evaluateVGLandDetRatioGrads(), SplineC2ROMPTarget< ST >::mw_evaluateVGLandDetRatioGrads(), SpinorSet::mw_evaluateVGLandDetRatioGradsWithSpin(), LCAOrbitalSet::mw_evaluateVGLImplGEMM(), norm(), Normalize(), Orthogonalize(), GridExternalPotential::put(), h5data_proxy< Array< T, D > >::read(), WalkerLogBuffer< WLog::Real >::resetRowSize(), qmcplusplus::split_real_components_c2c(), qmcplusplus::TEST_CASE(), BackflowTransformation::testDeriv(), Vec2Array(), h5data_proxy< Array< T, D > >::write(), TraceBuffer< TraceInt >::write_hdf(), and WalkerLogBuffer< WLog::Real >::writeHDF().
|
inline |
Definition at line 88 of file OhmmsArray.h.
|
inline |
|
inline |
|
inline |
access the data pointer at {index_1, ..., index_D}
Definition at line 104 of file OhmmsArray.h.
Referenced by MultiFunctorAdapter< FN >::batched_evaluateVGL(), MultiQuinticSpline1D< T >::batched_evaluateVGL(), Array< T, D >::data_at(), LCAOrbitalSet::mw_evaluateValueVPsImplGEMM(), LCAOrbitalSet::mw_evaluateVGLandDetRatioGrads(), SPOSet::mw_evaluateVGLandDetRatioGrads(), and qmcplusplus::TEST_CASE().
|
inline |
Definition at line 109 of file OhmmsArray.h.
|
inline |
Definition at line 131 of file OhmmsArray.h.
|
inline |
Definition at line 137 of file OhmmsArray.h.
|
inline |
Definition at line 90 of file OhmmsArray.h.
Referenced by LCAOrbitalSet::mw_evaluateValueImplGEMM(), LCAOrbitalSet::mw_evaluateValueVPsImplGEMM(), and LCAOrbitalSet::mw_evaluateVGLImplGEMM().
|
inline |
Definition at line 95 of file OhmmsArray.h.
|
inline |
Definition at line 117 of file OhmmsArray.h.
Referenced by Array< T, D >::device_data_at(), DelayedUpdateBatched< PL, VALUE >::mw_accept_rejectRow(), and DelayedUpdateBatched< PL, VALUE >::mw_updateRow().
|
inline |
Definition at line 125 of file OhmmsArray.h.
|
inline |
Definition at line 143 of file OhmmsArray.h.
|
inline |
Definition at line 149 of file OhmmsArray.h.
|
inline |
Definition at line 55 of file OhmmsArray.h.
Referenced by TraceBuffer< TraceInt >::write_hdf(), and WalkerLogBuffer< WLog::Real >::writeHDF().
|
inline |
Definition at line 81 of file OhmmsArray.h.
Referenced by Array< T, D >::Array(), Array< T, D >::operator=(), and TraceBuffer< TraceInt >::test_buffer_write().
|
inline |
Definition at line 83 of file OhmmsArray.h.
|
inline |
Definition at line 77 of file Blitz.h.
Referenced by IOVarBase::Append(), Array2Vec(), copy(), IOVarASCII< T, RANK >::VarWrite(), and Vec2Array().
|
inline |
Definition at line 156 of file OhmmsArray.h.
|
inline |
Definition at line 160 of file OhmmsArray.h.
|
inlineprivate |
compute the full size of dims
Definition at line 238 of file OhmmsArray.h.
Referenced by Array< T, D >::resize().
|
inline |
Definition at line 158 of file OhmmsArray.h.
|
inline |
Definition at line 162 of file OhmmsArray.h.
|
inline |
access the element at {index_1, ..., index_D}
Definition at line 191 of file OhmmsArray.h.
Referenced by Array< T, D >::operator()().
|
inline |
Definition at line 196 of file OhmmsArray.h.
|
inline |
Definition at line 201 of file OhmmsArray.h.
|
inline |
Definition at line 207 of file OhmmsArray.h.
|
inline |
|
inline |
Definition at line 164 of file OhmmsArray.h.
Definition at line 170 of file OhmmsArray.h.
Definition at line 181 of file OhmmsArray.h.
|
inline |
Resize the container.
For performance consideration, previous data may or may not get kept. Please avoid relying on previous data after resizing.
Definition at line 65 of file OhmmsArray.h.
Referenced by Array< T, D >::Array(), JeeIOrbitalSoA< FT >::checkOutVariables(), WalkerLogCollector::collect(), TraceBuffer< TraceInt >::collect_sample(), OneSplineOrbData::create(), CoulombPBCAB::evalConsts(), OrbitalImages::evaluate(), BackflowTransformation::evaluateDerivatives(), CubicSplineCommon::Init(), LinearGrid::Init(), JeeIOrbitalSoA< FT >::init(), GeneralGrid::Init(), OptimalGrid::Init(), OptimalGrid2::Init(), CenterGrid::Init(), LogGrid::Init(), ClusterGrid::Init(), CoulombPBCAA::initBreakup(), SHOSet::initialize(), OptimalGrid::InitRatio(), IOVarASCII< T, RANK >::IOVarASCII(), LogGrid::LogGrid(), WalkerLogBuffer< WLog::Real >::makeNewRow(), NonlinearFitClass< M, ModelType >::NonlinearFitClass(), LinearGrid::operator=(), Array< T, D >::operator=(), OptimalGrid::operator=(), OptimalGrid2::OptimalGrid2(), TraceBuffer< TraceInt >::order_and_resize(), h5data_proxy< Array< T, D > >::read(), CubicSplineCommon::Read(), TraceBuffer< TraceInt >::reset(), WalkerLogBuffer< WLog::Real >::resetBuffer(), WalkerLogBuffer< WLog::Real >::resetRowSize(), PolynomialFunctor3D::resize(), Array< T, D >::resize(), container_traits< Array< T, D > >::resize(), SymmArray< T >::resize(), JeeIOrbitalSoA< FT >::resizeWFOptVectors(), TraceBuffer< TraceInt >::test_buffer_write(), qmcplusplus::TEST_CASE(), qmcplusplus::test_LCAO_DiamondC_2x1x1_real(), SHOSet::test_overlap(), DensityMatrices1B::test_overlap(), BackflowTransformation::testDeriv(), qmcplusplus::testDualAllocator(), and IOVarASCII< T, RANK >::VarRead().
|
inline |
Provides specialized resize(size_1, ... , size_D) functions for the array D.
Definition at line 74 of file OhmmsArray.h.
|
inline |
|
inline |
|
inline |
Definition at line 97 of file Blitz.h.
Referenced by Array< T, D >::resize(), and Array< T, 1, base_type >::resize().
|
inline |
|
inline |
Definition at line 89 of file Blitz.h.
Referenced by CubicSplineCommon::Init().
|
inline |
Definition at line 56 of file OhmmsArray.h.
Referenced by Array< T, D >::Array(), copy(), IOVarASCII< T, RANK >::IOVarASCII(), LinearGrid::operator=(), Array< T, D >::operator=(), OptimalGrid::operator=(), qmcplusplus::TEST_CASE(), and IOVarASCII< T, RANK >::VarWrite().
|
inline |
|
inline |
Definition at line 57 of file OhmmsArray.h.
Referenced by WalkerLogBuffer< WLog::Real >::addRow(), Array2Vec(), MultiFunctorAdapter< FN >::batched_evaluate(), MultiQuinticSpline1D< T >::batched_evaluate(), SoaSphericalTensor< ST >::batched_evaluateV(), SoaCartesianTensor< T >::batched_evaluateV(), MultiFunctorAdapter< FN >::batched_evaluateVGL(), SoaSphericalTensor< ST >::batched_evaluateVGL(), SoaCartesianTensor< T >::batched_evaluateVGL(), MultiQuinticSpline1D< T >::batched_evaluateVGL(), Communicate::bcast(), NonlinearFitClass< M, ModelType >::CalcAlphaBeta(), JeeIOrbitalSoA< FT >::checkOutVariables(), NonlinearFitClass< M, ModelType >::Chi2(), WalkerLogBuffer< WLog::Real >::collect(), TraceBuffer< TraceInt >::collect_sample(), JeeIOrbitalSoA< FT >::computeU(), JeeIOrbitalSoA< FT >::computeU3(), conjdot(), CoulombPBCAB::evaluate_sp(), CoulombPBCAA::evaluate_sp(), BackflowTransformation::evaluateDerivatives(), JeeIOrbitalSoA< FT >::evaluateDerivatives(), JeeIOrbitalSoA< FT >::evaluateDerivativesWF(), JeeIOrbitalSoA< FT >::evaluateDerivRatios(), container_traits< Array< T, D > >::getSize(), h5data_proxy< Array< T, D > >::h5data_proxy(), GeneralGrid::Init(), WalkerLogBuffer< WLog::Real >::makeNewRow(), SoaLocalizedBasisSet< COT, ORBT >::mw_evaluateValue(), LCAOrbitalSet::mw_evaluateValueImplGEMM(), SoaLocalizedBasisSet< COT, ORBT >::mw_evaluateValueVPs(), LCAOrbitalSet::mw_evaluateValueVPsImplGEMM(), SoaLocalizedBasisSet< COT, ORBT >::mw_evaluateVGL(), LCAOrbitalSet::mw_evaluateVGLandDetRatioGrads(), SplineC2COMPTarget< ST >::mw_evaluateVGLandDetRatioGrads(), SplineC2ROMPTarget< ST >::mw_evaluateVGLandDetRatioGrads(), SPOSet::mw_evaluateVGLandDetRatioGrads(), SpinorSet::mw_evaluateVGLandDetRatioGradsWithSpin(), LCAOrbitalSet::mw_evaluateVGLImplGEMM(), WalkerLogBuffer< WLog::Real >::ncols(), norm(), Normalize(), WalkerLogBuffer< WLog::Real >::nrows(), Atom::NumElecs(), operator+(), operator==(), OrthogExcluding(), OrthogLower(), Orthogonalize(), Orthogonalize2(), IOVarBase::Read(), CubicSplineCommon::Read(), GeneralGrid::Read(), EinsplineSetBuilder::ReadOrbitalInfo_ESHDF(), TraceBuffer< TraceInt >::reset(), WalkerLogBuffer< WLog::Real >::resetBuffer(), WalkerLogBuffer< WLog::Real >::resetRowSize(), TraceBuffer< TraceInt >::same_as(), WalkerLogBuffer< WLog::Real >::sameAs(), TraceBuffer< TraceInt >::test_buffer_write(), qmcplusplus::TEST_CASE(), BackflowTransformation::testDeriv(), qmcplusplus::testDualAllocator(), Array< T, D >::updateFrom(), Array< T, D >::updateTo(), Vec2Array(), TraceBuffer< TraceInt >::write_hdf(), TraceBuffer< TraceInt >::write_summary(), WalkerLogBuffer< WLog::Real >::writeHDF(), and WalkerLogBuffer< WLog::Real >::writeSummary().
|
inline |
Definition at line 58 of file OhmmsArray.h.
|
inline |
Definition at line 60 of file OhmmsArray.h.
Referenced by TraceSamples< std::complex< TraceReal > >::checkout_array(), WalkerLogCollector::collect(), and WalkerLogBuffer< WLog::Real >::collect().
|
inline |
Definition at line 214 of file OhmmsArray.h.
Referenced by LocalECPotential::evaluate_sp(), BareKineticEnergy::evaluate_sp(), CoulombPBCAB::evaluate_sp(), CoulombPBCAA::evaluate_sp(), CoulombPotential< T >::evaluate_spAA(), CoulombPotential< T >::evaluate_spAB(), and NonLocalECPotential::evaluateImpl().
|
inline |
Definition at line 229 of file OhmmsArray.h.
Referenced by MultiFunctorAdapter< FN >::batched_evaluate(), and MultiFunctorAdapter< FN >::batched_evaluateVGL().
|
inline |
Definition at line 224 of file OhmmsArray.h.
Referenced by MultiFunctorAdapter< FN >::batched_evaluate(), MultiFunctorAdapter< FN >::batched_evaluateVGL(), SPOSet::mw_evaluateVGLandDetRatioGrads(), and SoaAtomicBasisSet< ROT, SH >::setPBCParams().
|
private |
Definition at line 235 of file OhmmsArray.h.
Referenced by Array< T, D >::Array(), Array< T, D >::compute_offset(), Array< T, D >::resize(), Array< T, D >::shape(), and Array< T, D >::size().
|
private |
Definition at line 236 of file OhmmsArray.h.
Referenced by Array< T, D >::Array(), Array< T, D >::begin(), Array< T, D >::data(), Array< T, D >::data_at(), Array< T, D >::device_data(), Array< T, D >::device_data_at(), Array< T, D >::end(), Array< T, D >::first_address(), Array< T, D >::last_address(), Array< T, D >::operator()(), Array< T, D >::operator=(), Array< T, D >::resize(), Array< T, D >::size(), Array< T, D >::storage(), Array< T, D >::sum(), Array< T, D >::updateFrom(), and Array< T, D >::updateTo().