PetscHMapT#
Hash table map
Synopsis#
/*MC
PetscHMapTCreate - Create a hash table
Synopsis:
#include <petsc/private/hashmap.h>
PetscErrorCode PetscHMapTCreate(PetscHMapT *ht)
Output Parameter:
. ht - The hash table
.seealso: `PetscHMapTDestroy()`
M*/
/*MC
PetscHMapTDestroy - Destroy a hash table
Synopsis:
#include <petsc/private/hashmap.h>
PetscErrorCode PetscHMapTDestroy(PetscHMapT *ht)
Input Parameter:
. ht - The hash table
.seealso: `PetscHMapTCreate()`
M*/
/*MC
PetscHMapTReset - Reset a hash table
Synopsis:
#include <petsc/private/hashmap.h>
PetscErrorCode PetscHMapTReset(PetscHMapT ht)
Input Parameter:
. ht - The hash table
.seealso: `PetscHMapTClear()`
M*/
/*MC
PetscHMapTDuplicate - Duplicate a hash table
Synopsis:
#include <petsc/private/hashmap.h>
PetscErrorCode PetscHMapTDuplicate(PetscHMapT ht,PetscHMapT *hd)
Input Parameter:
. ht - The source hash table
Output Parameter:
. ht - The duplicated hash table
.seealso: `PetscHMapTCreate()`
M*/
/*MC
PetscHMapTClear - Clear a hash table
Synopsis:
#include <petsc/private/hashmap.h>
PetscErrorCode PetscHMapTClear(PetscHMapT ht)
Input Parameter:
. ht - The hash table
.seealso: `PetscHMapTReset()`
M*/
/*MC
PetscHMapTResize - Set the number of buckets in a hash table
Synopsis:
#include <petsc/private/hashmap.h>
PetscErrorCode PetscHMapTResize(PetscHMapT ht,PetscInt nb)
Input Parameters:
+ ht - The hash table
- nb - The number of buckets
.seealso: `PetscHMapTCreate()`
M*/
/*MC
PetscHMapTGetSize - Get the number of entries in a hash table
Synopsis:
#include <petsc/private/hashmap.h>
PetscErrorCode PetscHMapTGetSize(PetscHMapT ht,PetscInt *n)
Input Parameter:
. ht - The hash table
Output Parameter:
. n - The number of entries
.seealso: `PetscHMapTResize()`
M*/
/*MC
PetscHMapTGetCapacity - Get the current size of the array in the hash table
Synopsis:
#include <petsc/private/hashmap.h>
PetscErrorCode PetscHMapTGetCapacity(PetscHMapT ht,PetscInt *n)
Input Parameter:
. ht - The hash table
Output Parameter:
. n - The capacity
.seealso: `PetscHMapTResize()`, `PetscHMapTGetSize()`
M*/
/*MC
PetscHMapTHas - Query for a key in the hash table
Synopsis:
#include <petsc/private/hashmap.h>
PetscErrorCode PetscHMapTHas(PetscHMapT ht,KeyType key,PetscBool *has)
Input Parameters:
+ ht - The hash table
- key - The key
Output Parameter:
. has - Boolean indicating whether key is in the hash table
.seealso: `PetscHMapTGet()`, `PetscHMapTSet()`, `PetscHMapTFind()`
M*/
/*MC
PetscHMapTGet - Get the value for a key in the hash table
Synopsis:
#include <petsc/private/hashmap.h>
PetscErrorCode PetscHMapTGet(PetscHMapT ht,KeyType key,ValType *val)
Input Parameters:
+ ht - The hash table
- key - The key
Output Parameter:
. val - The value
.seealso: `PetscHMapTSet()`, `PetscHMapTIterGet()`
M*/
/*MC
PetscHMapTSet - Set a (key,value) entry in the hash table
Synopsis:
#include <petsc/private/hashmap.h>
PetscErrorCode PetscHMapTSet(PetscHMapT ht,KeyType key,ValType val)
Input Parameters:
+ ht - The hash table
. key - The key
- val - The value
.seealso: `PetscHMapTGet()`, `PetscHMapTIterSet()`
M*/
/*MC
PetscHMapTDel - Remove a key and its value from the hash table
Synopsis:
#include <petsc/private/hashmap.h>
PetscErrorCode PetscHMapTDel(PetscHMapT ht,KeyType key)
Input Parameters:
+ ht - The hash table
- key - The key
.seealso: `PetscHMapTHas()`, `PetscHMapTIterDel()`
M*/
/*MC
PetscHMapTQuerySet - Query and set a (key,value) entry in the hash table
Synopsis:
#include <petsc/private/hashmap.h>
PetscErrorCode PetscHMapTQuerySet(PetscHMapT ht,KeyType key,ValType val,PetscBool *missing)
Input Parameters:
+ ht - The hash table
. key - The key
- val - The value
Output Parameter:
. missing - Boolean indicating whether the key was missing
.seealso: `PetscHMapTQueryDel()`, `PetscHMapTSet()`
M*/
/*MC
PetscHMapTQueryDel - Query and remove a (key,value) entry from the hash table
Synopsis:
#include <petsc/private/hashmap.h>
PetscErrorCode PetscHMapTQueryDel(PetscHMapT ht,KeyType key,PetscBool *present)
Input Parameters:
+ ht - The hash table
- key - The key
Output Parameter:
. present - Boolean indicating whether the key was present
.seealso: `PetscHMapTQuerySet()`, `PetscHMapTDel()`
M*/
/*MC
PetscHMapTFind - Query for key in the hash table
Synopsis:
#include <petsc/private/hashmap.h>
PetscErrorCode PetscHMapTFind(PetscHMapT ht,KeyType key,PetscHashIter *iter,PetscBool *found)
Input Parameters:
+ ht - The hash table
- key - The key
Output Parameters:
+ iter - Iterator referencing the value for key
- found - Boolean indicating whether the key was present
.seealso: `PetscHMapTIterGet()`, `PetscHMapTIterDel()`
M*/
/*MC
PetscHMapTPut - Set a key in the hash table
Synopsis:
#include <petsc/private/hashmap.h>
PetscErrorCode PetscHMapTPut(PetscHMapT ht,KeyType key,PetscHashIter *iter,PetscBool *missing)
Input Parameters:
+ ht - The hash table
- key - The key
Output Parameters:
+ iter - Iterator referencing the value for key
- missing - Boolean indicating whether the key was missing
.seealso: `PetscHMapTIterSet()`, `PetscHMapTQuerySet()`, `PetscHMapTSet()`
M*/
/*MC
PetscHMapTIterGet - Get the value referenced by an iterator in the hash table
Synopsis:
#include <petsc/private/hashmap.h>
PetscErrorCode PetscHMapTIterGet(PetscHMapT ht,PetscHashIter iter,ValType *val)
Input Parameters:
+ ht - The hash table
- iter - The iterator
Output Parameter:
. val - The value
.seealso: `PetscHMapTFind()`, `PetscHMapTGet()`
M*/
/*MC
PetscHMapTIterSet - Set the value referenced by an iterator in the hash
Synopsis:
#include <petsc/private/hashmap.h>
PetscErrorCode PetscHMapTIterSet(PetscHMapT ht,PetscHashIter iter,ValType val)
Input Parameters:
+ ht - The hash table
. iter - The iterator
- val - The value
.seealso: `PetscHMapTPut()`, `PetscHMapTQuerySet()`, `PetscHMapTSet()`
M*/
/*MC
PetscHMapTIterDel - Remove the (key,value) referenced by an iterator from the hash table
Synopsis:
#include <petsc/private/hashmap.h>
PetscErrorCode PetscHMapTIterDel(PetscHMapT ht,PetscHashIter iter)
Input Parameters:
+ ht - The hash table
- iter - The iterator
.seealso: `PetscHMapTFind()`, `PetscHMapTQueryDel()`, `PetscHMapTDel()`
M*/
/*MC
PetscHMapTGetKeys - Get all keys from a hash table
Synopsis:
#include <petsc/private/hashmap.h>
PetscErrorCode PetscHMapTGetKeys(PetscHMapT ht,PetscInt *off,KeyType array[])
Input Parameters:
+ ht - The hash table
. off - Input offset in array (usually zero)
- array - Array where to put hash table keys into
Output Parameters:
+ off - Output offset in array (output offset = input offset + hash table size)
- array - Array filled with the hash table keys
.seealso: `PetscHSetTGetSize()`, `PetscHMapTGetVals()`
M*/
/*MC
PetscHMapTGetVals - Get all values from a hash table
Synopsis:
#include <petsc/private/hashmap.h>
PetscErrorCode PetscHMapTGetVals(PetscHMapT ht,PetscInt *off,ValType array[])
Input Parameters:
+ ht - The hash table
. off - Input offset in array (usually zero)
- array - Array where to put hash table values into
Output Parameters:
+ off - Output offset in array (output offset = input offset + hash table size)
- array - Array filled with the hash table values
.seealso: `PetscHSetTGetSize()`, `PetscHMapTGetKeys()`
M*/
/*MC
PetscHMapTGetPairs - Get all (key,value) pairs from a hash table
Synopsis:
#include <petsc/private/hashmap.h>
PetscErrorCode PetscHMapTGetPairs(PetscHMapT ht,PetscInt *off,KeyType karray[],ValType varray[])
Input Parameters:
+ ht - The hash table
. off - Input offset in array (usually zero)
- karray - Array where to put hash table keys into
- varray - Array where to put hash table values into
Output Parameters:
+ off - Output offset in array (output offset = input offset + hash table size)
- karray - Array filled with the hash table keys
- varray - Array filled with the hash table values
.seealso: `PetscHSetTGetSize()`, `PetscHMapTGetKeys()`, `PetscHMapTGetVals()`
M*/
#define PETSC_HASH_MAP(HashT, KeyType, ValType, HashFunc, EqualFunc, DefaultValue) \
\
KHASH_INIT(HashT, KeyType, ValType, 1, HashFunc, EqualFunc) \
\
typedef khash_t(HashT) *Pet.c.html##HashT;
Synopsis#
typedef khash_t(HMapT) *PetscHMapT;
See Also#
Level#
developer
Location#
include/petsc/private/hashmap.h
Index of all Sys routines
Table of Contents for all manual pages
Index of all manual pages