FiberVISH 0.2
Fish - The Fiber Bundle API for the Vish Visualization Shell
Classes | Typedefs | Functions
Interfacing the Vector library with the MemCore library.

This library extents the header-only Vector template library with the memory management capabilities of the MemCore library. More...

Classes

class  Fiber::ArrayInterpolator
 A field's interpolator is an interface for this specific field. More...
 
class  Fiber::DimensionalInterpolator< N >
 Abstract N-dimensional interpolator class. More...
 
class  Fiber::BaseSpaceDependency
 A base class for dependencies on a BaseSpace. More...
 
class  Fiber::BaseSpace
 Base class for spaces that may be used for mapping domains to fiber spaces. More...
 
class  Fiber::BinderBase
 Base class to allow binding a Fiber Bundle data structure to some storage device, similar to swapping data from in and out of memory. More...
 
struct  Fiber::IJ_CellNamingConvention
 A naming convention for cell components using "i" and "j". More...
 
struct  Fiber::Cell< DIMS, Elements, IndexType >
 A type describing a cell in a cell complex. More...
 
struct  Fiber::SimplexCell< Dims, IndexType, NamingConvention >
 A type describing an n-dimensional simplex cell. More...
 
struct  Fiber::RegularCell< Dims, IndexType, NamingConvention >
 A type describing an n-dimensional regular cell. More...
 
class  Fiber::CreativeArray
 A helper class that keeps objects in memory all time. More...
 
class  Fiber::SaveableAttributes
 Attributes with an age that allows to keep track when the attributes had been saved last. More...
 
class  Fiber::CreativeArrayBase
 Base class for multidimensional arrays that employ deferred storage, i.e. More...
 
class  Fiber::DynamicSize
 A class describing an n-dimensional space at runtime. More...
 
class  Fiber::SizeInterface
 An interface telling size and dimensionality of a dataset, a refcounted version of DynamicSize. More...
 
class  Fiber::Fragment
 Data structure describing all fields available per fragment, which is a selection of createable data arrays. More...
 
class  Fiber::FieldCollection
 A collection of arbitrarily named Field references. More...
 
class  Fiber::FragmentSelector
 Abstract base class to select a certain subset from a Field's collection of fragments. More...
 
class  Fiber::MemArrayProperties
 Interface class to provide information about multidimensional arrays without need to create the data itself. More...
 
class  Fiber::MemBase
 Base class for multidimensional arrays with MemCore memory management. More...
 
class  Fiber::SaveItem< ItemType >
 An interface object to signal a processOwner() function that some data item should be saved. More...
 

Typedefs

typedef std::map< string, RefPtr< CreativeArrayBase > > Fiber::FragmentMap_t
 Mapping of arbitary names to field fragments.
 
typedef map< string, RefPtr< Field > > Fiber::FieldMap_t
 Mapping of names to fields.
 

Functions

RefPtr< MemBaseFiber::pullData (const RefPtr< MemBase > &SourceData, const RefPtr< ChunkBase > &Indirection, const DynamicSize &DestSize, size_t ElementArraySize=1)
 Create a MemBase from a given MemBase using indirect indexing of the given one, with the result placed into a multidimensional array.
 
template<Dims_t N>
bool Fiber::makeSizeInterface (MultiIndex< N > &Dims, const RefPtr< CreativeArrayBase > &DC)
 Set the size interface of a given data array Creator, based on the associated data (this function will actually CREATE the data - so is slow!).
 
template<Dims_t N>
bool Fiber::makeDimensions (MultiIndex< N > &Dims, const RefPtr< CreativeArrayBase > &DC)
 Given a data creator, retrieve the dimensionality information from the associated data, preferably from the size interface as stored (cached) in the Creator, but if none such exists yet, load the data and get it from there once.
 
template<Dims_t N>
void setSizeInterface (const RefPtr< CreativeArrayBase > &CAB, const MultiIndex< N > &FragmentSize)
 Set the size interface to a CreativeArrayBase.
 
