OPAL (Object Oriented Parallel Accelerator Library)  2.2.0
OPAL
Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
LField< T, Dim > Class Template Reference

#include <FFT.h>

Inheritance diagram for LField< T, Dim >:
Inheritance graph
[legend]
Collaboration diagram for LField< T, Dim >:
Collaboration graph
[legend]

Public Types

typedef
CompressedBrickIterator< T,
Dim
iterator
 
typedef NDIndex< DimDomain_t
 
typedef std::vector< LField< T,
Dim > * >::iterator 
OverlapIterator
 

Public Member Functions

 LField (const NDIndex< Dim > &owned, const NDIndex< Dim > &allocated, int vnode=-1)
 
 LField (const NDIndex< Dim > &owned, const NDIndex< Dim > &allocated, int vnode, bool p)
 
 LField (const LField< T, Dim > &)
 
 ~LField ()
 
int size (unsigned d) const
 
const NDIndex< Dim > & getAllocated () const
 
const NDIndex< Dim > & getOwned () const
 
TgetP ()
 
int getVnode () const
 
const iteratorbegin () const
 
const iteratorend () const
 
iterator begin (const NDIndex< Dim > &domain)
 
iterator begin (const NDIndex< Dim > &domain, T &)
 
bool IsCompressed () const
 
bool TryCompress (bool baseOnPhysicalCells=false)
 
bool CanCompress () const
 
bool CanCompress (T x) const
 
void Compress ()
 
void Compress (const T &val)
 
void Uncompress (bool fill_domain=true)
 
TgetCompressedData ()
 
const TgetCompressedData () const
 
bool OverlapCacheInitialized ()
 
void AddToOverlapCache (LField< T, Dim > *newCacheItem)
 
OverlapIterator BeginOverlap ()
 
OverlapIterator EndOverlap ()
 
void swapData (LField< T, Dim > &a)
 
void write (std::ostream &) const
 
- Public Member Functions inherited from Pooled< LField< T, Dim > >
void * operator new (size_t)
 
void operator delete (void *p, size_t)
 

Private Member Functions

bool CanCompressBasedOnPhysicalCells () const
 
void ReallyUncompress (bool fill_domain)
 
void CompressBasedOnPhysicalCells ()
 
void allocateStorage (int newsize)
 
void deallocateStorage ()
 
 LField ()
 
const LField< T, Dim > & operator= (const LField< T, Dim > &)
 

Private Attributes

int vnode_m
 
TP
 
bool Pinned
 
NDIndex< DimOwned
 
NDIndex< DimAllocated
 
iterator Begin
 
iterator End
 
T CompressedData
 
std::vector< LField< T, Dim > * > overlap
 
bool overlapCacheInited
 
int allocCompressIndex
 
int ownedCompressIndex
 
long offsetBlocks
 

Detailed Description

template<class T, unsigned Dim>
class LField< T, Dim >

Definition at line 31 of file FFT.h.

Member Typedef Documentation

template<class T, unsigned Dim>
typedef NDIndex<Dim> LField< T, Dim >::Domain_t

Definition at line 59 of file LField.h.

template<class T, unsigned Dim>
typedef CompressedBrickIterator<T,Dim> LField< T, Dim >::iterator

Definition at line 56 of file LField.h.

template<class T, unsigned Dim>
typedef std::vector< LField<T, Dim> *>::iterator LField< T, Dim >::OverlapIterator

Definition at line 190 of file LField.h.

Constructor & Destructor Documentation

template<class T , unsigned Dim>
LField< T, Dim >::LField ( const NDIndex< Dim > &  owned,
const NDIndex< Dim > &  allocated,
int  vnode = -1 
)

Definition at line 94 of file LField.hpp.

References LFieldInitializer< T >::apply(), and IpplInfo::noFieldCompression.

Here is the call graph for this function:

template<class T , unsigned Dim>
LField< T, Dim >::LField ( const NDIndex< Dim > &  owned,
const NDIndex< Dim > &  allocated,
int  vnode,
bool  p 
)

Definition at line 123 of file LField.hpp.

References LFieldInitializer< T >::apply(), LField< T, Dim >::Begin, IpplInfo::noFieldCompression, and LField< T, Dim >::ReallyUncompress().

Here is the call graph for this function:

template<class T, unsigned Dim>
LField< T, Dim >::LField ( const LField< T, Dim > &  lf)
template<class T , unsigned Dim>
LField< T, Dim >::~LField ( )

Definition at line 208 of file LField.hpp.

template<class T, unsigned Dim>
LField< T, Dim >::LField ( )
private

Member Function Documentation

template<class T, unsigned Dim>
void LField< T, Dim >::AddToOverlapCache ( LField< T, Dim > *  newCacheItem)
inline
template<class T , unsigned Dim>
void LField< T, Dim >::allocateStorage ( int  newsize)
private
template<class T, unsigned Dim>
const iterator& LField< T, Dim >::begin ( ) const
inline
template<class T , unsigned Dim>
LField< T, Dim >::iterator LField< T, Dim >::begin ( const NDIndex< Dim > &  domain)

Definition at line 619 of file LField.hpp.

template<class T, unsigned Dim>
LField< T, Dim >::iterator LField< T, Dim >::begin ( const NDIndex< Dim > &  domain,
T compstore 
)

Definition at line 638 of file LField.hpp.

template<class T, unsigned Dim>
OverlapIterator LField< T, Dim >::BeginOverlap ( )
inline
template<class T, unsigned Dim>
bool LField< T, Dim >::CanCompress ( ) const
inline

Definition at line 140 of file LField.h.

Referenced by LField< T, 2U >::CanCompress().

template<class T, unsigned Dim>
bool LField< T, Dim >::CanCompress ( T  x) const

