Actual source code: hashset.txt.h

  1: /* SUBMANSEC = PetscH */

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

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

  9:   Level: developer

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

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

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

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

 26:   Level: developer

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

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

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

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

 41:   Level: developer

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

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

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

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

 56:   Level: developer

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

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

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

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

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

 74:   Level: developer

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

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

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

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

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

 93:   Level: developer

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

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

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

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

108:   Level: developer

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

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

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

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

124:   Level: developer

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

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

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

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

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

142:   Level: developer

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

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

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

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

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

160:   Level: developer

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

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

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

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

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

179:   Level: developer

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

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

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

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

195:   Level: developer

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

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

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

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

211:   Level: developer

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

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

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

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

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

230:   Level: developer

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

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

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

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

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

249:   Level: developer

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

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

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

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

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

270:   Level: developer

272: .seealso: `PetscHSetIGetSize()`
273: M*/
274: /* SUBMANSEC = PetscH */

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

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

282:   Level: developer

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

289: /*MC
290:   PetscHSetIJCreate - Create a hash set

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

296:   Output Parameter:
297: . ht - The hash set

299:   Level: developer

301: .seealso: `PetscHSetIJDestroy()`
302: M*/

304: /*MC
305:   PetscHSetIJDestroy - Destroy a hash set

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

311:   Input Parameter:
312: . ht - The hash set

314:   Level: developer

316: .seealso: `PetscHSetIJCreate()`
317: M*/

319: /*MC
320:   PetscHSetIJReset - Reset a hash set

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

326:   Input Parameter:
327: . ht - The hash set

329:   Level: developer

331: .seealso: `PetscHSetIJClear()`
332: M*/

334: /*MC
335:   PetscHSetIJDuplicate - Duplicate a hash set

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

341:   Input Parameter:
342: . ht - The source hash set

344:   Output Parameter:
345: . ht - The duplicated hash set

347:   Level: developer

349: .seealso: `PetscHSetIJCreate()`
350: M*/

352: /*MC
353:   PetscHSetIJUpdate - Add entries from a has set to another

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

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

363:   Output Parameter:
364: . ht - The hash set filled with the elements from the other hash set

366:   Level: developer

368: .seealso: `PetscHSetIJCreate()`, `PetscHSetIJDuplicate()`
369: M*/

371: /*MC
372:   PetscHSetIJClear - Clear a hash set

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

378:   Input Parameter:
379: . ht - The hash set

381:   Level: developer

383: .seealso: `PetscHSetIJReset()`
384: M*/

386: /*MC
387:   PetscHSetIJResize - Set the number of buckets in a hash set

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

393:   Input Parameters:
394: + ht - The hash set
395: - nb - The number of buckets

397:   Level: developer

399: .seealso: `PetscHSetIJCreate()`
400: M*/

402: /*MC
403:   PetscHSetIJGetSize - Get the number of entries in a hash set

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

409:   Input Parameter:
410: . ht - The hash set

412:   Output Parameter:
413: . n - The number of entries

415:   Level: developer

417: .seealso: `PetscHSetIJResize()`
418: M*/

420: /*MC
421:   PetscHSetIJGetCapacity - Get the current size of the array in the hash set

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

427:   Input Parameter:
428: . ht - The hash set

430:   Output Parameter:
431: . n - The capacity

433:   Level: developer

435: .seealso: `PetscHSetIJResize()`, `PetscHSetIJGetSize()`
436: M*/

438: /*MC
439:   PetscHSetIJHas - Query for an entry in the hash set

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

445:   Input Parameters:
446: + ht  - The hash set
447: - key - The entry

449:   Output Parameter:
450: . has - Boolean indicating whether the entry is in the hash set

452:   Level: developer

454: .seealso: `PetscHSetIJAdd()`, `PetscHSetIJDel()`, `PetscHSetIJQueryAdd()`
455: M*/

457: /*MC
458:   PetscHSetIJAdd - Set an entry in the hash set

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

464:   Input Parameters:
465: + ht  - The hash set
466: - key - The entry

468:   Level: developer

470: .seealso: `PetscHSetIJDel()`, `PetscHSetIJHas()`, `PetscHSetIJQueryAdd()`
471: M*/

473: /*MC
474:   PetscHSetIJDel - Remove an entry from the hash set

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

480:   Input Parameters:
481: + ht  - The hash set
482: - key - The entry

484:   Level: developer

486: .seealso: `PetscHSetIJAdd()`, `PetscHSetIJHas()`
487: M*/

489: /*MC
490:   PetscHSetIJQueryAdd - Query and add an entry in the hash set

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

496:   Input Parameters:
497: + ht  - The hash set
498: - key - The entry

500:   Output Parameter:
501: . missing - Boolean indicating whether the entry was missing

503:   Level: developer

505: .seealso: `PetscHSetIJQueryDel()`, `PetscHSetIJAdd()`, `PetscHSetIJHas()`
506: M*/

508: /*MC
509:   PetscHSetIJQueryDel - Query and remove an entry from the hash set

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

515:   Input Parameters:
516: + ht  - The hash set
517: - key - The entry

519:   Output Parameter:
520: . present - Boolean indicating whether the entry was present

522:   Level: developer

524: .seealso: `PetscHSetIJQueryAdd()`, `PetscHSetIJDel()`
525: M*/

