xsample05.cpp File Reference

Example: Example on how to use bit-transposed string sparse vector. More...

`#include <iostream>`
`#include <sstream>`
`#include <chrono>`
`#include <regex>`
`#include <time.h>`
`#include <stdio.h>`
`#include <vector>`
`#include <map>`
`#include <utility>`
`#include <algorithm>`
`#include <random>`
`#include "bm.h"`
`#include "bmalgo.h"`
`#include "bmserial.h"`
`#include "bmrandom.h"`
`#include "bmstrsparsevec.h"`
`#include "bmsparsevec_algo.h"`
`#include "bmsparsevec_serial.h"`
`#include "bmalgo_similarity.h"`
`#include "bmsparsevec_util.h"`
`#include "bmdbg.h"`
`#include "bmtimer.h"`
`#include "bmundef.h"`
Include dependency graph for xsample05.cpp:

Go to the source code of this file.

## Typedefs

typedef bm::str_sparse_vector< char, bm::bvector<>, 64 > | str_sparse_vect
typedef vector< string > | string_vector

## Functions

static void | show_help ()
| Print help.
static int | parse_args (int argc, char *argv[])
static int | load_dict_report (const std::string &fname, string_vector &str_vec)
| Parse the input file and extract dictionary values.
static void | check_sparse (const str_sparse_vect &str_sv, const string_vector &str_vec)
| Compare STL vector with bit-transposed container to check correctness.
static void | pick_benchmark_set (string_vector &bench_vec, string_vector &bench_vec_not_found, const string_vector &str_vec)
| Sample a few random terms out of collection.
static void | run_benchmark (const str_sparse_vect &str_sv, const string_vector &str_vec)
int | main (int argc, char *argv[])

## Variables

std::string | sv_out_name
std::string | sv_in_name
std::string | i_name
bool | is_diag = false
bool | is_timing = false
bool | is_bench = false
bool | is_remap = false
bool | is_xor = false
bm::chrono_taker ::duration_map_type | timing_map
const unsigned | benchmark_max = 50000

## Detailed Description

Example: Example on how to use bit-transposed string sparse vector.

Illustrates how to build a sparse vector, serialize it to disk, load back and do search or binary hybrid search.

See also
  bm::str_sparse_vector<>

Definition in file xsample05.cpp.

## Typedef Documentation

## str_sparse_vect

typedef bm::str_sparse_vector<char, bm::bvector<>, 64> str_sparse_vect

Examples
  xsample05.cpp.

Definition at line 188 of file xsample05.cpp.

## string_vector

typedef vector<string> string_vector

Examples
  xsample05.cpp.

Definition at line 189 of file xsample05.cpp.

## Function Documentation

## check_sparse()

void check_sparse | ( | const str_sparse_vect & | str_sv,
|  | const string_vector & | str_vec )

static

Compare STL vector with bit-transposed container to check correctness.

Examples
  xsample05.cpp.

Definition at line 248 of file xsample05.cpp.

References bm::str_sparse_vector< CharType, BV, STR_SIZE >::get(), and bm::str_sparse_vector< CharType, BV, STR_SIZE >::size().

Referenced by main().

## load_dict_report()

int load_dict_report | ( | const std::string & | fname,
|  | string_vector & | str_vec )

static

Parse the input file and extract dictionary values.

Examples
  xsample05.cpp.

Definition at line 198 of file xsample05.cpp.

References timing_map.

Referenced by main().

## main()

int main | ( | int | argc,
|  | char * | argv[] )

Definition at line 466 of file xsample05.cpp.

References BM_DECLARE_TEMP_BLOCK, check_sparse(), bm::chrono_taker< TOut >::ct_time, bm::str_sparse_vector< CharType, BV, STR_SIZE >::empty(), bm::str_sparse_vector< CharType, BV, STR_SIZE >::equal(), bm::str_sparse_vector< CharType, BV, STR_SIZE >::get(), bm::str_sparse_vector< CharType, BV, STR_SIZE >::get_back_inserter(), i_name, is_bench, is_diag, is_remap, is_timing, is_xor, load_dict_report(), bm::str_sparse_vector< CharType, BV, STR_SIZE >::optimize(), parse_args(), bm::chrono_taker< TOut >::print_duration_map(), bm::str_sparse_vector< CharType, BV, STR_SIZE >::remap_from(), run_benchmark(), show_help(), bm::str_sparse_vector< CharType, BV, STR_SIZE >::size(), sv_in_name, sv_out_name, bm::str_sparse_vector< CharType, BV, STR_SIZE >::swap(), and timing_map.

## parse_args()

int parse_args | ( | int | argc,
|  | char * | argv[] )

static

Definition at line 98 of file xsample05.cpp.

References i_name, is_bench, is_diag, is_remap, is_timing, is_xor, show_help(), sv_in_name, and sv_out_name.

Referenced by main().

## pick_benchmark_set()

void pick_benchmark_set | ( | string_vector & | bench_vec,
|  | string_vector & | bench_vec_not_found,
|  | const string_vector & | str_vec )

static

Sample a few random terms out of collection.

Examples
  xsample05.cpp.

Definition at line 270 of file xsample05.cpp.

References benchmark_max, gen(), rand_dev, rand_dis(), bm::bvector< Alloc >::resize(), bm::bvector< Alloc >::set(), and bm::bvector< Alloc >::test().

Referenced by run_benchmark().

## run_benchmark()

void run_benchmark | ( | const str_sparse_vect & | str_sv,
|  | const string_vector & | str_vec )

static

Definition at line 318 of file xsample05.cpp.

References bm::sparse_vector_scanner< SV, S_FACTOR >::bfind_eq_str(), bm::sparse_vector_scanner< SV, S_FACTOR >::bind(), bm::bvector< Alloc >::compare(), bm::bvector< Alloc >::count(), bm::sparse_vector_scanner< SV, S_FACTOR >::find_eq_str(), pick_benchmark_set(), bm::bvector< Alloc >::set(), bm::bvector< Alloc >::size(), and timing_map.

Referenced by main().

## show_help()

void show_help | ( |  | ) |

static

Print help.

Definition at line 69 of file xsample05.cpp.

Referenced by main(), and parse_args().

## Variable Documentation

## benchmark_max

const unsigned benchmark_max = 50000

Examples
  xsample05.cpp.

Definition at line 266 of file xsample05.cpp.

Referenced by pick_benchmark_set().

## i_name

std::string i_name

Examples
  xsample05.cpp.

Definition at line 89 of file xsample05.cpp.

Referenced by main(), and parse_args().

## is_bench

bool is_bench = false

Definition at line 92 of file xsample05.cpp.

## is_diag

bool is_diag = false

Definition at line 90 of file xsample05.cpp.

## is_remap

bool is_remap = false

Examples
  xsample05.cpp.

Definition at line 93 of file xsample05.cpp.

Referenced by bm::str_sparse_vector< CharType, BV, STR_SIZE >::compare_nomap(), bm::str_sparse_vector< CharType, BV, STR_SIZE >::compare_remap(), main(), and parse_args().

## is_timing

bool is_timing = false

Definition at line 91 of file xsample05.cpp.

## is_xor

bool is_xor = false

Examples
  xsample05.cpp.

Definition at line 94 of file xsample05.cpp.

Referenced by main(), and parse_args().

## sv_in_name

std::string sv_in_name

Definition at line 88 of file xsample05.cpp.

## sv_out_name

std::string sv_out_name

Definition at line 87 of file xsample05.cpp.

## timing_map

bm::chrono_taker ::duration_map_type timing_map

Definition at line 193 of file xsample05.cpp.