You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+26-24Lines changed: 26 additions & 24 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,12 +12,14 @@
12
12
-[*Parallel and External-Memory Construction of Minimal Perfect Hash Functions with PTHash*](https://ieeexplore.ieee.org/document/10210677) (TKDE 2023),
13
13
-[*PHOBIC: Perfect Hashing with Optimized Bucket Sizes and Interleaved Coding*](https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ESA.2024.69) (ESA 2024).
14
14
15
-
**Please, cite these papers if you use PTHash or PHOBIC.**
15
+
**Please, cite these papers if you use PTHash.**
16
+
17
+
**Rust**: if you use the Rust programming language, we recommend the [PtrHash](https://github.com/RagnarGrootKoerkamp/PtrHash) library.
16
18
17
19
### Development note
18
20
19
21
The description of PTHash in the SIGIR and TKDE papers uses the `c` parameter
20
-
to control the number of buckets used during the search.
22
+
to control the number of buckets for the search phase of the algorithm.
21
23
You can get a version of the library using the `c` parameter [here](https://github.com/jermp/pthash/releases/tag/v2.0.0) (Release v2).
22
24
The current library
23
25
uses instead a parameter called "lambda", as described in the ESA paper.
@@ -58,7 +60,7 @@ Integrating PTHash in your own project is very simple.
58
60
If you use `git`, the easiest way to add PTHash is via `git add submodule` as follows.
(NOTE: Beware that the software will result in a much slower execution when running in debug mode and using sanitizers. Use this only for debug purposes, not to run performance tests.)
105
+
**NOTE**: Beware that the software will result in a much slower execution when running in debug mode and using sanitizers. Use this only for debug purposes, not to run performance tests.)
104
106
105
107
### Enable Large Bucket-Id Type
106
108
@@ -116,7 +118,7 @@ Quick Start
116
118
117
119
For a quick start, see the source file `src/example.cpp`.
118
120
The example shows how to setup a simple build configuration
119
-
for PTHash (parameters, base hasher, search type, and encoder).
121
+
for PTHash (parameters, base hasher, bucketer, and encoder types).
120
122
121
123
After compilation, run this example with
122
124
@@ -138,28 +140,29 @@ shows the usage of the driver program. In the following, we illustrate some exam
builds a MPHF using most of the parameters used in Example 2 but the function is built in external memory (option `--external`) using 1 GB of RAM (option `-m 1`), and with avg. partition size of 2.5M and compressing the data structure with a partitioned compact encoding (`-e PC`).
198
+
builds a MPHF using most of the parameters used in Example 2 but the function is built in external memory (option `--external`) using 1 GB of RAM (option `-m 1`), with avg. partition size of 2.5M,
199
+
and compressing the data structure with a partitioned compact encoding (`-e PC`).
198
200
199
201
Reading Keys from Standard Input
200
202
-----
@@ -205,14 +207,14 @@ in combination with option `-i -`. This is very useful when building keys from c
205
207
Some examples below.
206
208
207
209
for i in $(seq 1 1000000) ; do echo $i ; done > foo.txt
0 commit comments