527: /*MC
528:   PetscHSetIJGetElems - Get all entries from a hash set

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

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

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

543:   Level: developer

545: .seealso: `PetscHSetIJGetSize()`
546: M*/
547: /* SUBMANSEC = PetscH */

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

552: /*S
553:   PetscHSetI - Hash set with a key of PetscInt

555:   Level: developer

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

562: /*MC
563:   PetscHSetICreate - Create a hash set

565:   Synopsis:
566: #include <petsc/private/hashseti.h>
567:   PetscErrorCode PetscHSetICreate(PetscHSetI *ht)

569:   Output Parameter:
570: . ht - The hash set

572:   Level: developer

574: .seealso: `PetscHSetIDestroy()`
575: M*/

577: /*MC
578:   PetscHSetIDestroy - Destroy a hash set

580:   Synopsis:
581: #include <petsc/private/hashseti.h>
582:   PetscErrorCode PetscHSetIDestroy(PetscHSetI *ht)

584:   Input Parameter:
585: . ht - The hash set

587:   Level: developer

589: .seealso: `PetscHSetICreate()`
590: M*/

592: /*MC
593:   PetscHSetIReset - Reset a hash set

595:   Synopsis:
596: #include <petsc/private/hashseti.h>
597:   PetscErrorCode PetscHSetIReset(PetscHSetI ht)

599:   Input Parameter:
600: . ht - The hash set

602:   Level: developer

604: .seealso: `PetscHSetIClear()`
605: M*/

607: /*MC
608:   PetscHSetIDuplicate - Duplicate a hash set

610:   Synopsis:
611: #include <petsc/private/hashseti.h>
612:   PetscErrorCode PetscHSetIDuplicate(PetscHSetI ht,PetscHSetI *hd)

614:   Input Parameter:
615: . ht - The source hash set

617:   Output Parameter:
618: . ht - The duplicated hash set

620:   Level: developer

622: .seealso: `PetscHSetICreate()`
623: M*/

625: /*MC
626:   PetscHSetIUpdate - Add entries from a has set to another

628:   Synopsis:
629: #include <petsc/private/hashseti.h>
630:   PetscErrorCode PetscHSetIUpdate(PetscHSetI ht,PetscHSetI hda)

632:   Input Parameters:
633: + ht - The hash set to which elements are added
634: - hta - The hash set from which the elements are retrieved

636:   Output Parameter:
637: . ht - The hash set filled with the elements from the other hash set

639:   Level: developer

641: .seealso: `PetscHSetICreate()`, `PetscHSetIDuplicate()`
642: M*/

644: /*MC
645:   PetscHSetIClear - Clear a hash set

647:   Synopsis:
648: #include <petsc/private/hashseti.h>
649:   PetscErrorCode PetscHSetIClear(PetscHSetI ht)

651:   Input Parameter:
652: . ht - The hash set

654:   Level: developer

656: .seealso: `PetscHSetIReset()`
657: M*/

659: /*MC
660:   PetscHSetIResize - Set the number of buckets in a hash set

662:   Synopsis:
663: #include <petsc/private/hashseti.h>
664:   PetscErrorCode PetscHSetIResize(PetscHSetI ht,PetscInt nb)

666:   Input Parameters:
667: + ht - The hash set
668: - nb - The number of buckets

670:   Level: developer

672: .seealso: `PetscHSetICreate()`
673: M*/

675: /*MC
676:   PetscHSetIGetSize - Get the number of entries in a hash set

678:   Synopsis:
679: #include <petsc/private/hashseti.h>
680:   PetscErrorCode PetscHSetIGetSize(PetscHSetI ht,PetscInt *n)

682:   Input Parameter:
683: . ht - The hash set

685:   Output Parameter:
686: . n - The number of entries

688:   Level: developer

690: .seealso: `PetscHSetIResize()`
691: M*/

693: /*MC
694:   PetscHSetIGetCapacity - Get the current size of the array in the hash set

696:   Synopsis:
697: #include <petsc/private/hashseti.h>
698:   PetscErrorCode PetscHSetIGetCapacity(PetscHSetI ht,PetscInt *n)

700:   Input Parameter:
701: . ht - The hash set

703:   Output Parameter:
704: . n - The capacity

706:   Level: developer

708: .seealso: `PetscHSetIResize()`, `PetscHSetIGetSize()`
709: M*/

711: /*MC
712:   PetscHSetIHas - Query for an entry in the hash set

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

718:   Input Parameters:
719: + ht  - The hash set
720: - key - The entry

722:   Output Parameter:
723: . has - Boolean indicating whether the entry is in the hash set

725:   Level: developer

727: .seealso: `PetscHSetIAdd()`, `PetscHSetIDel()`, `PetscHSetIQueryAdd()`
728: M*/

730: /*MC
731:   PetscHSetIAdd - Set an entry in the hash set

733:   Synopsis:
734: #include <petsc/private/hashseti.h>
735:   PetscErrorCode PetscHSetIAdd(PetscHSetI ht, PetscInt key)

737:   Input Parameters:
738: + ht  - The hash set
739: - key - The entry

741:   Level: developer

743: .seealso: `PetscHSetIDel()`, `PetscHSetIHas()`, `PetscHSetIQueryAdd()`
744: M*/

