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 toPetscHMapIVSet()
.ADD_VALUES
: ifkey
is foundval
is added to the current entry, otherwise (key
,value
) is inserted intoht
as-if-byINSERT_VALUES
.MAX_VALUES
: ifkey
is found the current value is replaced by the maximum ofval
and the current entry, otherwise (key
,value
) is inserted intoht
as-if-byINSERT_VALUES
.MIN_VALUES
: ifkey
is found the current value is replaced by the minimum ofval
and the current entry, otherwise (key
,value
) is inserted intoht
as-if-byINSERT_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_HMAPIV_HAVE_EXTENDED_API
to
1
.
See Also#
PetscHMapIVSet()
, PetscHMapIVGet()
, PetscHMapIVGetWithDefault()
,
PetscHMapIVIterSet()
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