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