HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Vdf_VectorImplCompressed< TYPE > Class Template Referencefinal

Implements a Vdf_VectorData storage that is holds a subset of a vector. The subset is determined by a supplied VdfMask. Each bit in the mask maps to an element in the given vector. The storage omits all elements associated with zeros in the mask. More...

#include <vectorImpl_Compressed.h>

+ Inheritance diagram for Vdf_VectorImplCompressed< TYPE >:

Public Member Functions

 Vdf_VectorImplCompressed (const TYPE *data, const VdfMask::Bits &bits)
 Construct storage for the elements of data indicated by bits. More...
 
 Vdf_VectorImplCompressed (const VdfMask::Bits &bits)
 Construct enough storage to hold as many elements as bits has set. More...
 
 Vdf_VectorImplCompressed (const Vdf_VectorImplCompressed &rhs)
 
 Vdf_VectorImplCompressed (Vdf_VectorImplCompressed &&sourceData)
 
 ~Vdf_VectorImplCompressed () override
 
void MoveInto (Vdf_VectorData::DataHolder *destData) override
 
void Clone (Vdf_VectorData::DataHolder *destData) const override
 
void Assign (const TYPE *data, const VdfMask &mask)
 
void CloneSubset (const VdfMask &mask, Vdf_VectorData::DataHolder *destData) const override
 
void Box (const VdfMask::Bits &bits, Vdf_VectorData::DataHolder *destData) const override
 
void Merge (const VdfMask::Bits &bits, Vdf_VectorData::DataHolder *destData) const override
 
size_t GetSize () const override
 
size_t GetNumStoredElements () const override
 
Vdf_VectorData::Info GetInfo () override
 
- Public Member Functions inherited from Vdf_VectorDataTyped< TYPE >
const std::type_info & GetTypeInfo () const overridefinal
 
void NewEmpty (size_t size, DataHolder *destData) const overridefinal
 
void NewSingle (DataHolder *destData) const overridefinal
 
void NewSparse (size_t size, size_t first, size_t last, DataHolder *destData) const overridefinal
 
void NewDense (size_t size, DataHolder *destData) const overridefinal
 
size_t EstimateElementMemory () const override
 
- Public Member Functions inherited from Vdf_VectorData
 Vdf_VectorData (const Vdf_VectorData &)=delete
 
Vdf_VectorDataoperator= (const Vdf_VectorData &)=delete
 
 Vdf_VectorData (Vdf_VectorData &&)=delete
 
Vdf_VectorDataoperator= (Vdf_VectorData &&)=delete
 
virtual VDF_API ~Vdf_VectorData ()
 
virtual VDF_API void Expand (size_t first, size_t last)
 
virtual VDF_API
Vt_ArrayForeignDataSource * 
GetSharedSource () const
 
virtual VDF_API bool IsSharable () const
 
VDF_API void DebugPrint (const VdfMask &mask, std::ostream *o) const
 

Additional Inherited Members

- Public Types inherited from Vdf_VectorData
typedef
Vdf_FixedSizePolymorphicHolder
< Vdf_VectorData,
_DataHolderSize
DataHolder
 
- Static Public Member Functions inherited from Vdf_VectorData
static VDF_API bool ShouldStoreCompressed (const VdfMask::Bits &bits, int elementSize)
 
- Protected Member Functions inherited from Vdf_VectorData
 Vdf_VectorData ()=default
 
- Static Protected Attributes inherited from Vdf_VectorData
static const size_t _SmallBufferSize = sizeof(size_t)*3 + sizeof(void *)
 
static const size_t _DataHolderSize = _SmallBufferSize + sizeof(void*)
 
static constexpr size_t _VectorSharingSize = 5000
 

Detailed Description

template<typename TYPE>
class Vdf_VectorImplCompressed< TYPE >

Implements a Vdf_VectorData storage that is holds a subset of a vector. The subset is determined by a supplied VdfMask. Each bit in the mask maps to an element in the given vector. The storage omits all elements associated with zeros in the mask.

