|
BitMagic-C++
|
Pipeline to run multiple searches against a particular SV faster using cache optimizations. More...
#include <bmsparsevec_algo.h>
Public Types | |
| typedef aggregator_type::template pipeline< Opt > | aggregator_pipeline_type |
Public Member Functions | |
| pipeline (const SV &sv) | |
| run_options & | options () BMNOEXCEPT |
| Set pipeline run options. | |
| const run_options & | get_options () const BMNOEXCEPT |
| Get pipeline run options. | |
| void | set_search_mask (const bvector_type *bv_mask) BMNOEXCEPT |
| Set pipeline mask bit-vector to restrict the search space. | |
| void | set_search_count_limit (size_type limit) BMNOEXCEPT |
| Set search limit for results. | |
| void | set_or_target (bvector_type *bv_or) BMNOEXCEPT |
| Attach OR (aggregator vector). | |
pipeline fill-in methods | |
| class | sparse_vector_scanner |
| const SV & | sv_ |
| target sparse vector ref | |
| aggregator_pipeline_type | agg_pipe_ |
| traget aggregator pipeline | |
| remap_vector_type | remap_value_vect_ |
| remap buffer | |
| const bvector_type * | bv_and_mask_ |
| size_t | eff_slices_ |
| number of effectice NOT NULL value slices | |
| void | add (const typename SV::value_type *str) |
| Add new search string. | |
| void | complete () |
| Prepare pipeline for the execution (resize and init internal structures) Once complete, you cannot add() to it. | |
| bool | is_complete () const BMNOEXCEPT |
| size_type | size () const BMNOEXCEPT |
| bvect_vector_type & | get_bv_res_vector () BMNOEXCEPT |
| Return results vector used for pipeline execution. | |
| bv_count_vector_type & | get_bv_count_vector () BMNOEXCEPT |
| Return results vector count used for pipeline execution. | |
| aggregator_pipeline_type & | get_aggregator_pipe () BMNOEXCEPT |
| get aggregator pipeline (access to compute internals) | |
| pipeline (const pipeline &)=delete | |
| pipeline & | operator= (const pipeline &)=delete |
Pipeline to run multiple searches against a particular SV faster using cache optimizations.
USAGE:
Definition at line 619 of file bmsparsevec_algo.h.
| typedef aggregator_type::template pipeline<Opt> bm::sparse_vector_scanner< SV, S_FACTOR >::pipeline< Opt >::aggregator_pipeline_type |
Definition at line 623 of file bmsparsevec_algo.h.
|
inline |
Definition at line 625 of file bmsparsevec_algo.h.
References bv_and_mask_, eff_slices_, and sv_.
Referenced by operator=(), and pipeline().
|
protecteddelete |
References pipeline().
| void bm::sparse_vector_scanner< SV, S_FACTOR >::pipeline< Opt >::add | ( | const typename SV::value_type * | str | ) |
Add new search string.
| str | - zero terminated string pointer to configure a search for |
Definition at line 3247 of file bmsparsevec_algo.h.
References add(), bm::sparse_vector_scanner< SV, S_FACTOR >::add_agg_char(), agg_pipe_, BM_ASSERT, bv_and_mask_, eff_slices_, bm::sparse_vector_scanner< SV, S_FACTOR >::remap_tosv(), remap_value_vect_, and sv_.
|
inline |
Prepare pipeline for the execution (resize and init internal structures) Once complete, you cannot add() to it.
Definition at line 675 of file bmsparsevec_algo.h.
References agg_pipe_.
Referenced by main().
|
inline |
get aggregator pipeline (access to compute internals)
Definition at line 697 of file bmsparsevec_algo.h.
References agg_pipe_, and BMNOEXCEPT.
|
inline |
Return results vector count used for pipeline execution.
Definition at line 689 of file bmsparsevec_algo.h.
References agg_pipe_, and BMNOEXCEPT.
|
inline |
Return results vector used for pipeline execution.
Definition at line 685 of file bmsparsevec_algo.h.
References agg_pipe_, and BMNOEXCEPT.
Referenced by main().
|
inline |
Get pipeline run options.
Definition at line 635 of file bmsparsevec_algo.h.
References agg_pipe_, and BMNOEXCEPT.
|
inline |
Definition at line 677 of file bmsparsevec_algo.h.
References agg_pipe_, and BMNOEXCEPT.
|
protecteddelete |
References pipeline().
|
inline |
Set pipeline run options.
Definition at line 631 of file bmsparsevec_algo.h.
References agg_pipe_, and BMNOEXCEPT.
Referenced by main().
|
inline |
Attach OR (aggregator vector).
Pipeline results all will be OR-ed (UNION) into the OR target vector
| bv_or | - OR target vector |
Definition at line 660 of file bmsparsevec_algo.h.
References agg_pipe_, and BMNOEXCEPT.
|
inline |
Set search limit for results.
Requires that bit-counting to be enabled in the template parameters. Warning: search limit is approximate (for performance reasons) so it can occasinally find more than requested. It cannot find less. Search limit works for individual results (not ORed aggregate)
| limit | - search limit (target population count to search for) |
Definition at line 652 of file bmsparsevec_algo.h.
References agg_pipe_, and BMNOEXCEPT.
| void bm::sparse_vector_scanner< SV, S_FACTOR >::pipeline< Opt >::set_search_mask | ( | const bvector_type * | bv_mask | ) |
Set pipeline mask bit-vector to restrict the search space.
| bv_mask | - pointer to bit-vector restricting search to vector indexes marked as 1s. Pointer ownership is not transferred, NULL value resets the mask. bv_mask defines the mask for all added searches. |
Definition at line 3235 of file bmsparsevec_algo.h.
References BMNOEXCEPT, bv_and_mask_, and set_search_mask().
Referenced by set_search_mask().
|
inline |
Definition at line 680 of file bmsparsevec_algo.h.
References agg_pipe_, and BMNOEXCEPT.
|
friend |
Definition at line 701 of file bmsparsevec_algo.h.
References sparse_vector_scanner.
Referenced by sparse_vector_scanner.
|
protected |
traget aggregator pipeline
Definition at line 707 of file bmsparsevec_algo.h.
Referenced by add(), complete(), get_aggregator_pipe(), get_bv_count_vector(), get_bv_res_vector(), get_options(), is_complete(), options(), set_or_target(), set_search_count_limit(), and size().
|
protected |
Definition at line 709 of file bmsparsevec_algo.h.
Referenced by add(), pipeline(), and set_search_mask().
|
protected |
number of effectice NOT NULL value slices
Definition at line 710 of file bmsparsevec_algo.h.
Referenced by add(), and pipeline().
|
protected |
|
protected |
target sparse vector ref
Definition at line 706 of file bmsparsevec_algo.h.
Referenced by add(), and pipeline().