Definition at line 265 of file LField.hpp.

References ADDIPPLSTAT, endl(), IpplInfo::extraCompressChecks, LFIELDMSG, IpplInfo::noFieldCompression, PAssert, PAssert_GE, PAssert_GT, PAssert_LT, and T.

Here is the call graph for this function:

template<class T , unsigned Dim>
bool LField< T, Dim >::CanCompressBasedOnPhysicalCells ( ) const
private

Definition at line 398 of file LField.hpp.

References ADDIPPLSTAT, endl(), IpplInfo::extraCompressChecks, INFORM_ALL_NODES, LFIELDMSG, IpplInfo::noFieldCompression, PAssert_LT, BrickCounter< Dim >::size(), and T.

Here is the call graph for this function:

template<class T, unsigned Dim>
void LField< T, Dim >::Compress ( )
inline
template<class T, unsigned Dim>
void LField< T, Dim >::Compress ( const T val)

Definition at line 486 of file LField.hpp.

References endl(), INFORM_ALL_NODES, LFIELDMSG, and IpplInfo::noFieldCompression.

Here is the call graph for this function:

template<class T , unsigned Dim>
void LField< T, Dim >::CompressBasedOnPhysicalCells ( )
private

Definition at line 536 of file LField.hpp.

References IpplInfo::noFieldCompression.

template<class T , unsigned Dim>
void LField< T, Dim >::deallocateStorage ( )
private

Definition at line 747 of file LField.hpp.

References IPPL_CACHE_LINE_SIZE, IpplInfo::offsetStorage, and T.

template<class T, unsigned Dim>
const iterator& LField< T, Dim >::end ( ) const
inline
template<class T, unsigned Dim>
OverlapIterator LField< T, Dim >::EndOverlap ( )
inline
template<class T, unsigned Dim>
const NDIndex<Dim>& LField< T, Dim >::getAllocated ( ) const
inline
template<class T, unsigned Dim>
T& LField< T, Dim >::getCompressedData ( )
inline
template<class T, unsigned Dim>
const T& LField< T, Dim >::getCompressedData ( ) const
inline

Definition at line 174 of file LField.h.

template<class T, unsigned Dim>
const NDIndex<Dim>& LField< T, Dim >::getOwned ( ) const
inline
template<class T, unsigned Dim>
T* LField< T, Dim >::getP ( )
inline
template<class T, unsigned Dim>
int LField< T, Dim >::getVnode ( ) const
inline

Definition at line 97 of file LField.h.

template<class T, unsigned Dim>
bool LField< T, Dim >::IsCompressed ( ) const
inline
template<class T, unsigned Dim>
const LField<T,Dim>& LField< T, Dim >::operator= ( const LField< T, Dim > &  )
private
template<class T, unsigned Dim>
bool LField< T, Dim >::OverlapCacheInitialized ( )
inline
template<class T , unsigned Dim>
void LField< T, Dim >::ReallyUncompress ( bool  fill_domain)
private

Definition at line 567 of file LField.hpp.

References endl(), INFORM_ALL_NODES, LFIELDMSG, Hypervolume::n, PAssert_NE, and T.

Referenced by LField< T, Dim >::LField(), and LField< T, 2U >::Uncompress().

Here is the call graph for this function:

template<class T, unsigned Dim>
int LField< T, Dim >::size ( unsigned  d) const
inline
template<class T, unsigned Dim>
void LField< T, Dim >::swapData ( LField< T, Dim > &  a)
template<class T , unsigned Dim>
bool LField< T, Dim >::TryCompress ( bool  baseOnPhysicalCells = false)

Definition at line 223 of file LField.hpp.

References endl(), INFORM_ALL_NODES, LFIELDMSG, and IpplInfo::noFieldCompression.

Referenced by assign().

Here is the call graph for this function:

template<class T, unsigned Dim>
void LField< T, Dim >::Uncompress ( bool  fill_domain = true)
inline
template<class T , unsigned Dim>
void LField< T, Dim >::write ( std::ostream &  out) const

Definition at line 778 of file LField.hpp.

Member Data Documentation

template<class T, unsigned Dim>
NDIndex<Dim> LField< T, Dim >::Allocated
private
template<class T, unsigned Dim>
int LField< T, Dim >::allocCompressIndex
mutableprivate

Definition at line 257 of file LField.h.

Referenced by LField< T, Dim >::swapData().

template<class T, unsigned Dim>
iterator LField< T, Dim >::Begin
private
template<class T, unsigned Dim>
T LField< T, Dim >::CompressedData
private
template<class T, unsigned Dim>
iterator LField< T, Dim >::End
private

Definition at line 240 of file LField.h.

Referenced by LField< T, 2U >::end().

template<class T, unsigned Dim>
long LField< T, Dim >::offsetBlocks
private

Definition at line 263 of file LField.h.

Referenced by LField< T, Dim >::swapData().

template<class T, unsigned Dim>
std::vector< LField<T, Dim> * > LField< T, Dim >::overlap
private
template<class T, unsigned Dim>
bool LField< T, Dim >::overlapCacheInited
private
template<class T, unsigned Dim>
NDIndex<Dim> LField< T, Dim >::Owned
private
template<class T, unsigned Dim>
int LField< T, Dim >::ownedCompressIndex
mutableprivate

Definition at line 258 of file LField.h.

Referenced by LField< T, Dim >::swapData().

template<class T, unsigned Dim>
T* LField< T, Dim >::P
private
template<class T, unsigned Dim>
bool LField< T, Dim >::Pinned
private

Definition at line 224 of file LField.h.

template<class T, unsigned Dim>
int LField< T, Dim >::vnode_m
private

Definition at line 216 of file LField.h.

Referenced by LField< T, 2U >::getVnode().


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