See vdf/compressedIndexMapping.h for details on the mapping implementation.

Definition at line 33 of file vectorImpl_Compressed.h.

Constructor & Destructor Documentation

template<typename TYPE>
Vdf_VectorImplCompressed< TYPE >::Vdf_VectorImplCompressed ( const TYPE *  data,
const VdfMask::Bits bits 
)
inline

Construct storage for the elements of data indicated by bits.

Definition at line 43 of file vectorImpl_Compressed.h.

template<typename TYPE>
Vdf_VectorImplCompressed< TYPE >::Vdf_VectorImplCompressed ( const VdfMask::Bits bits)
inlineexplicit

Construct enough storage to hold as many elements as bits has set.

Definition at line 51 of file vectorImpl_Compressed.h.

template<typename TYPE >
Vdf_VectorImplCompressed< TYPE >::Vdf_VectorImplCompressed ( const Vdf_VectorImplCompressed< TYPE > &  rhs)

Definition at line 172 of file vectorImpl_Compressed.h.

template<typename TYPE>
Vdf_VectorImplCompressed< TYPE >::Vdf_VectorImplCompressed ( Vdf_VectorImplCompressed< TYPE > &&  sourceData)
inline

Definition at line 61 of file vectorImpl_Compressed.h.

template<typename TYPE>
Vdf_VectorImplCompressed< TYPE >::~Vdf_VectorImplCompressed ( )
inlineoverride

Definition at line 71 of file vectorImpl_Compressed.h.

Member Function Documentation

template<typename TYPE>
void Vdf_VectorImplCompressed< TYPE >::Assign ( const TYPE *  data,
const VdfMask mask 
)
inline

Assigns the subset of data that is described by mask into this sparse vector.

Definition at line 97 of file vectorImpl_Compressed.h.

template<typename TYPE >
void Vdf_VectorImplCompressed< TYPE >::Box ( const VdfMask::Bits bits,
Vdf_VectorData::DataHolder destData 
) const
overridevirtual

Implements Vdf_VectorData.

Definition at line 232 of file vectorImpl_Compressed.h.

template<typename TYPE>
void Vdf_VectorImplCompressed< TYPE >::Clone ( Vdf_VectorData::DataHolder destData) const
inlineoverridevirtual

Implements Vdf_VectorData.

Definition at line 87 of file vectorImpl_Compressed.h.

template<typename TYPE >
void Vdf_VectorImplCompressed< TYPE >::CloneSubset ( const VdfMask mask,
Vdf_VectorData::DataHolder destData 
) const
overridevirtual

Implements Vdf_VectorData.

Definition at line 195 of file vectorImpl_Compressed.h.

template<typename TYPE>
Vdf_VectorData::Info Vdf_VectorImplCompressed< TYPE >::GetInfo ( )
inlineoverridevirtual

Implements Vdf_VectorData.

Definition at line 133 of file vectorImpl_Compressed.h.

template<typename TYPE>
size_t Vdf_VectorImplCompressed< TYPE >::GetNumStoredElements ( ) const
inlineoverridevirtual

Implements Vdf_VectorData.

Definition at line 124 of file vectorImpl_Compressed.h.

template<typename TYPE>
size_t Vdf_VectorImplCompressed< TYPE >::GetSize ( ) const
inlineoverridevirtual

Implements Vdf_VectorData.

Definition at line 119 of file vectorImpl_Compressed.h.

template<typename TYPE >
void Vdf_VectorImplCompressed< TYPE >::Merge ( const VdfMask::Bits bits,
Vdf_VectorData::DataHolder destData 
) const
overridevirtual

Implements Vdf_VectorData.

Definition at line 255 of file vectorImpl_Compressed.h.

template<typename TYPE>
void Vdf_VectorImplCompressed< TYPE >::MoveInto ( Vdf_VectorData::DataHolder destData)
inlineoverridevirtual

Implements Vdf_VectorData.

Definition at line 80 of file vectorImpl_Compressed.h.


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