-
Notifications
You must be signed in to change notification settings - Fork 25
/
index_types.hpp
42 lines (33 loc) · 1.5 KB
/
index_types.hpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#pragma once
#include <boost/preprocessor/seq/for_each.hpp>
#include <boost/preprocessor/stringize.hpp>
#include <boost/preprocessor/cat.hpp>
#include "freq_index.hpp"
#include "positive_sequence.hpp"
#include "partitioned_sequence.hpp"
#include "uniform_partitioned_sequence.hpp"
#include "binary_freq_collection.hpp"
#include "block_freq_index.hpp"
#include "block_codecs.hpp"
#include "mixed_block.hpp"
namespace ds2i {
typedef freq_index<compact_elias_fano,
positive_sequence<strict_elias_fano>> ef_index;
typedef freq_index<indexed_sequence,
positive_sequence<>> single_index;
typedef freq_index<
uniform_partitioned_sequence<>,
positive_sequence<uniform_partitioned_sequence<strict_sequence>>
> uniform_index;
typedef freq_index<
partitioned_sequence<>,
positive_sequence<partitioned_sequence<strict_sequence>>
> opt_index;
typedef block_freq_index<ds2i::optpfor_block> block_optpfor_index;
typedef block_freq_index<ds2i::varint_G8IU_block> block_varint_index;
typedef block_freq_index<ds2i::interpolative_block> block_interpolative_index;
typedef block_freq_index<ds2i::qmx_block> block_qmx_index;
typedef block_freq_index<ds2i::mixed_block> block_mixed_index;
}
#define DS2I_INDEX_TYPES (ef)(single)(uniform)(opt)(block_optpfor)(block_varint)(block_interpolative)(block_mixed)(block_qmx)
#define DS2I_BLOCK_INDEX_TYPES (block_optpfor)(block_varint)(block_interpolative)(block_qmx)(block_mixed)