:orphan:
# PETSC_HASH_MAP
Instantiate a PETSc hash table map type 
## Synopsis
```
#include <petsc/private/hashmap.h>
PETSC_HASH_MAP(HMapT, KeyType, ValType, HashFunc, EqualFunc, DefaultValue)
```

## Input Parameters

- ***HMapT -*** The hash table map type name suffix
- ***KeyType -*** The type of keys
- ***ValType -*** The type of values
- ***HashFunc -*** Routine or function-like macro computing hash values from keys
- ***EqualFunc -*** Routine or function-like macro computing whether two values are equal
- ***DefaultValue -*** Default value to use for queries in case of missing keys





## Developer Note
Each time this macro is used to create a new hash map type, the make rule for allmanpages in $PETSC_DIR/makefile should
be updated to cause the automatic generation of appropriate manual pages for that type. The manual pages
are generated from the templated version of the documentation in include/petsc/private/hashmap.txt.


## References
This code uses the standalone and portable C language khash software https://github.com/attractivechaos/klib


## See Also
 `PETSC_HASH_MAP_DECL()`, `PetscHMapI`, `PetscHMapICreate()`, `PetscHMapIJ`,
`PetscHMapIJCreate()`, `PETSC_HASH_SET()`

## Level
developer

## Location
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/include/petsc/private/hashmap.h.html#PETSC_HASH_MAP">include/petsc/private/hashmap.h</A>


---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/include/petsc/private/hashmap.h)


[Index of all PetscH routines](index.md)  
[Table of Contents for all manual pages](/manualpages/index.md)  
[Index of all manual pages](/manualpages/singleindex.md)  
