Actual source code: hashset.txt.h

      1: /* MANSEC = Sys */
      2: /* SUBMANSEC = PetscH */

      4: This file is processed by doc/build_man_pages.py to create manual pages
      5: for the types and macros created by PETSC_HASH_SET(). For example, PetscHHashIJ.

      7: /*S
      8:   PetscHSetI - Hash set with a key of PetscInt

     10:   Level: developer

     12: .seealso: `PETSC_HASH_SET()`, `PetscHSetICreate()`, `PetscHSetIDestroy()`, `PetscHSetIQueryAdd()`, `PetscHSetIDel()`,
     13:           `PetscHSetIAdd()`, `PetscHSetIReset()`, `PETSC_HASH_MAP()`, `PetscHMapICreate()`,  `PetscHSetI`
     14: S*/
     15: typedef struct _PetscHashI PetscHSetI;

     17: /*MC
     18:   PetscHSetICreate - Create a hash set

     20:   Synopsis:
     21: #include <petsc/private/hashseti.h>
     22:   PetscErrorCode PetscHSetICreate(PetscHSetI *ht)

     24:   Output Parameter:
     25: . ht - The hash set

     27:   Level: developer

     29: .seealso: `PetscHSetIDestroy()`
     30: M*/

     32: /*MC
     33:   PetscHSetIDestroy - Destroy a hash set

     35:   Synopsis:
     36: #include <petsc/private/hashseti.h>
     37:   PetscErrorCode PetscHSetIDestroy(PetscHSetI *ht)

     39:   Input Parameter:
     40: . ht - The hash set

     42:   Level: developer

     44: .seealso: `PetscHSetICreate()`
     45: M*/

     47: /*MC
     48:   PetscHSetIReset - Reset a hash set

     50:   Synopsis:
     51: #include <petsc/private/hashseti.h>
     52:   PetscErrorCode PetscHSetIReset(PetscHSetI ht)

     54:   Input Parameter:
     55: . ht - The hash set

     57:   Level: developer

     59: .seealso: `PetscHSetIClear()`
     60: M*/

     62: /*MC
     63:   PetscHSetIDuplicate - Duplicate a hash set

     65:   Synopsis:
     66: #include <petsc/private/hashseti.h>
     67:   PetscErrorCode PetscHSetIDuplicate(PetscHSetI ht,PetscHSetI *hd)

     69:   Input Parameter:
     70: . ht - The source hash set

     72:   Output Parameter:
     73: . ht - The duplicated hash set

     75:   Level: developer

     77: .seealso: `PetscHSetICreate()`
     78: M*/

     80: /*MC
     81:   PetscHSetIUpdate - Add entries from a has set to another

     83:   Synopsis:
     84: #include <petsc/private/hashseti.h>
     85:   PetscErrorCode PetscHSetIUpdate(PetscHSetI ht,PetscHSetI hda)

     87:   Input Parameters:
     88: + ht - The hash set to which elements are added
     89: - hta - The hash set from which the elements are retrieved

     91:   Output Parameter:
     92: . ht - The hash set filled with the elements from the other hash set

     94:   Level: developer

     96: .seealso: `PetscHSetICreate()`, `PetscHSetIDuplicate()`
     97: M*/

     99: /*MC
    100:   PetscHSetIClear - Clear a hash set

    102:   Synopsis:
    103: #include <petsc/private/hashseti.h>
    104:   PetscErrorCode PetscHSetIClear(PetscHSetI ht)

    106:   Input Parameter:
    107: . ht - The hash set

    109:   Level: developer

    111: .seealso: `PetscHSetIReset()`
    112: M*/

    114: /*MC
    115:   PetscHSetIResize - Set the number of buckets in a hash set

    117:   Synopsis:
    118: #include <petsc/private/hashseti.h>
    119:   PetscErrorCode PetscHSetIResize(PetscHSetI ht,PetscInt nb)

    121:   Input Parameters:
    122: + ht - The hash set
    123: - nb - The number of buckets

    125:   Level: developer

    127: .seealso: `PetscHSetICreate()`
    128: M*/

    130: /*MC
    131:   PetscHSetIGetSize - Get the number of entries in a hash set

    133:   Synopsis:
    134: #include <petsc/private/hashseti.h>
    135:   PetscErrorCode PetscHSetIGetSize(PetscHSetI ht,PetscInt *n)

    137:   Input Parameter:
    138: . ht - The hash set

    140:   Output Parameter:
    141: . n - The number of entries

    143:   Level: developer

    145: .seealso: `PetscHSetIResize()`
    146: M*/

    148: /*MC
    149:   PetscHSetIGetCapacity - Get the current size of the array in the hash set

    151:   Synopsis:
    152: #include <petsc/private/hashseti.h>
    153:   PetscErrorCode PetscHSetIGetCapacity(PetscHSetI ht,PetscInt *n)

    155:   Input Parameter:
    156: . ht - The hash set

    158:   Output Parameter:
    159: . n - The capacity

    161:   Level: developer

    163: .seealso: `PetscHSetIResize()`, `PetscHSetIGetSize()`
    164: M*/

    166: /*MC
    167:   PetscHSetIHas - Query for an entry in the hash set

    169:   Synopsis:
    170: #include <petsc/private/hashseti.h>
    171:   PetscErrorCode PetscHSetIHas(PetscHSetI ht, PetscInt key, PetscBool *has)

    173:   Input Parameters:
    174: + ht  - The hash set
    175: - key - The entry

    177:   Output Parameter:
    178: . has - Boolean indicating whether the entry is in the hash set

    180:   Level: developer

    182: .seealso: `PetscHSetIAdd()`, `PetscHSetIDel()`, `PetscHSetIQueryAdd()`
    183: M*/

    185: /*MC
    186:   PetscHSetIAdd - Set an entry in the hash set

    188:   Synopsis:
    189: #include <petsc/private/hashseti.h>
    190:   PetscErrorCode PetscHSetIAdd(PetscHSetI ht, PetscInt key)

    192:   Input Parameters:
    193: + ht  - The hash set
    194: - key - The entry

    196:   Level: developer

    198: .seealso: `PetscHSetIDel()`, `PetscHSetIHas()`, `PetscHSetIQueryAdd()`
    199: M*/

    201: /*MC
    202:   PetscHSetIDel - Remove an entry from the hash set

    204:   Synopsis:
    205: #include <petsc/private/hashseti.h>
    206:   PetscErrorCode PetscHSetIDel(PetscHSetI ht, PetscInt key)

    208:   Input Parameters:
    209: + ht  - The hash set
    210: - key - The entry

    212:   Level: developer

    214: .seealso: `PetscHSetIAdd()`, `PetscHSetIHas()`
    215: M*/

    217: /*MC
    218:   PetscHSetIQueryAdd - Query and add an entry in the hash set

    220:   Synopsis:
    221: #include <petsc/private/hashseti.h>
    222:   PetscErrorCode PetscHSetIQueryAdd(PetscHSetI ht, PetscInt key, PetscBool *missing)

    224:   Input Parameters:
    225: + ht  - The hash set
    226: - key - The entry

    228:   Output Parameter:
    229: . missing - Boolean indicating whether the entry was missing

    231:   Level: developer

    233: .seealso: `PetscHSetIQueryDel()`, `PetscHSetIAdd()`, `PetscHSetIHas()`
    234: M*/

    236: /*MC
    237:   PetscHSetIQueryDel - Query and remove an entry from the hash set

    239:   Synopsis:
    240: #include <petsc/private/hashseti.h>
    241:   PetscErrorCode PetscHSetIQueryDel(PetscHSetI ht, PetscInt key, PetscBool *present)

    243:   Input Parameters:
    244: + ht  - The hash set
    245: - key - The entry

    247:   Output Parameter:
    248: . present - Boolean indicating whether the entry was present

    250:   Level: developer

    252: .seealso: `PetscHSetIQueryAdd()`, `PetscHSetIDel()`
    253: M*/

    255: /*MC
    256:   PetscHSetIGetElems - Get all entries from a hash set

    258:   Synopsis:
    259: #include <petsc/private/hashseti.h>
    260:   PetscErrorCode PetscHSetIGetElems(PetscHSetI ht, PetscInt *off, PetscInt array[])

    262:   Input Parameters:
    263: + ht    - The hash set
    264: . off   - Input offset in array (usually zero)
    265: - array - Array to put hash set entries in

    267:   Output Parameters:
    268: + off   - Output offset in array (output offset = input offset + hash set size)
    269: - array - Array filled with the hash set entries

    271:   Level: developer

    273: .seealso: `PetscHSetIGetSize()`
    274: M*/
    275: /* MANSEC = Sys */
    276: /* SUBMANSEC = PetscH */

    278: This file is processed by doc/build_man_pages.py to create manual pages
    279: for the types and macros created by PETSC_HASH_SET(). For example, PetscHHashIJ.

    281: /*S
    282:   PetscHSetIJ - Hash set with a key of struct {PetscInt i, j;}

    284:   Level: developer

    286: .seealso: `PETSC_HASH_SET()`, `PetscHSetIJCreate()`, `PetscHSetIJDestroy()`, `PetscHSetIJQueryAdd()`, `PetscHSetIJDel()`,
    287:           `PetscHSetIJAdd()`, `PetscHSetIJReset()`, `PETSC_HASH_MAP()`, `PetscHMapIJCreate()`,  `PetscHSetIJ`
    288: S*/
    289: typedef struct _PetscHashIJ PetscHSetIJ;

    291: /*MC
    292:   PetscHSetIJCreate - Create a hash set

    294:   Synopsis:
    295: #include <petsc/private/hashsetij.h>
    296:   PetscErrorCode PetscHSetIJCreate(PetscHSetIJ *ht)

    298:   Output Parameter:
    299: . ht - The hash set

    301:   Level: developer

    303: .seealso: `PetscHSetIJDestroy()`
    304: M*/

    306: /*MC
    307:   PetscHSetIJDestroy - Destroy a hash set

    309:   Synopsis:
    310: #include <petsc/private/hashsetij.h>
    311:   PetscErrorCode PetscHSetIJDestroy(PetscHSetIJ *ht)

    313:   Input Parameter:
    314: . ht - The hash set

    316:   Level: developer

    318: .seealso: `PetscHSetIJCreate()`
    319: M*/

    321: /*MC
    322:   PetscHSetIJReset - Reset a hash set

    324:   Synopsis:
    325: #include <petsc/private/hashsetij.h>
    326:   PetscErrorCode PetscHSetIJReset(PetscHSetIJ ht)

    328:   Input Parameter:
    329: . ht - The hash set

    331:   Level: developer

    333: .seealso: `PetscHSetIJClear()`
    334: M*/

    336: /*MC
    337:   PetscHSetIJDuplicate - Duplicate a hash set

    339:   Synopsis:
    340: #include <petsc/private/hashsetij.h>
    341:   PetscErrorCode PetscHSetIJDuplicate(PetscHSetIJ ht,PetscHSetIJ *hd)

    343:   Input Parameter:
    344: . ht - The source hash set

    346:   Output Parameter:
    347: . ht - The duplicated hash set

    349:   Level: developer

    351: .seealso: `PetscHSetIJCreate()`
    352: M*/

    354: /*MC
    355:   PetscHSetIJUpdate - Add entries from a has set to another

    357:   Synopsis:
    358: #include <petsc/private/hashsetij.h>
    359:   PetscErrorCode PetscHSetIJUpdate(PetscHSetIJ ht,PetscHSetIJ hda)

    361:   Input Parameters:
    362: + ht - The hash set to which elements are added
    363: - hta - The hash set from which the elements are retrieved

    365:   Output Parameter:
    366: . ht - The hash set filled with the elements from the other hash set

    368:   Level: developer

    370: .seealso: `PetscHSetIJCreate()`, `PetscHSetIJDuplicate()`
    371: M*/

    373: /*MC
    374:   PetscHSetIJClear - Clear a hash set

    376:   Synopsis:
    377: #include <petsc/private/hashsetij.h>
    378:   PetscErrorCode PetscHSetIJClear(PetscHSetIJ ht)

    380:   Input Parameter:
    381: . ht - The hash set

    383:   Level: developer

    385: .seealso: `PetscHSetIJReset()`
    386: M*/

    388: /*MC
    389:   PetscHSetIJResize - Set the number of buckets in a hash set

    391:   Synopsis:
    392: #include <petsc/private/hashsetij.h>
    393:   PetscErrorCode PetscHSetIJResize(PetscHSetIJ ht,PetscInt nb)

    395:   Input Parameters:
    396: + ht - The hash set
    397: - nb - The number of buckets

    399:   Level: developer

    401: .seealso: `PetscHSetIJCreate()`
    402: M*/

    404: /*MC
    405:   PetscHSetIJGetSize - Get the number of entries in a hash set

    407:   Synopsis:
    408: #include <petsc/private/hashsetij.h>
    409:   PetscErrorCode PetscHSetIJGetSize(PetscHSetIJ ht,PetscInt *n)

    411:   Input Parameter:
    412: . ht - The hash set

    414:   Output Parameter:
    415: . n - The number of entries

    417:   Level: developer

    419: .seealso: `PetscHSetIJResize()`
    420: M*/

    422: /*MC
    423:   PetscHSetIJGetCapacity - Get the current size of the array in the hash set

    425:   Synopsis:
    426: #include <petsc/private/hashsetij.h>
    427:   PetscErrorCode PetscHSetIJGetCapacity(PetscHSetIJ ht,PetscInt *n)

    429:   Input Parameter:
    430: . ht - The hash set

    432:   Output Parameter:
    433: . n - The capacity

    435:   Level: developer

    437: .seealso: `PetscHSetIJResize()`, `PetscHSetIJGetSize()`
    438: M*/

    440: /*MC
    441:   PetscHSetIJHas - Query for an entry in the hash set

    443:   Synopsis:
    444: #include <petsc/private/hashsetij.h>
    445:   PetscErrorCode PetscHSetIJHas(PetscHSetIJ ht, struct {PetscInt i, j;} key, PetscBool *has)

    447:   Input Parameters:
    448: + ht  - The hash set
    449: - key - The entry

    451:   Output Parameter:
    452: . has - Boolean indicating whether the entry is in the hash set

    454:   Level: developer

    456: .seealso: `PetscHSetIJAdd()`, `PetscHSetIJDel()`, `PetscHSetIJQueryAdd()`
    457: M*/

    459: /*MC
    460:   PetscHSetIJAdd - Set an entry in the hash set

    462:   Synopsis:
    463: #include <petsc/private/hashsetij.h>
    464:   PetscErrorCode PetscHSetIJAdd(PetscHSetIJ ht, struct {PetscInt i, j;} key)

    466:   Input Parameters:
    467: + ht  - The hash set
    468: - key - The entry

    470:   Level: developer

    472: .seealso: `PetscHSetIJDel()`, `PetscHSetIJHas()`, `PetscHSetIJQueryAdd()`
    473: M*/

    475: /*MC
    476:   PetscHSetIJDel - Remove an entry from the hash set

    478:   Synopsis:
    479: #include <petsc/private/hashsetij.h>
    480:   PetscErrorCode PetscHSetIJDel(PetscHSetIJ ht, struct {PetscInt i, j;} key)

    482:   Input Parameters:
    483: + ht  - The hash set
    484: - key - The entry

    486:   Level: developer

    488: .seealso: `PetscHSetIJAdd()`, `PetscHSetIJHas()`
    489: M*/

    491: /*MC
    492:   PetscHSetIJQueryAdd - Query and add an entry in the hash set

    494:   Synopsis:
    495: #include <petsc/private/hashsetij.h>
    496:   PetscErrorCode PetscHSetIJQueryAdd(PetscHSetIJ ht, struct {PetscInt i, j;} key, PetscBool *missing)

    498:   Input Parameters:
    499: + ht  - The hash set
    500: - key - The entry

    502:   Output Parameter:
    503: . missing - Boolean indicating whether the entry was missing

    505:   Level: developer

    507: .seealso: `PetscHSetIJQueryDel()`, `PetscHSetIJAdd()`, `PetscHSetIJHas()`
    508: M*/

    510: /*MC
    511:   PetscHSetIJQueryDel - Query and remove an entry from the hash set

    513:   Synopsis:
    514: #include <petsc/private/hashsetij.h>
    515:   PetscErrorCode PetscHSetIJQueryDel(PetscHSetIJ ht, struct {PetscInt i, j;} key, PetscBool *present)

    517:   Input Parameters:
    518: + ht  - The hash set
    519: - key - The entry

    521:   Output Parameter:
    522: . present - Boolean indicating whether the entry was present

    524:   Level: developer

    526: .seealso: `PetscHSetIJQueryAdd()`, `PetscHSetIJDel()`
    527: M*/

    529: /*MC
    530:   PetscHSetIJGetElems - Get all entries from a hash set

    532:   Synopsis:
    533: #include <petsc/private/hashsetij.h>
    534:   PetscErrorCode PetscHSetIJGetElems(PetscHSetIJ ht, PetscInt *off, struct {PetscInt i, j;} array[])

    536:   Input Parameters:
    537: + ht    - The hash set
    538: . off   - Input offset in array (usually zero)
    539: - array - Array to put hash set entries in

    541:   Output Parameters:
    542: + off   - Output offset in array (output offset = input offset + hash set size)
    543: - array - Array filled with the hash set entries

    545:   Level: developer

    547: .seealso: `PetscHSetIJGetSize()`
    548: M*/
    549: /* MANSEC = Sys */
    550: /* SUBMANSEC = PetscH */

    552: This file is processed by doc/build_man_pages.py to create manual pages
    553: for the types and macros created by PETSC_HASH_SET(). For example, PetscHHashIJ.

    555: /*S
    556:   PetscHSetI - Hash set with a key of PetscInt

    558:   Level: developer

    560: .seealso: `PETSC_HASH_SET()`, `PetscHSetICreate()`, `PetscHSetIDestroy()`, `PetscHSetIQueryAdd()`, `PetscHSetIDel()`,
    561:           `PetscHSetIAdd()`, `PetscHSetIReset()`, `PETSC_HASH_MAP()`, `PetscHMapICreate()`,  `PetscHSetI`
    562: S*/
    563: typedef struct _PetscHashI PetscHSetI;

    565: /*MC
    566:   PetscHSetICreate - Create a hash set

    568:   Synopsis:
    569: #include <petsc/private/hashseti.h>
    570:   PetscErrorCode PetscHSetICreate(PetscHSetI *ht)

    572:   Output Parameter:
    573: . ht - The hash set

    575:   Level: developer

    577: .seealso: `PetscHSetIDestroy()`
    578: M*/

    580: /*MC
    581:   PetscHSetIDestroy - Destroy a hash set

    583:   Synopsis:
    584: #include <petsc/private/hashseti.h>
    585:   PetscErrorCode PetscHSetIDestroy(PetscHSetI *ht)

    587:   Input Parameter:
    588: . ht - The hash set

    590:   Level: developer

    592: .seealso: `PetscHSetICreate()`
    593: M*/

    595: /*MC
    596:   PetscHSetIReset - Reset a hash set

    598:   Synopsis:
    599: #include <petsc/private/hashseti.h>
    600:   PetscErrorCode PetscHSetIReset(PetscHSetI ht)

    602:   Input Parameter:
    603: . ht - The hash set

    605:   Level: developer

    607: .seealso: `PetscHSetIClear()`
    608: M*/

    610: /*MC
    611:   PetscHSetIDuplicate - Duplicate a hash set

    613:   Synopsis:
    614: #include <petsc/private/hashseti.h>
    615:   PetscErrorCode PetscHSetIDuplicate(PetscHSetI ht,PetscHSetI *hd)

    617:   Input Parameter:
    618: . ht - The source hash set

    620:   Output Parameter:
    621: . ht - The duplicated hash set

    623:   Level: developer

    625: .seealso: `PetscHSetICreate()`
    626: M*/

    628: /*MC
    629:   PetscHSetIUpdate - Add entries from a has set to another

    631:   Synopsis:
    632: #include <petsc/private/hashseti.h>
    633:   PetscErrorCode PetscHSetIUpdate(PetscHSetI ht,PetscHSetI hda)

    635:   Input Parameters:
    636: + ht - The hash set to which elements are added
    637: - hta - The hash set from which the elements are retrieved

    639:   Output Parameter:
    640: . ht - The hash set filled with the elements from the other hash set

    642:   Level: developer

    644: .seealso: `PetscHSetICreate()`, `PetscHSetIDuplicate()`
    645: M*/

    647: /*MC
    648:   PetscHSetIClear - Clear a hash set

    650:   Synopsis:
    651: #include <petsc/private/hashseti.h>
    652:   PetscErrorCode PetscHSetIClear(PetscHSetI ht)

    654:   Input Parameter:
    655: . ht - The hash set

    657:   Level: developer

    659: .seealso: `PetscHSetIReset()`
    660: M*/

    662: /*MC
    663:   PetscHSetIResize - Set the number of buckets in a hash set

    665:   Synopsis:
    666: #include <petsc/private/hashseti.h>
    667:   PetscErrorCode PetscHSetIResize(PetscHSetI ht,PetscInt nb)

    669:   Input Parameters:
    670: + ht - The hash set
    671: - nb - The number of buckets

    673:   Level: developer

    675: .seealso: `PetscHSetICreate()`
    676: M*/

    678: /*MC
    679:   PetscHSetIGetSize - Get the number of entries in a hash set

    681:   Synopsis:
    682: #include <petsc/private/hashseti.h>
    683:   PetscErrorCode PetscHSetIGetSize(PetscHSetI ht,PetscInt *n)

    685:   Input Parameter:
    686: . ht - The hash set

    688:   Output Parameter:
    689: . n - The number of entries

    691:   Level: developer

    693: .seealso: `PetscHSetIResize()`
    694: M*/

    696: /*MC
    697:   PetscHSetIGetCapacity - Get the current size of the array in the hash set

    699:   Synopsis:
    700: #include <petsc/private/hashseti.h>
    701:   PetscErrorCode PetscHSetIGetCapacity(PetscHSetI ht,PetscInt *n)

    703:   Input Parameter:
    704: . ht - The hash set

    706:   Output Parameter:
    707: . n - The capacity

    709:   Level: developer

    711: .seealso: `PetscHSetIResize()`, `PetscHSetIGetSize()`
    712: M*/

    714: /*MC
    715:   PetscHSetIHas - Query for an entry in the hash set

    717:   Synopsis:
    718: #include <petsc/private/hashseti.h>
    719:   PetscErrorCode PetscHSetIHas(PetscHSetI ht, PetscInt key, PetscBool *has)

    721:   Input Parameters:
    722: + ht  - The hash set
    723: - key - The entry

    725:   Output Parameter:
    726: . has - Boolean indicating whether the entry is in the hash set

    728:   Level: developer

    730: .seealso: `PetscHSetIAdd()`, `PetscHSetIDel()`, `PetscHSetIQueryAdd()`
    731: M*/

    733: /*MC
    734:   PetscHSetIAdd - Set an entry in the hash set

    736:   Synopsis:
    737: #include <petsc/private/hashseti.h>
    738:   PetscErrorCode PetscHSetIAdd(PetscHSetI ht, PetscInt key)

    740:   Input Parameters:
    741: + ht  - The hash set
    742: - key - The entry

    744:   Level: developer

    746: .seealso: `PetscHSetIDel()`, `PetscHSetIHas()`, `PetscHSetIQueryAdd()`
    747: M*/

    749: /*MC
    750:   PetscHSetIDel - Remove an entry from the hash set

    752:   Synopsis:
    753: #include <petsc/private/hashseti.h>
    754:   PetscErrorCode PetscHSetIDel(PetscHSetI ht, PetscInt key)

    756:   Input Parameters:
    757: + ht  - The hash set
    758: - key - The entry

    760:   Level: developer

    762: .seealso: `PetscHSetIAdd()`, `PetscHSetIHas()`
    763: M*/

    765: /*MC
    766:   PetscHSetIQueryAdd - Query and add an entry in the hash set

    768:   Synopsis:
    769: #include <petsc/private/hashseti.h>
    770:   PetscErrorCode PetscHSetIQueryAdd(PetscHSetI ht, PetscInt key, PetscBool *missing)

    772:   Input Parameters:
    773: + ht  - The hash set
    774: - key - The entry

    776:   Output Parameter:
    777: . missing - Boolean indicating whether the entry was missing

    779:   Level: developer

    781: .seealso: `PetscHSetIQueryDel()`, `PetscHSetIAdd()`, `PetscHSetIHas()`
    782: M*/

    784: /*MC
    785:   PetscHSetIQueryDel - Query and remove an entry from the hash set

    787:   Synopsis:
    788: #include <petsc/private/hashseti.h>
    789:   PetscErrorCode PetscHSetIQueryDel(PetscHSetI ht, PetscInt key, PetscBool *present)

    791:   Input Parameters:
    792: + ht  - The hash set
    793: - key - The entry

    795:   Output Parameter:
    796: . present - Boolean indicating whether the entry was present

    798:   Level: developer

    800: .seealso: `PetscHSetIQueryAdd()`, `PetscHSetIDel()`
    801: M*/

    803: /*MC
    804:   PetscHSetIGetElems - Get all entries from a hash set

    806:   Synopsis:
    807: #include <petsc/private/hashseti.h>
    808:   PetscErrorCode PetscHSetIGetElems(PetscHSetI ht, PetscInt *off, PetscInt array[])

    810:   Input Parameters:
    811: + ht    - The hash set
    812: . off   - Input offset in array (usually zero)
    813: - array - Array to put hash set entries in

    815:   Output Parameters:
    816: + off   - Output offset in array (output offset = input offset + hash set size)
    817: - array - Array filled with the hash set entries

    819:   Level: developer

    821: .seealso: `PetscHSetIGetSize()`
    822: M*/
    823: /* MANSEC = Sys */
    824: /* SUBMANSEC = PetscH */

    826: This file is processed by doc/build_man_pages.py to create manual pages
    827: for the types and macros created by PETSC_HASH_SET(). For example, PetscHHashIJ.

    829: /*S
    830:   PetscHSetIJ - Hash set with a key of struct {PetscInt i, j;}

    832:   Level: developer

    834: .seealso: `PETSC_HASH_SET()`, `PetscHSetIJCreate()`, `PetscHSetIJDestroy()`, `PetscHSetIJQueryAdd()`, `PetscHSetIJDel()`,
    835:           `PetscHSetIJAdd()`, `PetscHSetIJReset()`, `PETSC_HASH_MAP()`, `PetscHMapIJCreate()`,  `PetscHSetIJ`
    836: S*/
    837: typedef struct _PetscHashIJ PetscHSetIJ;

    839: /*MC
    840:   PetscHSetIJCreate - Create a hash set

    842:   Synopsis:
    843: #include <petsc/private/hashsetij.h>
    844:   PetscErrorCode PetscHSetIJCreate(PetscHSetIJ *ht)

    846:   Output Parameter:
    847: . ht - The hash set

    849:   Level: developer

    851: .seealso: `PetscHSetIJDestroy()`
    852: M*/

    854: /*MC
    855:   PetscHSetIJDestroy - Destroy a hash set

    857:   Synopsis:
    858: #include <petsc/private/hashsetij.h>
    859:   PetscErrorCode PetscHSetIJDestroy(PetscHSetIJ *ht)

    861:   Input Parameter:
    862: . ht - The hash set

    864:   Level: developer

    866: .seealso: `PetscHSetIJCreate()`
    867: M*/

    869: /*MC
    870:   PetscHSetIJReset - Reset a hash set

    872:   Synopsis:
    873: #include <petsc/private/hashsetij.h>
    874:   PetscErrorCode PetscHSetIJReset(PetscHSetIJ ht)

    876:   Input Parameter:
    877: . ht - The hash set

    879:   Level: developer

    881: .seealso: `PetscHSetIJClear()`
    882: M*/

    884: /*MC
    885:   PetscHSetIJDuplicate - Duplicate a hash set

    887:   Synopsis:
    888: #include <petsc/private/hashsetij.h>
    889:   PetscErrorCode PetscHSetIJDuplicate(PetscHSetIJ ht,PetscHSetIJ *hd)

    891:   Input Parameter:
    892: . ht - The source hash set

    894:   Output Parameter:
    895: . ht - The duplicated hash set

    897:   Level: developer

    899: .seealso: `PetscHSetIJCreate()`
    900: M*/

    902: /*MC
    903:   PetscHSetIJUpdate - Add entries from a has set to another

    905:   Synopsis:
    906: #include <petsc/private/hashsetij.h>
    907:   PetscErrorCode PetscHSetIJUpdate(PetscHSetIJ ht,PetscHSetIJ hda)

    909:   Input Parameters:
    910: + ht - The hash set to which elements are added
    911: - hta - The hash set from which the elements are retrieved

    913:   Output Parameter:
    914: . ht - The hash set filled with the elements from the other hash set

    916:   Level: developer

    918: .seealso: `PetscHSetIJCreate()`, `PetscHSetIJDuplicate()`
    919: M*/

    921: /*MC
    922:   PetscHSetIJClear - Clear a hash set

    924:   Synopsis:
    925: #include <petsc/private/hashsetij.h>
    926:   PetscErrorCode PetscHSetIJClear(PetscHSetIJ ht)

    928:   Input Parameter:
    929: . ht - The hash set

    931:   Level: developer

    933: .seealso: `PetscHSetIJReset()`
    934: M*/

    936: /*MC
    937:   PetscHSetIJResize - Set the number of buckets in a hash set

    939:   Synopsis:
    940: #include <petsc/private/hashsetij.h>
    941:   PetscErrorCode PetscHSetIJResize(PetscHSetIJ ht,PetscInt nb)

    943:   Input Parameters:
    944: + ht - The hash set
    945: - nb - The number of buckets

    947:   Level: developer

    949: .seealso: `PetscHSetIJCreate()`
    950: M*/

    952: /*MC
    953:   PetscHSetIJGetSize - Get the number of entries in a hash set

    955:   Synopsis:
    956: #include <petsc/private/hashsetij.h>
    957:   PetscErrorCode PetscHSetIJGetSize(PetscHSetIJ ht,PetscInt *n)

    959:   Input Parameter:
    960: . ht - The hash set

    962:   Output Parameter:
    963: . n - The number of entries

    965:   Level: developer

    967: .seealso: `PetscHSetIJResize()`
    968: M*/

    970: /*MC
    971:   PetscHSetIJGetCapacity - Get the current size of the array in the hash set

    973:   Synopsis:
    974: #include <petsc/private/hashsetij.h>
    975:   PetscErrorCode PetscHSetIJGetCapacity(PetscHSetIJ ht,PetscInt *n)

    977:   Input Parameter:
    978: . ht - The hash set

    980:   Output Parameter:
    981: . n - The capacity

    983:   Level: developer

    985: .seealso: `PetscHSetIJResize()`, `PetscHSetIJGetSize()`
    986: M*/

    988: /*MC
    989:   PetscHSetIJHas - Query for an entry in the hash set

    991:   Synopsis:
    992: #include <petsc/private/hashsetij.h>
    993:   PetscErrorCode PetscHSetIJHas(PetscHSetIJ ht, struct {PetscInt i, j;} key, PetscBool *has)

    995:   Input Parameters:
    996: + ht  - The hash set
    997: - key - The entry

    999:   Output Parameter:
    1000: . has - Boolean indicating whether the entry is in the hash set

    1002:   Level: developer

    1004: .seealso: `PetscHSetIJAdd()`, `PetscHSetIJDel()`, `PetscHSetIJQueryAdd()`
    1005: M*/

    1007: /*MC
    1008:   PetscHSetIJAdd - Set an entry in the hash set

    1010:   Synopsis:
    1011: #include <petsc/private/hashsetij.h>
    1012:   PetscErrorCode PetscHSetIJAdd(PetscHSetIJ ht, struct {PetscInt i, j;} key)

    1014:   Input Parameters:
    1015: + ht  - The hash set
    1016: - key - The entry

    1018:   Level: developer

    1020: .seealso: `PetscHSetIJDel()`, `PetscHSetIJHas()`, `PetscHSetIJQueryAdd()`
    1021: M*/

    1023: /*MC
    1024:   PetscHSetIJDel - Remove an entry from the hash set

    1026:   Synopsis:
    1027: #include <petsc/private/hashsetij.h>
    1028:   PetscErrorCode PetscHSetIJDel(PetscHSetIJ ht, struct {PetscInt i, j;} key)

    1030:   Input Parameters:
    1031: + ht  - The hash set
    1032: - key - The entry

    1034:   Level: developer

    1036: .seealso: `PetscHSetIJAdd()`, `PetscHSetIJHas()`
    1037: M*/

    1039: /*MC
    1040:   PetscHSetIJQueryAdd - Query and add an entry in the hash set

    1042:   Synopsis:
    1043: #include <petsc/private/hashsetij.h>
    1044:   PetscErrorCode PetscHSetIJQueryAdd(PetscHSetIJ ht, struct {PetscInt i, j;} key, PetscBool *missing)

    1046:   Input Parameters:
    1047: + ht  - The hash set
    1048: - key - The entry

    1050:   Output Parameter:
    1051: . missing - Boolean indicating whether the entry was missing

    1053:   Level: developer

    1055: .seealso: `PetscHSetIJQueryDel()`, `PetscHSetIJAdd()`, `PetscHSetIJHas()`
    1056: M*/

    1058: /*MC
    1059:   PetscHSetIJQueryDel - Query and remove an entry from the hash set

    1061:   Synopsis:
    1062: #include <petsc/private/hashsetij.h>
    1063:   PetscErrorCode PetscHSetIJQueryDel(PetscHSetIJ ht, struct {PetscInt i, j;} key, PetscBool *present)

    1065:   Input Parameters:
    1066: + ht  - The hash set
    1067: - key - The entry

    1069:   Output Parameter:
    1070: . present - Boolean indicating whether the entry was present

    1072:   Level: developer

    1074: .seealso: `PetscHSetIJQueryAdd()`, `PetscHSetIJDel()`
    1075: M*/

    1077: /*MC
    1078:   PetscHSetIJGetElems - Get all entries from a hash set

    1080:   Synopsis:
    1081: #include <petsc/private/hashsetij.h>
    1082:   PetscErrorCode PetscHSetIJGetElems(PetscHSetIJ ht, PetscInt *off, struct {PetscInt i, j;} array[])

    1084:   Input Parameters:
    1085: + ht    - The hash set
    1086: . off   - Input offset in array (usually zero)
    1087: - array - Array to put hash set entries in

    1089:   Output Parameters:
    1090: + off   - Output offset in array (output offset = input offset + hash set size)
    1091: - array - Array filled with the hash set entries

    1093:   Level: developer

    1095: .seealso: `PetscHSetIJGetSize()`
    1096: M*/
    1097: /* MANSEC = Sys */
    1098: /* SUBMANSEC = PetscH */

    1100: This file is processed by doc/build_man_pages.py to create manual pages
    1101: for the types and macros created by PETSC_HASH_SET(). For example, PetscHHashIJ.

    1103: /*S
    1104:   PetscHSetIJ - Hash set with a key of struct {PetscInt i, j;}

    1106:   Level: developer

    1108: .seealso: `PETSC_HASH_SET()`, `PetscHSetIJCreate()`, `PetscHSetIJDestroy()`, `PetscHSetIJQueryAdd()`, `PetscHSetIJDel()`,
    1109:           `PetscHSetIJAdd()`, `PetscHSetIJReset()`, `PETSC_HASH_MAP()`, `PetscHMapIJCreate()`,  `PetscHSetIJ`
    1110: S*/
    1111: typedef struct _PetscHashIJ PetscHSetIJ;

    1113: /*MC
    1114:   PetscHSetIJCreate - Create a hash set

    1116:   Synopsis:
    1117: #include <petsc/private/hashsetij.h>
    1118:   PetscErrorCode PetscHSetIJCreate(PetscHSetIJ *ht)

    1120:   Output Parameter:
    1121: . ht - The hash set

    1123:   Level: developer

    1125: .seealso: `PetscHSetIJDestroy()`
    1126: M*/

    1128: /*MC
    1129:   PetscHSetIJDestroy - Destroy a hash set

    1131:   Synopsis:
    1132: #include <petsc/private/hashsetij.h>
    1133:   PetscErrorCode PetscHSetIJDestroy(PetscHSetIJ *ht)

    1135:   Input Parameter:
    1136: . ht - The hash set

    1138:   Level: developer

    1140: .seealso: `PetscHSetIJCreate()`
    1141: M*/

    1143: /*MC
    1144:   PetscHSetIJReset - Reset a hash set

    1146:   Synopsis:
    1147: #include <petsc/private/hashsetij.h>
    1148:   PetscErrorCode PetscHSetIJReset(PetscHSetIJ ht)

    1150:   Input Parameter:
    1151: . ht - The hash set

    1153:   Level: developer

    1155: .seealso: `PetscHSetIJClear()`
    1156: M*/

    1158: /*MC
    1159:   PetscHSetIJDuplicate - Duplicate a hash set

    1161:   Synopsis:
    1162: #include <petsc/private/hashsetij.h>
    1163:   PetscErrorCode PetscHSetIJDuplicate(PetscHSetIJ ht,PetscHSetIJ *hd)

    1165:   Input Parameter:
    1166: . ht - The source hash set

    1168:   Output Parameter:
    1169: . ht - The duplicated hash set

    1171:   Level: developer

    1173: .seealso: `PetscHSetIJCreate()`
    1174: M*/

    1176: /*MC
    1177:   PetscHSetIJUpdate - Add entries from a has set to another

    1179:   Synopsis:
    1180: #include <petsc/private/hashsetij.h>
    1181:   PetscErrorCode PetscHSetIJUpdate(PetscHSetIJ ht,PetscHSetIJ hda)

    1183:   Input Parameters:
    1184: + ht - The hash set to which elements are added
    1185: - hta - The hash set from which the elements are retrieved

    1187:   Output Parameter:
    1188: . ht - The hash set filled with the elements from the other hash set

    1190:   Level: developer

    1192: .seealso: `PetscHSetIJCreate()`, `PetscHSetIJDuplicate()`
    1193: M*/

    1195: /*MC
    1196:   PetscHSetIJClear - Clear a hash set

    1198:   Synopsis:
    1199: #include <petsc/private/hashsetij.h>
    1200:   PetscErrorCode PetscHSetIJClear(PetscHSetIJ ht)

    1202:   Input Parameter:
    1203: . ht - The hash set

    1205:   Level: developer

    1207: .seealso: `PetscHSetIJReset()`
    1208: M*/

    1210: /*MC
    1211:   PetscHSetIJResize - Set the number of buckets in a hash set

    1213:   Synopsis:
    1214: #include <petsc/private/hashsetij.h>
    1215:   PetscErrorCode PetscHSetIJResize(PetscHSetIJ ht,PetscInt nb)

    1217:   Input Parameters:
    1218: + ht - The hash set
    1219: - nb - The number of buckets

    1221:   Level: developer

    1223: .seealso: `PetscHSetIJCreate()`
    1224: M*/

    1226: /*MC
    1227:   PetscHSetIJGetSize - Get the number of entries in a hash set

    1229:   Synopsis:
    1230: #include <petsc/private/hashsetij.h>
    1231:   PetscErrorCode PetscHSetIJGetSize(PetscHSetIJ ht,PetscInt *n)

    1233:   Input Parameter:
    1234: . ht - The hash set

    1236:   Output Parameter:
    1237: . n - The number of entries

    1239:   Level: developer

    1241: .seealso: `PetscHSetIJResize()`
    1242: M*/

    1244: /*MC
    1245:   PetscHSetIJGetCapacity - Get the current size of the array in the hash set

    1247:   Synopsis:
    1248: #include <petsc/private/hashsetij.h>
    1249:   PetscErrorCode PetscHSetIJGetCapacity(PetscHSetIJ ht,PetscInt *n)

    1251:   Input Parameter:
    1252: . ht - The hash set

    1254:   Output Parameter:
    1255: . n - The capacity

    1257:   Level: developer

    1259: .seealso: `PetscHSetIJResize()`, `PetscHSetIJGetSize()`
    1260: M*/

    1262: /*MC
    1263:   PetscHSetIJHas - Query for an entry in the hash set

    1265:   Synopsis:
    1266: #include <petsc/private/hashsetij.h>
    1267:   PetscErrorCode PetscHSetIJHas(PetscHSetIJ ht, struct {PetscInt i, j;} key, PetscBool *has)

    1269:   Input Parameters:
    1270: + ht  - The hash set
    1271: - key - The entry

    1273:   Output Parameter:
    1274: . has - Boolean indicating whether the entry is in the hash set

    1276:   Level: developer

    1278: .seealso: `PetscHSetIJAdd()`, `PetscHSetIJDel()`, `PetscHSetIJQueryAdd()`
    1279: M*/

    1281: /*MC
    1282:   PetscHSetIJAdd - Set an entry in the hash set

    1284:   Synopsis:
    1285: #include <petsc/private/hashsetij.h>
    1286:   PetscErrorCode PetscHSetIJAdd(PetscHSetIJ ht, struct {PetscInt i, j;} key)

    1288:   Input Parameters:
    1289: + ht  - The hash set
    1290: - key - The entry

    1292:   Level: developer

    1294: .seealso: `PetscHSetIJDel()`, `PetscHSetIJHas()`, `PetscHSetIJQueryAdd()`
    1295: M*/

    1297: /*MC
    1298:   PetscHSetIJDel - Remove an entry from the hash set

    1300:   Synopsis:
    1301: #include <petsc/private/hashsetij.h>
    1302:   PetscErrorCode PetscHSetIJDel(PetscHSetIJ ht, struct {PetscInt i, j;} key)

    1304:   Input Parameters:
    1305: + ht  - The hash set
    1306: - key - The entry

    1308:   Level: developer

    1310: .seealso: `PetscHSetIJAdd()`, `PetscHSetIJHas()`
    1311: M*/

    1313: /*MC
    1314:   PetscHSetIJQueryAdd - Query and add an entry in the hash set

    1316:   Synopsis:
    1317: #include <petsc/private/hashsetij.h>
    1318:   PetscErrorCode PetscHSetIJQueryAdd(PetscHSetIJ ht, struct {PetscInt i, j;} key, PetscBool *missing)

    1320:   Input Parameters:
    1321: + ht  - The hash set
    1322: - key - The entry

    1324:   Output Parameter:
    1325: . missing - Boolean indicating whether the entry was missing

    1327:   Level: developer

    1329: .seealso: `PetscHSetIJQueryDel()`, `PetscHSetIJAdd()`, `PetscHSetIJHas()`
    1330: M*/

    1332: /*MC
    1333:   PetscHSetIJQueryDel - Query and remove an entry from the hash set

    1335:   Synopsis:
    1336: #include <petsc/private/hashsetij.h>
    1337:   PetscErrorCode PetscHSetIJQueryDel(PetscHSetIJ ht, struct {PetscInt i, j;} key, PetscBool *present)

    1339:   Input Parameters:
    1340: + ht  - The hash set
    1341: - key - The entry

    1343:   Output Parameter:
    1344: . present - Boolean indicating whether the entry was present

    1346:   Level: developer

    1348: .seealso: `PetscHSetIJQueryAdd()`, `PetscHSetIJDel()`
    1349: M*/

    1351: /*MC
    1352:   PetscHSetIJGetElems - Get all entries from a hash set

    1354:   Synopsis:
    1355: #include <petsc/private/hashsetij.h>
    1356:   PetscErrorCode PetscHSetIJGetElems(PetscHSetIJ ht, PetscInt *off, struct {PetscInt i, j;} array[])

    1358:   Input Parameters:
    1359: + ht    - The hash set
    1360: . off   - Input offset in array (usually zero)
    1361: - array - Array to put hash set entries in

    1363:   Output Parameters:
    1364: + off   - Output offset in array (output offset = input offset + hash set size)
    1365: - array - Array filled with the hash set entries

    1367:   Level: developer

    1369: .seealso: `PetscHSetIJGetSize()`
    1370: M*/
    1371: /* MANSEC = Sys */
    1372: /* SUBMANSEC = PetscH */

    1374: This file is processed by doc/build_man_pages.py to create manual pages
    1375: for the types and macros created by PETSC_HASH_SET(). For example, PetscHHashIJ.

    1377: /*S
    1378:   PetscHSetIV - Hash set with a key of PetscInt

    1380:   Level: developer

    1382: .seealso: `PETSC_HASH_SET()`, `PetscHSetIVCreate()`, `PetscHSetIVDestroy()`, `PetscHSetIVQueryAdd()`, `PetscHSetIVDel()`,
    1383:           `PetscHSetIVAdd()`, `PetscHSetIVReset()`, `PETSC_HASH_MAP()`, `PetscHMapIVCreate()`,  `PetscHSetIV`
    1384: S*/
    1385: typedef struct _PetscHashIV PetscHSetIV;

    1387: /*MC
    1388:   PetscHSetIVCreate - Create a hash set

    1390:   Synopsis:
    1391:   #include <petsc/private/hashsetiv.h>
    1392:   PetscErrorCode PetscHSetIVCreate(PetscHSetIV *ht)

    1394:   Output Parameter:
    1395: . ht - The hash set

    1397:   Level: developer

    1399: .seealso: `PetscHSetIVDestroy()`
    1400: M*/

    1402: /*MC
    1403:   PetscHSetIVDestroy - Destroy a hash set

    1405:   Synopsis:
    1406:   #include <petsc/private/hashsetiv.h>
    1407:   PetscErrorCode PetscHSetIVDestroy(PetscHSetIV *ht)

    1409:   Input Parameter:
    1410: . ht - The hash set

    1412:   Level: developer

    1414: .seealso: `PetscHSetIVCreate()`
    1415: M*/

    1417: /*MC
    1418:   PetscHSetIVReset - Reset a hash set

    1420:   Synopsis:
    1421:   #include <petsc/private/hashsetiv.h>
    1422:   PetscErrorCode PetscHSetIVReset(PetscHSetIV ht)

    1424:   Input Parameter:
    1425: . ht - The hash set

    1427:   Level: developer

    1429: .seealso: `PetscHSetIVClear()`
    1430: M*/

    1432: /*MC
    1433:   PetscHSetIVDuplicate - Duplicate a hash set

    1435:   Synopsis:
    1436:   #include <petsc/private/hashsetiv.h>
    1437:   PetscErrorCode PetscHSetIVDuplicate(PetscHSetIV ht,PetscHSetIV *hd)

    1439:   Input Parameter:
    1440: . ht - The source hash set

    1442:   Output Parameter:
    1443: . ht - The duplicated hash set

    1445:   Level: developer

    1447: .seealso: `PetscHSetIVCreate()`
    1448: M*/

    1450: /*MC
    1451:   PetscHSetIVUpdate - Add entries from a has set to another

    1453:   Synopsis:
    1454:   #include <petsc/private/hashsetiv.h>
    1455:   PetscErrorCode PetscHSetIVUpdate(PetscHSetIV ht,PetscHSetIV hda)

    1457:   Input Parameters:
    1458: + ht - The hash set to which elements are added
    1459: - hta - The hash set from which the elements are retrieved

    1461:   Output Parameter:
    1462: . ht - The hash set filled with the elements from the other hash set

    1464:   Level: developer

    1466: .seealso: `PetscHSetIVCreate()`, `PetscHSetIVDuplicate()`
    1467: M*/

    1469: /*MC
    1470:   PetscHSetIVClear - Clear a hash set

    1472:   Synopsis:
    1473:   #include <petsc/private/hashsetiv.h>
    1474:   PetscErrorCode PetscHSetIVClear(PetscHSetIV ht)

    1476:   Input Parameter:
    1477: . ht - The hash set

    1479:   Level: developer

    1481: .seealso: `PetscHSetIVReset()`
    1482: M*/

    1484: /*MC
    1485:   PetscHSetIVResize - Set the number of buckets in a hash set

    1487:   Synopsis:
    1488:   #include <petsc/private/hashsetiv.h>
    1489:   PetscErrorCode PetscHSetIVResize(PetscHSetIV ht,PetscInt nb)

    1491:   Input Parameters:
    1492: + ht - The hash set
    1493: - nb - The number of buckets

    1495:   Level: developer

    1497: .seealso: `PetscHSetIVCreate()`
    1498: M*/

    1500: /*MC
    1501:   PetscHSetIVGetSize - Get the number of entries in a hash set

    1503:   Synopsis:
    1504:   #include <petsc/private/hashsetiv.h>
    1505:   PetscErrorCode PetscHSetIVGetSize(PetscHSetIV ht,PetscInt *n)

    1507:   Input Parameter:
    1508: . ht - The hash set

    1510:   Output Parameter:
    1511: . n - The number of entries

    1513:   Level: developer

    1515: .seealso: `PetscHSetIVResize()`
    1516: M*/

    1518: /*MC
    1519:   PetscHSetIVGetCapacity - Get the current size of the array in the hash set

    1521:   Synopsis:
    1522:   #include <petsc/private/hashsetiv.h>
    1523:   PetscErrorCode PetscHSetIVGetCapacity(PetscHSetIV ht,PetscInt *n)

    1525:   Input Parameter:
    1526: . ht - The hash set

    1528:   Output Parameter:
    1529: . n - The capacity

    1531:   Level: developer

    1533: .seealso: `PetscHSetIVResize()`, `PetscHSetIVGetSize()`
    1534: M*/

    1536: /*MC
    1537:   PetscHSetIVHas - Query for an entry in the hash set

    1539:   Synopsis:
    1540:   #include <petsc/private/hashsetiv.h>
    1541:   PetscErrorCode PetscHSetIVHas(PetscHSetIV ht, PetscInt key, PetscBool *has)

    1543:   Input Parameters:
    1544: + ht  - The hash set
    1545: - key - The entry

    1547:   Output Parameter:
    1548: . has - Boolean indicating whether the entry is in the hash set

    1550:   Level: developer

    1552: .seealso: `PetscHSetIVAdd()`, `PetscHSetIVDel()`, `PetscHSetIVQueryAdd()`
    1553: M*/

    1555: /*MC
    1556:   PetscHSetIVAdd - Set an entry in the hash set

    1558:   Synopsis:
    1559:   #include <petsc/private/hashsetiv.h>
    1560:   PetscErrorCode PetscHSetIVAdd(PetscHSetIV ht, PetscInt key)

    1562:   Input Parameters:
    1563: + ht  - The hash set
    1564: - key - The entry

    1566:   Level: developer

    1568: .seealso: `PetscHSetIVDel()`, `PetscHSetIVHas()`, `PetscHSetIVQueryAdd()`
    1569: M*/

    1571: /*MC
    1572:   PetscHSetIVDel - Remove an entry from the hash set

    1574:   Synopsis:
    1575:   #include <petsc/private/hashsetiv.h>
    1576:   PetscErrorCode PetscHSetIVDel(PetscHSetIV ht, PetscInt key)

    1578:   Input Parameters:
    1579: + ht  - The hash set
    1580: - key - The entry

    1582:   Level: developer

    1584: .seealso: `PetscHSetIVAdd()`, `PetscHSetIVHas()`
    1585: M*/

    1587: /*MC
    1588:   PetscHSetIVQueryAdd - Query and add an entry in the hash set

    1590:   Synopsis:
    1591:   #include <petsc/private/hashsetiv.h>
    1592:   PetscErrorCode PetscHSetIVQueryAdd(PetscHSetIV ht, PetscInt key, PetscBool *missing)

    1594:   Input Parameters:
    1595: + ht  - The hash set
    1596: - key - The entry

    1598:   Output Parameter:
    1599: . missing - Boolean indicating whether the entry was missing

    1601:   Level: developer

    1603: .seealso: `PetscHSetIVQueryDel()`, `PetscHSetIVAdd()`, `PetscHSetIVHas()`
    1604: M*/

    1606: /*MC
    1607:   PetscHSetIVQueryDel - Query and remove an entry from the hash set

    1609:   Synopsis:
    1610:   #include <petsc/private/hashsetiv.h>
    1611:   PetscErrorCode PetscHSetIVQueryDel(PetscHSetIV ht, PetscInt key, PetscBool *present)

    1613:   Input Parameters:
    1614: + ht  - The hash set
    1615: - key - The entry

    1617:   Output Parameter:
    1618: . present - Boolean indicating whether the entry was present

    1620:   Level: developer

    1622: .seealso: `PetscHSetIVQueryAdd()`, `PetscHSetIVDel()`
    1623: M*/

    1625: /*MC
    1626:   PetscHSetIVGetElems - Get all entries from a hash set

    1628:   Synopsis:
    1629:   #include <petsc/private/hashsetiv.h>
    1630:   PetscErrorCode PetscHSetIVGetElems(PetscHSetIV ht, PetscInt *off, PetscInt array[])

    1632:   Input Parameters:
    1633: + ht    - The hash set
    1634: . off   - Input offset in array (usually zero)
    1635: - array - Array to put hash set entries in

    1637:   Output Parameters:
    1638: + off   - Output offset in array (output offset = input offset + hash set size)
    1639: - array - Array filled with the hash set entries

    1641:   Level: developer

    1643: .seealso: `PetscHSetIVGetSize()`
    1644: M*/
    1645: /* MANSEC = Sys */
    1646: /* SUBMANSEC = PetscH */

    1648: This file is processed by doc/build_man_pages.py to create manual pages
    1649: for the types and macros created by PETSC_HASH_SET(). For example, PetscHHashIJ.

    1651: /*S
    1652:   PetscHSetObj - Hash set with a key of PetscInt64

    1654:   Level: developer

    1656: .seealso: `PETSC_HASH_SET()`, `PetscHSetObjCreate()`, `PetscHSetObjDestroy()`, `PetscHSetObjQueryAdd()`, `PetscHSetObjDel()`,
    1657:           `PetscHSetObjAdd()`, `PetscHSetObjReset()`, `PETSC_HASH_MAP()`, `PetscHMapObjCreate()`,  `PetscHSetObj`
    1658: S*/
    1659: typedef struct _PetscHashObj PetscHSetObj;

    1661: /*MC
    1662:   PetscHSetObjCreate - Create a hash set

    1664:   Synopsis:
    1665:   #include <petsc/private/hashsetobj.h>
    1666:   PetscErrorCode PetscHSetObjCreate(PetscHSetObj *ht)

    1668:   Output Parameter:
    1669: . ht - The hash set

    1671:   Level: developer

    1673: .seealso: `PetscHSetObjDestroy()`
    1674: M*/

    1676: /*MC
    1677:   PetscHSetObjDestroy - Destroy a hash set

    1679:   Synopsis:
    1680:   #include <petsc/private/hashsetobj.h>
    1681:   PetscErrorCode PetscHSetObjDestroy(PetscHSetObj *ht)

    1683:   Input Parameter:
    1684: . ht - The hash set

    1686:   Level: developer

    1688: .seealso: `PetscHSetObjCreate()`
    1689: M*/

    1691: /*MC
    1692:   PetscHSetObjReset - Reset a hash set

    1694:   Synopsis:
    1695:   #include <petsc/private/hashsetobj.h>
    1696:   PetscErrorCode PetscHSetObjReset(PetscHSetObj ht)

    1698:   Input Parameter:
    1699: . ht - The hash set

    1701:   Level: developer

    1703: .seealso: `PetscHSetObjClear()`
    1704: M*/

    1706: /*MC
    1707:   PetscHSetObjDuplicate - Duplicate a hash set

    1709:   Synopsis:
    1710:   #include <petsc/private/hashsetobj.h>
    1711:   PetscErrorCode PetscHSetObjDuplicate(PetscHSetObj ht,PetscHSetObj *hd)

    1713:   Input Parameter:
    1714: . ht - The source hash set

    1716:   Output Parameter:
    1717: . ht - The duplicated hash set

    1719:   Level: developer

    1721: .seealso: `PetscHSetObjCreate()`
    1722: M*/

    1724: /*MC
    1725:   PetscHSetObjUpdate - Add entries from a has set to another

    1727:   Synopsis:
    1728:   #include <petsc/private/hashsetobj.h>
    1729:   PetscErrorCode PetscHSetObjUpdate(PetscHSetObj ht,PetscHSetObj hda)

    1731:   Input Parameters:
    1732: + ht - The hash set to which elements are added
    1733: - hta - The hash set from which the elements are retrieved

    1735:   Output Parameter:
    1736: . ht - The hash set filled with the elements from the other hash set

    1738:   Level: developer

    1740: .seealso: `PetscHSetObjCreate()`, `PetscHSetObjDuplicate()`
    1741: M*/

    1743: /*MC
    1744:   PetscHSetObjClear - Clear a hash set

    1746:   Synopsis:
    1747:   #include <petsc/private/hashsetobj.h>
    1748:   PetscErrorCode PetscHSetObjClear(PetscHSetObj ht)

    1750:   Input Parameter:
    1751: . ht - The hash set

    1753:   Level: developer

    1755: .seealso: `PetscHSetObjReset()`
    1756: M*/

    1758: /*MC
    1759:   PetscHSetObjResize - Set the number of buckets in a hash set

    1761:   Synopsis:
    1762:   #include <petsc/private/hashsetobj.h>
    1763:   PetscErrorCode PetscHSetObjResize(PetscHSetObj ht,PetscInt nb)

    1765:   Input Parameters:
    1766: + ht - The hash set
    1767: - nb - The number of buckets

    1769:   Level: developer

    1771: .seealso: `PetscHSetObjCreate()`
    1772: M*/

    1774: /*MC
    1775:   PetscHSetObjGetSize - Get the number of entries in a hash set

    1777:   Synopsis:
    1778:   #include <petsc/private/hashsetobj.h>
    1779:   PetscErrorCode PetscHSetObjGetSize(PetscHSetObj ht,PetscInt *n)

    1781:   Input Parameter:
    1782: . ht - The hash set

    1784:   Output Parameter:
    1785: . n - The number of entries

    1787:   Level: developer

    1789: .seealso: `PetscHSetObjResize()`
    1790: M*/

    1792: /*MC
    1793:   PetscHSetObjGetCapacity - Get the current size of the array in the hash set

    1795:   Synopsis:
    1796:   #include <petsc/private/hashsetobj.h>
    1797:   PetscErrorCode PetscHSetObjGetCapacity(PetscHSetObj ht,PetscInt *n)

    1799:   Input Parameter:
    1800: . ht - The hash set

    1802:   Output Parameter:
    1803: . n - The capacity

    1805:   Level: developer

    1807: .seealso: `PetscHSetObjResize()`, `PetscHSetObjGetSize()`
    1808: M*/

    1810: /*MC
    1811:   PetscHSetObjHas - Query for an entry in the hash set

    1813:   Synopsis:
    1814:   #include <petsc/private/hashsetobj.h>
    1815:   PetscErrorCode PetscHSetObjHas(PetscHSetObj ht, PetscInt64 key, PetscBool *has)

    1817:   Input Parameters:
    1818: + ht  - The hash set
    1819: - key - The entry

    1821:   Output Parameter:
    1822: . has - Boolean indicating whether the entry is in the hash set

    1824:   Level: developer

    1826: .seealso: `PetscHSetObjAdd()`, `PetscHSetObjDel()`, `PetscHSetObjQueryAdd()`
    1827: M*/

    1829: /*MC
    1830:   PetscHSetObjAdd - Set an entry in the hash set

    1832:   Synopsis:
    1833:   #include <petsc/private/hashsetobj.h>
    1834:   PetscErrorCode PetscHSetObjAdd(PetscHSetObj ht, PetscInt64 key)

    1836:   Input Parameters:
    1837: + ht  - The hash set
    1838: - key - The entry

    1840:   Level: developer

    1842: .seealso: `PetscHSetObjDel()`, `PetscHSetObjHas()`, `PetscHSetObjQueryAdd()`
    1843: M*/

    1845: /*MC
    1846:   PetscHSetObjDel - Remove an entry from the hash set

    1848:   Synopsis:
    1849:   #include <petsc/private/hashsetobj.h>
    1850:   PetscErrorCode PetscHSetObjDel(PetscHSetObj ht, PetscInt64 key)

    1852:   Input Parameters:
    1853: + ht  - The hash set
    1854: - key - The entry

    1856:   Level: developer

    1858: .seealso: `PetscHSetObjAdd()`, `PetscHSetObjHas()`
    1859: M*/

    1861: /*MC
    1862:   PetscHSetObjQueryAdd - Query and add an entry in the hash set

    1864:   Synopsis:
    1865:   #include <petsc/private/hashsetobj.h>
    1866:   PetscErrorCode PetscHSetObjQueryAdd(PetscHSetObj ht, PetscInt64 key, PetscBool *missing)

    1868:   Input Parameters:
    1869: + ht  - The hash set
    1870: - key - The entry

    1872:   Output Parameter:
    1873: . missing - Boolean indicating whether the entry was missing

    1875:   Level: developer

    1877: .seealso: `PetscHSetObjQueryDel()`, `PetscHSetObjAdd()`, `PetscHSetObjHas()`
    1878: M*/

    1880: /*MC
    1881:   PetscHSetObjQueryDel - Query and remove an entry from the hash set

    1883:   Synopsis:
    1884:   #include <petsc/private/hashsetobj.h>
    1885:   PetscErrorCode PetscHSetObjQueryDel(PetscHSetObj ht, PetscInt64 key, PetscBool *present)

    1887:   Input Parameters:
    1888: + ht  - The hash set
    1889: - key - The entry

    1891:   Output Parameter:
    1892: . present - Boolean indicating whether the entry was present

    1894:   Level: developer

    1896: .seealso: `PetscHSetObjQueryAdd()`, `PetscHSetObjDel()`
    1897: M*/

    1899: /*MC
    1900:   PetscHSetObjGetElems - Get all entries from a hash set

    1902:   Synopsis:
    1903:   #include <petsc/private/hashsetobj.h>
    1904:   PetscErrorCode PetscHSetObjGetElems(PetscHSetObj ht, PetscInt *off, PetscInt64 array[])

    1906:   Input Parameters:
    1907: + ht    - The hash set
    1908: . off   - Input offset in array (usually zero)
    1909: - array - Array to put hash set entries in

    1911:   Output Parameters:
    1912: + off   - Output offset in array (output offset = input offset + hash set size)
    1913: - array - Array filled with the hash set entries

    1915:   Level: developer

    1917: .seealso: `PetscHSetObjGetSize()`
    1918: M*/