746: /*MC
747:   PetscHSetIDel - Remove an entry from the hash set

749:   Synopsis:
750: #include <petsc/private/hashseti.h>
751:   PetscErrorCode PetscHSetIDel(PetscHSetI ht, PetscInt key)

753:   Input Parameters:
754: + ht  - The hash set
755: - key - The entry

757:   Level: developer

759: .seealso: `PetscHSetIAdd()`, `PetscHSetIHas()`
760: M*/

762: /*MC
763:   PetscHSetIQueryAdd - Query and add an entry in the hash set

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

769:   Input Parameters:
770: + ht  - The hash set
771: - key - The entry

773:   Output Parameter:
774: . missing - Boolean indicating whether the entry was missing

776:   Level: developer

778: .seealso: `PetscHSetIQueryDel()`, `PetscHSetIAdd()`, `PetscHSetIHas()`
779: M*/

781: /*MC
782:   PetscHSetIQueryDel - Query and remove an entry from the hash set

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

788:   Input Parameters:
789: + ht  - The hash set
790: - key - The entry

792:   Output Parameter:
793: . present - Boolean indicating whether the entry was present

795:   Level: developer

797: .seealso: `PetscHSetIQueryAdd()`, `PetscHSetIDel()`
798: M*/

800: /*MC
801:   PetscHSetIGetElems - Get all entries from a hash set

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

807:   Input Parameters:
808: + ht    - The hash set
809: . off   - Input offset in array (usually zero)
810: - array - Array to put hash set entries in

812:   Output Parameters:
813: + off   - Output offset in array (output offset = input offset + hash set size)
814: - array - Array filled with the hash set entries

816:   Level: developer

818: .seealso: `PetscHSetIGetSize()`
819: M*/
820: /* SUBMANSEC = PetscH */

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

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

828:   Level: developer

830: .seealso: `PETSC_HASH_SET()`, `PetscHSetIJCreate()`, `PetscHSetIJDestroy()`, `PetscHSetIJQueryAdd()`, `PetscHSetIJDel()`,
831:           `PetscHSetIJAdd()`, `PetscHSetIJReset()`, `PETSC_HASH_MAP()`, `PetscHMapIJCreate()`,  `PetscHSetIJ`
832: S*/
833: typedef struct _PetscHashIJ PetscHSetIJ;

835: /*MC
836:   PetscHSetIJCreate - Create a hash set

838:   Synopsis:
839: #include <petsc/private/hashsetij.h>
840:   PetscErrorCode PetscHSetIJCreate(PetscHSetIJ *ht)

842:   Output Parameter:
843: . ht - The hash set

845:   Level: developer

847: .seealso: `PetscHSetIJDestroy()`
848: M*/

850: /*MC
851:   PetscHSetIJDestroy - Destroy a hash set

853:   Synopsis:
854: #include <petsc/private/hashsetij.h>
855:   PetscErrorCode PetscHSetIJDestroy(PetscHSetIJ *ht)

857:   Input Parameter:
858: . ht - The hash set

860:   Level: developer

862: .seealso: `PetscHSetIJCreate()`
863: M*/

865: /*MC
866:   PetscHSetIJReset - Reset a hash set

868:   Synopsis:
869: #include <petsc/private/hashsetij.h>
870:   PetscErrorCode PetscHSetIJReset(PetscHSetIJ ht)

872:   Input Parameter:
873: . ht - The hash set

875:   Level: developer

877: .seealso: `PetscHSetIJClear()`
878: M*/

880: /*MC
881:   PetscHSetIJDuplicate - Duplicate a hash set

883:   Synopsis:
884: #include <petsc/private/hashsetij.h>
885:   PetscErrorCode PetscHSetIJDuplicate(PetscHSetIJ ht,PetscHSetIJ *hd)

887:   Input Parameter:
888: . ht - The source hash set

890:   Output Parameter:
891: . ht - The duplicated hash set

893:   Level: developer

895: .seealso: `PetscHSetIJCreate()`
896: M*/

898: /*MC
899:   PetscHSetIJUpdate - Add entries from a has set to another

901:   Synopsis:
902: #include <petsc/private/hashsetij.h>
903:   PetscErrorCode PetscHSetIJUpdate(PetscHSetIJ ht,PetscHSetIJ hda)

905:   Input Parameters:
906: + ht - The hash set to which elements are added
907: - hta - The hash set from which the elements are retrieved

909:   Output Parameter:
910: . ht - The hash set filled with the elements from the other hash set

912:   Level: developer

914: .seealso: `PetscHSetIJCreate()`, `PetscHSetIJDuplicate()`
915: M*/

917: /*MC
918:   PetscHSetIJClear - Clear a hash set

920:   Synopsis:
921: #include <petsc/private/hashsetij.h>
922:   PetscErrorCode PetscHSetIJClear(PetscHSetIJ ht)

924:   Input Parameter:
925: . ht - The hash set

927:   Level: developer

929: .seealso: `PetscHSetIJReset()`
930: M*/

932: /*MC
933:   PetscHSetIJResize - Set the number of buckets in a hash set

935:   Synopsis:
936: #include <petsc/private/hashsetij.h>
937:   PetscErrorCode PetscHSetIJResize(PetscHSetIJ ht,PetscInt nb)

939:   Input Parameters:
940: + ht - The hash set
941: - nb - The number of buckets

943:   Level: developer

945: .seealso: `PetscHSetIJCreate()`
946: M*/

