BitMagicC++Library
Public Types | Static Public Member Functions
bm::operation_deserializer< BV > Class Template Reference

Deserializer, performs logical operations between bit-vector and serialized bit-vector. More...

#include <bmserial.h>

Public Types

typedef BV bvector_type
 

Static Public Member Functions

static unsigned deserialize (bvector_type &bv, const unsigned char *buf, bm::word_t *temp_block, set_operation op=bm::set_OR, bool exit_on_one=false)
 Deserialize bvector using buffer as set operation argument. More...
 

Detailed Description

template<class BV>
class bm::operation_deserializer< BV >

Deserializer, performs logical operations between bit-vector and serialized bit-vector.

This utility class potentially provides faster and/or more memory efficient operation than more conventional deserialization into memory bvector and then logical operation

Examples:
sample14.cpp, and xsample01.cpp.

Definition at line 532 of file bmserial.h.

Member Typedef Documentation

◆ bvector_type

template<class BV>
typedef BV bm::operation_deserializer< BV >::bvector_type

Definition at line 535 of file bmserial.h.

Member Function Documentation

◆ deserialize()

template<class BV >
unsigned bm::operation_deserializer< BV >::deserialize ( bvector_type bv,
const unsigned char *  buf,
bm::word_t temp_block,
set_operation  op = bm::set_OR,
bool  exit_on_one = false 
)
static

Deserialize bvector using buffer as set operation argument.

Parameters
bv- target bvector
buf- serialized buffer as a logical argument
temp_block- temporary block to avoid re-allocations
op- set algebra operation (default: OR)
exit_on_one- quick exit if set operation found some result
Returns
bitcount
Parameters
exit_on_one! exit early if any one are found

Definition at line 2937 of file bmserial.h.

References bm::BigEndian, BM_ASSERT, bm::BM_GAP, bm::BM_HM_NO_BO, bm::globals< T >::byte_order(), bm::combine_or(), bm::combine_sub(), bm::count_or(), bm::count_xor(), bm::iterator_deserializer< BV, SerialIterator >::deserialize(), bm::decoder_base::get_8(), bm::LittleEndian, bm::set_AND, bm::set_array_size, bm::set_ASSIGN, bm::set_COUNT, bm::set_COUNT_A, bm::set_COUNT_AND, bm::set_COUNT_B, bm::set_COUNT_OR, bm::set_COUNT_SUB_AB, bm::set_COUNT_SUB_BA, bm::set_COUNT_XOR, bm::set_OR, bm::set_SUB, and bm::set_XOR.

Referenced by speed_test_bvs_index().


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