template<Dims_t N>
void setSizeInterface (CreativeArrayBase &CAB, const MultiIndex< N > &FragmentSize)
 Set the size interface to a CreativeArrayBase.
 
int getRank (const RefPtr< CreativeArrayBase > &CAB)
 Get the rank of a CreativeArrayBase.
 
FIELD_API RefPtr< SizeInterfacegetSize (const CreativeArrayBase &CAB)
 Get the size interface of a CreativeArrayBase.
 
RefPtr< SizeInterfacegetSize (const RefPtr< CreativeArrayBase > &CAB)
 Get the size interface of a CreativeArrayBase.
 
index_t getNumberOfElements (const RefPtr< CreativeArrayBase > &CAB)
 Get the number of elements of a CreativeArrayBase if a SizeInterface is available.
 
index_t getNumberOfElements (CreativeArrayBase &CAB)
 Get the number of elements of a CreativeArrayBase if a SizeInterface is available.
 
template<Dims_t N>
bool getDimensions (MultiIndex< N > &MI, const RefPtr< CreativeArrayBase > &CAB)
 Get the dimensions of CreativeArrayBase, if the rank is already known.
 
FIELD_API MemCore::memsize_t getMemoryUsage (const CreativeArrayBase &CAB)
 Determine memory usage (in bytes) of this CreativeArrayBase object.
 

Detailed Description

This library extents the header-only Vector template library with the memory management capabilities of the MemCore library.

It equips e.g. the abstract multidimensional arrays with memory managament and concrete memory layouts.

Function Documentation

◆ makeDimensions()

template<Dims_t N>
bool Fiber::makeDimensions ( MultiIndex< N > &  Dims,
const RefPtr< CreativeArrayBase > &  DC 
)
inline

Given a data creator, retrieve the dimensionality information from the associated data, preferably from the size interface as stored (cached) in the Creator, but if none such exists yet, load the data and get it from there once.

On next call, the size interface will be set and data dont need to be loaded again.

Parameters
DimsWill store the dimensions of this data set, used for output only (return value)
DCThe data creator.
Returns
true if data are of the dinemsionality as specified by the Dims parameter, otherwise returns false if no such information could be retrieved.

References Fiber::makeSizeInterface().

Referenced by Fiber::FragmentSlicer< Converter, InputTypes >::apply().

◆ makeSizeInterface()

template<Dims_t N>
bool Fiber::makeSizeInterface ( MultiIndex< N > &  Dims,
const RefPtr< CreativeArrayBase > &  DC 
)
inline

Set the size interface of a given data array Creator, based on the associated data (this function will actually CREATE the data - so is slow!).

IF the dimensionality of the data is compatible with the specified multiindex, the dimensions will be returned, and the size interface of the Creator is set to this value.

Note: This function will always inspect the data, even if the Creator might already have size interface defined. If loading data shall be avoided, use the makeDimensions() routine.

Referenced by Fiber::makeDimensions().

◆ pullData()

FIELD_API RefPtr< MemBase > Fiber::pullData ( const RefPtr< MemBase > &  SourceData,
const RefPtr< ChunkBase > &  Indirection,
const DynamicSize DestSize,
size_t  ElementArraySize = 1 
)

Create a MemBase from a given MemBase using indirect indexing of the given one, with the result placed into a multidimensional array.

Parameters
SourceDataA MemArray<N,T>, the multidimensonal input data. Its dimension is of no relevance.
IndirectionAn array of linear indices, i.e. an array of 32-bit or 64-bit integers, which specifies where to find data elements in the source array for each result element ("pulling" data).
DestSizeThe multidimensional extent of the result, its number of elements must match the size of the Indirection array.

References std::to_string().

Referenced by Fiber::Skeleton::createIndirectedField(), and Fiber::EvalFieldOnRepresentation().