948: /*MC
949:   PetscHSetIJGetSize - Get the number of entries in a hash set

951:   Synopsis:
952: #include <petsc/private/hashsetij.h>
953:   PetscErrorCode PetscHSetIJGetSize(PetscHSetIJ ht,PetscInt *n)

955:   Input Parameter:
956: . ht - The hash set

958:   Output Parameter:
959: . n - The number of entries

961:   Level: developer

963: .seealso: `PetscHSetIJResize()`
964: M*/

966: /*MC
967:   PetscHSetIJGetCapacity - Get the current size of the array in the hash set

969:   Synopsis:
970: #include <petsc/private/hashsetij.h>
971:   PetscErrorCode PetscHSetIJGetCapacity(PetscHSetIJ ht,PetscInt *n)

973:   Input Parameter:
974: . ht - The hash set

976:   Output Parameter:
977: . n - The capacity

979:   Level: developer

981: .seealso: `PetscHSetIJResize()`, `PetscHSetIJGetSize()`
982: M*/

984: /*MC
985:   PetscHSetIJHas - Query for an entry in the hash set

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

991:   Input Parameters:
992: + ht  - The hash set
993: - key - The entry

995:   Output Parameter:
996: . has - Boolean indicating whether the entry is in the hash set

998:   Level: developer

1000: .seealso: `PetscHSetIJAdd()`, `PetscHSetIJDel()`, `PetscHSetIJQueryAdd()`
1001: M*/

1003: /*MC
1004:   PetscHSetIJAdd - Set an entry in the hash set

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

1010:   Input Parameters:
1011: + ht  - The hash set
1012: - key - The entry

1014:   Level: developer

1016: .seealso: `PetscHSetIJDel()`, `PetscHSetIJHas()`, `PetscHSetIJQueryAdd()`
1017: M*/

1019: /*MC
1020:   PetscHSetIJDel - Remove an entry from the hash set

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

1026:   Input Parameters:
1027: + ht  - The hash set
1028: - key - The entry

1030:   Level: developer

1032: .seealso: `PetscHSetIJAdd()`, `PetscHSetIJHas()`
1033: M*/

1035: /*MC
1036:   PetscHSetIJQueryAdd - Query and add an entry in the hash set

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

1042:   Input Parameters:
1043: + ht  - The hash set
1044: - key - The entry

1046:   Output Parameter:
1047: . missing - Boolean indicating whether the entry was missing

1049:   Level: developer

1051: .seealso: `PetscHSetIJQueryDel()`, `PetscHSetIJAdd()`, `PetscHSetIJHas()`
1052: M*/

1054: /*MC
1055:   PetscHSetIJQueryDel - Query and remove an entry from the hash set

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

1061:   Input Parameters:
1062: + ht  - The hash set
1063: - key - The entry

1065:   Output Parameter:
1066: . present - Boolean indicating whether the entry was present

1068:   Level: developer

1070: .seealso: `PetscHSetIJQueryAdd()`, `PetscHSetIJDel()`
1071: M*/

1073: /*MC
1074:   PetscHSetIJGetElems - Get all entries from a hash set

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

1080:   Input Parameters:
1081: + ht    - The hash set
1082: . off   - Input offset in array (usually zero)
1083: - array - Array to put hash set entries in

1085:   Output Parameters:
1086: + off   - Output offset in array (output offset = input offset + hash set size)
1087: - array - Array filled with the hash set entries

1089:   Level: developer

1091: .seealso: `PetscHSetIJGetSize()`
1092: M*/
1093: /* SUBMANSEC = PetscH */

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

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

1101:   Level: developer

1103: .seealso: `PETSC_HASH_SET()`, `PetscHSetIJCreate()`, `PetscHSetIJDestroy()`, `PetscHSetIJQueryAdd()`, `PetscHSetIJDel()`,
1104:           `PetscHSetIJAdd()`, `PetscHSetIJReset()`, `PETSC_HASH_MAP()`, `PetscHMapIJCreate()`,  `PetscHSetIJ`
1105: S*/
1106: typedef struct _PetscHashIJ PetscHSetIJ;

1108: /*MC
1109:   PetscHSetIJCreate - Create a hash set

1111:   Synopsis:
1112: #include <petsc/private/hashsetij.h>
1113:   PetscErrorCode PetscHSetIJCreate(PetscHSetIJ *ht)

1115:   Output Parameter:
1116: . ht - The hash set

1118:   Level: developer

1120: .seealso: `PetscHSetIJDestroy()`
1121: M*/

1123: /*MC
1124:   PetscHSetIJDestroy - Destroy a hash set

1126:   Synopsis:
1127: #include <petsc/private/hashsetij.h>
1128:   PetscErrorCode PetscHSetIJDestroy(PetscHSetIJ *ht)

1130:   Input Parameter:
1131: . ht - The hash set

1133:   Level: developer

1135: .seealso: `PetscHSetIJCreate()`
1136: M*/

1138: /*MC
1139:   PetscHSetIJReset - Reset a hash set

1141:   Synopsis:
1142: #include <petsc/private/hashsetij.h>
1143:   PetscErrorCode PetscHSetIJReset(PetscHSetIJ ht)

1145:   Input Parameter:
1146: . ht - The hash set

1148:   Level: developer

1150: .seealso: `PetscHSetIJClear()`
1151: M*/

