PetscHMapIVSetWithMode#

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

Synopsis#

#include <petsc/private/hashmapiv.h>
PetscErrorCode PetscHMapIVSetWithMode(PetscHMapIV ht, PetscInt key, PetscScalar 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 PetscHMapIVSet().

  • 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 InsertModes will raise an error if used.

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_HMAPIV_HAVE_EXTENDED_API to 1.

See Also#

PetscHMapIVSet(), PetscHMapIVGet(), PetscHMapIVGetWithDefault(), PetscHMapIVIterSet()

Level#

developer

Location#

include/petsc/private/generated_khash.h


Edit on GitLab

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