BitMagic-C++: bm::set2set_11_transform< SV > Class Template Reference

BitMagic-C++

Data Structures | Public Types | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes
bm::set2set_11_transform< SV > Class Template Reference
BitMagic Library » Sparse and compressed vectors » Sparse vector algorithms BitMagic Library » bvector<> container » | bvector<> algorithms

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 >:
[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_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_

## 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 773 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 779 of file bmsparsevec_algo.h.

## ◆ bvector_type

template<typename SV >

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

Definition at line 776 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 868 of file bmsparsevec_algo.h.

## ◆ size_type

template<typename SV >

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

Definition at line 778 of file bmsparsevec_algo.h.

## ◆ value_type

template<typename SV >

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

Definition at line 777 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 864 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 893 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 906 of file bmsparsevec_algo.h.

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

References bm::bvector< Alloc >::mem_pool_guard::assign_if_not_set(), and 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 790 of file bmsparsevec_algo.h.

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

## ◆ 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 1079 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
| ) |  |

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

Definition at line 982 of file bmsparsevec_algo.h.

References bm::bvector< Alloc >::mem_pool_guard::assign_if_not_set(), 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 965 of file bmsparsevec_algo.h.

References bm::bvector< Alloc >::mem_pool_guard::assign_if_not_set().

## ◆ 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 944 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 831 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 878 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 881 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 877 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 880 of file bmsparsevec_algo.h.

## ◆ pool_

template<typename SV >

allocator_pool_type bm::set2set_11_transform< SV >::pool_
| protected

Definition at line 883 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 876 of file bmsparsevec_algo.h.

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

- bmsparsevec_algo.h