1153: /*MC
1154:   PetscHSetIJDuplicate - Duplicate a hash set

1156:   Synopsis:
1157: #include <petsc/private/hashsetij.h>
1158:   PetscErrorCode PetscHSetIJDuplicate(PetscHSetIJ ht,PetscHSetIJ *hd)

1160:   Input Parameter:
1161: . ht - The source hash set

1163:   Output Parameter:
1164: . ht - The duplicated hash set

1166:   Level: developer

1168: .seealso: `PetscHSetIJCreate()`
1169: M*/

1171: /*MC
1172:   PetscHSetIJUpdate - Add entries from a has set to another

1174:   Synopsis:
1175: #include <petsc/private/hashsetij.h>
1176:   PetscErrorCode PetscHSetIJUpdate(PetscHSetIJ ht,PetscHSetIJ hda)

1178:   Input Parameters:
1179: + ht - The hash set to which elements are added
1180: - hta - The hash set from which the elements are retrieved

1182:   Output Parameter:
1183: . ht - The hash set filled with the elements from the other hash set

1185:   Level: developer

1187: .seealso: `PetscHSetIJCreate()`, `PetscHSetIJDuplicate()`
1188: M*/

1190: /*MC
1191:   PetscHSetIJClear - Clear a hash set

1193:   Synopsis:
1194: #include <petsc/private/hashsetij.h>
1195:   PetscErrorCode PetscHSetIJClear(PetscHSetIJ ht)

1197:   Input Parameter:
1198: . ht - The hash set

1200:   Level: developer

1202: .seealso: `PetscHSetIJReset()`
1203: M*/

1205: /*MC
1206:   PetscHSetIJResize - Set the number of buckets in a hash set

1208:   Synopsis:
1209: #include <petsc/private/hashsetij.h>
1210:   PetscErrorCode PetscHSetIJResize(PetscHSetIJ ht,PetscInt nb)

1212:   Input Parameters:
1213: + ht - The hash set
1214: - nb - The number of buckets

1216:   Level: developer

1218: .seealso: `PetscHSetIJCreate()`
1219: M*/

1221: /*MC
1222:   PetscHSetIJGetSize - Get the number of entries in a hash set

1224:   Synopsis:
1225: #include <petsc/private/hashsetij.h>
1226:   PetscErrorCode PetscHSetIJGetSize(PetscHSetIJ ht,PetscInt *n)

1228:   Input Parameter:
1229: . ht - The hash set

1231:   Output Parameter:
1232: . n - The number of entries

1234:   Level: developer

1236: .seealso: `PetscHSetIJResize()`
1237: M*/

1239: /*MC
1240:   PetscHSetIJGetCapacity - Get the current size of the array in the hash set

1242:   Synopsis:
1243: #include <petsc/private/hashsetij.h>
1244:   PetscErrorCode PetscHSetIJGetCapacity(PetscHSetIJ ht,PetscInt *n)

1246:   Input Parameter:
1247: . ht - The hash set

1249:   Output Parameter:
1250: . n - The capacity

1252:   Level: developer

1254: .seealso: `PetscHSetIJResize()`, `PetscHSetIJGetSize()`
1255: M*/

1257: /*MC
1258:   PetscHSetIJHas - Query for an entry in the hash set

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

1264:   Input Parameters:
1265: + ht  - The hash set
1266: - key - The entry

1268:   Output Parameter:
1269: . has - Boolean indicating whether the entry is in the hash set

1271:   Level: developer

1273: .seealso: `PetscHSetIJAdd()`, `PetscHSetIJDel()`, `PetscHSetIJQueryAdd()`
1274: M*/

1276: /*MC
1277:   PetscHSetIJAdd - Set an entry in the hash set

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

1283:   Input Parameters:
1284: + ht  - The hash set
1285: - key - The entry

1287:   Level: developer

1289: .seealso: `PetscHSetIJDel()`, `PetscHSetIJHas()`, `PetscHSetIJQueryAdd()`
1290: M*/

1292: /*MC
1293:   PetscHSetIJDel - Remove an entry from the hash set

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

1299:   Input Parameters:
1300: + ht  - The hash set
1301: - key - The entry

1303:   Level: developer

1305: .seealso: `PetscHSetIJAdd()`, `PetscHSetIJHas()`
1306: M*/

1308: /*MC
1309:   PetscHSetIJQueryAdd - Query and add an entry in the hash set

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

1315:   Input Parameters:
1316: + ht  - The hash set
1317: - key - The entry

1319:   Output Parameter:
1320: . missing - Boolean indicating whether the entry was missing

1322:   Level: developer

1324: .seealso: `PetscHSetIJQueryDel()`, `PetscHSetIJAdd()`, `PetscHSetIJHas()`
1325: M*/

1327: /*MC
1328:   PetscHSetIJQueryDel - Query and remove an entry from the hash set

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

1334:   Input Parameters:
1335: + ht  - The hash set
1336: - key - The entry

1338:   Output Parameter:
1339: . present - Boolean indicating whether the entry was present

1341:   Level: developer

1343: .seealso: `PetscHSetIJQueryAdd()`, `PetscHSetIJDel()`
1344: M*/

1346: /*MC
1347:   PetscHSetIJGetElems - Get all entries from a hash set

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

1353:   Input Parameters:
1354: + ht    - The hash set
1355: . off   - Input offset in array (usually zero)
1356: - array - Array to put hash set entries in

1358:   Output Parameters:
1359: + off   - Output offset in array (output offset = input offset + hash set size)
1360: - array - Array filled with the hash set entries

1362:   Level: developer

1364: .seealso: `PetscHSetIJGetSize()`
1365: M*/
1366: /* SUBMANSEC = PetscH */

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

