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