1
Fork 0

*** empty log message ***

This commit is contained in:
fc_botelho 2006-05-03 20:25:41 +00:00
parent 3578933d4a
commit c1aea5cc0f
2 changed files with 58 additions and 38 deletions

View File

@ -25,7 +25,12 @@ one is executed?
the cmph_config_set_hashfuncs. Therefore, the default hash function
is reset when you call the cmph_config_set_algo function.
- What do I do when the following error is got?
- Error: **error while loading shared libraries: libcmph.so.0: cannot open shared object file: No such file ordirectory**
- Solution: type **export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/** at the shell or put that shell command
in your .profile file or in the /etc/profile file.
%!include: ALGORITHMS.t2t
%!include: FOOTER.t2t

View File

@ -51,7 +51,7 @@ The CMPH Library encapsulates the newest and more efficient algorithms in an eas
%txt% - BMZ Algorithm.
A very fast external memory based algorithm for constructing minimal perfect hash functions
for sets in the order of billion of keys in linear time. The resulting functions are not order preserving and
can be stored using just 8.1 bits per key. **This algorithm is available just in the CVS for while**.
can be stored using just 8.1 bits per key.
%html% - [CHM Algorithm chm.html].
%txt% - CHM Algorithm.
An algorithm based on acyclic random graphs to construct minimal
@ -61,6 +61,15 @@ The CMPH Library encapsulates the newest and more efficient algorithms in an eas
%html% [Click Here comparison.html] to see a comparison of the supported algorithms.
----------------------------------------
==News for version 0.5==
- A thread safe vector adapter has been added.
- [A new algorithm for sets in the order of billion of keys that requires approximately 8.1 bits per key to store the resulting MPHFs. brz.html]
- All reported bugs and suggestions have been corrected and included as well.
----------------------------------------
==News for version 0.4==
@ -88,29 +97,29 @@ Using cmph is quite simple. Take a look.
```
#include <cmph.h>
#include <string.h>
// Create minimal perfect hash function from in-memory vector
int main(int argc, char **argv)
{
{
// Creating a filled vector
const char *vector[] = {"aaaaaaaaaa", "bbbbbbbbbb", "cccccccccc", "dddddddddd", "eeeeeeeeee",
const char *vector[] = {"aaaaaaaaaa", "bbbbbbbbbb", "cccccccccc", "dddddddddd", "eeeeeeeeee",
"ffffffffff", "gggggggggg", "hhhhhhhhhh", "iiiiiiiiii", "jjjjjjjjjj"};
unsigned int nkeys = 10;
// Source of keys
cmph_io_adapter_t *source = cmph_io_vector_adapter(vector, nkeys);
cmph_io_adapter_t *source = cmph_io_vector_adapter((char **)vector, nkeys);
//Create minimal perfect hash function using the default (chm) algorithm.
cmph_config_t *config = cmph_config_new(source);
cmph_t *hash = cmph_new(config);
cmph_config_destroy(config);
//Find key
const char *key = "jjjjjjjjjj";
unsigned int id = cmph_search(hash, key, strlen(key));
fprintf(stderr, "Id:%u\n", id);
//Destroy hash
cmph_destroy(hash);
free(source);
cmph_io_vector_adapter_destroy(source);
return 0;
}
```
@ -120,33 +129,33 @@ Download [vector_adapter_ex1.c examples/vector_adapter_ex1.c]. This example does
```
#include <cmph.h>
#include <stdio.h>
// Create minimal perfect hash function from in-disk keys using BMZ algorithm
#include <string.h>
// Create minimal perfect hash function from in-disk keys using BMZ algorithm
int main(int argc, char **argv)
{
//Open file with newline separated list of keys
{
//Open file with newline separated list of keys
FILE * keys_fd = fopen("keys.txt", "r");
cmph_t *hash = NULL;
if (keys_fd == NULL)
if (keys_fd == NULL)
{
fprintf(stderr, "File \"keys.txt\" not found\n");
exit(1);
}
fprintf(stderr, "File \"keys.txt\" not found\n");
exit(1);
}
// Source of keys
cmph_io_adapter_t *source = cmph_io_nlfile_adapter(keys_fd);
cmph_config_t *config = cmph_config_new(source);
cmph_config_set_algo(config, CMPH_BMZ);
hash = cmph_new(config);
cmph_config_destroy(config);
//Find key
const char *key = "jjjjjjjjjj";
unsigned int id = cmph_search(hash, key, strlen(key));
fprintf(stderr, "Id:%u\n", id);
//Destroy hash
cmph_destroy(hash);
free(source);
cmph_io_nlfile_adapter_destroy(source);
fclose(keys_fd);
return 0;
}
@ -176,26 +185,32 @@ utility.
```
usage: cmph [-v] [-h] [-V] [-k nkeys] [-f hash_function] [-g [-c value][-s seed] ] [-m file.mph] [-a algorithm] keysfile
usage: cmph [-v] [-h] [-V] [-k nkeys] [-f hash_function] [-g [-c value][-s seed] ] [-a algorithm] [-M memory_in_MB] [-b BRZ_parameter] [-d tmp_dir] [-m file.mph] keysfile
Minimum perfect hashing tool
-h print this help message
-c c value that determines the number of vertices in the graph
-a algorithm - valid values are
* bmz
* chm
-f hash function (may be used multiple times) - valid values are
* djb2
* fnv
* jenkins
* sdbm
-V print version number and exit
-v increase verbosity (may be used multiple times)
-k number of keys
-g generation mode
-s random seed
-m minimum perfect hash function file
keysfile line separated file with keys
-h print this help message
-c c value that determines the number of vertices in the graph
-a algorithm - valid values are
* bmz
* bmz8
* chm
* brz
-f hash function (may be used multiple times) - valid values are
* djb2
* fnv
* jenkins
* sdbm
-V print version number and exit
-v increase verbosity (may be used multiple times)
-k number of keys
-g generation mode
-s random seed
-m minimum perfect hash function file
-M main memory availability (in MB)
-d temporary directory used in brz algorithm
-b parmeter of BRZ algorithm to make the maximal number of keys in a bucket lower than 256
keysfile line separated file with keys
```
==Additional Documentation==