BitMagic-C++
|
Integer set to set transformation (functional image in groups theory) https://en.wikipedia.org/wiki/Image_(mathematics) More...
#include <bmsparsevec_algo.h>
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_type & | get_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_size > | gather_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_type * | gb_ |
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_ |
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.
Definition at line 1114 of file bmsparsevec_algo.h.
|
protected |
Enumerator | |
---|---|
sv_g_size |
Definition at line 1205 of file bmsparsevec_algo.h.
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)
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. |
Definition at line 1260 of file bmsparsevec_algo.h.
References bm::sparse_vector_scanner< SV >::find_zero().
|
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_.
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)
bv_in | - input set, defined as a bit-vector |
bv_out | - output set as a bit-vector |
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().
void bm::set2set_11_transform< SV >::remap | ( | const bvector_type & | bv_in, |
const SV & | sv_brel, | ||
bvector_type & | bv_out | ||
) |
Perform remapping (Image function)
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.
bool bm::set2set_11_transform< SV >::remap | ( | size_type | id_from, |
const SV & | sv_brel, | ||
size_type & | id_to | ||
) |
Remap single set element.
id_from | - input value |
sv_brel | - translation table sparse vector |
id_to | - out value |
Definition at line 1288 of file bmsparsevec_algo.h.
|
inline |
Run remap transformation.
bv_in | - input set, defined as a bit-vector |
sv_brel | - translation table sparse vector |
bv_out | - output set as a bit-vector |
Definition at line 1172 of file bmsparsevec_algo.h.
References bm::set2set_11_transform< SV >::remap().
Referenced by main().
|
protected |
temp vector
Definition at line 1219 of file bmsparsevec_algo.h.
|
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().
|
protected |
intermediate buffers
Definition at line 1218 of file bmsparsevec_algo.h.
Referenced by bm::set2set_11_transform< SV >::set2set_11_transform().
|
protected |
flag of statistics presense
Definition at line 1221 of file bmsparsevec_algo.h.
|
protected |
current translation table vector
Definition at line 1217 of file bmsparsevec_algo.h.