BitMagic-C++
Data Structures | Public Types | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes

Integer set to set transformation (functional image in groups theory) https://en.wikipedia.org/wiki/Image_(mathematics) More...

#include <bmsparsevec_algo.h>

Collaboration diagram for bm::set2set_11_transform< SV >:
Collaboration graph
[legend]

Data Structures

struct  gather_buffer
 

Public Types

typedef SV::bvector_type bvector_type
 
typedef SV::value_type value_type
 
typedef SV::size_type size_type
 
typedef bvector_type::allocator_type::allocator_pool_type allocator_pool_type
 

Public Member Functions

 set2set_11_transform ()
 
 ~set2set_11_transform ()
 
const bvector_typeget_bv_zero () const
 Get read access to zero-elements vector Zero vector gets populated after attach_sv() is called or as a side-effect of remap() with immediate sv param. More...
 
void remap (const bvector_type &bv_in, bvector_type &bv_out)
 Perform remapping (Image function) (based on attached translation table) More...
 
void remap (const bvector_type &bv_in, const SV &sv_brel, bvector_type &bv_out)
 Perform remapping (Image function) More...
 
bool remap (size_type id_from, const SV &sv_brel, size_type &id_to)
 Remap single set element. More...
 
void run (const bvector_type &bv_in, const SV &sv_brel, bvector_type &bv_out)
 Run remap transformation. More...
 
void attach_sv (const SV *sv_brel, bool compute_stats=false)
 Attach a translation table vector for remapping (Image function) More...
 

Protected Types

enum  gather_window_size { sv_g_size = 1024 * 8 }
 
typedef gather_buffer< sv_g_sizegather_buffer_type
 

Protected Member Functions

void one_pass_run (const bvector_type &bv_in, const SV &sv_brel, bvector_type &bv_out)
 
 set2set_11_transform (const set2set_11_transform &)=delete
 
void operator= (const set2set_11_transform &)=delete
 

Protected Attributes

const SV * sv_ptr_
 current translation table vector More...
 
gather_buffer_typegb_
 intermediate buffers More...
 
bvector_type bv_product_
 temp vector More...
 
bool have_stats_
 flag of statistics presense More...
 
bvector_type bv_zero_
 bit-vector for zero elements More...
 
allocator_pool_type pool_
 

Detailed Description

template<typename SV>
class bm::set2set_11_transform< SV >

Integer set to set transformation (functional image in groups theory) https://en.wikipedia.org/wiki/Image_(mathematics)

Input sets gets translated through the function, which is defined as "one to one (or NULL)" binary relation object (sparse_vector). Also works for M:1 relationships.

Examples:
svsample05.cpp.

Definition at line 307 of file bmsparsevec_algo.h.

Member Typedef Documentation

◆ allocator_pool_type

template<typename SV>
typedef bvector_type::allocator_type::allocator_pool_type bm::set2set_11_transform< SV >::allocator_pool_type

Definition at line 313 of file bmsparsevec_algo.h.

◆ bvector_type

template<typename SV>
typedef SV::bvector_type bm::set2set_11_transform< SV >::bvector_type

Definition at line 310 of file bmsparsevec_algo.h.

◆ gather_buffer_type

template<typename SV>
typedef gather_buffer<sv_g_size> bm::set2set_11_transform< SV >::gather_buffer_type
protected

Definition at line 402 of file bmsparsevec_algo.h.

◆ size_type

template<typename SV>
typedef SV::size_type bm::set2set_11_transform< SV >::size_type

Definition at line 312 of file bmsparsevec_algo.h.

◆ value_type

template<typename SV>
typedef SV::value_type bm::set2set_11_transform< SV >::value_type

Definition at line 311 of file bmsparsevec_algo.h.

Member Enumeration Documentation

◆ gather_window_size

template<typename SV>
enum bm::set2set_11_transform::gather_window_size
protected
Enumerator
sv_g_size 

Definition at line 398 of file bmsparsevec_algo.h.

Constructor & Destructor Documentation

◆ set2set_11_transform() [1/2]

template<typename SV >
bm::set2set_11_transform< SV >::set2set_11_transform ( )

Definition at line 427 of file bmsparsevec_algo.h.

References bm::set2set_11_transform< SV >::gb_.

◆ ~set2set_11_transform()

template<typename SV >
bm::set2set_11_transform< SV >::~set2set_11_transform ( )

Definition at line 440 of file bmsparsevec_algo.h.

References bm::set2set_11_transform< SV >::gb_.

◆ set2set_11_transform() [2/2]

template<typename SV>
bm::set2set_11_transform< SV >::set2set_11_transform ( const set2set_11_transform< SV > &  )
protecteddelete

Member Function Documentation

◆ attach_sv()