1371: /*S
1372:   PetscHSetIV - Hash set with a key of PetscInt

1374:   Level: developer

1376: .seealso: `PETSC_HASH_SET()`, `PetscHSetIVCreate()`, `PetscHSetIVDestroy()`, `PetscHSetIVQueryAdd()`, `PetscHSetIVDel()`,
1377:           `PetscHSetIVAdd()`, `PetscHSetIVReset()`, `PETSC_HASH_MAP()`, `PetscHMapIVCreate()`,  `PetscHSetIV`
1378: S*/
1379: typedef struct _PetscHashIV PetscHSetIV;

1381: /*MC
1382:   PetscHSetIVCreate - Create a hash set

1384:   Synopsis:
1385:   #include <petsc/private/hashsetiv.h>
1386:   PetscErrorCode PetscHSetIVCreate(PetscHSetIV *ht)

1388:   Output Parameter:
1389: . ht - The hash set

1391:   Level: developer

1393: .seealso: `PetscHSetIVDestroy()`
1394: M*/

1396: /*MC
1397:   PetscHSetIVDestroy - Destroy a hash set

1399:   Synopsis:
1400:   #include <petsc/private/hashsetiv.h>
1401:   PetscErrorCode PetscHSetIVDestroy(PetscHSetIV *ht)

1403:   Input Parameter:
1404: . ht - The hash set

1406:   Level: developer

1408: .seealso: `PetscHSetIVCreate()`
1409: M*/

1411: /*MC
1412:   PetscHSetIVReset - Reset a hash set

1414:   Synopsis:
1415:   #include <petsc/private/hashsetiv.h>
1416:   PetscErrorCode PetscHSetIVReset(PetscHSetIV ht)

1418:   Input Parameter:
1419: . ht - The hash set

1421:   Level: developer

1423: .seealso: `PetscHSetIVClear()`
1424: M*/

1426: /*MC
1427:   PetscHSetIVDuplicate - Duplicate a hash set

1429:   Synopsis:
1430:   #include <petsc/private/hashsetiv.h>
1431:   PetscErrorCode PetscHSetIVDuplicate(PetscHSetIV ht,PetscHSetIV *hd)

1433:   Input Parameter:
1434: . ht - The source hash set

1436:   Output Parameter:
1437: . ht - The duplicated hash set

1439:   Level: developer

1441: .seealso: `PetscHSetIVCreate()`
1442: M*/

1444: /*MC
1445:   PetscHSetIVUpdate - Add entries from a has set to another

1447:   Synopsis:
1448:   #include <petsc/private/hashsetiv.h>
1449:   PetscErrorCode PetscHSetIVUpdate(PetscHSetIV ht,PetscHSetIV hda)

1451:   Input Parameters:
1452: + ht - The hash set to which elements are added
1453: - hta - The hash set from which the elements are retrieved

1455:   Output Parameter:
1456: . ht - The hash set filled with the elements from the other hash set

1458:   Level: developer

1460: .seealso: `PetscHSetIVCreate()`, `PetscHSetIVDuplicate()`
1461: M*/

1463: /*MC
1464:   PetscHSetIVClear - Clear a hash set

1466:   Synopsis:
1467:   #include <petsc/private/hashsetiv.h>
1468:   PetscErrorCode PetscHSetIVClear(PetscHSetIV ht)

1470:   Input Parameter:
1471: . ht - The hash set

1473:   Level: developer

1475: .seealso: `PetscHSetIVReset()`
1476: M*/

1478: /*MC
1479:   PetscHSetIVResize - Set the number of buckets in a hash set

1481:   Synopsis:
1482:   #include <petsc/private/hashsetiv.h>
1483:   PetscErrorCode PetscHSetIVResize(PetscHSetIV ht,PetscInt nb)

1485:   Input Parameters:
1486: + ht - The hash set
1487: - nb - The number of buckets

1489:   Level: developer

1491: .seealso: `PetscHSetIVCreate()`
1492: M*/

1494: /*MC
1495:   PetscHSetIVGetSize - Get the number of entries in a hash set

1497:   Synopsis:
1498:   #include <petsc/private/hashsetiv.h>
1499:   PetscErrorCode PetscHSetIVGetSize(PetscHSetIV ht,PetscInt *n)

1501:   Input Parameter:
1502: . ht - The hash set

1504:   Output Parameter:
1505: . n - The number of entries

1507:   Level: developer

1509: .seealso: `PetscHSetIVResize()`
1510: M*/

1512: /*MC
1513:   PetscHSetIVGetCapacity - Get the current size of the array in the hash set

1515:   Synopsis:
1516:   #include <petsc/private/hashsetiv.h>
1517:   PetscErrorCode PetscHSetIVGetCapacity(PetscHSetIV ht,PetscInt *n)

1519:   Input Parameter:
1520: . ht - The hash set

1522:   Output Parameter:
1523: . n - The capacity

1525:   Level: developer

1527: .seealso: `PetscHSetIVResize()`, `PetscHSetIVGetSize()`
1528: M*/

