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 ()
  More...
 
 ~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 1114 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 1205 of file bmsparsevec_algo.h.

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 1260 of file bmsparsevec_algo.h.

References bm::sparse_vector_scanner< SV >::find_zero().

◆ 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 1131 of file bmsparsevec_algo.h.

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

◆ remap() [1/3]

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

Perform remapping (Image function) (based on attached translation table)

Parameters
bv_in- input set, defined as a bit-vector
bv_out- output set as a bit-vector
See also
attach_sv
Examples
svsample05.cpp.

Definition at line 1326 of file bmsparsevec_algo.h.

References BM_ASSERT, bm::BM_SORTED, bm::BM_SORTED_UNIFORM, bm::set_block_shift, and bm::bvector< Alloc >::iterator_base::valid().

Referenced by main(), and bm::set2set_11_transform< SV >::run().

◆ 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 1309 of file bmsparsevec_algo.h.

◆ 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 1288 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
Examples
svsample05.cpp.

Definition at line 1172 of file bmsparsevec_algo.h.

References bm::set2set_11_transform< SV >::remap().

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 1219 of file bmsparsevec_algo.h.

◆ bv_zero_

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

bit-vector for zero elements

Definition at line 1222 of file bmsparsevec_algo.h.

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

◆ gb_

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

intermediate buffers

Definition at line 1218 of file bmsparsevec_algo.h.

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

◆ have_stats_

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

flag of statistics presense

Definition at line 1221 of file bmsparsevec_algo.h.

◆ sv_ptr_

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

current translation table vector

Definition at line 1217 of file bmsparsevec_algo.h.


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