PetscHMapObjSetWithMode#

Set a (key,value) entry in the hash table according to an InsertMode

Synopsis#

#include <petsc/private/hashmapobj.h>
PetscErrorCode PetscHMapObjSetWithMode(PetscHMapObj ht, PetscInt64 key, PetscObject val, InsertMode mode)

Input Parameters#

  • ht - The hash table

  • key - The key

  • val - The value

  • mode - The insertion mode

Notes#

mode may be any of the following:

  • INSERT_VALUES: this routine behaves identically to PetscHMapObjSet().

  • ADD_VALUES: if key is found val is added to the current entry, otherwise (key, value) is inserted into ht as-if-by INSERT_VALUES.

  • MAX_VALUES: if key is found the current value is replaced by the maximum of val and the current entry, otherwise (key, value) is inserted into ht as-if-by INSERT_VALUES.

  • MIN_VALUES: if key is found the current value is replaced by the minimum of val and the current entry, otherwise (key, value) is inserted into ht as-if-by INSERT_VALUES.

All other InsertMode values raise an error.

Since this routine relies on +, <, and > being well-formed for a particular type it is not available by default for all PETSc hash table instantiations. If a particular instantiation supports this routine it must define PETSC_HMAPObj_HAVE_EXTENDED_API to 1.

See Also#

PetscHMapObjSet(), PetscHMapObjGet(), PetscHMapObjGetWithDefault(), PetscHMapObjIterSet()

Level#

developer

Location#

include/petsc/private/generated_khash.h


Index of all PetscH routines
Table of Contents for all manual pages
Index of all manual pages