1530: /*MC
1531:   PetscHSetIVHas - Query for an entry in the hash set

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

1537:   Input Parameters:
1538: + ht  - The hash set
1539: - key - The entry

1541:   Output Parameter:
1542: . has - Boolean indicating whether the entry is in the hash set

1544:   Level: developer

1546: .seealso: `PetscHSetIVAdd()`, `PetscHSetIVDel()`, `PetscHSetIVQueryAdd()`
1547: M*/

1549: /*MC
1550:   PetscHSetIVAdd - Set an entry in the hash set

1552:   Synopsis:
1553:   #include <petsc/private/hashsetiv.h>
1554:   PetscErrorCode PetscHSetIVAdd(PetscHSetIV ht, PetscInt key)

1556:   Input Parameters:
1557: + ht  - The hash set
1558: - key - The entry

1560:   Level: developer

1562: .seealso: `PetscHSetIVDel()`, `PetscHSetIVHas()`, `PetscHSetIVQueryAdd()`
1563: M*/

1565: /*MC
1566:   PetscHSetIVDel - Remove an entry from the hash set

1568:   Synopsis:
1569:   #include <petsc/private/hashsetiv.h>
1570:   PetscErrorCode PetscHSetIVDel(PetscHSetIV ht, PetscInt key)

1572:   Input Parameters:
1573: + ht  - The hash set
1574: - key - The entry

1576:   Level: developer

1578: .seealso: `PetscHSetIVAdd()`, `PetscHSetIVHas()`
1579: M*/

1581: /*MC
1582:   PetscHSetIVQueryAdd - Query and add an entry in the hash set

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

1588:   Input Parameters:
1589: + ht  - The hash set
1590: - key - The entry

1592:   Output Parameter:
1593: . missing - Boolean indicating whether the entry was missing

1595:   Level: developer

1597: .seealso: `PetscHSetIVQueryDel()`, `PetscHSetIVAdd()`, `PetscHSetIVHas()`
1598: M*/

1600: /*MC
1601:   PetscHSetIVQueryDel - Query and remove an entry from the hash set

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

1607:   Input Parameters:
1608: + ht  - The hash set
1609: - key - The entry

1611:   Output Parameter:
1612: . present - Boolean indicating whether the entry was present

1614:   Level: developer

1616: .seealso: `PetscHSetIVQueryAdd()`, `PetscHSetIVDel()`
1617: M*/

1619: /*MC
1620:   PetscHSetIVGetElems - Get all entries from a hash set

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

1626:   Input Parameters:
1627: + ht    - The hash set
1628: . off   - Input offset in array (usually zero)
1629: - array - Array to put hash set entries in

1631:   Output Parameters:
1632: + off   - Output offset in array (output offset = input offset + hash set size)
1633: - array - Array filled with the hash set entries

1635:   Level: developer

1637: .seealso: `PetscHSetIVGetSize()`
1638: M*/
1639: /* SUBMANSEC = PetscH */

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

1644: /*S
1645:   PetscHSetObj - Hash set with a key of PetscInt64

1647:   Level: developer

1649: .seealso: `PETSC_HASH_SET()`, `PetscHSetObjCreate()`, `PetscHSetObjDestroy()`, `PetscHSetObjQueryAdd()`, `PetscHSetObjDel()`,
1650:           `PetscHSetObjAdd()`, `PetscHSetObjReset()`, `PETSC_HASH_MAP()`, `PetscHMapObjCreate()`,  `PetscHSetObj`
1651: S*/
1652: typedef struct _PetscHashObj PetscHSetObj;

1654: /*MC
1655:   PetscHSetObjCreate - Create a hash set

1657:   Synopsis:
1658:   #include <petsc/private/hashsetobj.h>
1659:   PetscErrorCode PetscHSetObjCreate(PetscHSetObj *ht)

1661:   Output Parameter:
1662: . ht - The hash set

1664:   Level: developer

1666: .seealso: `PetscHSetObjDestroy()`
1667: M*/

1669: /*MC
1670:   PetscHSetObjDestroy - Destroy a hash set

1672:   Synopsis:
1673:   #include <petsc/private/hashsetobj.h>
1674:   PetscErrorCode PetscHSetObjDestroy(PetscHSetObj *ht)

1676:   Input Parameter:
1677: . ht - The hash set

1679:   Level: developer

1681: .seealso: `PetscHSetObjCreate()`
1682: M*/

1684: /*MC
1685:   PetscHSetObjReset - Reset a hash set

1687:   Synopsis:
1688:   #include <petsc/private/hashsetobj.h>
1689:   PetscErrorCode PetscHSetObjReset(PetscHSetObj ht)

1691:   Input Parameter:
1692: . ht - The hash set

1694:   Level: developer

1696: .seealso: `PetscHSetObjClear()`
1697: M*/

1699: /*MC
1700:   PetscHSetObjDuplicate - Duplicate a hash set

1702:   Synopsis:
1703:   #include <petsc/private/hashsetobj.h>
1704:   PetscErrorCode PetscHSetObjDuplicate(PetscHSetObj ht,PetscHSetObj *hd)

1706:   Input Parameter:
1707: . ht - The source hash set

1709:   Output Parameter:
1710: . ht - The duplicated hash set

1712:   Level: developer

1714: .seealso: `PetscHSetObjCreate()`
1715: M*/

