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*/