template<typename SV >
void bm::set2set_11_transform< SV >::attach_sv ( const SV *  sv_brel,
bool  compute_stats = false 
)

Attach a translation table vector for remapping (Image function)

Parameters
sv_brel- binary relation sparse vector pointer (pass NULL to detach)
compute_stats- flag to perform computation of some statistics later used in remapping. This only make sense for series of remappings on the same translation vector.
See also
remap

Definition at line 450 of file bmsparsevec_algo.h.

References bm::set2set_11_transform< SV >::bv_zero_, bm::sparse_vector_scanner< SV >::find_zero(), bm::set2set_11_transform< SV >::have_stats_, bm::set2set_11_transform< SV >::pool_, and bm::set2set_11_transform< SV >::sv_ptr_.

Referenced by bm::set2set_11_transform< SV >::remap().

◆ get_bv_zero()

template<typename SV>
const bvector_type& bm::set2set_11_transform< SV >::get_bv_zero ( ) const
inline

Get read access to zero-elements vector Zero vector gets populated after attach_sv() is called or as a side-effect of remap() with immediate sv param.

Definition at line 324 of file bmsparsevec_algo.h.

◆ one_pass_run()

template<typename SV >
void bm::set2set_11_transform< SV >::one_pass_run ( const bvector_type bv_in,
const SV &  sv_brel,
bvector_type bv_out 
)
protected

Definition at line 614 of file bmsparsevec_algo.h.

◆ operator=()

template<typename SV>
void bm::set2set_11_transform< SV >::operator= ( const set2set_11_transform< SV > &  )
protecteddelete

◆ remap() [1/3]

template<typename SV >
void bm::set2set_11_transform< SV >::remap ( const bvector_type bv_in,
bvector_type bv_out 
)

◆ remap() [2/3]

template<typename SV >
void bm::set2set_11_transform< SV >::remap ( const bvector_type bv_in,
const SV &  sv_brel,
bvector_type bv_out 
)

Perform remapping (Image function)

Parameters
bv_in- input set, defined as a bit-vector
sv_brel- binary relation (translation table) sparse vector
bv_out- output set as a bit-vector

Definition at line 499 of file bmsparsevec_algo.h.

References bm::set2set_11_transform< SV >::attach_sv(), bm::set2set_11_transform< SV >::bv_product_, bm::set2set_11_transform< SV >::bv_zero_, bm::set2set_11_transform< SV >::pool_, and bm::set2set_11_transform< SV >::remap().

◆ remap() [3/3]

template<typename SV >
bool bm::set2set_11_transform< SV >::remap ( size_type  id_from,
const SV &  sv_brel,
size_type id_to 
)

Remap single set element.

Parameters
id_from- input value
sv_brel- translation table sparse vector
id_to- out value
Returns
- true if value was found and remapped

Definition at line 478 of file bmsparsevec_algo.h.

◆ run()

template<typename SV>
void bm::set2set_11_transform< SV >::run ( const bvector_type bv_in,
const SV &  sv_brel,
bvector_type bv_out 
)
inline

Run remap transformation.

Parameters
bv_in- input set, defined as a bit-vector
sv_brel- translation table sparse vector
bv_out- output set as a bit-vector
See also
remap

Definition at line 365 of file bmsparsevec_algo.h.

Referenced by main().

Field Documentation

◆ bv_product_

template<typename SV>
bvector_type bm::set2set_11_transform< SV >::bv_product_
protected

temp vector

Definition at line 412 of file bmsparsevec_algo.h.

Referenced by bm::set2set_11_transform< SV >::remap().

◆ bv_zero_

template<typename SV>
bvector_type bm::set2set_11_transform< SV >::bv_zero_
protected

bit-vector for zero elements

Definition at line 415 of file bmsparsevec_algo.h.

Referenced by bm::set2set_11_transform< SV >::attach_sv(), and bm::set2set_11_transform< SV >::remap().

◆ gb_

template<typename SV>
gather_buffer_type* bm::set2set_11_transform< SV >::gb_
protected

◆ have_stats_

template<typename SV>
bool bm::set2set_11_transform< SV >::have_stats_
protected

flag of statistics presense

Definition at line 414 of file bmsparsevec_algo.h.

Referenced by bm::set2set_11_transform< SV >::attach_sv(), and bm::set2set_11_transform< SV >::remap().

◆ pool_

template<typename SV>
allocator_pool_type bm::set2set_11_transform< SV >::pool_
protected

◆ sv_ptr_

template<typename SV>
const SV* bm::set2set_11_transform< SV >::sv_ptr_
protected

current translation table vector

Definition at line 410 of file bmsparsevec_algo.h.

Referenced by bm::set2set_11_transform< SV >::attach_sv(), and bm::set2set_11_transform< SV >::remap().


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