1717: /*MC
1718:   PetscHSetObjUpdate - Add entries from a has set to another

1720:   Synopsis:
1721:   #include <petsc/private/hashsetobj.h>
1722:   PetscErrorCode PetscHSetObjUpdate(PetscHSetObj ht,PetscHSetObj hda)

1724:   Input Parameters:
1725: + ht - The hash set to which elements are added
1726: - hta - The hash set from which the elements are retrieved

1728:   Output Parameter:
1729: . ht - The hash set filled with the elements from the other hash set

1731:   Level: developer

1733: .seealso: `PetscHSetObjCreate()`, `PetscHSetObjDuplicate()`
1734: M*/

1736: /*MC
1737:   PetscHSetObjClear - Clear a hash set

1739:   Synopsis:
1740:   #include <petsc/private/hashsetobj.h>
1741:   PetscErrorCode PetscHSetObjClear(PetscHSetObj ht)

1743:   Input Parameter:
1744: . ht - The hash set

1746:   Level: developer

1748: .seealso: `PetscHSetObjReset()`
1749: M*/

1751: /*MC
1752:   PetscHSetObjResize - Set the number of buckets in a hash set

1754:   Synopsis:
1755:   #include <petsc/private/hashsetobj.h>
1756:   PetscErrorCode PetscHSetObjResize(PetscHSetObj ht,PetscInt nb)

1758:   Input Parameters:
1759: + ht - The hash set
1760: - nb - The number of buckets

1762:   Level: developer

1764: .seealso: `PetscHSetObjCreate()`
1765: M*/

1767: /*MC
1768:   PetscHSetObjGetSize - Get the number of entries in a hash set

1770:   Synopsis:
1771:   #include <petsc/private/hashsetobj.h>
1772:   PetscErrorCode PetscHSetObjGetSize(PetscHSetObj ht,PetscInt *n)

1774:   Input Parameter:
1775: . ht - The hash set

1777:   Output Parameter:
1778: . n - The number of entries

1780:   Level: developer

1782: .seealso: `PetscHSetObjResize()`
1783: M*/

1785: /*MC
1786:   PetscHSetObjGetCapacity - Get the current size of the array in the hash set

1788:   Synopsis:
1789:   #include <petsc/private/hashsetobj.h>
1790:   PetscErrorCode PetscHSetObjGetCapacity(PetscHSetObj ht,PetscInt *n)

1792:   Input Parameter:
1793: . ht - The hash set

1795:   Output Parameter:
1796: . n - The capacity

1798:   Level: developer

1800: .seealso: `PetscHSetObjResize()`, `PetscHSetObjGetSize()`
1801: M*/

1803: /*MC
1804:   PetscHSetObjHas - Query for an entry in the hash set

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

1810:   Input Parameters:
1811: + ht  - The hash set
1812: - key - The entry

1814:   Output Parameter:
1815: . has - Boolean indicating whether the entry is in the hash set

1817:   Level: developer

1819: .seealso: `PetscHSetObjAdd()`, `PetscHSetObjDel()`, `PetscHSetObjQueryAdd()`
1820: M*/

1822: /*MC
1823:   PetscHSetObjAdd - Set an entry in the hash set

1825:   Synopsis:
1826:   #include <petsc/private/hashsetobj.h>
1827:   PetscErrorCode PetscHSetObjAdd(PetscHSetObj ht, PetscInt64 key)

1829:   Input Parameters:
1830: + ht  - The hash set
1831: - key - The entry

1833:   Level: developer

1835: .seealso: `PetscHSetObjDel()`, `PetscHSetObjHas()`, `PetscHSetObjQueryAdd()`
1836: M*/

1838: /*MC
1839:   PetscHSetObjDel - Remove an entry from the hash set

1841:   Synopsis:
1842:   #include <petsc/private/hashsetobj.h>
1843:   PetscErrorCode PetscHSetObjDel(PetscHSetObj ht, PetscInt64 key)

1845:   Input Parameters:
1846: + ht  - The hash set
1847: - key - The entry

1849:   Level: developer

1851: .seealso: `PetscHSetObjAdd()`, `PetscHSetObjHas()`
1852: M*/

1854: /*MC
1855:   PetscHSetObjQueryAdd - Query and add an entry in the hash set

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

1861:   Input Parameters:
1862: + ht  - The hash set
1863: - key - The entry

1865:   Output Parameter:
1866: . missing - Boolean indicating whether the entry was missing

1868:   Level: developer

1870: .seealso: `PetscHSetObjQueryDel()`, `PetscHSetObjAdd()`, `PetscHSetObjHas()`
1871: M*/

1873: /*MC
1874:   PetscHSetObjQueryDel - Query and remove an entry from the hash set

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

1880:   Input Parameters:
1881: + ht  - The hash set
1882: - key - The entry

1884:   Output Parameter:
1885: . present - Boolean indicating whether the entry was present

1887:   Level: developer

1889: .seealso: `PetscHSetObjQueryAdd()`, `PetscHSetObjDel()`
1890: M*/

1892: /*MC
1893:   PetscHSetObjGetElems - Get all entries from a hash set

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

1899:   Input Parameters:
1900: + ht    - The hash set
1901: . off   - Input offset in array (usually zero)
1902: - array - Array to put hash set entries in

1904:   Output Parameters:
1905: + off   - Output offset in array (output offset = input offset + hash set size)
1906: - array - Array filled with the hash set entries

1908:   Level: developer

1910: .seealso: `PetscHSetObjGetSize()`
1911: M*/