---
name: "cmph"
section: "1"
platform: "linux"
package: "libcmph-tools"
version: "2.0.2-3.1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/cmph"
---

# cmph(1)

minimum perfect hashing tool

## NAME

cmph - minimum perfect hashing tool

## SYNOPSIS

**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

## DESCRIPTION

Command line tool to generate and query minimal perfect hash functions.

Please refer to http://cmph.sf.net for full documentation.

- **-h**

  Print an help message

- **-c**

  This value determines: the number of vertices in the graph for the algorithms BMZ and CHM; the number of bits per key required in the FCH algorithm

- **-a**

  Algorithm. Valid values are: bmz, bmz8, chm, brz, fch

- **-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**

  Parameter of BRZ algorithm to make the maximal number of keys in a bucket lower than 256

- **keysfile**

  Line separated file with keys

## EXAMPLE

$ # Using the default algorithm (chm) for constructing a mphf \
 $ # for keys in file keys\_file. Lines in keys\_file \_must\_ be unique.\
 $ ./cmph -v -g keys\_file\
 $ # Query id of keys in the file keys\_query\
 $ ./cmph -v -m keys\_file.mph keys\_query

## AUTHOR

This manual page was written by Enrico Tassi \<gareuselesinge@users.sourceforge.net\>, for the Debian project (but may be used by others).
