igraph/
bindings.rs

1/* automatically generated by rust-bindgen 0.72.1 */
2
3#[repr(C)]
4#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
5pub struct __BindgenBitfieldUnit<Storage> {
6    storage: Storage,
7}
8impl<Storage> __BindgenBitfieldUnit<Storage> {
9    #[inline]
10    pub const fn new(storage: Storage) -> Self {
11        Self { storage }
12    }
13}
14impl<Storage> __BindgenBitfieldUnit<Storage>
15where
16    Storage: AsRef<[u8]> + AsMut<[u8]>,
17{
18    #[inline]
19    fn extract_bit(byte: u8, index: usize) -> bool {
20        let bit_index = if cfg!(target_endian = "big") {
21            7 - (index % 8)
22        } else {
23            index % 8
24        };
25        let mask = 1 << bit_index;
26        byte & mask == mask
27    }
28    #[inline]
29    pub fn get_bit(&self, index: usize) -> bool {
30        debug_assert!(index / 8 < self.storage.as_ref().len());
31        let byte_index = index / 8;
32        let byte = self.storage.as_ref()[byte_index];
33        Self::extract_bit(byte, index)
34    }
35    #[inline]
36    pub unsafe fn raw_get_bit(this: *const Self, index: usize) -> bool {
37        debug_assert!(index / 8 < core::mem::size_of::<Storage>());
38        let byte_index = index / 8;
39        let byte = unsafe {
40            *(core::ptr::addr_of!((*this).storage) as *const u8).offset(byte_index as isize)
41        };
42        Self::extract_bit(byte, index)
43    }
44    #[inline]
45    fn change_bit(byte: u8, index: usize, val: bool) -> u8 {
46        let bit_index = if cfg!(target_endian = "big") {
47            7 - (index % 8)
48        } else {
49            index % 8
50        };
51        let mask = 1 << bit_index;
52        if val { byte | mask } else { byte & !mask }
53    }
54    #[inline]
55    pub fn set_bit(&mut self, index: usize, val: bool) {
56        debug_assert!(index / 8 < self.storage.as_ref().len());
57        let byte_index = index / 8;
58        let byte = &mut self.storage.as_mut()[byte_index];
59        *byte = Self::change_bit(*byte, index, val);
60    }
61    #[inline]
62    pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) {
63        debug_assert!(index / 8 < core::mem::size_of::<Storage>());
64        let byte_index = index / 8;
65        let byte = unsafe {
66            (core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize)
67        };
68        unsafe { *byte = Self::change_bit(*byte, index, val) };
69    }
70    #[inline]
71    pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 {
72        debug_assert!(bit_width <= 64);
73        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
74        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
75        let mut val = 0;
76        for i in 0..(bit_width as usize) {
77            if self.get_bit(i + bit_offset) {
78                let index = if cfg!(target_endian = "big") {
79                    bit_width as usize - 1 - i
80                } else {
81                    i
82                };
83                val |= 1 << index;
84            }
85        }
86        val
87    }
88    #[inline]
89    pub unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 {
90        debug_assert!(bit_width <= 64);
91        debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
92        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
93        let mut val = 0;
94        for i in 0..(bit_width as usize) {
95            if unsafe { Self::raw_get_bit(this, i + bit_offset) } {
96                let index = if cfg!(target_endian = "big") {
97                    bit_width as usize - 1 - i
98                } else {
99                    i
100                };
101                val |= 1 << index;
102            }
103        }
104        val
105    }
106    #[inline]
107    pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) {
108        debug_assert!(bit_width <= 64);
109        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
110        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
111        for i in 0..(bit_width as usize) {
112            let mask = 1 << i;
113            let val_bit_is_set = val & mask == mask;
114            let index = if cfg!(target_endian = "big") {
115                bit_width as usize - 1 - i
116            } else {
117                i
118            };
119            self.set_bit(index + bit_offset, val_bit_is_set);
120        }
121    }
122    #[inline]
123    pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) {
124        debug_assert!(bit_width <= 64);
125        debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
126        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
127        for i in 0..(bit_width as usize) {
128            let mask = 1 << i;
129            let val_bit_is_set = val & mask == mask;
130            let index = if cfg!(target_endian = "big") {
131                bit_width as usize - 1 - i
132            } else {
133                i
134            };
135            unsafe { Self::raw_set_bit(this, index + bit_offset, val_bit_is_set) };
136        }
137    }
138}
139#[derive(PartialEq, Copy, Clone, Hash, Debug, Default)]
140#[repr(transparent)]
141pub struct __BindgenFloat16(pub u16);
142pub const IGRAPH_VERSION: &[u8; 6] = b"1.0.0\0";
143pub const IGRAPH_VERSION_MAJOR: u32 = 1;
144pub const IGRAPH_VERSION_MINOR: u32 = 0;
145pub const IGRAPH_VERSION_PATCH: u32 = 0;
146pub const IGRAPH_VERSION_PRERELEASE: &[u8; 19] = b"cmake-experimental\0";
147pub const __WORDSIZE: u32 = 64;
148pub const __has_safe_buffers: u32 = 1;
149pub const __DARWIN_ONLY_64_BIT_INO_T: u32 = 1;
150pub const __DARWIN_ONLY_UNIX_CONFORMANCE: u32 = 1;
151pub const __DARWIN_ONLY_VERS_1050: u32 = 1;
152pub const __DARWIN_UNIX03: u32 = 1;
153pub const __DARWIN_64_BIT_INO_T: u32 = 1;
154pub const __DARWIN_VERS_1050: u32 = 1;
155pub const __DARWIN_NON_CANCELABLE: u32 = 0;
156pub const __DARWIN_SUF_EXTSN: &[u8; 14] = b"$DARWIN_EXTSN\0";
157pub const __DARWIN_C_ANSI: u32 = 4096;
158pub const __DARWIN_C_FULL: u32 = 900000;
159pub const __DARWIN_C_LEVEL: u32 = 900000;
160pub const __STDC_WANT_LIB_EXT1__: u32 = 1;
161pub const __DARWIN_NO_LONG_LONG: u32 = 0;
162pub const _DARWIN_FEATURE_64_BIT_INODE: u32 = 1;
163pub const _DARWIN_FEATURE_ONLY_64_BIT_INODE: u32 = 1;
164pub const _DARWIN_FEATURE_ONLY_VERS_1050: u32 = 1;
165pub const _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE: u32 = 1;
166pub const _DARWIN_FEATURE_UNIX_CONFORMANCE: u32 = 3;
167pub const __has_ptrcheck: u32 = 0;
168pub const USE_CLANG_TYPES: u32 = 0;
169pub const __PTHREAD_SIZE__: u32 = 8176;
170pub const __PTHREAD_ATTR_SIZE__: u32 = 56;
171pub const __PTHREAD_MUTEXATTR_SIZE__: u32 = 8;
172pub const __PTHREAD_MUTEX_SIZE__: u32 = 56;
173pub const __PTHREAD_CONDATTR_SIZE__: u32 = 8;
174pub const __PTHREAD_COND_SIZE__: u32 = 40;
175pub const __PTHREAD_ONCE_SIZE__: u32 = 8;
176pub const __PTHREAD_RWLOCK_SIZE__: u32 = 192;
177pub const __PTHREAD_RWLOCKATTR_SIZE__: u32 = 16;
178pub const INT8_MAX: u32 = 127;
179pub const INT16_MAX: u32 = 32767;
180pub const INT32_MAX: u32 = 2147483647;
181pub const INT64_MAX: u64 = 9223372036854775807;
182pub const INT8_MIN: i32 = -128;
183pub const INT16_MIN: i32 = -32768;
184pub const INT32_MIN: i32 = -2147483648;
185pub const INT64_MIN: i64 = -9223372036854775808;
186pub const UINT8_MAX: u32 = 255;
187pub const UINT16_MAX: u32 = 65535;
188pub const UINT32_MAX: u32 = 4294967295;
189pub const UINT64_MAX: i32 = -1;
190pub const INT_LEAST8_MIN: i32 = -128;
191pub const INT_LEAST16_MIN: i32 = -32768;
192pub const INT_LEAST32_MIN: i32 = -2147483648;
193pub const INT_LEAST64_MIN: i64 = -9223372036854775808;
194pub const INT_LEAST8_MAX: u32 = 127;
195pub const INT_LEAST16_MAX: u32 = 32767;
196pub const INT_LEAST32_MAX: u32 = 2147483647;
197pub const INT_LEAST64_MAX: u64 = 9223372036854775807;
198pub const UINT_LEAST8_MAX: u32 = 255;
199pub const UINT_LEAST16_MAX: u32 = 65535;
200pub const UINT_LEAST32_MAX: u32 = 4294967295;
201pub const UINT_LEAST64_MAX: i32 = -1;
202pub const INT_FAST8_MIN: i32 = -128;
203pub const INT_FAST16_MIN: i32 = -32768;
204pub const INT_FAST32_MIN: i32 = -2147483648;
205pub const INT_FAST64_MIN: i64 = -9223372036854775808;
206pub const INT_FAST8_MAX: u32 = 127;
207pub const INT_FAST16_MAX: u32 = 32767;
208pub const INT_FAST32_MAX: u32 = 2147483647;
209pub const INT_FAST64_MAX: u64 = 9223372036854775807;
210pub const UINT_FAST8_MAX: u32 = 255;
211pub const UINT_FAST16_MAX: u32 = 65535;
212pub const UINT_FAST32_MAX: u32 = 4294967295;
213pub const UINT_FAST64_MAX: i32 = -1;
214pub const INTPTR_MAX: u64 = 9223372036854775807;
215pub const INTPTR_MIN: i64 = -9223372036854775808;
216pub const UINTPTR_MAX: i32 = -1;
217pub const SIZE_MAX: i32 = -1;
218pub const RSIZE_MAX: i32 = -1;
219pub const WINT_MIN: i32 = -2147483648;
220pub const WINT_MAX: u32 = 2147483647;
221pub const SIG_ATOMIC_MIN: i32 = -2147483648;
222pub const SIG_ATOMIC_MAX: u32 = 2147483647;
223pub const __API_TO_BE_DEPRECATED: u32 = 100000;
224pub const __API_TO_BE_DEPRECATED_MACOS: u32 = 100000;
225pub const __API_TO_BE_DEPRECATED_MACOSAPPLICATIONEXTENSION: u32 = 100000;
226pub const __API_TO_BE_DEPRECATED_IOS: u32 = 100000;
227pub const __API_TO_BE_DEPRECATED_IOSAPPLICATIONEXTENSION: u32 = 100000;
228pub const __API_TO_BE_DEPRECATED_MACCATALYST: u32 = 100000;
229pub const __API_TO_BE_DEPRECATED_MACCATALYSTAPPLICATIONEXTENSION: u32 = 100000;
230pub const __API_TO_BE_DEPRECATED_WATCHOS: u32 = 100000;
231pub const __API_TO_BE_DEPRECATED_WATCHOSAPPLICATIONEXTENSION: u32 = 100000;
232pub const __API_TO_BE_DEPRECATED_TVOS: u32 = 100000;
233pub const __API_TO_BE_DEPRECATED_TVOSAPPLICATIONEXTENSION: u32 = 100000;
234pub const __API_TO_BE_DEPRECATED_DRIVERKIT: u32 = 100000;
235pub const __API_TO_BE_DEPRECATED_VISIONOS: u32 = 100000;
236pub const __API_TO_BE_DEPRECATED_VISIONOSAPPLICATIONEXTENSION: u32 = 100000;
237pub const __API_TO_BE_DEPRECATED_KERNELKIT: u32 = 100000;
238pub const __MAC_10_0: u32 = 1000;
239pub const __MAC_10_1: u32 = 1010;
240pub const __MAC_10_2: u32 = 1020;
241pub const __MAC_10_3: u32 = 1030;
242pub const __MAC_10_4: u32 = 1040;
243pub const __MAC_10_5: u32 = 1050;
244pub const __MAC_10_6: u32 = 1060;
245pub const __MAC_10_7: u32 = 1070;
246pub const __MAC_10_8: u32 = 1080;
247pub const __MAC_10_9: u32 = 1090;
248pub const __MAC_10_10: u32 = 101000;
249pub const __MAC_10_10_2: u32 = 101002;
250pub const __MAC_10_10_3: u32 = 101003;
251pub const __MAC_10_11: u32 = 101100;
252pub const __MAC_10_11_2: u32 = 101102;
253pub const __MAC_10_11_3: u32 = 101103;
254pub const __MAC_10_11_4: u32 = 101104;
255pub const __MAC_10_12: u32 = 101200;
256pub const __MAC_10_12_1: u32 = 101201;
257pub const __MAC_10_12_2: u32 = 101202;
258pub const __MAC_10_12_4: u32 = 101204;
259pub const __MAC_10_13: u32 = 101300;
260pub const __MAC_10_13_1: u32 = 101301;
261pub const __MAC_10_13_2: u32 = 101302;
262pub const __MAC_10_13_4: u32 = 101304;
263pub const __MAC_10_14: u32 = 101400;
264pub const __MAC_10_14_1: u32 = 101401;
265pub const __MAC_10_14_4: u32 = 101404;
266pub const __MAC_10_14_5: u32 = 101405;
267pub const __MAC_10_14_6: u32 = 101406;
268pub const __MAC_10_15: u32 = 101500;
269pub const __MAC_10_15_1: u32 = 101501;
270pub const __MAC_10_15_4: u32 = 101504;
271pub const __MAC_10_16: u32 = 101600;
272pub const __MAC_11_0: u32 = 110000;
273pub const __MAC_11_1: u32 = 110100;
274pub const __MAC_11_3: u32 = 110300;
275pub const __MAC_11_4: u32 = 110400;
276pub const __MAC_11_5: u32 = 110500;
277pub const __MAC_11_6: u32 = 110600;
278pub const __MAC_12_0: u32 = 120000;
279pub const __MAC_12_1: u32 = 120100;
280pub const __MAC_12_2: u32 = 120200;
281pub const __MAC_12_3: u32 = 120300;
282pub const __MAC_12_4: u32 = 120400;
283pub const __MAC_12_5: u32 = 120500;
284pub const __MAC_12_6: u32 = 120600;
285pub const __MAC_12_7: u32 = 120700;
286pub const __MAC_13_0: u32 = 130000;
287pub const __MAC_13_1: u32 = 130100;
288pub const __MAC_13_2: u32 = 130200;
289pub const __MAC_13_3: u32 = 130300;
290pub const __MAC_13_4: u32 = 130400;
291pub const __MAC_13_5: u32 = 130500;
292pub const __MAC_13_6: u32 = 130600;
293pub const __MAC_13_7: u32 = 130700;
294pub const __MAC_14_0: u32 = 140000;
295pub const __MAC_14_1: u32 = 140100;
296pub const __MAC_14_2: u32 = 140200;
297pub const __MAC_14_3: u32 = 140300;
298pub const __MAC_14_4: u32 = 140400;
299pub const __MAC_14_5: u32 = 140500;
300pub const __MAC_14_6: u32 = 140600;
301pub const __MAC_14_7: u32 = 140700;
302pub const __MAC_15_0: u32 = 150000;
303pub const __MAC_15_1: u32 = 150100;
304pub const __MAC_15_2: u32 = 150200;
305pub const __MAC_15_3: u32 = 150300;
306pub const __MAC_15_4: u32 = 150400;
307pub const __MAC_15_5: u32 = 150500;
308pub const __MAC_15_6: u32 = 150600;
309pub const __MAC_16_0: u32 = 160000;
310pub const __MAC_26_0: u32 = 260000;
311pub const __MAC_26_1: u32 = 260100;
312pub const __MAC_26_2: u32 = 260200;
313pub const __IPHONE_2_0: u32 = 20000;
314pub const __IPHONE_2_1: u32 = 20100;
315pub const __IPHONE_2_2: u32 = 20200;
316pub const __IPHONE_3_0: u32 = 30000;
317pub const __IPHONE_3_1: u32 = 30100;
318pub const __IPHONE_3_2: u32 = 30200;
319pub const __IPHONE_4_0: u32 = 40000;
320pub const __IPHONE_4_1: u32 = 40100;
321pub const __IPHONE_4_2: u32 = 40200;
322pub const __IPHONE_4_3: u32 = 40300;
323pub const __IPHONE_5_0: u32 = 50000;
324pub const __IPHONE_5_1: u32 = 50100;
325pub const __IPHONE_6_0: u32 = 60000;
326pub const __IPHONE_6_1: u32 = 60100;
327pub const __IPHONE_7_0: u32 = 70000;
328pub const __IPHONE_7_1: u32 = 70100;
329pub const __IPHONE_8_0: u32 = 80000;
330pub const __IPHONE_8_1: u32 = 80100;
331pub const __IPHONE_8_2: u32 = 80200;
332pub const __IPHONE_8_3: u32 = 80300;
333pub const __IPHONE_8_4: u32 = 80400;
334pub const __IPHONE_9_0: u32 = 90000;
335pub const __IPHONE_9_1: u32 = 90100;
336pub const __IPHONE_9_2: u32 = 90200;
337pub const __IPHONE_9_3: u32 = 90300;
338pub const __IPHONE_10_0: u32 = 100000;
339pub const __IPHONE_10_1: u32 = 100100;
340pub const __IPHONE_10_2: u32 = 100200;
341pub const __IPHONE_10_3: u32 = 100300;
342pub const __IPHONE_11_0: u32 = 110000;
343pub const __IPHONE_11_1: u32 = 110100;
344pub const __IPHONE_11_2: u32 = 110200;
345pub const __IPHONE_11_3: u32 = 110300;
346pub const __IPHONE_11_4: u32 = 110400;
347pub const __IPHONE_12_0: u32 = 120000;
348pub const __IPHONE_12_1: u32 = 120100;
349pub const __IPHONE_12_2: u32 = 120200;
350pub const __IPHONE_12_3: u32 = 120300;
351pub const __IPHONE_12_4: u32 = 120400;
352pub const __IPHONE_13_0: u32 = 130000;
353pub const __IPHONE_13_1: u32 = 130100;
354pub const __IPHONE_13_2: u32 = 130200;
355pub const __IPHONE_13_3: u32 = 130300;
356pub const __IPHONE_13_4: u32 = 130400;
357pub const __IPHONE_13_5: u32 = 130500;
358pub const __IPHONE_13_6: u32 = 130600;
359pub const __IPHONE_13_7: u32 = 130700;
360pub const __IPHONE_14_0: u32 = 140000;
361pub const __IPHONE_14_1: u32 = 140100;
362pub const __IPHONE_14_2: u32 = 140200;
363pub const __IPHONE_14_3: u32 = 140300;
364pub const __IPHONE_14_5: u32 = 140500;
365pub const __IPHONE_14_6: u32 = 140600;
366pub const __IPHONE_14_7: u32 = 140700;
367pub const __IPHONE_14_8: u32 = 140800;
368pub const __IPHONE_15_0: u32 = 150000;
369pub const __IPHONE_15_1: u32 = 150100;
370pub const __IPHONE_15_2: u32 = 150200;
371pub const __IPHONE_15_3: u32 = 150300;
372pub const __IPHONE_15_4: u32 = 150400;
373pub const __IPHONE_15_5: u32 = 150500;
374pub const __IPHONE_15_6: u32 = 150600;
375pub const __IPHONE_15_7: u32 = 150700;
376pub const __IPHONE_15_8: u32 = 150800;
377pub const __IPHONE_16_0: u32 = 160000;
378pub const __IPHONE_16_1: u32 = 160100;
379pub const __IPHONE_16_2: u32 = 160200;
380pub const __IPHONE_16_3: u32 = 160300;
381pub const __IPHONE_16_4: u32 = 160400;
382pub const __IPHONE_16_5: u32 = 160500;
383pub const __IPHONE_16_6: u32 = 160600;
384pub const __IPHONE_16_7: u32 = 160700;
385pub const __IPHONE_17_0: u32 = 170000;
386pub const __IPHONE_17_1: u32 = 170100;
387pub const __IPHONE_17_2: u32 = 170200;
388pub const __IPHONE_17_3: u32 = 170300;
389pub const __IPHONE_17_4: u32 = 170400;
390pub const __IPHONE_17_5: u32 = 170500;
391pub const __IPHONE_17_6: u32 = 170600;
392pub const __IPHONE_17_7: u32 = 170700;
393pub const __IPHONE_18_0: u32 = 180000;
394pub const __IPHONE_18_1: u32 = 180100;
395pub const __IPHONE_18_2: u32 = 180200;
396pub const __IPHONE_18_3: u32 = 180300;
397pub const __IPHONE_18_4: u32 = 180400;
398pub const __IPHONE_18_5: u32 = 180500;
399pub const __IPHONE_18_6: u32 = 180600;
400pub const __IPHONE_19_0: u32 = 190000;
401pub const __IPHONE_26_0: u32 = 260000;
402pub const __IPHONE_26_1: u32 = 260100;
403pub const __IPHONE_26_2: u32 = 260200;
404pub const __WATCHOS_1_0: u32 = 10000;
405pub const __WATCHOS_2_0: u32 = 20000;
406pub const __WATCHOS_2_1: u32 = 20100;
407pub const __WATCHOS_2_2: u32 = 20200;
408pub const __WATCHOS_3_0: u32 = 30000;
409pub const __WATCHOS_3_1: u32 = 30100;
410pub const __WATCHOS_3_1_1: u32 = 30101;
411pub const __WATCHOS_3_2: u32 = 30200;
412pub const __WATCHOS_4_0: u32 = 40000;
413pub const __WATCHOS_4_1: u32 = 40100;
414pub const __WATCHOS_4_2: u32 = 40200;
415pub const __WATCHOS_4_3: u32 = 40300;
416pub const __WATCHOS_5_0: u32 = 50000;
417pub const __WATCHOS_5_1: u32 = 50100;
418pub const __WATCHOS_5_2: u32 = 50200;
419pub const __WATCHOS_5_3: u32 = 50300;
420pub const __WATCHOS_6_0: u32 = 60000;
421pub const __WATCHOS_6_1: u32 = 60100;
422pub const __WATCHOS_6_2: u32 = 60200;
423pub const __WATCHOS_7_0: u32 = 70000;
424pub const __WATCHOS_7_1: u32 = 70100;
425pub const __WATCHOS_7_2: u32 = 70200;
426pub const __WATCHOS_7_3: u32 = 70300;
427pub const __WATCHOS_7_4: u32 = 70400;
428pub const __WATCHOS_7_5: u32 = 70500;
429pub const __WATCHOS_7_6: u32 = 70600;
430pub const __WATCHOS_8_0: u32 = 80000;
431pub const __WATCHOS_8_1: u32 = 80100;
432pub const __WATCHOS_8_3: u32 = 80300;
433pub const __WATCHOS_8_4: u32 = 80400;
434pub const __WATCHOS_8_5: u32 = 80500;
435pub const __WATCHOS_8_6: u32 = 80600;
436pub const __WATCHOS_8_7: u32 = 80700;
437pub const __WATCHOS_8_8: u32 = 80800;
438pub const __WATCHOS_9_0: u32 = 90000;
439pub const __WATCHOS_9_1: u32 = 90100;
440pub const __WATCHOS_9_2: u32 = 90200;
441pub const __WATCHOS_9_3: u32 = 90300;
442pub const __WATCHOS_9_4: u32 = 90400;
443pub const __WATCHOS_9_5: u32 = 90500;
444pub const __WATCHOS_9_6: u32 = 90600;
445pub const __WATCHOS_10_0: u32 = 100000;
446pub const __WATCHOS_10_1: u32 = 100100;
447pub const __WATCHOS_10_2: u32 = 100200;
448pub const __WATCHOS_10_3: u32 = 100300;
449pub const __WATCHOS_10_4: u32 = 100400;
450pub const __WATCHOS_10_5: u32 = 100500;
451pub const __WATCHOS_10_6: u32 = 100600;
452pub const __WATCHOS_10_7: u32 = 100700;
453pub const __WATCHOS_11_0: u32 = 110000;
454pub const __WATCHOS_11_1: u32 = 110100;
455pub const __WATCHOS_11_2: u32 = 110200;
456pub const __WATCHOS_11_3: u32 = 110300;
457pub const __WATCHOS_11_4: u32 = 110400;
458pub const __WATCHOS_11_5: u32 = 110500;
459pub const __WATCHOS_11_6: u32 = 110600;
460pub const __WATCHOS_12_0: u32 = 120000;
461pub const __WATCHOS_26_0: u32 = 260000;
462pub const __WATCHOS_26_1: u32 = 260100;
463pub const __WATCHOS_26_2: u32 = 260200;
464pub const __TVOS_9_0: u32 = 90000;
465pub const __TVOS_9_1: u32 = 90100;
466pub const __TVOS_9_2: u32 = 90200;
467pub const __TVOS_10_0: u32 = 100000;
468pub const __TVOS_10_0_1: u32 = 100001;
469pub const __TVOS_10_1: u32 = 100100;
470pub const __TVOS_10_2: u32 = 100200;
471pub const __TVOS_11_0: u32 = 110000;
472pub const __TVOS_11_1: u32 = 110100;
473pub const __TVOS_11_2: u32 = 110200;
474pub const __TVOS_11_3: u32 = 110300;
475pub const __TVOS_11_4: u32 = 110400;
476pub const __TVOS_12_0: u32 = 120000;
477pub const __TVOS_12_1: u32 = 120100;
478pub const __TVOS_12_2: u32 = 120200;
479pub const __TVOS_12_3: u32 = 120300;
480pub const __TVOS_12_4: u32 = 120400;
481pub const __TVOS_13_0: u32 = 130000;
482pub const __TVOS_13_2: u32 = 130200;
483pub const __TVOS_13_3: u32 = 130300;
484pub const __TVOS_13_4: u32 = 130400;
485pub const __TVOS_14_0: u32 = 140000;
486pub const __TVOS_14_1: u32 = 140100;
487pub const __TVOS_14_2: u32 = 140200;
488pub const __TVOS_14_3: u32 = 140300;
489pub const __TVOS_14_5: u32 = 140500;
490pub const __TVOS_14_6: u32 = 140600;
491pub const __TVOS_14_7: u32 = 140700;
492pub const __TVOS_15_0: u32 = 150000;
493pub const __TVOS_15_1: u32 = 150100;
494pub const __TVOS_15_2: u32 = 150200;
495pub const __TVOS_15_3: u32 = 150300;
496pub const __TVOS_15_4: u32 = 150400;
497pub const __TVOS_15_5: u32 = 150500;
498pub const __TVOS_15_6: u32 = 150600;
499pub const __TVOS_16_0: u32 = 160000;
500pub const __TVOS_16_1: u32 = 160100;
501pub const __TVOS_16_2: u32 = 160200;
502pub const __TVOS_16_3: u32 = 160300;
503pub const __TVOS_16_4: u32 = 160400;
504pub const __TVOS_16_5: u32 = 160500;
505pub const __TVOS_16_6: u32 = 160600;
506pub const __TVOS_17_0: u32 = 170000;
507pub const __TVOS_17_1: u32 = 170100;
508pub const __TVOS_17_2: u32 = 170200;
509pub const __TVOS_17_3: u32 = 170300;
510pub const __TVOS_17_4: u32 = 170400;
511pub const __TVOS_17_5: u32 = 170500;
512pub const __TVOS_17_6: u32 = 170600;
513pub const __TVOS_18_0: u32 = 180000;
514pub const __TVOS_18_1: u32 = 180100;
515pub const __TVOS_18_2: u32 = 180200;
516pub const __TVOS_18_3: u32 = 180300;
517pub const __TVOS_18_4: u32 = 180400;
518pub const __TVOS_18_5: u32 = 180500;
519pub const __TVOS_18_6: u32 = 180600;
520pub const __TVOS_19_0: u32 = 190000;
521pub const __TVOS_26_0: u32 = 260000;
522pub const __TVOS_26_1: u32 = 260100;
523pub const __TVOS_26_2: u32 = 260200;
524pub const __BRIDGEOS_2_0: u32 = 20000;
525pub const __BRIDGEOS_3_0: u32 = 30000;
526pub const __BRIDGEOS_3_1: u32 = 30100;
527pub const __BRIDGEOS_3_4: u32 = 30400;
528pub const __BRIDGEOS_4_0: u32 = 40000;
529pub const __BRIDGEOS_4_1: u32 = 40100;
530pub const __BRIDGEOS_5_0: u32 = 50000;
531pub const __BRIDGEOS_5_1: u32 = 50100;
532pub const __BRIDGEOS_5_3: u32 = 50300;
533pub const __BRIDGEOS_6_0: u32 = 60000;
534pub const __BRIDGEOS_6_2: u32 = 60200;
535pub const __BRIDGEOS_6_4: u32 = 60400;
536pub const __BRIDGEOS_6_5: u32 = 60500;
537pub const __BRIDGEOS_6_6: u32 = 60600;
538pub const __BRIDGEOS_7_0: u32 = 70000;
539pub const __BRIDGEOS_7_1: u32 = 70100;
540pub const __BRIDGEOS_7_2: u32 = 70200;
541pub const __BRIDGEOS_7_3: u32 = 70300;
542pub const __BRIDGEOS_7_4: u32 = 70400;
543pub const __BRIDGEOS_7_6: u32 = 70600;
544pub const __BRIDGEOS_8_0: u32 = 80000;
545pub const __BRIDGEOS_8_1: u32 = 80100;
546pub const __BRIDGEOS_8_2: u32 = 80200;
547pub const __BRIDGEOS_8_3: u32 = 80300;
548pub const __BRIDGEOS_8_4: u32 = 80400;
549pub const __BRIDGEOS_8_5: u32 = 80500;
550pub const __BRIDGEOS_8_6: u32 = 80600;
551pub const __BRIDGEOS_9_0: u32 = 90000;
552pub const __BRIDGEOS_9_1: u32 = 90100;
553pub const __BRIDGEOS_9_2: u32 = 90200;
554pub const __BRIDGEOS_9_3: u32 = 90300;
555pub const __BRIDGEOS_9_4: u32 = 90400;
556pub const __BRIDGEOS_9_5: u32 = 90500;
557pub const __BRIDGEOS_9_6: u32 = 90600;
558pub const __BRIDGEOS_10_0: u32 = 100000;
559pub const __BRIDGEOS_10_1: u32 = 100100;
560pub const __BRIDGEOS_10_2: u32 = 100200;
561pub const __DRIVERKIT_19_0: u32 = 190000;
562pub const __DRIVERKIT_20_0: u32 = 200000;
563pub const __DRIVERKIT_21_0: u32 = 210000;
564pub const __DRIVERKIT_22_0: u32 = 220000;
565pub const __DRIVERKIT_22_4: u32 = 220400;
566pub const __DRIVERKIT_22_5: u32 = 220500;
567pub const __DRIVERKIT_22_6: u32 = 220600;
568pub const __DRIVERKIT_23_0: u32 = 230000;
569pub const __DRIVERKIT_23_1: u32 = 230100;
570pub const __DRIVERKIT_23_2: u32 = 230200;
571pub const __DRIVERKIT_23_3: u32 = 230300;
572pub const __DRIVERKIT_23_4: u32 = 230400;
573pub const __DRIVERKIT_23_5: u32 = 230500;
574pub const __DRIVERKIT_23_6: u32 = 230600;
575pub const __DRIVERKIT_24_0: u32 = 240000;
576pub const __DRIVERKIT_24_1: u32 = 240100;
577pub const __DRIVERKIT_24_2: u32 = 240200;
578pub const __DRIVERKIT_24_3: u32 = 240300;
579pub const __DRIVERKIT_24_4: u32 = 240400;
580pub const __DRIVERKIT_24_5: u32 = 240500;
581pub const __DRIVERKIT_24_6: u32 = 240600;
582pub const __DRIVERKIT_25_0: u32 = 250000;
583pub const __DRIVERKIT_25_1: u32 = 250100;
584pub const __DRIVERKIT_25_2: u32 = 250200;
585pub const __VISIONOS_1_0: u32 = 10000;
586pub const __VISIONOS_1_1: u32 = 10100;
587pub const __VISIONOS_1_2: u32 = 10200;
588pub const __VISIONOS_1_3: u32 = 10300;
589pub const __VISIONOS_2_0: u32 = 20000;
590pub const __VISIONOS_2_1: u32 = 20100;
591pub const __VISIONOS_2_2: u32 = 20200;
592pub const __VISIONOS_2_3: u32 = 20300;
593pub const __VISIONOS_2_4: u32 = 20400;
594pub const __VISIONOS_2_5: u32 = 20500;
595pub const __VISIONOS_2_6: u32 = 20600;
596pub const __VISIONOS_3_0: u32 = 30000;
597pub const __VISIONOS_26_0: u32 = 260000;
598pub const __VISIONOS_26_1: u32 = 260100;
599pub const __VISIONOS_26_2: u32 = 260200;
600pub const MAC_OS_X_VERSION_10_0: u32 = 1000;
601pub const MAC_OS_X_VERSION_10_1: u32 = 1010;
602pub const MAC_OS_X_VERSION_10_2: u32 = 1020;
603pub const MAC_OS_X_VERSION_10_3: u32 = 1030;
604pub const MAC_OS_X_VERSION_10_4: u32 = 1040;
605pub const MAC_OS_X_VERSION_10_5: u32 = 1050;
606pub const MAC_OS_X_VERSION_10_6: u32 = 1060;
607pub const MAC_OS_X_VERSION_10_7: u32 = 1070;
608pub const MAC_OS_X_VERSION_10_8: u32 = 1080;
609pub const MAC_OS_X_VERSION_10_9: u32 = 1090;
610pub const MAC_OS_X_VERSION_10_10: u32 = 101000;
611pub const MAC_OS_X_VERSION_10_10_2: u32 = 101002;
612pub const MAC_OS_X_VERSION_10_10_3: u32 = 101003;
613pub const MAC_OS_X_VERSION_10_11: u32 = 101100;
614pub const MAC_OS_X_VERSION_10_11_2: u32 = 101102;
615pub const MAC_OS_X_VERSION_10_11_3: u32 = 101103;
616pub const MAC_OS_X_VERSION_10_11_4: u32 = 101104;
617pub const MAC_OS_X_VERSION_10_12: u32 = 101200;
618pub const MAC_OS_X_VERSION_10_12_1: u32 = 101201;
619pub const MAC_OS_X_VERSION_10_12_2: u32 = 101202;
620pub const MAC_OS_X_VERSION_10_12_4: u32 = 101204;
621pub const MAC_OS_X_VERSION_10_13: u32 = 101300;
622pub const MAC_OS_X_VERSION_10_13_1: u32 = 101301;
623pub const MAC_OS_X_VERSION_10_13_2: u32 = 101302;
624pub const MAC_OS_X_VERSION_10_13_4: u32 = 101304;
625pub const MAC_OS_X_VERSION_10_14: u32 = 101400;
626pub const MAC_OS_X_VERSION_10_14_1: u32 = 101401;
627pub const MAC_OS_X_VERSION_10_14_4: u32 = 101404;
628pub const MAC_OS_X_VERSION_10_14_5: u32 = 101405;
629pub const MAC_OS_X_VERSION_10_14_6: u32 = 101406;
630pub const MAC_OS_X_VERSION_10_15: u32 = 101500;
631pub const MAC_OS_X_VERSION_10_15_1: u32 = 101501;
632pub const MAC_OS_X_VERSION_10_15_4: u32 = 101504;
633pub const MAC_OS_X_VERSION_10_16: u32 = 101600;
634pub const MAC_OS_VERSION_11_0: u32 = 110000;
635pub const MAC_OS_VERSION_11_1: u32 = 110100;
636pub const MAC_OS_VERSION_11_3: u32 = 110300;
637pub const MAC_OS_VERSION_11_4: u32 = 110400;
638pub const MAC_OS_VERSION_11_5: u32 = 110500;
639pub const MAC_OS_VERSION_11_6: u32 = 110600;
640pub const MAC_OS_VERSION_12_0: u32 = 120000;
641pub const MAC_OS_VERSION_12_1: u32 = 120100;
642pub const MAC_OS_VERSION_12_2: u32 = 120200;
643pub const MAC_OS_VERSION_12_3: u32 = 120300;
644pub const MAC_OS_VERSION_12_4: u32 = 120400;
645pub const MAC_OS_VERSION_12_5: u32 = 120500;
646pub const MAC_OS_VERSION_12_6: u32 = 120600;
647pub const MAC_OS_VERSION_12_7: u32 = 120700;
648pub const MAC_OS_VERSION_13_0: u32 = 130000;
649pub const MAC_OS_VERSION_13_1: u32 = 130100;
650pub const MAC_OS_VERSION_13_2: u32 = 130200;
651pub const MAC_OS_VERSION_13_3: u32 = 130300;
652pub const MAC_OS_VERSION_13_4: u32 = 130400;
653pub const MAC_OS_VERSION_13_5: u32 = 130500;
654pub const MAC_OS_VERSION_13_6: u32 = 130600;
655pub const MAC_OS_VERSION_13_7: u32 = 130700;
656pub const MAC_OS_VERSION_14_0: u32 = 140000;
657pub const MAC_OS_VERSION_14_1: u32 = 140100;
658pub const MAC_OS_VERSION_14_2: u32 = 140200;
659pub const MAC_OS_VERSION_14_3: u32 = 140300;
660pub const MAC_OS_VERSION_14_4: u32 = 140400;
661pub const MAC_OS_VERSION_14_5: u32 = 140500;
662pub const MAC_OS_VERSION_14_6: u32 = 140600;
663pub const MAC_OS_VERSION_14_7: u32 = 140700;
664pub const MAC_OS_VERSION_15_0: u32 = 150000;
665pub const MAC_OS_VERSION_15_1: u32 = 150100;
666pub const MAC_OS_VERSION_15_2: u32 = 150200;
667pub const MAC_OS_VERSION_15_3: u32 = 150300;
668pub const MAC_OS_VERSION_15_4: u32 = 150400;
669pub const MAC_OS_VERSION_15_5: u32 = 150500;
670pub const MAC_OS_VERSION_15_6: u32 = 150600;
671pub const MAC_OS_VERSION_16_0: u32 = 160000;
672pub const MAC_OS_VERSION_26_0: u32 = 260000;
673pub const MAC_OS_VERSION_26_1: u32 = 260100;
674pub const MAC_OS_VERSION_26_2: u32 = 260200;
675pub const __AVAILABILITY_VERSIONS_VERSION_HASH: u32 = 93585900;
676pub const __AVAILABILITY_VERSIONS_VERSION_STRING: &[u8; 6] = b"Local\0";
677pub const __AVAILABILITY_FILE: &[u8; 23] = b"AvailabilityVersions.h\0";
678pub const __MAC_OS_X_VERSION_MAX_ALLOWED: u32 = 260200;
679pub const __ENABLE_LEGACY_MAC_AVAILABILITY: u32 = 1;
680pub const __DARWIN_WCHAR_MIN: i32 = -2147483648;
681pub const _FORTIFY_SOURCE: u32 = 2;
682pub const __DARWIN_NSIG: u32 = 32;
683pub const NSIG: u32 = 32;
684pub const _ARM_SIGNAL_: u32 = 1;
685pub const SIGHUP: u32 = 1;
686pub const SIGINT: u32 = 2;
687pub const SIGQUIT: u32 = 3;
688pub const SIGILL: u32 = 4;
689pub const SIGTRAP: u32 = 5;
690pub const SIGABRT: u32 = 6;
691pub const SIGIOT: u32 = 6;
692pub const SIGEMT: u32 = 7;
693pub const SIGFPE: u32 = 8;
694pub const SIGKILL: u32 = 9;
695pub const SIGBUS: u32 = 10;
696pub const SIGSEGV: u32 = 11;
697pub const SIGSYS: u32 = 12;
698pub const SIGPIPE: u32 = 13;
699pub const SIGALRM: u32 = 14;
700pub const SIGTERM: u32 = 15;
701pub const SIGURG: u32 = 16;
702pub const SIGSTOP: u32 = 17;
703pub const SIGTSTP: u32 = 18;
704pub const SIGCONT: u32 = 19;
705pub const SIGCHLD: u32 = 20;
706pub const SIGTTIN: u32 = 21;
707pub const SIGTTOU: u32 = 22;
708pub const SIGIO: u32 = 23;
709pub const SIGXCPU: u32 = 24;
710pub const SIGXFSZ: u32 = 25;
711pub const SIGVTALRM: u32 = 26;
712pub const SIGPROF: u32 = 27;
713pub const SIGWINCH: u32 = 28;
714pub const SIGINFO: u32 = 29;
715pub const SIGUSR1: u32 = 30;
716pub const SIGUSR2: u32 = 31;
717pub const __DARWIN_OPAQUE_ARM_THREAD_STATE64: u32 = 0;
718pub const USE_CLANG_STDDEF: u32 = 0;
719pub const SIGEV_NONE: u32 = 0;
720pub const SIGEV_SIGNAL: u32 = 1;
721pub const SIGEV_THREAD: u32 = 3;
722pub const SIGEV_KEVENT: u32 = 4;
723pub const ILL_NOOP: u32 = 0;
724pub const ILL_ILLOPC: u32 = 1;
725pub const ILL_ILLTRP: u32 = 2;
726pub const ILL_PRVOPC: u32 = 3;
727pub const ILL_ILLOPN: u32 = 4;
728pub const ILL_ILLADR: u32 = 5;
729pub const ILL_PRVREG: u32 = 6;
730pub const ILL_COPROC: u32 = 7;
731pub const ILL_BADSTK: u32 = 8;
732pub const FPE_NOOP: u32 = 0;
733pub const FPE_FLTDIV: u32 = 1;
734pub const FPE_FLTOVF: u32 = 2;
735pub const FPE_FLTUND: u32 = 3;
736pub const FPE_FLTRES: u32 = 4;
737pub const FPE_FLTINV: u32 = 5;
738pub const FPE_FLTSUB: u32 = 6;
739pub const FPE_INTDIV: u32 = 7;
740pub const FPE_INTOVF: u32 = 8;
741pub const SEGV_NOOP: u32 = 0;
742pub const SEGV_MAPERR: u32 = 1;
743pub const SEGV_ACCERR: u32 = 2;
744pub const BUS_NOOP: u32 = 0;
745pub const BUS_ADRALN: u32 = 1;
746pub const BUS_ADRERR: u32 = 2;
747pub const BUS_OBJERR: u32 = 3;
748pub const TRAP_BRKPT: u32 = 1;
749pub const TRAP_TRACE: u32 = 2;
750pub const CLD_NOOP: u32 = 0;
751pub const CLD_EXITED: u32 = 1;
752pub const CLD_KILLED: u32 = 2;
753pub const CLD_DUMPED: u32 = 3;
754pub const CLD_TRAPPED: u32 = 4;
755pub const CLD_STOPPED: u32 = 5;
756pub const CLD_CONTINUED: u32 = 6;
757pub const POLL_IN: u32 = 1;
758pub const POLL_OUT: u32 = 2;
759pub const POLL_MSG: u32 = 3;
760pub const POLL_ERR: u32 = 4;
761pub const POLL_PRI: u32 = 5;
762pub const POLL_HUP: u32 = 6;
763pub const SA_ONSTACK: u32 = 1;
764pub const SA_RESTART: u32 = 2;
765pub const SA_RESETHAND: u32 = 4;
766pub const SA_NOCLDSTOP: u32 = 8;
767pub const SA_NODEFER: u32 = 16;
768pub const SA_NOCLDWAIT: u32 = 32;
769pub const SA_SIGINFO: u32 = 64;
770pub const SA_USERTRAMP: u32 = 256;
771pub const SA_64REGSET: u32 = 512;
772pub const SA_USERSPACE_MASK: u32 = 127;
773pub const SIG_BLOCK: u32 = 1;
774pub const SIG_UNBLOCK: u32 = 2;
775pub const SIG_SETMASK: u32 = 3;
776pub const SI_USER: u32 = 65537;
777pub const SI_QUEUE: u32 = 65538;
778pub const SI_TIMER: u32 = 65539;
779pub const SI_ASYNCIO: u32 = 65540;
780pub const SI_MESGQ: u32 = 65541;
781pub const SS_ONSTACK: u32 = 1;
782pub const SS_DISABLE: u32 = 4;
783pub const MINSIGSTKSZ: u32 = 32768;
784pub const SIGSTKSZ: u32 = 131072;
785pub const SV_ONSTACK: u32 = 1;
786pub const SV_INTERRUPT: u32 = 2;
787pub const SV_RESETHAND: u32 = 4;
788pub const SV_NODEFER: u32 = 16;
789pub const SV_NOCLDSTOP: u32 = 8;
790pub const SV_SIGINFO: u32 = 64;
791pub const PRIO_PROCESS: u32 = 0;
792pub const PRIO_PGRP: u32 = 1;
793pub const PRIO_USER: u32 = 2;
794pub const PRIO_DARWIN_THREAD: u32 = 3;
795pub const PRIO_DARWIN_PROCESS: u32 = 4;
796pub const PRIO_MIN: i32 = -20;
797pub const PRIO_MAX: u32 = 20;
798pub const PRIO_DARWIN_BG: u32 = 4096;
799pub const PRIO_DARWIN_NONUI: u32 = 4097;
800pub const RUSAGE_SELF: u32 = 0;
801pub const RUSAGE_CHILDREN: i32 = -1;
802pub const RUSAGE_INFO_V0: u32 = 0;
803pub const RUSAGE_INFO_V1: u32 = 1;
804pub const RUSAGE_INFO_V2: u32 = 2;
805pub const RUSAGE_INFO_V3: u32 = 3;
806pub const RUSAGE_INFO_V4: u32 = 4;
807pub const RUSAGE_INFO_V5: u32 = 5;
808pub const RUSAGE_INFO_V6: u32 = 6;
809pub const RUSAGE_INFO_CURRENT: u32 = 6;
810pub const RU_PROC_RUNS_RESLIDE: u32 = 1;
811pub const RLIMIT_CPU: u32 = 0;
812pub const RLIMIT_FSIZE: u32 = 1;
813pub const RLIMIT_DATA: u32 = 2;
814pub const RLIMIT_STACK: u32 = 3;
815pub const RLIMIT_CORE: u32 = 4;
816pub const RLIMIT_AS: u32 = 5;
817pub const RLIMIT_RSS: u32 = 5;
818pub const RLIMIT_MEMLOCK: u32 = 6;
819pub const RLIMIT_NPROC: u32 = 7;
820pub const RLIMIT_NOFILE: u32 = 8;
821pub const RLIM_NLIMITS: u32 = 9;
822pub const _RLIMIT_POSIX_FLAG: u32 = 4096;
823pub const RLIMIT_WAKEUPS_MONITOR: u32 = 1;
824pub const RLIMIT_CPU_USAGE_MONITOR: u32 = 2;
825pub const RLIMIT_THREAD_CPULIMITS: u32 = 3;
826pub const RLIMIT_FOOTPRINT_INTERVAL: u32 = 4;
827pub const WAKEMON_ENABLE: u32 = 1;
828pub const WAKEMON_DISABLE: u32 = 2;
829pub const WAKEMON_GET_PARAMS: u32 = 4;
830pub const WAKEMON_SET_DEFAULTS: u32 = 8;
831pub const WAKEMON_MAKE_FATAL: u32 = 16;
832pub const CPUMON_MAKE_FATAL: u32 = 4096;
833pub const FOOTPRINT_INTERVAL_RESET: u32 = 1;
834pub const IOPOL_TYPE_DISK: u32 = 0;
835pub const IOPOL_TYPE_VFS_ATIME_UPDATES: u32 = 2;
836pub const IOPOL_TYPE_VFS_MATERIALIZE_DATALESS_FILES: u32 = 3;
837pub const IOPOL_TYPE_VFS_STATFS_NO_DATA_VOLUME: u32 = 4;
838pub const IOPOL_TYPE_VFS_TRIGGER_RESOLVE: u32 = 5;
839pub const IOPOL_TYPE_VFS_IGNORE_CONTENT_PROTECTION: u32 = 6;
840pub const IOPOL_TYPE_VFS_IGNORE_PERMISSIONS: u32 = 7;
841pub const IOPOL_TYPE_VFS_SKIP_MTIME_UPDATE: u32 = 8;
842pub const IOPOL_TYPE_VFS_ALLOW_LOW_SPACE_WRITES: u32 = 9;
843pub const IOPOL_TYPE_VFS_DISALLOW_RW_FOR_O_EVTONLY: u32 = 10;
844pub const IOPOL_TYPE_VFS_ENTITLED_RESERVE_ACCESS: u32 = 14;
845pub const IOPOL_SCOPE_PROCESS: u32 = 0;
846pub const IOPOL_SCOPE_THREAD: u32 = 1;
847pub const IOPOL_SCOPE_DARWIN_BG: u32 = 2;
848pub const IOPOL_DEFAULT: u32 = 0;
849pub const IOPOL_IMPORTANT: u32 = 1;
850pub const IOPOL_PASSIVE: u32 = 2;
851pub const IOPOL_THROTTLE: u32 = 3;
852pub const IOPOL_UTILITY: u32 = 4;
853pub const IOPOL_STANDARD: u32 = 5;
854pub const IOPOL_APPLICATION: u32 = 5;
855pub const IOPOL_NORMAL: u32 = 1;
856pub const IOPOL_ATIME_UPDATES_DEFAULT: u32 = 0;
857pub const IOPOL_ATIME_UPDATES_OFF: u32 = 1;
858pub const IOPOL_MATERIALIZE_DATALESS_FILES_DEFAULT: u32 = 0;
859pub const IOPOL_MATERIALIZE_DATALESS_FILES_OFF: u32 = 1;
860pub const IOPOL_MATERIALIZE_DATALESS_FILES_ON: u32 = 2;
861pub const IOPOL_MATERIALIZE_DATALESS_FILES_ORIG: u32 = 4;
862pub const IOPOL_MATERIALIZE_DATALESS_FILES_BASIC_MASK: u32 = 3;
863pub const IOPOL_VFS_STATFS_NO_DATA_VOLUME_DEFAULT: u32 = 0;
864pub const IOPOL_VFS_STATFS_FORCE_NO_DATA_VOLUME: u32 = 1;
865pub const IOPOL_VFS_TRIGGER_RESOLVE_DEFAULT: u32 = 0;
866pub const IOPOL_VFS_TRIGGER_RESOLVE_OFF: u32 = 1;
867pub const IOPOL_VFS_CONTENT_PROTECTION_DEFAULT: u32 = 0;
868pub const IOPOL_VFS_CONTENT_PROTECTION_IGNORE: u32 = 1;
869pub const IOPOL_VFS_IGNORE_PERMISSIONS_OFF: u32 = 0;
870pub const IOPOL_VFS_IGNORE_PERMISSIONS_ON: u32 = 1;
871pub const IOPOL_VFS_SKIP_MTIME_UPDATE_OFF: u32 = 0;
872pub const IOPOL_VFS_SKIP_MTIME_UPDATE_ON: u32 = 1;
873pub const IOPOL_VFS_SKIP_MTIME_UPDATE_IGNORE: u32 = 2;
874pub const IOPOL_VFS_ALLOW_LOW_SPACE_WRITES_OFF: u32 = 0;
875pub const IOPOL_VFS_ALLOW_LOW_SPACE_WRITES_ON: u32 = 1;
876pub const IOPOL_VFS_DISALLOW_RW_FOR_O_EVTONLY_DEFAULT: u32 = 0;
877pub const IOPOL_VFS_DISALLOW_RW_FOR_O_EVTONLY_ON: u32 = 1;
878pub const IOPOL_VFS_NOCACHE_WRITE_FS_BLKSIZE_DEFAULT: u32 = 0;
879pub const IOPOL_VFS_NOCACHE_WRITE_FS_BLKSIZE_ON: u32 = 1;
880pub const IOPOL_VFS_ENTITLED_RESERVE_ACCESS_OFF: u32 = 0;
881pub const IOPOL_VFS_ENTITLED_RESERVE_ACCESS_ON: u32 = 1;
882pub const WNOHANG: u32 = 1;
883pub const WUNTRACED: u32 = 2;
884pub const WCOREFLAG: u32 = 128;
885pub const _WSTOPPED: u32 = 127;
886pub const WEXITED: u32 = 4;
887pub const WSTOPPED: u32 = 8;
888pub const WCONTINUED: u32 = 16;
889pub const WNOWAIT: u32 = 32;
890pub const WAIT_ANY: i32 = -1;
891pub const WAIT_MYPGRP: u32 = 0;
892pub const _QUAD_HIGHWORD: u32 = 1;
893pub const _QUAD_LOWWORD: u32 = 0;
894pub const __DARWIN_LITTLE_ENDIAN: u32 = 1234;
895pub const __DARWIN_BIG_ENDIAN: u32 = 4321;
896pub const __DARWIN_PDP_ENDIAN: u32 = 3412;
897pub const LITTLE_ENDIAN: u32 = 1234;
898pub const BIG_ENDIAN: u32 = 4321;
899pub const PDP_ENDIAN: u32 = 3412;
900pub const __DARWIN_BYTE_ORDER: u32 = 1234;
901pub const BYTE_ORDER: u32 = 1234;
902pub const EXIT_FAILURE: u32 = 1;
903pub const EXIT_SUCCESS: u32 = 0;
904pub const RAND_MAX: u32 = 2147483647;
905pub const _MALLOC_TYPE_MALLOC_BACKDEPLOY_PUBLIC: u32 = 1;
906pub const IGRAPH_INTEGER_SIZE: u32 = 64;
907pub const __PRI_8_LENGTH_MODIFIER__: &[u8; 3] = b"hh\0";
908pub const __PRI_64_LENGTH_MODIFIER__: &[u8; 3] = b"ll\0";
909pub const __SCN_64_LENGTH_MODIFIER__: &[u8; 3] = b"ll\0";
910pub const __PRI_MAX_LENGTH_MODIFIER__: &[u8; 2] = b"j\0";
911pub const __SCN_MAX_LENGTH_MODIFIER__: &[u8; 2] = b"j\0";
912pub const PRId8: &[u8; 4] = b"hhd\0";
913pub const PRIi8: &[u8; 4] = b"hhi\0";
914pub const PRIo8: &[u8; 4] = b"hho\0";
915pub const PRIu8: &[u8; 4] = b"hhu\0";
916pub const PRIx8: &[u8; 4] = b"hhx\0";
917pub const PRIX8: &[u8; 4] = b"hhX\0";
918pub const PRId16: &[u8; 3] = b"hd\0";
919pub const PRIi16: &[u8; 3] = b"hi\0";
920pub const PRIo16: &[u8; 3] = b"ho\0";
921pub const PRIu16: &[u8; 3] = b"hu\0";
922pub const PRIx16: &[u8; 3] = b"hx\0";
923pub const PRIX16: &[u8; 3] = b"hX\0";
924pub const PRId32: &[u8; 2] = b"d\0";
925pub const PRIi32: &[u8; 2] = b"i\0";
926pub const PRIo32: &[u8; 2] = b"o\0";
927pub const PRIu32: &[u8; 2] = b"u\0";
928pub const PRIx32: &[u8; 2] = b"x\0";
929pub const PRIX32: &[u8; 2] = b"X\0";
930pub const PRId64: &[u8; 4] = b"lld\0";
931pub const PRIi64: &[u8; 4] = b"lli\0";
932pub const PRIo64: &[u8; 4] = b"llo\0";
933pub const PRIu64: &[u8; 4] = b"llu\0";
934pub const PRIx64: &[u8; 4] = b"llx\0";
935pub const PRIX64: &[u8; 4] = b"llX\0";
936pub const PRIdLEAST8: &[u8; 4] = b"hhd\0";
937pub const PRIiLEAST8: &[u8; 4] = b"hhi\0";
938pub const PRIoLEAST8: &[u8; 4] = b"hho\0";
939pub const PRIuLEAST8: &[u8; 4] = b"hhu\0";
940pub const PRIxLEAST8: &[u8; 4] = b"hhx\0";
941pub const PRIXLEAST8: &[u8; 4] = b"hhX\0";
942pub const PRIdLEAST16: &[u8; 3] = b"hd\0";
943pub const PRIiLEAST16: &[u8; 3] = b"hi\0";
944pub const PRIoLEAST16: &[u8; 3] = b"ho\0";
945pub const PRIuLEAST16: &[u8; 3] = b"hu\0";
946pub const PRIxLEAST16: &[u8; 3] = b"hx\0";
947pub const PRIXLEAST16: &[u8; 3] = b"hX\0";
948pub const PRIdLEAST32: &[u8; 2] = b"d\0";
949pub const PRIiLEAST32: &[u8; 2] = b"i\0";
950pub const PRIoLEAST32: &[u8; 2] = b"o\0";
951pub const PRIuLEAST32: &[u8; 2] = b"u\0";
952pub const PRIxLEAST32: &[u8; 2] = b"x\0";
953pub const PRIXLEAST32: &[u8; 2] = b"X\0";
954pub const PRIdLEAST64: &[u8; 4] = b"lld\0";
955pub const PRIiLEAST64: &[u8; 4] = b"lli\0";
956pub const PRIoLEAST64: &[u8; 4] = b"llo\0";
957pub const PRIuLEAST64: &[u8; 4] = b"llu\0";
958pub const PRIxLEAST64: &[u8; 4] = b"llx\0";
959pub const PRIXLEAST64: &[u8; 4] = b"llX\0";
960pub const PRIdFAST8: &[u8; 4] = b"hhd\0";
961pub const PRIiFAST8: &[u8; 4] = b"hhi\0";
962pub const PRIoFAST8: &[u8; 4] = b"hho\0";
963pub const PRIuFAST8: &[u8; 4] = b"hhu\0";
964pub const PRIxFAST8: &[u8; 4] = b"hhx\0";
965pub const PRIXFAST8: &[u8; 4] = b"hhX\0";
966pub const PRIdFAST16: &[u8; 3] = b"hd\0";
967pub const PRIiFAST16: &[u8; 3] = b"hi\0";
968pub const PRIoFAST16: &[u8; 3] = b"ho\0";
969pub const PRIuFAST16: &[u8; 3] = b"hu\0";
970pub const PRIxFAST16: &[u8; 3] = b"hx\0";
971pub const PRIXFAST16: &[u8; 3] = b"hX\0";
972pub const PRIdFAST32: &[u8; 2] = b"d\0";
973pub const PRIiFAST32: &[u8; 2] = b"i\0";
974pub const PRIoFAST32: &[u8; 2] = b"o\0";
975pub const PRIuFAST32: &[u8; 2] = b"u\0";
976pub const PRIxFAST32: &[u8; 2] = b"x\0";
977pub const PRIXFAST32: &[u8; 2] = b"X\0";
978pub const PRIdFAST64: &[u8; 4] = b"lld\0";
979pub const PRIiFAST64: &[u8; 4] = b"lli\0";
980pub const PRIoFAST64: &[u8; 4] = b"llo\0";
981pub const PRIuFAST64: &[u8; 4] = b"llu\0";
982pub const PRIxFAST64: &[u8; 4] = b"llx\0";
983pub const PRIXFAST64: &[u8; 4] = b"llX\0";
984pub const PRIdPTR: &[u8; 3] = b"ld\0";
985pub const PRIiPTR: &[u8; 3] = b"li\0";
986pub const PRIoPTR: &[u8; 3] = b"lo\0";
987pub const PRIuPTR: &[u8; 3] = b"lu\0";
988pub const PRIxPTR: &[u8; 3] = b"lx\0";
989pub const PRIXPTR: &[u8; 3] = b"lX\0";
990pub const PRIdMAX: &[u8; 3] = b"jd\0";
991pub const PRIiMAX: &[u8; 3] = b"ji\0";
992pub const PRIoMAX: &[u8; 3] = b"jo\0";
993pub const PRIuMAX: &[u8; 3] = b"ju\0";
994pub const PRIxMAX: &[u8; 3] = b"jx\0";
995pub const PRIXMAX: &[u8; 3] = b"jX\0";
996pub const SCNd8: &[u8; 4] = b"hhd\0";
997pub const SCNi8: &[u8; 4] = b"hhi\0";
998pub const SCNo8: &[u8; 4] = b"hho\0";
999pub const SCNu8: &[u8; 4] = b"hhu\0";
1000pub const SCNx8: &[u8; 4] = b"hhx\0";
1001pub const SCNd16: &[u8; 3] = b"hd\0";
1002pub const SCNi16: &[u8; 3] = b"hi\0";
1003pub const SCNo16: &[u8; 3] = b"ho\0";
1004pub const SCNu16: &[u8; 3] = b"hu\0";
1005pub const SCNx16: &[u8; 3] = b"hx\0";
1006pub const SCNd32: &[u8; 2] = b"d\0";
1007pub const SCNi32: &[u8; 2] = b"i\0";
1008pub const SCNo32: &[u8; 2] = b"o\0";
1009pub const SCNu32: &[u8; 2] = b"u\0";
1010pub const SCNx32: &[u8; 2] = b"x\0";
1011pub const SCNd64: &[u8; 4] = b"lld\0";
1012pub const SCNi64: &[u8; 4] = b"lli\0";
1013pub const SCNo64: &[u8; 4] = b"llo\0";
1014pub const SCNu64: &[u8; 4] = b"llu\0";
1015pub const SCNx64: &[u8; 4] = b"llx\0";
1016pub const SCNdLEAST8: &[u8; 4] = b"hhd\0";
1017pub const SCNiLEAST8: &[u8; 4] = b"hhi\0";
1018pub const SCNoLEAST8: &[u8; 4] = b"hho\0";
1019pub const SCNuLEAST8: &[u8; 4] = b"hhu\0";
1020pub const SCNxLEAST8: &[u8; 4] = b"hhx\0";
1021pub const SCNdLEAST16: &[u8; 3] = b"hd\0";
1022pub const SCNiLEAST16: &[u8; 3] = b"hi\0";
1023pub const SCNoLEAST16: &[u8; 3] = b"ho\0";
1024pub const SCNuLEAST16: &[u8; 3] = b"hu\0";
1025pub const SCNxLEAST16: &[u8; 3] = b"hx\0";
1026pub const SCNdLEAST32: &[u8; 2] = b"d\0";
1027pub const SCNiLEAST32: &[u8; 2] = b"i\0";
1028pub const SCNoLEAST32: &[u8; 2] = b"o\0";
1029pub const SCNuLEAST32: &[u8; 2] = b"u\0";
1030pub const SCNxLEAST32: &[u8; 2] = b"x\0";
1031pub const SCNdLEAST64: &[u8; 4] = b"lld\0";
1032pub const SCNiLEAST64: &[u8; 4] = b"lli\0";
1033pub const SCNoLEAST64: &[u8; 4] = b"llo\0";
1034pub const SCNuLEAST64: &[u8; 4] = b"llu\0";
1035pub const SCNxLEAST64: &[u8; 4] = b"llx\0";
1036pub const SCNdFAST8: &[u8; 4] = b"hhd\0";
1037pub const SCNiFAST8: &[u8; 4] = b"hhi\0";
1038pub const SCNoFAST8: &[u8; 4] = b"hho\0";
1039pub const SCNuFAST8: &[u8; 4] = b"hhu\0";
1040pub const SCNxFAST8: &[u8; 4] = b"hhx\0";
1041pub const SCNdFAST16: &[u8; 3] = b"hd\0";
1042pub const SCNiFAST16: &[u8; 3] = b"hi\0";
1043pub const SCNoFAST16: &[u8; 3] = b"ho\0";
1044pub const SCNuFAST16: &[u8; 3] = b"hu\0";
1045pub const SCNxFAST16: &[u8; 3] = b"hx\0";
1046pub const SCNdFAST32: &[u8; 2] = b"d\0";
1047pub const SCNiFAST32: &[u8; 2] = b"i\0";
1048pub const SCNoFAST32: &[u8; 2] = b"o\0";
1049pub const SCNuFAST32: &[u8; 2] = b"u\0";
1050pub const SCNxFAST32: &[u8; 2] = b"x\0";
1051pub const SCNdFAST64: &[u8; 4] = b"lld\0";
1052pub const SCNiFAST64: &[u8; 4] = b"lli\0";
1053pub const SCNoFAST64: &[u8; 4] = b"llo\0";
1054pub const SCNuFAST64: &[u8; 4] = b"llu\0";
1055pub const SCNxFAST64: &[u8; 4] = b"llx\0";
1056pub const SCNdPTR: &[u8; 3] = b"ld\0";
1057pub const SCNiPTR: &[u8; 3] = b"li\0";
1058pub const SCNoPTR: &[u8; 3] = b"lo\0";
1059pub const SCNuPTR: &[u8; 3] = b"lu\0";
1060pub const SCNxPTR: &[u8; 3] = b"lx\0";
1061pub const SCNdMAX: &[u8; 3] = b"jd\0";
1062pub const SCNiMAX: &[u8; 3] = b"ji\0";
1063pub const SCNoMAX: &[u8; 3] = b"jo\0";
1064pub const SCNuMAX: &[u8; 3] = b"ju\0";
1065pub const SCNxMAX: &[u8; 3] = b"jx\0";
1066pub const FP_NAN: u32 = 1;
1067pub const FP_INFINITE: u32 = 2;
1068pub const FP_ZERO: u32 = 3;
1069pub const FP_NORMAL: u32 = 4;
1070pub const FP_SUBNORMAL: u32 = 5;
1071pub const FP_SUPERNORMAL: u32 = 6;
1072pub const FP_FAST_FMA: u32 = 1;
1073pub const FP_FAST_FMAF: u32 = 1;
1074pub const FP_FAST_FMAL: u32 = 1;
1075pub const FP_ILOGB0: i32 = -2147483648;
1076pub const FP_ILOGBNAN: i32 = -2147483648;
1077pub const MATH_ERRNO: u32 = 1;
1078pub const MATH_ERREXCEPT: u32 = 2;
1079pub const M_E: f64 = 2.718281828459045;
1080pub const M_LOG2E: f64 = 1.4426950408889634;
1081pub const M_LOG10E: f64 = 0.4342944819032518;
1082pub const M_LN2: f64 = 0.6931471805599453;
1083pub const M_LN10: f64 = 2.302585092994046;
1084pub const M_PI: f64 = 3.141592653589793;
1085pub const M_PI_2: f64 = 1.5707963267948966;
1086pub const M_PI_4: f64 = 0.7853981633974483;
1087pub const M_1_PI: f64 = 0.3183098861837907;
1088pub const M_2_PI: f64 = 0.6366197723675814;
1089pub const M_2_SQRTPI: f64 = 1.1283791670955126;
1090pub const M_SQRT2: f64 = 1.4142135623730951;
1091pub const M_SQRT1_2: f64 = 0.7071067811865476;
1092pub const FP_SNAN: u32 = 1;
1093pub const FP_QNAN: u32 = 1;
1094pub const DOMAIN: u32 = 1;
1095pub const SING: u32 = 2;
1096pub const OVERFLOW: u32 = 3;
1097pub const UNDERFLOW: u32 = 4;
1098pub const TLOSS: u32 = 5;
1099pub const PLOSS: u32 = 6;
1100pub const __bool_true_false_are_defined: u32 = 1;
1101pub const true_: u32 = 1;
1102pub const false_: u32 = 0;
1103pub const USE_CLANG_STDARG: u32 = 0;
1104pub const RENAME_SECLUDE: u32 = 1;
1105pub const RENAME_SWAP: u32 = 2;
1106pub const RENAME_EXCL: u32 = 4;
1107pub const RENAME_RESERVED1: u32 = 8;
1108pub const RENAME_NOFOLLOW_ANY: u32 = 16;
1109pub const RENAME_RESOLVE_BENEATH: u32 = 32;
1110pub const SEEK_SET: u32 = 0;
1111pub const SEEK_CUR: u32 = 1;
1112pub const SEEK_END: u32 = 2;
1113pub const SEEK_HOLE: u32 = 3;
1114pub const SEEK_DATA: u32 = 4;
1115pub const __SLBF: u32 = 1;
1116pub const __SNBF: u32 = 2;
1117pub const __SRD: u32 = 4;
1118pub const __SWR: u32 = 8;
1119pub const __SRW: u32 = 16;
1120pub const __SEOF: u32 = 32;
1121pub const __SERR: u32 = 64;
1122pub const __SMBF: u32 = 128;
1123pub const __SAPP: u32 = 256;
1124pub const __SSTR: u32 = 512;
1125pub const __SOPT: u32 = 1024;
1126pub const __SNPT: u32 = 2048;
1127pub const __SOFF: u32 = 4096;
1128pub const __SMOD: u32 = 8192;
1129pub const __SALC: u32 = 16384;
1130pub const __SIGN: u32 = 32768;
1131pub const _IOFBF: u32 = 0;
1132pub const _IOLBF: u32 = 1;
1133pub const _IONBF: u32 = 2;
1134pub const BUFSIZ: u32 = 1024;
1135pub const EOF: i32 = -1;
1136pub const FOPEN_MAX: u32 = 20;
1137pub const FILENAME_MAX: u32 = 1024;
1138pub const P_tmpdir: &[u8; 10] = b"/var/tmp/\0";
1139pub const L_tmpnam: u32 = 1024;
1140pub const TMP_MAX: u32 = 308915776;
1141pub const L_ctermid: u32 = 1024;
1142pub const _USE_FORTIFY_LEVEL: u32 = 2;
1143pub const IGRAPH_PRId: &[u8; 4] = b"lld\0";
1144pub const IGRAPH_PRIu: &[u8; 4] = b"llu\0";
1145pub const IGRAPH_INTEGER_MAX: u64 = 9223372036854775807;
1146pub const IGRAPH_INTEGER_MIN: i64 = -9223372036854775808;
1147pub const IGRAPH_UINT_MAX: i32 = -1;
1148pub const IGRAPH_VCOUNT_MAX: u64 = 9223372036854775806;
1149pub const IGRAPH_ECOUNT_MAX: u64 = 4611686018427387903;
1150pub const IGRAPH_UNLIMITED: i32 = -1;
1151pub const OUT_FORMAT: &[u8; 3] = b"%g\0";
1152pub const ZERO: f64 = 0.0;
1153pub const ONE: f64 = 1.0;
1154pub const MULTIPLICITY: u32 = 1;
1155pub const NOTORDERED: u32 = 1;
1156pub const NOABS: u32 = 1;
1157pub const IGRAPH_SHORTEST_PATH_EPSILON: f64 = 0.0000000001;
1158pub const IGRAPH_THREAD_SAFE: u32 = 1;
1159unsafe extern "C" {
1160    pub fn igraph_version(
1161        version_string: *mut *const ::std::os::raw::c_char,
1162        major: *mut ::std::os::raw::c_int,
1163        minor: *mut ::std::os::raw::c_int,
1164        patch: *mut ::std::os::raw::c_int,
1165    );
1166}
1167pub type int_least8_t = i8;
1168pub type int_least16_t = i16;
1169pub type int_least32_t = i32;
1170pub type int_least64_t = i64;
1171pub type uint_least8_t = u8;
1172pub type uint_least16_t = u16;
1173pub type uint_least32_t = u32;
1174pub type uint_least64_t = u64;
1175pub type int_fast8_t = i8;
1176pub type int_fast16_t = i16;
1177pub type int_fast32_t = i32;
1178pub type int_fast64_t = i64;
1179pub type uint_fast8_t = u8;
1180pub type uint_fast16_t = u16;
1181pub type uint_fast32_t = u32;
1182pub type uint_fast64_t = u64;
1183pub type __int8_t = ::std::os::raw::c_schar;
1184pub type __uint8_t = ::std::os::raw::c_uchar;
1185pub type __int16_t = ::std::os::raw::c_short;
1186pub type __uint16_t = ::std::os::raw::c_ushort;
1187pub type __int32_t = ::std::os::raw::c_int;
1188pub type __uint32_t = ::std::os::raw::c_uint;
1189pub type __int64_t = ::std::os::raw::c_longlong;
1190pub type __uint64_t = ::std::os::raw::c_ulonglong;
1191pub type __darwin_intptr_t = ::std::os::raw::c_long;
1192pub type __darwin_natural_t = ::std::os::raw::c_uint;
1193pub type __darwin_ct_rune_t = ::std::os::raw::c_int;
1194#[repr(C)]
1195#[derive(Copy, Clone)]
1196pub union __mbstate_t {
1197    pub __mbstate8: [::std::os::raw::c_char; 128usize],
1198    pub _mbstateL: ::std::os::raw::c_longlong,
1199}
1200#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1201const _: () = {
1202    ["Size of __mbstate_t"][::std::mem::size_of::<__mbstate_t>() - 128usize];
1203    ["Alignment of __mbstate_t"][::std::mem::align_of::<__mbstate_t>() - 8usize];
1204    ["Offset of field: __mbstate_t::__mbstate8"]
1205        [::std::mem::offset_of!(__mbstate_t, __mbstate8) - 0usize];
1206    ["Offset of field: __mbstate_t::_mbstateL"]
1207        [::std::mem::offset_of!(__mbstate_t, _mbstateL) - 0usize];
1208};
1209pub type __darwin_mbstate_t = __mbstate_t;
1210pub type __darwin_ptrdiff_t = ::std::os::raw::c_long;
1211pub type __darwin_size_t = ::std::os::raw::c_ulong;
1212pub type __darwin_va_list = __builtin_va_list;
1213pub type __darwin_wchar_t = ::std::os::raw::c_int;
1214pub type __darwin_rune_t = __darwin_wchar_t;
1215pub type __darwin_wint_t = ::std::os::raw::c_int;
1216pub type __darwin_clock_t = ::std::os::raw::c_ulong;
1217pub type __darwin_socklen_t = __uint32_t;
1218pub type __darwin_ssize_t = ::std::os::raw::c_long;
1219pub type __darwin_time_t = ::std::os::raw::c_long;
1220pub type __darwin_blkcnt_t = __int64_t;
1221pub type __darwin_blksize_t = __int32_t;
1222pub type __darwin_dev_t = __int32_t;
1223pub type __darwin_fsblkcnt_t = ::std::os::raw::c_uint;
1224pub type __darwin_fsfilcnt_t = ::std::os::raw::c_uint;
1225pub type __darwin_gid_t = __uint32_t;
1226pub type __darwin_id_t = __uint32_t;
1227pub type __darwin_ino64_t = __uint64_t;
1228pub type __darwin_ino_t = __darwin_ino64_t;
1229pub type __darwin_mach_port_name_t = __darwin_natural_t;
1230pub type __darwin_mach_port_t = __darwin_mach_port_name_t;
1231pub type __darwin_mode_t = __uint16_t;
1232pub type __darwin_off_t = __int64_t;
1233pub type __darwin_pid_t = __int32_t;
1234pub type __darwin_sigset_t = __uint32_t;
1235pub type __darwin_suseconds_t = __int32_t;
1236pub type __darwin_uid_t = __uint32_t;
1237pub type __darwin_useconds_t = __uint32_t;
1238pub type __darwin_uuid_t = [::std::os::raw::c_uchar; 16usize];
1239pub type __darwin_uuid_string_t = [::std::os::raw::c_char; 37usize];
1240#[repr(C)]
1241#[derive(Debug, Copy, Clone)]
1242pub struct __darwin_pthread_handler_rec {
1243    pub __routine: ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
1244    pub __arg: *mut ::std::os::raw::c_void,
1245    pub __next: *mut __darwin_pthread_handler_rec,
1246}
1247#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1248const _: () = {
1249    ["Size of __darwin_pthread_handler_rec"]
1250        [::std::mem::size_of::<__darwin_pthread_handler_rec>() - 24usize];
1251    ["Alignment of __darwin_pthread_handler_rec"]
1252        [::std::mem::align_of::<__darwin_pthread_handler_rec>() - 8usize];
1253    ["Offset of field: __darwin_pthread_handler_rec::__routine"]
1254        [::std::mem::offset_of!(__darwin_pthread_handler_rec, __routine) - 0usize];
1255    ["Offset of field: __darwin_pthread_handler_rec::__arg"]
1256        [::std::mem::offset_of!(__darwin_pthread_handler_rec, __arg) - 8usize];
1257    ["Offset of field: __darwin_pthread_handler_rec::__next"]
1258        [::std::mem::offset_of!(__darwin_pthread_handler_rec, __next) - 16usize];
1259};
1260#[repr(C)]
1261#[derive(Debug, Copy, Clone)]
1262pub struct _opaque_pthread_attr_t {
1263    pub __sig: ::std::os::raw::c_long,
1264    pub __opaque: [::std::os::raw::c_char; 56usize],
1265}
1266#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1267const _: () = {
1268    ["Size of _opaque_pthread_attr_t"][::std::mem::size_of::<_opaque_pthread_attr_t>() - 64usize];
1269    ["Alignment of _opaque_pthread_attr_t"]
1270        [::std::mem::align_of::<_opaque_pthread_attr_t>() - 8usize];
1271    ["Offset of field: _opaque_pthread_attr_t::__sig"]
1272        [::std::mem::offset_of!(_opaque_pthread_attr_t, __sig) - 0usize];
1273    ["Offset of field: _opaque_pthread_attr_t::__opaque"]
1274        [::std::mem::offset_of!(_opaque_pthread_attr_t, __opaque) - 8usize];
1275};
1276#[repr(C)]
1277#[derive(Debug, Copy, Clone)]
1278pub struct _opaque_pthread_cond_t {
1279    pub __sig: ::std::os::raw::c_long,
1280    pub __opaque: [::std::os::raw::c_char; 40usize],
1281}
1282#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1283const _: () = {
1284    ["Size of _opaque_pthread_cond_t"][::std::mem::size_of::<_opaque_pthread_cond_t>() - 48usize];
1285    ["Alignment of _opaque_pthread_cond_t"]
1286        [::std::mem::align_of::<_opaque_pthread_cond_t>() - 8usize];
1287    ["Offset of field: _opaque_pthread_cond_t::__sig"]
1288        [::std::mem::offset_of!(_opaque_pthread_cond_t, __sig) - 0usize];
1289    ["Offset of field: _opaque_pthread_cond_t::__opaque"]
1290        [::std::mem::offset_of!(_opaque_pthread_cond_t, __opaque) - 8usize];
1291};
1292#[repr(C)]
1293#[derive(Debug, Copy, Clone)]
1294pub struct _opaque_pthread_condattr_t {
1295    pub __sig: ::std::os::raw::c_long,
1296    pub __opaque: [::std::os::raw::c_char; 8usize],
1297}
1298#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1299const _: () = {
1300    ["Size of _opaque_pthread_condattr_t"]
1301        [::std::mem::size_of::<_opaque_pthread_condattr_t>() - 16usize];
1302    ["Alignment of _opaque_pthread_condattr_t"]
1303        [::std::mem::align_of::<_opaque_pthread_condattr_t>() - 8usize];
1304    ["Offset of field: _opaque_pthread_condattr_t::__sig"]
1305        [::std::mem::offset_of!(_opaque_pthread_condattr_t, __sig) - 0usize];
1306    ["Offset of field: _opaque_pthread_condattr_t::__opaque"]
1307        [::std::mem::offset_of!(_opaque_pthread_condattr_t, __opaque) - 8usize];
1308};
1309#[repr(C)]
1310#[derive(Debug, Copy, Clone)]
1311pub struct _opaque_pthread_mutex_t {
1312    pub __sig: ::std::os::raw::c_long,
1313    pub __opaque: [::std::os::raw::c_char; 56usize],
1314}
1315#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1316const _: () = {
1317    ["Size of _opaque_pthread_mutex_t"][::std::mem::size_of::<_opaque_pthread_mutex_t>() - 64usize];
1318    ["Alignment of _opaque_pthread_mutex_t"]
1319        [::std::mem::align_of::<_opaque_pthread_mutex_t>() - 8usize];
1320    ["Offset of field: _opaque_pthread_mutex_t::__sig"]
1321        [::std::mem::offset_of!(_opaque_pthread_mutex_t, __sig) - 0usize];
1322    ["Offset of field: _opaque_pthread_mutex_t::__opaque"]
1323        [::std::mem::offset_of!(_opaque_pthread_mutex_t, __opaque) - 8usize];
1324};
1325#[repr(C)]
1326#[derive(Debug, Copy, Clone)]
1327pub struct _opaque_pthread_mutexattr_t {
1328    pub __sig: ::std::os::raw::c_long,
1329    pub __opaque: [::std::os::raw::c_char; 8usize],
1330}
1331#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1332const _: () = {
1333    ["Size of _opaque_pthread_mutexattr_t"]
1334        [::std::mem::size_of::<_opaque_pthread_mutexattr_t>() - 16usize];
1335    ["Alignment of _opaque_pthread_mutexattr_t"]
1336        [::std::mem::align_of::<_opaque_pthread_mutexattr_t>() - 8usize];
1337    ["Offset of field: _opaque_pthread_mutexattr_t::__sig"]
1338        [::std::mem::offset_of!(_opaque_pthread_mutexattr_t, __sig) - 0usize];
1339    ["Offset of field: _opaque_pthread_mutexattr_t::__opaque"]
1340        [::std::mem::offset_of!(_opaque_pthread_mutexattr_t, __opaque) - 8usize];
1341};
1342#[repr(C)]
1343#[derive(Debug, Copy, Clone)]
1344pub struct _opaque_pthread_once_t {
1345    pub __sig: ::std::os::raw::c_long,
1346    pub __opaque: [::std::os::raw::c_char; 8usize],
1347}
1348#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1349const _: () = {
1350    ["Size of _opaque_pthread_once_t"][::std::mem::size_of::<_opaque_pthread_once_t>() - 16usize];
1351    ["Alignment of _opaque_pthread_once_t"]
1352        [::std::mem::align_of::<_opaque_pthread_once_t>() - 8usize];
1353    ["Offset of field: _opaque_pthread_once_t::__sig"]
1354        [::std::mem::offset_of!(_opaque_pthread_once_t, __sig) - 0usize];
1355    ["Offset of field: _opaque_pthread_once_t::__opaque"]
1356        [::std::mem::offset_of!(_opaque_pthread_once_t, __opaque) - 8usize];
1357};
1358#[repr(C)]
1359#[derive(Debug, Copy, Clone)]
1360pub struct _opaque_pthread_rwlock_t {
1361    pub __sig: ::std::os::raw::c_long,
1362    pub __opaque: [::std::os::raw::c_char; 192usize],
1363}
1364#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1365const _: () = {
1366    ["Size of _opaque_pthread_rwlock_t"]
1367        [::std::mem::size_of::<_opaque_pthread_rwlock_t>() - 200usize];
1368    ["Alignment of _opaque_pthread_rwlock_t"]
1369        [::std::mem::align_of::<_opaque_pthread_rwlock_t>() - 8usize];
1370    ["Offset of field: _opaque_pthread_rwlock_t::__sig"]
1371        [::std::mem::offset_of!(_opaque_pthread_rwlock_t, __sig) - 0usize];
1372    ["Offset of field: _opaque_pthread_rwlock_t::__opaque"]
1373        [::std::mem::offset_of!(_opaque_pthread_rwlock_t, __opaque) - 8usize];
1374};
1375#[repr(C)]
1376#[derive(Debug, Copy, Clone)]
1377pub struct _opaque_pthread_rwlockattr_t {
1378    pub __sig: ::std::os::raw::c_long,
1379    pub __opaque: [::std::os::raw::c_char; 16usize],
1380}
1381#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1382const _: () = {
1383    ["Size of _opaque_pthread_rwlockattr_t"]
1384        [::std::mem::size_of::<_opaque_pthread_rwlockattr_t>() - 24usize];
1385    ["Alignment of _opaque_pthread_rwlockattr_t"]
1386        [::std::mem::align_of::<_opaque_pthread_rwlockattr_t>() - 8usize];
1387    ["Offset of field: _opaque_pthread_rwlockattr_t::__sig"]
1388        [::std::mem::offset_of!(_opaque_pthread_rwlockattr_t, __sig) - 0usize];
1389    ["Offset of field: _opaque_pthread_rwlockattr_t::__opaque"]
1390        [::std::mem::offset_of!(_opaque_pthread_rwlockattr_t, __opaque) - 8usize];
1391};
1392#[repr(C)]
1393#[derive(Debug, Copy, Clone)]
1394pub struct _opaque_pthread_t {
1395    pub __sig: ::std::os::raw::c_long,
1396    pub __cleanup_stack: *mut __darwin_pthread_handler_rec,
1397    pub __opaque: [::std::os::raw::c_char; 8176usize],
1398}
1399#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1400const _: () = {
1401    ["Size of _opaque_pthread_t"][::std::mem::size_of::<_opaque_pthread_t>() - 8192usize];
1402    ["Alignment of _opaque_pthread_t"][::std::mem::align_of::<_opaque_pthread_t>() - 8usize];
1403    ["Offset of field: _opaque_pthread_t::__sig"]
1404        [::std::mem::offset_of!(_opaque_pthread_t, __sig) - 0usize];
1405    ["Offset of field: _opaque_pthread_t::__cleanup_stack"]
1406        [::std::mem::offset_of!(_opaque_pthread_t, __cleanup_stack) - 8usize];
1407    ["Offset of field: _opaque_pthread_t::__opaque"]
1408        [::std::mem::offset_of!(_opaque_pthread_t, __opaque) - 16usize];
1409};
1410pub type __darwin_pthread_attr_t = _opaque_pthread_attr_t;
1411pub type __darwin_pthread_cond_t = _opaque_pthread_cond_t;
1412pub type __darwin_pthread_condattr_t = _opaque_pthread_condattr_t;
1413pub type __darwin_pthread_key_t = ::std::os::raw::c_ulong;
1414pub type __darwin_pthread_mutex_t = _opaque_pthread_mutex_t;
1415pub type __darwin_pthread_mutexattr_t = _opaque_pthread_mutexattr_t;
1416pub type __darwin_pthread_once_t = _opaque_pthread_once_t;
1417pub type __darwin_pthread_rwlock_t = _opaque_pthread_rwlock_t;
1418pub type __darwin_pthread_rwlockattr_t = _opaque_pthread_rwlockattr_t;
1419pub type __darwin_pthread_t = *mut _opaque_pthread_t;
1420pub type intmax_t = ::std::os::raw::c_long;
1421pub type uintmax_t = ::std::os::raw::c_ulong;
1422pub type __darwin_nl_item = ::std::os::raw::c_int;
1423pub type __darwin_wctrans_t = ::std::os::raw::c_int;
1424pub type __darwin_wctype_t = __uint32_t;
1425pub const idtype_t_P_ALL: idtype_t = 0;
1426pub const idtype_t_P_PID: idtype_t = 1;
1427pub const idtype_t_P_PGID: idtype_t = 2;
1428pub type idtype_t = ::std::os::raw::c_uint;
1429pub type pid_t = __darwin_pid_t;
1430pub type id_t = __darwin_id_t;
1431pub type sig_atomic_t = ::std::os::raw::c_int;
1432pub type u_int8_t = ::std::os::raw::c_uchar;
1433pub type u_int16_t = ::std::os::raw::c_ushort;
1434pub type u_int32_t = ::std::os::raw::c_uint;
1435pub type u_int64_t = ::std::os::raw::c_ulonglong;
1436pub type register_t = i64;
1437pub type user_addr_t = u_int64_t;
1438pub type user_size_t = u_int64_t;
1439pub type user_ssize_t = i64;
1440pub type user_long_t = i64;
1441pub type user_ulong_t = u_int64_t;
1442pub type user_time_t = i64;
1443pub type user_off_t = i64;
1444pub type syscall_arg_t = u_int64_t;
1445#[repr(C)]
1446#[derive(Debug, Copy, Clone)]
1447pub struct __darwin_arm_exception_state {
1448    pub __exception: __uint32_t,
1449    pub __fsr: __uint32_t,
1450    pub __far: __uint32_t,
1451}
1452#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1453const _: () = {
1454    ["Size of __darwin_arm_exception_state"]
1455        [::std::mem::size_of::<__darwin_arm_exception_state>() - 12usize];
1456    ["Alignment of __darwin_arm_exception_state"]
1457        [::std::mem::align_of::<__darwin_arm_exception_state>() - 4usize];
1458    ["Offset of field: __darwin_arm_exception_state::__exception"]
1459        [::std::mem::offset_of!(__darwin_arm_exception_state, __exception) - 0usize];
1460    ["Offset of field: __darwin_arm_exception_state::__fsr"]
1461        [::std::mem::offset_of!(__darwin_arm_exception_state, __fsr) - 4usize];
1462    ["Offset of field: __darwin_arm_exception_state::__far"]
1463        [::std::mem::offset_of!(__darwin_arm_exception_state, __far) - 8usize];
1464};
1465#[repr(C)]
1466#[derive(Debug, Copy, Clone)]
1467pub struct __darwin_arm_exception_state64 {
1468    pub __far: __uint64_t,
1469    pub __esr: __uint32_t,
1470    pub __exception: __uint32_t,
1471}
1472#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1473const _: () = {
1474    ["Size of __darwin_arm_exception_state64"]
1475        [::std::mem::size_of::<__darwin_arm_exception_state64>() - 16usize];
1476    ["Alignment of __darwin_arm_exception_state64"]
1477        [::std::mem::align_of::<__darwin_arm_exception_state64>() - 8usize];
1478    ["Offset of field: __darwin_arm_exception_state64::__far"]
1479        [::std::mem::offset_of!(__darwin_arm_exception_state64, __far) - 0usize];
1480    ["Offset of field: __darwin_arm_exception_state64::__esr"]
1481        [::std::mem::offset_of!(__darwin_arm_exception_state64, __esr) - 8usize];
1482    ["Offset of field: __darwin_arm_exception_state64::__exception"]
1483        [::std::mem::offset_of!(__darwin_arm_exception_state64, __exception) - 12usize];
1484};
1485#[repr(C)]
1486#[derive(Debug, Copy, Clone)]
1487pub struct __darwin_arm_exception_state64_v2 {
1488    pub __far: __uint64_t,
1489    pub __esr: __uint64_t,
1490}
1491#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1492const _: () = {
1493    ["Size of __darwin_arm_exception_state64_v2"]
1494        [::std::mem::size_of::<__darwin_arm_exception_state64_v2>() - 16usize];
1495    ["Alignment of __darwin_arm_exception_state64_v2"]
1496        [::std::mem::align_of::<__darwin_arm_exception_state64_v2>() - 8usize];
1497    ["Offset of field: __darwin_arm_exception_state64_v2::__far"]
1498        [::std::mem::offset_of!(__darwin_arm_exception_state64_v2, __far) - 0usize];
1499    ["Offset of field: __darwin_arm_exception_state64_v2::__esr"]
1500        [::std::mem::offset_of!(__darwin_arm_exception_state64_v2, __esr) - 8usize];
1501};
1502#[repr(C)]
1503#[derive(Debug, Copy, Clone)]
1504pub struct __darwin_arm_thread_state {
1505    pub __r: [__uint32_t; 13usize],
1506    pub __sp: __uint32_t,
1507    pub __lr: __uint32_t,
1508    pub __pc: __uint32_t,
1509    pub __cpsr: __uint32_t,
1510}
1511#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1512const _: () = {
1513    ["Size of __darwin_arm_thread_state"]
1514        [::std::mem::size_of::<__darwin_arm_thread_state>() - 68usize];
1515    ["Alignment of __darwin_arm_thread_state"]
1516        [::std::mem::align_of::<__darwin_arm_thread_state>() - 4usize];
1517    ["Offset of field: __darwin_arm_thread_state::__r"]
1518        [::std::mem::offset_of!(__darwin_arm_thread_state, __r) - 0usize];
1519    ["Offset of field: __darwin_arm_thread_state::__sp"]
1520        [::std::mem::offset_of!(__darwin_arm_thread_state, __sp) - 52usize];
1521    ["Offset of field: __darwin_arm_thread_state::__lr"]
1522        [::std::mem::offset_of!(__darwin_arm_thread_state, __lr) - 56usize];
1523    ["Offset of field: __darwin_arm_thread_state::__pc"]
1524        [::std::mem::offset_of!(__darwin_arm_thread_state, __pc) - 60usize];
1525    ["Offset of field: __darwin_arm_thread_state::__cpsr"]
1526        [::std::mem::offset_of!(__darwin_arm_thread_state, __cpsr) - 64usize];
1527};
1528#[repr(C)]
1529#[derive(Debug, Copy, Clone)]
1530pub struct __darwin_arm_thread_state64 {
1531    pub __x: [__uint64_t; 29usize],
1532    pub __fp: __uint64_t,
1533    pub __lr: __uint64_t,
1534    pub __sp: __uint64_t,
1535    pub __pc: __uint64_t,
1536    pub __cpsr: __uint32_t,
1537    pub __pad: __uint32_t,
1538}
1539#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1540const _: () = {
1541    ["Size of __darwin_arm_thread_state64"]
1542        [::std::mem::size_of::<__darwin_arm_thread_state64>() - 272usize];
1543    ["Alignment of __darwin_arm_thread_state64"]
1544        [::std::mem::align_of::<__darwin_arm_thread_state64>() - 8usize];
1545    ["Offset of field: __darwin_arm_thread_state64::__x"]
1546        [::std::mem::offset_of!(__darwin_arm_thread_state64, __x) - 0usize];
1547    ["Offset of field: __darwin_arm_thread_state64::__fp"]
1548        [::std::mem::offset_of!(__darwin_arm_thread_state64, __fp) - 232usize];
1549    ["Offset of field: __darwin_arm_thread_state64::__lr"]
1550        [::std::mem::offset_of!(__darwin_arm_thread_state64, __lr) - 240usize];
1551    ["Offset of field: __darwin_arm_thread_state64::__sp"]
1552        [::std::mem::offset_of!(__darwin_arm_thread_state64, __sp) - 248usize];
1553    ["Offset of field: __darwin_arm_thread_state64::__pc"]
1554        [::std::mem::offset_of!(__darwin_arm_thread_state64, __pc) - 256usize];
1555    ["Offset of field: __darwin_arm_thread_state64::__cpsr"]
1556        [::std::mem::offset_of!(__darwin_arm_thread_state64, __cpsr) - 264usize];
1557    ["Offset of field: __darwin_arm_thread_state64::__pad"]
1558        [::std::mem::offset_of!(__darwin_arm_thread_state64, __pad) - 268usize];
1559};
1560#[repr(C)]
1561#[derive(Debug, Copy, Clone)]
1562pub struct __darwin_arm_vfp_state {
1563    pub __r: [__uint32_t; 64usize],
1564    pub __fpscr: __uint32_t,
1565}
1566#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1567const _: () = {
1568    ["Size of __darwin_arm_vfp_state"][::std::mem::size_of::<__darwin_arm_vfp_state>() - 260usize];
1569    ["Alignment of __darwin_arm_vfp_state"]
1570        [::std::mem::align_of::<__darwin_arm_vfp_state>() - 4usize];
1571    ["Offset of field: __darwin_arm_vfp_state::__r"]
1572        [::std::mem::offset_of!(__darwin_arm_vfp_state, __r) - 0usize];
1573    ["Offset of field: __darwin_arm_vfp_state::__fpscr"]
1574        [::std::mem::offset_of!(__darwin_arm_vfp_state, __fpscr) - 256usize];
1575};
1576#[repr(C)]
1577#[repr(align(16))]
1578#[derive(Debug, Copy, Clone)]
1579pub struct __darwin_arm_neon_state64 {
1580    pub __v: [__uint128_t; 32usize],
1581    pub __fpsr: __uint32_t,
1582    pub __fpcr: __uint32_t,
1583}
1584#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1585const _: () = {
1586    ["Size of __darwin_arm_neon_state64"]
1587        [::std::mem::size_of::<__darwin_arm_neon_state64>() - 528usize];
1588    ["Alignment of __darwin_arm_neon_state64"]
1589        [::std::mem::align_of::<__darwin_arm_neon_state64>() - 16usize];
1590    ["Offset of field: __darwin_arm_neon_state64::__v"]
1591        [::std::mem::offset_of!(__darwin_arm_neon_state64, __v) - 0usize];
1592    ["Offset of field: __darwin_arm_neon_state64::__fpsr"]
1593        [::std::mem::offset_of!(__darwin_arm_neon_state64, __fpsr) - 512usize];
1594    ["Offset of field: __darwin_arm_neon_state64::__fpcr"]
1595        [::std::mem::offset_of!(__darwin_arm_neon_state64, __fpcr) - 516usize];
1596};
1597#[repr(C)]
1598#[repr(align(16))]
1599#[derive(Debug, Copy, Clone)]
1600pub struct __darwin_arm_neon_state {
1601    pub __v: [__uint128_t; 16usize],
1602    pub __fpsr: __uint32_t,
1603    pub __fpcr: __uint32_t,
1604}
1605#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1606const _: () = {
1607    ["Size of __darwin_arm_neon_state"]
1608        [::std::mem::size_of::<__darwin_arm_neon_state>() - 272usize];
1609    ["Alignment of __darwin_arm_neon_state"]
1610        [::std::mem::align_of::<__darwin_arm_neon_state>() - 16usize];
1611    ["Offset of field: __darwin_arm_neon_state::__v"]
1612        [::std::mem::offset_of!(__darwin_arm_neon_state, __v) - 0usize];
1613    ["Offset of field: __darwin_arm_neon_state::__fpsr"]
1614        [::std::mem::offset_of!(__darwin_arm_neon_state, __fpsr) - 256usize];
1615    ["Offset of field: __darwin_arm_neon_state::__fpcr"]
1616        [::std::mem::offset_of!(__darwin_arm_neon_state, __fpcr) - 260usize];
1617};
1618#[repr(C)]
1619#[derive(Debug, Copy, Clone)]
1620pub struct __arm_pagein_state {
1621    pub __pagein_error: ::std::os::raw::c_int,
1622}
1623#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1624const _: () = {
1625    ["Size of __arm_pagein_state"][::std::mem::size_of::<__arm_pagein_state>() - 4usize];
1626    ["Alignment of __arm_pagein_state"][::std::mem::align_of::<__arm_pagein_state>() - 4usize];
1627    ["Offset of field: __arm_pagein_state::__pagein_error"]
1628        [::std::mem::offset_of!(__arm_pagein_state, __pagein_error) - 0usize];
1629};
1630#[repr(C)]
1631#[derive(Debug, Copy, Clone)]
1632pub struct __darwin_arm_sme_state {
1633    pub __svcr: __uint64_t,
1634    pub __tpidr2_el0: __uint64_t,
1635    pub __svl_b: __uint16_t,
1636}
1637#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1638const _: () = {
1639    ["Size of __darwin_arm_sme_state"][::std::mem::size_of::<__darwin_arm_sme_state>() - 24usize];
1640    ["Alignment of __darwin_arm_sme_state"]
1641        [::std::mem::align_of::<__darwin_arm_sme_state>() - 8usize];
1642    ["Offset of field: __darwin_arm_sme_state::__svcr"]
1643        [::std::mem::offset_of!(__darwin_arm_sme_state, __svcr) - 0usize];
1644    ["Offset of field: __darwin_arm_sme_state::__tpidr2_el0"]
1645        [::std::mem::offset_of!(__darwin_arm_sme_state, __tpidr2_el0) - 8usize];
1646    ["Offset of field: __darwin_arm_sme_state::__svl_b"]
1647        [::std::mem::offset_of!(__darwin_arm_sme_state, __svl_b) - 16usize];
1648};
1649#[repr(C)]
1650#[repr(align(4))]
1651#[derive(Debug, Copy, Clone)]
1652pub struct __darwin_arm_sve_z_state {
1653    pub __z: [[::std::os::raw::c_char; 256usize]; 16usize],
1654}
1655#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1656const _: () = {
1657    ["Size of __darwin_arm_sve_z_state"]
1658        [::std::mem::size_of::<__darwin_arm_sve_z_state>() - 4096usize];
1659    ["Alignment of __darwin_arm_sve_z_state"]
1660        [::std::mem::align_of::<__darwin_arm_sve_z_state>() - 4usize];
1661    ["Offset of field: __darwin_arm_sve_z_state::__z"]
1662        [::std::mem::offset_of!(__darwin_arm_sve_z_state, __z) - 0usize];
1663};
1664#[repr(C)]
1665#[repr(align(4))]
1666#[derive(Debug, Copy, Clone)]
1667pub struct __darwin_arm_sve_p_state {
1668    pub __p: [[::std::os::raw::c_char; 32usize]; 16usize],
1669}
1670#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1671const _: () = {
1672    ["Size of __darwin_arm_sve_p_state"]
1673        [::std::mem::size_of::<__darwin_arm_sve_p_state>() - 512usize];
1674    ["Alignment of __darwin_arm_sve_p_state"]
1675        [::std::mem::align_of::<__darwin_arm_sve_p_state>() - 4usize];
1676    ["Offset of field: __darwin_arm_sve_p_state::__p"]
1677        [::std::mem::offset_of!(__darwin_arm_sve_p_state, __p) - 0usize];
1678};
1679#[repr(C)]
1680#[repr(align(4))]
1681#[derive(Debug, Copy, Clone)]
1682pub struct __darwin_arm_sme_za_state {
1683    pub __za: [::std::os::raw::c_char; 4096usize],
1684}
1685#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1686const _: () = {
1687    ["Size of __darwin_arm_sme_za_state"]
1688        [::std::mem::size_of::<__darwin_arm_sme_za_state>() - 4096usize];
1689    ["Alignment of __darwin_arm_sme_za_state"]
1690        [::std::mem::align_of::<__darwin_arm_sme_za_state>() - 4usize];
1691    ["Offset of field: __darwin_arm_sme_za_state::__za"]
1692        [::std::mem::offset_of!(__darwin_arm_sme_za_state, __za) - 0usize];
1693};
1694#[repr(C)]
1695#[repr(align(4))]
1696#[derive(Debug, Copy, Clone)]
1697pub struct __darwin_arm_sme2_state {
1698    pub __zt0: [::std::os::raw::c_char; 64usize],
1699}
1700#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1701const _: () = {
1702    ["Size of __darwin_arm_sme2_state"][::std::mem::size_of::<__darwin_arm_sme2_state>() - 64usize];
1703    ["Alignment of __darwin_arm_sme2_state"]
1704        [::std::mem::align_of::<__darwin_arm_sme2_state>() - 4usize];
1705    ["Offset of field: __darwin_arm_sme2_state::__zt0"]
1706        [::std::mem::offset_of!(__darwin_arm_sme2_state, __zt0) - 0usize];
1707};
1708#[repr(C)]
1709#[derive(Debug, Copy, Clone)]
1710pub struct __arm_legacy_debug_state {
1711    pub __bvr: [__uint32_t; 16usize],
1712    pub __bcr: [__uint32_t; 16usize],
1713    pub __wvr: [__uint32_t; 16usize],
1714    pub __wcr: [__uint32_t; 16usize],
1715}
1716#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1717const _: () = {
1718    ["Size of __arm_legacy_debug_state"]
1719        [::std::mem::size_of::<__arm_legacy_debug_state>() - 256usize];
1720    ["Alignment of __arm_legacy_debug_state"]
1721        [::std::mem::align_of::<__arm_legacy_debug_state>() - 4usize];
1722    ["Offset of field: __arm_legacy_debug_state::__bvr"]
1723        [::std::mem::offset_of!(__arm_legacy_debug_state, __bvr) - 0usize];
1724    ["Offset of field: __arm_legacy_debug_state::__bcr"]
1725        [::std::mem::offset_of!(__arm_legacy_debug_state, __bcr) - 64usize];
1726    ["Offset of field: __arm_legacy_debug_state::__wvr"]
1727        [::std::mem::offset_of!(__arm_legacy_debug_state, __wvr) - 128usize];
1728    ["Offset of field: __arm_legacy_debug_state::__wcr"]
1729        [::std::mem::offset_of!(__arm_legacy_debug_state, __wcr) - 192usize];
1730};
1731#[repr(C)]
1732#[derive(Debug, Copy, Clone)]
1733pub struct __darwin_arm_debug_state32 {
1734    pub __bvr: [__uint32_t; 16usize],
1735    pub __bcr: [__uint32_t; 16usize],
1736    pub __wvr: [__uint32_t; 16usize],
1737    pub __wcr: [__uint32_t; 16usize],
1738    pub __mdscr_el1: __uint64_t,
1739}
1740#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1741const _: () = {
1742    ["Size of __darwin_arm_debug_state32"]
1743        [::std::mem::size_of::<__darwin_arm_debug_state32>() - 264usize];
1744    ["Alignment of __darwin_arm_debug_state32"]
1745        [::std::mem::align_of::<__darwin_arm_debug_state32>() - 8usize];
1746    ["Offset of field: __darwin_arm_debug_state32::__bvr"]
1747        [::std::mem::offset_of!(__darwin_arm_debug_state32, __bvr) - 0usize];
1748    ["Offset of field: __darwin_arm_debug_state32::__bcr"]
1749        [::std::mem::offset_of!(__darwin_arm_debug_state32, __bcr) - 64usize];
1750    ["Offset of field: __darwin_arm_debug_state32::__wvr"]
1751        [::std::mem::offset_of!(__darwin_arm_debug_state32, __wvr) - 128usize];
1752    ["Offset of field: __darwin_arm_debug_state32::__wcr"]
1753        [::std::mem::offset_of!(__darwin_arm_debug_state32, __wcr) - 192usize];
1754    ["Offset of field: __darwin_arm_debug_state32::__mdscr_el1"]
1755        [::std::mem::offset_of!(__darwin_arm_debug_state32, __mdscr_el1) - 256usize];
1756};
1757#[repr(C)]
1758#[derive(Debug, Copy, Clone)]
1759pub struct __darwin_arm_debug_state64 {
1760    pub __bvr: [__uint64_t; 16usize],
1761    pub __bcr: [__uint64_t; 16usize],
1762    pub __wvr: [__uint64_t; 16usize],
1763    pub __wcr: [__uint64_t; 16usize],
1764    pub __mdscr_el1: __uint64_t,
1765}
1766#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1767const _: () = {
1768    ["Size of __darwin_arm_debug_state64"]
1769        [::std::mem::size_of::<__darwin_arm_debug_state64>() - 520usize];
1770    ["Alignment of __darwin_arm_debug_state64"]
1771        [::std::mem::align_of::<__darwin_arm_debug_state64>() - 8usize];
1772    ["Offset of field: __darwin_arm_debug_state64::__bvr"]
1773        [::std::mem::offset_of!(__darwin_arm_debug_state64, __bvr) - 0usize];
1774    ["Offset of field: __darwin_arm_debug_state64::__bcr"]
1775        [::std::mem::offset_of!(__darwin_arm_debug_state64, __bcr) - 128usize];
1776    ["Offset of field: __darwin_arm_debug_state64::__wvr"]
1777        [::std::mem::offset_of!(__darwin_arm_debug_state64, __wvr) - 256usize];
1778    ["Offset of field: __darwin_arm_debug_state64::__wcr"]
1779        [::std::mem::offset_of!(__darwin_arm_debug_state64, __wcr) - 384usize];
1780    ["Offset of field: __darwin_arm_debug_state64::__mdscr_el1"]
1781        [::std::mem::offset_of!(__darwin_arm_debug_state64, __mdscr_el1) - 512usize];
1782};
1783#[repr(C)]
1784#[derive(Debug, Copy, Clone)]
1785pub struct __darwin_arm_cpmu_state64 {
1786    pub __ctrs: [__uint64_t; 16usize],
1787}
1788#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1789const _: () = {
1790    ["Size of __darwin_arm_cpmu_state64"]
1791        [::std::mem::size_of::<__darwin_arm_cpmu_state64>() - 128usize];
1792    ["Alignment of __darwin_arm_cpmu_state64"]
1793        [::std::mem::align_of::<__darwin_arm_cpmu_state64>() - 8usize];
1794    ["Offset of field: __darwin_arm_cpmu_state64::__ctrs"]
1795        [::std::mem::offset_of!(__darwin_arm_cpmu_state64, __ctrs) - 0usize];
1796};
1797#[repr(C)]
1798#[derive(Debug, Copy, Clone)]
1799pub struct __darwin_mcontext32 {
1800    pub __es: __darwin_arm_exception_state,
1801    pub __ss: __darwin_arm_thread_state,
1802    pub __fs: __darwin_arm_vfp_state,
1803}
1804#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1805const _: () = {
1806    ["Size of __darwin_mcontext32"][::std::mem::size_of::<__darwin_mcontext32>() - 340usize];
1807    ["Alignment of __darwin_mcontext32"][::std::mem::align_of::<__darwin_mcontext32>() - 4usize];
1808    ["Offset of field: __darwin_mcontext32::__es"]
1809        [::std::mem::offset_of!(__darwin_mcontext32, __es) - 0usize];
1810    ["Offset of field: __darwin_mcontext32::__ss"]
1811        [::std::mem::offset_of!(__darwin_mcontext32, __ss) - 12usize];
1812    ["Offset of field: __darwin_mcontext32::__fs"]
1813        [::std::mem::offset_of!(__darwin_mcontext32, __fs) - 80usize];
1814};
1815#[repr(C)]
1816#[repr(align(16))]
1817#[derive(Debug, Copy, Clone)]
1818pub struct __darwin_mcontext64 {
1819    pub __es: __darwin_arm_exception_state64,
1820    pub __ss: __darwin_arm_thread_state64,
1821    pub __ns: __darwin_arm_neon_state64,
1822}
1823#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1824const _: () = {
1825    ["Size of __darwin_mcontext64"][::std::mem::size_of::<__darwin_mcontext64>() - 816usize];
1826    ["Alignment of __darwin_mcontext64"][::std::mem::align_of::<__darwin_mcontext64>() - 16usize];
1827    ["Offset of field: __darwin_mcontext64::__es"]
1828        [::std::mem::offset_of!(__darwin_mcontext64, __es) - 0usize];
1829    ["Offset of field: __darwin_mcontext64::__ss"]
1830        [::std::mem::offset_of!(__darwin_mcontext64, __ss) - 16usize];
1831    ["Offset of field: __darwin_mcontext64::__ns"]
1832        [::std::mem::offset_of!(__darwin_mcontext64, __ns) - 288usize];
1833};
1834pub type mcontext_t = *mut __darwin_mcontext64;
1835pub type pthread_attr_t = __darwin_pthread_attr_t;
1836#[repr(C)]
1837#[derive(Debug, Copy, Clone)]
1838pub struct __darwin_sigaltstack {
1839    pub ss_sp: *mut ::std::os::raw::c_void,
1840    pub ss_size: __darwin_size_t,
1841    pub ss_flags: ::std::os::raw::c_int,
1842}
1843#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1844const _: () = {
1845    ["Size of __darwin_sigaltstack"][::std::mem::size_of::<__darwin_sigaltstack>() - 24usize];
1846    ["Alignment of __darwin_sigaltstack"][::std::mem::align_of::<__darwin_sigaltstack>() - 8usize];
1847    ["Offset of field: __darwin_sigaltstack::ss_sp"]
1848        [::std::mem::offset_of!(__darwin_sigaltstack, ss_sp) - 0usize];
1849    ["Offset of field: __darwin_sigaltstack::ss_size"]
1850        [::std::mem::offset_of!(__darwin_sigaltstack, ss_size) - 8usize];
1851    ["Offset of field: __darwin_sigaltstack::ss_flags"]
1852        [::std::mem::offset_of!(__darwin_sigaltstack, ss_flags) - 16usize];
1853};
1854pub type stack_t = __darwin_sigaltstack;
1855#[repr(C)]
1856#[derive(Debug, Copy, Clone)]
1857pub struct __darwin_ucontext {
1858    pub uc_onstack: ::std::os::raw::c_int,
1859    pub uc_sigmask: __darwin_sigset_t,
1860    pub uc_stack: __darwin_sigaltstack,
1861    pub uc_link: *mut __darwin_ucontext,
1862    pub uc_mcsize: __darwin_size_t,
1863    pub uc_mcontext: *mut __darwin_mcontext64,
1864}
1865#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1866const _: () = {
1867    ["Size of __darwin_ucontext"][::std::mem::size_of::<__darwin_ucontext>() - 56usize];
1868    ["Alignment of __darwin_ucontext"][::std::mem::align_of::<__darwin_ucontext>() - 8usize];
1869    ["Offset of field: __darwin_ucontext::uc_onstack"]
1870        [::std::mem::offset_of!(__darwin_ucontext, uc_onstack) - 0usize];
1871    ["Offset of field: __darwin_ucontext::uc_sigmask"]
1872        [::std::mem::offset_of!(__darwin_ucontext, uc_sigmask) - 4usize];
1873    ["Offset of field: __darwin_ucontext::uc_stack"]
1874        [::std::mem::offset_of!(__darwin_ucontext, uc_stack) - 8usize];
1875    ["Offset of field: __darwin_ucontext::uc_link"]
1876        [::std::mem::offset_of!(__darwin_ucontext, uc_link) - 32usize];
1877    ["Offset of field: __darwin_ucontext::uc_mcsize"]
1878        [::std::mem::offset_of!(__darwin_ucontext, uc_mcsize) - 40usize];
1879    ["Offset of field: __darwin_ucontext::uc_mcontext"]
1880        [::std::mem::offset_of!(__darwin_ucontext, uc_mcontext) - 48usize];
1881};
1882pub type ucontext_t = __darwin_ucontext;
1883pub type sigset_t = __darwin_sigset_t;
1884pub type uid_t = __darwin_uid_t;
1885#[repr(C)]
1886#[derive(Copy, Clone)]
1887pub union sigval {
1888    pub sival_int: ::std::os::raw::c_int,
1889    pub sival_ptr: *mut ::std::os::raw::c_void,
1890}
1891#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1892const _: () = {
1893    ["Size of sigval"][::std::mem::size_of::<sigval>() - 8usize];
1894    ["Alignment of sigval"][::std::mem::align_of::<sigval>() - 8usize];
1895    ["Offset of field: sigval::sival_int"][::std::mem::offset_of!(sigval, sival_int) - 0usize];
1896    ["Offset of field: sigval::sival_ptr"][::std::mem::offset_of!(sigval, sival_ptr) - 0usize];
1897};
1898#[repr(C)]
1899#[derive(Copy, Clone)]
1900pub struct sigevent {
1901    pub sigev_notify: ::std::os::raw::c_int,
1902    pub sigev_signo: ::std::os::raw::c_int,
1903    pub sigev_value: sigval,
1904    pub sigev_notify_function: ::std::option::Option<unsafe extern "C" fn(arg1: sigval)>,
1905    pub sigev_notify_attributes: *mut pthread_attr_t,
1906}
1907#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1908const _: () = {
1909    ["Size of sigevent"][::std::mem::size_of::<sigevent>() - 32usize];
1910    ["Alignment of sigevent"][::std::mem::align_of::<sigevent>() - 8usize];
1911    ["Offset of field: sigevent::sigev_notify"]
1912        [::std::mem::offset_of!(sigevent, sigev_notify) - 0usize];
1913    ["Offset of field: sigevent::sigev_signo"]
1914        [::std::mem::offset_of!(sigevent, sigev_signo) - 4usize];
1915    ["Offset of field: sigevent::sigev_value"]
1916        [::std::mem::offset_of!(sigevent, sigev_value) - 8usize];
1917    ["Offset of field: sigevent::sigev_notify_function"]
1918        [::std::mem::offset_of!(sigevent, sigev_notify_function) - 16usize];
1919    ["Offset of field: sigevent::sigev_notify_attributes"]
1920        [::std::mem::offset_of!(sigevent, sigev_notify_attributes) - 24usize];
1921};
1922#[repr(C)]
1923#[derive(Copy, Clone)]
1924pub struct __siginfo {
1925    pub si_signo: ::std::os::raw::c_int,
1926    pub si_errno: ::std::os::raw::c_int,
1927    pub si_code: ::std::os::raw::c_int,
1928    pub si_pid: pid_t,
1929    pub si_uid: uid_t,
1930    pub si_status: ::std::os::raw::c_int,
1931    pub si_addr: *mut ::std::os::raw::c_void,
1932    pub si_value: sigval,
1933    pub si_band: ::std::os::raw::c_long,
1934    pub __pad: [::std::os::raw::c_ulong; 7usize],
1935}
1936#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1937const _: () = {
1938    ["Size of __siginfo"][::std::mem::size_of::<__siginfo>() - 104usize];
1939    ["Alignment of __siginfo"][::std::mem::align_of::<__siginfo>() - 8usize];
1940    ["Offset of field: __siginfo::si_signo"][::std::mem::offset_of!(__siginfo, si_signo) - 0usize];
1941    ["Offset of field: __siginfo::si_errno"][::std::mem::offset_of!(__siginfo, si_errno) - 4usize];
1942    ["Offset of field: __siginfo::si_code"][::std::mem::offset_of!(__siginfo, si_code) - 8usize];
1943    ["Offset of field: __siginfo::si_pid"][::std::mem::offset_of!(__siginfo, si_pid) - 12usize];
1944    ["Offset of field: __siginfo::si_uid"][::std::mem::offset_of!(__siginfo, si_uid) - 16usize];
1945    ["Offset of field: __siginfo::si_status"]
1946        [::std::mem::offset_of!(__siginfo, si_status) - 20usize];
1947    ["Offset of field: __siginfo::si_addr"][::std::mem::offset_of!(__siginfo, si_addr) - 24usize];
1948    ["Offset of field: __siginfo::si_value"][::std::mem::offset_of!(__siginfo, si_value) - 32usize];
1949    ["Offset of field: __siginfo::si_band"][::std::mem::offset_of!(__siginfo, si_band) - 40usize];
1950    ["Offset of field: __siginfo::__pad"][::std::mem::offset_of!(__siginfo, __pad) - 48usize];
1951};
1952pub type siginfo_t = __siginfo;
1953#[repr(C)]
1954#[derive(Copy, Clone)]
1955pub union __sigaction_u {
1956    pub __sa_handler: ::std::option::Option<unsafe extern "C" fn(arg1: ::std::os::raw::c_int)>,
1957    pub __sa_sigaction: ::std::option::Option<
1958        unsafe extern "C" fn(
1959            arg1: ::std::os::raw::c_int,
1960            arg2: *mut __siginfo,
1961            arg3: *mut ::std::os::raw::c_void,
1962        ),
1963    >,
1964}
1965#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1966const _: () = {
1967    ["Size of __sigaction_u"][::std::mem::size_of::<__sigaction_u>() - 8usize];
1968    ["Alignment of __sigaction_u"][::std::mem::align_of::<__sigaction_u>() - 8usize];
1969    ["Offset of field: __sigaction_u::__sa_handler"]
1970        [::std::mem::offset_of!(__sigaction_u, __sa_handler) - 0usize];
1971    ["Offset of field: __sigaction_u::__sa_sigaction"]
1972        [::std::mem::offset_of!(__sigaction_u, __sa_sigaction) - 0usize];
1973};
1974#[repr(C)]
1975#[derive(Copy, Clone)]
1976pub struct __sigaction {
1977    pub __sigaction_u: __sigaction_u,
1978    pub sa_tramp: ::std::option::Option<
1979        unsafe extern "C" fn(
1980            arg1: *mut ::std::os::raw::c_void,
1981            arg2: ::std::os::raw::c_int,
1982            arg3: ::std::os::raw::c_int,
1983            arg4: *mut siginfo_t,
1984            arg5: *mut ::std::os::raw::c_void,
1985        ),
1986    >,
1987    pub sa_mask: sigset_t,
1988    pub sa_flags: ::std::os::raw::c_int,
1989}
1990#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1991const _: () = {
1992    ["Size of __sigaction"][::std::mem::size_of::<__sigaction>() - 24usize];
1993    ["Alignment of __sigaction"][::std::mem::align_of::<__sigaction>() - 8usize];
1994    ["Offset of field: __sigaction::__sigaction_u"]
1995        [::std::mem::offset_of!(__sigaction, __sigaction_u) - 0usize];
1996    ["Offset of field: __sigaction::sa_tramp"]
1997        [::std::mem::offset_of!(__sigaction, sa_tramp) - 8usize];
1998    ["Offset of field: __sigaction::sa_mask"]
1999        [::std::mem::offset_of!(__sigaction, sa_mask) - 16usize];
2000    ["Offset of field: __sigaction::sa_flags"]
2001        [::std::mem::offset_of!(__sigaction, sa_flags) - 20usize];
2002};
2003#[repr(C)]
2004#[derive(Copy, Clone)]
2005pub struct sigaction {
2006    pub __sigaction_u: __sigaction_u,
2007    pub sa_mask: sigset_t,
2008    pub sa_flags: ::std::os::raw::c_int,
2009}
2010#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2011const _: () = {
2012    ["Size of sigaction"][::std::mem::size_of::<sigaction>() - 16usize];
2013    ["Alignment of sigaction"][::std::mem::align_of::<sigaction>() - 8usize];
2014    ["Offset of field: sigaction::__sigaction_u"]
2015        [::std::mem::offset_of!(sigaction, __sigaction_u) - 0usize];
2016    ["Offset of field: sigaction::sa_mask"][::std::mem::offset_of!(sigaction, sa_mask) - 8usize];
2017    ["Offset of field: sigaction::sa_flags"][::std::mem::offset_of!(sigaction, sa_flags) - 12usize];
2018};
2019pub type sig_t = ::std::option::Option<unsafe extern "C" fn(arg1: ::std::os::raw::c_int)>;
2020#[repr(C)]
2021#[derive(Debug, Copy, Clone)]
2022pub struct sigvec {
2023    pub sv_handler: ::std::option::Option<unsafe extern "C" fn(arg1: ::std::os::raw::c_int)>,
2024    pub sv_mask: ::std::os::raw::c_int,
2025    pub sv_flags: ::std::os::raw::c_int,
2026}
2027#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2028const _: () = {
2029    ["Size of sigvec"][::std::mem::size_of::<sigvec>() - 16usize];
2030    ["Alignment of sigvec"][::std::mem::align_of::<sigvec>() - 8usize];
2031    ["Offset of field: sigvec::sv_handler"][::std::mem::offset_of!(sigvec, sv_handler) - 0usize];
2032    ["Offset of field: sigvec::sv_mask"][::std::mem::offset_of!(sigvec, sv_mask) - 8usize];
2033    ["Offset of field: sigvec::sv_flags"][::std::mem::offset_of!(sigvec, sv_flags) - 12usize];
2034};
2035#[repr(C)]
2036#[derive(Debug, Copy, Clone)]
2037pub struct sigstack {
2038    pub ss_sp: *mut ::std::os::raw::c_char,
2039    pub ss_onstack: ::std::os::raw::c_int,
2040}
2041#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2042const _: () = {
2043    ["Size of sigstack"][::std::mem::size_of::<sigstack>() - 16usize];
2044    ["Alignment of sigstack"][::std::mem::align_of::<sigstack>() - 8usize];
2045    ["Offset of field: sigstack::ss_sp"][::std::mem::offset_of!(sigstack, ss_sp) - 0usize];
2046    ["Offset of field: sigstack::ss_onstack"]
2047        [::std::mem::offset_of!(sigstack, ss_onstack) - 8usize];
2048};
2049unsafe extern "C" {
2050    pub fn signal(
2051        arg1: ::std::os::raw::c_int,
2052        arg2: ::std::option::Option<unsafe extern "C" fn(arg1: ::std::os::raw::c_int)>,
2053    ) -> ::std::option::Option<
2054        unsafe extern "C" fn(
2055            arg1: ::std::os::raw::c_int,
2056            arg2: ::std::option::Option<unsafe extern "C" fn(arg1: ::std::os::raw::c_int)>,
2057        ),
2058    >;
2059}
2060#[repr(C)]
2061#[derive(Debug, Copy, Clone)]
2062pub struct timeval {
2063    pub tv_sec: __darwin_time_t,
2064    pub tv_usec: __darwin_suseconds_t,
2065}
2066#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2067const _: () = {
2068    ["Size of timeval"][::std::mem::size_of::<timeval>() - 16usize];
2069    ["Alignment of timeval"][::std::mem::align_of::<timeval>() - 8usize];
2070    ["Offset of field: timeval::tv_sec"][::std::mem::offset_of!(timeval, tv_sec) - 0usize];
2071    ["Offset of field: timeval::tv_usec"][::std::mem::offset_of!(timeval, tv_usec) - 8usize];
2072};
2073pub type rlim_t = __uint64_t;
2074#[repr(C)]
2075#[derive(Debug, Copy, Clone)]
2076pub struct rusage {
2077    pub ru_utime: timeval,
2078    pub ru_stime: timeval,
2079    pub ru_maxrss: ::std::os::raw::c_long,
2080    pub ru_ixrss: ::std::os::raw::c_long,
2081    pub ru_idrss: ::std::os::raw::c_long,
2082    pub ru_isrss: ::std::os::raw::c_long,
2083    pub ru_minflt: ::std::os::raw::c_long,
2084    pub ru_majflt: ::std::os::raw::c_long,
2085    pub ru_nswap: ::std::os::raw::c_long,
2086    pub ru_inblock: ::std::os::raw::c_long,
2087    pub ru_oublock: ::std::os::raw::c_long,
2088    pub ru_msgsnd: ::std::os::raw::c_long,
2089    pub ru_msgrcv: ::std::os::raw::c_long,
2090    pub ru_nsignals: ::std::os::raw::c_long,
2091    pub ru_nvcsw: ::std::os::raw::c_long,
2092    pub ru_nivcsw: ::std::os::raw::c_long,
2093}
2094#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2095const _: () = {
2096    ["Size of rusage"][::std::mem::size_of::<rusage>() - 144usize];
2097    ["Alignment of rusage"][::std::mem::align_of::<rusage>() - 8usize];
2098    ["Offset of field: rusage::ru_utime"][::std::mem::offset_of!(rusage, ru_utime) - 0usize];
2099    ["Offset of field: rusage::ru_stime"][::std::mem::offset_of!(rusage, ru_stime) - 16usize];
2100    ["Offset of field: rusage::ru_maxrss"][::std::mem::offset_of!(rusage, ru_maxrss) - 32usize];
2101    ["Offset of field: rusage::ru_ixrss"][::std::mem::offset_of!(rusage, ru_ixrss) - 40usize];
2102    ["Offset of field: rusage::ru_idrss"][::std::mem::offset_of!(rusage, ru_idrss) - 48usize];
2103    ["Offset of field: rusage::ru_isrss"][::std::mem::offset_of!(rusage, ru_isrss) - 56usize];
2104    ["Offset of field: rusage::ru_minflt"][::std::mem::offset_of!(rusage, ru_minflt) - 64usize];
2105    ["Offset of field: rusage::ru_majflt"][::std::mem::offset_of!(rusage, ru_majflt) - 72usize];
2106    ["Offset of field: rusage::ru_nswap"][::std::mem::offset_of!(rusage, ru_nswap) - 80usize];
2107    ["Offset of field: rusage::ru_inblock"][::std::mem::offset_of!(rusage, ru_inblock) - 88usize];
2108    ["Offset of field: rusage::ru_oublock"][::std::mem::offset_of!(rusage, ru_oublock) - 96usize];
2109    ["Offset of field: rusage::ru_msgsnd"][::std::mem::offset_of!(rusage, ru_msgsnd) - 104usize];
2110    ["Offset of field: rusage::ru_msgrcv"][::std::mem::offset_of!(rusage, ru_msgrcv) - 112usize];
2111    ["Offset of field: rusage::ru_nsignals"]
2112        [::std::mem::offset_of!(rusage, ru_nsignals) - 120usize];
2113    ["Offset of field: rusage::ru_nvcsw"][::std::mem::offset_of!(rusage, ru_nvcsw) - 128usize];
2114    ["Offset of field: rusage::ru_nivcsw"][::std::mem::offset_of!(rusage, ru_nivcsw) - 136usize];
2115};
2116pub type rusage_info_t = *mut ::std::os::raw::c_void;
2117#[repr(C)]
2118#[derive(Debug, Copy, Clone)]
2119pub struct rusage_info_v0 {
2120    pub ri_uuid: [u8; 16usize],
2121    pub ri_user_time: u64,
2122    pub ri_system_time: u64,
2123    pub ri_pkg_idle_wkups: u64,
2124    pub ri_interrupt_wkups: u64,
2125    pub ri_pageins: u64,
2126    pub ri_wired_size: u64,
2127    pub ri_resident_size: u64,
2128    pub ri_phys_footprint: u64,
2129    pub ri_proc_start_abstime: u64,
2130    pub ri_proc_exit_abstime: u64,
2131}
2132#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2133const _: () = {
2134    ["Size of rusage_info_v0"][::std::mem::size_of::<rusage_info_v0>() - 96usize];
2135    ["Alignment of rusage_info_v0"][::std::mem::align_of::<rusage_info_v0>() - 8usize];
2136    ["Offset of field: rusage_info_v0::ri_uuid"]
2137        [::std::mem::offset_of!(rusage_info_v0, ri_uuid) - 0usize];
2138    ["Offset of field: rusage_info_v0::ri_user_time"]
2139        [::std::mem::offset_of!(rusage_info_v0, ri_user_time) - 16usize];
2140    ["Offset of field: rusage_info_v0::ri_system_time"]
2141        [::std::mem::offset_of!(rusage_info_v0, ri_system_time) - 24usize];
2142    ["Offset of field: rusage_info_v0::ri_pkg_idle_wkups"]
2143        [::std::mem::offset_of!(rusage_info_v0, ri_pkg_idle_wkups) - 32usize];
2144    ["Offset of field: rusage_info_v0::ri_interrupt_wkups"]
2145        [::std::mem::offset_of!(rusage_info_v0, ri_interrupt_wkups) - 40usize];
2146    ["Offset of field: rusage_info_v0::ri_pageins"]
2147        [::std::mem::offset_of!(rusage_info_v0, ri_pageins) - 48usize];
2148    ["Offset of field: rusage_info_v0::ri_wired_size"]
2149        [::std::mem::offset_of!(rusage_info_v0, ri_wired_size) - 56usize];
2150    ["Offset of field: rusage_info_v0::ri_resident_size"]
2151        [::std::mem::offset_of!(rusage_info_v0, ri_resident_size) - 64usize];
2152    ["Offset of field: rusage_info_v0::ri_phys_footprint"]
2153        [::std::mem::offset_of!(rusage_info_v0, ri_phys_footprint) - 72usize];
2154    ["Offset of field: rusage_info_v0::ri_proc_start_abstime"]
2155        [::std::mem::offset_of!(rusage_info_v0, ri_proc_start_abstime) - 80usize];
2156    ["Offset of field: rusage_info_v0::ri_proc_exit_abstime"]
2157        [::std::mem::offset_of!(rusage_info_v0, ri_proc_exit_abstime) - 88usize];
2158};
2159#[repr(C)]
2160#[derive(Debug, Copy, Clone)]
2161pub struct rusage_info_v1 {
2162    pub ri_uuid: [u8; 16usize],
2163    pub ri_user_time: u64,
2164    pub ri_system_time: u64,
2165    pub ri_pkg_idle_wkups: u64,
2166    pub ri_interrupt_wkups: u64,
2167    pub ri_pageins: u64,
2168    pub ri_wired_size: u64,
2169    pub ri_resident_size: u64,
2170    pub ri_phys_footprint: u64,
2171    pub ri_proc_start_abstime: u64,
2172    pub ri_proc_exit_abstime: u64,
2173    pub ri_child_user_time: u64,
2174    pub ri_child_system_time: u64,
2175    pub ri_child_pkg_idle_wkups: u64,
2176    pub ri_child_interrupt_wkups: u64,
2177    pub ri_child_pageins: u64,
2178    pub ri_child_elapsed_abstime: u64,
2179}
2180#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2181const _: () = {
2182    ["Size of rusage_info_v1"][::std::mem::size_of::<rusage_info_v1>() - 144usize];
2183    ["Alignment of rusage_info_v1"][::std::mem::align_of::<rusage_info_v1>() - 8usize];
2184    ["Offset of field: rusage_info_v1::ri_uuid"]
2185        [::std::mem::offset_of!(rusage_info_v1, ri_uuid) - 0usize];
2186    ["Offset of field: rusage_info_v1::ri_user_time"]
2187        [::std::mem::offset_of!(rusage_info_v1, ri_user_time) - 16usize];
2188    ["Offset of field: rusage_info_v1::ri_system_time"]
2189        [::std::mem::offset_of!(rusage_info_v1, ri_system_time) - 24usize];
2190    ["Offset of field: rusage_info_v1::ri_pkg_idle_wkups"]
2191        [::std::mem::offset_of!(rusage_info_v1, ri_pkg_idle_wkups) - 32usize];
2192    ["Offset of field: rusage_info_v1::ri_interrupt_wkups"]
2193        [::std::mem::offset_of!(rusage_info_v1, ri_interrupt_wkups) - 40usize];
2194    ["Offset of field: rusage_info_v1::ri_pageins"]
2195        [::std::mem::offset_of!(rusage_info_v1, ri_pageins) - 48usize];
2196    ["Offset of field: rusage_info_v1::ri_wired_size"]
2197        [::std::mem::offset_of!(rusage_info_v1, ri_wired_size) - 56usize];
2198    ["Offset of field: rusage_info_v1::ri_resident_size"]
2199        [::std::mem::offset_of!(rusage_info_v1, ri_resident_size) - 64usize];
2200    ["Offset of field: rusage_info_v1::ri_phys_footprint"]
2201        [::std::mem::offset_of!(rusage_info_v1, ri_phys_footprint) - 72usize];
2202    ["Offset of field: rusage_info_v1::ri_proc_start_abstime"]
2203        [::std::mem::offset_of!(rusage_info_v1, ri_proc_start_abstime) - 80usize];
2204    ["Offset of field: rusage_info_v1::ri_proc_exit_abstime"]
2205        [::std::mem::offset_of!(rusage_info_v1, ri_proc_exit_abstime) - 88usize];
2206    ["Offset of field: rusage_info_v1::ri_child_user_time"]
2207        [::std::mem::offset_of!(rusage_info_v1, ri_child_user_time) - 96usize];
2208    ["Offset of field: rusage_info_v1::ri_child_system_time"]
2209        [::std::mem::offset_of!(rusage_info_v1, ri_child_system_time) - 104usize];
2210    ["Offset of field: rusage_info_v1::ri_child_pkg_idle_wkups"]
2211        [::std::mem::offset_of!(rusage_info_v1, ri_child_pkg_idle_wkups) - 112usize];
2212    ["Offset of field: rusage_info_v1::ri_child_interrupt_wkups"]
2213        [::std::mem::offset_of!(rusage_info_v1, ri_child_interrupt_wkups) - 120usize];
2214    ["Offset of field: rusage_info_v1::ri_child_pageins"]
2215        [::std::mem::offset_of!(rusage_info_v1, ri_child_pageins) - 128usize];
2216    ["Offset of field: rusage_info_v1::ri_child_elapsed_abstime"]
2217        [::std::mem::offset_of!(rusage_info_v1, ri_child_elapsed_abstime) - 136usize];
2218};
2219#[repr(C)]
2220#[derive(Debug, Copy, Clone)]
2221pub struct rusage_info_v2 {
2222    pub ri_uuid: [u8; 16usize],
2223    pub ri_user_time: u64,
2224    pub ri_system_time: u64,
2225    pub ri_pkg_idle_wkups: u64,
2226    pub ri_interrupt_wkups: u64,
2227    pub ri_pageins: u64,
2228    pub ri_wired_size: u64,
2229    pub ri_resident_size: u64,
2230    pub ri_phys_footprint: u64,
2231    pub ri_proc_start_abstime: u64,
2232    pub ri_proc_exit_abstime: u64,
2233    pub ri_child_user_time: u64,
2234    pub ri_child_system_time: u64,
2235    pub ri_child_pkg_idle_wkups: u64,
2236    pub ri_child_interrupt_wkups: u64,
2237    pub ri_child_pageins: u64,
2238    pub ri_child_elapsed_abstime: u64,
2239    pub ri_diskio_bytesread: u64,
2240    pub ri_diskio_byteswritten: u64,
2241}
2242#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2243const _: () = {
2244    ["Size of rusage_info_v2"][::std::mem::size_of::<rusage_info_v2>() - 160usize];
2245    ["Alignment of rusage_info_v2"][::std::mem::align_of::<rusage_info_v2>() - 8usize];
2246    ["Offset of field: rusage_info_v2::ri_uuid"]
2247        [::std::mem::offset_of!(rusage_info_v2, ri_uuid) - 0usize];
2248    ["Offset of field: rusage_info_v2::ri_user_time"]
2249        [::std::mem::offset_of!(rusage_info_v2, ri_user_time) - 16usize];
2250    ["Offset of field: rusage_info_v2::ri_system_time"]
2251        [::std::mem::offset_of!(rusage_info_v2, ri_system_time) - 24usize];
2252    ["Offset of field: rusage_info_v2::ri_pkg_idle_wkups"]
2253        [::std::mem::offset_of!(rusage_info_v2, ri_pkg_idle_wkups) - 32usize];
2254    ["Offset of field: rusage_info_v2::ri_interrupt_wkups"]
2255        [::std::mem::offset_of!(rusage_info_v2, ri_interrupt_wkups) - 40usize];
2256    ["Offset of field: rusage_info_v2::ri_pageins"]
2257        [::std::mem::offset_of!(rusage_info_v2, ri_pageins) - 48usize];
2258    ["Offset of field: rusage_info_v2::ri_wired_size"]
2259        [::std::mem::offset_of!(rusage_info_v2, ri_wired_size) - 56usize];
2260    ["Offset of field: rusage_info_v2::ri_resident_size"]
2261        [::std::mem::offset_of!(rusage_info_v2, ri_resident_size) - 64usize];
2262    ["Offset of field: rusage_info_v2::ri_phys_footprint"]
2263        [::std::mem::offset_of!(rusage_info_v2, ri_phys_footprint) - 72usize];
2264    ["Offset of field: rusage_info_v2::ri_proc_start_abstime"]
2265        [::std::mem::offset_of!(rusage_info_v2, ri_proc_start_abstime) - 80usize];
2266    ["Offset of field: rusage_info_v2::ri_proc_exit_abstime"]
2267        [::std::mem::offset_of!(rusage_info_v2, ri_proc_exit_abstime) - 88usize];
2268    ["Offset of field: rusage_info_v2::ri_child_user_time"]
2269        [::std::mem::offset_of!(rusage_info_v2, ri_child_user_time) - 96usize];
2270    ["Offset of field: rusage_info_v2::ri_child_system_time"]
2271        [::std::mem::offset_of!(rusage_info_v2, ri_child_system_time) - 104usize];
2272    ["Offset of field: rusage_info_v2::ri_child_pkg_idle_wkups"]
2273        [::std::mem::offset_of!(rusage_info_v2, ri_child_pkg_idle_wkups) - 112usize];
2274    ["Offset of field: rusage_info_v2::ri_child_interrupt_wkups"]
2275        [::std::mem::offset_of!(rusage_info_v2, ri_child_interrupt_wkups) - 120usize];
2276    ["Offset of field: rusage_info_v2::ri_child_pageins"]
2277        [::std::mem::offset_of!(rusage_info_v2, ri_child_pageins) - 128usize];
2278    ["Offset of field: rusage_info_v2::ri_child_elapsed_abstime"]
2279        [::std::mem::offset_of!(rusage_info_v2, ri_child_elapsed_abstime) - 136usize];
2280    ["Offset of field: rusage_info_v2::ri_diskio_bytesread"]
2281        [::std::mem::offset_of!(rusage_info_v2, ri_diskio_bytesread) - 144usize];
2282    ["Offset of field: rusage_info_v2::ri_diskio_byteswritten"]
2283        [::std::mem::offset_of!(rusage_info_v2, ri_diskio_byteswritten) - 152usize];
2284};
2285#[repr(C)]
2286#[derive(Debug, Copy, Clone)]
2287pub struct rusage_info_v3 {
2288    pub ri_uuid: [u8; 16usize],
2289    pub ri_user_time: u64,
2290    pub ri_system_time: u64,
2291    pub ri_pkg_idle_wkups: u64,
2292    pub ri_interrupt_wkups: u64,
2293    pub ri_pageins: u64,
2294    pub ri_wired_size: u64,
2295    pub ri_resident_size: u64,
2296    pub ri_phys_footprint: u64,
2297    pub ri_proc_start_abstime: u64,
2298    pub ri_proc_exit_abstime: u64,
2299    pub ri_child_user_time: u64,
2300    pub ri_child_system_time: u64,
2301    pub ri_child_pkg_idle_wkups: u64,
2302    pub ri_child_interrupt_wkups: u64,
2303    pub ri_child_pageins: u64,
2304    pub ri_child_elapsed_abstime: u64,
2305    pub ri_diskio_bytesread: u64,
2306    pub ri_diskio_byteswritten: u64,
2307    pub ri_cpu_time_qos_default: u64,
2308    pub ri_cpu_time_qos_maintenance: u64,
2309    pub ri_cpu_time_qos_background: u64,
2310    pub ri_cpu_time_qos_utility: u64,
2311    pub ri_cpu_time_qos_legacy: u64,
2312    pub ri_cpu_time_qos_user_initiated: u64,
2313    pub ri_cpu_time_qos_user_interactive: u64,
2314    pub ri_billed_system_time: u64,
2315    pub ri_serviced_system_time: u64,
2316}
2317#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2318const _: () = {
2319    ["Size of rusage_info_v3"][::std::mem::size_of::<rusage_info_v3>() - 232usize];
2320    ["Alignment of rusage_info_v3"][::std::mem::align_of::<rusage_info_v3>() - 8usize];
2321    ["Offset of field: rusage_info_v3::ri_uuid"]
2322        [::std::mem::offset_of!(rusage_info_v3, ri_uuid) - 0usize];
2323    ["Offset of field: rusage_info_v3::ri_user_time"]
2324        [::std::mem::offset_of!(rusage_info_v3, ri_user_time) - 16usize];
2325    ["Offset of field: rusage_info_v3::ri_system_time"]
2326        [::std::mem::offset_of!(rusage_info_v3, ri_system_time) - 24usize];
2327    ["Offset of field: rusage_info_v3::ri_pkg_idle_wkups"]
2328        [::std::mem::offset_of!(rusage_info_v3, ri_pkg_idle_wkups) - 32usize];
2329    ["Offset of field: rusage_info_v3::ri_interrupt_wkups"]
2330        [::std::mem::offset_of!(rusage_info_v3, ri_interrupt_wkups) - 40usize];
2331    ["Offset of field: rusage_info_v3::ri_pageins"]
2332        [::std::mem::offset_of!(rusage_info_v3, ri_pageins) - 48usize];
2333    ["Offset of field: rusage_info_v3::ri_wired_size"]
2334        [::std::mem::offset_of!(rusage_info_v3, ri_wired_size) - 56usize];
2335    ["Offset of field: rusage_info_v3::ri_resident_size"]
2336        [::std::mem::offset_of!(rusage_info_v3, ri_resident_size) - 64usize];
2337    ["Offset of field: rusage_info_v3::ri_phys_footprint"]
2338        [::std::mem::offset_of!(rusage_info_v3, ri_phys_footprint) - 72usize];
2339    ["Offset of field: rusage_info_v3::ri_proc_start_abstime"]
2340        [::std::mem::offset_of!(rusage_info_v3, ri_proc_start_abstime) - 80usize];
2341    ["Offset of field: rusage_info_v3::ri_proc_exit_abstime"]
2342        [::std::mem::offset_of!(rusage_info_v3, ri_proc_exit_abstime) - 88usize];
2343    ["Offset of field: rusage_info_v3::ri_child_user_time"]
2344        [::std::mem::offset_of!(rusage_info_v3, ri_child_user_time) - 96usize];
2345    ["Offset of field: rusage_info_v3::ri_child_system_time"]
2346        [::std::mem::offset_of!(rusage_info_v3, ri_child_system_time) - 104usize];
2347    ["Offset of field: rusage_info_v3::ri_child_pkg_idle_wkups"]
2348        [::std::mem::offset_of!(rusage_info_v3, ri_child_pkg_idle_wkups) - 112usize];
2349    ["Offset of field: rusage_info_v3::ri_child_interrupt_wkups"]
2350        [::std::mem::offset_of!(rusage_info_v3, ri_child_interrupt_wkups) - 120usize];
2351    ["Offset of field: rusage_info_v3::ri_child_pageins"]
2352        [::std::mem::offset_of!(rusage_info_v3, ri_child_pageins) - 128usize];
2353    ["Offset of field: rusage_info_v3::ri_child_elapsed_abstime"]
2354        [::std::mem::offset_of!(rusage_info_v3, ri_child_elapsed_abstime) - 136usize];
2355    ["Offset of field: rusage_info_v3::ri_diskio_bytesread"]
2356        [::std::mem::offset_of!(rusage_info_v3, ri_diskio_bytesread) - 144usize];
2357    ["Offset of field: rusage_info_v3::ri_diskio_byteswritten"]
2358        [::std::mem::offset_of!(rusage_info_v3, ri_diskio_byteswritten) - 152usize];
2359    ["Offset of field: rusage_info_v3::ri_cpu_time_qos_default"]
2360        [::std::mem::offset_of!(rusage_info_v3, ri_cpu_time_qos_default) - 160usize];
2361    ["Offset of field: rusage_info_v3::ri_cpu_time_qos_maintenance"]
2362        [::std::mem::offset_of!(rusage_info_v3, ri_cpu_time_qos_maintenance) - 168usize];
2363    ["Offset of field: rusage_info_v3::ri_cpu_time_qos_background"]
2364        [::std::mem::offset_of!(rusage_info_v3, ri_cpu_time_qos_background) - 176usize];
2365    ["Offset of field: rusage_info_v3::ri_cpu_time_qos_utility"]
2366        [::std::mem::offset_of!(rusage_info_v3, ri_cpu_time_qos_utility) - 184usize];
2367    ["Offset of field: rusage_info_v3::ri_cpu_time_qos_legacy"]
2368        [::std::mem::offset_of!(rusage_info_v3, ri_cpu_time_qos_legacy) - 192usize];
2369    ["Offset of field: rusage_info_v3::ri_cpu_time_qos_user_initiated"]
2370        [::std::mem::offset_of!(rusage_info_v3, ri_cpu_time_qos_user_initiated) - 200usize];
2371    ["Offset of field: rusage_info_v3::ri_cpu_time_qos_user_interactive"]
2372        [::std::mem::offset_of!(rusage_info_v3, ri_cpu_time_qos_user_interactive) - 208usize];
2373    ["Offset of field: rusage_info_v3::ri_billed_system_time"]
2374        [::std::mem::offset_of!(rusage_info_v3, ri_billed_system_time) - 216usize];
2375    ["Offset of field: rusage_info_v3::ri_serviced_system_time"]
2376        [::std::mem::offset_of!(rusage_info_v3, ri_serviced_system_time) - 224usize];
2377};
2378#[repr(C)]
2379#[derive(Debug, Copy, Clone)]
2380pub struct rusage_info_v4 {
2381    pub ri_uuid: [u8; 16usize],
2382    pub ri_user_time: u64,
2383    pub ri_system_time: u64,
2384    pub ri_pkg_idle_wkups: u64,
2385    pub ri_interrupt_wkups: u64,
2386    pub ri_pageins: u64,
2387    pub ri_wired_size: u64,
2388    pub ri_resident_size: u64,
2389    pub ri_phys_footprint: u64,
2390    pub ri_proc_start_abstime: u64,
2391    pub ri_proc_exit_abstime: u64,
2392    pub ri_child_user_time: u64,
2393    pub ri_child_system_time: u64,
2394    pub ri_child_pkg_idle_wkups: u64,
2395    pub ri_child_interrupt_wkups: u64,
2396    pub ri_child_pageins: u64,
2397    pub ri_child_elapsed_abstime: u64,
2398    pub ri_diskio_bytesread: u64,
2399    pub ri_diskio_byteswritten: u64,
2400    pub ri_cpu_time_qos_default: u64,
2401    pub ri_cpu_time_qos_maintenance: u64,
2402    pub ri_cpu_time_qos_background: u64,
2403    pub ri_cpu_time_qos_utility: u64,
2404    pub ri_cpu_time_qos_legacy: u64,
2405    pub ri_cpu_time_qos_user_initiated: u64,
2406    pub ri_cpu_time_qos_user_interactive: u64,
2407    pub ri_billed_system_time: u64,
2408    pub ri_serviced_system_time: u64,
2409    pub ri_logical_writes: u64,
2410    pub ri_lifetime_max_phys_footprint: u64,
2411    pub ri_instructions: u64,
2412    pub ri_cycles: u64,
2413    pub ri_billed_energy: u64,
2414    pub ri_serviced_energy: u64,
2415    pub ri_interval_max_phys_footprint: u64,
2416    pub ri_runnable_time: u64,
2417}
2418#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2419const _: () = {
2420    ["Size of rusage_info_v4"][::std::mem::size_of::<rusage_info_v4>() - 296usize];
2421    ["Alignment of rusage_info_v4"][::std::mem::align_of::<rusage_info_v4>() - 8usize];
2422    ["Offset of field: rusage_info_v4::ri_uuid"]
2423        [::std::mem::offset_of!(rusage_info_v4, ri_uuid) - 0usize];
2424    ["Offset of field: rusage_info_v4::ri_user_time"]
2425        [::std::mem::offset_of!(rusage_info_v4, ri_user_time) - 16usize];
2426    ["Offset of field: rusage_info_v4::ri_system_time"]
2427        [::std::mem::offset_of!(rusage_info_v4, ri_system_time) - 24usize];
2428    ["Offset of field: rusage_info_v4::ri_pkg_idle_wkups"]
2429        [::std::mem::offset_of!(rusage_info_v4, ri_pkg_idle_wkups) - 32usize];
2430    ["Offset of field: rusage_info_v4::ri_interrupt_wkups"]
2431        [::std::mem::offset_of!(rusage_info_v4, ri_interrupt_wkups) - 40usize];
2432    ["Offset of field: rusage_info_v4::ri_pageins"]
2433        [::std::mem::offset_of!(rusage_info_v4, ri_pageins) - 48usize];
2434    ["Offset of field: rusage_info_v4::ri_wired_size"]
2435        [::std::mem::offset_of!(rusage_info_v4, ri_wired_size) - 56usize];
2436    ["Offset of field: rusage_info_v4::ri_resident_size"]
2437        [::std::mem::offset_of!(rusage_info_v4, ri_resident_size) - 64usize];
2438    ["Offset of field: rusage_info_v4::ri_phys_footprint"]
2439        [::std::mem::offset_of!(rusage_info_v4, ri_phys_footprint) - 72usize];
2440    ["Offset of field: rusage_info_v4::ri_proc_start_abstime"]
2441        [::std::mem::offset_of!(rusage_info_v4, ri_proc_start_abstime) - 80usize];
2442    ["Offset of field: rusage_info_v4::ri_proc_exit_abstime"]
2443        [::std::mem::offset_of!(rusage_info_v4, ri_proc_exit_abstime) - 88usize];
2444    ["Offset of field: rusage_info_v4::ri_child_user_time"]
2445        [::std::mem::offset_of!(rusage_info_v4, ri_child_user_time) - 96usize];
2446    ["Offset of field: rusage_info_v4::ri_child_system_time"]
2447        [::std::mem::offset_of!(rusage_info_v4, ri_child_system_time) - 104usize];
2448    ["Offset of field: rusage_info_v4::ri_child_pkg_idle_wkups"]
2449        [::std::mem::offset_of!(rusage_info_v4, ri_child_pkg_idle_wkups) - 112usize];
2450    ["Offset of field: rusage_info_v4::ri_child_interrupt_wkups"]
2451        [::std::mem::offset_of!(rusage_info_v4, ri_child_interrupt_wkups) - 120usize];
2452    ["Offset of field: rusage_info_v4::ri_child_pageins"]
2453        [::std::mem::offset_of!(rusage_info_v4, ri_child_pageins) - 128usize];
2454    ["Offset of field: rusage_info_v4::ri_child_elapsed_abstime"]
2455        [::std::mem::offset_of!(rusage_info_v4, ri_child_elapsed_abstime) - 136usize];
2456    ["Offset of field: rusage_info_v4::ri_diskio_bytesread"]
2457        [::std::mem::offset_of!(rusage_info_v4, ri_diskio_bytesread) - 144usize];
2458    ["Offset of field: rusage_info_v4::ri_diskio_byteswritten"]
2459        [::std::mem::offset_of!(rusage_info_v4, ri_diskio_byteswritten) - 152usize];
2460    ["Offset of field: rusage_info_v4::ri_cpu_time_qos_default"]
2461        [::std::mem::offset_of!(rusage_info_v4, ri_cpu_time_qos_default) - 160usize];
2462    ["Offset of field: rusage_info_v4::ri_cpu_time_qos_maintenance"]
2463        [::std::mem::offset_of!(rusage_info_v4, ri_cpu_time_qos_maintenance) - 168usize];
2464    ["Offset of field: rusage_info_v4::ri_cpu_time_qos_background"]
2465        [::std::mem::offset_of!(rusage_info_v4, ri_cpu_time_qos_background) - 176usize];
2466    ["Offset of field: rusage_info_v4::ri_cpu_time_qos_utility"]
2467        [::std::mem::offset_of!(rusage_info_v4, ri_cpu_time_qos_utility) - 184usize];
2468    ["Offset of field: rusage_info_v4::ri_cpu_time_qos_legacy"]
2469        [::std::mem::offset_of!(rusage_info_v4, ri_cpu_time_qos_legacy) - 192usize];
2470    ["Offset of field: rusage_info_v4::ri_cpu_time_qos_user_initiated"]
2471        [::std::mem::offset_of!(rusage_info_v4, ri_cpu_time_qos_user_initiated) - 200usize];
2472    ["Offset of field: rusage_info_v4::ri_cpu_time_qos_user_interactive"]
2473        [::std::mem::offset_of!(rusage_info_v4, ri_cpu_time_qos_user_interactive) - 208usize];
2474    ["Offset of field: rusage_info_v4::ri_billed_system_time"]
2475        [::std::mem::offset_of!(rusage_info_v4, ri_billed_system_time) - 216usize];
2476    ["Offset of field: rusage_info_v4::ri_serviced_system_time"]
2477        [::std::mem::offset_of!(rusage_info_v4, ri_serviced_system_time) - 224usize];
2478    ["Offset of field: rusage_info_v4::ri_logical_writes"]
2479        [::std::mem::offset_of!(rusage_info_v4, ri_logical_writes) - 232usize];
2480    ["Offset of field: rusage_info_v4::ri_lifetime_max_phys_footprint"]
2481        [::std::mem::offset_of!(rusage_info_v4, ri_lifetime_max_phys_footprint) - 240usize];
2482    ["Offset of field: rusage_info_v4::ri_instructions"]
2483        [::std::mem::offset_of!(rusage_info_v4, ri_instructions) - 248usize];
2484    ["Offset of field: rusage_info_v4::ri_cycles"]
2485        [::std::mem::offset_of!(rusage_info_v4, ri_cycles) - 256usize];
2486    ["Offset of field: rusage_info_v4::ri_billed_energy"]
2487        [::std::mem::offset_of!(rusage_info_v4, ri_billed_energy) - 264usize];
2488    ["Offset of field: rusage_info_v4::ri_serviced_energy"]
2489        [::std::mem::offset_of!(rusage_info_v4, ri_serviced_energy) - 272usize];
2490    ["Offset of field: rusage_info_v4::ri_interval_max_phys_footprint"]
2491        [::std::mem::offset_of!(rusage_info_v4, ri_interval_max_phys_footprint) - 280usize];
2492    ["Offset of field: rusage_info_v4::ri_runnable_time"]
2493        [::std::mem::offset_of!(rusage_info_v4, ri_runnable_time) - 288usize];
2494};
2495#[repr(C)]
2496#[derive(Debug, Copy, Clone)]
2497pub struct rusage_info_v5 {
2498    pub ri_uuid: [u8; 16usize],
2499    pub ri_user_time: u64,
2500    pub ri_system_time: u64,
2501    pub ri_pkg_idle_wkups: u64,
2502    pub ri_interrupt_wkups: u64,
2503    pub ri_pageins: u64,
2504    pub ri_wired_size: u64,
2505    pub ri_resident_size: u64,
2506    pub ri_phys_footprint: u64,
2507    pub ri_proc_start_abstime: u64,
2508    pub ri_proc_exit_abstime: u64,
2509    pub ri_child_user_time: u64,
2510    pub ri_child_system_time: u64,
2511    pub ri_child_pkg_idle_wkups: u64,
2512    pub ri_child_interrupt_wkups: u64,
2513    pub ri_child_pageins: u64,
2514    pub ri_child_elapsed_abstime: u64,
2515    pub ri_diskio_bytesread: u64,
2516    pub ri_diskio_byteswritten: u64,
2517    pub ri_cpu_time_qos_default: u64,
2518    pub ri_cpu_time_qos_maintenance: u64,
2519    pub ri_cpu_time_qos_background: u64,
2520    pub ri_cpu_time_qos_utility: u64,
2521    pub ri_cpu_time_qos_legacy: u64,
2522    pub ri_cpu_time_qos_user_initiated: u64,
2523    pub ri_cpu_time_qos_user_interactive: u64,
2524    pub ri_billed_system_time: u64,
2525    pub ri_serviced_system_time: u64,
2526    pub ri_logical_writes: u64,
2527    pub ri_lifetime_max_phys_footprint: u64,
2528    pub ri_instructions: u64,
2529    pub ri_cycles: u64,
2530    pub ri_billed_energy: u64,
2531    pub ri_serviced_energy: u64,
2532    pub ri_interval_max_phys_footprint: u64,
2533    pub ri_runnable_time: u64,
2534    pub ri_flags: u64,
2535}
2536#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2537const _: () = {
2538    ["Size of rusage_info_v5"][::std::mem::size_of::<rusage_info_v5>() - 304usize];
2539    ["Alignment of rusage_info_v5"][::std::mem::align_of::<rusage_info_v5>() - 8usize];
2540    ["Offset of field: rusage_info_v5::ri_uuid"]
2541        [::std::mem::offset_of!(rusage_info_v5, ri_uuid) - 0usize];
2542    ["Offset of field: rusage_info_v5::ri_user_time"]
2543        [::std::mem::offset_of!(rusage_info_v5, ri_user_time) - 16usize];
2544    ["Offset of field: rusage_info_v5::ri_system_time"]
2545        [::std::mem::offset_of!(rusage_info_v5, ri_system_time) - 24usize];
2546    ["Offset of field: rusage_info_v5::ri_pkg_idle_wkups"]
2547        [::std::mem::offset_of!(rusage_info_v5, ri_pkg_idle_wkups) - 32usize];
2548    ["Offset of field: rusage_info_v5::ri_interrupt_wkups"]
2549        [::std::mem::offset_of!(rusage_info_v5, ri_interrupt_wkups) - 40usize];
2550    ["Offset of field: rusage_info_v5::ri_pageins"]
2551        [::std::mem::offset_of!(rusage_info_v5, ri_pageins) - 48usize];
2552    ["Offset of field: rusage_info_v5::ri_wired_size"]
2553        [::std::mem::offset_of!(rusage_info_v5, ri_wired_size) - 56usize];
2554    ["Offset of field: rusage_info_v5::ri_resident_size"]
2555        [::std::mem::offset_of!(rusage_info_v5, ri_resident_size) - 64usize];
2556    ["Offset of field: rusage_info_v5::ri_phys_footprint"]
2557        [::std::mem::offset_of!(rusage_info_v5, ri_phys_footprint) - 72usize];
2558    ["Offset of field: rusage_info_v5::ri_proc_start_abstime"]
2559        [::std::mem::offset_of!(rusage_info_v5, ri_proc_start_abstime) - 80usize];
2560    ["Offset of field: rusage_info_v5::ri_proc_exit_abstime"]
2561        [::std::mem::offset_of!(rusage_info_v5, ri_proc_exit_abstime) - 88usize];
2562    ["Offset of field: rusage_info_v5::ri_child_user_time"]
2563        [::std::mem::offset_of!(rusage_info_v5, ri_child_user_time) - 96usize];
2564    ["Offset of field: rusage_info_v5::ri_child_system_time"]
2565        [::std::mem::offset_of!(rusage_info_v5, ri_child_system_time) - 104usize];
2566    ["Offset of field: rusage_info_v5::ri_child_pkg_idle_wkups"]
2567        [::std::mem::offset_of!(rusage_info_v5, ri_child_pkg_idle_wkups) - 112usize];
2568    ["Offset of field: rusage_info_v5::ri_child_interrupt_wkups"]
2569        [::std::mem::offset_of!(rusage_info_v5, ri_child_interrupt_wkups) - 120usize];
2570    ["Offset of field: rusage_info_v5::ri_child_pageins"]
2571        [::std::mem::offset_of!(rusage_info_v5, ri_child_pageins) - 128usize];
2572    ["Offset of field: rusage_info_v5::ri_child_elapsed_abstime"]
2573        [::std::mem::offset_of!(rusage_info_v5, ri_child_elapsed_abstime) - 136usize];
2574    ["Offset of field: rusage_info_v5::ri_diskio_bytesread"]
2575        [::std::mem::offset_of!(rusage_info_v5, ri_diskio_bytesread) - 144usize];
2576    ["Offset of field: rusage_info_v5::ri_diskio_byteswritten"]
2577        [::std::mem::offset_of!(rusage_info_v5, ri_diskio_byteswritten) - 152usize];
2578    ["Offset of field: rusage_info_v5::ri_cpu_time_qos_default"]
2579        [::std::mem::offset_of!(rusage_info_v5, ri_cpu_time_qos_default) - 160usize];
2580    ["Offset of field: rusage_info_v5::ri_cpu_time_qos_maintenance"]
2581        [::std::mem::offset_of!(rusage_info_v5, ri_cpu_time_qos_maintenance) - 168usize];
2582    ["Offset of field: rusage_info_v5::ri_cpu_time_qos_background"]
2583        [::std::mem::offset_of!(rusage_info_v5, ri_cpu_time_qos_background) - 176usize];
2584    ["Offset of field: rusage_info_v5::ri_cpu_time_qos_utility"]
2585        [::std::mem::offset_of!(rusage_info_v5, ri_cpu_time_qos_utility) - 184usize];
2586    ["Offset of field: rusage_info_v5::ri_cpu_time_qos_legacy"]
2587        [::std::mem::offset_of!(rusage_info_v5, ri_cpu_time_qos_legacy) - 192usize];
2588    ["Offset of field: rusage_info_v5::ri_cpu_time_qos_user_initiated"]
2589        [::std::mem::offset_of!(rusage_info_v5, ri_cpu_time_qos_user_initiated) - 200usize];
2590    ["Offset of field: rusage_info_v5::ri_cpu_time_qos_user_interactive"]
2591        [::std::mem::offset_of!(rusage_info_v5, ri_cpu_time_qos_user_interactive) - 208usize];
2592    ["Offset of field: rusage_info_v5::ri_billed_system_time"]
2593        [::std::mem::offset_of!(rusage_info_v5, ri_billed_system_time) - 216usize];
2594    ["Offset of field: rusage_info_v5::ri_serviced_system_time"]
2595        [::std::mem::offset_of!(rusage_info_v5, ri_serviced_system_time) - 224usize];
2596    ["Offset of field: rusage_info_v5::ri_logical_writes"]
2597        [::std::mem::offset_of!(rusage_info_v5, ri_logical_writes) - 232usize];
2598    ["Offset of field: rusage_info_v5::ri_lifetime_max_phys_footprint"]
2599        [::std::mem::offset_of!(rusage_info_v5, ri_lifetime_max_phys_footprint) - 240usize];
2600    ["Offset of field: rusage_info_v5::ri_instructions"]
2601        [::std::mem::offset_of!(rusage_info_v5, ri_instructions) - 248usize];
2602    ["Offset of field: rusage_info_v5::ri_cycles"]
2603        [::std::mem::offset_of!(rusage_info_v5, ri_cycles) - 256usize];
2604    ["Offset of field: rusage_info_v5::ri_billed_energy"]
2605        [::std::mem::offset_of!(rusage_info_v5, ri_billed_energy) - 264usize];
2606    ["Offset of field: rusage_info_v5::ri_serviced_energy"]
2607        [::std::mem::offset_of!(rusage_info_v5, ri_serviced_energy) - 272usize];
2608    ["Offset of field: rusage_info_v5::ri_interval_max_phys_footprint"]
2609        [::std::mem::offset_of!(rusage_info_v5, ri_interval_max_phys_footprint) - 280usize];
2610    ["Offset of field: rusage_info_v5::ri_runnable_time"]
2611        [::std::mem::offset_of!(rusage_info_v5, ri_runnable_time) - 288usize];
2612    ["Offset of field: rusage_info_v5::ri_flags"]
2613        [::std::mem::offset_of!(rusage_info_v5, ri_flags) - 296usize];
2614};
2615#[repr(C)]
2616#[derive(Debug, Copy, Clone)]
2617pub struct rusage_info_v6 {
2618    pub ri_uuid: [u8; 16usize],
2619    pub ri_user_time: u64,
2620    pub ri_system_time: u64,
2621    pub ri_pkg_idle_wkups: u64,
2622    pub ri_interrupt_wkups: u64,
2623    pub ri_pageins: u64,
2624    pub ri_wired_size: u64,
2625    pub ri_resident_size: u64,
2626    pub ri_phys_footprint: u64,
2627    pub ri_proc_start_abstime: u64,
2628    pub ri_proc_exit_abstime: u64,
2629    pub ri_child_user_time: u64,
2630    pub ri_child_system_time: u64,
2631    pub ri_child_pkg_idle_wkups: u64,
2632    pub ri_child_interrupt_wkups: u64,
2633    pub ri_child_pageins: u64,
2634    pub ri_child_elapsed_abstime: u64,
2635    pub ri_diskio_bytesread: u64,
2636    pub ri_diskio_byteswritten: u64,
2637    pub ri_cpu_time_qos_default: u64,
2638    pub ri_cpu_time_qos_maintenance: u64,
2639    pub ri_cpu_time_qos_background: u64,
2640    pub ri_cpu_time_qos_utility: u64,
2641    pub ri_cpu_time_qos_legacy: u64,
2642    pub ri_cpu_time_qos_user_initiated: u64,
2643    pub ri_cpu_time_qos_user_interactive: u64,
2644    pub ri_billed_system_time: u64,
2645    pub ri_serviced_system_time: u64,
2646    pub ri_logical_writes: u64,
2647    pub ri_lifetime_max_phys_footprint: u64,
2648    pub ri_instructions: u64,
2649    pub ri_cycles: u64,
2650    pub ri_billed_energy: u64,
2651    pub ri_serviced_energy: u64,
2652    pub ri_interval_max_phys_footprint: u64,
2653    pub ri_runnable_time: u64,
2654    pub ri_flags: u64,
2655    pub ri_user_ptime: u64,
2656    pub ri_system_ptime: u64,
2657    pub ri_pinstructions: u64,
2658    pub ri_pcycles: u64,
2659    pub ri_energy_nj: u64,
2660    pub ri_penergy_nj: u64,
2661    pub ri_secure_time_in_system: u64,
2662    pub ri_secure_ptime_in_system: u64,
2663    pub ri_neural_footprint: u64,
2664    pub ri_lifetime_max_neural_footprint: u64,
2665    pub ri_interval_max_neural_footprint: u64,
2666    pub ri_reserved: [u64; 9usize],
2667}
2668#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2669const _: () = {
2670    ["Size of rusage_info_v6"][::std::mem::size_of::<rusage_info_v6>() - 464usize];
2671    ["Alignment of rusage_info_v6"][::std::mem::align_of::<rusage_info_v6>() - 8usize];
2672    ["Offset of field: rusage_info_v6::ri_uuid"]
2673        [::std::mem::offset_of!(rusage_info_v6, ri_uuid) - 0usize];
2674    ["Offset of field: rusage_info_v6::ri_user_time"]
2675        [::std::mem::offset_of!(rusage_info_v6, ri_user_time) - 16usize];
2676    ["Offset of field: rusage_info_v6::ri_system_time"]
2677        [::std::mem::offset_of!(rusage_info_v6, ri_system_time) - 24usize];
2678    ["Offset of field: rusage_info_v6::ri_pkg_idle_wkups"]
2679        [::std::mem::offset_of!(rusage_info_v6, ri_pkg_idle_wkups) - 32usize];
2680    ["Offset of field: rusage_info_v6::ri_interrupt_wkups"]
2681        [::std::mem::offset_of!(rusage_info_v6, ri_interrupt_wkups) - 40usize];
2682    ["Offset of field: rusage_info_v6::ri_pageins"]
2683        [::std::mem::offset_of!(rusage_info_v6, ri_pageins) - 48usize];
2684    ["Offset of field: rusage_info_v6::ri_wired_size"]
2685        [::std::mem::offset_of!(rusage_info_v6, ri_wired_size) - 56usize];
2686    ["Offset of field: rusage_info_v6::ri_resident_size"]
2687        [::std::mem::offset_of!(rusage_info_v6, ri_resident_size) - 64usize];
2688    ["Offset of field: rusage_info_v6::ri_phys_footprint"]
2689        [::std::mem::offset_of!(rusage_info_v6, ri_phys_footprint) - 72usize];
2690    ["Offset of field: rusage_info_v6::ri_proc_start_abstime"]
2691        [::std::mem::offset_of!(rusage_info_v6, ri_proc_start_abstime) - 80usize];
2692    ["Offset of field: rusage_info_v6::ri_proc_exit_abstime"]
2693        [::std::mem::offset_of!(rusage_info_v6, ri_proc_exit_abstime) - 88usize];
2694    ["Offset of field: rusage_info_v6::ri_child_user_time"]
2695        [::std::mem::offset_of!(rusage_info_v6, ri_child_user_time) - 96usize];
2696    ["Offset of field: rusage_info_v6::ri_child_system_time"]
2697        [::std::mem::offset_of!(rusage_info_v6, ri_child_system_time) - 104usize];
2698    ["Offset of field: rusage_info_v6::ri_child_pkg_idle_wkups"]
2699        [::std::mem::offset_of!(rusage_info_v6, ri_child_pkg_idle_wkups) - 112usize];
2700    ["Offset of field: rusage_info_v6::ri_child_interrupt_wkups"]
2701        [::std::mem::offset_of!(rusage_info_v6, ri_child_interrupt_wkups) - 120usize];
2702    ["Offset of field: rusage_info_v6::ri_child_pageins"]
2703        [::std::mem::offset_of!(rusage_info_v6, ri_child_pageins) - 128usize];
2704    ["Offset of field: rusage_info_v6::ri_child_elapsed_abstime"]
2705        [::std::mem::offset_of!(rusage_info_v6, ri_child_elapsed_abstime) - 136usize];
2706    ["Offset of field: rusage_info_v6::ri_diskio_bytesread"]
2707        [::std::mem::offset_of!(rusage_info_v6, ri_diskio_bytesread) - 144usize];
2708    ["Offset of field: rusage_info_v6::ri_diskio_byteswritten"]
2709        [::std::mem::offset_of!(rusage_info_v6, ri_diskio_byteswritten) - 152usize];
2710    ["Offset of field: rusage_info_v6::ri_cpu_time_qos_default"]
2711        [::std::mem::offset_of!(rusage_info_v6, ri_cpu_time_qos_default) - 160usize];
2712    ["Offset of field: rusage_info_v6::ri_cpu_time_qos_maintenance"]
2713        [::std::mem::offset_of!(rusage_info_v6, ri_cpu_time_qos_maintenance) - 168usize];
2714    ["Offset of field: rusage_info_v6::ri_cpu_time_qos_background"]
2715        [::std::mem::offset_of!(rusage_info_v6, ri_cpu_time_qos_background) - 176usize];
2716    ["Offset of field: rusage_info_v6::ri_cpu_time_qos_utility"]
2717        [::std::mem::offset_of!(rusage_info_v6, ri_cpu_time_qos_utility) - 184usize];
2718    ["Offset of field: rusage_info_v6::ri_cpu_time_qos_legacy"]
2719        [::std::mem::offset_of!(rusage_info_v6, ri_cpu_time_qos_legacy) - 192usize];
2720    ["Offset of field: rusage_info_v6::ri_cpu_time_qos_user_initiated"]
2721        [::std::mem::offset_of!(rusage_info_v6, ri_cpu_time_qos_user_initiated) - 200usize];
2722    ["Offset of field: rusage_info_v6::ri_cpu_time_qos_user_interactive"]
2723        [::std::mem::offset_of!(rusage_info_v6, ri_cpu_time_qos_user_interactive) - 208usize];
2724    ["Offset of field: rusage_info_v6::ri_billed_system_time"]
2725        [::std::mem::offset_of!(rusage_info_v6, ri_billed_system_time) - 216usize];
2726    ["Offset of field: rusage_info_v6::ri_serviced_system_time"]
2727        [::std::mem::offset_of!(rusage_info_v6, ri_serviced_system_time) - 224usize];
2728    ["Offset of field: rusage_info_v6::ri_logical_writes"]
2729        [::std::mem::offset_of!(rusage_info_v6, ri_logical_writes) - 232usize];
2730    ["Offset of field: rusage_info_v6::ri_lifetime_max_phys_footprint"]
2731        [::std::mem::offset_of!(rusage_info_v6, ri_lifetime_max_phys_footprint) - 240usize];
2732    ["Offset of field: rusage_info_v6::ri_instructions"]
2733        [::std::mem::offset_of!(rusage_info_v6, ri_instructions) - 248usize];
2734    ["Offset of field: rusage_info_v6::ri_cycles"]
2735        [::std::mem::offset_of!(rusage_info_v6, ri_cycles) - 256usize];
2736    ["Offset of field: rusage_info_v6::ri_billed_energy"]
2737        [::std::mem::offset_of!(rusage_info_v6, ri_billed_energy) - 264usize];
2738    ["Offset of field: rusage_info_v6::ri_serviced_energy"]
2739        [::std::mem::offset_of!(rusage_info_v6, ri_serviced_energy) - 272usize];
2740    ["Offset of field: rusage_info_v6::ri_interval_max_phys_footprint"]
2741        [::std::mem::offset_of!(rusage_info_v6, ri_interval_max_phys_footprint) - 280usize];
2742    ["Offset of field: rusage_info_v6::ri_runnable_time"]
2743        [::std::mem::offset_of!(rusage_info_v6, ri_runnable_time) - 288usize];
2744    ["Offset of field: rusage_info_v6::ri_flags"]
2745        [::std::mem::offset_of!(rusage_info_v6, ri_flags) - 296usize];
2746    ["Offset of field: rusage_info_v6::ri_user_ptime"]
2747        [::std::mem::offset_of!(rusage_info_v6, ri_user_ptime) - 304usize];
2748    ["Offset of field: rusage_info_v6::ri_system_ptime"]
2749        [::std::mem::offset_of!(rusage_info_v6, ri_system_ptime) - 312usize];
2750    ["Offset of field: rusage_info_v6::ri_pinstructions"]
2751        [::std::mem::offset_of!(rusage_info_v6, ri_pinstructions) - 320usize];
2752    ["Offset of field: rusage_info_v6::ri_pcycles"]
2753        [::std::mem::offset_of!(rusage_info_v6, ri_pcycles) - 328usize];
2754    ["Offset of field: rusage_info_v6::ri_energy_nj"]
2755        [::std::mem::offset_of!(rusage_info_v6, ri_energy_nj) - 336usize];
2756    ["Offset of field: rusage_info_v6::ri_penergy_nj"]
2757        [::std::mem::offset_of!(rusage_info_v6, ri_penergy_nj) - 344usize];
2758    ["Offset of field: rusage_info_v6::ri_secure_time_in_system"]
2759        [::std::mem::offset_of!(rusage_info_v6, ri_secure_time_in_system) - 352usize];
2760    ["Offset of field: rusage_info_v6::ri_secure_ptime_in_system"]
2761        [::std::mem::offset_of!(rusage_info_v6, ri_secure_ptime_in_system) - 360usize];
2762    ["Offset of field: rusage_info_v6::ri_neural_footprint"]
2763        [::std::mem::offset_of!(rusage_info_v6, ri_neural_footprint) - 368usize];
2764    ["Offset of field: rusage_info_v6::ri_lifetime_max_neural_footprint"]
2765        [::std::mem::offset_of!(rusage_info_v6, ri_lifetime_max_neural_footprint) - 376usize];
2766    ["Offset of field: rusage_info_v6::ri_interval_max_neural_footprint"]
2767        [::std::mem::offset_of!(rusage_info_v6, ri_interval_max_neural_footprint) - 384usize];
2768    ["Offset of field: rusage_info_v6::ri_reserved"]
2769        [::std::mem::offset_of!(rusage_info_v6, ri_reserved) - 392usize];
2770};
2771pub type rusage_info_current = rusage_info_v6;
2772#[repr(C)]
2773#[derive(Debug, Copy, Clone)]
2774pub struct rlimit {
2775    pub rlim_cur: rlim_t,
2776    pub rlim_max: rlim_t,
2777}
2778#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2779const _: () = {
2780    ["Size of rlimit"][::std::mem::size_of::<rlimit>() - 16usize];
2781    ["Alignment of rlimit"][::std::mem::align_of::<rlimit>() - 8usize];
2782    ["Offset of field: rlimit::rlim_cur"][::std::mem::offset_of!(rlimit, rlim_cur) - 0usize];
2783    ["Offset of field: rlimit::rlim_max"][::std::mem::offset_of!(rlimit, rlim_max) - 8usize];
2784};
2785#[repr(C)]
2786#[derive(Debug, Copy, Clone)]
2787pub struct proc_rlimit_control_wakeupmon {
2788    pub wm_flags: u32,
2789    pub wm_rate: i32,
2790}
2791#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2792const _: () = {
2793    ["Size of proc_rlimit_control_wakeupmon"]
2794        [::std::mem::size_of::<proc_rlimit_control_wakeupmon>() - 8usize];
2795    ["Alignment of proc_rlimit_control_wakeupmon"]
2796        [::std::mem::align_of::<proc_rlimit_control_wakeupmon>() - 4usize];
2797    ["Offset of field: proc_rlimit_control_wakeupmon::wm_flags"]
2798        [::std::mem::offset_of!(proc_rlimit_control_wakeupmon, wm_flags) - 0usize];
2799    ["Offset of field: proc_rlimit_control_wakeupmon::wm_rate"]
2800        [::std::mem::offset_of!(proc_rlimit_control_wakeupmon, wm_rate) - 4usize];
2801};
2802unsafe extern "C" {
2803    pub fn getpriority(arg1: ::std::os::raw::c_int, arg2: id_t) -> ::std::os::raw::c_int;
2804}
2805unsafe extern "C" {
2806    pub fn getiopolicy_np(
2807        arg1: ::std::os::raw::c_int,
2808        arg2: ::std::os::raw::c_int,
2809    ) -> ::std::os::raw::c_int;
2810}
2811unsafe extern "C" {
2812    pub fn getrlimit(arg1: ::std::os::raw::c_int, arg2: *mut rlimit) -> ::std::os::raw::c_int;
2813}
2814unsafe extern "C" {
2815    pub fn getrusage(arg1: ::std::os::raw::c_int, arg2: *mut rusage) -> ::std::os::raw::c_int;
2816}
2817unsafe extern "C" {
2818    pub fn setpriority(
2819        arg1: ::std::os::raw::c_int,
2820        arg2: id_t,
2821        arg3: ::std::os::raw::c_int,
2822    ) -> ::std::os::raw::c_int;
2823}
2824unsafe extern "C" {
2825    pub fn setiopolicy_np(
2826        arg1: ::std::os::raw::c_int,
2827        arg2: ::std::os::raw::c_int,
2828        arg3: ::std::os::raw::c_int,
2829    ) -> ::std::os::raw::c_int;
2830}
2831unsafe extern "C" {
2832    pub fn setrlimit(arg1: ::std::os::raw::c_int, arg2: *const rlimit) -> ::std::os::raw::c_int;
2833}
2834#[repr(C)]
2835#[derive(Copy, Clone)]
2836pub union wait {
2837    pub w_status: ::std::os::raw::c_int,
2838    pub w_T: wait__bindgen_ty_1,
2839    pub w_S: wait__bindgen_ty_2,
2840}
2841#[repr(C)]
2842#[repr(align(4))]
2843#[derive(Debug, Copy, Clone)]
2844pub struct wait__bindgen_ty_1 {
2845    pub _bitfield_align_1: [u16; 0],
2846    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
2847}
2848#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2849const _: () = {
2850    ["Size of wait__bindgen_ty_1"][::std::mem::size_of::<wait__bindgen_ty_1>() - 4usize];
2851    ["Alignment of wait__bindgen_ty_1"][::std::mem::align_of::<wait__bindgen_ty_1>() - 4usize];
2852};
2853impl wait__bindgen_ty_1 {
2854    #[inline]
2855    pub fn w_Termsig(&self) -> ::std::os::raw::c_uint {
2856        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 7u8) as u32) }
2857    }
2858    #[inline]
2859    pub fn set_w_Termsig(&mut self, val: ::std::os::raw::c_uint) {
2860        unsafe {
2861            let val: u32 = ::std::mem::transmute(val);
2862            self._bitfield_1.set(0usize, 7u8, val as u64)
2863        }
2864    }
2865    #[inline]
2866    pub unsafe fn w_Termsig_raw(this: *const Self) -> ::std::os::raw::c_uint {
2867        unsafe {
2868            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
2869                ::std::ptr::addr_of!((*this)._bitfield_1),
2870                0usize,
2871                7u8,
2872            ) as u32)
2873        }
2874    }
2875    #[inline]
2876    pub unsafe fn set_w_Termsig_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
2877        unsafe {
2878            let val: u32 = ::std::mem::transmute(val);
2879            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
2880                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2881                0usize,
2882                7u8,
2883                val as u64,
2884            )
2885        }
2886    }
2887    #[inline]
2888    pub fn w_Coredump(&self) -> ::std::os::raw::c_uint {
2889        unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) }
2890    }
2891    #[inline]
2892    pub fn set_w_Coredump(&mut self, val: ::std::os::raw::c_uint) {
2893        unsafe {
2894            let val: u32 = ::std::mem::transmute(val);
2895            self._bitfield_1.set(7usize, 1u8, val as u64)
2896        }
2897    }
2898    #[inline]
2899    pub unsafe fn w_Coredump_raw(this: *const Self) -> ::std::os::raw::c_uint {
2900        unsafe {
2901            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
2902                ::std::ptr::addr_of!((*this)._bitfield_1),
2903                7usize,
2904                1u8,
2905            ) as u32)
2906        }
2907    }
2908    #[inline]
2909    pub unsafe fn set_w_Coredump_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
2910        unsafe {
2911            let val: u32 = ::std::mem::transmute(val);
2912            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
2913                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2914                7usize,
2915                1u8,
2916                val as u64,
2917            )
2918        }
2919    }
2920    #[inline]
2921    pub fn w_Retcode(&self) -> ::std::os::raw::c_uint {
2922        unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 8u8) as u32) }
2923    }
2924    #[inline]
2925    pub fn set_w_Retcode(&mut self, val: ::std::os::raw::c_uint) {
2926        unsafe {
2927            let val: u32 = ::std::mem::transmute(val);
2928            self._bitfield_1.set(8usize, 8u8, val as u64)
2929        }
2930    }
2931    #[inline]
2932    pub unsafe fn w_Retcode_raw(this: *const Self) -> ::std::os::raw::c_uint {
2933        unsafe {
2934            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
2935                ::std::ptr::addr_of!((*this)._bitfield_1),
2936                8usize,
2937                8u8,
2938            ) as u32)
2939        }
2940    }
2941    #[inline]
2942    pub unsafe fn set_w_Retcode_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
2943        unsafe {
2944            let val: u32 = ::std::mem::transmute(val);
2945            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
2946                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2947                8usize,
2948                8u8,
2949                val as u64,
2950            )
2951        }
2952    }
2953    #[inline]
2954    pub fn w_Filler(&self) -> ::std::os::raw::c_uint {
2955        unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 16u8) as u32) }
2956    }
2957    #[inline]
2958    pub fn set_w_Filler(&mut self, val: ::std::os::raw::c_uint) {
2959        unsafe {
2960            let val: u32 = ::std::mem::transmute(val);
2961            self._bitfield_1.set(16usize, 16u8, val as u64)
2962        }
2963    }
2964    #[inline]
2965    pub unsafe fn w_Filler_raw(this: *const Self) -> ::std::os::raw::c_uint {
2966        unsafe {
2967            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
2968                ::std::ptr::addr_of!((*this)._bitfield_1),
2969                16usize,
2970                16u8,
2971            ) as u32)
2972        }
2973    }
2974    #[inline]
2975    pub unsafe fn set_w_Filler_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
2976        unsafe {
2977            let val: u32 = ::std::mem::transmute(val);
2978            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
2979                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2980                16usize,
2981                16u8,
2982                val as u64,
2983            )
2984        }
2985    }
2986    #[inline]
2987    pub fn new_bitfield_1(
2988        w_Termsig: ::std::os::raw::c_uint,
2989        w_Coredump: ::std::os::raw::c_uint,
2990        w_Retcode: ::std::os::raw::c_uint,
2991        w_Filler: ::std::os::raw::c_uint,
2992    ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
2993        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
2994        __bindgen_bitfield_unit.set(0usize, 7u8, {
2995            let w_Termsig: u32 = unsafe { ::std::mem::transmute(w_Termsig) };
2996            w_Termsig as u64
2997        });
2998        __bindgen_bitfield_unit.set(7usize, 1u8, {
2999            let w_Coredump: u32 = unsafe { ::std::mem::transmute(w_Coredump) };
3000            w_Coredump as u64
3001        });
3002        __bindgen_bitfield_unit.set(8usize, 8u8, {
3003            let w_Retcode: u32 = unsafe { ::std::mem::transmute(w_Retcode) };
3004            w_Retcode as u64
3005        });
3006        __bindgen_bitfield_unit.set(16usize, 16u8, {
3007            let w_Filler: u32 = unsafe { ::std::mem::transmute(w_Filler) };
3008            w_Filler as u64
3009        });
3010        __bindgen_bitfield_unit
3011    }
3012}
3013#[repr(C)]
3014#[repr(align(4))]
3015#[derive(Debug, Copy, Clone)]
3016pub struct wait__bindgen_ty_2 {
3017    pub _bitfield_align_1: [u16; 0],
3018    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
3019}
3020#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3021const _: () = {
3022    ["Size of wait__bindgen_ty_2"][::std::mem::size_of::<wait__bindgen_ty_2>() - 4usize];
3023    ["Alignment of wait__bindgen_ty_2"][::std::mem::align_of::<wait__bindgen_ty_2>() - 4usize];
3024};
3025impl wait__bindgen_ty_2 {
3026    #[inline]
3027    pub fn w_Stopval(&self) -> ::std::os::raw::c_uint {
3028        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 8u8) as u32) }
3029    }
3030    #[inline]
3031    pub fn set_w_Stopval(&mut self, val: ::std::os::raw::c_uint) {
3032        unsafe {
3033            let val: u32 = ::std::mem::transmute(val);
3034            self._bitfield_1.set(0usize, 8u8, val as u64)
3035        }
3036    }
3037    #[inline]
3038    pub unsafe fn w_Stopval_raw(this: *const Self) -> ::std::os::raw::c_uint {
3039        unsafe {
3040            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
3041                ::std::ptr::addr_of!((*this)._bitfield_1),
3042                0usize,
3043                8u8,
3044            ) as u32)
3045        }
3046    }
3047    #[inline]
3048    pub unsafe fn set_w_Stopval_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
3049        unsafe {
3050            let val: u32 = ::std::mem::transmute(val);
3051            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
3052                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
3053                0usize,
3054                8u8,
3055                val as u64,
3056            )
3057        }
3058    }
3059    #[inline]
3060    pub fn w_Stopsig(&self) -> ::std::os::raw::c_uint {
3061        unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 8u8) as u32) }
3062    }
3063    #[inline]
3064    pub fn set_w_Stopsig(&mut self, val: ::std::os::raw::c_uint) {
3065        unsafe {
3066            let val: u32 = ::std::mem::transmute(val);
3067            self._bitfield_1.set(8usize, 8u8, val as u64)
3068        }
3069    }
3070    #[inline]
3071    pub unsafe fn w_Stopsig_raw(this: *const Self) -> ::std::os::raw::c_uint {
3072        unsafe {
3073            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
3074                ::std::ptr::addr_of!((*this)._bitfield_1),
3075                8usize,
3076                8u8,
3077            ) as u32)
3078        }
3079    }
3080    #[inline]
3081    pub unsafe fn set_w_Stopsig_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
3082        unsafe {
3083            let val: u32 = ::std::mem::transmute(val);
3084            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
3085                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
3086                8usize,
3087                8u8,
3088                val as u64,
3089            )
3090        }
3091    }
3092    #[inline]
3093    pub fn w_Filler(&self) -> ::std::os::raw::c_uint {
3094        unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 16u8) as u32) }
3095    }
3096    #[inline]
3097    pub fn set_w_Filler(&mut self, val: ::std::os::raw::c_uint) {
3098        unsafe {
3099            let val: u32 = ::std::mem::transmute(val);
3100            self._bitfield_1.set(16usize, 16u8, val as u64)
3101        }
3102    }
3103    #[inline]
3104    pub unsafe fn w_Filler_raw(this: *const Self) -> ::std::os::raw::c_uint {
3105        unsafe {
3106            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
3107                ::std::ptr::addr_of!((*this)._bitfield_1),
3108                16usize,
3109                16u8,
3110            ) as u32)
3111        }
3112    }
3113    #[inline]
3114    pub unsafe fn set_w_Filler_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
3115        unsafe {
3116            let val: u32 = ::std::mem::transmute(val);
3117            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
3118                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
3119                16usize,
3120                16u8,
3121                val as u64,
3122            )
3123        }
3124    }
3125    #[inline]
3126    pub fn new_bitfield_1(
3127        w_Stopval: ::std::os::raw::c_uint,
3128        w_Stopsig: ::std::os::raw::c_uint,
3129        w_Filler: ::std::os::raw::c_uint,
3130    ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
3131        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
3132        __bindgen_bitfield_unit.set(0usize, 8u8, {
3133            let w_Stopval: u32 = unsafe { ::std::mem::transmute(w_Stopval) };
3134            w_Stopval as u64
3135        });
3136        __bindgen_bitfield_unit.set(8usize, 8u8, {
3137            let w_Stopsig: u32 = unsafe { ::std::mem::transmute(w_Stopsig) };
3138            w_Stopsig as u64
3139        });
3140        __bindgen_bitfield_unit.set(16usize, 16u8, {
3141            let w_Filler: u32 = unsafe { ::std::mem::transmute(w_Filler) };
3142            w_Filler as u64
3143        });
3144        __bindgen_bitfield_unit
3145    }
3146}
3147#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3148const _: () = {
3149    ["Size of wait"][::std::mem::size_of::<wait>() - 4usize];
3150    ["Alignment of wait"][::std::mem::align_of::<wait>() - 4usize];
3151    ["Offset of field: wait::w_status"][::std::mem::offset_of!(wait, w_status) - 0usize];
3152    ["Offset of field: wait::w_T"][::std::mem::offset_of!(wait, w_T) - 0usize];
3153    ["Offset of field: wait::w_S"][::std::mem::offset_of!(wait, w_S) - 0usize];
3154};
3155unsafe extern "C" {
3156    pub fn wait(arg1: *mut ::std::os::raw::c_int) -> pid_t;
3157}
3158unsafe extern "C" {
3159    pub fn waitpid(
3160        arg1: pid_t,
3161        arg2: *mut ::std::os::raw::c_int,
3162        arg3: ::std::os::raw::c_int,
3163    ) -> pid_t;
3164}
3165unsafe extern "C" {
3166    pub fn waitid(
3167        arg1: idtype_t,
3168        arg2: id_t,
3169        arg3: *mut siginfo_t,
3170        arg4: ::std::os::raw::c_int,
3171    ) -> ::std::os::raw::c_int;
3172}
3173unsafe extern "C" {
3174    pub fn wait3(
3175        arg1: *mut ::std::os::raw::c_int,
3176        arg2: ::std::os::raw::c_int,
3177        arg3: *mut rusage,
3178    ) -> pid_t;
3179}
3180unsafe extern "C" {
3181    pub fn wait4(
3182        arg1: pid_t,
3183        arg2: *mut ::std::os::raw::c_int,
3184        arg3: ::std::os::raw::c_int,
3185        arg4: *mut rusage,
3186    ) -> pid_t;
3187}
3188unsafe extern "C" {
3189    pub fn alloca(__size: ::std::os::raw::c_ulong) -> *mut ::std::os::raw::c_void;
3190}
3191pub type ct_rune_t = __darwin_ct_rune_t;
3192pub type rune_t = __darwin_rune_t;
3193pub type wchar_t = __darwin_wchar_t;
3194#[repr(C)]
3195#[derive(Debug, Copy, Clone)]
3196pub struct div_t {
3197    pub quot: ::std::os::raw::c_int,
3198    pub rem: ::std::os::raw::c_int,
3199}
3200#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3201const _: () = {
3202    ["Size of div_t"][::std::mem::size_of::<div_t>() - 8usize];
3203    ["Alignment of div_t"][::std::mem::align_of::<div_t>() - 4usize];
3204    ["Offset of field: div_t::quot"][::std::mem::offset_of!(div_t, quot) - 0usize];
3205    ["Offset of field: div_t::rem"][::std::mem::offset_of!(div_t, rem) - 4usize];
3206};
3207#[repr(C)]
3208#[derive(Debug, Copy, Clone)]
3209pub struct ldiv_t {
3210    pub quot: ::std::os::raw::c_long,
3211    pub rem: ::std::os::raw::c_long,
3212}
3213#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3214const _: () = {
3215    ["Size of ldiv_t"][::std::mem::size_of::<ldiv_t>() - 16usize];
3216    ["Alignment of ldiv_t"][::std::mem::align_of::<ldiv_t>() - 8usize];
3217    ["Offset of field: ldiv_t::quot"][::std::mem::offset_of!(ldiv_t, quot) - 0usize];
3218    ["Offset of field: ldiv_t::rem"][::std::mem::offset_of!(ldiv_t, rem) - 8usize];
3219};
3220#[repr(C)]
3221#[derive(Debug, Copy, Clone)]
3222pub struct lldiv_t {
3223    pub quot: ::std::os::raw::c_longlong,
3224    pub rem: ::std::os::raw::c_longlong,
3225}
3226#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3227const _: () = {
3228    ["Size of lldiv_t"][::std::mem::size_of::<lldiv_t>() - 16usize];
3229    ["Alignment of lldiv_t"][::std::mem::align_of::<lldiv_t>() - 8usize];
3230    ["Offset of field: lldiv_t::quot"][::std::mem::offset_of!(lldiv_t, quot) - 0usize];
3231    ["Offset of field: lldiv_t::rem"][::std::mem::offset_of!(lldiv_t, rem) - 8usize];
3232};
3233unsafe extern "C" {
3234    pub static mut __mb_cur_max: ::std::os::raw::c_int;
3235}
3236pub type malloc_type_id_t = ::std::os::raw::c_ulonglong;
3237unsafe extern "C" {
3238    pub fn malloc_type_malloc(
3239        size: usize,
3240        type_id: malloc_type_id_t,
3241    ) -> *mut ::std::os::raw::c_void;
3242}
3243unsafe extern "C" {
3244    pub fn malloc_type_calloc(
3245        count: usize,
3246        size: usize,
3247        type_id: malloc_type_id_t,
3248    ) -> *mut ::std::os::raw::c_void;
3249}
3250unsafe extern "C" {
3251    pub fn malloc_type_free(ptr: *mut ::std::os::raw::c_void, type_id: malloc_type_id_t);
3252}
3253unsafe extern "C" {
3254    pub fn malloc_type_realloc(
3255        ptr: *mut ::std::os::raw::c_void,
3256        size: usize,
3257        type_id: malloc_type_id_t,
3258    ) -> *mut ::std::os::raw::c_void;
3259}
3260unsafe extern "C" {
3261    pub fn malloc_type_valloc(
3262        size: usize,
3263        type_id: malloc_type_id_t,
3264    ) -> *mut ::std::os::raw::c_void;
3265}
3266unsafe extern "C" {
3267    pub fn malloc_type_aligned_alloc(
3268        alignment: usize,
3269        size: usize,
3270        type_id: malloc_type_id_t,
3271    ) -> *mut ::std::os::raw::c_void;
3272}
3273unsafe extern "C" {
3274    pub fn malloc_type_posix_memalign(
3275        memptr: *mut *mut ::std::os::raw::c_void,
3276        alignment: usize,
3277        size: usize,
3278        type_id: malloc_type_id_t,
3279    ) -> ::std::os::raw::c_int;
3280}
3281#[repr(C)]
3282#[derive(Debug, Copy, Clone)]
3283pub struct _malloc_zone_t {
3284    _unused: [u8; 0],
3285}
3286pub type malloc_zone_t = _malloc_zone_t;
3287unsafe extern "C" {
3288    pub fn malloc_type_zone_malloc(
3289        zone: *mut malloc_zone_t,
3290        size: usize,
3291        type_id: malloc_type_id_t,
3292    ) -> *mut ::std::os::raw::c_void;
3293}
3294unsafe extern "C" {
3295    pub fn malloc_type_zone_calloc(
3296        zone: *mut malloc_zone_t,
3297        count: usize,
3298        size: usize,
3299        type_id: malloc_type_id_t,
3300    ) -> *mut ::std::os::raw::c_void;
3301}
3302unsafe extern "C" {
3303    pub fn malloc_type_zone_free(
3304        zone: *mut malloc_zone_t,
3305        ptr: *mut ::std::os::raw::c_void,
3306        type_id: malloc_type_id_t,
3307    );
3308}
3309unsafe extern "C" {
3310    pub fn malloc_type_zone_realloc(
3311        zone: *mut malloc_zone_t,
3312        ptr: *mut ::std::os::raw::c_void,
3313        size: usize,
3314        type_id: malloc_type_id_t,
3315    ) -> *mut ::std::os::raw::c_void;
3316}
3317unsafe extern "C" {
3318    pub fn malloc_type_zone_valloc(
3319        zone: *mut malloc_zone_t,
3320        size: usize,
3321        type_id: malloc_type_id_t,
3322    ) -> *mut ::std::os::raw::c_void;
3323}
3324unsafe extern "C" {
3325    pub fn malloc_type_zone_memalign(
3326        zone: *mut malloc_zone_t,
3327        alignment: usize,
3328        size: usize,
3329        type_id: malloc_type_id_t,
3330    ) -> *mut ::std::os::raw::c_void;
3331}
3332unsafe extern "C" {
3333    pub fn malloc(__size: ::std::os::raw::c_ulong) -> *mut ::std::os::raw::c_void;
3334}
3335unsafe extern "C" {
3336    pub fn calloc(
3337        __count: ::std::os::raw::c_ulong,
3338        __size: ::std::os::raw::c_ulong,
3339    ) -> *mut ::std::os::raw::c_void;
3340}
3341unsafe extern "C" {
3342    pub fn free(arg1: *mut ::std::os::raw::c_void);
3343}
3344unsafe extern "C" {
3345    pub fn realloc(
3346        __ptr: *mut ::std::os::raw::c_void,
3347        __size: ::std::os::raw::c_ulong,
3348    ) -> *mut ::std::os::raw::c_void;
3349}
3350unsafe extern "C" {
3351    pub fn reallocf(
3352        __ptr: *mut ::std::os::raw::c_void,
3353        __size: usize,
3354    ) -> *mut ::std::os::raw::c_void;
3355}
3356unsafe extern "C" {
3357    pub fn valloc(__size: usize) -> *mut ::std::os::raw::c_void;
3358}
3359unsafe extern "C" {
3360    pub fn aligned_alloc(
3361        __alignment: ::std::os::raw::c_ulong,
3362        __size: ::std::os::raw::c_ulong,
3363    ) -> *mut ::std::os::raw::c_void;
3364}
3365unsafe extern "C" {
3366    pub fn posix_memalign(
3367        __memptr: *mut *mut ::std::os::raw::c_void,
3368        __alignment: usize,
3369        __size: usize,
3370    ) -> ::std::os::raw::c_int;
3371}
3372unsafe extern "C" {
3373    pub fn abort() -> !;
3374}
3375unsafe extern "C" {
3376    pub fn abs(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
3377}
3378unsafe extern "C" {
3379    pub fn atexit(arg1: ::std::option::Option<unsafe extern "C" fn()>) -> ::std::os::raw::c_int;
3380}
3381unsafe extern "C" {
3382    pub fn at_quick_exit(
3383        arg1: ::std::option::Option<unsafe extern "C" fn()>,
3384    ) -> ::std::os::raw::c_int;
3385}
3386unsafe extern "C" {
3387    pub fn atof(arg1: *const ::std::os::raw::c_char) -> f64;
3388}
3389unsafe extern "C" {
3390    pub fn atoi(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
3391}
3392unsafe extern "C" {
3393    pub fn atol(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_long;
3394}
3395unsafe extern "C" {
3396    pub fn atoll(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_longlong;
3397}
3398unsafe extern "C" {
3399    pub fn bsearch(
3400        __key: *const ::std::os::raw::c_void,
3401        __base: *const ::std::os::raw::c_void,
3402        __nel: usize,
3403        __width: usize,
3404        __compar: ::std::option::Option<
3405            unsafe extern "C" fn(
3406                arg1: *const ::std::os::raw::c_void,
3407                arg2: *const ::std::os::raw::c_void,
3408            ) -> ::std::os::raw::c_int,
3409        >,
3410    ) -> *mut ::std::os::raw::c_void;
3411}
3412unsafe extern "C" {
3413    pub fn div(arg1: ::std::os::raw::c_int, arg2: ::std::os::raw::c_int) -> div_t;
3414}
3415unsafe extern "C" {
3416    pub fn exit(arg1: ::std::os::raw::c_int) -> !;
3417}
3418unsafe extern "C" {
3419    pub fn getenv(arg1: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
3420}
3421unsafe extern "C" {
3422    pub fn labs(arg1: ::std::os::raw::c_long) -> ::std::os::raw::c_long;
3423}
3424unsafe extern "C" {
3425    pub fn ldiv(arg1: ::std::os::raw::c_long, arg2: ::std::os::raw::c_long) -> ldiv_t;
3426}
3427unsafe extern "C" {
3428    pub fn llabs(arg1: ::std::os::raw::c_longlong) -> ::std::os::raw::c_longlong;
3429}
3430unsafe extern "C" {
3431    pub fn lldiv(arg1: ::std::os::raw::c_longlong, arg2: ::std::os::raw::c_longlong) -> lldiv_t;
3432}
3433unsafe extern "C" {
3434    pub fn mblen(__s: *const ::std::os::raw::c_char, __n: usize) -> ::std::os::raw::c_int;
3435}
3436unsafe extern "C" {
3437    pub fn mbstowcs(arg1: *mut wchar_t, arg2: *const ::std::os::raw::c_char, __n: usize) -> usize;
3438}
3439unsafe extern "C" {
3440    pub fn mbtowc(
3441        arg1: *mut wchar_t,
3442        arg2: *const ::std::os::raw::c_char,
3443        __n: usize,
3444    ) -> ::std::os::raw::c_int;
3445}
3446unsafe extern "C" {
3447    pub fn qsort(
3448        __base: *mut ::std::os::raw::c_void,
3449        __nel: usize,
3450        __width: usize,
3451        __compar: ::std::option::Option<
3452            unsafe extern "C" fn(
3453                arg1: *const ::std::os::raw::c_void,
3454                arg2: *const ::std::os::raw::c_void,
3455            ) -> ::std::os::raw::c_int,
3456        >,
3457    );
3458}
3459unsafe extern "C" {
3460    pub fn quick_exit(arg1: ::std::os::raw::c_int) -> !;
3461}
3462unsafe extern "C" {
3463    pub fn rand() -> ::std::os::raw::c_int;
3464}
3465unsafe extern "C" {
3466    pub fn srand(arg1: ::std::os::raw::c_uint);
3467}
3468unsafe extern "C" {
3469    pub fn strtod(
3470        arg1: *const ::std::os::raw::c_char,
3471        arg2: *mut *mut ::std::os::raw::c_char,
3472    ) -> f64;
3473}
3474unsafe extern "C" {
3475    pub fn strtof(
3476        arg1: *const ::std::os::raw::c_char,
3477        arg2: *mut *mut ::std::os::raw::c_char,
3478    ) -> f32;
3479}
3480unsafe extern "C" {
3481    pub fn strtol(
3482        __str: *const ::std::os::raw::c_char,
3483        __endptr: *mut *mut ::std::os::raw::c_char,
3484        __base: ::std::os::raw::c_int,
3485    ) -> ::std::os::raw::c_long;
3486}
3487unsafe extern "C" {
3488    pub fn strtold(
3489        arg1: *const ::std::os::raw::c_char,
3490        arg2: *mut *mut ::std::os::raw::c_char,
3491    ) -> f64;
3492}
3493unsafe extern "C" {
3494    pub fn strtoll(
3495        __str: *const ::std::os::raw::c_char,
3496        __endptr: *mut *mut ::std::os::raw::c_char,
3497        __base: ::std::os::raw::c_int,
3498    ) -> ::std::os::raw::c_longlong;
3499}
3500unsafe extern "C" {
3501    pub fn strtoul(
3502        __str: *const ::std::os::raw::c_char,
3503        __endptr: *mut *mut ::std::os::raw::c_char,
3504        __base: ::std::os::raw::c_int,
3505    ) -> ::std::os::raw::c_ulong;
3506}
3507unsafe extern "C" {
3508    pub fn strtoull(
3509        __str: *const ::std::os::raw::c_char,
3510        __endptr: *mut *mut ::std::os::raw::c_char,
3511        __base: ::std::os::raw::c_int,
3512    ) -> ::std::os::raw::c_ulonglong;
3513}
3514unsafe extern "C" {
3515    pub fn system(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
3516}
3517unsafe extern "C" {
3518    pub fn wcstombs(arg1: *mut ::std::os::raw::c_char, arg2: *const wchar_t, __n: usize) -> usize;
3519}
3520unsafe extern "C" {
3521    pub fn wctomb(arg1: *mut ::std::os::raw::c_char, arg2: wchar_t) -> ::std::os::raw::c_int;
3522}
3523unsafe extern "C" {
3524    pub fn _Exit(arg1: ::std::os::raw::c_int) -> !;
3525}
3526unsafe extern "C" {
3527    pub fn a64l(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_long;
3528}
3529unsafe extern "C" {
3530    pub fn drand48() -> f64;
3531}
3532unsafe extern "C" {
3533    pub fn ecvt(
3534        arg1: f64,
3535        arg2: ::std::os::raw::c_int,
3536        arg3: *mut ::std::os::raw::c_int,
3537        arg4: *mut ::std::os::raw::c_int,
3538    ) -> *mut ::std::os::raw::c_char;
3539}
3540unsafe extern "C" {
3541    pub fn erand48(arg1: *mut ::std::os::raw::c_ushort) -> f64;
3542}
3543unsafe extern "C" {
3544    pub fn fcvt(
3545        arg1: f64,
3546        arg2: ::std::os::raw::c_int,
3547        arg3: *mut ::std::os::raw::c_int,
3548        arg4: *mut ::std::os::raw::c_int,
3549    ) -> *mut ::std::os::raw::c_char;
3550}
3551unsafe extern "C" {
3552    pub fn gcvt(
3553        arg1: f64,
3554        arg2: ::std::os::raw::c_int,
3555        arg3: *mut ::std::os::raw::c_char,
3556    ) -> *mut ::std::os::raw::c_char;
3557}
3558unsafe extern "C" {
3559    pub fn getsubopt(
3560        arg1: *mut *mut ::std::os::raw::c_char,
3561        arg2: *const *mut ::std::os::raw::c_char,
3562        arg3: *mut *mut ::std::os::raw::c_char,
3563    ) -> ::std::os::raw::c_int;
3564}
3565unsafe extern "C" {
3566    pub fn grantpt(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
3567}
3568unsafe extern "C" {
3569    pub fn initstate(
3570        arg1: ::std::os::raw::c_uint,
3571        arg2: *mut ::std::os::raw::c_char,
3572        __size: usize,
3573    ) -> *mut ::std::os::raw::c_char;
3574}
3575unsafe extern "C" {
3576    pub fn jrand48(arg1: *mut ::std::os::raw::c_ushort) -> ::std::os::raw::c_long;
3577}
3578unsafe extern "C" {
3579    pub fn l64a(arg1: ::std::os::raw::c_long) -> *mut ::std::os::raw::c_char;
3580}
3581unsafe extern "C" {
3582    pub fn lcong48(arg1: *mut ::std::os::raw::c_ushort);
3583}
3584unsafe extern "C" {
3585    pub fn lrand48() -> ::std::os::raw::c_long;
3586}
3587unsafe extern "C" {
3588    pub fn mktemp(arg1: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
3589}
3590unsafe extern "C" {
3591    pub fn mkstemp(arg1: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int;
3592}
3593unsafe extern "C" {
3594    pub fn mrand48() -> ::std::os::raw::c_long;
3595}
3596unsafe extern "C" {
3597    pub fn nrand48(arg1: *mut ::std::os::raw::c_ushort) -> ::std::os::raw::c_long;
3598}
3599unsafe extern "C" {
3600    pub fn posix_openpt(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
3601}
3602unsafe extern "C" {
3603    pub fn ptsname(arg1: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char;
3604}
3605unsafe extern "C" {
3606    pub fn ptsname_r(
3607        fildes: ::std::os::raw::c_int,
3608        buffer: *mut ::std::os::raw::c_char,
3609        buflen: usize,
3610    ) -> ::std::os::raw::c_int;
3611}
3612unsafe extern "C" {
3613    pub fn putenv(arg1: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int;
3614}
3615unsafe extern "C" {
3616    pub fn random() -> ::std::os::raw::c_long;
3617}
3618unsafe extern "C" {
3619    pub fn rand_r(arg1: *mut ::std::os::raw::c_uint) -> ::std::os::raw::c_int;
3620}
3621unsafe extern "C" {
3622    #[link_name = "\u{1}_realpath$DARWIN_EXTSN"]
3623    pub fn realpath(
3624        arg1: *const ::std::os::raw::c_char,
3625        arg2: *mut ::std::os::raw::c_char,
3626    ) -> *mut ::std::os::raw::c_char;
3627}
3628unsafe extern "C" {
3629    pub fn seed48(arg1: *mut ::std::os::raw::c_ushort) -> *mut ::std::os::raw::c_ushort;
3630}
3631unsafe extern "C" {
3632    pub fn setenv(
3633        __name: *const ::std::os::raw::c_char,
3634        __value: *const ::std::os::raw::c_char,
3635        __overwrite: ::std::os::raw::c_int,
3636    ) -> ::std::os::raw::c_int;
3637}
3638unsafe extern "C" {
3639    pub fn setkey(arg1: *const ::std::os::raw::c_char);
3640}
3641unsafe extern "C" {
3642    pub fn setstate(arg1: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
3643}
3644unsafe extern "C" {
3645    pub fn srand48(arg1: ::std::os::raw::c_long);
3646}
3647unsafe extern "C" {
3648    pub fn srandom(arg1: ::std::os::raw::c_uint);
3649}
3650unsafe extern "C" {
3651    pub fn unlockpt(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
3652}
3653unsafe extern "C" {
3654    pub fn unsetenv(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
3655}
3656pub type dev_t = __darwin_dev_t;
3657pub type mode_t = __darwin_mode_t;
3658unsafe extern "C" {
3659    pub fn arc4random() -> u32;
3660}
3661unsafe extern "C" {
3662    pub fn arc4random_addrandom(
3663        arg1: *mut ::std::os::raw::c_uchar,
3664        __datlen: ::std::os::raw::c_int,
3665    );
3666}
3667unsafe extern "C" {
3668    pub fn arc4random_buf(__buf: *mut ::std::os::raw::c_void, __nbytes: usize);
3669}
3670unsafe extern "C" {
3671    pub fn arc4random_stir();
3672}
3673unsafe extern "C" {
3674    pub fn arc4random_uniform(__upper_bound: u32) -> u32;
3675}
3676unsafe extern "C" {
3677    pub fn atexit_b(arg1: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int;
3678}
3679unsafe extern "C" {
3680    pub fn bsearch_b(
3681        __key: *const ::std::os::raw::c_void,
3682        __base: *const ::std::os::raw::c_void,
3683        __nel: usize,
3684        __width: usize,
3685        __compar: *mut ::std::os::raw::c_void,
3686    ) -> *mut ::std::os::raw::c_void;
3687}
3688unsafe extern "C" {
3689    pub fn cgetcap(
3690        arg1: *mut ::std::os::raw::c_char,
3691        arg2: *const ::std::os::raw::c_char,
3692        arg3: ::std::os::raw::c_int,
3693    ) -> *mut ::std::os::raw::c_char;
3694}
3695unsafe extern "C" {
3696    pub fn cgetclose() -> ::std::os::raw::c_int;
3697}
3698unsafe extern "C" {
3699    pub fn cgetent(
3700        arg1: *mut *mut ::std::os::raw::c_char,
3701        arg2: *mut *mut ::std::os::raw::c_char,
3702        arg3: *const ::std::os::raw::c_char,
3703    ) -> ::std::os::raw::c_int;
3704}
3705unsafe extern "C" {
3706    pub fn cgetfirst(
3707        arg1: *mut *mut ::std::os::raw::c_char,
3708        arg2: *mut *mut ::std::os::raw::c_char,
3709    ) -> ::std::os::raw::c_int;
3710}
3711unsafe extern "C" {
3712    pub fn cgetmatch(
3713        arg1: *const ::std::os::raw::c_char,
3714        arg2: *const ::std::os::raw::c_char,
3715    ) -> ::std::os::raw::c_int;
3716}
3717unsafe extern "C" {
3718    pub fn cgetnext(
3719        arg1: *mut *mut ::std::os::raw::c_char,
3720        arg2: *mut *mut ::std::os::raw::c_char,
3721    ) -> ::std::os::raw::c_int;
3722}
3723unsafe extern "C" {
3724    pub fn cgetnum(
3725        arg1: *mut ::std::os::raw::c_char,
3726        arg2: *const ::std::os::raw::c_char,
3727        arg3: *mut ::std::os::raw::c_long,
3728    ) -> ::std::os::raw::c_int;
3729}
3730unsafe extern "C" {
3731    pub fn cgetset(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
3732}
3733unsafe extern "C" {
3734    pub fn cgetstr(
3735        arg1: *mut ::std::os::raw::c_char,
3736        arg2: *const ::std::os::raw::c_char,
3737        arg3: *mut *mut ::std::os::raw::c_char,
3738    ) -> ::std::os::raw::c_int;
3739}
3740unsafe extern "C" {
3741    pub fn cgetustr(
3742        arg1: *mut ::std::os::raw::c_char,
3743        arg2: *const ::std::os::raw::c_char,
3744        arg3: *mut *mut ::std::os::raw::c_char,
3745    ) -> ::std::os::raw::c_int;
3746}
3747unsafe extern "C" {
3748    pub fn daemon(
3749        arg1: ::std::os::raw::c_int,
3750        arg2: ::std::os::raw::c_int,
3751    ) -> ::std::os::raw::c_int;
3752}
3753unsafe extern "C" {
3754    pub fn devname(arg1: dev_t, arg2: mode_t) -> *mut ::std::os::raw::c_char;
3755}
3756unsafe extern "C" {
3757    pub fn devname_r(
3758        arg1: dev_t,
3759        arg2: mode_t,
3760        buf: *mut ::std::os::raw::c_char,
3761        len: ::std::os::raw::c_int,
3762    ) -> *mut ::std::os::raw::c_char;
3763}
3764unsafe extern "C" {
3765    pub fn getbsize(
3766        arg1: *mut ::std::os::raw::c_int,
3767        arg2: *mut ::std::os::raw::c_long,
3768    ) -> *mut ::std::os::raw::c_char;
3769}
3770unsafe extern "C" {
3771    pub fn getloadavg(arg1: *mut f64, __nelem: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
3772}
3773unsafe extern "C" {
3774    pub fn getprogname() -> *const ::std::os::raw::c_char;
3775}
3776unsafe extern "C" {
3777    pub fn setprogname(arg1: *const ::std::os::raw::c_char);
3778}
3779unsafe extern "C" {
3780    pub fn heapsort(
3781        __base: *mut ::std::os::raw::c_void,
3782        __nel: usize,
3783        __width: usize,
3784        __compar: ::std::option::Option<
3785            unsafe extern "C" fn(
3786                arg1: *const ::std::os::raw::c_void,
3787                arg2: *const ::std::os::raw::c_void,
3788            ) -> ::std::os::raw::c_int,
3789        >,
3790    ) -> ::std::os::raw::c_int;
3791}
3792unsafe extern "C" {
3793    pub fn heapsort_b(
3794        __base: *mut ::std::os::raw::c_void,
3795        __nel: usize,
3796        __width: usize,
3797        __compar: *mut ::std::os::raw::c_void,
3798    ) -> ::std::os::raw::c_int;
3799}
3800unsafe extern "C" {
3801    pub fn mergesort(
3802        __base: *mut ::std::os::raw::c_void,
3803        __nel: usize,
3804        __width: usize,
3805        __compar: ::std::option::Option<
3806            unsafe extern "C" fn(
3807                arg1: *const ::std::os::raw::c_void,
3808                arg2: *const ::std::os::raw::c_void,
3809            ) -> ::std::os::raw::c_int,
3810        >,
3811    ) -> ::std::os::raw::c_int;
3812}
3813unsafe extern "C" {
3814    pub fn mergesort_b(
3815        __base: *mut ::std::os::raw::c_void,
3816        __nel: usize,
3817        __width: usize,
3818        __compar: *mut ::std::os::raw::c_void,
3819    ) -> ::std::os::raw::c_int;
3820}
3821unsafe extern "C" {
3822    pub fn psort(
3823        __base: *mut ::std::os::raw::c_void,
3824        __nel: usize,
3825        __width: usize,
3826        __compar: ::std::option::Option<
3827            unsafe extern "C" fn(
3828                arg1: *const ::std::os::raw::c_void,
3829                arg2: *const ::std::os::raw::c_void,
3830            ) -> ::std::os::raw::c_int,
3831        >,
3832    );
3833}
3834unsafe extern "C" {
3835    pub fn psort_b(
3836        __base: *mut ::std::os::raw::c_void,
3837        __nel: usize,
3838        __width: usize,
3839        __compar: *mut ::std::os::raw::c_void,
3840    );
3841}
3842unsafe extern "C" {
3843    pub fn psort_r(
3844        __base: *mut ::std::os::raw::c_void,
3845        __nel: usize,
3846        __width: usize,
3847        arg1: *mut ::std::os::raw::c_void,
3848        __compar: ::std::option::Option<
3849            unsafe extern "C" fn(
3850                arg1: *mut ::std::os::raw::c_void,
3851                arg2: *const ::std::os::raw::c_void,
3852                arg3: *const ::std::os::raw::c_void,
3853            ) -> ::std::os::raw::c_int,
3854        >,
3855    );
3856}
3857unsafe extern "C" {
3858    pub fn qsort_b(
3859        __base: *mut ::std::os::raw::c_void,
3860        __nel: usize,
3861        __width: usize,
3862        __compar: *mut ::std::os::raw::c_void,
3863    );
3864}
3865unsafe extern "C" {
3866    pub fn qsort_r(
3867        __base: *mut ::std::os::raw::c_void,
3868        __nel: usize,
3869        __width: usize,
3870        arg1: *mut ::std::os::raw::c_void,
3871        __compar: ::std::option::Option<
3872            unsafe extern "C" fn(
3873                arg1: *mut ::std::os::raw::c_void,
3874                arg2: *const ::std::os::raw::c_void,
3875                arg3: *const ::std::os::raw::c_void,
3876            ) -> ::std::os::raw::c_int,
3877        >,
3878    );
3879}
3880unsafe extern "C" {
3881    pub fn radixsort(
3882        __base: *mut *const ::std::os::raw::c_uchar,
3883        __nel: ::std::os::raw::c_int,
3884        __table: *const ::std::os::raw::c_uchar,
3885        __endbyte: ::std::os::raw::c_uint,
3886    ) -> ::std::os::raw::c_int;
3887}
3888unsafe extern "C" {
3889    pub fn rpmatch(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
3890}
3891unsafe extern "C" {
3892    pub fn sradixsort(
3893        __base: *mut *const ::std::os::raw::c_uchar,
3894        __nel: ::std::os::raw::c_int,
3895        __table: *const ::std::os::raw::c_uchar,
3896        __endbyte: ::std::os::raw::c_uint,
3897    ) -> ::std::os::raw::c_int;
3898}
3899unsafe extern "C" {
3900    pub fn sranddev();
3901}
3902unsafe extern "C" {
3903    pub fn srandomdev();
3904}
3905unsafe extern "C" {
3906    pub fn strtonum(
3907        __numstr: *const ::std::os::raw::c_char,
3908        __minval: ::std::os::raw::c_longlong,
3909        __maxval: ::std::os::raw::c_longlong,
3910        __errstrp: *mut *const ::std::os::raw::c_char,
3911    ) -> ::std::os::raw::c_longlong;
3912}
3913unsafe extern "C" {
3914    pub fn strtoq(
3915        __str: *const ::std::os::raw::c_char,
3916        __endptr: *mut *mut ::std::os::raw::c_char,
3917        __base: ::std::os::raw::c_int,
3918    ) -> ::std::os::raw::c_longlong;
3919}
3920unsafe extern "C" {
3921    pub fn strtouq(
3922        __str: *const ::std::os::raw::c_char,
3923        __endptr: *mut *mut ::std::os::raw::c_char,
3924        __base: ::std::os::raw::c_int,
3925    ) -> ::std::os::raw::c_ulonglong;
3926}
3927unsafe extern "C" {
3928    pub static mut suboptarg: *mut ::std::os::raw::c_char;
3929}
3930unsafe extern "C" {
3931    pub fn igraph_calloc(count: usize, size: usize) -> *mut ::std::os::raw::c_void;
3932}
3933unsafe extern "C" {
3934    pub fn igraph_malloc(size: usize) -> *mut ::std::os::raw::c_void;
3935}
3936unsafe extern "C" {
3937    pub fn igraph_realloc(
3938        ptr: *mut ::std::os::raw::c_void,
3939        size: usize,
3940    ) -> *mut ::std::os::raw::c_void;
3941}
3942unsafe extern "C" {
3943    pub fn igraph_free(ptr: *mut ::std::os::raw::c_void);
3944}
3945pub type __gnuc_va_list = __builtin_va_list;
3946pub type va_list = __builtin_va_list;
3947pub const igraph_error_type_t_IGRAPH_SUCCESS: igraph_error_type_t = 0;
3948pub const igraph_error_type_t_IGRAPH_FAILURE: igraph_error_type_t = 1;
3949pub const igraph_error_type_t_IGRAPH_ENOMEM: igraph_error_type_t = 2;
3950pub const igraph_error_type_t_IGRAPH_PARSEERROR: igraph_error_type_t = 3;
3951pub const igraph_error_type_t_IGRAPH_EINVAL: igraph_error_type_t = 4;
3952pub const igraph_error_type_t_IGRAPH_EXISTS: igraph_error_type_t = 5;
3953pub const igraph_error_type_t_IGRAPH_EINVVID: igraph_error_type_t = 7;
3954pub const igraph_error_type_t_IGRAPH_EINVEID: igraph_error_type_t = 8;
3955pub const igraph_error_type_t_IGRAPH_EINVMODE: igraph_error_type_t = 9;
3956pub const igraph_error_type_t_IGRAPH_EFILE: igraph_error_type_t = 10;
3957pub const igraph_error_type_t_IGRAPH_UNIMPLEMENTED: igraph_error_type_t = 12;
3958pub const igraph_error_type_t_IGRAPH_INTERRUPTED: igraph_error_type_t = 13;
3959pub const igraph_error_type_t_IGRAPH_DIVERGED: igraph_error_type_t = 14;
3960pub const igraph_error_type_t_IGRAPH_EARPACK: igraph_error_type_t = 15;
3961pub const igraph_error_type_t_IGRAPH_ENEGCYCLE: igraph_error_type_t = 37;
3962pub const igraph_error_type_t_IGRAPH_EINTERNAL: igraph_error_type_t = 38;
3963pub const igraph_error_type_t_IGRAPH_EATTRCOMBINE: igraph_error_type_t = 52;
3964pub const igraph_error_type_t_IGRAPH_EOVERFLOW: igraph_error_type_t = 55;
3965pub const igraph_error_type_t_IGRAPH_EUNDERFLOW: igraph_error_type_t = 58;
3966pub const igraph_error_type_t_IGRAPH_ERWSTUCK: igraph_error_type_t = 59;
3967pub const igraph_error_type_t_IGRAPH_STOP: igraph_error_type_t = 60;
3968pub const igraph_error_type_t_IGRAPH_ERANGE: igraph_error_type_t = 61;
3969pub const igraph_error_type_t_IGRAPH_ENOSOL: igraph_error_type_t = 62;
3970#[doc = " \\typedef igraph_error_type_t\n \\brief Error code type.\n These are the possible values returned by \\a igraph functions.\n Note that these are interesting only if you defined an error handler\n with \\ref igraph_set_error_handler(). Otherwise the program is aborted\n and the function causing the error never returns.\n\n \\enumval IGRAPH_SUCCESS The function successfully completed its task.\n \\enumval IGRAPH_FAILURE Something went wrong. You'll almost never\n    meet this error as normally more specific error codes are used.\n \\enumval IGRAPH_ENOMEM There wasn't enough memory to allocate\n    on the heap.\n \\enumval IGRAPH_PARSEERROR A parse error was found in a file.\n \\enumval IGRAPH_EINVAL A parameter's value is invalid. E.g. negative\n    number was specified as the number of vertices.\n \\enumval IGRAPH_EXISTS A graph/vertex/edge attribute is already\n    installed with the given name.\n \\enumval IGRAPH_EINVVID Invalid vertex ID, negative or too big.\n \\enumval IGRAPH_EINVEID Invalid edge ID, negative or too big.\n \\enumval IGRAPH_EINVMODE Invalid mode parameter.\n \\enumval IGRAPH_EFILE A file operation failed. E.g. a file doesn't exist,\n   or the user has no rights to open it.\n \\enumval IGRAPH_UNIMPLEMENTED Attempted to call an unimplemented or\n   disabled (at compile-time) function.\n \\enumval IGRAPH_DIVERGED A numeric algorithm failed to converge.\n \\enumval IGRAPH_ARPACK An error happened inside a calculation implemented\n   in ARPACK. The calculation involved is most likely an eigenvector-related\n   calculation.\n \\enumval IGRAPH_ENEGCYCLE Negative cycle detected while calculating shortest paths.\n \\enumval IGRAPH_EINTERNAL Internal error, likely a bug in igraph.\n \\enumval IGRAPH_EATTRCOMBINE Unimplemented attribute combination\n   method for the given attribute type.\n \\enumval IGRAPH_EOVERFLOW Integer or double overflow.\n \\enumval IGRAPH_EUNDERFLOW Integer or double underflow.\n \\enumval IGRAPH_ERWSTUCK Random walk got stuck.\n \\enumval IGRAPH_ERANGE Maximum vertex or edge count exceeded.\n \\enumval IGRAPH_ENOSOL Input problem has no solution."]
3971pub type igraph_error_type_t = ::std::os::raw::c_uint;
3972#[doc = " \\typedef igraph_error_t\n \\brief Return type for functions returning an error code.\n\n This type is used as the return type of igraph functions that return an\n error code. It is a type alias because \\type igraph_error_t used to be\n an \\c int, and was used slightly differenly than \\type igraph_error_type_t."]
3973pub use self::igraph_error_type_t as igraph_error_t;
3974#[doc = " \\typedef igraph_error_handler_t\n \\brief The type of error handler functions.\n\n This is the type of the error handler functions.\n\n \\param reason Textual description of the error.\n \\param file The source file in which the error is noticed.\n \\param line The number of the line in the source file which triggered\n   the error\n \\param igraph_errno The \\a igraph error code."]
3975pub type igraph_error_handler_t = ::std::option::Option<
3976    unsafe extern "C" fn(
3977        reason: *const ::std::os::raw::c_char,
3978        file: *const ::std::os::raw::c_char,
3979        line: ::std::os::raw::c_int,
3980        igraph_errno: igraph_error_t,
3981    ),
3982>;
3983unsafe extern "C" {
3984    #[doc = " \\var igraph_error_handler_abort\n \\brief Abort program in case of error.\n\n The default error handler, prints an error message and aborts the\n program."]
3985    pub fn igraph_error_handler_abort(
3986        arg1: *const ::std::os::raw::c_char,
3987        arg2: *const ::std::os::raw::c_char,
3988        arg3: ::std::os::raw::c_int,
3989        arg4: igraph_error_t,
3990    ) -> !;
3991}
3992unsafe extern "C" {
3993    #[doc = " \\var igraph_error_handler_ignore\n \\brief Ignore errors.\n\n This error handler frees the temporarily allocated memory and returns\n with the error code."]
3994    pub fn igraph_error_handler_ignore(
3995        reason: *const ::std::os::raw::c_char,
3996        file: *const ::std::os::raw::c_char,
3997        line: ::std::os::raw::c_int,
3998        igraph_errno: igraph_error_t,
3999    );
4000}
4001unsafe extern "C" {
4002    #[doc = " \\var igraph_error_handler_printignore\n \\brief Print and ignore errors.\n\n Frees temporarily allocated memory, prints an error message to the\n standard error and returns with the error code."]
4003    pub fn igraph_error_handler_printignore(
4004        reason: *const ::std::os::raw::c_char,
4005        file: *const ::std::os::raw::c_char,
4006        line: ::std::os::raw::c_int,
4007        igraph_errno: igraph_error_t,
4008    );
4009}
4010unsafe extern "C" {
4011    pub fn igraph_set_error_handler(new_handler: igraph_error_handler_t) -> igraph_error_handler_t;
4012}
4013unsafe extern "C" {
4014    pub fn igraph_error(
4015        reason: *const ::std::os::raw::c_char,
4016        file: *const ::std::os::raw::c_char,
4017        line: ::std::os::raw::c_int,
4018        igraph_errno: igraph_error_t,
4019    ) -> igraph_error_t;
4020}
4021unsafe extern "C" {
4022    pub fn igraph_errorf(
4023        reason: *const ::std::os::raw::c_char,
4024        file: *const ::std::os::raw::c_char,
4025        line: ::std::os::raw::c_int,
4026        igraph_errno: igraph_error_t,
4027        ...
4028    ) -> igraph_error_t;
4029}
4030unsafe extern "C" {
4031    pub fn igraph_errorvf(
4032        reason: *const ::std::os::raw::c_char,
4033        file: *const ::std::os::raw::c_char,
4034        line: ::std::os::raw::c_int,
4035        igraph_errno: igraph_error_t,
4036        ap: va_list,
4037    ) -> igraph_error_t;
4038}
4039unsafe extern "C" {
4040    pub fn igraph_strerror(igraph_errno: igraph_error_t) -> *const ::std::os::raw::c_char;
4041}
4042#[repr(C)]
4043#[derive(Debug, Copy, Clone)]
4044pub struct igraph_i_protectedPtr {
4045    pub level: ::std::os::raw::c_int,
4046    pub ptr: *mut ::std::os::raw::c_void,
4047    pub func: ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
4048}
4049#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4050const _: () = {
4051    ["Size of igraph_i_protectedPtr"][::std::mem::size_of::<igraph_i_protectedPtr>() - 24usize];
4052    ["Alignment of igraph_i_protectedPtr"]
4053        [::std::mem::align_of::<igraph_i_protectedPtr>() - 8usize];
4054    ["Offset of field: igraph_i_protectedPtr::level"]
4055        [::std::mem::offset_of!(igraph_i_protectedPtr, level) - 0usize];
4056    ["Offset of field: igraph_i_protectedPtr::ptr"]
4057        [::std::mem::offset_of!(igraph_i_protectedPtr, ptr) - 8usize];
4058    ["Offset of field: igraph_i_protectedPtr::func"]
4059        [::std::mem::offset_of!(igraph_i_protectedPtr, func) - 16usize];
4060};
4061pub type igraph_finally_func_t =
4062    ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>;
4063unsafe extern "C" {
4064    pub fn IGRAPH_FINALLY_REAL(func: igraph_finally_func_t, ptr: *mut ::std::os::raw::c_void);
4065}
4066unsafe extern "C" {
4067    #[doc = " \\function IGRAPH_FINALLY_CLEAN\n \\brief Signals clean deallocation of objects.\n\n Removes the specified number of objects from the stack of\n temporarily allocated objects. It is typically called\n immediately after manually destroying the objects:\n\n <programlisting>\n igraph_vector_t vector;\n igraph_vector_init(&amp;vector, 10);\n IGRAPH_FINALLY(igraph_vector_destroy, &amp;vector);\n // use vector\n igraph_vector_destroy(&amp;vector);\n IGRAPH_FINALLY_CLEAN(1);\n </programlisting>\n\n \\param num The number of objects to remove from the bookkeeping\n   stack."]
4068    pub fn IGRAPH_FINALLY_CLEAN(num: ::std::os::raw::c_int);
4069}
4070unsafe extern "C" {
4071    #[doc = " \\function IGRAPH_FINALLY_FREE\n \\brief Deallocates objects registered at the current level.\n\n Calls the destroy function for all objects in the current level\n of the stack of temporarily allocated objects, i.e. up to the\n nearest mark set by <code>IGRAPH_FINALLY_ENTER()</code>.\n This function must only be called from an error handler.\n It is \\em not appropriate to use it\n instead of destroying each unneeded object of a function, as it\n destroys the temporary objects of the caller function (and so on)\n as well."]
4072    pub fn IGRAPH_FINALLY_FREE();
4073}
4074unsafe extern "C" {
4075    pub fn IGRAPH_FINALLY_ENTER();
4076}
4077unsafe extern "C" {
4078    pub fn IGRAPH_FINALLY_EXIT();
4079}
4080unsafe extern "C" {
4081    #[doc = " \\function IGRAPH_FINALLY_STACK_SIZE\n \\brief The number of registered objects.\n\n Returns the number of objects in the stack of temporarily allocated\n objects. This function is handy if you write an own igraph routine and\n you want to make sure it handles errors properly. A properly written\n igraph routine should not leave pointers to temporarily allocated objects\n in the finally stack, because otherwise an \\ref IGRAPH_FINALLY_FREE call\n in another igraph function would result in freeing these objects as well\n (and this is really hard to debug, since the error will be not in that\n function that shows erroneous behaviour). Therefore, it is advised to\n write your own test cases and examine \\ref IGRAPH_FINALLY_STACK_SIZE\n before and after your test cases - the numbers should be equal."]
4082    pub fn IGRAPH_FINALLY_STACK_SIZE() -> ::std::os::raw::c_int;
4083}
4084#[doc = " \\typedef igraph_warning_handler_t\n \\brief The type of igraph warning handler functions.\n\n Currently it is defined to have the same type as\n \\ref igraph_error_handler_t, although the last (error code)\n argument is not used."]
4085pub type igraph_warning_handler_t = ::std::option::Option<
4086    unsafe extern "C" fn(
4087        reason: *const ::std::os::raw::c_char,
4088        file: *const ::std::os::raw::c_char,
4089        line: ::std::os::raw::c_int,
4090    ),
4091>;
4092unsafe extern "C" {
4093    pub fn igraph_set_warning_handler(
4094        new_handler: igraph_warning_handler_t,
4095    ) -> igraph_warning_handler_t;
4096}
4097unsafe extern "C" {
4098    pub fn igraph_warning_handler_ignore(
4099        reason: *const ::std::os::raw::c_char,
4100        file: *const ::std::os::raw::c_char,
4101        line: ::std::os::raw::c_int,
4102    );
4103}
4104unsafe extern "C" {
4105    pub fn igraph_warning_handler_print(
4106        reason: *const ::std::os::raw::c_char,
4107        file: *const ::std::os::raw::c_char,
4108        line: ::std::os::raw::c_int,
4109    );
4110}
4111unsafe extern "C" {
4112    pub fn igraph_warning(
4113        reason: *const ::std::os::raw::c_char,
4114        file: *const ::std::os::raw::c_char,
4115        line: ::std::os::raw::c_int,
4116    );
4117}
4118unsafe extern "C" {
4119    pub fn igraph_warningf(
4120        reason: *const ::std::os::raw::c_char,
4121        file: *const ::std::os::raw::c_char,
4122        line: ::std::os::raw::c_int,
4123        ...
4124    );
4125}
4126#[doc = " \\typedef igraph_fatal_handler_t\n \\brief The type of igraph fatal error handler functions.\n\n Functions of this type \\em must not return. Typically they\n call <code>abort()</code> or do a <code>longjmp()</code>.\n\n \\param reason Textual description of the error.\n \\param file The source file in which the error is noticed.\n \\param line The number of the line in the source file which triggered the error."]
4127pub type igraph_fatal_handler_t = ::std::option::Option<
4128    unsafe extern "C" fn(
4129        reason: *const ::std::os::raw::c_char,
4130        file: *const ::std::os::raw::c_char,
4131        line: ::std::os::raw::c_int,
4132    ),
4133>;
4134unsafe extern "C" {
4135    pub fn igraph_set_fatal_handler(new_handler: igraph_fatal_handler_t) -> igraph_fatal_handler_t;
4136}
4137unsafe extern "C" {
4138    #[doc = " \\var igraph_fatal_handler_abort\n \\brief Abort program in case of fatal error.\n\n The default fatal error handler, prints an error message and aborts the program."]
4139    pub fn igraph_fatal_handler_abort(
4140        arg1: *const ::std::os::raw::c_char,
4141        arg2: *const ::std::os::raw::c_char,
4142        arg3: ::std::os::raw::c_int,
4143    ) -> !;
4144}
4145unsafe extern "C" {
4146    pub fn igraph_fatal(
4147        reason: *const ::std::os::raw::c_char,
4148        file: *const ::std::os::raw::c_char,
4149        line: ::std::os::raw::c_int,
4150    ) -> !;
4151}
4152unsafe extern "C" {
4153    pub fn igraph_fatalf(
4154        reason: *const ::std::os::raw::c_char,
4155        file: *const ::std::os::raw::c_char,
4156        line: ::std::os::raw::c_int,
4157        ...
4158    ) -> !;
4159}
4160unsafe extern "C" {
4161    pub fn imaxabs(j: intmax_t) -> intmax_t;
4162}
4163#[repr(C)]
4164#[derive(Debug, Copy, Clone)]
4165pub struct imaxdiv_t {
4166    pub quot: intmax_t,
4167    pub rem: intmax_t,
4168}
4169#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4170const _: () = {
4171    ["Size of imaxdiv_t"][::std::mem::size_of::<imaxdiv_t>() - 16usize];
4172    ["Alignment of imaxdiv_t"][::std::mem::align_of::<imaxdiv_t>() - 8usize];
4173    ["Offset of field: imaxdiv_t::quot"][::std::mem::offset_of!(imaxdiv_t, quot) - 0usize];
4174    ["Offset of field: imaxdiv_t::rem"][::std::mem::offset_of!(imaxdiv_t, rem) - 8usize];
4175};
4176unsafe extern "C" {
4177    pub fn imaxdiv(__numer: intmax_t, __denom: intmax_t) -> imaxdiv_t;
4178}
4179unsafe extern "C" {
4180    pub fn strtoimax(
4181        __nptr: *const ::std::os::raw::c_char,
4182        __endptr: *mut *mut ::std::os::raw::c_char,
4183        __base: ::std::os::raw::c_int,
4184    ) -> intmax_t;
4185}
4186unsafe extern "C" {
4187    pub fn strtoumax(
4188        __nptr: *const ::std::os::raw::c_char,
4189        __endptr: *mut *mut ::std::os::raw::c_char,
4190        __base: ::std::os::raw::c_int,
4191    ) -> uintmax_t;
4192}
4193unsafe extern "C" {
4194    pub fn wcstoimax(
4195        __nptr: *const wchar_t,
4196        __endptr: *mut *mut wchar_t,
4197        __base: ::std::os::raw::c_int,
4198    ) -> intmax_t;
4199}
4200unsafe extern "C" {
4201    pub fn wcstoumax(
4202        __nptr: *const wchar_t,
4203        __endptr: *mut *mut wchar_t,
4204        __base: ::std::os::raw::c_int,
4205    ) -> uintmax_t;
4206}
4207pub type float_t = f32;
4208pub type double_t = f64;
4209unsafe extern "C" {
4210    pub fn __math_errhandling() -> ::std::os::raw::c_int;
4211}
4212unsafe extern "C" {
4213    pub fn __fpclassifyf(arg1: f32) -> ::std::os::raw::c_int;
4214}
4215unsafe extern "C" {
4216    pub fn __fpclassifyd(arg1: f64) -> ::std::os::raw::c_int;
4217}
4218unsafe extern "C" {
4219    pub fn __fpclassifyl(arg1: f64) -> ::std::os::raw::c_int;
4220}
4221unsafe extern "C" {
4222    pub fn acosf(arg1: f32) -> f32;
4223}
4224unsafe extern "C" {
4225    pub fn acos(arg1: f64) -> f64;
4226}
4227unsafe extern "C" {
4228    pub fn acosl(arg1: f64) -> f64;
4229}
4230unsafe extern "C" {
4231    pub fn asinf(arg1: f32) -> f32;
4232}
4233unsafe extern "C" {
4234    pub fn asin(arg1: f64) -> f64;
4235}
4236unsafe extern "C" {
4237    pub fn asinl(arg1: f64) -> f64;
4238}
4239unsafe extern "C" {
4240    pub fn atanf(arg1: f32) -> f32;
4241}
4242unsafe extern "C" {
4243    pub fn atan(arg1: f64) -> f64;
4244}
4245unsafe extern "C" {
4246    pub fn atanl(arg1: f64) -> f64;
4247}
4248unsafe extern "C" {
4249    pub fn atan2f(arg1: f32, arg2: f32) -> f32;
4250}
4251unsafe extern "C" {
4252    pub fn atan2(arg1: f64, arg2: f64) -> f64;
4253}
4254unsafe extern "C" {
4255    pub fn atan2l(arg1: f64, arg2: f64) -> f64;
4256}
4257unsafe extern "C" {
4258    pub fn cosf(arg1: f32) -> f32;
4259}
4260unsafe extern "C" {
4261    pub fn cos(arg1: f64) -> f64;
4262}
4263unsafe extern "C" {
4264    pub fn cosl(arg1: f64) -> f64;
4265}
4266unsafe extern "C" {
4267    pub fn sinf(arg1: f32) -> f32;
4268}
4269unsafe extern "C" {
4270    pub fn sin(arg1: f64) -> f64;
4271}
4272unsafe extern "C" {
4273    pub fn sinl(arg1: f64) -> f64;
4274}
4275unsafe extern "C" {
4276    pub fn tanf(arg1: f32) -> f32;
4277}
4278unsafe extern "C" {
4279    pub fn tan(arg1: f64) -> f64;
4280}
4281unsafe extern "C" {
4282    pub fn tanl(arg1: f64) -> f64;
4283}
4284unsafe extern "C" {
4285    pub fn acoshf(arg1: f32) -> f32;
4286}
4287unsafe extern "C" {
4288    pub fn acosh(arg1: f64) -> f64;
4289}
4290unsafe extern "C" {
4291    pub fn acoshl(arg1: f64) -> f64;
4292}
4293unsafe extern "C" {
4294    pub fn asinhf(arg1: f32) -> f32;
4295}
4296unsafe extern "C" {
4297    pub fn asinh(arg1: f64) -> f64;
4298}
4299unsafe extern "C" {
4300    pub fn asinhl(arg1: f64) -> f64;
4301}
4302unsafe extern "C" {
4303    pub fn atanhf(arg1: f32) -> f32;
4304}
4305unsafe extern "C" {
4306    pub fn atanh(arg1: f64) -> f64;
4307}
4308unsafe extern "C" {
4309    pub fn atanhl(arg1: f64) -> f64;
4310}
4311unsafe extern "C" {
4312    pub fn coshf(arg1: f32) -> f32;
4313}
4314unsafe extern "C" {
4315    pub fn cosh(arg1: f64) -> f64;
4316}
4317unsafe extern "C" {
4318    pub fn coshl(arg1: f64) -> f64;
4319}
4320unsafe extern "C" {
4321    pub fn sinhf(arg1: f32) -> f32;
4322}
4323unsafe extern "C" {
4324    pub fn sinh(arg1: f64) -> f64;
4325}
4326unsafe extern "C" {
4327    pub fn sinhl(arg1: f64) -> f64;
4328}
4329unsafe extern "C" {
4330    pub fn tanhf(arg1: f32) -> f32;
4331}
4332unsafe extern "C" {
4333    pub fn tanh(arg1: f64) -> f64;
4334}
4335unsafe extern "C" {
4336    pub fn tanhl(arg1: f64) -> f64;
4337}
4338unsafe extern "C" {
4339    pub fn expf(arg1: f32) -> f32;
4340}
4341unsafe extern "C" {
4342    pub fn exp(arg1: f64) -> f64;
4343}
4344unsafe extern "C" {
4345    pub fn expl(arg1: f64) -> f64;
4346}
4347unsafe extern "C" {
4348    pub fn exp2f(arg1: f32) -> f32;
4349}
4350unsafe extern "C" {
4351    pub fn exp2(arg1: f64) -> f64;
4352}
4353unsafe extern "C" {
4354    pub fn exp2l(arg1: f64) -> f64;
4355}
4356unsafe extern "C" {
4357    pub fn expm1f(arg1: f32) -> f32;
4358}
4359unsafe extern "C" {
4360    pub fn expm1(arg1: f64) -> f64;
4361}
4362unsafe extern "C" {
4363    pub fn expm1l(arg1: f64) -> f64;
4364}
4365unsafe extern "C" {
4366    pub fn logf(arg1: f32) -> f32;
4367}
4368unsafe extern "C" {
4369    pub fn log(arg1: f64) -> f64;
4370}
4371unsafe extern "C" {
4372    pub fn logl(arg1: f64) -> f64;
4373}
4374unsafe extern "C" {
4375    pub fn log10f(arg1: f32) -> f32;
4376}
4377unsafe extern "C" {
4378    pub fn log10(arg1: f64) -> f64;
4379}
4380unsafe extern "C" {
4381    pub fn log10l(arg1: f64) -> f64;
4382}
4383unsafe extern "C" {
4384    pub fn log2f(arg1: f32) -> f32;
4385}
4386unsafe extern "C" {
4387    pub fn log2(arg1: f64) -> f64;
4388}
4389unsafe extern "C" {
4390    pub fn log2l(arg1: f64) -> f64;
4391}
4392unsafe extern "C" {
4393    pub fn log1pf(arg1: f32) -> f32;
4394}
4395unsafe extern "C" {
4396    pub fn log1p(arg1: f64) -> f64;
4397}
4398unsafe extern "C" {
4399    pub fn log1pl(arg1: f64) -> f64;
4400}
4401unsafe extern "C" {
4402    pub fn logbf(arg1: f32) -> f32;
4403}
4404unsafe extern "C" {
4405    pub fn logb(arg1: f64) -> f64;
4406}
4407unsafe extern "C" {
4408    pub fn logbl(arg1: f64) -> f64;
4409}
4410unsafe extern "C" {
4411    pub fn modff(arg1: f32, arg2: *mut f32) -> f32;
4412}
4413unsafe extern "C" {
4414    pub fn modf(arg1: f64, arg2: *mut f64) -> f64;
4415}
4416unsafe extern "C" {
4417    pub fn modfl(arg1: f64, arg2: *mut f64) -> f64;
4418}
4419unsafe extern "C" {
4420    pub fn ldexpf(arg1: f32, arg2: ::std::os::raw::c_int) -> f32;
4421}
4422unsafe extern "C" {
4423    pub fn ldexp(arg1: f64, arg2: ::std::os::raw::c_int) -> f64;
4424}
4425unsafe extern "C" {
4426    pub fn ldexpl(arg1: f64, arg2: ::std::os::raw::c_int) -> f64;
4427}
4428unsafe extern "C" {
4429    pub fn frexpf(arg1: f32, arg2: *mut ::std::os::raw::c_int) -> f32;
4430}
4431unsafe extern "C" {
4432    pub fn frexp(arg1: f64, arg2: *mut ::std::os::raw::c_int) -> f64;
4433}
4434unsafe extern "C" {
4435    pub fn frexpl(arg1: f64, arg2: *mut ::std::os::raw::c_int) -> f64;
4436}
4437unsafe extern "C" {
4438    pub fn ilogbf(arg1: f32) -> ::std::os::raw::c_int;
4439}
4440unsafe extern "C" {
4441    pub fn ilogb(arg1: f64) -> ::std::os::raw::c_int;
4442}
4443unsafe extern "C" {
4444    pub fn ilogbl(arg1: f64) -> ::std::os::raw::c_int;
4445}
4446unsafe extern "C" {
4447    pub fn scalbnf(arg1: f32, arg2: ::std::os::raw::c_int) -> f32;
4448}
4449unsafe extern "C" {
4450    pub fn scalbn(arg1: f64, arg2: ::std::os::raw::c_int) -> f64;
4451}
4452unsafe extern "C" {
4453    pub fn scalbnl(arg1: f64, arg2: ::std::os::raw::c_int) -> f64;
4454}
4455unsafe extern "C" {
4456    pub fn scalblnf(arg1: f32, arg2: ::std::os::raw::c_long) -> f32;
4457}
4458unsafe extern "C" {
4459    pub fn scalbln(arg1: f64, arg2: ::std::os::raw::c_long) -> f64;
4460}
4461unsafe extern "C" {
4462    pub fn scalblnl(arg1: f64, arg2: ::std::os::raw::c_long) -> f64;
4463}
4464unsafe extern "C" {
4465    pub fn fabsf(arg1: f32) -> f32;
4466}
4467unsafe extern "C" {
4468    pub fn fabs(arg1: f64) -> f64;
4469}
4470unsafe extern "C" {
4471    pub fn fabsl(arg1: f64) -> f64;
4472}
4473unsafe extern "C" {
4474    pub fn cbrtf(arg1: f32) -> f32;
4475}
4476unsafe extern "C" {
4477    pub fn cbrt(arg1: f64) -> f64;
4478}
4479unsafe extern "C" {
4480    pub fn cbrtl(arg1: f64) -> f64;
4481}
4482unsafe extern "C" {
4483    pub fn hypotf(arg1: f32, arg2: f32) -> f32;
4484}
4485unsafe extern "C" {
4486    pub fn hypot(arg1: f64, arg2: f64) -> f64;
4487}
4488unsafe extern "C" {
4489    pub fn hypotl(arg1: f64, arg2: f64) -> f64;
4490}
4491unsafe extern "C" {
4492    pub fn powf(arg1: f32, arg2: f32) -> f32;
4493}
4494unsafe extern "C" {
4495    pub fn pow(arg1: f64, arg2: f64) -> f64;
4496}
4497unsafe extern "C" {
4498    pub fn powl(arg1: f64, arg2: f64) -> f64;
4499}
4500unsafe extern "C" {
4501    pub fn sqrtf(arg1: f32) -> f32;
4502}
4503unsafe extern "C" {
4504    pub fn sqrt(arg1: f64) -> f64;
4505}
4506unsafe extern "C" {
4507    pub fn sqrtl(arg1: f64) -> f64;
4508}
4509unsafe extern "C" {
4510    pub fn erff(arg1: f32) -> f32;
4511}
4512unsafe extern "C" {
4513    pub fn erf(arg1: f64) -> f64;
4514}
4515unsafe extern "C" {
4516    pub fn erfl(arg1: f64) -> f64;
4517}
4518unsafe extern "C" {
4519    pub fn erfcf(arg1: f32) -> f32;
4520}
4521unsafe extern "C" {
4522    pub fn erfc(arg1: f64) -> f64;
4523}
4524unsafe extern "C" {
4525    pub fn erfcl(arg1: f64) -> f64;
4526}
4527unsafe extern "C" {
4528    pub fn lgammaf(arg1: f32) -> f32;
4529}
4530unsafe extern "C" {
4531    pub fn lgamma(arg1: f64) -> f64;
4532}
4533unsafe extern "C" {
4534    pub fn lgammal(arg1: f64) -> f64;
4535}
4536unsafe extern "C" {
4537    pub fn tgammaf(arg1: f32) -> f32;
4538}
4539unsafe extern "C" {
4540    pub fn tgamma(arg1: f64) -> f64;
4541}
4542unsafe extern "C" {
4543    pub fn tgammal(arg1: f64) -> f64;
4544}
4545unsafe extern "C" {
4546    pub fn ceilf(arg1: f32) -> f32;
4547}
4548unsafe extern "C" {
4549    pub fn ceil(arg1: f64) -> f64;
4550}
4551unsafe extern "C" {
4552    pub fn ceill(arg1: f64) -> f64;
4553}
4554unsafe extern "C" {
4555    pub fn floorf(arg1: f32) -> f32;
4556}
4557unsafe extern "C" {
4558    pub fn floor(arg1: f64) -> f64;
4559}
4560unsafe extern "C" {
4561    pub fn floorl(arg1: f64) -> f64;
4562}
4563unsafe extern "C" {
4564    pub fn nearbyintf(arg1: f32) -> f32;
4565}
4566unsafe extern "C" {
4567    pub fn nearbyint(arg1: f64) -> f64;
4568}
4569unsafe extern "C" {
4570    pub fn nearbyintl(arg1: f64) -> f64;
4571}
4572unsafe extern "C" {
4573    pub fn rintf(arg1: f32) -> f32;
4574}
4575unsafe extern "C" {
4576    pub fn rint(arg1: f64) -> f64;
4577}
4578unsafe extern "C" {
4579    pub fn rintl(arg1: f64) -> f64;
4580}
4581unsafe extern "C" {
4582    pub fn lrintf(arg1: f32) -> ::std::os::raw::c_long;
4583}
4584unsafe extern "C" {
4585    pub fn lrint(arg1: f64) -> ::std::os::raw::c_long;
4586}
4587unsafe extern "C" {
4588    pub fn lrintl(arg1: f64) -> ::std::os::raw::c_long;
4589}
4590unsafe extern "C" {
4591    pub fn roundf(arg1: f32) -> f32;
4592}
4593unsafe extern "C" {
4594    pub fn round(arg1: f64) -> f64;
4595}
4596unsafe extern "C" {
4597    pub fn roundl(arg1: f64) -> f64;
4598}
4599unsafe extern "C" {
4600    pub fn lroundf(arg1: f32) -> ::std::os::raw::c_long;
4601}
4602unsafe extern "C" {
4603    pub fn lround(arg1: f64) -> ::std::os::raw::c_long;
4604}
4605unsafe extern "C" {
4606    pub fn lroundl(arg1: f64) -> ::std::os::raw::c_long;
4607}
4608unsafe extern "C" {
4609    pub fn llrintf(arg1: f32) -> ::std::os::raw::c_longlong;
4610}
4611unsafe extern "C" {
4612    pub fn llrint(arg1: f64) -> ::std::os::raw::c_longlong;
4613}
4614unsafe extern "C" {
4615    pub fn llrintl(arg1: f64) -> ::std::os::raw::c_longlong;
4616}
4617unsafe extern "C" {
4618    pub fn llroundf(arg1: f32) -> ::std::os::raw::c_longlong;
4619}
4620unsafe extern "C" {
4621    pub fn llround(arg1: f64) -> ::std::os::raw::c_longlong;
4622}
4623unsafe extern "C" {
4624    pub fn llroundl(arg1: f64) -> ::std::os::raw::c_longlong;
4625}
4626unsafe extern "C" {
4627    pub fn truncf(arg1: f32) -> f32;
4628}
4629unsafe extern "C" {
4630    pub fn trunc(arg1: f64) -> f64;
4631}
4632unsafe extern "C" {
4633    pub fn truncl(arg1: f64) -> f64;
4634}
4635unsafe extern "C" {
4636    pub fn fmodf(arg1: f32, arg2: f32) -> f32;
4637}
4638unsafe extern "C" {
4639    pub fn fmod(arg1: f64, arg2: f64) -> f64;
4640}
4641unsafe extern "C" {
4642    pub fn fmodl(arg1: f64, arg2: f64) -> f64;
4643}
4644unsafe extern "C" {
4645    pub fn remainderf(arg1: f32, arg2: f32) -> f32;
4646}
4647unsafe extern "C" {
4648    pub fn remainder(arg1: f64, arg2: f64) -> f64;
4649}
4650unsafe extern "C" {
4651    pub fn remainderl(arg1: f64, arg2: f64) -> f64;
4652}
4653unsafe extern "C" {
4654    pub fn remquof(arg1: f32, arg2: f32, arg3: *mut ::std::os::raw::c_int) -> f32;
4655}
4656unsafe extern "C" {
4657    pub fn remquo(arg1: f64, arg2: f64, arg3: *mut ::std::os::raw::c_int) -> f64;
4658}
4659unsafe extern "C" {
4660    pub fn remquol(arg1: f64, arg2: f64, arg3: *mut ::std::os::raw::c_int) -> f64;
4661}
4662unsafe extern "C" {
4663    pub fn copysignf(arg1: f32, arg2: f32) -> f32;
4664}
4665unsafe extern "C" {
4666    pub fn copysign(arg1: f64, arg2: f64) -> f64;
4667}
4668unsafe extern "C" {
4669    pub fn copysignl(arg1: f64, arg2: f64) -> f64;
4670}
4671unsafe extern "C" {
4672    pub fn nanf(arg1: *const ::std::os::raw::c_char) -> f32;
4673}
4674unsafe extern "C" {
4675    pub fn nan(arg1: *const ::std::os::raw::c_char) -> f64;
4676}
4677unsafe extern "C" {
4678    pub fn nanl(arg1: *const ::std::os::raw::c_char) -> f64;
4679}
4680unsafe extern "C" {
4681    pub fn nextafterf(arg1: f32, arg2: f32) -> f32;
4682}
4683unsafe extern "C" {
4684    pub fn nextafter(arg1: f64, arg2: f64) -> f64;
4685}
4686unsafe extern "C" {
4687    pub fn nextafterl(arg1: f64, arg2: f64) -> f64;
4688}
4689unsafe extern "C" {
4690    pub fn nexttoward(arg1: f64, arg2: f64) -> f64;
4691}
4692unsafe extern "C" {
4693    pub fn nexttowardf(arg1: f32, arg2: f64) -> f32;
4694}
4695unsafe extern "C" {
4696    pub fn nexttowardl(arg1: f64, arg2: f64) -> f64;
4697}
4698unsafe extern "C" {
4699    pub fn fdimf(arg1: f32, arg2: f32) -> f32;
4700}
4701unsafe extern "C" {
4702    pub fn fdim(arg1: f64, arg2: f64) -> f64;
4703}
4704unsafe extern "C" {
4705    pub fn fdiml(arg1: f64, arg2: f64) -> f64;
4706}
4707unsafe extern "C" {
4708    pub fn fmaxf(arg1: f32, arg2: f32) -> f32;
4709}
4710unsafe extern "C" {
4711    pub fn fmax(arg1: f64, arg2: f64) -> f64;
4712}
4713unsafe extern "C" {
4714    pub fn fmaxl(arg1: f64, arg2: f64) -> f64;
4715}
4716unsafe extern "C" {
4717    pub fn fminf(arg1: f32, arg2: f32) -> f32;
4718}
4719unsafe extern "C" {
4720    pub fn fmin(arg1: f64, arg2: f64) -> f64;
4721}
4722unsafe extern "C" {
4723    pub fn fminl(arg1: f64, arg2: f64) -> f64;
4724}
4725unsafe extern "C" {
4726    pub fn fmaf(arg1: f32, arg2: f32, arg3: f32) -> f32;
4727}
4728unsafe extern "C" {
4729    pub fn fma(arg1: f64, arg2: f64, arg3: f64) -> f64;
4730}
4731unsafe extern "C" {
4732    pub fn fmal(arg1: f64, arg2: f64, arg3: f64) -> f64;
4733}
4734unsafe extern "C" {
4735    pub fn __exp10f(arg1: f32) -> f32;
4736}
4737unsafe extern "C" {
4738    pub fn __exp10(arg1: f64) -> f64;
4739}
4740unsafe extern "C" {
4741    pub fn __cospif(arg1: f32) -> f32;
4742}
4743unsafe extern "C" {
4744    pub fn __cospi(arg1: f64) -> f64;
4745}
4746unsafe extern "C" {
4747    pub fn __sinpif(arg1: f32) -> f32;
4748}
4749unsafe extern "C" {
4750    pub fn __sinpi(arg1: f64) -> f64;
4751}
4752unsafe extern "C" {
4753    pub fn __tanpif(arg1: f32) -> f32;
4754}
4755unsafe extern "C" {
4756    pub fn __tanpi(arg1: f64) -> f64;
4757}
4758unsafe extern "C" {
4759    pub fn __fabsf16(arg1: __BindgenFloat16) -> __BindgenFloat16;
4760}
4761unsafe extern "C" {
4762    pub fn __hypotf16(arg1: __BindgenFloat16, arg2: __BindgenFloat16) -> __BindgenFloat16;
4763}
4764unsafe extern "C" {
4765    pub fn __sqrtf16(arg1: __BindgenFloat16) -> __BindgenFloat16;
4766}
4767unsafe extern "C" {
4768    pub fn __ceilf16(arg1: __BindgenFloat16) -> __BindgenFloat16;
4769}
4770unsafe extern "C" {
4771    pub fn __floorf16(arg1: __BindgenFloat16) -> __BindgenFloat16;
4772}
4773unsafe extern "C" {
4774    pub fn __rintf16(arg1: __BindgenFloat16) -> __BindgenFloat16;
4775}
4776unsafe extern "C" {
4777    pub fn __roundf16(arg1: __BindgenFloat16) -> __BindgenFloat16;
4778}
4779unsafe extern "C" {
4780    pub fn __truncf16(arg1: __BindgenFloat16) -> __BindgenFloat16;
4781}
4782unsafe extern "C" {
4783    pub fn __copysignf16(arg1: __BindgenFloat16, arg2: __BindgenFloat16) -> __BindgenFloat16;
4784}
4785unsafe extern "C" {
4786    pub fn __nextafterf16(arg1: __BindgenFloat16, arg2: __BindgenFloat16) -> __BindgenFloat16;
4787}
4788unsafe extern "C" {
4789    pub fn __fmaxf16(arg1: __BindgenFloat16, arg2: __BindgenFloat16) -> __BindgenFloat16;
4790}
4791unsafe extern "C" {
4792    pub fn __fminf16(arg1: __BindgenFloat16, arg2: __BindgenFloat16) -> __BindgenFloat16;
4793}
4794unsafe extern "C" {
4795    pub fn __fmaf16(
4796        arg1: __BindgenFloat16,
4797        arg2: __BindgenFloat16,
4798        arg3: __BindgenFloat16,
4799    ) -> __BindgenFloat16;
4800}
4801#[repr(C)]
4802#[derive(Debug, Copy, Clone)]
4803pub struct __float2 {
4804    pub __sinval: f32,
4805    pub __cosval: f32,
4806}
4807#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4808const _: () = {
4809    ["Size of __float2"][::std::mem::size_of::<__float2>() - 8usize];
4810    ["Alignment of __float2"][::std::mem::align_of::<__float2>() - 4usize];
4811    ["Offset of field: __float2::__sinval"][::std::mem::offset_of!(__float2, __sinval) - 0usize];
4812    ["Offset of field: __float2::__cosval"][::std::mem::offset_of!(__float2, __cosval) - 4usize];
4813};
4814#[repr(C)]
4815#[derive(Debug, Copy, Clone)]
4816pub struct __double2 {
4817    pub __sinval: f64,
4818    pub __cosval: f64,
4819}
4820#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4821const _: () = {
4822    ["Size of __double2"][::std::mem::size_of::<__double2>() - 16usize];
4823    ["Alignment of __double2"][::std::mem::align_of::<__double2>() - 8usize];
4824    ["Offset of field: __double2::__sinval"][::std::mem::offset_of!(__double2, __sinval) - 0usize];
4825    ["Offset of field: __double2::__cosval"][::std::mem::offset_of!(__double2, __cosval) - 8usize];
4826};
4827unsafe extern "C" {
4828    pub fn __sincosf_stret(arg1: f32) -> __float2;
4829}
4830unsafe extern "C" {
4831    pub fn __sincos_stret(arg1: f64) -> __double2;
4832}
4833unsafe extern "C" {
4834    pub fn __sincospif_stret(arg1: f32) -> __float2;
4835}
4836unsafe extern "C" {
4837    pub fn __sincospi_stret(arg1: f64) -> __double2;
4838}
4839unsafe extern "C" {
4840    pub fn j0(arg1: f64) -> f64;
4841}
4842unsafe extern "C" {
4843    pub fn j1(arg1: f64) -> f64;
4844}
4845unsafe extern "C" {
4846    pub fn jn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64;
4847}
4848unsafe extern "C" {
4849    pub fn y0(arg1: f64) -> f64;
4850}
4851unsafe extern "C" {
4852    pub fn y1(arg1: f64) -> f64;
4853}
4854unsafe extern "C" {
4855    pub fn yn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64;
4856}
4857unsafe extern "C" {
4858    pub fn scalb(arg1: f64, arg2: f64) -> f64;
4859}
4860unsafe extern "C" {
4861    pub static mut signgam: ::std::os::raw::c_int;
4862}
4863#[repr(C)]
4864#[derive(Debug, Copy, Clone)]
4865pub struct exception {
4866    pub type_: ::std::os::raw::c_int,
4867    pub name: *mut ::std::os::raw::c_char,
4868    pub arg1: f64,
4869    pub arg2: f64,
4870    pub retval: f64,
4871}
4872#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4873const _: () = {
4874    ["Size of exception"][::std::mem::size_of::<exception>() - 40usize];
4875    ["Alignment of exception"][::std::mem::align_of::<exception>() - 8usize];
4876    ["Offset of field: exception::type_"][::std::mem::offset_of!(exception, type_) - 0usize];
4877    ["Offset of field: exception::name"][::std::mem::offset_of!(exception, name) - 8usize];
4878    ["Offset of field: exception::arg1"][::std::mem::offset_of!(exception, arg1) - 16usize];
4879    ["Offset of field: exception::arg2"][::std::mem::offset_of!(exception, arg2) - 24usize];
4880    ["Offset of field: exception::retval"][::std::mem::offset_of!(exception, retval) - 32usize];
4881};
4882pub type rsize_t = ::std::os::raw::c_ulong;
4883pub type max_align_t = f64;
4884unsafe extern "C" {
4885    pub fn renameat(
4886        arg1: ::std::os::raw::c_int,
4887        arg2: *const ::std::os::raw::c_char,
4888        arg3: ::std::os::raw::c_int,
4889        arg4: *const ::std::os::raw::c_char,
4890    ) -> ::std::os::raw::c_int;
4891}
4892unsafe extern "C" {
4893    pub fn renamex_np(
4894        arg1: *const ::std::os::raw::c_char,
4895        arg2: *const ::std::os::raw::c_char,
4896        arg3: ::std::os::raw::c_uint,
4897    ) -> ::std::os::raw::c_int;
4898}
4899unsafe extern "C" {
4900    pub fn renameatx_np(
4901        arg1: ::std::os::raw::c_int,
4902        arg2: *const ::std::os::raw::c_char,
4903        arg3: ::std::os::raw::c_int,
4904        arg4: *const ::std::os::raw::c_char,
4905        arg5: ::std::os::raw::c_uint,
4906    ) -> ::std::os::raw::c_int;
4907}
4908unsafe extern "C" {
4909    pub fn printf(arg1: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int;
4910}
4911pub type fpos_t = __darwin_off_t;
4912#[repr(C)]
4913#[derive(Debug, Copy, Clone)]
4914pub struct __sbuf {
4915    pub _base: *mut ::std::os::raw::c_uchar,
4916    pub _size: ::std::os::raw::c_int,
4917}
4918#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4919const _: () = {
4920    ["Size of __sbuf"][::std::mem::size_of::<__sbuf>() - 16usize];
4921    ["Alignment of __sbuf"][::std::mem::align_of::<__sbuf>() - 8usize];
4922    ["Offset of field: __sbuf::_base"][::std::mem::offset_of!(__sbuf, _base) - 0usize];
4923    ["Offset of field: __sbuf::_size"][::std::mem::offset_of!(__sbuf, _size) - 8usize];
4924};
4925#[repr(C)]
4926#[derive(Debug, Copy, Clone)]
4927pub struct __sFILEX {
4928    _unused: [u8; 0],
4929}
4930#[repr(C)]
4931#[derive(Debug, Copy, Clone)]
4932pub struct __sFILE {
4933    pub _p: *mut ::std::os::raw::c_uchar,
4934    pub _r: ::std::os::raw::c_int,
4935    pub _w: ::std::os::raw::c_int,
4936    pub _flags: ::std::os::raw::c_short,
4937    pub _file: ::std::os::raw::c_short,
4938    pub _bf: __sbuf,
4939    pub _lbfsize: ::std::os::raw::c_int,
4940    pub _cookie: *mut ::std::os::raw::c_void,
4941    pub _close: ::std::option::Option<
4942        unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int,
4943    >,
4944    pub _read: ::std::option::Option<
4945        unsafe extern "C" fn(
4946            arg1: *mut ::std::os::raw::c_void,
4947            arg2: *mut ::std::os::raw::c_char,
4948            __n: ::std::os::raw::c_int,
4949        ) -> ::std::os::raw::c_int,
4950    >,
4951    pub _seek: ::std::option::Option<
4952        unsafe extern "C" fn(
4953            arg1: *mut ::std::os::raw::c_void,
4954            arg2: fpos_t,
4955            arg3: ::std::os::raw::c_int,
4956        ) -> fpos_t,
4957    >,
4958    pub _write: ::std::option::Option<
4959        unsafe extern "C" fn(
4960            arg1: *mut ::std::os::raw::c_void,
4961            arg2: *const ::std::os::raw::c_char,
4962            __n: ::std::os::raw::c_int,
4963        ) -> ::std::os::raw::c_int,
4964    >,
4965    pub _ub: __sbuf,
4966    pub _extra: *mut __sFILEX,
4967    pub _ur: ::std::os::raw::c_int,
4968    pub _ubuf: [::std::os::raw::c_uchar; 3usize],
4969    pub _nbuf: [::std::os::raw::c_uchar; 1usize],
4970    pub _lb: __sbuf,
4971    pub _blksize: ::std::os::raw::c_int,
4972    pub _offset: fpos_t,
4973}
4974#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4975const _: () = {
4976    ["Size of __sFILE"][::std::mem::size_of::<__sFILE>() - 152usize];
4977    ["Alignment of __sFILE"][::std::mem::align_of::<__sFILE>() - 8usize];
4978    ["Offset of field: __sFILE::_p"][::std::mem::offset_of!(__sFILE, _p) - 0usize];
4979    ["Offset of field: __sFILE::_r"][::std::mem::offset_of!(__sFILE, _r) - 8usize];
4980    ["Offset of field: __sFILE::_w"][::std::mem::offset_of!(__sFILE, _w) - 12usize];
4981    ["Offset of field: __sFILE::_flags"][::std::mem::offset_of!(__sFILE, _flags) - 16usize];
4982    ["Offset of field: __sFILE::_file"][::std::mem::offset_of!(__sFILE, _file) - 18usize];
4983    ["Offset of field: __sFILE::_bf"][::std::mem::offset_of!(__sFILE, _bf) - 24usize];
4984    ["Offset of field: __sFILE::_lbfsize"][::std::mem::offset_of!(__sFILE, _lbfsize) - 40usize];
4985    ["Offset of field: __sFILE::_cookie"][::std::mem::offset_of!(__sFILE, _cookie) - 48usize];
4986    ["Offset of field: __sFILE::_close"][::std::mem::offset_of!(__sFILE, _close) - 56usize];
4987    ["Offset of field: __sFILE::_read"][::std::mem::offset_of!(__sFILE, _read) - 64usize];
4988    ["Offset of field: __sFILE::_seek"][::std::mem::offset_of!(__sFILE, _seek) - 72usize];
4989    ["Offset of field: __sFILE::_write"][::std::mem::offset_of!(__sFILE, _write) - 80usize];
4990    ["Offset of field: __sFILE::_ub"][::std::mem::offset_of!(__sFILE, _ub) - 88usize];
4991    ["Offset of field: __sFILE::_extra"][::std::mem::offset_of!(__sFILE, _extra) - 104usize];
4992    ["Offset of field: __sFILE::_ur"][::std::mem::offset_of!(__sFILE, _ur) - 112usize];
4993    ["Offset of field: __sFILE::_ubuf"][::std::mem::offset_of!(__sFILE, _ubuf) - 116usize];
4994    ["Offset of field: __sFILE::_nbuf"][::std::mem::offset_of!(__sFILE, _nbuf) - 119usize];
4995    ["Offset of field: __sFILE::_lb"][::std::mem::offset_of!(__sFILE, _lb) - 120usize];
4996    ["Offset of field: __sFILE::_blksize"][::std::mem::offset_of!(__sFILE, _blksize) - 136usize];
4997    ["Offset of field: __sFILE::_offset"][::std::mem::offset_of!(__sFILE, _offset) - 144usize];
4998};
4999pub type FILE = __sFILE;
5000unsafe extern "C" {
5001    pub static mut __stdinp: *mut FILE;
5002}
5003unsafe extern "C" {
5004    pub static mut __stdoutp: *mut FILE;
5005}
5006unsafe extern "C" {
5007    pub static mut __stderrp: *mut FILE;
5008}
5009unsafe extern "C" {
5010    pub fn clearerr(arg1: *mut FILE);
5011}
5012unsafe extern "C" {
5013    pub fn fclose(arg1: *mut FILE) -> ::std::os::raw::c_int;
5014}
5015unsafe extern "C" {
5016    pub fn feof(arg1: *mut FILE) -> ::std::os::raw::c_int;
5017}
5018unsafe extern "C" {
5019    pub fn ferror(arg1: *mut FILE) -> ::std::os::raw::c_int;
5020}
5021unsafe extern "C" {
5022    pub fn fflush(arg1: *mut FILE) -> ::std::os::raw::c_int;
5023}
5024unsafe extern "C" {
5025    pub fn fgetc(arg1: *mut FILE) -> ::std::os::raw::c_int;
5026}
5027unsafe extern "C" {
5028    pub fn fgetpos(arg1: *mut FILE, arg2: *mut fpos_t) -> ::std::os::raw::c_int;
5029}
5030unsafe extern "C" {
5031    pub fn fgets(
5032        arg1: *mut ::std::os::raw::c_char,
5033        __size: ::std::os::raw::c_int,
5034        arg2: *mut FILE,
5035    ) -> *mut ::std::os::raw::c_char;
5036}
5037unsafe extern "C" {
5038    pub fn fopen(
5039        __filename: *const ::std::os::raw::c_char,
5040        __mode: *const ::std::os::raw::c_char,
5041    ) -> *mut FILE;
5042}
5043unsafe extern "C" {
5044    pub fn fprintf(
5045        arg1: *mut FILE,
5046        arg2: *const ::std::os::raw::c_char,
5047        ...
5048    ) -> ::std::os::raw::c_int;
5049}
5050unsafe extern "C" {
5051    pub fn fputc(arg1: ::std::os::raw::c_int, arg2: *mut FILE) -> ::std::os::raw::c_int;
5052}
5053unsafe extern "C" {
5054    pub fn fputs(arg1: *const ::std::os::raw::c_char, arg2: *mut FILE) -> ::std::os::raw::c_int;
5055}
5056unsafe extern "C" {
5057    pub fn fread(
5058        __ptr: *mut ::std::os::raw::c_void,
5059        __size: ::std::os::raw::c_ulong,
5060        __nitems: ::std::os::raw::c_ulong,
5061        __stream: *mut FILE,
5062    ) -> ::std::os::raw::c_ulong;
5063}
5064unsafe extern "C" {
5065    pub fn freopen(
5066        arg1: *const ::std::os::raw::c_char,
5067        arg2: *const ::std::os::raw::c_char,
5068        arg3: *mut FILE,
5069    ) -> *mut FILE;
5070}
5071unsafe extern "C" {
5072    pub fn fscanf(
5073        arg1: *mut FILE,
5074        arg2: *const ::std::os::raw::c_char,
5075        ...
5076    ) -> ::std::os::raw::c_int;
5077}
5078unsafe extern "C" {
5079    pub fn fseek(
5080        arg1: *mut FILE,
5081        arg2: ::std::os::raw::c_long,
5082        arg3: ::std::os::raw::c_int,
5083    ) -> ::std::os::raw::c_int;
5084}
5085unsafe extern "C" {
5086    pub fn fsetpos(arg1: *mut FILE, arg2: *const fpos_t) -> ::std::os::raw::c_int;
5087}
5088unsafe extern "C" {
5089    pub fn ftell(arg1: *mut FILE) -> ::std::os::raw::c_long;
5090}
5091unsafe extern "C" {
5092    pub fn fwrite(
5093        __ptr: *const ::std::os::raw::c_void,
5094        __size: ::std::os::raw::c_ulong,
5095        __nitems: ::std::os::raw::c_ulong,
5096        __stream: *mut FILE,
5097    ) -> ::std::os::raw::c_ulong;
5098}
5099unsafe extern "C" {
5100    pub fn getc(arg1: *mut FILE) -> ::std::os::raw::c_int;
5101}
5102unsafe extern "C" {
5103    pub fn getchar() -> ::std::os::raw::c_int;
5104}
5105unsafe extern "C" {
5106    pub fn gets(arg1: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
5107}
5108unsafe extern "C" {
5109    pub fn perror(arg1: *const ::std::os::raw::c_char);
5110}
5111unsafe extern "C" {
5112    pub fn putc(arg1: ::std::os::raw::c_int, arg2: *mut FILE) -> ::std::os::raw::c_int;
5113}
5114unsafe extern "C" {
5115    pub fn putchar(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
5116}
5117unsafe extern "C" {
5118    pub fn puts(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
5119}
5120unsafe extern "C" {
5121    pub fn remove(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
5122}
5123unsafe extern "C" {
5124    pub fn rename(
5125        __old: *const ::std::os::raw::c_char,
5126        __new: *const ::std::os::raw::c_char,
5127    ) -> ::std::os::raw::c_int;
5128}
5129unsafe extern "C" {
5130    pub fn rewind(arg1: *mut FILE);
5131}
5132unsafe extern "C" {
5133    pub fn scanf(arg1: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int;
5134}
5135unsafe extern "C" {
5136    pub fn setbuf(arg1: *mut FILE, arg2: *mut ::std::os::raw::c_char);
5137}
5138unsafe extern "C" {
5139    pub fn setvbuf(
5140        arg1: *mut FILE,
5141        arg2: *mut ::std::os::raw::c_char,
5142        arg3: ::std::os::raw::c_int,
5143        __size: usize,
5144    ) -> ::std::os::raw::c_int;
5145}
5146unsafe extern "C" {
5147    pub fn sprintf(
5148        arg1: *mut ::std::os::raw::c_char,
5149        arg2: *const ::std::os::raw::c_char,
5150        ...
5151    ) -> ::std::os::raw::c_int;
5152}
5153unsafe extern "C" {
5154    pub fn sscanf(
5155        arg1: *const ::std::os::raw::c_char,
5156        arg2: *const ::std::os::raw::c_char,
5157        ...
5158    ) -> ::std::os::raw::c_int;
5159}
5160unsafe extern "C" {
5161    pub fn tmpfile() -> *mut FILE;
5162}
5163unsafe extern "C" {
5164    pub fn tmpnam(arg1: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
5165}
5166unsafe extern "C" {
5167    pub fn ungetc(arg1: ::std::os::raw::c_int, arg2: *mut FILE) -> ::std::os::raw::c_int;
5168}
5169unsafe extern "C" {
5170    pub fn vfprintf(
5171        arg1: *mut FILE,
5172        arg2: *const ::std::os::raw::c_char,
5173        arg3: __builtin_va_list,
5174    ) -> ::std::os::raw::c_int;
5175}
5176unsafe extern "C" {
5177    pub fn vprintf(
5178        arg1: *const ::std::os::raw::c_char,
5179        arg2: __builtin_va_list,
5180    ) -> ::std::os::raw::c_int;
5181}
5182unsafe extern "C" {
5183    pub fn vsprintf(
5184        arg1: *mut ::std::os::raw::c_char,
5185        arg2: *const ::std::os::raw::c_char,
5186        arg3: __builtin_va_list,
5187    ) -> ::std::os::raw::c_int;
5188}
5189unsafe extern "C" {
5190    pub fn ctermid(arg1: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
5191}
5192unsafe extern "C" {
5193    pub fn fdopen(arg1: ::std::os::raw::c_int, arg2: *const ::std::os::raw::c_char) -> *mut FILE;
5194}
5195unsafe extern "C" {
5196    pub fn fileno(arg1: *mut FILE) -> ::std::os::raw::c_int;
5197}
5198unsafe extern "C" {
5199    pub fn pclose(arg1: *mut FILE) -> ::std::os::raw::c_int;
5200}
5201unsafe extern "C" {
5202    pub fn popen(
5203        arg1: *const ::std::os::raw::c_char,
5204        arg2: *const ::std::os::raw::c_char,
5205    ) -> *mut FILE;
5206}
5207unsafe extern "C" {
5208    pub fn __srget(arg1: *mut FILE) -> ::std::os::raw::c_int;
5209}
5210unsafe extern "C" {
5211    pub fn __svfscanf(
5212        arg1: *mut FILE,
5213        arg2: *const ::std::os::raw::c_char,
5214        arg3: va_list,
5215    ) -> ::std::os::raw::c_int;
5216}
5217unsafe extern "C" {
5218    pub fn __swbuf(arg1: ::std::os::raw::c_int, arg2: *mut FILE) -> ::std::os::raw::c_int;
5219}
5220unsafe extern "C" {
5221    pub fn flockfile(arg1: *mut FILE);
5222}
5223unsafe extern "C" {
5224    pub fn ftrylockfile(arg1: *mut FILE) -> ::std::os::raw::c_int;
5225}
5226unsafe extern "C" {
5227    pub fn funlockfile(arg1: *mut FILE);
5228}
5229unsafe extern "C" {
5230    pub fn getc_unlocked(arg1: *mut FILE) -> ::std::os::raw::c_int;
5231}
5232unsafe extern "C" {
5233    pub fn getchar_unlocked() -> ::std::os::raw::c_int;
5234}
5235unsafe extern "C" {
5236    pub fn putc_unlocked(arg1: ::std::os::raw::c_int, arg2: *mut FILE) -> ::std::os::raw::c_int;
5237}
5238unsafe extern "C" {
5239    pub fn putchar_unlocked(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
5240}
5241unsafe extern "C" {
5242    pub fn getw(arg1: *mut FILE) -> ::std::os::raw::c_int;
5243}
5244unsafe extern "C" {
5245    pub fn putw(arg1: ::std::os::raw::c_int, arg2: *mut FILE) -> ::std::os::raw::c_int;
5246}
5247unsafe extern "C" {
5248    pub fn tempnam(
5249        __dir: *const ::std::os::raw::c_char,
5250        __prefix: *const ::std::os::raw::c_char,
5251    ) -> *mut ::std::os::raw::c_char;
5252}
5253pub type off_t = __darwin_off_t;
5254unsafe extern "C" {
5255    pub fn fseeko(
5256        __stream: *mut FILE,
5257        __offset: off_t,
5258        __whence: ::std::os::raw::c_int,
5259    ) -> ::std::os::raw::c_int;
5260}
5261unsafe extern "C" {
5262    pub fn ftello(__stream: *mut FILE) -> off_t;
5263}
5264unsafe extern "C" {
5265    pub fn snprintf(
5266        __str: *mut ::std::os::raw::c_char,
5267        __size: ::std::os::raw::c_ulong,
5268        __format: *const ::std::os::raw::c_char,
5269        ...
5270    ) -> ::std::os::raw::c_int;
5271}
5272unsafe extern "C" {
5273    pub fn vfscanf(
5274        __stream: *mut FILE,
5275        __format: *const ::std::os::raw::c_char,
5276        arg1: __builtin_va_list,
5277    ) -> ::std::os::raw::c_int;
5278}
5279unsafe extern "C" {
5280    pub fn vscanf(
5281        __format: *const ::std::os::raw::c_char,
5282        arg1: __builtin_va_list,
5283    ) -> ::std::os::raw::c_int;
5284}
5285unsafe extern "C" {
5286    pub fn vsnprintf(
5287        __str: *mut ::std::os::raw::c_char,
5288        __size: ::std::os::raw::c_ulong,
5289        __format: *const ::std::os::raw::c_char,
5290        arg1: __builtin_va_list,
5291    ) -> ::std::os::raw::c_int;
5292}
5293unsafe extern "C" {
5294    pub fn vsscanf(
5295        __str: *const ::std::os::raw::c_char,
5296        __format: *const ::std::os::raw::c_char,
5297        arg1: __builtin_va_list,
5298    ) -> ::std::os::raw::c_int;
5299}
5300unsafe extern "C" {
5301    pub fn dprintf(
5302        arg1: ::std::os::raw::c_int,
5303        arg2: *const ::std::os::raw::c_char,
5304        ...
5305    ) -> ::std::os::raw::c_int;
5306}
5307unsafe extern "C" {
5308    pub fn vdprintf(
5309        arg1: ::std::os::raw::c_int,
5310        arg2: *const ::std::os::raw::c_char,
5311        arg3: va_list,
5312    ) -> ::std::os::raw::c_int;
5313}
5314unsafe extern "C" {
5315    pub fn getdelim(
5316        __linep: *mut *mut ::std::os::raw::c_char,
5317        __linecapp: *mut usize,
5318        __delimiter: ::std::os::raw::c_int,
5319        __stream: *mut FILE,
5320    ) -> isize;
5321}
5322unsafe extern "C" {
5323    pub fn getline(
5324        __linep: *mut *mut ::std::os::raw::c_char,
5325        __linecapp: *mut usize,
5326        __stream: *mut FILE,
5327    ) -> isize;
5328}
5329unsafe extern "C" {
5330    pub fn fmemopen(
5331        __buf: *mut ::std::os::raw::c_void,
5332        __size: usize,
5333        __mode: *const ::std::os::raw::c_char,
5334    ) -> *mut FILE;
5335}
5336unsafe extern "C" {
5337    pub fn open_memstream(
5338        __bufp: *mut *mut ::std::os::raw::c_char,
5339        __sizep: *mut usize,
5340    ) -> *mut FILE;
5341}
5342unsafe extern "C" {
5343    pub static sys_nerr: ::std::os::raw::c_int;
5344}
5345unsafe extern "C" {
5346    pub static sys_errlist: [*const ::std::os::raw::c_char; 0usize];
5347}
5348unsafe extern "C" {
5349    pub fn asprintf(
5350        arg1: *mut *mut ::std::os::raw::c_char,
5351        arg2: *const ::std::os::raw::c_char,
5352        ...
5353    ) -> ::std::os::raw::c_int;
5354}
5355unsafe extern "C" {
5356    pub fn ctermid_r(arg1: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
5357}
5358unsafe extern "C" {
5359    pub fn fgetln(arg1: *mut FILE, __len: *mut usize) -> *mut ::std::os::raw::c_char;
5360}
5361unsafe extern "C" {
5362    pub fn fmtcheck(
5363        arg1: *const ::std::os::raw::c_char,
5364        arg2: *const ::std::os::raw::c_char,
5365    ) -> *const ::std::os::raw::c_char;
5366}
5367unsafe extern "C" {
5368    pub fn fpurge(arg1: *mut FILE) -> ::std::os::raw::c_int;
5369}
5370unsafe extern "C" {
5371    pub fn setbuffer(
5372        arg1: *mut FILE,
5373        arg2: *mut ::std::os::raw::c_char,
5374        __size: ::std::os::raw::c_int,
5375    );
5376}
5377unsafe extern "C" {
5378    pub fn setlinebuf(arg1: *mut FILE) -> ::std::os::raw::c_int;
5379}
5380unsafe extern "C" {
5381    pub fn vasprintf(
5382        arg1: *mut *mut ::std::os::raw::c_char,
5383        arg2: *const ::std::os::raw::c_char,
5384        arg3: va_list,
5385    ) -> ::std::os::raw::c_int;
5386}
5387unsafe extern "C" {
5388    pub fn funopen(
5389        arg1: *const ::std::os::raw::c_void,
5390        arg2: ::std::option::Option<
5391            unsafe extern "C" fn(
5392                arg1: *mut ::std::os::raw::c_void,
5393                arg2: *mut ::std::os::raw::c_char,
5394                __n: ::std::os::raw::c_int,
5395            ) -> ::std::os::raw::c_int,
5396        >,
5397        arg3: ::std::option::Option<
5398            unsafe extern "C" fn(
5399                arg1: *mut ::std::os::raw::c_void,
5400                arg2: *const ::std::os::raw::c_char,
5401                __n: ::std::os::raw::c_int,
5402            ) -> ::std::os::raw::c_int,
5403        >,
5404        arg4: ::std::option::Option<
5405            unsafe extern "C" fn(
5406                arg1: *mut ::std::os::raw::c_void,
5407                arg2: fpos_t,
5408                arg3: ::std::os::raw::c_int,
5409            ) -> fpos_t,
5410        >,
5411        arg5: ::std::option::Option<
5412            unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int,
5413        >,
5414    ) -> *mut FILE;
5415}
5416unsafe extern "C" {
5417    pub fn __snprintf_chk(
5418        arg1: *mut ::std::os::raw::c_char,
5419        __maxlen: usize,
5420        arg2: ::std::os::raw::c_int,
5421        arg3: usize,
5422        arg4: *const ::std::os::raw::c_char,
5423        ...
5424    ) -> ::std::os::raw::c_int;
5425}
5426unsafe extern "C" {
5427    pub fn __vsnprintf_chk(
5428        arg1: *mut ::std::os::raw::c_char,
5429        __maxlen: usize,
5430        arg2: ::std::os::raw::c_int,
5431        arg3: usize,
5432        arg4: *const ::std::os::raw::c_char,
5433        arg5: va_list,
5434    ) -> ::std::os::raw::c_int;
5435}
5436unsafe extern "C" {
5437    pub fn __sprintf_chk(
5438        arg1: *mut ::std::os::raw::c_char,
5439        arg2: ::std::os::raw::c_int,
5440        arg3: usize,
5441        arg4: *const ::std::os::raw::c_char,
5442        ...
5443    ) -> ::std::os::raw::c_int;
5444}
5445unsafe extern "C" {
5446    pub fn __vsprintf_chk(
5447        arg1: *mut ::std::os::raw::c_char,
5448        arg2: ::std::os::raw::c_int,
5449        arg3: usize,
5450        arg4: *const ::std::os::raw::c_char,
5451        arg5: va_list,
5452    ) -> ::std::os::raw::c_int;
5453}
5454pub type igraph_int_t = i64;
5455pub type igraph_uint_t = u64;
5456pub type igraph_integer_t = igraph_int_t;
5457pub type igraph_real_t = f64;
5458pub type igraph_bool_t = bool;
5459unsafe extern "C" {
5460    pub fn igraph_real_printf(val: igraph_real_t) -> ::std::os::raw::c_int;
5461}
5462unsafe extern "C" {
5463    pub fn igraph_real_fprintf(file: *mut FILE, val: igraph_real_t) -> ::std::os::raw::c_int;
5464}
5465unsafe extern "C" {
5466    pub fn igraph_real_printf_aligned(
5467        width: ::std::os::raw::c_int,
5468        val: igraph_real_t,
5469    ) -> ::std::os::raw::c_int;
5470}
5471unsafe extern "C" {
5472    pub fn igraph_real_fprintf_aligned(
5473        file: *mut FILE,
5474        width: ::std::os::raw::c_int,
5475        val: igraph_real_t,
5476    ) -> ::std::os::raw::c_int;
5477}
5478unsafe extern "C" {
5479    pub fn igraph_real_snprintf(
5480        str_: *mut ::std::os::raw::c_char,
5481        size: usize,
5482        val: igraph_real_t,
5483    ) -> ::std::os::raw::c_int;
5484}
5485unsafe extern "C" {
5486    pub fn igraph_real_printf_precise(val: igraph_real_t) -> ::std::os::raw::c_int;
5487}
5488unsafe extern "C" {
5489    pub fn igraph_real_fprintf_precise(
5490        file: *mut FILE,
5491        val: igraph_real_t,
5492    ) -> ::std::os::raw::c_int;
5493}
5494unsafe extern "C" {
5495    pub fn igraph_real_snprintf_precise(
5496        str_: *mut ::std::os::raw::c_char,
5497        size: usize,
5498        val: igraph_real_t,
5499    ) -> ::std::os::raw::c_int;
5500}
5501#[repr(C)]
5502#[derive(Debug, Copy, Clone)]
5503pub struct igraph_rng_type_t {
5504    pub name: *const ::std::os::raw::c_char,
5505    pub bits: u8,
5506    pub init: ::std::option::Option<
5507        unsafe extern "C" fn(state: *mut *mut ::std::os::raw::c_void) -> igraph_error_t,
5508    >,
5509    pub destroy: ::std::option::Option<unsafe extern "C" fn(state: *mut ::std::os::raw::c_void)>,
5510    pub seed: ::std::option::Option<
5511        unsafe extern "C" fn(
5512            state: *mut ::std::os::raw::c_void,
5513            seed: igraph_uint_t,
5514        ) -> igraph_error_t,
5515    >,
5516    pub get: ::std::option::Option<
5517        unsafe extern "C" fn(state: *mut ::std::os::raw::c_void) -> igraph_uint_t,
5518    >,
5519    pub get_int: ::std::option::Option<
5520        unsafe extern "C" fn(
5521            state: *mut ::std::os::raw::c_void,
5522            l: igraph_int_t,
5523            h: igraph_int_t,
5524        ) -> igraph_int_t,
5525    >,
5526    pub get_real: ::std::option::Option<
5527        unsafe extern "C" fn(state: *mut ::std::os::raw::c_void) -> igraph_real_t,
5528    >,
5529    pub get_norm: ::std::option::Option<
5530        unsafe extern "C" fn(state: *mut ::std::os::raw::c_void) -> igraph_real_t,
5531    >,
5532    pub get_geom: ::std::option::Option<
5533        unsafe extern "C" fn(state: *mut ::std::os::raw::c_void, p: igraph_real_t) -> igraph_real_t,
5534    >,
5535    pub get_binom: ::std::option::Option<
5536        unsafe extern "C" fn(
5537            state: *mut ::std::os::raw::c_void,
5538            n: igraph_int_t,
5539            p: igraph_real_t,
5540        ) -> igraph_real_t,
5541    >,
5542    pub get_exp: ::std::option::Option<
5543        unsafe extern "C" fn(
5544            state: *mut ::std::os::raw::c_void,
5545            rate: igraph_real_t,
5546        ) -> igraph_real_t,
5547    >,
5548    pub get_gamma: ::std::option::Option<
5549        unsafe extern "C" fn(
5550            state: *mut ::std::os::raw::c_void,
5551            shape: igraph_real_t,
5552            scale: igraph_real_t,
5553        ) -> igraph_real_t,
5554    >,
5555    pub get_pois: ::std::option::Option<
5556        unsafe extern "C" fn(
5557            state: *mut ::std::os::raw::c_void,
5558            mu: igraph_real_t,
5559        ) -> igraph_real_t,
5560    >,
5561}
5562#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5563const _: () = {
5564    ["Size of igraph_rng_type_t"][::std::mem::size_of::<igraph_rng_type_t>() - 112usize];
5565    ["Alignment of igraph_rng_type_t"][::std::mem::align_of::<igraph_rng_type_t>() - 8usize];
5566    ["Offset of field: igraph_rng_type_t::name"]
5567        [::std::mem::offset_of!(igraph_rng_type_t, name) - 0usize];
5568    ["Offset of field: igraph_rng_type_t::bits"]
5569        [::std::mem::offset_of!(igraph_rng_type_t, bits) - 8usize];
5570    ["Offset of field: igraph_rng_type_t::init"]
5571        [::std::mem::offset_of!(igraph_rng_type_t, init) - 16usize];
5572    ["Offset of field: igraph_rng_type_t::destroy"]
5573        [::std::mem::offset_of!(igraph_rng_type_t, destroy) - 24usize];
5574    ["Offset of field: igraph_rng_type_t::seed"]
5575        [::std::mem::offset_of!(igraph_rng_type_t, seed) - 32usize];
5576    ["Offset of field: igraph_rng_type_t::get"]
5577        [::std::mem::offset_of!(igraph_rng_type_t, get) - 40usize];
5578    ["Offset of field: igraph_rng_type_t::get_int"]
5579        [::std::mem::offset_of!(igraph_rng_type_t, get_int) - 48usize];
5580    ["Offset of field: igraph_rng_type_t::get_real"]
5581        [::std::mem::offset_of!(igraph_rng_type_t, get_real) - 56usize];
5582    ["Offset of field: igraph_rng_type_t::get_norm"]
5583        [::std::mem::offset_of!(igraph_rng_type_t, get_norm) - 64usize];
5584    ["Offset of field: igraph_rng_type_t::get_geom"]
5585        [::std::mem::offset_of!(igraph_rng_type_t, get_geom) - 72usize];
5586    ["Offset of field: igraph_rng_type_t::get_binom"]
5587        [::std::mem::offset_of!(igraph_rng_type_t, get_binom) - 80usize];
5588    ["Offset of field: igraph_rng_type_t::get_exp"]
5589        [::std::mem::offset_of!(igraph_rng_type_t, get_exp) - 88usize];
5590    ["Offset of field: igraph_rng_type_t::get_gamma"]
5591        [::std::mem::offset_of!(igraph_rng_type_t, get_gamma) - 96usize];
5592    ["Offset of field: igraph_rng_type_t::get_pois"]
5593        [::std::mem::offset_of!(igraph_rng_type_t, get_pois) - 104usize];
5594};
5595#[repr(C)]
5596#[derive(Debug, Copy, Clone)]
5597pub struct igraph_rng_t {
5598    pub type_: *const igraph_rng_type_t,
5599    pub state: *mut ::std::os::raw::c_void,
5600    pub is_seeded: igraph_bool_t,
5601}
5602#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5603const _: () = {
5604    ["Size of igraph_rng_t"][::std::mem::size_of::<igraph_rng_t>() - 24usize];
5605    ["Alignment of igraph_rng_t"][::std::mem::align_of::<igraph_rng_t>() - 8usize];
5606    ["Offset of field: igraph_rng_t::type_"][::std::mem::offset_of!(igraph_rng_t, type_) - 0usize];
5607    ["Offset of field: igraph_rng_t::state"][::std::mem::offset_of!(igraph_rng_t, state) - 8usize];
5608    ["Offset of field: igraph_rng_t::is_seeded"]
5609        [::std::mem::offset_of!(igraph_rng_t, is_seeded) - 16usize];
5610};
5611unsafe extern "C" {
5612    pub fn igraph_rng_init(
5613        rng: *mut igraph_rng_t,
5614        type_: *const igraph_rng_type_t,
5615    ) -> igraph_error_t;
5616}
5617unsafe extern "C" {
5618    pub fn igraph_rng_destroy(rng: *mut igraph_rng_t);
5619}
5620unsafe extern "C" {
5621    pub fn igraph_rng_seed(rng: *mut igraph_rng_t, seed: igraph_uint_t) -> igraph_error_t;
5622}
5623unsafe extern "C" {
5624    pub fn igraph_rng_bits(rng: *const igraph_rng_t) -> igraph_int_t;
5625}
5626unsafe extern "C" {
5627    pub fn igraph_rng_max(rng: *const igraph_rng_t) -> igraph_uint_t;
5628}
5629unsafe extern "C" {
5630    pub fn igraph_rng_name(rng: *const igraph_rng_t) -> *const ::std::os::raw::c_char;
5631}
5632unsafe extern "C" {
5633    pub fn igraph_rng_get_bool(rng: *mut igraph_rng_t) -> igraph_bool_t;
5634}
5635unsafe extern "C" {
5636    pub fn igraph_rng_get_integer(
5637        rng: *mut igraph_rng_t,
5638        l: igraph_int_t,
5639        h: igraph_int_t,
5640    ) -> igraph_int_t;
5641}
5642unsafe extern "C" {
5643    pub fn igraph_rng_get_normal(
5644        rng: *mut igraph_rng_t,
5645        m: igraph_real_t,
5646        s: igraph_real_t,
5647    ) -> igraph_real_t;
5648}
5649unsafe extern "C" {
5650    pub fn igraph_rng_get_unif(
5651        rng: *mut igraph_rng_t,
5652        l: igraph_real_t,
5653        h: igraph_real_t,
5654    ) -> igraph_real_t;
5655}
5656unsafe extern "C" {
5657    pub fn igraph_rng_get_unif01(rng: *mut igraph_rng_t) -> igraph_real_t;
5658}
5659unsafe extern "C" {
5660    pub fn igraph_rng_get_geom(rng: *mut igraph_rng_t, p: igraph_real_t) -> igraph_real_t;
5661}
5662unsafe extern "C" {
5663    pub fn igraph_rng_get_binom(
5664        rng: *mut igraph_rng_t,
5665        n: igraph_int_t,
5666        p: igraph_real_t,
5667    ) -> igraph_real_t;
5668}
5669unsafe extern "C" {
5670    pub fn igraph_rng_get_exp(rng: *mut igraph_rng_t, rate: igraph_real_t) -> igraph_real_t;
5671}
5672unsafe extern "C" {
5673    pub fn igraph_rng_get_gamma(
5674        rng: *mut igraph_rng_t,
5675        shape: igraph_real_t,
5676        scale: igraph_real_t,
5677    ) -> igraph_real_t;
5678}
5679unsafe extern "C" {
5680    pub fn igraph_rng_get_pois(rng: *mut igraph_rng_t, rate: igraph_real_t) -> igraph_real_t;
5681}
5682unsafe extern "C" {
5683    pub static igraph_rngtype_glibc2: igraph_rng_type_t;
5684}
5685unsafe extern "C" {
5686    pub static igraph_rngtype_mt19937: igraph_rng_type_t;
5687}
5688unsafe extern "C" {
5689    pub static igraph_rngtype_pcg32: igraph_rng_type_t;
5690}
5691unsafe extern "C" {
5692    pub static igraph_rngtype_pcg64: igraph_rng_type_t;
5693}
5694unsafe extern "C" {
5695    pub fn igraph_rng_default() -> *mut igraph_rng_t;
5696}
5697unsafe extern "C" {
5698    pub fn igraph_rng_set_default(rng: *mut igraph_rng_t) -> *mut igraph_rng_t;
5699}
5700#[doc = " \\typedef igraph_progress_handler_t\n \\brief Type of progress handler functions\n\n This is the type of the igraph progress handler functions.\n There is currently one such predefined function,\n \\ref igraph_progress_handler_stderr(), but the user can\n write and set up more sophisticated ones.\n \\param message A string describing the function or algorithm\n     that is reporting the progress. Current igraph functions\n     always use the name \\p message argument if reporting from the\n     same function.\n \\param percent Numeric, the percentage that was completed by the\n     algorithm or function.\n \\param data User-defined data. Current igraph functions that\n     report progress pass a null pointer here. Users can\n     write their own progress handlers and functions with progress\n     reporting, and then pass some meaningfull context here.\n \\return If the return value of the progress handler is not\n     \\c IGRAPH_SUCCESS, then \\ref igraph_progress() returns the\n     error code from the progress handler intact. The \\ref IGRAPH_PROGRESS()\n     macro also frees all allocated memory."]
5701pub type igraph_progress_handler_t = ::std::option::Option<
5702    unsafe extern "C" fn(
5703        message: *const ::std::os::raw::c_char,
5704        percent: igraph_real_t,
5705        data: *mut ::std::os::raw::c_void,
5706    ) -> igraph_error_t,
5707>;
5708unsafe extern "C" {
5709    pub fn igraph_progress_handler_stderr(
5710        message: *const ::std::os::raw::c_char,
5711        percent: igraph_real_t,
5712        data: *mut ::std::os::raw::c_void,
5713    ) -> igraph_error_t;
5714}
5715unsafe extern "C" {
5716    pub fn igraph_set_progress_handler(
5717        new_handler: igraph_progress_handler_t,
5718    ) -> igraph_progress_handler_t;
5719}
5720unsafe extern "C" {
5721    pub fn igraph_progress(
5722        message: *const ::std::os::raw::c_char,
5723        percent: igraph_real_t,
5724        data: *mut ::std::os::raw::c_void,
5725    ) -> igraph_error_t;
5726}
5727unsafe extern "C" {
5728    pub fn igraph_progressf(
5729        message: *const ::std::os::raw::c_char,
5730        percent: igraph_real_t,
5731        data: *mut ::std::os::raw::c_void,
5732        ...
5733    ) -> igraph_error_t;
5734}
5735unsafe extern "C" {
5736    pub fn igraph_setup() -> igraph_error_t;
5737}
5738#[doc = " \\typedef igraph_status_handler_t\n\n The type of the igraph status handler functions\n \\param message The status message.\n \\param data Additional context, with user-defined semantics.\n        Existing igraph functions pass a null pointer here.\n \\return Error code. The current calculation will abort if you return anything\n         else than \\c IGRAPH_SUCCESS here."]
5739pub type igraph_status_handler_t = ::std::option::Option<
5740    unsafe extern "C" fn(
5741        message: *const ::std::os::raw::c_char,
5742        data: *mut ::std::os::raw::c_void,
5743    ) -> igraph_error_t,
5744>;
5745unsafe extern "C" {
5746    pub fn igraph_status_handler_stderr(
5747        message: *const ::std::os::raw::c_char,
5748        data: *mut ::std::os::raw::c_void,
5749    ) -> igraph_error_t;
5750}
5751unsafe extern "C" {
5752    pub fn igraph_set_status_handler(
5753        new_handler: igraph_status_handler_t,
5754    ) -> igraph_status_handler_t;
5755}
5756unsafe extern "C" {
5757    pub fn igraph_status(
5758        message: *const ::std::os::raw::c_char,
5759        data: *mut ::std::os::raw::c_void,
5760    ) -> igraph_error_t;
5761}
5762unsafe extern "C" {
5763    pub fn igraph_statusf(
5764        message: *const ::std::os::raw::c_char,
5765        data: *mut ::std::os::raw::c_void,
5766        ...
5767    ) -> igraph_error_t;
5768}
5769#[repr(C)]
5770#[derive(Debug, Copy, Clone)]
5771pub struct igraph_complex_t {
5772    pub dat: [igraph_real_t; 2usize],
5773}
5774#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5775const _: () = {
5776    ["Size of igraph_complex_t"][::std::mem::size_of::<igraph_complex_t>() - 16usize];
5777    ["Alignment of igraph_complex_t"][::std::mem::align_of::<igraph_complex_t>() - 8usize];
5778    ["Offset of field: igraph_complex_t::dat"]
5779        [::std::mem::offset_of!(igraph_complex_t, dat) - 0usize];
5780};
5781unsafe extern "C" {
5782    pub fn igraph_complex(x: igraph_real_t, y: igraph_real_t) -> igraph_complex_t;
5783}
5784unsafe extern "C" {
5785    pub fn igraph_complex_polar(r: igraph_real_t, theta: igraph_real_t) -> igraph_complex_t;
5786}
5787unsafe extern "C" {
5788    pub fn igraph_complex_almost_equals(
5789        z1: igraph_complex_t,
5790        z2: igraph_complex_t,
5791        eps: igraph_real_t,
5792    ) -> igraph_bool_t;
5793}
5794unsafe extern "C" {
5795    pub fn igraph_complex_arg(z: igraph_complex_t) -> igraph_real_t;
5796}
5797unsafe extern "C" {
5798    pub fn igraph_complex_abs(z: igraph_complex_t) -> igraph_real_t;
5799}
5800unsafe extern "C" {
5801    pub fn igraph_complex_logabs(z: igraph_complex_t) -> igraph_real_t;
5802}
5803unsafe extern "C" {
5804    pub fn igraph_complex_add(z1: igraph_complex_t, z2: igraph_complex_t) -> igraph_complex_t;
5805}
5806unsafe extern "C" {
5807    pub fn igraph_complex_sub(z1: igraph_complex_t, z2: igraph_complex_t) -> igraph_complex_t;
5808}
5809unsafe extern "C" {
5810    pub fn igraph_complex_mul(z1: igraph_complex_t, z2: igraph_complex_t) -> igraph_complex_t;
5811}
5812unsafe extern "C" {
5813    pub fn igraph_complex_div(z1: igraph_complex_t, z2: igraph_complex_t) -> igraph_complex_t;
5814}
5815unsafe extern "C" {
5816    pub fn igraph_complex_add_real(z: igraph_complex_t, x: igraph_real_t) -> igraph_complex_t;
5817}
5818unsafe extern "C" {
5819    pub fn igraph_complex_add_imag(z: igraph_complex_t, y: igraph_real_t) -> igraph_complex_t;
5820}
5821unsafe extern "C" {
5822    pub fn igraph_complex_sub_real(z: igraph_complex_t, x: igraph_real_t) -> igraph_complex_t;
5823}
5824unsafe extern "C" {
5825    pub fn igraph_complex_sub_imag(z: igraph_complex_t, y: igraph_real_t) -> igraph_complex_t;
5826}
5827unsafe extern "C" {
5828    pub fn igraph_complex_mul_real(z: igraph_complex_t, x: igraph_real_t) -> igraph_complex_t;
5829}
5830unsafe extern "C" {
5831    pub fn igraph_complex_mul_imag(z: igraph_complex_t, y: igraph_real_t) -> igraph_complex_t;
5832}
5833unsafe extern "C" {
5834    pub fn igraph_complex_div_real(z: igraph_complex_t, x: igraph_real_t) -> igraph_complex_t;
5835}
5836unsafe extern "C" {
5837    pub fn igraph_complex_div_imag(z: igraph_complex_t, y: igraph_real_t) -> igraph_complex_t;
5838}
5839unsafe extern "C" {
5840    pub fn igraph_complex_conj(z: igraph_complex_t) -> igraph_complex_t;
5841}
5842unsafe extern "C" {
5843    pub fn igraph_complex_neg(z: igraph_complex_t) -> igraph_complex_t;
5844}
5845unsafe extern "C" {
5846    pub fn igraph_complex_inv(z: igraph_complex_t) -> igraph_complex_t;
5847}
5848unsafe extern "C" {
5849    pub fn igraph_complex_sqrt(z: igraph_complex_t) -> igraph_complex_t;
5850}
5851unsafe extern "C" {
5852    pub fn igraph_complex_sqrt_real(x: igraph_real_t) -> igraph_complex_t;
5853}
5854unsafe extern "C" {
5855    pub fn igraph_complex_exp(z: igraph_complex_t) -> igraph_complex_t;
5856}
5857unsafe extern "C" {
5858    pub fn igraph_complex_pow(z1: igraph_complex_t, z2: igraph_complex_t) -> igraph_complex_t;
5859}
5860unsafe extern "C" {
5861    pub fn igraph_complex_pow_real(z: igraph_complex_t, x: igraph_real_t) -> igraph_complex_t;
5862}
5863unsafe extern "C" {
5864    pub fn igraph_complex_log(z: igraph_complex_t) -> igraph_complex_t;
5865}
5866unsafe extern "C" {
5867    pub fn igraph_complex_log10(z: igraph_complex_t) -> igraph_complex_t;
5868}
5869unsafe extern "C" {
5870    pub fn igraph_complex_log_b(z: igraph_complex_t, b: igraph_complex_t) -> igraph_complex_t;
5871}
5872unsafe extern "C" {
5873    pub fn igraph_complex_sin(z: igraph_complex_t) -> igraph_complex_t;
5874}
5875unsafe extern "C" {
5876    pub fn igraph_complex_cos(z: igraph_complex_t) -> igraph_complex_t;
5877}
5878unsafe extern "C" {
5879    pub fn igraph_complex_tan(z: igraph_complex_t) -> igraph_complex_t;
5880}
5881unsafe extern "C" {
5882    pub fn igraph_complex_sec(z: igraph_complex_t) -> igraph_complex_t;
5883}
5884unsafe extern "C" {
5885    pub fn igraph_complex_csc(z: igraph_complex_t) -> igraph_complex_t;
5886}
5887unsafe extern "C" {
5888    pub fn igraph_complex_cot(z: igraph_complex_t) -> igraph_complex_t;
5889}
5890unsafe extern "C" {
5891    pub fn igraph_complex_printf(val: igraph_complex_t) -> ::std::os::raw::c_int;
5892}
5893unsafe extern "C" {
5894    pub fn igraph_complex_fprintf(file: *mut FILE, val: igraph_complex_t) -> ::std::os::raw::c_int;
5895}
5896unsafe extern "C" {
5897    pub fn igraph_complex_printf_aligned(
5898        width: ::std::os::raw::c_int,
5899        val: igraph_complex_t,
5900    ) -> ::std::os::raw::c_int;
5901}
5902unsafe extern "C" {
5903    pub fn igraph_complex_fprintf_aligned(
5904        file: *mut FILE,
5905        width: ::std::os::raw::c_int,
5906        val: igraph_complex_t,
5907    ) -> ::std::os::raw::c_int;
5908}
5909unsafe extern "C" {
5910    pub fn igraph_complex_snprintf(
5911        str_: *mut ::std::os::raw::c_char,
5912        size: usize,
5913        val: igraph_complex_t,
5914    ) -> ::std::os::raw::c_int;
5915}
5916pub const IGRAPH_UNDIRECTED: _bindgen_ty_1 = 0;
5917pub const IGRAPH_DIRECTED: _bindgen_ty_1 = 1;
5918pub type _bindgen_ty_1 = ::std::os::raw::c_uint;
5919pub const IGRAPH_NO_MULTIPLE: _bindgen_ty_2 = 0;
5920pub const IGRAPH_MULTIPLE: _bindgen_ty_2 = 1;
5921pub type _bindgen_ty_2 = ::std::os::raw::c_uint;
5922pub const IGRAPH_EDGE_UNLABELED: _bindgen_ty_3 = 0;
5923pub const IGRAPH_EDGE_LABELED: _bindgen_ty_3 = 1;
5924pub type _bindgen_ty_3 = ::std::os::raw::c_uint;
5925pub const igraph_loops_t_IGRAPH_NO_LOOPS: igraph_loops_t = 0;
5926pub const igraph_loops_t_IGRAPH_LOOPS_TWICE: igraph_loops_t = 1;
5927pub const igraph_loops_t_IGRAPH_LOOPS_ONCE: igraph_loops_t = 2;
5928pub const igraph_loops_t_IGRAPH_LOOPS: igraph_loops_t = 1;
5929#[doc = " \\typedef igraph_loops_t\n \\brief How to interpret self-loops in undirected graphs?\n\n Controls the interpretation of self-loops in undirected graphs, typically\n in the context of adjacency matrices or degrees.\n\n </para><para>These constants are also used to improve readability in\n boolean contexts, with \\c IGRAPH_NO_LOOPS, equivalent to \\c false,\n signifying that loops should be ignored and \\c IGRAPH_LOOPS, equivalent\n to \\c true, that loops should be considered.\n\n \\enumval IGRAPH_NO_LOOPS Self-loops are ignored.\n \\enumval IGRAPH_LOOPS_TWICE Self-loops are considered, and counted twice\n    in undirected graphs. For example, a self-loop contributes two to the\n    degree of a vertex and to diagonal entries of adjacency matrices. This\n    is the standard interpretation in graph theory, thus \\c IGRAPH_LOOPS\n    serves as an alias for this option.\n \\enumval IGRAPH_LOOPS_ONCE Self-loops are considered, and counted only\n    once in undirected graphs."]
5930pub type igraph_loops_t = ::std::os::raw::c_uint;
5931pub const igraph_order_t_IGRAPH_ASCENDING: igraph_order_t = 0;
5932pub const igraph_order_t_IGRAPH_DESCENDING: igraph_order_t = 1;
5933pub type igraph_order_t = ::std::os::raw::c_uint;
5934pub const igraph_neimode_t_IGRAPH_OUT: igraph_neimode_t = 1;
5935pub const igraph_neimode_t_IGRAPH_IN: igraph_neimode_t = 2;
5936pub const igraph_neimode_t_IGRAPH_ALL: igraph_neimode_t = 3;
5937#[doc = " \\typedef igraph_neimode_t\n \\brief How to interpret edge directions in directed graphs?\n\n These \"neighbor mode\" constants are typically used to specify the treatment\n of edge directions in directed graphs, or which vertices to consider as\n adjacent to (i.e. neighbor of) a vertex. It is typically ignored in undirected\n graphs.\n\n \\enumval IGRAPH_OUT Follow edge directions in directed graphs, or consider\n    out-neighbors of vertices.\n \\enumval IGRAPH_IN Follow edges in the reverse direction in directed graphs,\n    or consider in-neighbors of vertices.\n \\enumval IGRAPH_ALL Ignore edge directions in directed graphs, or consider\n    all neighbours (both out and in-neighbors) of vertices."]
5938pub type igraph_neimode_t = ::std::os::raw::c_uint;
5939pub const igraph_connectedness_t_IGRAPH_WEAK: igraph_connectedness_t = 1;
5940pub const igraph_connectedness_t_IGRAPH_STRONG: igraph_connectedness_t = 2;
5941pub type igraph_connectedness_t = ::std::os::raw::c_uint;
5942pub const igraph_reciprocity_t_IGRAPH_RECIPROCITY_DEFAULT: igraph_reciprocity_t = 0;
5943pub const igraph_reciprocity_t_IGRAPH_RECIPROCITY_RATIO: igraph_reciprocity_t = 1;
5944pub type igraph_reciprocity_t = ::std::os::raw::c_uint;
5945pub const igraph_adjacency_t_IGRAPH_ADJ_DIRECTED: igraph_adjacency_t = 0;
5946pub const igraph_adjacency_t_IGRAPH_ADJ_UNDIRECTED: igraph_adjacency_t = 1;
5947pub const igraph_adjacency_t_IGRAPH_ADJ_UPPER: igraph_adjacency_t = 2;
5948pub const igraph_adjacency_t_IGRAPH_ADJ_LOWER: igraph_adjacency_t = 3;
5949pub const igraph_adjacency_t_IGRAPH_ADJ_MIN: igraph_adjacency_t = 4;
5950pub const igraph_adjacency_t_IGRAPH_ADJ_PLUS: igraph_adjacency_t = 5;
5951pub const igraph_adjacency_t_IGRAPH_ADJ_MAX: igraph_adjacency_t = 6;
5952pub type igraph_adjacency_t = ::std::os::raw::c_uint;
5953pub const igraph_star_mode_t_IGRAPH_STAR_OUT: igraph_star_mode_t = 0;
5954pub const igraph_star_mode_t_IGRAPH_STAR_IN: igraph_star_mode_t = 1;
5955pub const igraph_star_mode_t_IGRAPH_STAR_UNDIRECTED: igraph_star_mode_t = 2;
5956pub const igraph_star_mode_t_IGRAPH_STAR_MUTUAL: igraph_star_mode_t = 3;
5957pub type igraph_star_mode_t = ::std::os::raw::c_uint;
5958pub const igraph_wheel_mode_t_IGRAPH_WHEEL_OUT: igraph_wheel_mode_t = 0;
5959pub const igraph_wheel_mode_t_IGRAPH_WHEEL_IN: igraph_wheel_mode_t = 1;
5960pub const igraph_wheel_mode_t_IGRAPH_WHEEL_UNDIRECTED: igraph_wheel_mode_t = 2;
5961pub const igraph_wheel_mode_t_IGRAPH_WHEEL_MUTUAL: igraph_wheel_mode_t = 3;
5962pub type igraph_wheel_mode_t = ::std::os::raw::c_uint;
5963pub const igraph_tree_mode_t_IGRAPH_TREE_OUT: igraph_tree_mode_t = 0;
5964pub const igraph_tree_mode_t_IGRAPH_TREE_IN: igraph_tree_mode_t = 1;
5965pub const igraph_tree_mode_t_IGRAPH_TREE_UNDIRECTED: igraph_tree_mode_t = 2;
5966pub type igraph_tree_mode_t = ::std::os::raw::c_uint;
5967pub const igraph_get_adjacency_t_IGRAPH_GET_ADJACENCY_UPPER: igraph_get_adjacency_t = 0;
5968pub const igraph_get_adjacency_t_IGRAPH_GET_ADJACENCY_LOWER: igraph_get_adjacency_t = 1;
5969pub const igraph_get_adjacency_t_IGRAPH_GET_ADJACENCY_BOTH: igraph_get_adjacency_t = 2;
5970pub type igraph_get_adjacency_t = ::std::os::raw::c_uint;
5971pub const igraph_degseq_t_IGRAPH_DEGSEQ_CONFIGURATION: igraph_degseq_t = 0;
5972pub const igraph_degseq_t_IGRAPH_DEGSEQ_VL: igraph_degseq_t = 1;
5973pub const igraph_degseq_t_IGRAPH_DEGSEQ_FAST_HEUR_SIMPLE: igraph_degseq_t = 2;
5974pub const igraph_degseq_t_IGRAPH_DEGSEQ_CONFIGURATION_SIMPLE: igraph_degseq_t = 3;
5975pub const igraph_degseq_t_IGRAPH_DEGSEQ_EDGE_SWITCHING_SIMPLE: igraph_degseq_t = 4;
5976pub type igraph_degseq_t = ::std::os::raw::c_uint;
5977pub const igraph_realize_degseq_t_IGRAPH_REALIZE_DEGSEQ_SMALLEST: igraph_realize_degseq_t = 0;
5978pub const igraph_realize_degseq_t_IGRAPH_REALIZE_DEGSEQ_LARGEST: igraph_realize_degseq_t = 1;
5979pub const igraph_realize_degseq_t_IGRAPH_REALIZE_DEGSEQ_INDEX: igraph_realize_degseq_t = 2;
5980pub type igraph_realize_degseq_t = ::std::os::raw::c_uint;
5981pub const igraph_random_tree_t_IGRAPH_RANDOM_TREE_PRUFER: igraph_random_tree_t = 0;
5982pub const igraph_random_tree_t_IGRAPH_RANDOM_TREE_LERW: igraph_random_tree_t = 1;
5983pub type igraph_random_tree_t = ::std::os::raw::c_uint;
5984pub const igraph_edgeorder_type_t_IGRAPH_EDGEORDER_ID: igraph_edgeorder_type_t = 0;
5985pub const igraph_edgeorder_type_t_IGRAPH_EDGEORDER_FROM: igraph_edgeorder_type_t = 1;
5986pub const igraph_edgeorder_type_t_IGRAPH_EDGEORDER_TO: igraph_edgeorder_type_t = 2;
5987pub type igraph_edgeorder_type_t = ::std::os::raw::c_uint;
5988pub const igraph_to_directed_t_IGRAPH_TO_DIRECTED_ARBITRARY: igraph_to_directed_t = 0;
5989pub const igraph_to_directed_t_IGRAPH_TO_DIRECTED_MUTUAL: igraph_to_directed_t = 1;
5990pub const igraph_to_directed_t_IGRAPH_TO_DIRECTED_RANDOM: igraph_to_directed_t = 2;
5991pub const igraph_to_directed_t_IGRAPH_TO_DIRECTED_ACYCLIC: igraph_to_directed_t = 3;
5992pub type igraph_to_directed_t = ::std::os::raw::c_uint;
5993pub const igraph_to_undirected_t_IGRAPH_TO_UNDIRECTED_EACH: igraph_to_undirected_t = 0;
5994pub const igraph_to_undirected_t_IGRAPH_TO_UNDIRECTED_COLLAPSE: igraph_to_undirected_t = 1;
5995pub const igraph_to_undirected_t_IGRAPH_TO_UNDIRECTED_MUTUAL: igraph_to_undirected_t = 2;
5996pub type igraph_to_undirected_t = ::std::os::raw::c_uint;
5997pub const igraph_vconn_nei_t_IGRAPH_VCONN_NEI_ERROR: igraph_vconn_nei_t = 0;
5998pub const igraph_vconn_nei_t_IGRAPH_VCONN_NEI_NUMBER_OF_NODES: igraph_vconn_nei_t = 1;
5999pub const igraph_vconn_nei_t_IGRAPH_VCONN_NEI_IGNORE: igraph_vconn_nei_t = 2;
6000pub const igraph_vconn_nei_t_IGRAPH_VCONN_NEI_NEGATIVE: igraph_vconn_nei_t = 3;
6001pub type igraph_vconn_nei_t = ::std::os::raw::c_uint;
6002pub const igraph_spincomm_update_t_IGRAPH_SPINCOMM_UPDATE_SIMPLE: igraph_spincomm_update_t = 0;
6003pub const igraph_spincomm_update_t_IGRAPH_SPINCOMM_UPDATE_CONFIG: igraph_spincomm_update_t = 1;
6004pub type igraph_spincomm_update_t = ::std::os::raw::c_uint;
6005pub const igraph_transitivity_mode_t_IGRAPH_TRANSITIVITY_NAN: igraph_transitivity_mode_t = 0;
6006pub const igraph_transitivity_mode_t_IGRAPH_TRANSITIVITY_ZERO: igraph_transitivity_mode_t = 1;
6007pub type igraph_transitivity_mode_t = ::std::os::raw::c_uint;
6008pub const igraph_spinglass_implementation_t_IGRAPH_SPINCOMM_IMP_ORIG:
6009    igraph_spinglass_implementation_t = 0;
6010pub const igraph_spinglass_implementation_t_IGRAPH_SPINCOMM_IMP_NEG:
6011    igraph_spinglass_implementation_t = 1;
6012pub type igraph_spinglass_implementation_t = ::std::os::raw::c_uint;
6013pub const igraph_community_comparison_t_IGRAPH_COMMCMP_VI: igraph_community_comparison_t = 0;
6014pub const igraph_community_comparison_t_IGRAPH_COMMCMP_NMI: igraph_community_comparison_t = 1;
6015pub const igraph_community_comparison_t_IGRAPH_COMMCMP_SPLIT_JOIN: igraph_community_comparison_t =
6016    2;
6017pub const igraph_community_comparison_t_IGRAPH_COMMCMP_RAND: igraph_community_comparison_t = 3;
6018pub const igraph_community_comparison_t_IGRAPH_COMMCMP_ADJUSTED_RAND:
6019    igraph_community_comparison_t = 4;
6020pub type igraph_community_comparison_t = ::std::os::raw::c_uint;
6021pub const igraph_add_weights_t_IGRAPH_ADD_WEIGHTS_NO: igraph_add_weights_t = 0;
6022pub const igraph_add_weights_t_IGRAPH_ADD_WEIGHTS_YES: igraph_add_weights_t = 1;
6023pub const igraph_add_weights_t_IGRAPH_ADD_WEIGHTS_IF_PRESENT: igraph_add_weights_t = 2;
6024pub type igraph_add_weights_t = ::std::os::raw::c_uint;
6025pub const igraph_barabasi_algorithm_t_IGRAPH_BARABASI_BAG: igraph_barabasi_algorithm_t = 0;
6026pub const igraph_barabasi_algorithm_t_IGRAPH_BARABASI_PSUMTREE: igraph_barabasi_algorithm_t = 1;
6027pub const igraph_barabasi_algorithm_t_IGRAPH_BARABASI_PSUMTREE_MULTIPLE:
6028    igraph_barabasi_algorithm_t = 2;
6029pub type igraph_barabasi_algorithm_t = ::std::os::raw::c_uint;
6030pub const igraph_fas_algorithm_t_IGRAPH_FAS_EXACT_IP: igraph_fas_algorithm_t = 0;
6031pub const igraph_fas_algorithm_t_IGRAPH_FAS_APPROX_EADES: igraph_fas_algorithm_t = 1;
6032pub const igraph_fas_algorithm_t_IGRAPH_FAS_EXACT_IP_CG: igraph_fas_algorithm_t = 2;
6033pub const igraph_fas_algorithm_t_IGRAPH_FAS_EXACT_IP_TI: igraph_fas_algorithm_t = 3;
6034pub type igraph_fas_algorithm_t = ::std::os::raw::c_uint;
6035pub const igraph_fvs_algorithm_t_IGRAPH_FVS_EXACT_IP: igraph_fvs_algorithm_t = 0;
6036pub type igraph_fvs_algorithm_t = ::std::os::raw::c_uint;
6037pub const igraph_subgraph_implementation_t_IGRAPH_SUBGRAPH_AUTO: igraph_subgraph_implementation_t =
6038    0;
6039pub const igraph_subgraph_implementation_t_IGRAPH_SUBGRAPH_COPY_AND_DELETE:
6040    igraph_subgraph_implementation_t = 1;
6041pub const igraph_subgraph_implementation_t_IGRAPH_SUBGRAPH_CREATE_FROM_SCRATCH:
6042    igraph_subgraph_implementation_t = 2;
6043pub type igraph_subgraph_implementation_t = ::std::os::raw::c_uint;
6044pub const igraph_layout_grid_t_IGRAPH_LAYOUT_GRID: igraph_layout_grid_t = 0;
6045pub const igraph_layout_grid_t_IGRAPH_LAYOUT_NOGRID: igraph_layout_grid_t = 1;
6046pub const igraph_layout_grid_t_IGRAPH_LAYOUT_AUTOGRID: igraph_layout_grid_t = 2;
6047pub type igraph_layout_grid_t = ::std::os::raw::c_uint;
6048pub const igraph_random_walk_stuck_t_IGRAPH_RANDOM_WALK_STUCK_ERROR: igraph_random_walk_stuck_t = 0;
6049pub const igraph_random_walk_stuck_t_IGRAPH_RANDOM_WALK_STUCK_RETURN: igraph_random_walk_stuck_t =
6050    1;
6051pub type igraph_random_walk_stuck_t = ::std::os::raw::c_uint;
6052pub const igraph_voronoi_tiebreaker_t_IGRAPH_VORONOI_FIRST: igraph_voronoi_tiebreaker_t = 0;
6053pub const igraph_voronoi_tiebreaker_t_IGRAPH_VORONOI_LAST: igraph_voronoi_tiebreaker_t = 1;
6054pub const igraph_voronoi_tiebreaker_t_IGRAPH_VORONOI_RANDOM: igraph_voronoi_tiebreaker_t = 2;
6055pub type igraph_voronoi_tiebreaker_t = ::std::os::raw::c_uint;
6056pub const igraph_chung_lu_t_IGRAPH_CHUNG_LU_ORIGINAL: igraph_chung_lu_t = 0;
6057pub const igraph_chung_lu_t_IGRAPH_CHUNG_LU_MAXENT: igraph_chung_lu_t = 1;
6058pub const igraph_chung_lu_t_IGRAPH_CHUNG_LU_NR: igraph_chung_lu_t = 2;
6059pub type igraph_chung_lu_t = ::std::os::raw::c_uint;
6060pub const igraph_matrix_storage_t_IGRAPH_ROW_MAJOR: igraph_matrix_storage_t = 0;
6061pub const igraph_matrix_storage_t_IGRAPH_COLUMN_MAJOR: igraph_matrix_storage_t = 1;
6062pub type igraph_matrix_storage_t = ::std::os::raw::c_uint;
6063pub const igraph_mst_algorithm_t_IGRAPH_MST_AUTOMATIC: igraph_mst_algorithm_t = 0;
6064pub const igraph_mst_algorithm_t_IGRAPH_MST_UNWEIGHTED: igraph_mst_algorithm_t = 1;
6065pub const igraph_mst_algorithm_t_IGRAPH_MST_PRIM: igraph_mst_algorithm_t = 2;
6066pub const igraph_mst_algorithm_t_IGRAPH_MST_KRUSKAL: igraph_mst_algorithm_t = 3;
6067pub type igraph_mst_algorithm_t = ::std::os::raw::c_uint;
6068pub const igraph_product_t_IGRAPH_PRODUCT_CARTESIAN: igraph_product_t = 0;
6069pub const igraph_product_t_IGRAPH_PRODUCT_LEXICOGRAPHIC: igraph_product_t = 1;
6070pub const igraph_product_t_IGRAPH_PRODUCT_STRONG: igraph_product_t = 2;
6071pub const igraph_product_t_IGRAPH_PRODUCT_TENSOR: igraph_product_t = 3;
6072pub const igraph_product_t_IGRAPH_PRODUCT_MODULAR: igraph_product_t = 4;
6073pub type igraph_product_t = ::std::os::raw::c_uint;
6074pub const igraph_lpa_variant_t_IGRAPH_LPA_DOMINANCE: igraph_lpa_variant_t = 0;
6075pub const igraph_lpa_variant_t_IGRAPH_LPA_RETENTION: igraph_lpa_variant_t = 1;
6076pub const igraph_lpa_variant_t_IGRAPH_LPA_FAST: igraph_lpa_variant_t = 2;
6077#[doc = " \\typedef igraph_lpa_variant_t\n \\brief Label propagation algorithm variants of implementation\n\n Variants to run the label propagation algorithm.\n \\enumval IGRAPH_LPA_DOMINANCE Check for dominance of all nodes after each iteration\n \\enumval IGRAPH_LPA_RETENTION Keep current label if among dominant labels, only check if labels changed\n \\enumval IGRAPH_LPA_FAST Sample from dominant labels, only check neighbors"]
6078pub type igraph_lpa_variant_t = ::std::os::raw::c_uint;
6079#[doc = " Vector, dealing with arrays efficiently.\n \\ingroup types"]
6080#[repr(C)]
6081#[derive(Debug, Copy, Clone)]
6082pub struct igraph_vector_t {
6083    pub stor_begin: *mut igraph_real_t,
6084    pub stor_end: *mut igraph_real_t,
6085    pub end: *mut igraph_real_t,
6086}
6087#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6088const _: () = {
6089    ["Size of igraph_vector_t"][::std::mem::size_of::<igraph_vector_t>() - 24usize];
6090    ["Alignment of igraph_vector_t"][::std::mem::align_of::<igraph_vector_t>() - 8usize];
6091    ["Offset of field: igraph_vector_t::stor_begin"]
6092        [::std::mem::offset_of!(igraph_vector_t, stor_begin) - 0usize];
6093    ["Offset of field: igraph_vector_t::stor_end"]
6094        [::std::mem::offset_of!(igraph_vector_t, stor_end) - 8usize];
6095    ["Offset of field: igraph_vector_t::end"]
6096        [::std::mem::offset_of!(igraph_vector_t, end) - 16usize];
6097};
6098#[doc = " Vector, dealing with arrays efficiently.\n \\ingroup types"]
6099#[repr(C)]
6100#[derive(Debug, Copy, Clone)]
6101pub struct igraph_vector_char_t {
6102    pub stor_begin: *mut ::std::os::raw::c_char,
6103    pub stor_end: *mut ::std::os::raw::c_char,
6104    pub end: *mut ::std::os::raw::c_char,
6105}
6106#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6107const _: () = {
6108    ["Size of igraph_vector_char_t"][::std::mem::size_of::<igraph_vector_char_t>() - 24usize];
6109    ["Alignment of igraph_vector_char_t"][::std::mem::align_of::<igraph_vector_char_t>() - 8usize];
6110    ["Offset of field: igraph_vector_char_t::stor_begin"]
6111        [::std::mem::offset_of!(igraph_vector_char_t, stor_begin) - 0usize];
6112    ["Offset of field: igraph_vector_char_t::stor_end"]
6113        [::std::mem::offset_of!(igraph_vector_char_t, stor_end) - 8usize];
6114    ["Offset of field: igraph_vector_char_t::end"]
6115        [::std::mem::offset_of!(igraph_vector_char_t, end) - 16usize];
6116};
6117#[doc = " Vector, dealing with arrays efficiently.\n \\ingroup types"]
6118#[repr(C)]
6119#[derive(Debug, Copy, Clone)]
6120pub struct igraph_vector_bool_t {
6121    pub stor_begin: *mut igraph_bool_t,
6122    pub stor_end: *mut igraph_bool_t,
6123    pub end: *mut igraph_bool_t,
6124}
6125#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6126const _: () = {
6127    ["Size of igraph_vector_bool_t"][::std::mem::size_of::<igraph_vector_bool_t>() - 24usize];
6128    ["Alignment of igraph_vector_bool_t"][::std::mem::align_of::<igraph_vector_bool_t>() - 8usize];
6129    ["Offset of field: igraph_vector_bool_t::stor_begin"]
6130        [::std::mem::offset_of!(igraph_vector_bool_t, stor_begin) - 0usize];
6131    ["Offset of field: igraph_vector_bool_t::stor_end"]
6132        [::std::mem::offset_of!(igraph_vector_bool_t, stor_end) - 8usize];
6133    ["Offset of field: igraph_vector_bool_t::end"]
6134        [::std::mem::offset_of!(igraph_vector_bool_t, end) - 16usize];
6135};
6136#[doc = " Vector, dealing with arrays efficiently.\n \\ingroup types"]
6137#[repr(C)]
6138#[derive(Debug, Clone)]
6139pub struct igraph_vector_int_t {
6140    pub stor_begin: *mut igraph_int_t,
6141    pub stor_end: *mut igraph_int_t,
6142    pub end: *mut igraph_int_t,
6143}
6144#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6145const _: () = {
6146    ["Size of igraph_vector_int_t"][::std::mem::size_of::<igraph_vector_int_t>() - 24usize];
6147    ["Alignment of igraph_vector_int_t"][::std::mem::align_of::<igraph_vector_int_t>() - 8usize];
6148    ["Offset of field: igraph_vector_int_t::stor_begin"]
6149        [::std::mem::offset_of!(igraph_vector_int_t, stor_begin) - 0usize];
6150    ["Offset of field: igraph_vector_int_t::stor_end"]
6151        [::std::mem::offset_of!(igraph_vector_int_t, stor_end) - 8usize];
6152    ["Offset of field: igraph_vector_int_t::end"]
6153        [::std::mem::offset_of!(igraph_vector_int_t, end) - 16usize];
6154};
6155#[doc = " Vector, dealing with arrays efficiently.\n \\ingroup types"]
6156#[repr(C)]
6157#[derive(Debug, Copy, Clone)]
6158pub struct igraph_vector_complex_t {
6159    pub stor_begin: *mut igraph_complex_t,
6160    pub stor_end: *mut igraph_complex_t,
6161    pub end: *mut igraph_complex_t,
6162}
6163#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6164const _: () = {
6165    ["Size of igraph_vector_complex_t"][::std::mem::size_of::<igraph_vector_complex_t>() - 24usize];
6166    ["Alignment of igraph_vector_complex_t"]
6167        [::std::mem::align_of::<igraph_vector_complex_t>() - 8usize];
6168    ["Offset of field: igraph_vector_complex_t::stor_begin"]
6169        [::std::mem::offset_of!(igraph_vector_complex_t, stor_begin) - 0usize];
6170    ["Offset of field: igraph_vector_complex_t::stor_end"]
6171        [::std::mem::offset_of!(igraph_vector_complex_t, stor_end) - 8usize];
6172    ["Offset of field: igraph_vector_complex_t::end"]
6173        [::std::mem::offset_of!(igraph_vector_complex_t, end) - 16usize];
6174};
6175unsafe extern "C" {
6176    pub fn igraph_vector_init(v: *mut igraph_vector_t, size: igraph_int_t) -> igraph_error_t;
6177}
6178unsafe extern "C" {
6179    pub fn igraph_vector_init_array(
6180        v: *mut igraph_vector_t,
6181        data: *const igraph_real_t,
6182        length: igraph_int_t,
6183    ) -> igraph_error_t;
6184}
6185unsafe extern "C" {
6186    pub fn igraph_vector_init_copy(
6187        to: *mut igraph_vector_t,
6188        from: *const igraph_vector_t,
6189    ) -> igraph_error_t;
6190}
6191unsafe extern "C" {
6192    pub fn igraph_vector_init_range(
6193        v: *mut igraph_vector_t,
6194        start: igraph_real_t,
6195        end: igraph_real_t,
6196    ) -> igraph_error_t;
6197}
6198unsafe extern "C" {
6199    pub fn igraph_vector_destroy(v: *mut igraph_vector_t);
6200}
6201unsafe extern "C" {
6202    pub fn igraph_vector_capacity(v: *const igraph_vector_t) -> igraph_int_t;
6203}
6204unsafe extern "C" {
6205    pub fn igraph_vector_get(v: *const igraph_vector_t, pos: igraph_int_t) -> igraph_real_t;
6206}
6207unsafe extern "C" {
6208    pub fn igraph_vector_get_ptr(
6209        v: *const igraph_vector_t,
6210        pos: igraph_int_t,
6211    ) -> *mut igraph_real_t;
6212}
6213unsafe extern "C" {
6214    pub fn igraph_vector_set(v: *mut igraph_vector_t, pos: igraph_int_t, value: igraph_real_t);
6215}
6216unsafe extern "C" {
6217    pub fn igraph_vector_tail(v: *const igraph_vector_t) -> igraph_real_t;
6218}
6219unsafe extern "C" {
6220    pub fn igraph_vector_null(v: *mut igraph_vector_t);
6221}
6222unsafe extern "C" {
6223    pub fn igraph_vector_fill(v: *mut igraph_vector_t, e: igraph_real_t);
6224}
6225unsafe extern "C" {
6226    pub fn igraph_vector_range(
6227        v: *mut igraph_vector_t,
6228        start: igraph_real_t,
6229        end: igraph_real_t,
6230    ) -> igraph_error_t;
6231}
6232unsafe extern "C" {
6233    pub fn igraph_vector_view(data: *const igraph_real_t, length: igraph_int_t) -> igraph_vector_t;
6234}
6235unsafe extern "C" {
6236    pub fn igraph_vector_copy_to(v: *const igraph_vector_t, to: *mut igraph_real_t);
6237}
6238unsafe extern "C" {
6239    pub fn igraph_vector_update(
6240        to: *mut igraph_vector_t,
6241        from: *const igraph_vector_t,
6242    ) -> igraph_error_t;
6243}
6244unsafe extern "C" {
6245    pub fn igraph_vector_append(
6246        to: *mut igraph_vector_t,
6247        from: *const igraph_vector_t,
6248    ) -> igraph_error_t;
6249}
6250unsafe extern "C" {
6251    pub fn igraph_vector_swap(v1: *mut igraph_vector_t, v2: *mut igraph_vector_t);
6252}
6253unsafe extern "C" {
6254    pub fn igraph_vector_swap_elements(v: *mut igraph_vector_t, i: igraph_int_t, j: igraph_int_t);
6255}
6256unsafe extern "C" {
6257    pub fn igraph_vector_reverse(v: *mut igraph_vector_t);
6258}
6259unsafe extern "C" {
6260    pub fn igraph_vector_reverse_section(
6261        v: *mut igraph_vector_t,
6262        from: igraph_int_t,
6263        to: igraph_int_t,
6264    );
6265}
6266unsafe extern "C" {
6267    pub fn igraph_vector_rotate_left(v: *mut igraph_vector_t, n: igraph_int_t);
6268}
6269unsafe extern "C" {
6270    pub fn igraph_vector_permute(
6271        v: *mut igraph_vector_t,
6272        ind: *const igraph_vector_int_t,
6273    ) -> igraph_error_t;
6274}
6275unsafe extern "C" {
6276    pub fn igraph_vector_shuffle(v: *mut igraph_vector_t);
6277}
6278unsafe extern "C" {
6279    pub fn igraph_vector_add_constant(v: *mut igraph_vector_t, plus: igraph_real_t);
6280}
6281unsafe extern "C" {
6282    pub fn igraph_vector_scale(v: *mut igraph_vector_t, by: igraph_real_t);
6283}
6284unsafe extern "C" {
6285    pub fn igraph_vector_add(
6286        v1: *mut igraph_vector_t,
6287        v2: *const igraph_vector_t,
6288    ) -> igraph_error_t;
6289}
6290unsafe extern "C" {
6291    pub fn igraph_vector_sub(
6292        v1: *mut igraph_vector_t,
6293        v2: *const igraph_vector_t,
6294    ) -> igraph_error_t;
6295}
6296unsafe extern "C" {
6297    pub fn igraph_vector_mul(
6298        v1: *mut igraph_vector_t,
6299        v2: *const igraph_vector_t,
6300    ) -> igraph_error_t;
6301}
6302unsafe extern "C" {
6303    pub fn igraph_vector_div(
6304        v1: *mut igraph_vector_t,
6305        v2: *const igraph_vector_t,
6306    ) -> igraph_error_t;
6307}
6308unsafe extern "C" {
6309    pub fn igraph_vector_cumsum(
6310        to: *mut igraph_vector_t,
6311        from: *const igraph_vector_t,
6312    ) -> igraph_error_t;
6313}
6314unsafe extern "C" {
6315    pub fn igraph_vector_abs(v: *mut igraph_vector_t) -> igraph_error_t;
6316}
6317unsafe extern "C" {
6318    pub fn igraph_vector_all_e(
6319        lhs: *const igraph_vector_t,
6320        rhs: *const igraph_vector_t,
6321    ) -> igraph_bool_t;
6322}
6323unsafe extern "C" {
6324    pub fn igraph_vector_all_l(
6325        lhs: *const igraph_vector_t,
6326        rhs: *const igraph_vector_t,
6327    ) -> igraph_bool_t;
6328}
6329unsafe extern "C" {
6330    pub fn igraph_vector_all_g(
6331        lhs: *const igraph_vector_t,
6332        rhs: *const igraph_vector_t,
6333    ) -> igraph_bool_t;
6334}
6335unsafe extern "C" {
6336    pub fn igraph_vector_all_le(
6337        lhs: *const igraph_vector_t,
6338        rhs: *const igraph_vector_t,
6339    ) -> igraph_bool_t;
6340}
6341unsafe extern "C" {
6342    pub fn igraph_vector_all_ge(
6343        lhs: *const igraph_vector_t,
6344        rhs: *const igraph_vector_t,
6345    ) -> igraph_bool_t;
6346}
6347unsafe extern "C" {
6348    pub fn igraph_vector_lex_cmp(
6349        lhs: *const igraph_vector_t,
6350        rhs: *const igraph_vector_t,
6351    ) -> ::std::os::raw::c_int;
6352}
6353unsafe extern "C" {
6354    pub fn igraph_vector_colex_cmp(
6355        lhs: *const igraph_vector_t,
6356        rhs: *const igraph_vector_t,
6357    ) -> ::std::os::raw::c_int;
6358}
6359unsafe extern "C" {
6360    pub fn igraph_vector_lex_cmp_untyped(
6361        lhs: *const ::std::os::raw::c_void,
6362        rhs: *const ::std::os::raw::c_void,
6363    ) -> ::std::os::raw::c_int;
6364}
6365unsafe extern "C" {
6366    pub fn igraph_vector_colex_cmp_untyped(
6367        lhs: *const ::std::os::raw::c_void,
6368        rhs: *const ::std::os::raw::c_void,
6369    ) -> ::std::os::raw::c_int;
6370}
6371unsafe extern "C" {
6372    pub fn igraph_vector_min(v: *const igraph_vector_t) -> igraph_real_t;
6373}
6374unsafe extern "C" {
6375    pub fn igraph_vector_max(v: *const igraph_vector_t) -> igraph_real_t;
6376}
6377unsafe extern "C" {
6378    pub fn igraph_vector_which_min(v: *const igraph_vector_t) -> igraph_int_t;
6379}
6380unsafe extern "C" {
6381    pub fn igraph_vector_which_max(v: *const igraph_vector_t) -> igraph_int_t;
6382}
6383unsafe extern "C" {
6384    pub fn igraph_vector_minmax(
6385        v: *const igraph_vector_t,
6386        min: *mut igraph_real_t,
6387        max: *mut igraph_real_t,
6388    );
6389}
6390unsafe extern "C" {
6391    pub fn igraph_vector_which_minmax(
6392        v: *const igraph_vector_t,
6393        which_min: *mut igraph_int_t,
6394        which_max: *mut igraph_int_t,
6395    );
6396}
6397unsafe extern "C" {
6398    pub fn igraph_vector_empty(v: *const igraph_vector_t) -> igraph_bool_t;
6399}
6400unsafe extern "C" {
6401    pub fn igraph_vector_size(v: *const igraph_vector_t) -> igraph_int_t;
6402}
6403unsafe extern "C" {
6404    pub fn igraph_vector_isnull(v: *const igraph_vector_t) -> igraph_bool_t;
6405}
6406unsafe extern "C" {
6407    pub fn igraph_vector_sum(v: *const igraph_vector_t) -> igraph_real_t;
6408}
6409unsafe extern "C" {
6410    pub fn igraph_vector_sumsq(v: *const igraph_vector_t) -> igraph_real_t;
6411}
6412unsafe extern "C" {
6413    pub fn igraph_vector_prod(v: *const igraph_vector_t) -> igraph_real_t;
6414}
6415unsafe extern "C" {
6416    pub fn igraph_vector_isininterval(
6417        v: *const igraph_vector_t,
6418        low: igraph_real_t,
6419        high: igraph_real_t,
6420    ) -> igraph_bool_t;
6421}
6422unsafe extern "C" {
6423    pub fn igraph_vector_any_smaller(
6424        v: *const igraph_vector_t,
6425        limit: igraph_real_t,
6426    ) -> igraph_bool_t;
6427}
6428unsafe extern "C" {
6429    pub fn igraph_vector_is_equal(
6430        lhs: *const igraph_vector_t,
6431        rhs: *const igraph_vector_t,
6432    ) -> igraph_bool_t;
6433}
6434unsafe extern "C" {
6435    pub fn igraph_vector_maxdifference(
6436        m1: *const igraph_vector_t,
6437        m2: *const igraph_vector_t,
6438    ) -> igraph_real_t;
6439}
6440unsafe extern "C" {
6441    pub fn igraph_vector_contains(v: *const igraph_vector_t, e: igraph_real_t) -> igraph_bool_t;
6442}
6443unsafe extern "C" {
6444    pub fn igraph_vector_search(
6445        v: *const igraph_vector_t,
6446        from: igraph_int_t,
6447        what: igraph_real_t,
6448        pos: *mut igraph_int_t,
6449    ) -> igraph_bool_t;
6450}
6451unsafe extern "C" {
6452    pub fn igraph_vector_binsearch_slice(
6453        v: *const igraph_vector_t,
6454        what: igraph_real_t,
6455        pos: *mut igraph_int_t,
6456        start: igraph_int_t,
6457        end: igraph_int_t,
6458    ) -> igraph_bool_t;
6459}
6460unsafe extern "C" {
6461    pub fn igraph_vector_binsearch(
6462        v: *const igraph_vector_t,
6463        what: igraph_real_t,
6464        pos: *mut igraph_int_t,
6465    ) -> igraph_bool_t;
6466}
6467unsafe extern "C" {
6468    pub fn igraph_vector_contains_sorted(
6469        v: *const igraph_vector_t,
6470        what: igraph_real_t,
6471    ) -> igraph_bool_t;
6472}
6473unsafe extern "C" {
6474    pub fn igraph_vector_clear(v: *mut igraph_vector_t);
6475}
6476unsafe extern "C" {
6477    pub fn igraph_vector_resize(v: *mut igraph_vector_t, new_size: igraph_int_t) -> igraph_error_t;
6478}
6479unsafe extern "C" {
6480    pub fn igraph_vector_resize_min(v: *mut igraph_vector_t);
6481}
6482unsafe extern "C" {
6483    pub fn igraph_vector_reserve(v: *mut igraph_vector_t, capacity: igraph_int_t)
6484    -> igraph_error_t;
6485}
6486unsafe extern "C" {
6487    pub fn igraph_vector_push_back(v: *mut igraph_vector_t, e: igraph_real_t) -> igraph_error_t;
6488}
6489unsafe extern "C" {
6490    pub fn igraph_vector_pop_back(v: *mut igraph_vector_t) -> igraph_real_t;
6491}
6492unsafe extern "C" {
6493    pub fn igraph_vector_insert(
6494        v: *mut igraph_vector_t,
6495        pos: igraph_int_t,
6496        value: igraph_real_t,
6497    ) -> igraph_error_t;
6498}
6499unsafe extern "C" {
6500    pub fn igraph_vector_remove(v: *mut igraph_vector_t, elem: igraph_int_t);
6501}
6502unsafe extern "C" {
6503    pub fn igraph_vector_remove_fast(v: *mut igraph_vector_t, elem: igraph_int_t);
6504}
6505unsafe extern "C" {
6506    pub fn igraph_vector_remove_section(
6507        v: *mut igraph_vector_t,
6508        from: igraph_int_t,
6509        to: igraph_int_t,
6510    );
6511}
6512unsafe extern "C" {
6513    pub fn igraph_vector_sort(v: *mut igraph_vector_t);
6514}
6515unsafe extern "C" {
6516    pub fn igraph_vector_reverse_sort(v: *mut igraph_vector_t);
6517}
6518unsafe extern "C" {
6519    pub fn igraph_vector_sort_ind(
6520        v: *const igraph_vector_t,
6521        inds: *mut igraph_vector_int_t,
6522        order: igraph_order_t,
6523    ) -> igraph_error_t;
6524}
6525unsafe extern "C" {
6526    pub fn igraph_vector_print(v: *const igraph_vector_t) -> igraph_error_t;
6527}
6528unsafe extern "C" {
6529    pub fn igraph_vector_fprint(v: *const igraph_vector_t, file: *mut FILE) -> igraph_error_t;
6530}
6531unsafe extern "C" {
6532    pub fn igraph_vector_printf(
6533        v: *const igraph_vector_t,
6534        format: *const ::std::os::raw::c_char,
6535    ) -> igraph_error_t;
6536}
6537unsafe extern "C" {
6538    pub fn igraph_vector_init_real(
6539        v: *mut igraph_vector_t,
6540        no: ::std::os::raw::c_int,
6541        ...
6542    ) -> igraph_error_t;
6543}
6544unsafe extern "C" {
6545    pub fn igraph_vector_init_int(
6546        v: *mut igraph_vector_t,
6547        no: ::std::os::raw::c_int,
6548        ...
6549    ) -> igraph_error_t;
6550}
6551unsafe extern "C" {
6552    pub fn igraph_vector_init_real_end(
6553        v: *mut igraph_vector_t,
6554        endmark: f64,
6555        ...
6556    ) -> igraph_error_t;
6557}
6558unsafe extern "C" {
6559    pub fn igraph_vector_init_int_end(
6560        v: *mut igraph_vector_t,
6561        endmark: ::std::os::raw::c_int,
6562        ...
6563    ) -> igraph_error_t;
6564}
6565unsafe extern "C" {
6566    pub fn igraph_vector_move_interval(
6567        v: *mut igraph_vector_t,
6568        begin: igraph_int_t,
6569        end: igraph_int_t,
6570        to: igraph_int_t,
6571    ) -> igraph_error_t;
6572}
6573unsafe extern "C" {
6574    pub fn igraph_vector_filter_smaller(
6575        v: *mut igraph_vector_t,
6576        elem: igraph_real_t,
6577    ) -> igraph_error_t;
6578}
6579unsafe extern "C" {
6580    pub fn igraph_vector_get_interval(
6581        v: *const igraph_vector_t,
6582        res: *mut igraph_vector_t,
6583        from: igraph_int_t,
6584        to: igraph_int_t,
6585    ) -> igraph_error_t;
6586}
6587unsafe extern "C" {
6588    pub fn igraph_vector_difference_sorted(
6589        v1: *const igraph_vector_t,
6590        v2: *const igraph_vector_t,
6591        result: *mut igraph_vector_t,
6592    ) -> igraph_error_t;
6593}
6594unsafe extern "C" {
6595    pub fn igraph_vector_difference_and_intersection_sorted(
6596        v1: *const igraph_vector_t,
6597        v2: *const igraph_vector_t,
6598        vdiff12: *mut igraph_vector_t,
6599        vdiff21: *mut igraph_vector_t,
6600        vinter: *mut igraph_vector_t,
6601    ) -> igraph_error_t;
6602}
6603unsafe extern "C" {
6604    pub fn igraph_vector_intersect_sorted(
6605        v1: *const igraph_vector_t,
6606        v2: *const igraph_vector_t,
6607        result: *mut igraph_vector_t,
6608    ) -> igraph_error_t;
6609}
6610unsafe extern "C" {
6611    pub fn igraph_vector_intersection_size_sorted(
6612        v1: *const igraph_vector_t,
6613        v2: *const igraph_vector_t,
6614    ) -> igraph_int_t;
6615}
6616unsafe extern "C" {
6617    pub fn igraph_vector_index(
6618        v: *const igraph_vector_t,
6619        newv: *mut igraph_vector_t,
6620        idx: *const igraph_vector_int_t,
6621    ) -> igraph_error_t;
6622}
6623unsafe extern "C" {
6624    pub fn igraph_vector_index_in_place(
6625        v: *mut igraph_vector_t,
6626        idx: *const igraph_vector_int_t,
6627    ) -> igraph_error_t;
6628}
6629unsafe extern "C" {
6630    pub fn igraph_vector_char_init(
6631        v: *mut igraph_vector_char_t,
6632        size: igraph_int_t,
6633    ) -> igraph_error_t;
6634}
6635unsafe extern "C" {
6636    pub fn igraph_vector_char_init_array(
6637        v: *mut igraph_vector_char_t,
6638        data: *const ::std::os::raw::c_char,
6639        length: igraph_int_t,
6640    ) -> igraph_error_t;
6641}
6642unsafe extern "C" {
6643    pub fn igraph_vector_char_init_copy(
6644        to: *mut igraph_vector_char_t,
6645        from: *const igraph_vector_char_t,
6646    ) -> igraph_error_t;
6647}
6648unsafe extern "C" {
6649    pub fn igraph_vector_char_init_range(
6650        v: *mut igraph_vector_char_t,
6651        start: ::std::os::raw::c_char,
6652        end: ::std::os::raw::c_char,
6653    ) -> igraph_error_t;
6654}
6655unsafe extern "C" {
6656    pub fn igraph_vector_char_destroy(v: *mut igraph_vector_char_t);
6657}
6658unsafe extern "C" {
6659    pub fn igraph_vector_char_capacity(v: *const igraph_vector_char_t) -> igraph_int_t;
6660}
6661unsafe extern "C" {
6662    pub fn igraph_vector_char_get(
6663        v: *const igraph_vector_char_t,
6664        pos: igraph_int_t,
6665    ) -> ::std::os::raw::c_char;
6666}
6667unsafe extern "C" {
6668    pub fn igraph_vector_char_get_ptr(
6669        v: *const igraph_vector_char_t,
6670        pos: igraph_int_t,
6671    ) -> *mut ::std::os::raw::c_char;
6672}
6673unsafe extern "C" {
6674    pub fn igraph_vector_char_set(
6675        v: *mut igraph_vector_char_t,
6676        pos: igraph_int_t,
6677        value: ::std::os::raw::c_char,
6678    );
6679}
6680unsafe extern "C" {
6681    pub fn igraph_vector_char_tail(v: *const igraph_vector_char_t) -> ::std::os::raw::c_char;
6682}
6683unsafe extern "C" {
6684    pub fn igraph_vector_char_null(v: *mut igraph_vector_char_t);
6685}
6686unsafe extern "C" {
6687    pub fn igraph_vector_char_fill(v: *mut igraph_vector_char_t, e: ::std::os::raw::c_char);
6688}
6689unsafe extern "C" {
6690    pub fn igraph_vector_char_range(
6691        v: *mut igraph_vector_char_t,
6692        start: ::std::os::raw::c_char,
6693        end: ::std::os::raw::c_char,
6694    ) -> igraph_error_t;
6695}
6696unsafe extern "C" {
6697    pub fn igraph_vector_char_view(
6698        data: *const ::std::os::raw::c_char,
6699        length: igraph_int_t,
6700    ) -> igraph_vector_char_t;
6701}
6702unsafe extern "C" {
6703    pub fn igraph_vector_char_copy_to(
6704        v: *const igraph_vector_char_t,
6705        to: *mut ::std::os::raw::c_char,
6706    );
6707}
6708unsafe extern "C" {
6709    pub fn igraph_vector_char_update(
6710        to: *mut igraph_vector_char_t,
6711        from: *const igraph_vector_char_t,
6712    ) -> igraph_error_t;
6713}
6714unsafe extern "C" {
6715    pub fn igraph_vector_char_append(
6716        to: *mut igraph_vector_char_t,
6717        from: *const igraph_vector_char_t,
6718    ) -> igraph_error_t;
6719}
6720unsafe extern "C" {
6721    pub fn igraph_vector_char_swap(v1: *mut igraph_vector_char_t, v2: *mut igraph_vector_char_t);
6722}
6723unsafe extern "C" {
6724    pub fn igraph_vector_char_swap_elements(
6725        v: *mut igraph_vector_char_t,
6726        i: igraph_int_t,
6727        j: igraph_int_t,
6728    );
6729}
6730unsafe extern "C" {
6731    pub fn igraph_vector_char_reverse(v: *mut igraph_vector_char_t);
6732}
6733unsafe extern "C" {
6734    pub fn igraph_vector_char_reverse_section(
6735        v: *mut igraph_vector_char_t,
6736        from: igraph_int_t,
6737        to: igraph_int_t,
6738    );
6739}
6740unsafe extern "C" {
6741    pub fn igraph_vector_char_rotate_left(v: *mut igraph_vector_char_t, n: igraph_int_t);
6742}
6743unsafe extern "C" {
6744    pub fn igraph_vector_char_permute(
6745        v: *mut igraph_vector_char_t,
6746        ind: *const igraph_vector_int_t,
6747    ) -> igraph_error_t;
6748}
6749unsafe extern "C" {
6750    pub fn igraph_vector_char_shuffle(v: *mut igraph_vector_char_t);
6751}
6752unsafe extern "C" {
6753    pub fn igraph_vector_char_add_constant(
6754        v: *mut igraph_vector_char_t,
6755        plus: ::std::os::raw::c_char,
6756    );
6757}
6758unsafe extern "C" {
6759    pub fn igraph_vector_char_scale(v: *mut igraph_vector_char_t, by: ::std::os::raw::c_char);
6760}
6761unsafe extern "C" {
6762    pub fn igraph_vector_char_add(
6763        v1: *mut igraph_vector_char_t,
6764        v2: *const igraph_vector_char_t,
6765    ) -> igraph_error_t;
6766}
6767unsafe extern "C" {
6768    pub fn igraph_vector_char_sub(
6769        v1: *mut igraph_vector_char_t,
6770        v2: *const igraph_vector_char_t,
6771    ) -> igraph_error_t;
6772}
6773unsafe extern "C" {
6774    pub fn igraph_vector_char_mul(
6775        v1: *mut igraph_vector_char_t,
6776        v2: *const igraph_vector_char_t,
6777    ) -> igraph_error_t;
6778}
6779unsafe extern "C" {
6780    pub fn igraph_vector_char_div(
6781        v1: *mut igraph_vector_char_t,
6782        v2: *const igraph_vector_char_t,
6783    ) -> igraph_error_t;
6784}
6785unsafe extern "C" {
6786    pub fn igraph_vector_char_cumsum(
6787        to: *mut igraph_vector_char_t,
6788        from: *const igraph_vector_char_t,
6789    ) -> igraph_error_t;
6790}
6791unsafe extern "C" {
6792    pub fn igraph_vector_char_abs(v: *mut igraph_vector_char_t) -> igraph_error_t;
6793}
6794unsafe extern "C" {
6795    pub fn igraph_vector_char_all_e(
6796        lhs: *const igraph_vector_char_t,
6797        rhs: *const igraph_vector_char_t,
6798    ) -> igraph_bool_t;
6799}
6800unsafe extern "C" {
6801    pub fn igraph_vector_char_all_l(
6802        lhs: *const igraph_vector_char_t,
6803        rhs: *const igraph_vector_char_t,
6804    ) -> igraph_bool_t;
6805}
6806unsafe extern "C" {
6807    pub fn igraph_vector_char_all_g(
6808        lhs: *const igraph_vector_char_t,
6809        rhs: *const igraph_vector_char_t,
6810    ) -> igraph_bool_t;
6811}
6812unsafe extern "C" {
6813    pub fn igraph_vector_char_all_le(
6814        lhs: *const igraph_vector_char_t,
6815        rhs: *const igraph_vector_char_t,
6816    ) -> igraph_bool_t;
6817}
6818unsafe extern "C" {
6819    pub fn igraph_vector_char_all_ge(
6820        lhs: *const igraph_vector_char_t,
6821        rhs: *const igraph_vector_char_t,
6822    ) -> igraph_bool_t;
6823}
6824unsafe extern "C" {
6825    pub fn igraph_vector_char_lex_cmp(
6826        lhs: *const igraph_vector_char_t,
6827        rhs: *const igraph_vector_char_t,
6828    ) -> ::std::os::raw::c_int;
6829}
6830unsafe extern "C" {
6831    pub fn igraph_vector_char_colex_cmp(
6832        lhs: *const igraph_vector_char_t,
6833        rhs: *const igraph_vector_char_t,
6834    ) -> ::std::os::raw::c_int;
6835}
6836unsafe extern "C" {
6837    pub fn igraph_vector_char_lex_cmp_untyped(
6838        lhs: *const ::std::os::raw::c_void,
6839        rhs: *const ::std::os::raw::c_void,
6840    ) -> ::std::os::raw::c_int;
6841}
6842unsafe extern "C" {
6843    pub fn igraph_vector_char_colex_cmp_untyped(
6844        lhs: *const ::std::os::raw::c_void,
6845        rhs: *const ::std::os::raw::c_void,
6846    ) -> ::std::os::raw::c_int;
6847}
6848unsafe extern "C" {
6849    pub fn igraph_vector_char_min(v: *const igraph_vector_char_t) -> ::std::os::raw::c_char;
6850}
6851unsafe extern "C" {
6852    pub fn igraph_vector_char_max(v: *const igraph_vector_char_t) -> ::std::os::raw::c_char;
6853}
6854unsafe extern "C" {
6855    pub fn igraph_vector_char_which_min(v: *const igraph_vector_char_t) -> igraph_int_t;
6856}
6857unsafe extern "C" {
6858    pub fn igraph_vector_char_which_max(v: *const igraph_vector_char_t) -> igraph_int_t;
6859}
6860unsafe extern "C" {
6861    pub fn igraph_vector_char_minmax(
6862        v: *const igraph_vector_char_t,
6863        min: *mut ::std::os::raw::c_char,
6864        max: *mut ::std::os::raw::c_char,
6865    );
6866}
6867unsafe extern "C" {
6868    pub fn igraph_vector_char_which_minmax(
6869        v: *const igraph_vector_char_t,
6870        which_min: *mut igraph_int_t,
6871        which_max: *mut igraph_int_t,
6872    );
6873}
6874unsafe extern "C" {
6875    pub fn igraph_vector_char_empty(v: *const igraph_vector_char_t) -> igraph_bool_t;
6876}
6877unsafe extern "C" {
6878    pub fn igraph_vector_char_size(v: *const igraph_vector_char_t) -> igraph_int_t;
6879}
6880unsafe extern "C" {
6881    pub fn igraph_vector_char_isnull(v: *const igraph_vector_char_t) -> igraph_bool_t;
6882}
6883unsafe extern "C" {
6884    pub fn igraph_vector_char_sum(v: *const igraph_vector_char_t) -> ::std::os::raw::c_char;
6885}
6886unsafe extern "C" {
6887    pub fn igraph_vector_char_sumsq(v: *const igraph_vector_char_t) -> igraph_real_t;
6888}
6889unsafe extern "C" {
6890    pub fn igraph_vector_char_prod(v: *const igraph_vector_char_t) -> ::std::os::raw::c_char;
6891}
6892unsafe extern "C" {
6893    pub fn igraph_vector_char_isininterval(
6894        v: *const igraph_vector_char_t,
6895        low: ::std::os::raw::c_char,
6896        high: ::std::os::raw::c_char,
6897    ) -> igraph_bool_t;
6898}
6899unsafe extern "C" {
6900    pub fn igraph_vector_char_any_smaller(
6901        v: *const igraph_vector_char_t,
6902        limit: ::std::os::raw::c_char,
6903    ) -> igraph_bool_t;
6904}
6905unsafe extern "C" {
6906    pub fn igraph_vector_char_is_equal(
6907        lhs: *const igraph_vector_char_t,
6908        rhs: *const igraph_vector_char_t,
6909    ) -> igraph_bool_t;
6910}
6911unsafe extern "C" {
6912    pub fn igraph_vector_char_maxdifference(
6913        m1: *const igraph_vector_char_t,
6914        m2: *const igraph_vector_char_t,
6915    ) -> igraph_real_t;
6916}
6917unsafe extern "C" {
6918    pub fn igraph_vector_char_contains(
6919        v: *const igraph_vector_char_t,
6920        e: ::std::os::raw::c_char,
6921    ) -> igraph_bool_t;
6922}
6923unsafe extern "C" {
6924    pub fn igraph_vector_char_search(
6925        v: *const igraph_vector_char_t,
6926        from: igraph_int_t,
6927        what: ::std::os::raw::c_char,
6928        pos: *mut igraph_int_t,
6929    ) -> igraph_bool_t;
6930}
6931unsafe extern "C" {
6932    pub fn igraph_vector_char_binsearch_slice(
6933        v: *const igraph_vector_char_t,
6934        what: ::std::os::raw::c_char,
6935        pos: *mut igraph_int_t,
6936        start: igraph_int_t,
6937        end: igraph_int_t,
6938    ) -> igraph_bool_t;
6939}
6940unsafe extern "C" {
6941    pub fn igraph_vector_char_binsearch(
6942        v: *const igraph_vector_char_t,
6943        what: ::std::os::raw::c_char,
6944        pos: *mut igraph_int_t,
6945    ) -> igraph_bool_t;
6946}
6947unsafe extern "C" {
6948    pub fn igraph_vector_char_contains_sorted(
6949        v: *const igraph_vector_char_t,
6950        what: ::std::os::raw::c_char,
6951    ) -> igraph_bool_t;
6952}
6953unsafe extern "C" {
6954    pub fn igraph_vector_char_clear(v: *mut igraph_vector_char_t);
6955}
6956unsafe extern "C" {
6957    pub fn igraph_vector_char_resize(
6958        v: *mut igraph_vector_char_t,
6959        new_size: igraph_int_t,
6960    ) -> igraph_error_t;
6961}
6962unsafe extern "C" {
6963    pub fn igraph_vector_char_resize_min(v: *mut igraph_vector_char_t);
6964}
6965unsafe extern "C" {
6966    pub fn igraph_vector_char_reserve(
6967        v: *mut igraph_vector_char_t,
6968        capacity: igraph_int_t,
6969    ) -> igraph_error_t;
6970}
6971unsafe extern "C" {
6972    pub fn igraph_vector_char_push_back(
6973        v: *mut igraph_vector_char_t,
6974        e: ::std::os::raw::c_char,
6975    ) -> igraph_error_t;
6976}
6977unsafe extern "C" {
6978    pub fn igraph_vector_char_pop_back(v: *mut igraph_vector_char_t) -> ::std::os::raw::c_char;
6979}
6980unsafe extern "C" {
6981    pub fn igraph_vector_char_insert(
6982        v: *mut igraph_vector_char_t,
6983        pos: igraph_int_t,
6984        value: ::std::os::raw::c_char,
6985    ) -> igraph_error_t;
6986}
6987unsafe extern "C" {
6988    pub fn igraph_vector_char_remove(v: *mut igraph_vector_char_t, elem: igraph_int_t);
6989}
6990unsafe extern "C" {
6991    pub fn igraph_vector_char_remove_fast(v: *mut igraph_vector_char_t, elem: igraph_int_t);
6992}
6993unsafe extern "C" {
6994    pub fn igraph_vector_char_remove_section(
6995        v: *mut igraph_vector_char_t,
6996        from: igraph_int_t,
6997        to: igraph_int_t,
6998    );
6999}
7000unsafe extern "C" {
7001    pub fn igraph_vector_char_sort(v: *mut igraph_vector_char_t);
7002}
7003unsafe extern "C" {
7004    pub fn igraph_vector_char_reverse_sort(v: *mut igraph_vector_char_t);
7005}
7006unsafe extern "C" {
7007    pub fn igraph_vector_char_sort_ind(
7008        v: *const igraph_vector_char_t,
7009        inds: *mut igraph_vector_int_t,
7010        order: igraph_order_t,
7011    ) -> igraph_error_t;
7012}
7013unsafe extern "C" {
7014    pub fn igraph_vector_char_print(v: *const igraph_vector_char_t) -> igraph_error_t;
7015}
7016unsafe extern "C" {
7017    pub fn igraph_vector_char_fprint(
7018        v: *const igraph_vector_char_t,
7019        file: *mut FILE,
7020    ) -> igraph_error_t;
7021}
7022unsafe extern "C" {
7023    pub fn igraph_vector_char_printf(
7024        v: *const igraph_vector_char_t,
7025        format: *const ::std::os::raw::c_char,
7026    ) -> igraph_error_t;
7027}
7028unsafe extern "C" {
7029    pub fn igraph_vector_char_init_real(
7030        v: *mut igraph_vector_char_t,
7031        no: ::std::os::raw::c_int,
7032        ...
7033    ) -> igraph_error_t;
7034}
7035unsafe extern "C" {
7036    pub fn igraph_vector_char_init_int(
7037        v: *mut igraph_vector_char_t,
7038        no: ::std::os::raw::c_int,
7039        ...
7040    ) -> igraph_error_t;
7041}
7042unsafe extern "C" {
7043    pub fn igraph_vector_char_init_real_end(
7044        v: *mut igraph_vector_char_t,
7045        endmark: f64,
7046        ...
7047    ) -> igraph_error_t;
7048}
7049unsafe extern "C" {
7050    pub fn igraph_vector_char_init_int_end(
7051        v: *mut igraph_vector_char_t,
7052        endmark: ::std::os::raw::c_int,
7053        ...
7054    ) -> igraph_error_t;
7055}
7056unsafe extern "C" {
7057    pub fn igraph_vector_char_move_interval(
7058        v: *mut igraph_vector_char_t,
7059        begin: igraph_int_t,
7060        end: igraph_int_t,
7061        to: igraph_int_t,
7062    ) -> igraph_error_t;
7063}
7064unsafe extern "C" {
7065    pub fn igraph_vector_char_filter_smaller(
7066        v: *mut igraph_vector_char_t,
7067        elem: ::std::os::raw::c_char,
7068    ) -> igraph_error_t;
7069}
7070unsafe extern "C" {
7071    pub fn igraph_vector_char_get_interval(
7072        v: *const igraph_vector_char_t,
7073        res: *mut igraph_vector_char_t,
7074        from: igraph_int_t,
7075        to: igraph_int_t,
7076    ) -> igraph_error_t;
7077}
7078unsafe extern "C" {
7079    pub fn igraph_vector_char_difference_sorted(
7080        v1: *const igraph_vector_char_t,
7081        v2: *const igraph_vector_char_t,
7082        result: *mut igraph_vector_char_t,
7083    ) -> igraph_error_t;
7084}
7085unsafe extern "C" {
7086    pub fn igraph_vector_char_difference_and_intersection_sorted(
7087        v1: *const igraph_vector_char_t,
7088        v2: *const igraph_vector_char_t,
7089        vdiff12: *mut igraph_vector_char_t,
7090        vdiff21: *mut igraph_vector_char_t,
7091        vinter: *mut igraph_vector_char_t,
7092    ) -> igraph_error_t;
7093}
7094unsafe extern "C" {
7095    pub fn igraph_vector_char_intersect_sorted(
7096        v1: *const igraph_vector_char_t,
7097        v2: *const igraph_vector_char_t,
7098        result: *mut igraph_vector_char_t,
7099    ) -> igraph_error_t;
7100}
7101unsafe extern "C" {
7102    pub fn igraph_vector_char_intersection_size_sorted(
7103        v1: *const igraph_vector_char_t,
7104        v2: *const igraph_vector_char_t,
7105    ) -> igraph_int_t;
7106}
7107unsafe extern "C" {
7108    pub fn igraph_vector_char_index(
7109        v: *const igraph_vector_char_t,
7110        newv: *mut igraph_vector_char_t,
7111        idx: *const igraph_vector_int_t,
7112    ) -> igraph_error_t;
7113}
7114unsafe extern "C" {
7115    pub fn igraph_vector_char_index_in_place(
7116        v: *mut igraph_vector_char_t,
7117        idx: *const igraph_vector_int_t,
7118    ) -> igraph_error_t;
7119}
7120unsafe extern "C" {
7121    pub fn igraph_vector_bool_init(
7122        v: *mut igraph_vector_bool_t,
7123        size: igraph_int_t,
7124    ) -> igraph_error_t;
7125}
7126unsafe extern "C" {
7127    pub fn igraph_vector_bool_init_array(
7128        v: *mut igraph_vector_bool_t,
7129        data: *const igraph_bool_t,
7130        length: igraph_int_t,
7131    ) -> igraph_error_t;
7132}
7133unsafe extern "C" {
7134    pub fn igraph_vector_bool_init_copy(
7135        to: *mut igraph_vector_bool_t,
7136        from: *const igraph_vector_bool_t,
7137    ) -> igraph_error_t;
7138}
7139unsafe extern "C" {
7140    pub fn igraph_vector_bool_destroy(v: *mut igraph_vector_bool_t);
7141}
7142unsafe extern "C" {
7143    pub fn igraph_vector_bool_capacity(v: *const igraph_vector_bool_t) -> igraph_int_t;
7144}
7145unsafe extern "C" {
7146    pub fn igraph_vector_bool_get(
7147        v: *const igraph_vector_bool_t,
7148        pos: igraph_int_t,
7149    ) -> igraph_bool_t;
7150}
7151unsafe extern "C" {
7152    pub fn igraph_vector_bool_get_ptr(
7153        v: *const igraph_vector_bool_t,
7154        pos: igraph_int_t,
7155    ) -> *mut igraph_bool_t;
7156}
7157unsafe extern "C" {
7158    pub fn igraph_vector_bool_set(
7159        v: *mut igraph_vector_bool_t,
7160        pos: igraph_int_t,
7161        value: igraph_bool_t,
7162    );
7163}
7164unsafe extern "C" {
7165    pub fn igraph_vector_bool_tail(v: *const igraph_vector_bool_t) -> igraph_bool_t;
7166}
7167unsafe extern "C" {
7168    pub fn igraph_vector_bool_null(v: *mut igraph_vector_bool_t);
7169}
7170unsafe extern "C" {
7171    pub fn igraph_vector_bool_fill(v: *mut igraph_vector_bool_t, e: igraph_bool_t);
7172}
7173unsafe extern "C" {
7174    pub fn igraph_vector_bool_view(
7175        data: *const igraph_bool_t,
7176        length: igraph_int_t,
7177    ) -> igraph_vector_bool_t;
7178}
7179unsafe extern "C" {
7180    pub fn igraph_vector_bool_copy_to(v: *const igraph_vector_bool_t, to: *mut igraph_bool_t);
7181}
7182unsafe extern "C" {
7183    pub fn igraph_vector_bool_update(
7184        to: *mut igraph_vector_bool_t,
7185        from: *const igraph_vector_bool_t,
7186    ) -> igraph_error_t;
7187}
7188unsafe extern "C" {
7189    pub fn igraph_vector_bool_append(
7190        to: *mut igraph_vector_bool_t,
7191        from: *const igraph_vector_bool_t,
7192    ) -> igraph_error_t;
7193}
7194unsafe extern "C" {
7195    pub fn igraph_vector_bool_swap(v1: *mut igraph_vector_bool_t, v2: *mut igraph_vector_bool_t);
7196}
7197unsafe extern "C" {
7198    pub fn igraph_vector_bool_swap_elements(
7199        v: *mut igraph_vector_bool_t,
7200        i: igraph_int_t,
7201        j: igraph_int_t,
7202    );
7203}
7204unsafe extern "C" {
7205    pub fn igraph_vector_bool_reverse(v: *mut igraph_vector_bool_t);
7206}
7207unsafe extern "C" {
7208    pub fn igraph_vector_bool_reverse_section(
7209        v: *mut igraph_vector_bool_t,
7210        from: igraph_int_t,
7211        to: igraph_int_t,
7212    );
7213}
7214unsafe extern "C" {
7215    pub fn igraph_vector_bool_rotate_left(v: *mut igraph_vector_bool_t, n: igraph_int_t);
7216}
7217unsafe extern "C" {
7218    pub fn igraph_vector_bool_permute(
7219        v: *mut igraph_vector_bool_t,
7220        ind: *const igraph_vector_int_t,
7221    ) -> igraph_error_t;
7222}
7223unsafe extern "C" {
7224    pub fn igraph_vector_bool_shuffle(v: *mut igraph_vector_bool_t);
7225}
7226unsafe extern "C" {
7227    pub fn igraph_vector_bool_add_constant(v: *mut igraph_vector_bool_t, plus: igraph_bool_t);
7228}
7229unsafe extern "C" {
7230    pub fn igraph_vector_bool_scale(v: *mut igraph_vector_bool_t, by: igraph_bool_t);
7231}
7232unsafe extern "C" {
7233    pub fn igraph_vector_bool_add(
7234        v1: *mut igraph_vector_bool_t,
7235        v2: *const igraph_vector_bool_t,
7236    ) -> igraph_error_t;
7237}
7238unsafe extern "C" {
7239    pub fn igraph_vector_bool_sub(
7240        v1: *mut igraph_vector_bool_t,
7241        v2: *const igraph_vector_bool_t,
7242    ) -> igraph_error_t;
7243}
7244unsafe extern "C" {
7245    pub fn igraph_vector_bool_mul(
7246        v1: *mut igraph_vector_bool_t,
7247        v2: *const igraph_vector_bool_t,
7248    ) -> igraph_error_t;
7249}
7250unsafe extern "C" {
7251    pub fn igraph_vector_bool_div(
7252        v1: *mut igraph_vector_bool_t,
7253        v2: *const igraph_vector_bool_t,
7254    ) -> igraph_error_t;
7255}
7256unsafe extern "C" {
7257    pub fn igraph_vector_bool_cumsum(
7258        to: *mut igraph_vector_bool_t,
7259        from: *const igraph_vector_bool_t,
7260    ) -> igraph_error_t;
7261}
7262unsafe extern "C" {
7263    pub fn igraph_vector_bool_all_e(
7264        lhs: *const igraph_vector_bool_t,
7265        rhs: *const igraph_vector_bool_t,
7266    ) -> igraph_bool_t;
7267}
7268unsafe extern "C" {
7269    pub fn igraph_vector_bool_empty(v: *const igraph_vector_bool_t) -> igraph_bool_t;
7270}
7271unsafe extern "C" {
7272    pub fn igraph_vector_bool_size(v: *const igraph_vector_bool_t) -> igraph_int_t;
7273}
7274unsafe extern "C" {
7275    pub fn igraph_vector_bool_isnull(v: *const igraph_vector_bool_t) -> igraph_bool_t;
7276}
7277unsafe extern "C" {
7278    pub fn igraph_vector_bool_sum(v: *const igraph_vector_bool_t) -> igraph_bool_t;
7279}
7280unsafe extern "C" {
7281    pub fn igraph_vector_bool_sumsq(v: *const igraph_vector_bool_t) -> igraph_real_t;
7282}
7283unsafe extern "C" {
7284    pub fn igraph_vector_bool_prod(v: *const igraph_vector_bool_t) -> igraph_bool_t;
7285}
7286unsafe extern "C" {
7287    pub fn igraph_vector_bool_is_equal(
7288        lhs: *const igraph_vector_bool_t,
7289        rhs: *const igraph_vector_bool_t,
7290    ) -> igraph_bool_t;
7291}
7292unsafe extern "C" {
7293    pub fn igraph_vector_bool_contains(
7294        v: *const igraph_vector_bool_t,
7295        e: igraph_bool_t,
7296    ) -> igraph_bool_t;
7297}
7298unsafe extern "C" {
7299    pub fn igraph_vector_bool_search(
7300        v: *const igraph_vector_bool_t,
7301        from: igraph_int_t,
7302        what: igraph_bool_t,
7303        pos: *mut igraph_int_t,
7304    ) -> igraph_bool_t;
7305}
7306unsafe extern "C" {
7307    pub fn igraph_vector_bool_clear(v: *mut igraph_vector_bool_t);
7308}
7309unsafe extern "C" {
7310    pub fn igraph_vector_bool_resize(
7311        v: *mut igraph_vector_bool_t,
7312        new_size: igraph_int_t,
7313    ) -> igraph_error_t;
7314}
7315unsafe extern "C" {
7316    pub fn igraph_vector_bool_resize_min(v: *mut igraph_vector_bool_t);
7317}
7318unsafe extern "C" {
7319    pub fn igraph_vector_bool_reserve(
7320        v: *mut igraph_vector_bool_t,
7321        capacity: igraph_int_t,
7322    ) -> igraph_error_t;
7323}
7324unsafe extern "C" {
7325    pub fn igraph_vector_bool_push_back(
7326        v: *mut igraph_vector_bool_t,
7327        e: igraph_bool_t,
7328    ) -> igraph_error_t;
7329}
7330unsafe extern "C" {
7331    pub fn igraph_vector_bool_pop_back(v: *mut igraph_vector_bool_t) -> igraph_bool_t;
7332}
7333unsafe extern "C" {
7334    pub fn igraph_vector_bool_insert(
7335        v: *mut igraph_vector_bool_t,
7336        pos: igraph_int_t,
7337        value: igraph_bool_t,
7338    ) -> igraph_error_t;
7339}
7340unsafe extern "C" {
7341    pub fn igraph_vector_bool_remove(v: *mut igraph_vector_bool_t, elem: igraph_int_t);
7342}
7343unsafe extern "C" {
7344    pub fn igraph_vector_bool_remove_fast(v: *mut igraph_vector_bool_t, elem: igraph_int_t);
7345}
7346unsafe extern "C" {
7347    pub fn igraph_vector_bool_remove_section(
7348        v: *mut igraph_vector_bool_t,
7349        from: igraph_int_t,
7350        to: igraph_int_t,
7351    );
7352}
7353unsafe extern "C" {
7354    pub fn igraph_vector_bool_print(v: *const igraph_vector_bool_t) -> igraph_error_t;
7355}
7356unsafe extern "C" {
7357    pub fn igraph_vector_bool_fprint(
7358        v: *const igraph_vector_bool_t,
7359        file: *mut FILE,
7360    ) -> igraph_error_t;
7361}
7362unsafe extern "C" {
7363    pub fn igraph_vector_bool_printf(
7364        v: *const igraph_vector_bool_t,
7365        format: *const ::std::os::raw::c_char,
7366    ) -> igraph_error_t;
7367}
7368unsafe extern "C" {
7369    pub fn igraph_vector_bool_init_real(
7370        v: *mut igraph_vector_bool_t,
7371        no: ::std::os::raw::c_int,
7372        ...
7373    ) -> igraph_error_t;
7374}
7375unsafe extern "C" {
7376    pub fn igraph_vector_bool_init_int(
7377        v: *mut igraph_vector_bool_t,
7378        no: ::std::os::raw::c_int,
7379        ...
7380    ) -> igraph_error_t;
7381}
7382unsafe extern "C" {
7383    pub fn igraph_vector_bool_init_real_end(
7384        v: *mut igraph_vector_bool_t,
7385        endmark: f64,
7386        ...
7387    ) -> igraph_error_t;
7388}
7389unsafe extern "C" {
7390    pub fn igraph_vector_bool_init_int_end(
7391        v: *mut igraph_vector_bool_t,
7392        endmark: ::std::os::raw::c_int,
7393        ...
7394    ) -> igraph_error_t;
7395}
7396unsafe extern "C" {
7397    pub fn igraph_vector_bool_move_interval(
7398        v: *mut igraph_vector_bool_t,
7399        begin: igraph_int_t,
7400        end: igraph_int_t,
7401        to: igraph_int_t,
7402    ) -> igraph_error_t;
7403}
7404unsafe extern "C" {
7405    pub fn igraph_vector_bool_get_interval(
7406        v: *const igraph_vector_bool_t,
7407        res: *mut igraph_vector_bool_t,
7408        from: igraph_int_t,
7409        to: igraph_int_t,
7410    ) -> igraph_error_t;
7411}
7412unsafe extern "C" {
7413    pub fn igraph_vector_bool_index(
7414        v: *const igraph_vector_bool_t,
7415        newv: *mut igraph_vector_bool_t,
7416        idx: *const igraph_vector_int_t,
7417    ) -> igraph_error_t;
7418}
7419unsafe extern "C" {
7420    pub fn igraph_vector_bool_index_in_place(
7421        v: *mut igraph_vector_bool_t,
7422        idx: *const igraph_vector_int_t,
7423    ) -> igraph_error_t;
7424}
7425unsafe extern "C" {
7426    pub fn igraph_vector_int_init(
7427        v: *mut igraph_vector_int_t,
7428        size: igraph_int_t,
7429    ) -> igraph_error_t;
7430}
7431unsafe extern "C" {
7432    pub fn igraph_vector_int_init_array(
7433        v: *mut igraph_vector_int_t,
7434        data: *const igraph_int_t,
7435        length: igraph_int_t,
7436    ) -> igraph_error_t;
7437}
7438unsafe extern "C" {
7439    pub fn igraph_vector_int_init_copy(
7440        to: *mut igraph_vector_int_t,
7441        from: *const igraph_vector_int_t,
7442    ) -> igraph_error_t;
7443}
7444unsafe extern "C" {
7445    pub fn igraph_vector_int_init_range(
7446        v: *mut igraph_vector_int_t,
7447        start: igraph_int_t,
7448        end: igraph_int_t,
7449    ) -> igraph_error_t;
7450}
7451unsafe extern "C" {
7452    pub fn igraph_vector_int_destroy(v: *mut igraph_vector_int_t);
7453}
7454unsafe extern "C" {
7455    pub fn igraph_vector_int_capacity(v: *const igraph_vector_int_t) -> igraph_int_t;
7456}
7457unsafe extern "C" {
7458    pub fn igraph_vector_int_get(v: *const igraph_vector_int_t, pos: igraph_int_t) -> igraph_int_t;
7459}
7460unsafe extern "C" {
7461    pub fn igraph_vector_int_get_ptr(
7462        v: *const igraph_vector_int_t,
7463        pos: igraph_int_t,
7464    ) -> *mut igraph_int_t;
7465}
7466unsafe extern "C" {
7467    pub fn igraph_vector_int_set(
7468        v: *mut igraph_vector_int_t,
7469        pos: igraph_int_t,
7470        value: igraph_int_t,
7471    );
7472}
7473unsafe extern "C" {
7474    pub fn igraph_vector_int_tail(v: *const igraph_vector_int_t) -> igraph_int_t;
7475}
7476unsafe extern "C" {
7477    pub fn igraph_vector_int_null(v: *mut igraph_vector_int_t);
7478}
7479unsafe extern "C" {
7480    pub fn igraph_vector_int_fill(v: *mut igraph_vector_int_t, e: igraph_int_t);
7481}
7482unsafe extern "C" {
7483    pub fn igraph_vector_int_range(
7484        v: *mut igraph_vector_int_t,
7485        start: igraph_int_t,
7486        end: igraph_int_t,
7487    ) -> igraph_error_t;
7488}
7489unsafe extern "C" {
7490    pub fn igraph_vector_int_view(
7491        data: *const igraph_int_t,
7492        length: igraph_int_t,
7493    ) -> igraph_vector_int_t;
7494}
7495unsafe extern "C" {
7496    pub fn igraph_vector_int_copy_to(v: *const igraph_vector_int_t, to: *mut igraph_int_t);
7497}
7498unsafe extern "C" {
7499    pub fn igraph_vector_int_update(
7500        to: *mut igraph_vector_int_t,
7501        from: *const igraph_vector_int_t,
7502    ) -> igraph_error_t;
7503}
7504unsafe extern "C" {
7505    pub fn igraph_vector_int_append(
7506        to: *mut igraph_vector_int_t,
7507        from: *const igraph_vector_int_t,
7508    ) -> igraph_error_t;
7509}
7510unsafe extern "C" {
7511    pub fn igraph_vector_int_swap(v1: *mut igraph_vector_int_t, v2: *mut igraph_vector_int_t);
7512}
7513unsafe extern "C" {
7514    pub fn igraph_vector_int_swap_elements(
7515        v: *mut igraph_vector_int_t,
7516        i: igraph_int_t,
7517        j: igraph_int_t,
7518    );
7519}
7520unsafe extern "C" {
7521    pub fn igraph_vector_int_reverse(v: *mut igraph_vector_int_t);
7522}
7523unsafe extern "C" {
7524    pub fn igraph_vector_int_reverse_section(
7525        v: *mut igraph_vector_int_t,
7526        from: igraph_int_t,
7527        to: igraph_int_t,
7528    );
7529}
7530unsafe extern "C" {
7531    pub fn igraph_vector_int_rotate_left(v: *mut igraph_vector_int_t, n: igraph_int_t);
7532}
7533unsafe extern "C" {
7534    pub fn igraph_vector_int_permute(
7535        v: *mut igraph_vector_int_t,
7536        ind: *const igraph_vector_int_t,
7537    ) -> igraph_error_t;
7538}
7539unsafe extern "C" {
7540    pub fn igraph_vector_int_shuffle(v: *mut igraph_vector_int_t);
7541}
7542unsafe extern "C" {
7543    pub fn igraph_vector_int_add_constant(v: *mut igraph_vector_int_t, plus: igraph_int_t);
7544}
7545unsafe extern "C" {
7546    pub fn igraph_vector_int_scale(v: *mut igraph_vector_int_t, by: igraph_int_t);
7547}
7548unsafe extern "C" {
7549    pub fn igraph_vector_int_add(
7550        v1: *mut igraph_vector_int_t,
7551        v2: *const igraph_vector_int_t,
7552    ) -> igraph_error_t;
7553}
7554unsafe extern "C" {
7555    pub fn igraph_vector_int_sub(
7556        v1: *mut igraph_vector_int_t,
7557        v2: *const igraph_vector_int_t,
7558    ) -> igraph_error_t;
7559}
7560unsafe extern "C" {
7561    pub fn igraph_vector_int_mul(
7562        v1: *mut igraph_vector_int_t,
7563        v2: *const igraph_vector_int_t,
7564    ) -> igraph_error_t;
7565}
7566unsafe extern "C" {
7567    pub fn igraph_vector_int_div(
7568        v1: *mut igraph_vector_int_t,
7569        v2: *const igraph_vector_int_t,
7570    ) -> igraph_error_t;
7571}
7572unsafe extern "C" {
7573    pub fn igraph_vector_int_cumsum(
7574        to: *mut igraph_vector_int_t,
7575        from: *const igraph_vector_int_t,
7576    ) -> igraph_error_t;
7577}
7578unsafe extern "C" {
7579    pub fn igraph_vector_int_abs(v: *mut igraph_vector_int_t) -> igraph_error_t;
7580}
7581unsafe extern "C" {
7582    pub fn igraph_vector_int_all_e(
7583        lhs: *const igraph_vector_int_t,
7584        rhs: *const igraph_vector_int_t,
7585    ) -> igraph_bool_t;
7586}
7587unsafe extern "C" {
7588    pub fn igraph_vector_int_all_l(
7589        lhs: *const igraph_vector_int_t,
7590        rhs: *const igraph_vector_int_t,
7591    ) -> igraph_bool_t;
7592}
7593unsafe extern "C" {
7594    pub fn igraph_vector_int_all_g(
7595        lhs: *const igraph_vector_int_t,
7596        rhs: *const igraph_vector_int_t,
7597    ) -> igraph_bool_t;
7598}
7599unsafe extern "C" {
7600    pub fn igraph_vector_int_all_le(
7601        lhs: *const igraph_vector_int_t,
7602        rhs: *const igraph_vector_int_t,
7603    ) -> igraph_bool_t;
7604}
7605unsafe extern "C" {
7606    pub fn igraph_vector_int_all_ge(
7607        lhs: *const igraph_vector_int_t,
7608        rhs: *const igraph_vector_int_t,
7609    ) -> igraph_bool_t;
7610}
7611unsafe extern "C" {
7612    pub fn igraph_vector_int_lex_cmp(
7613        lhs: *const igraph_vector_int_t,
7614        rhs: *const igraph_vector_int_t,
7615    ) -> ::std::os::raw::c_int;
7616}
7617unsafe extern "C" {
7618    pub fn igraph_vector_int_colex_cmp(
7619        lhs: *const igraph_vector_int_t,
7620        rhs: *const igraph_vector_int_t,
7621    ) -> ::std::os::raw::c_int;
7622}
7623unsafe extern "C" {
7624    pub fn igraph_vector_int_lex_cmp_untyped(
7625        lhs: *const ::std::os::raw::c_void,
7626        rhs: *const ::std::os::raw::c_void,
7627    ) -> ::std::os::raw::c_int;
7628}
7629unsafe extern "C" {
7630    pub fn igraph_vector_int_colex_cmp_untyped(
7631        lhs: *const ::std::os::raw::c_void,
7632        rhs: *const ::std::os::raw::c_void,
7633    ) -> ::std::os::raw::c_int;
7634}
7635unsafe extern "C" {
7636    pub fn igraph_vector_int_min(v: *const igraph_vector_int_t) -> igraph_int_t;
7637}
7638unsafe extern "C" {
7639    pub fn igraph_vector_int_max(v: *const igraph_vector_int_t) -> igraph_int_t;
7640}
7641unsafe extern "C" {
7642    pub fn igraph_vector_int_which_min(v: *const igraph_vector_int_t) -> igraph_int_t;
7643}
7644unsafe extern "C" {
7645    pub fn igraph_vector_int_which_max(v: *const igraph_vector_int_t) -> igraph_int_t;
7646}
7647unsafe extern "C" {
7648    pub fn igraph_vector_int_minmax(
7649        v: *const igraph_vector_int_t,
7650        min: *mut igraph_int_t,
7651        max: *mut igraph_int_t,
7652    );
7653}
7654unsafe extern "C" {
7655    pub fn igraph_vector_int_which_minmax(
7656        v: *const igraph_vector_int_t,
7657        which_min: *mut igraph_int_t,
7658        which_max: *mut igraph_int_t,
7659    );
7660}
7661unsafe extern "C" {
7662    pub fn igraph_vector_int_empty(v: *const igraph_vector_int_t) -> igraph_bool_t;
7663}
7664unsafe extern "C" {
7665    pub fn igraph_vector_int_size(v: *const igraph_vector_int_t) -> igraph_int_t;
7666}
7667unsafe extern "C" {
7668    pub fn igraph_vector_int_isnull(v: *const igraph_vector_int_t) -> igraph_bool_t;
7669}
7670unsafe extern "C" {
7671    pub fn igraph_vector_int_sum(v: *const igraph_vector_int_t) -> igraph_int_t;
7672}
7673unsafe extern "C" {
7674    pub fn igraph_vector_int_sumsq(v: *const igraph_vector_int_t) -> igraph_real_t;
7675}
7676unsafe extern "C" {
7677    pub fn igraph_vector_int_prod(v: *const igraph_vector_int_t) -> igraph_int_t;
7678}
7679unsafe extern "C" {
7680    pub fn igraph_vector_int_isininterval(
7681        v: *const igraph_vector_int_t,
7682        low: igraph_int_t,
7683        high: igraph_int_t,
7684    ) -> igraph_bool_t;
7685}
7686unsafe extern "C" {
7687    pub fn igraph_vector_int_any_smaller(
7688        v: *const igraph_vector_int_t,
7689        limit: igraph_int_t,
7690    ) -> igraph_bool_t;
7691}
7692unsafe extern "C" {
7693    pub fn igraph_vector_int_is_equal(
7694        lhs: *const igraph_vector_int_t,
7695        rhs: *const igraph_vector_int_t,
7696    ) -> igraph_bool_t;
7697}
7698unsafe extern "C" {
7699    pub fn igraph_vector_int_maxdifference(
7700        m1: *const igraph_vector_int_t,
7701        m2: *const igraph_vector_int_t,
7702    ) -> igraph_real_t;
7703}
7704unsafe extern "C" {
7705    pub fn igraph_vector_int_contains(
7706        v: *const igraph_vector_int_t,
7707        e: igraph_int_t,
7708    ) -> igraph_bool_t;
7709}
7710unsafe extern "C" {
7711    pub fn igraph_vector_int_search(
7712        v: *const igraph_vector_int_t,
7713        from: igraph_int_t,
7714        what: igraph_int_t,
7715        pos: *mut igraph_int_t,
7716    ) -> igraph_bool_t;
7717}
7718unsafe extern "C" {
7719    pub fn igraph_vector_int_binsearch_slice(
7720        v: *const igraph_vector_int_t,
7721        what: igraph_int_t,
7722        pos: *mut igraph_int_t,
7723        start: igraph_int_t,
7724        end: igraph_int_t,
7725    ) -> igraph_bool_t;
7726}
7727unsafe extern "C" {
7728    pub fn igraph_vector_int_binsearch(
7729        v: *const igraph_vector_int_t,
7730        what: igraph_int_t,
7731        pos: *mut igraph_int_t,
7732    ) -> igraph_bool_t;
7733}
7734unsafe extern "C" {
7735    pub fn igraph_vector_int_contains_sorted(
7736        v: *const igraph_vector_int_t,
7737        what: igraph_int_t,
7738    ) -> igraph_bool_t;
7739}
7740unsafe extern "C" {
7741    pub fn igraph_vector_int_clear(v: *mut igraph_vector_int_t);
7742}
7743unsafe extern "C" {
7744    pub fn igraph_vector_int_resize(
7745        v: *mut igraph_vector_int_t,
7746        new_size: igraph_int_t,
7747    ) -> igraph_error_t;
7748}
7749unsafe extern "C" {
7750    pub fn igraph_vector_int_resize_min(v: *mut igraph_vector_int_t);
7751}
7752unsafe extern "C" {
7753    pub fn igraph_vector_int_reserve(
7754        v: *mut igraph_vector_int_t,
7755        capacity: igraph_int_t,
7756    ) -> igraph_error_t;
7757}
7758unsafe extern "C" {
7759    pub fn igraph_vector_int_push_back(
7760        v: *mut igraph_vector_int_t,
7761        e: igraph_int_t,
7762    ) -> igraph_error_t;
7763}
7764unsafe extern "C" {
7765    pub fn igraph_vector_int_pop_back(v: *mut igraph_vector_int_t) -> igraph_int_t;
7766}
7767unsafe extern "C" {
7768    pub fn igraph_vector_int_insert(
7769        v: *mut igraph_vector_int_t,
7770        pos: igraph_int_t,
7771        value: igraph_int_t,
7772    ) -> igraph_error_t;
7773}
7774unsafe extern "C" {
7775    pub fn igraph_vector_int_remove(v: *mut igraph_vector_int_t, elem: igraph_int_t);
7776}
7777unsafe extern "C" {
7778    pub fn igraph_vector_int_remove_fast(v: *mut igraph_vector_int_t, elem: igraph_int_t);
7779}
7780unsafe extern "C" {
7781    pub fn igraph_vector_int_remove_section(
7782        v: *mut igraph_vector_int_t,
7783        from: igraph_int_t,
7784        to: igraph_int_t,
7785    );
7786}
7787unsafe extern "C" {
7788    pub fn igraph_vector_int_sort(v: *mut igraph_vector_int_t);
7789}
7790unsafe extern "C" {
7791    pub fn igraph_vector_int_reverse_sort(v: *mut igraph_vector_int_t);
7792}
7793unsafe extern "C" {
7794    pub fn igraph_vector_int_sort_ind(
7795        v: *const igraph_vector_int_t,
7796        inds: *mut igraph_vector_int_t,
7797        order: igraph_order_t,
7798    ) -> igraph_error_t;
7799}
7800unsafe extern "C" {
7801    pub fn igraph_vector_int_print(v: *const igraph_vector_int_t) -> igraph_error_t;
7802}
7803unsafe extern "C" {
7804    pub fn igraph_vector_int_fprint(
7805        v: *const igraph_vector_int_t,
7806        file: *mut FILE,
7807    ) -> igraph_error_t;
7808}
7809unsafe extern "C" {
7810    pub fn igraph_vector_int_printf(
7811        v: *const igraph_vector_int_t,
7812        format: *const ::std::os::raw::c_char,
7813    ) -> igraph_error_t;
7814}
7815unsafe extern "C" {
7816    pub fn igraph_vector_int_init_real(
7817        v: *mut igraph_vector_int_t,
7818        no: ::std::os::raw::c_int,
7819        ...
7820    ) -> igraph_error_t;
7821}
7822unsafe extern "C" {
7823    pub fn igraph_vector_int_init_int(
7824        v: *mut igraph_vector_int_t,
7825        no: ::std::os::raw::c_int,
7826        ...
7827    ) -> igraph_error_t;
7828}
7829unsafe extern "C" {
7830    pub fn igraph_vector_int_init_real_end(
7831        v: *mut igraph_vector_int_t,
7832        endmark: f64,
7833        ...
7834    ) -> igraph_error_t;
7835}
7836unsafe extern "C" {
7837    pub fn igraph_vector_int_init_int_end(
7838        v: *mut igraph_vector_int_t,
7839        endmark: ::std::os::raw::c_int,
7840        ...
7841    ) -> igraph_error_t;
7842}
7843unsafe extern "C" {
7844    pub fn igraph_vector_int_move_interval(
7845        v: *mut igraph_vector_int_t,
7846        begin: igraph_int_t,
7847        end: igraph_int_t,
7848        to: igraph_int_t,
7849    ) -> igraph_error_t;
7850}
7851unsafe extern "C" {
7852    pub fn igraph_vector_int_filter_smaller(
7853        v: *mut igraph_vector_int_t,
7854        elem: igraph_int_t,
7855    ) -> igraph_error_t;
7856}
7857unsafe extern "C" {
7858    pub fn igraph_vector_int_get_interval(
7859        v: *const igraph_vector_int_t,
7860        res: *mut igraph_vector_int_t,
7861        from: igraph_int_t,
7862        to: igraph_int_t,
7863    ) -> igraph_error_t;
7864}
7865unsafe extern "C" {
7866    pub fn igraph_vector_int_difference_sorted(
7867        v1: *const igraph_vector_int_t,
7868        v2: *const igraph_vector_int_t,
7869        result: *mut igraph_vector_int_t,
7870    ) -> igraph_error_t;
7871}
7872unsafe extern "C" {
7873    pub fn igraph_vector_int_difference_and_intersection_sorted(
7874        v1: *const igraph_vector_int_t,
7875        v2: *const igraph_vector_int_t,
7876        vdiff12: *mut igraph_vector_int_t,
7877        vdiff21: *mut igraph_vector_int_t,
7878        vinter: *mut igraph_vector_int_t,
7879    ) -> igraph_error_t;
7880}
7881unsafe extern "C" {
7882    pub fn igraph_vector_int_intersect_sorted(
7883        v1: *const igraph_vector_int_t,
7884        v2: *const igraph_vector_int_t,
7885        result: *mut igraph_vector_int_t,
7886    ) -> igraph_error_t;
7887}
7888unsafe extern "C" {
7889    pub fn igraph_vector_int_intersection_size_sorted(
7890        v1: *const igraph_vector_int_t,
7891        v2: *const igraph_vector_int_t,
7892    ) -> igraph_int_t;
7893}
7894unsafe extern "C" {
7895    pub fn igraph_vector_int_index(
7896        v: *const igraph_vector_int_t,
7897        newv: *mut igraph_vector_int_t,
7898        idx: *const igraph_vector_int_t,
7899    ) -> igraph_error_t;
7900}
7901unsafe extern "C" {
7902    pub fn igraph_vector_int_index_in_place(
7903        v: *mut igraph_vector_int_t,
7904        idx: *const igraph_vector_int_t,
7905    ) -> igraph_error_t;
7906}
7907unsafe extern "C" {
7908    pub fn igraph_vector_complex_init(
7909        v: *mut igraph_vector_complex_t,
7910        size: igraph_int_t,
7911    ) -> igraph_error_t;
7912}
7913unsafe extern "C" {
7914    pub fn igraph_vector_complex_init_array(
7915        v: *mut igraph_vector_complex_t,
7916        data: *const igraph_complex_t,
7917        length: igraph_int_t,
7918    ) -> igraph_error_t;
7919}
7920unsafe extern "C" {
7921    pub fn igraph_vector_complex_init_copy(
7922        to: *mut igraph_vector_complex_t,
7923        from: *const igraph_vector_complex_t,
7924    ) -> igraph_error_t;
7925}
7926unsafe extern "C" {
7927    pub fn igraph_vector_complex_destroy(v: *mut igraph_vector_complex_t);
7928}
7929unsafe extern "C" {
7930    pub fn igraph_vector_complex_capacity(v: *const igraph_vector_complex_t) -> igraph_int_t;
7931}
7932unsafe extern "C" {
7933    pub fn igraph_vector_complex_get(
7934        v: *const igraph_vector_complex_t,
7935        pos: igraph_int_t,
7936    ) -> igraph_complex_t;
7937}
7938unsafe extern "C" {
7939    pub fn igraph_vector_complex_get_ptr(
7940        v: *const igraph_vector_complex_t,
7941        pos: igraph_int_t,
7942    ) -> *mut igraph_complex_t;
7943}
7944unsafe extern "C" {
7945    pub fn igraph_vector_complex_set(
7946        v: *mut igraph_vector_complex_t,
7947        pos: igraph_int_t,
7948        value: igraph_complex_t,
7949    );
7950}
7951unsafe extern "C" {
7952    pub fn igraph_vector_complex_tail(v: *const igraph_vector_complex_t) -> igraph_complex_t;
7953}
7954unsafe extern "C" {
7955    pub fn igraph_vector_complex_null(v: *mut igraph_vector_complex_t);
7956}
7957unsafe extern "C" {
7958    pub fn igraph_vector_complex_fill(v: *mut igraph_vector_complex_t, e: igraph_complex_t);
7959}
7960unsafe extern "C" {
7961    pub fn igraph_vector_complex_view(
7962        data: *const igraph_complex_t,
7963        length: igraph_int_t,
7964    ) -> igraph_vector_complex_t;
7965}
7966unsafe extern "C" {
7967    pub fn igraph_vector_complex_copy_to(
7968        v: *const igraph_vector_complex_t,
7969        to: *mut igraph_complex_t,
7970    );
7971}
7972unsafe extern "C" {
7973    pub fn igraph_vector_complex_update(
7974        to: *mut igraph_vector_complex_t,
7975        from: *const igraph_vector_complex_t,
7976    ) -> igraph_error_t;
7977}
7978unsafe extern "C" {
7979    pub fn igraph_vector_complex_append(
7980        to: *mut igraph_vector_complex_t,
7981        from: *const igraph_vector_complex_t,
7982    ) -> igraph_error_t;
7983}
7984unsafe extern "C" {
7985    pub fn igraph_vector_complex_swap(
7986        v1: *mut igraph_vector_complex_t,
7987        v2: *mut igraph_vector_complex_t,
7988    );
7989}
7990unsafe extern "C" {
7991    pub fn igraph_vector_complex_swap_elements(
7992        v: *mut igraph_vector_complex_t,
7993        i: igraph_int_t,
7994        j: igraph_int_t,
7995    );
7996}
7997unsafe extern "C" {
7998    pub fn igraph_vector_complex_reverse(v: *mut igraph_vector_complex_t);
7999}
8000unsafe extern "C" {
8001    pub fn igraph_vector_complex_reverse_section(
8002        v: *mut igraph_vector_complex_t,
8003        from: igraph_int_t,
8004        to: igraph_int_t,
8005    );
8006}
8007unsafe extern "C" {
8008    pub fn igraph_vector_complex_rotate_left(v: *mut igraph_vector_complex_t, n: igraph_int_t);
8009}
8010unsafe extern "C" {
8011    pub fn igraph_vector_complex_permute(
8012        v: *mut igraph_vector_complex_t,
8013        ind: *const igraph_vector_int_t,
8014    ) -> igraph_error_t;
8015}
8016unsafe extern "C" {
8017    pub fn igraph_vector_complex_shuffle(v: *mut igraph_vector_complex_t);
8018}
8019unsafe extern "C" {
8020    pub fn igraph_vector_complex_add_constant(
8021        v: *mut igraph_vector_complex_t,
8022        plus: igraph_complex_t,
8023    );
8024}
8025unsafe extern "C" {
8026    pub fn igraph_vector_complex_scale(v: *mut igraph_vector_complex_t, by: igraph_complex_t);
8027}
8028unsafe extern "C" {
8029    pub fn igraph_vector_complex_add(
8030        v1: *mut igraph_vector_complex_t,
8031        v2: *const igraph_vector_complex_t,
8032    ) -> igraph_error_t;
8033}
8034unsafe extern "C" {
8035    pub fn igraph_vector_complex_sub(
8036        v1: *mut igraph_vector_complex_t,
8037        v2: *const igraph_vector_complex_t,
8038    ) -> igraph_error_t;
8039}
8040unsafe extern "C" {
8041    pub fn igraph_vector_complex_mul(
8042        v1: *mut igraph_vector_complex_t,
8043        v2: *const igraph_vector_complex_t,
8044    ) -> igraph_error_t;
8045}
8046unsafe extern "C" {
8047    pub fn igraph_vector_complex_div(
8048        v1: *mut igraph_vector_complex_t,
8049        v2: *const igraph_vector_complex_t,
8050    ) -> igraph_error_t;
8051}
8052unsafe extern "C" {
8053    pub fn igraph_vector_complex_cumsum(
8054        to: *mut igraph_vector_complex_t,
8055        from: *const igraph_vector_complex_t,
8056    ) -> igraph_error_t;
8057}
8058unsafe extern "C" {
8059    pub fn igraph_vector_complex_all_e(
8060        lhs: *const igraph_vector_complex_t,
8061        rhs: *const igraph_vector_complex_t,
8062    ) -> igraph_bool_t;
8063}
8064unsafe extern "C" {
8065    pub fn igraph_vector_complex_empty(v: *const igraph_vector_complex_t) -> igraph_bool_t;
8066}
8067unsafe extern "C" {
8068    pub fn igraph_vector_complex_size(v: *const igraph_vector_complex_t) -> igraph_int_t;
8069}
8070unsafe extern "C" {
8071    pub fn igraph_vector_complex_isnull(v: *const igraph_vector_complex_t) -> igraph_bool_t;
8072}
8073unsafe extern "C" {
8074    pub fn igraph_vector_complex_sum(v: *const igraph_vector_complex_t) -> igraph_complex_t;
8075}
8076unsafe extern "C" {
8077    pub fn igraph_vector_complex_sumsq(v: *const igraph_vector_complex_t) -> igraph_real_t;
8078}
8079unsafe extern "C" {
8080    pub fn igraph_vector_complex_prod(v: *const igraph_vector_complex_t) -> igraph_complex_t;
8081}
8082unsafe extern "C" {
8083    pub fn igraph_vector_complex_is_equal(
8084        lhs: *const igraph_vector_complex_t,
8085        rhs: *const igraph_vector_complex_t,
8086    ) -> igraph_bool_t;
8087}
8088unsafe extern "C" {
8089    pub fn igraph_vector_complex_contains(
8090        v: *const igraph_vector_complex_t,
8091        e: igraph_complex_t,
8092    ) -> igraph_bool_t;
8093}
8094unsafe extern "C" {
8095    pub fn igraph_vector_complex_search(
8096        v: *const igraph_vector_complex_t,
8097        from: igraph_int_t,
8098        what: igraph_complex_t,
8099        pos: *mut igraph_int_t,
8100    ) -> igraph_bool_t;
8101}
8102unsafe extern "C" {
8103    pub fn igraph_vector_complex_clear(v: *mut igraph_vector_complex_t);
8104}
8105unsafe extern "C" {
8106    pub fn igraph_vector_complex_resize(
8107        v: *mut igraph_vector_complex_t,
8108        new_size: igraph_int_t,
8109    ) -> igraph_error_t;
8110}
8111unsafe extern "C" {
8112    pub fn igraph_vector_complex_resize_min(v: *mut igraph_vector_complex_t);
8113}
8114unsafe extern "C" {
8115    pub fn igraph_vector_complex_reserve(
8116        v: *mut igraph_vector_complex_t,
8117        capacity: igraph_int_t,
8118    ) -> igraph_error_t;
8119}
8120unsafe extern "C" {
8121    pub fn igraph_vector_complex_push_back(
8122        v: *mut igraph_vector_complex_t,
8123        e: igraph_complex_t,
8124    ) -> igraph_error_t;
8125}
8126unsafe extern "C" {
8127    pub fn igraph_vector_complex_pop_back(v: *mut igraph_vector_complex_t) -> igraph_complex_t;
8128}
8129unsafe extern "C" {
8130    pub fn igraph_vector_complex_insert(
8131        v: *mut igraph_vector_complex_t,
8132        pos: igraph_int_t,
8133        value: igraph_complex_t,
8134    ) -> igraph_error_t;
8135}
8136unsafe extern "C" {
8137    pub fn igraph_vector_complex_remove(v: *mut igraph_vector_complex_t, elem: igraph_int_t);
8138}
8139unsafe extern "C" {
8140    pub fn igraph_vector_complex_remove_fast(v: *mut igraph_vector_complex_t, elem: igraph_int_t);
8141}
8142unsafe extern "C" {
8143    pub fn igraph_vector_complex_remove_section(
8144        v: *mut igraph_vector_complex_t,
8145        from: igraph_int_t,
8146        to: igraph_int_t,
8147    );
8148}
8149unsafe extern "C" {
8150    pub fn igraph_vector_complex_print(v: *const igraph_vector_complex_t) -> igraph_error_t;
8151}
8152unsafe extern "C" {
8153    pub fn igraph_vector_complex_fprint(
8154        v: *const igraph_vector_complex_t,
8155        file: *mut FILE,
8156    ) -> igraph_error_t;
8157}
8158unsafe extern "C" {
8159    pub fn igraph_vector_complex_real(
8160        v: *const igraph_vector_complex_t,
8161        real: *mut igraph_vector_t,
8162    ) -> igraph_error_t;
8163}
8164unsafe extern "C" {
8165    pub fn igraph_vector_complex_imag(
8166        v: *const igraph_vector_complex_t,
8167        imag: *mut igraph_vector_t,
8168    ) -> igraph_error_t;
8169}
8170unsafe extern "C" {
8171    pub fn igraph_vector_complex_realimag(
8172        v: *const igraph_vector_complex_t,
8173        real: *mut igraph_vector_t,
8174        imag: *mut igraph_vector_t,
8175    ) -> igraph_error_t;
8176}
8177unsafe extern "C" {
8178    pub fn igraph_vector_complex_create(
8179        v: *mut igraph_vector_complex_t,
8180        real: *const igraph_vector_t,
8181        imag: *const igraph_vector_t,
8182    ) -> igraph_error_t;
8183}
8184unsafe extern "C" {
8185    pub fn igraph_vector_complex_create_polar(
8186        v: *mut igraph_vector_complex_t,
8187        r: *const igraph_vector_t,
8188        theta: *const igraph_vector_t,
8189    ) -> igraph_error_t;
8190}
8191unsafe extern "C" {
8192    pub fn igraph_vector_complex_all_almost_e(
8193        lhs: *const igraph_vector_complex_t,
8194        rhs: *const igraph_vector_complex_t,
8195        eps: igraph_real_t,
8196    ) -> igraph_bool_t;
8197}
8198unsafe extern "C" {
8199    pub fn igraph_vector_complex_init_real(
8200        v: *mut igraph_vector_complex_t,
8201        no: ::std::os::raw::c_int,
8202        ...
8203    ) -> igraph_error_t;
8204}
8205unsafe extern "C" {
8206    pub fn igraph_vector_complex_init_int(
8207        v: *mut igraph_vector_complex_t,
8208        no: ::std::os::raw::c_int,
8209        ...
8210    ) -> igraph_error_t;
8211}
8212unsafe extern "C" {
8213    pub fn igraph_vector_complex_init_real_end(
8214        v: *mut igraph_vector_complex_t,
8215        endmark: f64,
8216        ...
8217    ) -> igraph_error_t;
8218}
8219unsafe extern "C" {
8220    pub fn igraph_vector_complex_init_int_end(
8221        v: *mut igraph_vector_complex_t,
8222        endmark: ::std::os::raw::c_int,
8223        ...
8224    ) -> igraph_error_t;
8225}
8226unsafe extern "C" {
8227    pub fn igraph_vector_complex_move_interval(
8228        v: *mut igraph_vector_complex_t,
8229        begin: igraph_int_t,
8230        end: igraph_int_t,
8231        to: igraph_int_t,
8232    ) -> igraph_error_t;
8233}
8234unsafe extern "C" {
8235    pub fn igraph_vector_complex_get_interval(
8236        v: *const igraph_vector_complex_t,
8237        res: *mut igraph_vector_complex_t,
8238        from: igraph_int_t,
8239        to: igraph_int_t,
8240    ) -> igraph_error_t;
8241}
8242unsafe extern "C" {
8243    pub fn igraph_vector_complex_index(
8244        v: *const igraph_vector_complex_t,
8245        newv: *mut igraph_vector_complex_t,
8246        idx: *const igraph_vector_int_t,
8247    ) -> igraph_error_t;
8248}
8249unsafe extern "C" {
8250    pub fn igraph_vector_complex_index_in_place(
8251        v: *mut igraph_vector_complex_t,
8252        idx: *const igraph_vector_int_t,
8253    ) -> igraph_error_t;
8254}
8255unsafe extern "C" {
8256    pub fn igraph_vector_floor(
8257        from: *const igraph_vector_t,
8258        to: *mut igraph_vector_int_t,
8259    ) -> igraph_error_t;
8260}
8261unsafe extern "C" {
8262    pub fn igraph_vector_round(
8263        from: *const igraph_vector_t,
8264        to: *mut igraph_vector_int_t,
8265    ) -> igraph_error_t;
8266}
8267unsafe extern "C" {
8268    pub fn igraph_vector_all_almost_e(
8269        lhs: *const igraph_vector_t,
8270        rhs: *const igraph_vector_t,
8271        eps: igraph_real_t,
8272    ) -> igraph_bool_t;
8273}
8274unsafe extern "C" {
8275    pub fn igraph_vector_zapsmall(v: *mut igraph_vector_t, tol: igraph_real_t) -> igraph_error_t;
8276}
8277unsafe extern "C" {
8278    pub fn igraph_vector_complex_zapsmall(
8279        v: *mut igraph_vector_complex_t,
8280        tol: igraph_real_t,
8281    ) -> igraph_error_t;
8282}
8283unsafe extern "C" {
8284    pub fn igraph_vector_is_nan(
8285        v: *const igraph_vector_t,
8286        is_nan: *mut igraph_vector_bool_t,
8287    ) -> igraph_error_t;
8288}
8289unsafe extern "C" {
8290    pub fn igraph_vector_is_any_nan(v: *const igraph_vector_t) -> igraph_bool_t;
8291}
8292unsafe extern "C" {
8293    pub fn igraph_vector_is_all_finite(v: *const igraph_vector_t) -> igraph_bool_t;
8294}
8295unsafe extern "C" {
8296    pub fn igraph_vector_int_pair_order(
8297        v: *const igraph_vector_int_t,
8298        v2: *const igraph_vector_int_t,
8299        res: *mut igraph_vector_int_t,
8300        maxval: igraph_int_t,
8301    ) -> igraph_error_t;
8302}
8303unsafe extern "C" {
8304    pub fn igraph_i_vector_int_order(
8305        v: *const igraph_vector_int_t,
8306        res: *mut igraph_vector_int_t,
8307        maxval: igraph_int_t,
8308    ) -> igraph_error_t;
8309}
8310unsafe extern "C" {
8311    pub fn igraph_i_vector_int_rank(
8312        v: *const igraph_vector_int_t,
8313        res: *mut igraph_vector_int_t,
8314        maxval: igraph_int_t,
8315    ) -> igraph_error_t;
8316}
8317#[repr(C)]
8318#[derive(Debug, Copy, Clone)]
8319pub struct igraph_matrix_t {
8320    pub data: igraph_vector_t,
8321    pub nrow: igraph_int_t,
8322    pub ncol: igraph_int_t,
8323}
8324#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8325const _: () = {
8326    ["Size of igraph_matrix_t"][::std::mem::size_of::<igraph_matrix_t>() - 40usize];
8327    ["Alignment of igraph_matrix_t"][::std::mem::align_of::<igraph_matrix_t>() - 8usize];
8328    ["Offset of field: igraph_matrix_t::data"]
8329        [::std::mem::offset_of!(igraph_matrix_t, data) - 0usize];
8330    ["Offset of field: igraph_matrix_t::nrow"]
8331        [::std::mem::offset_of!(igraph_matrix_t, nrow) - 24usize];
8332    ["Offset of field: igraph_matrix_t::ncol"]
8333        [::std::mem::offset_of!(igraph_matrix_t, ncol) - 32usize];
8334};
8335unsafe extern "C" {
8336    pub fn igraph_matrix_init(
8337        m: *mut igraph_matrix_t,
8338        nrow: igraph_int_t,
8339        ncol: igraph_int_t,
8340    ) -> igraph_error_t;
8341}
8342unsafe extern "C" {
8343    pub fn igraph_matrix_init_array(
8344        m: *mut igraph_matrix_t,
8345        data: *const igraph_real_t,
8346        nrow: igraph_int_t,
8347        ncol: igraph_int_t,
8348        storage: igraph_matrix_storage_t,
8349    ) -> igraph_error_t;
8350}
8351unsafe extern "C" {
8352    pub fn igraph_matrix_init_copy(
8353        to: *mut igraph_matrix_t,
8354        from: *const igraph_matrix_t,
8355    ) -> igraph_error_t;
8356}
8357unsafe extern "C" {
8358    pub fn igraph_matrix_destroy(m: *mut igraph_matrix_t);
8359}
8360unsafe extern "C" {
8361    pub fn igraph_matrix_capacity(m: *const igraph_matrix_t) -> igraph_int_t;
8362}
8363unsafe extern "C" {
8364    pub fn igraph_matrix_get(
8365        m: *const igraph_matrix_t,
8366        row: igraph_int_t,
8367        col: igraph_int_t,
8368    ) -> igraph_real_t;
8369}
8370unsafe extern "C" {
8371    pub fn igraph_matrix_get_ptr(
8372        m: *const igraph_matrix_t,
8373        row: igraph_int_t,
8374        col: igraph_int_t,
8375    ) -> *mut igraph_real_t;
8376}
8377unsafe extern "C" {
8378    pub fn igraph_matrix_set(
8379        m: *mut igraph_matrix_t,
8380        row: igraph_int_t,
8381        col: igraph_int_t,
8382        value: igraph_real_t,
8383    );
8384}
8385unsafe extern "C" {
8386    pub fn igraph_matrix_null(m: *mut igraph_matrix_t);
8387}
8388unsafe extern "C" {
8389    pub fn igraph_matrix_fill(m: *mut igraph_matrix_t, e: igraph_real_t);
8390}
8391unsafe extern "C" {
8392    pub fn igraph_matrix_view(
8393        data: *const igraph_real_t,
8394        nrow: igraph_int_t,
8395        ncol: igraph_int_t,
8396    ) -> igraph_matrix_t;
8397}
8398unsafe extern "C" {
8399    pub fn igraph_matrix_view_from_vector(
8400        v: *const igraph_vector_t,
8401        ncol: igraph_int_t,
8402    ) -> igraph_matrix_t;
8403}
8404unsafe extern "C" {
8405    pub fn igraph_matrix_copy_to(
8406        m: *const igraph_matrix_t,
8407        to: *mut igraph_real_t,
8408        storage: igraph_matrix_storage_t,
8409    );
8410}
8411unsafe extern "C" {
8412    pub fn igraph_matrix_update(
8413        to: *mut igraph_matrix_t,
8414        from: *const igraph_matrix_t,
8415    ) -> igraph_error_t;
8416}
8417unsafe extern "C" {
8418    pub fn igraph_matrix_rbind(
8419        to: *mut igraph_matrix_t,
8420        from: *const igraph_matrix_t,
8421    ) -> igraph_error_t;
8422}
8423unsafe extern "C" {
8424    pub fn igraph_matrix_cbind(
8425        to: *mut igraph_matrix_t,
8426        from: *const igraph_matrix_t,
8427    ) -> igraph_error_t;
8428}
8429unsafe extern "C" {
8430    pub fn igraph_matrix_swap(m1: *mut igraph_matrix_t, m2: *mut igraph_matrix_t);
8431}
8432unsafe extern "C" {
8433    pub fn igraph_matrix_get_row(
8434        m: *const igraph_matrix_t,
8435        res: *mut igraph_vector_t,
8436        index: igraph_int_t,
8437    ) -> igraph_error_t;
8438}
8439unsafe extern "C" {
8440    pub fn igraph_matrix_get_col(
8441        m: *const igraph_matrix_t,
8442        res: *mut igraph_vector_t,
8443        index: igraph_int_t,
8444    ) -> igraph_error_t;
8445}
8446unsafe extern "C" {
8447    pub fn igraph_matrix_set_row(
8448        m: *mut igraph_matrix_t,
8449        v: *const igraph_vector_t,
8450        index: igraph_int_t,
8451    ) -> igraph_error_t;
8452}
8453unsafe extern "C" {
8454    pub fn igraph_matrix_set_col(
8455        m: *mut igraph_matrix_t,
8456        v: *const igraph_vector_t,
8457        index: igraph_int_t,
8458    ) -> igraph_error_t;
8459}
8460unsafe extern "C" {
8461    pub fn igraph_matrix_select_rows(
8462        m: *const igraph_matrix_t,
8463        res: *mut igraph_matrix_t,
8464        rows: *const igraph_vector_int_t,
8465    ) -> igraph_error_t;
8466}
8467unsafe extern "C" {
8468    pub fn igraph_matrix_select_cols(
8469        m: *const igraph_matrix_t,
8470        res: *mut igraph_matrix_t,
8471        cols: *const igraph_vector_int_t,
8472    ) -> igraph_error_t;
8473}
8474unsafe extern "C" {
8475    pub fn igraph_matrix_select_rows_cols(
8476        m: *const igraph_matrix_t,
8477        res: *mut igraph_matrix_t,
8478        rows: *const igraph_vector_int_t,
8479        cols: *const igraph_vector_int_t,
8480    ) -> igraph_error_t;
8481}
8482unsafe extern "C" {
8483    pub fn igraph_matrix_swap_rows(
8484        m: *mut igraph_matrix_t,
8485        i: igraph_int_t,
8486        j: igraph_int_t,
8487    ) -> igraph_error_t;
8488}
8489unsafe extern "C" {
8490    pub fn igraph_matrix_swap_cols(
8491        m: *mut igraph_matrix_t,
8492        i: igraph_int_t,
8493        j: igraph_int_t,
8494    ) -> igraph_error_t;
8495}
8496unsafe extern "C" {
8497    pub fn igraph_matrix_swap_rowcol(
8498        m: *mut igraph_matrix_t,
8499        i: igraph_int_t,
8500        j: igraph_int_t,
8501    ) -> igraph_error_t;
8502}
8503unsafe extern "C" {
8504    pub fn igraph_matrix_transpose(m: *mut igraph_matrix_t) -> igraph_error_t;
8505}
8506unsafe extern "C" {
8507    pub fn igraph_matrix_add(
8508        m1: *mut igraph_matrix_t,
8509        m2: *const igraph_matrix_t,
8510    ) -> igraph_error_t;
8511}
8512unsafe extern "C" {
8513    pub fn igraph_matrix_sub(
8514        m1: *mut igraph_matrix_t,
8515        m2: *const igraph_matrix_t,
8516    ) -> igraph_error_t;
8517}
8518unsafe extern "C" {
8519    pub fn igraph_matrix_mul_elements(
8520        m1: *mut igraph_matrix_t,
8521        m2: *const igraph_matrix_t,
8522    ) -> igraph_error_t;
8523}
8524unsafe extern "C" {
8525    pub fn igraph_matrix_div_elements(
8526        m1: *mut igraph_matrix_t,
8527        m2: *const igraph_matrix_t,
8528    ) -> igraph_error_t;
8529}
8530unsafe extern "C" {
8531    pub fn igraph_matrix_scale(m: *mut igraph_matrix_t, by: igraph_real_t);
8532}
8533unsafe extern "C" {
8534    pub fn igraph_matrix_add_constant(m: *mut igraph_matrix_t, plus: igraph_real_t);
8535}
8536unsafe extern "C" {
8537    pub fn igraph_matrix_min(m: *const igraph_matrix_t) -> igraph_real_t;
8538}
8539unsafe extern "C" {
8540    pub fn igraph_matrix_max(m: *const igraph_matrix_t) -> igraph_real_t;
8541}
8542unsafe extern "C" {
8543    pub fn igraph_matrix_which_min(
8544        m: *const igraph_matrix_t,
8545        i: *mut igraph_int_t,
8546        j: *mut igraph_int_t,
8547    );
8548}
8549unsafe extern "C" {
8550    pub fn igraph_matrix_which_max(
8551        m: *const igraph_matrix_t,
8552        i: *mut igraph_int_t,
8553        j: *mut igraph_int_t,
8554    );
8555}
8556unsafe extern "C" {
8557    pub fn igraph_matrix_minmax(
8558        m: *const igraph_matrix_t,
8559        min: *mut igraph_real_t,
8560        max: *mut igraph_real_t,
8561    );
8562}
8563unsafe extern "C" {
8564    pub fn igraph_matrix_which_minmax(
8565        m: *const igraph_matrix_t,
8566        imin: *mut igraph_int_t,
8567        jmin: *mut igraph_int_t,
8568        imax: *mut igraph_int_t,
8569        jmax: *mut igraph_int_t,
8570    );
8571}
8572unsafe extern "C" {
8573    pub fn igraph_matrix_all_e(
8574        lhs: *const igraph_matrix_t,
8575        rhs: *const igraph_matrix_t,
8576    ) -> igraph_bool_t;
8577}
8578unsafe extern "C" {
8579    pub fn igraph_matrix_all_l(
8580        lhs: *const igraph_matrix_t,
8581        rhs: *const igraph_matrix_t,
8582    ) -> igraph_bool_t;
8583}
8584unsafe extern "C" {
8585    pub fn igraph_matrix_all_g(
8586        lhs: *const igraph_matrix_t,
8587        rhs: *const igraph_matrix_t,
8588    ) -> igraph_bool_t;
8589}
8590unsafe extern "C" {
8591    pub fn igraph_matrix_all_le(
8592        lhs: *const igraph_matrix_t,
8593        rhs: *const igraph_matrix_t,
8594    ) -> igraph_bool_t;
8595}
8596unsafe extern "C" {
8597    pub fn igraph_matrix_all_ge(
8598        lhs: *const igraph_matrix_t,
8599        rhs: *const igraph_matrix_t,
8600    ) -> igraph_bool_t;
8601}
8602unsafe extern "C" {
8603    pub fn igraph_matrix_isnull(m: *const igraph_matrix_t) -> igraph_bool_t;
8604}
8605unsafe extern "C" {
8606    pub fn igraph_matrix_empty(m: *const igraph_matrix_t) -> igraph_bool_t;
8607}
8608unsafe extern "C" {
8609    pub fn igraph_matrix_size(m: *const igraph_matrix_t) -> igraph_int_t;
8610}
8611unsafe extern "C" {
8612    pub fn igraph_matrix_nrow(m: *const igraph_matrix_t) -> igraph_int_t;
8613}
8614unsafe extern "C" {
8615    pub fn igraph_matrix_ncol(m: *const igraph_matrix_t) -> igraph_int_t;
8616}
8617unsafe extern "C" {
8618    pub fn igraph_matrix_is_symmetric(m: *const igraph_matrix_t) -> igraph_bool_t;
8619}
8620unsafe extern "C" {
8621    pub fn igraph_matrix_sum(m: *const igraph_matrix_t) -> igraph_real_t;
8622}
8623unsafe extern "C" {
8624    pub fn igraph_matrix_prod(m: *const igraph_matrix_t) -> igraph_real_t;
8625}
8626unsafe extern "C" {
8627    pub fn igraph_matrix_rowsum(
8628        m: *const igraph_matrix_t,
8629        res: *mut igraph_vector_t,
8630    ) -> igraph_error_t;
8631}
8632unsafe extern "C" {
8633    pub fn igraph_matrix_colsum(
8634        m: *const igraph_matrix_t,
8635        res: *mut igraph_vector_t,
8636    ) -> igraph_error_t;
8637}
8638unsafe extern "C" {
8639    pub fn igraph_matrix_is_equal(
8640        m1: *const igraph_matrix_t,
8641        m2: *const igraph_matrix_t,
8642    ) -> igraph_bool_t;
8643}
8644unsafe extern "C" {
8645    pub fn igraph_matrix_maxdifference(
8646        m1: *const igraph_matrix_t,
8647        m2: *const igraph_matrix_t,
8648    ) -> igraph_real_t;
8649}
8650unsafe extern "C" {
8651    pub fn igraph_matrix_contains(m: *const igraph_matrix_t, e: igraph_real_t) -> igraph_bool_t;
8652}
8653unsafe extern "C" {
8654    pub fn igraph_matrix_search(
8655        m: *const igraph_matrix_t,
8656        from: igraph_int_t,
8657        what: igraph_real_t,
8658        pos: *mut igraph_int_t,
8659        row: *mut igraph_int_t,
8660        col: *mut igraph_int_t,
8661    ) -> igraph_bool_t;
8662}
8663unsafe extern "C" {
8664    pub fn igraph_matrix_resize(
8665        m: *mut igraph_matrix_t,
8666        nrow: igraph_int_t,
8667        ncol: igraph_int_t,
8668    ) -> igraph_error_t;
8669}
8670unsafe extern "C" {
8671    pub fn igraph_matrix_resize_min(m: *mut igraph_matrix_t);
8672}
8673unsafe extern "C" {
8674    pub fn igraph_matrix_add_cols(m: *mut igraph_matrix_t, n: igraph_int_t) -> igraph_error_t;
8675}
8676unsafe extern "C" {
8677    pub fn igraph_matrix_add_rows(m: *mut igraph_matrix_t, n: igraph_int_t) -> igraph_error_t;
8678}
8679unsafe extern "C" {
8680    pub fn igraph_matrix_remove_col(m: *mut igraph_matrix_t, col: igraph_int_t) -> igraph_error_t;
8681}
8682unsafe extern "C" {
8683    pub fn igraph_matrix_remove_row(m: *mut igraph_matrix_t, row: igraph_int_t) -> igraph_error_t;
8684}
8685unsafe extern "C" {
8686    pub fn igraph_matrix_print(m: *const igraph_matrix_t) -> igraph_error_t;
8687}
8688unsafe extern "C" {
8689    pub fn igraph_matrix_fprint(m: *const igraph_matrix_t, file: *mut FILE) -> igraph_error_t;
8690}
8691unsafe extern "C" {
8692    pub fn igraph_matrix_printf(
8693        m: *const igraph_matrix_t,
8694        format: *const ::std::os::raw::c_char,
8695    ) -> igraph_error_t;
8696}
8697unsafe extern "C" {
8698    pub fn igraph_matrix_permdelete_rows(
8699        m: *mut igraph_matrix_t,
8700        index: *mut igraph_int_t,
8701        nremove: igraph_int_t,
8702    ) -> igraph_error_t;
8703}
8704#[repr(C)]
8705#[derive(Debug, Clone)]
8706pub struct igraph_matrix_int_t {
8707    pub data: igraph_vector_int_t,
8708    pub nrow: igraph_int_t,
8709    pub ncol: igraph_int_t,
8710}
8711#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8712const _: () = {
8713    ["Size of igraph_matrix_int_t"][::std::mem::size_of::<igraph_matrix_int_t>() - 40usize];
8714    ["Alignment of igraph_matrix_int_t"][::std::mem::align_of::<igraph_matrix_int_t>() - 8usize];
8715    ["Offset of field: igraph_matrix_int_t::data"]
8716        [::std::mem::offset_of!(igraph_matrix_int_t, data) - 0usize];
8717    ["Offset of field: igraph_matrix_int_t::nrow"]
8718        [::std::mem::offset_of!(igraph_matrix_int_t, nrow) - 24usize];
8719    ["Offset of field: igraph_matrix_int_t::ncol"]
8720        [::std::mem::offset_of!(igraph_matrix_int_t, ncol) - 32usize];
8721};
8722unsafe extern "C" {
8723    pub fn igraph_matrix_int_init(
8724        m: *mut igraph_matrix_int_t,
8725        nrow: igraph_int_t,
8726        ncol: igraph_int_t,
8727    ) -> igraph_error_t;
8728}
8729unsafe extern "C" {
8730    pub fn igraph_matrix_int_init_array(
8731        m: *mut igraph_matrix_int_t,
8732        data: *const igraph_int_t,
8733        nrow: igraph_int_t,
8734        ncol: igraph_int_t,
8735        storage: igraph_matrix_storage_t,
8736    ) -> igraph_error_t;
8737}
8738unsafe extern "C" {
8739    pub fn igraph_matrix_int_init_copy(
8740        to: *mut igraph_matrix_int_t,
8741        from: *const igraph_matrix_int_t,
8742    ) -> igraph_error_t;
8743}
8744unsafe extern "C" {
8745    pub fn igraph_matrix_int_destroy(m: *mut igraph_matrix_int_t);
8746}
8747unsafe extern "C" {
8748    pub fn igraph_matrix_int_capacity(m: *const igraph_matrix_int_t) -> igraph_int_t;
8749}
8750unsafe extern "C" {
8751    pub fn igraph_matrix_int_get(
8752        m: *const igraph_matrix_int_t,
8753        row: igraph_int_t,
8754        col: igraph_int_t,
8755    ) -> igraph_int_t;
8756}
8757unsafe extern "C" {
8758    pub fn igraph_matrix_int_get_ptr(
8759        m: *const igraph_matrix_int_t,
8760        row: igraph_int_t,
8761        col: igraph_int_t,
8762    ) -> *mut igraph_int_t;
8763}
8764unsafe extern "C" {
8765    pub fn igraph_matrix_int_set(
8766        m: *mut igraph_matrix_int_t,
8767        row: igraph_int_t,
8768        col: igraph_int_t,
8769        value: igraph_int_t,
8770    );
8771}
8772unsafe extern "C" {
8773    pub fn igraph_matrix_int_null(m: *mut igraph_matrix_int_t);
8774}
8775unsafe extern "C" {
8776    pub fn igraph_matrix_int_fill(m: *mut igraph_matrix_int_t, e: igraph_int_t);
8777}
8778unsafe extern "C" {
8779    pub fn igraph_matrix_int_view(
8780        data: *const igraph_int_t,
8781        nrow: igraph_int_t,
8782        ncol: igraph_int_t,
8783    ) -> igraph_matrix_int_t;
8784}
8785unsafe extern "C" {
8786    pub fn igraph_matrix_int_view_from_vector(
8787        v: *const igraph_vector_int_t,
8788        ncol: igraph_int_t,
8789    ) -> igraph_matrix_int_t;
8790}
8791unsafe extern "C" {
8792    pub fn igraph_matrix_int_copy_to(
8793        m: *const igraph_matrix_int_t,
8794        to: *mut igraph_int_t,
8795        storage: igraph_matrix_storage_t,
8796    );
8797}
8798unsafe extern "C" {
8799    pub fn igraph_matrix_int_update(
8800        to: *mut igraph_matrix_int_t,
8801        from: *const igraph_matrix_int_t,
8802    ) -> igraph_error_t;
8803}
8804unsafe extern "C" {
8805    pub fn igraph_matrix_int_rbind(
8806        to: *mut igraph_matrix_int_t,
8807        from: *const igraph_matrix_int_t,
8808    ) -> igraph_error_t;
8809}
8810unsafe extern "C" {
8811    pub fn igraph_matrix_int_cbind(
8812        to: *mut igraph_matrix_int_t,
8813        from: *const igraph_matrix_int_t,
8814    ) -> igraph_error_t;
8815}
8816unsafe extern "C" {
8817    pub fn igraph_matrix_int_swap(m1: *mut igraph_matrix_int_t, m2: *mut igraph_matrix_int_t);
8818}
8819unsafe extern "C" {
8820    pub fn igraph_matrix_int_get_row(
8821        m: *const igraph_matrix_int_t,
8822        res: *mut igraph_vector_int_t,
8823        index: igraph_int_t,
8824    ) -> igraph_error_t;
8825}
8826unsafe extern "C" {
8827    pub fn igraph_matrix_int_get_col(
8828        m: *const igraph_matrix_int_t,
8829        res: *mut igraph_vector_int_t,
8830        index: igraph_int_t,
8831    ) -> igraph_error_t;
8832}
8833unsafe extern "C" {
8834    pub fn igraph_matrix_int_set_row(
8835        m: *mut igraph_matrix_int_t,
8836        v: *const igraph_vector_int_t,
8837        index: igraph_int_t,
8838    ) -> igraph_error_t;
8839}
8840unsafe extern "C" {
8841    pub fn igraph_matrix_int_set_col(
8842        m: *mut igraph_matrix_int_t,
8843        v: *const igraph_vector_int_t,
8844        index: igraph_int_t,
8845    ) -> igraph_error_t;
8846}
8847unsafe extern "C" {
8848    pub fn igraph_matrix_int_select_rows(
8849        m: *const igraph_matrix_int_t,
8850        res: *mut igraph_matrix_int_t,
8851        rows: *const igraph_vector_int_t,
8852    ) -> igraph_error_t;
8853}
8854unsafe extern "C" {
8855    pub fn igraph_matrix_int_select_cols(
8856        m: *const igraph_matrix_int_t,
8857        res: *mut igraph_matrix_int_t,
8858        cols: *const igraph_vector_int_t,
8859    ) -> igraph_error_t;
8860}
8861unsafe extern "C" {
8862    pub fn igraph_matrix_int_select_rows_cols(
8863        m: *const igraph_matrix_int_t,
8864        res: *mut igraph_matrix_int_t,
8865        rows: *const igraph_vector_int_t,
8866        cols: *const igraph_vector_int_t,
8867    ) -> igraph_error_t;
8868}
8869unsafe extern "C" {
8870    pub fn igraph_matrix_int_swap_rows(
8871        m: *mut igraph_matrix_int_t,
8872        i: igraph_int_t,
8873        j: igraph_int_t,
8874    ) -> igraph_error_t;
8875}
8876unsafe extern "C" {
8877    pub fn igraph_matrix_int_swap_cols(
8878        m: *mut igraph_matrix_int_t,
8879        i: igraph_int_t,
8880        j: igraph_int_t,
8881    ) -> igraph_error_t;
8882}
8883unsafe extern "C" {
8884    pub fn igraph_matrix_int_swap_rowcol(
8885        m: *mut igraph_matrix_int_t,
8886        i: igraph_int_t,
8887        j: igraph_int_t,
8888    ) -> igraph_error_t;
8889}
8890unsafe extern "C" {
8891    pub fn igraph_matrix_int_transpose(m: *mut igraph_matrix_int_t) -> igraph_error_t;
8892}
8893unsafe extern "C" {
8894    pub fn igraph_matrix_int_add(
8895        m1: *mut igraph_matrix_int_t,
8896        m2: *const igraph_matrix_int_t,
8897    ) -> igraph_error_t;
8898}
8899unsafe extern "C" {
8900    pub fn igraph_matrix_int_sub(
8901        m1: *mut igraph_matrix_int_t,
8902        m2: *const igraph_matrix_int_t,
8903    ) -> igraph_error_t;
8904}
8905unsafe extern "C" {
8906    pub fn igraph_matrix_int_mul_elements(
8907        m1: *mut igraph_matrix_int_t,
8908        m2: *const igraph_matrix_int_t,
8909    ) -> igraph_error_t;
8910}
8911unsafe extern "C" {
8912    pub fn igraph_matrix_int_div_elements(
8913        m1: *mut igraph_matrix_int_t,
8914        m2: *const igraph_matrix_int_t,
8915    ) -> igraph_error_t;
8916}
8917unsafe extern "C" {
8918    pub fn igraph_matrix_int_scale(m: *mut igraph_matrix_int_t, by: igraph_int_t);
8919}
8920unsafe extern "C" {
8921    pub fn igraph_matrix_int_add_constant(m: *mut igraph_matrix_int_t, plus: igraph_int_t);
8922}
8923unsafe extern "C" {
8924    pub fn igraph_matrix_int_min(m: *const igraph_matrix_int_t) -> igraph_real_t;
8925}
8926unsafe extern "C" {
8927    pub fn igraph_matrix_int_max(m: *const igraph_matrix_int_t) -> igraph_real_t;
8928}
8929unsafe extern "C" {
8930    pub fn igraph_matrix_int_which_min(
8931        m: *const igraph_matrix_int_t,
8932        i: *mut igraph_int_t,
8933        j: *mut igraph_int_t,
8934    );
8935}
8936unsafe extern "C" {
8937    pub fn igraph_matrix_int_which_max(
8938        m: *const igraph_matrix_int_t,
8939        i: *mut igraph_int_t,
8940        j: *mut igraph_int_t,
8941    );
8942}
8943unsafe extern "C" {
8944    pub fn igraph_matrix_int_minmax(
8945        m: *const igraph_matrix_int_t,
8946        min: *mut igraph_int_t,
8947        max: *mut igraph_int_t,
8948    );
8949}
8950unsafe extern "C" {
8951    pub fn igraph_matrix_int_which_minmax(
8952        m: *const igraph_matrix_int_t,
8953        imin: *mut igraph_int_t,
8954        jmin: *mut igraph_int_t,
8955        imax: *mut igraph_int_t,
8956        jmax: *mut igraph_int_t,
8957    );
8958}
8959unsafe extern "C" {
8960    pub fn igraph_matrix_int_all_e(
8961        lhs: *const igraph_matrix_int_t,
8962        rhs: *const igraph_matrix_int_t,
8963    ) -> igraph_bool_t;
8964}
8965unsafe extern "C" {
8966    pub fn igraph_matrix_int_all_l(
8967        lhs: *const igraph_matrix_int_t,
8968        rhs: *const igraph_matrix_int_t,
8969    ) -> igraph_bool_t;
8970}
8971unsafe extern "C" {
8972    pub fn igraph_matrix_int_all_g(
8973        lhs: *const igraph_matrix_int_t,
8974        rhs: *const igraph_matrix_int_t,
8975    ) -> igraph_bool_t;
8976}
8977unsafe extern "C" {
8978    pub fn igraph_matrix_int_all_le(
8979        lhs: *const igraph_matrix_int_t,
8980        rhs: *const igraph_matrix_int_t,
8981    ) -> igraph_bool_t;
8982}
8983unsafe extern "C" {
8984    pub fn igraph_matrix_int_all_ge(
8985        lhs: *const igraph_matrix_int_t,
8986        rhs: *const igraph_matrix_int_t,
8987    ) -> igraph_bool_t;
8988}
8989unsafe extern "C" {
8990    pub fn igraph_matrix_int_isnull(m: *const igraph_matrix_int_t) -> igraph_bool_t;
8991}
8992unsafe extern "C" {
8993    pub fn igraph_matrix_int_empty(m: *const igraph_matrix_int_t) -> igraph_bool_t;
8994}
8995unsafe extern "C" {
8996    pub fn igraph_matrix_int_size(m: *const igraph_matrix_int_t) -> igraph_int_t;
8997}
8998unsafe extern "C" {
8999    pub fn igraph_matrix_int_nrow(m: *const igraph_matrix_int_t) -> igraph_int_t;
9000}
9001unsafe extern "C" {
9002    pub fn igraph_matrix_int_ncol(m: *const igraph_matrix_int_t) -> igraph_int_t;
9003}
9004unsafe extern "C" {
9005    pub fn igraph_matrix_int_is_symmetric(m: *const igraph_matrix_int_t) -> igraph_bool_t;
9006}
9007unsafe extern "C" {
9008    pub fn igraph_matrix_int_sum(m: *const igraph_matrix_int_t) -> igraph_int_t;
9009}
9010unsafe extern "C" {
9011    pub fn igraph_matrix_int_prod(m: *const igraph_matrix_int_t) -> igraph_int_t;
9012}
9013unsafe extern "C" {
9014    pub fn igraph_matrix_int_rowsum(
9015        m: *const igraph_matrix_int_t,
9016        res: *mut igraph_vector_int_t,
9017    ) -> igraph_error_t;
9018}
9019unsafe extern "C" {
9020    pub fn igraph_matrix_int_colsum(
9021        m: *const igraph_matrix_int_t,
9022        res: *mut igraph_vector_int_t,
9023    ) -> igraph_error_t;
9024}
9025unsafe extern "C" {
9026    pub fn igraph_matrix_int_is_equal(
9027        m1: *const igraph_matrix_int_t,
9028        m2: *const igraph_matrix_int_t,
9029    ) -> igraph_bool_t;
9030}
9031unsafe extern "C" {
9032    pub fn igraph_matrix_int_maxdifference(
9033        m1: *const igraph_matrix_int_t,
9034        m2: *const igraph_matrix_int_t,
9035    ) -> igraph_real_t;
9036}
9037unsafe extern "C" {
9038    pub fn igraph_matrix_int_contains(
9039        m: *const igraph_matrix_int_t,
9040        e: igraph_int_t,
9041    ) -> igraph_bool_t;
9042}
9043unsafe extern "C" {
9044    pub fn igraph_matrix_int_search(
9045        m: *const igraph_matrix_int_t,
9046        from: igraph_int_t,
9047        what: igraph_int_t,
9048        pos: *mut igraph_int_t,
9049        row: *mut igraph_int_t,
9050        col: *mut igraph_int_t,
9051    ) -> igraph_bool_t;
9052}
9053unsafe extern "C" {
9054    pub fn igraph_matrix_int_resize(
9055        m: *mut igraph_matrix_int_t,
9056        nrow: igraph_int_t,
9057        ncol: igraph_int_t,
9058    ) -> igraph_error_t;
9059}
9060unsafe extern "C" {
9061    pub fn igraph_matrix_int_resize_min(m: *mut igraph_matrix_int_t);
9062}
9063unsafe extern "C" {
9064    pub fn igraph_matrix_int_add_cols(
9065        m: *mut igraph_matrix_int_t,
9066        n: igraph_int_t,
9067    ) -> igraph_error_t;
9068}
9069unsafe extern "C" {
9070    pub fn igraph_matrix_int_add_rows(
9071        m: *mut igraph_matrix_int_t,
9072        n: igraph_int_t,
9073    ) -> igraph_error_t;
9074}
9075unsafe extern "C" {
9076    pub fn igraph_matrix_int_remove_col(
9077        m: *mut igraph_matrix_int_t,
9078        col: igraph_int_t,
9079    ) -> igraph_error_t;
9080}
9081unsafe extern "C" {
9082    pub fn igraph_matrix_int_remove_row(
9083        m: *mut igraph_matrix_int_t,
9084        row: igraph_int_t,
9085    ) -> igraph_error_t;
9086}
9087unsafe extern "C" {
9088    pub fn igraph_matrix_int_print(m: *const igraph_matrix_int_t) -> igraph_error_t;
9089}
9090unsafe extern "C" {
9091    pub fn igraph_matrix_int_fprint(
9092        m: *const igraph_matrix_int_t,
9093        file: *mut FILE,
9094    ) -> igraph_error_t;
9095}
9096unsafe extern "C" {
9097    pub fn igraph_matrix_int_printf(
9098        m: *const igraph_matrix_int_t,
9099        format: *const ::std::os::raw::c_char,
9100    ) -> igraph_error_t;
9101}
9102unsafe extern "C" {
9103    pub fn igraph_matrix_int_permdelete_rows(
9104        m: *mut igraph_matrix_int_t,
9105        index: *mut igraph_int_t,
9106        nremove: igraph_int_t,
9107    ) -> igraph_error_t;
9108}
9109#[repr(C)]
9110#[derive(Debug, Copy, Clone)]
9111pub struct igraph_matrix_char_t {
9112    pub data: igraph_vector_char_t,
9113    pub nrow: igraph_int_t,
9114    pub ncol: igraph_int_t,
9115}
9116#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9117const _: () = {
9118    ["Size of igraph_matrix_char_t"][::std::mem::size_of::<igraph_matrix_char_t>() - 40usize];
9119    ["Alignment of igraph_matrix_char_t"][::std::mem::align_of::<igraph_matrix_char_t>() - 8usize];
9120    ["Offset of field: igraph_matrix_char_t::data"]
9121        [::std::mem::offset_of!(igraph_matrix_char_t, data) - 0usize];
9122    ["Offset of field: igraph_matrix_char_t::nrow"]
9123        [::std::mem::offset_of!(igraph_matrix_char_t, nrow) - 24usize];
9124    ["Offset of field: igraph_matrix_char_t::ncol"]
9125        [::std::mem::offset_of!(igraph_matrix_char_t, ncol) - 32usize];
9126};
9127unsafe extern "C" {
9128    pub fn igraph_matrix_char_init(
9129        m: *mut igraph_matrix_char_t,
9130        nrow: igraph_int_t,
9131        ncol: igraph_int_t,
9132    ) -> igraph_error_t;
9133}
9134unsafe extern "C" {
9135    pub fn igraph_matrix_char_init_array(
9136        m: *mut igraph_matrix_char_t,
9137        data: *const ::std::os::raw::c_char,
9138        nrow: igraph_int_t,
9139        ncol: igraph_int_t,
9140        storage: igraph_matrix_storage_t,
9141    ) -> igraph_error_t;
9142}
9143unsafe extern "C" {
9144    pub fn igraph_matrix_char_init_copy(
9145        to: *mut igraph_matrix_char_t,
9146        from: *const igraph_matrix_char_t,
9147    ) -> igraph_error_t;
9148}
9149unsafe extern "C" {
9150    pub fn igraph_matrix_char_destroy(m: *mut igraph_matrix_char_t);
9151}
9152unsafe extern "C" {
9153    pub fn igraph_matrix_char_capacity(m: *const igraph_matrix_char_t) -> igraph_int_t;
9154}
9155unsafe extern "C" {
9156    pub fn igraph_matrix_char_get(
9157        m: *const igraph_matrix_char_t,
9158        row: igraph_int_t,
9159        col: igraph_int_t,
9160    ) -> ::std::os::raw::c_char;
9161}
9162unsafe extern "C" {
9163    pub fn igraph_matrix_char_get_ptr(
9164        m: *const igraph_matrix_char_t,
9165        row: igraph_int_t,
9166        col: igraph_int_t,
9167    ) -> *mut ::std::os::raw::c_char;
9168}
9169unsafe extern "C" {
9170    pub fn igraph_matrix_char_set(
9171        m: *mut igraph_matrix_char_t,
9172        row: igraph_int_t,
9173        col: igraph_int_t,
9174        value: ::std::os::raw::c_char,
9175    );
9176}
9177unsafe extern "C" {
9178    pub fn igraph_matrix_char_null(m: *mut igraph_matrix_char_t);
9179}
9180unsafe extern "C" {
9181    pub fn igraph_matrix_char_fill(m: *mut igraph_matrix_char_t, e: ::std::os::raw::c_char);
9182}
9183unsafe extern "C" {
9184    pub fn igraph_matrix_char_view(
9185        data: *const ::std::os::raw::c_char,
9186        nrow: igraph_int_t,
9187        ncol: igraph_int_t,
9188    ) -> igraph_matrix_char_t;
9189}
9190unsafe extern "C" {
9191    pub fn igraph_matrix_char_view_from_vector(
9192        v: *const igraph_vector_char_t,
9193        ncol: igraph_int_t,
9194    ) -> igraph_matrix_char_t;
9195}
9196unsafe extern "C" {
9197    pub fn igraph_matrix_char_copy_to(
9198        m: *const igraph_matrix_char_t,
9199        to: *mut ::std::os::raw::c_char,
9200        storage: igraph_matrix_storage_t,
9201    );
9202}
9203unsafe extern "C" {
9204    pub fn igraph_matrix_char_update(
9205        to: *mut igraph_matrix_char_t,
9206        from: *const igraph_matrix_char_t,
9207    ) -> igraph_error_t;
9208}
9209unsafe extern "C" {
9210    pub fn igraph_matrix_char_rbind(
9211        to: *mut igraph_matrix_char_t,
9212        from: *const igraph_matrix_char_t,
9213    ) -> igraph_error_t;
9214}
9215unsafe extern "C" {
9216    pub fn igraph_matrix_char_cbind(
9217        to: *mut igraph_matrix_char_t,
9218        from: *const igraph_matrix_char_t,
9219    ) -> igraph_error_t;
9220}
9221unsafe extern "C" {
9222    pub fn igraph_matrix_char_swap(m1: *mut igraph_matrix_char_t, m2: *mut igraph_matrix_char_t);
9223}
9224unsafe extern "C" {
9225    pub fn igraph_matrix_char_get_row(
9226        m: *const igraph_matrix_char_t,
9227        res: *mut igraph_vector_char_t,
9228        index: igraph_int_t,
9229    ) -> igraph_error_t;
9230}
9231unsafe extern "C" {
9232    pub fn igraph_matrix_char_get_col(
9233        m: *const igraph_matrix_char_t,
9234        res: *mut igraph_vector_char_t,
9235        index: igraph_int_t,
9236    ) -> igraph_error_t;
9237}
9238unsafe extern "C" {
9239    pub fn igraph_matrix_char_set_row(
9240        m: *mut igraph_matrix_char_t,
9241        v: *const igraph_vector_char_t,
9242        index: igraph_int_t,
9243    ) -> igraph_error_t;
9244}
9245unsafe extern "C" {
9246    pub fn igraph_matrix_char_set_col(
9247        m: *mut igraph_matrix_char_t,
9248        v: *const igraph_vector_char_t,
9249        index: igraph_int_t,
9250    ) -> igraph_error_t;
9251}
9252unsafe extern "C" {
9253    pub fn igraph_matrix_char_select_rows(
9254        m: *const igraph_matrix_char_t,
9255        res: *mut igraph_matrix_char_t,
9256        rows: *const igraph_vector_int_t,
9257    ) -> igraph_error_t;
9258}
9259unsafe extern "C" {
9260    pub fn igraph_matrix_char_select_cols(
9261        m: *const igraph_matrix_char_t,
9262        res: *mut igraph_matrix_char_t,
9263        cols: *const igraph_vector_int_t,
9264    ) -> igraph_error_t;
9265}
9266unsafe extern "C" {
9267    pub fn igraph_matrix_char_select_rows_cols(
9268        m: *const igraph_matrix_char_t,
9269        res: *mut igraph_matrix_char_t,
9270        rows: *const igraph_vector_int_t,
9271        cols: *const igraph_vector_int_t,
9272    ) -> igraph_error_t;
9273}
9274unsafe extern "C" {
9275    pub fn igraph_matrix_char_swap_rows(
9276        m: *mut igraph_matrix_char_t,
9277        i: igraph_int_t,
9278        j: igraph_int_t,
9279    ) -> igraph_error_t;
9280}
9281unsafe extern "C" {
9282    pub fn igraph_matrix_char_swap_cols(
9283        m: *mut igraph_matrix_char_t,
9284        i: igraph_int_t,
9285        j: igraph_int_t,
9286    ) -> igraph_error_t;
9287}
9288unsafe extern "C" {
9289    pub fn igraph_matrix_char_swap_rowcol(
9290        m: *mut igraph_matrix_char_t,
9291        i: igraph_int_t,
9292        j: igraph_int_t,
9293    ) -> igraph_error_t;
9294}
9295unsafe extern "C" {
9296    pub fn igraph_matrix_char_transpose(m: *mut igraph_matrix_char_t) -> igraph_error_t;
9297}
9298unsafe extern "C" {
9299    pub fn igraph_matrix_char_add(
9300        m1: *mut igraph_matrix_char_t,
9301        m2: *const igraph_matrix_char_t,
9302    ) -> igraph_error_t;
9303}
9304unsafe extern "C" {
9305    pub fn igraph_matrix_char_sub(
9306        m1: *mut igraph_matrix_char_t,
9307        m2: *const igraph_matrix_char_t,
9308    ) -> igraph_error_t;
9309}
9310unsafe extern "C" {
9311    pub fn igraph_matrix_char_mul_elements(
9312        m1: *mut igraph_matrix_char_t,
9313        m2: *const igraph_matrix_char_t,
9314    ) -> igraph_error_t;
9315}
9316unsafe extern "C" {
9317    pub fn igraph_matrix_char_div_elements(
9318        m1: *mut igraph_matrix_char_t,
9319        m2: *const igraph_matrix_char_t,
9320    ) -> igraph_error_t;
9321}
9322unsafe extern "C" {
9323    pub fn igraph_matrix_char_scale(m: *mut igraph_matrix_char_t, by: ::std::os::raw::c_char);
9324}
9325unsafe extern "C" {
9326    pub fn igraph_matrix_char_add_constant(
9327        m: *mut igraph_matrix_char_t,
9328        plus: ::std::os::raw::c_char,
9329    );
9330}
9331unsafe extern "C" {
9332    pub fn igraph_matrix_char_min(m: *const igraph_matrix_char_t) -> igraph_real_t;
9333}
9334unsafe extern "C" {
9335    pub fn igraph_matrix_char_max(m: *const igraph_matrix_char_t) -> igraph_real_t;
9336}
9337unsafe extern "C" {
9338    pub fn igraph_matrix_char_which_min(
9339        m: *const igraph_matrix_char_t,
9340        i: *mut igraph_int_t,
9341        j: *mut igraph_int_t,
9342    );
9343}
9344unsafe extern "C" {
9345    pub fn igraph_matrix_char_which_max(
9346        m: *const igraph_matrix_char_t,
9347        i: *mut igraph_int_t,
9348        j: *mut igraph_int_t,
9349    );
9350}
9351unsafe extern "C" {
9352    pub fn igraph_matrix_char_minmax(
9353        m: *const igraph_matrix_char_t,
9354        min: *mut ::std::os::raw::c_char,
9355        max: *mut ::std::os::raw::c_char,
9356    );
9357}
9358unsafe extern "C" {
9359    pub fn igraph_matrix_char_which_minmax(
9360        m: *const igraph_matrix_char_t,
9361        imin: *mut igraph_int_t,
9362        jmin: *mut igraph_int_t,
9363        imax: *mut igraph_int_t,
9364        jmax: *mut igraph_int_t,
9365    );
9366}
9367unsafe extern "C" {
9368    pub fn igraph_matrix_char_all_e(
9369        lhs: *const igraph_matrix_char_t,
9370        rhs: *const igraph_matrix_char_t,
9371    ) -> igraph_bool_t;
9372}
9373unsafe extern "C" {
9374    pub fn igraph_matrix_char_all_l(
9375        lhs: *const igraph_matrix_char_t,
9376        rhs: *const igraph_matrix_char_t,
9377    ) -> igraph_bool_t;
9378}
9379unsafe extern "C" {
9380    pub fn igraph_matrix_char_all_g(
9381        lhs: *const igraph_matrix_char_t,
9382        rhs: *const igraph_matrix_char_t,
9383    ) -> igraph_bool_t;
9384}
9385unsafe extern "C" {
9386    pub fn igraph_matrix_char_all_le(
9387        lhs: *const igraph_matrix_char_t,
9388        rhs: *const igraph_matrix_char_t,
9389    ) -> igraph_bool_t;
9390}
9391unsafe extern "C" {
9392    pub fn igraph_matrix_char_all_ge(
9393        lhs: *const igraph_matrix_char_t,
9394        rhs: *const igraph_matrix_char_t,
9395    ) -> igraph_bool_t;
9396}
9397unsafe extern "C" {
9398    pub fn igraph_matrix_char_isnull(m: *const igraph_matrix_char_t) -> igraph_bool_t;
9399}
9400unsafe extern "C" {
9401    pub fn igraph_matrix_char_empty(m: *const igraph_matrix_char_t) -> igraph_bool_t;
9402}
9403unsafe extern "C" {
9404    pub fn igraph_matrix_char_size(m: *const igraph_matrix_char_t) -> igraph_int_t;
9405}
9406unsafe extern "C" {
9407    pub fn igraph_matrix_char_nrow(m: *const igraph_matrix_char_t) -> igraph_int_t;
9408}
9409unsafe extern "C" {
9410    pub fn igraph_matrix_char_ncol(m: *const igraph_matrix_char_t) -> igraph_int_t;
9411}
9412unsafe extern "C" {
9413    pub fn igraph_matrix_char_is_symmetric(m: *const igraph_matrix_char_t) -> igraph_bool_t;
9414}
9415unsafe extern "C" {
9416    pub fn igraph_matrix_char_sum(m: *const igraph_matrix_char_t) -> ::std::os::raw::c_char;
9417}
9418unsafe extern "C" {
9419    pub fn igraph_matrix_char_prod(m: *const igraph_matrix_char_t) -> ::std::os::raw::c_char;
9420}
9421unsafe extern "C" {
9422    pub fn igraph_matrix_char_rowsum(
9423        m: *const igraph_matrix_char_t,
9424        res: *mut igraph_vector_char_t,
9425    ) -> igraph_error_t;
9426}
9427unsafe extern "C" {
9428    pub fn igraph_matrix_char_colsum(
9429        m: *const igraph_matrix_char_t,
9430        res: *mut igraph_vector_char_t,
9431    ) -> igraph_error_t;
9432}
9433unsafe extern "C" {
9434    pub fn igraph_matrix_char_is_equal(
9435        m1: *const igraph_matrix_char_t,
9436        m2: *const igraph_matrix_char_t,
9437    ) -> igraph_bool_t;
9438}
9439unsafe extern "C" {
9440    pub fn igraph_matrix_char_maxdifference(
9441        m1: *const igraph_matrix_char_t,
9442        m2: *const igraph_matrix_char_t,
9443    ) -> igraph_real_t;
9444}
9445unsafe extern "C" {
9446    pub fn igraph_matrix_char_contains(
9447        m: *const igraph_matrix_char_t,
9448        e: ::std::os::raw::c_char,
9449    ) -> igraph_bool_t;
9450}
9451unsafe extern "C" {
9452    pub fn igraph_matrix_char_search(
9453        m: *const igraph_matrix_char_t,
9454        from: igraph_int_t,
9455        what: ::std::os::raw::c_char,
9456        pos: *mut igraph_int_t,
9457        row: *mut igraph_int_t,
9458        col: *mut igraph_int_t,
9459    ) -> igraph_bool_t;
9460}
9461unsafe extern "C" {
9462    pub fn igraph_matrix_char_resize(
9463        m: *mut igraph_matrix_char_t,
9464        nrow: igraph_int_t,
9465        ncol: igraph_int_t,
9466    ) -> igraph_error_t;
9467}
9468unsafe extern "C" {
9469    pub fn igraph_matrix_char_resize_min(m: *mut igraph_matrix_char_t);
9470}
9471unsafe extern "C" {
9472    pub fn igraph_matrix_char_add_cols(
9473        m: *mut igraph_matrix_char_t,
9474        n: igraph_int_t,
9475    ) -> igraph_error_t;
9476}
9477unsafe extern "C" {
9478    pub fn igraph_matrix_char_add_rows(
9479        m: *mut igraph_matrix_char_t,
9480        n: igraph_int_t,
9481    ) -> igraph_error_t;
9482}
9483unsafe extern "C" {
9484    pub fn igraph_matrix_char_remove_col(
9485        m: *mut igraph_matrix_char_t,
9486        col: igraph_int_t,
9487    ) -> igraph_error_t;
9488}
9489unsafe extern "C" {
9490    pub fn igraph_matrix_char_remove_row(
9491        m: *mut igraph_matrix_char_t,
9492        row: igraph_int_t,
9493    ) -> igraph_error_t;
9494}
9495unsafe extern "C" {
9496    pub fn igraph_matrix_char_print(m: *const igraph_matrix_char_t) -> igraph_error_t;
9497}
9498unsafe extern "C" {
9499    pub fn igraph_matrix_char_fprint(
9500        m: *const igraph_matrix_char_t,
9501        file: *mut FILE,
9502    ) -> igraph_error_t;
9503}
9504unsafe extern "C" {
9505    pub fn igraph_matrix_char_printf(
9506        m: *const igraph_matrix_char_t,
9507        format: *const ::std::os::raw::c_char,
9508    ) -> igraph_error_t;
9509}
9510unsafe extern "C" {
9511    pub fn igraph_matrix_char_permdelete_rows(
9512        m: *mut igraph_matrix_char_t,
9513        index: *mut igraph_int_t,
9514        nremove: igraph_int_t,
9515    ) -> igraph_error_t;
9516}
9517#[repr(C)]
9518#[derive(Debug, Copy, Clone)]
9519pub struct igraph_matrix_bool_t {
9520    pub data: igraph_vector_bool_t,
9521    pub nrow: igraph_int_t,
9522    pub ncol: igraph_int_t,
9523}
9524#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9525const _: () = {
9526    ["Size of igraph_matrix_bool_t"][::std::mem::size_of::<igraph_matrix_bool_t>() - 40usize];
9527    ["Alignment of igraph_matrix_bool_t"][::std::mem::align_of::<igraph_matrix_bool_t>() - 8usize];
9528    ["Offset of field: igraph_matrix_bool_t::data"]
9529        [::std::mem::offset_of!(igraph_matrix_bool_t, data) - 0usize];
9530    ["Offset of field: igraph_matrix_bool_t::nrow"]
9531        [::std::mem::offset_of!(igraph_matrix_bool_t, nrow) - 24usize];
9532    ["Offset of field: igraph_matrix_bool_t::ncol"]
9533        [::std::mem::offset_of!(igraph_matrix_bool_t, ncol) - 32usize];
9534};
9535unsafe extern "C" {
9536    pub fn igraph_matrix_bool_init(
9537        m: *mut igraph_matrix_bool_t,
9538        nrow: igraph_int_t,
9539        ncol: igraph_int_t,
9540    ) -> igraph_error_t;
9541}
9542unsafe extern "C" {
9543    pub fn igraph_matrix_bool_init_array(
9544        m: *mut igraph_matrix_bool_t,
9545        data: *const igraph_bool_t,
9546        nrow: igraph_int_t,
9547        ncol: igraph_int_t,
9548        storage: igraph_matrix_storage_t,
9549    ) -> igraph_error_t;
9550}
9551unsafe extern "C" {
9552    pub fn igraph_matrix_bool_init_copy(
9553        to: *mut igraph_matrix_bool_t,
9554        from: *const igraph_matrix_bool_t,
9555    ) -> igraph_error_t;
9556}
9557unsafe extern "C" {
9558    pub fn igraph_matrix_bool_destroy(m: *mut igraph_matrix_bool_t);
9559}
9560unsafe extern "C" {
9561    pub fn igraph_matrix_bool_capacity(m: *const igraph_matrix_bool_t) -> igraph_int_t;
9562}
9563unsafe extern "C" {
9564    pub fn igraph_matrix_bool_get(
9565        m: *const igraph_matrix_bool_t,
9566        row: igraph_int_t,
9567        col: igraph_int_t,
9568    ) -> igraph_bool_t;
9569}
9570unsafe extern "C" {
9571    pub fn igraph_matrix_bool_get_ptr(
9572        m: *const igraph_matrix_bool_t,
9573        row: igraph_int_t,
9574        col: igraph_int_t,
9575    ) -> *mut igraph_bool_t;
9576}
9577unsafe extern "C" {
9578    pub fn igraph_matrix_bool_set(
9579        m: *mut igraph_matrix_bool_t,
9580        row: igraph_int_t,
9581        col: igraph_int_t,
9582        value: igraph_bool_t,
9583    );
9584}
9585unsafe extern "C" {
9586    pub fn igraph_matrix_bool_null(m: *mut igraph_matrix_bool_t);
9587}
9588unsafe extern "C" {
9589    pub fn igraph_matrix_bool_fill(m: *mut igraph_matrix_bool_t, e: igraph_bool_t);
9590}
9591unsafe extern "C" {
9592    pub fn igraph_matrix_bool_view(
9593        data: *const igraph_bool_t,
9594        nrow: igraph_int_t,
9595        ncol: igraph_int_t,
9596    ) -> igraph_matrix_bool_t;
9597}
9598unsafe extern "C" {
9599    pub fn igraph_matrix_bool_view_from_vector(
9600        v: *const igraph_vector_bool_t,
9601        ncol: igraph_int_t,
9602    ) -> igraph_matrix_bool_t;
9603}
9604unsafe extern "C" {
9605    pub fn igraph_matrix_bool_copy_to(
9606        m: *const igraph_matrix_bool_t,
9607        to: *mut igraph_bool_t,
9608        storage: igraph_matrix_storage_t,
9609    );
9610}
9611unsafe extern "C" {
9612    pub fn igraph_matrix_bool_update(
9613        to: *mut igraph_matrix_bool_t,
9614        from: *const igraph_matrix_bool_t,
9615    ) -> igraph_error_t;
9616}
9617unsafe extern "C" {
9618    pub fn igraph_matrix_bool_rbind(
9619        to: *mut igraph_matrix_bool_t,
9620        from: *const igraph_matrix_bool_t,
9621    ) -> igraph_error_t;
9622}
9623unsafe extern "C" {
9624    pub fn igraph_matrix_bool_cbind(
9625        to: *mut igraph_matrix_bool_t,
9626        from: *const igraph_matrix_bool_t,
9627    ) -> igraph_error_t;
9628}
9629unsafe extern "C" {
9630    pub fn igraph_matrix_bool_swap(m1: *mut igraph_matrix_bool_t, m2: *mut igraph_matrix_bool_t);
9631}
9632unsafe extern "C" {
9633    pub fn igraph_matrix_bool_get_row(
9634        m: *const igraph_matrix_bool_t,
9635        res: *mut igraph_vector_bool_t,
9636        index: igraph_int_t,
9637    ) -> igraph_error_t;
9638}
9639unsafe extern "C" {
9640    pub fn igraph_matrix_bool_get_col(
9641        m: *const igraph_matrix_bool_t,
9642        res: *mut igraph_vector_bool_t,
9643        index: igraph_int_t,
9644    ) -> igraph_error_t;
9645}
9646unsafe extern "C" {
9647    pub fn igraph_matrix_bool_set_row(
9648        m: *mut igraph_matrix_bool_t,
9649        v: *const igraph_vector_bool_t,
9650        index: igraph_int_t,
9651    ) -> igraph_error_t;
9652}
9653unsafe extern "C" {
9654    pub fn igraph_matrix_bool_set_col(
9655        m: *mut igraph_matrix_bool_t,
9656        v: *const igraph_vector_bool_t,
9657        index: igraph_int_t,
9658    ) -> igraph_error_t;
9659}
9660unsafe extern "C" {
9661    pub fn igraph_matrix_bool_select_rows(
9662        m: *const igraph_matrix_bool_t,
9663        res: *mut igraph_matrix_bool_t,
9664        rows: *const igraph_vector_int_t,
9665    ) -> igraph_error_t;
9666}
9667unsafe extern "C" {
9668    pub fn igraph_matrix_bool_select_cols(
9669        m: *const igraph_matrix_bool_t,
9670        res: *mut igraph_matrix_bool_t,
9671        cols: *const igraph_vector_int_t,
9672    ) -> igraph_error_t;
9673}
9674unsafe extern "C" {
9675    pub fn igraph_matrix_bool_select_rows_cols(
9676        m: *const igraph_matrix_bool_t,
9677        res: *mut igraph_matrix_bool_t,
9678        rows: *const igraph_vector_int_t,
9679        cols: *const igraph_vector_int_t,
9680    ) -> igraph_error_t;
9681}
9682unsafe extern "C" {
9683    pub fn igraph_matrix_bool_swap_rows(
9684        m: *mut igraph_matrix_bool_t,
9685        i: igraph_int_t,
9686        j: igraph_int_t,
9687    ) -> igraph_error_t;
9688}
9689unsafe extern "C" {
9690    pub fn igraph_matrix_bool_swap_cols(
9691        m: *mut igraph_matrix_bool_t,
9692        i: igraph_int_t,
9693        j: igraph_int_t,
9694    ) -> igraph_error_t;
9695}
9696unsafe extern "C" {
9697    pub fn igraph_matrix_bool_swap_rowcol(
9698        m: *mut igraph_matrix_bool_t,
9699        i: igraph_int_t,
9700        j: igraph_int_t,
9701    ) -> igraph_error_t;
9702}
9703unsafe extern "C" {
9704    pub fn igraph_matrix_bool_transpose(m: *mut igraph_matrix_bool_t) -> igraph_error_t;
9705}
9706unsafe extern "C" {
9707    pub fn igraph_matrix_bool_add(
9708        m1: *mut igraph_matrix_bool_t,
9709        m2: *const igraph_matrix_bool_t,
9710    ) -> igraph_error_t;
9711}
9712unsafe extern "C" {
9713    pub fn igraph_matrix_bool_sub(
9714        m1: *mut igraph_matrix_bool_t,
9715        m2: *const igraph_matrix_bool_t,
9716    ) -> igraph_error_t;
9717}
9718unsafe extern "C" {
9719    pub fn igraph_matrix_bool_mul_elements(
9720        m1: *mut igraph_matrix_bool_t,
9721        m2: *const igraph_matrix_bool_t,
9722    ) -> igraph_error_t;
9723}
9724unsafe extern "C" {
9725    pub fn igraph_matrix_bool_div_elements(
9726        m1: *mut igraph_matrix_bool_t,
9727        m2: *const igraph_matrix_bool_t,
9728    ) -> igraph_error_t;
9729}
9730unsafe extern "C" {
9731    pub fn igraph_matrix_bool_scale(m: *mut igraph_matrix_bool_t, by: igraph_bool_t);
9732}
9733unsafe extern "C" {
9734    pub fn igraph_matrix_bool_add_constant(m: *mut igraph_matrix_bool_t, plus: igraph_bool_t);
9735}
9736unsafe extern "C" {
9737    pub fn igraph_matrix_bool_all_e(
9738        lhs: *const igraph_matrix_bool_t,
9739        rhs: *const igraph_matrix_bool_t,
9740    ) -> igraph_bool_t;
9741}
9742unsafe extern "C" {
9743    pub fn igraph_matrix_bool_isnull(m: *const igraph_matrix_bool_t) -> igraph_bool_t;
9744}
9745unsafe extern "C" {
9746    pub fn igraph_matrix_bool_empty(m: *const igraph_matrix_bool_t) -> igraph_bool_t;
9747}
9748unsafe extern "C" {
9749    pub fn igraph_matrix_bool_size(m: *const igraph_matrix_bool_t) -> igraph_int_t;
9750}
9751unsafe extern "C" {
9752    pub fn igraph_matrix_bool_nrow(m: *const igraph_matrix_bool_t) -> igraph_int_t;
9753}
9754unsafe extern "C" {
9755    pub fn igraph_matrix_bool_ncol(m: *const igraph_matrix_bool_t) -> igraph_int_t;
9756}
9757unsafe extern "C" {
9758    pub fn igraph_matrix_bool_is_symmetric(m: *const igraph_matrix_bool_t) -> igraph_bool_t;
9759}
9760unsafe extern "C" {
9761    pub fn igraph_matrix_bool_sum(m: *const igraph_matrix_bool_t) -> igraph_bool_t;
9762}
9763unsafe extern "C" {
9764    pub fn igraph_matrix_bool_prod(m: *const igraph_matrix_bool_t) -> igraph_bool_t;
9765}
9766unsafe extern "C" {
9767    pub fn igraph_matrix_bool_rowsum(
9768        m: *const igraph_matrix_bool_t,
9769        res: *mut igraph_vector_bool_t,
9770    ) -> igraph_error_t;
9771}
9772unsafe extern "C" {
9773    pub fn igraph_matrix_bool_colsum(
9774        m: *const igraph_matrix_bool_t,
9775        res: *mut igraph_vector_bool_t,
9776    ) -> igraph_error_t;
9777}
9778unsafe extern "C" {
9779    pub fn igraph_matrix_bool_is_equal(
9780        m1: *const igraph_matrix_bool_t,
9781        m2: *const igraph_matrix_bool_t,
9782    ) -> igraph_bool_t;
9783}
9784unsafe extern "C" {
9785    pub fn igraph_matrix_bool_contains(
9786        m: *const igraph_matrix_bool_t,
9787        e: igraph_bool_t,
9788    ) -> igraph_bool_t;
9789}
9790unsafe extern "C" {
9791    pub fn igraph_matrix_bool_search(
9792        m: *const igraph_matrix_bool_t,
9793        from: igraph_int_t,
9794        what: igraph_bool_t,
9795        pos: *mut igraph_int_t,
9796        row: *mut igraph_int_t,
9797        col: *mut igraph_int_t,
9798    ) -> igraph_bool_t;
9799}
9800unsafe extern "C" {
9801    pub fn igraph_matrix_bool_resize(
9802        m: *mut igraph_matrix_bool_t,
9803        nrow: igraph_int_t,
9804        ncol: igraph_int_t,
9805    ) -> igraph_error_t;
9806}
9807unsafe extern "C" {
9808    pub fn igraph_matrix_bool_resize_min(m: *mut igraph_matrix_bool_t);
9809}
9810unsafe extern "C" {
9811    pub fn igraph_matrix_bool_add_cols(
9812        m: *mut igraph_matrix_bool_t,
9813        n: igraph_int_t,
9814    ) -> igraph_error_t;
9815}
9816unsafe extern "C" {
9817    pub fn igraph_matrix_bool_add_rows(
9818        m: *mut igraph_matrix_bool_t,
9819        n: igraph_int_t,
9820    ) -> igraph_error_t;
9821}
9822unsafe extern "C" {
9823    pub fn igraph_matrix_bool_remove_col(
9824        m: *mut igraph_matrix_bool_t,
9825        col: igraph_int_t,
9826    ) -> igraph_error_t;
9827}
9828unsafe extern "C" {
9829    pub fn igraph_matrix_bool_remove_row(
9830        m: *mut igraph_matrix_bool_t,
9831        row: igraph_int_t,
9832    ) -> igraph_error_t;
9833}
9834unsafe extern "C" {
9835    pub fn igraph_matrix_bool_print(m: *const igraph_matrix_bool_t) -> igraph_error_t;
9836}
9837unsafe extern "C" {
9838    pub fn igraph_matrix_bool_fprint(
9839        m: *const igraph_matrix_bool_t,
9840        file: *mut FILE,
9841    ) -> igraph_error_t;
9842}
9843unsafe extern "C" {
9844    pub fn igraph_matrix_bool_printf(
9845        m: *const igraph_matrix_bool_t,
9846        format: *const ::std::os::raw::c_char,
9847    ) -> igraph_error_t;
9848}
9849unsafe extern "C" {
9850    pub fn igraph_matrix_bool_permdelete_rows(
9851        m: *mut igraph_matrix_bool_t,
9852        index: *mut igraph_int_t,
9853        nremove: igraph_int_t,
9854    ) -> igraph_error_t;
9855}
9856#[repr(C)]
9857#[derive(Debug, Copy, Clone)]
9858pub struct igraph_matrix_complex_t {
9859    pub data: igraph_vector_complex_t,
9860    pub nrow: igraph_int_t,
9861    pub ncol: igraph_int_t,
9862}
9863#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9864const _: () = {
9865    ["Size of igraph_matrix_complex_t"][::std::mem::size_of::<igraph_matrix_complex_t>() - 40usize];
9866    ["Alignment of igraph_matrix_complex_t"]
9867        [::std::mem::align_of::<igraph_matrix_complex_t>() - 8usize];
9868    ["Offset of field: igraph_matrix_complex_t::data"]
9869        [::std::mem::offset_of!(igraph_matrix_complex_t, data) - 0usize];
9870    ["Offset of field: igraph_matrix_complex_t::nrow"]
9871        [::std::mem::offset_of!(igraph_matrix_complex_t, nrow) - 24usize];
9872    ["Offset of field: igraph_matrix_complex_t::ncol"]
9873        [::std::mem::offset_of!(igraph_matrix_complex_t, ncol) - 32usize];
9874};
9875unsafe extern "C" {
9876    pub fn igraph_matrix_complex_init(
9877        m: *mut igraph_matrix_complex_t,
9878        nrow: igraph_int_t,
9879        ncol: igraph_int_t,
9880    ) -> igraph_error_t;
9881}
9882unsafe extern "C" {
9883    pub fn igraph_matrix_complex_init_array(
9884        m: *mut igraph_matrix_complex_t,
9885        data: *const igraph_complex_t,
9886        nrow: igraph_int_t,
9887        ncol: igraph_int_t,
9888        storage: igraph_matrix_storage_t,
9889    ) -> igraph_error_t;
9890}
9891unsafe extern "C" {
9892    pub fn igraph_matrix_complex_init_copy(
9893        to: *mut igraph_matrix_complex_t,
9894        from: *const igraph_matrix_complex_t,
9895    ) -> igraph_error_t;
9896}
9897unsafe extern "C" {
9898    pub fn igraph_matrix_complex_destroy(m: *mut igraph_matrix_complex_t);
9899}
9900unsafe extern "C" {
9901    pub fn igraph_matrix_complex_capacity(m: *const igraph_matrix_complex_t) -> igraph_int_t;
9902}
9903unsafe extern "C" {
9904    pub fn igraph_matrix_complex_get(
9905        m: *const igraph_matrix_complex_t,
9906        row: igraph_int_t,
9907        col: igraph_int_t,
9908    ) -> igraph_complex_t;
9909}
9910unsafe extern "C" {
9911    pub fn igraph_matrix_complex_get_ptr(
9912        m: *const igraph_matrix_complex_t,
9913        row: igraph_int_t,
9914        col: igraph_int_t,
9915    ) -> *mut igraph_complex_t;
9916}
9917unsafe extern "C" {
9918    pub fn igraph_matrix_complex_set(
9919        m: *mut igraph_matrix_complex_t,
9920        row: igraph_int_t,
9921        col: igraph_int_t,
9922        value: igraph_complex_t,
9923    );
9924}
9925unsafe extern "C" {
9926    pub fn igraph_matrix_complex_null(m: *mut igraph_matrix_complex_t);
9927}
9928unsafe extern "C" {
9929    pub fn igraph_matrix_complex_fill(m: *mut igraph_matrix_complex_t, e: igraph_complex_t);
9930}
9931unsafe extern "C" {
9932    pub fn igraph_matrix_complex_view(
9933        data: *const igraph_complex_t,
9934        nrow: igraph_int_t,
9935        ncol: igraph_int_t,
9936    ) -> igraph_matrix_complex_t;
9937}
9938unsafe extern "C" {
9939    pub fn igraph_matrix_complex_view_from_vector(
9940        v: *const igraph_vector_complex_t,
9941        ncol: igraph_int_t,
9942    ) -> igraph_matrix_complex_t;
9943}
9944unsafe extern "C" {
9945    pub fn igraph_matrix_complex_copy_to(
9946        m: *const igraph_matrix_complex_t,
9947        to: *mut igraph_complex_t,
9948        storage: igraph_matrix_storage_t,
9949    );
9950}
9951unsafe extern "C" {
9952    pub fn igraph_matrix_complex_update(
9953        to: *mut igraph_matrix_complex_t,
9954        from: *const igraph_matrix_complex_t,
9955    ) -> igraph_error_t;
9956}
9957unsafe extern "C" {
9958    pub fn igraph_matrix_complex_rbind(
9959        to: *mut igraph_matrix_complex_t,
9960        from: *const igraph_matrix_complex_t,
9961    ) -> igraph_error_t;
9962}
9963unsafe extern "C" {
9964    pub fn igraph_matrix_complex_cbind(
9965        to: *mut igraph_matrix_complex_t,
9966        from: *const igraph_matrix_complex_t,
9967    ) -> igraph_error_t;
9968}
9969unsafe extern "C" {
9970    pub fn igraph_matrix_complex_swap(
9971        m1: *mut igraph_matrix_complex_t,
9972        m2: *mut igraph_matrix_complex_t,
9973    );
9974}
9975unsafe extern "C" {
9976    pub fn igraph_matrix_complex_get_row(
9977        m: *const igraph_matrix_complex_t,
9978        res: *mut igraph_vector_complex_t,
9979        index: igraph_int_t,
9980    ) -> igraph_error_t;
9981}
9982unsafe extern "C" {
9983    pub fn igraph_matrix_complex_get_col(
9984        m: *const igraph_matrix_complex_t,
9985        res: *mut igraph_vector_complex_t,
9986        index: igraph_int_t,
9987    ) -> igraph_error_t;
9988}
9989unsafe extern "C" {
9990    pub fn igraph_matrix_complex_set_row(
9991        m: *mut igraph_matrix_complex_t,
9992        v: *const igraph_vector_complex_t,
9993        index: igraph_int_t,
9994    ) -> igraph_error_t;
9995}
9996unsafe extern "C" {
9997    pub fn igraph_matrix_complex_set_col(
9998        m: *mut igraph_matrix_complex_t,
9999        v: *const igraph_vector_complex_t,
10000        index: igraph_int_t,
10001    ) -> igraph_error_t;
10002}
10003unsafe extern "C" {
10004    pub fn igraph_matrix_complex_select_rows(
10005        m: *const igraph_matrix_complex_t,
10006        res: *mut igraph_matrix_complex_t,
10007        rows: *const igraph_vector_int_t,
10008    ) -> igraph_error_t;
10009}
10010unsafe extern "C" {
10011    pub fn igraph_matrix_complex_select_cols(
10012        m: *const igraph_matrix_complex_t,
10013        res: *mut igraph_matrix_complex_t,
10014        cols: *const igraph_vector_int_t,
10015    ) -> igraph_error_t;
10016}
10017unsafe extern "C" {
10018    pub fn igraph_matrix_complex_select_rows_cols(
10019        m: *const igraph_matrix_complex_t,
10020        res: *mut igraph_matrix_complex_t,
10021        rows: *const igraph_vector_int_t,
10022        cols: *const igraph_vector_int_t,
10023    ) -> igraph_error_t;
10024}
10025unsafe extern "C" {
10026    pub fn igraph_matrix_complex_swap_rows(
10027        m: *mut igraph_matrix_complex_t,
10028        i: igraph_int_t,
10029        j: igraph_int_t,
10030    ) -> igraph_error_t;
10031}
10032unsafe extern "C" {
10033    pub fn igraph_matrix_complex_swap_cols(
10034        m: *mut igraph_matrix_complex_t,
10035        i: igraph_int_t,
10036        j: igraph_int_t,
10037    ) -> igraph_error_t;
10038}
10039unsafe extern "C" {
10040    pub fn igraph_matrix_complex_swap_rowcol(
10041        m: *mut igraph_matrix_complex_t,
10042        i: igraph_int_t,
10043        j: igraph_int_t,
10044    ) -> igraph_error_t;
10045}
10046unsafe extern "C" {
10047    pub fn igraph_matrix_complex_transpose(m: *mut igraph_matrix_complex_t) -> igraph_error_t;
10048}
10049unsafe extern "C" {
10050    pub fn igraph_matrix_complex_add(
10051        m1: *mut igraph_matrix_complex_t,
10052        m2: *const igraph_matrix_complex_t,
10053    ) -> igraph_error_t;
10054}
10055unsafe extern "C" {
10056    pub fn igraph_matrix_complex_sub(
10057        m1: *mut igraph_matrix_complex_t,
10058        m2: *const igraph_matrix_complex_t,
10059    ) -> igraph_error_t;
10060}
10061unsafe extern "C" {
10062    pub fn igraph_matrix_complex_mul_elements(
10063        m1: *mut igraph_matrix_complex_t,
10064        m2: *const igraph_matrix_complex_t,
10065    ) -> igraph_error_t;
10066}
10067unsafe extern "C" {
10068    pub fn igraph_matrix_complex_div_elements(
10069        m1: *mut igraph_matrix_complex_t,
10070        m2: *const igraph_matrix_complex_t,
10071    ) -> igraph_error_t;
10072}
10073unsafe extern "C" {
10074    pub fn igraph_matrix_complex_scale(m: *mut igraph_matrix_complex_t, by: igraph_complex_t);
10075}
10076unsafe extern "C" {
10077    pub fn igraph_matrix_complex_add_constant(
10078        m: *mut igraph_matrix_complex_t,
10079        plus: igraph_complex_t,
10080    );
10081}
10082unsafe extern "C" {
10083    pub fn igraph_matrix_complex_all_e(
10084        lhs: *const igraph_matrix_complex_t,
10085        rhs: *const igraph_matrix_complex_t,
10086    ) -> igraph_bool_t;
10087}
10088unsafe extern "C" {
10089    pub fn igraph_matrix_complex_isnull(m: *const igraph_matrix_complex_t) -> igraph_bool_t;
10090}
10091unsafe extern "C" {
10092    pub fn igraph_matrix_complex_empty(m: *const igraph_matrix_complex_t) -> igraph_bool_t;
10093}
10094unsafe extern "C" {
10095    pub fn igraph_matrix_complex_size(m: *const igraph_matrix_complex_t) -> igraph_int_t;
10096}
10097unsafe extern "C" {
10098    pub fn igraph_matrix_complex_nrow(m: *const igraph_matrix_complex_t) -> igraph_int_t;
10099}
10100unsafe extern "C" {
10101    pub fn igraph_matrix_complex_ncol(m: *const igraph_matrix_complex_t) -> igraph_int_t;
10102}
10103unsafe extern "C" {
10104    pub fn igraph_matrix_complex_is_symmetric(m: *const igraph_matrix_complex_t) -> igraph_bool_t;
10105}
10106unsafe extern "C" {
10107    pub fn igraph_matrix_complex_sum(m: *const igraph_matrix_complex_t) -> igraph_complex_t;
10108}
10109unsafe extern "C" {
10110    pub fn igraph_matrix_complex_prod(m: *const igraph_matrix_complex_t) -> igraph_complex_t;
10111}
10112unsafe extern "C" {
10113    pub fn igraph_matrix_complex_rowsum(
10114        m: *const igraph_matrix_complex_t,
10115        res: *mut igraph_vector_complex_t,
10116    ) -> igraph_error_t;
10117}
10118unsafe extern "C" {
10119    pub fn igraph_matrix_complex_colsum(
10120        m: *const igraph_matrix_complex_t,
10121        res: *mut igraph_vector_complex_t,
10122    ) -> igraph_error_t;
10123}
10124unsafe extern "C" {
10125    pub fn igraph_matrix_complex_is_equal(
10126        m1: *const igraph_matrix_complex_t,
10127        m2: *const igraph_matrix_complex_t,
10128    ) -> igraph_bool_t;
10129}
10130unsafe extern "C" {
10131    pub fn igraph_matrix_complex_contains(
10132        m: *const igraph_matrix_complex_t,
10133        e: igraph_complex_t,
10134    ) -> igraph_bool_t;
10135}
10136unsafe extern "C" {
10137    pub fn igraph_matrix_complex_search(
10138        m: *const igraph_matrix_complex_t,
10139        from: igraph_int_t,
10140        what: igraph_complex_t,
10141        pos: *mut igraph_int_t,
10142        row: *mut igraph_int_t,
10143        col: *mut igraph_int_t,
10144    ) -> igraph_bool_t;
10145}
10146unsafe extern "C" {
10147    pub fn igraph_matrix_complex_resize(
10148        m: *mut igraph_matrix_complex_t,
10149        nrow: igraph_int_t,
10150        ncol: igraph_int_t,
10151    ) -> igraph_error_t;
10152}
10153unsafe extern "C" {
10154    pub fn igraph_matrix_complex_resize_min(m: *mut igraph_matrix_complex_t);
10155}
10156unsafe extern "C" {
10157    pub fn igraph_matrix_complex_add_cols(
10158        m: *mut igraph_matrix_complex_t,
10159        n: igraph_int_t,
10160    ) -> igraph_error_t;
10161}
10162unsafe extern "C" {
10163    pub fn igraph_matrix_complex_add_rows(
10164        m: *mut igraph_matrix_complex_t,
10165        n: igraph_int_t,
10166    ) -> igraph_error_t;
10167}
10168unsafe extern "C" {
10169    pub fn igraph_matrix_complex_remove_col(
10170        m: *mut igraph_matrix_complex_t,
10171        col: igraph_int_t,
10172    ) -> igraph_error_t;
10173}
10174unsafe extern "C" {
10175    pub fn igraph_matrix_complex_remove_row(
10176        m: *mut igraph_matrix_complex_t,
10177        row: igraph_int_t,
10178    ) -> igraph_error_t;
10179}
10180unsafe extern "C" {
10181    pub fn igraph_matrix_complex_print(m: *const igraph_matrix_complex_t) -> igraph_error_t;
10182}
10183unsafe extern "C" {
10184    pub fn igraph_matrix_complex_fprint(
10185        m: *const igraph_matrix_complex_t,
10186        file: *mut FILE,
10187    ) -> igraph_error_t;
10188}
10189unsafe extern "C" {
10190    pub fn igraph_matrix_complex_real(
10191        v: *const igraph_matrix_complex_t,
10192        real: *mut igraph_matrix_t,
10193    ) -> igraph_error_t;
10194}
10195unsafe extern "C" {
10196    pub fn igraph_matrix_complex_imag(
10197        v: *const igraph_matrix_complex_t,
10198        imag: *mut igraph_matrix_t,
10199    ) -> igraph_error_t;
10200}
10201unsafe extern "C" {
10202    pub fn igraph_matrix_complex_realimag(
10203        v: *const igraph_matrix_complex_t,
10204        real: *mut igraph_matrix_t,
10205        imag: *mut igraph_matrix_t,
10206    ) -> igraph_error_t;
10207}
10208unsafe extern "C" {
10209    pub fn igraph_matrix_complex_create(
10210        v: *mut igraph_matrix_complex_t,
10211        real: *const igraph_matrix_t,
10212        imag: *const igraph_matrix_t,
10213    ) -> igraph_error_t;
10214}
10215unsafe extern "C" {
10216    pub fn igraph_matrix_complex_create_polar(
10217        v: *mut igraph_matrix_complex_t,
10218        r: *const igraph_matrix_t,
10219        theta: *const igraph_matrix_t,
10220    ) -> igraph_error_t;
10221}
10222unsafe extern "C" {
10223    pub fn igraph_matrix_complex_all_almost_e(
10224        lhs: *mut igraph_matrix_complex_t,
10225        rhs: *mut igraph_matrix_complex_t,
10226        eps: igraph_real_t,
10227    ) -> igraph_bool_t;
10228}
10229unsafe extern "C" {
10230    pub fn igraph_matrix_complex_permdelete_rows(
10231        m: *mut igraph_matrix_complex_t,
10232        index: *mut igraph_int_t,
10233        nremove: igraph_int_t,
10234    ) -> igraph_error_t;
10235}
10236unsafe extern "C" {
10237    pub fn igraph_matrix_all_almost_e(
10238        lhs: *const igraph_matrix_t,
10239        rhs: *const igraph_matrix_t,
10240        eps: igraph_real_t,
10241    ) -> igraph_bool_t;
10242}
10243unsafe extern "C" {
10244    pub fn igraph_matrix_zapsmall(m: *mut igraph_matrix_t, tol: igraph_real_t) -> igraph_error_t;
10245}
10246unsafe extern "C" {
10247    pub fn igraph_matrix_complex_zapsmall(
10248        m: *mut igraph_matrix_complex_t,
10249        tol: igraph_real_t,
10250    ) -> igraph_error_t;
10251}
10252#[repr(C)]
10253#[derive(Debug, Copy, Clone)]
10254pub struct igraph_bitset_t {
10255    pub size: igraph_int_t,
10256    pub stor_begin: *mut igraph_uint_t,
10257    pub stor_end: *mut igraph_uint_t,
10258}
10259#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10260const _: () = {
10261    ["Size of igraph_bitset_t"][::std::mem::size_of::<igraph_bitset_t>() - 24usize];
10262    ["Alignment of igraph_bitset_t"][::std::mem::align_of::<igraph_bitset_t>() - 8usize];
10263    ["Offset of field: igraph_bitset_t::size"]
10264        [::std::mem::offset_of!(igraph_bitset_t, size) - 0usize];
10265    ["Offset of field: igraph_bitset_t::stor_begin"]
10266        [::std::mem::offset_of!(igraph_bitset_t, stor_begin) - 8usize];
10267    ["Offset of field: igraph_bitset_t::stor_end"]
10268        [::std::mem::offset_of!(igraph_bitset_t, stor_end) - 16usize];
10269};
10270unsafe extern "C" {
10271    pub fn igraph_bitset_init(bitset: *mut igraph_bitset_t, size: igraph_int_t) -> igraph_error_t;
10272}
10273unsafe extern "C" {
10274    pub fn igraph_bitset_destroy(bitset: *mut igraph_bitset_t);
10275}
10276unsafe extern "C" {
10277    pub fn igraph_bitset_init_copy(
10278        dest: *mut igraph_bitset_t,
10279        src: *const igraph_bitset_t,
10280    ) -> igraph_error_t;
10281}
10282unsafe extern "C" {
10283    pub fn igraph_bitset_update(
10284        dest: *mut igraph_bitset_t,
10285        src: *const igraph_bitset_t,
10286    ) -> igraph_error_t;
10287}
10288unsafe extern "C" {
10289    pub fn igraph_bitset_capacity(bitset: *const igraph_bitset_t) -> igraph_int_t;
10290}
10291unsafe extern "C" {
10292    pub fn igraph_bitset_size(bitset: *const igraph_bitset_t) -> igraph_int_t;
10293}
10294unsafe extern "C" {
10295    pub fn igraph_bitset_reserve(
10296        bitset: *mut igraph_bitset_t,
10297        capacity: igraph_int_t,
10298    ) -> igraph_error_t;
10299}
10300unsafe extern "C" {
10301    pub fn igraph_bitset_resize(
10302        bitset: *mut igraph_bitset_t,
10303        new_size: igraph_int_t,
10304    ) -> igraph_error_t;
10305}
10306unsafe extern "C" {
10307    pub fn igraph_bitset_popcount(bitset: *const igraph_bitset_t) -> igraph_int_t;
10308}
10309unsafe extern "C" {
10310    pub fn igraph_bitset_countl_zero(bitset: *const igraph_bitset_t) -> igraph_int_t;
10311}
10312unsafe extern "C" {
10313    pub fn igraph_bitset_countl_one(bitset: *const igraph_bitset_t) -> igraph_int_t;
10314}
10315unsafe extern "C" {
10316    pub fn igraph_bitset_countr_zero(bitset: *const igraph_bitset_t) -> igraph_int_t;
10317}
10318unsafe extern "C" {
10319    pub fn igraph_bitset_countr_one(bitset: *const igraph_bitset_t) -> igraph_int_t;
10320}
10321unsafe extern "C" {
10322    pub fn igraph_bitset_is_all_zero(bitset: *const igraph_bitset_t) -> igraph_bool_t;
10323}
10324unsafe extern "C" {
10325    pub fn igraph_bitset_is_all_one(bitset: *const igraph_bitset_t) -> igraph_bool_t;
10326}
10327unsafe extern "C" {
10328    pub fn igraph_bitset_is_any_zero(bitset: *const igraph_bitset_t) -> igraph_bool_t;
10329}
10330unsafe extern "C" {
10331    pub fn igraph_bitset_is_any_one(bitset: *const igraph_bitset_t) -> igraph_bool_t;
10332}
10333unsafe extern "C" {
10334    pub fn igraph_bitset_or(
10335        dest: *mut igraph_bitset_t,
10336        src1: *const igraph_bitset_t,
10337        src2: *const igraph_bitset_t,
10338    );
10339}
10340unsafe extern "C" {
10341    pub fn igraph_bitset_and(
10342        dest: *mut igraph_bitset_t,
10343        src1: *const igraph_bitset_t,
10344        src2: *const igraph_bitset_t,
10345    );
10346}
10347unsafe extern "C" {
10348    pub fn igraph_bitset_xor(
10349        dest: *mut igraph_bitset_t,
10350        src1: *const igraph_bitset_t,
10351        src2: *const igraph_bitset_t,
10352    );
10353}
10354unsafe extern "C" {
10355    pub fn igraph_bitset_not(dest: *mut igraph_bitset_t, src: *const igraph_bitset_t);
10356}
10357unsafe extern "C" {
10358    pub fn igraph_bitset_fill(bitset: *mut igraph_bitset_t, value: igraph_bool_t);
10359}
10360unsafe extern "C" {
10361    pub fn igraph_bitset_null(bitset: *mut igraph_bitset_t);
10362}
10363unsafe extern "C" {
10364    pub fn igraph_bitset_fprint(bitset: *const igraph_bitset_t, file: *mut FILE) -> igraph_error_t;
10365}
10366unsafe extern "C" {
10367    pub fn igraph_bitset_print(bitset: *const igraph_bitset_t) -> igraph_error_t;
10368}
10369#[doc = " Double ended queue data type.\n \\ingroup internal"]
10370#[repr(C)]
10371#[derive(Debug, Copy, Clone)]
10372pub struct igraph_dqueue_t {
10373    pub begin: *mut igraph_real_t,
10374    pub end: *mut igraph_real_t,
10375    pub stor_begin: *mut igraph_real_t,
10376    pub stor_end: *mut igraph_real_t,
10377}
10378#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10379const _: () = {
10380    ["Size of igraph_dqueue_t"][::std::mem::size_of::<igraph_dqueue_t>() - 32usize];
10381    ["Alignment of igraph_dqueue_t"][::std::mem::align_of::<igraph_dqueue_t>() - 8usize];
10382    ["Offset of field: igraph_dqueue_t::begin"]
10383        [::std::mem::offset_of!(igraph_dqueue_t, begin) - 0usize];
10384    ["Offset of field: igraph_dqueue_t::end"]
10385        [::std::mem::offset_of!(igraph_dqueue_t, end) - 8usize];
10386    ["Offset of field: igraph_dqueue_t::stor_begin"]
10387        [::std::mem::offset_of!(igraph_dqueue_t, stor_begin) - 16usize];
10388    ["Offset of field: igraph_dqueue_t::stor_end"]
10389        [::std::mem::offset_of!(igraph_dqueue_t, stor_end) - 24usize];
10390};
10391unsafe extern "C" {
10392    pub fn igraph_dqueue_init(q: *mut igraph_dqueue_t, capacity: igraph_int_t) -> igraph_error_t;
10393}
10394unsafe extern "C" {
10395    pub fn igraph_dqueue_destroy(q: *mut igraph_dqueue_t);
10396}
10397unsafe extern "C" {
10398    pub fn igraph_dqueue_empty(q: *const igraph_dqueue_t) -> igraph_bool_t;
10399}
10400unsafe extern "C" {
10401    pub fn igraph_dqueue_clear(q: *mut igraph_dqueue_t);
10402}
10403unsafe extern "C" {
10404    pub fn igraph_dqueue_full(q: *mut igraph_dqueue_t) -> igraph_bool_t;
10405}
10406unsafe extern "C" {
10407    pub fn igraph_dqueue_size(q: *const igraph_dqueue_t) -> igraph_int_t;
10408}
10409unsafe extern "C" {
10410    pub fn igraph_dqueue_pop(q: *mut igraph_dqueue_t) -> igraph_real_t;
10411}
10412unsafe extern "C" {
10413    pub fn igraph_dqueue_pop_back(q: *mut igraph_dqueue_t) -> igraph_real_t;
10414}
10415unsafe extern "C" {
10416    pub fn igraph_dqueue_head(q: *const igraph_dqueue_t) -> igraph_real_t;
10417}
10418unsafe extern "C" {
10419    pub fn igraph_dqueue_back(q: *const igraph_dqueue_t) -> igraph_real_t;
10420}
10421unsafe extern "C" {
10422    pub fn igraph_dqueue_push(q: *mut igraph_dqueue_t, elem: igraph_real_t) -> igraph_error_t;
10423}
10424unsafe extern "C" {
10425    pub fn igraph_dqueue_print(q: *const igraph_dqueue_t) -> igraph_error_t;
10426}
10427unsafe extern "C" {
10428    pub fn igraph_dqueue_fprint(q: *const igraph_dqueue_t, file: *mut FILE) -> igraph_error_t;
10429}
10430unsafe extern "C" {
10431    pub fn igraph_dqueue_get(q: *const igraph_dqueue_t, idx: igraph_int_t) -> igraph_real_t;
10432}
10433#[doc = " Double ended queue data type.\n \\ingroup internal"]
10434#[repr(C)]
10435#[derive(Debug, Copy, Clone)]
10436pub struct igraph_dqueue_char_t {
10437    pub begin: *mut ::std::os::raw::c_char,
10438    pub end: *mut ::std::os::raw::c_char,
10439    pub stor_begin: *mut ::std::os::raw::c_char,
10440    pub stor_end: *mut ::std::os::raw::c_char,
10441}
10442#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10443const _: () = {
10444    ["Size of igraph_dqueue_char_t"][::std::mem::size_of::<igraph_dqueue_char_t>() - 32usize];
10445    ["Alignment of igraph_dqueue_char_t"][::std::mem::align_of::<igraph_dqueue_char_t>() - 8usize];
10446    ["Offset of field: igraph_dqueue_char_t::begin"]
10447        [::std::mem::offset_of!(igraph_dqueue_char_t, begin) - 0usize];
10448    ["Offset of field: igraph_dqueue_char_t::end"]
10449        [::std::mem::offset_of!(igraph_dqueue_char_t, end) - 8usize];
10450    ["Offset of field: igraph_dqueue_char_t::stor_begin"]
10451        [::std::mem::offset_of!(igraph_dqueue_char_t, stor_begin) - 16usize];
10452    ["Offset of field: igraph_dqueue_char_t::stor_end"]
10453        [::std::mem::offset_of!(igraph_dqueue_char_t, stor_end) - 24usize];
10454};
10455unsafe extern "C" {
10456    pub fn igraph_dqueue_char_init(
10457        q: *mut igraph_dqueue_char_t,
10458        capacity: igraph_int_t,
10459    ) -> igraph_error_t;
10460}
10461unsafe extern "C" {
10462    pub fn igraph_dqueue_char_destroy(q: *mut igraph_dqueue_char_t);
10463}
10464unsafe extern "C" {
10465    pub fn igraph_dqueue_char_empty(q: *const igraph_dqueue_char_t) -> igraph_bool_t;
10466}
10467unsafe extern "C" {
10468    pub fn igraph_dqueue_char_clear(q: *mut igraph_dqueue_char_t);
10469}
10470unsafe extern "C" {
10471    pub fn igraph_dqueue_char_full(q: *mut igraph_dqueue_char_t) -> igraph_bool_t;
10472}
10473unsafe extern "C" {
10474    pub fn igraph_dqueue_char_size(q: *const igraph_dqueue_char_t) -> igraph_int_t;
10475}
10476unsafe extern "C" {
10477    pub fn igraph_dqueue_char_pop(q: *mut igraph_dqueue_char_t) -> ::std::os::raw::c_char;
10478}
10479unsafe extern "C" {
10480    pub fn igraph_dqueue_char_pop_back(q: *mut igraph_dqueue_char_t) -> ::std::os::raw::c_char;
10481}
10482unsafe extern "C" {
10483    pub fn igraph_dqueue_char_head(q: *const igraph_dqueue_char_t) -> ::std::os::raw::c_char;
10484}
10485unsafe extern "C" {
10486    pub fn igraph_dqueue_char_back(q: *const igraph_dqueue_char_t) -> ::std::os::raw::c_char;
10487}
10488unsafe extern "C" {
10489    pub fn igraph_dqueue_char_push(
10490        q: *mut igraph_dqueue_char_t,
10491        elem: ::std::os::raw::c_char,
10492    ) -> igraph_error_t;
10493}
10494unsafe extern "C" {
10495    pub fn igraph_dqueue_char_print(q: *const igraph_dqueue_char_t) -> igraph_error_t;
10496}
10497unsafe extern "C" {
10498    pub fn igraph_dqueue_char_fprint(
10499        q: *const igraph_dqueue_char_t,
10500        file: *mut FILE,
10501    ) -> igraph_error_t;
10502}
10503unsafe extern "C" {
10504    pub fn igraph_dqueue_char_get(
10505        q: *const igraph_dqueue_char_t,
10506        idx: igraph_int_t,
10507    ) -> ::std::os::raw::c_char;
10508}
10509#[doc = " Double ended queue data type.\n \\ingroup internal"]
10510#[repr(C)]
10511#[derive(Debug, Copy, Clone)]
10512pub struct igraph_dqueue_bool_t {
10513    pub begin: *mut igraph_bool_t,
10514    pub end: *mut igraph_bool_t,
10515    pub stor_begin: *mut igraph_bool_t,
10516    pub stor_end: *mut igraph_bool_t,
10517}
10518#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10519const _: () = {
10520    ["Size of igraph_dqueue_bool_t"][::std::mem::size_of::<igraph_dqueue_bool_t>() - 32usize];
10521    ["Alignment of igraph_dqueue_bool_t"][::std::mem::align_of::<igraph_dqueue_bool_t>() - 8usize];
10522    ["Offset of field: igraph_dqueue_bool_t::begin"]
10523        [::std::mem::offset_of!(igraph_dqueue_bool_t, begin) - 0usize];
10524    ["Offset of field: igraph_dqueue_bool_t::end"]
10525        [::std::mem::offset_of!(igraph_dqueue_bool_t, end) - 8usize];
10526    ["Offset of field: igraph_dqueue_bool_t::stor_begin"]
10527        [::std::mem::offset_of!(igraph_dqueue_bool_t, stor_begin) - 16usize];
10528    ["Offset of field: igraph_dqueue_bool_t::stor_end"]
10529        [::std::mem::offset_of!(igraph_dqueue_bool_t, stor_end) - 24usize];
10530};
10531unsafe extern "C" {
10532    pub fn igraph_dqueue_bool_init(
10533        q: *mut igraph_dqueue_bool_t,
10534        capacity: igraph_int_t,
10535    ) -> igraph_error_t;
10536}
10537unsafe extern "C" {
10538    pub fn igraph_dqueue_bool_destroy(q: *mut igraph_dqueue_bool_t);
10539}
10540unsafe extern "C" {
10541    pub fn igraph_dqueue_bool_empty(q: *const igraph_dqueue_bool_t) -> igraph_bool_t;
10542}
10543unsafe extern "C" {
10544    pub fn igraph_dqueue_bool_clear(q: *mut igraph_dqueue_bool_t);
10545}
10546unsafe extern "C" {
10547    pub fn igraph_dqueue_bool_full(q: *mut igraph_dqueue_bool_t) -> igraph_bool_t;
10548}
10549unsafe extern "C" {
10550    pub fn igraph_dqueue_bool_size(q: *const igraph_dqueue_bool_t) -> igraph_int_t;
10551}
10552unsafe extern "C" {
10553    pub fn igraph_dqueue_bool_pop(q: *mut igraph_dqueue_bool_t) -> igraph_bool_t;
10554}
10555unsafe extern "C" {
10556    pub fn igraph_dqueue_bool_pop_back(q: *mut igraph_dqueue_bool_t) -> igraph_bool_t;
10557}
10558unsafe extern "C" {
10559    pub fn igraph_dqueue_bool_head(q: *const igraph_dqueue_bool_t) -> igraph_bool_t;
10560}
10561unsafe extern "C" {
10562    pub fn igraph_dqueue_bool_back(q: *const igraph_dqueue_bool_t) -> igraph_bool_t;
10563}
10564unsafe extern "C" {
10565    pub fn igraph_dqueue_bool_push(
10566        q: *mut igraph_dqueue_bool_t,
10567        elem: igraph_bool_t,
10568    ) -> igraph_error_t;
10569}
10570unsafe extern "C" {
10571    pub fn igraph_dqueue_bool_print(q: *const igraph_dqueue_bool_t) -> igraph_error_t;
10572}
10573unsafe extern "C" {
10574    pub fn igraph_dqueue_bool_fprint(
10575        q: *const igraph_dqueue_bool_t,
10576        file: *mut FILE,
10577    ) -> igraph_error_t;
10578}
10579unsafe extern "C" {
10580    pub fn igraph_dqueue_bool_get(
10581        q: *const igraph_dqueue_bool_t,
10582        idx: igraph_int_t,
10583    ) -> igraph_bool_t;
10584}
10585#[doc = " Double ended queue data type.\n \\ingroup internal"]
10586#[repr(C)]
10587#[derive(Debug, Copy, Clone)]
10588pub struct igraph_dqueue_int_t {
10589    pub begin: *mut igraph_int_t,
10590    pub end: *mut igraph_int_t,
10591    pub stor_begin: *mut igraph_int_t,
10592    pub stor_end: *mut igraph_int_t,
10593}
10594#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10595const _: () = {
10596    ["Size of igraph_dqueue_int_t"][::std::mem::size_of::<igraph_dqueue_int_t>() - 32usize];
10597    ["Alignment of igraph_dqueue_int_t"][::std::mem::align_of::<igraph_dqueue_int_t>() - 8usize];
10598    ["Offset of field: igraph_dqueue_int_t::begin"]
10599        [::std::mem::offset_of!(igraph_dqueue_int_t, begin) - 0usize];
10600    ["Offset of field: igraph_dqueue_int_t::end"]
10601        [::std::mem::offset_of!(igraph_dqueue_int_t, end) - 8usize];
10602    ["Offset of field: igraph_dqueue_int_t::stor_begin"]
10603        [::std::mem::offset_of!(igraph_dqueue_int_t, stor_begin) - 16usize];
10604    ["Offset of field: igraph_dqueue_int_t::stor_end"]
10605        [::std::mem::offset_of!(igraph_dqueue_int_t, stor_end) - 24usize];
10606};
10607unsafe extern "C" {
10608    pub fn igraph_dqueue_int_init(
10609        q: *mut igraph_dqueue_int_t,
10610        capacity: igraph_int_t,
10611    ) -> igraph_error_t;
10612}
10613unsafe extern "C" {
10614    pub fn igraph_dqueue_int_destroy(q: *mut igraph_dqueue_int_t);
10615}
10616unsafe extern "C" {
10617    pub fn igraph_dqueue_int_empty(q: *const igraph_dqueue_int_t) -> igraph_bool_t;
10618}
10619unsafe extern "C" {
10620    pub fn igraph_dqueue_int_clear(q: *mut igraph_dqueue_int_t);
10621}
10622unsafe extern "C" {
10623    pub fn igraph_dqueue_int_full(q: *mut igraph_dqueue_int_t) -> igraph_bool_t;
10624}
10625unsafe extern "C" {
10626    pub fn igraph_dqueue_int_size(q: *const igraph_dqueue_int_t) -> igraph_int_t;
10627}
10628unsafe extern "C" {
10629    pub fn igraph_dqueue_int_pop(q: *mut igraph_dqueue_int_t) -> igraph_int_t;
10630}
10631unsafe extern "C" {
10632    pub fn igraph_dqueue_int_pop_back(q: *mut igraph_dqueue_int_t) -> igraph_int_t;
10633}
10634unsafe extern "C" {
10635    pub fn igraph_dqueue_int_head(q: *const igraph_dqueue_int_t) -> igraph_int_t;
10636}
10637unsafe extern "C" {
10638    pub fn igraph_dqueue_int_back(q: *const igraph_dqueue_int_t) -> igraph_int_t;
10639}
10640unsafe extern "C" {
10641    pub fn igraph_dqueue_int_push(
10642        q: *mut igraph_dqueue_int_t,
10643        elem: igraph_int_t,
10644    ) -> igraph_error_t;
10645}
10646unsafe extern "C" {
10647    pub fn igraph_dqueue_int_print(q: *const igraph_dqueue_int_t) -> igraph_error_t;
10648}
10649unsafe extern "C" {
10650    pub fn igraph_dqueue_int_fprint(
10651        q: *const igraph_dqueue_int_t,
10652        file: *mut FILE,
10653    ) -> igraph_error_t;
10654}
10655unsafe extern "C" {
10656    pub fn igraph_dqueue_int_get(q: *const igraph_dqueue_int_t, idx: igraph_int_t) -> igraph_int_t;
10657}
10658#[doc = " Stack data type.\n \\ingroup internal"]
10659#[repr(C)]
10660#[derive(Debug, Copy, Clone)]
10661pub struct igraph_stack_t {
10662    pub stor_begin: *mut igraph_real_t,
10663    pub stor_end: *mut igraph_real_t,
10664    pub end: *mut igraph_real_t,
10665}
10666#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10667const _: () = {
10668    ["Size of igraph_stack_t"][::std::mem::size_of::<igraph_stack_t>() - 24usize];
10669    ["Alignment of igraph_stack_t"][::std::mem::align_of::<igraph_stack_t>() - 8usize];
10670    ["Offset of field: igraph_stack_t::stor_begin"]
10671        [::std::mem::offset_of!(igraph_stack_t, stor_begin) - 0usize];
10672    ["Offset of field: igraph_stack_t::stor_end"]
10673        [::std::mem::offset_of!(igraph_stack_t, stor_end) - 8usize];
10674    ["Offset of field: igraph_stack_t::end"][::std::mem::offset_of!(igraph_stack_t, end) - 16usize];
10675};
10676unsafe extern "C" {
10677    pub fn igraph_stack_init(s: *mut igraph_stack_t, capacity: igraph_int_t) -> igraph_error_t;
10678}
10679unsafe extern "C" {
10680    pub fn igraph_stack_destroy(s: *mut igraph_stack_t);
10681}
10682unsafe extern "C" {
10683    pub fn igraph_stack_reserve(s: *mut igraph_stack_t, capacity: igraph_int_t) -> igraph_error_t;
10684}
10685unsafe extern "C" {
10686    pub fn igraph_stack_empty(s: *mut igraph_stack_t) -> igraph_bool_t;
10687}
10688unsafe extern "C" {
10689    pub fn igraph_stack_size(s: *const igraph_stack_t) -> igraph_int_t;
10690}
10691unsafe extern "C" {
10692    pub fn igraph_stack_capacity(s: *const igraph_stack_t) -> igraph_int_t;
10693}
10694unsafe extern "C" {
10695    pub fn igraph_stack_clear(s: *mut igraph_stack_t);
10696}
10697unsafe extern "C" {
10698    pub fn igraph_stack_push(s: *mut igraph_stack_t, elem: igraph_real_t) -> igraph_error_t;
10699}
10700unsafe extern "C" {
10701    pub fn igraph_stack_pop(s: *mut igraph_stack_t) -> igraph_real_t;
10702}
10703unsafe extern "C" {
10704    pub fn igraph_stack_top(s: *const igraph_stack_t) -> igraph_real_t;
10705}
10706unsafe extern "C" {
10707    pub fn igraph_stack_print(s: *const igraph_stack_t) -> igraph_error_t;
10708}
10709unsafe extern "C" {
10710    pub fn igraph_stack_fprint(s: *const igraph_stack_t, file: *mut FILE) -> igraph_error_t;
10711}
10712#[doc = " Stack data type.\n \\ingroup internal"]
10713#[repr(C)]
10714#[derive(Debug, Copy, Clone)]
10715pub struct igraph_stack_int_t {
10716    pub stor_begin: *mut igraph_int_t,
10717    pub stor_end: *mut igraph_int_t,
10718    pub end: *mut igraph_int_t,
10719}
10720#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10721const _: () = {
10722    ["Size of igraph_stack_int_t"][::std::mem::size_of::<igraph_stack_int_t>() - 24usize];
10723    ["Alignment of igraph_stack_int_t"][::std::mem::align_of::<igraph_stack_int_t>() - 8usize];
10724    ["Offset of field: igraph_stack_int_t::stor_begin"]
10725        [::std::mem::offset_of!(igraph_stack_int_t, stor_begin) - 0usize];
10726    ["Offset of field: igraph_stack_int_t::stor_end"]
10727        [::std::mem::offset_of!(igraph_stack_int_t, stor_end) - 8usize];
10728    ["Offset of field: igraph_stack_int_t::end"]
10729        [::std::mem::offset_of!(igraph_stack_int_t, end) - 16usize];
10730};
10731unsafe extern "C" {
10732    pub fn igraph_stack_int_init(
10733        s: *mut igraph_stack_int_t,
10734        capacity: igraph_int_t,
10735    ) -> igraph_error_t;
10736}
10737unsafe extern "C" {
10738    pub fn igraph_stack_int_destroy(s: *mut igraph_stack_int_t);
10739}
10740unsafe extern "C" {
10741    pub fn igraph_stack_int_reserve(
10742        s: *mut igraph_stack_int_t,
10743        capacity: igraph_int_t,
10744    ) -> igraph_error_t;
10745}
10746unsafe extern "C" {
10747    pub fn igraph_stack_int_empty(s: *mut igraph_stack_int_t) -> igraph_bool_t;
10748}
10749unsafe extern "C" {
10750    pub fn igraph_stack_int_size(s: *const igraph_stack_int_t) -> igraph_int_t;
10751}
10752unsafe extern "C" {
10753    pub fn igraph_stack_int_capacity(s: *const igraph_stack_int_t) -> igraph_int_t;
10754}
10755unsafe extern "C" {
10756    pub fn igraph_stack_int_clear(s: *mut igraph_stack_int_t);
10757}
10758unsafe extern "C" {
10759    pub fn igraph_stack_int_push(s: *mut igraph_stack_int_t, elem: igraph_int_t) -> igraph_error_t;
10760}
10761unsafe extern "C" {
10762    pub fn igraph_stack_int_pop(s: *mut igraph_stack_int_t) -> igraph_int_t;
10763}
10764unsafe extern "C" {
10765    pub fn igraph_stack_int_top(s: *const igraph_stack_int_t) -> igraph_int_t;
10766}
10767unsafe extern "C" {
10768    pub fn igraph_stack_int_print(s: *const igraph_stack_int_t) -> igraph_error_t;
10769}
10770unsafe extern "C" {
10771    pub fn igraph_stack_int_fprint(s: *const igraph_stack_int_t, file: *mut FILE)
10772    -> igraph_error_t;
10773}
10774#[doc = " Stack data type.\n \\ingroup internal"]
10775#[repr(C)]
10776#[derive(Debug, Copy, Clone)]
10777pub struct igraph_stack_char_t {
10778    pub stor_begin: *mut ::std::os::raw::c_char,
10779    pub stor_end: *mut ::std::os::raw::c_char,
10780    pub end: *mut ::std::os::raw::c_char,
10781}
10782#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10783const _: () = {
10784    ["Size of igraph_stack_char_t"][::std::mem::size_of::<igraph_stack_char_t>() - 24usize];
10785    ["Alignment of igraph_stack_char_t"][::std::mem::align_of::<igraph_stack_char_t>() - 8usize];
10786    ["Offset of field: igraph_stack_char_t::stor_begin"]
10787        [::std::mem::offset_of!(igraph_stack_char_t, stor_begin) - 0usize];
10788    ["Offset of field: igraph_stack_char_t::stor_end"]
10789        [::std::mem::offset_of!(igraph_stack_char_t, stor_end) - 8usize];
10790    ["Offset of field: igraph_stack_char_t::end"]
10791        [::std::mem::offset_of!(igraph_stack_char_t, end) - 16usize];
10792};
10793unsafe extern "C" {
10794    pub fn igraph_stack_char_init(
10795        s: *mut igraph_stack_char_t,
10796        capacity: igraph_int_t,
10797    ) -> igraph_error_t;
10798}
10799unsafe extern "C" {
10800    pub fn igraph_stack_char_destroy(s: *mut igraph_stack_char_t);
10801}
10802unsafe extern "C" {
10803    pub fn igraph_stack_char_reserve(
10804        s: *mut igraph_stack_char_t,
10805        capacity: igraph_int_t,
10806    ) -> igraph_error_t;
10807}
10808unsafe extern "C" {
10809    pub fn igraph_stack_char_empty(s: *mut igraph_stack_char_t) -> igraph_bool_t;
10810}
10811unsafe extern "C" {
10812    pub fn igraph_stack_char_size(s: *const igraph_stack_char_t) -> igraph_int_t;
10813}
10814unsafe extern "C" {
10815    pub fn igraph_stack_char_capacity(s: *const igraph_stack_char_t) -> igraph_int_t;
10816}
10817unsafe extern "C" {
10818    pub fn igraph_stack_char_clear(s: *mut igraph_stack_char_t);
10819}
10820unsafe extern "C" {
10821    pub fn igraph_stack_char_push(
10822        s: *mut igraph_stack_char_t,
10823        elem: ::std::os::raw::c_char,
10824    ) -> igraph_error_t;
10825}
10826unsafe extern "C" {
10827    pub fn igraph_stack_char_pop(s: *mut igraph_stack_char_t) -> ::std::os::raw::c_char;
10828}
10829unsafe extern "C" {
10830    pub fn igraph_stack_char_top(s: *const igraph_stack_char_t) -> ::std::os::raw::c_char;
10831}
10832unsafe extern "C" {
10833    pub fn igraph_stack_char_print(s: *const igraph_stack_char_t) -> igraph_error_t;
10834}
10835unsafe extern "C" {
10836    pub fn igraph_stack_char_fprint(
10837        s: *const igraph_stack_char_t,
10838        file: *mut FILE,
10839    ) -> igraph_error_t;
10840}
10841#[doc = " Stack data type.\n \\ingroup internal"]
10842#[repr(C)]
10843#[derive(Debug, Copy, Clone)]
10844pub struct igraph_stack_bool_t {
10845    pub stor_begin: *mut igraph_bool_t,
10846    pub stor_end: *mut igraph_bool_t,
10847    pub end: *mut igraph_bool_t,
10848}
10849#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10850const _: () = {
10851    ["Size of igraph_stack_bool_t"][::std::mem::size_of::<igraph_stack_bool_t>() - 24usize];
10852    ["Alignment of igraph_stack_bool_t"][::std::mem::align_of::<igraph_stack_bool_t>() - 8usize];
10853    ["Offset of field: igraph_stack_bool_t::stor_begin"]
10854        [::std::mem::offset_of!(igraph_stack_bool_t, stor_begin) - 0usize];
10855    ["Offset of field: igraph_stack_bool_t::stor_end"]
10856        [::std::mem::offset_of!(igraph_stack_bool_t, stor_end) - 8usize];
10857    ["Offset of field: igraph_stack_bool_t::end"]
10858        [::std::mem::offset_of!(igraph_stack_bool_t, end) - 16usize];
10859};
10860unsafe extern "C" {
10861    pub fn igraph_stack_bool_init(
10862        s: *mut igraph_stack_bool_t,
10863        capacity: igraph_int_t,
10864    ) -> igraph_error_t;
10865}
10866unsafe extern "C" {
10867    pub fn igraph_stack_bool_destroy(s: *mut igraph_stack_bool_t);
10868}
10869unsafe extern "C" {
10870    pub fn igraph_stack_bool_reserve(
10871        s: *mut igraph_stack_bool_t,
10872        capacity: igraph_int_t,
10873    ) -> igraph_error_t;
10874}
10875unsafe extern "C" {
10876    pub fn igraph_stack_bool_empty(s: *mut igraph_stack_bool_t) -> igraph_bool_t;
10877}
10878unsafe extern "C" {
10879    pub fn igraph_stack_bool_size(s: *const igraph_stack_bool_t) -> igraph_int_t;
10880}
10881unsafe extern "C" {
10882    pub fn igraph_stack_bool_capacity(s: *const igraph_stack_bool_t) -> igraph_int_t;
10883}
10884unsafe extern "C" {
10885    pub fn igraph_stack_bool_clear(s: *mut igraph_stack_bool_t);
10886}
10887unsafe extern "C" {
10888    pub fn igraph_stack_bool_push(
10889        s: *mut igraph_stack_bool_t,
10890        elem: igraph_bool_t,
10891    ) -> igraph_error_t;
10892}
10893unsafe extern "C" {
10894    pub fn igraph_stack_bool_pop(s: *mut igraph_stack_bool_t) -> igraph_bool_t;
10895}
10896unsafe extern "C" {
10897    pub fn igraph_stack_bool_top(s: *const igraph_stack_bool_t) -> igraph_bool_t;
10898}
10899unsafe extern "C" {
10900    pub fn igraph_stack_bool_print(s: *const igraph_stack_bool_t) -> igraph_error_t;
10901}
10902unsafe extern "C" {
10903    pub fn igraph_stack_bool_fprint(
10904        s: *const igraph_stack_bool_t,
10905        file: *mut FILE,
10906    ) -> igraph_error_t;
10907}
10908#[repr(C)]
10909#[derive(Debug, Copy, Clone)]
10910pub struct igraph_heap_t {
10911    pub stor_begin: *mut igraph_real_t,
10912    pub stor_end: *mut igraph_real_t,
10913    pub end: *mut igraph_real_t,
10914}
10915#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10916const _: () = {
10917    ["Size of igraph_heap_t"][::std::mem::size_of::<igraph_heap_t>() - 24usize];
10918    ["Alignment of igraph_heap_t"][::std::mem::align_of::<igraph_heap_t>() - 8usize];
10919    ["Offset of field: igraph_heap_t::stor_begin"]
10920        [::std::mem::offset_of!(igraph_heap_t, stor_begin) - 0usize];
10921    ["Offset of field: igraph_heap_t::stor_end"]
10922        [::std::mem::offset_of!(igraph_heap_t, stor_end) - 8usize];
10923    ["Offset of field: igraph_heap_t::end"][::std::mem::offset_of!(igraph_heap_t, end) - 16usize];
10924};
10925unsafe extern "C" {
10926    pub fn igraph_heap_init(h: *mut igraph_heap_t, capacity: igraph_int_t) -> igraph_error_t;
10927}
10928unsafe extern "C" {
10929    pub fn igraph_heap_init_array(
10930        t: *mut igraph_heap_t,
10931        data: *const igraph_real_t,
10932        len: igraph_int_t,
10933    ) -> igraph_error_t;
10934}
10935unsafe extern "C" {
10936    pub fn igraph_heap_destroy(h: *mut igraph_heap_t);
10937}
10938unsafe extern "C" {
10939    pub fn igraph_heap_clear(h: *mut igraph_heap_t);
10940}
10941unsafe extern "C" {
10942    pub fn igraph_heap_empty(h: *const igraph_heap_t) -> igraph_bool_t;
10943}
10944unsafe extern "C" {
10945    pub fn igraph_heap_push(h: *mut igraph_heap_t, elem: igraph_real_t) -> igraph_error_t;
10946}
10947unsafe extern "C" {
10948    pub fn igraph_heap_top(h: *const igraph_heap_t) -> igraph_real_t;
10949}
10950unsafe extern "C" {
10951    pub fn igraph_heap_delete_top(h: *mut igraph_heap_t) -> igraph_real_t;
10952}
10953unsafe extern "C" {
10954    pub fn igraph_heap_size(h: *const igraph_heap_t) -> igraph_int_t;
10955}
10956unsafe extern "C" {
10957    pub fn igraph_heap_reserve(h: *mut igraph_heap_t, capacity: igraph_int_t) -> igraph_error_t;
10958}
10959#[repr(C)]
10960#[derive(Debug, Copy, Clone)]
10961pub struct igraph_heap_min_t {
10962    pub stor_begin: *mut igraph_real_t,
10963    pub stor_end: *mut igraph_real_t,
10964    pub end: *mut igraph_real_t,
10965}
10966#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10967const _: () = {
10968    ["Size of igraph_heap_min_t"][::std::mem::size_of::<igraph_heap_min_t>() - 24usize];
10969    ["Alignment of igraph_heap_min_t"][::std::mem::align_of::<igraph_heap_min_t>() - 8usize];
10970    ["Offset of field: igraph_heap_min_t::stor_begin"]
10971        [::std::mem::offset_of!(igraph_heap_min_t, stor_begin) - 0usize];
10972    ["Offset of field: igraph_heap_min_t::stor_end"]
10973        [::std::mem::offset_of!(igraph_heap_min_t, stor_end) - 8usize];
10974    ["Offset of field: igraph_heap_min_t::end"]
10975        [::std::mem::offset_of!(igraph_heap_min_t, end) - 16usize];
10976};
10977unsafe extern "C" {
10978    pub fn igraph_heap_min_init(
10979        h: *mut igraph_heap_min_t,
10980        capacity: igraph_int_t,
10981    ) -> igraph_error_t;
10982}
10983unsafe extern "C" {
10984    pub fn igraph_heap_min_init_array(
10985        t: *mut igraph_heap_min_t,
10986        data: *const igraph_real_t,
10987        len: igraph_int_t,
10988    ) -> igraph_error_t;
10989}
10990unsafe extern "C" {
10991    pub fn igraph_heap_min_destroy(h: *mut igraph_heap_min_t);
10992}
10993unsafe extern "C" {
10994    pub fn igraph_heap_min_clear(h: *mut igraph_heap_min_t);
10995}
10996unsafe extern "C" {
10997    pub fn igraph_heap_min_empty(h: *const igraph_heap_min_t) -> igraph_bool_t;
10998}
10999unsafe extern "C" {
11000    pub fn igraph_heap_min_push(h: *mut igraph_heap_min_t, elem: igraph_real_t) -> igraph_error_t;
11001}
11002unsafe extern "C" {
11003    pub fn igraph_heap_min_top(h: *const igraph_heap_min_t) -> igraph_real_t;
11004}
11005unsafe extern "C" {
11006    pub fn igraph_heap_min_delete_top(h: *mut igraph_heap_min_t) -> igraph_real_t;
11007}
11008unsafe extern "C" {
11009    pub fn igraph_heap_min_size(h: *const igraph_heap_min_t) -> igraph_int_t;
11010}
11011unsafe extern "C" {
11012    pub fn igraph_heap_min_reserve(
11013        h: *mut igraph_heap_min_t,
11014        capacity: igraph_int_t,
11015    ) -> igraph_error_t;
11016}
11017#[repr(C)]
11018#[derive(Debug, Copy, Clone)]
11019pub struct igraph_heap_int_t {
11020    pub stor_begin: *mut igraph_int_t,
11021    pub stor_end: *mut igraph_int_t,
11022    pub end: *mut igraph_int_t,
11023}
11024#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11025const _: () = {
11026    ["Size of igraph_heap_int_t"][::std::mem::size_of::<igraph_heap_int_t>() - 24usize];
11027    ["Alignment of igraph_heap_int_t"][::std::mem::align_of::<igraph_heap_int_t>() - 8usize];
11028    ["Offset of field: igraph_heap_int_t::stor_begin"]
11029        [::std::mem::offset_of!(igraph_heap_int_t, stor_begin) - 0usize];
11030    ["Offset of field: igraph_heap_int_t::stor_end"]
11031        [::std::mem::offset_of!(igraph_heap_int_t, stor_end) - 8usize];
11032    ["Offset of field: igraph_heap_int_t::end"]
11033        [::std::mem::offset_of!(igraph_heap_int_t, end) - 16usize];
11034};
11035unsafe extern "C" {
11036    pub fn igraph_heap_int_init(
11037        h: *mut igraph_heap_int_t,
11038        capacity: igraph_int_t,
11039    ) -> igraph_error_t;
11040}
11041unsafe extern "C" {
11042    pub fn igraph_heap_int_init_array(
11043        t: *mut igraph_heap_int_t,
11044        data: *const igraph_int_t,
11045        len: igraph_int_t,
11046    ) -> igraph_error_t;
11047}
11048unsafe extern "C" {
11049    pub fn igraph_heap_int_destroy(h: *mut igraph_heap_int_t);
11050}
11051unsafe extern "C" {
11052    pub fn igraph_heap_int_clear(h: *mut igraph_heap_int_t);
11053}
11054unsafe extern "C" {
11055    pub fn igraph_heap_int_empty(h: *const igraph_heap_int_t) -> igraph_bool_t;
11056}
11057unsafe extern "C" {
11058    pub fn igraph_heap_int_push(h: *mut igraph_heap_int_t, elem: igraph_int_t) -> igraph_error_t;
11059}
11060unsafe extern "C" {
11061    pub fn igraph_heap_int_top(h: *const igraph_heap_int_t) -> igraph_int_t;
11062}
11063unsafe extern "C" {
11064    pub fn igraph_heap_int_delete_top(h: *mut igraph_heap_int_t) -> igraph_int_t;
11065}
11066unsafe extern "C" {
11067    pub fn igraph_heap_int_size(h: *const igraph_heap_int_t) -> igraph_int_t;
11068}
11069unsafe extern "C" {
11070    pub fn igraph_heap_int_reserve(
11071        h: *mut igraph_heap_int_t,
11072        capacity: igraph_int_t,
11073    ) -> igraph_error_t;
11074}
11075#[repr(C)]
11076#[derive(Debug, Copy, Clone)]
11077pub struct igraph_heap_min_int_t {
11078    pub stor_begin: *mut igraph_int_t,
11079    pub stor_end: *mut igraph_int_t,
11080    pub end: *mut igraph_int_t,
11081}
11082#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11083const _: () = {
11084    ["Size of igraph_heap_min_int_t"][::std::mem::size_of::<igraph_heap_min_int_t>() - 24usize];
11085    ["Alignment of igraph_heap_min_int_t"]
11086        [::std::mem::align_of::<igraph_heap_min_int_t>() - 8usize];
11087    ["Offset of field: igraph_heap_min_int_t::stor_begin"]
11088        [::std::mem::offset_of!(igraph_heap_min_int_t, stor_begin) - 0usize];
11089    ["Offset of field: igraph_heap_min_int_t::stor_end"]
11090        [::std::mem::offset_of!(igraph_heap_min_int_t, stor_end) - 8usize];
11091    ["Offset of field: igraph_heap_min_int_t::end"]
11092        [::std::mem::offset_of!(igraph_heap_min_int_t, end) - 16usize];
11093};
11094unsafe extern "C" {
11095    pub fn igraph_heap_min_int_init(
11096        h: *mut igraph_heap_min_int_t,
11097        capacity: igraph_int_t,
11098    ) -> igraph_error_t;
11099}
11100unsafe extern "C" {
11101    pub fn igraph_heap_min_int_init_array(
11102        t: *mut igraph_heap_min_int_t,
11103        data: *const igraph_int_t,
11104        len: igraph_int_t,
11105    ) -> igraph_error_t;
11106}
11107unsafe extern "C" {
11108    pub fn igraph_heap_min_int_destroy(h: *mut igraph_heap_min_int_t);
11109}
11110unsafe extern "C" {
11111    pub fn igraph_heap_min_int_clear(h: *mut igraph_heap_min_int_t);
11112}
11113unsafe extern "C" {
11114    pub fn igraph_heap_min_int_empty(h: *const igraph_heap_min_int_t) -> igraph_bool_t;
11115}
11116unsafe extern "C" {
11117    pub fn igraph_heap_min_int_push(
11118        h: *mut igraph_heap_min_int_t,
11119        elem: igraph_int_t,
11120    ) -> igraph_error_t;
11121}
11122unsafe extern "C" {
11123    pub fn igraph_heap_min_int_top(h: *const igraph_heap_min_int_t) -> igraph_int_t;
11124}
11125unsafe extern "C" {
11126    pub fn igraph_heap_min_int_delete_top(h: *mut igraph_heap_min_int_t) -> igraph_int_t;
11127}
11128unsafe extern "C" {
11129    pub fn igraph_heap_min_int_size(h: *const igraph_heap_min_int_t) -> igraph_int_t;
11130}
11131unsafe extern "C" {
11132    pub fn igraph_heap_min_int_reserve(
11133        h: *mut igraph_heap_min_int_t,
11134        capacity: igraph_int_t,
11135    ) -> igraph_error_t;
11136}
11137#[repr(C)]
11138#[derive(Debug, Copy, Clone)]
11139pub struct igraph_heap_char_t {
11140    pub stor_begin: *mut ::std::os::raw::c_char,
11141    pub stor_end: *mut ::std::os::raw::c_char,
11142    pub end: *mut ::std::os::raw::c_char,
11143}
11144#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11145const _: () = {
11146    ["Size of igraph_heap_char_t"][::std::mem::size_of::<igraph_heap_char_t>() - 24usize];
11147    ["Alignment of igraph_heap_char_t"][::std::mem::align_of::<igraph_heap_char_t>() - 8usize];
11148    ["Offset of field: igraph_heap_char_t::stor_begin"]
11149        [::std::mem::offset_of!(igraph_heap_char_t, stor_begin) - 0usize];
11150    ["Offset of field: igraph_heap_char_t::stor_end"]
11151        [::std::mem::offset_of!(igraph_heap_char_t, stor_end) - 8usize];
11152    ["Offset of field: igraph_heap_char_t::end"]
11153        [::std::mem::offset_of!(igraph_heap_char_t, end) - 16usize];
11154};
11155unsafe extern "C" {
11156    pub fn igraph_heap_char_init(
11157        h: *mut igraph_heap_char_t,
11158        capacity: igraph_int_t,
11159    ) -> igraph_error_t;
11160}
11161unsafe extern "C" {
11162    pub fn igraph_heap_char_init_array(
11163        t: *mut igraph_heap_char_t,
11164        data: *const ::std::os::raw::c_char,
11165        len: igraph_int_t,
11166    ) -> igraph_error_t;
11167}
11168unsafe extern "C" {
11169    pub fn igraph_heap_char_destroy(h: *mut igraph_heap_char_t);
11170}
11171unsafe extern "C" {
11172    pub fn igraph_heap_char_clear(h: *mut igraph_heap_char_t);
11173}
11174unsafe extern "C" {
11175    pub fn igraph_heap_char_empty(h: *const igraph_heap_char_t) -> igraph_bool_t;
11176}
11177unsafe extern "C" {
11178    pub fn igraph_heap_char_push(
11179        h: *mut igraph_heap_char_t,
11180        elem: ::std::os::raw::c_char,
11181    ) -> igraph_error_t;
11182}
11183unsafe extern "C" {
11184    pub fn igraph_heap_char_top(h: *const igraph_heap_char_t) -> ::std::os::raw::c_char;
11185}
11186unsafe extern "C" {
11187    pub fn igraph_heap_char_delete_top(h: *mut igraph_heap_char_t) -> ::std::os::raw::c_char;
11188}
11189unsafe extern "C" {
11190    pub fn igraph_heap_char_size(h: *const igraph_heap_char_t) -> igraph_int_t;
11191}
11192unsafe extern "C" {
11193    pub fn igraph_heap_char_reserve(
11194        h: *mut igraph_heap_char_t,
11195        capacity: igraph_int_t,
11196    ) -> igraph_error_t;
11197}
11198#[repr(C)]
11199#[derive(Debug, Copy, Clone)]
11200pub struct igraph_heap_min_char_t {
11201    pub stor_begin: *mut ::std::os::raw::c_char,
11202    pub stor_end: *mut ::std::os::raw::c_char,
11203    pub end: *mut ::std::os::raw::c_char,
11204}
11205#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11206const _: () = {
11207    ["Size of igraph_heap_min_char_t"][::std::mem::size_of::<igraph_heap_min_char_t>() - 24usize];
11208    ["Alignment of igraph_heap_min_char_t"]
11209        [::std::mem::align_of::<igraph_heap_min_char_t>() - 8usize];
11210    ["Offset of field: igraph_heap_min_char_t::stor_begin"]
11211        [::std::mem::offset_of!(igraph_heap_min_char_t, stor_begin) - 0usize];
11212    ["Offset of field: igraph_heap_min_char_t::stor_end"]
11213        [::std::mem::offset_of!(igraph_heap_min_char_t, stor_end) - 8usize];
11214    ["Offset of field: igraph_heap_min_char_t::end"]
11215        [::std::mem::offset_of!(igraph_heap_min_char_t, end) - 16usize];
11216};
11217unsafe extern "C" {
11218    pub fn igraph_heap_min_char_init(
11219        h: *mut igraph_heap_min_char_t,
11220        capacity: igraph_int_t,
11221    ) -> igraph_error_t;
11222}
11223unsafe extern "C" {
11224    pub fn igraph_heap_min_char_init_array(
11225        t: *mut igraph_heap_min_char_t,
11226        data: *const ::std::os::raw::c_char,
11227        len: igraph_int_t,
11228    ) -> igraph_error_t;
11229}
11230unsafe extern "C" {
11231    pub fn igraph_heap_min_char_destroy(h: *mut igraph_heap_min_char_t);
11232}
11233unsafe extern "C" {
11234    pub fn igraph_heap_min_char_clear(h: *mut igraph_heap_min_char_t);
11235}
11236unsafe extern "C" {
11237    pub fn igraph_heap_min_char_empty(h: *const igraph_heap_min_char_t) -> igraph_bool_t;
11238}
11239unsafe extern "C" {
11240    pub fn igraph_heap_min_char_push(
11241        h: *mut igraph_heap_min_char_t,
11242        elem: ::std::os::raw::c_char,
11243    ) -> igraph_error_t;
11244}
11245unsafe extern "C" {
11246    pub fn igraph_heap_min_char_top(h: *const igraph_heap_min_char_t) -> ::std::os::raw::c_char;
11247}
11248unsafe extern "C" {
11249    pub fn igraph_heap_min_char_delete_top(
11250        h: *mut igraph_heap_min_char_t,
11251    ) -> ::std::os::raw::c_char;
11252}
11253unsafe extern "C" {
11254    pub fn igraph_heap_min_char_size(h: *const igraph_heap_min_char_t) -> igraph_int_t;
11255}
11256unsafe extern "C" {
11257    pub fn igraph_heap_min_char_reserve(
11258        h: *mut igraph_heap_min_char_t,
11259        capacity: igraph_int_t,
11260    ) -> igraph_error_t;
11261}
11262#[repr(C)]
11263#[derive(Debug, Copy, Clone)]
11264pub struct igraph_psumtree_t {
11265    pub v: igraph_vector_t,
11266    pub size: igraph_int_t,
11267    pub offset: igraph_int_t,
11268}
11269#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11270const _: () = {
11271    ["Size of igraph_psumtree_t"][::std::mem::size_of::<igraph_psumtree_t>() - 40usize];
11272    ["Alignment of igraph_psumtree_t"][::std::mem::align_of::<igraph_psumtree_t>() - 8usize];
11273    ["Offset of field: igraph_psumtree_t::v"]
11274        [::std::mem::offset_of!(igraph_psumtree_t, v) - 0usize];
11275    ["Offset of field: igraph_psumtree_t::size"]
11276        [::std::mem::offset_of!(igraph_psumtree_t, size) - 24usize];
11277    ["Offset of field: igraph_psumtree_t::offset"]
11278        [::std::mem::offset_of!(igraph_psumtree_t, offset) - 32usize];
11279};
11280unsafe extern "C" {
11281    pub fn igraph_psumtree_init(t: *mut igraph_psumtree_t, size: igraph_int_t) -> igraph_error_t;
11282}
11283unsafe extern "C" {
11284    pub fn igraph_psumtree_reset(t: *mut igraph_psumtree_t);
11285}
11286unsafe extern "C" {
11287    pub fn igraph_psumtree_destroy(t: *mut igraph_psumtree_t);
11288}
11289unsafe extern "C" {
11290    pub fn igraph_psumtree_get(t: *const igraph_psumtree_t, idx: igraph_int_t) -> igraph_real_t;
11291}
11292unsafe extern "C" {
11293    pub fn igraph_psumtree_size(t: *const igraph_psumtree_t) -> igraph_int_t;
11294}
11295unsafe extern "C" {
11296    pub fn igraph_psumtree_search(
11297        t: *const igraph_psumtree_t,
11298        idx: *mut igraph_int_t,
11299        elem: igraph_real_t,
11300    ) -> igraph_error_t;
11301}
11302unsafe extern "C" {
11303    pub fn igraph_psumtree_update(
11304        t: *mut igraph_psumtree_t,
11305        idx: igraph_int_t,
11306        new_value: igraph_real_t,
11307    ) -> igraph_error_t;
11308}
11309unsafe extern "C" {
11310    pub fn igraph_psumtree_sum(t: *const igraph_psumtree_t) -> igraph_real_t;
11311}
11312#[doc = " Vector of strings\n \\ingroup internal"]
11313#[repr(C)]
11314#[derive(Debug, Copy, Clone)]
11315pub struct s_igraph_strvector {
11316    pub stor_begin: *mut *const ::std::os::raw::c_char,
11317    pub stor_end: *mut *const ::std::os::raw::c_char,
11318    pub end: *mut *const ::std::os::raw::c_char,
11319}
11320#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11321const _: () = {
11322    ["Size of s_igraph_strvector"][::std::mem::size_of::<s_igraph_strvector>() - 24usize];
11323    ["Alignment of s_igraph_strvector"][::std::mem::align_of::<s_igraph_strvector>() - 8usize];
11324    ["Offset of field: s_igraph_strvector::stor_begin"]
11325        [::std::mem::offset_of!(s_igraph_strvector, stor_begin) - 0usize];
11326    ["Offset of field: s_igraph_strvector::stor_end"]
11327        [::std::mem::offset_of!(s_igraph_strvector, stor_end) - 8usize];
11328    ["Offset of field: s_igraph_strvector::end"]
11329        [::std::mem::offset_of!(s_igraph_strvector, end) - 16usize];
11330};
11331#[doc = " Vector of strings\n \\ingroup internal"]
11332pub type igraph_strvector_t = s_igraph_strvector;
11333unsafe extern "C" {
11334    pub fn igraph_strvector_init(sv: *mut igraph_strvector_t, len: igraph_int_t) -> igraph_error_t;
11335}
11336unsafe extern "C" {
11337    pub fn igraph_strvector_destroy(sv: *mut igraph_strvector_t);
11338}
11339unsafe extern "C" {
11340    pub fn igraph_strvector_size(sv: *const igraph_strvector_t) -> igraph_int_t;
11341}
11342unsafe extern "C" {
11343    pub fn igraph_strvector_capacity(sv: *const igraph_strvector_t) -> igraph_int_t;
11344}
11345unsafe extern "C" {
11346    pub fn igraph_strvector_get(
11347        sv: *const igraph_strvector_t,
11348        idx: igraph_int_t,
11349    ) -> *const ::std::os::raw::c_char;
11350}
11351unsafe extern "C" {
11352    pub fn igraph_strvector_set(
11353        sv: *mut igraph_strvector_t,
11354        idx: igraph_int_t,
11355        value: *const ::std::os::raw::c_char,
11356    ) -> igraph_error_t;
11357}
11358unsafe extern "C" {
11359    pub fn igraph_strvector_set_len(
11360        sv: *mut igraph_strvector_t,
11361        idx: igraph_int_t,
11362        value: *const ::std::os::raw::c_char,
11363        len: usize,
11364    ) -> igraph_error_t;
11365}
11366unsafe extern "C" {
11367    pub fn igraph_strvector_clear(sv: *mut igraph_strvector_t);
11368}
11369unsafe extern "C" {
11370    pub fn igraph_strvector_remove_section(
11371        v: *mut igraph_strvector_t,
11372        from: igraph_int_t,
11373        to: igraph_int_t,
11374    );
11375}
11376unsafe extern "C" {
11377    pub fn igraph_strvector_remove(v: *mut igraph_strvector_t, elem: igraph_int_t);
11378}
11379unsafe extern "C" {
11380    pub fn igraph_strvector_init_copy(
11381        to: *mut igraph_strvector_t,
11382        from: *const igraph_strvector_t,
11383    ) -> igraph_error_t;
11384}
11385unsafe extern "C" {
11386    pub fn igraph_strvector_append(
11387        to: *mut igraph_strvector_t,
11388        from: *const igraph_strvector_t,
11389    ) -> igraph_error_t;
11390}
11391unsafe extern "C" {
11392    pub fn igraph_strvector_merge(
11393        to: *mut igraph_strvector_t,
11394        from: *mut igraph_strvector_t,
11395    ) -> igraph_error_t;
11396}
11397unsafe extern "C" {
11398    pub fn igraph_strvector_swap(v1: *mut igraph_strvector_t, v2: *mut igraph_strvector_t);
11399}
11400unsafe extern "C" {
11401    pub fn igraph_strvector_update(
11402        to: *mut igraph_strvector_t,
11403        from: *const igraph_strvector_t,
11404    ) -> igraph_error_t;
11405}
11406unsafe extern "C" {
11407    pub fn igraph_strvector_resize(
11408        v: *mut igraph_strvector_t,
11409        newsize: igraph_int_t,
11410    ) -> igraph_error_t;
11411}
11412unsafe extern "C" {
11413    pub fn igraph_strvector_resize_min(sv: *mut igraph_strvector_t);
11414}
11415unsafe extern "C" {
11416    pub fn igraph_strvector_push_back(
11417        v: *mut igraph_strvector_t,
11418        value: *const ::std::os::raw::c_char,
11419    ) -> igraph_error_t;
11420}
11421unsafe extern "C" {
11422    pub fn igraph_strvector_push_back_len(
11423        v: *mut igraph_strvector_t,
11424        value: *const ::std::os::raw::c_char,
11425        len: usize,
11426    ) -> igraph_error_t;
11427}
11428unsafe extern "C" {
11429    pub fn igraph_strvector_fprint(
11430        v: *const igraph_strvector_t,
11431        file: *mut FILE,
11432        sep: *const ::std::os::raw::c_char,
11433    ) -> igraph_error_t;
11434}
11435unsafe extern "C" {
11436    pub fn igraph_strvector_print(
11437        v: *const igraph_strvector_t,
11438        sep: *const ::std::os::raw::c_char,
11439    ) -> igraph_error_t;
11440}
11441unsafe extern "C" {
11442    pub fn igraph_strvector_index(
11443        v: *const igraph_strvector_t,
11444        newv: *mut igraph_strvector_t,
11445        idx: *const igraph_vector_int_t,
11446    ) -> igraph_error_t;
11447}
11448unsafe extern "C" {
11449    pub fn igraph_strvector_reserve(
11450        sv: *mut igraph_strvector_t,
11451        capacity: igraph_int_t,
11452    ) -> igraph_error_t;
11453}
11454unsafe extern "C" {
11455    pub fn igraph_strvector_swap_elements(
11456        sv: *mut igraph_strvector_t,
11457        i: igraph_int_t,
11458        j: igraph_int_t,
11459    );
11460}
11461#[doc = " Vector list, dealing with lists of typed vectors efficiently.\n \\ingroup types"]
11462#[repr(C)]
11463#[derive(Debug, Copy, Clone)]
11464pub struct igraph_vector_list_t {
11465    pub stor_begin: *mut igraph_vector_t,
11466    pub stor_end: *mut igraph_vector_t,
11467    pub end: *mut igraph_vector_t,
11468}
11469#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11470const _: () = {
11471    ["Size of igraph_vector_list_t"][::std::mem::size_of::<igraph_vector_list_t>() - 24usize];
11472    ["Alignment of igraph_vector_list_t"][::std::mem::align_of::<igraph_vector_list_t>() - 8usize];
11473    ["Offset of field: igraph_vector_list_t::stor_begin"]
11474        [::std::mem::offset_of!(igraph_vector_list_t, stor_begin) - 0usize];
11475    ["Offset of field: igraph_vector_list_t::stor_end"]
11476        [::std::mem::offset_of!(igraph_vector_list_t, stor_end) - 8usize];
11477    ["Offset of field: igraph_vector_list_t::end"]
11478        [::std::mem::offset_of!(igraph_vector_list_t, end) - 16usize];
11479};
11480unsafe extern "C" {
11481    pub fn igraph_vector_list_init(
11482        v: *mut igraph_vector_list_t,
11483        size: igraph_int_t,
11484    ) -> igraph_error_t;
11485}
11486unsafe extern "C" {
11487    pub fn igraph_vector_list_init_copy(
11488        to: *mut igraph_vector_list_t,
11489        from: *const igraph_vector_list_t,
11490    ) -> igraph_error_t;
11491}
11492unsafe extern "C" {
11493    pub fn igraph_vector_list_destroy(v: *mut igraph_vector_list_t);
11494}
11495unsafe extern "C" {
11496    pub fn igraph_vector_list_get_ptr(
11497        v: *const igraph_vector_list_t,
11498        pos: igraph_int_t,
11499    ) -> *mut igraph_vector_t;
11500}
11501unsafe extern "C" {
11502    pub fn igraph_vector_list_set(
11503        v: *mut igraph_vector_list_t,
11504        pos: igraph_int_t,
11505        e: *mut igraph_vector_t,
11506    );
11507}
11508unsafe extern "C" {
11509    pub fn igraph_vector_list_tail_ptr(v: *const igraph_vector_list_t) -> *mut igraph_vector_t;
11510}
11511unsafe extern "C" {
11512    pub fn igraph_vector_list_capacity(v: *const igraph_vector_list_t) -> igraph_int_t;
11513}
11514unsafe extern "C" {
11515    pub fn igraph_vector_list_empty(v: *const igraph_vector_list_t) -> igraph_bool_t;
11516}
11517unsafe extern "C" {
11518    pub fn igraph_vector_list_size(v: *const igraph_vector_list_t) -> igraph_int_t;
11519}
11520unsafe extern "C" {
11521    pub fn igraph_vector_list_clear(v: *mut igraph_vector_list_t);
11522}
11523unsafe extern "C" {
11524    pub fn igraph_vector_list_reserve(
11525        v: *mut igraph_vector_list_t,
11526        capacity: igraph_int_t,
11527    ) -> igraph_error_t;
11528}
11529unsafe extern "C" {
11530    pub fn igraph_vector_list_resize(
11531        v: *mut igraph_vector_list_t,
11532        new_size: igraph_int_t,
11533    ) -> igraph_error_t;
11534}
11535unsafe extern "C" {
11536    pub fn igraph_vector_list_discard(v: *mut igraph_vector_list_t, index: igraph_int_t);
11537}
11538unsafe extern "C" {
11539    pub fn igraph_vector_list_discard_back(v: *mut igraph_vector_list_t);
11540}
11541unsafe extern "C" {
11542    pub fn igraph_vector_list_discard_fast(v: *mut igraph_vector_list_t, index: igraph_int_t);
11543}
11544unsafe extern "C" {
11545    pub fn igraph_vector_list_insert(
11546        v: *mut igraph_vector_list_t,
11547        pos: igraph_int_t,
11548        e: *mut igraph_vector_t,
11549    ) -> igraph_error_t;
11550}
11551unsafe extern "C" {
11552    pub fn igraph_vector_list_insert_copy(
11553        v: *mut igraph_vector_list_t,
11554        pos: igraph_int_t,
11555        e: *const igraph_vector_t,
11556    ) -> igraph_error_t;
11557}
11558unsafe extern "C" {
11559    pub fn igraph_vector_list_insert_new(
11560        v: *mut igraph_vector_list_t,
11561        pos: igraph_int_t,
11562        result: *mut *mut igraph_vector_t,
11563    ) -> igraph_error_t;
11564}
11565unsafe extern "C" {
11566    pub fn igraph_vector_list_push_back(
11567        v: *mut igraph_vector_list_t,
11568        e: *mut igraph_vector_t,
11569    ) -> igraph_error_t;
11570}
11571unsafe extern "C" {
11572    pub fn igraph_vector_list_push_back_copy(
11573        v: *mut igraph_vector_list_t,
11574        e: *const igraph_vector_t,
11575    ) -> igraph_error_t;
11576}
11577unsafe extern "C" {
11578    pub fn igraph_vector_list_push_back_new(
11579        v: *mut igraph_vector_list_t,
11580        result: *mut *mut igraph_vector_t,
11581    ) -> igraph_error_t;
11582}
11583unsafe extern "C" {
11584    pub fn igraph_vector_list_pop_back(v: *mut igraph_vector_list_t) -> igraph_vector_t;
11585}
11586unsafe extern "C" {
11587    pub fn igraph_vector_list_remove(
11588        v: *mut igraph_vector_list_t,
11589        index: igraph_int_t,
11590        e: *mut igraph_vector_t,
11591    ) -> igraph_error_t;
11592}
11593unsafe extern "C" {
11594    pub fn igraph_vector_list_remove_fast(
11595        v: *mut igraph_vector_list_t,
11596        index: igraph_int_t,
11597        e: *mut igraph_vector_t,
11598    ) -> igraph_error_t;
11599}
11600unsafe extern "C" {
11601    pub fn igraph_vector_list_replace(
11602        v: *mut igraph_vector_list_t,
11603        pos: igraph_int_t,
11604        e: *mut igraph_vector_t,
11605    );
11606}
11607unsafe extern "C" {
11608    pub fn igraph_vector_list_remove_consecutive_duplicates(
11609        v: *mut igraph_vector_list_t,
11610        eq: ::std::option::Option<
11611            unsafe extern "C" fn(
11612                arg1: *const igraph_vector_t,
11613                arg2: *const igraph_vector_t,
11614            ) -> igraph_bool_t,
11615        >,
11616    );
11617}
11618unsafe extern "C" {
11619    pub fn igraph_vector_list_permute(
11620        v: *mut igraph_vector_list_t,
11621        index: *const igraph_vector_int_t,
11622    ) -> igraph_error_t;
11623}
11624unsafe extern "C" {
11625    pub fn igraph_vector_list_reverse(v: *mut igraph_vector_list_t) -> igraph_error_t;
11626}
11627unsafe extern "C" {
11628    pub fn igraph_vector_list_swap(v1: *mut igraph_vector_list_t, v2: *mut igraph_vector_list_t);
11629}
11630unsafe extern "C" {
11631    pub fn igraph_vector_list_swap_elements(
11632        v: *mut igraph_vector_list_t,
11633        i: igraph_int_t,
11634        j: igraph_int_t,
11635    );
11636}
11637unsafe extern "C" {
11638    pub fn igraph_vector_list_sort(
11639        v: *mut igraph_vector_list_t,
11640        cmp: ::std::option::Option<
11641            unsafe extern "C" fn(
11642                arg1: *const igraph_vector_t,
11643                arg2: *const igraph_vector_t,
11644            ) -> ::std::os::raw::c_int,
11645        >,
11646    );
11647}
11648unsafe extern "C" {
11649    pub fn igraph_vector_list_sort_ind(
11650        v: *mut igraph_vector_list_t,
11651        ind: *mut igraph_vector_int_t,
11652        cmp: ::std::option::Option<
11653            unsafe extern "C" fn(
11654                arg1: *const igraph_vector_t,
11655                arg2: *const igraph_vector_t,
11656            ) -> ::std::os::raw::c_int,
11657        >,
11658    ) -> igraph_error_t;
11659}
11660#[doc = " Vector list, dealing with lists of typed vectors efficiently.\n \\ingroup types"]
11661#[repr(C)]
11662#[derive(Debug, Copy, Clone)]
11663pub struct igraph_vector_int_list_t {
11664    pub stor_begin: *mut igraph_vector_int_t,
11665    pub stor_end: *mut igraph_vector_int_t,
11666    pub end: *mut igraph_vector_int_t,
11667}
11668#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11669const _: () = {
11670    ["Size of igraph_vector_int_list_t"]
11671        [::std::mem::size_of::<igraph_vector_int_list_t>() - 24usize];
11672    ["Alignment of igraph_vector_int_list_t"]
11673        [::std::mem::align_of::<igraph_vector_int_list_t>() - 8usize];
11674    ["Offset of field: igraph_vector_int_list_t::stor_begin"]
11675        [::std::mem::offset_of!(igraph_vector_int_list_t, stor_begin) - 0usize];
11676    ["Offset of field: igraph_vector_int_list_t::stor_end"]
11677        [::std::mem::offset_of!(igraph_vector_int_list_t, stor_end) - 8usize];
11678    ["Offset of field: igraph_vector_int_list_t::end"]
11679        [::std::mem::offset_of!(igraph_vector_int_list_t, end) - 16usize];
11680};
11681unsafe extern "C" {
11682    pub fn igraph_vector_int_list_init(
11683        v: *mut igraph_vector_int_list_t,
11684        size: igraph_int_t,
11685    ) -> igraph_error_t;
11686}
11687unsafe extern "C" {
11688    pub fn igraph_vector_int_list_init_copy(
11689        to: *mut igraph_vector_int_list_t,
11690        from: *const igraph_vector_int_list_t,
11691    ) -> igraph_error_t;
11692}
11693unsafe extern "C" {
11694    pub fn igraph_vector_int_list_destroy(v: *mut igraph_vector_int_list_t);
11695}
11696unsafe extern "C" {
11697    pub fn igraph_vector_int_list_get_ptr(
11698        v: *const igraph_vector_int_list_t,
11699        pos: igraph_int_t,
11700    ) -> *mut igraph_vector_int_t;
11701}
11702unsafe extern "C" {
11703    pub fn igraph_vector_int_list_set(
11704        v: *mut igraph_vector_int_list_t,
11705        pos: igraph_int_t,
11706        e: *mut igraph_vector_int_t,
11707    );
11708}
11709unsafe extern "C" {
11710    pub fn igraph_vector_int_list_tail_ptr(
11711        v: *const igraph_vector_int_list_t,
11712    ) -> *mut igraph_vector_int_t;
11713}
11714unsafe extern "C" {
11715    pub fn igraph_vector_int_list_capacity(v: *const igraph_vector_int_list_t) -> igraph_int_t;
11716}
11717unsafe extern "C" {
11718    pub fn igraph_vector_int_list_empty(v: *const igraph_vector_int_list_t) -> igraph_bool_t;
11719}
11720unsafe extern "C" {
11721    pub fn igraph_vector_int_list_size(v: *const igraph_vector_int_list_t) -> igraph_int_t;
11722}
11723unsafe extern "C" {
11724    pub fn igraph_vector_int_list_clear(v: *mut igraph_vector_int_list_t);
11725}
11726unsafe extern "C" {
11727    pub fn igraph_vector_int_list_reserve(
11728        v: *mut igraph_vector_int_list_t,
11729        capacity: igraph_int_t,
11730    ) -> igraph_error_t;
11731}
11732unsafe extern "C" {
11733    pub fn igraph_vector_int_list_resize(
11734        v: *mut igraph_vector_int_list_t,
11735        new_size: igraph_int_t,
11736    ) -> igraph_error_t;
11737}
11738unsafe extern "C" {
11739    pub fn igraph_vector_int_list_discard(v: *mut igraph_vector_int_list_t, index: igraph_int_t);
11740}
11741unsafe extern "C" {
11742    pub fn igraph_vector_int_list_discard_back(v: *mut igraph_vector_int_list_t);
11743}
11744unsafe extern "C" {
11745    pub fn igraph_vector_int_list_discard_fast(
11746        v: *mut igraph_vector_int_list_t,
11747        index: igraph_int_t,
11748    );
11749}
11750unsafe extern "C" {
11751    pub fn igraph_vector_int_list_insert(
11752        v: *mut igraph_vector_int_list_t,
11753        pos: igraph_int_t,
11754        e: *mut igraph_vector_int_t,
11755    ) -> igraph_error_t;
11756}
11757unsafe extern "C" {
11758    pub fn igraph_vector_int_list_insert_copy(
11759        v: *mut igraph_vector_int_list_t,
11760        pos: igraph_int_t,
11761        e: *const igraph_vector_int_t,
11762    ) -> igraph_error_t;
11763}
11764unsafe extern "C" {
11765    pub fn igraph_vector_int_list_insert_new(
11766        v: *mut igraph_vector_int_list_t,
11767        pos: igraph_int_t,
11768        result: *mut *mut igraph_vector_int_t,
11769    ) -> igraph_error_t;
11770}
11771unsafe extern "C" {
11772    pub fn igraph_vector_int_list_push_back(
11773        v: *mut igraph_vector_int_list_t,
11774        e: *mut igraph_vector_int_t,
11775    ) -> igraph_error_t;
11776}
11777unsafe extern "C" {
11778    pub fn igraph_vector_int_list_push_back_copy(
11779        v: *mut igraph_vector_int_list_t,
11780        e: *const igraph_vector_int_t,
11781    ) -> igraph_error_t;
11782}
11783unsafe extern "C" {
11784    pub fn igraph_vector_int_list_push_back_new(
11785        v: *mut igraph_vector_int_list_t,
11786        result: *mut *mut igraph_vector_int_t,
11787    ) -> igraph_error_t;
11788}
11789unsafe extern "C" {
11790    pub fn igraph_vector_int_list_pop_back(v: *mut igraph_vector_int_list_t)
11791    -> igraph_vector_int_t;
11792}
11793unsafe extern "C" {
11794    pub fn igraph_vector_int_list_remove(
11795        v: *mut igraph_vector_int_list_t,
11796        index: igraph_int_t,
11797        e: *mut igraph_vector_int_t,
11798    ) -> igraph_error_t;
11799}
11800unsafe extern "C" {
11801    pub fn igraph_vector_int_list_remove_fast(
11802        v: *mut igraph_vector_int_list_t,
11803        index: igraph_int_t,
11804        e: *mut igraph_vector_int_t,
11805    ) -> igraph_error_t;
11806}
11807unsafe extern "C" {
11808    pub fn igraph_vector_int_list_replace(
11809        v: *mut igraph_vector_int_list_t,
11810        pos: igraph_int_t,
11811        e: *mut igraph_vector_int_t,
11812    );
11813}
11814unsafe extern "C" {
11815    pub fn igraph_vector_int_list_remove_consecutive_duplicates(
11816        v: *mut igraph_vector_int_list_t,
11817        eq: ::std::option::Option<
11818            unsafe extern "C" fn(
11819                arg1: *const igraph_vector_int_t,
11820                arg2: *const igraph_vector_int_t,
11821            ) -> igraph_bool_t,
11822        >,
11823    );
11824}
11825unsafe extern "C" {
11826    pub fn igraph_vector_int_list_permute(
11827        v: *mut igraph_vector_int_list_t,
11828        index: *const igraph_vector_int_t,
11829    ) -> igraph_error_t;
11830}
11831unsafe extern "C" {
11832    pub fn igraph_vector_int_list_reverse(v: *mut igraph_vector_int_list_t) -> igraph_error_t;
11833}
11834unsafe extern "C" {
11835    pub fn igraph_vector_int_list_swap(
11836        v1: *mut igraph_vector_int_list_t,
11837        v2: *mut igraph_vector_int_list_t,
11838    );
11839}
11840unsafe extern "C" {
11841    pub fn igraph_vector_int_list_swap_elements(
11842        v: *mut igraph_vector_int_list_t,
11843        i: igraph_int_t,
11844        j: igraph_int_t,
11845    );
11846}
11847unsafe extern "C" {
11848    pub fn igraph_vector_int_list_sort(
11849        v: *mut igraph_vector_int_list_t,
11850        cmp: ::std::option::Option<
11851            unsafe extern "C" fn(
11852                arg1: *const igraph_vector_int_t,
11853                arg2: *const igraph_vector_int_t,
11854            ) -> ::std::os::raw::c_int,
11855        >,
11856    );
11857}
11858unsafe extern "C" {
11859    pub fn igraph_vector_int_list_sort_ind(
11860        v: *mut igraph_vector_int_list_t,
11861        ind: *mut igraph_vector_int_t,
11862        cmp: ::std::option::Option<
11863            unsafe extern "C" fn(
11864                arg1: *const igraph_vector_int_t,
11865                arg2: *const igraph_vector_int_t,
11866            ) -> ::std::os::raw::c_int,
11867        >,
11868    ) -> igraph_error_t;
11869}
11870#[doc = " Vector, storing pointers efficiently\n \\ingroup internal\n"]
11871#[repr(C)]
11872#[derive(Debug, Copy, Clone)]
11873pub struct s_vector_ptr {
11874    pub stor_begin: *mut *mut ::std::os::raw::c_void,
11875    pub stor_end: *mut *mut ::std::os::raw::c_void,
11876    pub end: *mut *mut ::std::os::raw::c_void,
11877    pub item_destructor: igraph_finally_func_t,
11878}
11879#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11880const _: () = {
11881    ["Size of s_vector_ptr"][::std::mem::size_of::<s_vector_ptr>() - 32usize];
11882    ["Alignment of s_vector_ptr"][::std::mem::align_of::<s_vector_ptr>() - 8usize];
11883    ["Offset of field: s_vector_ptr::stor_begin"]
11884        [::std::mem::offset_of!(s_vector_ptr, stor_begin) - 0usize];
11885    ["Offset of field: s_vector_ptr::stor_end"]
11886        [::std::mem::offset_of!(s_vector_ptr, stor_end) - 8usize];
11887    ["Offset of field: s_vector_ptr::end"][::std::mem::offset_of!(s_vector_ptr, end) - 16usize];
11888    ["Offset of field: s_vector_ptr::item_destructor"]
11889        [::std::mem::offset_of!(s_vector_ptr, item_destructor) - 24usize];
11890};
11891#[doc = " Vector, storing pointers efficiently\n \\ingroup internal\n"]
11892pub type igraph_vector_ptr_t = s_vector_ptr;
11893unsafe extern "C" {
11894    pub fn igraph_vector_ptr_init(
11895        v: *mut igraph_vector_ptr_t,
11896        size: igraph_int_t,
11897    ) -> igraph_error_t;
11898}
11899unsafe extern "C" {
11900    pub fn igraph_vector_ptr_init_array(
11901        v: *mut igraph_vector_ptr_t,
11902        data: *const *mut ::std::os::raw::c_void,
11903        length: igraph_int_t,
11904    ) -> igraph_error_t;
11905}
11906unsafe extern "C" {
11907    pub fn igraph_vector_ptr_init_copy(
11908        to: *mut igraph_vector_ptr_t,
11909        from: *const igraph_vector_ptr_t,
11910    ) -> igraph_error_t;
11911}
11912unsafe extern "C" {
11913    pub fn igraph_vector_ptr_view(
11914        data: *const *mut ::std::os::raw::c_void,
11915        length: igraph_int_t,
11916    ) -> igraph_vector_ptr_t;
11917}
11918unsafe extern "C" {
11919    pub fn igraph_vector_ptr_destroy(v: *mut igraph_vector_ptr_t);
11920}
11921unsafe extern "C" {
11922    pub fn igraph_vector_ptr_free_all(v: *mut igraph_vector_ptr_t);
11923}
11924unsafe extern "C" {
11925    pub fn igraph_vector_ptr_destroy_all(v: *mut igraph_vector_ptr_t);
11926}
11927unsafe extern "C" {
11928    pub fn igraph_vector_ptr_reserve(
11929        v: *mut igraph_vector_ptr_t,
11930        capacity: igraph_int_t,
11931    ) -> igraph_error_t;
11932}
11933unsafe extern "C" {
11934    pub fn igraph_vector_ptr_resize_min(v: *mut igraph_vector_ptr_t);
11935}
11936unsafe extern "C" {
11937    pub fn igraph_vector_ptr_empty(v: *const igraph_vector_ptr_t) -> igraph_bool_t;
11938}
11939unsafe extern "C" {
11940    pub fn igraph_vector_ptr_size(v: *const igraph_vector_ptr_t) -> igraph_int_t;
11941}
11942unsafe extern "C" {
11943    pub fn igraph_vector_ptr_capacity(v: *const igraph_vector_ptr_t) -> igraph_int_t;
11944}
11945unsafe extern "C" {
11946    pub fn igraph_vector_ptr_clear(v: *mut igraph_vector_ptr_t);
11947}
11948unsafe extern "C" {
11949    pub fn igraph_vector_ptr_null(v: *mut igraph_vector_ptr_t);
11950}
11951unsafe extern "C" {
11952    pub fn igraph_vector_ptr_push_back(
11953        v: *mut igraph_vector_ptr_t,
11954        e: *mut ::std::os::raw::c_void,
11955    ) -> igraph_error_t;
11956}
11957unsafe extern "C" {
11958    pub fn igraph_vector_ptr_append(
11959        to: *mut igraph_vector_ptr_t,
11960        from: *const igraph_vector_ptr_t,
11961    ) -> igraph_error_t;
11962}
11963unsafe extern "C" {
11964    pub fn igraph_vector_ptr_pop_back(v: *mut igraph_vector_ptr_t) -> *mut ::std::os::raw::c_void;
11965}
11966unsafe extern "C" {
11967    pub fn igraph_vector_ptr_insert(
11968        v: *mut igraph_vector_ptr_t,
11969        pos: igraph_int_t,
11970        e: *mut ::std::os::raw::c_void,
11971    ) -> igraph_error_t;
11972}
11973unsafe extern "C" {
11974    pub fn igraph_vector_ptr_get(
11975        v: *const igraph_vector_ptr_t,
11976        pos: igraph_int_t,
11977    ) -> *mut ::std::os::raw::c_void;
11978}
11979unsafe extern "C" {
11980    pub fn igraph_vector_ptr_set(
11981        v: *mut igraph_vector_ptr_t,
11982        pos: igraph_int_t,
11983        value: *mut ::std::os::raw::c_void,
11984    );
11985}
11986unsafe extern "C" {
11987    pub fn igraph_vector_ptr_resize(
11988        v: *mut igraph_vector_ptr_t,
11989        newsize: igraph_int_t,
11990    ) -> igraph_error_t;
11991}
11992unsafe extern "C" {
11993    pub fn igraph_vector_ptr_copy_to(
11994        v: *const igraph_vector_ptr_t,
11995        to: *mut *mut ::std::os::raw::c_void,
11996    );
11997}
11998unsafe extern "C" {
11999    pub fn igraph_vector_ptr_permute(
12000        v: *mut igraph_vector_ptr_t,
12001        index: *const igraph_vector_int_t,
12002    ) -> igraph_error_t;
12003}
12004unsafe extern "C" {
12005    pub fn igraph_vector_ptr_remove(v: *mut igraph_vector_ptr_t, pos: igraph_int_t);
12006}
12007unsafe extern "C" {
12008    pub fn igraph_vector_ptr_sort(
12009        v: *mut igraph_vector_ptr_t,
12010        compar: ::std::option::Option<
12011            unsafe extern "C" fn(
12012                arg1: *const ::std::os::raw::c_void,
12013                arg2: *const ::std::os::raw::c_void,
12014            ) -> ::std::os::raw::c_int,
12015        >,
12016    );
12017}
12018unsafe extern "C" {
12019    pub fn igraph_vector_ptr_sort_ind(
12020        v: *mut igraph_vector_ptr_t,
12021        inds: *mut igraph_vector_int_t,
12022        compar: ::std::option::Option<
12023            unsafe extern "C" fn(
12024                arg1: *const ::std::os::raw::c_void,
12025                arg2: *const ::std::os::raw::c_void,
12026            ) -> ::std::os::raw::c_int,
12027        >,
12028    ) -> igraph_error_t;
12029}
12030unsafe extern "C" {
12031    pub fn igraph_vector_ptr_get_item_destructor(
12032        v: *const igraph_vector_ptr_t,
12033    ) -> igraph_finally_func_t;
12034}
12035unsafe extern "C" {
12036    pub fn igraph_vector_ptr_set_item_destructor(
12037        v: *mut igraph_vector_ptr_t,
12038        func: igraph_finally_func_t,
12039    ) -> igraph_finally_func_t;
12040}
12041#[doc = " \\struct igraph_arpack_options_t\n \\brief Options for ARPACK.\n\n This data structure contains the options of the ARPACK eigenvalue\n solver routines. It must be initialized by calling \\ref\n igraph_arpack_options_init() on it. Then it can be used for\n multiple ARPACK calls, as the ARPACK solvers do not modify it.\n\n Input options:\n\n \\member bmat Character. Whether to solve a standard ('I') ot a\n    generalized problem ('B').\n \\member n Dimension of the eigenproblem.\n \\member which Specifies which eigenvalues/vectors to\n    compute. Possible values for symmetric matrices:\n    \\clist \\cli LA\n                Compute \\c nev largest (algebraic) eigenvalues.\n           \\cli SA\n                Compute \\c nev smallest (algebraic) eigenvalues.\n           \\cli LM\n                Compute \\c nev largest (in magnitude) eigenvalues.\n           \\cli SM\n                Compute \\c nev smallest (in magnitude) eigenvalues.\n           \\cli BE\n                Compute \\c nev eigenvalues, half from each end of\n                   the spectrum. When \\c nev is odd, compute one\n                   more from the high en than from the low\n                   end. \\endclist\n    Possible values for non-symmetric matrices:\n    \\clist \\cli LM\n                Compute \\c nev largest (in magnitude) eigenvalues.\n           \\cli SM\n                Compute \\c nev smallest (in magnitude) eigenvalues.\n           \\cli LR\n                Compute \\c nev eigenvalues of largest real part.\n           \\cli SR\n                Compute \\c nev eigenvalues of smallest real part.\n           \\cli LI\n                Compute \\c nev eigenvalues of largest imaginary part.\n           \\cli SI\n                Compute \\c nev eigenvalues of smallest imaginary\n                    part. \\endclist\n \\member nev The number of eigenvalues to be computed.\n \\member tol Stopping criterion: the relative accuracy\n    of the Ritz value is considered acceptable if its error is less\n    than \\c tol times its estimated value. If this is set to zero\n    then machine precision is used.\n \\member ncv Number of Lanczos vectors to be generated. Setting this\n    to zero means that \\ref igraph_arpack_rssolve and \\ref igraph_arpack_rnsolve\n    will determine a suitable value for \\c ncv automatically.\n \\member ldv Numberic scalar. It should be set to\n    zero in the current igraph implementation.\n \\member ishift Either zero or one. If zero then the shifts are\n    provided by the user via reverse communication. If one then exact\n    shifts with respect to the reduced tridiagonal matrix \\c T.\n    Please always set this to one.\n \\member mxiter Maximum number of Arnoldi update iterations allowed.\n \\member nb Blocksize to be used in the recurrence. Please always\n    leave this on the default value, one.\n \\member mode The type of the eigenproblem to be solved.\n    Possible values if the input matrix is symmetric:\n    \\olist\n      \\oli A*x=lambda*x, A is symmetric.\n      \\oli A*x=lambda*M*x, A is\n       symmetric, M is symmetric positive definite.\n      \\oli K*x=lambda*M*x, K is\n        symmetric, M is symmetric positive semi-definite.\n      \\oli K*x=lambda*KG*x, K is\n       symmetric positive semi-definite, KG is symmetric\n       indefinite.\n     \\oli A*x=lambda*M*x, A is\n       symmetric, M is symmetric positive\n       semi-definite. (Cayley transformed mode.) \\endolist\n    Please note that only \\c mode ==1 was tested and other values\n    might not work properly.\n    Possible values if the input matrix is not symmetric:\n    \\olist\n     \\oli A*x=lambda*x.\n     \\oli A*x=lambda*M*x, M is\n       symmetric positive definite.\n     \\oli A*x=lambda*M*x, M is\n       symmetric semi-definite.\n     \\oli A*x=lambda*M*x, M is\n           symmetric semi-definite. \\endolist\n     Please note that only \\c mode == 1 was tested and other values\n     might not work properly.\n \\member start Whether to use the supplied starting vector (1), or\n    use a random starting vector (0). The starting vector must be\n    supplied in the first column of the \\c vectors argument of the\n    \\ref igraph_arpack_rssolve() of \\ref igraph_arpack_rnsolve() call.\n\n Output options:\n\n \\member info Error flag of ARPACK. Possible values:\n    \\clist \\cli 0\n                Normal exit.\n           \\cli 1\n                Maximum number of iterations taken.\n           \\cli 3\n                No shifts could be applied during a cycle of the\n         Implicitly restarted Arnoldi iteration. One possibility\n         is to increase the size of \\c ncv relative to \\c\n           nev. \\endclist\n    ARPACK can return other error flags as well, but these are\n    converted to igraph errors, see \\ref igraph_error_type_t.\n \\member ierr Error flag of the second ARPACK call (one eigenvalue\n     computation usually involves two calls to ARPACK). This is\n     always zero, as other error codes are converted to igraph errors.\n \\member noiter Number of Arnoldi iterations taken.\n \\member nconv Number of converged Ritz values. This\n     represents the number of Ritz values that satisfy the\n     convergence critetion.\n \\member numop Total number of matrix-vector multiplications.\n \\member numopb Not used currently.\n \\member numreo Total number of steps of re-orthogonalization.\n\n Internal options:\n \\member lworkl Do not modify this option.\n \\member sigma The shift for the shift-invert mode.\n \\member sigmai The imaginary part of the shift, for the\n    non-symmetric or complex shift-invert mode.\n \\member iparam Do not modify this option.\n \\member ipntr Do not modify this option.\n"]
12042#[repr(C)]
12043#[derive(Debug, Copy, Clone)]
12044pub struct igraph_arpack_options_t {
12045    pub bmat: [::std::os::raw::c_char; 1usize],
12046    pub n: ::std::os::raw::c_int,
12047    pub which: [::std::os::raw::c_char; 2usize],
12048    pub nev: ::std::os::raw::c_int,
12049    pub tol: igraph_real_t,
12050    pub ncv: ::std::os::raw::c_int,
12051    pub ldv: ::std::os::raw::c_int,
12052    pub ishift: ::std::os::raw::c_int,
12053    pub mxiter: ::std::os::raw::c_int,
12054    pub nb: ::std::os::raw::c_int,
12055    pub mode: ::std::os::raw::c_int,
12056    pub start: ::std::os::raw::c_int,
12057    pub lworkl: ::std::os::raw::c_int,
12058    pub sigma: igraph_real_t,
12059    pub sigmai: igraph_real_t,
12060    pub info: ::std::os::raw::c_int,
12061    pub ierr: ::std::os::raw::c_int,
12062    pub noiter: ::std::os::raw::c_int,
12063    pub nconv: ::std::os::raw::c_int,
12064    pub numop: ::std::os::raw::c_int,
12065    pub numopb: ::std::os::raw::c_int,
12066    pub numreo: ::std::os::raw::c_int,
12067    pub iparam: [::std::os::raw::c_int; 11usize],
12068    pub ipntr: [::std::os::raw::c_int; 14usize],
12069}
12070#[allow(clippy::unnecessary_operation, clippy::identity_op)]
12071const _: () = {
12072    ["Size of igraph_arpack_options_t"]
12073        [::std::mem::size_of::<igraph_arpack_options_t>() - 200usize];
12074    ["Alignment of igraph_arpack_options_t"]
12075        [::std::mem::align_of::<igraph_arpack_options_t>() - 8usize];
12076    ["Offset of field: igraph_arpack_options_t::bmat"]
12077        [::std::mem::offset_of!(igraph_arpack_options_t, bmat) - 0usize];
12078    ["Offset of field: igraph_arpack_options_t::n"]
12079        [::std::mem::offset_of!(igraph_arpack_options_t, n) - 4usize];
12080    ["Offset of field: igraph_arpack_options_t::which"]
12081        [::std::mem::offset_of!(igraph_arpack_options_t, which) - 8usize];
12082    ["Offset of field: igraph_arpack_options_t::nev"]
12083        [::std::mem::offset_of!(igraph_arpack_options_t, nev) - 12usize];
12084    ["Offset of field: igraph_arpack_options_t::tol"]
12085        [::std::mem::offset_of!(igraph_arpack_options_t, tol) - 16usize];
12086    ["Offset of field: igraph_arpack_options_t::ncv"]
12087        [::std::mem::offset_of!(igraph_arpack_options_t, ncv) - 24usize];
12088    ["Offset of field: igraph_arpack_options_t::ldv"]
12089        [::std::mem::offset_of!(igraph_arpack_options_t, ldv) - 28usize];
12090    ["Offset of field: igraph_arpack_options_t::ishift"]
12091        [::std::mem::offset_of!(igraph_arpack_options_t, ishift) - 32usize];
12092    ["Offset of field: igraph_arpack_options_t::mxiter"]
12093        [::std::mem::offset_of!(igraph_arpack_options_t, mxiter) - 36usize];
12094    ["Offset of field: igraph_arpack_options_t::nb"]
12095        [::std::mem::offset_of!(igraph_arpack_options_t, nb) - 40usize];
12096    ["Offset of field: igraph_arpack_options_t::mode"]
12097        [::std::mem::offset_of!(igraph_arpack_options_t, mode) - 44usize];
12098    ["Offset of field: igraph_arpack_options_t::start"]
12099        [::std::mem::offset_of!(igraph_arpack_options_t, start) - 48usize];
12100    ["Offset of field: igraph_arpack_options_t::lworkl"]
12101        [::std::mem::offset_of!(igraph_arpack_options_t, lworkl) - 52usize];
12102    ["Offset of field: igraph_arpack_options_t::sigma"]
12103        [::std::mem::offset_of!(igraph_arpack_options_t, sigma) - 56usize];
12104    ["Offset of field: igraph_arpack_options_t::sigmai"]
12105        [::std::mem::offset_of!(igraph_arpack_options_t, sigmai) - 64usize];
12106    ["Offset of field: igraph_arpack_options_t::info"]
12107        [::std::mem::offset_of!(igraph_arpack_options_t, info) - 72usize];
12108    ["Offset of field: igraph_arpack_options_t::ierr"]
12109        [::std::mem::offset_of!(igraph_arpack_options_t, ierr) - 76usize];
12110    ["Offset of field: igraph_arpack_options_t::noiter"]
12111        [::std::mem::offset_of!(igraph_arpack_options_t, noiter) - 80usize];
12112    ["Offset of field: igraph_arpack_options_t::nconv"]
12113        [::std::mem::offset_of!(igraph_arpack_options_t, nconv) - 84usize];
12114    ["Offset of field: igraph_arpack_options_t::numop"]
12115        [::std::mem::offset_of!(igraph_arpack_options_t, numop) - 88usize];
12116    ["Offset of field: igraph_arpack_options_t::numopb"]
12117        [::std::mem::offset_of!(igraph_arpack_options_t, numopb) - 92usize];
12118    ["Offset of field: igraph_arpack_options_t::numreo"]
12119        [::std::mem::offset_of!(igraph_arpack_options_t, numreo) - 96usize];
12120    ["Offset of field: igraph_arpack_options_t::iparam"]
12121        [::std::mem::offset_of!(igraph_arpack_options_t, iparam) - 100usize];
12122    ["Offset of field: igraph_arpack_options_t::ipntr"]
12123        [::std::mem::offset_of!(igraph_arpack_options_t, ipntr) - 144usize];
12124};
12125#[doc = " \\struct igraph_arpack_storage_t\n \\brief Storage for ARPACK.\n\n Public members, do not modify them directly, these are considered\n to be read-only.\n \\member maxn Maximum rank of matrix.\n \\member maxncv Maximum NCV.\n \\member maxldv Maximum LDV.\n\n These members are considered to be private:\n \\member workl Working memory.\n \\member workd Working memory.\n \\member d Memory for eigenvalues.\n \\member resid Memory for residuals.\n \\member ax Working memory.\n \\member select Working memory.\n \\member di Memory for eigenvalues, non-symmetric case only.\n \\member workev Working memory, non-symmetric case only."]
12126#[repr(C)]
12127#[derive(Debug, Copy, Clone)]
12128pub struct igraph_arpack_storage_t {
12129    pub maxn: ::std::os::raw::c_int,
12130    pub maxncv: ::std::os::raw::c_int,
12131    pub maxldv: ::std::os::raw::c_int,
12132    pub v: *mut igraph_real_t,
12133    pub workl: *mut igraph_real_t,
12134    pub workd: *mut igraph_real_t,
12135    pub d: *mut igraph_real_t,
12136    pub resid: *mut igraph_real_t,
12137    pub ax: *mut igraph_real_t,
12138    pub select: *mut ::std::os::raw::c_int,
12139    pub di: *mut igraph_real_t,
12140    pub workev: *mut igraph_real_t,
12141}
12142#[allow(clippy::unnecessary_operation, clippy::identity_op)]
12143const _: () = {
12144    ["Size of igraph_arpack_storage_t"][::std::mem::size_of::<igraph_arpack_storage_t>() - 88usize];
12145    ["Alignment of igraph_arpack_storage_t"]
12146        [::std::mem::align_of::<igraph_arpack_storage_t>() - 8usize];
12147    ["Offset of field: igraph_arpack_storage_t::maxn"]
12148        [::std::mem::offset_of!(igraph_arpack_storage_t, maxn) - 0usize];
12149    ["Offset of field: igraph_arpack_storage_t::maxncv"]
12150        [::std::mem::offset_of!(igraph_arpack_storage_t, maxncv) - 4usize];
12151    ["Offset of field: igraph_arpack_storage_t::maxldv"]
12152        [::std::mem::offset_of!(igraph_arpack_storage_t, maxldv) - 8usize];
12153    ["Offset of field: igraph_arpack_storage_t::v"]
12154        [::std::mem::offset_of!(igraph_arpack_storage_t, v) - 16usize];
12155    ["Offset of field: igraph_arpack_storage_t::workl"]
12156        [::std::mem::offset_of!(igraph_arpack_storage_t, workl) - 24usize];
12157    ["Offset of field: igraph_arpack_storage_t::workd"]
12158        [::std::mem::offset_of!(igraph_arpack_storage_t, workd) - 32usize];
12159    ["Offset of field: igraph_arpack_storage_t::d"]
12160        [::std::mem::offset_of!(igraph_arpack_storage_t, d) - 40usize];
12161    ["Offset of field: igraph_arpack_storage_t::resid"]
12162        [::std::mem::offset_of!(igraph_arpack_storage_t, resid) - 48usize];
12163    ["Offset of field: igraph_arpack_storage_t::ax"]
12164        [::std::mem::offset_of!(igraph_arpack_storage_t, ax) - 56usize];
12165    ["Offset of field: igraph_arpack_storage_t::select"]
12166        [::std::mem::offset_of!(igraph_arpack_storage_t, select) - 64usize];
12167    ["Offset of field: igraph_arpack_storage_t::di"]
12168        [::std::mem::offset_of!(igraph_arpack_storage_t, di) - 72usize];
12169    ["Offset of field: igraph_arpack_storage_t::workev"]
12170        [::std::mem::offset_of!(igraph_arpack_storage_t, workev) - 80usize];
12171};
12172pub const igraph_arpack_error_t_IGRAPH_ARPACK_NO_ERROR: igraph_arpack_error_t = 0;
12173pub const igraph_arpack_error_t_IGRAPH_ARPACK_PROD: igraph_arpack_error_t = 15;
12174pub const igraph_arpack_error_t_IGRAPH_ARPACK_NPOS: igraph_arpack_error_t = 16;
12175pub const igraph_arpack_error_t_IGRAPH_ARPACK_NEVNPOS: igraph_arpack_error_t = 17;
12176pub const igraph_arpack_error_t_IGRAPH_ARPACK_NCVSMALL: igraph_arpack_error_t = 18;
12177pub const igraph_arpack_error_t_IGRAPH_ARPACK_NONPOSI: igraph_arpack_error_t = 19;
12178pub const igraph_arpack_error_t_IGRAPH_ARPACK_WHICHINV: igraph_arpack_error_t = 20;
12179pub const igraph_arpack_error_t_IGRAPH_ARPACK_BMATINV: igraph_arpack_error_t = 21;
12180pub const igraph_arpack_error_t_IGRAPH_ARPACK_WORKLSMALL: igraph_arpack_error_t = 22;
12181pub const igraph_arpack_error_t_IGRAPH_ARPACK_TRIDERR: igraph_arpack_error_t = 23;
12182pub const igraph_arpack_error_t_IGRAPH_ARPACK_ZEROSTART: igraph_arpack_error_t = 24;
12183pub const igraph_arpack_error_t_IGRAPH_ARPACK_MODEINV: igraph_arpack_error_t = 25;
12184pub const igraph_arpack_error_t_IGRAPH_ARPACK_MODEBMAT: igraph_arpack_error_t = 26;
12185pub const igraph_arpack_error_t_IGRAPH_ARPACK_ISHIFT: igraph_arpack_error_t = 27;
12186pub const igraph_arpack_error_t_IGRAPH_ARPACK_NEVBE: igraph_arpack_error_t = 28;
12187pub const igraph_arpack_error_t_IGRAPH_ARPACK_NOFACT: igraph_arpack_error_t = 29;
12188pub const igraph_arpack_error_t_IGRAPH_ARPACK_FAILED: igraph_arpack_error_t = 30;
12189pub const igraph_arpack_error_t_IGRAPH_ARPACK_HOWMNY: igraph_arpack_error_t = 31;
12190pub const igraph_arpack_error_t_IGRAPH_ARPACK_HOWMNYS: igraph_arpack_error_t = 32;
12191pub const igraph_arpack_error_t_IGRAPH_ARPACK_EVDIFF: igraph_arpack_error_t = 33;
12192pub const igraph_arpack_error_t_IGRAPH_ARPACK_SHUR: igraph_arpack_error_t = 34;
12193pub const igraph_arpack_error_t_IGRAPH_ARPACK_LAPACK: igraph_arpack_error_t = 35;
12194pub const igraph_arpack_error_t_IGRAPH_ARPACK_UNKNOWN: igraph_arpack_error_t = 36;
12195pub const igraph_arpack_error_t_IGRAPH_ARPACK_MAXIT: igraph_arpack_error_t = 39;
12196pub const igraph_arpack_error_t_IGRAPH_ARPACK_NOSHIFT: igraph_arpack_error_t = 40;
12197pub const igraph_arpack_error_t_IGRAPH_ARPACK_REORDER: igraph_arpack_error_t = 41;
12198#[doc = " \\typedef igraph_arpack_error_t\n \\brief Error codes from ARPACK.\n\n These error codes represent error conditions returned from ARPACK.\n They are used internally to format error messages when igraph itself\n returns an \\c IGRAPH_EARPACK error code from an ARPACK-related function.\n\n \\enumval IGRAPH_ARPACK_NO_ERROR No error was encountered in ARPACK.\n \\enumval IGRAPH_ARPACK_PROD Matrix-vector product failed (not used any more).\n \\enumval IGRAPH_ARPACK_NPOS N must be positive.\n \\enumval IGRAPH_ARPACK_NEVNPOS NEV must be positive.\n \\enumval IGRAPH_ARPACK_NCVSMALL NCV must be bigger.\n \\enumval IGRAPH_ARPACK_NONPOSI Maximum number of iterations should be positive.\n \\enumval IGRAPH_ARPACK_WHICHINV Invalid WHICH parameter.\n \\enumval IGRAPH_ARPACK_BMATINV Invalid BMAT parameter.\n \\enumval IGRAPH_ARPACK_WORKLSMALL WORKL is too small.\n \\enumval IGRAPH_ARPACK_TRIDERR LAPACK error in tridiagonal eigenvalue calculation.\n \\enumval IGRAPH_ARPACK_ZEROSTART Starting vector is zero.\n \\enumval IGRAPH_ARPACK_MODEINV MODE is invalid.\n \\enumval IGRAPH_ARPACK_MODEBMAT MODE and BMAT are not compatible.\n \\enumval IGRAPH_ARPACK_ISHIFT ISHIFT must be 0 or 1.\n \\enumval IGRAPH_ARPACK_NEVBE NEV and WHICH='BE' are incompatible.\n \\enumval IGRAPH_ARPACK_NOFACT Could not build an Arnoldi factorization.\n \\enumval IGRAPH_ARPACK_FAILED No eigenvalues to sufficient accuracy.\n \\enumval IGRAPH_ARPACK_HOWMNY HOWMNY is invalid.\n \\enumval IGRAPH_ARPACK_HOWMNYS HOWMNY='S' is not implemented.\n \\enumval IGRAPH_ARPACK_EVDIFF Different number of converged Ritz values.\n \\enumval IGRAPH_ARPACK_SHUR Error from calculation of a real Schur form.\n \\enumval IGRAPH_ARPACK_LAPACK LAPACK (dtrevc) error for calculating eigenvectors.\n \\enumval IGRAPH_ARPACK_UNKNOWN Unknown ARPACK error."]
12199pub type igraph_arpack_error_t = ::std::os::raw::c_uint;
12200unsafe extern "C" {
12201    pub fn igraph_arpack_options_init(o: *mut igraph_arpack_options_t);
12202}
12203unsafe extern "C" {
12204    pub fn igraph_arpack_options_get_default() -> *mut igraph_arpack_options_t;
12205}
12206unsafe extern "C" {
12207    pub fn igraph_arpack_storage_init(
12208        s: *mut igraph_arpack_storage_t,
12209        maxn: igraph_int_t,
12210        maxncv: igraph_int_t,
12211        maxldv: igraph_int_t,
12212        symm: igraph_bool_t,
12213    ) -> igraph_error_t;
12214}
12215unsafe extern "C" {
12216    pub fn igraph_arpack_storage_destroy(s: *mut igraph_arpack_storage_t);
12217}
12218#[doc = " \\typedef igraph_arpack_function_t\n \\brief Type of the ARPACK callback function.\n\n \\param to Pointer to an \\c igraph_real_t, the result of the\n    matrix-vector product is expected to be stored here.\n \\param from Pointer to an \\c igraph_real_t, the input matrix should\n    be multiplied by the vector stored here.\n \\param n The length of the vector (which is the same as the order\n    of the input matrix).\n \\param extra Extra argument to the matrix-vector calculation\n    function. This is coming from the \\ref igraph_arpack_rssolve()\n    or \\ref igraph_arpack_rnsolve() function.\n \\return Error code. If not \\c IGRAPH_SUCCESS, then the ARPACK solver considers\n    this as an error, stops and calls the igraph error handler."]
12219pub type igraph_arpack_function_t = ::std::option::Option<
12220    unsafe extern "C" fn(
12221        to: *mut igraph_real_t,
12222        from: *const igraph_real_t,
12223        n: ::std::os::raw::c_int,
12224        extra: *mut ::std::os::raw::c_void,
12225    ) -> igraph_error_t,
12226>;
12227unsafe extern "C" {
12228    pub fn igraph_arpack_rssolve(
12229        fun: igraph_arpack_function_t,
12230        extra: *mut ::std::os::raw::c_void,
12231        options: *mut igraph_arpack_options_t,
12232        storage: *mut igraph_arpack_storage_t,
12233        values: *mut igraph_vector_t,
12234        vectors: *mut igraph_matrix_t,
12235    ) -> igraph_error_t;
12236}
12237unsafe extern "C" {
12238    pub fn igraph_arpack_rnsolve(
12239        fun: igraph_arpack_function_t,
12240        extra: *mut ::std::os::raw::c_void,
12241        options: *mut igraph_arpack_options_t,
12242        storage: *mut igraph_arpack_storage_t,
12243        values: *mut igraph_matrix_t,
12244        vectors: *mut igraph_matrix_t,
12245    ) -> igraph_error_t;
12246}
12247unsafe extern "C" {
12248    pub fn igraph_arpack_unpack_complex(
12249        vectors: *mut igraph_matrix_t,
12250        values: *mut igraph_matrix_t,
12251        nev: igraph_int_t,
12252    ) -> igraph_error_t;
12253}
12254unsafe extern "C" {
12255    pub fn igraph_arpack_error_to_string(
12256        error: igraph_arpack_error_t,
12257    ) -> *const ::std::os::raw::c_char;
12258}
12259unsafe extern "C" {
12260    pub fn igraph_arpack_get_last_error() -> igraph_arpack_error_t;
12261}
12262#[repr(C)]
12263#[derive(Debug, Copy, Clone)]
12264pub struct cs_igraph_sparse {
12265    _unused: [u8; 0],
12266}
12267#[repr(C)]
12268#[derive(Debug, Copy, Clone)]
12269pub struct cs_igraph_symbolic {
12270    _unused: [u8; 0],
12271}
12272#[repr(C)]
12273#[derive(Debug, Copy, Clone)]
12274pub struct cs_igraph_numeric {
12275    _unused: [u8; 0],
12276}
12277#[repr(C)]
12278#[derive(Debug, Copy, Clone)]
12279pub struct igraph_sparsemat_t {
12280    pub cs: *mut cs_igraph_sparse,
12281}
12282#[allow(clippy::unnecessary_operation, clippy::identity_op)]
12283const _: () = {
12284    ["Size of igraph_sparsemat_t"][::std::mem::size_of::<igraph_sparsemat_t>() - 8usize];
12285    ["Alignment of igraph_sparsemat_t"][::std::mem::align_of::<igraph_sparsemat_t>() - 8usize];
12286    ["Offset of field: igraph_sparsemat_t::cs"]
12287        [::std::mem::offset_of!(igraph_sparsemat_t, cs) - 0usize];
12288};
12289#[repr(C)]
12290#[derive(Debug, Copy, Clone)]
12291pub struct igraph_sparsemat_symbolic_t {
12292    pub symbolic: *mut cs_igraph_symbolic,
12293}
12294#[allow(clippy::unnecessary_operation, clippy::identity_op)]
12295const _: () = {
12296    ["Size of igraph_sparsemat_symbolic_t"]
12297        [::std::mem::size_of::<igraph_sparsemat_symbolic_t>() - 8usize];
12298    ["Alignment of igraph_sparsemat_symbolic_t"]
12299        [::std::mem::align_of::<igraph_sparsemat_symbolic_t>() - 8usize];
12300    ["Offset of field: igraph_sparsemat_symbolic_t::symbolic"]
12301        [::std::mem::offset_of!(igraph_sparsemat_symbolic_t, symbolic) - 0usize];
12302};
12303#[repr(C)]
12304#[derive(Debug, Copy, Clone)]
12305pub struct igraph_sparsemat_numeric_t {
12306    pub numeric: *mut cs_igraph_numeric,
12307}
12308#[allow(clippy::unnecessary_operation, clippy::identity_op)]
12309const _: () = {
12310    ["Size of igraph_sparsemat_numeric_t"]
12311        [::std::mem::size_of::<igraph_sparsemat_numeric_t>() - 8usize];
12312    ["Alignment of igraph_sparsemat_numeric_t"]
12313        [::std::mem::align_of::<igraph_sparsemat_numeric_t>() - 8usize];
12314    ["Offset of field: igraph_sparsemat_numeric_t::numeric"]
12315        [::std::mem::offset_of!(igraph_sparsemat_numeric_t, numeric) - 0usize];
12316};
12317pub const igraph_sparsemat_type_t_IGRAPH_SPARSEMAT_TRIPLET: igraph_sparsemat_type_t = 0;
12318pub const igraph_sparsemat_type_t_IGRAPH_SPARSEMAT_CC: igraph_sparsemat_type_t = 1;
12319pub type igraph_sparsemat_type_t = ::std::os::raw::c_uint;
12320#[repr(C)]
12321#[derive(Debug, Copy, Clone)]
12322pub struct igraph_sparsemat_iterator_t {
12323    pub mat: *const igraph_sparsemat_t,
12324    pub pos: igraph_int_t,
12325    pub col: igraph_int_t,
12326}
12327#[allow(clippy::unnecessary_operation, clippy::identity_op)]
12328const _: () = {
12329    ["Size of igraph_sparsemat_iterator_t"]
12330        [::std::mem::size_of::<igraph_sparsemat_iterator_t>() - 24usize];
12331    ["Alignment of igraph_sparsemat_iterator_t"]
12332        [::std::mem::align_of::<igraph_sparsemat_iterator_t>() - 8usize];
12333    ["Offset of field: igraph_sparsemat_iterator_t::mat"]
12334        [::std::mem::offset_of!(igraph_sparsemat_iterator_t, mat) - 0usize];
12335    ["Offset of field: igraph_sparsemat_iterator_t::pos"]
12336        [::std::mem::offset_of!(igraph_sparsemat_iterator_t, pos) - 8usize];
12337    ["Offset of field: igraph_sparsemat_iterator_t::col"]
12338        [::std::mem::offset_of!(igraph_sparsemat_iterator_t, col) - 16usize];
12339};
12340unsafe extern "C" {
12341    pub fn igraph_sparsemat_init(
12342        A: *mut igraph_sparsemat_t,
12343        rows: igraph_int_t,
12344        cols: igraph_int_t,
12345        nzmax: igraph_int_t,
12346    ) -> igraph_error_t;
12347}
12348unsafe extern "C" {
12349    pub fn igraph_sparsemat_init_copy(
12350        to: *mut igraph_sparsemat_t,
12351        from: *const igraph_sparsemat_t,
12352    ) -> igraph_error_t;
12353}
12354unsafe extern "C" {
12355    pub fn igraph_sparsemat_destroy(A: *mut igraph_sparsemat_t);
12356}
12357unsafe extern "C" {
12358    pub fn igraph_sparsemat_realloc(
12359        A: *mut igraph_sparsemat_t,
12360        nzmax: igraph_int_t,
12361    ) -> igraph_error_t;
12362}
12363unsafe extern "C" {
12364    pub fn igraph_sparsemat_init_eye(
12365        A: *mut igraph_sparsemat_t,
12366        n: igraph_int_t,
12367        nzmax: igraph_int_t,
12368        value: igraph_real_t,
12369        compress: igraph_bool_t,
12370    ) -> igraph_error_t;
12371}
12372unsafe extern "C" {
12373    pub fn igraph_sparsemat_init_diag(
12374        A: *mut igraph_sparsemat_t,
12375        nzmax: igraph_int_t,
12376        values: *const igraph_vector_t,
12377        compress: igraph_bool_t,
12378    ) -> igraph_error_t;
12379}
12380unsafe extern "C" {
12381    pub fn igraph_sparsemat_nrow(A: *const igraph_sparsemat_t) -> igraph_int_t;
12382}
12383unsafe extern "C" {
12384    pub fn igraph_sparsemat_ncol(B: *const igraph_sparsemat_t) -> igraph_int_t;
12385}
12386unsafe extern "C" {
12387    pub fn igraph_sparsemat_type(A: *const igraph_sparsemat_t) -> igraph_sparsemat_type_t;
12388}
12389unsafe extern "C" {
12390    pub fn igraph_sparsemat_is_triplet(A: *const igraph_sparsemat_t) -> igraph_bool_t;
12391}
12392unsafe extern "C" {
12393    pub fn igraph_sparsemat_is_cc(A: *const igraph_sparsemat_t) -> igraph_bool_t;
12394}
12395unsafe extern "C" {
12396    pub fn igraph_sparsemat_permute(
12397        A: *const igraph_sparsemat_t,
12398        p: *const igraph_vector_int_t,
12399        q: *const igraph_vector_int_t,
12400        res: *mut igraph_sparsemat_t,
12401    ) -> igraph_error_t;
12402}
12403unsafe extern "C" {
12404    pub fn igraph_sparsemat_get(
12405        A: *const igraph_sparsemat_t,
12406        row: igraph_int_t,
12407        col: igraph_int_t,
12408    ) -> igraph_real_t;
12409}
12410unsafe extern "C" {
12411    pub fn igraph_sparsemat_index(
12412        A: *const igraph_sparsemat_t,
12413        p: *const igraph_vector_int_t,
12414        q: *const igraph_vector_int_t,
12415        res: *mut igraph_sparsemat_t,
12416        constres: *mut igraph_real_t,
12417    ) -> igraph_error_t;
12418}
12419unsafe extern "C" {
12420    pub fn igraph_sparsemat_entry(
12421        A: *mut igraph_sparsemat_t,
12422        row: igraph_int_t,
12423        col: igraph_int_t,
12424        elem: igraph_real_t,
12425    ) -> igraph_error_t;
12426}
12427unsafe extern "C" {
12428    pub fn igraph_sparsemat_compress(
12429        A: *const igraph_sparsemat_t,
12430        res: *mut igraph_sparsemat_t,
12431    ) -> igraph_error_t;
12432}
12433unsafe extern "C" {
12434    pub fn igraph_sparsemat_transpose(
12435        A: *const igraph_sparsemat_t,
12436        res: *mut igraph_sparsemat_t,
12437    ) -> igraph_error_t;
12438}
12439unsafe extern "C" {
12440    pub fn igraph_sparsemat_is_symmetric(
12441        A: *const igraph_sparsemat_t,
12442        result: *mut igraph_bool_t,
12443    ) -> igraph_error_t;
12444}
12445unsafe extern "C" {
12446    pub fn igraph_sparsemat_dupl(A: *mut igraph_sparsemat_t) -> igraph_error_t;
12447}
12448unsafe extern "C" {
12449    pub fn igraph_sparsemat_fkeep(
12450        A: *mut igraph_sparsemat_t,
12451        fkeep: ::std::option::Option<
12452            unsafe extern "C" fn(
12453                arg1: igraph_int_t,
12454                arg2: igraph_int_t,
12455                arg3: igraph_real_t,
12456                arg4: *mut ::std::os::raw::c_void,
12457            ) -> igraph_int_t,
12458        >,
12459        other: *mut ::std::os::raw::c_void,
12460    ) -> igraph_error_t;
12461}
12462unsafe extern "C" {
12463    pub fn igraph_sparsemat_dropzeros(A: *mut igraph_sparsemat_t) -> igraph_error_t;
12464}
12465unsafe extern "C" {
12466    pub fn igraph_sparsemat_droptol(
12467        A: *mut igraph_sparsemat_t,
12468        tol: igraph_real_t,
12469    ) -> igraph_error_t;
12470}
12471unsafe extern "C" {
12472    pub fn igraph_sparsemat_multiply(
12473        A: *const igraph_sparsemat_t,
12474        B: *const igraph_sparsemat_t,
12475        res: *mut igraph_sparsemat_t,
12476    ) -> igraph_error_t;
12477}
12478unsafe extern "C" {
12479    pub fn igraph_sparsemat_add(
12480        A: *const igraph_sparsemat_t,
12481        B: *const igraph_sparsemat_t,
12482        alpha: igraph_real_t,
12483        beta: igraph_real_t,
12484        res: *mut igraph_sparsemat_t,
12485    ) -> igraph_error_t;
12486}
12487unsafe extern "C" {
12488    pub fn igraph_sparsemat_gaxpy(
12489        A: *const igraph_sparsemat_t,
12490        x: *const igraph_vector_t,
12491        res: *mut igraph_vector_t,
12492    ) -> igraph_error_t;
12493}
12494unsafe extern "C" {
12495    pub fn igraph_sparsemat_lsolve(
12496        A: *const igraph_sparsemat_t,
12497        b: *const igraph_vector_t,
12498        res: *mut igraph_vector_t,
12499    ) -> igraph_error_t;
12500}
12501unsafe extern "C" {
12502    pub fn igraph_sparsemat_ltsolve(
12503        A: *const igraph_sparsemat_t,
12504        b: *const igraph_vector_t,
12505        res: *mut igraph_vector_t,
12506    ) -> igraph_error_t;
12507}
12508unsafe extern "C" {
12509    pub fn igraph_sparsemat_usolve(
12510        A: *const igraph_sparsemat_t,
12511        b: *const igraph_vector_t,
12512        res: *mut igraph_vector_t,
12513    ) -> igraph_error_t;
12514}
12515unsafe extern "C" {
12516    pub fn igraph_sparsemat_utsolve(
12517        A: *const igraph_sparsemat_t,
12518        b: *const igraph_vector_t,
12519        res: *mut igraph_vector_t,
12520    ) -> igraph_error_t;
12521}
12522unsafe extern "C" {
12523    pub fn igraph_sparsemat_cholsol(
12524        A: *const igraph_sparsemat_t,
12525        b: *const igraph_vector_t,
12526        res: *mut igraph_vector_t,
12527        order: igraph_int_t,
12528    ) -> igraph_error_t;
12529}
12530unsafe extern "C" {
12531    pub fn igraph_sparsemat_lusol(
12532        A: *const igraph_sparsemat_t,
12533        b: *const igraph_vector_t,
12534        res: *mut igraph_vector_t,
12535        order: igraph_int_t,
12536        tol: igraph_real_t,
12537    ) -> igraph_error_t;
12538}
12539unsafe extern "C" {
12540    pub fn igraph_sparsemat_print(
12541        A: *const igraph_sparsemat_t,
12542        outstream: *mut FILE,
12543    ) -> igraph_error_t;
12544}
12545unsafe extern "C" {
12546    pub fn igraph_matrix_as_sparsemat(
12547        res: *mut igraph_sparsemat_t,
12548        mat: *const igraph_matrix_t,
12549        tol: igraph_real_t,
12550    ) -> igraph_error_t;
12551}
12552unsafe extern "C" {
12553    pub fn igraph_sparsemat_as_matrix(
12554        res: *mut igraph_matrix_t,
12555        spmat: *const igraph_sparsemat_t,
12556    ) -> igraph_error_t;
12557}
12558pub const igraph_sparsemat_solve_t_IGRAPH_SPARSEMAT_SOLVE_LU: igraph_sparsemat_solve_t = 0;
12559pub const igraph_sparsemat_solve_t_IGRAPH_SPARSEMAT_SOLVE_QR: igraph_sparsemat_solve_t = 1;
12560pub type igraph_sparsemat_solve_t = ::std::os::raw::c_uint;
12561unsafe extern "C" {
12562    pub fn igraph_sparsemat_arpack_rssolve(
12563        A: *const igraph_sparsemat_t,
12564        options: *mut igraph_arpack_options_t,
12565        storage: *mut igraph_arpack_storage_t,
12566        values: *mut igraph_vector_t,
12567        vectors: *mut igraph_matrix_t,
12568        solvemethod: igraph_sparsemat_solve_t,
12569    ) -> igraph_error_t;
12570}
12571unsafe extern "C" {
12572    pub fn igraph_sparsemat_arpack_rnsolve(
12573        A: *const igraph_sparsemat_t,
12574        options: *mut igraph_arpack_options_t,
12575        storage: *mut igraph_arpack_storage_t,
12576        values: *mut igraph_matrix_t,
12577        vectors: *mut igraph_matrix_t,
12578    ) -> igraph_error_t;
12579}
12580unsafe extern "C" {
12581    pub fn igraph_sparsemat_lu(
12582        A: *const igraph_sparsemat_t,
12583        dis: *const igraph_sparsemat_symbolic_t,
12584        din: *mut igraph_sparsemat_numeric_t,
12585        tol: f64,
12586    ) -> igraph_error_t;
12587}
12588unsafe extern "C" {
12589    pub fn igraph_sparsemat_qr(
12590        A: *const igraph_sparsemat_t,
12591        dis: *const igraph_sparsemat_symbolic_t,
12592        din: *mut igraph_sparsemat_numeric_t,
12593    ) -> igraph_error_t;
12594}
12595unsafe extern "C" {
12596    pub fn igraph_sparsemat_luresol(
12597        dis: *const igraph_sparsemat_symbolic_t,
12598        din: *const igraph_sparsemat_numeric_t,
12599        b: *const igraph_vector_t,
12600        res: *mut igraph_vector_t,
12601    ) -> igraph_error_t;
12602}
12603unsafe extern "C" {
12604    pub fn igraph_sparsemat_qrresol(
12605        dis: *const igraph_sparsemat_symbolic_t,
12606        din: *const igraph_sparsemat_numeric_t,
12607        b: *const igraph_vector_t,
12608        res: *mut igraph_vector_t,
12609    ) -> igraph_error_t;
12610}
12611unsafe extern "C" {
12612    pub fn igraph_sparsemat_symbqr(
12613        order: igraph_int_t,
12614        A: *const igraph_sparsemat_t,
12615        dis: *mut igraph_sparsemat_symbolic_t,
12616    ) -> igraph_error_t;
12617}
12618unsafe extern "C" {
12619    pub fn igraph_sparsemat_symblu(
12620        order: igraph_int_t,
12621        A: *const igraph_sparsemat_t,
12622        dis: *mut igraph_sparsemat_symbolic_t,
12623    ) -> igraph_error_t;
12624}
12625unsafe extern "C" {
12626    pub fn igraph_sparsemat_symbolic_destroy(dis: *mut igraph_sparsemat_symbolic_t);
12627}
12628unsafe extern "C" {
12629    pub fn igraph_sparsemat_numeric_destroy(din: *mut igraph_sparsemat_numeric_t);
12630}
12631unsafe extern "C" {
12632    pub fn igraph_sparsemat_max(A: *mut igraph_sparsemat_t) -> igraph_real_t;
12633}
12634unsafe extern "C" {
12635    pub fn igraph_sparsemat_min(A: *mut igraph_sparsemat_t) -> igraph_real_t;
12636}
12637unsafe extern "C" {
12638    pub fn igraph_sparsemat_minmax(
12639        A: *mut igraph_sparsemat_t,
12640        min: *mut igraph_real_t,
12641        max: *mut igraph_real_t,
12642    ) -> igraph_error_t;
12643}
12644unsafe extern "C" {
12645    pub fn igraph_sparsemat_count_nonzero(A: *mut igraph_sparsemat_t) -> igraph_int_t;
12646}
12647unsafe extern "C" {
12648    pub fn igraph_sparsemat_count_nonzerotol(
12649        A: *mut igraph_sparsemat_t,
12650        tol: igraph_real_t,
12651    ) -> igraph_int_t;
12652}
12653unsafe extern "C" {
12654    pub fn igraph_sparsemat_rowsums(
12655        A: *const igraph_sparsemat_t,
12656        res: *mut igraph_vector_t,
12657    ) -> igraph_error_t;
12658}
12659unsafe extern "C" {
12660    pub fn igraph_sparsemat_colsums(
12661        A: *const igraph_sparsemat_t,
12662        res: *mut igraph_vector_t,
12663    ) -> igraph_error_t;
12664}
12665unsafe extern "C" {
12666    pub fn igraph_sparsemat_rowmins(
12667        A: *mut igraph_sparsemat_t,
12668        res: *mut igraph_vector_t,
12669    ) -> igraph_error_t;
12670}
12671unsafe extern "C" {
12672    pub fn igraph_sparsemat_colmins(
12673        A: *mut igraph_sparsemat_t,
12674        res: *mut igraph_vector_t,
12675    ) -> igraph_error_t;
12676}
12677unsafe extern "C" {
12678    pub fn igraph_sparsemat_rowmaxs(
12679        A: *mut igraph_sparsemat_t,
12680        res: *mut igraph_vector_t,
12681    ) -> igraph_error_t;
12682}
12683unsafe extern "C" {
12684    pub fn igraph_sparsemat_colmaxs(
12685        A: *mut igraph_sparsemat_t,
12686        res: *mut igraph_vector_t,
12687    ) -> igraph_error_t;
12688}
12689unsafe extern "C" {
12690    pub fn igraph_sparsemat_which_min_rows(
12691        A: *mut igraph_sparsemat_t,
12692        res: *mut igraph_vector_t,
12693        pos: *mut igraph_vector_int_t,
12694    ) -> igraph_error_t;
12695}
12696unsafe extern "C" {
12697    pub fn igraph_sparsemat_which_min_cols(
12698        A: *mut igraph_sparsemat_t,
12699        res: *mut igraph_vector_t,
12700        pos: *mut igraph_vector_int_t,
12701    ) -> igraph_error_t;
12702}
12703unsafe extern "C" {
12704    pub fn igraph_sparsemat_scale(A: *mut igraph_sparsemat_t, by: igraph_real_t) -> igraph_error_t;
12705}
12706unsafe extern "C" {
12707    pub fn igraph_sparsemat_add_rows(A: *mut igraph_sparsemat_t, n: igraph_int_t)
12708    -> igraph_error_t;
12709}
12710unsafe extern "C" {
12711    pub fn igraph_sparsemat_add_cols(A: *mut igraph_sparsemat_t, n: igraph_int_t)
12712    -> igraph_error_t;
12713}
12714unsafe extern "C" {
12715    pub fn igraph_sparsemat_resize(
12716        A: *mut igraph_sparsemat_t,
12717        nrow: igraph_int_t,
12718        ncol: igraph_int_t,
12719        nzmax: igraph_int_t,
12720    ) -> igraph_error_t;
12721}
12722unsafe extern "C" {
12723    pub fn igraph_sparsemat_nonzero_storage(A: *const igraph_sparsemat_t) -> igraph_int_t;
12724}
12725unsafe extern "C" {
12726    pub fn igraph_sparsemat_getelements(
12727        A: *const igraph_sparsemat_t,
12728        i: *mut igraph_vector_int_t,
12729        j: *mut igraph_vector_int_t,
12730        x: *mut igraph_vector_t,
12731    ) -> igraph_error_t;
12732}
12733unsafe extern "C" {
12734    pub fn igraph_sparsemat_getelements_sorted(
12735        A: *const igraph_sparsemat_t,
12736        i: *mut igraph_vector_int_t,
12737        j: *mut igraph_vector_int_t,
12738        x: *mut igraph_vector_t,
12739    ) -> igraph_error_t;
12740}
12741unsafe extern "C" {
12742    pub fn igraph_sparsemat_scale_rows(
12743        A: *mut igraph_sparsemat_t,
12744        fact: *const igraph_vector_t,
12745    ) -> igraph_error_t;
12746}
12747unsafe extern "C" {
12748    pub fn igraph_sparsemat_scale_cols(
12749        A: *mut igraph_sparsemat_t,
12750        fact: *const igraph_vector_t,
12751    ) -> igraph_error_t;
12752}
12753unsafe extern "C" {
12754    pub fn igraph_sparsemat_multiply_by_dense(
12755        A: *const igraph_sparsemat_t,
12756        B: *const igraph_matrix_t,
12757        res: *mut igraph_matrix_t,
12758    ) -> igraph_error_t;
12759}
12760unsafe extern "C" {
12761    pub fn igraph_sparsemat_dense_multiply(
12762        A: *const igraph_matrix_t,
12763        B: *const igraph_sparsemat_t,
12764        res: *mut igraph_matrix_t,
12765    ) -> igraph_error_t;
12766}
12767unsafe extern "C" {
12768    pub fn igraph_sparsemat_sort(
12769        A: *const igraph_sparsemat_t,
12770        sorted: *mut igraph_sparsemat_t,
12771    ) -> igraph_error_t;
12772}
12773unsafe extern "C" {
12774    pub fn igraph_sparsemat_nzmax(A: *const igraph_sparsemat_t) -> igraph_int_t;
12775}
12776unsafe extern "C" {
12777    pub fn igraph_sparsemat_neg(A: *mut igraph_sparsemat_t) -> igraph_error_t;
12778}
12779unsafe extern "C" {
12780    pub fn igraph_sparsemat_normalize_cols(
12781        sparsemat: *mut igraph_sparsemat_t,
12782        allow_zeros: igraph_bool_t,
12783    ) -> igraph_error_t;
12784}
12785unsafe extern "C" {
12786    pub fn igraph_sparsemat_normalize_rows(
12787        sparsemat: *mut igraph_sparsemat_t,
12788        allow_zeros: igraph_bool_t,
12789    ) -> igraph_error_t;
12790}
12791unsafe extern "C" {
12792    pub fn igraph_sparsemat_iterator_init(
12793        it: *mut igraph_sparsemat_iterator_t,
12794        sparsemat: *const igraph_sparsemat_t,
12795    ) -> igraph_error_t;
12796}
12797unsafe extern "C" {
12798    pub fn igraph_sparsemat_iterator_reset(it: *mut igraph_sparsemat_iterator_t) -> igraph_error_t;
12799}
12800unsafe extern "C" {
12801    pub fn igraph_sparsemat_iterator_end(it: *const igraph_sparsemat_iterator_t) -> igraph_bool_t;
12802}
12803unsafe extern "C" {
12804    pub fn igraph_sparsemat_iterator_row(it: *const igraph_sparsemat_iterator_t) -> igraph_int_t;
12805}
12806unsafe extern "C" {
12807    pub fn igraph_sparsemat_iterator_col(it: *const igraph_sparsemat_iterator_t) -> igraph_int_t;
12808}
12809unsafe extern "C" {
12810    pub fn igraph_sparsemat_iterator_idx(it: *const igraph_sparsemat_iterator_t) -> igraph_int_t;
12811}
12812unsafe extern "C" {
12813    pub fn igraph_sparsemat_iterator_get(it: *const igraph_sparsemat_iterator_t) -> igraph_real_t;
12814}
12815unsafe extern "C" {
12816    pub fn igraph_sparsemat_iterator_next(it: *mut igraph_sparsemat_iterator_t) -> igraph_int_t;
12817}
12818unsafe extern "C" {
12819    pub fn igraph_qsort(
12820        base: *mut ::std::os::raw::c_void,
12821        nel: usize,
12822        width: usize,
12823        compar: ::std::option::Option<
12824            unsafe extern "C" fn(
12825                arg1: *const ::std::os::raw::c_void,
12826                arg2: *const ::std::os::raw::c_void,
12827            ) -> ::std::os::raw::c_int,
12828        >,
12829    );
12830}
12831unsafe extern "C" {
12832    pub fn igraph_qsort_r(
12833        base: *mut ::std::os::raw::c_void,
12834        nel: usize,
12835        width: usize,
12836        thunk: *mut ::std::os::raw::c_void,
12837        compar: ::std::option::Option<
12838            unsafe extern "C" fn(
12839                arg1: *mut ::std::os::raw::c_void,
12840                arg2: *const ::std::os::raw::c_void,
12841                arg3: *const ::std::os::raw::c_void,
12842            ) -> ::std::os::raw::c_int,
12843        >,
12844    );
12845}
12846#[repr(C)]
12847#[derive(Debug, Copy, Clone)]
12848pub struct igraph_i_property_cache_t {
12849    _unused: [u8; 0],
12850}
12851pub const igraph_cached_property_t_IGRAPH_PROP_HAS_LOOP: igraph_cached_property_t = 0;
12852pub const igraph_cached_property_t_IGRAPH_PROP_HAS_MULTI: igraph_cached_property_t = 1;
12853pub const igraph_cached_property_t_IGRAPH_PROP_HAS_MUTUAL: igraph_cached_property_t = 2;
12854pub const igraph_cached_property_t_IGRAPH_PROP_IS_WEAKLY_CONNECTED: igraph_cached_property_t = 3;
12855pub const igraph_cached_property_t_IGRAPH_PROP_IS_STRONGLY_CONNECTED: igraph_cached_property_t = 4;
12856pub const igraph_cached_property_t_IGRAPH_PROP_IS_DAG: igraph_cached_property_t = 5;
12857pub const igraph_cached_property_t_IGRAPH_PROP_IS_FOREST: igraph_cached_property_t = 6;
12858pub const igraph_cached_property_t_IGRAPH_PROP_I_SIZE: igraph_cached_property_t = 7;
12859pub type igraph_cached_property_t = ::std::os::raw::c_uint;
12860#[doc = " \\ingroup internal\n \\struct igraph_t\n \\brief The internal data structure for storing graphs.\n\n It is simple and efficient. It has the following members:\n - <b>n</b> The number of vertices, redundant.\n - <b>directed</b> Whether the graph is directed.\n - <b>from</b> The first column of the edge list.\n - <b>to</b> The second column of the edge list.\n - <b>oi</b> The index of the edge list by the first column. Thus\n   the first edge according to this order goes from\n   \\c from[oi[0]] to \\c to[oi[0]]. The length of\n   this vector is the same as the number of edges in the graph.\n - <b>ii</b> The index of the edge list by the second column.\n   The length of this vector is the same as the number of edges.\n - <b>os</b> Contains pointers to the edgelist (\\c from\n   and \\c to for every vertex. The first edge \\em from\n   vertex \\c v is edge no. \\c from[oi[os[v]]] if\n   \\c os[v]<os[v+1]. If \\c os[v]==os[v+1] then\n   there are no edges \\em from node \\c v. Its length is\n   the number of vertices plus one, the last element is always the\n   same as the number of edges and is contained only to ease the\n   queries.\n - <b>is</b> This is basically the same as <b>os</b>, but this time\n   for the incoming edges.\n\n For undirected graphs, the same edge list is stored, i.e. an\n undirected edge is stored only once. Currently, undirected edges\n are canonicalized so that the index of the 'from' vertex is not greater\n than the index of the 'to' vertex. Thus, if v1 <= v2, only the edge (v1, v2)\n needs to be searched for, not (v2, v1), to determine if v1 and v2 are connected.\n However, this fact is NOT guaranteed by the documented public API,\n and should not be relied upon by the implementation of any functions,\n except those belonging to the minimal API in type_indexededgelist.c.\n\n The storage requirements for a graph with \\c |V| vertices\n and \\c |E| edges is \\c O(|E|+|V|)."]
12861#[repr(C)]
12862#[derive(Debug, Clone)]
12863pub struct igraph_t {
12864    pub n: igraph_int_t,
12865    pub directed: igraph_bool_t,
12866    pub from: igraph_vector_int_t,
12867    pub to: igraph_vector_int_t,
12868    pub oi: igraph_vector_int_t,
12869    pub ii: igraph_vector_int_t,
12870    pub os: igraph_vector_int_t,
12871    pub is: igraph_vector_int_t,
12872    pub attr: *mut ::std::os::raw::c_void,
12873    pub cache: *mut igraph_i_property_cache_t,
12874}
12875#[allow(clippy::unnecessary_operation, clippy::identity_op)]
12876const _: () = {
12877    ["Size of igraph_t"][::std::mem::size_of::<igraph_t>() - 176usize];
12878    ["Alignment of igraph_t"][::std::mem::align_of::<igraph_t>() - 8usize];
12879    ["Offset of field: igraph_t::n"][::std::mem::offset_of!(igraph_t, n) - 0usize];
12880    ["Offset of field: igraph_t::directed"][::std::mem::offset_of!(igraph_t, directed) - 8usize];
12881    ["Offset of field: igraph_t::from"][::std::mem::offset_of!(igraph_t, from) - 16usize];
12882    ["Offset of field: igraph_t::to"][::std::mem::offset_of!(igraph_t, to) - 40usize];
12883    ["Offset of field: igraph_t::oi"][::std::mem::offset_of!(igraph_t, oi) - 64usize];
12884    ["Offset of field: igraph_t::ii"][::std::mem::offset_of!(igraph_t, ii) - 88usize];
12885    ["Offset of field: igraph_t::os"][::std::mem::offset_of!(igraph_t, os) - 112usize];
12886    ["Offset of field: igraph_t::is"][::std::mem::offset_of!(igraph_t, is) - 136usize];
12887    ["Offset of field: igraph_t::attr"][::std::mem::offset_of!(igraph_t, attr) - 160usize];
12888    ["Offset of field: igraph_t::cache"][::std::mem::offset_of!(igraph_t, cache) - 168usize];
12889};
12890unsafe extern "C" {
12891    pub fn igraph_invalidate_cache(graph: *const igraph_t);
12892}
12893#[doc = " Vector list, dealing with lists of typed vectors efficiently.\n \\ingroup types"]
12894#[repr(C)]
12895#[derive(Debug, Copy, Clone)]
12896pub struct igraph_graph_list_t {
12897    pub stor_begin: *mut igraph_t,
12898    pub stor_end: *mut igraph_t,
12899    pub end: *mut igraph_t,
12900    pub directed: igraph_bool_t,
12901}
12902#[allow(clippy::unnecessary_operation, clippy::identity_op)]
12903const _: () = {
12904    ["Size of igraph_graph_list_t"][::std::mem::size_of::<igraph_graph_list_t>() - 32usize];
12905    ["Alignment of igraph_graph_list_t"][::std::mem::align_of::<igraph_graph_list_t>() - 8usize];
12906    ["Offset of field: igraph_graph_list_t::stor_begin"]
12907        [::std::mem::offset_of!(igraph_graph_list_t, stor_begin) - 0usize];
12908    ["Offset of field: igraph_graph_list_t::stor_end"]
12909        [::std::mem::offset_of!(igraph_graph_list_t, stor_end) - 8usize];
12910    ["Offset of field: igraph_graph_list_t::end"]
12911        [::std::mem::offset_of!(igraph_graph_list_t, end) - 16usize];
12912    ["Offset of field: igraph_graph_list_t::directed"]
12913        [::std::mem::offset_of!(igraph_graph_list_t, directed) - 24usize];
12914};
12915unsafe extern "C" {
12916    pub fn igraph_graph_list_init(
12917        v: *mut igraph_graph_list_t,
12918        size: igraph_int_t,
12919    ) -> igraph_error_t;
12920}
12921unsafe extern "C" {
12922    pub fn igraph_graph_list_init_copy(
12923        to: *mut igraph_graph_list_t,
12924        from: *const igraph_graph_list_t,
12925    ) -> igraph_error_t;
12926}
12927unsafe extern "C" {
12928    pub fn igraph_graph_list_destroy(v: *mut igraph_graph_list_t);
12929}
12930unsafe extern "C" {
12931    pub fn igraph_graph_list_get_ptr(
12932        v: *const igraph_graph_list_t,
12933        pos: igraph_int_t,
12934    ) -> *mut igraph_t;
12935}
12936unsafe extern "C" {
12937    pub fn igraph_graph_list_set(v: *mut igraph_graph_list_t, pos: igraph_int_t, e: *mut igraph_t);
12938}
12939unsafe extern "C" {
12940    pub fn igraph_graph_list_tail_ptr(v: *const igraph_graph_list_t) -> *mut igraph_t;
12941}
12942unsafe extern "C" {
12943    pub fn igraph_graph_list_capacity(v: *const igraph_graph_list_t) -> igraph_int_t;
12944}
12945unsafe extern "C" {
12946    pub fn igraph_graph_list_empty(v: *const igraph_graph_list_t) -> igraph_bool_t;
12947}
12948unsafe extern "C" {
12949    pub fn igraph_graph_list_size(v: *const igraph_graph_list_t) -> igraph_int_t;
12950}
12951unsafe extern "C" {
12952    pub fn igraph_graph_list_clear(v: *mut igraph_graph_list_t);
12953}
12954unsafe extern "C" {
12955    pub fn igraph_graph_list_reserve(
12956        v: *mut igraph_graph_list_t,
12957        capacity: igraph_int_t,
12958    ) -> igraph_error_t;
12959}
12960unsafe extern "C" {
12961    pub fn igraph_graph_list_resize(
12962        v: *mut igraph_graph_list_t,
12963        new_size: igraph_int_t,
12964    ) -> igraph_error_t;
12965}
12966unsafe extern "C" {
12967    pub fn igraph_graph_list_discard(v: *mut igraph_graph_list_t, index: igraph_int_t);
12968}
12969unsafe extern "C" {
12970    pub fn igraph_graph_list_discard_back(v: *mut igraph_graph_list_t);
12971}
12972unsafe extern "C" {
12973    pub fn igraph_graph_list_discard_fast(v: *mut igraph_graph_list_t, index: igraph_int_t);
12974}
12975unsafe extern "C" {
12976    pub fn igraph_graph_list_insert(
12977        v: *mut igraph_graph_list_t,
12978        pos: igraph_int_t,
12979        e: *mut igraph_t,
12980    ) -> igraph_error_t;
12981}
12982unsafe extern "C" {
12983    pub fn igraph_graph_list_insert_copy(
12984        v: *mut igraph_graph_list_t,
12985        pos: igraph_int_t,
12986        e: *const igraph_t,
12987    ) -> igraph_error_t;
12988}
12989unsafe extern "C" {
12990    pub fn igraph_graph_list_insert_new(
12991        v: *mut igraph_graph_list_t,
12992        pos: igraph_int_t,
12993        result: *mut *mut igraph_t,
12994    ) -> igraph_error_t;
12995}
12996unsafe extern "C" {
12997    pub fn igraph_graph_list_push_back(
12998        v: *mut igraph_graph_list_t,
12999        e: *mut igraph_t,
13000    ) -> igraph_error_t;
13001}
13002unsafe extern "C" {
13003    pub fn igraph_graph_list_push_back_copy(
13004        v: *mut igraph_graph_list_t,
13005        e: *const igraph_t,
13006    ) -> igraph_error_t;
13007}
13008unsafe extern "C" {
13009    pub fn igraph_graph_list_push_back_new(
13010        v: *mut igraph_graph_list_t,
13011        result: *mut *mut igraph_t,
13012    ) -> igraph_error_t;
13013}
13014unsafe extern "C" {
13015    pub fn igraph_graph_list_pop_back(v: *mut igraph_graph_list_t) -> igraph_t;
13016}
13017unsafe extern "C" {
13018    pub fn igraph_graph_list_remove(
13019        v: *mut igraph_graph_list_t,
13020        index: igraph_int_t,
13021        e: *mut igraph_t,
13022    ) -> igraph_error_t;
13023}
13024unsafe extern "C" {
13025    pub fn igraph_graph_list_remove_fast(
13026        v: *mut igraph_graph_list_t,
13027        index: igraph_int_t,
13028        e: *mut igraph_t,
13029    ) -> igraph_error_t;
13030}
13031unsafe extern "C" {
13032    pub fn igraph_graph_list_replace(
13033        v: *mut igraph_graph_list_t,
13034        pos: igraph_int_t,
13035        e: *mut igraph_t,
13036    );
13037}
13038unsafe extern "C" {
13039    pub fn igraph_graph_list_remove_consecutive_duplicates(
13040        v: *mut igraph_graph_list_t,
13041        eq: ::std::option::Option<
13042            unsafe extern "C" fn(arg1: *const igraph_t, arg2: *const igraph_t) -> igraph_bool_t,
13043        >,
13044    );
13045}
13046unsafe extern "C" {
13047    pub fn igraph_graph_list_permute(
13048        v: *mut igraph_graph_list_t,
13049        index: *const igraph_vector_int_t,
13050    ) -> igraph_error_t;
13051}
13052unsafe extern "C" {
13053    pub fn igraph_graph_list_reverse(v: *mut igraph_graph_list_t) -> igraph_error_t;
13054}
13055unsafe extern "C" {
13056    pub fn igraph_graph_list_swap(v1: *mut igraph_graph_list_t, v2: *mut igraph_graph_list_t);
13057}
13058unsafe extern "C" {
13059    pub fn igraph_graph_list_swap_elements(
13060        v: *mut igraph_graph_list_t,
13061        i: igraph_int_t,
13062        j: igraph_int_t,
13063    );
13064}
13065unsafe extern "C" {
13066    pub fn igraph_graph_list_sort(
13067        v: *mut igraph_graph_list_t,
13068        cmp: ::std::option::Option<
13069            unsafe extern "C" fn(
13070                arg1: *const igraph_t,
13071                arg2: *const igraph_t,
13072            ) -> ::std::os::raw::c_int,
13073        >,
13074    );
13075}
13076unsafe extern "C" {
13077    pub fn igraph_graph_list_sort_ind(
13078        v: *mut igraph_graph_list_t,
13079        ind: *mut igraph_vector_int_t,
13080        cmp: ::std::option::Option<
13081            unsafe extern "C" fn(
13082                arg1: *const igraph_t,
13083                arg2: *const igraph_t,
13084            ) -> ::std::os::raw::c_int,
13085        >,
13086    ) -> igraph_error_t;
13087}
13088unsafe extern "C" {
13089    pub fn igraph_graph_list_set_directed(list: *mut igraph_graph_list_t, directed: igraph_bool_t);
13090}
13091pub const igraph_vs_type_t_IGRAPH_VS_ALL: igraph_vs_type_t = 0;
13092pub const igraph_vs_type_t_IGRAPH_VS_ADJ: igraph_vs_type_t = 1;
13093pub const igraph_vs_type_t_IGRAPH_VS_NONE: igraph_vs_type_t = 2;
13094pub const igraph_vs_type_t_IGRAPH_VS_1: igraph_vs_type_t = 3;
13095pub const igraph_vs_type_t_IGRAPH_VS_VECTORPTR: igraph_vs_type_t = 4;
13096pub const igraph_vs_type_t_IGRAPH_VS_VECTOR: igraph_vs_type_t = 5;
13097pub const igraph_vs_type_t_IGRAPH_VS_RANGE: igraph_vs_type_t = 6;
13098pub const igraph_vs_type_t_IGRAPH_VS_NONADJ: igraph_vs_type_t = 7;
13099pub type igraph_vs_type_t = ::std::os::raw::c_uint;
13100#[repr(C)]
13101#[derive(Copy, Clone)]
13102pub struct igraph_vs_t {
13103    pub type_: igraph_vs_type_t,
13104    pub data: igraph_vs_t__bindgen_ty_1,
13105}
13106#[repr(C)]
13107#[derive(Copy, Clone)]
13108pub union igraph_vs_t__bindgen_ty_1 {
13109    pub vid: igraph_int_t,
13110    pub vecptr: *const igraph_vector_int_t,
13111    pub adj: igraph_vs_t__bindgen_ty_1__bindgen_ty_1,
13112    pub range: igraph_vs_t__bindgen_ty_1__bindgen_ty_2,
13113}
13114#[repr(C)]
13115#[derive(Debug, Copy, Clone)]
13116pub struct igraph_vs_t__bindgen_ty_1__bindgen_ty_1 {
13117    pub vid: igraph_int_t,
13118    pub mode: igraph_neimode_t,
13119    pub loops: igraph_loops_t,
13120    pub multiple: igraph_bool_t,
13121}
13122#[allow(clippy::unnecessary_operation, clippy::identity_op)]
13123const _: () = {
13124    ["Size of igraph_vs_t__bindgen_ty_1__bindgen_ty_1"]
13125        [::std::mem::size_of::<igraph_vs_t__bindgen_ty_1__bindgen_ty_1>() - 24usize];
13126    ["Alignment of igraph_vs_t__bindgen_ty_1__bindgen_ty_1"]
13127        [::std::mem::align_of::<igraph_vs_t__bindgen_ty_1__bindgen_ty_1>() - 8usize];
13128    ["Offset of field: igraph_vs_t__bindgen_ty_1__bindgen_ty_1::vid"]
13129        [::std::mem::offset_of!(igraph_vs_t__bindgen_ty_1__bindgen_ty_1, vid) - 0usize];
13130    ["Offset of field: igraph_vs_t__bindgen_ty_1__bindgen_ty_1::mode"]
13131        [::std::mem::offset_of!(igraph_vs_t__bindgen_ty_1__bindgen_ty_1, mode) - 8usize];
13132    ["Offset of field: igraph_vs_t__bindgen_ty_1__bindgen_ty_1::loops"]
13133        [::std::mem::offset_of!(igraph_vs_t__bindgen_ty_1__bindgen_ty_1, loops) - 12usize];
13134    ["Offset of field: igraph_vs_t__bindgen_ty_1__bindgen_ty_1::multiple"]
13135        [::std::mem::offset_of!(igraph_vs_t__bindgen_ty_1__bindgen_ty_1, multiple) - 16usize];
13136};
13137#[repr(C)]
13138#[derive(Debug, Copy, Clone)]
13139pub struct igraph_vs_t__bindgen_ty_1__bindgen_ty_2 {
13140    pub start: igraph_int_t,
13141    pub end: igraph_int_t,
13142}
13143#[allow(clippy::unnecessary_operation, clippy::identity_op)]
13144const _: () = {
13145    ["Size of igraph_vs_t__bindgen_ty_1__bindgen_ty_2"]
13146        [::std::mem::size_of::<igraph_vs_t__bindgen_ty_1__bindgen_ty_2>() - 16usize];
13147    ["Alignment of igraph_vs_t__bindgen_ty_1__bindgen_ty_2"]
13148        [::std::mem::align_of::<igraph_vs_t__bindgen_ty_1__bindgen_ty_2>() - 8usize];
13149    ["Offset of field: igraph_vs_t__bindgen_ty_1__bindgen_ty_2::start"]
13150        [::std::mem::offset_of!(igraph_vs_t__bindgen_ty_1__bindgen_ty_2, start) - 0usize];
13151    ["Offset of field: igraph_vs_t__bindgen_ty_1__bindgen_ty_2::end"]
13152        [::std::mem::offset_of!(igraph_vs_t__bindgen_ty_1__bindgen_ty_2, end) - 8usize];
13153};
13154#[allow(clippy::unnecessary_operation, clippy::identity_op)]
13155const _: () = {
13156    ["Size of igraph_vs_t__bindgen_ty_1"]
13157        [::std::mem::size_of::<igraph_vs_t__bindgen_ty_1>() - 24usize];
13158    ["Alignment of igraph_vs_t__bindgen_ty_1"]
13159        [::std::mem::align_of::<igraph_vs_t__bindgen_ty_1>() - 8usize];
13160    ["Offset of field: igraph_vs_t__bindgen_ty_1::vid"]
13161        [::std::mem::offset_of!(igraph_vs_t__bindgen_ty_1, vid) - 0usize];
13162    ["Offset of field: igraph_vs_t__bindgen_ty_1::vecptr"]
13163        [::std::mem::offset_of!(igraph_vs_t__bindgen_ty_1, vecptr) - 0usize];
13164    ["Offset of field: igraph_vs_t__bindgen_ty_1::adj"]
13165        [::std::mem::offset_of!(igraph_vs_t__bindgen_ty_1, adj) - 0usize];
13166    ["Offset of field: igraph_vs_t__bindgen_ty_1::range"]
13167        [::std::mem::offset_of!(igraph_vs_t__bindgen_ty_1, range) - 0usize];
13168};
13169#[allow(clippy::unnecessary_operation, clippy::identity_op)]
13170const _: () = {
13171    ["Size of igraph_vs_t"][::std::mem::size_of::<igraph_vs_t>() - 32usize];
13172    ["Alignment of igraph_vs_t"][::std::mem::align_of::<igraph_vs_t>() - 8usize];
13173    ["Offset of field: igraph_vs_t::type_"][::std::mem::offset_of!(igraph_vs_t, type_) - 0usize];
13174    ["Offset of field: igraph_vs_t::data"][::std::mem::offset_of!(igraph_vs_t, data) - 8usize];
13175};
13176unsafe extern "C" {
13177    pub fn igraph_vs_all(vs: *mut igraph_vs_t) -> igraph_error_t;
13178}
13179unsafe extern "C" {
13180    pub fn igraph_vss_all() -> igraph_vs_t;
13181}
13182unsafe extern "C" {
13183    pub fn igraph_vs_adj(
13184        vs: *mut igraph_vs_t,
13185        vid: igraph_int_t,
13186        mode: igraph_neimode_t,
13187        loops: igraph_loops_t,
13188        multiple: igraph_bool_t,
13189    ) -> igraph_error_t;
13190}
13191unsafe extern "C" {
13192    pub fn igraph_vs_nonadj(
13193        vs: *mut igraph_vs_t,
13194        vid: igraph_int_t,
13195        mode: igraph_neimode_t,
13196    ) -> igraph_error_t;
13197}
13198unsafe extern "C" {
13199    pub fn igraph_vs_none(vs: *mut igraph_vs_t) -> igraph_error_t;
13200}
13201unsafe extern "C" {
13202    pub fn igraph_vss_none() -> igraph_vs_t;
13203}
13204unsafe extern "C" {
13205    pub fn igraph_vs_1(vs: *mut igraph_vs_t, vid: igraph_int_t) -> igraph_error_t;
13206}
13207unsafe extern "C" {
13208    pub fn igraph_vss_1(vid: igraph_int_t) -> igraph_vs_t;
13209}
13210unsafe extern "C" {
13211    pub fn igraph_vs_vector(vs: *mut igraph_vs_t, v: *const igraph_vector_int_t) -> igraph_error_t;
13212}
13213unsafe extern "C" {
13214    pub fn igraph_vss_vector(v: *const igraph_vector_int_t) -> igraph_vs_t;
13215}
13216unsafe extern "C" {
13217    pub fn igraph_vs_vector_small(vs: *mut igraph_vs_t, ...) -> igraph_error_t;
13218}
13219unsafe extern "C" {
13220    pub fn igraph_vs_vector_copy(
13221        vs: *mut igraph_vs_t,
13222        v: *const igraph_vector_int_t,
13223    ) -> igraph_error_t;
13224}
13225unsafe extern "C" {
13226    pub fn igraph_vs_range(
13227        vs: *mut igraph_vs_t,
13228        start: igraph_int_t,
13229        end: igraph_int_t,
13230    ) -> igraph_error_t;
13231}
13232unsafe extern "C" {
13233    pub fn igraph_vss_range(start: igraph_int_t, end: igraph_int_t) -> igraph_vs_t;
13234}
13235unsafe extern "C" {
13236    pub fn igraph_vs_destroy(vs: *mut igraph_vs_t);
13237}
13238unsafe extern "C" {
13239    pub fn igraph_vs_is_all(vs: *const igraph_vs_t) -> igraph_bool_t;
13240}
13241unsafe extern "C" {
13242    pub fn igraph_vs_copy(dest: *mut igraph_vs_t, src: *const igraph_vs_t) -> igraph_error_t;
13243}
13244unsafe extern "C" {
13245    pub fn igraph_vs_as_vector(
13246        graph: *const igraph_t,
13247        vs: igraph_vs_t,
13248        v: *mut igraph_vector_int_t,
13249    ) -> igraph_error_t;
13250}
13251unsafe extern "C" {
13252    pub fn igraph_vs_size(
13253        graph: *const igraph_t,
13254        vs: *const igraph_vs_t,
13255        result: *mut igraph_int_t,
13256    ) -> igraph_error_t;
13257}
13258unsafe extern "C" {
13259    pub fn igraph_vs_type(vs: *const igraph_vs_t) -> igraph_vs_type_t;
13260}
13261pub const igraph_vit_type_t_IGRAPH_VIT_RANGE: igraph_vit_type_t = 0;
13262pub const igraph_vit_type_t_IGRAPH_VIT_VECTOR: igraph_vit_type_t = 1;
13263pub const igraph_vit_type_t_IGRAPH_VIT_VECTORPTR: igraph_vit_type_t = 2;
13264pub type igraph_vit_type_t = ::std::os::raw::c_uint;
13265#[repr(C)]
13266#[derive(Debug, Copy, Clone)]
13267pub struct igraph_vit_t {
13268    pub type_: igraph_vit_type_t,
13269    pub pos: igraph_int_t,
13270    pub start: igraph_int_t,
13271    pub end: igraph_int_t,
13272    pub vec: *const igraph_vector_int_t,
13273}
13274#[allow(clippy::unnecessary_operation, clippy::identity_op)]
13275const _: () = {
13276    ["Size of igraph_vit_t"][::std::mem::size_of::<igraph_vit_t>() - 40usize];
13277    ["Alignment of igraph_vit_t"][::std::mem::align_of::<igraph_vit_t>() - 8usize];
13278    ["Offset of field: igraph_vit_t::type_"][::std::mem::offset_of!(igraph_vit_t, type_) - 0usize];
13279    ["Offset of field: igraph_vit_t::pos"][::std::mem::offset_of!(igraph_vit_t, pos) - 8usize];
13280    ["Offset of field: igraph_vit_t::start"][::std::mem::offset_of!(igraph_vit_t, start) - 16usize];
13281    ["Offset of field: igraph_vit_t::end"][::std::mem::offset_of!(igraph_vit_t, end) - 24usize];
13282    ["Offset of field: igraph_vit_t::vec"][::std::mem::offset_of!(igraph_vit_t, vec) - 32usize];
13283};
13284unsafe extern "C" {
13285    pub fn igraph_vit_create(
13286        graph: *const igraph_t,
13287        vs: igraph_vs_t,
13288        vit: *mut igraph_vit_t,
13289    ) -> igraph_error_t;
13290}
13291unsafe extern "C" {
13292    pub fn igraph_vit_destroy(vit: *const igraph_vit_t);
13293}
13294unsafe extern "C" {
13295    pub fn igraph_vit_as_vector(
13296        vit: *const igraph_vit_t,
13297        v: *mut igraph_vector_int_t,
13298    ) -> igraph_error_t;
13299}
13300pub const igraph_es_type_t_IGRAPH_ES_ALL: igraph_es_type_t = 0;
13301pub const igraph_es_type_t_IGRAPH_ES_ALLFROM: igraph_es_type_t = 1;
13302pub const igraph_es_type_t_IGRAPH_ES_ALLTO: igraph_es_type_t = 2;
13303pub const igraph_es_type_t_IGRAPH_ES_INCIDENT: igraph_es_type_t = 3;
13304pub const igraph_es_type_t_IGRAPH_ES_NONE: igraph_es_type_t = 4;
13305pub const igraph_es_type_t_IGRAPH_ES_1: igraph_es_type_t = 5;
13306pub const igraph_es_type_t_IGRAPH_ES_VECTORPTR: igraph_es_type_t = 6;
13307pub const igraph_es_type_t_IGRAPH_ES_VECTOR: igraph_es_type_t = 7;
13308pub const igraph_es_type_t_IGRAPH_ES_RANGE: igraph_es_type_t = 8;
13309pub const igraph_es_type_t_IGRAPH_ES_PAIRS: igraph_es_type_t = 9;
13310pub const igraph_es_type_t_IGRAPH_ES_PATH: igraph_es_type_t = 10;
13311pub const igraph_es_type_t_IGRAPH_ES_ALL_BETWEEN: igraph_es_type_t = 11;
13312pub type igraph_es_type_t = ::std::os::raw::c_uint;
13313#[repr(C)]
13314#[derive(Copy, Clone)]
13315pub struct igraph_es_t {
13316    pub type_: igraph_es_type_t,
13317    pub data: igraph_es_t__bindgen_ty_1,
13318}
13319#[repr(C)]
13320#[derive(Copy, Clone)]
13321pub union igraph_es_t__bindgen_ty_1 {
13322    pub vid: igraph_int_t,
13323    pub eid: igraph_int_t,
13324    pub vecptr: *const igraph_vector_int_t,
13325    pub incident: igraph_es_t__bindgen_ty_1__bindgen_ty_1,
13326    pub range: igraph_es_t__bindgen_ty_1__bindgen_ty_2,
13327    pub path: igraph_es_t__bindgen_ty_1__bindgen_ty_3,
13328    pub between: igraph_es_t__bindgen_ty_1__bindgen_ty_4,
13329}
13330#[repr(C)]
13331#[derive(Debug, Copy, Clone)]
13332pub struct igraph_es_t__bindgen_ty_1__bindgen_ty_1 {
13333    pub vid: igraph_int_t,
13334    pub mode: igraph_neimode_t,
13335    pub loops: igraph_loops_t,
13336}
13337#[allow(clippy::unnecessary_operation, clippy::identity_op)]
13338const _: () = {
13339    ["Size of igraph_es_t__bindgen_ty_1__bindgen_ty_1"]
13340        [::std::mem::size_of::<igraph_es_t__bindgen_ty_1__bindgen_ty_1>() - 16usize];
13341    ["Alignment of igraph_es_t__bindgen_ty_1__bindgen_ty_1"]
13342        [::std::mem::align_of::<igraph_es_t__bindgen_ty_1__bindgen_ty_1>() - 8usize];
13343    ["Offset of field: igraph_es_t__bindgen_ty_1__bindgen_ty_1::vid"]
13344        [::std::mem::offset_of!(igraph_es_t__bindgen_ty_1__bindgen_ty_1, vid) - 0usize];
13345    ["Offset of field: igraph_es_t__bindgen_ty_1__bindgen_ty_1::mode"]
13346        [::std::mem::offset_of!(igraph_es_t__bindgen_ty_1__bindgen_ty_1, mode) - 8usize];
13347    ["Offset of field: igraph_es_t__bindgen_ty_1__bindgen_ty_1::loops"]
13348        [::std::mem::offset_of!(igraph_es_t__bindgen_ty_1__bindgen_ty_1, loops) - 12usize];
13349};
13350#[repr(C)]
13351#[derive(Debug, Copy, Clone)]
13352pub struct igraph_es_t__bindgen_ty_1__bindgen_ty_2 {
13353    pub start: igraph_int_t,
13354    pub end: igraph_int_t,
13355}
13356#[allow(clippy::unnecessary_operation, clippy::identity_op)]
13357const _: () = {
13358    ["Size of igraph_es_t__bindgen_ty_1__bindgen_ty_2"]
13359        [::std::mem::size_of::<igraph_es_t__bindgen_ty_1__bindgen_ty_2>() - 16usize];
13360    ["Alignment of igraph_es_t__bindgen_ty_1__bindgen_ty_2"]
13361        [::std::mem::align_of::<igraph_es_t__bindgen_ty_1__bindgen_ty_2>() - 8usize];
13362    ["Offset of field: igraph_es_t__bindgen_ty_1__bindgen_ty_2::start"]
13363        [::std::mem::offset_of!(igraph_es_t__bindgen_ty_1__bindgen_ty_2, start) - 0usize];
13364    ["Offset of field: igraph_es_t__bindgen_ty_1__bindgen_ty_2::end"]
13365        [::std::mem::offset_of!(igraph_es_t__bindgen_ty_1__bindgen_ty_2, end) - 8usize];
13366};
13367#[repr(C)]
13368#[derive(Debug, Copy, Clone)]
13369pub struct igraph_es_t__bindgen_ty_1__bindgen_ty_3 {
13370    pub ptr: *const igraph_vector_int_t,
13371    pub mode: igraph_bool_t,
13372}
13373#[allow(clippy::unnecessary_operation, clippy::identity_op)]
13374const _: () = {
13375    ["Size of igraph_es_t__bindgen_ty_1__bindgen_ty_3"]
13376        [::std::mem::size_of::<igraph_es_t__bindgen_ty_1__bindgen_ty_3>() - 16usize];
13377    ["Alignment of igraph_es_t__bindgen_ty_1__bindgen_ty_3"]
13378        [::std::mem::align_of::<igraph_es_t__bindgen_ty_1__bindgen_ty_3>() - 8usize];
13379    ["Offset of field: igraph_es_t__bindgen_ty_1__bindgen_ty_3::ptr"]
13380        [::std::mem::offset_of!(igraph_es_t__bindgen_ty_1__bindgen_ty_3, ptr) - 0usize];
13381    ["Offset of field: igraph_es_t__bindgen_ty_1__bindgen_ty_3::mode"]
13382        [::std::mem::offset_of!(igraph_es_t__bindgen_ty_1__bindgen_ty_3, mode) - 8usize];
13383};
13384#[repr(C)]
13385#[derive(Debug, Copy, Clone)]
13386pub struct igraph_es_t__bindgen_ty_1__bindgen_ty_4 {
13387    pub from: igraph_int_t,
13388    pub to: igraph_int_t,
13389    pub directed: igraph_bool_t,
13390}
13391#[allow(clippy::unnecessary_operation, clippy::identity_op)]
13392const _: () = {
13393    ["Size of igraph_es_t__bindgen_ty_1__bindgen_ty_4"]
13394        [::std::mem::size_of::<igraph_es_t__bindgen_ty_1__bindgen_ty_4>() - 24usize];
13395    ["Alignment of igraph_es_t__bindgen_ty_1__bindgen_ty_4"]
13396        [::std::mem::align_of::<igraph_es_t__bindgen_ty_1__bindgen_ty_4>() - 8usize];
13397    ["Offset of field: igraph_es_t__bindgen_ty_1__bindgen_ty_4::from"]
13398        [::std::mem::offset_of!(igraph_es_t__bindgen_ty_1__bindgen_ty_4, from) - 0usize];
13399    ["Offset of field: igraph_es_t__bindgen_ty_1__bindgen_ty_4::to"]
13400        [::std::mem::offset_of!(igraph_es_t__bindgen_ty_1__bindgen_ty_4, to) - 8usize];
13401    ["Offset of field: igraph_es_t__bindgen_ty_1__bindgen_ty_4::directed"]
13402        [::std::mem::offset_of!(igraph_es_t__bindgen_ty_1__bindgen_ty_4, directed) - 16usize];
13403};
13404#[allow(clippy::unnecessary_operation, clippy::identity_op)]
13405const _: () = {
13406    ["Size of igraph_es_t__bindgen_ty_1"]
13407        [::std::mem::size_of::<igraph_es_t__bindgen_ty_1>() - 24usize];
13408    ["Alignment of igraph_es_t__bindgen_ty_1"]
13409        [::std::mem::align_of::<igraph_es_t__bindgen_ty_1>() - 8usize];
13410    ["Offset of field: igraph_es_t__bindgen_ty_1::vid"]
13411        [::std::mem::offset_of!(igraph_es_t__bindgen_ty_1, vid) - 0usize];
13412    ["Offset of field: igraph_es_t__bindgen_ty_1::eid"]
13413        [::std::mem::offset_of!(igraph_es_t__bindgen_ty_1, eid) - 0usize];
13414    ["Offset of field: igraph_es_t__bindgen_ty_1::vecptr"]
13415        [::std::mem::offset_of!(igraph_es_t__bindgen_ty_1, vecptr) - 0usize];
13416    ["Offset of field: igraph_es_t__bindgen_ty_1::incident"]
13417        [::std::mem::offset_of!(igraph_es_t__bindgen_ty_1, incident) - 0usize];
13418    ["Offset of field: igraph_es_t__bindgen_ty_1::range"]
13419        [::std::mem::offset_of!(igraph_es_t__bindgen_ty_1, range) - 0usize];
13420    ["Offset of field: igraph_es_t__bindgen_ty_1::path"]
13421        [::std::mem::offset_of!(igraph_es_t__bindgen_ty_1, path) - 0usize];
13422    ["Offset of field: igraph_es_t__bindgen_ty_1::between"]
13423        [::std::mem::offset_of!(igraph_es_t__bindgen_ty_1, between) - 0usize];
13424};
13425#[allow(clippy::unnecessary_operation, clippy::identity_op)]
13426const _: () = {
13427    ["Size of igraph_es_t"][::std::mem::size_of::<igraph_es_t>() - 32usize];
13428    ["Alignment of igraph_es_t"][::std::mem::align_of::<igraph_es_t>() - 8usize];
13429    ["Offset of field: igraph_es_t::type_"][::std::mem::offset_of!(igraph_es_t, type_) - 0usize];
13430    ["Offset of field: igraph_es_t::data"][::std::mem::offset_of!(igraph_es_t, data) - 8usize];
13431};
13432unsafe extern "C" {
13433    pub fn igraph_es_all(es: *mut igraph_es_t, order: igraph_edgeorder_type_t) -> igraph_error_t;
13434}
13435unsafe extern "C" {
13436    pub fn igraph_ess_all(order: igraph_edgeorder_type_t) -> igraph_es_t;
13437}
13438unsafe extern "C" {
13439    pub fn igraph_es_incident(
13440        es: *mut igraph_es_t,
13441        vid: igraph_int_t,
13442        mode: igraph_neimode_t,
13443        loops: igraph_loops_t,
13444    ) -> igraph_error_t;
13445}
13446unsafe extern "C" {
13447    pub fn igraph_es_none(es: *mut igraph_es_t) -> igraph_error_t;
13448}
13449unsafe extern "C" {
13450    pub fn igraph_ess_none() -> igraph_es_t;
13451}
13452unsafe extern "C" {
13453    pub fn igraph_es_1(es: *mut igraph_es_t, eid: igraph_int_t) -> igraph_error_t;
13454}
13455unsafe extern "C" {
13456    pub fn igraph_ess_1(eid: igraph_int_t) -> igraph_es_t;
13457}
13458unsafe extern "C" {
13459    pub fn igraph_es_vector(es: *mut igraph_es_t, v: *const igraph_vector_int_t) -> igraph_error_t;
13460}
13461unsafe extern "C" {
13462    pub fn igraph_ess_vector(v: *const igraph_vector_int_t) -> igraph_es_t;
13463}
13464unsafe extern "C" {
13465    pub fn igraph_es_range(
13466        es: *mut igraph_es_t,
13467        from: igraph_int_t,
13468        to: igraph_int_t,
13469    ) -> igraph_error_t;
13470}
13471unsafe extern "C" {
13472    pub fn igraph_ess_range(from: igraph_int_t, to: igraph_int_t) -> igraph_es_t;
13473}
13474unsafe extern "C" {
13475    pub fn igraph_es_vector_copy(
13476        es: *mut igraph_es_t,
13477        v: *const igraph_vector_int_t,
13478    ) -> igraph_error_t;
13479}
13480unsafe extern "C" {
13481    pub fn igraph_es_pairs(
13482        es: *mut igraph_es_t,
13483        v: *const igraph_vector_int_t,
13484        directed: igraph_bool_t,
13485    ) -> igraph_error_t;
13486}
13487unsafe extern "C" {
13488    pub fn igraph_es_pairs_small(
13489        es: *mut igraph_es_t,
13490        directed: igraph_bool_t,
13491        first: ::std::os::raw::c_int,
13492        ...
13493    ) -> igraph_error_t;
13494}
13495unsafe extern "C" {
13496    pub fn igraph_es_path(
13497        es: *mut igraph_es_t,
13498        v: *const igraph_vector_int_t,
13499        directed: igraph_bool_t,
13500    ) -> igraph_error_t;
13501}
13502unsafe extern "C" {
13503    pub fn igraph_es_path_small(
13504        es: *mut igraph_es_t,
13505        directed: igraph_bool_t,
13506        first: ::std::os::raw::c_int,
13507        ...
13508    ) -> igraph_error_t;
13509}
13510unsafe extern "C" {
13511    pub fn igraph_es_all_between(
13512        es: *mut igraph_es_t,
13513        from: igraph_int_t,
13514        to: igraph_int_t,
13515        directed: igraph_bool_t,
13516    ) -> igraph_error_t;
13517}
13518unsafe extern "C" {
13519    pub fn igraph_es_destroy(es: *mut igraph_es_t);
13520}
13521unsafe extern "C" {
13522    pub fn igraph_es_is_all(es: *const igraph_es_t) -> igraph_bool_t;
13523}
13524unsafe extern "C" {
13525    pub fn igraph_es_copy(dest: *mut igraph_es_t, src: *const igraph_es_t) -> igraph_error_t;
13526}
13527unsafe extern "C" {
13528    pub fn igraph_es_as_vector(
13529        graph: *const igraph_t,
13530        es: igraph_es_t,
13531        v: *mut igraph_vector_int_t,
13532    ) -> igraph_error_t;
13533}
13534unsafe extern "C" {
13535    pub fn igraph_es_size(
13536        graph: *const igraph_t,
13537        es: *const igraph_es_t,
13538        result: *mut igraph_int_t,
13539    ) -> igraph_error_t;
13540}
13541unsafe extern "C" {
13542    pub fn igraph_es_type(es: *const igraph_es_t) -> igraph_es_type_t;
13543}
13544pub const igraph_eit_type_t_IGRAPH_EIT_RANGE: igraph_eit_type_t = 0;
13545pub const igraph_eit_type_t_IGRAPH_EIT_VECTOR: igraph_eit_type_t = 1;
13546pub const igraph_eit_type_t_IGRAPH_EIT_VECTORPTR: igraph_eit_type_t = 2;
13547pub type igraph_eit_type_t = ::std::os::raw::c_uint;
13548#[repr(C)]
13549#[derive(Debug, Copy, Clone)]
13550pub struct igraph_eit_t {
13551    pub type_: igraph_eit_type_t,
13552    pub pos: igraph_int_t,
13553    pub start: igraph_int_t,
13554    pub end: igraph_int_t,
13555    pub vec: *const igraph_vector_int_t,
13556}
13557#[allow(clippy::unnecessary_operation, clippy::identity_op)]
13558const _: () = {
13559    ["Size of igraph_eit_t"][::std::mem::size_of::<igraph_eit_t>() - 40usize];
13560    ["Alignment of igraph_eit_t"][::std::mem::align_of::<igraph_eit_t>() - 8usize];
13561    ["Offset of field: igraph_eit_t::type_"][::std::mem::offset_of!(igraph_eit_t, type_) - 0usize];
13562    ["Offset of field: igraph_eit_t::pos"][::std::mem::offset_of!(igraph_eit_t, pos) - 8usize];
13563    ["Offset of field: igraph_eit_t::start"][::std::mem::offset_of!(igraph_eit_t, start) - 16usize];
13564    ["Offset of field: igraph_eit_t::end"][::std::mem::offset_of!(igraph_eit_t, end) - 24usize];
13565    ["Offset of field: igraph_eit_t::vec"][::std::mem::offset_of!(igraph_eit_t, vec) - 32usize];
13566};
13567unsafe extern "C" {
13568    pub fn igraph_eit_create(
13569        graph: *const igraph_t,
13570        es: igraph_es_t,
13571        eit: *mut igraph_eit_t,
13572    ) -> igraph_error_t;
13573}
13574unsafe extern "C" {
13575    pub fn igraph_eit_destroy(eit: *const igraph_eit_t);
13576}
13577unsafe extern "C" {
13578    pub fn igraph_eit_as_vector(
13579        eit: *const igraph_eit_t,
13580        v: *mut igraph_vector_int_t,
13581    ) -> igraph_error_t;
13582}
13583pub const igraph_attribute_type_t_IGRAPH_ATTRIBUTE_UNSPECIFIED: igraph_attribute_type_t = 0;
13584pub const igraph_attribute_type_t_IGRAPH_ATTRIBUTE_NUMERIC: igraph_attribute_type_t = 1;
13585pub const igraph_attribute_type_t_IGRAPH_ATTRIBUTE_BOOLEAN: igraph_attribute_type_t = 2;
13586pub const igraph_attribute_type_t_IGRAPH_ATTRIBUTE_STRING: igraph_attribute_type_t = 3;
13587pub const igraph_attribute_type_t_IGRAPH_ATTRIBUTE_OBJECT: igraph_attribute_type_t = 127;
13588#[doc = " \\typedef igraph_attribute_type_t\n \\brief The possible types of the attributes.\n\n Values of this enum are used by the attribute interface to communicate the\n type of an attribute to igraph's C core. When igraph is integrated in a\n high-level language, the attribute type reported by the interface may not\n necessarily have to match the exact data type in the high-level language as\n long as the attribute interface can provide a conversion from the native\n high-level attribute value to one of the data types listed here. When the\n high-level data type is complex and has no suitable conversion to one of the\n atomic igraph attribute types (numeric, string or Boolean), the attribute\n interface should report the attribute as having an \"object\" type, which is\n ignored by the C core. See also \\ref igraph_attribute_table_t.\n\n \\enumval IGRAPH_ATTRIBUTE_UNSPECIFIED Currently used internally\n   as a \"null value\" or \"placeholder value\" in some algorithms.\n   Attribute records with this type must not be passed to igraph\n   functions.\n \\enumval IGRAPH_ATTRIBUTE_NUMERIC Numeric attribute.\n \\enumval IGRAPH_ATTRIBUTE_BOOLEAN Logical values, true or false.\n \\enumval IGRAPH_ATTRIBUTE_STRING String attribute.\n \\enumval IGRAPH_ATTRIBUTE_OBJECT Custom attribute type, to be\n   used for special data types by client applications. The R and\n   Python interfaces use this for attributes that hold R or Python\n   objects. Usually ignored by igraph functions."]
13589pub type igraph_attribute_type_t = ::std::os::raw::c_uint;
13590pub const igraph_attribute_elemtype_t_IGRAPH_ATTRIBUTE_GRAPH: igraph_attribute_elemtype_t = 0;
13591pub const igraph_attribute_elemtype_t_IGRAPH_ATTRIBUTE_VERTEX: igraph_attribute_elemtype_t = 1;
13592pub const igraph_attribute_elemtype_t_IGRAPH_ATTRIBUTE_EDGE: igraph_attribute_elemtype_t = 2;
13593#[doc = " \\typedef igraph_attribute_elemtype_t\n \\brief Types of objects to which attributes can be attached.\n\n \\enumval IGRAPH_ATTRIBUTE_GRAPH Denotes that an attribute belongs to the\n   entire graph.\n \\enumval IGRAPH_ATTRIBUTE_VERTEX Denotes that an attribute belongs to the\n   vertices of a graph.\n \\enumval IGRAPH_ATTRIBUTE_EDGE Denotes that an attribute belongs to the\n   edges of a graph."]
13594pub type igraph_attribute_elemtype_t = ::std::os::raw::c_uint;
13595#[doc = " \\typedef igraph_attribute_record_t\n \\brief An attribute record holding the name, type and values of an attribute.\n\n This composite data type is used in the attribute interface to specify a\n name-type-value triplet where the name is the name of a graph, vertex or\n edge attribute, the type is the corresponding igraph type of the attribute\n and the value is a \\em vector of attribute values. Note that for graph\n attributes we use a vector of length 1. The type of the vector depends on\n the attribute type: it is \\ref igraph_vector_t for numeric attributes,\n \\c igraph_strvector_t for string attributes and \\c igraph_vector_bool_t\n for Boolean attributes.\n\n </para><para>\n The record also stores default values for the attribute. The default values\n are used when the value vector of the record is resized with\n \\ref igraph_attribute_record_resize(). It is important that the record\n stores \\em one default value only, corresponding to the type of the\n attribute record. The default value is \\em cleared when the type of the\n record is changed."]
13596#[repr(C)]
13597#[derive(Copy, Clone)]
13598pub struct igraph_attribute_record_t {
13599    pub name: *mut ::std::os::raw::c_char,
13600    pub type_: igraph_attribute_type_t,
13601    pub value: igraph_attribute_record_t__bindgen_ty_1,
13602    pub default_value: igraph_attribute_record_t__bindgen_ty_2,
13603}
13604#[repr(C)]
13605#[derive(Copy, Clone)]
13606pub union igraph_attribute_record_t__bindgen_ty_1 {
13607    pub as_raw: *mut ::std::os::raw::c_void,
13608    pub as_vector: *mut igraph_vector_t,
13609    pub as_strvector: *mut igraph_strvector_t,
13610    pub as_vector_bool: *mut igraph_vector_bool_t,
13611}
13612#[allow(clippy::unnecessary_operation, clippy::identity_op)]
13613const _: () = {
13614    ["Size of igraph_attribute_record_t__bindgen_ty_1"]
13615        [::std::mem::size_of::<igraph_attribute_record_t__bindgen_ty_1>() - 8usize];
13616    ["Alignment of igraph_attribute_record_t__bindgen_ty_1"]
13617        [::std::mem::align_of::<igraph_attribute_record_t__bindgen_ty_1>() - 8usize];
13618    ["Offset of field: igraph_attribute_record_t__bindgen_ty_1::as_raw"]
13619        [::std::mem::offset_of!(igraph_attribute_record_t__bindgen_ty_1, as_raw) - 0usize];
13620    ["Offset of field: igraph_attribute_record_t__bindgen_ty_1::as_vector"]
13621        [::std::mem::offset_of!(igraph_attribute_record_t__bindgen_ty_1, as_vector) - 0usize];
13622    ["Offset of field: igraph_attribute_record_t__bindgen_ty_1::as_strvector"]
13623        [::std::mem::offset_of!(igraph_attribute_record_t__bindgen_ty_1, as_strvector) - 0usize];
13624    ["Offset of field: igraph_attribute_record_t__bindgen_ty_1::as_vector_bool"]
13625        [::std::mem::offset_of!(igraph_attribute_record_t__bindgen_ty_1, as_vector_bool) - 0usize];
13626};
13627#[repr(C)]
13628#[derive(Copy, Clone)]
13629pub union igraph_attribute_record_t__bindgen_ty_2 {
13630    pub numeric: igraph_real_t,
13631    pub boolean: igraph_bool_t,
13632    pub string: *mut ::std::os::raw::c_char,
13633}
13634#[allow(clippy::unnecessary_operation, clippy::identity_op)]
13635const _: () = {
13636    ["Size of igraph_attribute_record_t__bindgen_ty_2"]
13637        [::std::mem::size_of::<igraph_attribute_record_t__bindgen_ty_2>() - 8usize];
13638    ["Alignment of igraph_attribute_record_t__bindgen_ty_2"]
13639        [::std::mem::align_of::<igraph_attribute_record_t__bindgen_ty_2>() - 8usize];
13640    ["Offset of field: igraph_attribute_record_t__bindgen_ty_2::numeric"]
13641        [::std::mem::offset_of!(igraph_attribute_record_t__bindgen_ty_2, numeric) - 0usize];
13642    ["Offset of field: igraph_attribute_record_t__bindgen_ty_2::boolean"]
13643        [::std::mem::offset_of!(igraph_attribute_record_t__bindgen_ty_2, boolean) - 0usize];
13644    ["Offset of field: igraph_attribute_record_t__bindgen_ty_2::string"]
13645        [::std::mem::offset_of!(igraph_attribute_record_t__bindgen_ty_2, string) - 0usize];
13646};
13647#[allow(clippy::unnecessary_operation, clippy::identity_op)]
13648const _: () = {
13649    ["Size of igraph_attribute_record_t"]
13650        [::std::mem::size_of::<igraph_attribute_record_t>() - 32usize];
13651    ["Alignment of igraph_attribute_record_t"]
13652        [::std::mem::align_of::<igraph_attribute_record_t>() - 8usize];
13653    ["Offset of field: igraph_attribute_record_t::name"]
13654        [::std::mem::offset_of!(igraph_attribute_record_t, name) - 0usize];
13655    ["Offset of field: igraph_attribute_record_t::type_"]
13656        [::std::mem::offset_of!(igraph_attribute_record_t, type_) - 8usize];
13657    ["Offset of field: igraph_attribute_record_t::value"]
13658        [::std::mem::offset_of!(igraph_attribute_record_t, value) - 16usize];
13659    ["Offset of field: igraph_attribute_record_t::default_value"]
13660        [::std::mem::offset_of!(igraph_attribute_record_t, default_value) - 24usize];
13661};
13662unsafe extern "C" {
13663    pub fn igraph_attribute_record_init(
13664        attr: *mut igraph_attribute_record_t,
13665        name: *const ::std::os::raw::c_char,
13666        type_: igraph_attribute_type_t,
13667    ) -> igraph_error_t;
13668}
13669unsafe extern "C" {
13670    pub fn igraph_attribute_record_init_copy(
13671        to: *mut igraph_attribute_record_t,
13672        from: *const igraph_attribute_record_t,
13673    ) -> igraph_error_t;
13674}
13675unsafe extern "C" {
13676    pub fn igraph_attribute_record_check_type(
13677        attr: *const igraph_attribute_record_t,
13678        type_: igraph_attribute_type_t,
13679    ) -> igraph_error_t;
13680}
13681unsafe extern "C" {
13682    pub fn igraph_attribute_record_size(attr: *const igraph_attribute_record_t) -> igraph_int_t;
13683}
13684unsafe extern "C" {
13685    pub fn igraph_attribute_record_resize(
13686        attr: *mut igraph_attribute_record_t,
13687        new_size: igraph_int_t,
13688    ) -> igraph_error_t;
13689}
13690unsafe extern "C" {
13691    pub fn igraph_attribute_record_set_name(
13692        attr: *mut igraph_attribute_record_t,
13693        name: *const ::std::os::raw::c_char,
13694    ) -> igraph_error_t;
13695}
13696unsafe extern "C" {
13697    pub fn igraph_attribute_record_set_default_numeric(
13698        attr: *mut igraph_attribute_record_t,
13699        value: igraph_real_t,
13700    ) -> igraph_error_t;
13701}
13702unsafe extern "C" {
13703    pub fn igraph_attribute_record_set_default_boolean(
13704        attr: *mut igraph_attribute_record_t,
13705        value: igraph_bool_t,
13706    ) -> igraph_error_t;
13707}
13708unsafe extern "C" {
13709    pub fn igraph_attribute_record_set_default_string(
13710        attr: *mut igraph_attribute_record_t,
13711        value: *const ::std::os::raw::c_char,
13712    ) -> igraph_error_t;
13713}
13714unsafe extern "C" {
13715    pub fn igraph_attribute_record_set_type(
13716        attr: *mut igraph_attribute_record_t,
13717        type_: igraph_attribute_type_t,
13718    ) -> igraph_error_t;
13719}
13720unsafe extern "C" {
13721    pub fn igraph_attribute_record_destroy(attr: *mut igraph_attribute_record_t);
13722}
13723pub const igraph_attribute_combination_type_t_IGRAPH_ATTRIBUTE_COMBINE_IGNORE:
13724    igraph_attribute_combination_type_t = 0;
13725pub const igraph_attribute_combination_type_t_IGRAPH_ATTRIBUTE_COMBINE_DEFAULT:
13726    igraph_attribute_combination_type_t = 1;
13727pub const igraph_attribute_combination_type_t_IGRAPH_ATTRIBUTE_COMBINE_FUNCTION:
13728    igraph_attribute_combination_type_t = 2;
13729pub const igraph_attribute_combination_type_t_IGRAPH_ATTRIBUTE_COMBINE_SUM:
13730    igraph_attribute_combination_type_t = 3;
13731pub const igraph_attribute_combination_type_t_IGRAPH_ATTRIBUTE_COMBINE_PROD:
13732    igraph_attribute_combination_type_t = 4;
13733pub const igraph_attribute_combination_type_t_IGRAPH_ATTRIBUTE_COMBINE_MIN:
13734    igraph_attribute_combination_type_t = 5;
13735pub const igraph_attribute_combination_type_t_IGRAPH_ATTRIBUTE_COMBINE_MAX:
13736    igraph_attribute_combination_type_t = 6;
13737pub const igraph_attribute_combination_type_t_IGRAPH_ATTRIBUTE_COMBINE_RANDOM:
13738    igraph_attribute_combination_type_t = 7;
13739pub const igraph_attribute_combination_type_t_IGRAPH_ATTRIBUTE_COMBINE_FIRST:
13740    igraph_attribute_combination_type_t = 8;
13741pub const igraph_attribute_combination_type_t_IGRAPH_ATTRIBUTE_COMBINE_LAST:
13742    igraph_attribute_combination_type_t = 9;
13743pub const igraph_attribute_combination_type_t_IGRAPH_ATTRIBUTE_COMBINE_MEAN:
13744    igraph_attribute_combination_type_t = 10;
13745pub const igraph_attribute_combination_type_t_IGRAPH_ATTRIBUTE_COMBINE_MEDIAN:
13746    igraph_attribute_combination_type_t = 11;
13747pub const igraph_attribute_combination_type_t_IGRAPH_ATTRIBUTE_COMBINE_CONCAT:
13748    igraph_attribute_combination_type_t = 12;
13749#[doc = " \\typedef igraph_attribute_combination_type_t\n The possible types of attribute combinations.\n\n \\enumval IGRAPH_ATTRIBUTE_COMBINE_IGNORE   Ignore old attributes, use an empty value.\n \\enumval IGRAPH_ATTRIBUTE_COMBINE_DEFAULT  Use the default way to combine attributes (decided by the attribute handler implementation).\n \\enumval IGRAPH_ATTRIBUTE_COMBINE_FUNCTION Supply your own function to combine\n                                            attributes.\n \\enumval IGRAPH_ATTRIBUTE_COMBINE_SUM      Take the sum of the attributes.\n \\enumval IGRAPH_ATTRIBUTE_COMBINE_PROD     Take the product of the attributes.\n \\enumval IGRAPH_ATTRIBUTE_COMBINE_MIN      Take the minimum attribute.\n \\enumval IGRAPH_ATTRIBUTE_COMBINE_MAX      Take the maximum attribute.\n \\enumval IGRAPH_ATTRIBUTE_COMBINE_RANDOM   Take a random attribute.\n \\enumval IGRAPH_ATTRIBUTE_COMBINE_FIRST    Take the first attribute.\n \\enumval IGRAPH_ATTRIBUTE_COMBINE_LAST     Take the last attribute.\n \\enumval IGRAPH_ATTRIBUTE_COMBINE_MEAN     Take the mean of the attributes.\n \\enumval IGRAPH_ATTRIBUTE_COMBINE_MEDIAN   Take the median of the attributes.\n \\enumval IGRAPH_ATTRIBUTE_COMBINE_CONCAT   Concatenate the attributes."]
13750pub type igraph_attribute_combination_type_t = ::std::os::raw::c_uint;
13751pub type igraph_function_pointer_t = ::std::option::Option<unsafe extern "C" fn()>;
13752#[repr(C)]
13753#[derive(Debug, Copy, Clone)]
13754pub struct igraph_attribute_combination_record_t {
13755    pub name: *const ::std::os::raw::c_char,
13756    pub type_: igraph_attribute_combination_type_t,
13757    pub func: igraph_function_pointer_t,
13758}
13759#[allow(clippy::unnecessary_operation, clippy::identity_op)]
13760const _: () = {
13761    ["Size of igraph_attribute_combination_record_t"]
13762        [::std::mem::size_of::<igraph_attribute_combination_record_t>() - 24usize];
13763    ["Alignment of igraph_attribute_combination_record_t"]
13764        [::std::mem::align_of::<igraph_attribute_combination_record_t>() - 8usize];
13765    ["Offset of field: igraph_attribute_combination_record_t::name"]
13766        [::std::mem::offset_of!(igraph_attribute_combination_record_t, name) - 0usize];
13767    ["Offset of field: igraph_attribute_combination_record_t::type_"]
13768        [::std::mem::offset_of!(igraph_attribute_combination_record_t, type_) - 8usize];
13769    ["Offset of field: igraph_attribute_combination_record_t::func"]
13770        [::std::mem::offset_of!(igraph_attribute_combination_record_t, func) - 16usize];
13771};
13772#[repr(C)]
13773#[derive(Debug, Copy, Clone)]
13774pub struct igraph_attribute_combination_t {
13775    pub list: igraph_vector_ptr_t,
13776}
13777#[allow(clippy::unnecessary_operation, clippy::identity_op)]
13778const _: () = {
13779    ["Size of igraph_attribute_combination_t"]
13780        [::std::mem::size_of::<igraph_attribute_combination_t>() - 32usize];
13781    ["Alignment of igraph_attribute_combination_t"]
13782        [::std::mem::align_of::<igraph_attribute_combination_t>() - 8usize];
13783    ["Offset of field: igraph_attribute_combination_t::list"]
13784        [::std::mem::offset_of!(igraph_attribute_combination_t, list) - 0usize];
13785};
13786unsafe extern "C" {
13787    pub fn igraph_attribute_combination_init(
13788        comb: *mut igraph_attribute_combination_t,
13789    ) -> igraph_error_t;
13790}
13791unsafe extern "C" {
13792    pub fn igraph_attribute_combination(
13793        comb: *mut igraph_attribute_combination_t,
13794        ...
13795    ) -> igraph_error_t;
13796}
13797unsafe extern "C" {
13798    pub fn igraph_attribute_combination_destroy(comb: *mut igraph_attribute_combination_t);
13799}
13800unsafe extern "C" {
13801    pub fn igraph_attribute_combination_add(
13802        comb: *mut igraph_attribute_combination_t,
13803        name: *const ::std::os::raw::c_char,
13804        type_: igraph_attribute_combination_type_t,
13805        func: igraph_function_pointer_t,
13806    ) -> igraph_error_t;
13807}
13808unsafe extern "C" {
13809    pub fn igraph_attribute_combination_remove(
13810        comb: *mut igraph_attribute_combination_t,
13811        name: *const ::std::os::raw::c_char,
13812    ) -> igraph_error_t;
13813}
13814unsafe extern "C" {
13815    pub fn igraph_attribute_combination_query(
13816        comb: *const igraph_attribute_combination_t,
13817        name: *const ::std::os::raw::c_char,
13818        type_: *mut igraph_attribute_combination_type_t,
13819        func: *mut igraph_function_pointer_t,
13820    ) -> igraph_error_t;
13821}
13822#[doc = " Vector list, dealing with lists of typed vectors efficiently.\n \\ingroup types"]
13823#[repr(C)]
13824#[derive(Debug, Copy, Clone)]
13825pub struct igraph_attribute_record_list_t {
13826    pub stor_begin: *mut igraph_attribute_record_t,
13827    pub stor_end: *mut igraph_attribute_record_t,
13828    pub end: *mut igraph_attribute_record_t,
13829}
13830#[allow(clippy::unnecessary_operation, clippy::identity_op)]
13831const _: () = {
13832    ["Size of igraph_attribute_record_list_t"]
13833        [::std::mem::size_of::<igraph_attribute_record_list_t>() - 24usize];
13834    ["Alignment of igraph_attribute_record_list_t"]
13835        [::std::mem::align_of::<igraph_attribute_record_list_t>() - 8usize];
13836    ["Offset of field: igraph_attribute_record_list_t::stor_begin"]
13837        [::std::mem::offset_of!(igraph_attribute_record_list_t, stor_begin) - 0usize];
13838    ["Offset of field: igraph_attribute_record_list_t::stor_end"]
13839        [::std::mem::offset_of!(igraph_attribute_record_list_t, stor_end) - 8usize];
13840    ["Offset of field: igraph_attribute_record_list_t::end"]
13841        [::std::mem::offset_of!(igraph_attribute_record_list_t, end) - 16usize];
13842};
13843unsafe extern "C" {
13844    pub fn igraph_attribute_record_list_init(
13845        v: *mut igraph_attribute_record_list_t,
13846        size: igraph_int_t,
13847    ) -> igraph_error_t;
13848}
13849unsafe extern "C" {
13850    pub fn igraph_attribute_record_list_init_copy(
13851        to: *mut igraph_attribute_record_list_t,
13852        from: *const igraph_attribute_record_list_t,
13853    ) -> igraph_error_t;
13854}
13855unsafe extern "C" {
13856    pub fn igraph_attribute_record_list_destroy(v: *mut igraph_attribute_record_list_t);
13857}
13858unsafe extern "C" {
13859    pub fn igraph_attribute_record_list_get_ptr(
13860        v: *const igraph_attribute_record_list_t,
13861        pos: igraph_int_t,
13862    ) -> *mut igraph_attribute_record_t;
13863}
13864unsafe extern "C" {
13865    pub fn igraph_attribute_record_list_set(
13866        v: *mut igraph_attribute_record_list_t,
13867        pos: igraph_int_t,
13868        e: *mut igraph_attribute_record_t,
13869    );
13870}
13871unsafe extern "C" {
13872    pub fn igraph_attribute_record_list_tail_ptr(
13873        v: *const igraph_attribute_record_list_t,
13874    ) -> *mut igraph_attribute_record_t;
13875}
13876unsafe extern "C" {
13877    pub fn igraph_attribute_record_list_capacity(
13878        v: *const igraph_attribute_record_list_t,
13879    ) -> igraph_int_t;
13880}
13881unsafe extern "C" {
13882    pub fn igraph_attribute_record_list_empty(
13883        v: *const igraph_attribute_record_list_t,
13884    ) -> igraph_bool_t;
13885}
13886unsafe extern "C" {
13887    pub fn igraph_attribute_record_list_size(
13888        v: *const igraph_attribute_record_list_t,
13889    ) -> igraph_int_t;
13890}
13891unsafe extern "C" {
13892    pub fn igraph_attribute_record_list_clear(v: *mut igraph_attribute_record_list_t);
13893}
13894unsafe extern "C" {
13895    pub fn igraph_attribute_record_list_reserve(
13896        v: *mut igraph_attribute_record_list_t,
13897        capacity: igraph_int_t,
13898    ) -> igraph_error_t;
13899}
13900unsafe extern "C" {
13901    pub fn igraph_attribute_record_list_resize(
13902        v: *mut igraph_attribute_record_list_t,
13903        new_size: igraph_int_t,
13904    ) -> igraph_error_t;
13905}
13906unsafe extern "C" {
13907    pub fn igraph_attribute_record_list_discard(
13908        v: *mut igraph_attribute_record_list_t,
13909        index: igraph_int_t,
13910    );
13911}
13912unsafe extern "C" {
13913    pub fn igraph_attribute_record_list_discard_back(v: *mut igraph_attribute_record_list_t);
13914}
13915unsafe extern "C" {
13916    pub fn igraph_attribute_record_list_discard_fast(
13917        v: *mut igraph_attribute_record_list_t,
13918        index: igraph_int_t,
13919    );
13920}
13921unsafe extern "C" {
13922    pub fn igraph_attribute_record_list_insert(
13923        v: *mut igraph_attribute_record_list_t,
13924        pos: igraph_int_t,
13925        e: *mut igraph_attribute_record_t,
13926    ) -> igraph_error_t;
13927}
13928unsafe extern "C" {
13929    pub fn igraph_attribute_record_list_insert_copy(
13930        v: *mut igraph_attribute_record_list_t,
13931        pos: igraph_int_t,
13932        e: *const igraph_attribute_record_t,
13933    ) -> igraph_error_t;
13934}
13935unsafe extern "C" {
13936    pub fn igraph_attribute_record_list_insert_new(
13937        v: *mut igraph_attribute_record_list_t,
13938        pos: igraph_int_t,
13939        result: *mut *mut igraph_attribute_record_t,
13940    ) -> igraph_error_t;
13941}
13942unsafe extern "C" {
13943    pub fn igraph_attribute_record_list_push_back(
13944        v: *mut igraph_attribute_record_list_t,
13945        e: *mut igraph_attribute_record_t,
13946    ) -> igraph_error_t;
13947}
13948unsafe extern "C" {
13949    pub fn igraph_attribute_record_list_push_back_copy(
13950        v: *mut igraph_attribute_record_list_t,
13951        e: *const igraph_attribute_record_t,
13952    ) -> igraph_error_t;
13953}
13954unsafe extern "C" {
13955    pub fn igraph_attribute_record_list_push_back_new(
13956        v: *mut igraph_attribute_record_list_t,
13957        result: *mut *mut igraph_attribute_record_t,
13958    ) -> igraph_error_t;
13959}
13960unsafe extern "C" {
13961    pub fn igraph_attribute_record_list_pop_back(
13962        v: *mut igraph_attribute_record_list_t,
13963    ) -> igraph_attribute_record_t;
13964}
13965unsafe extern "C" {
13966    pub fn igraph_attribute_record_list_remove(
13967        v: *mut igraph_attribute_record_list_t,
13968        index: igraph_int_t,
13969        e: *mut igraph_attribute_record_t,
13970    ) -> igraph_error_t;
13971}
13972unsafe extern "C" {
13973    pub fn igraph_attribute_record_list_remove_fast(
13974        v: *mut igraph_attribute_record_list_t,
13975        index: igraph_int_t,
13976        e: *mut igraph_attribute_record_t,
13977    ) -> igraph_error_t;
13978}
13979unsafe extern "C" {
13980    pub fn igraph_attribute_record_list_replace(
13981        v: *mut igraph_attribute_record_list_t,
13982        pos: igraph_int_t,
13983        e: *mut igraph_attribute_record_t,
13984    );
13985}
13986unsafe extern "C" {
13987    pub fn igraph_attribute_record_list_remove_consecutive_duplicates(
13988        v: *mut igraph_attribute_record_list_t,
13989        eq: ::std::option::Option<
13990            unsafe extern "C" fn(
13991                arg1: *const igraph_attribute_record_t,
13992                arg2: *const igraph_attribute_record_t,
13993            ) -> igraph_bool_t,
13994        >,
13995    );
13996}
13997unsafe extern "C" {
13998    pub fn igraph_attribute_record_list_permute(
13999        v: *mut igraph_attribute_record_list_t,
14000        index: *const igraph_vector_int_t,
14001    ) -> igraph_error_t;
14002}
14003unsafe extern "C" {
14004    pub fn igraph_attribute_record_list_reverse(
14005        v: *mut igraph_attribute_record_list_t,
14006    ) -> igraph_error_t;
14007}
14008unsafe extern "C" {
14009    pub fn igraph_attribute_record_list_swap(
14010        v1: *mut igraph_attribute_record_list_t,
14011        v2: *mut igraph_attribute_record_list_t,
14012    );
14013}
14014unsafe extern "C" {
14015    pub fn igraph_attribute_record_list_swap_elements(
14016        v: *mut igraph_attribute_record_list_t,
14017        i: igraph_int_t,
14018        j: igraph_int_t,
14019    );
14020}
14021unsafe extern "C" {
14022    pub fn igraph_attribute_record_list_sort(
14023        v: *mut igraph_attribute_record_list_t,
14024        cmp: ::std::option::Option<
14025            unsafe extern "C" fn(
14026                arg1: *const igraph_attribute_record_t,
14027                arg2: *const igraph_attribute_record_t,
14028            ) -> ::std::os::raw::c_int,
14029        >,
14030    );
14031}
14032unsafe extern "C" {
14033    pub fn igraph_attribute_record_list_sort_ind(
14034        v: *mut igraph_attribute_record_list_t,
14035        ind: *mut igraph_vector_int_t,
14036        cmp: ::std::option::Option<
14037            unsafe extern "C" fn(
14038                arg1: *const igraph_attribute_record_t,
14039                arg2: *const igraph_attribute_record_t,
14040            ) -> ::std::os::raw::c_int,
14041        >,
14042    ) -> igraph_error_t;
14043}
14044#[doc = " \\struct igraph_attribute_table_t\n \\brief Table of functions to perform operations on attributes.\n\n This type collects the functions defining an attribute handler.\n It has the following members:\n\n \\member init This function is called whenever a new graph object is\n    created, right after it is created but before any vertices or\n    edges are added. It is supposed to set the \\c attr member of the \\c\n    igraph_t object, which is guaranteed to be set to a null pointer\n    before this function is called. It is expected to set the \\c attr member\n    to a non-null value \\em or return an error code. Leaving the \\c attr\n    member at a null value while returning success is invalid and will trigger\n    an error in the C core of igraph itself.\n \\member destroy This function is called whenever the graph object\n    is destroyed, right before freeing the allocated memory. It is supposed\n    to do any cleanup operations that are need to dispose of the \\c attr\n    member of the \\c igraph_t object properly. The caller will set the\n    \\c attr member to a null pointer after this function returns.\n \\member copy This function is called when the C core wants to populate the\n    attributes of a graph from another graph. The structure of the target\n    graph is already initialized by the time this function is called, and the\n    \\c attr member of the graph is set to a null pointer. The function is\n    supposed to populate the \\c attr member of the target \\c igraph_t object\n    to a non-null value \\em or return an error code. Leaving the \\c attr\n    member at a null value while returning success is invalid and will trigger\n    an error in the C core of igraph itself.\n \\member add_vertices Called when vertices are added to a graph, after the\n    base data structure was modified. The number of vertices that were added is\n    supplied as an argument. The function is supposed to set up default values\n    for each vertex attribute that is currently registered on the graph, for\n    all the newly added vertices. Expected to return an error code.\n \\member permute_vertices Called when a new graph is created based on an\n    existing one such that there is a mapping from the vertices of the new\n    graph back to the vertices of the old graph (e.g. if vertices are removed\n    from a graph). The supplied index vector defines which old vertex\n    a new vertex corresponds to. Its length is the same as the number of\n    vertices in the new graph, and for each new vertex it provides the ID\n    of the corresponding vertex in the old graph. The function is supposed to\n    set up the values of the vertex attributes of the new graph based on the\n    attributes of the old graph and the provided index vector. Note that the\n    old and the new graph \\em may be the same, in which case it is the\n    responsibility of the function to ensure that the operation can safely be\n    performed in-place. If the two graph instances are \\em not the same,\n    implementors may safely assume that the new graph has no vertex attributes\n    yet (but it may already have graph or edge attributes by the time this\n    function is called).\n \\member combine_vertices This function is called when the creation\n    of a new graph involves a merge (contraction, etc.) of vertices\n    from another graph. The function is called after the new graph was created.\n    An argument specifies how several vertices from the old graph map to a\n    single vertex in the new graph. It is guaranteed that the old and the\n    new graph instances are different when this callback is called.\n    Implementors may safely assume that the new graph has no vertex attributes\n    yet (but it may already have graph or edge attributes by the time this\n    function is called).\n \\member add_edges Called when new edges are added to a graph, after the\n    base data structure was modified. A vector containing the endpoints of the\n    new edges are supplied as an argument. The function is supposed to set up\n    default values for each edge attribute that is currently registered on the\n    graph, for all the newly added edges. Expected to return an error code.\n \\member permute_edges Called when a new graph is created based on an\n    existing one such that some of the edges in the new graph should copy the\n    attributes of some edges from the old graph (this also includes the\n    deletion of edges). The supplied index vector defines which old edge a new\n    edge corresponds to. Its length is the same as the number of edges in the\n    new graph, and for each edge it provides the ID of the corresponding edge\n    in the old graph. The function is supposed to set up the values of the\n    edge attributes of the new graph based on the attributes of the old graph\n    and the provided index vector. Note that the old and the new graph \\em may\n    be the same, in which case it is the responsibility of the function to\n    ensure that the operation can safely be performed in-place. If the two\n    graph instances are \\em not the same, implementors may safely assume that\n    the new graph has no edge attributes yet (but it may already have graph or\n    vertex attributes by the time this function is called).\n \\member combine_edges This function is called when the creation\n    of a new graph involves a merge (contraction, etc.) of edges\n    from another graph. The function is after the new graph was created.\n    An argument specifies how several edges from the old graph map to a\n    single edge in the new graph. It is guaranteed that the old and the\n    new graph instances are different when this callback is called.\n    Implementors may safely assume that the new graph has no edge attributes\n    yet (but it may already have graph or vertex attributes by the time this\n    function is called).\n \\member get_info Query the attributes of a graph, the names and\n    types should be returned.\n \\member has_attr Check whether a graph has the named\n    graph/vertex/edge attribute.\n \\member get_type Query the type of a graph/vertex/edge attribute.\n \\member get_numeric_graph_attr Query a numeric graph attribute. The\n    value should be appended to the provided \\p value vector. No assumptions\n    should be made about the initial contents of the \\p value vector and it is\n    not guaranteed to be empty.\n \\member get_string_graph_attr Query a string graph attribute. The\n    value should be appended to the provided \\p value vector. No assumptions\n    should be made about the initial contents of the \\p value vector and it is\n    not guaranteed to be empty.\n \\member get_bool_graph_attr Query a boolean graph attribute. The\n    value should be appended to the provided \\p value vector. No assumptions\n    should be made about the initial contents of the \\p value vector and it is\n    not guaranteed to be empty.\n \\member get_numeric_vertex_attr Query a numeric vertex attribute,\n    for the vertices included in \\p vs. The attribute values should be\n    appended to the provided \\p value vector. No assumptions should be made\n    about the initial contents of the \\p value vector and it is not guaranteed\n    to be empty.\n \\member get_string_vertex_attr Query a string vertex attribute,\n    for the vertices included in \\p vs. The attribute values should be\n    appended to the provided \\p value vector. No assumptions should be made\n    about the initial contents of the \\p value vector and it is not guaranteed\n    to be empty.\n \\member get_bool_vertex_attr Query a boolean vertex attribute,\n    for the vertices included in \\p vs. The attribute values should be\n    appended to the provided \\p value vector. No assumptions should be made\n    about the initial contents of the \\p value vector and it is not guaranteed\n    to be empty.\n \\member get_numeric_edge_attr Query a numeric edge attribute, for\n    the edges included in \\p es. The attribute values should be appended\n    to the provided \\p value vector. No assumptions should be made\n    about the initial contents of the \\p value vector and it is not guaranteed\n    to be empty.\n \\member get_string_edge_attr Query a string edge attribute, for the\n    the edges included in \\p es. The attribute values should be appended\n    to the provided \\p value vector. No assumptions should be made\n    about the initial contents of the \\p value vector and it is not guaranteed\n    to be empty.\n \\member get_bool_edge_attr Query a boolean edge attribute, for the\n    the edges included in \\p es. The attribute values should be appended\n    to the provided \\p value vector. No assumptions should be made\n    about the initial contents of the \\p value vector and it is not guaranteed\n    to be empty."]
14045#[repr(C)]
14046#[derive(Debug, Copy, Clone)]
14047pub struct igraph_attribute_table_t {
14048    pub init: ::std::option::Option<
14049        unsafe extern "C" fn(
14050            graph: *mut igraph_t,
14051            attr: *const igraph_attribute_record_list_t,
14052        ) -> igraph_error_t,
14053    >,
14054    pub destroy: ::std::option::Option<unsafe extern "C" fn(graph: *mut igraph_t)>,
14055    pub copy: ::std::option::Option<
14056        unsafe extern "C" fn(
14057            to: *mut igraph_t,
14058            from: *const igraph_t,
14059            ga: igraph_bool_t,
14060            va: igraph_bool_t,
14061            ea: igraph_bool_t,
14062        ) -> igraph_error_t,
14063    >,
14064    pub add_vertices: ::std::option::Option<
14065        unsafe extern "C" fn(
14066            graph: *mut igraph_t,
14067            nv: igraph_int_t,
14068            attr: *const igraph_attribute_record_list_t,
14069        ) -> igraph_error_t,
14070    >,
14071    pub permute_vertices: ::std::option::Option<
14072        unsafe extern "C" fn(
14073            graph: *const igraph_t,
14074            newgraph: *mut igraph_t,
14075            idx: *const igraph_vector_int_t,
14076        ) -> igraph_error_t,
14077    >,
14078    pub combine_vertices: ::std::option::Option<
14079        unsafe extern "C" fn(
14080            graph: *const igraph_t,
14081            newgraph: *mut igraph_t,
14082            merges: *const igraph_vector_int_list_t,
14083            comb: *const igraph_attribute_combination_t,
14084        ) -> igraph_error_t,
14085    >,
14086    pub add_edges: ::std::option::Option<
14087        unsafe extern "C" fn(
14088            graph: *mut igraph_t,
14089            edges: *const igraph_vector_int_t,
14090            attr: *const igraph_attribute_record_list_t,
14091        ) -> igraph_error_t,
14092    >,
14093    pub permute_edges: ::std::option::Option<
14094        unsafe extern "C" fn(
14095            graph: *const igraph_t,
14096            newgraph: *mut igraph_t,
14097            idx: *const igraph_vector_int_t,
14098        ) -> igraph_error_t,
14099    >,
14100    pub combine_edges: ::std::option::Option<
14101        unsafe extern "C" fn(
14102            graph: *const igraph_t,
14103            newgraph: *mut igraph_t,
14104            merges: *const igraph_vector_int_list_t,
14105            comb: *const igraph_attribute_combination_t,
14106        ) -> igraph_error_t,
14107    >,
14108    pub get_info: ::std::option::Option<
14109        unsafe extern "C" fn(
14110            graph: *const igraph_t,
14111            gnames: *mut igraph_strvector_t,
14112            gtypes: *mut igraph_vector_int_t,
14113            vnames: *mut igraph_strvector_t,
14114            vtypes: *mut igraph_vector_int_t,
14115            enames: *mut igraph_strvector_t,
14116            etypes: *mut igraph_vector_int_t,
14117        ) -> igraph_error_t,
14118    >,
14119    pub has_attr: ::std::option::Option<
14120        unsafe extern "C" fn(
14121            graph: *const igraph_t,
14122            type_: igraph_attribute_elemtype_t,
14123            name: *const ::std::os::raw::c_char,
14124        ) -> igraph_bool_t,
14125    >,
14126    pub get_type: ::std::option::Option<
14127        unsafe extern "C" fn(
14128            graph: *const igraph_t,
14129            type_: *mut igraph_attribute_type_t,
14130            elemtype: igraph_attribute_elemtype_t,
14131            name: *const ::std::os::raw::c_char,
14132        ) -> igraph_error_t,
14133    >,
14134    pub get_numeric_graph_attr: ::std::option::Option<
14135        unsafe extern "C" fn(
14136            graph: *const igraph_t,
14137            name: *const ::std::os::raw::c_char,
14138            value: *mut igraph_vector_t,
14139        ) -> igraph_error_t,
14140    >,
14141    pub get_string_graph_attr: ::std::option::Option<
14142        unsafe extern "C" fn(
14143            graph: *const igraph_t,
14144            name: *const ::std::os::raw::c_char,
14145            value: *mut igraph_strvector_t,
14146        ) -> igraph_error_t,
14147    >,
14148    pub get_bool_graph_attr: ::std::option::Option<
14149        unsafe extern "C" fn(
14150            igraph: *const igraph_t,
14151            name: *const ::std::os::raw::c_char,
14152            value: *mut igraph_vector_bool_t,
14153        ) -> igraph_error_t,
14154    >,
14155    pub get_numeric_vertex_attr: ::std::option::Option<
14156        unsafe extern "C" fn(
14157            graph: *const igraph_t,
14158            name: *const ::std::os::raw::c_char,
14159            vs: igraph_vs_t,
14160            value: *mut igraph_vector_t,
14161        ) -> igraph_error_t,
14162    >,
14163    pub get_string_vertex_attr: ::std::option::Option<
14164        unsafe extern "C" fn(
14165            graph: *const igraph_t,
14166            name: *const ::std::os::raw::c_char,
14167            vs: igraph_vs_t,
14168            value: *mut igraph_strvector_t,
14169        ) -> igraph_error_t,
14170    >,
14171    pub get_bool_vertex_attr: ::std::option::Option<
14172        unsafe extern "C" fn(
14173            graph: *const igraph_t,
14174            name: *const ::std::os::raw::c_char,
14175            vs: igraph_vs_t,
14176            value: *mut igraph_vector_bool_t,
14177        ) -> igraph_error_t,
14178    >,
14179    pub get_numeric_edge_attr: ::std::option::Option<
14180        unsafe extern "C" fn(
14181            graph: *const igraph_t,
14182            name: *const ::std::os::raw::c_char,
14183            es: igraph_es_t,
14184            value: *mut igraph_vector_t,
14185        ) -> igraph_error_t,
14186    >,
14187    pub get_string_edge_attr: ::std::option::Option<
14188        unsafe extern "C" fn(
14189            graph: *const igraph_t,
14190            name: *const ::std::os::raw::c_char,
14191            es: igraph_es_t,
14192            value: *mut igraph_strvector_t,
14193        ) -> igraph_error_t,
14194    >,
14195    pub get_bool_edge_attr: ::std::option::Option<
14196        unsafe extern "C" fn(
14197            graph: *const igraph_t,
14198            name: *const ::std::os::raw::c_char,
14199            es: igraph_es_t,
14200            value: *mut igraph_vector_bool_t,
14201        ) -> igraph_error_t,
14202    >,
14203}
14204#[allow(clippy::unnecessary_operation, clippy::identity_op)]
14205const _: () = {
14206    ["Size of igraph_attribute_table_t"]
14207        [::std::mem::size_of::<igraph_attribute_table_t>() - 168usize];
14208    ["Alignment of igraph_attribute_table_t"]
14209        [::std::mem::align_of::<igraph_attribute_table_t>() - 8usize];
14210    ["Offset of field: igraph_attribute_table_t::init"]
14211        [::std::mem::offset_of!(igraph_attribute_table_t, init) - 0usize];
14212    ["Offset of field: igraph_attribute_table_t::destroy"]
14213        [::std::mem::offset_of!(igraph_attribute_table_t, destroy) - 8usize];
14214    ["Offset of field: igraph_attribute_table_t::copy"]
14215        [::std::mem::offset_of!(igraph_attribute_table_t, copy) - 16usize];
14216    ["Offset of field: igraph_attribute_table_t::add_vertices"]
14217        [::std::mem::offset_of!(igraph_attribute_table_t, add_vertices) - 24usize];
14218    ["Offset of field: igraph_attribute_table_t::permute_vertices"]
14219        [::std::mem::offset_of!(igraph_attribute_table_t, permute_vertices) - 32usize];
14220    ["Offset of field: igraph_attribute_table_t::combine_vertices"]
14221        [::std::mem::offset_of!(igraph_attribute_table_t, combine_vertices) - 40usize];
14222    ["Offset of field: igraph_attribute_table_t::add_edges"]
14223        [::std::mem::offset_of!(igraph_attribute_table_t, add_edges) - 48usize];
14224    ["Offset of field: igraph_attribute_table_t::permute_edges"]
14225        [::std::mem::offset_of!(igraph_attribute_table_t, permute_edges) - 56usize];
14226    ["Offset of field: igraph_attribute_table_t::combine_edges"]
14227        [::std::mem::offset_of!(igraph_attribute_table_t, combine_edges) - 64usize];
14228    ["Offset of field: igraph_attribute_table_t::get_info"]
14229        [::std::mem::offset_of!(igraph_attribute_table_t, get_info) - 72usize];
14230    ["Offset of field: igraph_attribute_table_t::has_attr"]
14231        [::std::mem::offset_of!(igraph_attribute_table_t, has_attr) - 80usize];
14232    ["Offset of field: igraph_attribute_table_t::get_type"]
14233        [::std::mem::offset_of!(igraph_attribute_table_t, get_type) - 88usize];
14234    ["Offset of field: igraph_attribute_table_t::get_numeric_graph_attr"]
14235        [::std::mem::offset_of!(igraph_attribute_table_t, get_numeric_graph_attr) - 96usize];
14236    ["Offset of field: igraph_attribute_table_t::get_string_graph_attr"]
14237        [::std::mem::offset_of!(igraph_attribute_table_t, get_string_graph_attr) - 104usize];
14238    ["Offset of field: igraph_attribute_table_t::get_bool_graph_attr"]
14239        [::std::mem::offset_of!(igraph_attribute_table_t, get_bool_graph_attr) - 112usize];
14240    ["Offset of field: igraph_attribute_table_t::get_numeric_vertex_attr"]
14241        [::std::mem::offset_of!(igraph_attribute_table_t, get_numeric_vertex_attr) - 120usize];
14242    ["Offset of field: igraph_attribute_table_t::get_string_vertex_attr"]
14243        [::std::mem::offset_of!(igraph_attribute_table_t, get_string_vertex_attr) - 128usize];
14244    ["Offset of field: igraph_attribute_table_t::get_bool_vertex_attr"]
14245        [::std::mem::offset_of!(igraph_attribute_table_t, get_bool_vertex_attr) - 136usize];
14246    ["Offset of field: igraph_attribute_table_t::get_numeric_edge_attr"]
14247        [::std::mem::offset_of!(igraph_attribute_table_t, get_numeric_edge_attr) - 144usize];
14248    ["Offset of field: igraph_attribute_table_t::get_string_edge_attr"]
14249        [::std::mem::offset_of!(igraph_attribute_table_t, get_string_edge_attr) - 152usize];
14250    ["Offset of field: igraph_attribute_table_t::get_bool_edge_attr"]
14251        [::std::mem::offset_of!(igraph_attribute_table_t, get_bool_edge_attr) - 160usize];
14252};
14253unsafe extern "C" {
14254    pub fn igraph_set_attribute_table(
14255        table: *const igraph_attribute_table_t,
14256    ) -> *mut igraph_attribute_table_t;
14257}
14258unsafe extern "C" {
14259    pub fn igraph_has_attribute_table() -> igraph_bool_t;
14260}
14261unsafe extern "C" {
14262    pub static igraph_cattribute_table: igraph_attribute_table_t;
14263}
14264unsafe extern "C" {
14265    pub fn igraph_cattribute_GAN(
14266        graph: *const igraph_t,
14267        name: *const ::std::os::raw::c_char,
14268    ) -> igraph_real_t;
14269}
14270unsafe extern "C" {
14271    pub fn igraph_cattribute_GAB(
14272        graph: *const igraph_t,
14273        name: *const ::std::os::raw::c_char,
14274    ) -> igraph_bool_t;
14275}
14276unsafe extern "C" {
14277    pub fn igraph_cattribute_GAS(
14278        graph: *const igraph_t,
14279        name: *const ::std::os::raw::c_char,
14280    ) -> *const ::std::os::raw::c_char;
14281}
14282unsafe extern "C" {
14283    pub fn igraph_cattribute_VAN(
14284        graph: *const igraph_t,
14285        name: *const ::std::os::raw::c_char,
14286        vid: igraph_int_t,
14287    ) -> igraph_real_t;
14288}
14289unsafe extern "C" {
14290    pub fn igraph_cattribute_VAB(
14291        graph: *const igraph_t,
14292        name: *const ::std::os::raw::c_char,
14293        vid: igraph_int_t,
14294    ) -> igraph_bool_t;
14295}
14296unsafe extern "C" {
14297    pub fn igraph_cattribute_VAS(
14298        graph: *const igraph_t,
14299        name: *const ::std::os::raw::c_char,
14300        vid: igraph_int_t,
14301    ) -> *const ::std::os::raw::c_char;
14302}
14303unsafe extern "C" {
14304    pub fn igraph_cattribute_EAN(
14305        graph: *const igraph_t,
14306        name: *const ::std::os::raw::c_char,
14307        eid: igraph_int_t,
14308    ) -> igraph_real_t;
14309}
14310unsafe extern "C" {
14311    pub fn igraph_cattribute_EAB(
14312        graph: *const igraph_t,
14313        name: *const ::std::os::raw::c_char,
14314        eid: igraph_int_t,
14315    ) -> igraph_bool_t;
14316}
14317unsafe extern "C" {
14318    pub fn igraph_cattribute_EAS(
14319        graph: *const igraph_t,
14320        name: *const ::std::os::raw::c_char,
14321        eid: igraph_int_t,
14322    ) -> *const ::std::os::raw::c_char;
14323}
14324unsafe extern "C" {
14325    pub fn igraph_cattribute_VANV(
14326        graph: *const igraph_t,
14327        name: *const ::std::os::raw::c_char,
14328        vids: igraph_vs_t,
14329        result: *mut igraph_vector_t,
14330    ) -> igraph_error_t;
14331}
14332unsafe extern "C" {
14333    pub fn igraph_cattribute_EANV(
14334        graph: *const igraph_t,
14335        name: *const ::std::os::raw::c_char,
14336        eids: igraph_es_t,
14337        result: *mut igraph_vector_t,
14338    ) -> igraph_error_t;
14339}
14340unsafe extern "C" {
14341    pub fn igraph_cattribute_VASV(
14342        graph: *const igraph_t,
14343        name: *const ::std::os::raw::c_char,
14344        vids: igraph_vs_t,
14345        result: *mut igraph_strvector_t,
14346    ) -> igraph_error_t;
14347}
14348unsafe extern "C" {
14349    pub fn igraph_cattribute_EASV(
14350        graph: *const igraph_t,
14351        name: *const ::std::os::raw::c_char,
14352        eids: igraph_es_t,
14353        result: *mut igraph_strvector_t,
14354    ) -> igraph_error_t;
14355}
14356unsafe extern "C" {
14357    pub fn igraph_cattribute_VABV(
14358        graph: *const igraph_t,
14359        name: *const ::std::os::raw::c_char,
14360        vids: igraph_vs_t,
14361        result: *mut igraph_vector_bool_t,
14362    ) -> igraph_error_t;
14363}
14364unsafe extern "C" {
14365    pub fn igraph_cattribute_EABV(
14366        graph: *const igraph_t,
14367        name: *const ::std::os::raw::c_char,
14368        eids: igraph_es_t,
14369        result: *mut igraph_vector_bool_t,
14370    ) -> igraph_error_t;
14371}
14372unsafe extern "C" {
14373    pub fn igraph_cattribute_list(
14374        graph: *const igraph_t,
14375        gnames: *mut igraph_strvector_t,
14376        gtypes: *mut igraph_vector_int_t,
14377        vnames: *mut igraph_strvector_t,
14378        vtypes: *mut igraph_vector_int_t,
14379        enames: *mut igraph_strvector_t,
14380        etypes: *mut igraph_vector_int_t,
14381    ) -> igraph_error_t;
14382}
14383unsafe extern "C" {
14384    pub fn igraph_cattribute_has_attr(
14385        graph: *const igraph_t,
14386        type_: igraph_attribute_elemtype_t,
14387        name: *const ::std::os::raw::c_char,
14388    ) -> igraph_bool_t;
14389}
14390unsafe extern "C" {
14391    pub fn igraph_cattribute_GAN_set(
14392        graph: *mut igraph_t,
14393        name: *const ::std::os::raw::c_char,
14394        value: igraph_real_t,
14395    ) -> igraph_error_t;
14396}
14397unsafe extern "C" {
14398    pub fn igraph_cattribute_GAB_set(
14399        graph: *mut igraph_t,
14400        name: *const ::std::os::raw::c_char,
14401        value: igraph_bool_t,
14402    ) -> igraph_error_t;
14403}
14404unsafe extern "C" {
14405    pub fn igraph_cattribute_GAS_set(
14406        graph: *mut igraph_t,
14407        name: *const ::std::os::raw::c_char,
14408        value: *const ::std::os::raw::c_char,
14409    ) -> igraph_error_t;
14410}
14411unsafe extern "C" {
14412    pub fn igraph_cattribute_VAN_set(
14413        graph: *mut igraph_t,
14414        name: *const ::std::os::raw::c_char,
14415        vid: igraph_int_t,
14416        value: igraph_real_t,
14417    ) -> igraph_error_t;
14418}
14419unsafe extern "C" {
14420    pub fn igraph_cattribute_VAB_set(
14421        graph: *mut igraph_t,
14422        name: *const ::std::os::raw::c_char,
14423        vid: igraph_int_t,
14424        value: igraph_bool_t,
14425    ) -> igraph_error_t;
14426}
14427unsafe extern "C" {
14428    pub fn igraph_cattribute_VAS_set(
14429        graph: *mut igraph_t,
14430        name: *const ::std::os::raw::c_char,
14431        vid: igraph_int_t,
14432        value: *const ::std::os::raw::c_char,
14433    ) -> igraph_error_t;
14434}
14435unsafe extern "C" {
14436    pub fn igraph_cattribute_EAN_set(
14437        graph: *mut igraph_t,
14438        name: *const ::std::os::raw::c_char,
14439        eid: igraph_int_t,
14440        value: igraph_real_t,
14441    ) -> igraph_error_t;
14442}
14443unsafe extern "C" {
14444    pub fn igraph_cattribute_EAB_set(
14445        graph: *mut igraph_t,
14446        name: *const ::std::os::raw::c_char,
14447        eid: igraph_int_t,
14448        value: igraph_bool_t,
14449    ) -> igraph_error_t;
14450}
14451unsafe extern "C" {
14452    pub fn igraph_cattribute_EAS_set(
14453        graph: *mut igraph_t,
14454        name: *const ::std::os::raw::c_char,
14455        eid: igraph_int_t,
14456        value: *const ::std::os::raw::c_char,
14457    ) -> igraph_error_t;
14458}
14459unsafe extern "C" {
14460    pub fn igraph_cattribute_VAN_setv(
14461        graph: *mut igraph_t,
14462        name: *const ::std::os::raw::c_char,
14463        v: *const igraph_vector_t,
14464    ) -> igraph_error_t;
14465}
14466unsafe extern "C" {
14467    pub fn igraph_cattribute_VAB_setv(
14468        graph: *mut igraph_t,
14469        name: *const ::std::os::raw::c_char,
14470        v: *const igraph_vector_bool_t,
14471    ) -> igraph_error_t;
14472}
14473unsafe extern "C" {
14474    pub fn igraph_cattribute_VAS_setv(
14475        graph: *mut igraph_t,
14476        name: *const ::std::os::raw::c_char,
14477        sv: *const igraph_strvector_t,
14478    ) -> igraph_error_t;
14479}
14480unsafe extern "C" {
14481    pub fn igraph_cattribute_EAN_setv(
14482        graph: *mut igraph_t,
14483        name: *const ::std::os::raw::c_char,
14484        v: *const igraph_vector_t,
14485    ) -> igraph_error_t;
14486}
14487unsafe extern "C" {
14488    pub fn igraph_cattribute_EAB_setv(
14489        graph: *mut igraph_t,
14490        name: *const ::std::os::raw::c_char,
14491        v: *const igraph_vector_bool_t,
14492    ) -> igraph_error_t;
14493}
14494unsafe extern "C" {
14495    pub fn igraph_cattribute_EAS_setv(
14496        graph: *mut igraph_t,
14497        name: *const ::std::os::raw::c_char,
14498        sv: *const igraph_strvector_t,
14499    ) -> igraph_error_t;
14500}
14501unsafe extern "C" {
14502    pub fn igraph_cattribute_remove_g(graph: *mut igraph_t, name: *const ::std::os::raw::c_char);
14503}
14504unsafe extern "C" {
14505    pub fn igraph_cattribute_remove_v(graph: *mut igraph_t, name: *const ::std::os::raw::c_char);
14506}
14507unsafe extern "C" {
14508    pub fn igraph_cattribute_remove_e(graph: *mut igraph_t, name: *const ::std::os::raw::c_char);
14509}
14510unsafe extern "C" {
14511    pub fn igraph_cattribute_remove_all(
14512        graph: *mut igraph_t,
14513        g: igraph_bool_t,
14514        v: igraph_bool_t,
14515        e: igraph_bool_t,
14516    );
14517}
14518unsafe extern "C" {
14519    pub fn igraph_empty(
14520        graph: *mut igraph_t,
14521        n: igraph_int_t,
14522        directed: igraph_bool_t,
14523    ) -> igraph_error_t;
14524}
14525unsafe extern "C" {
14526    pub fn igraph_empty_attrs(
14527        graph: *mut igraph_t,
14528        n: igraph_int_t,
14529        directed: igraph_bool_t,
14530        attr: *const igraph_attribute_record_list_t,
14531    ) -> igraph_error_t;
14532}
14533unsafe extern "C" {
14534    pub fn igraph_destroy(graph: *mut igraph_t);
14535}
14536unsafe extern "C" {
14537    pub fn igraph_copy(to: *mut igraph_t, from: *const igraph_t) -> igraph_error_t;
14538}
14539unsafe extern "C" {
14540    pub fn igraph_add_edges(
14541        graph: *mut igraph_t,
14542        edges: *const igraph_vector_int_t,
14543        attr: *const igraph_attribute_record_list_t,
14544    ) -> igraph_error_t;
14545}
14546unsafe extern "C" {
14547    pub fn igraph_add_vertices(
14548        graph: *mut igraph_t,
14549        nv: igraph_int_t,
14550        attr: *const igraph_attribute_record_list_t,
14551    ) -> igraph_error_t;
14552}
14553unsafe extern "C" {
14554    pub fn igraph_delete_edges(graph: *mut igraph_t, edges: igraph_es_t) -> igraph_error_t;
14555}
14556unsafe extern "C" {
14557    pub fn igraph_delete_vertices(graph: *mut igraph_t, vertices: igraph_vs_t) -> igraph_error_t;
14558}
14559unsafe extern "C" {
14560    pub fn igraph_delete_vertices_map(
14561        graph: *mut igraph_t,
14562        vertices: igraph_vs_t,
14563        map: *mut igraph_vector_int_t,
14564        invmap: *mut igraph_vector_int_t,
14565    ) -> igraph_error_t;
14566}
14567unsafe extern "C" {
14568    pub fn igraph_vcount(graph: *const igraph_t) -> igraph_int_t;
14569}
14570unsafe extern "C" {
14571    pub fn igraph_ecount(graph: *const igraph_t) -> igraph_int_t;
14572}
14573unsafe extern "C" {
14574    pub fn igraph_neighbors(
14575        graph: *const igraph_t,
14576        neis: *mut igraph_vector_int_t,
14577        vid: igraph_int_t,
14578        mode: igraph_neimode_t,
14579        loops: igraph_loops_t,
14580        multiple: igraph_bool_t,
14581    ) -> igraph_error_t;
14582}
14583unsafe extern "C" {
14584    pub fn igraph_is_directed(graph: *const igraph_t) -> igraph_bool_t;
14585}
14586unsafe extern "C" {
14587    pub fn igraph_degree_1(
14588        graph: *const igraph_t,
14589        deg: *mut igraph_int_t,
14590        vid: igraph_int_t,
14591        mode: igraph_neimode_t,
14592        loops: igraph_loops_t,
14593    ) -> igraph_error_t;
14594}
14595unsafe extern "C" {
14596    pub fn igraph_degree(
14597        graph: *const igraph_t,
14598        res: *mut igraph_vector_int_t,
14599        vids: igraph_vs_t,
14600        mode: igraph_neimode_t,
14601        loops: igraph_loops_t,
14602    ) -> igraph_error_t;
14603}
14604unsafe extern "C" {
14605    pub fn igraph_edge(
14606        graph: *const igraph_t,
14607        eid: igraph_int_t,
14608        from: *mut igraph_int_t,
14609        to: *mut igraph_int_t,
14610    ) -> igraph_error_t;
14611}
14612unsafe extern "C" {
14613    pub fn igraph_edges(
14614        graph: *const igraph_t,
14615        eids: igraph_es_t,
14616        edges: *mut igraph_vector_int_t,
14617        bycol: igraph_bool_t,
14618    ) -> igraph_error_t;
14619}
14620unsafe extern "C" {
14621    pub fn igraph_get_eid(
14622        graph: *const igraph_t,
14623        eid: *mut igraph_int_t,
14624        from: igraph_int_t,
14625        to: igraph_int_t,
14626        directed: igraph_bool_t,
14627        error: igraph_bool_t,
14628    ) -> igraph_error_t;
14629}
14630unsafe extern "C" {
14631    pub fn igraph_get_eids(
14632        graph: *const igraph_t,
14633        eids: *mut igraph_vector_int_t,
14634        pairs: *const igraph_vector_int_t,
14635        directed: igraph_bool_t,
14636        error: igraph_bool_t,
14637    ) -> igraph_error_t;
14638}
14639unsafe extern "C" {
14640    pub fn igraph_get_all_eids_between(
14641        graph: *const igraph_t,
14642        eids: *mut igraph_vector_int_t,
14643        source: igraph_int_t,
14644        target: igraph_int_t,
14645        directed: igraph_bool_t,
14646    ) -> igraph_error_t;
14647}
14648unsafe extern "C" {
14649    pub fn igraph_incident(
14650        graph: *const igraph_t,
14651        eids: *mut igraph_vector_int_t,
14652        pnode: igraph_int_t,
14653        mode: igraph_neimode_t,
14654        loops: igraph_loops_t,
14655    ) -> igraph_error_t;
14656}
14657unsafe extern "C" {
14658    pub fn igraph_is_same_graph(
14659        graph1: *const igraph_t,
14660        graph2: *const igraph_t,
14661        res: *mut igraph_bool_t,
14662    ) -> igraph_error_t;
14663}
14664unsafe extern "C" {
14665    pub fn igraph_i_property_cache_get_bool(
14666        graph: *const igraph_t,
14667        prop: igraph_cached_property_t,
14668    ) -> igraph_bool_t;
14669}
14670unsafe extern "C" {
14671    pub fn igraph_i_property_cache_has(
14672        graph: *const igraph_t,
14673        prop: igraph_cached_property_t,
14674    ) -> igraph_bool_t;
14675}
14676unsafe extern "C" {
14677    pub fn igraph_i_property_cache_set_bool(
14678        graph: *const igraph_t,
14679        prop: igraph_cached_property_t,
14680        value: igraph_bool_t,
14681    );
14682}
14683unsafe extern "C" {
14684    pub fn igraph_i_property_cache_set_bool_checked(
14685        graph: *const igraph_t,
14686        prop: igraph_cached_property_t,
14687        value: igraph_bool_t,
14688    );
14689}
14690unsafe extern "C" {
14691    pub fn igraph_i_property_cache_invalidate(
14692        graph: *const igraph_t,
14693        prop: igraph_cached_property_t,
14694    );
14695}
14696unsafe extern "C" {
14697    pub fn igraph_i_property_cache_invalidate_all(graph: *const igraph_t);
14698}
14699unsafe extern "C" {
14700    pub fn igraph_delete_vertices_idx(
14701        graph: *mut igraph_t,
14702        vertices: igraph_vs_t,
14703        idx: *mut igraph_vector_int_t,
14704        invidx: *mut igraph_vector_int_t,
14705    ) -> igraph_error_t;
14706}
14707#[doc = " \\typedef igraph_edge_type_sw_t\n \\brief What types of non-simple edges to allow?\n\n This type is used with multiple functions to specify what types of non-simple\n edges to allow, create or consider a graph. The constants below are treated\n as \"switches\" that can be turned on individually and combined using the\n bitwise-or operator. For example,\n <code>IGRAPH_LOOPS_SW</code>\n allows only self-loops but not multi-edges, while\n <code>IGRAPH_LOOPS_SW | IGRAPH_MULTI_SW</code>\n allows both.\n\n \\enumval IGRAPH_SIMPLE_SW A shorthand for simple graphs only, which is the default\n    assumption.\n \\enumval IGRAPH_LOOPS_SW Allow or consider self-loops.\n \\enumval IGRAPH_MULTI_SW Allow or consider multi-edges."]
14708pub type igraph_edge_type_sw_t = ::std::os::raw::c_uint;
14709pub const IGRAPH_SIMPLE_SW: _bindgen_ty_4 = 0;
14710pub const IGRAPH_LOOPS_SW: _bindgen_ty_4 = 1;
14711pub const IGRAPH_MULTI_SW: _bindgen_ty_4 = 6;
14712pub type _bindgen_ty_4 = ::std::os::raw::c_uint;
14713unsafe extern "C" {
14714    pub fn igraph_is_graphical(
14715        out_degrees: *const igraph_vector_int_t,
14716        in_degrees: *const igraph_vector_int_t,
14717        allowed_edge_types: igraph_edge_type_sw_t,
14718        res: *mut igraph_bool_t,
14719    ) -> igraph_error_t;
14720}
14721unsafe extern "C" {
14722    pub fn igraph_is_bigraphical(
14723        degrees1: *const igraph_vector_int_t,
14724        degrees2: *const igraph_vector_int_t,
14725        allowed_edge_types: igraph_edge_type_sw_t,
14726        res: *mut igraph_bool_t,
14727    ) -> igraph_error_t;
14728}
14729unsafe extern "C" {
14730    pub fn igraph_create(
14731        graph: *mut igraph_t,
14732        edges: *const igraph_vector_int_t,
14733        n: igraph_int_t,
14734        directed: igraph_bool_t,
14735    ) -> igraph_error_t;
14736}
14737unsafe extern "C" {
14738    pub fn igraph_small(
14739        graph: *mut igraph_t,
14740        n: igraph_int_t,
14741        directed: igraph_bool_t,
14742        first: ::std::os::raw::c_int,
14743        ...
14744    ) -> igraph_error_t;
14745}
14746unsafe extern "C" {
14747    pub fn igraph_adjacency(
14748        graph: *mut igraph_t,
14749        adjmatrix: *const igraph_matrix_t,
14750        mode: igraph_adjacency_t,
14751        loops: igraph_loops_t,
14752    ) -> igraph_error_t;
14753}
14754unsafe extern "C" {
14755    pub fn igraph_weighted_adjacency(
14756        graph: *mut igraph_t,
14757        adjmatrix: *const igraph_matrix_t,
14758        mode: igraph_adjacency_t,
14759        weights: *mut igraph_vector_t,
14760        loops: igraph_loops_t,
14761    ) -> igraph_error_t;
14762}
14763unsafe extern "C" {
14764    pub fn igraph_sparse_adjacency(
14765        graph: *mut igraph_t,
14766        adjmatrix: *mut igraph_sparsemat_t,
14767        mode: igraph_adjacency_t,
14768        loops: igraph_loops_t,
14769    ) -> igraph_error_t;
14770}
14771unsafe extern "C" {
14772    pub fn igraph_sparse_weighted_adjacency(
14773        graph: *mut igraph_t,
14774        adjmatrix: *mut igraph_sparsemat_t,
14775        mode: igraph_adjacency_t,
14776        weights: *mut igraph_vector_t,
14777        loops: igraph_loops_t,
14778    ) -> igraph_error_t;
14779}
14780unsafe extern "C" {
14781    pub fn igraph_star(
14782        graph: *mut igraph_t,
14783        n: igraph_int_t,
14784        mode: igraph_star_mode_t,
14785        center: igraph_int_t,
14786    ) -> igraph_error_t;
14787}
14788unsafe extern "C" {
14789    pub fn igraph_wheel(
14790        graph: *mut igraph_t,
14791        n: igraph_int_t,
14792        mode: igraph_wheel_mode_t,
14793        center: igraph_int_t,
14794    ) -> igraph_error_t;
14795}
14796unsafe extern "C" {
14797    pub fn igraph_hypercube(
14798        graph: *mut igraph_t,
14799        n: igraph_int_t,
14800        directed: igraph_bool_t,
14801    ) -> igraph_error_t;
14802}
14803unsafe extern "C" {
14804    pub fn igraph_square_lattice(
14805        graph: *mut igraph_t,
14806        dimvector: *const igraph_vector_int_t,
14807        nei: igraph_int_t,
14808        directed: igraph_bool_t,
14809        mutual: igraph_bool_t,
14810        circular: *const igraph_vector_bool_t,
14811    ) -> igraph_error_t;
14812}
14813unsafe extern "C" {
14814    pub fn igraph_ring(
14815        graph: *mut igraph_t,
14816        n: igraph_int_t,
14817        directed: igraph_bool_t,
14818        mutual: igraph_bool_t,
14819        circular: igraph_bool_t,
14820    ) -> igraph_error_t;
14821}
14822unsafe extern "C" {
14823    pub fn igraph_path_graph(
14824        graph: *mut igraph_t,
14825        n: igraph_int_t,
14826        directed: igraph_bool_t,
14827        mutual: igraph_bool_t,
14828    ) -> igraph_error_t;
14829}
14830unsafe extern "C" {
14831    pub fn igraph_cycle_graph(
14832        graph: *mut igraph_t,
14833        n: igraph_int_t,
14834        directed: igraph_bool_t,
14835        mutual: igraph_bool_t,
14836    ) -> igraph_error_t;
14837}
14838unsafe extern "C" {
14839    pub fn igraph_kary_tree(
14840        graph: *mut igraph_t,
14841        n: igraph_int_t,
14842        children: igraph_int_t,
14843        type_: igraph_tree_mode_t,
14844    ) -> igraph_error_t;
14845}
14846unsafe extern "C" {
14847    pub fn igraph_symmetric_tree(
14848        graph: *mut igraph_t,
14849        branches: *const igraph_vector_int_t,
14850        type_: igraph_tree_mode_t,
14851    ) -> igraph_error_t;
14852}
14853unsafe extern "C" {
14854    pub fn igraph_regular_tree(
14855        graph: *mut igraph_t,
14856        h: igraph_int_t,
14857        k: igraph_int_t,
14858        type_: igraph_tree_mode_t,
14859    ) -> igraph_error_t;
14860}
14861unsafe extern "C" {
14862    pub fn igraph_tree_from_parent_vector(
14863        graph: *mut igraph_t,
14864        parents: *const igraph_vector_int_t,
14865        mode: igraph_tree_mode_t,
14866    ) -> igraph_error_t;
14867}
14868unsafe extern "C" {
14869    pub fn igraph_from_prufer(
14870        graph: *mut igraph_t,
14871        prufer: *const igraph_vector_int_t,
14872    ) -> igraph_error_t;
14873}
14874unsafe extern "C" {
14875    pub fn igraph_full(
14876        graph: *mut igraph_t,
14877        n: igraph_int_t,
14878        directed: igraph_bool_t,
14879        loops: igraph_bool_t,
14880    ) -> igraph_error_t;
14881}
14882unsafe extern "C" {
14883    pub fn igraph_full_multipartite(
14884        graph: *mut igraph_t,
14885        types: *mut igraph_vector_int_t,
14886        n: *const igraph_vector_int_t,
14887        directed: igraph_bool_t,
14888        mode: igraph_neimode_t,
14889    ) -> igraph_error_t;
14890}
14891unsafe extern "C" {
14892    pub fn igraph_turan(
14893        graph: *mut igraph_t,
14894        types: *mut igraph_vector_int_t,
14895        n: igraph_int_t,
14896        r: igraph_int_t,
14897    ) -> igraph_error_t;
14898}
14899unsafe extern "C" {
14900    pub fn igraph_full_citation(
14901        graph: *mut igraph_t,
14902        n: igraph_int_t,
14903        directed: igraph_bool_t,
14904    ) -> igraph_error_t;
14905}
14906unsafe extern "C" {
14907    pub fn igraph_atlas(graph: *mut igraph_t, number: igraph_int_t) -> igraph_error_t;
14908}
14909unsafe extern "C" {
14910    pub fn igraph_extended_chordal_ring(
14911        graph: *mut igraph_t,
14912        nodes: igraph_int_t,
14913        W: *const igraph_matrix_int_t,
14914        directed: igraph_bool_t,
14915    ) -> igraph_error_t;
14916}
14917unsafe extern "C" {
14918    pub fn igraph_linegraph(graph: *const igraph_t, linegraph: *mut igraph_t) -> igraph_error_t;
14919}
14920unsafe extern "C" {
14921    pub fn igraph_de_bruijn(
14922        graph: *mut igraph_t,
14923        m: igraph_int_t,
14924        n: igraph_int_t,
14925    ) -> igraph_error_t;
14926}
14927unsafe extern "C" {
14928    pub fn igraph_circulant(
14929        graph: *mut igraph_t,
14930        n: igraph_int_t,
14931        l: *const igraph_vector_int_t,
14932        directed: igraph_bool_t,
14933    ) -> igraph_error_t;
14934}
14935unsafe extern "C" {
14936    pub fn igraph_generalized_petersen(
14937        graph: *mut igraph_t,
14938        n: igraph_int_t,
14939        k: igraph_int_t,
14940    ) -> igraph_error_t;
14941}
14942unsafe extern "C" {
14943    pub fn igraph_kautz(graph: *mut igraph_t, m: igraph_int_t, n: igraph_int_t) -> igraph_error_t;
14944}
14945unsafe extern "C" {
14946    pub fn igraph_famous(
14947        graph: *mut igraph_t,
14948        name: *const ::std::os::raw::c_char,
14949    ) -> igraph_error_t;
14950}
14951unsafe extern "C" {
14952    pub fn igraph_lcf(
14953        graph: *mut igraph_t,
14954        n: igraph_int_t,
14955        shifts: *const igraph_vector_int_t,
14956        repeats: igraph_int_t,
14957    ) -> igraph_error_t;
14958}
14959unsafe extern "C" {
14960    pub fn igraph_lcf_small(graph: *mut igraph_t, n: igraph_int_t, ...) -> igraph_error_t;
14961}
14962unsafe extern "C" {
14963    pub fn igraph_realize_degree_sequence(
14964        graph: *mut igraph_t,
14965        outdeg: *const igraph_vector_int_t,
14966        indeg: *const igraph_vector_int_t,
14967        allowed_edge_types: igraph_edge_type_sw_t,
14968        method: igraph_realize_degseq_t,
14969    ) -> igraph_error_t;
14970}
14971unsafe extern "C" {
14972    pub fn igraph_triangular_lattice(
14973        graph: *mut igraph_t,
14974        dims: *const igraph_vector_int_t,
14975        directed: igraph_bool_t,
14976        mutual: igraph_bool_t,
14977    ) -> igraph_error_t;
14978}
14979unsafe extern "C" {
14980    pub fn igraph_hexagonal_lattice(
14981        graph: *mut igraph_t,
14982        dims: *const igraph_vector_int_t,
14983        directed: igraph_bool_t,
14984        mutual: igraph_bool_t,
14985    ) -> igraph_error_t;
14986}
14987unsafe extern "C" {
14988    pub fn igraph_realize_bipartite_degree_sequence(
14989        graph: *mut igraph_t,
14990        deg1: *const igraph_vector_int_t,
14991        deg2: *const igraph_vector_int_t,
14992        allowed_edge_types: igraph_edge_type_sw_t,
14993        method: igraph_realize_degseq_t,
14994    ) -> igraph_error_t;
14995}
14996unsafe extern "C" {
14997    pub fn igraph_mycielski_graph(graph: *mut igraph_t, k: igraph_int_t) -> igraph_error_t;
14998}
14999#[doc = " Vector list, dealing with lists of typed vectors efficiently.\n \\ingroup types"]
15000#[repr(C)]
15001#[derive(Debug, Copy, Clone)]
15002pub struct igraph_matrix_list_t {
15003    pub stor_begin: *mut igraph_matrix_t,
15004    pub stor_end: *mut igraph_matrix_t,
15005    pub end: *mut igraph_matrix_t,
15006}
15007#[allow(clippy::unnecessary_operation, clippy::identity_op)]
15008const _: () = {
15009    ["Size of igraph_matrix_list_t"][::std::mem::size_of::<igraph_matrix_list_t>() - 24usize];
15010    ["Alignment of igraph_matrix_list_t"][::std::mem::align_of::<igraph_matrix_list_t>() - 8usize];
15011    ["Offset of field: igraph_matrix_list_t::stor_begin"]
15012        [::std::mem::offset_of!(igraph_matrix_list_t, stor_begin) - 0usize];
15013    ["Offset of field: igraph_matrix_list_t::stor_end"]
15014        [::std::mem::offset_of!(igraph_matrix_list_t, stor_end) - 8usize];
15015    ["Offset of field: igraph_matrix_list_t::end"]
15016        [::std::mem::offset_of!(igraph_matrix_list_t, end) - 16usize];
15017};
15018unsafe extern "C" {
15019    pub fn igraph_matrix_list_init(
15020        v: *mut igraph_matrix_list_t,
15021        size: igraph_int_t,
15022    ) -> igraph_error_t;
15023}
15024unsafe extern "C" {
15025    pub fn igraph_matrix_list_init_copy(
15026        to: *mut igraph_matrix_list_t,
15027        from: *const igraph_matrix_list_t,
15028    ) -> igraph_error_t;
15029}
15030unsafe extern "C" {
15031    pub fn igraph_matrix_list_destroy(v: *mut igraph_matrix_list_t);
15032}
15033unsafe extern "C" {
15034    pub fn igraph_matrix_list_get_ptr(
15035        v: *const igraph_matrix_list_t,
15036        pos: igraph_int_t,
15037    ) -> *mut igraph_matrix_t;
15038}
15039unsafe extern "C" {
15040    pub fn igraph_matrix_list_set(
15041        v: *mut igraph_matrix_list_t,
15042        pos: igraph_int_t,
15043        e: *mut igraph_matrix_t,
15044    );
15045}
15046unsafe extern "C" {
15047    pub fn igraph_matrix_list_tail_ptr(v: *const igraph_matrix_list_t) -> *mut igraph_matrix_t;
15048}
15049unsafe extern "C" {
15050    pub fn igraph_matrix_list_capacity(v: *const igraph_matrix_list_t) -> igraph_int_t;
15051}
15052unsafe extern "C" {
15053    pub fn igraph_matrix_list_empty(v: *const igraph_matrix_list_t) -> igraph_bool_t;
15054}
15055unsafe extern "C" {
15056    pub fn igraph_matrix_list_size(v: *const igraph_matrix_list_t) -> igraph_int_t;
15057}
15058unsafe extern "C" {
15059    pub fn igraph_matrix_list_clear(v: *mut igraph_matrix_list_t);
15060}
15061unsafe extern "C" {
15062    pub fn igraph_matrix_list_reserve(
15063        v: *mut igraph_matrix_list_t,
15064        capacity: igraph_int_t,
15065    ) -> igraph_error_t;
15066}
15067unsafe extern "C" {
15068    pub fn igraph_matrix_list_resize(
15069        v: *mut igraph_matrix_list_t,
15070        new_size: igraph_int_t,
15071    ) -> igraph_error_t;
15072}
15073unsafe extern "C" {
15074    pub fn igraph_matrix_list_discard(v: *mut igraph_matrix_list_t, index: igraph_int_t);
15075}
15076unsafe extern "C" {
15077    pub fn igraph_matrix_list_discard_back(v: *mut igraph_matrix_list_t);
15078}
15079unsafe extern "C" {
15080    pub fn igraph_matrix_list_discard_fast(v: *mut igraph_matrix_list_t, index: igraph_int_t);
15081}
15082unsafe extern "C" {
15083    pub fn igraph_matrix_list_insert(
15084        v: *mut igraph_matrix_list_t,
15085        pos: igraph_int_t,
15086        e: *mut igraph_matrix_t,
15087    ) -> igraph_error_t;
15088}
15089unsafe extern "C" {
15090    pub fn igraph_matrix_list_insert_copy(
15091        v: *mut igraph_matrix_list_t,
15092        pos: igraph_int_t,
15093        e: *const igraph_matrix_t,
15094    ) -> igraph_error_t;
15095}
15096unsafe extern "C" {
15097    pub fn igraph_matrix_list_insert_new(
15098        v: *mut igraph_matrix_list_t,
15099        pos: igraph_int_t,
15100        result: *mut *mut igraph_matrix_t,
15101    ) -> igraph_error_t;
15102}
15103unsafe extern "C" {
15104    pub fn igraph_matrix_list_push_back(
15105        v: *mut igraph_matrix_list_t,
15106        e: *mut igraph_matrix_t,
15107    ) -> igraph_error_t;
15108}
15109unsafe extern "C" {
15110    pub fn igraph_matrix_list_push_back_copy(
15111        v: *mut igraph_matrix_list_t,
15112        e: *const igraph_matrix_t,
15113    ) -> igraph_error_t;
15114}
15115unsafe extern "C" {
15116    pub fn igraph_matrix_list_push_back_new(
15117        v: *mut igraph_matrix_list_t,
15118        result: *mut *mut igraph_matrix_t,
15119    ) -> igraph_error_t;
15120}
15121unsafe extern "C" {
15122    pub fn igraph_matrix_list_pop_back(v: *mut igraph_matrix_list_t) -> igraph_matrix_t;
15123}
15124unsafe extern "C" {
15125    pub fn igraph_matrix_list_remove(
15126        v: *mut igraph_matrix_list_t,
15127        index: igraph_int_t,
15128        e: *mut igraph_matrix_t,
15129    ) -> igraph_error_t;
15130}
15131unsafe extern "C" {
15132    pub fn igraph_matrix_list_remove_fast(
15133        v: *mut igraph_matrix_list_t,
15134        index: igraph_int_t,
15135        e: *mut igraph_matrix_t,
15136    ) -> igraph_error_t;
15137}
15138unsafe extern "C" {
15139    pub fn igraph_matrix_list_replace(
15140        v: *mut igraph_matrix_list_t,
15141        pos: igraph_int_t,
15142        e: *mut igraph_matrix_t,
15143    );
15144}
15145unsafe extern "C" {
15146    pub fn igraph_matrix_list_remove_consecutive_duplicates(
15147        v: *mut igraph_matrix_list_t,
15148        eq: ::std::option::Option<
15149            unsafe extern "C" fn(
15150                arg1: *const igraph_matrix_t,
15151                arg2: *const igraph_matrix_t,
15152            ) -> igraph_bool_t,
15153        >,
15154    );
15155}
15156unsafe extern "C" {
15157    pub fn igraph_matrix_list_permute(
15158        v: *mut igraph_matrix_list_t,
15159        index: *const igraph_vector_int_t,
15160    ) -> igraph_error_t;
15161}
15162unsafe extern "C" {
15163    pub fn igraph_matrix_list_reverse(v: *mut igraph_matrix_list_t) -> igraph_error_t;
15164}
15165unsafe extern "C" {
15166    pub fn igraph_matrix_list_swap(v1: *mut igraph_matrix_list_t, v2: *mut igraph_matrix_list_t);
15167}
15168unsafe extern "C" {
15169    pub fn igraph_matrix_list_swap_elements(
15170        v: *mut igraph_matrix_list_t,
15171        i: igraph_int_t,
15172        j: igraph_int_t,
15173    );
15174}
15175unsafe extern "C" {
15176    pub fn igraph_matrix_list_sort(
15177        v: *mut igraph_matrix_list_t,
15178        cmp: ::std::option::Option<
15179            unsafe extern "C" fn(
15180                arg1: *const igraph_matrix_t,
15181                arg2: *const igraph_matrix_t,
15182            ) -> ::std::os::raw::c_int,
15183        >,
15184    );
15185}
15186unsafe extern "C" {
15187    pub fn igraph_matrix_list_sort_ind(
15188        v: *mut igraph_matrix_list_t,
15189        ind: *mut igraph_vector_int_t,
15190        cmp: ::std::option::Option<
15191            unsafe extern "C" fn(
15192                arg1: *const igraph_matrix_t,
15193                arg2: *const igraph_matrix_t,
15194            ) -> ::std::os::raw::c_int,
15195        >,
15196    ) -> igraph_error_t;
15197}
15198unsafe extern "C" {
15199    pub fn igraph_barabasi_game(
15200        graph: *mut igraph_t,
15201        n: igraph_int_t,
15202        power: igraph_real_t,
15203        m: igraph_int_t,
15204        outseq: *const igraph_vector_int_t,
15205        outpref: igraph_bool_t,
15206        A: igraph_real_t,
15207        directed: igraph_bool_t,
15208        algo: igraph_barabasi_algorithm_t,
15209        start_from: *const igraph_t,
15210    ) -> igraph_error_t;
15211}
15212unsafe extern "C" {
15213    pub fn igraph_erdos_renyi_game_gnp(
15214        graph: *mut igraph_t,
15215        n: igraph_int_t,
15216        p: igraph_real_t,
15217        directed: igraph_bool_t,
15218        allowed_edge_types: igraph_edge_type_sw_t,
15219        edge_labeled: igraph_bool_t,
15220    ) -> igraph_error_t;
15221}
15222unsafe extern "C" {
15223    pub fn igraph_erdos_renyi_game_gnm(
15224        graph: *mut igraph_t,
15225        n: igraph_int_t,
15226        m: igraph_int_t,
15227        directed: igraph_bool_t,
15228        allowed_edge_types: igraph_edge_type_sw_t,
15229        edge_labeled: igraph_bool_t,
15230    ) -> igraph_error_t;
15231}
15232unsafe extern "C" {
15233    pub fn igraph_iea_game(
15234        graph: *mut igraph_t,
15235        n: igraph_int_t,
15236        m: igraph_int_t,
15237        directed: igraph_bool_t,
15238        loops: igraph_bool_t,
15239    ) -> igraph_error_t;
15240}
15241unsafe extern "C" {
15242    pub fn igraph_degree_sequence_game(
15243        graph: *mut igraph_t,
15244        out_deg: *const igraph_vector_int_t,
15245        in_deg: *const igraph_vector_int_t,
15246        method: igraph_degseq_t,
15247    ) -> igraph_error_t;
15248}
15249unsafe extern "C" {
15250    pub fn igraph_growing_random_game(
15251        graph: *mut igraph_t,
15252        n: igraph_int_t,
15253        m: igraph_int_t,
15254        directed: igraph_bool_t,
15255        citation: igraph_bool_t,
15256    ) -> igraph_error_t;
15257}
15258unsafe extern "C" {
15259    pub fn igraph_barabasi_aging_game(
15260        graph: *mut igraph_t,
15261        nodes: igraph_int_t,
15262        m: igraph_int_t,
15263        outseq: *const igraph_vector_int_t,
15264        outpref: igraph_bool_t,
15265        pa_exp: igraph_real_t,
15266        aging_exp: igraph_real_t,
15267        aging_bin: igraph_int_t,
15268        zero_deg_appeal: igraph_real_t,
15269        zero_age_appeal: igraph_real_t,
15270        deg_coef: igraph_real_t,
15271        age_coef: igraph_real_t,
15272        directed: igraph_bool_t,
15273    ) -> igraph_error_t;
15274}
15275unsafe extern "C" {
15276    pub fn igraph_recent_degree_game(
15277        graph: *mut igraph_t,
15278        n: igraph_int_t,
15279        power: igraph_real_t,
15280        window: igraph_int_t,
15281        m: igraph_int_t,
15282        outseq: *const igraph_vector_int_t,
15283        outpref: igraph_bool_t,
15284        zero_appeal: igraph_real_t,
15285        directed: igraph_bool_t,
15286    ) -> igraph_error_t;
15287}
15288unsafe extern "C" {
15289    pub fn igraph_recent_degree_aging_game(
15290        graph: *mut igraph_t,
15291        nodes: igraph_int_t,
15292        m: igraph_int_t,
15293        outseq: *const igraph_vector_int_t,
15294        outpref: igraph_bool_t,
15295        pa_exp: igraph_real_t,
15296        aging_exp: igraph_real_t,
15297        aging_bin: igraph_int_t,
15298        window: igraph_int_t,
15299        zero_appeal: igraph_real_t,
15300        directed: igraph_bool_t,
15301    ) -> igraph_error_t;
15302}
15303unsafe extern "C" {
15304    pub fn igraph_callaway_traits_game(
15305        graph: *mut igraph_t,
15306        nodes: igraph_int_t,
15307        types: igraph_int_t,
15308        edges_per_step: igraph_int_t,
15309        type_dist: *const igraph_vector_t,
15310        pref_matrix: *const igraph_matrix_t,
15311        directed: igraph_bool_t,
15312        node_type_vec: *mut igraph_vector_int_t,
15313    ) -> igraph_error_t;
15314}
15315unsafe extern "C" {
15316    pub fn igraph_establishment_game(
15317        graph: *mut igraph_t,
15318        nodes: igraph_int_t,
15319        types: igraph_int_t,
15320        k: igraph_int_t,
15321        type_dist: *const igraph_vector_t,
15322        pref_matrix: *const igraph_matrix_t,
15323        directed: igraph_bool_t,
15324        node_type_vec: *mut igraph_vector_int_t,
15325    ) -> igraph_error_t;
15326}
15327unsafe extern "C" {
15328    pub fn igraph_grg_game(
15329        graph: *mut igraph_t,
15330        nodes: igraph_int_t,
15331        radius: igraph_real_t,
15332        torus: igraph_bool_t,
15333        x: *mut igraph_vector_t,
15334        y: *mut igraph_vector_t,
15335    ) -> igraph_error_t;
15336}
15337unsafe extern "C" {
15338    pub fn igraph_preference_game(
15339        graph: *mut igraph_t,
15340        nodes: igraph_int_t,
15341        types: igraph_int_t,
15342        type_dist: *const igraph_vector_t,
15343        fixed_sizes: igraph_bool_t,
15344        pref_matrix: *const igraph_matrix_t,
15345        node_type_vec: *mut igraph_vector_int_t,
15346        directed: igraph_bool_t,
15347        loops: igraph_bool_t,
15348    ) -> igraph_error_t;
15349}
15350unsafe extern "C" {
15351    pub fn igraph_asymmetric_preference_game(
15352        graph: *mut igraph_t,
15353        nodes: igraph_int_t,
15354        out_types: igraph_int_t,
15355        in_types: igraph_int_t,
15356        type_dist_matrix: *const igraph_matrix_t,
15357        pref_matrix: *const igraph_matrix_t,
15358        node_type_out_vec: *mut igraph_vector_int_t,
15359        node_type_in_vec: *mut igraph_vector_int_t,
15360        loops: igraph_bool_t,
15361    ) -> igraph_error_t;
15362}
15363unsafe extern "C" {
15364    pub fn igraph_rewire_edges(
15365        graph: *mut igraph_t,
15366        prob: igraph_real_t,
15367        allowed_edge_types: igraph_edge_type_sw_t,
15368    ) -> igraph_error_t;
15369}
15370unsafe extern "C" {
15371    pub fn igraph_rewire_directed_edges(
15372        graph: *mut igraph_t,
15373        prob: igraph_real_t,
15374        loops: igraph_bool_t,
15375        mode: igraph_neimode_t,
15376    ) -> igraph_error_t;
15377}
15378unsafe extern "C" {
15379    pub fn igraph_watts_strogatz_game(
15380        graph: *mut igraph_t,
15381        dim: igraph_int_t,
15382        size: igraph_int_t,
15383        nei: igraph_int_t,
15384        p: igraph_real_t,
15385        allowed_edge_types: igraph_edge_type_sw_t,
15386    ) -> igraph_error_t;
15387}
15388unsafe extern "C" {
15389    pub fn igraph_lastcit_game(
15390        graph: *mut igraph_t,
15391        nodes: igraph_int_t,
15392        edges_per_node: igraph_int_t,
15393        agebins: igraph_int_t,
15394        preference: *const igraph_vector_t,
15395        directed: igraph_bool_t,
15396    ) -> igraph_error_t;
15397}
15398unsafe extern "C" {
15399    pub fn igraph_cited_type_game(
15400        graph: *mut igraph_t,
15401        nodes: igraph_int_t,
15402        types: *const igraph_vector_int_t,
15403        pref: *const igraph_vector_t,
15404        edges_per_step: igraph_int_t,
15405        directed: igraph_bool_t,
15406    ) -> igraph_error_t;
15407}
15408unsafe extern "C" {
15409    pub fn igraph_citing_cited_type_game(
15410        graph: *mut igraph_t,
15411        nodes: igraph_int_t,
15412        types: *const igraph_vector_int_t,
15413        pref: *const igraph_matrix_t,
15414        edges_per_step: igraph_int_t,
15415        directed: igraph_bool_t,
15416    ) -> igraph_error_t;
15417}
15418unsafe extern "C" {
15419    pub fn igraph_forest_fire_game(
15420        graph: *mut igraph_t,
15421        nodes: igraph_int_t,
15422        fw_prob: igraph_real_t,
15423        bw_factor: igraph_real_t,
15424        ambs: igraph_int_t,
15425        directed: igraph_bool_t,
15426    ) -> igraph_error_t;
15427}
15428unsafe extern "C" {
15429    pub fn igraph_simple_interconnected_islands_game(
15430        graph: *mut igraph_t,
15431        islands_n: igraph_int_t,
15432        islands_size: igraph_int_t,
15433        islands_pin: igraph_real_t,
15434        n_inter: igraph_int_t,
15435    ) -> igraph_error_t;
15436}
15437unsafe extern "C" {
15438    pub fn igraph_static_fitness_game(
15439        graph: *mut igraph_t,
15440        no_of_edges: igraph_int_t,
15441        fitness_out: *const igraph_vector_t,
15442        fitness_in: *const igraph_vector_t,
15443        allowed_edge_types: igraph_edge_type_sw_t,
15444    ) -> igraph_error_t;
15445}
15446unsafe extern "C" {
15447    pub fn igraph_static_power_law_game(
15448        graph: *mut igraph_t,
15449        no_of_nodes: igraph_int_t,
15450        no_of_edges: igraph_int_t,
15451        exponent_out: igraph_real_t,
15452        exponent_in: igraph_real_t,
15453        allowed_edge_types: igraph_edge_type_sw_t,
15454        finite_size_correction: igraph_bool_t,
15455    ) -> igraph_error_t;
15456}
15457unsafe extern "C" {
15458    pub fn igraph_chung_lu_game(
15459        graph: *mut igraph_t,
15460        expected_out_deg: *const igraph_vector_t,
15461        expected_in_deg: *const igraph_vector_t,
15462        loops: igraph_bool_t,
15463        variant: igraph_chung_lu_t,
15464    ) -> igraph_error_t;
15465}
15466unsafe extern "C" {
15467    pub fn igraph_k_regular_game(
15468        graph: *mut igraph_t,
15469        no_of_nodes: igraph_int_t,
15470        k: igraph_int_t,
15471        directed: igraph_bool_t,
15472        multiple: igraph_bool_t,
15473    ) -> igraph_error_t;
15474}
15475unsafe extern "C" {
15476    pub fn igraph_sbm_game(
15477        graph: *mut igraph_t,
15478        pref_matrix: *const igraph_matrix_t,
15479        block_sizes: *const igraph_vector_int_t,
15480        directed: igraph_bool_t,
15481        allowed_edge_types: igraph_edge_type_sw_t,
15482    ) -> igraph_error_t;
15483}
15484unsafe extern "C" {
15485    pub fn igraph_hsbm_game(
15486        graph: *mut igraph_t,
15487        n: igraph_int_t,
15488        m: igraph_int_t,
15489        rho: *const igraph_vector_t,
15490        C: *const igraph_matrix_t,
15491        p: igraph_real_t,
15492    ) -> igraph_error_t;
15493}
15494unsafe extern "C" {
15495    pub fn igraph_hsbm_list_game(
15496        graph: *mut igraph_t,
15497        n: igraph_int_t,
15498        mlist: *const igraph_vector_int_t,
15499        rholist: *const igraph_vector_list_t,
15500        Clist: *const igraph_matrix_list_t,
15501        p: igraph_real_t,
15502    ) -> igraph_error_t;
15503}
15504unsafe extern "C" {
15505    pub fn igraph_correlated_game(
15506        new_graph: *mut igraph_t,
15507        old_graph: *const igraph_t,
15508        corr: igraph_real_t,
15509        p: igraph_real_t,
15510        permutation: *const igraph_vector_int_t,
15511    ) -> igraph_error_t;
15512}
15513unsafe extern "C" {
15514    pub fn igraph_correlated_pair_game(
15515        graph1: *mut igraph_t,
15516        graph2: *mut igraph_t,
15517        n: igraph_int_t,
15518        corr: igraph_real_t,
15519        p: igraph_real_t,
15520        directed: igraph_bool_t,
15521        permutation: *const igraph_vector_int_t,
15522    ) -> igraph_error_t;
15523}
15524unsafe extern "C" {
15525    pub fn igraph_tree_game(
15526        graph: *mut igraph_t,
15527        n: igraph_int_t,
15528        directed: igraph_bool_t,
15529        method: igraph_random_tree_t,
15530    ) -> igraph_error_t;
15531}
15532unsafe extern "C" {
15533    pub fn igraph_dot_product_game(
15534        graph: *mut igraph_t,
15535        vecs: *const igraph_matrix_t,
15536        directed: igraph_bool_t,
15537    ) -> igraph_error_t;
15538}
15539unsafe extern "C" {
15540    pub fn igraph_closeness(
15541        graph: *const igraph_t,
15542        res: *mut igraph_vector_t,
15543        reachable_count: *mut igraph_vector_int_t,
15544        all_reachable: *mut igraph_bool_t,
15545        vids: igraph_vs_t,
15546        mode: igraph_neimode_t,
15547        weights: *const igraph_vector_t,
15548        normalized: igraph_bool_t,
15549    ) -> igraph_error_t;
15550}
15551unsafe extern "C" {
15552    pub fn igraph_closeness_cutoff(
15553        graph: *const igraph_t,
15554        res: *mut igraph_vector_t,
15555        reachable_count: *mut igraph_vector_int_t,
15556        all_reachable: *mut igraph_bool_t,
15557        vids: igraph_vs_t,
15558        mode: igraph_neimode_t,
15559        weights: *const igraph_vector_t,
15560        normalized: igraph_bool_t,
15561        cutoff: igraph_real_t,
15562    ) -> igraph_error_t;
15563}
15564unsafe extern "C" {
15565    pub fn igraph_harmonic_centrality(
15566        graph: *const igraph_t,
15567        res: *mut igraph_vector_t,
15568        vids: igraph_vs_t,
15569        mode: igraph_neimode_t,
15570        weights: *const igraph_vector_t,
15571        normalized: igraph_bool_t,
15572    ) -> igraph_error_t;
15573}
15574unsafe extern "C" {
15575    pub fn igraph_harmonic_centrality_cutoff(
15576        graph: *const igraph_t,
15577        res: *mut igraph_vector_t,
15578        vids: igraph_vs_t,
15579        mode: igraph_neimode_t,
15580        weights: *const igraph_vector_t,
15581        normalized: igraph_bool_t,
15582        cutoff: igraph_real_t,
15583    ) -> igraph_error_t;
15584}
15585unsafe extern "C" {
15586    pub fn igraph_betweenness(
15587        graph: *const igraph_t,
15588        weights: *const igraph_vector_t,
15589        res: *mut igraph_vector_t,
15590        vids: igraph_vs_t,
15591        directed: igraph_bool_t,
15592        normalized: igraph_bool_t,
15593    ) -> igraph_error_t;
15594}
15595unsafe extern "C" {
15596    pub fn igraph_betweenness_cutoff(
15597        graph: *const igraph_t,
15598        weights: *const igraph_vector_t,
15599        res: *mut igraph_vector_t,
15600        vids: igraph_vs_t,
15601        directed: igraph_bool_t,
15602        normalized: igraph_bool_t,
15603        cutoff: igraph_real_t,
15604    ) -> igraph_error_t;
15605}
15606unsafe extern "C" {
15607    pub fn igraph_edge_betweenness(
15608        graph: *const igraph_t,
15609        weights: *const igraph_vector_t,
15610        res: *mut igraph_vector_t,
15611        eids: igraph_es_t,
15612        directed: igraph_bool_t,
15613        normalized: igraph_bool_t,
15614    ) -> igraph_error_t;
15615}
15616unsafe extern "C" {
15617    pub fn igraph_edge_betweenness_cutoff(
15618        graph: *const igraph_t,
15619        weights: *const igraph_vector_t,
15620        res: *mut igraph_vector_t,
15621        eids: igraph_es_t,
15622        directed: igraph_bool_t,
15623        normalized: igraph_bool_t,
15624        cutoff: igraph_real_t,
15625    ) -> igraph_error_t;
15626}
15627unsafe extern "C" {
15628    pub fn igraph_betweenness_subset(
15629        graph: *const igraph_t,
15630        weights: *const igraph_vector_t,
15631        res: *mut igraph_vector_t,
15632        sources: igraph_vs_t,
15633        targets: igraph_vs_t,
15634        vids: igraph_vs_t,
15635        directed: igraph_bool_t,
15636        normalized: igraph_bool_t,
15637    ) -> igraph_error_t;
15638}
15639unsafe extern "C" {
15640    pub fn igraph_edge_betweenness_subset(
15641        graph: *const igraph_t,
15642        weights: *const igraph_vector_t,
15643        res: *mut igraph_vector_t,
15644        sources: igraph_vs_t,
15645        targets: igraph_vs_t,
15646        eids: igraph_es_t,
15647        directed: igraph_bool_t,
15648        normalized: igraph_bool_t,
15649    ) -> igraph_error_t;
15650}
15651pub const igraph_pagerank_algo_t_IGRAPH_PAGERANK_ALGO_ARPACK: igraph_pagerank_algo_t = 1;
15652pub const igraph_pagerank_algo_t_IGRAPH_PAGERANK_ALGO_PRPACK: igraph_pagerank_algo_t = 2;
15653#[doc = " \\typedef igraph_pagerank_algo_t\n \\brief PageRank algorithm implementation.\n\n Algorithms to calculate PageRank.\n \\enumval IGRAPH_PAGERANK_ALGO_ARPACK Use the ARPACK library, this\n   was the PageRank implementation in igraph from version 0.5, until\n   version 0.7.\n \\enumval IGRAPH_PAGERANK_ALGO_PRPACK Use the PRPACK\n   library. Currently this implementation is recommended."]
15654pub type igraph_pagerank_algo_t = ::std::os::raw::c_uint;
15655unsafe extern "C" {
15656    pub fn igraph_pagerank(
15657        graph: *const igraph_t,
15658        weights: *const igraph_vector_t,
15659        vector: *mut igraph_vector_t,
15660        value: *mut igraph_real_t,
15661        damping: igraph_real_t,
15662        directed: igraph_bool_t,
15663        vids: igraph_vs_t,
15664        algo: igraph_pagerank_algo_t,
15665        options: *mut igraph_arpack_options_t,
15666    ) -> igraph_error_t;
15667}
15668unsafe extern "C" {
15669    pub fn igraph_personalized_pagerank(
15670        graph: *const igraph_t,
15671        weights: *const igraph_vector_t,
15672        vector: *mut igraph_vector_t,
15673        value: *mut igraph_real_t,
15674        reset: *const igraph_vector_t,
15675        damping: igraph_real_t,
15676        directed: igraph_bool_t,
15677        vids: igraph_vs_t,
15678        algo: igraph_pagerank_algo_t,
15679        options: *mut igraph_arpack_options_t,
15680    ) -> igraph_error_t;
15681}
15682unsafe extern "C" {
15683    pub fn igraph_personalized_pagerank_vs(
15684        graph: *const igraph_t,
15685        weights: *const igraph_vector_t,
15686        vector: *mut igraph_vector_t,
15687        value: *mut igraph_real_t,
15688        reset_vids: igraph_vs_t,
15689        damping: igraph_real_t,
15690        directed: igraph_bool_t,
15691        vids: igraph_vs_t,
15692        algo: igraph_pagerank_algo_t,
15693        options: *mut igraph_arpack_options_t,
15694    ) -> igraph_error_t;
15695}
15696unsafe extern "C" {
15697    pub fn igraph_eigenvector_centrality(
15698        graph: *const igraph_t,
15699        vector: *mut igraph_vector_t,
15700        value: *mut igraph_real_t,
15701        mode: igraph_neimode_t,
15702        weights: *const igraph_vector_t,
15703        options: *mut igraph_arpack_options_t,
15704    ) -> igraph_error_t;
15705}
15706unsafe extern "C" {
15707    pub fn igraph_hub_and_authority_scores(
15708        graph: *const igraph_t,
15709        hub_vector: *mut igraph_vector_t,
15710        authority_vector: *mut igraph_vector_t,
15711        value: *mut igraph_real_t,
15712        weights: *const igraph_vector_t,
15713        options: *mut igraph_arpack_options_t,
15714    ) -> igraph_error_t;
15715}
15716unsafe extern "C" {
15717    pub fn igraph_constraint(
15718        graph: *const igraph_t,
15719        res: *mut igraph_vector_t,
15720        vids: igraph_vs_t,
15721        weights: *const igraph_vector_t,
15722    ) -> igraph_error_t;
15723}
15724unsafe extern "C" {
15725    pub fn igraph_convergence_degree(
15726        graph: *const igraph_t,
15727        result: *mut igraph_vector_t,
15728        ins: *mut igraph_vector_t,
15729        outs: *mut igraph_vector_t,
15730    ) -> igraph_error_t;
15731}
15732unsafe extern "C" {
15733    pub fn igraph_centralization(
15734        scores: *const igraph_vector_t,
15735        theoretical_max: igraph_real_t,
15736        normalized: igraph_bool_t,
15737    ) -> igraph_real_t;
15738}
15739unsafe extern "C" {
15740    pub fn igraph_centralization_degree(
15741        graph: *const igraph_t,
15742        res: *mut igraph_vector_t,
15743        mode: igraph_neimode_t,
15744        loops: igraph_loops_t,
15745        centralization: *mut igraph_real_t,
15746        theoretical_max: *mut igraph_real_t,
15747        normalized: igraph_bool_t,
15748    ) -> igraph_error_t;
15749}
15750unsafe extern "C" {
15751    pub fn igraph_centralization_degree_tmax(
15752        graph: *const igraph_t,
15753        nodes: igraph_int_t,
15754        mode: igraph_neimode_t,
15755        loops: igraph_loops_t,
15756        res: *mut igraph_real_t,
15757    ) -> igraph_error_t;
15758}
15759unsafe extern "C" {
15760    pub fn igraph_centralization_betweenness(
15761        graph: *const igraph_t,
15762        res: *mut igraph_vector_t,
15763        directed: igraph_bool_t,
15764        centralization: *mut igraph_real_t,
15765        theoretical_max: *mut igraph_real_t,
15766        normalized: igraph_bool_t,
15767    ) -> igraph_error_t;
15768}
15769unsafe extern "C" {
15770    pub fn igraph_centralization_betweenness_tmax(
15771        graph: *const igraph_t,
15772        nodes: igraph_int_t,
15773        directed: igraph_bool_t,
15774        res: *mut igraph_real_t,
15775    ) -> igraph_error_t;
15776}
15777unsafe extern "C" {
15778    pub fn igraph_centralization_closeness(
15779        graph: *const igraph_t,
15780        res: *mut igraph_vector_t,
15781        mode: igraph_neimode_t,
15782        centralization: *mut igraph_real_t,
15783        theoretical_max: *mut igraph_real_t,
15784        normalized: igraph_bool_t,
15785    ) -> igraph_error_t;
15786}
15787unsafe extern "C" {
15788    pub fn igraph_centralization_closeness_tmax(
15789        graph: *const igraph_t,
15790        nodes: igraph_int_t,
15791        mode: igraph_neimode_t,
15792        res: *mut igraph_real_t,
15793    ) -> igraph_error_t;
15794}
15795unsafe extern "C" {
15796    pub fn igraph_centralization_eigenvector_centrality(
15797        graph: *const igraph_t,
15798        vector: *mut igraph_vector_t,
15799        value: *mut igraph_real_t,
15800        mode: igraph_neimode_t,
15801        options: *mut igraph_arpack_options_t,
15802        centralization: *mut igraph_real_t,
15803        theoretical_max: *mut igraph_real_t,
15804        normalized: igraph_bool_t,
15805    ) -> igraph_error_t;
15806}
15807unsafe extern "C" {
15808    pub fn igraph_centralization_eigenvector_centrality_tmax(
15809        graph: *const igraph_t,
15810        nodes: igraph_int_t,
15811        mode: igraph_neimode_t,
15812        res: *mut igraph_real_t,
15813    ) -> igraph_error_t;
15814}
15815#[doc = " \\typedef igraph_astar_heuristic_func_t\n \\brief Distance estimator for A* algorithm.\n\n \\ref igraph_get_shortest_path_astar() uses a heuristic based on a distance\n estimate to the target vertex to guide its search, and determine\n which vertex to try next. The heuristic function is expected to compute\n an estimate of the distance between \\p from and \\p to. In order for\n \\ref igraph_get_shortest_path_astar() to find an exact shortest path,\n the distance must not be overestimated, i.e. the heuristic function\n must be \\em admissible.\n\n \\param result The result of the heuristic, i.e. the estimated distance.\n    A lower value will mean this vertex will be a better candidate for\n    exploration.\n \\param from The vertex ID of the candidate vertex will be passed here.\n \\param to The vertex ID of the endpoint of the path, i.e. the \\c to parameter\n    given to \\ref igraph_get_shortest_path_astar(), will be passed here.\n \\param extra The \\c extra argument that was passed to\n    \\ref igraph_get_shortest_path_astar().\n \\return Error code. Must return \\c IGRAPH_SUCCESS if there were no errors.\n    This can be used to break off the algorithm if something unexpected happens,\n    like a failed memory allocation (\\c IGRAPH_ENOMEM).\n\n \\sa \\ref igraph_get_shortest_path_astar()"]
15816pub type igraph_astar_heuristic_func_t = ::std::option::Option<
15817    unsafe extern "C" fn(
15818        result: *mut igraph_real_t,
15819        from: igraph_int_t,
15820        to: igraph_int_t,
15821        extra: *mut ::std::os::raw::c_void,
15822    ) -> igraph_error_t,
15823>;
15824pub const igraph_floyd_warshall_algorithm_t_IGRAPH_FLOYD_WARSHALL_AUTOMATIC:
15825    igraph_floyd_warshall_algorithm_t = 0;
15826pub const igraph_floyd_warshall_algorithm_t_IGRAPH_FLOYD_WARSHALL_ORIGINAL:
15827    igraph_floyd_warshall_algorithm_t = 1;
15828pub const igraph_floyd_warshall_algorithm_t_IGRAPH_FLOYD_WARSHALL_TREE:
15829    igraph_floyd_warshall_algorithm_t = 2;
15830pub type igraph_floyd_warshall_algorithm_t = ::std::os::raw::c_uint;
15831unsafe extern "C" {
15832    pub fn igraph_diameter(
15833        graph: *const igraph_t,
15834        weights: *const igraph_vector_t,
15835        res: *mut igraph_real_t,
15836        from: *mut igraph_int_t,
15837        to: *mut igraph_int_t,
15838        vertex_path: *mut igraph_vector_int_t,
15839        edge_path: *mut igraph_vector_int_t,
15840        directed: igraph_bool_t,
15841        unconn: igraph_bool_t,
15842    ) -> igraph_error_t;
15843}
15844unsafe extern "C" {
15845    pub fn igraph_distances(
15846        graph: *const igraph_t,
15847        weights: *const igraph_vector_t,
15848        res: *mut igraph_matrix_t,
15849        from: igraph_vs_t,
15850        to: igraph_vs_t,
15851        mode: igraph_neimode_t,
15852    ) -> igraph_error_t;
15853}
15854unsafe extern "C" {
15855    pub fn igraph_distances_bellman_ford(
15856        graph: *const igraph_t,
15857        res: *mut igraph_matrix_t,
15858        from: igraph_vs_t,
15859        to: igraph_vs_t,
15860        weights: *const igraph_vector_t,
15861        mode: igraph_neimode_t,
15862    ) -> igraph_error_t;
15863}
15864unsafe extern "C" {
15865    pub fn igraph_distances_dijkstra(
15866        graph: *const igraph_t,
15867        res: *mut igraph_matrix_t,
15868        from: igraph_vs_t,
15869        to: igraph_vs_t,
15870        weights: *const igraph_vector_t,
15871        mode: igraph_neimode_t,
15872    ) -> igraph_error_t;
15873}
15874unsafe extern "C" {
15875    pub fn igraph_distances_johnson(
15876        graph: *const igraph_t,
15877        res: *mut igraph_matrix_t,
15878        from: igraph_vs_t,
15879        to: igraph_vs_t,
15880        weights: *const igraph_vector_t,
15881        mode: igraph_neimode_t,
15882    ) -> igraph_error_t;
15883}
15884unsafe extern "C" {
15885    pub fn igraph_distances_floyd_warshall(
15886        graph: *const igraph_t,
15887        res: *mut igraph_matrix_t,
15888        from: igraph_vs_t,
15889        to: igraph_vs_t,
15890        weights: *const igraph_vector_t,
15891        mode: igraph_neimode_t,
15892        method: igraph_floyd_warshall_algorithm_t,
15893    ) -> igraph_error_t;
15894}
15895unsafe extern "C" {
15896    pub fn igraph_distances_cutoff(
15897        graph: *const igraph_t,
15898        weights: *const igraph_vector_t,
15899        res: *mut igraph_matrix_t,
15900        from: igraph_vs_t,
15901        to: igraph_vs_t,
15902        mode: igraph_neimode_t,
15903        cutoff: igraph_real_t,
15904    ) -> igraph_error_t;
15905}
15906unsafe extern "C" {
15907    pub fn igraph_distances_dijkstra_cutoff(
15908        graph: *const igraph_t,
15909        res: *mut igraph_matrix_t,
15910        from: igraph_vs_t,
15911        to: igraph_vs_t,
15912        weights: *const igraph_vector_t,
15913        mode: igraph_neimode_t,
15914        cutoff: igraph_real_t,
15915    ) -> igraph_error_t;
15916}
15917unsafe extern "C" {
15918    pub fn igraph_get_shortest_paths(
15919        graph: *const igraph_t,
15920        weights: *const igraph_vector_t,
15921        vertices: *mut igraph_vector_int_list_t,
15922        edges: *mut igraph_vector_int_list_t,
15923        from: igraph_int_t,
15924        to: igraph_vs_t,
15925        mode: igraph_neimode_t,
15926        parents: *mut igraph_vector_int_t,
15927        inbound_edges: *mut igraph_vector_int_t,
15928    ) -> igraph_error_t;
15929}
15930unsafe extern "C" {
15931    pub fn igraph_get_shortest_paths_bellman_ford(
15932        graph: *const igraph_t,
15933        vertices: *mut igraph_vector_int_list_t,
15934        edges: *mut igraph_vector_int_list_t,
15935        from: igraph_int_t,
15936        to: igraph_vs_t,
15937        weights: *const igraph_vector_t,
15938        mode: igraph_neimode_t,
15939        parents: *mut igraph_vector_int_t,
15940        inbound_edges: *mut igraph_vector_int_t,
15941    ) -> igraph_error_t;
15942}
15943unsafe extern "C" {
15944    pub fn igraph_get_shortest_paths_dijkstra(
15945        graph: *const igraph_t,
15946        vertices: *mut igraph_vector_int_list_t,
15947        edges: *mut igraph_vector_int_list_t,
15948        from: igraph_int_t,
15949        to: igraph_vs_t,
15950        weights: *const igraph_vector_t,
15951        mode: igraph_neimode_t,
15952        parents: *mut igraph_vector_int_t,
15953        inbound_edges: *mut igraph_vector_int_t,
15954    ) -> igraph_error_t;
15955}
15956unsafe extern "C" {
15957    pub fn igraph_get_shortest_path(
15958        graph: *const igraph_t,
15959        weights: *const igraph_vector_t,
15960        vertices: *mut igraph_vector_int_t,
15961        edges: *mut igraph_vector_int_t,
15962        from: igraph_int_t,
15963        to: igraph_int_t,
15964        mode: igraph_neimode_t,
15965    ) -> igraph_error_t;
15966}
15967unsafe extern "C" {
15968    pub fn igraph_get_shortest_path_bellman_ford(
15969        graph: *const igraph_t,
15970        vertices: *mut igraph_vector_int_t,
15971        edges: *mut igraph_vector_int_t,
15972        from: igraph_int_t,
15973        to: igraph_int_t,
15974        weights: *const igraph_vector_t,
15975        mode: igraph_neimode_t,
15976    ) -> igraph_error_t;
15977}
15978unsafe extern "C" {
15979    pub fn igraph_get_shortest_path_dijkstra(
15980        graph: *const igraph_t,
15981        vertices: *mut igraph_vector_int_t,
15982        edges: *mut igraph_vector_int_t,
15983        from: igraph_int_t,
15984        to: igraph_int_t,
15985        weights: *const igraph_vector_t,
15986        mode: igraph_neimode_t,
15987    ) -> igraph_error_t;
15988}
15989unsafe extern "C" {
15990    pub fn igraph_get_shortest_path_astar(
15991        graph: *const igraph_t,
15992        vertices: *mut igraph_vector_int_t,
15993        edges: *mut igraph_vector_int_t,
15994        from: igraph_int_t,
15995        to: igraph_int_t,
15996        weights: *const igraph_vector_t,
15997        mode: igraph_neimode_t,
15998        heuristic: igraph_astar_heuristic_func_t,
15999        extra: *mut ::std::os::raw::c_void,
16000    ) -> igraph_error_t;
16001}
16002unsafe extern "C" {
16003    pub fn igraph_get_all_shortest_paths(
16004        graph: *const igraph_t,
16005        weights: *const igraph_vector_t,
16006        vertices: *mut igraph_vector_int_list_t,
16007        edges: *mut igraph_vector_int_list_t,
16008        nrgeo: *mut igraph_vector_int_t,
16009        from: igraph_int_t,
16010        to: igraph_vs_t,
16011        mode: igraph_neimode_t,
16012    ) -> igraph_error_t;
16013}
16014unsafe extern "C" {
16015    pub fn igraph_get_all_shortest_paths_dijkstra(
16016        graph: *const igraph_t,
16017        vertices: *mut igraph_vector_int_list_t,
16018        edges: *mut igraph_vector_int_list_t,
16019        nrgeo: *mut igraph_vector_int_t,
16020        from: igraph_int_t,
16021        to: igraph_vs_t,
16022        weights: *const igraph_vector_t,
16023        mode: igraph_neimode_t,
16024    ) -> igraph_error_t;
16025}
16026unsafe extern "C" {
16027    pub fn igraph_average_path_length(
16028        graph: *const igraph_t,
16029        weights: *const igraph_vector_t,
16030        res: *mut igraph_real_t,
16031        unconn_pairs: *mut igraph_real_t,
16032        directed: igraph_bool_t,
16033        unconn: igraph_bool_t,
16034    ) -> igraph_error_t;
16035}
16036unsafe extern "C" {
16037    pub fn igraph_path_length_hist(
16038        graph: *const igraph_t,
16039        res: *mut igraph_vector_t,
16040        unconnected: *mut igraph_real_t,
16041        directed: igraph_bool_t,
16042    ) -> igraph_error_t;
16043}
16044unsafe extern "C" {
16045    pub fn igraph_global_efficiency(
16046        graph: *const igraph_t,
16047        weights: *const igraph_vector_t,
16048        res: *mut igraph_real_t,
16049        directed: igraph_bool_t,
16050    ) -> igraph_error_t;
16051}
16052unsafe extern "C" {
16053    pub fn igraph_local_efficiency(
16054        graph: *const igraph_t,
16055        weights: *const igraph_vector_t,
16056        res: *mut igraph_vector_t,
16057        vids: igraph_vs_t,
16058        directed: igraph_bool_t,
16059        mode: igraph_neimode_t,
16060    ) -> igraph_error_t;
16061}
16062unsafe extern "C" {
16063    pub fn igraph_average_local_efficiency(
16064        graph: *const igraph_t,
16065        weights: *const igraph_vector_t,
16066        res: *mut igraph_real_t,
16067        directed: igraph_bool_t,
16068        mode: igraph_neimode_t,
16069    ) -> igraph_error_t;
16070}
16071unsafe extern "C" {
16072    pub fn igraph_eccentricity(
16073        graph: *const igraph_t,
16074        weights: *const igraph_vector_t,
16075        res: *mut igraph_vector_t,
16076        vids: igraph_vs_t,
16077        mode: igraph_neimode_t,
16078    ) -> igraph_error_t;
16079}
16080unsafe extern "C" {
16081    pub fn igraph_radius(
16082        graph: *const igraph_t,
16083        weights: *const igraph_vector_t,
16084        radius: *mut igraph_real_t,
16085        mode: igraph_neimode_t,
16086    ) -> igraph_error_t;
16087}
16088unsafe extern "C" {
16089    pub fn igraph_graph_center(
16090        graph: *const igraph_t,
16091        weights: *const igraph_vector_t,
16092        res: *mut igraph_vector_int_t,
16093        mode: igraph_neimode_t,
16094    ) -> igraph_error_t;
16095}
16096unsafe extern "C" {
16097    pub fn igraph_pseudo_diameter(
16098        graph: *const igraph_t,
16099        weights: *const igraph_vector_t,
16100        diameter: *mut igraph_real_t,
16101        vid_start: igraph_int_t,
16102        from: *mut igraph_int_t,
16103        to: *mut igraph_int_t,
16104        directed: igraph_bool_t,
16105        unconn: igraph_bool_t,
16106    ) -> igraph_error_t;
16107}
16108unsafe extern "C" {
16109    pub fn igraph_get_all_simple_paths(
16110        graph: *const igraph_t,
16111        res: *mut igraph_vector_int_list_t,
16112        from: igraph_int_t,
16113        to: igraph_vs_t,
16114        mode: igraph_neimode_t,
16115        minlen: igraph_int_t,
16116        maxlen: igraph_int_t,
16117        max_results: igraph_int_t,
16118    ) -> igraph_error_t;
16119}
16120unsafe extern "C" {
16121    pub fn igraph_random_walk(
16122        graph: *const igraph_t,
16123        weights: *const igraph_vector_t,
16124        vertices: *mut igraph_vector_int_t,
16125        edges: *mut igraph_vector_int_t,
16126        start: igraph_int_t,
16127        mode: igraph_neimode_t,
16128        steps: igraph_int_t,
16129        stuck: igraph_random_walk_stuck_t,
16130    ) -> igraph_error_t;
16131}
16132unsafe extern "C" {
16133    pub fn igraph_get_k_shortest_paths(
16134        graph: *const igraph_t,
16135        weights: *const igraph_vector_t,
16136        vertex_paths: *mut igraph_vector_int_list_t,
16137        edge_paths: *mut igraph_vector_int_list_t,
16138        k: igraph_int_t,
16139        from: igraph_int_t,
16140        to: igraph_int_t,
16141        mode: igraph_neimode_t,
16142    ) -> igraph_error_t;
16143}
16144unsafe extern "C" {
16145    pub fn igraph_spanner(
16146        graph: *const igraph_t,
16147        spanner: *mut igraph_vector_int_t,
16148        stretch: igraph_real_t,
16149        weights: *const igraph_vector_t,
16150    ) -> igraph_error_t;
16151}
16152unsafe extern "C" {
16153    pub fn igraph_get_widest_paths(
16154        graph: *const igraph_t,
16155        vertices: *mut igraph_vector_int_list_t,
16156        edges: *mut igraph_vector_int_list_t,
16157        from: igraph_int_t,
16158        to: igraph_vs_t,
16159        weights: *const igraph_vector_t,
16160        mode: igraph_neimode_t,
16161        parents: *mut igraph_vector_int_t,
16162        inbound_edges: *mut igraph_vector_int_t,
16163    ) -> igraph_error_t;
16164}
16165unsafe extern "C" {
16166    pub fn igraph_get_widest_path(
16167        graph: *const igraph_t,
16168        vertices: *mut igraph_vector_int_t,
16169        edges: *mut igraph_vector_int_t,
16170        from: igraph_int_t,
16171        to: igraph_int_t,
16172        weights: *const igraph_vector_t,
16173        mode: igraph_neimode_t,
16174    ) -> igraph_error_t;
16175}
16176unsafe extern "C" {
16177    pub fn igraph_widest_path_widths_floyd_warshall(
16178        graph: *const igraph_t,
16179        res: *mut igraph_matrix_t,
16180        from: igraph_vs_t,
16181        to: igraph_vs_t,
16182        weights: *const igraph_vector_t,
16183        mode: igraph_neimode_t,
16184    ) -> igraph_error_t;
16185}
16186unsafe extern "C" {
16187    pub fn igraph_widest_path_widths_dijkstra(
16188        graph: *const igraph_t,
16189        res: *mut igraph_matrix_t,
16190        from: igraph_vs_t,
16191        to: igraph_vs_t,
16192        weights: *const igraph_vector_t,
16193        mode: igraph_neimode_t,
16194    ) -> igraph_error_t;
16195}
16196unsafe extern "C" {
16197    pub fn igraph_voronoi(
16198        graph: *const igraph_t,
16199        membership: *mut igraph_vector_int_t,
16200        distances: *mut igraph_vector_t,
16201        generators: *const igraph_vector_int_t,
16202        weights: *const igraph_vector_t,
16203        mode: igraph_neimode_t,
16204        tiebreaker: igraph_voronoi_tiebreaker_t,
16205    ) -> igraph_error_t;
16206}
16207unsafe extern "C" {
16208    pub fn igraph_expand_path_to_pairs(path: *mut igraph_vector_int_t) -> igraph_error_t;
16209}
16210unsafe extern "C" {
16211    pub fn igraph_vertex_path_from_edge_path(
16212        graph: *const igraph_t,
16213        start: igraph_int_t,
16214        edge_path: *const igraph_vector_int_t,
16215        vertex_path: *mut igraph_vector_int_t,
16216        mode: igraph_neimode_t,
16217    ) -> igraph_error_t;
16218}
16219unsafe extern "C" {
16220    pub fn igraph_connected_components(
16221        graph: *const igraph_t,
16222        membership: *mut igraph_vector_int_t,
16223        csize: *mut igraph_vector_int_t,
16224        no: *mut igraph_int_t,
16225        mode: igraph_connectedness_t,
16226    ) -> igraph_error_t;
16227}
16228unsafe extern "C" {
16229    pub fn igraph_is_connected(
16230        graph: *const igraph_t,
16231        res: *mut igraph_bool_t,
16232        mode: igraph_connectedness_t,
16233    ) -> igraph_error_t;
16234}
16235unsafe extern "C" {
16236    pub fn igraph_decompose(
16237        graph: *const igraph_t,
16238        components: *mut igraph_graph_list_t,
16239        mode: igraph_connectedness_t,
16240        maxcompno: igraph_int_t,
16241        minelements: igraph_int_t,
16242    ) -> igraph_error_t;
16243}
16244unsafe extern "C" {
16245    pub fn igraph_articulation_points(
16246        graph: *const igraph_t,
16247        res: *mut igraph_vector_int_t,
16248    ) -> igraph_error_t;
16249}
16250unsafe extern "C" {
16251    pub fn igraph_biconnected_components(
16252        graph: *const igraph_t,
16253        no: *mut igraph_int_t,
16254        tree_edges: *mut igraph_vector_int_list_t,
16255        component_edges: *mut igraph_vector_int_list_t,
16256        components: *mut igraph_vector_int_list_t,
16257        articulation_points: *mut igraph_vector_int_t,
16258    ) -> igraph_error_t;
16259}
16260unsafe extern "C" {
16261    pub fn igraph_is_biconnected(
16262        graph: *const igraph_t,
16263        result: *mut igraph_bool_t,
16264    ) -> igraph_error_t;
16265}
16266unsafe extern "C" {
16267    pub fn igraph_bridges(
16268        graph: *const igraph_t,
16269        bridges: *mut igraph_vector_int_t,
16270    ) -> igraph_error_t;
16271}
16272unsafe extern "C" {
16273    pub fn igraph_bond_percolation(
16274        graph: *const igraph_t,
16275        giant_size: *mut igraph_vector_int_t,
16276        vertex_count: *mut igraph_vector_int_t,
16277        edge_order: *const igraph_vector_int_t,
16278    ) -> igraph_error_t;
16279}
16280unsafe extern "C" {
16281    pub fn igraph_site_percolation(
16282        graph: *const igraph_t,
16283        giant_size: *mut igraph_vector_int_t,
16284        edge_count: *mut igraph_vector_int_t,
16285        vertex_order: *const igraph_vector_int_t,
16286    ) -> igraph_error_t;
16287}
16288unsafe extern "C" {
16289    pub fn igraph_edgelist_percolation(
16290        edges: *const igraph_vector_int_t,
16291        giant_size: *mut igraph_vector_int_t,
16292        vertex_count: *mut igraph_vector_int_t,
16293    ) -> igraph_error_t;
16294}
16295unsafe extern "C" {
16296    pub fn igraph_are_adjacent(
16297        graph: *const igraph_t,
16298        v1: igraph_int_t,
16299        v2: igraph_int_t,
16300        res: *mut igraph_bool_t,
16301    ) -> igraph_error_t;
16302}
16303unsafe extern "C" {
16304    pub fn igraph_count_multiple(
16305        graph: *const igraph_t,
16306        res: *mut igraph_vector_int_t,
16307        es: igraph_es_t,
16308    ) -> igraph_error_t;
16309}
16310unsafe extern "C" {
16311    pub fn igraph_count_multiple_1(
16312        graph: *const igraph_t,
16313        res: *mut igraph_int_t,
16314        eid: igraph_int_t,
16315    ) -> igraph_error_t;
16316}
16317unsafe extern "C" {
16318    pub fn igraph_density(
16319        graph: *const igraph_t,
16320        weights: *const igraph_vector_t,
16321        res: *mut igraph_real_t,
16322        loops: igraph_bool_t,
16323    ) -> igraph_error_t;
16324}
16325unsafe extern "C" {
16326    pub fn igraph_diversity(
16327        graph: *const igraph_t,
16328        weights: *const igraph_vector_t,
16329        res: *mut igraph_vector_t,
16330        vs: igraph_vs_t,
16331    ) -> igraph_error_t;
16332}
16333unsafe extern "C" {
16334    pub fn igraph_girth(
16335        graph: *const igraph_t,
16336        girth: *mut igraph_real_t,
16337        circle: *mut igraph_vector_int_t,
16338    ) -> igraph_error_t;
16339}
16340unsafe extern "C" {
16341    pub fn igraph_has_loop(graph: *const igraph_t, res: *mut igraph_bool_t) -> igraph_error_t;
16342}
16343unsafe extern "C" {
16344    pub fn igraph_has_multiple(graph: *const igraph_t, res: *mut igraph_bool_t) -> igraph_error_t;
16345}
16346unsafe extern "C" {
16347    pub fn igraph_count_loops(
16348        graph: *const igraph_t,
16349        loop_count: *mut igraph_int_t,
16350    ) -> igraph_error_t;
16351}
16352unsafe extern "C" {
16353    pub fn igraph_is_loop(
16354        graph: *const igraph_t,
16355        res: *mut igraph_vector_bool_t,
16356        es: igraph_es_t,
16357    ) -> igraph_error_t;
16358}
16359unsafe extern "C" {
16360    pub fn igraph_is_multiple(
16361        graph: *const igraph_t,
16362        res: *mut igraph_vector_bool_t,
16363        es: igraph_es_t,
16364    ) -> igraph_error_t;
16365}
16366unsafe extern "C" {
16367    pub fn igraph_is_mutual(
16368        graph: *const igraph_t,
16369        res: *mut igraph_vector_bool_t,
16370        es: igraph_es_t,
16371        loops: igraph_bool_t,
16372    ) -> igraph_error_t;
16373}
16374unsafe extern "C" {
16375    pub fn igraph_has_mutual(
16376        graph: *const igraph_t,
16377        res: *mut igraph_bool_t,
16378        loops: igraph_bool_t,
16379    ) -> igraph_error_t;
16380}
16381unsafe extern "C" {
16382    pub fn igraph_is_simple(
16383        graph: *const igraph_t,
16384        res: *mut igraph_bool_t,
16385        directed: igraph_bool_t,
16386    ) -> igraph_error_t;
16387}
16388unsafe extern "C" {
16389    pub fn igraph_is_tree(
16390        graph: *const igraph_t,
16391        res: *mut igraph_bool_t,
16392        root: *mut igraph_int_t,
16393        mode: igraph_neimode_t,
16394    ) -> igraph_error_t;
16395}
16396unsafe extern "C" {
16397    pub fn igraph_is_acyclic(graph: *const igraph_t, res: *mut igraph_bool_t) -> igraph_error_t;
16398}
16399unsafe extern "C" {
16400    pub fn igraph_is_forest(
16401        graph: *const igraph_t,
16402        res: *mut igraph_bool_t,
16403        roots: *mut igraph_vector_int_t,
16404        mode: igraph_neimode_t,
16405    ) -> igraph_error_t;
16406}
16407unsafe extern "C" {
16408    pub fn igraph_maxdegree(
16409        graph: *const igraph_t,
16410        res: *mut igraph_int_t,
16411        vids: igraph_vs_t,
16412        mode: igraph_neimode_t,
16413        loops: igraph_loops_t,
16414    ) -> igraph_error_t;
16415}
16416unsafe extern "C" {
16417    pub fn igraph_mean_degree(
16418        graph: *const igraph_t,
16419        res: *mut igraph_real_t,
16420        loops: igraph_bool_t,
16421    ) -> igraph_error_t;
16422}
16423unsafe extern "C" {
16424    pub fn igraph_reciprocity(
16425        graph: *const igraph_t,
16426        res: *mut igraph_real_t,
16427        ignore_loops: igraph_bool_t,
16428        mode: igraph_reciprocity_t,
16429    ) -> igraph_error_t;
16430}
16431unsafe extern "C" {
16432    pub fn igraph_strength(
16433        graph: *const igraph_t,
16434        res: *mut igraph_vector_t,
16435        vids: igraph_vs_t,
16436        mode: igraph_neimode_t,
16437        loops: igraph_loops_t,
16438        weights: *const igraph_vector_t,
16439    ) -> igraph_error_t;
16440}
16441unsafe extern "C" {
16442    pub fn igraph_sort_vertex_ids_by_degree(
16443        graph: *const igraph_t,
16444        outvids: *mut igraph_vector_int_t,
16445        vids: igraph_vs_t,
16446        mode: igraph_neimode_t,
16447        loops: igraph_loops_t,
16448        order: igraph_order_t,
16449        only_indices: igraph_bool_t,
16450    ) -> igraph_error_t;
16451}
16452unsafe extern "C" {
16453    pub fn igraph_is_perfect(graph: *const igraph_t, perfect: *mut igraph_bool_t)
16454    -> igraph_error_t;
16455}
16456unsafe extern "C" {
16457    pub fn igraph_is_complete(graph: *const igraph_t, res: *mut igraph_bool_t) -> igraph_error_t;
16458}
16459unsafe extern "C" {
16460    pub fn igraph_is_clique(
16461        graph: *const igraph_t,
16462        candidate: igraph_vs_t,
16463        directed: igraph_bool_t,
16464        res: *mut igraph_bool_t,
16465    ) -> igraph_error_t;
16466}
16467unsafe extern "C" {
16468    pub fn igraph_is_independent_vertex_set(
16469        graph: *const igraph_t,
16470        candidate: igraph_vs_t,
16471        res: *mut igraph_bool_t,
16472    ) -> igraph_error_t;
16473}
16474unsafe extern "C" {
16475    pub fn igraph_minimum_spanning_tree(
16476        graph: *const igraph_t,
16477        res: *mut igraph_vector_int_t,
16478        weights: *const igraph_vector_t,
16479        method: igraph_mst_algorithm_t,
16480    ) -> igraph_error_t;
16481}
16482unsafe extern "C" {
16483    pub fn igraph_random_spanning_tree(
16484        graph: *const igraph_t,
16485        res: *mut igraph_vector_int_t,
16486        vid: igraph_int_t,
16487    ) -> igraph_error_t;
16488}
16489unsafe extern "C" {
16490    pub fn igraph_subcomponent(
16491        graph: *const igraph_t,
16492        res: *mut igraph_vector_int_t,
16493        vid: igraph_int_t,
16494        mode: igraph_neimode_t,
16495    ) -> igraph_error_t;
16496}
16497unsafe extern "C" {
16498    pub fn igraph_unfold_tree(
16499        graph: *const igraph_t,
16500        tree: *mut igraph_t,
16501        mode: igraph_neimode_t,
16502        roots: *const igraph_vector_int_t,
16503        vertex_index: *mut igraph_vector_int_t,
16504    ) -> igraph_error_t;
16505}
16506unsafe extern "C" {
16507    pub fn igraph_maximum_cardinality_search(
16508        graph: *const igraph_t,
16509        alpha: *mut igraph_vector_int_t,
16510        alpham1: *mut igraph_vector_int_t,
16511    ) -> igraph_error_t;
16512}
16513unsafe extern "C" {
16514    pub fn igraph_is_chordal(
16515        graph: *const igraph_t,
16516        alpha: *const igraph_vector_int_t,
16517        alpham1: *const igraph_vector_int_t,
16518        chordal: *mut igraph_bool_t,
16519        fill_in: *mut igraph_vector_int_t,
16520        newgraph: *mut igraph_t,
16521    ) -> igraph_error_t;
16522}
16523unsafe extern "C" {
16524    pub fn igraph_avg_nearest_neighbor_degree(
16525        graph: *const igraph_t,
16526        vids: igraph_vs_t,
16527        mode: igraph_neimode_t,
16528        neighbor_degree_mode: igraph_neimode_t,
16529        knn: *mut igraph_vector_t,
16530        knnk: *mut igraph_vector_t,
16531        weights: *const igraph_vector_t,
16532    ) -> igraph_error_t;
16533}
16534unsafe extern "C" {
16535    pub fn igraph_degree_correlation_vector(
16536        graph: *const igraph_t,
16537        weights: *const igraph_vector_t,
16538        knnk: *mut igraph_vector_t,
16539        from_mode: igraph_neimode_t,
16540        to_mode: igraph_neimode_t,
16541        directed_neighbors: igraph_bool_t,
16542    ) -> igraph_error_t;
16543}
16544unsafe extern "C" {
16545    pub fn igraph_rich_club_sequence(
16546        graph: *const igraph_t,
16547        weights: *const igraph_vector_t,
16548        res: *mut igraph_vector_t,
16549        vertex_order: *const igraph_vector_int_t,
16550        normalized: igraph_bool_t,
16551        loops: igraph_bool_t,
16552        directed: igraph_bool_t,
16553    ) -> igraph_error_t;
16554}
16555pub const igraph_laplacian_normalization_t_IGRAPH_LAPLACIAN_UNNORMALIZED:
16556    igraph_laplacian_normalization_t = 0;
16557pub const igraph_laplacian_normalization_t_IGRAPH_LAPLACIAN_SYMMETRIC:
16558    igraph_laplacian_normalization_t = 1;
16559pub const igraph_laplacian_normalization_t_IGRAPH_LAPLACIAN_LEFT: igraph_laplacian_normalization_t =
16560    2;
16561pub const igraph_laplacian_normalization_t_IGRAPH_LAPLACIAN_RIGHT:
16562    igraph_laplacian_normalization_t = 3;
16563#[doc = " \\typedef igraph_laplacian_normalization_t\n \\brief Normalization methods for a Laplacian matrix.\n\n Normalization methods for \\ref igraph_get_laplacian() and\n \\ref igraph_get_laplacian_sparse(). In the following, \\c A refers to the\n (possibly weighted) adjacency matrix and \\c D is a diagonal matrix containing\n degrees (unweighted case) or strengths (weighted case). Out-, in- or total degrees\n are used according to the \\p mode parameter.\n\n \\enumval IGRAPH_LAPLACIAN_UNNORMALIZED Unnormalized Laplacian, <code>L = D - A</code>.\n \\enumval IGRAPH_LAPLACIAN_SYMMETRIC Symmetrically normalized Laplacian, <code>L = I - D^(-1/2) A D^(-1/2)</code>.\n \\enumval IGRAPH_LAPLACIAN_LEFT Left-stochastic normalized Laplacian, <code>L = I - D^-1 A</code>.\n \\enumval IGRAPH_LAPLACIAN_RIGHT Right-stochastic normalized Laplacian, <code>L = I - A D^-1</code>."]
16564pub type igraph_laplacian_normalization_t = ::std::os::raw::c_uint;
16565unsafe extern "C" {
16566    pub fn igraph_get_laplacian(
16567        graph: *const igraph_t,
16568        res: *mut igraph_matrix_t,
16569        mode: igraph_neimode_t,
16570        normalization: igraph_laplacian_normalization_t,
16571        weights: *const igraph_vector_t,
16572    ) -> igraph_error_t;
16573}
16574unsafe extern "C" {
16575    pub fn igraph_get_laplacian_sparse(
16576        graph: *const igraph_t,
16577        sparseres: *mut igraph_sparsemat_t,
16578        mode: igraph_neimode_t,
16579        normalization: igraph_laplacian_normalization_t,
16580        weights: *const igraph_vector_t,
16581    ) -> igraph_error_t;
16582}
16583unsafe extern "C" {
16584    pub fn igraph_transitivity_undirected(
16585        graph: *const igraph_t,
16586        res: *mut igraph_real_t,
16587        mode: igraph_transitivity_mode_t,
16588    ) -> igraph_error_t;
16589}
16590unsafe extern "C" {
16591    pub fn igraph_transitivity_local_undirected(
16592        graph: *const igraph_t,
16593        res: *mut igraph_vector_t,
16594        vids: igraph_vs_t,
16595        mode: igraph_transitivity_mode_t,
16596    ) -> igraph_error_t;
16597}
16598unsafe extern "C" {
16599    pub fn igraph_transitivity_avglocal_undirected(
16600        graph: *const igraph_t,
16601        res: *mut igraph_real_t,
16602        mode: igraph_transitivity_mode_t,
16603    ) -> igraph_error_t;
16604}
16605unsafe extern "C" {
16606    pub fn igraph_transitivity_barrat(
16607        graph: *const igraph_t,
16608        res: *mut igraph_vector_t,
16609        vids: igraph_vs_t,
16610        weights: *const igraph_vector_t,
16611        mode: igraph_transitivity_mode_t,
16612    ) -> igraph_error_t;
16613}
16614unsafe extern "C" {
16615    pub fn igraph_ecc(
16616        graph: *const igraph_t,
16617        res: *mut igraph_vector_t,
16618        eids: igraph_es_t,
16619        k: igraph_int_t,
16620        offset: igraph_bool_t,
16621        normalize: igraph_bool_t,
16622    ) -> igraph_error_t;
16623}
16624unsafe extern "C" {
16625    pub fn igraph_neighborhood_size(
16626        graph: *const igraph_t,
16627        res: *mut igraph_vector_int_t,
16628        vids: igraph_vs_t,
16629        order: igraph_int_t,
16630        mode: igraph_neimode_t,
16631        mindist: igraph_int_t,
16632    ) -> igraph_error_t;
16633}
16634unsafe extern "C" {
16635    pub fn igraph_neighborhood(
16636        graph: *const igraph_t,
16637        res: *mut igraph_vector_int_list_t,
16638        vids: igraph_vs_t,
16639        order: igraph_int_t,
16640        mode: igraph_neimode_t,
16641        mindist: igraph_int_t,
16642    ) -> igraph_error_t;
16643}
16644unsafe extern "C" {
16645    pub fn igraph_neighborhood_graphs(
16646        graph: *const igraph_t,
16647        res: *mut igraph_graph_list_t,
16648        vids: igraph_vs_t,
16649        order: igraph_int_t,
16650        mode: igraph_neimode_t,
16651        mindist: igraph_int_t,
16652    ) -> igraph_error_t;
16653}
16654unsafe extern "C" {
16655    pub fn igraph_simplify_and_colorize(
16656        graph: *const igraph_t,
16657        res: *mut igraph_t,
16658        vertex_color: *mut igraph_vector_int_t,
16659        edge_color: *mut igraph_vector_int_t,
16660    ) -> igraph_error_t;
16661}
16662unsafe extern "C" {
16663    pub fn igraph_invert_permutation(
16664        permutation: *const igraph_vector_int_t,
16665        inverse: *mut igraph_vector_int_t,
16666    ) -> igraph_error_t;
16667}
16668unsafe extern "C" {
16669    pub fn igraph_isomorphic(
16670        graph1: *const igraph_t,
16671        graph2: *const igraph_t,
16672        iso: *mut igraph_bool_t,
16673    ) -> igraph_error_t;
16674}
16675unsafe extern "C" {
16676    pub fn igraph_subisomorphic(
16677        graph1: *const igraph_t,
16678        graph2: *const igraph_t,
16679        iso: *mut igraph_bool_t,
16680    ) -> igraph_error_t;
16681}
16682unsafe extern "C" {
16683    pub fn igraph_count_automorphisms(
16684        graph: *const igraph_t,
16685        colors: *const igraph_vector_int_t,
16686        result: *mut igraph_real_t,
16687    ) -> igraph_error_t;
16688}
16689unsafe extern "C" {
16690    pub fn igraph_automorphism_group(
16691        graph: *const igraph_t,
16692        colors: *const igraph_vector_int_t,
16693        generators: *mut igraph_vector_int_list_t,
16694    ) -> igraph_error_t;
16695}
16696unsafe extern "C" {
16697    pub fn igraph_canonical_permutation(
16698        graph: *const igraph_t,
16699        colors: *const igraph_vector_int_t,
16700        labeling: *mut igraph_vector_int_t,
16701    ) -> igraph_error_t;
16702}
16703unsafe extern "C" {
16704    pub fn igraph_subisomorphic_lad(
16705        pattern: *const igraph_t,
16706        target: *const igraph_t,
16707        domains: *const igraph_vector_int_list_t,
16708        iso: *mut igraph_bool_t,
16709        map: *mut igraph_vector_int_t,
16710        maps: *mut igraph_vector_int_list_t,
16711        induced: igraph_bool_t,
16712    ) -> igraph_error_t;
16713}
16714#[doc = " \\typedef igraph_isohandler_t\n Callback type, called when an isomorphism was found\n\n See the details at the documentation of \\ref\n igraph_get_isomorphisms_vf2_callback().\n \\param map12 The mapping from the first graph to the second.\n \\param map21 The mapping from the second graph to the first, the\n   inverse of \\p map12 basically.\n \\param arg This extra argument was passed to \\ref\n   igraph_get_isomorphisms_vf2_callback() when it was called.\n \\return \\c IGRAPH_SUCCESS to continue the search, \\c IGRAPH_STOP to\n   terminate the search. Any other return value is interpreted as an\n   igraph error code, which will then abort the search and return the\n   same error code from the caller function."]
16715pub type igraph_isohandler_t = ::std::option::Option<
16716    unsafe extern "C" fn(
16717        map12: *const igraph_vector_int_t,
16718        map21: *const igraph_vector_int_t,
16719        arg: *mut ::std::os::raw::c_void,
16720    ) -> igraph_error_t,
16721>;
16722#[doc = " \\typedef igraph_isocompat_t\n Callback type, called to check whether two vertices or edges are compatible\n\n VF2 (subgraph) isomorphism functions can be restricted by defining\n relations on the vertices and/or edges of the graphs, and then checking\n whether the vertices (edges) match according to these relations.\n\n </para><para>This feature is implemented by two callbacks, one for\n vertices, one for edges. Every time igraph tries to match a vertex (edge)\n of the first (sub)graph to a vertex of the second graph, the vertex\n (edge) compatibility callback is called. The callback returns a\n logical value, giving whether the two vertices match.\n\n </para><para>Both callback functions are of type \\c igraph_isocompat_t.\n \\param graph1 The first graph.\n \\param graph2 The second graph.\n \\param g1_num The id of a vertex or edge in the first graph.\n \\param g2_num The id of a vertex or edge in the second graph.\n \\param arg Extra argument to pass to the callback functions.\n \\return Logical scalar, whether vertex (or edge) \\p g1_num in \\p graph1\n    is compatible with vertex (or edge) \\p g2_num in \\p graph2."]
16723pub type igraph_isocompat_t = ::std::option::Option<
16724    unsafe extern "C" fn(
16725        graph1: *const igraph_t,
16726        graph2: *const igraph_t,
16727        g1_num: igraph_int_t,
16728        g2_num: igraph_int_t,
16729        arg: *mut ::std::os::raw::c_void,
16730    ) -> igraph_bool_t,
16731>;
16732unsafe extern "C" {
16733    pub fn igraph_isomorphic_vf2(
16734        graph1: *const igraph_t,
16735        graph2: *const igraph_t,
16736        vertex_color1: *const igraph_vector_int_t,
16737        vertex_color2: *const igraph_vector_int_t,
16738        edge_color1: *const igraph_vector_int_t,
16739        edge_color2: *const igraph_vector_int_t,
16740        iso: *mut igraph_bool_t,
16741        map12: *mut igraph_vector_int_t,
16742        map21: *mut igraph_vector_int_t,
16743        node_compat_fn: igraph_isocompat_t,
16744        edge_compat_fn: igraph_isocompat_t,
16745        arg: *mut ::std::os::raw::c_void,
16746    ) -> igraph_error_t;
16747}
16748unsafe extern "C" {
16749    pub fn igraph_count_isomorphisms_vf2(
16750        graph1: *const igraph_t,
16751        graph2: *const igraph_t,
16752        vertex_color1: *const igraph_vector_int_t,
16753        vertex_color2: *const igraph_vector_int_t,
16754        edge_color1: *const igraph_vector_int_t,
16755        edge_color2: *const igraph_vector_int_t,
16756        count: *mut igraph_int_t,
16757        node_compat_fn: igraph_isocompat_t,
16758        edge_compat_fn: igraph_isocompat_t,
16759        arg: *mut ::std::os::raw::c_void,
16760    ) -> igraph_error_t;
16761}
16762unsafe extern "C" {
16763    pub fn igraph_get_isomorphisms_vf2(
16764        graph1: *const igraph_t,
16765        graph2: *const igraph_t,
16766        vertex_color1: *const igraph_vector_int_t,
16767        vertex_color2: *const igraph_vector_int_t,
16768        edge_color1: *const igraph_vector_int_t,
16769        edge_color2: *const igraph_vector_int_t,
16770        maps: *mut igraph_vector_int_list_t,
16771        node_compat_fn: igraph_isocompat_t,
16772        edge_compat_fn: igraph_isocompat_t,
16773        arg: *mut ::std::os::raw::c_void,
16774    ) -> igraph_error_t;
16775}
16776unsafe extern "C" {
16777    pub fn igraph_get_isomorphisms_vf2_callback(
16778        graph1: *const igraph_t,
16779        graph2: *const igraph_t,
16780        vertex_color1: *const igraph_vector_int_t,
16781        vertex_color2: *const igraph_vector_int_t,
16782        edge_color1: *const igraph_vector_int_t,
16783        edge_color2: *const igraph_vector_int_t,
16784        map12: *mut igraph_vector_int_t,
16785        map21: *mut igraph_vector_int_t,
16786        isohandler_fn: igraph_isohandler_t,
16787        node_compat_fn: igraph_isocompat_t,
16788        edge_compat_fn: igraph_isocompat_t,
16789        arg: *mut ::std::os::raw::c_void,
16790    ) -> igraph_error_t;
16791}
16792unsafe extern "C" {
16793    pub fn igraph_subisomorphic_vf2(
16794        graph1: *const igraph_t,
16795        graph2: *const igraph_t,
16796        vertex_color1: *const igraph_vector_int_t,
16797        vertex_color2: *const igraph_vector_int_t,
16798        edge_color1: *const igraph_vector_int_t,
16799        edge_color2: *const igraph_vector_int_t,
16800        iso: *mut igraph_bool_t,
16801        map12: *mut igraph_vector_int_t,
16802        map21: *mut igraph_vector_int_t,
16803        node_compat_fn: igraph_isocompat_t,
16804        edge_compat_fn: igraph_isocompat_t,
16805        arg: *mut ::std::os::raw::c_void,
16806    ) -> igraph_error_t;
16807}
16808unsafe extern "C" {
16809    pub fn igraph_count_subisomorphisms_vf2(
16810        graph1: *const igraph_t,
16811        graph2: *const igraph_t,
16812        vertex_color1: *const igraph_vector_int_t,
16813        vertex_color2: *const igraph_vector_int_t,
16814        edge_color1: *const igraph_vector_int_t,
16815        edge_color2: *const igraph_vector_int_t,
16816        count: *mut igraph_int_t,
16817        node_compat_fn: igraph_isocompat_t,
16818        edge_compat_fn: igraph_isocompat_t,
16819        arg: *mut ::std::os::raw::c_void,
16820    ) -> igraph_error_t;
16821}
16822unsafe extern "C" {
16823    pub fn igraph_get_subisomorphisms_vf2(
16824        graph1: *const igraph_t,
16825        graph2: *const igraph_t,
16826        vertex_color1: *const igraph_vector_int_t,
16827        vertex_color2: *const igraph_vector_int_t,
16828        edge_color1: *const igraph_vector_int_t,
16829        edge_color2: *const igraph_vector_int_t,
16830        maps: *mut igraph_vector_int_list_t,
16831        node_compat_fn: igraph_isocompat_t,
16832        edge_compat_fn: igraph_isocompat_t,
16833        arg: *mut ::std::os::raw::c_void,
16834    ) -> igraph_error_t;
16835}
16836unsafe extern "C" {
16837    pub fn igraph_get_subisomorphisms_vf2_callback(
16838        graph1: *const igraph_t,
16839        graph2: *const igraph_t,
16840        vertex_color1: *const igraph_vector_int_t,
16841        vertex_color2: *const igraph_vector_int_t,
16842        edge_color1: *const igraph_vector_int_t,
16843        edge_color2: *const igraph_vector_int_t,
16844        map12: *mut igraph_vector_int_t,
16845        map21: *mut igraph_vector_int_t,
16846        isohandler_fn: igraph_isohandler_t,
16847        node_compat_fn: igraph_isocompat_t,
16848        edge_compat_fn: igraph_isocompat_t,
16849        arg: *mut ::std::os::raw::c_void,
16850    ) -> igraph_error_t;
16851}
16852#[doc = " \\struct igraph_bliss_info_t\n \\brief Information about a Bliss run.\n\n Some secondary information found by the Bliss algorithm is stored\n here. It is useful if you wany to study the internal working of the\n algorithm.\n\n \\member nof_nodes The number of nodes in the search tree.\n \\member nof_leaf_nodes The number of leaf nodes in the search tree.\n \\member nof_bad_nodes Number of bad nodes.\n \\member nof_canupdates Number of canrep updates.\n \\member nof_generators Number of generators of the automorphism group.\n \\member max_level Maximum level.\n \\member group_size The size of the automorphism group of the graph,\n    given as a string. It should be deallocated via\n    \\ref igraph_free() if not needed any more.\n\n See https://users.aalto.fi/~tjunttil/bliss/\n for details about the algorithm and these parameters."]
16853#[repr(C)]
16854#[derive(Debug, Copy, Clone)]
16855pub struct igraph_bliss_info_t {
16856    pub nof_nodes: ::std::os::raw::c_ulong,
16857    pub nof_leaf_nodes: ::std::os::raw::c_ulong,
16858    pub nof_bad_nodes: ::std::os::raw::c_ulong,
16859    pub nof_canupdates: ::std::os::raw::c_ulong,
16860    pub nof_generators: ::std::os::raw::c_ulong,
16861    pub max_level: ::std::os::raw::c_ulong,
16862    pub group_size: *mut ::std::os::raw::c_char,
16863}
16864#[allow(clippy::unnecessary_operation, clippy::identity_op)]
16865const _: () = {
16866    ["Size of igraph_bliss_info_t"][::std::mem::size_of::<igraph_bliss_info_t>() - 56usize];
16867    ["Alignment of igraph_bliss_info_t"][::std::mem::align_of::<igraph_bliss_info_t>() - 8usize];
16868    ["Offset of field: igraph_bliss_info_t::nof_nodes"]
16869        [::std::mem::offset_of!(igraph_bliss_info_t, nof_nodes) - 0usize];
16870    ["Offset of field: igraph_bliss_info_t::nof_leaf_nodes"]
16871        [::std::mem::offset_of!(igraph_bliss_info_t, nof_leaf_nodes) - 8usize];
16872    ["Offset of field: igraph_bliss_info_t::nof_bad_nodes"]
16873        [::std::mem::offset_of!(igraph_bliss_info_t, nof_bad_nodes) - 16usize];
16874    ["Offset of field: igraph_bliss_info_t::nof_canupdates"]
16875        [::std::mem::offset_of!(igraph_bliss_info_t, nof_canupdates) - 24usize];
16876    ["Offset of field: igraph_bliss_info_t::nof_generators"]
16877        [::std::mem::offset_of!(igraph_bliss_info_t, nof_generators) - 32usize];
16878    ["Offset of field: igraph_bliss_info_t::max_level"]
16879        [::std::mem::offset_of!(igraph_bliss_info_t, max_level) - 40usize];
16880    ["Offset of field: igraph_bliss_info_t::group_size"]
16881        [::std::mem::offset_of!(igraph_bliss_info_t, group_size) - 48usize];
16882};
16883pub const igraph_bliss_sh_t_IGRAPH_BLISS_F: igraph_bliss_sh_t = 0;
16884pub const igraph_bliss_sh_t_IGRAPH_BLISS_FL: igraph_bliss_sh_t = 1;
16885pub const igraph_bliss_sh_t_IGRAPH_BLISS_FS: igraph_bliss_sh_t = 2;
16886pub const igraph_bliss_sh_t_IGRAPH_BLISS_FM: igraph_bliss_sh_t = 3;
16887pub const igraph_bliss_sh_t_IGRAPH_BLISS_FLM: igraph_bliss_sh_t = 4;
16888pub const igraph_bliss_sh_t_IGRAPH_BLISS_FSM: igraph_bliss_sh_t = 5;
16889#[doc = " \\typedef igraph_bliss_sh_t\n \\brief Splitting heuristics for Bliss.\n\n \\c IGRAPH_BLISS_FL provides good performance for many graphs, and is a reasonable\n default choice. \\c IGRAPH_BLISS_FSM is recommended for graphs that have some\n combinatorial structure, and is the default of the Bliss library's command\n line tool.\n\n \\enumval IGRAPH_BLISS_F First non-singleton cell.\n \\enumval IGRAPH_BLISS_FL First largest non-singleton cell.\n \\enumval IGRAPH_BLISS_FS First smallest non-singleton cell.\n \\enumval IGRAPH_BLISS_FM First maximally non-trivially connected\n      non-singleton cell.\n \\enumval IGRAPH_BLISS_FLM Largest maximally non-trivially connected\n      non-singleton cell.\n \\enumval IGRAPH_BLISS_FSM Smallest maximally non-trivially\n      connected non-singleton cell."]
16890pub type igraph_bliss_sh_t = ::std::os::raw::c_uint;
16891unsafe extern "C" {
16892    pub fn igraph_canonical_permutation_bliss(
16893        graph: *const igraph_t,
16894        colors: *const igraph_vector_int_t,
16895        labeling: *mut igraph_vector_int_t,
16896        sh: igraph_bliss_sh_t,
16897        info: *mut igraph_bliss_info_t,
16898    ) -> igraph_error_t;
16899}
16900unsafe extern "C" {
16901    pub fn igraph_isomorphic_bliss(
16902        graph1: *const igraph_t,
16903        graph2: *const igraph_t,
16904        colors1: *const igraph_vector_int_t,
16905        colors2: *const igraph_vector_int_t,
16906        iso: *mut igraph_bool_t,
16907        map12: *mut igraph_vector_int_t,
16908        map21: *mut igraph_vector_int_t,
16909        sh: igraph_bliss_sh_t,
16910        info1: *mut igraph_bliss_info_t,
16911        info2: *mut igraph_bliss_info_t,
16912    ) -> igraph_error_t;
16913}
16914unsafe extern "C" {
16915    pub fn igraph_count_automorphisms_bliss(
16916        graph: *const igraph_t,
16917        colors: *const igraph_vector_int_t,
16918        sh: igraph_bliss_sh_t,
16919        info: *mut igraph_bliss_info_t,
16920    ) -> igraph_error_t;
16921}
16922unsafe extern "C" {
16923    pub fn igraph_automorphism_group_bliss(
16924        graph: *const igraph_t,
16925        colors: *const igraph_vector_int_t,
16926        generators: *mut igraph_vector_int_list_t,
16927        sh: igraph_bliss_sh_t,
16928        info: *mut igraph_bliss_info_t,
16929    ) -> igraph_error_t;
16930}
16931unsafe extern "C" {
16932    pub fn igraph_isoclass(graph: *const igraph_t, isoclass: *mut igraph_int_t) -> igraph_error_t;
16933}
16934unsafe extern "C" {
16935    pub fn igraph_isoclass_subgraph(
16936        graph: *const igraph_t,
16937        vids: igraph_vs_t,
16938        isoclass: *mut igraph_int_t,
16939    ) -> igraph_error_t;
16940}
16941unsafe extern "C" {
16942    pub fn igraph_isoclass_create(
16943        graph: *mut igraph_t,
16944        size: igraph_int_t,
16945        number: igraph_int_t,
16946        directed: igraph_bool_t,
16947    ) -> igraph_error_t;
16948}
16949unsafe extern "C" {
16950    pub fn igraph_graph_count(
16951        n: igraph_int_t,
16952        directed: igraph_bool_t,
16953        count: *mut igraph_int_t,
16954    ) -> igraph_error_t;
16955}
16956unsafe extern "C" {
16957    pub fn igraph_full_bipartite(
16958        graph: *mut igraph_t,
16959        types: *mut igraph_vector_bool_t,
16960        n1: igraph_int_t,
16961        n2: igraph_int_t,
16962        directed: igraph_bool_t,
16963        mode: igraph_neimode_t,
16964    ) -> igraph_error_t;
16965}
16966unsafe extern "C" {
16967    pub fn igraph_create_bipartite(
16968        g: *mut igraph_t,
16969        types: *const igraph_vector_bool_t,
16970        edges: *const igraph_vector_int_t,
16971        directed: igraph_bool_t,
16972    ) -> igraph_error_t;
16973}
16974unsafe extern "C" {
16975    pub fn igraph_bipartite_projection_size(
16976        graph: *const igraph_t,
16977        types: *const igraph_vector_bool_t,
16978        vcount1: *mut igraph_int_t,
16979        ecount1: *mut igraph_int_t,
16980        vcount2: *mut igraph_int_t,
16981        ecount2: *mut igraph_int_t,
16982    ) -> igraph_error_t;
16983}
16984unsafe extern "C" {
16985    pub fn igraph_bipartite_projection(
16986        graph: *const igraph_t,
16987        types: *const igraph_vector_bool_t,
16988        proj1: *mut igraph_t,
16989        proj2: *mut igraph_t,
16990        multiplicity1: *mut igraph_vector_int_t,
16991        multiplicity2: *mut igraph_vector_int_t,
16992        probe1: igraph_int_t,
16993    ) -> igraph_error_t;
16994}
16995unsafe extern "C" {
16996    pub fn igraph_biadjacency(
16997        graph: *mut igraph_t,
16998        types: *mut igraph_vector_bool_t,
16999        biadjmatrix: *const igraph_matrix_t,
17000        directed: igraph_bool_t,
17001        mode: igraph_neimode_t,
17002        multiple: igraph_bool_t,
17003    ) -> igraph_error_t;
17004}
17005unsafe extern "C" {
17006    pub fn igraph_weighted_biadjacency(
17007        graph: *mut igraph_t,
17008        types: *mut igraph_vector_bool_t,
17009        weights: *mut igraph_vector_t,
17010        biadjmatrix: *const igraph_matrix_t,
17011        directed: igraph_bool_t,
17012        mode: igraph_neimode_t,
17013    ) -> igraph_error_t;
17014}
17015unsafe extern "C" {
17016    pub fn igraph_get_biadjacency(
17017        graph: *const igraph_t,
17018        types: *const igraph_vector_bool_t,
17019        weights: *const igraph_vector_t,
17020        res: *mut igraph_matrix_t,
17021        row_ids: *mut igraph_vector_int_t,
17022        col_ids: *mut igraph_vector_int_t,
17023    ) -> igraph_error_t;
17024}
17025unsafe extern "C" {
17026    pub fn igraph_is_bipartite(
17027        graph: *const igraph_t,
17028        res: *mut igraph_bool_t,
17029        types: *mut igraph_vector_bool_t,
17030    ) -> igraph_error_t;
17031}
17032unsafe extern "C" {
17033    pub fn igraph_bipartite_game_gnp(
17034        graph: *mut igraph_t,
17035        types: *mut igraph_vector_bool_t,
17036        n1: igraph_int_t,
17037        n2: igraph_int_t,
17038        p: igraph_real_t,
17039        directed: igraph_bool_t,
17040        mode: igraph_neimode_t,
17041        allowed_edge_types: igraph_edge_type_sw_t,
17042        edge_labeled: igraph_bool_t,
17043    ) -> igraph_error_t;
17044}
17045unsafe extern "C" {
17046    pub fn igraph_bipartite_game_gnm(
17047        graph: *mut igraph_t,
17048        types: *mut igraph_vector_bool_t,
17049        n1: igraph_int_t,
17050        n2: igraph_int_t,
17051        m: igraph_int_t,
17052        directed: igraph_bool_t,
17053        mode: igraph_neimode_t,
17054        allowed_edge_types: igraph_edge_type_sw_t,
17055        edge_labeled: igraph_bool_t,
17056    ) -> igraph_error_t;
17057}
17058unsafe extern "C" {
17059    pub fn igraph_bipartite_iea_game(
17060        graph: *mut igraph_t,
17061        types: *mut igraph_vector_bool_t,
17062        n1: igraph_int_t,
17063        n2: igraph_int_t,
17064        m: igraph_int_t,
17065        directed: igraph_bool_t,
17066        mode: igraph_neimode_t,
17067    ) -> igraph_error_t;
17068}
17069unsafe extern "C" {
17070    pub fn igraph_maximal_cliques(
17071        graph: *const igraph_t,
17072        res: *mut igraph_vector_int_list_t,
17073        min_size: igraph_int_t,
17074        max_size: igraph_int_t,
17075        max_results: igraph_int_t,
17076    ) -> igraph_error_t;
17077}
17078unsafe extern "C" {
17079    pub fn igraph_maximal_cliques_file(
17080        graph: *const igraph_t,
17081        outfile: *mut FILE,
17082        min_size: igraph_int_t,
17083        max_size: igraph_int_t,
17084        max_results: igraph_int_t,
17085    ) -> igraph_error_t;
17086}
17087unsafe extern "C" {
17088    pub fn igraph_maximal_cliques_count(
17089        graph: *const igraph_t,
17090        res: *mut igraph_int_t,
17091        min_size: igraph_int_t,
17092        max_size: igraph_int_t,
17093    ) -> igraph_error_t;
17094}
17095unsafe extern "C" {
17096    pub fn igraph_maximal_cliques_subset(
17097        graph: *const igraph_t,
17098        subset: *const igraph_vector_int_t,
17099        res: *mut igraph_vector_int_list_t,
17100        no: *mut igraph_int_t,
17101        outfile: *mut FILE,
17102        min_size: igraph_int_t,
17103        max_size: igraph_int_t,
17104        max_results: igraph_int_t,
17105    ) -> igraph_error_t;
17106}
17107unsafe extern "C" {
17108    pub fn igraph_maximal_cliques_hist(
17109        graph: *const igraph_t,
17110        hist: *mut igraph_vector_t,
17111        min_size: igraph_int_t,
17112        max_size: igraph_int_t,
17113    ) -> igraph_error_t;
17114}
17115unsafe extern "C" {
17116    pub fn igraph_cliques(
17117        graph: *const igraph_t,
17118        res: *mut igraph_vector_int_list_t,
17119        min_size: igraph_int_t,
17120        max_size: igraph_int_t,
17121        max_results: igraph_int_t,
17122    ) -> igraph_error_t;
17123}
17124unsafe extern "C" {
17125    pub fn igraph_clique_size_hist(
17126        graph: *const igraph_t,
17127        hist: *mut igraph_vector_t,
17128        min_size: igraph_int_t,
17129        max_size: igraph_int_t,
17130    ) -> igraph_error_t;
17131}
17132unsafe extern "C" {
17133    pub fn igraph_largest_cliques(
17134        graph: *const igraph_t,
17135        cliques: *mut igraph_vector_int_list_t,
17136    ) -> igraph_error_t;
17137}
17138unsafe extern "C" {
17139    pub fn igraph_clique_number(graph: *const igraph_t, no: *mut igraph_int_t) -> igraph_error_t;
17140}
17141unsafe extern "C" {
17142    pub fn igraph_weighted_cliques(
17143        graph: *const igraph_t,
17144        vertex_weights: *const igraph_vector_t,
17145        res: *mut igraph_vector_int_list_t,
17146        maximal: igraph_bool_t,
17147        min_weight: igraph_real_t,
17148        max_weight: igraph_real_t,
17149        max_results: igraph_int_t,
17150    ) -> igraph_error_t;
17151}
17152unsafe extern "C" {
17153    pub fn igraph_largest_weighted_cliques(
17154        graph: *const igraph_t,
17155        vertex_weights: *const igraph_vector_t,
17156        res: *mut igraph_vector_int_list_t,
17157    ) -> igraph_error_t;
17158}
17159unsafe extern "C" {
17160    pub fn igraph_weighted_clique_number(
17161        graph: *const igraph_t,
17162        vertex_weights: *const igraph_vector_t,
17163        res: *mut igraph_real_t,
17164    ) -> igraph_error_t;
17165}
17166unsafe extern "C" {
17167    pub fn igraph_independent_vertex_sets(
17168        graph: *const igraph_t,
17169        res: *mut igraph_vector_int_list_t,
17170        min_size: igraph_int_t,
17171        max_size: igraph_int_t,
17172        max_results: igraph_int_t,
17173    ) -> igraph_error_t;
17174}
17175unsafe extern "C" {
17176    pub fn igraph_largest_independent_vertex_sets(
17177        graph: *const igraph_t,
17178        res: *mut igraph_vector_int_list_t,
17179    ) -> igraph_error_t;
17180}
17181unsafe extern "C" {
17182    pub fn igraph_maximal_independent_vertex_sets(
17183        graph: *const igraph_t,
17184        res: *mut igraph_vector_int_list_t,
17185        min_size: igraph_int_t,
17186        max_size: igraph_int_t,
17187        max_results: igraph_int_t,
17188    ) -> igraph_error_t;
17189}
17190unsafe extern "C" {
17191    pub fn igraph_independence_number(
17192        graph: *const igraph_t,
17193        no: *mut igraph_int_t,
17194    ) -> igraph_error_t;
17195}
17196#[doc = " \\typedef igraph_clique_handler_t\n \\brief Type of clique handler functions.\n\n Callback type, called when a clique was found.\n\n See the details at the documentation of \\ref\n igraph_cliques_callback().\n\n \\param clique The current clique. The clique is owned by the clique search\n   routine. You do not need to destroy or free it if you do not want to store\n   it; however, if you want to hold on to it for a longer period of time, you\n   need to make a copy of it on your own and store the copy itself.\n \\param arg This extra argument was passed to \\ref\n   igraph_cliques_callback() when it was called.\n \\return Error code; \\c IGRAPH_SUCCESS to continue the search or\n   \\c IGRAPH_STOP to stop the search without signaling an error."]
17197pub type igraph_clique_handler_t = ::std::option::Option<
17198    unsafe extern "C" fn(
17199        clique: *const igraph_vector_int_t,
17200        arg: *mut ::std::os::raw::c_void,
17201    ) -> igraph_error_t,
17202>;
17203unsafe extern "C" {
17204    pub fn igraph_cliques_callback(
17205        graph: *const igraph_t,
17206        min_size: igraph_int_t,
17207        max_size: igraph_int_t,
17208        cliquehandler_fn: igraph_clique_handler_t,
17209        arg: *mut ::std::os::raw::c_void,
17210    ) -> igraph_error_t;
17211}
17212unsafe extern "C" {
17213    pub fn igraph_maximal_cliques_callback(
17214        graph: *const igraph_t,
17215        min_size: igraph_int_t,
17216        max_size: igraph_int_t,
17217        cliquehandler_fn: igraph_clique_handler_t,
17218        arg: *mut ::std::os::raw::c_void,
17219    ) -> igraph_error_t;
17220}
17221unsafe extern "C" {
17222    #[doc = " \\section about_layouts\n\n <para>Layout generator functions (or at least most of them) try to place the\n vertices and edges of a graph on a 2D plane or in 3D space in a way\n which visually pleases the human eye.</para>\n\n <para>They take a graph object and a number of parameters as arguments\n and return an \\type igraph_matrix_t, in which each row gives the\n coordinates of a vertex.</para>"]
17223    pub fn igraph_layout_random(
17224        graph: *const igraph_t,
17225        res: *mut igraph_matrix_t,
17226    ) -> igraph_error_t;
17227}
17228unsafe extern "C" {
17229    pub fn igraph_layout_circle(
17230        graph: *const igraph_t,
17231        res: *mut igraph_matrix_t,
17232        order: igraph_vs_t,
17233    ) -> igraph_error_t;
17234}
17235unsafe extern "C" {
17236    pub fn igraph_layout_star(
17237        graph: *const igraph_t,
17238        res: *mut igraph_matrix_t,
17239        center: igraph_int_t,
17240        order: *const igraph_vector_int_t,
17241    ) -> igraph_error_t;
17242}
17243unsafe extern "C" {
17244    pub fn igraph_layout_grid(
17245        graph: *const igraph_t,
17246        res: *mut igraph_matrix_t,
17247        width: igraph_int_t,
17248    ) -> igraph_error_t;
17249}
17250unsafe extern "C" {
17251    pub fn igraph_layout_fruchterman_reingold(
17252        graph: *const igraph_t,
17253        res: *mut igraph_matrix_t,
17254        use_seed: igraph_bool_t,
17255        niter: igraph_int_t,
17256        start_temp: igraph_real_t,
17257        grid: igraph_layout_grid_t,
17258        weights: *const igraph_vector_t,
17259        minx: *const igraph_vector_t,
17260        maxx: *const igraph_vector_t,
17261        miny: *const igraph_vector_t,
17262        maxy: *const igraph_vector_t,
17263    ) -> igraph_error_t;
17264}
17265unsafe extern "C" {
17266    pub fn igraph_layout_kamada_kawai(
17267        graph: *const igraph_t,
17268        res: *mut igraph_matrix_t,
17269        use_seed: igraph_bool_t,
17270        maxiter: igraph_int_t,
17271        epsilon: igraph_real_t,
17272        kkconst: igraph_real_t,
17273        weights: *const igraph_vector_t,
17274        minx: *const igraph_vector_t,
17275        maxx: *const igraph_vector_t,
17276        miny: *const igraph_vector_t,
17277        maxy: *const igraph_vector_t,
17278    ) -> igraph_error_t;
17279}
17280unsafe extern "C" {
17281    pub fn igraph_layout_lgl(
17282        graph: *const igraph_t,
17283        res: *mut igraph_matrix_t,
17284        maxiter: igraph_int_t,
17285        maxdelta: igraph_real_t,
17286        area: igraph_real_t,
17287        coolexp: igraph_real_t,
17288        repulserad: igraph_real_t,
17289        cellsize: igraph_real_t,
17290        root: igraph_int_t,
17291    ) -> igraph_error_t;
17292}
17293unsafe extern "C" {
17294    pub fn igraph_layout_reingold_tilford(
17295        graph: *const igraph_t,
17296        res: *mut igraph_matrix_t,
17297        mode: igraph_neimode_t,
17298        roots: *const igraph_vector_int_t,
17299        rootlevel: *const igraph_vector_int_t,
17300    ) -> igraph_error_t;
17301}
17302unsafe extern "C" {
17303    pub fn igraph_layout_reingold_tilford_circular(
17304        graph: *const igraph_t,
17305        res: *mut igraph_matrix_t,
17306        mode: igraph_neimode_t,
17307        roots: *const igraph_vector_int_t,
17308        rootlevel: *const igraph_vector_int_t,
17309    ) -> igraph_error_t;
17310}
17311unsafe extern "C" {
17312    pub fn igraph_layout_sugiyama(
17313        graph: *const igraph_t,
17314        res: *mut igraph_matrix_t,
17315        routing: *mut igraph_matrix_list_t,
17316        layers: *const igraph_vector_int_t,
17317        hgap: igraph_real_t,
17318        vgap: igraph_real_t,
17319        maxiter: igraph_int_t,
17320        weights: *const igraph_vector_t,
17321    ) -> igraph_error_t;
17322}
17323unsafe extern "C" {
17324    pub fn igraph_layout_random_3d(
17325        graph: *const igraph_t,
17326        res: *mut igraph_matrix_t,
17327    ) -> igraph_error_t;
17328}
17329unsafe extern "C" {
17330    pub fn igraph_layout_sphere(
17331        graph: *const igraph_t,
17332        res: *mut igraph_matrix_t,
17333    ) -> igraph_error_t;
17334}
17335unsafe extern "C" {
17336    pub fn igraph_layout_grid_3d(
17337        graph: *const igraph_t,
17338        res: *mut igraph_matrix_t,
17339        width: igraph_int_t,
17340        height: igraph_int_t,
17341    ) -> igraph_error_t;
17342}
17343unsafe extern "C" {
17344    pub fn igraph_layout_fruchterman_reingold_3d(
17345        graph: *const igraph_t,
17346        res: *mut igraph_matrix_t,
17347        use_seed: igraph_bool_t,
17348        niter: igraph_int_t,
17349        start_temp: igraph_real_t,
17350        weights: *const igraph_vector_t,
17351        minx: *const igraph_vector_t,
17352        maxx: *const igraph_vector_t,
17353        miny: *const igraph_vector_t,
17354        maxy: *const igraph_vector_t,
17355        minz: *const igraph_vector_t,
17356        maxz: *const igraph_vector_t,
17357    ) -> igraph_error_t;
17358}
17359unsafe extern "C" {
17360    pub fn igraph_layout_kamada_kawai_3d(
17361        graph: *const igraph_t,
17362        res: *mut igraph_matrix_t,
17363        use_seed: igraph_bool_t,
17364        maxiter: igraph_int_t,
17365        epsilon: igraph_real_t,
17366        kkconst: igraph_real_t,
17367        weights: *const igraph_vector_t,
17368        minx: *const igraph_vector_t,
17369        maxx: *const igraph_vector_t,
17370        miny: *const igraph_vector_t,
17371        maxy: *const igraph_vector_t,
17372        minz: *const igraph_vector_t,
17373        maxz: *const igraph_vector_t,
17374    ) -> igraph_error_t;
17375}
17376unsafe extern "C" {
17377    pub fn igraph_layout_graphopt(
17378        graph: *const igraph_t,
17379        res: *mut igraph_matrix_t,
17380        niter: igraph_int_t,
17381        node_charge: igraph_real_t,
17382        node_mass: igraph_real_t,
17383        spring_length: igraph_real_t,
17384        spring_constant: igraph_real_t,
17385        max_sa_movement: igraph_real_t,
17386        use_seed: igraph_bool_t,
17387    ) -> igraph_error_t;
17388}
17389unsafe extern "C" {
17390    pub fn igraph_layout_mds(
17391        graph: *const igraph_t,
17392        res: *mut igraph_matrix_t,
17393        dist: *const igraph_matrix_t,
17394        dim: igraph_int_t,
17395    ) -> igraph_error_t;
17396}
17397unsafe extern "C" {
17398    pub fn igraph_layout_bipartite(
17399        graph: *const igraph_t,
17400        types: *const igraph_vector_bool_t,
17401        res: *mut igraph_matrix_t,
17402        hgap: igraph_real_t,
17403        vgap: igraph_real_t,
17404        maxiter: igraph_int_t,
17405    ) -> igraph_error_t;
17406}
17407unsafe extern "C" {
17408    pub fn igraph_layout_umap(
17409        graph: *const igraph_t,
17410        res: *mut igraph_matrix_t,
17411        use_seed: igraph_bool_t,
17412        distances: *const igraph_vector_t,
17413        min_dist: igraph_real_t,
17414        epochs: igraph_int_t,
17415        distances_are_weights: igraph_bool_t,
17416    ) -> igraph_error_t;
17417}
17418unsafe extern "C" {
17419    pub fn igraph_layout_umap_3d(
17420        graph: *const igraph_t,
17421        res: *mut igraph_matrix_t,
17422        use_seed: igraph_bool_t,
17423        distances: *const igraph_vector_t,
17424        min_dist: igraph_real_t,
17425        epochs: igraph_int_t,
17426        distances_are_weights: igraph_bool_t,
17427    ) -> igraph_error_t;
17428}
17429unsafe extern "C" {
17430    pub fn igraph_layout_umap_compute_weights(
17431        graph: *const igraph_t,
17432        distances: *const igraph_vector_t,
17433        weights: *mut igraph_vector_t,
17434    ) -> igraph_error_t;
17435}
17436#[doc = " \\struct igraph_layout_drl_options_t\n Parameters for the DrL layout generator\n\n \\member edge_cut The edge cutting parameter.\n    Edge cutting is done in the late stages of the\n    algorithm in order to achieve less dense layouts.  Edges are cut\n    if there is a lot of stress on them (a large value in the\n    objective function sum).  The edge cutting parameter is a value\n    between 0 and 1 with 0 representing no edge cutting and 1\n    representing maximal edge cutting. The default value is 32/40.\n \\member init_iterations Number of iterations, initial phase.\n \\member init_temperature Start temperature, initial phase.\n \\member init_attraction Attraction, initial phase.\n \\member init_damping_mult Damping factor, initial phase.\n \\member liquid_iterations Number of iterations in the liquid phase.\n \\member liquid_temperature Start temperature in the liquid phase.\n \\member liquid_attraction Attraction in the liquid phase.\n \\member liquid_damping_mult Multiplicatie damping factor, liquid phase.\n \\member expansion_iterations Number of iterations in the expansion phase.\n \\member expansion_temperature Start temperature in the expansion phase.\n \\member expansion_attraction Attraction, expansion phase.\n \\member expansion_damping_mult Damping factor, expansion phase.\n \\member cooldown_iterations Number of iterations in the cooldown phase.\n \\member cooldown_temperature Start temperature in the cooldown phase.\n \\member cooldown_attraction Attraction in the cooldown phase.\n \\member cooldown_damping_mult Damping fact int the cooldown phase.\n \\member crunch_iterations Number of iterations in the crunch phase.\n \\member crunch_temperature Start temperature in the crunch phase.\n \\member crunch_attraction Attraction in the crunch phase.\n \\member crunch_damping_mult Damping factor in the crunch phase.\n \\member simmer_iterations Number of iterations in the simmer phase.\n \\member simmer_temperature Start temperature in te simmer phase.\n \\member simmer_attraction Attraction in the simmer phase.\n \\member simmer_damping_mult Multiplicative damping factor in the simmer phase."]
17437#[repr(C)]
17438#[derive(Debug, Copy, Clone)]
17439pub struct igraph_layout_drl_options_t {
17440    pub edge_cut: igraph_real_t,
17441    pub init_iterations: igraph_int_t,
17442    pub init_temperature: igraph_real_t,
17443    pub init_attraction: igraph_real_t,
17444    pub init_damping_mult: igraph_real_t,
17445    pub liquid_iterations: igraph_int_t,
17446    pub liquid_temperature: igraph_real_t,
17447    pub liquid_attraction: igraph_real_t,
17448    pub liquid_damping_mult: igraph_real_t,
17449    pub expansion_iterations: igraph_int_t,
17450    pub expansion_temperature: igraph_real_t,
17451    pub expansion_attraction: igraph_real_t,
17452    pub expansion_damping_mult: igraph_real_t,
17453    pub cooldown_iterations: igraph_int_t,
17454    pub cooldown_temperature: igraph_real_t,
17455    pub cooldown_attraction: igraph_real_t,
17456    pub cooldown_damping_mult: igraph_real_t,
17457    pub crunch_iterations: igraph_int_t,
17458    pub crunch_temperature: igraph_real_t,
17459    pub crunch_attraction: igraph_real_t,
17460    pub crunch_damping_mult: igraph_real_t,
17461    pub simmer_iterations: igraph_int_t,
17462    pub simmer_temperature: igraph_real_t,
17463    pub simmer_attraction: igraph_real_t,
17464    pub simmer_damping_mult: igraph_real_t,
17465}
17466#[allow(clippy::unnecessary_operation, clippy::identity_op)]
17467const _: () = {
17468    ["Size of igraph_layout_drl_options_t"]
17469        [::std::mem::size_of::<igraph_layout_drl_options_t>() - 200usize];
17470    ["Alignment of igraph_layout_drl_options_t"]
17471        [::std::mem::align_of::<igraph_layout_drl_options_t>() - 8usize];
17472    ["Offset of field: igraph_layout_drl_options_t::edge_cut"]
17473        [::std::mem::offset_of!(igraph_layout_drl_options_t, edge_cut) - 0usize];
17474    ["Offset of field: igraph_layout_drl_options_t::init_iterations"]
17475        [::std::mem::offset_of!(igraph_layout_drl_options_t, init_iterations) - 8usize];
17476    ["Offset of field: igraph_layout_drl_options_t::init_temperature"]
17477        [::std::mem::offset_of!(igraph_layout_drl_options_t, init_temperature) - 16usize];
17478    ["Offset of field: igraph_layout_drl_options_t::init_attraction"]
17479        [::std::mem::offset_of!(igraph_layout_drl_options_t, init_attraction) - 24usize];
17480    ["Offset of field: igraph_layout_drl_options_t::init_damping_mult"]
17481        [::std::mem::offset_of!(igraph_layout_drl_options_t, init_damping_mult) - 32usize];
17482    ["Offset of field: igraph_layout_drl_options_t::liquid_iterations"]
17483        [::std::mem::offset_of!(igraph_layout_drl_options_t, liquid_iterations) - 40usize];
17484    ["Offset of field: igraph_layout_drl_options_t::liquid_temperature"]
17485        [::std::mem::offset_of!(igraph_layout_drl_options_t, liquid_temperature) - 48usize];
17486    ["Offset of field: igraph_layout_drl_options_t::liquid_attraction"]
17487        [::std::mem::offset_of!(igraph_layout_drl_options_t, liquid_attraction) - 56usize];
17488    ["Offset of field: igraph_layout_drl_options_t::liquid_damping_mult"]
17489        [::std::mem::offset_of!(igraph_layout_drl_options_t, liquid_damping_mult) - 64usize];
17490    ["Offset of field: igraph_layout_drl_options_t::expansion_iterations"]
17491        [::std::mem::offset_of!(igraph_layout_drl_options_t, expansion_iterations) - 72usize];
17492    ["Offset of field: igraph_layout_drl_options_t::expansion_temperature"]
17493        [::std::mem::offset_of!(igraph_layout_drl_options_t, expansion_temperature) - 80usize];
17494    ["Offset of field: igraph_layout_drl_options_t::expansion_attraction"]
17495        [::std::mem::offset_of!(igraph_layout_drl_options_t, expansion_attraction) - 88usize];
17496    ["Offset of field: igraph_layout_drl_options_t::expansion_damping_mult"]
17497        [::std::mem::offset_of!(igraph_layout_drl_options_t, expansion_damping_mult) - 96usize];
17498    ["Offset of field: igraph_layout_drl_options_t::cooldown_iterations"]
17499        [::std::mem::offset_of!(igraph_layout_drl_options_t, cooldown_iterations) - 104usize];
17500    ["Offset of field: igraph_layout_drl_options_t::cooldown_temperature"]
17501        [::std::mem::offset_of!(igraph_layout_drl_options_t, cooldown_temperature) - 112usize];
17502    ["Offset of field: igraph_layout_drl_options_t::cooldown_attraction"]
17503        [::std::mem::offset_of!(igraph_layout_drl_options_t, cooldown_attraction) - 120usize];
17504    ["Offset of field: igraph_layout_drl_options_t::cooldown_damping_mult"]
17505        [::std::mem::offset_of!(igraph_layout_drl_options_t, cooldown_damping_mult) - 128usize];
17506    ["Offset of field: igraph_layout_drl_options_t::crunch_iterations"]
17507        [::std::mem::offset_of!(igraph_layout_drl_options_t, crunch_iterations) - 136usize];
17508    ["Offset of field: igraph_layout_drl_options_t::crunch_temperature"]
17509        [::std::mem::offset_of!(igraph_layout_drl_options_t, crunch_temperature) - 144usize];
17510    ["Offset of field: igraph_layout_drl_options_t::crunch_attraction"]
17511        [::std::mem::offset_of!(igraph_layout_drl_options_t, crunch_attraction) - 152usize];
17512    ["Offset of field: igraph_layout_drl_options_t::crunch_damping_mult"]
17513        [::std::mem::offset_of!(igraph_layout_drl_options_t, crunch_damping_mult) - 160usize];
17514    ["Offset of field: igraph_layout_drl_options_t::simmer_iterations"]
17515        [::std::mem::offset_of!(igraph_layout_drl_options_t, simmer_iterations) - 168usize];
17516    ["Offset of field: igraph_layout_drl_options_t::simmer_temperature"]
17517        [::std::mem::offset_of!(igraph_layout_drl_options_t, simmer_temperature) - 176usize];
17518    ["Offset of field: igraph_layout_drl_options_t::simmer_attraction"]
17519        [::std::mem::offset_of!(igraph_layout_drl_options_t, simmer_attraction) - 184usize];
17520    ["Offset of field: igraph_layout_drl_options_t::simmer_damping_mult"]
17521        [::std::mem::offset_of!(igraph_layout_drl_options_t, simmer_damping_mult) - 192usize];
17522};
17523pub const igraph_layout_drl_default_t_IGRAPH_LAYOUT_DRL_DEFAULT: igraph_layout_drl_default_t = 0;
17524pub const igraph_layout_drl_default_t_IGRAPH_LAYOUT_DRL_COARSEN: igraph_layout_drl_default_t = 1;
17525pub const igraph_layout_drl_default_t_IGRAPH_LAYOUT_DRL_COARSEST: igraph_layout_drl_default_t = 2;
17526pub const igraph_layout_drl_default_t_IGRAPH_LAYOUT_DRL_REFINE: igraph_layout_drl_default_t = 3;
17527pub const igraph_layout_drl_default_t_IGRAPH_LAYOUT_DRL_FINAL: igraph_layout_drl_default_t = 4;
17528#[doc = " \\typedef igraph_layout_drl_default_t\n Predefined parameter templates for the DrL layout generator\n\n These constants can be used to initialize a set of DrL parameters.\n These can then be modified according to the user's needs.\n \\enumval IGRAPH_LAYOUT_DRL_DEFAULT The deafult parameters.\n \\enumval IGRAPH_LAYOUT_DRL_COARSEN Slightly modified parameters to\n      get a coarser layout.\n \\enumval IGRAPH_LAYOUT_DRL_COARSEST An even coarser layout.\n \\enumval IGRAPH_LAYOUT_DRL_REFINE Refine an already calculated layout.\n \\enumval IGRAPH_LAYOUT_DRL_FINAL Finalize an already refined layout."]
17529pub type igraph_layout_drl_default_t = ::std::os::raw::c_uint;
17530unsafe extern "C" {
17531    pub fn igraph_layout_drl_options_init(
17532        options: *mut igraph_layout_drl_options_t,
17533        templ: igraph_layout_drl_default_t,
17534    ) -> igraph_error_t;
17535}
17536unsafe extern "C" {
17537    pub fn igraph_layout_drl(
17538        graph: *const igraph_t,
17539        res: *mut igraph_matrix_t,
17540        use_seed: igraph_bool_t,
17541        options: *const igraph_layout_drl_options_t,
17542        weights: *const igraph_vector_t,
17543    ) -> igraph_error_t;
17544}
17545unsafe extern "C" {
17546    pub fn igraph_layout_drl_3d(
17547        graph: *const igraph_t,
17548        res: *mut igraph_matrix_t,
17549        use_seed: igraph_bool_t,
17550        options: *const igraph_layout_drl_options_t,
17551        weights: *const igraph_vector_t,
17552    ) -> igraph_error_t;
17553}
17554unsafe extern "C" {
17555    pub fn igraph_layout_merge_dla(
17556        graphs: *const igraph_vector_ptr_t,
17557        coords: *const igraph_matrix_list_t,
17558        res: *mut igraph_matrix_t,
17559    ) -> igraph_error_t;
17560}
17561unsafe extern "C" {
17562    pub fn igraph_layout_gem(
17563        graph: *const igraph_t,
17564        res: *mut igraph_matrix_t,
17565        use_seed: igraph_bool_t,
17566        maxiter: igraph_int_t,
17567        temp_max: igraph_real_t,
17568        temp_min: igraph_real_t,
17569        temp_init: igraph_real_t,
17570    ) -> igraph_error_t;
17571}
17572unsafe extern "C" {
17573    pub fn igraph_layout_davidson_harel(
17574        graph: *const igraph_t,
17575        res: *mut igraph_matrix_t,
17576        use_seed: igraph_bool_t,
17577        maxiter: igraph_int_t,
17578        fineiter: igraph_int_t,
17579        cool_fact: igraph_real_t,
17580        weight_node_dist: igraph_real_t,
17581        weight_border: igraph_real_t,
17582        weight_edge_lengths: igraph_real_t,
17583        weight_edge_crossings: igraph_real_t,
17584        weight_node_edge_dist: igraph_real_t,
17585    ) -> igraph_error_t;
17586}
17587pub const igraph_root_choice_t_IGRAPH_ROOT_CHOICE_DEGREE: igraph_root_choice_t = 0;
17588pub const igraph_root_choice_t_IGRAPH_ROOT_CHOICE_ECCENTRICITY: igraph_root_choice_t = 1;
17589#[doc = " \\typedef igraph_root_choice_t\n \\brief Root choice heuristic for tree visualizations.\n\n Used with \\ref igraph_roots_for_tree_layout()."]
17590pub type igraph_root_choice_t = ::std::os::raw::c_uint;
17591unsafe extern "C" {
17592    pub fn igraph_roots_for_tree_layout(
17593        graph: *const igraph_t,
17594        mode: igraph_neimode_t,
17595        roots: *mut igraph_vector_int_t,
17596        use_eccentricity: igraph_root_choice_t,
17597    ) -> igraph_error_t;
17598}
17599unsafe extern "C" {
17600    pub fn igraph_layout_align(
17601        graph: *const igraph_t,
17602        layout: *mut igraph_matrix_t,
17603    ) -> igraph_error_t;
17604}
17605#[doc = " \\typedef igraph_bfshandler_t\n \\brief Callback type for BFS function.\n\n \\ref igraph_bfs() is able to call a callback function, whenever a\n new vertex is found, while doing the breadth-first search. This\n callback function must be of type \\c igraph_bfshandler_t. It has\n the following arguments:\n\n \\param graph The graph that the algorithm is working on. Of course\n   this must not be modified.\n \\param vid The id of the vertex just found by the breadth-first\n   search.\n \\param pred The id of the previous vertex visited. It is -1 if\n   there is no previous vertex, because the current vertex is the root\n   is a search tree.\n \\param succ The id of the next vertex that will be visited. It is\n   -1 if there is no next vertex, because the current vertex is the\n   last one in a search tree.\n \\param rank The rank of the current vertex, it starts with zero.\n \\param dist The distance (number of hops) of the current vertex\n   from the root of the current search tree.\n \\param extra The extra argument that was passed to \\ref\n   igraph_bfs().\n \\return \\c IGRAPH_SUCCESS if the BFS should continue, \\c IGRAPH_STOP\n    if the BFS should stop and return to the caller normally. Any other\n    value is treated as an igraph error code, terminating the search and\n    returning to the caller with the same error code. If a BFS is\n    is terminated prematurely, then all elements of the result vectors\n    that were not yet calculated at the point of the termination\n    contain negative values.\n\n \\sa \\ref igraph_bfs()"]
17606pub type igraph_bfshandler_t = ::std::option::Option<
17607    unsafe extern "C" fn(
17608        graph: *const igraph_t,
17609        vid: igraph_int_t,
17610        pred: igraph_int_t,
17611        succ: igraph_int_t,
17612        rank: igraph_int_t,
17613        dist: igraph_int_t,
17614        extra: *mut ::std::os::raw::c_void,
17615    ) -> igraph_error_t,
17616>;
17617unsafe extern "C" {
17618    pub fn igraph_bfs(
17619        graph: *const igraph_t,
17620        root: igraph_int_t,
17621        roots: *const igraph_vector_int_t,
17622        mode: igraph_neimode_t,
17623        unreachable: igraph_bool_t,
17624        restricted: *const igraph_vector_int_t,
17625        order: *mut igraph_vector_int_t,
17626        rank: *mut igraph_vector_int_t,
17627        parents: *mut igraph_vector_int_t,
17628        pred: *mut igraph_vector_int_t,
17629        succ: *mut igraph_vector_int_t,
17630        dist: *mut igraph_vector_int_t,
17631        callback: igraph_bfshandler_t,
17632        extra: *mut ::std::os::raw::c_void,
17633    ) -> igraph_error_t;
17634}
17635unsafe extern "C" {
17636    pub fn igraph_bfs_simple(
17637        graph: *const igraph_t,
17638        root: igraph_int_t,
17639        mode: igraph_neimode_t,
17640        order: *mut igraph_vector_int_t,
17641        layers: *mut igraph_vector_int_t,
17642        parents: *mut igraph_vector_int_t,
17643    ) -> igraph_error_t;
17644}
17645#[doc = " \\function igraph_dfshandler_t\n \\brief Callback type for the DFS function.\n\n \\ref igraph_dfs() is able to call a callback function, whenever a\n new vertex is discovered, and/or whenever a subtree is\n completed. These callbacks must be of type \\c\n igraph_dfshandler_t. They have the following arguments:\n\n \\param graph The graph that the algorithm is working on. Of course\n   this must not be modified.\n \\param vid The id of the vertex just found by the depth-first\n   search.\n \\param dist The distance (number of hops) of the current vertex\n   from the root of the current search tree.\n \\param extra The extra argument that was passed to \\ref\n   igraph_dfs().\n \\return \\c IGRAPH_SUCCESS if the DFS should continue, \\c IGRAPH_STOP\n    if the DFS should stop and return to the caller normally. Any other\n    value is treated as an igraph error code, terminating the search and\n    returning to the caller with the same error code. If a DFS is\n    is terminated prematurely, then all elements of the result vectors\n    that were not yet calculated at the point of the termination\n    contain negative values.\n\n \\sa \\ref igraph_dfs()"]
17646pub type igraph_dfshandler_t = ::std::option::Option<
17647    unsafe extern "C" fn(
17648        graph: *const igraph_t,
17649        vid: igraph_int_t,
17650        dist: igraph_int_t,
17651        extra: *mut ::std::os::raw::c_void,
17652    ) -> igraph_error_t,
17653>;
17654unsafe extern "C" {
17655    pub fn igraph_dfs(
17656        graph: *const igraph_t,
17657        root: igraph_int_t,
17658        mode: igraph_neimode_t,
17659        unreachable: igraph_bool_t,
17660        order: *mut igraph_vector_int_t,
17661        order_out: *mut igraph_vector_int_t,
17662        parents: *mut igraph_vector_int_t,
17663        dist: *mut igraph_vector_int_t,
17664        in_callback: igraph_dfshandler_t,
17665        out_callback: igraph_dfshandler_t,
17666        extra: *mut ::std::os::raw::c_void,
17667    ) -> igraph_error_t;
17668}
17669unsafe extern "C" {
17670    pub fn igraph_coreness(
17671        graph: *const igraph_t,
17672        cores: *mut igraph_vector_int_t,
17673        mode: igraph_neimode_t,
17674    ) -> igraph_error_t;
17675}
17676unsafe extern "C" {
17677    pub fn igraph_trussness(
17678        graph: *const igraph_t,
17679        trussness: *mut igraph_vector_int_t,
17680    ) -> igraph_error_t;
17681}
17682unsafe extern "C" {
17683    pub fn igraph_community_optimal_modularity(
17684        graph: *const igraph_t,
17685        weights: *const igraph_vector_t,
17686        resolution: igraph_real_t,
17687        modularity: *mut igraph_real_t,
17688        membership: *mut igraph_vector_int_t,
17689    ) -> igraph_error_t;
17690}
17691unsafe extern "C" {
17692    pub fn igraph_community_spinglass(
17693        graph: *const igraph_t,
17694        weights: *const igraph_vector_t,
17695        modularity: *mut igraph_real_t,
17696        temperature: *mut igraph_real_t,
17697        membership: *mut igraph_vector_int_t,
17698        csize: *mut igraph_vector_int_t,
17699        spins: igraph_int_t,
17700        parupdate: igraph_bool_t,
17701        starttemp: igraph_real_t,
17702        stoptemp: igraph_real_t,
17703        coolfact: igraph_real_t,
17704        update_rule: igraph_spincomm_update_t,
17705        gamma: igraph_real_t,
17706        implementation: igraph_spinglass_implementation_t,
17707        gamma_minus: igraph_real_t,
17708    ) -> igraph_error_t;
17709}
17710unsafe extern "C" {
17711    pub fn igraph_community_spinglass_single(
17712        graph: *const igraph_t,
17713        weights: *const igraph_vector_t,
17714        vertex: igraph_int_t,
17715        community: *mut igraph_vector_int_t,
17716        cohesion: *mut igraph_real_t,
17717        adhesion: *mut igraph_real_t,
17718        inner_links: *mut igraph_real_t,
17719        outer_links: *mut igraph_real_t,
17720        spins: igraph_int_t,
17721        update_rule: igraph_spincomm_update_t,
17722        gamma: igraph_real_t,
17723    ) -> igraph_error_t;
17724}
17725unsafe extern "C" {
17726    pub fn igraph_community_walktrap(
17727        graph: *const igraph_t,
17728        weights: *const igraph_vector_t,
17729        steps: igraph_int_t,
17730        merges: *mut igraph_matrix_int_t,
17731        modularity: *mut igraph_vector_t,
17732        membership: *mut igraph_vector_int_t,
17733    ) -> igraph_error_t;
17734}
17735unsafe extern "C" {
17736    pub fn igraph_community_infomap(
17737        graph: *const igraph_t,
17738        edge_weights: *const igraph_vector_t,
17739        vertex_weights: *const igraph_vector_t,
17740        nb_trials: igraph_int_t,
17741        is_regularized: igraph_bool_t,
17742        regularization_strength: igraph_real_t,
17743        membership: *mut igraph_vector_int_t,
17744        codelength: *mut igraph_real_t,
17745    ) -> igraph_error_t;
17746}
17747unsafe extern "C" {
17748    pub fn igraph_community_edge_betweenness(
17749        graph: *const igraph_t,
17750        removed_edges: *mut igraph_vector_int_t,
17751        edge_betweenness: *mut igraph_vector_t,
17752        merges: *mut igraph_matrix_int_t,
17753        bridges: *mut igraph_vector_int_t,
17754        modularity: *mut igraph_vector_t,
17755        membership: *mut igraph_vector_int_t,
17756        directed: igraph_bool_t,
17757        weights: *const igraph_vector_t,
17758        lengths: *const igraph_vector_t,
17759    ) -> igraph_error_t;
17760}
17761unsafe extern "C" {
17762    pub fn igraph_community_eb_get_merges(
17763        graph: *const igraph_t,
17764        directed: igraph_bool_t,
17765        edges: *const igraph_vector_int_t,
17766        weights: *const igraph_vector_t,
17767        merges: *mut igraph_matrix_int_t,
17768        bridges: *mut igraph_vector_int_t,
17769        modularity: *mut igraph_vector_t,
17770        membership: *mut igraph_vector_int_t,
17771    ) -> igraph_error_t;
17772}
17773unsafe extern "C" {
17774    pub fn igraph_community_fastgreedy(
17775        graph: *const igraph_t,
17776        weights: *const igraph_vector_t,
17777        merges: *mut igraph_matrix_int_t,
17778        modularity: *mut igraph_vector_t,
17779        membership: *mut igraph_vector_int_t,
17780    ) -> igraph_error_t;
17781}
17782unsafe extern "C" {
17783    pub fn igraph_community_to_membership(
17784        merges: *const igraph_matrix_int_t,
17785        nodes: igraph_int_t,
17786        steps: igraph_int_t,
17787        membership: *mut igraph_vector_int_t,
17788        csize: *mut igraph_vector_int_t,
17789    ) -> igraph_error_t;
17790}
17791unsafe extern "C" {
17792    pub fn igraph_le_community_to_membership(
17793        merges: *const igraph_matrix_int_t,
17794        steps: igraph_int_t,
17795        membership: *mut igraph_vector_int_t,
17796        csize: *mut igraph_vector_int_t,
17797    ) -> igraph_error_t;
17798}
17799unsafe extern "C" {
17800    pub fn igraph_community_voronoi(
17801        graph: *const igraph_t,
17802        membership: *mut igraph_vector_int_t,
17803        generators: *mut igraph_vector_int_t,
17804        modularity: *mut igraph_real_t,
17805        lengths: *const igraph_vector_t,
17806        weights: *const igraph_vector_t,
17807        mode: igraph_neimode_t,
17808        r: igraph_real_t,
17809    ) -> igraph_error_t;
17810}
17811unsafe extern "C" {
17812    pub fn igraph_modularity(
17813        graph: *const igraph_t,
17814        membership: *const igraph_vector_int_t,
17815        weights: *const igraph_vector_t,
17816        resolution: igraph_real_t,
17817        directed: igraph_bool_t,
17818        modularity: *mut igraph_real_t,
17819    ) -> igraph_error_t;
17820}
17821unsafe extern "C" {
17822    pub fn igraph_modularity_matrix(
17823        graph: *const igraph_t,
17824        weights: *const igraph_vector_t,
17825        resolution: igraph_real_t,
17826        modmat: *mut igraph_matrix_t,
17827        directed: igraph_bool_t,
17828    ) -> igraph_error_t;
17829}
17830unsafe extern "C" {
17831    pub fn igraph_reindex_membership(
17832        membership: *mut igraph_vector_int_t,
17833        new_to_old: *mut igraph_vector_int_t,
17834        nb_clusters: *mut igraph_int_t,
17835    ) -> igraph_error_t;
17836}
17837pub const igraph_leading_eigenvector_community_history_t_IGRAPH_LEVC_HIST_SPLIT:
17838    igraph_leading_eigenvector_community_history_t = 1;
17839pub const igraph_leading_eigenvector_community_history_t_IGRAPH_LEVC_HIST_FAILED:
17840    igraph_leading_eigenvector_community_history_t = 2;
17841pub const igraph_leading_eigenvector_community_history_t_IGRAPH_LEVC_HIST_START_FULL:
17842    igraph_leading_eigenvector_community_history_t = 3;
17843pub const igraph_leading_eigenvector_community_history_t_IGRAPH_LEVC_HIST_START_GIVEN:
17844    igraph_leading_eigenvector_community_history_t = 4;
17845pub type igraph_leading_eigenvector_community_history_t = ::std::os::raw::c_uint;
17846#[doc = " \\typedef igraph_community_leading_eigenvector_callback_t\n Callback for the leading eigenvector community finding method.\n\n The leading eigenvector community finding implementation in igraph\n is able to call a callback function, after each eigenvalue\n calculation. This callback function must be of \\c\n igraph_community_leading_eigenvector_callback_t type.\n The following arguments are passed to the callback:\n \\param membership The actual membership vector, before recording\n    the potential change implied by the newly found eigenvalue.\n \\param comm The id of the community that the algorithm tried to\n    split in the last iteration. The community IDs are indexed from\n    zero here!\n \\param eigenvalue The eigenvalue the algorithm has just found.\n \\param eigenvector The eigenvector corresponding to the eigenvalue\n    the algorithm just found.\n \\param arpack_multiplier A function that was passed to \\ref\n    igraph_arpack_rssolve() to solve the last eigenproblem.\n \\param arpack_extra The extra argument that was passed to the\n    ARPACK solver.\n \\param extra Extra argument that as passed to \\ref\n    igraph_community_leading_eigenvector().\n\n \\sa \\ref igraph_community_leading_eigenvector(), \\ref\n igraph_arpack_function_t, \\ref igraph_arpack_rssolve()."]
17847pub type igraph_community_leading_eigenvector_callback_t = ::std::option::Option<
17848    unsafe extern "C" fn(
17849        membership: *const igraph_vector_int_t,
17850        comm: igraph_int_t,
17851        eigenvalue: igraph_real_t,
17852        eigenvector: *const igraph_vector_t,
17853        arpack_multiplier: igraph_arpack_function_t,
17854        arpack_extra: *mut ::std::os::raw::c_void,
17855        extra: *mut ::std::os::raw::c_void,
17856    ) -> igraph_error_t,
17857>;
17858unsafe extern "C" {
17859    pub fn igraph_community_leading_eigenvector(
17860        graph: *const igraph_t,
17861        weights: *const igraph_vector_t,
17862        merges: *mut igraph_matrix_int_t,
17863        membership: *mut igraph_vector_int_t,
17864        steps: igraph_int_t,
17865        options: *mut igraph_arpack_options_t,
17866        modularity: *mut igraph_real_t,
17867        start: igraph_bool_t,
17868        eigenvalues: *mut igraph_vector_t,
17869        eigenvectors: *mut igraph_vector_list_t,
17870        history: *mut igraph_vector_int_t,
17871        callback: igraph_community_leading_eigenvector_callback_t,
17872        callback_extra: *mut ::std::os::raw::c_void,
17873    ) -> igraph_error_t;
17874}
17875unsafe extern "C" {
17876    pub fn igraph_community_fluid_communities(
17877        graph: *const igraph_t,
17878        no_of_communities: igraph_int_t,
17879        membership: *mut igraph_vector_int_t,
17880    ) -> igraph_error_t;
17881}
17882unsafe extern "C" {
17883    pub fn igraph_community_label_propagation(
17884        graph: *const igraph_t,
17885        membership: *mut igraph_vector_int_t,
17886        mode: igraph_neimode_t,
17887        weights: *const igraph_vector_t,
17888        initial: *const igraph_vector_int_t,
17889        fixed: *const igraph_vector_bool_t,
17890        variant: igraph_lpa_variant_t,
17891    ) -> igraph_error_t;
17892}
17893unsafe extern "C" {
17894    pub fn igraph_community_multilevel(
17895        graph: *const igraph_t,
17896        weights: *const igraph_vector_t,
17897        resolution: igraph_real_t,
17898        membership: *mut igraph_vector_int_t,
17899        memberships: *mut igraph_matrix_int_t,
17900        modularity: *mut igraph_vector_t,
17901    ) -> igraph_error_t;
17902}
17903pub const igraph_leiden_objective_t_IGRAPH_LEIDEN_OBJECTIVE_MODULARITY: igraph_leiden_objective_t =
17904    0;
17905pub const igraph_leiden_objective_t_IGRAPH_LEIDEN_OBJECTIVE_CPM: igraph_leiden_objective_t = 1;
17906pub const igraph_leiden_objective_t_IGRAPH_LEIDEN_OBJECTIVE_ER: igraph_leiden_objective_t = 2;
17907pub type igraph_leiden_objective_t = ::std::os::raw::c_uint;
17908unsafe extern "C" {
17909    pub fn igraph_community_leiden(
17910        graph: *const igraph_t,
17911        edge_weights: *const igraph_vector_t,
17912        vertex_out_weights: *const igraph_vector_t,
17913        vertex_in_weights: *const igraph_vector_t,
17914        resolution: igraph_real_t,
17915        beta: igraph_real_t,
17916        start: igraph_bool_t,
17917        n_iterations: igraph_int_t,
17918        membership: *mut igraph_vector_int_t,
17919        nb_clusters: *mut igraph_int_t,
17920        quality: *mut igraph_real_t,
17921    ) -> igraph_error_t;
17922}
17923unsafe extern "C" {
17924    pub fn igraph_community_leiden_simple(
17925        graph: *const igraph_t,
17926        weights: *const igraph_vector_t,
17927        objective: igraph_leiden_objective_t,
17928        resolution: igraph_real_t,
17929        beta: igraph_real_t,
17930        start: igraph_bool_t,
17931        n_iterations: igraph_int_t,
17932        membership: *mut igraph_vector_int_t,
17933        nb_clusters: *mut igraph_int_t,
17934        quality: *mut igraph_real_t,
17935    ) -> igraph_error_t;
17936}
17937unsafe extern "C" {
17938    pub fn igraph_compare_communities(
17939        comm1: *const igraph_vector_int_t,
17940        comm2: *const igraph_vector_int_t,
17941        result: *mut igraph_real_t,
17942        method: igraph_community_comparison_t,
17943    ) -> igraph_error_t;
17944}
17945unsafe extern "C" {
17946    pub fn igraph_split_join_distance(
17947        comm1: *const igraph_vector_int_t,
17948        comm2: *const igraph_vector_int_t,
17949        distance12: *mut igraph_int_t,
17950        distance21: *mut igraph_int_t,
17951    ) -> igraph_error_t;
17952}
17953unsafe extern "C" {
17954    pub fn igraph_get_adjacency(
17955        graph: *const igraph_t,
17956        res: *mut igraph_matrix_t,
17957        type_: igraph_get_adjacency_t,
17958        weights: *const igraph_vector_t,
17959        loops: igraph_loops_t,
17960    ) -> igraph_error_t;
17961}
17962unsafe extern "C" {
17963    pub fn igraph_get_adjacency_sparse(
17964        graph: *const igraph_t,
17965        res: *mut igraph_sparsemat_t,
17966        type_: igraph_get_adjacency_t,
17967        weights: *const igraph_vector_t,
17968        loops: igraph_loops_t,
17969    ) -> igraph_error_t;
17970}
17971unsafe extern "C" {
17972    pub fn igraph_get_stochastic(
17973        graph: *const igraph_t,
17974        matrix: *mut igraph_matrix_t,
17975        column_wise: igraph_bool_t,
17976        weights: *const igraph_vector_t,
17977    ) -> igraph_error_t;
17978}
17979unsafe extern "C" {
17980    pub fn igraph_get_stochastic_sparse(
17981        graph: *const igraph_t,
17982        res: *mut igraph_sparsemat_t,
17983        column_wise: igraph_bool_t,
17984        weights: *const igraph_vector_t,
17985    ) -> igraph_error_t;
17986}
17987unsafe extern "C" {
17988    pub fn igraph_get_edgelist(
17989        graph: *const igraph_t,
17990        res: *mut igraph_vector_int_t,
17991        bycol: igraph_bool_t,
17992    ) -> igraph_error_t;
17993}
17994unsafe extern "C" {
17995    pub fn igraph_to_directed(graph: *mut igraph_t, flags: igraph_to_directed_t) -> igraph_error_t;
17996}
17997unsafe extern "C" {
17998    pub fn igraph_to_undirected(
17999        graph: *mut igraph_t,
18000        mode: igraph_to_undirected_t,
18001        edge_comb: *const igraph_attribute_combination_t,
18002    ) -> igraph_error_t;
18003}
18004unsafe extern "C" {
18005    pub fn igraph_to_prufer(
18006        graph: *const igraph_t,
18007        prufer: *mut igraph_vector_int_t,
18008    ) -> igraph_error_t;
18009}
18010unsafe extern "C" {
18011    pub fn igraph_read_graph_edgelist(
18012        graph: *mut igraph_t,
18013        instream: *mut FILE,
18014        n: igraph_int_t,
18015        directed: igraph_bool_t,
18016    ) -> igraph_error_t;
18017}
18018unsafe extern "C" {
18019    pub fn igraph_read_graph_ncol(
18020        graph: *mut igraph_t,
18021        instream: *mut FILE,
18022        predefnames: *const igraph_strvector_t,
18023        names: igraph_bool_t,
18024        weights: igraph_add_weights_t,
18025        directed: igraph_bool_t,
18026    ) -> igraph_error_t;
18027}
18028unsafe extern "C" {
18029    pub fn igraph_read_graph_lgl(
18030        graph: *mut igraph_t,
18031        instream: *mut FILE,
18032        names: igraph_bool_t,
18033        weights: igraph_add_weights_t,
18034        directed: igraph_bool_t,
18035    ) -> igraph_error_t;
18036}
18037unsafe extern "C" {
18038    pub fn igraph_read_graph_pajek(graph: *mut igraph_t, instream: *mut FILE) -> igraph_error_t;
18039}
18040unsafe extern "C" {
18041    pub fn igraph_read_graph_graphml(
18042        graph: *mut igraph_t,
18043        instream: *mut FILE,
18044        index: igraph_int_t,
18045    ) -> igraph_error_t;
18046}
18047unsafe extern "C" {
18048    pub fn igraph_read_graph_dimacs_flow(
18049        graph: *mut igraph_t,
18050        instream: *mut FILE,
18051        problem: *mut igraph_strvector_t,
18052        label: *mut igraph_vector_int_t,
18053        source: *mut igraph_int_t,
18054        target: *mut igraph_int_t,
18055        capacity: *mut igraph_vector_t,
18056        directed: igraph_bool_t,
18057    ) -> igraph_error_t;
18058}
18059unsafe extern "C" {
18060    pub fn igraph_read_graph_graphdb(
18061        graph: *mut igraph_t,
18062        instream: *mut FILE,
18063        directed: igraph_bool_t,
18064    ) -> igraph_error_t;
18065}
18066unsafe extern "C" {
18067    pub fn igraph_read_graph_gml(graph: *mut igraph_t, instream: *mut FILE) -> igraph_error_t;
18068}
18069unsafe extern "C" {
18070    pub fn igraph_read_graph_dl(
18071        graph: *mut igraph_t,
18072        instream: *mut FILE,
18073        directed: igraph_bool_t,
18074    ) -> igraph_error_t;
18075}
18076pub type igraph_write_gml_sw_t = ::std::os::raw::c_uint;
18077pub const IGRAPH_WRITE_GML_DEFAULT_SW: _bindgen_ty_5 = 0;
18078pub const IGRAPH_WRITE_GML_ENCODE_ONLY_QUOT_SW: _bindgen_ty_5 = 1;
18079pub type _bindgen_ty_5 = ::std::os::raw::c_uint;
18080unsafe extern "C" {
18081    pub fn igraph_write_graph_edgelist(
18082        graph: *const igraph_t,
18083        outstream: *mut FILE,
18084    ) -> igraph_error_t;
18085}
18086unsafe extern "C" {
18087    pub fn igraph_write_graph_ncol(
18088        graph: *const igraph_t,
18089        outstream: *mut FILE,
18090        names: *const ::std::os::raw::c_char,
18091        weights: *const ::std::os::raw::c_char,
18092    ) -> igraph_error_t;
18093}
18094unsafe extern "C" {
18095    pub fn igraph_write_graph_lgl(
18096        graph: *const igraph_t,
18097        outstream: *mut FILE,
18098        names: *const ::std::os::raw::c_char,
18099        weights: *const ::std::os::raw::c_char,
18100        isolates: igraph_bool_t,
18101    ) -> igraph_error_t;
18102}
18103unsafe extern "C" {
18104    pub fn igraph_write_graph_graphml(
18105        graph: *const igraph_t,
18106        outstream: *mut FILE,
18107        prefixattr: igraph_bool_t,
18108    ) -> igraph_error_t;
18109}
18110unsafe extern "C" {
18111    pub fn igraph_write_graph_pajek(graph: *const igraph_t, outstream: *mut FILE)
18112    -> igraph_error_t;
18113}
18114unsafe extern "C" {
18115    pub fn igraph_write_graph_dimacs_flow(
18116        graph: *const igraph_t,
18117        outstream: *mut FILE,
18118        source: igraph_int_t,
18119        target: igraph_int_t,
18120        capacity: *const igraph_vector_t,
18121    ) -> igraph_error_t;
18122}
18123unsafe extern "C" {
18124    pub fn igraph_write_graph_gml(
18125        graph: *const igraph_t,
18126        outstream: *mut FILE,
18127        options: igraph_write_gml_sw_t,
18128        id: *const igraph_vector_t,
18129        creator: *const ::std::os::raw::c_char,
18130    ) -> igraph_error_t;
18131}
18132unsafe extern "C" {
18133    pub fn igraph_write_graph_dot(graph: *const igraph_t, outstream: *mut FILE) -> igraph_error_t;
18134}
18135unsafe extern "C" {
18136    pub fn igraph_write_graph_leda(
18137        graph: *const igraph_t,
18138        outstream: *mut FILE,
18139        vertex_attr_name: *const ::std::os::raw::c_char,
18140        edge_attr_name: *const ::std::os::raw::c_char,
18141    ) -> igraph_error_t;
18142}
18143#[repr(C)]
18144#[derive(Debug, Copy, Clone)]
18145pub struct igraph_safelocale_s {
18146    _unused: [u8; 0],
18147}
18148pub type igraph_safelocale_t = *mut igraph_safelocale_s;
18149unsafe extern "C" {
18150    pub fn igraph_enter_safelocale(loc: *mut igraph_safelocale_t) -> igraph_error_t;
18151}
18152unsafe extern "C" {
18153    pub fn igraph_exit_safelocale(loc: *mut igraph_safelocale_t);
18154}
18155#[doc = " \\typedef igraph_motifs_handler_t\n \\brief Callback type for \\c igraph_motifs_randesu_callback.\n\n \\ref igraph_motifs_randesu_callback() calls a specified callback\n function whenever a new motif is found during a motif search. This\n callback function must be of type \\c igraph_motifs_handler_t. It has\n the following arguments:\n\n \\param graph The graph that that algorithm is working on. Of course\n   this must not be modified.\n \\param vids The IDs of the vertices in the motif that has just been\n   found. This vector is owned by the motif search algorithm, so do not\n   modify or destroy it; make a copy of it if you need it later.\n \\param isoclass The isomorphism class of the motif that has just been\n   found. Use \\ref igraph_graph_count() to find the maximum possible\n   isoclass for graphs of a given size. See \\ref igraph_isoclass and\n   \\ref igraph_isoclass_subgraph for more information.\n \\param extra The extra argument that was passed to \\ref\n   igraph_motifs_randesu_callback().\n \\return \\c IGRAPH_SUCCESS to continue the motif search,\n    \\c IGRAPH_STOP to stop the motif search and return to the caller\n    normally. Any other return value is interpreted as an igraph error code,\n    which will terminate the search and return the same error code to the\n    caller.\n\n \\sa \\ref igraph_motifs_randesu_callback()"]
18156pub type igraph_motifs_handler_t = ::std::option::Option<
18157    unsafe extern "C" fn(
18158        graph: *const igraph_t,
18159        vids: *const igraph_vector_int_t,
18160        isoclass: igraph_int_t,
18161        extra: *mut ::std::os::raw::c_void,
18162    ) -> igraph_error_t,
18163>;
18164unsafe extern "C" {
18165    pub fn igraph_motifs_randesu(
18166        graph: *const igraph_t,
18167        hist: *mut igraph_vector_t,
18168        size: igraph_int_t,
18169        cut_prob: *const igraph_vector_t,
18170    ) -> igraph_error_t;
18171}
18172unsafe extern "C" {
18173    pub fn igraph_motifs_randesu_callback(
18174        graph: *const igraph_t,
18175        size: igraph_int_t,
18176        cut_prob: *const igraph_vector_t,
18177        callback: igraph_motifs_handler_t,
18178        extra: *mut ::std::os::raw::c_void,
18179    ) -> igraph_error_t;
18180}
18181unsafe extern "C" {
18182    pub fn igraph_motifs_randesu_estimate(
18183        graph: *const igraph_t,
18184        est: *mut igraph_real_t,
18185        size: igraph_int_t,
18186        cut_prob: *const igraph_vector_t,
18187        sample_size: igraph_int_t,
18188        sample: *const igraph_vector_int_t,
18189    ) -> igraph_error_t;
18190}
18191unsafe extern "C" {
18192    pub fn igraph_motifs_randesu_no(
18193        graph: *const igraph_t,
18194        no: *mut igraph_real_t,
18195        size: igraph_int_t,
18196        cut_prob: *const igraph_vector_t,
18197    ) -> igraph_error_t;
18198}
18199unsafe extern "C" {
18200    pub fn igraph_dyad_census(
18201        graph: *const igraph_t,
18202        mut_: *mut igraph_real_t,
18203        asym: *mut igraph_real_t,
18204        null: *mut igraph_real_t,
18205    ) -> igraph_error_t;
18206}
18207unsafe extern "C" {
18208    pub fn igraph_triad_census(
18209        igraph: *const igraph_t,
18210        res: *mut igraph_vector_t,
18211    ) -> igraph_error_t;
18212}
18213unsafe extern "C" {
18214    pub fn igraph_count_adjacent_triangles(
18215        graph: *const igraph_t,
18216        res: *mut igraph_vector_t,
18217        vids: igraph_vs_t,
18218    ) -> igraph_error_t;
18219}
18220unsafe extern "C" {
18221    pub fn igraph_list_triangles(
18222        graph: *const igraph_t,
18223        res: *mut igraph_vector_int_t,
18224    ) -> igraph_error_t;
18225}
18226unsafe extern "C" {
18227    pub fn igraph_count_triangles(
18228        graph: *const igraph_t,
18229        res: *mut igraph_real_t,
18230    ) -> igraph_error_t;
18231}
18232#[doc = " \\typedef igraph_rewiring_stats_t\n \\brief Data structure holding statistics from graph rewiring.\n\n \\param successful_swaps Number of successful rewiring trials (successful swaps)."]
18233#[repr(C)]
18234#[derive(Debug, Copy, Clone)]
18235pub struct igraph_rewiring_stats_t {
18236    pub successful_swaps: igraph_int_t,
18237    pub unused1_: igraph_int_t,
18238    pub unused2_: igraph_int_t,
18239    pub unused3_: igraph_int_t,
18240}
18241#[allow(clippy::unnecessary_operation, clippy::identity_op)]
18242const _: () = {
18243    ["Size of igraph_rewiring_stats_t"][::std::mem::size_of::<igraph_rewiring_stats_t>() - 32usize];
18244    ["Alignment of igraph_rewiring_stats_t"]
18245        [::std::mem::align_of::<igraph_rewiring_stats_t>() - 8usize];
18246    ["Offset of field: igraph_rewiring_stats_t::successful_swaps"]
18247        [::std::mem::offset_of!(igraph_rewiring_stats_t, successful_swaps) - 0usize];
18248    ["Offset of field: igraph_rewiring_stats_t::unused1_"]
18249        [::std::mem::offset_of!(igraph_rewiring_stats_t, unused1_) - 8usize];
18250    ["Offset of field: igraph_rewiring_stats_t::unused2_"]
18251        [::std::mem::offset_of!(igraph_rewiring_stats_t, unused2_) - 16usize];
18252    ["Offset of field: igraph_rewiring_stats_t::unused3_"]
18253        [::std::mem::offset_of!(igraph_rewiring_stats_t, unused3_) - 24usize];
18254};
18255unsafe extern "C" {
18256    pub fn igraph_add_edge(
18257        graph: *mut igraph_t,
18258        from: igraph_int_t,
18259        to: igraph_int_t,
18260    ) -> igraph_error_t;
18261}
18262unsafe extern "C" {
18263    pub fn igraph_disjoint_union(
18264        res: *mut igraph_t,
18265        left: *const igraph_t,
18266        right: *const igraph_t,
18267    ) -> igraph_error_t;
18268}
18269unsafe extern "C" {
18270    pub fn igraph_disjoint_union_many(
18271        res: *mut igraph_t,
18272        graphs: *const igraph_vector_ptr_t,
18273    ) -> igraph_error_t;
18274}
18275unsafe extern "C" {
18276    pub fn igraph_union(
18277        res: *mut igraph_t,
18278        left: *const igraph_t,
18279        right: *const igraph_t,
18280        edge_map1: *mut igraph_vector_int_t,
18281        edge_map2: *mut igraph_vector_int_t,
18282    ) -> igraph_error_t;
18283}
18284unsafe extern "C" {
18285    pub fn igraph_union_many(
18286        res: *mut igraph_t,
18287        graphs: *const igraph_vector_ptr_t,
18288        edgemaps: *mut igraph_vector_int_list_t,
18289    ) -> igraph_error_t;
18290}
18291unsafe extern "C" {
18292    pub fn igraph_join(
18293        res: *mut igraph_t,
18294        left: *const igraph_t,
18295        right: *const igraph_t,
18296    ) -> igraph_error_t;
18297}
18298unsafe extern "C" {
18299    pub fn igraph_intersection(
18300        res: *mut igraph_t,
18301        left: *const igraph_t,
18302        right: *const igraph_t,
18303        edge_map1: *mut igraph_vector_int_t,
18304        edge_map2: *mut igraph_vector_int_t,
18305    ) -> igraph_error_t;
18306}
18307unsafe extern "C" {
18308    pub fn igraph_intersection_many(
18309        res: *mut igraph_t,
18310        graphs: *const igraph_vector_ptr_t,
18311        edgemaps: *mut igraph_vector_int_list_t,
18312    ) -> igraph_error_t;
18313}
18314unsafe extern "C" {
18315    pub fn igraph_difference(
18316        res: *mut igraph_t,
18317        orig: *const igraph_t,
18318        sub: *const igraph_t,
18319    ) -> igraph_error_t;
18320}
18321unsafe extern "C" {
18322    pub fn igraph_complementer(
18323        res: *mut igraph_t,
18324        graph: *const igraph_t,
18325        loops: igraph_bool_t,
18326    ) -> igraph_error_t;
18327}
18328unsafe extern "C" {
18329    pub fn igraph_compose(
18330        res: *mut igraph_t,
18331        g1: *const igraph_t,
18332        g2: *const igraph_t,
18333        edge_map1: *mut igraph_vector_int_t,
18334        edge_map2: *mut igraph_vector_int_t,
18335    ) -> igraph_error_t;
18336}
18337unsafe extern "C" {
18338    pub fn igraph_contract_vertices(
18339        graph: *mut igraph_t,
18340        mapping: *const igraph_vector_int_t,
18341        vertex_comb: *const igraph_attribute_combination_t,
18342    ) -> igraph_error_t;
18343}
18344unsafe extern "C" {
18345    pub fn igraph_permute_vertices(
18346        graph: *const igraph_t,
18347        res: *mut igraph_t,
18348        permutation: *const igraph_vector_int_t,
18349    ) -> igraph_error_t;
18350}
18351unsafe extern "C" {
18352    pub fn igraph_connect_neighborhood(
18353        graph: *mut igraph_t,
18354        order: igraph_int_t,
18355        mode: igraph_neimode_t,
18356    ) -> igraph_error_t;
18357}
18358unsafe extern "C" {
18359    pub fn igraph_graph_power(
18360        graph: *const igraph_t,
18361        res: *mut igraph_t,
18362        order: igraph_int_t,
18363        directed: igraph_bool_t,
18364    ) -> igraph_error_t;
18365}
18366unsafe extern "C" {
18367    pub fn igraph_rewire(
18368        graph: *mut igraph_t,
18369        n: igraph_int_t,
18370        allowed_edge_types: igraph_edge_type_sw_t,
18371        stats: *mut igraph_rewiring_stats_t,
18372    ) -> igraph_error_t;
18373}
18374unsafe extern "C" {
18375    pub fn igraph_simplify(
18376        graph: *mut igraph_t,
18377        remove_multiple: igraph_bool_t,
18378        remove_loops: igraph_bool_t,
18379        edge_comb: *const igraph_attribute_combination_t,
18380    ) -> igraph_error_t;
18381}
18382unsafe extern "C" {
18383    pub fn igraph_induced_subgraph_map(
18384        graph: *const igraph_t,
18385        res: *mut igraph_t,
18386        vids: igraph_vs_t,
18387        impl_: igraph_subgraph_implementation_t,
18388        map: *mut igraph_vector_int_t,
18389        invmap: *mut igraph_vector_int_t,
18390    ) -> igraph_error_t;
18391}
18392unsafe extern "C" {
18393    pub fn igraph_induced_subgraph(
18394        graph: *const igraph_t,
18395        res: *mut igraph_t,
18396        vids: igraph_vs_t,
18397        impl_: igraph_subgraph_implementation_t,
18398    ) -> igraph_error_t;
18399}
18400unsafe extern "C" {
18401    pub fn igraph_induced_subgraph_edges(
18402        graph: *const igraph_t,
18403        vids: igraph_vs_t,
18404        edges: *mut igraph_vector_int_t,
18405    ) -> igraph_error_t;
18406}
18407unsafe extern "C" {
18408    pub fn igraph_subgraph_from_edges(
18409        graph: *const igraph_t,
18410        res: *mut igraph_t,
18411        eids: igraph_es_t,
18412        delete_vertices: igraph_bool_t,
18413    ) -> igraph_error_t;
18414}
18415unsafe extern "C" {
18416    pub fn igraph_reverse_edges(graph: *mut igraph_t, eids: igraph_es_t) -> igraph_error_t;
18417}
18418unsafe extern "C" {
18419    pub fn igraph_product(
18420        res: *mut igraph_t,
18421        g1: *const igraph_t,
18422        g2: *const igraph_t,
18423        type_: igraph_product_t,
18424    ) -> igraph_error_t;
18425}
18426unsafe extern "C" {
18427    pub fn igraph_rooted_product(
18428        res: *mut igraph_t,
18429        g1: *const igraph_t,
18430        g2: *const igraph_t,
18431        root: igraph_int_t,
18432    ) -> igraph_error_t;
18433}
18434unsafe extern "C" {
18435    pub fn igraph_mycielskian(
18436        graph: *const igraph_t,
18437        res: *mut igraph_t,
18438        k: igraph_int_t,
18439    ) -> igraph_error_t;
18440}
18441#[doc = " \\typedef igraph_maxflow_stats_t\n \\brief Data structure holding statistics from the push-relabel maximum flow solver.\n\n \\param nopush The number of push operations performed.\n \\param norelabel The number of relabel operarions performed.\n \\param nogap The number of times the gap heuristics was used.\n \\param nogapnodes The total number of vertices that were\n        omitted form further calculations because of the gap\n        heuristics.\n \\param nobfs The number of times the reverse BFS was run to\n        assign good values to the height function. This includes\n        an initial run before the whole algorithm, so it is always\n        at least one."]
18442#[repr(C)]
18443#[derive(Debug, Copy, Clone)]
18444pub struct igraph_maxflow_stats_t {
18445    pub nopush: igraph_int_t,
18446    pub norelabel: igraph_int_t,
18447    pub nogap: igraph_int_t,
18448    pub nogapnodes: igraph_int_t,
18449    pub nobfs: igraph_int_t,
18450}
18451#[allow(clippy::unnecessary_operation, clippy::identity_op)]
18452const _: () = {
18453    ["Size of igraph_maxflow_stats_t"][::std::mem::size_of::<igraph_maxflow_stats_t>() - 40usize];
18454    ["Alignment of igraph_maxflow_stats_t"]
18455        [::std::mem::align_of::<igraph_maxflow_stats_t>() - 8usize];
18456    ["Offset of field: igraph_maxflow_stats_t::nopush"]
18457        [::std::mem::offset_of!(igraph_maxflow_stats_t, nopush) - 0usize];
18458    ["Offset of field: igraph_maxflow_stats_t::norelabel"]
18459        [::std::mem::offset_of!(igraph_maxflow_stats_t, norelabel) - 8usize];
18460    ["Offset of field: igraph_maxflow_stats_t::nogap"]
18461        [::std::mem::offset_of!(igraph_maxflow_stats_t, nogap) - 16usize];
18462    ["Offset of field: igraph_maxflow_stats_t::nogapnodes"]
18463        [::std::mem::offset_of!(igraph_maxflow_stats_t, nogapnodes) - 24usize];
18464    ["Offset of field: igraph_maxflow_stats_t::nobfs"]
18465        [::std::mem::offset_of!(igraph_maxflow_stats_t, nobfs) - 32usize];
18466};
18467unsafe extern "C" {
18468    pub fn igraph_maxflow(
18469        graph: *const igraph_t,
18470        value: *mut igraph_real_t,
18471        flow: *mut igraph_vector_t,
18472        cut: *mut igraph_vector_int_t,
18473        partition: *mut igraph_vector_int_t,
18474        partition2: *mut igraph_vector_int_t,
18475        source: igraph_int_t,
18476        target: igraph_int_t,
18477        capacity: *const igraph_vector_t,
18478        stats: *mut igraph_maxflow_stats_t,
18479    ) -> igraph_error_t;
18480}
18481unsafe extern "C" {
18482    pub fn igraph_maxflow_value(
18483        graph: *const igraph_t,
18484        value: *mut igraph_real_t,
18485        source: igraph_int_t,
18486        target: igraph_int_t,
18487        capacity: *const igraph_vector_t,
18488        stats: *mut igraph_maxflow_stats_t,
18489    ) -> igraph_error_t;
18490}
18491unsafe extern "C" {
18492    pub fn igraph_st_mincut(
18493        graph: *const igraph_t,
18494        value: *mut igraph_real_t,
18495        cut: *mut igraph_vector_int_t,
18496        partition: *mut igraph_vector_int_t,
18497        partition2: *mut igraph_vector_int_t,
18498        source: igraph_int_t,
18499        target: igraph_int_t,
18500        capacity: *const igraph_vector_t,
18501    ) -> igraph_error_t;
18502}
18503unsafe extern "C" {
18504    pub fn igraph_st_mincut_value(
18505        graph: *const igraph_t,
18506        res: *mut igraph_real_t,
18507        source: igraph_int_t,
18508        target: igraph_int_t,
18509        capacity: *const igraph_vector_t,
18510    ) -> igraph_error_t;
18511}
18512unsafe extern "C" {
18513    pub fn igraph_mincut_value(
18514        graph: *const igraph_t,
18515        res: *mut igraph_real_t,
18516        capacity: *const igraph_vector_t,
18517    ) -> igraph_error_t;
18518}
18519unsafe extern "C" {
18520    pub fn igraph_mincut(
18521        graph: *const igraph_t,
18522        value: *mut igraph_real_t,
18523        partition: *mut igraph_vector_int_t,
18524        partition2: *mut igraph_vector_int_t,
18525        cut: *mut igraph_vector_int_t,
18526        capacity: *const igraph_vector_t,
18527    ) -> igraph_error_t;
18528}
18529unsafe extern "C" {
18530    pub fn igraph_st_vertex_connectivity(
18531        graph: *const igraph_t,
18532        res: *mut igraph_int_t,
18533        source: igraph_int_t,
18534        target: igraph_int_t,
18535        neighbors: igraph_vconn_nei_t,
18536    ) -> igraph_error_t;
18537}
18538unsafe extern "C" {
18539    pub fn igraph_vertex_connectivity(
18540        graph: *const igraph_t,
18541        res: *mut igraph_int_t,
18542        checks: igraph_bool_t,
18543    ) -> igraph_error_t;
18544}
18545unsafe extern "C" {
18546    pub fn igraph_st_edge_connectivity(
18547        graph: *const igraph_t,
18548        res: *mut igraph_int_t,
18549        source: igraph_int_t,
18550        target: igraph_int_t,
18551    ) -> igraph_error_t;
18552}
18553unsafe extern "C" {
18554    pub fn igraph_edge_connectivity(
18555        graph: *const igraph_t,
18556        res: *mut igraph_int_t,
18557        checks: igraph_bool_t,
18558    ) -> igraph_error_t;
18559}
18560unsafe extern "C" {
18561    pub fn igraph_edge_disjoint_paths(
18562        graph: *const igraph_t,
18563        res: *mut igraph_int_t,
18564        source: igraph_int_t,
18565        target: igraph_int_t,
18566    ) -> igraph_error_t;
18567}
18568unsafe extern "C" {
18569    pub fn igraph_vertex_disjoint_paths(
18570        graph: *const igraph_t,
18571        res: *mut igraph_int_t,
18572        source: igraph_int_t,
18573        target: igraph_int_t,
18574    ) -> igraph_error_t;
18575}
18576unsafe extern "C" {
18577    pub fn igraph_adhesion(
18578        graph: *const igraph_t,
18579        res: *mut igraph_int_t,
18580        checks: igraph_bool_t,
18581    ) -> igraph_error_t;
18582}
18583unsafe extern "C" {
18584    pub fn igraph_cohesion(
18585        graph: *const igraph_t,
18586        res: *mut igraph_int_t,
18587        checks: igraph_bool_t,
18588    ) -> igraph_error_t;
18589}
18590unsafe extern "C" {
18591    pub fn igraph_even_tarjan_reduction(
18592        graph: *const igraph_t,
18593        graphbar: *mut igraph_t,
18594        capacity: *mut igraph_vector_t,
18595    ) -> igraph_error_t;
18596}
18597unsafe extern "C" {
18598    pub fn igraph_residual_graph(
18599        graph: *const igraph_t,
18600        capacity: *const igraph_vector_t,
18601        residual: *mut igraph_t,
18602        residual_capacity: *mut igraph_vector_t,
18603        flow: *const igraph_vector_t,
18604    ) -> igraph_error_t;
18605}
18606unsafe extern "C" {
18607    pub fn igraph_reverse_residual_graph(
18608        graph: *const igraph_t,
18609        capacity: *const igraph_vector_t,
18610        residual: *mut igraph_t,
18611        flow: *const igraph_vector_t,
18612    ) -> igraph_error_t;
18613}
18614unsafe extern "C" {
18615    pub fn igraph_dominator_tree(
18616        graph: *const igraph_t,
18617        root: igraph_int_t,
18618        dom: *mut igraph_vector_int_t,
18619        domtree: *mut igraph_t,
18620        leftout: *mut igraph_vector_int_t,
18621        mode: igraph_neimode_t,
18622    ) -> igraph_error_t;
18623}
18624unsafe extern "C" {
18625    pub fn igraph_all_st_cuts(
18626        graph: *const igraph_t,
18627        cuts: *mut igraph_vector_int_list_t,
18628        partition1s: *mut igraph_vector_int_list_t,
18629        source: igraph_int_t,
18630        target: igraph_int_t,
18631    ) -> igraph_error_t;
18632}
18633unsafe extern "C" {
18634    pub fn igraph_all_st_mincuts(
18635        graph: *const igraph_t,
18636        value: *mut igraph_real_t,
18637        cuts: *mut igraph_vector_int_list_t,
18638        partition1s: *mut igraph_vector_int_list_t,
18639        source: igraph_int_t,
18640        target: igraph_int_t,
18641        capacity: *const igraph_vector_t,
18642    ) -> igraph_error_t;
18643}
18644unsafe extern "C" {
18645    pub fn igraph_gomory_hu_tree(
18646        graph: *const igraph_t,
18647        tree: *mut igraph_t,
18648        flows: *mut igraph_vector_t,
18649        capacity: *const igraph_vector_t,
18650    ) -> igraph_error_t;
18651}
18652#[doc = " \\struct igraph_plfit_result_t\n \\brief Result of fitting a power-law distribution to a vector.\n\n This data structure contains the result of \\ref igraph_power_law_fit(),\n which tries to fit a power-law distribution to a vector of numbers. The\n structure contains the following members:\n\n \\member continuous Whether the fitted power-law distribution was continuous\n                    or discrete.\n \\member alpha The exponent of the fitted power-law distribution.\n \\member xmin  The minimum value from which the power-law distribution was\n               fitted. In other words, only the values larger than \\c xmin\n               were used from the input vector.\n \\member L     The log-likelihood of the fitted parameters; in other words,\n               the probability of observing the input vector given the\n               parameters.\n \\member D     The test statistic of a Kolmogorov-Smirnov test that compares\n               the fitted distribution with the input vector. Smaller scores\n               denote better fit.\n \\member p     The p-value of the Kolmogorov-Smirnov test; \\c NaN if it has\n               not been calculated yet. Small p-values (less than 0.05)\n               indicate that the test rejected the hypothesis that the\n               original data could have been drawn from the fitted power-law\n               distribution.\n \\member data  The vector containing the original input data. May not be valid\n               any more if the caller already destroyed the vector."]
18653#[repr(C)]
18654#[derive(Debug, Copy, Clone)]
18655pub struct igraph_plfit_result_t {
18656    pub continuous: igraph_bool_t,
18657    pub alpha: igraph_real_t,
18658    pub xmin: igraph_real_t,
18659    pub L: igraph_real_t,
18660    pub D: igraph_real_t,
18661    pub data: *const igraph_vector_t,
18662}
18663#[allow(clippy::unnecessary_operation, clippy::identity_op)]
18664const _: () = {
18665    ["Size of igraph_plfit_result_t"][::std::mem::size_of::<igraph_plfit_result_t>() - 48usize];
18666    ["Alignment of igraph_plfit_result_t"]
18667        [::std::mem::align_of::<igraph_plfit_result_t>() - 8usize];
18668    ["Offset of field: igraph_plfit_result_t::continuous"]
18669        [::std::mem::offset_of!(igraph_plfit_result_t, continuous) - 0usize];
18670    ["Offset of field: igraph_plfit_result_t::alpha"]
18671        [::std::mem::offset_of!(igraph_plfit_result_t, alpha) - 8usize];
18672    ["Offset of field: igraph_plfit_result_t::xmin"]
18673        [::std::mem::offset_of!(igraph_plfit_result_t, xmin) - 16usize];
18674    ["Offset of field: igraph_plfit_result_t::L"]
18675        [::std::mem::offset_of!(igraph_plfit_result_t, L) - 24usize];
18676    ["Offset of field: igraph_plfit_result_t::D"]
18677        [::std::mem::offset_of!(igraph_plfit_result_t, D) - 32usize];
18678    ["Offset of field: igraph_plfit_result_t::data"]
18679        [::std::mem::offset_of!(igraph_plfit_result_t, data) - 40usize];
18680};
18681unsafe extern "C" {
18682    pub fn igraph_running_mean(
18683        data: *const igraph_vector_t,
18684        res: *mut igraph_vector_t,
18685        binwidth: igraph_int_t,
18686    ) -> igraph_error_t;
18687}
18688unsafe extern "C" {
18689    pub fn igraph_random_sample(
18690        res: *mut igraph_vector_int_t,
18691        l: igraph_int_t,
18692        h: igraph_int_t,
18693        length: igraph_int_t,
18694    ) -> igraph_error_t;
18695}
18696unsafe extern "C" {
18697    pub fn igraph_almost_equals(a: f64, b: f64, eps: f64) -> igraph_bool_t;
18698}
18699unsafe extern "C" {
18700    pub fn igraph_cmp_epsilon(a: f64, b: f64, eps: f64) -> ::std::os::raw::c_int;
18701}
18702unsafe extern "C" {
18703    pub fn igraph_power_law_fit(
18704        vector: *const igraph_vector_t,
18705        result: *mut igraph_plfit_result_t,
18706        xmin: igraph_real_t,
18707        force_continuous: igraph_bool_t,
18708    ) -> igraph_error_t;
18709}
18710unsafe extern "C" {
18711    pub fn igraph_plfit_result_calculate_p_value(
18712        model: *const igraph_plfit_result_t,
18713        result: *mut igraph_real_t,
18714        precision: igraph_real_t,
18715    ) -> igraph_error_t;
18716}
18717unsafe extern "C" {
18718    pub fn igraph_cocitation(
18719        graph: *const igraph_t,
18720        res: *mut igraph_matrix_t,
18721        vids: igraph_vs_t,
18722    ) -> igraph_error_t;
18723}
18724unsafe extern "C" {
18725    pub fn igraph_bibcoupling(
18726        graph: *const igraph_t,
18727        res: *mut igraph_matrix_t,
18728        vids: igraph_vs_t,
18729    ) -> igraph_error_t;
18730}
18731unsafe extern "C" {
18732    pub fn igraph_similarity_jaccard(
18733        graph: *const igraph_t,
18734        res: *mut igraph_matrix_t,
18735        vit_from: igraph_vs_t,
18736        vit_to: igraph_vs_t,
18737        mode: igraph_neimode_t,
18738        loops: igraph_bool_t,
18739    ) -> igraph_error_t;
18740}
18741unsafe extern "C" {
18742    pub fn igraph_similarity_jaccard_pairs(
18743        graph: *const igraph_t,
18744        res: *mut igraph_vector_t,
18745        pairs: *const igraph_vector_int_t,
18746        mode: igraph_neimode_t,
18747        loops: igraph_bool_t,
18748    ) -> igraph_error_t;
18749}
18750unsafe extern "C" {
18751    pub fn igraph_similarity_jaccard_es(
18752        graph: *const igraph_t,
18753        res: *mut igraph_vector_t,
18754        es: igraph_es_t,
18755        mode: igraph_neimode_t,
18756        loops: igraph_bool_t,
18757    ) -> igraph_error_t;
18758}
18759unsafe extern "C" {
18760    pub fn igraph_similarity_dice(
18761        graph: *const igraph_t,
18762        res: *mut igraph_matrix_t,
18763        vit_from: igraph_vs_t,
18764        vit_to: igraph_vs_t,
18765        mode: igraph_neimode_t,
18766        loops: igraph_bool_t,
18767    ) -> igraph_error_t;
18768}
18769unsafe extern "C" {
18770    pub fn igraph_similarity_dice_pairs(
18771        graph: *const igraph_t,
18772        res: *mut igraph_vector_t,
18773        pairs: *const igraph_vector_int_t,
18774        mode: igraph_neimode_t,
18775        loops: igraph_bool_t,
18776    ) -> igraph_error_t;
18777}
18778unsafe extern "C" {
18779    pub fn igraph_similarity_dice_es(
18780        graph: *const igraph_t,
18781        res: *mut igraph_vector_t,
18782        es: igraph_es_t,
18783        mode: igraph_neimode_t,
18784        loops: igraph_bool_t,
18785    ) -> igraph_error_t;
18786}
18787unsafe extern "C" {
18788    pub fn igraph_similarity_inverse_log_weighted(
18789        graph: *const igraph_t,
18790        res: *mut igraph_matrix_t,
18791        vids: igraph_vs_t,
18792        mode: igraph_neimode_t,
18793    ) -> igraph_error_t;
18794}
18795#[repr(C)]
18796#[derive(Debug, Copy, Clone)]
18797pub struct igraph_adjlist_t {
18798    pub length: igraph_int_t,
18799    pub adjs: *mut igraph_vector_int_t,
18800}
18801#[allow(clippy::unnecessary_operation, clippy::identity_op)]
18802const _: () = {
18803    ["Size of igraph_adjlist_t"][::std::mem::size_of::<igraph_adjlist_t>() - 16usize];
18804    ["Alignment of igraph_adjlist_t"][::std::mem::align_of::<igraph_adjlist_t>() - 8usize];
18805    ["Offset of field: igraph_adjlist_t::length"]
18806        [::std::mem::offset_of!(igraph_adjlist_t, length) - 0usize];
18807    ["Offset of field: igraph_adjlist_t::adjs"]
18808        [::std::mem::offset_of!(igraph_adjlist_t, adjs) - 8usize];
18809};
18810#[repr(C)]
18811#[derive(Debug, Copy, Clone)]
18812pub struct igraph_inclist_t {
18813    pub length: igraph_int_t,
18814    pub incs: *mut igraph_vector_int_t,
18815}
18816#[allow(clippy::unnecessary_operation, clippy::identity_op)]
18817const _: () = {
18818    ["Size of igraph_inclist_t"][::std::mem::size_of::<igraph_inclist_t>() - 16usize];
18819    ["Alignment of igraph_inclist_t"][::std::mem::align_of::<igraph_inclist_t>() - 8usize];
18820    ["Offset of field: igraph_inclist_t::length"]
18821        [::std::mem::offset_of!(igraph_inclist_t, length) - 0usize];
18822    ["Offset of field: igraph_inclist_t::incs"]
18823        [::std::mem::offset_of!(igraph_inclist_t, incs) - 8usize];
18824};
18825unsafe extern "C" {
18826    pub fn igraph_adjlist_init(
18827        graph: *const igraph_t,
18828        al: *mut igraph_adjlist_t,
18829        mode: igraph_neimode_t,
18830        loops: igraph_loops_t,
18831        multiple: igraph_bool_t,
18832    ) -> igraph_error_t;
18833}
18834unsafe extern "C" {
18835    pub fn igraph_adjlist_init_empty(
18836        al: *mut igraph_adjlist_t,
18837        no_of_nodes: igraph_int_t,
18838    ) -> igraph_error_t;
18839}
18840unsafe extern "C" {
18841    pub fn igraph_adjlist_size(al: *const igraph_adjlist_t) -> igraph_int_t;
18842}
18843unsafe extern "C" {
18844    pub fn igraph_adjlist_init_complementer(
18845        graph: *const igraph_t,
18846        al: *mut igraph_adjlist_t,
18847        mode: igraph_neimode_t,
18848        loops: igraph_loops_t,
18849    ) -> igraph_error_t;
18850}
18851unsafe extern "C" {
18852    pub fn igraph_adjlist_init_from_inclist(
18853        graph: *const igraph_t,
18854        al: *mut igraph_adjlist_t,
18855        il: *const igraph_inclist_t,
18856    ) -> igraph_error_t;
18857}
18858unsafe extern "C" {
18859    pub fn igraph_adjlist_destroy(al: *mut igraph_adjlist_t);
18860}
18861unsafe extern "C" {
18862    pub fn igraph_adjlist_clear(al: *mut igraph_adjlist_t);
18863}
18864unsafe extern "C" {
18865    pub fn igraph_adjlist_sort(al: *mut igraph_adjlist_t);
18866}
18867unsafe extern "C" {
18868    pub fn igraph_adjlist_simplify(al: *mut igraph_adjlist_t) -> igraph_error_t;
18869}
18870unsafe extern "C" {
18871    pub fn igraph_adjlist_print(al: *const igraph_adjlist_t) -> igraph_error_t;
18872}
18873unsafe extern "C" {
18874    pub fn igraph_adjlist_fprint(al: *const igraph_adjlist_t, outfile: *mut FILE)
18875    -> igraph_error_t;
18876}
18877unsafe extern "C" {
18878    pub fn igraph_adjlist_has_edge(
18879        al: *mut igraph_adjlist_t,
18880        from: igraph_int_t,
18881        to: igraph_int_t,
18882        directed: igraph_bool_t,
18883    ) -> igraph_bool_t;
18884}
18885unsafe extern "C" {
18886    pub fn igraph_adjlist_replace_edge(
18887        al: *mut igraph_adjlist_t,
18888        from: igraph_int_t,
18889        oldto: igraph_int_t,
18890        newto: igraph_int_t,
18891        directed: igraph_bool_t,
18892    ) -> igraph_error_t;
18893}
18894unsafe extern "C" {
18895    pub fn igraph_adjlist(
18896        graph: *mut igraph_t,
18897        adjlist: *const igraph_adjlist_t,
18898        mode: igraph_neimode_t,
18899        duplicate: igraph_bool_t,
18900    ) -> igraph_error_t;
18901}
18902unsafe extern "C" {
18903    pub fn igraph_inclist_init(
18904        graph: *const igraph_t,
18905        il: *mut igraph_inclist_t,
18906        mode: igraph_neimode_t,
18907        loops: igraph_loops_t,
18908    ) -> igraph_error_t;
18909}
18910unsafe extern "C" {
18911    pub fn igraph_inclist_init_empty(il: *mut igraph_inclist_t, n: igraph_int_t) -> igraph_error_t;
18912}
18913unsafe extern "C" {
18914    pub fn igraph_inclist_size(al: *const igraph_inclist_t) -> igraph_int_t;
18915}
18916unsafe extern "C" {
18917    pub fn igraph_inclist_destroy(il: *mut igraph_inclist_t);
18918}
18919unsafe extern "C" {
18920    pub fn igraph_inclist_clear(il: *mut igraph_inclist_t);
18921}
18922unsafe extern "C" {
18923    pub fn igraph_inclist_print(il: *const igraph_inclist_t) -> igraph_error_t;
18924}
18925unsafe extern "C" {
18926    pub fn igraph_inclist_fprint(il: *const igraph_inclist_t, outfile: *mut FILE)
18927    -> igraph_error_t;
18928}
18929#[repr(C)]
18930#[derive(Debug, Copy, Clone)]
18931pub struct igraph_lazy_adjlist_t {
18932    pub graph: *const igraph_t,
18933    pub length: igraph_int_t,
18934    pub adjs: *mut *mut igraph_vector_int_t,
18935    pub mode: igraph_neimode_t,
18936    pub loops: igraph_loops_t,
18937    pub multiple: igraph_bool_t,
18938}
18939#[allow(clippy::unnecessary_operation, clippy::identity_op)]
18940const _: () = {
18941    ["Size of igraph_lazy_adjlist_t"][::std::mem::size_of::<igraph_lazy_adjlist_t>() - 40usize];
18942    ["Alignment of igraph_lazy_adjlist_t"]
18943        [::std::mem::align_of::<igraph_lazy_adjlist_t>() - 8usize];
18944    ["Offset of field: igraph_lazy_adjlist_t::graph"]
18945        [::std::mem::offset_of!(igraph_lazy_adjlist_t, graph) - 0usize];
18946    ["Offset of field: igraph_lazy_adjlist_t::length"]
18947        [::std::mem::offset_of!(igraph_lazy_adjlist_t, length) - 8usize];
18948    ["Offset of field: igraph_lazy_adjlist_t::adjs"]
18949        [::std::mem::offset_of!(igraph_lazy_adjlist_t, adjs) - 16usize];
18950    ["Offset of field: igraph_lazy_adjlist_t::mode"]
18951        [::std::mem::offset_of!(igraph_lazy_adjlist_t, mode) - 24usize];
18952    ["Offset of field: igraph_lazy_adjlist_t::loops"]
18953        [::std::mem::offset_of!(igraph_lazy_adjlist_t, loops) - 28usize];
18954    ["Offset of field: igraph_lazy_adjlist_t::multiple"]
18955        [::std::mem::offset_of!(igraph_lazy_adjlist_t, multiple) - 32usize];
18956};
18957unsafe extern "C" {
18958    pub fn igraph_lazy_adjlist_init(
18959        graph: *const igraph_t,
18960        al: *mut igraph_lazy_adjlist_t,
18961        mode: igraph_neimode_t,
18962        loops: igraph_loops_t,
18963        multiple: igraph_bool_t,
18964    ) -> igraph_error_t;
18965}
18966unsafe extern "C" {
18967    pub fn igraph_lazy_adjlist_destroy(al: *mut igraph_lazy_adjlist_t);
18968}
18969unsafe extern "C" {
18970    pub fn igraph_lazy_adjlist_clear(al: *mut igraph_lazy_adjlist_t);
18971}
18972unsafe extern "C" {
18973    pub fn igraph_lazy_adjlist_size(al: *const igraph_lazy_adjlist_t) -> igraph_int_t;
18974}
18975unsafe extern "C" {
18976    pub fn igraph_i_lazy_adjlist_get_real(
18977        al: *mut igraph_lazy_adjlist_t,
18978        no: igraph_int_t,
18979    ) -> *mut igraph_vector_int_t;
18980}
18981#[repr(C)]
18982#[derive(Debug, Copy, Clone)]
18983pub struct igraph_lazy_inclist_t {
18984    pub graph: *const igraph_t,
18985    pub length: igraph_int_t,
18986    pub incs: *mut *mut igraph_vector_int_t,
18987    pub mode: igraph_neimode_t,
18988    pub loops: igraph_loops_t,
18989}
18990#[allow(clippy::unnecessary_operation, clippy::identity_op)]
18991const _: () = {
18992    ["Size of igraph_lazy_inclist_t"][::std::mem::size_of::<igraph_lazy_inclist_t>() - 32usize];
18993    ["Alignment of igraph_lazy_inclist_t"]
18994        [::std::mem::align_of::<igraph_lazy_inclist_t>() - 8usize];
18995    ["Offset of field: igraph_lazy_inclist_t::graph"]
18996        [::std::mem::offset_of!(igraph_lazy_inclist_t, graph) - 0usize];
18997    ["Offset of field: igraph_lazy_inclist_t::length"]
18998        [::std::mem::offset_of!(igraph_lazy_inclist_t, length) - 8usize];
18999    ["Offset of field: igraph_lazy_inclist_t::incs"]
19000        [::std::mem::offset_of!(igraph_lazy_inclist_t, incs) - 16usize];
19001    ["Offset of field: igraph_lazy_inclist_t::mode"]
19002        [::std::mem::offset_of!(igraph_lazy_inclist_t, mode) - 24usize];
19003    ["Offset of field: igraph_lazy_inclist_t::loops"]
19004        [::std::mem::offset_of!(igraph_lazy_inclist_t, loops) - 28usize];
19005};
19006unsafe extern "C" {
19007    pub fn igraph_lazy_inclist_init(
19008        graph: *const igraph_t,
19009        il: *mut igraph_lazy_inclist_t,
19010        mode: igraph_neimode_t,
19011        loops: igraph_loops_t,
19012    ) -> igraph_error_t;
19013}
19014unsafe extern "C" {
19015    pub fn igraph_lazy_inclist_destroy(il: *mut igraph_lazy_inclist_t);
19016}
19017unsafe extern "C" {
19018    pub fn igraph_lazy_inclist_clear(il: *mut igraph_lazy_inclist_t);
19019}
19020unsafe extern "C" {
19021    pub fn igraph_lazy_inclist_size(il: *const igraph_lazy_inclist_t) -> igraph_int_t;
19022}
19023unsafe extern "C" {
19024    pub fn igraph_i_lazy_inclist_get_real(
19025        il: *mut igraph_lazy_inclist_t,
19026        no: igraph_int_t,
19027    ) -> *mut igraph_vector_int_t;
19028}
19029unsafe extern "C" {
19030    #[doc = " \\section about_blas BLAS interface in igraph\n\n <para>\n BLAS is a highly optimized library for basic linear algebra operations\n such as vector-vector, matrix-vector and matrix-matrix product.\n Please see http://www.netlib.org/blas/ for details and a reference\n implementation in Fortran. igraph contains some wrapper functions\n that can be used to call BLAS routines in a somewhat more\n user-friendly way. Not all BLAS routines are included in igraph,\n and even those which are included might not have wrappers;\n the extension of the set of wrapped functions will probably be driven\n by igraph's internal requirements. The wrapper functions usually\n substitute double-precision floating point arrays used by BLAS with\n \\type igraph_vector_t and \\type igraph_matrix_t instances and also\n remove those parameters (such as the number of rows/columns) that\n can be inferred from the passed arguments directly.\n </para>"]
19031    pub fn igraph_blas_dgemv(
19032        transpose: igraph_bool_t,
19033        alpha: igraph_real_t,
19034        a: *const igraph_matrix_t,
19035        x: *const igraph_vector_t,
19036        beta: igraph_real_t,
19037        y: *mut igraph_vector_t,
19038    ) -> igraph_error_t;
19039}
19040unsafe extern "C" {
19041    pub fn igraph_blas_dgemm(
19042        transpose_a: igraph_bool_t,
19043        transpose_b: igraph_bool_t,
19044        alpha: igraph_real_t,
19045        a: *const igraph_matrix_t,
19046        b: *const igraph_matrix_t,
19047        beta: igraph_real_t,
19048        c: *mut igraph_matrix_t,
19049    ) -> igraph_error_t;
19050}
19051unsafe extern "C" {
19052    pub fn igraph_blas_dgemv_array(
19053        transpose: igraph_bool_t,
19054        alpha: igraph_real_t,
19055        a: *const igraph_matrix_t,
19056        x: *const igraph_real_t,
19057        beta: igraph_real_t,
19058        y: *mut igraph_real_t,
19059    ) -> igraph_error_t;
19060}
19061unsafe extern "C" {
19062    pub fn igraph_blas_dnrm2(v: *const igraph_vector_t) -> igraph_real_t;
19063}
19064unsafe extern "C" {
19065    pub fn igraph_blas_ddot(
19066        v1: *const igraph_vector_t,
19067        v2: *const igraph_vector_t,
19068        res: *mut igraph_real_t,
19069    ) -> igraph_error_t;
19070}
19071unsafe extern "C" {
19072    #[doc = " \\section about_lapack LAPACK interface in igraph\n\n <para>\n LAPACK is written in Fortran90 and provides routines for solving\n systems of simultaneous linear equations, least-squares solutions\n of linear systems of equations, eigenvalue problems, and singular\n value problems. The associated matrix factorizations (LU, Cholesky,\n QR, SVD, Schur, generalized Schur) are also provided, as are\n related computations such as reordering of the Schur factorizations\n and estimating condition numbers. Dense and banded matrices are\n handled, but not general sparse matrices. In all areas, similar\n functionality is provided for real and complex matrices, in both\n single and double precision.\n </para>\n\n <para>\n igraph provides an interface to a very limited set of LAPACK\n functions, using the regular igraph data structures.\n </para>\n\n <para>\n See more about LAPACK at http://www.netlib.org/lapack/\n </para>"]
19073    pub fn igraph_lapack_dgetrf(
19074        a: *mut igraph_matrix_t,
19075        ipiv: *mut igraph_vector_int_t,
19076        info: *mut ::std::os::raw::c_int,
19077    ) -> igraph_error_t;
19078}
19079unsafe extern "C" {
19080    pub fn igraph_lapack_dgetrs(
19081        transpose: igraph_bool_t,
19082        a: *const igraph_matrix_t,
19083        ipiv: *const igraph_vector_int_t,
19084        b: *mut igraph_matrix_t,
19085    ) -> igraph_error_t;
19086}
19087unsafe extern "C" {
19088    pub fn igraph_lapack_dgesv(
19089        a: *mut igraph_matrix_t,
19090        ipiv: *mut igraph_vector_int_t,
19091        b: *mut igraph_matrix_t,
19092        info: *mut ::std::os::raw::c_int,
19093    ) -> igraph_error_t;
19094}
19095pub const igraph_lapack_dsyev_which_t_IGRAPH_LAPACK_DSYEV_ALL: igraph_lapack_dsyev_which_t = 0;
19096pub const igraph_lapack_dsyev_which_t_IGRAPH_LAPACK_DSYEV_INTERVAL: igraph_lapack_dsyev_which_t = 1;
19097pub const igraph_lapack_dsyev_which_t_IGRAPH_LAPACK_DSYEV_SELECT: igraph_lapack_dsyev_which_t = 2;
19098pub type igraph_lapack_dsyev_which_t = ::std::os::raw::c_uint;
19099unsafe extern "C" {
19100    pub fn igraph_lapack_dsyevr(
19101        A: *const igraph_matrix_t,
19102        which: igraph_lapack_dsyev_which_t,
19103        vl: igraph_real_t,
19104        vu: igraph_real_t,
19105        vestimate: ::std::os::raw::c_int,
19106        il: ::std::os::raw::c_int,
19107        iu: ::std::os::raw::c_int,
19108        abstol: igraph_real_t,
19109        values: *mut igraph_vector_t,
19110        vectors: *mut igraph_matrix_t,
19111        support: *mut igraph_vector_int_t,
19112    ) -> igraph_error_t;
19113}
19114unsafe extern "C" {
19115    pub fn igraph_lapack_dgeev(
19116        A: *const igraph_matrix_t,
19117        valuesreal: *mut igraph_vector_t,
19118        valuesimag: *mut igraph_vector_t,
19119        vectorsleft: *mut igraph_matrix_t,
19120        vectorsright: *mut igraph_matrix_t,
19121        info: *mut ::std::os::raw::c_int,
19122    ) -> igraph_error_t;
19123}
19124pub const igraph_lapack_dgeevx_balance_t_IGRAPH_LAPACK_DGEEVX_BALANCE_NONE:
19125    igraph_lapack_dgeevx_balance_t = 0;
19126pub const igraph_lapack_dgeevx_balance_t_IGRAPH_LAPACK_DGEEVX_BALANCE_PERM:
19127    igraph_lapack_dgeevx_balance_t = 1;
19128pub const igraph_lapack_dgeevx_balance_t_IGRAPH_LAPACK_DGEEVX_BALANCE_SCALE:
19129    igraph_lapack_dgeevx_balance_t = 2;
19130pub const igraph_lapack_dgeevx_balance_t_IGRAPH_LAPACK_DGEEVX_BALANCE_BOTH:
19131    igraph_lapack_dgeevx_balance_t = 3;
19132pub type igraph_lapack_dgeevx_balance_t = ::std::os::raw::c_uint;
19133unsafe extern "C" {
19134    pub fn igraph_lapack_dgeevx(
19135        balance: igraph_lapack_dgeevx_balance_t,
19136        A: *const igraph_matrix_t,
19137        valuesreal: *mut igraph_vector_t,
19138        valuesimag: *mut igraph_vector_t,
19139        vectorsleft: *mut igraph_matrix_t,
19140        vectorsright: *mut igraph_matrix_t,
19141        ilo: *mut ::std::os::raw::c_int,
19142        ihi: *mut ::std::os::raw::c_int,
19143        scale: *mut igraph_vector_t,
19144        abnrm: *mut igraph_real_t,
19145        rconde: *mut igraph_vector_t,
19146        rcondv: *mut igraph_vector_t,
19147        info: *mut ::std::os::raw::c_int,
19148    ) -> igraph_error_t;
19149}
19150unsafe extern "C" {
19151    pub fn igraph_lapack_dgehrd(
19152        A: *const igraph_matrix_t,
19153        ilo: ::std::os::raw::c_int,
19154        ihi: ::std::os::raw::c_int,
19155        result: *mut igraph_matrix_t,
19156    ) -> igraph_error_t;
19157}
19158unsafe extern "C" {
19159    pub fn igraph_assortativity_nominal(
19160        graph: *const igraph_t,
19161        weights: *const igraph_vector_t,
19162        types: *const igraph_vector_int_t,
19163        res: *mut igraph_real_t,
19164        directed: igraph_bool_t,
19165        normalized: igraph_bool_t,
19166    ) -> igraph_error_t;
19167}
19168unsafe extern "C" {
19169    pub fn igraph_assortativity(
19170        graph: *const igraph_t,
19171        weights: *const igraph_vector_t,
19172        values: *const igraph_vector_t,
19173        values_in: *const igraph_vector_t,
19174        res: *mut igraph_real_t,
19175        directed: igraph_bool_t,
19176        normalized: igraph_bool_t,
19177    ) -> igraph_error_t;
19178}
19179unsafe extern "C" {
19180    pub fn igraph_assortativity_degree(
19181        graph: *const igraph_t,
19182        res: *mut igraph_real_t,
19183        directed: igraph_bool_t,
19184    ) -> igraph_error_t;
19185}
19186unsafe extern "C" {
19187    pub fn igraph_joint_degree_matrix(
19188        graph: *const igraph_t,
19189        weights: *const igraph_vector_t,
19190        jdm: *mut igraph_matrix_t,
19191        dout: igraph_int_t,
19192        din: igraph_int_t,
19193    ) -> igraph_error_t;
19194}
19195unsafe extern "C" {
19196    pub fn igraph_joint_degree_distribution(
19197        graph: *const igraph_t,
19198        weights: *const igraph_vector_t,
19199        p: *mut igraph_matrix_t,
19200        from_mode: igraph_neimode_t,
19201        to_mode: igraph_neimode_t,
19202        directed_neighbors: igraph_bool_t,
19203        normalized: igraph_bool_t,
19204        max_from_degree: igraph_int_t,
19205        max_to_degree: igraph_int_t,
19206    ) -> igraph_error_t;
19207}
19208unsafe extern "C" {
19209    pub fn igraph_joint_type_distribution(
19210        graph: *const igraph_t,
19211        weights: *const igraph_vector_t,
19212        p: *mut igraph_matrix_t,
19213        from_types: *const igraph_vector_int_t,
19214        to_types: *const igraph_vector_int_t,
19215        directed: igraph_bool_t,
19216        normalized: igraph_bool_t,
19217    ) -> igraph_error_t;
19218}
19219unsafe extern "C" {
19220    pub fn igraph_is_separator(
19221        graph: *const igraph_t,
19222        candidate: igraph_vs_t,
19223        res: *mut igraph_bool_t,
19224    ) -> igraph_error_t;
19225}
19226unsafe extern "C" {
19227    pub fn igraph_all_minimal_st_separators(
19228        graph: *const igraph_t,
19229        separators: *mut igraph_vector_int_list_t,
19230    ) -> igraph_error_t;
19231}
19232unsafe extern "C" {
19233    pub fn igraph_is_minimal_separator(
19234        graph: *const igraph_t,
19235        candidate: igraph_vs_t,
19236        res: *mut igraph_bool_t,
19237    ) -> igraph_error_t;
19238}
19239unsafe extern "C" {
19240    pub fn igraph_minimum_size_separators(
19241        graph: *const igraph_t,
19242        separators: *mut igraph_vector_int_list_t,
19243    ) -> igraph_error_t;
19244}
19245unsafe extern "C" {
19246    pub fn igraph_cohesive_blocks(
19247        graph: *const igraph_t,
19248        blocks: *mut igraph_vector_int_list_t,
19249        cohesion: *mut igraph_vector_int_t,
19250        parent: *mut igraph_vector_int_t,
19251        block_tree: *mut igraph_t,
19252    ) -> igraph_error_t;
19253}
19254pub const igraph_eigen_algorithm_t_IGRAPH_EIGEN_AUTO: igraph_eigen_algorithm_t = 0;
19255pub const igraph_eigen_algorithm_t_IGRAPH_EIGEN_LAPACK: igraph_eigen_algorithm_t = 1;
19256pub const igraph_eigen_algorithm_t_IGRAPH_EIGEN_ARPACK: igraph_eigen_algorithm_t = 2;
19257pub const igraph_eigen_algorithm_t_IGRAPH_EIGEN_COMP_AUTO: igraph_eigen_algorithm_t = 3;
19258pub const igraph_eigen_algorithm_t_IGRAPH_EIGEN_COMP_LAPACK: igraph_eigen_algorithm_t = 4;
19259pub const igraph_eigen_algorithm_t_IGRAPH_EIGEN_COMP_ARPACK: igraph_eigen_algorithm_t = 5;
19260pub type igraph_eigen_algorithm_t = ::std::os::raw::c_uint;
19261pub const igraph_eigen_which_position_t_IGRAPH_EIGEN_LM: igraph_eigen_which_position_t = 0;
19262pub const igraph_eigen_which_position_t_IGRAPH_EIGEN_SM: igraph_eigen_which_position_t = 1;
19263pub const igraph_eigen_which_position_t_IGRAPH_EIGEN_LA: igraph_eigen_which_position_t = 2;
19264pub const igraph_eigen_which_position_t_IGRAPH_EIGEN_SA: igraph_eigen_which_position_t = 3;
19265pub const igraph_eigen_which_position_t_IGRAPH_EIGEN_BE: igraph_eigen_which_position_t = 4;
19266pub const igraph_eigen_which_position_t_IGRAPH_EIGEN_LR: igraph_eigen_which_position_t = 5;
19267pub const igraph_eigen_which_position_t_IGRAPH_EIGEN_SR: igraph_eigen_which_position_t = 6;
19268pub const igraph_eigen_which_position_t_IGRAPH_EIGEN_LI: igraph_eigen_which_position_t = 7;
19269pub const igraph_eigen_which_position_t_IGRAPH_EIGEN_SI: igraph_eigen_which_position_t = 8;
19270pub const igraph_eigen_which_position_t_IGRAPH_EIGEN_ALL: igraph_eigen_which_position_t = 9;
19271pub const igraph_eigen_which_position_t_IGRAPH_EIGEN_INTERVAL: igraph_eigen_which_position_t = 10;
19272pub const igraph_eigen_which_position_t_IGRAPH_EIGEN_SELECT: igraph_eigen_which_position_t = 11;
19273pub type igraph_eigen_which_position_t = ::std::os::raw::c_uint;
19274#[repr(C)]
19275#[derive(Debug, Copy, Clone)]
19276pub struct igraph_eigen_which_t {
19277    pub pos: igraph_eigen_which_position_t,
19278    pub howmany: ::std::os::raw::c_int,
19279    pub il: ::std::os::raw::c_int,
19280    pub iu: ::std::os::raw::c_int,
19281    pub vl: igraph_real_t,
19282    pub vu: igraph_real_t,
19283    pub vestimate: ::std::os::raw::c_int,
19284    pub balance: igraph_lapack_dgeevx_balance_t,
19285}
19286#[allow(clippy::unnecessary_operation, clippy::identity_op)]
19287const _: () = {
19288    ["Size of igraph_eigen_which_t"][::std::mem::size_of::<igraph_eigen_which_t>() - 40usize];
19289    ["Alignment of igraph_eigen_which_t"][::std::mem::align_of::<igraph_eigen_which_t>() - 8usize];
19290    ["Offset of field: igraph_eigen_which_t::pos"]
19291        [::std::mem::offset_of!(igraph_eigen_which_t, pos) - 0usize];
19292    ["Offset of field: igraph_eigen_which_t::howmany"]
19293        [::std::mem::offset_of!(igraph_eigen_which_t, howmany) - 4usize];
19294    ["Offset of field: igraph_eigen_which_t::il"]
19295        [::std::mem::offset_of!(igraph_eigen_which_t, il) - 8usize];
19296    ["Offset of field: igraph_eigen_which_t::iu"]
19297        [::std::mem::offset_of!(igraph_eigen_which_t, iu) - 12usize];
19298    ["Offset of field: igraph_eigen_which_t::vl"]
19299        [::std::mem::offset_of!(igraph_eigen_which_t, vl) - 16usize];
19300    ["Offset of field: igraph_eigen_which_t::vu"]
19301        [::std::mem::offset_of!(igraph_eigen_which_t, vu) - 24usize];
19302    ["Offset of field: igraph_eigen_which_t::vestimate"]
19303        [::std::mem::offset_of!(igraph_eigen_which_t, vestimate) - 32usize];
19304    ["Offset of field: igraph_eigen_which_t::balance"]
19305        [::std::mem::offset_of!(igraph_eigen_which_t, balance) - 36usize];
19306};
19307unsafe extern "C" {
19308    pub fn igraph_eigen_matrix_symmetric(
19309        A: *const igraph_matrix_t,
19310        sA: *const igraph_sparsemat_t,
19311        fun: igraph_arpack_function_t,
19312        n: ::std::os::raw::c_int,
19313        extra: *mut ::std::os::raw::c_void,
19314        algorithm: igraph_eigen_algorithm_t,
19315        which: *const igraph_eigen_which_t,
19316        options: *mut igraph_arpack_options_t,
19317        storage: *mut igraph_arpack_storage_t,
19318        values: *mut igraph_vector_t,
19319        vectors: *mut igraph_matrix_t,
19320    ) -> igraph_error_t;
19321}
19322unsafe extern "C" {
19323    pub fn igraph_eigen_matrix(
19324        A: *const igraph_matrix_t,
19325        sA: *const igraph_sparsemat_t,
19326        fun: igraph_arpack_function_t,
19327        n: ::std::os::raw::c_int,
19328        extra: *mut ::std::os::raw::c_void,
19329        algorithm: igraph_eigen_algorithm_t,
19330        which: *const igraph_eigen_which_t,
19331        options: *mut igraph_arpack_options_t,
19332        storage: *mut igraph_arpack_storage_t,
19333        values: *mut igraph_vector_complex_t,
19334        vectors: *mut igraph_matrix_complex_t,
19335    ) -> igraph_error_t;
19336}
19337unsafe extern "C" {
19338    pub fn igraph_eigen_adjacency(
19339        graph: *const igraph_t,
19340        algorithm: igraph_eigen_algorithm_t,
19341        which: *const igraph_eigen_which_t,
19342        options: *mut igraph_arpack_options_t,
19343        storage: *mut igraph_arpack_storage_t,
19344        values: *mut igraph_vector_t,
19345        vectors: *mut igraph_matrix_t,
19346        cmplxvalues: *mut igraph_vector_complex_t,
19347        cmplxvectors: *mut igraph_matrix_complex_t,
19348    ) -> igraph_error_t;
19349}
19350#[doc = " \\struct igraph_hrg_t\n \\brief Data structure to store a hierarchical random graph.\n\n A hierarchical random graph (HRG) can be given as a binary tree,\n where the internal vertices are labeled with real numbers.\n\n </para><para>Note that you don't necessarily have to know this\n internal representation for using the HRG functions, just pass the\n HRG objects created by one igraph function, to another igraph\n function.\n\n </para><para>\n It has the following members:\n\n \\member left Vector that contains the left children of the internal\n    tree vertices. The first vertex is always the root vertex, so\n    the first element of the vector is the left child of the root\n    vertex. Internal vertices are denoted with negative numbers,\n    starting from -1 and going down, i.e. the root vertex is\n    -1. Leaf vertices are denoted by non-negative number, starting\n    from zero and up.\n \\member right Vector that contains the right children of the\n    vertices, with the same encoding as the \\c left vector.\n \\member prob The connection probabilities attached to the internal\n    vertices, the first number belongs to the root vertex\n    (i.e. internal vertex -1), the second to internal vertex -2,\n    etc.\n \\member edges The number of edges in the subtree below the given\n    internal vertex.\n \\member vertices The number of vertices in the subtree below the\n    given internal vertex, including itself."]
19351#[repr(C)]
19352#[derive(Debug, Clone)]
19353pub struct igraph_hrg_t {
19354    pub left: igraph_vector_int_t,
19355    pub right: igraph_vector_int_t,
19356    pub prob: igraph_vector_t,
19357    pub vertices: igraph_vector_int_t,
19358    pub edges: igraph_vector_int_t,
19359}
19360#[allow(clippy::unnecessary_operation, clippy::identity_op)]
19361const _: () = {
19362    ["Size of igraph_hrg_t"][::std::mem::size_of::<igraph_hrg_t>() - 120usize];
19363    ["Alignment of igraph_hrg_t"][::std::mem::align_of::<igraph_hrg_t>() - 8usize];
19364    ["Offset of field: igraph_hrg_t::left"][::std::mem::offset_of!(igraph_hrg_t, left) - 0usize];
19365    ["Offset of field: igraph_hrg_t::right"][::std::mem::offset_of!(igraph_hrg_t, right) - 24usize];
19366    ["Offset of field: igraph_hrg_t::prob"][::std::mem::offset_of!(igraph_hrg_t, prob) - 48usize];
19367    ["Offset of field: igraph_hrg_t::vertices"]
19368        [::std::mem::offset_of!(igraph_hrg_t, vertices) - 72usize];
19369    ["Offset of field: igraph_hrg_t::edges"][::std::mem::offset_of!(igraph_hrg_t, edges) - 96usize];
19370};
19371unsafe extern "C" {
19372    pub fn igraph_hrg_init(hrg: *mut igraph_hrg_t, n: igraph_int_t) -> igraph_error_t;
19373}
19374unsafe extern "C" {
19375    pub fn igraph_hrg_destroy(hrg: *mut igraph_hrg_t);
19376}
19377unsafe extern "C" {
19378    pub fn igraph_hrg_size(hrg: *const igraph_hrg_t) -> igraph_int_t;
19379}
19380unsafe extern "C" {
19381    pub fn igraph_hrg_resize(hrg: *mut igraph_hrg_t, newsize: igraph_int_t) -> igraph_error_t;
19382}
19383unsafe extern "C" {
19384    pub fn igraph_hrg_fit(
19385        graph: *const igraph_t,
19386        hrg: *mut igraph_hrg_t,
19387        start: igraph_bool_t,
19388        steps: igraph_int_t,
19389    ) -> igraph_error_t;
19390}
19391unsafe extern "C" {
19392    pub fn igraph_hrg_sample(hrg: *const igraph_hrg_t, sample: *mut igraph_t) -> igraph_error_t;
19393}
19394unsafe extern "C" {
19395    pub fn igraph_hrg_sample_many(
19396        hrg: *const igraph_hrg_t,
19397        samples: *mut igraph_graph_list_t,
19398        num_samples: igraph_int_t,
19399    ) -> igraph_error_t;
19400}
19401unsafe extern "C" {
19402    pub fn igraph_hrg_game(graph: *mut igraph_t, hrg: *const igraph_hrg_t) -> igraph_error_t;
19403}
19404unsafe extern "C" {
19405    pub fn igraph_from_hrg_dendrogram(
19406        graph: *mut igraph_t,
19407        hrg: *const igraph_hrg_t,
19408        prob: *mut igraph_vector_t,
19409    ) -> igraph_error_t;
19410}
19411unsafe extern "C" {
19412    pub fn igraph_hrg_consensus(
19413        graph: *const igraph_t,
19414        parents: *mut igraph_vector_int_t,
19415        weights: *mut igraph_vector_t,
19416        hrg: *mut igraph_hrg_t,
19417        start: igraph_bool_t,
19418        num_samples: igraph_int_t,
19419    ) -> igraph_error_t;
19420}
19421unsafe extern "C" {
19422    pub fn igraph_hrg_predict(
19423        graph: *const igraph_t,
19424        edges: *mut igraph_vector_int_t,
19425        prob: *mut igraph_vector_t,
19426        hrg: *mut igraph_hrg_t,
19427        start: igraph_bool_t,
19428        num_samples: igraph_int_t,
19429        num_bins: igraph_int_t,
19430    ) -> igraph_error_t;
19431}
19432unsafe extern "C" {
19433    pub fn igraph_hrg_create(
19434        hrg: *mut igraph_hrg_t,
19435        graph: *const igraph_t,
19436        prob: *const igraph_vector_t,
19437    ) -> igraph_error_t;
19438}
19439unsafe extern "C" {
19440    pub fn igraph_hrg_dendrogram(graph: *mut igraph_t, hrg: *const igraph_hrg_t) -> igraph_error_t;
19441}
19442#[doc = " \\typedef igraph_interruption_handler_t\n\n This is the type of the interruption handler functions.\n\n \\return false if the calculation should go on, true if the calculation\n         should be interrupted."]
19443pub type igraph_interruption_handler_t =
19444    ::std::option::Option<unsafe extern "C" fn() -> igraph_bool_t>;
19445unsafe extern "C" {
19446    #[doc = " \\function igraph_allow_interruption\n\n This is the function which is called (usually via the\n \\ref IGRAPH_ALLOW_INTERRUPTION macro) if \\a igraph is checking for interruption\n requests.\n\n \\return false if the calculation should go on, true if the calculation\n         should be interrupted."]
19447    pub fn igraph_allow_interruption() -> igraph_bool_t;
19448}
19449unsafe extern "C" {
19450    pub fn igraph_set_interruption_handler(
19451        new_handler: igraph_interruption_handler_t,
19452    ) -> igraph_interruption_handler_t;
19453}
19454unsafe extern "C" {
19455    pub fn igraph_is_matching(
19456        graph: *const igraph_t,
19457        types: *const igraph_vector_bool_t,
19458        matching: *const igraph_vector_int_t,
19459        result: *mut igraph_bool_t,
19460    ) -> igraph_error_t;
19461}
19462unsafe extern "C" {
19463    pub fn igraph_is_maximal_matching(
19464        graph: *const igraph_t,
19465        types: *const igraph_vector_bool_t,
19466        matching: *const igraph_vector_int_t,
19467        result: *mut igraph_bool_t,
19468    ) -> igraph_error_t;
19469}
19470unsafe extern "C" {
19471    pub fn igraph_maximum_bipartite_matching(
19472        graph: *const igraph_t,
19473        types: *const igraph_vector_bool_t,
19474        matching_size: *mut igraph_int_t,
19475        matching_weight: *mut igraph_real_t,
19476        matching: *mut igraph_vector_int_t,
19477        weights: *const igraph_vector_t,
19478        eps: igraph_real_t,
19479    ) -> igraph_error_t;
19480}
19481unsafe extern "C" {
19482    pub fn igraph_adjacency_spectral_embedding(
19483        graph: *const igraph_t,
19484        no: igraph_int_t,
19485        weights: *const igraph_vector_t,
19486        which: igraph_eigen_which_position_t,
19487        scaled: igraph_bool_t,
19488        X: *mut igraph_matrix_t,
19489        Y: *mut igraph_matrix_t,
19490        D: *mut igraph_vector_t,
19491        cvec: *const igraph_vector_t,
19492        options: *mut igraph_arpack_options_t,
19493    ) -> igraph_error_t;
19494}
19495pub const igraph_laplacian_spectral_embedding_type_t_IGRAPH_EMBEDDING_D_A:
19496    igraph_laplacian_spectral_embedding_type_t = 0;
19497pub const igraph_laplacian_spectral_embedding_type_t_IGRAPH_EMBEDDING_I_DAD:
19498    igraph_laplacian_spectral_embedding_type_t = 1;
19499pub const igraph_laplacian_spectral_embedding_type_t_IGRAPH_EMBEDDING_DAD:
19500    igraph_laplacian_spectral_embedding_type_t = 2;
19501pub const igraph_laplacian_spectral_embedding_type_t_IGRAPH_EMBEDDING_OAP:
19502    igraph_laplacian_spectral_embedding_type_t = 3;
19503pub type igraph_laplacian_spectral_embedding_type_t = ::std::os::raw::c_uint;
19504unsafe extern "C" {
19505    pub fn igraph_laplacian_spectral_embedding(
19506        graph: *const igraph_t,
19507        no: igraph_int_t,
19508        weights: *const igraph_vector_t,
19509        which: igraph_eigen_which_position_t,
19510        type_: igraph_laplacian_spectral_embedding_type_t,
19511        scaled: igraph_bool_t,
19512        X: *mut igraph_matrix_t,
19513        Y: *mut igraph_matrix_t,
19514        D: *mut igraph_vector_t,
19515        options: *mut igraph_arpack_options_t,
19516    ) -> igraph_error_t;
19517}
19518unsafe extern "C" {
19519    pub fn igraph_dim_select(sv: *const igraph_vector_t, dim: *mut igraph_int_t) -> igraph_error_t;
19520}
19521unsafe extern "C" {
19522    pub fn igraph_local_scan_0(
19523        graph: *const igraph_t,
19524        res: *mut igraph_vector_t,
19525        weights: *const igraph_vector_t,
19526        mode: igraph_neimode_t,
19527    ) -> igraph_error_t;
19528}
19529unsafe extern "C" {
19530    pub fn igraph_local_scan_0_them(
19531        us: *const igraph_t,
19532        them: *const igraph_t,
19533        res: *mut igraph_vector_t,
19534        weights_them: *const igraph_vector_t,
19535        mode: igraph_neimode_t,
19536    ) -> igraph_error_t;
19537}
19538unsafe extern "C" {
19539    pub fn igraph_local_scan_1_ecount(
19540        graph: *const igraph_t,
19541        res: *mut igraph_vector_t,
19542        weights: *const igraph_vector_t,
19543        mode: igraph_neimode_t,
19544    ) -> igraph_error_t;
19545}
19546unsafe extern "C" {
19547    pub fn igraph_local_scan_1_ecount_them(
19548        us: *const igraph_t,
19549        them: *const igraph_t,
19550        res: *mut igraph_vector_t,
19551        weights: *const igraph_vector_t,
19552        mode: igraph_neimode_t,
19553    ) -> igraph_error_t;
19554}
19555unsafe extern "C" {
19556    pub fn igraph_local_scan_k_ecount(
19557        graph: *const igraph_t,
19558        k: igraph_int_t,
19559        res: *mut igraph_vector_t,
19560        weights: *const igraph_vector_t,
19561        mode: igraph_neimode_t,
19562    ) -> igraph_error_t;
19563}
19564unsafe extern "C" {
19565    pub fn igraph_local_scan_k_ecount_them(
19566        us: *const igraph_t,
19567        them: *const igraph_t,
19568        k: igraph_int_t,
19569        res: *mut igraph_vector_t,
19570        weights_them: *const igraph_vector_t,
19571        mode: igraph_neimode_t,
19572    ) -> igraph_error_t;
19573}
19574unsafe extern "C" {
19575    pub fn igraph_local_scan_neighborhood_ecount(
19576        graph: *const igraph_t,
19577        res: *mut igraph_vector_t,
19578        weights: *const igraph_vector_t,
19579        neighborhoods: *const igraph_vector_int_list_t,
19580    ) -> igraph_error_t;
19581}
19582unsafe extern "C" {
19583    pub fn igraph_local_scan_subset_ecount(
19584        graph: *const igraph_t,
19585        res: *mut igraph_vector_t,
19586        weights: *const igraph_vector_t,
19587        neighborhoods: *const igraph_vector_int_list_t,
19588    ) -> igraph_error_t;
19589}
19590unsafe extern "C" {
19591    pub fn igraph_graphlets_candidate_basis(
19592        graph: *const igraph_t,
19593        weights: *const igraph_vector_t,
19594        cliques: *mut igraph_vector_int_list_t,
19595        thresholds: *mut igraph_vector_t,
19596    ) -> igraph_error_t;
19597}
19598unsafe extern "C" {
19599    pub fn igraph_graphlets_project(
19600        graph: *const igraph_t,
19601        weights: *const igraph_vector_t,
19602        cliques: *const igraph_vector_int_list_t,
19603        Mu: *mut igraph_vector_t,
19604        startMu: igraph_bool_t,
19605        niter: igraph_int_t,
19606    ) -> igraph_error_t;
19607}
19608unsafe extern "C" {
19609    pub fn igraph_graphlets(
19610        graph: *const igraph_t,
19611        weights: *const igraph_vector_t,
19612        cliques: *mut igraph_vector_int_list_t,
19613        Mu: *mut igraph_vector_t,
19614        niter: igraph_int_t,
19615    ) -> igraph_error_t;
19616}
19617#[doc = " \\struct igraph_sir_t\n \\brief The result of one SIR model simulation.\n\n Data structure to store the results of one simulation\n of the SIR (susceptible-infected-recovered) model on a graph.\n\n It has the following members. They are all (real or integer)\n vectors, and they are of the same length.\n\n \\member times A vector, the times of the events are stored here.\n \\member no_s An integer vector, the number of susceptibles in\n              each time step is stored here.\n \\member no_i An integer vector, the number of infected individuals\n              at each time step, is stored here.\n \\member no_r An integer vector, the number of recovered individuals\n              is stored here at each time step."]
19618#[repr(C)]
19619#[derive(Debug, Clone)]
19620pub struct igraph_sir_t {
19621    pub times: igraph_vector_t,
19622    pub no_s: igraph_vector_int_t,
19623    pub no_i: igraph_vector_int_t,
19624    pub no_r: igraph_vector_int_t,
19625}
19626#[allow(clippy::unnecessary_operation, clippy::identity_op)]
19627const _: () = {
19628    ["Size of igraph_sir_t"][::std::mem::size_of::<igraph_sir_t>() - 96usize];
19629    ["Alignment of igraph_sir_t"][::std::mem::align_of::<igraph_sir_t>() - 8usize];
19630    ["Offset of field: igraph_sir_t::times"][::std::mem::offset_of!(igraph_sir_t, times) - 0usize];
19631    ["Offset of field: igraph_sir_t::no_s"][::std::mem::offset_of!(igraph_sir_t, no_s) - 24usize];
19632    ["Offset of field: igraph_sir_t::no_i"][::std::mem::offset_of!(igraph_sir_t, no_i) - 48usize];
19633    ["Offset of field: igraph_sir_t::no_r"][::std::mem::offset_of!(igraph_sir_t, no_r) - 72usize];
19634};
19635unsafe extern "C" {
19636    pub fn igraph_sir_init(sir: *mut igraph_sir_t) -> igraph_error_t;
19637}
19638unsafe extern "C" {
19639    pub fn igraph_sir_destroy(sir: *mut igraph_sir_t);
19640}
19641unsafe extern "C" {
19642    pub fn igraph_sir(
19643        graph: *const igraph_t,
19644        beta: igraph_real_t,
19645        gamma: igraph_real_t,
19646        no_sim: igraph_int_t,
19647        result: *mut igraph_vector_ptr_t,
19648    ) -> igraph_error_t;
19649}
19650unsafe extern "C" {
19651    pub fn igraph_solve_lsap(
19652        c: *const igraph_matrix_t,
19653        n: igraph_int_t,
19654        p: *mut igraph_vector_int_t,
19655    ) -> igraph_error_t;
19656}
19657pub const igraph_coloring_greedy_t_IGRAPH_COLORING_GREEDY_COLORED_NEIGHBORS:
19658    igraph_coloring_greedy_t = 0;
19659pub const igraph_coloring_greedy_t_IGRAPH_COLORING_GREEDY_DSATUR: igraph_coloring_greedy_t = 1;
19660#[doc = " \\typedef igraph_coloring_greedy_t\n \\brief Ordering heuristics for greedy graph coloring.\n\n Ordering heuristics for \\ref igraph_vertex_coloring_greedy().\n\n \\enumval IGRAPH_COLORING_GREEDY_COLORED_NEIGHBORS\n    Choose the vertex with largest number of already colored neighbors.\n \\enumval IGRAPH_COLORING_GREEDY_DSATUR\n    Choose the vertex with largest number of unique colors in its neighborhood, i.e. its\n    \"saturation degree\". When multiple vertices have the same saturation degree, choose\n    the one with the most not yet colored neighbors. Added in igraph 0.10.4. This heuristic\n    is known as \"DSatur\", and was proposed in\n    Daniel Brélaz: New methods to color the vertices of a graph,\n    Commun. ACM 22, 4 (1979), 251–256. https://doi.org/10.1145/359094.359101"]
19661pub type igraph_coloring_greedy_t = ::std::os::raw::c_uint;
19662unsafe extern "C" {
19663    pub fn igraph_vertex_coloring_greedy(
19664        graph: *const igraph_t,
19665        colors: *mut igraph_vector_int_t,
19666        heuristic: igraph_coloring_greedy_t,
19667    ) -> igraph_error_t;
19668}
19669unsafe extern "C" {
19670    pub fn igraph_is_vertex_coloring(
19671        graph: *const igraph_t,
19672        types: *const igraph_vector_int_t,
19673        res: *mut igraph_bool_t,
19674    ) -> igraph_error_t;
19675}
19676unsafe extern "C" {
19677    pub fn igraph_is_bipartite_coloring(
19678        graph: *const igraph_t,
19679        types: *const igraph_vector_bool_t,
19680        res: *mut igraph_bool_t,
19681        mode: *mut igraph_neimode_t,
19682    ) -> igraph_error_t;
19683}
19684unsafe extern "C" {
19685    pub fn igraph_is_edge_coloring(
19686        graph: *const igraph_t,
19687        types: *const igraph_vector_int_t,
19688        res: *mut igraph_bool_t,
19689    ) -> igraph_error_t;
19690}
19691unsafe extern "C" {
19692    pub fn igraph_is_eulerian(
19693        graph: *const igraph_t,
19694        has_path: *mut igraph_bool_t,
19695        has_cycle: *mut igraph_bool_t,
19696    ) -> igraph_error_t;
19697}
19698unsafe extern "C" {
19699    pub fn igraph_eulerian_path(
19700        graph: *const igraph_t,
19701        edge_res: *mut igraph_vector_int_t,
19702        vertex_res: *mut igraph_vector_int_t,
19703    ) -> igraph_error_t;
19704}
19705unsafe extern "C" {
19706    pub fn igraph_eulerian_cycle(
19707        graph: *const igraph_t,
19708        edge_res: *mut igraph_vector_int_t,
19709        vertex_res: *mut igraph_vector_int_t,
19710    ) -> igraph_error_t;
19711}
19712unsafe extern "C" {
19713    pub fn igraph_topological_sorting(
19714        graph: *const igraph_t,
19715        res: *mut igraph_vector_int_t,
19716        mode: igraph_neimode_t,
19717    ) -> igraph_error_t;
19718}
19719unsafe extern "C" {
19720    pub fn igraph_is_dag(graph: *const igraph_t, res: *mut igraph_bool_t) -> igraph_error_t;
19721}
19722unsafe extern "C" {
19723    pub fn igraph_fundamental_cycles(
19724        graph: *const igraph_t,
19725        weights: *const igraph_vector_t,
19726        result: *mut igraph_vector_int_list_t,
19727        start_vid: igraph_int_t,
19728        bfs_cutoff: igraph_real_t,
19729    ) -> igraph_error_t;
19730}
19731unsafe extern "C" {
19732    pub fn igraph_minimum_cycle_basis(
19733        graph: *const igraph_t,
19734        weights: *const igraph_vector_t,
19735        result: *mut igraph_vector_int_list_t,
19736        bfs_cutoff: igraph_real_t,
19737        complete: igraph_bool_t,
19738        use_cycle_order: igraph_bool_t,
19739    ) -> igraph_error_t;
19740}
19741unsafe extern "C" {
19742    pub fn igraph_find_cycle(
19743        graph: *const igraph_t,
19744        vertices: *mut igraph_vector_int_t,
19745        edges: *mut igraph_vector_int_t,
19746        mode: igraph_neimode_t,
19747    ) -> igraph_error_t;
19748}
19749#[doc = " \\typedef igraph_cycle_handler_t\n \\brief Type of cycle handler functions.\n\n Callback type, called by \\ref igraph_simple_cycles_callback() when\n a cycle is found.\n\n \\param vertices The vertices of the current cycle. Must not be modified.\n \\param edges The edges of the current cycle. Must not be modified.\n \\param arg The extra parameter passed to \\ref igraph_simple_cycles_callback()\n \\return Error code; \\c IGRAPH_SUCCESS to continue the search or\n   \\c IGRAPH_STOP to stop the search without signaling an error."]
19750pub type igraph_cycle_handler_t = ::std::option::Option<
19751    unsafe extern "C" fn(
19752        vertices: *const igraph_vector_int_t,
19753        edges: *const igraph_vector_int_t,
19754        arg: *mut ::std::os::raw::c_void,
19755    ) -> igraph_error_t,
19756>;
19757unsafe extern "C" {
19758    pub fn igraph_simple_cycles_callback(
19759        graph: *const igraph_t,
19760        mode: igraph_neimode_t,
19761        min_cycle_length: igraph_int_t,
19762        max_cycle_length: igraph_int_t,
19763        callback: igraph_cycle_handler_t,
19764        arg: *mut ::std::os::raw::c_void,
19765    ) -> igraph_error_t;
19766}
19767unsafe extern "C" {
19768    pub fn igraph_simple_cycles(
19769        graph: *const igraph_t,
19770        vertices: *mut igraph_vector_int_list_t,
19771        edges: *mut igraph_vector_int_list_t,
19772        mode: igraph_neimode_t,
19773        min_cycle_length: igraph_int_t,
19774        max_cycle_length: igraph_int_t,
19775        max_results: igraph_int_t,
19776    ) -> igraph_error_t;
19777}
19778unsafe extern "C" {
19779    pub fn igraph_feedback_arc_set(
19780        graph: *const igraph_t,
19781        result: *mut igraph_vector_int_t,
19782        weights: *const igraph_vector_t,
19783        algo: igraph_fas_algorithm_t,
19784    ) -> igraph_error_t;
19785}
19786unsafe extern "C" {
19787    pub fn igraph_feedback_vertex_set(
19788        graph: *const igraph_t,
19789        result: *mut igraph_vector_int_t,
19790        vertex_weights: *const igraph_vector_t,
19791        algo: igraph_fvs_algorithm_t,
19792    ) -> igraph_error_t;
19793}
19794#[doc = " Vector list, dealing with lists of typed vectors efficiently.\n \\ingroup types"]
19795#[repr(C)]
19796#[derive(Debug, Copy, Clone)]
19797pub struct igraph_bitset_list_t {
19798    pub stor_begin: *mut igraph_bitset_t,
19799    pub stor_end: *mut igraph_bitset_t,
19800    pub end: *mut igraph_bitset_t,
19801}
19802#[allow(clippy::unnecessary_operation, clippy::identity_op)]
19803const _: () = {
19804    ["Size of igraph_bitset_list_t"][::std::mem::size_of::<igraph_bitset_list_t>() - 24usize];
19805    ["Alignment of igraph_bitset_list_t"][::std::mem::align_of::<igraph_bitset_list_t>() - 8usize];
19806    ["Offset of field: igraph_bitset_list_t::stor_begin"]
19807        [::std::mem::offset_of!(igraph_bitset_list_t, stor_begin) - 0usize];
19808    ["Offset of field: igraph_bitset_list_t::stor_end"]
19809        [::std::mem::offset_of!(igraph_bitset_list_t, stor_end) - 8usize];
19810    ["Offset of field: igraph_bitset_list_t::end"]
19811        [::std::mem::offset_of!(igraph_bitset_list_t, end) - 16usize];
19812};
19813unsafe extern "C" {
19814    pub fn igraph_bitset_list_init(
19815        v: *mut igraph_bitset_list_t,
19816        size: igraph_int_t,
19817    ) -> igraph_error_t;
19818}
19819unsafe extern "C" {
19820    pub fn igraph_bitset_list_init_copy(
19821        to: *mut igraph_bitset_list_t,
19822        from: *const igraph_bitset_list_t,
19823    ) -> igraph_error_t;
19824}
19825unsafe extern "C" {
19826    pub fn igraph_bitset_list_destroy(v: *mut igraph_bitset_list_t);
19827}
19828unsafe extern "C" {
19829    pub fn igraph_bitset_list_get_ptr(
19830        v: *const igraph_bitset_list_t,
19831        pos: igraph_int_t,
19832    ) -> *mut igraph_bitset_t;
19833}
19834unsafe extern "C" {
19835    pub fn igraph_bitset_list_set(
19836        v: *mut igraph_bitset_list_t,
19837        pos: igraph_int_t,
19838        e: *mut igraph_bitset_t,
19839    );
19840}
19841unsafe extern "C" {
19842    pub fn igraph_bitset_list_tail_ptr(v: *const igraph_bitset_list_t) -> *mut igraph_bitset_t;
19843}
19844unsafe extern "C" {
19845    pub fn igraph_bitset_list_capacity(v: *const igraph_bitset_list_t) -> igraph_int_t;
19846}
19847unsafe extern "C" {
19848    pub fn igraph_bitset_list_empty(v: *const igraph_bitset_list_t) -> igraph_bool_t;
19849}
19850unsafe extern "C" {
19851    pub fn igraph_bitset_list_size(v: *const igraph_bitset_list_t) -> igraph_int_t;
19852}
19853unsafe extern "C" {
19854    pub fn igraph_bitset_list_clear(v: *mut igraph_bitset_list_t);
19855}
19856unsafe extern "C" {
19857    pub fn igraph_bitset_list_reserve(
19858        v: *mut igraph_bitset_list_t,
19859        capacity: igraph_int_t,
19860    ) -> igraph_error_t;
19861}
19862unsafe extern "C" {
19863    pub fn igraph_bitset_list_resize(
19864        v: *mut igraph_bitset_list_t,
19865        new_size: igraph_int_t,
19866    ) -> igraph_error_t;
19867}
19868unsafe extern "C" {
19869    pub fn igraph_bitset_list_discard(v: *mut igraph_bitset_list_t, index: igraph_int_t);
19870}
19871unsafe extern "C" {
19872    pub fn igraph_bitset_list_discard_back(v: *mut igraph_bitset_list_t);
19873}
19874unsafe extern "C" {
19875    pub fn igraph_bitset_list_discard_fast(v: *mut igraph_bitset_list_t, index: igraph_int_t);
19876}
19877unsafe extern "C" {
19878    pub fn igraph_bitset_list_insert(
19879        v: *mut igraph_bitset_list_t,
19880        pos: igraph_int_t,
19881        e: *mut igraph_bitset_t,
19882    ) -> igraph_error_t;
19883}
19884unsafe extern "C" {
19885    pub fn igraph_bitset_list_insert_copy(
19886        v: *mut igraph_bitset_list_t,
19887        pos: igraph_int_t,
19888        e: *const igraph_bitset_t,
19889    ) -> igraph_error_t;
19890}
19891unsafe extern "C" {
19892    pub fn igraph_bitset_list_insert_new(
19893        v: *mut igraph_bitset_list_t,
19894        pos: igraph_int_t,
19895        result: *mut *mut igraph_bitset_t,
19896    ) -> igraph_error_t;
19897}
19898unsafe extern "C" {
19899    pub fn igraph_bitset_list_push_back(
19900        v: *mut igraph_bitset_list_t,
19901        e: *mut igraph_bitset_t,
19902    ) -> igraph_error_t;
19903}
19904unsafe extern "C" {
19905    pub fn igraph_bitset_list_push_back_copy(
19906        v: *mut igraph_bitset_list_t,
19907        e: *const igraph_bitset_t,
19908    ) -> igraph_error_t;
19909}
19910unsafe extern "C" {
19911    pub fn igraph_bitset_list_push_back_new(
19912        v: *mut igraph_bitset_list_t,
19913        result: *mut *mut igraph_bitset_t,
19914    ) -> igraph_error_t;
19915}
19916unsafe extern "C" {
19917    pub fn igraph_bitset_list_pop_back(v: *mut igraph_bitset_list_t) -> igraph_bitset_t;
19918}
19919unsafe extern "C" {
19920    pub fn igraph_bitset_list_remove(
19921        v: *mut igraph_bitset_list_t,
19922        index: igraph_int_t,
19923        e: *mut igraph_bitset_t,
19924    ) -> igraph_error_t;
19925}
19926unsafe extern "C" {
19927    pub fn igraph_bitset_list_remove_fast(
19928        v: *mut igraph_bitset_list_t,
19929        index: igraph_int_t,
19930        e: *mut igraph_bitset_t,
19931    ) -> igraph_error_t;
19932}
19933unsafe extern "C" {
19934    pub fn igraph_bitset_list_replace(
19935        v: *mut igraph_bitset_list_t,
19936        pos: igraph_int_t,
19937        e: *mut igraph_bitset_t,
19938    );
19939}
19940unsafe extern "C" {
19941    pub fn igraph_bitset_list_remove_consecutive_duplicates(
19942        v: *mut igraph_bitset_list_t,
19943        eq: ::std::option::Option<
19944            unsafe extern "C" fn(
19945                arg1: *const igraph_bitset_t,
19946                arg2: *const igraph_bitset_t,
19947            ) -> igraph_bool_t,
19948        >,
19949    );
19950}
19951unsafe extern "C" {
19952    pub fn igraph_bitset_list_permute(
19953        v: *mut igraph_bitset_list_t,
19954        index: *const igraph_vector_int_t,
19955    ) -> igraph_error_t;
19956}
19957unsafe extern "C" {
19958    pub fn igraph_bitset_list_reverse(v: *mut igraph_bitset_list_t) -> igraph_error_t;
19959}
19960unsafe extern "C" {
19961    pub fn igraph_bitset_list_swap(v1: *mut igraph_bitset_list_t, v2: *mut igraph_bitset_list_t);
19962}
19963unsafe extern "C" {
19964    pub fn igraph_bitset_list_swap_elements(
19965        v: *mut igraph_bitset_list_t,
19966        i: igraph_int_t,
19967        j: igraph_int_t,
19968    );
19969}
19970unsafe extern "C" {
19971    pub fn igraph_bitset_list_sort(
19972        v: *mut igraph_bitset_list_t,
19973        cmp: ::std::option::Option<
19974            unsafe extern "C" fn(
19975                arg1: *const igraph_bitset_t,
19976                arg2: *const igraph_bitset_t,
19977            ) -> ::std::os::raw::c_int,
19978        >,
19979    );
19980}
19981unsafe extern "C" {
19982    pub fn igraph_bitset_list_sort_ind(
19983        v: *mut igraph_bitset_list_t,
19984        ind: *mut igraph_vector_int_t,
19985        cmp: ::std::option::Option<
19986            unsafe extern "C" fn(
19987                arg1: *const igraph_bitset_t,
19988                arg2: *const igraph_bitset_t,
19989            ) -> ::std::os::raw::c_int,
19990        >,
19991    ) -> igraph_error_t;
19992}
19993unsafe extern "C" {
19994    pub fn igraph_reachability(
19995        graph: *const igraph_t,
19996        membership: *mut igraph_vector_int_t,
19997        csize: *mut igraph_vector_int_t,
19998        no_of_components: *mut igraph_int_t,
19999        reach: *mut igraph_bitset_list_t,
20000        mode: igraph_neimode_t,
20001    ) -> igraph_error_t;
20002}
20003unsafe extern "C" {
20004    pub fn igraph_count_reachable(
20005        graph: *const igraph_t,
20006        counts: *mut igraph_vector_int_t,
20007        mode: igraph_neimode_t,
20008    ) -> igraph_error_t;
20009}
20010unsafe extern "C" {
20011    pub fn igraph_transitive_closure(
20012        graph: *const igraph_t,
20013        closure: *mut igraph_t,
20014    ) -> igraph_error_t;
20015}
20016unsafe extern "C" {
20017    pub fn igraph_delaunay_graph(
20018        graph: *mut igraph_t,
20019        points: *const igraph_matrix_t,
20020    ) -> igraph_error_t;
20021}
20022unsafe extern "C" {
20023    pub fn igraph_lune_beta_skeleton(
20024        graph: *mut igraph_t,
20025        points: *const igraph_matrix_t,
20026        beta: igraph_real_t,
20027    ) -> igraph_error_t;
20028}
20029unsafe extern "C" {
20030    pub fn igraph_circle_beta_skeleton(
20031        graph: *mut igraph_t,
20032        points: *const igraph_matrix_t,
20033        beta: igraph_real_t,
20034    ) -> igraph_error_t;
20035}
20036unsafe extern "C" {
20037    pub fn igraph_beta_weighted_gabriel_graph(
20038        graph: *mut igraph_t,
20039        weights: *mut igraph_vector_t,
20040        points: *const igraph_matrix_t,
20041        max_beta: igraph_real_t,
20042    ) -> igraph_error_t;
20043}
20044unsafe extern "C" {
20045    pub fn igraph_gabriel_graph(
20046        graph: *mut igraph_t,
20047        points: *const igraph_matrix_t,
20048    ) -> igraph_error_t;
20049}
20050unsafe extern "C" {
20051    pub fn igraph_relative_neighborhood_graph(
20052        graph: *mut igraph_t,
20053        points: *const igraph_matrix_t,
20054    ) -> igraph_error_t;
20055}
20056pub const igraph_metric_t_IGRAPH_METRIC_EUCLIDEAN: igraph_metric_t = 0;
20057pub const igraph_metric_t_IGRAPH_METRIC_L2: igraph_metric_t = 0;
20058pub const igraph_metric_t_IGRAPH_METRIC_MANHATTAN: igraph_metric_t = 1;
20059pub const igraph_metric_t_IGRAPH_METRIC_L1: igraph_metric_t = 1;
20060#[doc = " \\typedef igraph_metric_t\n \\brief Metric functions for use with spatial computation.\n\n \\enumval IGRAPH_METRIC_EUCLIDEAN The Euclidean distance, i.e. L2 metric.\n \\enumval IGRAPH_METRIC_MANHATTAN The Manhattan distance, i.e. L1 metric."]
20061pub type igraph_metric_t = ::std::os::raw::c_uint;
20062unsafe extern "C" {
20063    pub fn igraph_nearest_neighbor_graph(
20064        graph: *mut igraph_t,
20065        points: *const igraph_matrix_t,
20066        metric: igraph_metric_t,
20067        neighbors: igraph_int_t,
20068        cutoff: igraph_real_t,
20069        directed: igraph_bool_t,
20070    ) -> igraph_error_t;
20071}
20072unsafe extern "C" {
20073    pub fn igraph_spatial_edge_lengths(
20074        graph: *const igraph_t,
20075        lengths: *mut igraph_vector_t,
20076        points: *const igraph_matrix_t,
20077        metric: igraph_metric_t,
20078    ) -> igraph_error_t;
20079}
20080unsafe extern "C" {
20081    pub fn igraph_convex_hull_2d(
20082        data: *const igraph_matrix_t,
20083        resverts: *mut igraph_vector_int_t,
20084        rescoords: *mut igraph_matrix_t,
20085    ) -> igraph_error_t;
20086}
20087unsafe extern "C" {
20088    pub fn igraph_rng_sample_sphere_surface(
20089        rng: *mut igraph_rng_t,
20090        dim: igraph_int_t,
20091        n: igraph_int_t,
20092        radius: igraph_real_t,
20093        positive: igraph_bool_t,
20094        res: *mut igraph_matrix_t,
20095    ) -> igraph_error_t;
20096}
20097unsafe extern "C" {
20098    pub fn igraph_rng_sample_sphere_volume(
20099        rng: *mut igraph_rng_t,
20100        dim: igraph_int_t,
20101        n: igraph_int_t,
20102        radius: igraph_real_t,
20103        positive: igraph_bool_t,
20104        res: *mut igraph_matrix_t,
20105    ) -> igraph_error_t;
20106}
20107unsafe extern "C" {
20108    pub fn igraph_rng_sample_dirichlet(
20109        rng: *mut igraph_rng_t,
20110        n: igraph_int_t,
20111        alpha: *const igraph_vector_t,
20112        res: *mut igraph_matrix_t,
20113    ) -> igraph_error_t;
20114}
20115pub type __builtin_va_list = *mut ::std::os::raw::c_char;
20116pub type __uint128_t = u128;