torch/
lib.rs

1/* automatically generated by rust-bindgen */
2
3#[repr(C)]
4pub struct __BindgenUnionField<T>(::std::marker::PhantomData<T>);
5impl <T> __BindgenUnionField<T> {
6    #[inline]
7    pub fn new() -> Self { __BindgenUnionField(::std::marker::PhantomData) }
8    #[inline]
9    pub unsafe fn as_ref(&self) -> &T { ::std::mem::transmute(self) }
10    #[inline]
11    pub unsafe fn as_mut(&mut self) -> &mut T { ::std::mem::transmute(self) }
12}
13impl <T> ::std::default::Default for __BindgenUnionField<T> {
14    #[inline]
15    fn default() -> Self { Self::new() }
16}
17impl <T> ::std::clone::Clone for __BindgenUnionField<T> {
18    #[inline]
19    fn clone(&self) -> Self { Self::new() }
20}
21impl <T> ::std::marker::Copy for __BindgenUnionField<T> { }
22impl <T> ::std::fmt::Debug for __BindgenUnionField<T> {
23    fn fmt(&self, fmt: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
24        fmt.write_str("__BindgenUnionField")
25    }
26}
27pub const __llvm__: ::std::os::raw::c_uint = 1;
28pub const __clang__: ::std::os::raw::c_uint = 1;
29pub const __clang_major__: ::std::os::raw::c_uint = 3;
30pub const __clang_minor__: ::std::os::raw::c_uint = 8;
31pub const __clang_patchlevel__: ::std::os::raw::c_uint = 0;
32pub const __clang_version__: &'static [u8; 31usize] =
33    b"3.8.0 (tags/RELEASE_380/final)\x00";
34pub const __GNUC_MINOR__: ::std::os::raw::c_uint = 2;
35pub const __GNUC_PATCHLEVEL__: ::std::os::raw::c_uint = 1;
36pub const __GNUC__: ::std::os::raw::c_uint = 4;
37pub const __GXX_ABI_VERSION: ::std::os::raw::c_uint = 1002;
38pub const __ATOMIC_RELAXED: ::std::os::raw::c_uint = 0;
39pub const __ATOMIC_CONSUME: ::std::os::raw::c_uint = 1;
40pub const __ATOMIC_ACQUIRE: ::std::os::raw::c_uint = 2;
41pub const __ATOMIC_RELEASE: ::std::os::raw::c_uint = 3;
42pub const __ATOMIC_ACQ_REL: ::std::os::raw::c_uint = 4;
43pub const __ATOMIC_SEQ_CST: ::std::os::raw::c_uint = 5;
44pub const __PRAGMA_REDEFINE_EXTNAME: ::std::os::raw::c_uint = 1;
45pub const __VERSION__: &'static [u8; 54usize] =
46    b"4.2.1 Compatible Clang 3.8.0 (tags/RELEASE_380/final)\x00";
47pub const __CONSTANT_CFSTRINGS__: ::std::os::raw::c_uint = 1;
48pub const __GXX_RTTI: ::std::os::raw::c_uint = 1;
49pub const __ORDER_LITTLE_ENDIAN__: ::std::os::raw::c_uint = 1234;
50pub const __ORDER_BIG_ENDIAN__: ::std::os::raw::c_uint = 4321;
51pub const __ORDER_PDP_ENDIAN__: ::std::os::raw::c_uint = 3412;
52pub const __BYTE_ORDER__: ::std::os::raw::c_uint = 1234;
53pub const __LITTLE_ENDIAN__: ::std::os::raw::c_uint = 1;
54pub const _LP64: ::std::os::raw::c_uint = 1;
55pub const __LP64__: ::std::os::raw::c_uint = 1;
56pub const __CHAR_BIT__: ::std::os::raw::c_uint = 8;
57pub const __SCHAR_MAX__: ::std::os::raw::c_uint = 127;
58pub const __SHRT_MAX__: ::std::os::raw::c_uint = 32767;
59pub const __INT_MAX__: ::std::os::raw::c_uint = 2147483647;
60pub const __LONG_MAX__: ::std::os::raw::c_ulonglong = 9223372036854775807;
61pub const __LONG_LONG_MAX__: ::std::os::raw::c_ulonglong =
62    9223372036854775807;
63pub const __WCHAR_MAX__: ::std::os::raw::c_uint = 2147483647;
64pub const __INTMAX_MAX__: ::std::os::raw::c_ulonglong = 9223372036854775807;
65pub const __SIZE_MAX__: ::std::os::raw::c_int = -1;
66pub const __UINTMAX_MAX__: ::std::os::raw::c_int = -1;
67pub const __PTRDIFF_MAX__: ::std::os::raw::c_ulonglong = 9223372036854775807;
68pub const __INTPTR_MAX__: ::std::os::raw::c_ulonglong = 9223372036854775807;
69pub const __UINTPTR_MAX__: ::std::os::raw::c_int = -1;
70pub const __SIZEOF_DOUBLE__: ::std::os::raw::c_uint = 8;
71pub const __SIZEOF_FLOAT__: ::std::os::raw::c_uint = 4;
72pub const __SIZEOF_INT__: ::std::os::raw::c_uint = 4;
73pub const __SIZEOF_LONG__: ::std::os::raw::c_uint = 8;
74pub const __SIZEOF_LONG_DOUBLE__: ::std::os::raw::c_uint = 16;
75pub const __SIZEOF_LONG_LONG__: ::std::os::raw::c_uint = 8;
76pub const __SIZEOF_POINTER__: ::std::os::raw::c_uint = 8;
77pub const __SIZEOF_SHORT__: ::std::os::raw::c_uint = 2;
78pub const __SIZEOF_PTRDIFF_T__: ::std::os::raw::c_uint = 8;
79pub const __SIZEOF_SIZE_T__: ::std::os::raw::c_uint = 8;
80pub const __SIZEOF_WCHAR_T__: ::std::os::raw::c_uint = 4;
81pub const __SIZEOF_WINT_T__: ::std::os::raw::c_uint = 4;
82pub const __SIZEOF_INT128__: ::std::os::raw::c_uint = 16;
83pub const __INTMAX_FMTd__: &'static [u8; 3usize] = b"ld\x00";
84pub const __INTMAX_FMTi__: &'static [u8; 3usize] = b"li\x00";
85pub const __UINTMAX_FMTo__: &'static [u8; 3usize] = b"lo\x00";
86pub const __UINTMAX_FMTu__: &'static [u8; 3usize] = b"lu\x00";
87pub const __UINTMAX_FMTx__: &'static [u8; 3usize] = b"lx\x00";
88pub const __UINTMAX_FMTX__: &'static [u8; 3usize] = b"lX\x00";
89pub const __INTMAX_WIDTH__: ::std::os::raw::c_uint = 64;
90pub const __PTRDIFF_FMTd__: &'static [u8; 3usize] = b"ld\x00";
91pub const __PTRDIFF_FMTi__: &'static [u8; 3usize] = b"li\x00";
92pub const __PTRDIFF_WIDTH__: ::std::os::raw::c_uint = 64;
93pub const __INTPTR_FMTd__: &'static [u8; 3usize] = b"ld\x00";
94pub const __INTPTR_FMTi__: &'static [u8; 3usize] = b"li\x00";
95pub const __INTPTR_WIDTH__: ::std::os::raw::c_uint = 64;
96pub const __SIZE_FMTo__: &'static [u8; 3usize] = b"lo\x00";
97pub const __SIZE_FMTu__: &'static [u8; 3usize] = b"lu\x00";
98pub const __SIZE_FMTx__: &'static [u8; 3usize] = b"lx\x00";
99pub const __SIZE_FMTX__: &'static [u8; 3usize] = b"lX\x00";
100pub const __SIZE_WIDTH__: ::std::os::raw::c_uint = 64;
101pub const __WCHAR_WIDTH__: ::std::os::raw::c_uint = 32;
102pub const __WINT_WIDTH__: ::std::os::raw::c_uint = 32;
103pub const __SIG_ATOMIC_WIDTH__: ::std::os::raw::c_uint = 32;
104pub const __SIG_ATOMIC_MAX__: ::std::os::raw::c_uint = 2147483647;
105pub const __UINTMAX_WIDTH__: ::std::os::raw::c_uint = 64;
106pub const __UINTPTR_FMTo__: &'static [u8; 3usize] = b"lo\x00";
107pub const __UINTPTR_FMTu__: &'static [u8; 3usize] = b"lu\x00";
108pub const __UINTPTR_FMTx__: &'static [u8; 3usize] = b"lx\x00";
109pub const __UINTPTR_FMTX__: &'static [u8; 3usize] = b"lX\x00";
110pub const __UINTPTR_WIDTH__: ::std::os::raw::c_uint = 64;
111pub const __FLT_HAS_DENORM__: ::std::os::raw::c_uint = 1;
112pub const __FLT_DIG__: ::std::os::raw::c_uint = 6;
113pub const __FLT_DECIMAL_DIG__: ::std::os::raw::c_uint = 9;
114pub const __FLT_HAS_INFINITY__: ::std::os::raw::c_uint = 1;
115pub const __FLT_HAS_QUIET_NAN__: ::std::os::raw::c_uint = 1;
116pub const __FLT_MANT_DIG__: ::std::os::raw::c_uint = 24;
117pub const __FLT_MAX_10_EXP__: ::std::os::raw::c_uint = 38;
118pub const __FLT_MAX_EXP__: ::std::os::raw::c_uint = 128;
119pub const __FLT_MIN_10_EXP__: ::std::os::raw::c_int = -37;
120pub const __FLT_MIN_EXP__: ::std::os::raw::c_int = -125;
121pub const __DBL_HAS_DENORM__: ::std::os::raw::c_uint = 1;
122pub const __DBL_DIG__: ::std::os::raw::c_uint = 15;
123pub const __DBL_DECIMAL_DIG__: ::std::os::raw::c_uint = 17;
124pub const __DBL_HAS_INFINITY__: ::std::os::raw::c_uint = 1;
125pub const __DBL_HAS_QUIET_NAN__: ::std::os::raw::c_uint = 1;
126pub const __DBL_MANT_DIG__: ::std::os::raw::c_uint = 53;
127pub const __DBL_MAX_10_EXP__: ::std::os::raw::c_uint = 308;
128pub const __DBL_MAX_EXP__: ::std::os::raw::c_uint = 1024;
129pub const __DBL_MIN_10_EXP__: ::std::os::raw::c_int = -307;
130pub const __DBL_MIN_EXP__: ::std::os::raw::c_int = -1021;
131pub const __LDBL_HAS_DENORM__: ::std::os::raw::c_uint = 1;
132pub const __LDBL_DIG__: ::std::os::raw::c_uint = 18;
133pub const __LDBL_DECIMAL_DIG__: ::std::os::raw::c_uint = 21;
134pub const __LDBL_HAS_INFINITY__: ::std::os::raw::c_uint = 1;
135pub const __LDBL_HAS_QUIET_NAN__: ::std::os::raw::c_uint = 1;
136pub const __LDBL_MANT_DIG__: ::std::os::raw::c_uint = 64;
137pub const __LDBL_MAX_10_EXP__: ::std::os::raw::c_uint = 4932;
138pub const __LDBL_MAX_EXP__: ::std::os::raw::c_uint = 16384;
139pub const __LDBL_MIN_10_EXP__: ::std::os::raw::c_int = -4931;
140pub const __LDBL_MIN_EXP__: ::std::os::raw::c_int = -16381;
141pub const __POINTER_WIDTH__: ::std::os::raw::c_uint = 64;
142pub const __BIGGEST_ALIGNMENT__: ::std::os::raw::c_uint = 16;
143pub const __WINT_UNSIGNED__: ::std::os::raw::c_uint = 1;
144pub const __INT8_FMTd__: &'static [u8; 4usize] = b"hhd\x00";
145pub const __INT8_FMTi__: &'static [u8; 4usize] = b"hhi\x00";
146pub const __INT16_FMTd__: &'static [u8; 3usize] = b"hd\x00";
147pub const __INT16_FMTi__: &'static [u8; 3usize] = b"hi\x00";
148pub const __INT32_FMTd__: &'static [u8; 2usize] = b"d\x00";
149pub const __INT32_FMTi__: &'static [u8; 2usize] = b"i\x00";
150pub const __INT64_FMTd__: &'static [u8; 3usize] = b"ld\x00";
151pub const __INT64_FMTi__: &'static [u8; 3usize] = b"li\x00";
152pub const __UINT8_FMTo__: &'static [u8; 4usize] = b"hho\x00";
153pub const __UINT8_FMTu__: &'static [u8; 4usize] = b"hhu\x00";
154pub const __UINT8_FMTx__: &'static [u8; 4usize] = b"hhx\x00";
155pub const __UINT8_FMTX__: &'static [u8; 4usize] = b"hhX\x00";
156pub const __UINT8_MAX__: ::std::os::raw::c_uint = 255;
157pub const __INT8_MAX__: ::std::os::raw::c_uint = 127;
158pub const __UINT16_FMTo__: &'static [u8; 3usize] = b"ho\x00";
159pub const __UINT16_FMTu__: &'static [u8; 3usize] = b"hu\x00";
160pub const __UINT16_FMTx__: &'static [u8; 3usize] = b"hx\x00";
161pub const __UINT16_FMTX__: &'static [u8; 3usize] = b"hX\x00";
162pub const __UINT16_MAX__: ::std::os::raw::c_uint = 65535;
163pub const __INT16_MAX__: ::std::os::raw::c_uint = 32767;
164pub const __UINT32_FMTo__: &'static [u8; 2usize] = b"o\x00";
165pub const __UINT32_FMTu__: &'static [u8; 2usize] = b"u\x00";
166pub const __UINT32_FMTx__: &'static [u8; 2usize] = b"x\x00";
167pub const __UINT32_FMTX__: &'static [u8; 2usize] = b"X\x00";
168pub const __UINT32_MAX__: ::std::os::raw::c_uint = 4294967295;
169pub const __INT32_MAX__: ::std::os::raw::c_uint = 2147483647;
170pub const __UINT64_FMTo__: &'static [u8; 3usize] = b"lo\x00";
171pub const __UINT64_FMTu__: &'static [u8; 3usize] = b"lu\x00";
172pub const __UINT64_FMTx__: &'static [u8; 3usize] = b"lx\x00";
173pub const __UINT64_FMTX__: &'static [u8; 3usize] = b"lX\x00";
174pub const __UINT64_MAX__: ::std::os::raw::c_int = -1;
175pub const __INT64_MAX__: ::std::os::raw::c_ulonglong = 9223372036854775807;
176pub const __INT_LEAST8_MAX__: ::std::os::raw::c_uint = 127;
177pub const __INT_LEAST8_FMTd__: &'static [u8; 4usize] = b"hhd\x00";
178pub const __INT_LEAST8_FMTi__: &'static [u8; 4usize] = b"hhi\x00";
179pub const __UINT_LEAST8_MAX__: ::std::os::raw::c_uint = 255;
180pub const __UINT_LEAST8_FMTo__: &'static [u8; 4usize] = b"hho\x00";
181pub const __UINT_LEAST8_FMTu__: &'static [u8; 4usize] = b"hhu\x00";
182pub const __UINT_LEAST8_FMTx__: &'static [u8; 4usize] = b"hhx\x00";
183pub const __UINT_LEAST8_FMTX__: &'static [u8; 4usize] = b"hhX\x00";
184pub const __INT_LEAST16_MAX__: ::std::os::raw::c_uint = 32767;
185pub const __INT_LEAST16_FMTd__: &'static [u8; 3usize] = b"hd\x00";
186pub const __INT_LEAST16_FMTi__: &'static [u8; 3usize] = b"hi\x00";
187pub const __UINT_LEAST16_MAX__: ::std::os::raw::c_uint = 65535;
188pub const __UINT_LEAST16_FMTo__: &'static [u8; 3usize] = b"ho\x00";
189pub const __UINT_LEAST16_FMTu__: &'static [u8; 3usize] = b"hu\x00";
190pub const __UINT_LEAST16_FMTx__: &'static [u8; 3usize] = b"hx\x00";
191pub const __UINT_LEAST16_FMTX__: &'static [u8; 3usize] = b"hX\x00";
192pub const __INT_LEAST32_MAX__: ::std::os::raw::c_uint = 2147483647;
193pub const __INT_LEAST32_FMTd__: &'static [u8; 2usize] = b"d\x00";
194pub const __INT_LEAST32_FMTi__: &'static [u8; 2usize] = b"i\x00";
195pub const __UINT_LEAST32_MAX__: ::std::os::raw::c_uint = 4294967295;
196pub const __UINT_LEAST32_FMTo__: &'static [u8; 2usize] = b"o\x00";
197pub const __UINT_LEAST32_FMTu__: &'static [u8; 2usize] = b"u\x00";
198pub const __UINT_LEAST32_FMTx__: &'static [u8; 2usize] = b"x\x00";
199pub const __UINT_LEAST32_FMTX__: &'static [u8; 2usize] = b"X\x00";
200pub const __INT_LEAST64_MAX__: ::std::os::raw::c_ulonglong =
201    9223372036854775807;
202pub const __INT_LEAST64_FMTd__: &'static [u8; 3usize] = b"ld\x00";
203pub const __INT_LEAST64_FMTi__: &'static [u8; 3usize] = b"li\x00";
204pub const __UINT_LEAST64_MAX__: ::std::os::raw::c_int = -1;
205pub const __UINT_LEAST64_FMTo__: &'static [u8; 3usize] = b"lo\x00";
206pub const __UINT_LEAST64_FMTu__: &'static [u8; 3usize] = b"lu\x00";
207pub const __UINT_LEAST64_FMTx__: &'static [u8; 3usize] = b"lx\x00";
208pub const __UINT_LEAST64_FMTX__: &'static [u8; 3usize] = b"lX\x00";
209pub const __INT_FAST8_MAX__: ::std::os::raw::c_uint = 127;
210pub const __INT_FAST8_FMTd__: &'static [u8; 4usize] = b"hhd\x00";
211pub const __INT_FAST8_FMTi__: &'static [u8; 4usize] = b"hhi\x00";
212pub const __UINT_FAST8_MAX__: ::std::os::raw::c_uint = 255;
213pub const __UINT_FAST8_FMTo__: &'static [u8; 4usize] = b"hho\x00";
214pub const __UINT_FAST8_FMTu__: &'static [u8; 4usize] = b"hhu\x00";
215pub const __UINT_FAST8_FMTx__: &'static [u8; 4usize] = b"hhx\x00";
216pub const __UINT_FAST8_FMTX__: &'static [u8; 4usize] = b"hhX\x00";
217pub const __INT_FAST16_MAX__: ::std::os::raw::c_uint = 32767;
218pub const __INT_FAST16_FMTd__: &'static [u8; 3usize] = b"hd\x00";
219pub const __INT_FAST16_FMTi__: &'static [u8; 3usize] = b"hi\x00";
220pub const __UINT_FAST16_MAX__: ::std::os::raw::c_uint = 65535;
221pub const __UINT_FAST16_FMTo__: &'static [u8; 3usize] = b"ho\x00";
222pub const __UINT_FAST16_FMTu__: &'static [u8; 3usize] = b"hu\x00";
223pub const __UINT_FAST16_FMTx__: &'static [u8; 3usize] = b"hx\x00";
224pub const __UINT_FAST16_FMTX__: &'static [u8; 3usize] = b"hX\x00";
225pub const __INT_FAST32_MAX__: ::std::os::raw::c_uint = 2147483647;
226pub const __INT_FAST32_FMTd__: &'static [u8; 2usize] = b"d\x00";
227pub const __INT_FAST32_FMTi__: &'static [u8; 2usize] = b"i\x00";
228pub const __UINT_FAST32_MAX__: ::std::os::raw::c_uint = 4294967295;
229pub const __UINT_FAST32_FMTo__: &'static [u8; 2usize] = b"o\x00";
230pub const __UINT_FAST32_FMTu__: &'static [u8; 2usize] = b"u\x00";
231pub const __UINT_FAST32_FMTx__: &'static [u8; 2usize] = b"x\x00";
232pub const __UINT_FAST32_FMTX__: &'static [u8; 2usize] = b"X\x00";
233pub const __INT_FAST64_MAX__: ::std::os::raw::c_ulonglong =
234    9223372036854775807;
235pub const __INT_FAST64_FMTd__: &'static [u8; 3usize] = b"ld\x00";
236pub const __INT_FAST64_FMTi__: &'static [u8; 3usize] = b"li\x00";
237pub const __UINT_FAST64_MAX__: ::std::os::raw::c_int = -1;
238pub const __UINT_FAST64_FMTo__: &'static [u8; 3usize] = b"lo\x00";
239pub const __UINT_FAST64_FMTu__: &'static [u8; 3usize] = b"lu\x00";
240pub const __UINT_FAST64_FMTx__: &'static [u8; 3usize] = b"lx\x00";
241pub const __UINT_FAST64_FMTX__: &'static [u8; 3usize] = b"lX\x00";
242pub const __FINITE_MATH_ONLY__: ::std::os::raw::c_uint = 0;
243pub const __GNUC_STDC_INLINE__: ::std::os::raw::c_uint = 1;
244pub const __GCC_ATOMIC_TEST_AND_SET_TRUEVAL: ::std::os::raw::c_uint = 1;
245pub const __GCC_ATOMIC_BOOL_LOCK_FREE: ::std::os::raw::c_uint = 2;
246pub const __GCC_ATOMIC_CHAR_LOCK_FREE: ::std::os::raw::c_uint = 2;
247pub const __GCC_ATOMIC_CHAR16_T_LOCK_FREE: ::std::os::raw::c_uint = 2;
248pub const __GCC_ATOMIC_CHAR32_T_LOCK_FREE: ::std::os::raw::c_uint = 2;
249pub const __GCC_ATOMIC_WCHAR_T_LOCK_FREE: ::std::os::raw::c_uint = 2;
250pub const __GCC_ATOMIC_SHORT_LOCK_FREE: ::std::os::raw::c_uint = 2;
251pub const __GCC_ATOMIC_INT_LOCK_FREE: ::std::os::raw::c_uint = 2;
252pub const __GCC_ATOMIC_LONG_LOCK_FREE: ::std::os::raw::c_uint = 2;
253pub const __GCC_ATOMIC_LLONG_LOCK_FREE: ::std::os::raw::c_uint = 2;
254pub const __GCC_ATOMIC_POINTER_LOCK_FREE: ::std::os::raw::c_uint = 2;
255pub const __NO_INLINE__: ::std::os::raw::c_uint = 1;
256pub const __FLT_EVAL_METHOD__: ::std::os::raw::c_uint = 0;
257pub const __FLT_RADIX__: ::std::os::raw::c_uint = 2;
258pub const __DECIMAL_DIG__: ::std::os::raw::c_uint = 21;
259pub const __amd64__: ::std::os::raw::c_uint = 1;
260pub const __amd64: ::std::os::raw::c_uint = 1;
261pub const __x86_64: ::std::os::raw::c_uint = 1;
262pub const __x86_64__: ::std::os::raw::c_uint = 1;
263pub const __k8: ::std::os::raw::c_uint = 1;
264pub const __k8__: ::std::os::raw::c_uint = 1;
265pub const __tune_k8__: ::std::os::raw::c_uint = 1;
266pub const __NO_MATH_INLINES: ::std::os::raw::c_uint = 1;
267pub const __FXSR__: ::std::os::raw::c_uint = 1;
268pub const __SSE2__: ::std::os::raw::c_uint = 1;
269pub const __SSE2_MATH__: ::std::os::raw::c_uint = 1;
270pub const __SSE__: ::std::os::raw::c_uint = 1;
271pub const __SSE_MATH__: ::std::os::raw::c_uint = 1;
272pub const __MMX__: ::std::os::raw::c_uint = 1;
273pub const __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1: ::std::os::raw::c_uint = 1;
274pub const __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2: ::std::os::raw::c_uint = 1;
275pub const __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4: ::std::os::raw::c_uint = 1;
276pub const __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8: ::std::os::raw::c_uint = 1;
277pub const unix: ::std::os::raw::c_uint = 1;
278pub const __unix: ::std::os::raw::c_uint = 1;
279pub const __unix__: ::std::os::raw::c_uint = 1;
280pub const linux: ::std::os::raw::c_uint = 1;
281pub const __linux: ::std::os::raw::c_uint = 1;
282pub const __linux__: ::std::os::raw::c_uint = 1;
283pub const __gnu_linux__: ::std::os::raw::c_uint = 1;
284pub const __ELF__: ::std::os::raw::c_uint = 1;
285pub const __STDC__: ::std::os::raw::c_uint = 1;
286pub const __STDC_HOSTED__: ::std::os::raw::c_uint = 1;
287pub const __STDC_VERSION__: ::std::os::raw::c_uint = 201112;
288pub const __STDC_UTF_16__: ::std::os::raw::c_uint = 1;
289pub const __STDC_UTF_32__: ::std::os::raw::c_uint = 1;
290pub type wchar_t = ::std::os::raw::c_int;
291#[repr(u32)]
292#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
293pub enum idtype_t { P_ALL = 0, P_PID = 1, P_PGID = 2, }
294pub type __u_char = ::std::os::raw::c_uchar;
295pub type __u_short = ::std::os::raw::c_ushort;
296pub type __u_int = ::std::os::raw::c_uint;
297pub type __u_long = ::std::os::raw::c_ulong;
298pub type __int8_t = ::std::os::raw::c_schar;
299pub type __uint8_t = ::std::os::raw::c_uchar;
300pub type __int16_t = ::std::os::raw::c_short;
301pub type __uint16_t = ::std::os::raw::c_ushort;
302pub type __int32_t = ::std::os::raw::c_int;
303pub type __uint32_t = ::std::os::raw::c_uint;
304pub type __int64_t = ::std::os::raw::c_long;
305pub type __uint64_t = ::std::os::raw::c_ulong;
306pub type __quad_t = ::std::os::raw::c_long;
307pub type __u_quad_t = ::std::os::raw::c_ulong;
308pub type __dev_t = ::std::os::raw::c_ulong;
309pub type __uid_t = ::std::os::raw::c_uint;
310pub type __gid_t = ::std::os::raw::c_uint;
311pub type __ino_t = ::std::os::raw::c_ulong;
312pub type __ino64_t = ::std::os::raw::c_ulong;
313pub type __mode_t = ::std::os::raw::c_uint;
314pub type __nlink_t = ::std::os::raw::c_ulong;
315pub type __off_t = ::std::os::raw::c_long;
316pub type __off64_t = ::std::os::raw::c_long;
317pub type __pid_t = ::std::os::raw::c_int;
318#[repr(C)]
319#[derive(Copy)]
320pub struct __fsid_t {
321    pub __val: [::std::os::raw::c_int; 2usize],
322}
323#[test]
324fn bindgen_test_layout___fsid_t() {
325    assert_eq!(::std::mem::size_of::<__fsid_t>() , 8usize , concat ! (
326               "Size of: " , stringify ! ( __fsid_t ) ));
327    assert_eq! (::std::mem::align_of::<__fsid_t>() , 4usize , concat ! (
328                "Alignment of " , stringify ! ( __fsid_t ) ));
329    assert_eq! (unsafe {
330                & ( * ( 0 as * const __fsid_t ) ) . __val as * const _ as
331                usize } , 0usize , concat ! (
332                "Alignment of field: " , stringify ! ( __fsid_t ) , "::" ,
333                stringify ! ( __val ) ));
334}
335impl Clone for __fsid_t {
336    fn clone(&self) -> Self { *self }
337}
338pub type __clock_t = ::std::os::raw::c_long;
339pub type __rlim_t = ::std::os::raw::c_ulong;
340pub type __rlim64_t = ::std::os::raw::c_ulong;
341pub type __id_t = ::std::os::raw::c_uint;
342pub type __time_t = ::std::os::raw::c_long;
343pub type __useconds_t = ::std::os::raw::c_uint;
344pub type __suseconds_t = ::std::os::raw::c_long;
345pub type __daddr_t = ::std::os::raw::c_int;
346pub type __key_t = ::std::os::raw::c_int;
347pub type __clockid_t = ::std::os::raw::c_int;
348pub type __timer_t = *mut ::std::os::raw::c_void;
349pub type __blksize_t = ::std::os::raw::c_long;
350pub type __blkcnt_t = ::std::os::raw::c_long;
351pub type __blkcnt64_t = ::std::os::raw::c_long;
352pub type __fsblkcnt_t = ::std::os::raw::c_ulong;
353pub type __fsblkcnt64_t = ::std::os::raw::c_ulong;
354pub type __fsfilcnt_t = ::std::os::raw::c_ulong;
355pub type __fsfilcnt64_t = ::std::os::raw::c_ulong;
356pub type __fsword_t = ::std::os::raw::c_long;
357pub type __ssize_t = ::std::os::raw::c_long;
358pub type __syscall_slong_t = ::std::os::raw::c_long;
359pub type __syscall_ulong_t = ::std::os::raw::c_ulong;
360pub type __loff_t = __off64_t;
361pub type __qaddr_t = *mut __quad_t;
362pub type __caddr_t = *mut ::std::os::raw::c_char;
363pub type __intptr_t = ::std::os::raw::c_long;
364pub type __socklen_t = ::std::os::raw::c_uint;
365#[repr(C)]
366#[derive(Copy)]
367pub struct wait {
368    pub w_status: __BindgenUnionField<::std::os::raw::c_int>,
369    pub __wait_terminated: __BindgenUnionField<wait__bindgen_ty_1>,
370    pub __wait_stopped: __BindgenUnionField<wait__bindgen_ty_2>,
371    pub bindgen_union_field: u32,
372}
373#[repr(C)]
374#[derive(Copy)]
375pub struct wait__bindgen_ty_1 {
376    pub _bitfield_1: [u16; 2usize],
377    pub __bindgen_align: [u32; 0usize],
378}
379#[test]
380fn bindgen_test_layout_wait__bindgen_ty_1() {
381    assert_eq!(::std::mem::size_of::<wait__bindgen_ty_1>() , 4usize , concat !
382               ( "Size of: " , stringify ! ( wait__bindgen_ty_1 ) ));
383    assert_eq! (::std::mem::align_of::<wait__bindgen_ty_1>() , 4usize , concat
384                ! ( "Alignment of " , stringify ! ( wait__bindgen_ty_1 ) ));
385}
386impl Clone for wait__bindgen_ty_1 {
387    fn clone(&self) -> Self { *self }
388}
389impl wait__bindgen_ty_1 {
390    #[inline]
391    pub fn __w_termsig(&self) -> ::std::os::raw::c_uint {
392        let mask = 127usize as u32;
393        let unit_field_val: u32 =
394            unsafe { ::std::mem::transmute(self._bitfield_1) };
395        let val = (unit_field_val & mask) >> 0usize;
396        unsafe { ::std::mem::transmute(val as u32) }
397    }
398    #[inline]
399    pub fn set___w_termsig(&mut self, val: ::std::os::raw::c_uint) {
400        let mask = 127usize as u32;
401        let val = val as u32 as u32;
402        let mut unit_field_val: u32 =
403            unsafe { ::std::mem::transmute(self._bitfield_1) };
404        unit_field_val &= !mask;
405        unit_field_val |= (val << 0usize) & mask;
406        self._bitfield_1 = unsafe { ::std::mem::transmute(unit_field_val) };
407    }
408    #[inline]
409    pub fn __w_coredump(&self) -> ::std::os::raw::c_uint {
410        let mask = 128usize as u32;
411        let unit_field_val: u32 =
412            unsafe { ::std::mem::transmute(self._bitfield_1) };
413        let val = (unit_field_val & mask) >> 7usize;
414        unsafe { ::std::mem::transmute(val as u32) }
415    }
416    #[inline]
417    pub fn set___w_coredump(&mut self, val: ::std::os::raw::c_uint) {
418        let mask = 128usize as u32;
419        let val = val as u32 as u32;
420        let mut unit_field_val: u32 =
421            unsafe { ::std::mem::transmute(self._bitfield_1) };
422        unit_field_val &= !mask;
423        unit_field_val |= (val << 7usize) & mask;
424        self._bitfield_1 = unsafe { ::std::mem::transmute(unit_field_val) };
425    }
426    #[inline]
427    pub fn __w_retcode(&self) -> ::std::os::raw::c_uint {
428        let mask = 65280usize as u32;
429        let unit_field_val: u32 =
430            unsafe { ::std::mem::transmute(self._bitfield_1) };
431        let val = (unit_field_val & mask) >> 8usize;
432        unsafe { ::std::mem::transmute(val as u32) }
433    }
434    #[inline]
435    pub fn set___w_retcode(&mut self, val: ::std::os::raw::c_uint) {
436        let mask = 65280usize as u32;
437        let val = val as u32 as u32;
438        let mut unit_field_val: u32 =
439            unsafe { ::std::mem::transmute(self._bitfield_1) };
440        unit_field_val &= !mask;
441        unit_field_val |= (val << 8usize) & mask;
442        self._bitfield_1 = unsafe { ::std::mem::transmute(unit_field_val) };
443    }
444    #[inline]
445    pub fn new_bitfield_1(__w_termsig: ::std::os::raw::c_uint,
446                          __w_coredump: ::std::os::raw::c_uint,
447                          __w_retcode: ::std::os::raw::c_uint) -> u32 {
448        let bitfield_unit_val =
449            {
450                let bitfield_unit_val =
451                    {
452                        let bitfield_unit_val = { 0 };
453                        let __w_termsig = __w_termsig as u32 as u32;
454                        let mask = 127usize as u32;
455                        let __w_termsig = (__w_termsig << 0usize) & mask;
456                        bitfield_unit_val | __w_termsig
457                    };
458                let __w_coredump = __w_coredump as u32 as u32;
459                let mask = 128usize as u32;
460                let __w_coredump = (__w_coredump << 7usize) & mask;
461                bitfield_unit_val | __w_coredump
462            };
463        let __w_retcode = __w_retcode as u32 as u32;
464        let mask = 65280usize as u32;
465        let __w_retcode = (__w_retcode << 8usize) & mask;
466        bitfield_unit_val | __w_retcode
467    }
468}
469#[repr(C)]
470#[derive(Copy)]
471pub struct wait__bindgen_ty_2 {
472    pub _bitfield_1: [u16; 2usize],
473    pub __bindgen_align: [u32; 0usize],
474}
475#[test]
476fn bindgen_test_layout_wait__bindgen_ty_2() {
477    assert_eq!(::std::mem::size_of::<wait__bindgen_ty_2>() , 4usize , concat !
478               ( "Size of: " , stringify ! ( wait__bindgen_ty_2 ) ));
479    assert_eq! (::std::mem::align_of::<wait__bindgen_ty_2>() , 4usize , concat
480                ! ( "Alignment of " , stringify ! ( wait__bindgen_ty_2 ) ));
481}
482impl Clone for wait__bindgen_ty_2 {
483    fn clone(&self) -> Self { *self }
484}
485impl wait__bindgen_ty_2 {
486    #[inline]
487    pub fn __w_stopval(&self) -> ::std::os::raw::c_uint {
488        let mask = 255usize as u32;
489        let unit_field_val: u32 =
490            unsafe { ::std::mem::transmute(self._bitfield_1) };
491        let val = (unit_field_val & mask) >> 0usize;
492        unsafe { ::std::mem::transmute(val as u32) }
493    }
494    #[inline]
495    pub fn set___w_stopval(&mut self, val: ::std::os::raw::c_uint) {
496        let mask = 255usize as u32;
497        let val = val as u32 as u32;
498        let mut unit_field_val: u32 =
499            unsafe { ::std::mem::transmute(self._bitfield_1) };
500        unit_field_val &= !mask;
501        unit_field_val |= (val << 0usize) & mask;
502        self._bitfield_1 = unsafe { ::std::mem::transmute(unit_field_val) };
503    }
504    #[inline]
505    pub fn __w_stopsig(&self) -> ::std::os::raw::c_uint {
506        let mask = 65280usize as u32;
507        let unit_field_val: u32 =
508            unsafe { ::std::mem::transmute(self._bitfield_1) };
509        let val = (unit_field_val & mask) >> 8usize;
510        unsafe { ::std::mem::transmute(val as u32) }
511    }
512    #[inline]
513    pub fn set___w_stopsig(&mut self, val: ::std::os::raw::c_uint) {
514        let mask = 65280usize as u32;
515        let val = val as u32 as u32;
516        let mut unit_field_val: u32 =
517            unsafe { ::std::mem::transmute(self._bitfield_1) };
518        unit_field_val &= !mask;
519        unit_field_val |= (val << 8usize) & mask;
520        self._bitfield_1 = unsafe { ::std::mem::transmute(unit_field_val) };
521    }
522    #[inline]
523    pub fn new_bitfield_1(__w_stopval: ::std::os::raw::c_uint,
524                          __w_stopsig: ::std::os::raw::c_uint) -> u32 {
525        let bitfield_unit_val =
526            {
527                let bitfield_unit_val = { 0 };
528                let __w_stopval = __w_stopval as u32 as u32;
529                let mask = 255usize as u32;
530                let __w_stopval = (__w_stopval << 0usize) & mask;
531                bitfield_unit_val | __w_stopval
532            };
533        let __w_stopsig = __w_stopsig as u32 as u32;
534        let mask = 65280usize as u32;
535        let __w_stopsig = (__w_stopsig << 8usize) & mask;
536        bitfield_unit_val | __w_stopsig
537    }
538}
539#[test]
540fn bindgen_test_layout_wait() {
541    assert_eq!(::std::mem::size_of::<wait>() , 4usize , concat ! (
542               "Size of: " , stringify ! ( wait ) ));
543    assert_eq! (::std::mem::align_of::<wait>() , 4usize , concat ! (
544                "Alignment of " , stringify ! ( wait ) ));
545    assert_eq! (unsafe {
546                & ( * ( 0 as * const wait ) ) . w_status as * const _ as usize
547                } , 0usize , concat ! (
548                "Alignment of field: " , stringify ! ( wait ) , "::" ,
549                stringify ! ( w_status ) ));
550    assert_eq! (unsafe {
551                & ( * ( 0 as * const wait ) ) . __wait_terminated as * const _
552                as usize } , 0usize , concat ! (
553                "Alignment of field: " , stringify ! ( wait ) , "::" ,
554                stringify ! ( __wait_terminated ) ));
555    assert_eq! (unsafe {
556                & ( * ( 0 as * const wait ) ) . __wait_stopped as * const _ as
557                usize } , 0usize , concat ! (
558                "Alignment of field: " , stringify ! ( wait ) , "::" ,
559                stringify ! ( __wait_stopped ) ));
560}
561impl Clone for wait {
562    fn clone(&self) -> Self { *self }
563}
564#[repr(C)]
565#[derive(Copy)]
566pub struct __WAIT_STATUS {
567    pub __uptr: __BindgenUnionField<*mut wait>,
568    pub __iptr: __BindgenUnionField<*mut ::std::os::raw::c_int>,
569    pub bindgen_union_field: u64,
570}
571#[test]
572fn bindgen_test_layout___WAIT_STATUS() {
573    assert_eq!(::std::mem::size_of::<__WAIT_STATUS>() , 8usize , concat ! (
574               "Size of: " , stringify ! ( __WAIT_STATUS ) ));
575    assert_eq! (::std::mem::align_of::<__WAIT_STATUS>() , 8usize , concat ! (
576                "Alignment of " , stringify ! ( __WAIT_STATUS ) ));
577    assert_eq! (unsafe {
578                & ( * ( 0 as * const __WAIT_STATUS ) ) . __uptr as * const _
579                as usize } , 0usize , concat ! (
580                "Alignment of field: " , stringify ! ( __WAIT_STATUS ) , "::"
581                , stringify ! ( __uptr ) ));
582    assert_eq! (unsafe {
583                & ( * ( 0 as * const __WAIT_STATUS ) ) . __iptr as * const _
584                as usize } , 0usize , concat ! (
585                "Alignment of field: " , stringify ! ( __WAIT_STATUS ) , "::"
586                , stringify ! ( __iptr ) ));
587}
588impl Clone for __WAIT_STATUS {
589    fn clone(&self) -> Self { *self }
590}
591#[repr(C)]
592#[derive(Copy)]
593pub struct div_t {
594    pub quot: ::std::os::raw::c_int,
595    pub rem: ::std::os::raw::c_int,
596}
597#[test]
598fn bindgen_test_layout_div_t() {
599    assert_eq!(::std::mem::size_of::<div_t>() , 8usize , concat ! (
600               "Size of: " , stringify ! ( div_t ) ));
601    assert_eq! (::std::mem::align_of::<div_t>() , 4usize , concat ! (
602                "Alignment of " , stringify ! ( div_t ) ));
603    assert_eq! (unsafe {
604                & ( * ( 0 as * const div_t ) ) . quot as * const _ as usize }
605                , 0usize , concat ! (
606                "Alignment of field: " , stringify ! ( div_t ) , "::" ,
607                stringify ! ( quot ) ));
608    assert_eq! (unsafe {
609                & ( * ( 0 as * const div_t ) ) . rem as * const _ as usize } ,
610                4usize , concat ! (
611                "Alignment of field: " , stringify ! ( div_t ) , "::" ,
612                stringify ! ( rem ) ));
613}
614impl Clone for div_t {
615    fn clone(&self) -> Self { *self }
616}
617#[repr(C)]
618#[derive(Copy)]
619pub struct ldiv_t {
620    pub quot: ::std::os::raw::c_long,
621    pub rem: ::std::os::raw::c_long,
622}
623#[test]
624fn bindgen_test_layout_ldiv_t() {
625    assert_eq!(::std::mem::size_of::<ldiv_t>() , 16usize , concat ! (
626               "Size of: " , stringify ! ( ldiv_t ) ));
627    assert_eq! (::std::mem::align_of::<ldiv_t>() , 8usize , concat ! (
628                "Alignment of " , stringify ! ( ldiv_t ) ));
629    assert_eq! (unsafe {
630                & ( * ( 0 as * const ldiv_t ) ) . quot as * const _ as usize }
631                , 0usize , concat ! (
632                "Alignment of field: " , stringify ! ( ldiv_t ) , "::" ,
633                stringify ! ( quot ) ));
634    assert_eq! (unsafe {
635                & ( * ( 0 as * const ldiv_t ) ) . rem as * const _ as usize }
636                , 8usize , concat ! (
637                "Alignment of field: " , stringify ! ( ldiv_t ) , "::" ,
638                stringify ! ( rem ) ));
639}
640impl Clone for ldiv_t {
641    fn clone(&self) -> Self { *self }
642}
643#[repr(C)]
644#[derive(Copy)]
645pub struct lldiv_t {
646    pub quot: ::std::os::raw::c_longlong,
647    pub rem: ::std::os::raw::c_longlong,
648}
649#[test]
650fn bindgen_test_layout_lldiv_t() {
651    assert_eq!(::std::mem::size_of::<lldiv_t>() , 16usize , concat ! (
652               "Size of: " , stringify ! ( lldiv_t ) ));
653    assert_eq! (::std::mem::align_of::<lldiv_t>() , 8usize , concat ! (
654                "Alignment of " , stringify ! ( lldiv_t ) ));
655    assert_eq! (unsafe {
656                & ( * ( 0 as * const lldiv_t ) ) . quot as * const _ as usize
657                } , 0usize , concat ! (
658                "Alignment of field: " , stringify ! ( lldiv_t ) , "::" ,
659                stringify ! ( quot ) ));
660    assert_eq! (unsafe {
661                & ( * ( 0 as * const lldiv_t ) ) . rem as * const _ as usize }
662                , 8usize , concat ! (
663                "Alignment of field: " , stringify ! ( lldiv_t ) , "::" ,
664                stringify ! ( rem ) ));
665}
666impl Clone for lldiv_t {
667    fn clone(&self) -> Self { *self }
668}
669extern "C" {
670    pub fn __ctype_get_mb_cur_max() -> usize;
671}
672extern "C" {
673    pub fn atof(__nptr: *const ::std::os::raw::c_char) -> f64;
674}
675extern "C" {
676    pub fn atoi(__nptr: *const ::std::os::raw::c_char)
677     -> ::std::os::raw::c_int;
678}
679extern "C" {
680    pub fn atol(__nptr: *const ::std::os::raw::c_char)
681     -> ::std::os::raw::c_long;
682}
683extern "C" {
684    pub fn atoll(__nptr: *const ::std::os::raw::c_char)
685     -> ::std::os::raw::c_longlong;
686}
687extern "C" {
688    pub fn strtod(__nptr: *const ::std::os::raw::c_char,
689                  __endptr: *mut *mut ::std::os::raw::c_char) -> f64;
690}
691extern "C" {
692    pub fn strtof(__nptr: *const ::std::os::raw::c_char,
693                  __endptr: *mut *mut ::std::os::raw::c_char) -> f32;
694}
695extern "C" {
696    pub fn strtold(__nptr: *const ::std::os::raw::c_char,
697                   __endptr: *mut *mut ::std::os::raw::c_char) -> f64;
698}
699extern "C" {
700    pub fn strtol(__nptr: *const ::std::os::raw::c_char,
701                  __endptr: *mut *mut ::std::os::raw::c_char,
702                  __base: ::std::os::raw::c_int) -> ::std::os::raw::c_long;
703}
704extern "C" {
705    pub fn strtoul(__nptr: *const ::std::os::raw::c_char,
706                   __endptr: *mut *mut ::std::os::raw::c_char,
707                   __base: ::std::os::raw::c_int) -> ::std::os::raw::c_ulong;
708}
709extern "C" {
710    pub fn strtoq(__nptr: *const ::std::os::raw::c_char,
711                  __endptr: *mut *mut ::std::os::raw::c_char,
712                  __base: ::std::os::raw::c_int)
713     -> ::std::os::raw::c_longlong;
714}
715extern "C" {
716    pub fn strtouq(__nptr: *const ::std::os::raw::c_char,
717                   __endptr: *mut *mut ::std::os::raw::c_char,
718                   __base: ::std::os::raw::c_int)
719     -> ::std::os::raw::c_ulonglong;
720}
721extern "C" {
722    pub fn strtoll(__nptr: *const ::std::os::raw::c_char,
723                   __endptr: *mut *mut ::std::os::raw::c_char,
724                   __base: ::std::os::raw::c_int)
725     -> ::std::os::raw::c_longlong;
726}
727extern "C" {
728    pub fn strtoull(__nptr: *const ::std::os::raw::c_char,
729                    __endptr: *mut *mut ::std::os::raw::c_char,
730                    __base: ::std::os::raw::c_int)
731     -> ::std::os::raw::c_ulonglong;
732}
733extern "C" {
734    pub fn l64a(__n: ::std::os::raw::c_long) -> *mut ::std::os::raw::c_char;
735}
736extern "C" {
737    pub fn a64l(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_long;
738}
739pub type u_char = __u_char;
740pub type u_short = __u_short;
741pub type u_int = __u_int;
742pub type u_long = __u_long;
743pub type quad_t = __quad_t;
744pub type u_quad_t = __u_quad_t;
745pub type fsid_t = __fsid_t;
746pub type loff_t = __loff_t;
747pub type ino_t = __ino_t;
748pub type dev_t = __dev_t;
749pub type gid_t = __gid_t;
750pub type mode_t = __mode_t;
751pub type nlink_t = __nlink_t;
752pub type uid_t = __uid_t;
753pub type off_t = __off_t;
754pub type pid_t = __pid_t;
755pub type id_t = __id_t;
756pub type daddr_t = __daddr_t;
757pub type caddr_t = __caddr_t;
758pub type key_t = __key_t;
759pub type clock_t = __clock_t;
760pub type time_t = __time_t;
761pub type clockid_t = __clockid_t;
762pub type timer_t = __timer_t;
763pub type ulong = ::std::os::raw::c_ulong;
764pub type ushort = ::std::os::raw::c_ushort;
765pub type uint = ::std::os::raw::c_uint;
766pub type u_int8_t = ::std::os::raw::c_uchar;
767pub type u_int16_t = ::std::os::raw::c_ushort;
768pub type u_int32_t = ::std::os::raw::c_uint;
769pub type u_int64_t = ::std::os::raw::c_ulong;
770pub type register_t = ::std::os::raw::c_long;
771pub type __sig_atomic_t = ::std::os::raw::c_int;
772#[repr(C)]
773#[derive(Copy)]
774pub struct __sigset_t {
775    pub __val: [::std::os::raw::c_ulong; 16usize],
776}
777#[test]
778fn bindgen_test_layout___sigset_t() {
779    assert_eq!(::std::mem::size_of::<__sigset_t>() , 128usize , concat ! (
780               "Size of: " , stringify ! ( __sigset_t ) ));
781    assert_eq! (::std::mem::align_of::<__sigset_t>() , 8usize , concat ! (
782                "Alignment of " , stringify ! ( __sigset_t ) ));
783    assert_eq! (unsafe {
784                & ( * ( 0 as * const __sigset_t ) ) . __val as * const _ as
785                usize } , 0usize , concat ! (
786                "Alignment of field: " , stringify ! ( __sigset_t ) , "::" ,
787                stringify ! ( __val ) ));
788}
789impl Clone for __sigset_t {
790    fn clone(&self) -> Self { *self }
791}
792pub type sigset_t = __sigset_t;
793#[repr(C)]
794#[derive(Copy)]
795pub struct timespec {
796    pub tv_sec: __time_t,
797    pub tv_nsec: __syscall_slong_t,
798}
799#[test]
800fn bindgen_test_layout_timespec() {
801    assert_eq!(::std::mem::size_of::<timespec>() , 16usize , concat ! (
802               "Size of: " , stringify ! ( timespec ) ));
803    assert_eq! (::std::mem::align_of::<timespec>() , 8usize , concat ! (
804                "Alignment of " , stringify ! ( timespec ) ));
805    assert_eq! (unsafe {
806                & ( * ( 0 as * const timespec ) ) . tv_sec as * const _ as
807                usize } , 0usize , concat ! (
808                "Alignment of field: " , stringify ! ( timespec ) , "::" ,
809                stringify ! ( tv_sec ) ));
810    assert_eq! (unsafe {
811                & ( * ( 0 as * const timespec ) ) . tv_nsec as * const _ as
812                usize } , 8usize , concat ! (
813                "Alignment of field: " , stringify ! ( timespec ) , "::" ,
814                stringify ! ( tv_nsec ) ));
815}
816impl Clone for timespec {
817    fn clone(&self) -> Self { *self }
818}
819#[repr(C)]
820#[derive(Copy)]
821pub struct timeval {
822    pub tv_sec: __time_t,
823    pub tv_usec: __suseconds_t,
824}
825#[test]
826fn bindgen_test_layout_timeval() {
827    assert_eq!(::std::mem::size_of::<timeval>() , 16usize , concat ! (
828               "Size of: " , stringify ! ( timeval ) ));
829    assert_eq! (::std::mem::align_of::<timeval>() , 8usize , concat ! (
830                "Alignment of " , stringify ! ( timeval ) ));
831    assert_eq! (unsafe {
832                & ( * ( 0 as * const timeval ) ) . tv_sec as * const _ as
833                usize } , 0usize , concat ! (
834                "Alignment of field: " , stringify ! ( timeval ) , "::" ,
835                stringify ! ( tv_sec ) ));
836    assert_eq! (unsafe {
837                & ( * ( 0 as * const timeval ) ) . tv_usec as * const _ as
838                usize } , 8usize , concat ! (
839                "Alignment of field: " , stringify ! ( timeval ) , "::" ,
840                stringify ! ( tv_usec ) ));
841}
842impl Clone for timeval {
843    fn clone(&self) -> Self { *self }
844}
845pub type suseconds_t = __suseconds_t;
846pub type __fd_mask = ::std::os::raw::c_long;
847#[repr(C)]
848#[derive(Copy)]
849pub struct fd_set {
850    pub __fds_bits: [__fd_mask; 16usize],
851}
852#[test]
853fn bindgen_test_layout_fd_set() {
854    assert_eq!(::std::mem::size_of::<fd_set>() , 128usize , concat ! (
855               "Size of: " , stringify ! ( fd_set ) ));
856    assert_eq! (::std::mem::align_of::<fd_set>() , 8usize , concat ! (
857                "Alignment of " , stringify ! ( fd_set ) ));
858    assert_eq! (unsafe {
859                & ( * ( 0 as * const fd_set ) ) . __fds_bits as * const _ as
860                usize } , 0usize , concat ! (
861                "Alignment of field: " , stringify ! ( fd_set ) , "::" ,
862                stringify ! ( __fds_bits ) ));
863}
864impl Clone for fd_set {
865    fn clone(&self) -> Self { *self }
866}
867pub type fd_mask = __fd_mask;
868extern "C" {
869    pub fn select(__nfds: ::std::os::raw::c_int, __readfds: *mut fd_set,
870                  __writefds: *mut fd_set, __exceptfds: *mut fd_set,
871                  __timeout: *mut timeval) -> ::std::os::raw::c_int;
872}
873extern "C" {
874    pub fn pselect(__nfds: ::std::os::raw::c_int, __readfds: *mut fd_set,
875                   __writefds: *mut fd_set, __exceptfds: *mut fd_set,
876                   __timeout: *const timespec, __sigmask: *const __sigset_t)
877     -> ::std::os::raw::c_int;
878}
879extern "C" {
880    pub fn gnu_dev_major(__dev: ::std::os::raw::c_ulonglong)
881     -> ::std::os::raw::c_uint;
882}
883extern "C" {
884    pub fn gnu_dev_minor(__dev: ::std::os::raw::c_ulonglong)
885     -> ::std::os::raw::c_uint;
886}
887extern "C" {
888    pub fn gnu_dev_makedev(__major: ::std::os::raw::c_uint,
889                           __minor: ::std::os::raw::c_uint)
890     -> ::std::os::raw::c_ulonglong;
891}
892pub type blksize_t = __blksize_t;
893pub type blkcnt_t = __blkcnt_t;
894pub type fsblkcnt_t = __fsblkcnt_t;
895pub type fsfilcnt_t = __fsfilcnt_t;
896pub type pthread_t = ::std::os::raw::c_ulong;
897#[repr(C)]
898#[derive(Copy)]
899pub struct pthread_attr_t {
900    pub __size: __BindgenUnionField<[::std::os::raw::c_char; 56usize]>,
901    pub __align: __BindgenUnionField<::std::os::raw::c_long>,
902    pub bindgen_union_field: [u64; 7usize],
903}
904#[test]
905fn bindgen_test_layout_pthread_attr_t() {
906    assert_eq!(::std::mem::size_of::<pthread_attr_t>() , 56usize , concat ! (
907               "Size of: " , stringify ! ( pthread_attr_t ) ));
908    assert_eq! (::std::mem::align_of::<pthread_attr_t>() , 8usize , concat ! (
909                "Alignment of " , stringify ! ( pthread_attr_t ) ));
910    assert_eq! (unsafe {
911                & ( * ( 0 as * const pthread_attr_t ) ) . __size as * const _
912                as usize } , 0usize , concat ! (
913                "Alignment of field: " , stringify ! ( pthread_attr_t ) , "::"
914                , stringify ! ( __size ) ));
915    assert_eq! (unsafe {
916                & ( * ( 0 as * const pthread_attr_t ) ) . __align as * const _
917                as usize } , 0usize , concat ! (
918                "Alignment of field: " , stringify ! ( pthread_attr_t ) , "::"
919                , stringify ! ( __align ) ));
920}
921impl Clone for pthread_attr_t {
922    fn clone(&self) -> Self { *self }
923}
924#[repr(C)]
925#[derive(Copy)]
926pub struct __pthread_internal_list {
927    pub __prev: *mut __pthread_internal_list,
928    pub __next: *mut __pthread_internal_list,
929}
930#[test]
931fn bindgen_test_layout___pthread_internal_list() {
932    assert_eq!(::std::mem::size_of::<__pthread_internal_list>() , 16usize ,
933               concat ! (
934               "Size of: " , stringify ! ( __pthread_internal_list ) ));
935    assert_eq! (::std::mem::align_of::<__pthread_internal_list>() , 8usize ,
936                concat ! (
937                "Alignment of " , stringify ! ( __pthread_internal_list ) ));
938    assert_eq! (unsafe {
939                & ( * ( 0 as * const __pthread_internal_list ) ) . __prev as *
940                const _ as usize } , 0usize , concat ! (
941                "Alignment of field: " , stringify ! ( __pthread_internal_list
942                ) , "::" , stringify ! ( __prev ) ));
943    assert_eq! (unsafe {
944                & ( * ( 0 as * const __pthread_internal_list ) ) . __next as *
945                const _ as usize } , 8usize , concat ! (
946                "Alignment of field: " , stringify ! ( __pthread_internal_list
947                ) , "::" , stringify ! ( __next ) ));
948}
949impl Clone for __pthread_internal_list {
950    fn clone(&self) -> Self { *self }
951}
952pub type __pthread_list_t = __pthread_internal_list;
953#[repr(C)]
954#[derive(Copy)]
955pub struct pthread_mutex_t {
956    pub __data: __BindgenUnionField<pthread_mutex_t___pthread_mutex_s>,
957    pub __size: __BindgenUnionField<[::std::os::raw::c_char; 40usize]>,
958    pub __align: __BindgenUnionField<::std::os::raw::c_long>,
959    pub bindgen_union_field: [u64; 5usize],
960}
961#[repr(C)]
962#[derive(Copy)]
963pub struct pthread_mutex_t___pthread_mutex_s {
964    pub __lock: ::std::os::raw::c_int,
965    pub __count: ::std::os::raw::c_uint,
966    pub __owner: ::std::os::raw::c_int,
967    pub __nusers: ::std::os::raw::c_uint,
968    pub __kind: ::std::os::raw::c_int,
969    pub __spins: ::std::os::raw::c_short,
970    pub __elision: ::std::os::raw::c_short,
971    pub __list: __pthread_list_t,
972}
973#[test]
974fn bindgen_test_layout_pthread_mutex_t___pthread_mutex_s() {
975    assert_eq!(::std::mem::size_of::<pthread_mutex_t___pthread_mutex_s>() ,
976               40usize , concat ! (
977               "Size of: " , stringify ! ( pthread_mutex_t___pthread_mutex_s )
978               ));
979    assert_eq! (::std::mem::align_of::<pthread_mutex_t___pthread_mutex_s>() ,
980                8usize , concat ! (
981                "Alignment of " , stringify ! (
982                pthread_mutex_t___pthread_mutex_s ) ));
983    assert_eq! (unsafe {
984                & ( * ( 0 as * const pthread_mutex_t___pthread_mutex_s ) ) .
985                __lock as * const _ as usize } , 0usize , concat ! (
986                "Alignment of field: " , stringify ! (
987                pthread_mutex_t___pthread_mutex_s ) , "::" , stringify ! (
988                __lock ) ));
989    assert_eq! (unsafe {
990                & ( * ( 0 as * const pthread_mutex_t___pthread_mutex_s ) ) .
991                __count as * const _ as usize } , 4usize , concat ! (
992                "Alignment of field: " , stringify ! (
993                pthread_mutex_t___pthread_mutex_s ) , "::" , stringify ! (
994                __count ) ));
995    assert_eq! (unsafe {
996                & ( * ( 0 as * const pthread_mutex_t___pthread_mutex_s ) ) .
997                __owner as * const _ as usize } , 8usize , concat ! (
998                "Alignment of field: " , stringify ! (
999                pthread_mutex_t___pthread_mutex_s ) , "::" , stringify ! (
1000                __owner ) ));
1001    assert_eq! (unsafe {
1002                & ( * ( 0 as * const pthread_mutex_t___pthread_mutex_s ) ) .
1003                __nusers as * const _ as usize } , 12usize , concat ! (
1004                "Alignment of field: " , stringify ! (
1005                pthread_mutex_t___pthread_mutex_s ) , "::" , stringify ! (
1006                __nusers ) ));
1007    assert_eq! (unsafe {
1008                & ( * ( 0 as * const pthread_mutex_t___pthread_mutex_s ) ) .
1009                __kind as * const _ as usize } , 16usize , concat ! (
1010                "Alignment of field: " , stringify ! (
1011                pthread_mutex_t___pthread_mutex_s ) , "::" , stringify ! (
1012                __kind ) ));
1013    assert_eq! (unsafe {
1014                & ( * ( 0 as * const pthread_mutex_t___pthread_mutex_s ) ) .
1015                __spins as * const _ as usize } , 20usize , concat ! (
1016                "Alignment of field: " , stringify ! (
1017                pthread_mutex_t___pthread_mutex_s ) , "::" , stringify ! (
1018                __spins ) ));
1019    assert_eq! (unsafe {
1020                & ( * ( 0 as * const pthread_mutex_t___pthread_mutex_s ) ) .
1021                __elision as * const _ as usize } , 22usize , concat ! (
1022                "Alignment of field: " , stringify ! (
1023                pthread_mutex_t___pthread_mutex_s ) , "::" , stringify ! (
1024                __elision ) ));
1025    assert_eq! (unsafe {
1026                & ( * ( 0 as * const pthread_mutex_t___pthread_mutex_s ) ) .
1027                __list as * const _ as usize } , 24usize , concat ! (
1028                "Alignment of field: " , stringify ! (
1029                pthread_mutex_t___pthread_mutex_s ) , "::" , stringify ! (
1030                __list ) ));
1031}
1032impl Clone for pthread_mutex_t___pthread_mutex_s {
1033    fn clone(&self) -> Self { *self }
1034}
1035#[test]
1036fn bindgen_test_layout_pthread_mutex_t() {
1037    assert_eq!(::std::mem::size_of::<pthread_mutex_t>() , 40usize , concat ! (
1038               "Size of: " , stringify ! ( pthread_mutex_t ) ));
1039    assert_eq! (::std::mem::align_of::<pthread_mutex_t>() , 8usize , concat !
1040                ( "Alignment of " , stringify ! ( pthread_mutex_t ) ));
1041    assert_eq! (unsafe {
1042                & ( * ( 0 as * const pthread_mutex_t ) ) . __data as * const _
1043                as usize } , 0usize , concat ! (
1044                "Alignment of field: " , stringify ! ( pthread_mutex_t ) ,
1045                "::" , stringify ! ( __data ) ));
1046    assert_eq! (unsafe {
1047                & ( * ( 0 as * const pthread_mutex_t ) ) . __size as * const _
1048                as usize } , 0usize , concat ! (
1049                "Alignment of field: " , stringify ! ( pthread_mutex_t ) ,
1050                "::" , stringify ! ( __size ) ));
1051    assert_eq! (unsafe {
1052                & ( * ( 0 as * const pthread_mutex_t ) ) . __align as * const
1053                _ as usize } , 0usize , concat ! (
1054                "Alignment of field: " , stringify ! ( pthread_mutex_t ) ,
1055                "::" , stringify ! ( __align ) ));
1056}
1057impl Clone for pthread_mutex_t {
1058    fn clone(&self) -> Self { *self }
1059}
1060#[repr(C)]
1061#[derive(Copy)]
1062pub struct pthread_mutexattr_t {
1063    pub __size: __BindgenUnionField<[::std::os::raw::c_char; 4usize]>,
1064    pub __align: __BindgenUnionField<::std::os::raw::c_int>,
1065    pub bindgen_union_field: u32,
1066}
1067#[test]
1068fn bindgen_test_layout_pthread_mutexattr_t() {
1069    assert_eq!(::std::mem::size_of::<pthread_mutexattr_t>() , 4usize , concat
1070               ! ( "Size of: " , stringify ! ( pthread_mutexattr_t ) ));
1071    assert_eq! (::std::mem::align_of::<pthread_mutexattr_t>() , 4usize ,
1072                concat ! (
1073                "Alignment of " , stringify ! ( pthread_mutexattr_t ) ));
1074    assert_eq! (unsafe {
1075                & ( * ( 0 as * const pthread_mutexattr_t ) ) . __size as *
1076                const _ as usize } , 0usize , concat ! (
1077                "Alignment of field: " , stringify ! ( pthread_mutexattr_t ) ,
1078                "::" , stringify ! ( __size ) ));
1079    assert_eq! (unsafe {
1080                & ( * ( 0 as * const pthread_mutexattr_t ) ) . __align as *
1081                const _ as usize } , 0usize , concat ! (
1082                "Alignment of field: " , stringify ! ( pthread_mutexattr_t ) ,
1083                "::" , stringify ! ( __align ) ));
1084}
1085impl Clone for pthread_mutexattr_t {
1086    fn clone(&self) -> Self { *self }
1087}
1088#[repr(C)]
1089#[derive(Copy)]
1090pub struct pthread_cond_t {
1091    pub __data: __BindgenUnionField<pthread_cond_t__bindgen_ty_1>,
1092    pub __size: __BindgenUnionField<[::std::os::raw::c_char; 48usize]>,
1093    pub __align: __BindgenUnionField<::std::os::raw::c_longlong>,
1094    pub bindgen_union_field: [u64; 6usize],
1095}
1096#[repr(C)]
1097#[derive(Copy)]
1098pub struct pthread_cond_t__bindgen_ty_1 {
1099    pub __lock: ::std::os::raw::c_int,
1100    pub __futex: ::std::os::raw::c_uint,
1101    pub __total_seq: ::std::os::raw::c_ulonglong,
1102    pub __wakeup_seq: ::std::os::raw::c_ulonglong,
1103    pub __woken_seq: ::std::os::raw::c_ulonglong,
1104    pub __mutex: *mut ::std::os::raw::c_void,
1105    pub __nwaiters: ::std::os::raw::c_uint,
1106    pub __broadcast_seq: ::std::os::raw::c_uint,
1107}
1108#[test]
1109fn bindgen_test_layout_pthread_cond_t__bindgen_ty_1() {
1110    assert_eq!(::std::mem::size_of::<pthread_cond_t__bindgen_ty_1>() , 48usize
1111               , concat ! (
1112               "Size of: " , stringify ! ( pthread_cond_t__bindgen_ty_1 ) ));
1113    assert_eq! (::std::mem::align_of::<pthread_cond_t__bindgen_ty_1>() ,
1114                8usize , concat ! (
1115                "Alignment of " , stringify ! ( pthread_cond_t__bindgen_ty_1 )
1116                ));
1117    assert_eq! (unsafe {
1118                & ( * ( 0 as * const pthread_cond_t__bindgen_ty_1 ) ) . __lock
1119                as * const _ as usize } , 0usize , concat ! (
1120                "Alignment of field: " , stringify ! (
1121                pthread_cond_t__bindgen_ty_1 ) , "::" , stringify ! ( __lock )
1122                ));
1123    assert_eq! (unsafe {
1124                & ( * ( 0 as * const pthread_cond_t__bindgen_ty_1 ) ) .
1125                __futex as * const _ as usize } , 4usize , concat ! (
1126                "Alignment of field: " , stringify ! (
1127                pthread_cond_t__bindgen_ty_1 ) , "::" , stringify ! ( __futex
1128                ) ));
1129    assert_eq! (unsafe {
1130                & ( * ( 0 as * const pthread_cond_t__bindgen_ty_1 ) ) .
1131                __total_seq as * const _ as usize } , 8usize , concat ! (
1132                "Alignment of field: " , stringify ! (
1133                pthread_cond_t__bindgen_ty_1 ) , "::" , stringify ! (
1134                __total_seq ) ));
1135    assert_eq! (unsafe {
1136                & ( * ( 0 as * const pthread_cond_t__bindgen_ty_1 ) ) .
1137                __wakeup_seq as * const _ as usize } , 16usize , concat ! (
1138                "Alignment of field: " , stringify ! (
1139                pthread_cond_t__bindgen_ty_1 ) , "::" , stringify ! (
1140                __wakeup_seq ) ));
1141    assert_eq! (unsafe {
1142                & ( * ( 0 as * const pthread_cond_t__bindgen_ty_1 ) ) .
1143                __woken_seq as * const _ as usize } , 24usize , concat ! (
1144                "Alignment of field: " , stringify ! (
1145                pthread_cond_t__bindgen_ty_1 ) , "::" , stringify ! (
1146                __woken_seq ) ));
1147    assert_eq! (unsafe {
1148                & ( * ( 0 as * const pthread_cond_t__bindgen_ty_1 ) ) .
1149                __mutex as * const _ as usize } , 32usize , concat ! (
1150                "Alignment of field: " , stringify ! (
1151                pthread_cond_t__bindgen_ty_1 ) , "::" , stringify ! ( __mutex
1152                ) ));
1153    assert_eq! (unsafe {
1154                & ( * ( 0 as * const pthread_cond_t__bindgen_ty_1 ) ) .
1155                __nwaiters as * const _ as usize } , 40usize , concat ! (
1156                "Alignment of field: " , stringify ! (
1157                pthread_cond_t__bindgen_ty_1 ) , "::" , stringify ! (
1158                __nwaiters ) ));
1159    assert_eq! (unsafe {
1160                & ( * ( 0 as * const pthread_cond_t__bindgen_ty_1 ) ) .
1161                __broadcast_seq as * const _ as usize } , 44usize , concat ! (
1162                "Alignment of field: " , stringify ! (
1163                pthread_cond_t__bindgen_ty_1 ) , "::" , stringify ! (
1164                __broadcast_seq ) ));
1165}
1166impl Clone for pthread_cond_t__bindgen_ty_1 {
1167    fn clone(&self) -> Self { *self }
1168}
1169#[test]
1170fn bindgen_test_layout_pthread_cond_t() {
1171    assert_eq!(::std::mem::size_of::<pthread_cond_t>() , 48usize , concat ! (
1172               "Size of: " , stringify ! ( pthread_cond_t ) ));
1173    assert_eq! (::std::mem::align_of::<pthread_cond_t>() , 8usize , concat ! (
1174                "Alignment of " , stringify ! ( pthread_cond_t ) ));
1175    assert_eq! (unsafe {
1176                & ( * ( 0 as * const pthread_cond_t ) ) . __data as * const _
1177                as usize } , 0usize , concat ! (
1178                "Alignment of field: " , stringify ! ( pthread_cond_t ) , "::"
1179                , stringify ! ( __data ) ));
1180    assert_eq! (unsafe {
1181                & ( * ( 0 as * const pthread_cond_t ) ) . __size as * const _
1182                as usize } , 0usize , concat ! (
1183                "Alignment of field: " , stringify ! ( pthread_cond_t ) , "::"
1184                , stringify ! ( __size ) ));
1185    assert_eq! (unsafe {
1186                & ( * ( 0 as * const pthread_cond_t ) ) . __align as * const _
1187                as usize } , 0usize , concat ! (
1188                "Alignment of field: " , stringify ! ( pthread_cond_t ) , "::"
1189                , stringify ! ( __align ) ));
1190}
1191impl Clone for pthread_cond_t {
1192    fn clone(&self) -> Self { *self }
1193}
1194#[repr(C)]
1195#[derive(Copy)]
1196pub struct pthread_condattr_t {
1197    pub __size: __BindgenUnionField<[::std::os::raw::c_char; 4usize]>,
1198    pub __align: __BindgenUnionField<::std::os::raw::c_int>,
1199    pub bindgen_union_field: u32,
1200}
1201#[test]
1202fn bindgen_test_layout_pthread_condattr_t() {
1203    assert_eq!(::std::mem::size_of::<pthread_condattr_t>() , 4usize , concat !
1204               ( "Size of: " , stringify ! ( pthread_condattr_t ) ));
1205    assert_eq! (::std::mem::align_of::<pthread_condattr_t>() , 4usize , concat
1206                ! ( "Alignment of " , stringify ! ( pthread_condattr_t ) ));
1207    assert_eq! (unsafe {
1208                & ( * ( 0 as * const pthread_condattr_t ) ) . __size as *
1209                const _ as usize } , 0usize , concat ! (
1210                "Alignment of field: " , stringify ! ( pthread_condattr_t ) ,
1211                "::" , stringify ! ( __size ) ));
1212    assert_eq! (unsafe {
1213                & ( * ( 0 as * const pthread_condattr_t ) ) . __align as *
1214                const _ as usize } , 0usize , concat ! (
1215                "Alignment of field: " , stringify ! ( pthread_condattr_t ) ,
1216                "::" , stringify ! ( __align ) ));
1217}
1218impl Clone for pthread_condattr_t {
1219    fn clone(&self) -> Self { *self }
1220}
1221pub type pthread_key_t = ::std::os::raw::c_uint;
1222pub type pthread_once_t = ::std::os::raw::c_int;
1223#[repr(C)]
1224#[derive(Copy)]
1225pub struct pthread_rwlock_t {
1226    pub __data: __BindgenUnionField<pthread_rwlock_t__bindgen_ty_1>,
1227    pub __size: __BindgenUnionField<[::std::os::raw::c_char; 56usize]>,
1228    pub __align: __BindgenUnionField<::std::os::raw::c_long>,
1229    pub bindgen_union_field: [u64; 7usize],
1230}
1231#[repr(C)]
1232#[derive(Copy)]
1233pub struct pthread_rwlock_t__bindgen_ty_1 {
1234    pub __lock: ::std::os::raw::c_int,
1235    pub __nr_readers: ::std::os::raw::c_uint,
1236    pub __readers_wakeup: ::std::os::raw::c_uint,
1237    pub __writer_wakeup: ::std::os::raw::c_uint,
1238    pub __nr_readers_queued: ::std::os::raw::c_uint,
1239    pub __nr_writers_queued: ::std::os::raw::c_uint,
1240    pub __writer: ::std::os::raw::c_int,
1241    pub __shared: ::std::os::raw::c_int,
1242    pub __rwelision: ::std::os::raw::c_schar,
1243    pub __pad1: [::std::os::raw::c_uchar; 7usize],
1244    pub __pad2: ::std::os::raw::c_ulong,
1245    pub __flags: ::std::os::raw::c_uint,
1246}
1247#[test]
1248fn bindgen_test_layout_pthread_rwlock_t__bindgen_ty_1() {
1249    assert_eq!(::std::mem::size_of::<pthread_rwlock_t__bindgen_ty_1>() ,
1250               56usize , concat ! (
1251               "Size of: " , stringify ! ( pthread_rwlock_t__bindgen_ty_1 )
1252               ));
1253    assert_eq! (::std::mem::align_of::<pthread_rwlock_t__bindgen_ty_1>() ,
1254                8usize , concat ! (
1255                "Alignment of " , stringify ! ( pthread_rwlock_t__bindgen_ty_1
1256                ) ));
1257    assert_eq! (unsafe {
1258                & ( * ( 0 as * const pthread_rwlock_t__bindgen_ty_1 ) ) .
1259                __lock as * const _ as usize } , 0usize , concat ! (
1260                "Alignment of field: " , stringify ! (
1261                pthread_rwlock_t__bindgen_ty_1 ) , "::" , stringify ! ( __lock
1262                ) ));
1263    assert_eq! (unsafe {
1264                & ( * ( 0 as * const pthread_rwlock_t__bindgen_ty_1 ) ) .
1265                __nr_readers as * const _ as usize } , 4usize , concat ! (
1266                "Alignment of field: " , stringify ! (
1267                pthread_rwlock_t__bindgen_ty_1 ) , "::" , stringify ! (
1268                __nr_readers ) ));
1269    assert_eq! (unsafe {
1270                & ( * ( 0 as * const pthread_rwlock_t__bindgen_ty_1 ) ) .
1271                __readers_wakeup as * const _ as usize } , 8usize , concat ! (
1272                "Alignment of field: " , stringify ! (
1273                pthread_rwlock_t__bindgen_ty_1 ) , "::" , stringify ! (
1274                __readers_wakeup ) ));
1275    assert_eq! (unsafe {
1276                & ( * ( 0 as * const pthread_rwlock_t__bindgen_ty_1 ) ) .
1277                __writer_wakeup as * const _ as usize } , 12usize , concat ! (
1278                "Alignment of field: " , stringify ! (
1279                pthread_rwlock_t__bindgen_ty_1 ) , "::" , stringify ! (
1280                __writer_wakeup ) ));
1281    assert_eq! (unsafe {
1282                & ( * ( 0 as * const pthread_rwlock_t__bindgen_ty_1 ) ) .
1283                __nr_readers_queued as * const _ as usize } , 16usize , concat
1284                ! (
1285                "Alignment of field: " , stringify ! (
1286                pthread_rwlock_t__bindgen_ty_1 ) , "::" , stringify ! (
1287                __nr_readers_queued ) ));
1288    assert_eq! (unsafe {
1289                & ( * ( 0 as * const pthread_rwlock_t__bindgen_ty_1 ) ) .
1290                __nr_writers_queued as * const _ as usize } , 20usize , concat
1291                ! (
1292                "Alignment of field: " , stringify ! (
1293                pthread_rwlock_t__bindgen_ty_1 ) , "::" , stringify ! (
1294                __nr_writers_queued ) ));
1295    assert_eq! (unsafe {
1296                & ( * ( 0 as * const pthread_rwlock_t__bindgen_ty_1 ) ) .
1297                __writer as * const _ as usize } , 24usize , concat ! (
1298                "Alignment of field: " , stringify ! (
1299                pthread_rwlock_t__bindgen_ty_1 ) , "::" , stringify ! (
1300                __writer ) ));
1301    assert_eq! (unsafe {
1302                & ( * ( 0 as * const pthread_rwlock_t__bindgen_ty_1 ) ) .
1303                __shared as * const _ as usize } , 28usize , concat ! (
1304                "Alignment of field: " , stringify ! (
1305                pthread_rwlock_t__bindgen_ty_1 ) , "::" , stringify ! (
1306                __shared ) ));
1307    assert_eq! (unsafe {
1308                & ( * ( 0 as * const pthread_rwlock_t__bindgen_ty_1 ) ) .
1309                __rwelision as * const _ as usize } , 32usize , concat ! (
1310                "Alignment of field: " , stringify ! (
1311                pthread_rwlock_t__bindgen_ty_1 ) , "::" , stringify ! (
1312                __rwelision ) ));
1313    assert_eq! (unsafe {
1314                & ( * ( 0 as * const pthread_rwlock_t__bindgen_ty_1 ) ) .
1315                __pad1 as * const _ as usize } , 33usize , concat ! (
1316                "Alignment of field: " , stringify ! (
1317                pthread_rwlock_t__bindgen_ty_1 ) , "::" , stringify ! ( __pad1
1318                ) ));
1319    assert_eq! (unsafe {
1320                & ( * ( 0 as * const pthread_rwlock_t__bindgen_ty_1 ) ) .
1321                __pad2 as * const _ as usize } , 40usize , concat ! (
1322                "Alignment of field: " , stringify ! (
1323                pthread_rwlock_t__bindgen_ty_1 ) , "::" , stringify ! ( __pad2
1324                ) ));
1325    assert_eq! (unsafe {
1326                & ( * ( 0 as * const pthread_rwlock_t__bindgen_ty_1 ) ) .
1327                __flags as * const _ as usize } , 48usize , concat ! (
1328                "Alignment of field: " , stringify ! (
1329                pthread_rwlock_t__bindgen_ty_1 ) , "::" , stringify ! (
1330                __flags ) ));
1331}
1332impl Clone for pthread_rwlock_t__bindgen_ty_1 {
1333    fn clone(&self) -> Self { *self }
1334}
1335#[test]
1336fn bindgen_test_layout_pthread_rwlock_t() {
1337    assert_eq!(::std::mem::size_of::<pthread_rwlock_t>() , 56usize , concat !
1338               ( "Size of: " , stringify ! ( pthread_rwlock_t ) ));
1339    assert_eq! (::std::mem::align_of::<pthread_rwlock_t>() , 8usize , concat !
1340                ( "Alignment of " , stringify ! ( pthread_rwlock_t ) ));
1341    assert_eq! (unsafe {
1342                & ( * ( 0 as * const pthread_rwlock_t ) ) . __data as * const
1343                _ as usize } , 0usize , concat ! (
1344                "Alignment of field: " , stringify ! ( pthread_rwlock_t ) ,
1345                "::" , stringify ! ( __data ) ));
1346    assert_eq! (unsafe {
1347                & ( * ( 0 as * const pthread_rwlock_t ) ) . __size as * const
1348                _ as usize } , 0usize , concat ! (
1349                "Alignment of field: " , stringify ! ( pthread_rwlock_t ) ,
1350                "::" , stringify ! ( __size ) ));
1351    assert_eq! (unsafe {
1352                & ( * ( 0 as * const pthread_rwlock_t ) ) . __align as * const
1353                _ as usize } , 0usize , concat ! (
1354                "Alignment of field: " , stringify ! ( pthread_rwlock_t ) ,
1355                "::" , stringify ! ( __align ) ));
1356}
1357impl Clone for pthread_rwlock_t {
1358    fn clone(&self) -> Self { *self }
1359}
1360#[repr(C)]
1361#[derive(Copy)]
1362pub struct pthread_rwlockattr_t {
1363    pub __size: __BindgenUnionField<[::std::os::raw::c_char; 8usize]>,
1364    pub __align: __BindgenUnionField<::std::os::raw::c_long>,
1365    pub bindgen_union_field: u64,
1366}
1367#[test]
1368fn bindgen_test_layout_pthread_rwlockattr_t() {
1369    assert_eq!(::std::mem::size_of::<pthread_rwlockattr_t>() , 8usize , concat
1370               ! ( "Size of: " , stringify ! ( pthread_rwlockattr_t ) ));
1371    assert_eq! (::std::mem::align_of::<pthread_rwlockattr_t>() , 8usize ,
1372                concat ! (
1373                "Alignment of " , stringify ! ( pthread_rwlockattr_t ) ));
1374    assert_eq! (unsafe {
1375                & ( * ( 0 as * const pthread_rwlockattr_t ) ) . __size as *
1376                const _ as usize } , 0usize , concat ! (
1377                "Alignment of field: " , stringify ! ( pthread_rwlockattr_t )
1378                , "::" , stringify ! ( __size ) ));
1379    assert_eq! (unsafe {
1380                & ( * ( 0 as * const pthread_rwlockattr_t ) ) . __align as *
1381                const _ as usize } , 0usize , concat ! (
1382                "Alignment of field: " , stringify ! ( pthread_rwlockattr_t )
1383                , "::" , stringify ! ( __align ) ));
1384}
1385impl Clone for pthread_rwlockattr_t {
1386    fn clone(&self) -> Self { *self }
1387}
1388pub type pthread_spinlock_t = ::std::os::raw::c_int;
1389#[repr(C)]
1390#[derive(Copy)]
1391pub struct pthread_barrier_t {
1392    pub __size: __BindgenUnionField<[::std::os::raw::c_char; 32usize]>,
1393    pub __align: __BindgenUnionField<::std::os::raw::c_long>,
1394    pub bindgen_union_field: [u64; 4usize],
1395}
1396#[test]
1397fn bindgen_test_layout_pthread_barrier_t() {
1398    assert_eq!(::std::mem::size_of::<pthread_barrier_t>() , 32usize , concat !
1399               ( "Size of: " , stringify ! ( pthread_barrier_t ) ));
1400    assert_eq! (::std::mem::align_of::<pthread_barrier_t>() , 8usize , concat
1401                ! ( "Alignment of " , stringify ! ( pthread_barrier_t ) ));
1402    assert_eq! (unsafe {
1403                & ( * ( 0 as * const pthread_barrier_t ) ) . __size as * const
1404                _ as usize } , 0usize , concat ! (
1405                "Alignment of field: " , stringify ! ( pthread_barrier_t ) ,
1406                "::" , stringify ! ( __size ) ));
1407    assert_eq! (unsafe {
1408                & ( * ( 0 as * const pthread_barrier_t ) ) . __align as *
1409                const _ as usize } , 0usize , concat ! (
1410                "Alignment of field: " , stringify ! ( pthread_barrier_t ) ,
1411                "::" , stringify ! ( __align ) ));
1412}
1413impl Clone for pthread_barrier_t {
1414    fn clone(&self) -> Self { *self }
1415}
1416#[repr(C)]
1417#[derive(Copy)]
1418pub struct pthread_barrierattr_t {
1419    pub __size: __BindgenUnionField<[::std::os::raw::c_char; 4usize]>,
1420    pub __align: __BindgenUnionField<::std::os::raw::c_int>,
1421    pub bindgen_union_field: u32,
1422}
1423#[test]
1424fn bindgen_test_layout_pthread_barrierattr_t() {
1425    assert_eq!(::std::mem::size_of::<pthread_barrierattr_t>() , 4usize ,
1426               concat ! ( "Size of: " , stringify ! ( pthread_barrierattr_t )
1427               ));
1428    assert_eq! (::std::mem::align_of::<pthread_barrierattr_t>() , 4usize ,
1429                concat ! (
1430                "Alignment of " , stringify ! ( pthread_barrierattr_t ) ));
1431    assert_eq! (unsafe {
1432                & ( * ( 0 as * const pthread_barrierattr_t ) ) . __size as *
1433                const _ as usize } , 0usize , concat ! (
1434                "Alignment of field: " , stringify ! ( pthread_barrierattr_t )
1435                , "::" , stringify ! ( __size ) ));
1436    assert_eq! (unsafe {
1437                & ( * ( 0 as * const pthread_barrierattr_t ) ) . __align as *
1438                const _ as usize } , 0usize , concat ! (
1439                "Alignment of field: " , stringify ! ( pthread_barrierattr_t )
1440                , "::" , stringify ! ( __align ) ));
1441}
1442impl Clone for pthread_barrierattr_t {
1443    fn clone(&self) -> Self { *self }
1444}
1445extern "C" {
1446    pub fn random() -> ::std::os::raw::c_long;
1447}
1448extern "C" {
1449    pub fn srandom(__seed: ::std::os::raw::c_uint);
1450}
1451extern "C" {
1452    pub fn initstate(__seed: ::std::os::raw::c_uint,
1453                     __statebuf: *mut ::std::os::raw::c_char,
1454                     __statelen: usize) -> *mut ::std::os::raw::c_char;
1455}
1456extern "C" {
1457    pub fn setstate(__statebuf: *mut ::std::os::raw::c_char)
1458     -> *mut ::std::os::raw::c_char;
1459}
1460#[repr(C)]
1461#[derive(Copy)]
1462pub struct random_data {
1463    pub fptr: *mut i32,
1464    pub rptr: *mut i32,
1465    pub state: *mut i32,
1466    pub rand_type: ::std::os::raw::c_int,
1467    pub rand_deg: ::std::os::raw::c_int,
1468    pub rand_sep: ::std::os::raw::c_int,
1469    pub end_ptr: *mut i32,
1470}
1471#[test]
1472fn bindgen_test_layout_random_data() {
1473    assert_eq!(::std::mem::size_of::<random_data>() , 48usize , concat ! (
1474               "Size of: " , stringify ! ( random_data ) ));
1475    assert_eq! (::std::mem::align_of::<random_data>() , 8usize , concat ! (
1476                "Alignment of " , stringify ! ( random_data ) ));
1477    assert_eq! (unsafe {
1478                & ( * ( 0 as * const random_data ) ) . fptr as * const _ as
1479                usize } , 0usize , concat ! (
1480                "Alignment of field: " , stringify ! ( random_data ) , "::" ,
1481                stringify ! ( fptr ) ));
1482    assert_eq! (unsafe {
1483                & ( * ( 0 as * const random_data ) ) . rptr as * const _ as
1484                usize } , 8usize , concat ! (
1485                "Alignment of field: " , stringify ! ( random_data ) , "::" ,
1486                stringify ! ( rptr ) ));
1487    assert_eq! (unsafe {
1488                & ( * ( 0 as * const random_data ) ) . state as * const _ as
1489                usize } , 16usize , concat ! (
1490                "Alignment of field: " , stringify ! ( random_data ) , "::" ,
1491                stringify ! ( state ) ));
1492    assert_eq! (unsafe {
1493                & ( * ( 0 as * const random_data ) ) . rand_type as * const _
1494                as usize } , 24usize , concat ! (
1495                "Alignment of field: " , stringify ! ( random_data ) , "::" ,
1496                stringify ! ( rand_type ) ));
1497    assert_eq! (unsafe {
1498                & ( * ( 0 as * const random_data ) ) . rand_deg as * const _
1499                as usize } , 28usize , concat ! (
1500                "Alignment of field: " , stringify ! ( random_data ) , "::" ,
1501                stringify ! ( rand_deg ) ));
1502    assert_eq! (unsafe {
1503                & ( * ( 0 as * const random_data ) ) . rand_sep as * const _
1504                as usize } , 32usize , concat ! (
1505                "Alignment of field: " , stringify ! ( random_data ) , "::" ,
1506                stringify ! ( rand_sep ) ));
1507    assert_eq! (unsafe {
1508                & ( * ( 0 as * const random_data ) ) . end_ptr as * const _ as
1509                usize } , 40usize , concat ! (
1510                "Alignment of field: " , stringify ! ( random_data ) , "::" ,
1511                stringify ! ( end_ptr ) ));
1512}
1513impl Clone for random_data {
1514    fn clone(&self) -> Self { *self }
1515}
1516extern "C" {
1517    pub fn random_r(__buf: *mut random_data, __result: *mut i32)
1518     -> ::std::os::raw::c_int;
1519}
1520extern "C" {
1521    pub fn srandom_r(__seed: ::std::os::raw::c_uint, __buf: *mut random_data)
1522     -> ::std::os::raw::c_int;
1523}
1524extern "C" {
1525    pub fn initstate_r(__seed: ::std::os::raw::c_uint,
1526                       __statebuf: *mut ::std::os::raw::c_char,
1527                       __statelen: usize, __buf: *mut random_data)
1528     -> ::std::os::raw::c_int;
1529}
1530extern "C" {
1531    pub fn setstate_r(__statebuf: *mut ::std::os::raw::c_char,
1532                      __buf: *mut random_data) -> ::std::os::raw::c_int;
1533}
1534extern "C" {
1535    pub fn rand() -> ::std::os::raw::c_int;
1536}
1537extern "C" {
1538    pub fn srand(__seed: ::std::os::raw::c_uint);
1539}
1540extern "C" {
1541    pub fn rand_r(__seed: *mut ::std::os::raw::c_uint)
1542     -> ::std::os::raw::c_int;
1543}
1544extern "C" {
1545    pub fn drand48() -> f64;
1546}
1547extern "C" {
1548    pub fn erand48(__xsubi: *mut ::std::os::raw::c_ushort) -> f64;
1549}
1550extern "C" {
1551    pub fn lrand48() -> ::std::os::raw::c_long;
1552}
1553extern "C" {
1554    pub fn nrand48(__xsubi: *mut ::std::os::raw::c_ushort)
1555     -> ::std::os::raw::c_long;
1556}
1557extern "C" {
1558    pub fn mrand48() -> ::std::os::raw::c_long;
1559}
1560extern "C" {
1561    pub fn jrand48(__xsubi: *mut ::std::os::raw::c_ushort)
1562     -> ::std::os::raw::c_long;
1563}
1564extern "C" {
1565    pub fn srand48(__seedval: ::std::os::raw::c_long);
1566}
1567extern "C" {
1568    pub fn seed48(__seed16v: *mut ::std::os::raw::c_ushort)
1569     -> *mut ::std::os::raw::c_ushort;
1570}
1571extern "C" {
1572    pub fn lcong48(__param: *mut ::std::os::raw::c_ushort);
1573}
1574#[repr(C)]
1575#[derive(Copy)]
1576pub struct drand48_data {
1577    pub __x: [::std::os::raw::c_ushort; 3usize],
1578    pub __old_x: [::std::os::raw::c_ushort; 3usize],
1579    pub __c: ::std::os::raw::c_ushort,
1580    pub __init: ::std::os::raw::c_ushort,
1581    pub __a: ::std::os::raw::c_ulonglong,
1582}
1583#[test]
1584fn bindgen_test_layout_drand48_data() {
1585    assert_eq!(::std::mem::size_of::<drand48_data>() , 24usize , concat ! (
1586               "Size of: " , stringify ! ( drand48_data ) ));
1587    assert_eq! (::std::mem::align_of::<drand48_data>() , 8usize , concat ! (
1588                "Alignment of " , stringify ! ( drand48_data ) ));
1589    assert_eq! (unsafe {
1590                & ( * ( 0 as * const drand48_data ) ) . __x as * const _ as
1591                usize } , 0usize , concat ! (
1592                "Alignment of field: " , stringify ! ( drand48_data ) , "::" ,
1593                stringify ! ( __x ) ));
1594    assert_eq! (unsafe {
1595                & ( * ( 0 as * const drand48_data ) ) . __old_x as * const _
1596                as usize } , 6usize , concat ! (
1597                "Alignment of field: " , stringify ! ( drand48_data ) , "::" ,
1598                stringify ! ( __old_x ) ));
1599    assert_eq! (unsafe {
1600                & ( * ( 0 as * const drand48_data ) ) . __c as * const _ as
1601                usize } , 12usize , concat ! (
1602                "Alignment of field: " , stringify ! ( drand48_data ) , "::" ,
1603                stringify ! ( __c ) ));
1604    assert_eq! (unsafe {
1605                & ( * ( 0 as * const drand48_data ) ) . __init as * const _ as
1606                usize } , 14usize , concat ! (
1607                "Alignment of field: " , stringify ! ( drand48_data ) , "::" ,
1608                stringify ! ( __init ) ));
1609    assert_eq! (unsafe {
1610                & ( * ( 0 as * const drand48_data ) ) . __a as * const _ as
1611                usize } , 16usize , concat ! (
1612                "Alignment of field: " , stringify ! ( drand48_data ) , "::" ,
1613                stringify ! ( __a ) ));
1614}
1615impl Clone for drand48_data {
1616    fn clone(&self) -> Self { *self }
1617}
1618extern "C" {
1619    pub fn drand48_r(__buffer: *mut drand48_data, __result: *mut f64)
1620     -> ::std::os::raw::c_int;
1621}
1622extern "C" {
1623    pub fn erand48_r(__xsubi: *mut ::std::os::raw::c_ushort,
1624                     __buffer: *mut drand48_data, __result: *mut f64)
1625     -> ::std::os::raw::c_int;
1626}
1627extern "C" {
1628    pub fn lrand48_r(__buffer: *mut drand48_data,
1629                     __result: *mut ::std::os::raw::c_long)
1630     -> ::std::os::raw::c_int;
1631}
1632extern "C" {
1633    pub fn nrand48_r(__xsubi: *mut ::std::os::raw::c_ushort,
1634                     __buffer: *mut drand48_data,
1635                     __result: *mut ::std::os::raw::c_long)
1636     -> ::std::os::raw::c_int;
1637}
1638extern "C" {
1639    pub fn mrand48_r(__buffer: *mut drand48_data,
1640                     __result: *mut ::std::os::raw::c_long)
1641     -> ::std::os::raw::c_int;
1642}
1643extern "C" {
1644    pub fn jrand48_r(__xsubi: *mut ::std::os::raw::c_ushort,
1645                     __buffer: *mut drand48_data,
1646                     __result: *mut ::std::os::raw::c_long)
1647     -> ::std::os::raw::c_int;
1648}
1649extern "C" {
1650    pub fn srand48_r(__seedval: ::std::os::raw::c_long,
1651                     __buffer: *mut drand48_data) -> ::std::os::raw::c_int;
1652}
1653extern "C" {
1654    pub fn seed48_r(__seed16v: *mut ::std::os::raw::c_ushort,
1655                    __buffer: *mut drand48_data) -> ::std::os::raw::c_int;
1656}
1657extern "C" {
1658    pub fn lcong48_r(__param: *mut ::std::os::raw::c_ushort,
1659                     __buffer: *mut drand48_data) -> ::std::os::raw::c_int;
1660}
1661extern "C" {
1662    pub fn malloc(__size: usize) -> *mut ::std::os::raw::c_void;
1663}
1664extern "C" {
1665    pub fn calloc(__nmemb: usize, __size: usize)
1666     -> *mut ::std::os::raw::c_void;
1667}
1668extern "C" {
1669    pub fn realloc(__ptr: *mut ::std::os::raw::c_void, __size: usize)
1670     -> *mut ::std::os::raw::c_void;
1671}
1672extern "C" {
1673    pub fn free(__ptr: *mut ::std::os::raw::c_void);
1674}
1675extern "C" {
1676    pub fn cfree(__ptr: *mut ::std::os::raw::c_void);
1677}
1678extern "C" {
1679    pub fn alloca(__size: usize) -> *mut ::std::os::raw::c_void;
1680}
1681extern "C" {
1682    pub fn valloc(__size: usize) -> *mut ::std::os::raw::c_void;
1683}
1684extern "C" {
1685    pub fn posix_memalign(__memptr: *mut *mut ::std::os::raw::c_void,
1686                          __alignment: usize, __size: usize)
1687     -> ::std::os::raw::c_int;
1688}
1689extern "C" {
1690    pub fn aligned_alloc(__alignment: usize, __size: usize)
1691     -> *mut ::std::os::raw::c_void;
1692}
1693extern "C" {
1694    pub fn abort();
1695}
1696extern "C" {
1697    pub fn atexit(__func: ::std::option::Option<unsafe extern "C" fn()>)
1698     -> ::std::os::raw::c_int;
1699}
1700extern "C" {
1701    pub fn at_quick_exit(__func:
1702                             ::std::option::Option<unsafe extern "C" fn()>)
1703     -> ::std::os::raw::c_int;
1704}
1705extern "C" {
1706    pub fn on_exit(__func:
1707                       ::std::option::Option<unsafe extern "C" fn(__status:
1708                                                                      ::std::os::raw::c_int,
1709                                                                  __arg:
1710                                                                      *mut ::std::os::raw::c_void)>,
1711                   __arg: *mut ::std::os::raw::c_void)
1712     -> ::std::os::raw::c_int;
1713}
1714extern "C" {
1715    pub fn exit(__status: ::std::os::raw::c_int);
1716}
1717extern "C" {
1718    pub fn quick_exit(__status: ::std::os::raw::c_int);
1719}
1720extern "C" {
1721    pub fn _Exit(__status: ::std::os::raw::c_int);
1722}
1723extern "C" {
1724    pub fn getenv(__name: *const ::std::os::raw::c_char)
1725     -> *mut ::std::os::raw::c_char;
1726}
1727extern "C" {
1728    pub fn putenv(__string: *mut ::std::os::raw::c_char)
1729     -> ::std::os::raw::c_int;
1730}
1731extern "C" {
1732    pub fn setenv(__name: *const ::std::os::raw::c_char,
1733                  __value: *const ::std::os::raw::c_char,
1734                  __replace: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
1735}
1736extern "C" {
1737    pub fn unsetenv(__name: *const ::std::os::raw::c_char)
1738     -> ::std::os::raw::c_int;
1739}
1740extern "C" {
1741    pub fn clearenv() -> ::std::os::raw::c_int;
1742}
1743extern "C" {
1744    pub fn mktemp(__template: *mut ::std::os::raw::c_char)
1745     -> *mut ::std::os::raw::c_char;
1746}
1747extern "C" {
1748    pub fn mkstemp(__template: *mut ::std::os::raw::c_char)
1749     -> ::std::os::raw::c_int;
1750}
1751extern "C" {
1752    pub fn mkstemps(__template: *mut ::std::os::raw::c_char,
1753                    __suffixlen: ::std::os::raw::c_int)
1754     -> ::std::os::raw::c_int;
1755}
1756extern "C" {
1757    pub fn mkdtemp(__template: *mut ::std::os::raw::c_char)
1758     -> *mut ::std::os::raw::c_char;
1759}
1760extern "C" {
1761    pub fn system(__command: *const ::std::os::raw::c_char)
1762     -> ::std::os::raw::c_int;
1763}
1764extern "C" {
1765    pub fn realpath(__name: *const ::std::os::raw::c_char,
1766                    __resolved: *mut ::std::os::raw::c_char)
1767     -> *mut ::std::os::raw::c_char;
1768}
1769pub type __compar_fn_t =
1770    ::std::option::Option<unsafe extern "C" fn(arg1:
1771                                                   *const ::std::os::raw::c_void,
1772                                               arg2:
1773                                                   *const ::std::os::raw::c_void)
1774                              -> ::std::os::raw::c_int>;
1775extern "C" {
1776    pub fn bsearch(__key: *const ::std::os::raw::c_void,
1777                   __base: *const ::std::os::raw::c_void, __nmemb: usize,
1778                   __size: usize, __compar: __compar_fn_t)
1779     -> *mut ::std::os::raw::c_void;
1780}
1781extern "C" {
1782    pub fn qsort(__base: *mut ::std::os::raw::c_void, __nmemb: usize,
1783                 __size: usize, __compar: __compar_fn_t);
1784}
1785extern "C" {
1786    pub fn abs(__x: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
1787}
1788extern "C" {
1789    pub fn labs(__x: ::std::os::raw::c_long) -> ::std::os::raw::c_long;
1790}
1791extern "C" {
1792    pub fn llabs(__x: ::std::os::raw::c_longlong)
1793     -> ::std::os::raw::c_longlong;
1794}
1795extern "C" {
1796    pub fn div(__numer: ::std::os::raw::c_int, __denom: ::std::os::raw::c_int)
1797     -> div_t;
1798}
1799extern "C" {
1800    pub fn ldiv(__numer: ::std::os::raw::c_long,
1801                __denom: ::std::os::raw::c_long) -> ldiv_t;
1802}
1803extern "C" {
1804    pub fn lldiv(__numer: ::std::os::raw::c_longlong,
1805                 __denom: ::std::os::raw::c_longlong) -> lldiv_t;
1806}
1807extern "C" {
1808    pub fn ecvt(__value: f64, __ndigit: ::std::os::raw::c_int,
1809                __decpt: *mut ::std::os::raw::c_int,
1810                __sign: *mut ::std::os::raw::c_int)
1811     -> *mut ::std::os::raw::c_char;
1812}
1813extern "C" {
1814    pub fn fcvt(__value: f64, __ndigit: ::std::os::raw::c_int,
1815                __decpt: *mut ::std::os::raw::c_int,
1816                __sign: *mut ::std::os::raw::c_int)
1817     -> *mut ::std::os::raw::c_char;
1818}
1819extern "C" {
1820    pub fn gcvt(__value: f64, __ndigit: ::std::os::raw::c_int,
1821                __buf: *mut ::std::os::raw::c_char)
1822     -> *mut ::std::os::raw::c_char;
1823}
1824extern "C" {
1825    pub fn qecvt(__value: f64, __ndigit: ::std::os::raw::c_int,
1826                 __decpt: *mut ::std::os::raw::c_int,
1827                 __sign: *mut ::std::os::raw::c_int)
1828     -> *mut ::std::os::raw::c_char;
1829}
1830extern "C" {
1831    pub fn qfcvt(__value: f64, __ndigit: ::std::os::raw::c_int,
1832                 __decpt: *mut ::std::os::raw::c_int,
1833                 __sign: *mut ::std::os::raw::c_int)
1834     -> *mut ::std::os::raw::c_char;
1835}
1836extern "C" {
1837    pub fn qgcvt(__value: f64, __ndigit: ::std::os::raw::c_int,
1838                 __buf: *mut ::std::os::raw::c_char)
1839     -> *mut ::std::os::raw::c_char;
1840}
1841extern "C" {
1842    pub fn ecvt_r(__value: f64, __ndigit: ::std::os::raw::c_int,
1843                  __decpt: *mut ::std::os::raw::c_int,
1844                  __sign: *mut ::std::os::raw::c_int,
1845                  __buf: *mut ::std::os::raw::c_char, __len: usize)
1846     -> ::std::os::raw::c_int;
1847}
1848extern "C" {
1849    pub fn fcvt_r(__value: f64, __ndigit: ::std::os::raw::c_int,
1850                  __decpt: *mut ::std::os::raw::c_int,
1851                  __sign: *mut ::std::os::raw::c_int,
1852                  __buf: *mut ::std::os::raw::c_char, __len: usize)
1853     -> ::std::os::raw::c_int;
1854}
1855extern "C" {
1856    pub fn qecvt_r(__value: f64, __ndigit: ::std::os::raw::c_int,
1857                   __decpt: *mut ::std::os::raw::c_int,
1858                   __sign: *mut ::std::os::raw::c_int,
1859                   __buf: *mut ::std::os::raw::c_char, __len: usize)
1860     -> ::std::os::raw::c_int;
1861}
1862extern "C" {
1863    pub fn qfcvt_r(__value: f64, __ndigit: ::std::os::raw::c_int,
1864                   __decpt: *mut ::std::os::raw::c_int,
1865                   __sign: *mut ::std::os::raw::c_int,
1866                   __buf: *mut ::std::os::raw::c_char, __len: usize)
1867     -> ::std::os::raw::c_int;
1868}
1869extern "C" {
1870    pub fn mblen(__s: *const ::std::os::raw::c_char, __n: usize)
1871     -> ::std::os::raw::c_int;
1872}
1873extern "C" {
1874    pub fn mbtowc(__pwc: *mut wchar_t, __s: *const ::std::os::raw::c_char,
1875                  __n: usize) -> ::std::os::raw::c_int;
1876}
1877extern "C" {
1878    pub fn wctomb(__s: *mut ::std::os::raw::c_char, __wchar: wchar_t)
1879     -> ::std::os::raw::c_int;
1880}
1881extern "C" {
1882    pub fn mbstowcs(__pwcs: *mut wchar_t, __s: *const ::std::os::raw::c_char,
1883                    __n: usize) -> usize;
1884}
1885extern "C" {
1886    pub fn wcstombs(__s: *mut ::std::os::raw::c_char, __pwcs: *const wchar_t,
1887                    __n: usize) -> usize;
1888}
1889extern "C" {
1890    pub fn rpmatch(__response: *const ::std::os::raw::c_char)
1891     -> ::std::os::raw::c_int;
1892}
1893extern "C" {
1894    pub fn getsubopt(__optionp: *mut *mut ::std::os::raw::c_char,
1895                     __tokens: *const *const ::std::os::raw::c_char,
1896                     __valuep: *mut *mut ::std::os::raw::c_char)
1897     -> ::std::os::raw::c_int;
1898}
1899extern "C" {
1900    pub fn getloadavg(__loadavg: *mut f64, __nelem: ::std::os::raw::c_int)
1901     -> ::std::os::raw::c_int;
1902}
1903#[repr(C)]
1904#[derive(Copy)]
1905pub struct _IO_FILE {
1906    pub _flags: ::std::os::raw::c_int,
1907    pub _IO_read_ptr: *mut ::std::os::raw::c_char,
1908    pub _IO_read_end: *mut ::std::os::raw::c_char,
1909    pub _IO_read_base: *mut ::std::os::raw::c_char,
1910    pub _IO_write_base: *mut ::std::os::raw::c_char,
1911    pub _IO_write_ptr: *mut ::std::os::raw::c_char,
1912    pub _IO_write_end: *mut ::std::os::raw::c_char,
1913    pub _IO_buf_base: *mut ::std::os::raw::c_char,
1914    pub _IO_buf_end: *mut ::std::os::raw::c_char,
1915    pub _IO_save_base: *mut ::std::os::raw::c_char,
1916    pub _IO_backup_base: *mut ::std::os::raw::c_char,
1917    pub _IO_save_end: *mut ::std::os::raw::c_char,
1918    pub _markers: *mut _IO_marker,
1919    pub _chain: *mut _IO_FILE,
1920    pub _fileno: ::std::os::raw::c_int,
1921    pub _flags2: ::std::os::raw::c_int,
1922    pub _old_offset: __off_t,
1923    pub _cur_column: ::std::os::raw::c_ushort,
1924    pub _vtable_offset: ::std::os::raw::c_schar,
1925    pub _shortbuf: [::std::os::raw::c_char; 1usize],
1926    pub _lock: *mut _IO_lock_t,
1927    pub _offset: __off64_t,
1928    pub __pad1: *mut ::std::os::raw::c_void,
1929    pub __pad2: *mut ::std::os::raw::c_void,
1930    pub __pad3: *mut ::std::os::raw::c_void,
1931    pub __pad4: *mut ::std::os::raw::c_void,
1932    pub __pad5: usize,
1933    pub _mode: ::std::os::raw::c_int,
1934    pub _unused2: [::std::os::raw::c_char; 20usize],
1935}
1936#[test]
1937fn bindgen_test_layout__IO_FILE() {
1938    assert_eq!(::std::mem::size_of::<_IO_FILE>() , 216usize , concat ! (
1939               "Size of: " , stringify ! ( _IO_FILE ) ));
1940    assert_eq! (::std::mem::align_of::<_IO_FILE>() , 8usize , concat ! (
1941                "Alignment of " , stringify ! ( _IO_FILE ) ));
1942    assert_eq! (unsafe {
1943                & ( * ( 0 as * const _IO_FILE ) ) . _flags as * const _ as
1944                usize } , 0usize , concat ! (
1945                "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
1946                stringify ! ( _flags ) ));
1947    assert_eq! (unsafe {
1948                & ( * ( 0 as * const _IO_FILE ) ) . _IO_read_ptr as * const _
1949                as usize } , 8usize , concat ! (
1950                "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
1951                stringify ! ( _IO_read_ptr ) ));
1952    assert_eq! (unsafe {
1953                & ( * ( 0 as * const _IO_FILE ) ) . _IO_read_end as * const _
1954                as usize } , 16usize , concat ! (
1955                "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
1956                stringify ! ( _IO_read_end ) ));
1957    assert_eq! (unsafe {
1958                & ( * ( 0 as * const _IO_FILE ) ) . _IO_read_base as * const _
1959                as usize } , 24usize , concat ! (
1960                "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
1961                stringify ! ( _IO_read_base ) ));
1962    assert_eq! (unsafe {
1963                & ( * ( 0 as * const _IO_FILE ) ) . _IO_write_base as * const
1964                _ as usize } , 32usize , concat ! (
1965                "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
1966                stringify ! ( _IO_write_base ) ));
1967    assert_eq! (unsafe {
1968                & ( * ( 0 as * const _IO_FILE ) ) . _IO_write_ptr as * const _
1969                as usize } , 40usize , concat ! (
1970                "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
1971                stringify ! ( _IO_write_ptr ) ));
1972    assert_eq! (unsafe {
1973                & ( * ( 0 as * const _IO_FILE ) ) . _IO_write_end as * const _
1974                as usize } , 48usize , concat ! (
1975                "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
1976                stringify ! ( _IO_write_end ) ));
1977    assert_eq! (unsafe {
1978                & ( * ( 0 as * const _IO_FILE ) ) . _IO_buf_base as * const _
1979                as usize } , 56usize , concat ! (
1980                "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
1981                stringify ! ( _IO_buf_base ) ));
1982    assert_eq! (unsafe {
1983                & ( * ( 0 as * const _IO_FILE ) ) . _IO_buf_end as * const _
1984                as usize } , 64usize , concat ! (
1985                "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
1986                stringify ! ( _IO_buf_end ) ));
1987    assert_eq! (unsafe {
1988                & ( * ( 0 as * const _IO_FILE ) ) . _IO_save_base as * const _
1989                as usize } , 72usize , concat ! (
1990                "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
1991                stringify ! ( _IO_save_base ) ));
1992    assert_eq! (unsafe {
1993                & ( * ( 0 as * const _IO_FILE ) ) . _IO_backup_base as * const
1994                _ as usize } , 80usize , concat ! (
1995                "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
1996                stringify ! ( _IO_backup_base ) ));
1997    assert_eq! (unsafe {
1998                & ( * ( 0 as * const _IO_FILE ) ) . _IO_save_end as * const _
1999                as usize } , 88usize , concat ! (
2000                "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
2001                stringify ! ( _IO_save_end ) ));
2002    assert_eq! (unsafe {
2003                & ( * ( 0 as * const _IO_FILE ) ) . _markers as * const _ as
2004                usize } , 96usize , concat ! (
2005                "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
2006                stringify ! ( _markers ) ));
2007    assert_eq! (unsafe {
2008                & ( * ( 0 as * const _IO_FILE ) ) . _chain as * const _ as
2009                usize } , 104usize , concat ! (
2010                "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
2011                stringify ! ( _chain ) ));
2012    assert_eq! (unsafe {
2013                & ( * ( 0 as * const _IO_FILE ) ) . _fileno as * const _ as
2014                usize } , 112usize , concat ! (
2015                "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
2016                stringify ! ( _fileno ) ));
2017    assert_eq! (unsafe {
2018                & ( * ( 0 as * const _IO_FILE ) ) . _flags2 as * const _ as
2019                usize } , 116usize , concat ! (
2020                "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
2021                stringify ! ( _flags2 ) ));
2022    assert_eq! (unsafe {
2023                & ( * ( 0 as * const _IO_FILE ) ) . _old_offset as * const _
2024                as usize } , 120usize , concat ! (
2025                "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
2026                stringify ! ( _old_offset ) ));
2027    assert_eq! (unsafe {
2028                & ( * ( 0 as * const _IO_FILE ) ) . _cur_column as * const _
2029                as usize } , 128usize , concat ! (
2030                "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
2031                stringify ! ( _cur_column ) ));
2032    assert_eq! (unsafe {
2033                & ( * ( 0 as * const _IO_FILE ) ) . _vtable_offset as * const
2034                _ as usize } , 130usize , concat ! (
2035                "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
2036                stringify ! ( _vtable_offset ) ));
2037    assert_eq! (unsafe {
2038                & ( * ( 0 as * const _IO_FILE ) ) . _shortbuf as * const _ as
2039                usize } , 131usize , concat ! (
2040                "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
2041                stringify ! ( _shortbuf ) ));
2042    assert_eq! (unsafe {
2043                & ( * ( 0 as * const _IO_FILE ) ) . _lock as * const _ as
2044                usize } , 136usize , concat ! (
2045                "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
2046                stringify ! ( _lock ) ));
2047    assert_eq! (unsafe {
2048                & ( * ( 0 as * const _IO_FILE ) ) . _offset as * const _ as
2049                usize } , 144usize , concat ! (
2050                "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
2051                stringify ! ( _offset ) ));
2052    assert_eq! (unsafe {
2053                & ( * ( 0 as * const _IO_FILE ) ) . __pad1 as * const _ as
2054                usize } , 152usize , concat ! (
2055                "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
2056                stringify ! ( __pad1 ) ));
2057    assert_eq! (unsafe {
2058                & ( * ( 0 as * const _IO_FILE ) ) . __pad2 as * const _ as
2059                usize } , 160usize , concat ! (
2060                "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
2061                stringify ! ( __pad2 ) ));
2062    assert_eq! (unsafe {
2063                & ( * ( 0 as * const _IO_FILE ) ) . __pad3 as * const _ as
2064                usize } , 168usize , concat ! (
2065                "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
2066                stringify ! ( __pad3 ) ));
2067    assert_eq! (unsafe {
2068                & ( * ( 0 as * const _IO_FILE ) ) . __pad4 as * const _ as
2069                usize } , 176usize , concat ! (
2070                "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
2071                stringify ! ( __pad4 ) ));
2072    assert_eq! (unsafe {
2073                & ( * ( 0 as * const _IO_FILE ) ) . __pad5 as * const _ as
2074                usize } , 184usize , concat ! (
2075                "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
2076                stringify ! ( __pad5 ) ));
2077    assert_eq! (unsafe {
2078                & ( * ( 0 as * const _IO_FILE ) ) . _mode as * const _ as
2079                usize } , 192usize , concat ! (
2080                "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
2081                stringify ! ( _mode ) ));
2082    assert_eq! (unsafe {
2083                & ( * ( 0 as * const _IO_FILE ) ) . _unused2 as * const _ as
2084                usize } , 196usize , concat ! (
2085                "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
2086                stringify ! ( _unused2 ) ));
2087}
2088impl Clone for _IO_FILE {
2089    fn clone(&self) -> Self { *self }
2090}
2091pub type FILE = _IO_FILE;
2092pub type __FILE = _IO_FILE;
2093#[repr(C)]
2094#[derive(Copy)]
2095pub struct __mbstate_t {
2096    pub __count: ::std::os::raw::c_int,
2097    pub __value: __mbstate_t__bindgen_ty_1,
2098}
2099#[repr(C)]
2100#[derive(Copy)]
2101pub struct __mbstate_t__bindgen_ty_1 {
2102    pub __wch: __BindgenUnionField<::std::os::raw::c_uint>,
2103    pub __wchb: __BindgenUnionField<[::std::os::raw::c_char; 4usize]>,
2104    pub bindgen_union_field: u32,
2105}
2106#[test]
2107fn bindgen_test_layout___mbstate_t__bindgen_ty_1() {
2108    assert_eq!(::std::mem::size_of::<__mbstate_t__bindgen_ty_1>() , 4usize ,
2109               concat ! (
2110               "Size of: " , stringify ! ( __mbstate_t__bindgen_ty_1 ) ));
2111    assert_eq! (::std::mem::align_of::<__mbstate_t__bindgen_ty_1>() , 4usize ,
2112                concat ! (
2113                "Alignment of " , stringify ! ( __mbstate_t__bindgen_ty_1 )
2114                ));
2115    assert_eq! (unsafe {
2116                & ( * ( 0 as * const __mbstate_t__bindgen_ty_1 ) ) . __wch as
2117                * const _ as usize } , 0usize , concat ! (
2118                "Alignment of field: " , stringify ! (
2119                __mbstate_t__bindgen_ty_1 ) , "::" , stringify ! ( __wch ) ));
2120    assert_eq! (unsafe {
2121                & ( * ( 0 as * const __mbstate_t__bindgen_ty_1 ) ) . __wchb as
2122                * const _ as usize } , 0usize , concat ! (
2123                "Alignment of field: " , stringify ! (
2124                __mbstate_t__bindgen_ty_1 ) , "::" , stringify ! ( __wchb )
2125                ));
2126}
2127impl Clone for __mbstate_t__bindgen_ty_1 {
2128    fn clone(&self) -> Self { *self }
2129}
2130#[test]
2131fn bindgen_test_layout___mbstate_t() {
2132    assert_eq!(::std::mem::size_of::<__mbstate_t>() , 8usize , concat ! (
2133               "Size of: " , stringify ! ( __mbstate_t ) ));
2134    assert_eq! (::std::mem::align_of::<__mbstate_t>() , 4usize , concat ! (
2135                "Alignment of " , stringify ! ( __mbstate_t ) ));
2136    assert_eq! (unsafe {
2137                & ( * ( 0 as * const __mbstate_t ) ) . __count as * const _ as
2138                usize } , 0usize , concat ! (
2139                "Alignment of field: " , stringify ! ( __mbstate_t ) , "::" ,
2140                stringify ! ( __count ) ));
2141    assert_eq! (unsafe {
2142                & ( * ( 0 as * const __mbstate_t ) ) . __value as * const _ as
2143                usize } , 4usize , concat ! (
2144                "Alignment of field: " , stringify ! ( __mbstate_t ) , "::" ,
2145                stringify ! ( __value ) ));
2146}
2147impl Clone for __mbstate_t {
2148    fn clone(&self) -> Self { *self }
2149}
2150#[repr(C)]
2151#[derive(Copy)]
2152pub struct _G_fpos_t {
2153    pub __pos: __off_t,
2154    pub __state: __mbstate_t,
2155}
2156#[test]
2157fn bindgen_test_layout__G_fpos_t() {
2158    assert_eq!(::std::mem::size_of::<_G_fpos_t>() , 16usize , concat ! (
2159               "Size of: " , stringify ! ( _G_fpos_t ) ));
2160    assert_eq! (::std::mem::align_of::<_G_fpos_t>() , 8usize , concat ! (
2161                "Alignment of " , stringify ! ( _G_fpos_t ) ));
2162    assert_eq! (unsafe {
2163                & ( * ( 0 as * const _G_fpos_t ) ) . __pos as * const _ as
2164                usize } , 0usize , concat ! (
2165                "Alignment of field: " , stringify ! ( _G_fpos_t ) , "::" ,
2166                stringify ! ( __pos ) ));
2167    assert_eq! (unsafe {
2168                & ( * ( 0 as * const _G_fpos_t ) ) . __state as * const _ as
2169                usize } , 8usize , concat ! (
2170                "Alignment of field: " , stringify ! ( _G_fpos_t ) , "::" ,
2171                stringify ! ( __state ) ));
2172}
2173impl Clone for _G_fpos_t {
2174    fn clone(&self) -> Self { *self }
2175}
2176#[repr(C)]
2177#[derive(Copy)]
2178pub struct _G_fpos64_t {
2179    pub __pos: __off64_t,
2180    pub __state: __mbstate_t,
2181}
2182#[test]
2183fn bindgen_test_layout__G_fpos64_t() {
2184    assert_eq!(::std::mem::size_of::<_G_fpos64_t>() , 16usize , concat ! (
2185               "Size of: " , stringify ! ( _G_fpos64_t ) ));
2186    assert_eq! (::std::mem::align_of::<_G_fpos64_t>() , 8usize , concat ! (
2187                "Alignment of " , stringify ! ( _G_fpos64_t ) ));
2188    assert_eq! (unsafe {
2189                & ( * ( 0 as * const _G_fpos64_t ) ) . __pos as * const _ as
2190                usize } , 0usize , concat ! (
2191                "Alignment of field: " , stringify ! ( _G_fpos64_t ) , "::" ,
2192                stringify ! ( __pos ) ));
2193    assert_eq! (unsafe {
2194                & ( * ( 0 as * const _G_fpos64_t ) ) . __state as * const _ as
2195                usize } , 8usize , concat ! (
2196                "Alignment of field: " , stringify ! ( _G_fpos64_t ) , "::" ,
2197                stringify ! ( __state ) ));
2198}
2199impl Clone for _G_fpos64_t {
2200    fn clone(&self) -> Self { *self }
2201}
2202pub type __gnuc_va_list = __builtin_va_list;
2203#[repr(C)]
2204#[derive(Debug, Copy, Clone)]
2205pub struct _IO_jump_t {
2206    _unused: [u8; 0],
2207}
2208pub type _IO_lock_t = ::std::os::raw::c_void;
2209#[repr(C)]
2210#[derive(Copy)]
2211pub struct _IO_marker {
2212    pub _next: *mut _IO_marker,
2213    pub _sbuf: *mut _IO_FILE,
2214    pub _pos: ::std::os::raw::c_int,
2215}
2216#[test]
2217fn bindgen_test_layout__IO_marker() {
2218    assert_eq!(::std::mem::size_of::<_IO_marker>() , 24usize , concat ! (
2219               "Size of: " , stringify ! ( _IO_marker ) ));
2220    assert_eq! (::std::mem::align_of::<_IO_marker>() , 8usize , concat ! (
2221                "Alignment of " , stringify ! ( _IO_marker ) ));
2222    assert_eq! (unsafe {
2223                & ( * ( 0 as * const _IO_marker ) ) . _next as * const _ as
2224                usize } , 0usize , concat ! (
2225                "Alignment of field: " , stringify ! ( _IO_marker ) , "::" ,
2226                stringify ! ( _next ) ));
2227    assert_eq! (unsafe {
2228                & ( * ( 0 as * const _IO_marker ) ) . _sbuf as * const _ as
2229                usize } , 8usize , concat ! (
2230                "Alignment of field: " , stringify ! ( _IO_marker ) , "::" ,
2231                stringify ! ( _sbuf ) ));
2232    assert_eq! (unsafe {
2233                & ( * ( 0 as * const _IO_marker ) ) . _pos as * const _ as
2234                usize } , 16usize , concat ! (
2235                "Alignment of field: " , stringify ! ( _IO_marker ) , "::" ,
2236                stringify ! ( _pos ) ));
2237}
2238impl Clone for _IO_marker {
2239    fn clone(&self) -> Self { *self }
2240}
2241#[repr(u32)]
2242#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
2243pub enum __codecvt_result {
2244    __codecvt_ok = 0,
2245    __codecvt_partial = 1,
2246    __codecvt_error = 2,
2247    __codecvt_noconv = 3,
2248}
2249#[repr(C)]
2250#[derive(Debug, Copy, Clone)]
2251pub struct _IO_FILE_plus {
2252    _unused: [u8; 0],
2253}
2254extern "C" {
2255    #[link_name = "_IO_2_1_stdin_"]
2256    pub static mut _IO_2_1_stdin_: _IO_FILE_plus;
2257}
2258extern "C" {
2259    #[link_name = "_IO_2_1_stdout_"]
2260    pub static mut _IO_2_1_stdout_: _IO_FILE_plus;
2261}
2262extern "C" {
2263    #[link_name = "_IO_2_1_stderr_"]
2264    pub static mut _IO_2_1_stderr_: _IO_FILE_plus;
2265}
2266pub type __io_read_fn =
2267    ::std::option::Option<unsafe extern "C" fn(__cookie:
2268                                                   *mut ::std::os::raw::c_void,
2269                                               __buf:
2270                                                   *mut ::std::os::raw::c_char,
2271                                               __nbytes: usize) -> __ssize_t>;
2272pub type __io_write_fn =
2273    ::std::option::Option<unsafe extern "C" fn(__cookie:
2274                                                   *mut ::std::os::raw::c_void,
2275                                               __buf:
2276                                                   *const ::std::os::raw::c_char,
2277                                               __n: usize) -> __ssize_t>;
2278pub type __io_seek_fn =
2279    ::std::option::Option<unsafe extern "C" fn(__cookie:
2280                                                   *mut ::std::os::raw::c_void,
2281                                               __pos: *mut __off64_t,
2282                                               __w: ::std::os::raw::c_int)
2283                              -> ::std::os::raw::c_int>;
2284pub type __io_close_fn =
2285    ::std::option::Option<unsafe extern "C" fn(__cookie:
2286                                                   *mut ::std::os::raw::c_void)
2287                              -> ::std::os::raw::c_int>;
2288extern "C" {
2289    pub fn __underflow(arg1: *mut _IO_FILE) -> ::std::os::raw::c_int;
2290}
2291extern "C" {
2292    pub fn __uflow(arg1: *mut _IO_FILE) -> ::std::os::raw::c_int;
2293}
2294extern "C" {
2295    pub fn __overflow(arg1: *mut _IO_FILE, arg2: ::std::os::raw::c_int)
2296     -> ::std::os::raw::c_int;
2297}
2298extern "C" {
2299    pub fn _IO_getc(__fp: *mut _IO_FILE) -> ::std::os::raw::c_int;
2300}
2301extern "C" {
2302    pub fn _IO_putc(__c: ::std::os::raw::c_int, __fp: *mut _IO_FILE)
2303     -> ::std::os::raw::c_int;
2304}
2305extern "C" {
2306    pub fn _IO_feof(__fp: *mut _IO_FILE) -> ::std::os::raw::c_int;
2307}
2308extern "C" {
2309    pub fn _IO_ferror(__fp: *mut _IO_FILE) -> ::std::os::raw::c_int;
2310}
2311extern "C" {
2312    pub fn _IO_peekc_locked(__fp: *mut _IO_FILE) -> ::std::os::raw::c_int;
2313}
2314extern "C" {
2315    pub fn _IO_flockfile(arg1: *mut _IO_FILE);
2316}
2317extern "C" {
2318    pub fn _IO_funlockfile(arg1: *mut _IO_FILE);
2319}
2320extern "C" {
2321    pub fn _IO_ftrylockfile(arg1: *mut _IO_FILE) -> ::std::os::raw::c_int;
2322}
2323extern "C" {
2324    pub fn _IO_vfscanf(arg1: *mut _IO_FILE,
2325                       arg2: *const ::std::os::raw::c_char,
2326                       arg3: *mut __va_list_tag,
2327                       arg4: *mut ::std::os::raw::c_int)
2328     -> ::std::os::raw::c_int;
2329}
2330extern "C" {
2331    pub fn _IO_vfprintf(arg1: *mut _IO_FILE,
2332                        arg2: *const ::std::os::raw::c_char,
2333                        arg3: *mut __va_list_tag) -> ::std::os::raw::c_int;
2334}
2335extern "C" {
2336    pub fn _IO_padn(arg1: *mut _IO_FILE, arg2: ::std::os::raw::c_int,
2337                    arg3: __ssize_t) -> __ssize_t;
2338}
2339extern "C" {
2340    pub fn _IO_sgetn(arg1: *mut _IO_FILE, arg2: *mut ::std::os::raw::c_void,
2341                     arg3: usize) -> usize;
2342}
2343extern "C" {
2344    pub fn _IO_seekoff(arg1: *mut _IO_FILE, arg2: __off64_t,
2345                       arg3: ::std::os::raw::c_int,
2346                       arg4: ::std::os::raw::c_int) -> __off64_t;
2347}
2348extern "C" {
2349    pub fn _IO_seekpos(arg1: *mut _IO_FILE, arg2: __off64_t,
2350                       arg3: ::std::os::raw::c_int) -> __off64_t;
2351}
2352extern "C" {
2353    pub fn _IO_free_backup_area(arg1: *mut _IO_FILE);
2354}
2355pub type va_list = __gnuc_va_list;
2356pub type fpos_t = _G_fpos_t;
2357extern "C" {
2358    #[link_name = "stdin"]
2359    pub static mut stdin: *mut _IO_FILE;
2360}
2361extern "C" {
2362    #[link_name = "stdout"]
2363    pub static mut stdout: *mut _IO_FILE;
2364}
2365extern "C" {
2366    #[link_name = "stderr"]
2367    pub static mut stderr: *mut _IO_FILE;
2368}
2369extern "C" {
2370    pub fn remove(__filename: *const ::std::os::raw::c_char)
2371     -> ::std::os::raw::c_int;
2372}
2373extern "C" {
2374    pub fn rename(__old: *const ::std::os::raw::c_char,
2375                  __new: *const ::std::os::raw::c_char)
2376     -> ::std::os::raw::c_int;
2377}
2378extern "C" {
2379    pub fn renameat(__oldfd: ::std::os::raw::c_int,
2380                    __old: *const ::std::os::raw::c_char,
2381                    __newfd: ::std::os::raw::c_int,
2382                    __new: *const ::std::os::raw::c_char)
2383     -> ::std::os::raw::c_int;
2384}
2385extern "C" {
2386    pub fn tmpfile() -> *mut FILE;
2387}
2388extern "C" {
2389    pub fn tmpnam(__s: *mut ::std::os::raw::c_char)
2390     -> *mut ::std::os::raw::c_char;
2391}
2392extern "C" {
2393    pub fn tmpnam_r(__s: *mut ::std::os::raw::c_char)
2394     -> *mut ::std::os::raw::c_char;
2395}
2396extern "C" {
2397    pub fn tempnam(__dir: *const ::std::os::raw::c_char,
2398                   __pfx: *const ::std::os::raw::c_char)
2399     -> *mut ::std::os::raw::c_char;
2400}
2401extern "C" {
2402    pub fn fclose(__stream: *mut FILE) -> ::std::os::raw::c_int;
2403}
2404extern "C" {
2405    pub fn fflush(__stream: *mut FILE) -> ::std::os::raw::c_int;
2406}
2407extern "C" {
2408    pub fn fflush_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
2409}
2410extern "C" {
2411    pub fn fopen(__filename: *const ::std::os::raw::c_char,
2412                 __modes: *const ::std::os::raw::c_char) -> *mut FILE;
2413}
2414extern "C" {
2415    pub fn freopen(__filename: *const ::std::os::raw::c_char,
2416                   __modes: *const ::std::os::raw::c_char,
2417                   __stream: *mut FILE) -> *mut FILE;
2418}
2419extern "C" {
2420    pub fn fdopen(__fd: ::std::os::raw::c_int,
2421                  __modes: *const ::std::os::raw::c_char) -> *mut FILE;
2422}
2423extern "C" {
2424    pub fn fmemopen(__s: *mut ::std::os::raw::c_void, __len: usize,
2425                    __modes: *const ::std::os::raw::c_char) -> *mut FILE;
2426}
2427extern "C" {
2428    pub fn open_memstream(__bufloc: *mut *mut ::std::os::raw::c_char,
2429                          __sizeloc: *mut usize) -> *mut FILE;
2430}
2431extern "C" {
2432    pub fn setbuf(__stream: *mut FILE, __buf: *mut ::std::os::raw::c_char);
2433}
2434extern "C" {
2435    pub fn setvbuf(__stream: *mut FILE, __buf: *mut ::std::os::raw::c_char,
2436                   __modes: ::std::os::raw::c_int, __n: usize)
2437     -> ::std::os::raw::c_int;
2438}
2439extern "C" {
2440    pub fn setbuffer(__stream: *mut FILE, __buf: *mut ::std::os::raw::c_char,
2441                     __size: usize);
2442}
2443extern "C" {
2444    pub fn setlinebuf(__stream: *mut FILE);
2445}
2446extern "C" {
2447    pub fn fprintf(__stream: *mut FILE,
2448                   __format: *const ::std::os::raw::c_char, ...)
2449     -> ::std::os::raw::c_int;
2450}
2451extern "C" {
2452    pub fn printf(__format: *const ::std::os::raw::c_char, ...)
2453     -> ::std::os::raw::c_int;
2454}
2455extern "C" {
2456    pub fn sprintf(__s: *mut ::std::os::raw::c_char,
2457                   __format: *const ::std::os::raw::c_char, ...)
2458     -> ::std::os::raw::c_int;
2459}
2460extern "C" {
2461    pub fn vfprintf(__s: *mut FILE, __format: *const ::std::os::raw::c_char,
2462                    __arg: *mut __va_list_tag) -> ::std::os::raw::c_int;
2463}
2464extern "C" {
2465    pub fn vprintf(__format: *const ::std::os::raw::c_char,
2466                   __arg: *mut __va_list_tag) -> ::std::os::raw::c_int;
2467}
2468extern "C" {
2469    pub fn vsprintf(__s: *mut ::std::os::raw::c_char,
2470                    __format: *const ::std::os::raw::c_char,
2471                    __arg: *mut __va_list_tag) -> ::std::os::raw::c_int;
2472}
2473extern "C" {
2474    pub fn snprintf(__s: *mut ::std::os::raw::c_char, __maxlen: usize,
2475                    __format: *const ::std::os::raw::c_char, ...)
2476     -> ::std::os::raw::c_int;
2477}
2478extern "C" {
2479    pub fn vsnprintf(__s: *mut ::std::os::raw::c_char, __maxlen: usize,
2480                     __format: *const ::std::os::raw::c_char,
2481                     __arg: *mut __va_list_tag) -> ::std::os::raw::c_int;
2482}
2483extern "C" {
2484    pub fn vdprintf(__fd: ::std::os::raw::c_int,
2485                    __fmt: *const ::std::os::raw::c_char,
2486                    __arg: *mut __va_list_tag) -> ::std::os::raw::c_int;
2487}
2488extern "C" {
2489    pub fn dprintf(__fd: ::std::os::raw::c_int,
2490                   __fmt: *const ::std::os::raw::c_char, ...)
2491     -> ::std::os::raw::c_int;
2492}
2493extern "C" {
2494    pub fn fscanf(__stream: *mut FILE,
2495                  __format: *const ::std::os::raw::c_char, ...)
2496     -> ::std::os::raw::c_int;
2497}
2498extern "C" {
2499    pub fn scanf(__format: *const ::std::os::raw::c_char, ...)
2500     -> ::std::os::raw::c_int;
2501}
2502extern "C" {
2503    pub fn sscanf(__s: *const ::std::os::raw::c_char,
2504                  __format: *const ::std::os::raw::c_char, ...)
2505     -> ::std::os::raw::c_int;
2506}
2507extern "C" {
2508    #[link_name = "__isoc99_fscanf"]
2509    pub fn fscanf1(__stream: *mut FILE,
2510                   __format: *const ::std::os::raw::c_char, ...)
2511     -> ::std::os::raw::c_int;
2512}
2513extern "C" {
2514    #[link_name = "__isoc99_scanf"]
2515    pub fn scanf1(__format: *const ::std::os::raw::c_char, ...)
2516     -> ::std::os::raw::c_int;
2517}
2518extern "C" {
2519    #[link_name = "__isoc99_sscanf"]
2520    pub fn sscanf1(__s: *const ::std::os::raw::c_char,
2521                   __format: *const ::std::os::raw::c_char, ...)
2522     -> ::std::os::raw::c_int;
2523}
2524extern "C" {
2525    pub fn vfscanf(__s: *mut FILE, __format: *const ::std::os::raw::c_char,
2526                   __arg: *mut __va_list_tag) -> ::std::os::raw::c_int;
2527}
2528extern "C" {
2529    pub fn vscanf(__format: *const ::std::os::raw::c_char,
2530                  __arg: *mut __va_list_tag) -> ::std::os::raw::c_int;
2531}
2532extern "C" {
2533    pub fn vsscanf(__s: *const ::std::os::raw::c_char,
2534                   __format: *const ::std::os::raw::c_char,
2535                   __arg: *mut __va_list_tag) -> ::std::os::raw::c_int;
2536}
2537extern "C" {
2538    #[link_name = "__isoc99_vfscanf"]
2539    pub fn vfscanf1(__s: *mut FILE, __format: *const ::std::os::raw::c_char,
2540                    __arg: *mut __va_list_tag) -> ::std::os::raw::c_int;
2541}
2542extern "C" {
2543    #[link_name = "__isoc99_vscanf"]
2544    pub fn vscanf1(__format: *const ::std::os::raw::c_char,
2545                   __arg: *mut __va_list_tag) -> ::std::os::raw::c_int;
2546}
2547extern "C" {
2548    #[link_name = "__isoc99_vsscanf"]
2549    pub fn vsscanf1(__s: *const ::std::os::raw::c_char,
2550                    __format: *const ::std::os::raw::c_char,
2551                    __arg: *mut __va_list_tag) -> ::std::os::raw::c_int;
2552}
2553extern "C" {
2554    pub fn fgetc(__stream: *mut FILE) -> ::std::os::raw::c_int;
2555}
2556extern "C" {
2557    pub fn getc(__stream: *mut FILE) -> ::std::os::raw::c_int;
2558}
2559extern "C" {
2560    pub fn getchar() -> ::std::os::raw::c_int;
2561}
2562extern "C" {
2563    pub fn getc_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
2564}
2565extern "C" {
2566    pub fn getchar_unlocked() -> ::std::os::raw::c_int;
2567}
2568extern "C" {
2569    pub fn fgetc_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
2570}
2571extern "C" {
2572    pub fn fputc(__c: ::std::os::raw::c_int, __stream: *mut FILE)
2573     -> ::std::os::raw::c_int;
2574}
2575extern "C" {
2576    pub fn putc(__c: ::std::os::raw::c_int, __stream: *mut FILE)
2577     -> ::std::os::raw::c_int;
2578}
2579extern "C" {
2580    pub fn putchar(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
2581}
2582extern "C" {
2583    pub fn fputc_unlocked(__c: ::std::os::raw::c_int, __stream: *mut FILE)
2584     -> ::std::os::raw::c_int;
2585}
2586extern "C" {
2587    pub fn putc_unlocked(__c: ::std::os::raw::c_int, __stream: *mut FILE)
2588     -> ::std::os::raw::c_int;
2589}
2590extern "C" {
2591    pub fn putchar_unlocked(__c: ::std::os::raw::c_int)
2592     -> ::std::os::raw::c_int;
2593}
2594extern "C" {
2595    pub fn getw(__stream: *mut FILE) -> ::std::os::raw::c_int;
2596}
2597extern "C" {
2598    pub fn putw(__w: ::std::os::raw::c_int, __stream: *mut FILE)
2599     -> ::std::os::raw::c_int;
2600}
2601extern "C" {
2602    pub fn fgets(__s: *mut ::std::os::raw::c_char, __n: ::std::os::raw::c_int,
2603                 __stream: *mut FILE) -> *mut ::std::os::raw::c_char;
2604}
2605extern "C" {
2606    pub fn __getdelim(__lineptr: *mut *mut ::std::os::raw::c_char,
2607                      __n: *mut usize, __delimiter: ::std::os::raw::c_int,
2608                      __stream: *mut FILE) -> __ssize_t;
2609}
2610extern "C" {
2611    pub fn getdelim(__lineptr: *mut *mut ::std::os::raw::c_char,
2612                    __n: *mut usize, __delimiter: ::std::os::raw::c_int,
2613                    __stream: *mut FILE) -> __ssize_t;
2614}
2615extern "C" {
2616    pub fn getline(__lineptr: *mut *mut ::std::os::raw::c_char,
2617                   __n: *mut usize, __stream: *mut FILE) -> __ssize_t;
2618}
2619extern "C" {
2620    pub fn fputs(__s: *const ::std::os::raw::c_char, __stream: *mut FILE)
2621     -> ::std::os::raw::c_int;
2622}
2623extern "C" {
2624    pub fn puts(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
2625}
2626extern "C" {
2627    pub fn ungetc(__c: ::std::os::raw::c_int, __stream: *mut FILE)
2628     -> ::std::os::raw::c_int;
2629}
2630extern "C" {
2631    pub fn fread(__ptr: *mut ::std::os::raw::c_void, __size: usize,
2632                 __n: usize, __stream: *mut FILE) -> usize;
2633}
2634extern "C" {
2635    pub fn fwrite(__ptr: *const ::std::os::raw::c_void, __size: usize,
2636                  __n: usize, __s: *mut FILE) -> usize;
2637}
2638extern "C" {
2639    pub fn fread_unlocked(__ptr: *mut ::std::os::raw::c_void, __size: usize,
2640                          __n: usize, __stream: *mut FILE) -> usize;
2641}
2642extern "C" {
2643    pub fn fwrite_unlocked(__ptr: *const ::std::os::raw::c_void,
2644                           __size: usize, __n: usize, __stream: *mut FILE)
2645     -> usize;
2646}
2647extern "C" {
2648    pub fn fseek(__stream: *mut FILE, __off: ::std::os::raw::c_long,
2649                 __whence: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
2650}
2651extern "C" {
2652    pub fn ftell(__stream: *mut FILE) -> ::std::os::raw::c_long;
2653}
2654extern "C" {
2655    pub fn rewind(__stream: *mut FILE);
2656}
2657extern "C" {
2658    pub fn fseeko(__stream: *mut FILE, __off: __off_t,
2659                  __whence: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
2660}
2661extern "C" {
2662    pub fn ftello(__stream: *mut FILE) -> __off_t;
2663}
2664extern "C" {
2665    pub fn fgetpos(__stream: *mut FILE, __pos: *mut fpos_t)
2666     -> ::std::os::raw::c_int;
2667}
2668extern "C" {
2669    pub fn fsetpos(__stream: *mut FILE, __pos: *const fpos_t)
2670     -> ::std::os::raw::c_int;
2671}
2672extern "C" {
2673    pub fn clearerr(__stream: *mut FILE);
2674}
2675extern "C" {
2676    pub fn feof(__stream: *mut FILE) -> ::std::os::raw::c_int;
2677}
2678extern "C" {
2679    pub fn ferror(__stream: *mut FILE) -> ::std::os::raw::c_int;
2680}
2681extern "C" {
2682    pub fn clearerr_unlocked(__stream: *mut FILE);
2683}
2684extern "C" {
2685    pub fn feof_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
2686}
2687extern "C" {
2688    pub fn ferror_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
2689}
2690extern "C" {
2691    pub fn perror(__s: *const ::std::os::raw::c_char);
2692}
2693extern "C" {
2694    #[link_name = "sys_nerr"]
2695    pub static mut sys_nerr: ::std::os::raw::c_int;
2696}
2697extern "C" {
2698    #[link_name = "sys_errlist"]
2699    pub static mut sys_errlist: [*const ::std::os::raw::c_char; 0usize];
2700}
2701extern "C" {
2702    pub fn fileno(__stream: *mut FILE) -> ::std::os::raw::c_int;
2703}
2704extern "C" {
2705    pub fn fileno_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
2706}
2707extern "C" {
2708    pub fn popen(__command: *const ::std::os::raw::c_char,
2709                 __modes: *const ::std::os::raw::c_char) -> *mut FILE;
2710}
2711extern "C" {
2712    pub fn pclose(__stream: *mut FILE) -> ::std::os::raw::c_int;
2713}
2714extern "C" {
2715    pub fn ctermid(__s: *mut ::std::os::raw::c_char)
2716     -> *mut ::std::os::raw::c_char;
2717}
2718extern "C" {
2719    pub fn flockfile(__stream: *mut FILE);
2720}
2721extern "C" {
2722    pub fn ftrylockfile(__stream: *mut FILE) -> ::std::os::raw::c_int;
2723}
2724extern "C" {
2725    pub fn funlockfile(__stream: *mut FILE);
2726}
2727pub type float_t = f32;
2728pub type double_t = f64;
2729extern "C" {
2730    pub fn acos(__x: f64) -> f64;
2731}
2732extern "C" {
2733    pub fn __acos(__x: f64) -> f64;
2734}
2735extern "C" {
2736    pub fn asin(__x: f64) -> f64;
2737}
2738extern "C" {
2739    pub fn __asin(__x: f64) -> f64;
2740}
2741extern "C" {
2742    pub fn atan(__x: f64) -> f64;
2743}
2744extern "C" {
2745    pub fn __atan(__x: f64) -> f64;
2746}
2747extern "C" {
2748    pub fn atan2(__y: f64, __x: f64) -> f64;
2749}
2750extern "C" {
2751    pub fn __atan2(__y: f64, __x: f64) -> f64;
2752}
2753extern "C" {
2754    pub fn cos(__x: f64) -> f64;
2755}
2756extern "C" {
2757    pub fn __cos(__x: f64) -> f64;
2758}
2759extern "C" {
2760    pub fn sin(__x: f64) -> f64;
2761}
2762extern "C" {
2763    pub fn __sin(__x: f64) -> f64;
2764}
2765extern "C" {
2766    pub fn tan(__x: f64) -> f64;
2767}
2768extern "C" {
2769    pub fn __tan(__x: f64) -> f64;
2770}
2771extern "C" {
2772    pub fn cosh(__x: f64) -> f64;
2773}
2774extern "C" {
2775    pub fn __cosh(__x: f64) -> f64;
2776}
2777extern "C" {
2778    pub fn sinh(__x: f64) -> f64;
2779}
2780extern "C" {
2781    pub fn __sinh(__x: f64) -> f64;
2782}
2783extern "C" {
2784    pub fn tanh(__x: f64) -> f64;
2785}
2786extern "C" {
2787    pub fn __tanh(__x: f64) -> f64;
2788}
2789extern "C" {
2790    pub fn acosh(__x: f64) -> f64;
2791}
2792extern "C" {
2793    pub fn __acosh(__x: f64) -> f64;
2794}
2795extern "C" {
2796    pub fn asinh(__x: f64) -> f64;
2797}
2798extern "C" {
2799    pub fn __asinh(__x: f64) -> f64;
2800}
2801extern "C" {
2802    pub fn atanh(__x: f64) -> f64;
2803}
2804extern "C" {
2805    pub fn __atanh(__x: f64) -> f64;
2806}
2807extern "C" {
2808    pub fn exp(__x: f64) -> f64;
2809}
2810extern "C" {
2811    pub fn __exp(__x: f64) -> f64;
2812}
2813extern "C" {
2814    pub fn frexp(__x: f64, __exponent: *mut ::std::os::raw::c_int) -> f64;
2815}
2816extern "C" {
2817    pub fn __frexp(__x: f64, __exponent: *mut ::std::os::raw::c_int) -> f64;
2818}
2819extern "C" {
2820    pub fn ldexp(__x: f64, __exponent: ::std::os::raw::c_int) -> f64;
2821}
2822extern "C" {
2823    pub fn __ldexp(__x: f64, __exponent: ::std::os::raw::c_int) -> f64;
2824}
2825extern "C" {
2826    pub fn log(__x: f64) -> f64;
2827}
2828extern "C" {
2829    pub fn __log(__x: f64) -> f64;
2830}
2831extern "C" {
2832    pub fn log10(__x: f64) -> f64;
2833}
2834extern "C" {
2835    pub fn __log10(__x: f64) -> f64;
2836}
2837extern "C" {
2838    pub fn modf(__x: f64, __iptr: *mut f64) -> f64;
2839}
2840extern "C" {
2841    pub fn __modf(__x: f64, __iptr: *mut f64) -> f64;
2842}
2843extern "C" {
2844    pub fn expm1(__x: f64) -> f64;
2845}
2846extern "C" {
2847    pub fn __expm1(__x: f64) -> f64;
2848}
2849extern "C" {
2850    pub fn log1p(__x: f64) -> f64;
2851}
2852extern "C" {
2853    pub fn __log1p(__x: f64) -> f64;
2854}
2855extern "C" {
2856    pub fn logb(__x: f64) -> f64;
2857}
2858extern "C" {
2859    pub fn __logb(__x: f64) -> f64;
2860}
2861extern "C" {
2862    pub fn exp2(__x: f64) -> f64;
2863}
2864extern "C" {
2865    pub fn __exp2(__x: f64) -> f64;
2866}
2867extern "C" {
2868    pub fn log2(__x: f64) -> f64;
2869}
2870extern "C" {
2871    pub fn __log2(__x: f64) -> f64;
2872}
2873extern "C" {
2874    pub fn pow(__x: f64, __y: f64) -> f64;
2875}
2876extern "C" {
2877    pub fn __pow(__x: f64, __y: f64) -> f64;
2878}
2879extern "C" {
2880    pub fn sqrt(__x: f64) -> f64;
2881}
2882extern "C" {
2883    pub fn __sqrt(__x: f64) -> f64;
2884}
2885extern "C" {
2886    pub fn hypot(__x: f64, __y: f64) -> f64;
2887}
2888extern "C" {
2889    pub fn __hypot(__x: f64, __y: f64) -> f64;
2890}
2891extern "C" {
2892    pub fn cbrt(__x: f64) -> f64;
2893}
2894extern "C" {
2895    pub fn __cbrt(__x: f64) -> f64;
2896}
2897extern "C" {
2898    pub fn ceil(__x: f64) -> f64;
2899}
2900extern "C" {
2901    pub fn __ceil(__x: f64) -> f64;
2902}
2903extern "C" {
2904    pub fn fabs(__x: f64) -> f64;
2905}
2906extern "C" {
2907    pub fn __fabs(__x: f64) -> f64;
2908}
2909extern "C" {
2910    pub fn floor(__x: f64) -> f64;
2911}
2912extern "C" {
2913    pub fn __floor(__x: f64) -> f64;
2914}
2915extern "C" {
2916    pub fn fmod(__x: f64, __y: f64) -> f64;
2917}
2918extern "C" {
2919    pub fn __fmod(__x: f64, __y: f64) -> f64;
2920}
2921extern "C" {
2922    pub fn __isinf(__value: f64) -> ::std::os::raw::c_int;
2923}
2924extern "C" {
2925    pub fn __finite(__value: f64) -> ::std::os::raw::c_int;
2926}
2927extern "C" {
2928    pub fn isinf(__value: f64) -> ::std::os::raw::c_int;
2929}
2930extern "C" {
2931    pub fn finite(__value: f64) -> ::std::os::raw::c_int;
2932}
2933extern "C" {
2934    pub fn drem(__x: f64, __y: f64) -> f64;
2935}
2936extern "C" {
2937    pub fn __drem(__x: f64, __y: f64) -> f64;
2938}
2939extern "C" {
2940    pub fn significand(__x: f64) -> f64;
2941}
2942extern "C" {
2943    pub fn __significand(__x: f64) -> f64;
2944}
2945extern "C" {
2946    pub fn copysign(__x: f64, __y: f64) -> f64;
2947}
2948extern "C" {
2949    pub fn __copysign(__x: f64, __y: f64) -> f64;
2950}
2951extern "C" {
2952    pub fn nan(__tagb: *const ::std::os::raw::c_char) -> f64;
2953}
2954extern "C" {
2955    pub fn __nan(__tagb: *const ::std::os::raw::c_char) -> f64;
2956}
2957extern "C" {
2958    pub fn __isnan(__value: f64) -> ::std::os::raw::c_int;
2959}
2960extern "C" {
2961    pub fn isnan(__value: f64) -> ::std::os::raw::c_int;
2962}
2963extern "C" {
2964    pub fn j0(arg1: f64) -> f64;
2965}
2966extern "C" {
2967    pub fn __j0(arg1: f64) -> f64;
2968}
2969extern "C" {
2970    pub fn j1(arg1: f64) -> f64;
2971}
2972extern "C" {
2973    pub fn __j1(arg1: f64) -> f64;
2974}
2975extern "C" {
2976    pub fn jn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64;
2977}
2978extern "C" {
2979    pub fn __jn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64;
2980}
2981extern "C" {
2982    pub fn y0(arg1: f64) -> f64;
2983}
2984extern "C" {
2985    pub fn __y0(arg1: f64) -> f64;
2986}
2987extern "C" {
2988    pub fn y1(arg1: f64) -> f64;
2989}
2990extern "C" {
2991    pub fn __y1(arg1: f64) -> f64;
2992}
2993extern "C" {
2994    pub fn yn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64;
2995}
2996extern "C" {
2997    pub fn __yn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64;
2998}
2999extern "C" {
3000    pub fn erf(arg1: f64) -> f64;
3001}
3002extern "C" {
3003    pub fn __erf(arg1: f64) -> f64;
3004}
3005extern "C" {
3006    pub fn erfc(arg1: f64) -> f64;
3007}
3008extern "C" {
3009    pub fn __erfc(arg1: f64) -> f64;
3010}
3011extern "C" {
3012    pub fn lgamma(arg1: f64) -> f64;
3013}
3014extern "C" {
3015    pub fn __lgamma(arg1: f64) -> f64;
3016}
3017extern "C" {
3018    pub fn tgamma(arg1: f64) -> f64;
3019}
3020extern "C" {
3021    pub fn __tgamma(arg1: f64) -> f64;
3022}
3023extern "C" {
3024    pub fn gamma(arg1: f64) -> f64;
3025}
3026extern "C" {
3027    pub fn __gamma(arg1: f64) -> f64;
3028}
3029extern "C" {
3030    pub fn lgamma_r(arg1: f64, __signgamp: *mut ::std::os::raw::c_int) -> f64;
3031}
3032extern "C" {
3033    pub fn __lgamma_r(arg1: f64, __signgamp: *mut ::std::os::raw::c_int)
3034     -> f64;
3035}
3036extern "C" {
3037    pub fn rint(__x: f64) -> f64;
3038}
3039extern "C" {
3040    pub fn __rint(__x: f64) -> f64;
3041}
3042extern "C" {
3043    pub fn nextafter(__x: f64, __y: f64) -> f64;
3044}
3045extern "C" {
3046    pub fn __nextafter(__x: f64, __y: f64) -> f64;
3047}
3048extern "C" {
3049    pub fn nexttoward(__x: f64, __y: f64) -> f64;
3050}
3051extern "C" {
3052    pub fn __nexttoward(__x: f64, __y: f64) -> f64;
3053}
3054extern "C" {
3055    pub fn remainder(__x: f64, __y: f64) -> f64;
3056}
3057extern "C" {
3058    pub fn __remainder(__x: f64, __y: f64) -> f64;
3059}
3060extern "C" {
3061    pub fn scalbn(__x: f64, __n: ::std::os::raw::c_int) -> f64;
3062}
3063extern "C" {
3064    pub fn __scalbn(__x: f64, __n: ::std::os::raw::c_int) -> f64;
3065}
3066extern "C" {
3067    pub fn ilogb(__x: f64) -> ::std::os::raw::c_int;
3068}
3069extern "C" {
3070    pub fn __ilogb(__x: f64) -> ::std::os::raw::c_int;
3071}
3072extern "C" {
3073    pub fn scalbln(__x: f64, __n: ::std::os::raw::c_long) -> f64;
3074}
3075extern "C" {
3076    pub fn __scalbln(__x: f64, __n: ::std::os::raw::c_long) -> f64;
3077}
3078extern "C" {
3079    pub fn nearbyint(__x: f64) -> f64;
3080}
3081extern "C" {
3082    pub fn __nearbyint(__x: f64) -> f64;
3083}
3084extern "C" {
3085    pub fn round(__x: f64) -> f64;
3086}
3087extern "C" {
3088    pub fn __round(__x: f64) -> f64;
3089}
3090extern "C" {
3091    pub fn trunc(__x: f64) -> f64;
3092}
3093extern "C" {
3094    pub fn __trunc(__x: f64) -> f64;
3095}
3096extern "C" {
3097    pub fn remquo(__x: f64, __y: f64, __quo: *mut ::std::os::raw::c_int)
3098     -> f64;
3099}
3100extern "C" {
3101    pub fn __remquo(__x: f64, __y: f64, __quo: *mut ::std::os::raw::c_int)
3102     -> f64;
3103}
3104extern "C" {
3105    pub fn lrint(__x: f64) -> ::std::os::raw::c_long;
3106}
3107extern "C" {
3108    pub fn __lrint(__x: f64) -> ::std::os::raw::c_long;
3109}
3110extern "C" {
3111    pub fn llrint(__x: f64) -> ::std::os::raw::c_longlong;
3112}
3113extern "C" {
3114    pub fn __llrint(__x: f64) -> ::std::os::raw::c_longlong;
3115}
3116extern "C" {
3117    pub fn lround(__x: f64) -> ::std::os::raw::c_long;
3118}
3119extern "C" {
3120    pub fn __lround(__x: f64) -> ::std::os::raw::c_long;
3121}
3122extern "C" {
3123    pub fn llround(__x: f64) -> ::std::os::raw::c_longlong;
3124}
3125extern "C" {
3126    pub fn __llround(__x: f64) -> ::std::os::raw::c_longlong;
3127}
3128extern "C" {
3129    pub fn fdim(__x: f64, __y: f64) -> f64;
3130}
3131extern "C" {
3132    pub fn __fdim(__x: f64, __y: f64) -> f64;
3133}
3134extern "C" {
3135    pub fn fmax(__x: f64, __y: f64) -> f64;
3136}
3137extern "C" {
3138    pub fn __fmax(__x: f64, __y: f64) -> f64;
3139}
3140extern "C" {
3141    pub fn fmin(__x: f64, __y: f64) -> f64;
3142}
3143extern "C" {
3144    pub fn __fmin(__x: f64, __y: f64) -> f64;
3145}
3146extern "C" {
3147    pub fn __fpclassify(__value: f64) -> ::std::os::raw::c_int;
3148}
3149extern "C" {
3150    pub fn __signbit(__value: f64) -> ::std::os::raw::c_int;
3151}
3152extern "C" {
3153    pub fn fma(__x: f64, __y: f64, __z: f64) -> f64;
3154}
3155extern "C" {
3156    pub fn __fma(__x: f64, __y: f64, __z: f64) -> f64;
3157}
3158extern "C" {
3159    pub fn scalb(__x: f64, __n: f64) -> f64;
3160}
3161extern "C" {
3162    pub fn __scalb(__x: f64, __n: f64) -> f64;
3163}
3164extern "C" {
3165    pub fn acosf(__x: f32) -> f32;
3166}
3167extern "C" {
3168    pub fn __acosf(__x: f32) -> f32;
3169}
3170extern "C" {
3171    pub fn asinf(__x: f32) -> f32;
3172}
3173extern "C" {
3174    pub fn __asinf(__x: f32) -> f32;
3175}
3176extern "C" {
3177    pub fn atanf(__x: f32) -> f32;
3178}
3179extern "C" {
3180    pub fn __atanf(__x: f32) -> f32;
3181}
3182extern "C" {
3183    pub fn atan2f(__y: f32, __x: f32) -> f32;
3184}
3185extern "C" {
3186    pub fn __atan2f(__y: f32, __x: f32) -> f32;
3187}
3188extern "C" {
3189    pub fn cosf(__x: f32) -> f32;
3190}
3191extern "C" {
3192    pub fn __cosf(__x: f32) -> f32;
3193}
3194extern "C" {
3195    pub fn sinf(__x: f32) -> f32;
3196}
3197extern "C" {
3198    pub fn __sinf(__x: f32) -> f32;
3199}
3200extern "C" {
3201    pub fn tanf(__x: f32) -> f32;
3202}
3203extern "C" {
3204    pub fn __tanf(__x: f32) -> f32;
3205}
3206extern "C" {
3207    pub fn coshf(__x: f32) -> f32;
3208}
3209extern "C" {
3210    pub fn __coshf(__x: f32) -> f32;
3211}
3212extern "C" {
3213    pub fn sinhf(__x: f32) -> f32;
3214}
3215extern "C" {
3216    pub fn __sinhf(__x: f32) -> f32;
3217}
3218extern "C" {
3219    pub fn tanhf(__x: f32) -> f32;
3220}
3221extern "C" {
3222    pub fn __tanhf(__x: f32) -> f32;
3223}
3224extern "C" {
3225    pub fn acoshf(__x: f32) -> f32;
3226}
3227extern "C" {
3228    pub fn __acoshf(__x: f32) -> f32;
3229}
3230extern "C" {
3231    pub fn asinhf(__x: f32) -> f32;
3232}
3233extern "C" {
3234    pub fn __asinhf(__x: f32) -> f32;
3235}
3236extern "C" {
3237    pub fn atanhf(__x: f32) -> f32;
3238}
3239extern "C" {
3240    pub fn __atanhf(__x: f32) -> f32;
3241}
3242extern "C" {
3243    pub fn expf(__x: f32) -> f32;
3244}
3245extern "C" {
3246    pub fn __expf(__x: f32) -> f32;
3247}
3248extern "C" {
3249    pub fn frexpf(__x: f32, __exponent: *mut ::std::os::raw::c_int) -> f32;
3250}
3251extern "C" {
3252    pub fn __frexpf(__x: f32, __exponent: *mut ::std::os::raw::c_int) -> f32;
3253}
3254extern "C" {
3255    pub fn ldexpf(__x: f32, __exponent: ::std::os::raw::c_int) -> f32;
3256}
3257extern "C" {
3258    pub fn __ldexpf(__x: f32, __exponent: ::std::os::raw::c_int) -> f32;
3259}
3260extern "C" {
3261    pub fn logf(__x: f32) -> f32;
3262}
3263extern "C" {
3264    pub fn __logf(__x: f32) -> f32;
3265}
3266extern "C" {
3267    pub fn log10f(__x: f32) -> f32;
3268}
3269extern "C" {
3270    pub fn __log10f(__x: f32) -> f32;
3271}
3272extern "C" {
3273    pub fn modff(__x: f32, __iptr: *mut f32) -> f32;
3274}
3275extern "C" {
3276    pub fn __modff(__x: f32, __iptr: *mut f32) -> f32;
3277}
3278extern "C" {
3279    pub fn expm1f(__x: f32) -> f32;
3280}
3281extern "C" {
3282    pub fn __expm1f(__x: f32) -> f32;
3283}
3284extern "C" {
3285    pub fn log1pf(__x: f32) -> f32;
3286}
3287extern "C" {
3288    pub fn __log1pf(__x: f32) -> f32;
3289}
3290extern "C" {
3291    pub fn logbf(__x: f32) -> f32;
3292}
3293extern "C" {
3294    pub fn __logbf(__x: f32) -> f32;
3295}
3296extern "C" {
3297    pub fn exp2f(__x: f32) -> f32;
3298}
3299extern "C" {
3300    pub fn __exp2f(__x: f32) -> f32;
3301}
3302extern "C" {
3303    pub fn log2f(__x: f32) -> f32;
3304}
3305extern "C" {
3306    pub fn __log2f(__x: f32) -> f32;
3307}
3308extern "C" {
3309    pub fn powf(__x: f32, __y: f32) -> f32;
3310}
3311extern "C" {
3312    pub fn __powf(__x: f32, __y: f32) -> f32;
3313}
3314extern "C" {
3315    pub fn sqrtf(__x: f32) -> f32;
3316}
3317extern "C" {
3318    pub fn __sqrtf(__x: f32) -> f32;
3319}
3320extern "C" {
3321    pub fn hypotf(__x: f32, __y: f32) -> f32;
3322}
3323extern "C" {
3324    pub fn __hypotf(__x: f32, __y: f32) -> f32;
3325}
3326extern "C" {
3327    pub fn cbrtf(__x: f32) -> f32;
3328}
3329extern "C" {
3330    pub fn __cbrtf(__x: f32) -> f32;
3331}
3332extern "C" {
3333    pub fn ceilf(__x: f32) -> f32;
3334}
3335extern "C" {
3336    pub fn __ceilf(__x: f32) -> f32;
3337}
3338extern "C" {
3339    pub fn fabsf(__x: f32) -> f32;
3340}
3341extern "C" {
3342    pub fn __fabsf(__x: f32) -> f32;
3343}
3344extern "C" {
3345    pub fn floorf(__x: f32) -> f32;
3346}
3347extern "C" {
3348    pub fn __floorf(__x: f32) -> f32;
3349}
3350extern "C" {
3351    pub fn fmodf(__x: f32, __y: f32) -> f32;
3352}
3353extern "C" {
3354    pub fn __fmodf(__x: f32, __y: f32) -> f32;
3355}
3356extern "C" {
3357    pub fn __isinff(__value: f32) -> ::std::os::raw::c_int;
3358}
3359extern "C" {
3360    pub fn __finitef(__value: f32) -> ::std::os::raw::c_int;
3361}
3362extern "C" {
3363    pub fn isinff(__value: f32) -> ::std::os::raw::c_int;
3364}
3365extern "C" {
3366    pub fn finitef(__value: f32) -> ::std::os::raw::c_int;
3367}
3368extern "C" {
3369    pub fn dremf(__x: f32, __y: f32) -> f32;
3370}
3371extern "C" {
3372    pub fn __dremf(__x: f32, __y: f32) -> f32;
3373}
3374extern "C" {
3375    pub fn significandf(__x: f32) -> f32;
3376}
3377extern "C" {
3378    pub fn __significandf(__x: f32) -> f32;
3379}
3380extern "C" {
3381    pub fn copysignf(__x: f32, __y: f32) -> f32;
3382}
3383extern "C" {
3384    pub fn __copysignf(__x: f32, __y: f32) -> f32;
3385}
3386extern "C" {
3387    pub fn nanf(__tagb: *const ::std::os::raw::c_char) -> f32;
3388}
3389extern "C" {
3390    pub fn __nanf(__tagb: *const ::std::os::raw::c_char) -> f32;
3391}
3392extern "C" {
3393    pub fn __isnanf(__value: f32) -> ::std::os::raw::c_int;
3394}
3395extern "C" {
3396    pub fn isnanf(__value: f32) -> ::std::os::raw::c_int;
3397}
3398extern "C" {
3399    pub fn j0f(arg1: f32) -> f32;
3400}
3401extern "C" {
3402    pub fn __j0f(arg1: f32) -> f32;
3403}
3404extern "C" {
3405    pub fn j1f(arg1: f32) -> f32;
3406}
3407extern "C" {
3408    pub fn __j1f(arg1: f32) -> f32;
3409}
3410extern "C" {
3411    pub fn jnf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32;
3412}
3413extern "C" {
3414    pub fn __jnf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32;
3415}
3416extern "C" {
3417    pub fn y0f(arg1: f32) -> f32;
3418}
3419extern "C" {
3420    pub fn __y0f(arg1: f32) -> f32;
3421}
3422extern "C" {
3423    pub fn y1f(arg1: f32) -> f32;
3424}
3425extern "C" {
3426    pub fn __y1f(arg1: f32) -> f32;
3427}
3428extern "C" {
3429    pub fn ynf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32;
3430}
3431extern "C" {
3432    pub fn __ynf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32;
3433}
3434extern "C" {
3435    pub fn erff(arg1: f32) -> f32;
3436}
3437extern "C" {
3438    pub fn __erff(arg1: f32) -> f32;
3439}
3440extern "C" {
3441    pub fn erfcf(arg1: f32) -> f32;
3442}
3443extern "C" {
3444    pub fn __erfcf(arg1: f32) -> f32;
3445}
3446extern "C" {
3447    pub fn lgammaf(arg1: f32) -> f32;
3448}
3449extern "C" {
3450    pub fn __lgammaf(arg1: f32) -> f32;
3451}
3452extern "C" {
3453    pub fn tgammaf(arg1: f32) -> f32;
3454}
3455extern "C" {
3456    pub fn __tgammaf(arg1: f32) -> f32;
3457}
3458extern "C" {
3459    pub fn gammaf(arg1: f32) -> f32;
3460}
3461extern "C" {
3462    pub fn __gammaf(arg1: f32) -> f32;
3463}
3464extern "C" {
3465    pub fn lgammaf_r(arg1: f32, __signgamp: *mut ::std::os::raw::c_int)
3466     -> f32;
3467}
3468extern "C" {
3469    pub fn __lgammaf_r(arg1: f32, __signgamp: *mut ::std::os::raw::c_int)
3470     -> f32;
3471}
3472extern "C" {
3473    pub fn rintf(__x: f32) -> f32;
3474}
3475extern "C" {
3476    pub fn __rintf(__x: f32) -> f32;
3477}
3478extern "C" {
3479    pub fn nextafterf(__x: f32, __y: f32) -> f32;
3480}
3481extern "C" {
3482    pub fn __nextafterf(__x: f32, __y: f32) -> f32;
3483}
3484extern "C" {
3485    pub fn nexttowardf(__x: f32, __y: f64) -> f32;
3486}
3487extern "C" {
3488    pub fn __nexttowardf(__x: f32, __y: f64) -> f32;
3489}
3490extern "C" {
3491    pub fn remainderf(__x: f32, __y: f32) -> f32;
3492}
3493extern "C" {
3494    pub fn __remainderf(__x: f32, __y: f32) -> f32;
3495}
3496extern "C" {
3497    pub fn scalbnf(__x: f32, __n: ::std::os::raw::c_int) -> f32;
3498}
3499extern "C" {
3500    pub fn __scalbnf(__x: f32, __n: ::std::os::raw::c_int) -> f32;
3501}
3502extern "C" {
3503    pub fn ilogbf(__x: f32) -> ::std::os::raw::c_int;
3504}
3505extern "C" {
3506    pub fn __ilogbf(__x: f32) -> ::std::os::raw::c_int;
3507}
3508extern "C" {
3509    pub fn scalblnf(__x: f32, __n: ::std::os::raw::c_long) -> f32;
3510}
3511extern "C" {
3512    pub fn __scalblnf(__x: f32, __n: ::std::os::raw::c_long) -> f32;
3513}
3514extern "C" {
3515    pub fn nearbyintf(__x: f32) -> f32;
3516}
3517extern "C" {
3518    pub fn __nearbyintf(__x: f32) -> f32;
3519}
3520extern "C" {
3521    pub fn roundf(__x: f32) -> f32;
3522}
3523extern "C" {
3524    pub fn __roundf(__x: f32) -> f32;
3525}
3526extern "C" {
3527    pub fn truncf(__x: f32) -> f32;
3528}
3529extern "C" {
3530    pub fn __truncf(__x: f32) -> f32;
3531}
3532extern "C" {
3533    pub fn remquof(__x: f32, __y: f32, __quo: *mut ::std::os::raw::c_int)
3534     -> f32;
3535}
3536extern "C" {
3537    pub fn __remquof(__x: f32, __y: f32, __quo: *mut ::std::os::raw::c_int)
3538     -> f32;
3539}
3540extern "C" {
3541    pub fn lrintf(__x: f32) -> ::std::os::raw::c_long;
3542}
3543extern "C" {
3544    pub fn __lrintf(__x: f32) -> ::std::os::raw::c_long;
3545}
3546extern "C" {
3547    pub fn llrintf(__x: f32) -> ::std::os::raw::c_longlong;
3548}
3549extern "C" {
3550    pub fn __llrintf(__x: f32) -> ::std::os::raw::c_longlong;
3551}
3552extern "C" {
3553    pub fn lroundf(__x: f32) -> ::std::os::raw::c_long;
3554}
3555extern "C" {
3556    pub fn __lroundf(__x: f32) -> ::std::os::raw::c_long;
3557}
3558extern "C" {
3559    pub fn llroundf(__x: f32) -> ::std::os::raw::c_longlong;
3560}
3561extern "C" {
3562    pub fn __llroundf(__x: f32) -> ::std::os::raw::c_longlong;
3563}
3564extern "C" {
3565    pub fn fdimf(__x: f32, __y: f32) -> f32;
3566}
3567extern "C" {
3568    pub fn __fdimf(__x: f32, __y: f32) -> f32;
3569}
3570extern "C" {
3571    pub fn fmaxf(__x: f32, __y: f32) -> f32;
3572}
3573extern "C" {
3574    pub fn __fmaxf(__x: f32, __y: f32) -> f32;
3575}
3576extern "C" {
3577    pub fn fminf(__x: f32, __y: f32) -> f32;
3578}
3579extern "C" {
3580    pub fn __fminf(__x: f32, __y: f32) -> f32;
3581}
3582extern "C" {
3583    pub fn __fpclassifyf(__value: f32) -> ::std::os::raw::c_int;
3584}
3585extern "C" {
3586    pub fn __signbitf(__value: f32) -> ::std::os::raw::c_int;
3587}
3588extern "C" {
3589    pub fn fmaf(__x: f32, __y: f32, __z: f32) -> f32;
3590}
3591extern "C" {
3592    pub fn __fmaf(__x: f32, __y: f32, __z: f32) -> f32;
3593}
3594extern "C" {
3595    pub fn scalbf(__x: f32, __n: f32) -> f32;
3596}
3597extern "C" {
3598    pub fn __scalbf(__x: f32, __n: f32) -> f32;
3599}
3600extern "C" {
3601    pub fn acosl(__x: f64) -> f64;
3602}
3603extern "C" {
3604    pub fn __acosl(__x: f64) -> f64;
3605}
3606extern "C" {
3607    pub fn asinl(__x: f64) -> f64;
3608}
3609extern "C" {
3610    pub fn __asinl(__x: f64) -> f64;
3611}
3612extern "C" {
3613    pub fn atanl(__x: f64) -> f64;
3614}
3615extern "C" {
3616    pub fn __atanl(__x: f64) -> f64;
3617}
3618extern "C" {
3619    pub fn atan2l(__y: f64, __x: f64) -> f64;
3620}
3621extern "C" {
3622    pub fn __atan2l(__y: f64, __x: f64) -> f64;
3623}
3624extern "C" {
3625    pub fn cosl(__x: f64) -> f64;
3626}
3627extern "C" {
3628    pub fn __cosl(__x: f64) -> f64;
3629}
3630extern "C" {
3631    pub fn sinl(__x: f64) -> f64;
3632}
3633extern "C" {
3634    pub fn __sinl(__x: f64) -> f64;
3635}
3636extern "C" {
3637    pub fn tanl(__x: f64) -> f64;
3638}
3639extern "C" {
3640    pub fn __tanl(__x: f64) -> f64;
3641}
3642extern "C" {
3643    pub fn coshl(__x: f64) -> f64;
3644}
3645extern "C" {
3646    pub fn __coshl(__x: f64) -> f64;
3647}
3648extern "C" {
3649    pub fn sinhl(__x: f64) -> f64;
3650}
3651extern "C" {
3652    pub fn __sinhl(__x: f64) -> f64;
3653}
3654extern "C" {
3655    pub fn tanhl(__x: f64) -> f64;
3656}
3657extern "C" {
3658    pub fn __tanhl(__x: f64) -> f64;
3659}
3660extern "C" {
3661    pub fn acoshl(__x: f64) -> f64;
3662}
3663extern "C" {
3664    pub fn __acoshl(__x: f64) -> f64;
3665}
3666extern "C" {
3667    pub fn asinhl(__x: f64) -> f64;
3668}
3669extern "C" {
3670    pub fn __asinhl(__x: f64) -> f64;
3671}
3672extern "C" {
3673    pub fn atanhl(__x: f64) -> f64;
3674}
3675extern "C" {
3676    pub fn __atanhl(__x: f64) -> f64;
3677}
3678extern "C" {
3679    pub fn expl(__x: f64) -> f64;
3680}
3681extern "C" {
3682    pub fn __expl(__x: f64) -> f64;
3683}
3684extern "C" {
3685    pub fn frexpl(__x: f64, __exponent: *mut ::std::os::raw::c_int) -> f64;
3686}
3687extern "C" {
3688    pub fn __frexpl(__x: f64, __exponent: *mut ::std::os::raw::c_int) -> f64;
3689}
3690extern "C" {
3691    pub fn ldexpl(__x: f64, __exponent: ::std::os::raw::c_int) -> f64;
3692}
3693extern "C" {
3694    pub fn __ldexpl(__x: f64, __exponent: ::std::os::raw::c_int) -> f64;
3695}
3696extern "C" {
3697    pub fn logl(__x: f64) -> f64;
3698}
3699extern "C" {
3700    pub fn __logl(__x: f64) -> f64;
3701}
3702extern "C" {
3703    pub fn log10l(__x: f64) -> f64;
3704}
3705extern "C" {
3706    pub fn __log10l(__x: f64) -> f64;
3707}
3708extern "C" {
3709    pub fn modfl(__x: f64, __iptr: *mut f64) -> f64;
3710}
3711extern "C" {
3712    pub fn __modfl(__x: f64, __iptr: *mut f64) -> f64;
3713}
3714extern "C" {
3715    pub fn expm1l(__x: f64) -> f64;
3716}
3717extern "C" {
3718    pub fn __expm1l(__x: f64) -> f64;
3719}
3720extern "C" {
3721    pub fn log1pl(__x: f64) -> f64;
3722}
3723extern "C" {
3724    pub fn __log1pl(__x: f64) -> f64;
3725}
3726extern "C" {
3727    pub fn logbl(__x: f64) -> f64;
3728}
3729extern "C" {
3730    pub fn __logbl(__x: f64) -> f64;
3731}
3732extern "C" {
3733    pub fn exp2l(__x: f64) -> f64;
3734}
3735extern "C" {
3736    pub fn __exp2l(__x: f64) -> f64;
3737}
3738extern "C" {
3739    pub fn log2l(__x: f64) -> f64;
3740}
3741extern "C" {
3742    pub fn __log2l(__x: f64) -> f64;
3743}
3744extern "C" {
3745    pub fn powl(__x: f64, __y: f64) -> f64;
3746}
3747extern "C" {
3748    pub fn __powl(__x: f64, __y: f64) -> f64;
3749}
3750extern "C" {
3751    pub fn sqrtl(__x: f64) -> f64;
3752}
3753extern "C" {
3754    pub fn __sqrtl(__x: f64) -> f64;
3755}
3756extern "C" {
3757    pub fn hypotl(__x: f64, __y: f64) -> f64;
3758}
3759extern "C" {
3760    pub fn __hypotl(__x: f64, __y: f64) -> f64;
3761}
3762extern "C" {
3763    pub fn cbrtl(__x: f64) -> f64;
3764}
3765extern "C" {
3766    pub fn __cbrtl(__x: f64) -> f64;
3767}
3768extern "C" {
3769    pub fn ceill(__x: f64) -> f64;
3770}
3771extern "C" {
3772    pub fn __ceill(__x: f64) -> f64;
3773}
3774extern "C" {
3775    pub fn fabsl(__x: f64) -> f64;
3776}
3777extern "C" {
3778    pub fn __fabsl(__x: f64) -> f64;
3779}
3780extern "C" {
3781    pub fn floorl(__x: f64) -> f64;
3782}
3783extern "C" {
3784    pub fn __floorl(__x: f64) -> f64;
3785}
3786extern "C" {
3787    pub fn fmodl(__x: f64, __y: f64) -> f64;
3788}
3789extern "C" {
3790    pub fn __fmodl(__x: f64, __y: f64) -> f64;
3791}
3792extern "C" {
3793    pub fn __isinfl(__value: f64) -> ::std::os::raw::c_int;
3794}
3795extern "C" {
3796    pub fn __finitel(__value: f64) -> ::std::os::raw::c_int;
3797}
3798extern "C" {
3799    pub fn isinfl(__value: f64) -> ::std::os::raw::c_int;
3800}
3801extern "C" {
3802    pub fn finitel(__value: f64) -> ::std::os::raw::c_int;
3803}
3804extern "C" {
3805    pub fn dreml(__x: f64, __y: f64) -> f64;
3806}
3807extern "C" {
3808    pub fn __dreml(__x: f64, __y: f64) -> f64;
3809}
3810extern "C" {
3811    pub fn significandl(__x: f64) -> f64;
3812}
3813extern "C" {
3814    pub fn __significandl(__x: f64) -> f64;
3815}
3816extern "C" {
3817    pub fn copysignl(__x: f64, __y: f64) -> f64;
3818}
3819extern "C" {
3820    pub fn __copysignl(__x: f64, __y: f64) -> f64;
3821}
3822extern "C" {
3823    pub fn nanl(__tagb: *const ::std::os::raw::c_char) -> f64;
3824}
3825extern "C" {
3826    pub fn __nanl(__tagb: *const ::std::os::raw::c_char) -> f64;
3827}
3828extern "C" {
3829    pub fn __isnanl(__value: f64) -> ::std::os::raw::c_int;
3830}
3831extern "C" {
3832    pub fn isnanl(__value: f64) -> ::std::os::raw::c_int;
3833}
3834extern "C" {
3835    pub fn j0l(arg1: f64) -> f64;
3836}
3837extern "C" {
3838    pub fn __j0l(arg1: f64) -> f64;
3839}
3840extern "C" {
3841    pub fn j1l(arg1: f64) -> f64;
3842}
3843extern "C" {
3844    pub fn __j1l(arg1: f64) -> f64;
3845}
3846extern "C" {
3847    pub fn jnl(arg1: ::std::os::raw::c_int, arg2: f64) -> f64;
3848}
3849extern "C" {
3850    pub fn __jnl(arg1: ::std::os::raw::c_int, arg2: f64) -> f64;
3851}
3852extern "C" {
3853    pub fn y0l(arg1: f64) -> f64;
3854}
3855extern "C" {
3856    pub fn __y0l(arg1: f64) -> f64;
3857}
3858extern "C" {
3859    pub fn y1l(arg1: f64) -> f64;
3860}
3861extern "C" {
3862    pub fn __y1l(arg1: f64) -> f64;
3863}
3864extern "C" {
3865    pub fn ynl(arg1: ::std::os::raw::c_int, arg2: f64) -> f64;
3866}
3867extern "C" {
3868    pub fn __ynl(arg1: ::std::os::raw::c_int, arg2: f64) -> f64;
3869}
3870extern "C" {
3871    pub fn erfl(arg1: f64) -> f64;
3872}
3873extern "C" {
3874    pub fn __erfl(arg1: f64) -> f64;
3875}
3876extern "C" {
3877    pub fn erfcl(arg1: f64) -> f64;
3878}
3879extern "C" {
3880    pub fn __erfcl(arg1: f64) -> f64;
3881}
3882extern "C" {
3883    pub fn lgammal(arg1: f64) -> f64;
3884}
3885extern "C" {
3886    pub fn __lgammal(arg1: f64) -> f64;
3887}
3888extern "C" {
3889    pub fn tgammal(arg1: f64) -> f64;
3890}
3891extern "C" {
3892    pub fn __tgammal(arg1: f64) -> f64;
3893}
3894extern "C" {
3895    pub fn gammal(arg1: f64) -> f64;
3896}
3897extern "C" {
3898    pub fn __gammal(arg1: f64) -> f64;
3899}
3900extern "C" {
3901    pub fn lgammal_r(arg1: f64, __signgamp: *mut ::std::os::raw::c_int)
3902     -> f64;
3903}
3904extern "C" {
3905    pub fn __lgammal_r(arg1: f64, __signgamp: *mut ::std::os::raw::c_int)
3906     -> f64;
3907}
3908extern "C" {
3909    pub fn rintl(__x: f64) -> f64;
3910}
3911extern "C" {
3912    pub fn __rintl(__x: f64) -> f64;
3913}
3914extern "C" {
3915    pub fn nextafterl(__x: f64, __y: f64) -> f64;
3916}
3917extern "C" {
3918    pub fn __nextafterl(__x: f64, __y: f64) -> f64;
3919}
3920extern "C" {
3921    pub fn nexttowardl(__x: f64, __y: f64) -> f64;
3922}
3923extern "C" {
3924    pub fn __nexttowardl(__x: f64, __y: f64) -> f64;
3925}
3926extern "C" {
3927    pub fn remainderl(__x: f64, __y: f64) -> f64;
3928}
3929extern "C" {
3930    pub fn __remainderl(__x: f64, __y: f64) -> f64;
3931}
3932extern "C" {
3933    pub fn scalbnl(__x: f64, __n: ::std::os::raw::c_int) -> f64;
3934}
3935extern "C" {
3936    pub fn __scalbnl(__x: f64, __n: ::std::os::raw::c_int) -> f64;
3937}
3938extern "C" {
3939    pub fn ilogbl(__x: f64) -> ::std::os::raw::c_int;
3940}
3941extern "C" {
3942    pub fn __ilogbl(__x: f64) -> ::std::os::raw::c_int;
3943}
3944extern "C" {
3945    pub fn scalblnl(__x: f64, __n: ::std::os::raw::c_long) -> f64;
3946}
3947extern "C" {
3948    pub fn __scalblnl(__x: f64, __n: ::std::os::raw::c_long) -> f64;
3949}
3950extern "C" {
3951    pub fn nearbyintl(__x: f64) -> f64;
3952}
3953extern "C" {
3954    pub fn __nearbyintl(__x: f64) -> f64;
3955}
3956extern "C" {
3957    pub fn roundl(__x: f64) -> f64;
3958}
3959extern "C" {
3960    pub fn __roundl(__x: f64) -> f64;
3961}
3962extern "C" {
3963    pub fn truncl(__x: f64) -> f64;
3964}
3965extern "C" {
3966    pub fn __truncl(__x: f64) -> f64;
3967}
3968extern "C" {
3969    pub fn remquol(__x: f64, __y: f64, __quo: *mut ::std::os::raw::c_int)
3970     -> f64;
3971}
3972extern "C" {
3973    pub fn __remquol(__x: f64, __y: f64, __quo: *mut ::std::os::raw::c_int)
3974     -> f64;
3975}
3976extern "C" {
3977    pub fn lrintl(__x: f64) -> ::std::os::raw::c_long;
3978}
3979extern "C" {
3980    pub fn __lrintl(__x: f64) -> ::std::os::raw::c_long;
3981}
3982extern "C" {
3983    pub fn llrintl(__x: f64) -> ::std::os::raw::c_longlong;
3984}
3985extern "C" {
3986    pub fn __llrintl(__x: f64) -> ::std::os::raw::c_longlong;
3987}
3988extern "C" {
3989    pub fn lroundl(__x: f64) -> ::std::os::raw::c_long;
3990}
3991extern "C" {
3992    pub fn __lroundl(__x: f64) -> ::std::os::raw::c_long;
3993}
3994extern "C" {
3995    pub fn llroundl(__x: f64) -> ::std::os::raw::c_longlong;
3996}
3997extern "C" {
3998    pub fn __llroundl(__x: f64) -> ::std::os::raw::c_longlong;
3999}
4000extern "C" {
4001    pub fn fdiml(__x: f64, __y: f64) -> f64;
4002}
4003extern "C" {
4004    pub fn __fdiml(__x: f64, __y: f64) -> f64;
4005}
4006extern "C" {
4007    pub fn fmaxl(__x: f64, __y: f64) -> f64;
4008}
4009extern "C" {
4010    pub fn __fmaxl(__x: f64, __y: f64) -> f64;
4011}
4012extern "C" {
4013    pub fn fminl(__x: f64, __y: f64) -> f64;
4014}
4015extern "C" {
4016    pub fn __fminl(__x: f64, __y: f64) -> f64;
4017}
4018extern "C" {
4019    pub fn __fpclassifyl(__value: f64) -> ::std::os::raw::c_int;
4020}
4021extern "C" {
4022    pub fn __signbitl(__value: f64) -> ::std::os::raw::c_int;
4023}
4024extern "C" {
4025    pub fn fmal(__x: f64, __y: f64, __z: f64) -> f64;
4026}
4027extern "C" {
4028    pub fn __fmal(__x: f64, __y: f64, __z: f64) -> f64;
4029}
4030extern "C" {
4031    pub fn scalbl(__x: f64, __n: f64) -> f64;
4032}
4033extern "C" {
4034    pub fn __scalbl(__x: f64, __n: f64) -> f64;
4035}
4036extern "C" {
4037    #[link_name = "signgam"]
4038    pub static mut signgam: ::std::os::raw::c_int;
4039}
4040pub const FP_NAN: _bindgen_ty_1 = _bindgen_ty_1::FP_NAN;
4041pub const FP_INFINITE: _bindgen_ty_1 = _bindgen_ty_1::FP_INFINITE;
4042pub const FP_ZERO: _bindgen_ty_1 = _bindgen_ty_1::FP_ZERO;
4043pub const FP_SUBNORMAL: _bindgen_ty_1 = _bindgen_ty_1::FP_SUBNORMAL;
4044pub const FP_NORMAL: _bindgen_ty_1 = _bindgen_ty_1::FP_NORMAL;
4045#[repr(u32)]
4046#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
4047pub enum _bindgen_ty_1 {
4048    FP_NAN = 0,
4049    FP_INFINITE = 1,
4050    FP_ZERO = 2,
4051    FP_SUBNORMAL = 3,
4052    FP_NORMAL = 4,
4053}
4054#[repr(i32)]
4055#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
4056pub enum _LIB_VERSION_TYPE {
4057    _IEEE_ = -1,
4058    _SVID_ = 0,
4059    _XOPEN_ = 1,
4060    _POSIX_ = 2,
4061    _ISOC_ = 3,
4062}
4063extern "C" {
4064    #[link_name = "_LIB_VERSION"]
4065    pub static mut _LIB_VERSION: _LIB_VERSION_TYPE;
4066}
4067#[repr(C)]
4068#[derive(Copy)]
4069pub struct exception {
4070    pub type_: ::std::os::raw::c_int,
4071    pub name: *mut ::std::os::raw::c_char,
4072    pub arg1: f64,
4073    pub arg2: f64,
4074    pub retval: f64,
4075}
4076#[test]
4077fn bindgen_test_layout_exception() {
4078    assert_eq!(::std::mem::size_of::<exception>() , 40usize , concat ! (
4079               "Size of: " , stringify ! ( exception ) ));
4080    assert_eq! (::std::mem::align_of::<exception>() , 8usize , concat ! (
4081                "Alignment of " , stringify ! ( exception ) ));
4082    assert_eq! (unsafe {
4083                & ( * ( 0 as * const exception ) ) . type_ as * const _ as
4084                usize } , 0usize , concat ! (
4085                "Alignment of field: " , stringify ! ( exception ) , "::" ,
4086                stringify ! ( type_ ) ));
4087    assert_eq! (unsafe {
4088                & ( * ( 0 as * const exception ) ) . name as * const _ as
4089                usize } , 8usize , concat ! (
4090                "Alignment of field: " , stringify ! ( exception ) , "::" ,
4091                stringify ! ( name ) ));
4092    assert_eq! (unsafe {
4093                & ( * ( 0 as * const exception ) ) . arg1 as * const _ as
4094                usize } , 16usize , concat ! (
4095                "Alignment of field: " , stringify ! ( exception ) , "::" ,
4096                stringify ! ( arg1 ) ));
4097    assert_eq! (unsafe {
4098                & ( * ( 0 as * const exception ) ) . arg2 as * const _ as
4099                usize } , 24usize , concat ! (
4100                "Alignment of field: " , stringify ! ( exception ) , "::" ,
4101                stringify ! ( arg2 ) ));
4102    assert_eq! (unsafe {
4103                & ( * ( 0 as * const exception ) ) . retval as * const _ as
4104                usize } , 32usize , concat ! (
4105                "Alignment of field: " , stringify ! ( exception ) , "::" ,
4106                stringify ! ( retval ) ));
4107}
4108impl Clone for exception {
4109    fn clone(&self) -> Self { *self }
4110}
4111extern "C" {
4112    pub fn matherr(__exc: *mut exception) -> ::std::os::raw::c_int;
4113}
4114#[repr(C)]
4115#[derive(Copy)]
4116pub struct tm {
4117    pub tm_sec: ::std::os::raw::c_int,
4118    pub tm_min: ::std::os::raw::c_int,
4119    pub tm_hour: ::std::os::raw::c_int,
4120    pub tm_mday: ::std::os::raw::c_int,
4121    pub tm_mon: ::std::os::raw::c_int,
4122    pub tm_year: ::std::os::raw::c_int,
4123    pub tm_wday: ::std::os::raw::c_int,
4124    pub tm_yday: ::std::os::raw::c_int,
4125    pub tm_isdst: ::std::os::raw::c_int,
4126    pub tm_gmtoff: ::std::os::raw::c_long,
4127    pub tm_zone: *const ::std::os::raw::c_char,
4128}
4129#[test]
4130fn bindgen_test_layout_tm() {
4131    assert_eq!(::std::mem::size_of::<tm>() , 56usize , concat ! (
4132               "Size of: " , stringify ! ( tm ) ));
4133    assert_eq! (::std::mem::align_of::<tm>() , 8usize , concat ! (
4134                "Alignment of " , stringify ! ( tm ) ));
4135    assert_eq! (unsafe {
4136                & ( * ( 0 as * const tm ) ) . tm_sec as * const _ as usize } ,
4137                0usize , concat ! (
4138                "Alignment of field: " , stringify ! ( tm ) , "::" , stringify
4139                ! ( tm_sec ) ));
4140    assert_eq! (unsafe {
4141                & ( * ( 0 as * const tm ) ) . tm_min as * const _ as usize } ,
4142                4usize , concat ! (
4143                "Alignment of field: " , stringify ! ( tm ) , "::" , stringify
4144                ! ( tm_min ) ));
4145    assert_eq! (unsafe {
4146                & ( * ( 0 as * const tm ) ) . tm_hour as * const _ as usize }
4147                , 8usize , concat ! (
4148                "Alignment of field: " , stringify ! ( tm ) , "::" , stringify
4149                ! ( tm_hour ) ));
4150    assert_eq! (unsafe {
4151                & ( * ( 0 as * const tm ) ) . tm_mday as * const _ as usize }
4152                , 12usize , concat ! (
4153                "Alignment of field: " , stringify ! ( tm ) , "::" , stringify
4154                ! ( tm_mday ) ));
4155    assert_eq! (unsafe {
4156                & ( * ( 0 as * const tm ) ) . tm_mon as * const _ as usize } ,
4157                16usize , concat ! (
4158                "Alignment of field: " , stringify ! ( tm ) , "::" , stringify
4159                ! ( tm_mon ) ));
4160    assert_eq! (unsafe {
4161                & ( * ( 0 as * const tm ) ) . tm_year as * const _ as usize }
4162                , 20usize , concat ! (
4163                "Alignment of field: " , stringify ! ( tm ) , "::" , stringify
4164                ! ( tm_year ) ));
4165    assert_eq! (unsafe {
4166                & ( * ( 0 as * const tm ) ) . tm_wday as * const _ as usize }
4167                , 24usize , concat ! (
4168                "Alignment of field: " , stringify ! ( tm ) , "::" , stringify
4169                ! ( tm_wday ) ));
4170    assert_eq! (unsafe {
4171                & ( * ( 0 as * const tm ) ) . tm_yday as * const _ as usize }
4172                , 28usize , concat ! (
4173                "Alignment of field: " , stringify ! ( tm ) , "::" , stringify
4174                ! ( tm_yday ) ));
4175    assert_eq! (unsafe {
4176                & ( * ( 0 as * const tm ) ) . tm_isdst as * const _ as usize }
4177                , 32usize , concat ! (
4178                "Alignment of field: " , stringify ! ( tm ) , "::" , stringify
4179                ! ( tm_isdst ) ));
4180    assert_eq! (unsafe {
4181                & ( * ( 0 as * const tm ) ) . tm_gmtoff as * const _ as usize
4182                } , 40usize , concat ! (
4183                "Alignment of field: " , stringify ! ( tm ) , "::" , stringify
4184                ! ( tm_gmtoff ) ));
4185    assert_eq! (unsafe {
4186                & ( * ( 0 as * const tm ) ) . tm_zone as * const _ as usize }
4187                , 48usize , concat ! (
4188                "Alignment of field: " , stringify ! ( tm ) , "::" , stringify
4189                ! ( tm_zone ) ));
4190}
4191impl Clone for tm {
4192    fn clone(&self) -> Self { *self }
4193}
4194#[repr(C)]
4195#[derive(Copy)]
4196pub struct itimerspec {
4197    pub it_interval: timespec,
4198    pub it_value: timespec,
4199}
4200#[test]
4201fn bindgen_test_layout_itimerspec() {
4202    assert_eq!(::std::mem::size_of::<itimerspec>() , 32usize , concat ! (
4203               "Size of: " , stringify ! ( itimerspec ) ));
4204    assert_eq! (::std::mem::align_of::<itimerspec>() , 8usize , concat ! (
4205                "Alignment of " , stringify ! ( itimerspec ) ));
4206    assert_eq! (unsafe {
4207                & ( * ( 0 as * const itimerspec ) ) . it_interval as * const _
4208                as usize } , 0usize , concat ! (
4209                "Alignment of field: " , stringify ! ( itimerspec ) , "::" ,
4210                stringify ! ( it_interval ) ));
4211    assert_eq! (unsafe {
4212                & ( * ( 0 as * const itimerspec ) ) . it_value as * const _ as
4213                usize } , 16usize , concat ! (
4214                "Alignment of field: " , stringify ! ( itimerspec ) , "::" ,
4215                stringify ! ( it_value ) ));
4216}
4217impl Clone for itimerspec {
4218    fn clone(&self) -> Self { *self }
4219}
4220#[repr(C)]
4221#[derive(Debug, Copy, Clone)]
4222pub struct sigevent {
4223    _unused: [u8; 0],
4224}
4225extern "C" {
4226    pub fn clock() -> clock_t;
4227}
4228extern "C" {
4229    pub fn time(__timer: *mut time_t) -> time_t;
4230}
4231extern "C" {
4232    pub fn difftime(__time1: time_t, __time0: time_t) -> f64;
4233}
4234extern "C" {
4235    pub fn mktime(__tp: *mut tm) -> time_t;
4236}
4237extern "C" {
4238    pub fn strftime(__s: *mut ::std::os::raw::c_char, __maxsize: usize,
4239                    __format: *const ::std::os::raw::c_char, __tp: *const tm)
4240     -> usize;
4241}
4242#[repr(C)]
4243#[derive(Copy)]
4244pub struct __locale_struct {
4245    pub __locales: [*mut __locale_data; 13usize],
4246    pub __ctype_b: *const ::std::os::raw::c_ushort,
4247    pub __ctype_tolower: *const ::std::os::raw::c_int,
4248    pub __ctype_toupper: *const ::std::os::raw::c_int,
4249    pub __names: [*const ::std::os::raw::c_char; 13usize],
4250}
4251#[test]
4252fn bindgen_test_layout___locale_struct() {
4253    assert_eq!(::std::mem::size_of::<__locale_struct>() , 232usize , concat !
4254               ( "Size of: " , stringify ! ( __locale_struct ) ));
4255    assert_eq! (::std::mem::align_of::<__locale_struct>() , 8usize , concat !
4256                ( "Alignment of " , stringify ! ( __locale_struct ) ));
4257    assert_eq! (unsafe {
4258                & ( * ( 0 as * const __locale_struct ) ) . __locales as *
4259                const _ as usize } , 0usize , concat ! (
4260                "Alignment of field: " , stringify ! ( __locale_struct ) ,
4261                "::" , stringify ! ( __locales ) ));
4262    assert_eq! (unsafe {
4263                & ( * ( 0 as * const __locale_struct ) ) . __ctype_b as *
4264                const _ as usize } , 104usize , concat ! (
4265                "Alignment of field: " , stringify ! ( __locale_struct ) ,
4266                "::" , stringify ! ( __ctype_b ) ));
4267    assert_eq! (unsafe {
4268                & ( * ( 0 as * const __locale_struct ) ) . __ctype_tolower as
4269                * const _ as usize } , 112usize , concat ! (
4270                "Alignment of field: " , stringify ! ( __locale_struct ) ,
4271                "::" , stringify ! ( __ctype_tolower ) ));
4272    assert_eq! (unsafe {
4273                & ( * ( 0 as * const __locale_struct ) ) . __ctype_toupper as
4274                * const _ as usize } , 120usize , concat ! (
4275                "Alignment of field: " , stringify ! ( __locale_struct ) ,
4276                "::" , stringify ! ( __ctype_toupper ) ));
4277    assert_eq! (unsafe {
4278                & ( * ( 0 as * const __locale_struct ) ) . __names as * const
4279                _ as usize } , 128usize , concat ! (
4280                "Alignment of field: " , stringify ! ( __locale_struct ) ,
4281                "::" , stringify ! ( __names ) ));
4282}
4283impl Clone for __locale_struct {
4284    fn clone(&self) -> Self { *self }
4285}
4286pub type __locale_t = *mut __locale_struct;
4287pub type locale_t = __locale_t;
4288extern "C" {
4289    pub fn strftime_l(__s: *mut ::std::os::raw::c_char, __maxsize: usize,
4290                      __format: *const ::std::os::raw::c_char,
4291                      __tp: *const tm, __loc: __locale_t) -> usize;
4292}
4293extern "C" {
4294    pub fn gmtime(__timer: *const time_t) -> *mut tm;
4295}
4296extern "C" {
4297    pub fn localtime(__timer: *const time_t) -> *mut tm;
4298}
4299extern "C" {
4300    pub fn gmtime_r(__timer: *const time_t, __tp: *mut tm) -> *mut tm;
4301}
4302extern "C" {
4303    pub fn localtime_r(__timer: *const time_t, __tp: *mut tm) -> *mut tm;
4304}
4305extern "C" {
4306    pub fn asctime(__tp: *const tm) -> *mut ::std::os::raw::c_char;
4307}
4308extern "C" {
4309    pub fn ctime(__timer: *const time_t) -> *mut ::std::os::raw::c_char;
4310}
4311extern "C" {
4312    pub fn asctime_r(__tp: *const tm, __buf: *mut ::std::os::raw::c_char)
4313     -> *mut ::std::os::raw::c_char;
4314}
4315extern "C" {
4316    pub fn ctime_r(__timer: *const time_t, __buf: *mut ::std::os::raw::c_char)
4317     -> *mut ::std::os::raw::c_char;
4318}
4319extern "C" {
4320    #[link_name = "__tzname"]
4321    pub static mut __tzname: [*mut ::std::os::raw::c_char; 2usize];
4322}
4323extern "C" {
4324    #[link_name = "__daylight"]
4325    pub static mut __daylight: ::std::os::raw::c_int;
4326}
4327extern "C" {
4328    #[link_name = "__timezone"]
4329    pub static mut __timezone: ::std::os::raw::c_long;
4330}
4331extern "C" {
4332    #[link_name = "tzname"]
4333    pub static mut tzname: [*mut ::std::os::raw::c_char; 2usize];
4334}
4335extern "C" {
4336    pub fn tzset();
4337}
4338extern "C" {
4339    #[link_name = "daylight"]
4340    pub static mut daylight: ::std::os::raw::c_int;
4341}
4342extern "C" {
4343    #[link_name = "timezone"]
4344    pub static mut timezone: ::std::os::raw::c_long;
4345}
4346extern "C" {
4347    pub fn stime(__when: *const time_t) -> ::std::os::raw::c_int;
4348}
4349extern "C" {
4350    pub fn timegm(__tp: *mut tm) -> time_t;
4351}
4352extern "C" {
4353    pub fn timelocal(__tp: *mut tm) -> time_t;
4354}
4355extern "C" {
4356    pub fn dysize(__year: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
4357}
4358extern "C" {
4359    pub fn nanosleep(__requested_time: *const timespec,
4360                     __remaining: *mut timespec) -> ::std::os::raw::c_int;
4361}
4362extern "C" {
4363    pub fn clock_getres(__clock_id: clockid_t, __res: *mut timespec)
4364     -> ::std::os::raw::c_int;
4365}
4366extern "C" {
4367    pub fn clock_gettime(__clock_id: clockid_t, __tp: *mut timespec)
4368     -> ::std::os::raw::c_int;
4369}
4370extern "C" {
4371    pub fn clock_settime(__clock_id: clockid_t, __tp: *const timespec)
4372     -> ::std::os::raw::c_int;
4373}
4374extern "C" {
4375    pub fn clock_nanosleep(__clock_id: clockid_t,
4376                           __flags: ::std::os::raw::c_int,
4377                           __req: *const timespec, __rem: *mut timespec)
4378     -> ::std::os::raw::c_int;
4379}
4380extern "C" {
4381    pub fn clock_getcpuclockid(__pid: pid_t, __clock_id: *mut clockid_t)
4382     -> ::std::os::raw::c_int;
4383}
4384extern "C" {
4385    pub fn timer_create(__clock_id: clockid_t, __evp: *mut sigevent,
4386                        __timerid: *mut timer_t) -> ::std::os::raw::c_int;
4387}
4388extern "C" {
4389    pub fn timer_delete(__timerid: timer_t) -> ::std::os::raw::c_int;
4390}
4391extern "C" {
4392    pub fn timer_settime(__timerid: timer_t, __flags: ::std::os::raw::c_int,
4393                         __value: *const itimerspec,
4394                         __ovalue: *mut itimerspec) -> ::std::os::raw::c_int;
4395}
4396extern "C" {
4397    pub fn timer_gettime(__timerid: timer_t, __value: *mut itimerspec)
4398     -> ::std::os::raw::c_int;
4399}
4400extern "C" {
4401    pub fn timer_getoverrun(__timerid: timer_t) -> ::std::os::raw::c_int;
4402}
4403extern "C" {
4404    pub fn timespec_get(__ts: *mut timespec, __base: ::std::os::raw::c_int)
4405     -> ::std::os::raw::c_int;
4406}
4407extern "C" {
4408    pub fn memcpy(__dest: *mut ::std::os::raw::c_void,
4409                  __src: *const ::std::os::raw::c_void, __n: usize)
4410     -> *mut ::std::os::raw::c_void;
4411}
4412extern "C" {
4413    pub fn memmove(__dest: *mut ::std::os::raw::c_void,
4414                   __src: *const ::std::os::raw::c_void, __n: usize)
4415     -> *mut ::std::os::raw::c_void;
4416}
4417extern "C" {
4418    pub fn memccpy(__dest: *mut ::std::os::raw::c_void,
4419                   __src: *const ::std::os::raw::c_void,
4420                   __c: ::std::os::raw::c_int, __n: usize)
4421     -> *mut ::std::os::raw::c_void;
4422}
4423extern "C" {
4424    pub fn memset(__s: *mut ::std::os::raw::c_void,
4425                  __c: ::std::os::raw::c_int, __n: usize)
4426     -> *mut ::std::os::raw::c_void;
4427}
4428extern "C" {
4429    pub fn memcmp(__s1: *const ::std::os::raw::c_void,
4430                  __s2: *const ::std::os::raw::c_void, __n: usize)
4431     -> ::std::os::raw::c_int;
4432}
4433extern "C" {
4434    pub fn memchr(__s: *const ::std::os::raw::c_void,
4435                  __c: ::std::os::raw::c_int, __n: usize)
4436     -> *mut ::std::os::raw::c_void;
4437}
4438extern "C" {
4439    pub fn strcpy(__dest: *mut ::std::os::raw::c_char,
4440                  __src: *const ::std::os::raw::c_char)
4441     -> *mut ::std::os::raw::c_char;
4442}
4443extern "C" {
4444    pub fn strncpy(__dest: *mut ::std::os::raw::c_char,
4445                   __src: *const ::std::os::raw::c_char, __n: usize)
4446     -> *mut ::std::os::raw::c_char;
4447}
4448extern "C" {
4449    pub fn strcat(__dest: *mut ::std::os::raw::c_char,
4450                  __src: *const ::std::os::raw::c_char)
4451     -> *mut ::std::os::raw::c_char;
4452}
4453extern "C" {
4454    pub fn strncat(__dest: *mut ::std::os::raw::c_char,
4455                   __src: *const ::std::os::raw::c_char, __n: usize)
4456     -> *mut ::std::os::raw::c_char;
4457}
4458extern "C" {
4459    pub fn strcmp(__s1: *const ::std::os::raw::c_char,
4460                  __s2: *const ::std::os::raw::c_char)
4461     -> ::std::os::raw::c_int;
4462}
4463extern "C" {
4464    pub fn strncmp(__s1: *const ::std::os::raw::c_char,
4465                   __s2: *const ::std::os::raw::c_char, __n: usize)
4466     -> ::std::os::raw::c_int;
4467}
4468extern "C" {
4469    pub fn strcoll(__s1: *const ::std::os::raw::c_char,
4470                   __s2: *const ::std::os::raw::c_char)
4471     -> ::std::os::raw::c_int;
4472}
4473extern "C" {
4474    pub fn strxfrm(__dest: *mut ::std::os::raw::c_char,
4475                   __src: *const ::std::os::raw::c_char, __n: usize)
4476     -> ::std::os::raw::c_ulong;
4477}
4478extern "C" {
4479    pub fn strcoll_l(__s1: *const ::std::os::raw::c_char,
4480                     __s2: *const ::std::os::raw::c_char, __l: __locale_t)
4481     -> ::std::os::raw::c_int;
4482}
4483extern "C" {
4484    pub fn strxfrm_l(__dest: *mut ::std::os::raw::c_char,
4485                     __src: *const ::std::os::raw::c_char, __n: usize,
4486                     __l: __locale_t) -> usize;
4487}
4488extern "C" {
4489    pub fn strdup(__s: *const ::std::os::raw::c_char)
4490     -> *mut ::std::os::raw::c_char;
4491}
4492extern "C" {
4493    pub fn strndup(__string: *const ::std::os::raw::c_char, __n: usize)
4494     -> *mut ::std::os::raw::c_char;
4495}
4496extern "C" {
4497    pub fn strchr(__s: *const ::std::os::raw::c_char,
4498                  __c: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char;
4499}
4500extern "C" {
4501    pub fn strrchr(__s: *const ::std::os::raw::c_char,
4502                   __c: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char;
4503}
4504extern "C" {
4505    pub fn strcspn(__s: *const ::std::os::raw::c_char,
4506                   __reject: *const ::std::os::raw::c_char)
4507     -> ::std::os::raw::c_ulong;
4508}
4509extern "C" {
4510    pub fn strspn(__s: *const ::std::os::raw::c_char,
4511                  __accept: *const ::std::os::raw::c_char)
4512     -> ::std::os::raw::c_ulong;
4513}
4514extern "C" {
4515    pub fn strpbrk(__s: *const ::std::os::raw::c_char,
4516                   __accept: *const ::std::os::raw::c_char)
4517     -> *mut ::std::os::raw::c_char;
4518}
4519extern "C" {
4520    pub fn strstr(__haystack: *const ::std::os::raw::c_char,
4521                  __needle: *const ::std::os::raw::c_char)
4522     -> *mut ::std::os::raw::c_char;
4523}
4524extern "C" {
4525    pub fn strtok(__s: *mut ::std::os::raw::c_char,
4526                  __delim: *const ::std::os::raw::c_char)
4527     -> *mut ::std::os::raw::c_char;
4528}
4529extern "C" {
4530    pub fn __strtok_r(__s: *mut ::std::os::raw::c_char,
4531                      __delim: *const ::std::os::raw::c_char,
4532                      __save_ptr: *mut *mut ::std::os::raw::c_char)
4533     -> *mut ::std::os::raw::c_char;
4534}
4535extern "C" {
4536    pub fn strtok_r(__s: *mut ::std::os::raw::c_char,
4537                    __delim: *const ::std::os::raw::c_char,
4538                    __save_ptr: *mut *mut ::std::os::raw::c_char)
4539     -> *mut ::std::os::raw::c_char;
4540}
4541extern "C" {
4542    pub fn strlen(__s: *const ::std::os::raw::c_char)
4543     -> ::std::os::raw::c_ulong;
4544}
4545extern "C" {
4546    pub fn strnlen(__string: *const ::std::os::raw::c_char, __maxlen: usize)
4547     -> usize;
4548}
4549extern "C" {
4550    pub fn strerror(__errnum: ::std::os::raw::c_int)
4551     -> *mut ::std::os::raw::c_char;
4552}
4553extern "C" {
4554    #[link_name = "__xpg_strerror_r"]
4555    pub fn strerror_r(__errnum: ::std::os::raw::c_int,
4556                      __buf: *mut ::std::os::raw::c_char, __buflen: usize)
4557     -> ::std::os::raw::c_int;
4558}
4559extern "C" {
4560    pub fn strerror_l(__errnum: ::std::os::raw::c_int, __l: __locale_t)
4561     -> *mut ::std::os::raw::c_char;
4562}
4563extern "C" {
4564    pub fn __bzero(__s: *mut ::std::os::raw::c_void, __n: usize);
4565}
4566extern "C" {
4567    pub fn bcopy(__src: *const ::std::os::raw::c_void,
4568                 __dest: *mut ::std::os::raw::c_void, __n: usize);
4569}
4570extern "C" {
4571    pub fn bzero(__s: *mut ::std::os::raw::c_void, __n: usize);
4572}
4573extern "C" {
4574    pub fn bcmp(__s1: *const ::std::os::raw::c_void,
4575                __s2: *const ::std::os::raw::c_void, __n: usize)
4576     -> ::std::os::raw::c_int;
4577}
4578extern "C" {
4579    pub fn index(__s: *const ::std::os::raw::c_char,
4580                 __c: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char;
4581}
4582extern "C" {
4583    pub fn rindex(__s: *const ::std::os::raw::c_char,
4584                  __c: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char;
4585}
4586extern "C" {
4587    pub fn ffs(__i: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
4588}
4589extern "C" {
4590    pub fn strcasecmp(__s1: *const ::std::os::raw::c_char,
4591                      __s2: *const ::std::os::raw::c_char)
4592     -> ::std::os::raw::c_int;
4593}
4594extern "C" {
4595    pub fn strncasecmp(__s1: *const ::std::os::raw::c_char,
4596                       __s2: *const ::std::os::raw::c_char, __n: usize)
4597     -> ::std::os::raw::c_int;
4598}
4599extern "C" {
4600    pub fn strsep(__stringp: *mut *mut ::std::os::raw::c_char,
4601                  __delim: *const ::std::os::raw::c_char)
4602     -> *mut ::std::os::raw::c_char;
4603}
4604extern "C" {
4605    pub fn strsignal(__sig: ::std::os::raw::c_int)
4606     -> *mut ::std::os::raw::c_char;
4607}
4608extern "C" {
4609    pub fn __stpcpy(__dest: *mut ::std::os::raw::c_char,
4610                    __src: *const ::std::os::raw::c_char)
4611     -> *mut ::std::os::raw::c_char;
4612}
4613extern "C" {
4614    pub fn stpcpy(__dest: *mut ::std::os::raw::c_char,
4615                  __src: *const ::std::os::raw::c_char)
4616     -> *mut ::std::os::raw::c_char;
4617}
4618extern "C" {
4619    pub fn __stpncpy(__dest: *mut ::std::os::raw::c_char,
4620                     __src: *const ::std::os::raw::c_char, __n: usize)
4621     -> *mut ::std::os::raw::c_char;
4622}
4623extern "C" {
4624    pub fn stpncpy(__dest: *mut ::std::os::raw::c_char,
4625                   __src: *const ::std::os::raw::c_char, __n: usize)
4626     -> *mut ::std::os::raw::c_char;
4627}
4628#[repr(C)]
4629#[derive(Copy)]
4630pub struct max_align_t {
4631    pub __max_align_ll: ::std::os::raw::c_longlong,
4632    pub __bindgen_padding_0: u64,
4633    pub __max_align_ld: f64,
4634}
4635#[test]
4636fn bindgen_test_layout_max_align_t() {
4637    assert_eq!(::std::mem::size_of::<max_align_t>() , 32usize , concat ! (
4638               "Size of: " , stringify ! ( max_align_t ) ));
4639    assert_eq! (unsafe {
4640                & ( * ( 0 as * const max_align_t ) ) . __max_align_ll as *
4641                const _ as usize } , 0usize , concat ! (
4642                "Alignment of field: " , stringify ! ( max_align_t ) , "::" ,
4643                stringify ! ( __max_align_ll ) ));
4644    assert_eq! (unsafe {
4645                & ( * ( 0 as * const max_align_t ) ) . __max_align_ld as *
4646                const _ as usize } , 16usize , concat ! (
4647                "Alignment of field: " , stringify ! ( max_align_t ) , "::" ,
4648                stringify ! ( __max_align_ld ) ));
4649}
4650impl Clone for max_align_t {
4651    fn clone(&self) -> Self { *self }
4652}
4653pub type THErrorHandlerFunction =
4654    ::std::option::Option<unsafe extern "C" fn(msg:
4655                                                   *const ::std::os::raw::c_char,
4656                                               data:
4657                                                   *mut ::std::os::raw::c_void)>;
4658pub type THArgErrorHandlerFunction =
4659    ::std::option::Option<unsafe extern "C" fn(argNumber:
4660                                                   ::std::os::raw::c_int,
4661                                               msg:
4662                                                   *const ::std::os::raw::c_char,
4663                                               data:
4664                                                   *mut ::std::os::raw::c_void)>;
4665#[repr(C)]
4666pub struct THDescBuff {
4667    pub str: [::std::os::raw::c_char; 64usize],
4668}
4669#[test]
4670fn bindgen_test_layout_THDescBuff() {
4671    assert_eq!(::std::mem::size_of::<THDescBuff>() , 64usize , concat ! (
4672               "Size of: " , stringify ! ( THDescBuff ) ));
4673    assert_eq! (::std::mem::align_of::<THDescBuff>() , 1usize , concat ! (
4674                "Alignment of " , stringify ! ( THDescBuff ) ));
4675    assert_eq! (unsafe {
4676                & ( * ( 0 as * const THDescBuff ) ) . str as * const _ as
4677                usize } , 0usize , concat ! (
4678                "Alignment of field: " , stringify ! ( THDescBuff ) , "::" ,
4679                stringify ! ( str ) ));
4680}
4681extern "C" {
4682    pub fn THLog1p(x: f64) -> f64;
4683}
4684extern "C" {
4685    pub fn _THSizeDesc(size: *const ::std::os::raw::c_long,
4686                       ndim: ::std::os::raw::c_long) -> THDescBuff;
4687}
4688extern "C" {
4689    pub fn _THError(file: *const ::std::os::raw::c_char,
4690                    line: ::std::os::raw::c_int,
4691                    fmt: *const ::std::os::raw::c_char, ...);
4692}
4693extern "C" {
4694    pub fn _THAssertionFailed(file: *const ::std::os::raw::c_char,
4695                              line: ::std::os::raw::c_int,
4696                              exp: *const ::std::os::raw::c_char,
4697                              fmt: *const ::std::os::raw::c_char, ...);
4698}
4699extern "C" {
4700    pub fn THSetErrorHandler(new_handler: THErrorHandlerFunction,
4701                             data: *mut ::std::os::raw::c_void);
4702}
4703extern "C" {
4704    pub fn THSetDefaultErrorHandler(new_handler: THErrorHandlerFunction,
4705                                    data: *mut ::std::os::raw::c_void);
4706}
4707extern "C" {
4708    pub fn _THArgCheck(file: *const ::std::os::raw::c_char,
4709                       line: ::std::os::raw::c_int,
4710                       condition: ::std::os::raw::c_int,
4711                       argNumber: ::std::os::raw::c_int,
4712                       fmt: *const ::std::os::raw::c_char, ...);
4713}
4714extern "C" {
4715    pub fn THSetArgErrorHandler(new_handler: THArgErrorHandlerFunction,
4716                                data: *mut ::std::os::raw::c_void);
4717}
4718extern "C" {
4719    pub fn THSetDefaultArgErrorHandler(new_handler: THArgErrorHandlerFunction,
4720                                       data: *mut ::std::os::raw::c_void);
4721}
4722extern "C" {
4723    pub fn THAlloc(size: isize) -> *mut ::std::os::raw::c_void;
4724}
4725extern "C" {
4726    pub fn THRealloc(ptr: *mut ::std::os::raw::c_void, size: isize)
4727     -> *mut ::std::os::raw::c_void;
4728}
4729extern "C" {
4730    pub fn THFree(ptr: *mut ::std::os::raw::c_void);
4731}
4732extern "C" {
4733    pub fn THSetGCHandler(torchGCHandlerFunction:
4734                              ::std::option::Option<unsafe extern "C" fn(data:
4735                                                                             *mut ::std::os::raw::c_void)>,
4736                          data: *mut ::std::os::raw::c_void);
4737}
4738extern "C" {
4739    pub fn THHeapUpdate(size: isize);
4740}
4741extern "C" {
4742    pub fn THSetNumThreads(num_threads: ::std::os::raw::c_int);
4743}
4744extern "C" {
4745    pub fn THGetNumThreads() -> ::std::os::raw::c_int;
4746}
4747extern "C" {
4748    pub fn THGetNumCores() -> ::std::os::raw::c_int;
4749}
4750extern "C" {
4751    pub fn THInferNumThreads();
4752}
4753extern "C" {
4754    pub fn THFloatBlas_swap(n: ::std::os::raw::c_long, x: *mut f32,
4755                            incx: ::std::os::raw::c_long, y: *mut f32,
4756                            incy: ::std::os::raw::c_long);
4757}
4758extern "C" {
4759    pub fn THFloatBlas_scal(n: ::std::os::raw::c_long, a: f32, x: *mut f32,
4760                            incx: ::std::os::raw::c_long);
4761}
4762extern "C" {
4763    pub fn THFloatBlas_copy(n: ::std::os::raw::c_long, x: *mut f32,
4764                            incx: ::std::os::raw::c_long, y: *mut f32,
4765                            incy: ::std::os::raw::c_long);
4766}
4767extern "C" {
4768    pub fn THFloatBlas_axpy(n: ::std::os::raw::c_long, a: f32, x: *mut f32,
4769                            incx: ::std::os::raw::c_long, y: *mut f32,
4770                            incy: ::std::os::raw::c_long);
4771}
4772extern "C" {
4773    pub fn THFloatBlas_dot(n: ::std::os::raw::c_long, x: *mut f32,
4774                           incx: ::std::os::raw::c_long, y: *mut f32,
4775                           incy: ::std::os::raw::c_long) -> f32;
4776}
4777extern "C" {
4778    pub fn THFloatBlas_gemv(trans: ::std::os::raw::c_char,
4779                            m: ::std::os::raw::c_long,
4780                            n: ::std::os::raw::c_long, alpha: f32,
4781                            a: *mut f32, lda: ::std::os::raw::c_long,
4782                            x: *mut f32, incx: ::std::os::raw::c_long,
4783                            beta: f32, y: *mut f32,
4784                            incy: ::std::os::raw::c_long);
4785}
4786extern "C" {
4787    pub fn THFloatBlas_ger(m: ::std::os::raw::c_long,
4788                           n: ::std::os::raw::c_long, alpha: f32, x: *mut f32,
4789                           incx: ::std::os::raw::c_long, y: *mut f32,
4790                           incy: ::std::os::raw::c_long, a: *mut f32,
4791                           lda: ::std::os::raw::c_long);
4792}
4793extern "C" {
4794    pub fn THFloatBlas_gemm(transa: ::std::os::raw::c_char,
4795                            transb: ::std::os::raw::c_char,
4796                            m: ::std::os::raw::c_long,
4797                            n: ::std::os::raw::c_long,
4798                            k: ::std::os::raw::c_long, alpha: f32,
4799                            a: *mut f32, lda: ::std::os::raw::c_long,
4800                            b: *mut f32, ldb: ::std::os::raw::c_long,
4801                            beta: f32, c: *mut f32,
4802                            ldc: ::std::os::raw::c_long);
4803}
4804extern "C" {
4805    pub fn THDoubleBlas_swap(n: ::std::os::raw::c_long, x: *mut f64,
4806                             incx: ::std::os::raw::c_long, y: *mut f64,
4807                             incy: ::std::os::raw::c_long);
4808}
4809extern "C" {
4810    pub fn THDoubleBlas_scal(n: ::std::os::raw::c_long, a: f64, x: *mut f64,
4811                             incx: ::std::os::raw::c_long);
4812}
4813extern "C" {
4814    pub fn THDoubleBlas_copy(n: ::std::os::raw::c_long, x: *mut f64,
4815                             incx: ::std::os::raw::c_long, y: *mut f64,
4816                             incy: ::std::os::raw::c_long);
4817}
4818extern "C" {
4819    pub fn THDoubleBlas_axpy(n: ::std::os::raw::c_long, a: f64, x: *mut f64,
4820                             incx: ::std::os::raw::c_long, y: *mut f64,
4821                             incy: ::std::os::raw::c_long);
4822}
4823extern "C" {
4824    pub fn THDoubleBlas_dot(n: ::std::os::raw::c_long, x: *mut f64,
4825                            incx: ::std::os::raw::c_long, y: *mut f64,
4826                            incy: ::std::os::raw::c_long) -> f64;
4827}
4828extern "C" {
4829    pub fn THDoubleBlas_gemv(trans: ::std::os::raw::c_char,
4830                             m: ::std::os::raw::c_long,
4831                             n: ::std::os::raw::c_long, alpha: f64,
4832                             a: *mut f64, lda: ::std::os::raw::c_long,
4833                             x: *mut f64, incx: ::std::os::raw::c_long,
4834                             beta: f64, y: *mut f64,
4835                             incy: ::std::os::raw::c_long);
4836}
4837extern "C" {
4838    pub fn THDoubleBlas_ger(m: ::std::os::raw::c_long,
4839                            n: ::std::os::raw::c_long, alpha: f64,
4840                            x: *mut f64, incx: ::std::os::raw::c_long,
4841                            y: *mut f64, incy: ::std::os::raw::c_long,
4842                            a: *mut f64, lda: ::std::os::raw::c_long);
4843}
4844extern "C" {
4845    pub fn THDoubleBlas_gemm(transa: ::std::os::raw::c_char,
4846                             transb: ::std::os::raw::c_char,
4847                             m: ::std::os::raw::c_long,
4848                             n: ::std::os::raw::c_long,
4849                             k: ::std::os::raw::c_long, alpha: f64,
4850                             a: *mut f64, lda: ::std::os::raw::c_long,
4851                             b: *mut f64, ldb: ::std::os::raw::c_long,
4852                             beta: f64, c: *mut f64,
4853                             ldc: ::std::os::raw::c_long);
4854}
4855extern "C" {
4856    pub fn THByteBlas_swap(n: ::std::os::raw::c_long,
4857                           x: *mut ::std::os::raw::c_uchar,
4858                           incx: ::std::os::raw::c_long,
4859                           y: *mut ::std::os::raw::c_uchar,
4860                           incy: ::std::os::raw::c_long);
4861}
4862extern "C" {
4863    pub fn THByteBlas_scal(n: ::std::os::raw::c_long,
4864                           a: ::std::os::raw::c_uchar,
4865                           x: *mut ::std::os::raw::c_uchar,
4866                           incx: ::std::os::raw::c_long);
4867}
4868extern "C" {
4869    pub fn THByteBlas_copy(n: ::std::os::raw::c_long,
4870                           x: *mut ::std::os::raw::c_uchar,
4871                           incx: ::std::os::raw::c_long,
4872                           y: *mut ::std::os::raw::c_uchar,
4873                           incy: ::std::os::raw::c_long);
4874}
4875extern "C" {
4876    pub fn THByteBlas_axpy(n: ::std::os::raw::c_long,
4877                           a: ::std::os::raw::c_uchar,
4878                           x: *mut ::std::os::raw::c_uchar,
4879                           incx: ::std::os::raw::c_long,
4880                           y: *mut ::std::os::raw::c_uchar,
4881                           incy: ::std::os::raw::c_long);
4882}
4883extern "C" {
4884    pub fn THByteBlas_dot(n: ::std::os::raw::c_long,
4885                          x: *mut ::std::os::raw::c_uchar,
4886                          incx: ::std::os::raw::c_long,
4887                          y: *mut ::std::os::raw::c_uchar,
4888                          incy: ::std::os::raw::c_long)
4889     -> ::std::os::raw::c_uchar;
4890}
4891extern "C" {
4892    pub fn THByteBlas_gemv(trans: ::std::os::raw::c_char,
4893                           m: ::std::os::raw::c_long,
4894                           n: ::std::os::raw::c_long,
4895                           alpha: ::std::os::raw::c_uchar,
4896                           a: *mut ::std::os::raw::c_uchar,
4897                           lda: ::std::os::raw::c_long,
4898                           x: *mut ::std::os::raw::c_uchar,
4899                           incx: ::std::os::raw::c_long,
4900                           beta: ::std::os::raw::c_uchar,
4901                           y: *mut ::std::os::raw::c_uchar,
4902                           incy: ::std::os::raw::c_long);
4903}
4904extern "C" {
4905    pub fn THByteBlas_ger(m: ::std::os::raw::c_long,
4906                          n: ::std::os::raw::c_long,
4907                          alpha: ::std::os::raw::c_uchar,
4908                          x: *mut ::std::os::raw::c_uchar,
4909                          incx: ::std::os::raw::c_long,
4910                          y: *mut ::std::os::raw::c_uchar,
4911                          incy: ::std::os::raw::c_long,
4912                          a: *mut ::std::os::raw::c_uchar,
4913                          lda: ::std::os::raw::c_long);
4914}
4915extern "C" {
4916    pub fn THByteBlas_gemm(transa: ::std::os::raw::c_char,
4917                           transb: ::std::os::raw::c_char,
4918                           m: ::std::os::raw::c_long,
4919                           n: ::std::os::raw::c_long,
4920                           k: ::std::os::raw::c_long,
4921                           alpha: ::std::os::raw::c_uchar,
4922                           a: *mut ::std::os::raw::c_uchar,
4923                           lda: ::std::os::raw::c_long,
4924                           b: *mut ::std::os::raw::c_uchar,
4925                           ldb: ::std::os::raw::c_long,
4926                           beta: ::std::os::raw::c_uchar,
4927                           c: *mut ::std::os::raw::c_uchar,
4928                           ldc: ::std::os::raw::c_long);
4929}
4930extern "C" {
4931    pub fn THCharBlas_swap(n: ::std::os::raw::c_long,
4932                           x: *mut ::std::os::raw::c_char,
4933                           incx: ::std::os::raw::c_long,
4934                           y: *mut ::std::os::raw::c_char,
4935                           incy: ::std::os::raw::c_long);
4936}
4937extern "C" {
4938    pub fn THCharBlas_scal(n: ::std::os::raw::c_long,
4939                           a: ::std::os::raw::c_char,
4940                           x: *mut ::std::os::raw::c_char,
4941                           incx: ::std::os::raw::c_long);
4942}
4943extern "C" {
4944    pub fn THCharBlas_copy(n: ::std::os::raw::c_long,
4945                           x: *mut ::std::os::raw::c_char,
4946                           incx: ::std::os::raw::c_long,
4947                           y: *mut ::std::os::raw::c_char,
4948                           incy: ::std::os::raw::c_long);
4949}
4950extern "C" {
4951    pub fn THCharBlas_axpy(n: ::std::os::raw::c_long,
4952                           a: ::std::os::raw::c_char,
4953                           x: *mut ::std::os::raw::c_char,
4954                           incx: ::std::os::raw::c_long,
4955                           y: *mut ::std::os::raw::c_char,
4956                           incy: ::std::os::raw::c_long);
4957}
4958extern "C" {
4959    pub fn THCharBlas_dot(n: ::std::os::raw::c_long,
4960                          x: *mut ::std::os::raw::c_char,
4961                          incx: ::std::os::raw::c_long,
4962                          y: *mut ::std::os::raw::c_char,
4963                          incy: ::std::os::raw::c_long)
4964     -> ::std::os::raw::c_char;
4965}
4966extern "C" {
4967    pub fn THCharBlas_gemv(trans: ::std::os::raw::c_char,
4968                           m: ::std::os::raw::c_long,
4969                           n: ::std::os::raw::c_long,
4970                           alpha: ::std::os::raw::c_char,
4971                           a: *mut ::std::os::raw::c_char,
4972                           lda: ::std::os::raw::c_long,
4973                           x: *mut ::std::os::raw::c_char,
4974                           incx: ::std::os::raw::c_long,
4975                           beta: ::std::os::raw::c_char,
4976                           y: *mut ::std::os::raw::c_char,
4977                           incy: ::std::os::raw::c_long);
4978}
4979extern "C" {
4980    pub fn THCharBlas_ger(m: ::std::os::raw::c_long,
4981                          n: ::std::os::raw::c_long,
4982                          alpha: ::std::os::raw::c_char,
4983                          x: *mut ::std::os::raw::c_char,
4984                          incx: ::std::os::raw::c_long,
4985                          y: *mut ::std::os::raw::c_char,
4986                          incy: ::std::os::raw::c_long,
4987                          a: *mut ::std::os::raw::c_char,
4988                          lda: ::std::os::raw::c_long);
4989}
4990extern "C" {
4991    pub fn THCharBlas_gemm(transa: ::std::os::raw::c_char,
4992                           transb: ::std::os::raw::c_char,
4993                           m: ::std::os::raw::c_long,
4994                           n: ::std::os::raw::c_long,
4995                           k: ::std::os::raw::c_long,
4996                           alpha: ::std::os::raw::c_char,
4997                           a: *mut ::std::os::raw::c_char,
4998                           lda: ::std::os::raw::c_long,
4999                           b: *mut ::std::os::raw::c_char,
5000                           ldb: ::std::os::raw::c_long,
5001                           beta: ::std::os::raw::c_char,
5002                           c: *mut ::std::os::raw::c_char,
5003                           ldc: ::std::os::raw::c_long);
5004}
5005extern "C" {
5006    pub fn THShortBlas_swap(n: ::std::os::raw::c_long,
5007                            x: *mut ::std::os::raw::c_short,
5008                            incx: ::std::os::raw::c_long,
5009                            y: *mut ::std::os::raw::c_short,
5010                            incy: ::std::os::raw::c_long);
5011}
5012extern "C" {
5013    pub fn THShortBlas_scal(n: ::std::os::raw::c_long,
5014                            a: ::std::os::raw::c_short,
5015                            x: *mut ::std::os::raw::c_short,
5016                            incx: ::std::os::raw::c_long);
5017}
5018extern "C" {
5019    pub fn THShortBlas_copy(n: ::std::os::raw::c_long,
5020                            x: *mut ::std::os::raw::c_short,
5021                            incx: ::std::os::raw::c_long,
5022                            y: *mut ::std::os::raw::c_short,
5023                            incy: ::std::os::raw::c_long);
5024}
5025extern "C" {
5026    pub fn THShortBlas_axpy(n: ::std::os::raw::c_long,
5027                            a: ::std::os::raw::c_short,
5028                            x: *mut ::std::os::raw::c_short,
5029                            incx: ::std::os::raw::c_long,
5030                            y: *mut ::std::os::raw::c_short,
5031                            incy: ::std::os::raw::c_long);
5032}
5033extern "C" {
5034    pub fn THShortBlas_dot(n: ::std::os::raw::c_long,
5035                           x: *mut ::std::os::raw::c_short,
5036                           incx: ::std::os::raw::c_long,
5037                           y: *mut ::std::os::raw::c_short,
5038                           incy: ::std::os::raw::c_long)
5039     -> ::std::os::raw::c_short;
5040}
5041extern "C" {
5042    pub fn THShortBlas_gemv(trans: ::std::os::raw::c_char,
5043                            m: ::std::os::raw::c_long,
5044                            n: ::std::os::raw::c_long,
5045                            alpha: ::std::os::raw::c_short,
5046                            a: *mut ::std::os::raw::c_short,
5047                            lda: ::std::os::raw::c_long,
5048                            x: *mut ::std::os::raw::c_short,
5049                            incx: ::std::os::raw::c_long,
5050                            beta: ::std::os::raw::c_short,
5051                            y: *mut ::std::os::raw::c_short,
5052                            incy: ::std::os::raw::c_long);
5053}
5054extern "C" {
5055    pub fn THShortBlas_ger(m: ::std::os::raw::c_long,
5056                           n: ::std::os::raw::c_long,
5057                           alpha: ::std::os::raw::c_short,
5058                           x: *mut ::std::os::raw::c_short,
5059                           incx: ::std::os::raw::c_long,
5060                           y: *mut ::std::os::raw::c_short,
5061                           incy: ::std::os::raw::c_long,
5062                           a: *mut ::std::os::raw::c_short,
5063                           lda: ::std::os::raw::c_long);
5064}
5065extern "C" {
5066    pub fn THShortBlas_gemm(transa: ::std::os::raw::c_char,
5067                            transb: ::std::os::raw::c_char,
5068                            m: ::std::os::raw::c_long,
5069                            n: ::std::os::raw::c_long,
5070                            k: ::std::os::raw::c_long,
5071                            alpha: ::std::os::raw::c_short,
5072                            a: *mut ::std::os::raw::c_short,
5073                            lda: ::std::os::raw::c_long,
5074                            b: *mut ::std::os::raw::c_short,
5075                            ldb: ::std::os::raw::c_long,
5076                            beta: ::std::os::raw::c_short,
5077                            c: *mut ::std::os::raw::c_short,
5078                            ldc: ::std::os::raw::c_long);
5079}
5080extern "C" {
5081    pub fn THIntBlas_swap(n: ::std::os::raw::c_long,
5082                          x: *mut ::std::os::raw::c_int,
5083                          incx: ::std::os::raw::c_long,
5084                          y: *mut ::std::os::raw::c_int,
5085                          incy: ::std::os::raw::c_long);
5086}
5087extern "C" {
5088    pub fn THIntBlas_scal(n: ::std::os::raw::c_long, a: ::std::os::raw::c_int,
5089                          x: *mut ::std::os::raw::c_int,
5090                          incx: ::std::os::raw::c_long);
5091}
5092extern "C" {
5093    pub fn THIntBlas_copy(n: ::std::os::raw::c_long,
5094                          x: *mut ::std::os::raw::c_int,
5095                          incx: ::std::os::raw::c_long,
5096                          y: *mut ::std::os::raw::c_int,
5097                          incy: ::std::os::raw::c_long);
5098}
5099extern "C" {
5100    pub fn THIntBlas_axpy(n: ::std::os::raw::c_long, a: ::std::os::raw::c_int,
5101                          x: *mut ::std::os::raw::c_int,
5102                          incx: ::std::os::raw::c_long,
5103                          y: *mut ::std::os::raw::c_int,
5104                          incy: ::std::os::raw::c_long);
5105}
5106extern "C" {
5107    pub fn THIntBlas_dot(n: ::std::os::raw::c_long,
5108                         x: *mut ::std::os::raw::c_int,
5109                         incx: ::std::os::raw::c_long,
5110                         y: *mut ::std::os::raw::c_int,
5111                         incy: ::std::os::raw::c_long)
5112     -> ::std::os::raw::c_int;
5113}
5114extern "C" {
5115    pub fn THIntBlas_gemv(trans: ::std::os::raw::c_char,
5116                          m: ::std::os::raw::c_long,
5117                          n: ::std::os::raw::c_long,
5118                          alpha: ::std::os::raw::c_int,
5119                          a: *mut ::std::os::raw::c_int,
5120                          lda: ::std::os::raw::c_long,
5121                          x: *mut ::std::os::raw::c_int,
5122                          incx: ::std::os::raw::c_long,
5123                          beta: ::std::os::raw::c_int,
5124                          y: *mut ::std::os::raw::c_int,
5125                          incy: ::std::os::raw::c_long);
5126}
5127extern "C" {
5128    pub fn THIntBlas_ger(m: ::std::os::raw::c_long, n: ::std::os::raw::c_long,
5129                         alpha: ::std::os::raw::c_int,
5130                         x: *mut ::std::os::raw::c_int,
5131                         incx: ::std::os::raw::c_long,
5132                         y: *mut ::std::os::raw::c_int,
5133                         incy: ::std::os::raw::c_long,
5134                         a: *mut ::std::os::raw::c_int,
5135                         lda: ::std::os::raw::c_long);
5136}
5137extern "C" {
5138    pub fn THIntBlas_gemm(transa: ::std::os::raw::c_char,
5139                          transb: ::std::os::raw::c_char,
5140                          m: ::std::os::raw::c_long,
5141                          n: ::std::os::raw::c_long,
5142                          k: ::std::os::raw::c_long,
5143                          alpha: ::std::os::raw::c_int,
5144                          a: *mut ::std::os::raw::c_int,
5145                          lda: ::std::os::raw::c_long,
5146                          b: *mut ::std::os::raw::c_int,
5147                          ldb: ::std::os::raw::c_long,
5148                          beta: ::std::os::raw::c_int,
5149                          c: *mut ::std::os::raw::c_int,
5150                          ldc: ::std::os::raw::c_long);
5151}
5152extern "C" {
5153    pub fn THLongBlas_swap(n: ::std::os::raw::c_long,
5154                           x: *mut ::std::os::raw::c_long,
5155                           incx: ::std::os::raw::c_long,
5156                           y: *mut ::std::os::raw::c_long,
5157                           incy: ::std::os::raw::c_long);
5158}
5159extern "C" {
5160    pub fn THLongBlas_scal(n: ::std::os::raw::c_long,
5161                           a: ::std::os::raw::c_long,
5162                           x: *mut ::std::os::raw::c_long,
5163                           incx: ::std::os::raw::c_long);
5164}
5165extern "C" {
5166    pub fn THLongBlas_copy(n: ::std::os::raw::c_long,
5167                           x: *mut ::std::os::raw::c_long,
5168                           incx: ::std::os::raw::c_long,
5169                           y: *mut ::std::os::raw::c_long,
5170                           incy: ::std::os::raw::c_long);
5171}
5172extern "C" {
5173    pub fn THLongBlas_axpy(n: ::std::os::raw::c_long,
5174                           a: ::std::os::raw::c_long,
5175                           x: *mut ::std::os::raw::c_long,
5176                           incx: ::std::os::raw::c_long,
5177                           y: *mut ::std::os::raw::c_long,
5178                           incy: ::std::os::raw::c_long);
5179}
5180extern "C" {
5181    pub fn THLongBlas_dot(n: ::std::os::raw::c_long,
5182                          x: *mut ::std::os::raw::c_long,
5183                          incx: ::std::os::raw::c_long,
5184                          y: *mut ::std::os::raw::c_long,
5185                          incy: ::std::os::raw::c_long)
5186     -> ::std::os::raw::c_long;
5187}
5188extern "C" {
5189    pub fn THLongBlas_gemv(trans: ::std::os::raw::c_char,
5190                           m: ::std::os::raw::c_long,
5191                           n: ::std::os::raw::c_long,
5192                           alpha: ::std::os::raw::c_long,
5193                           a: *mut ::std::os::raw::c_long,
5194                           lda: ::std::os::raw::c_long,
5195                           x: *mut ::std::os::raw::c_long,
5196                           incx: ::std::os::raw::c_long,
5197                           beta: ::std::os::raw::c_long,
5198                           y: *mut ::std::os::raw::c_long,
5199                           incy: ::std::os::raw::c_long);
5200}
5201extern "C" {
5202    pub fn THLongBlas_ger(m: ::std::os::raw::c_long,
5203                          n: ::std::os::raw::c_long,
5204                          alpha: ::std::os::raw::c_long,
5205                          x: *mut ::std::os::raw::c_long,
5206                          incx: ::std::os::raw::c_long,
5207                          y: *mut ::std::os::raw::c_long,
5208                          incy: ::std::os::raw::c_long,
5209                          a: *mut ::std::os::raw::c_long,
5210                          lda: ::std::os::raw::c_long);
5211}
5212extern "C" {
5213    pub fn THLongBlas_gemm(transa: ::std::os::raw::c_char,
5214                           transb: ::std::os::raw::c_char,
5215                           m: ::std::os::raw::c_long,
5216                           n: ::std::os::raw::c_long,
5217                           k: ::std::os::raw::c_long,
5218                           alpha: ::std::os::raw::c_long,
5219                           a: *mut ::std::os::raw::c_long,
5220                           lda: ::std::os::raw::c_long,
5221                           b: *mut ::std::os::raw::c_long,
5222                           ldb: ::std::os::raw::c_long,
5223                           beta: ::std::os::raw::c_long,
5224                           c: *mut ::std::os::raw::c_long,
5225                           ldc: ::std::os::raw::c_long);
5226}
5227extern "C" {
5228    pub fn THFloatLapack_gesv(n: ::std::os::raw::c_int,
5229                              nrhs: ::std::os::raw::c_int, a: *mut f32,
5230                              lda: ::std::os::raw::c_int,
5231                              ipiv: *mut ::std::os::raw::c_int, b: *mut f32,
5232                              ldb: ::std::os::raw::c_int,
5233                              info: *mut ::std::os::raw::c_int);
5234}
5235extern "C" {
5236    pub fn THFloatLapack_trtrs(uplo: ::std::os::raw::c_char,
5237                               trans: ::std::os::raw::c_char,
5238                               diag: ::std::os::raw::c_char,
5239                               n: ::std::os::raw::c_int,
5240                               nrhs: ::std::os::raw::c_int, a: *mut f32,
5241                               lda: ::std::os::raw::c_int, b: *mut f32,
5242                               ldb: ::std::os::raw::c_int,
5243                               info: *mut ::std::os::raw::c_int);
5244}
5245extern "C" {
5246    pub fn THFloatLapack_gels(trans: ::std::os::raw::c_char,
5247                              m: ::std::os::raw::c_int,
5248                              n: ::std::os::raw::c_int,
5249                              nrhs: ::std::os::raw::c_int, a: *mut f32,
5250                              lda: ::std::os::raw::c_int, b: *mut f32,
5251                              ldb: ::std::os::raw::c_int, work: *mut f32,
5252                              lwork: ::std::os::raw::c_int,
5253                              info: *mut ::std::os::raw::c_int);
5254}
5255extern "C" {
5256    pub fn THFloatLapack_syev(jobz: ::std::os::raw::c_char,
5257                              uplo: ::std::os::raw::c_char,
5258                              n: ::std::os::raw::c_int, a: *mut f32,
5259                              lda: ::std::os::raw::c_int, w: *mut f32,
5260                              work: *mut f32, lwork: ::std::os::raw::c_int,
5261                              info: *mut ::std::os::raw::c_int);
5262}
5263extern "C" {
5264    pub fn THFloatLapack_geev(jobvl: ::std::os::raw::c_char,
5265                              jobvr: ::std::os::raw::c_char,
5266                              n: ::std::os::raw::c_int, a: *mut f32,
5267                              lda: ::std::os::raw::c_int, wr: *mut f32,
5268                              wi: *mut f32, vl: *mut f32,
5269                              ldvl: ::std::os::raw::c_int, vr: *mut f32,
5270                              ldvr: ::std::os::raw::c_int, work: *mut f32,
5271                              lwork: ::std::os::raw::c_int,
5272                              info: *mut ::std::os::raw::c_int);
5273}
5274extern "C" {
5275    pub fn THFloatLapack_gesvd(jobu: ::std::os::raw::c_char,
5276                               jobvt: ::std::os::raw::c_char,
5277                               m: ::std::os::raw::c_int,
5278                               n: ::std::os::raw::c_int, a: *mut f32,
5279                               lda: ::std::os::raw::c_int, s: *mut f32,
5280                               u: *mut f32, ldu: ::std::os::raw::c_int,
5281                               vt: *mut f32, ldvt: ::std::os::raw::c_int,
5282                               work: *mut f32, lwork: ::std::os::raw::c_int,
5283                               info: *mut ::std::os::raw::c_int);
5284}
5285extern "C" {
5286    pub fn THFloatLapack_getrf(m: ::std::os::raw::c_int,
5287                               n: ::std::os::raw::c_int, a: *mut f32,
5288                               lda: ::std::os::raw::c_int,
5289                               ipiv: *mut ::std::os::raw::c_int,
5290                               info: *mut ::std::os::raw::c_int);
5291}
5292extern "C" {
5293    pub fn THFloatLapack_getrs(trans: ::std::os::raw::c_char,
5294                               n: ::std::os::raw::c_int,
5295                               nrhs: ::std::os::raw::c_int, a: *mut f32,
5296                               lda: ::std::os::raw::c_int,
5297                               ipiv: *mut ::std::os::raw::c_int, b: *mut f32,
5298                               ldb: ::std::os::raw::c_int,
5299                               info: *mut ::std::os::raw::c_int);
5300}
5301extern "C" {
5302    pub fn THFloatLapack_getri(n: ::std::os::raw::c_int, a: *mut f32,
5303                               lda: ::std::os::raw::c_int,
5304                               ipiv: *mut ::std::os::raw::c_int,
5305                               work: *mut f32, lwork: ::std::os::raw::c_int,
5306                               info: *mut ::std::os::raw::c_int);
5307}
5308extern "C" {
5309    pub fn THFloatLapack_potrf(uplo: ::std::os::raw::c_char,
5310                               n: ::std::os::raw::c_int, a: *mut f32,
5311                               lda: ::std::os::raw::c_int,
5312                               info: *mut ::std::os::raw::c_int);
5313}
5314extern "C" {
5315    pub fn THFloatLapack_potri(uplo: ::std::os::raw::c_char,
5316                               n: ::std::os::raw::c_int, a: *mut f32,
5317                               lda: ::std::os::raw::c_int,
5318                               info: *mut ::std::os::raw::c_int);
5319}
5320extern "C" {
5321    pub fn THFloatLapack_potrs(uplo: ::std::os::raw::c_char,
5322                               n: ::std::os::raw::c_int,
5323                               nrhs: ::std::os::raw::c_int, a: *mut f32,
5324                               lda: ::std::os::raw::c_int, b: *mut f32,
5325                               ldb: ::std::os::raw::c_int,
5326                               info: *mut ::std::os::raw::c_int);
5327}
5328extern "C" {
5329    pub fn THFloatLapack_pstrf(uplo: ::std::os::raw::c_char,
5330                               n: ::std::os::raw::c_int, a: *mut f32,
5331                               lda: ::std::os::raw::c_int,
5332                               piv: *mut ::std::os::raw::c_int,
5333                               rank: *mut ::std::os::raw::c_int, tol: f32,
5334                               work: *mut f32,
5335                               info: *mut ::std::os::raw::c_int);
5336}
5337extern "C" {
5338    pub fn THFloatLapack_geqrf(m: ::std::os::raw::c_int,
5339                               n: ::std::os::raw::c_int, a: *mut f32,
5340                               lda: ::std::os::raw::c_int, tau: *mut f32,
5341                               work: *mut f32, lwork: ::std::os::raw::c_int,
5342                               info: *mut ::std::os::raw::c_int);
5343}
5344extern "C" {
5345    pub fn THFloatLapack_orgqr(m: ::std::os::raw::c_int,
5346                               n: ::std::os::raw::c_int,
5347                               k: ::std::os::raw::c_int, a: *mut f32,
5348                               lda: ::std::os::raw::c_int, tau: *mut f32,
5349                               work: *mut f32, lwork: ::std::os::raw::c_int,
5350                               info: *mut ::std::os::raw::c_int);
5351}
5352extern "C" {
5353    pub fn THFloatLapack_ormqr(side: ::std::os::raw::c_char,
5354                               trans: ::std::os::raw::c_char,
5355                               m: ::std::os::raw::c_int,
5356                               n: ::std::os::raw::c_int,
5357                               k: ::std::os::raw::c_int, a: *mut f32,
5358                               lda: ::std::os::raw::c_int, tau: *mut f32,
5359                               c: *mut f32, ldc: ::std::os::raw::c_int,
5360                               work: *mut f32, lwork: ::std::os::raw::c_int,
5361                               info: *mut ::std::os::raw::c_int);
5362}
5363extern "C" {
5364    pub fn THDoubleLapack_gesv(n: ::std::os::raw::c_int,
5365                               nrhs: ::std::os::raw::c_int, a: *mut f64,
5366                               lda: ::std::os::raw::c_int,
5367                               ipiv: *mut ::std::os::raw::c_int, b: *mut f64,
5368                               ldb: ::std::os::raw::c_int,
5369                               info: *mut ::std::os::raw::c_int);
5370}
5371extern "C" {
5372    pub fn THDoubleLapack_trtrs(uplo: ::std::os::raw::c_char,
5373                                trans: ::std::os::raw::c_char,
5374                                diag: ::std::os::raw::c_char,
5375                                n: ::std::os::raw::c_int,
5376                                nrhs: ::std::os::raw::c_int, a: *mut f64,
5377                                lda: ::std::os::raw::c_int, b: *mut f64,
5378                                ldb: ::std::os::raw::c_int,
5379                                info: *mut ::std::os::raw::c_int);
5380}
5381extern "C" {
5382    pub fn THDoubleLapack_gels(trans: ::std::os::raw::c_char,
5383                               m: ::std::os::raw::c_int,
5384                               n: ::std::os::raw::c_int,
5385                               nrhs: ::std::os::raw::c_int, a: *mut f64,
5386                               lda: ::std::os::raw::c_int, b: *mut f64,
5387                               ldb: ::std::os::raw::c_int, work: *mut f64,
5388                               lwork: ::std::os::raw::c_int,
5389                               info: *mut ::std::os::raw::c_int);
5390}
5391extern "C" {
5392    pub fn THDoubleLapack_syev(jobz: ::std::os::raw::c_char,
5393                               uplo: ::std::os::raw::c_char,
5394                               n: ::std::os::raw::c_int, a: *mut f64,
5395                               lda: ::std::os::raw::c_int, w: *mut f64,
5396                               work: *mut f64, lwork: ::std::os::raw::c_int,
5397                               info: *mut ::std::os::raw::c_int);
5398}
5399extern "C" {
5400    pub fn THDoubleLapack_geev(jobvl: ::std::os::raw::c_char,
5401                               jobvr: ::std::os::raw::c_char,
5402                               n: ::std::os::raw::c_int, a: *mut f64,
5403                               lda: ::std::os::raw::c_int, wr: *mut f64,
5404                               wi: *mut f64, vl: *mut f64,
5405                               ldvl: ::std::os::raw::c_int, vr: *mut f64,
5406                               ldvr: ::std::os::raw::c_int, work: *mut f64,
5407                               lwork: ::std::os::raw::c_int,
5408                               info: *mut ::std::os::raw::c_int);
5409}
5410extern "C" {
5411    pub fn THDoubleLapack_gesvd(jobu: ::std::os::raw::c_char,
5412                                jobvt: ::std::os::raw::c_char,
5413                                m: ::std::os::raw::c_int,
5414                                n: ::std::os::raw::c_int, a: *mut f64,
5415                                lda: ::std::os::raw::c_int, s: *mut f64,
5416                                u: *mut f64, ldu: ::std::os::raw::c_int,
5417                                vt: *mut f64, ldvt: ::std::os::raw::c_int,
5418                                work: *mut f64, lwork: ::std::os::raw::c_int,
5419                                info: *mut ::std::os::raw::c_int);
5420}
5421extern "C" {
5422    pub fn THDoubleLapack_getrf(m: ::std::os::raw::c_int,
5423                                n: ::std::os::raw::c_int, a: *mut f64,
5424                                lda: ::std::os::raw::c_int,
5425                                ipiv: *mut ::std::os::raw::c_int,
5426                                info: *mut ::std::os::raw::c_int);
5427}
5428extern "C" {
5429    pub fn THDoubleLapack_getrs(trans: ::std::os::raw::c_char,
5430                                n: ::std::os::raw::c_int,
5431                                nrhs: ::std::os::raw::c_int, a: *mut f64,
5432                                lda: ::std::os::raw::c_int,
5433                                ipiv: *mut ::std::os::raw::c_int, b: *mut f64,
5434                                ldb: ::std::os::raw::c_int,
5435                                info: *mut ::std::os::raw::c_int);
5436}
5437extern "C" {
5438    pub fn THDoubleLapack_getri(n: ::std::os::raw::c_int, a: *mut f64,
5439                                lda: ::std::os::raw::c_int,
5440                                ipiv: *mut ::std::os::raw::c_int,
5441                                work: *mut f64, lwork: ::std::os::raw::c_int,
5442                                info: *mut ::std::os::raw::c_int);
5443}
5444extern "C" {
5445    pub fn THDoubleLapack_potrf(uplo: ::std::os::raw::c_char,
5446                                n: ::std::os::raw::c_int, a: *mut f64,
5447                                lda: ::std::os::raw::c_int,
5448                                info: *mut ::std::os::raw::c_int);
5449}
5450extern "C" {
5451    pub fn THDoubleLapack_potri(uplo: ::std::os::raw::c_char,
5452                                n: ::std::os::raw::c_int, a: *mut f64,
5453                                lda: ::std::os::raw::c_int,
5454                                info: *mut ::std::os::raw::c_int);
5455}
5456extern "C" {
5457    pub fn THDoubleLapack_potrs(uplo: ::std::os::raw::c_char,
5458                                n: ::std::os::raw::c_int,
5459                                nrhs: ::std::os::raw::c_int, a: *mut f64,
5460                                lda: ::std::os::raw::c_int, b: *mut f64,
5461                                ldb: ::std::os::raw::c_int,
5462                                info: *mut ::std::os::raw::c_int);
5463}
5464extern "C" {
5465    pub fn THDoubleLapack_pstrf(uplo: ::std::os::raw::c_char,
5466                                n: ::std::os::raw::c_int, a: *mut f64,
5467                                lda: ::std::os::raw::c_int,
5468                                piv: *mut ::std::os::raw::c_int,
5469                                rank: *mut ::std::os::raw::c_int, tol: f64,
5470                                work: *mut f64,
5471                                info: *mut ::std::os::raw::c_int);
5472}
5473extern "C" {
5474    pub fn THDoubleLapack_geqrf(m: ::std::os::raw::c_int,
5475                                n: ::std::os::raw::c_int, a: *mut f64,
5476                                lda: ::std::os::raw::c_int, tau: *mut f64,
5477                                work: *mut f64, lwork: ::std::os::raw::c_int,
5478                                info: *mut ::std::os::raw::c_int);
5479}
5480extern "C" {
5481    pub fn THDoubleLapack_orgqr(m: ::std::os::raw::c_int,
5482                                n: ::std::os::raw::c_int,
5483                                k: ::std::os::raw::c_int, a: *mut f64,
5484                                lda: ::std::os::raw::c_int, tau: *mut f64,
5485                                work: *mut f64, lwork: ::std::os::raw::c_int,
5486                                info: *mut ::std::os::raw::c_int);
5487}
5488extern "C" {
5489    pub fn THDoubleLapack_ormqr(side: ::std::os::raw::c_char,
5490                                trans: ::std::os::raw::c_char,
5491                                m: ::std::os::raw::c_int,
5492                                n: ::std::os::raw::c_int,
5493                                k: ::std::os::raw::c_int, a: *mut f64,
5494                                lda: ::std::os::raw::c_int, tau: *mut f64,
5495                                c: *mut f64, ldc: ::std::os::raw::c_int,
5496                                work: *mut f64, lwork: ::std::os::raw::c_int,
5497                                info: *mut ::std::os::raw::c_int);
5498}
5499extern "C" {
5500    pub fn THByteLapack_gesv(n: ::std::os::raw::c_int,
5501                             nrhs: ::std::os::raw::c_int,
5502                             a: *mut ::std::os::raw::c_uchar,
5503                             lda: ::std::os::raw::c_int,
5504                             ipiv: *mut ::std::os::raw::c_int,
5505                             b: *mut ::std::os::raw::c_uchar,
5506                             ldb: ::std::os::raw::c_int,
5507                             info: *mut ::std::os::raw::c_int);
5508}
5509extern "C" {
5510    pub fn THByteLapack_trtrs(uplo: ::std::os::raw::c_char,
5511                              trans: ::std::os::raw::c_char,
5512                              diag: ::std::os::raw::c_char,
5513                              n: ::std::os::raw::c_int,
5514                              nrhs: ::std::os::raw::c_int,
5515                              a: *mut ::std::os::raw::c_uchar,
5516                              lda: ::std::os::raw::c_int,
5517                              b: *mut ::std::os::raw::c_uchar,
5518                              ldb: ::std::os::raw::c_int,
5519                              info: *mut ::std::os::raw::c_int);
5520}
5521extern "C" {
5522    pub fn THByteLapack_gels(trans: ::std::os::raw::c_char,
5523                             m: ::std::os::raw::c_int,
5524                             n: ::std::os::raw::c_int,
5525                             nrhs: ::std::os::raw::c_int,
5526                             a: *mut ::std::os::raw::c_uchar,
5527                             lda: ::std::os::raw::c_int,
5528                             b: *mut ::std::os::raw::c_uchar,
5529                             ldb: ::std::os::raw::c_int,
5530                             work: *mut ::std::os::raw::c_uchar,
5531                             lwork: ::std::os::raw::c_int,
5532                             info: *mut ::std::os::raw::c_int);
5533}
5534extern "C" {
5535    pub fn THByteLapack_syev(jobz: ::std::os::raw::c_char,
5536                             uplo: ::std::os::raw::c_char,
5537                             n: ::std::os::raw::c_int,
5538                             a: *mut ::std::os::raw::c_uchar,
5539                             lda: ::std::os::raw::c_int,
5540                             w: *mut ::std::os::raw::c_uchar,
5541                             work: *mut ::std::os::raw::c_uchar,
5542                             lwork: ::std::os::raw::c_int,
5543                             info: *mut ::std::os::raw::c_int);
5544}
5545extern "C" {
5546    pub fn THByteLapack_geev(jobvl: ::std::os::raw::c_char,
5547                             jobvr: ::std::os::raw::c_char,
5548                             n: ::std::os::raw::c_int,
5549                             a: *mut ::std::os::raw::c_uchar,
5550                             lda: ::std::os::raw::c_int,
5551                             wr: *mut ::std::os::raw::c_uchar,
5552                             wi: *mut ::std::os::raw::c_uchar,
5553                             vl: *mut ::std::os::raw::c_uchar,
5554                             ldvl: ::std::os::raw::c_int,
5555                             vr: *mut ::std::os::raw::c_uchar,
5556                             ldvr: ::std::os::raw::c_int,
5557                             work: *mut ::std::os::raw::c_uchar,
5558                             lwork: ::std::os::raw::c_int,
5559                             info: *mut ::std::os::raw::c_int);
5560}
5561extern "C" {
5562    pub fn THByteLapack_gesvd(jobu: ::std::os::raw::c_char,
5563                              jobvt: ::std::os::raw::c_char,
5564                              m: ::std::os::raw::c_int,
5565                              n: ::std::os::raw::c_int,
5566                              a: *mut ::std::os::raw::c_uchar,
5567                              lda: ::std::os::raw::c_int,
5568                              s: *mut ::std::os::raw::c_uchar,
5569                              u: *mut ::std::os::raw::c_uchar,
5570                              ldu: ::std::os::raw::c_int,
5571                              vt: *mut ::std::os::raw::c_uchar,
5572                              ldvt: ::std::os::raw::c_int,
5573                              work: *mut ::std::os::raw::c_uchar,
5574                              lwork: ::std::os::raw::c_int,
5575                              info: *mut ::std::os::raw::c_int);
5576}
5577extern "C" {
5578    pub fn THByteLapack_getrf(m: ::std::os::raw::c_int,
5579                              n: ::std::os::raw::c_int,
5580                              a: *mut ::std::os::raw::c_uchar,
5581                              lda: ::std::os::raw::c_int,
5582                              ipiv: *mut ::std::os::raw::c_int,
5583                              info: *mut ::std::os::raw::c_int);
5584}
5585extern "C" {
5586    pub fn THByteLapack_getrs(trans: ::std::os::raw::c_char,
5587                              n: ::std::os::raw::c_int,
5588                              nrhs: ::std::os::raw::c_int,
5589                              a: *mut ::std::os::raw::c_uchar,
5590                              lda: ::std::os::raw::c_int,
5591                              ipiv: *mut ::std::os::raw::c_int,
5592                              b: *mut ::std::os::raw::c_uchar,
5593                              ldb: ::std::os::raw::c_int,
5594                              info: *mut ::std::os::raw::c_int);
5595}
5596extern "C" {
5597    pub fn THByteLapack_getri(n: ::std::os::raw::c_int,
5598                              a: *mut ::std::os::raw::c_uchar,
5599                              lda: ::std::os::raw::c_int,
5600                              ipiv: *mut ::std::os::raw::c_int,
5601                              work: *mut ::std::os::raw::c_uchar,
5602                              lwork: ::std::os::raw::c_int,
5603                              info: *mut ::std::os::raw::c_int);
5604}
5605extern "C" {
5606    pub fn THByteLapack_potrf(uplo: ::std::os::raw::c_char,
5607                              n: ::std::os::raw::c_int,
5608                              a: *mut ::std::os::raw::c_uchar,
5609                              lda: ::std::os::raw::c_int,
5610                              info: *mut ::std::os::raw::c_int);
5611}
5612extern "C" {
5613    pub fn THByteLapack_potri(uplo: ::std::os::raw::c_char,
5614                              n: ::std::os::raw::c_int,
5615                              a: *mut ::std::os::raw::c_uchar,
5616                              lda: ::std::os::raw::c_int,
5617                              info: *mut ::std::os::raw::c_int);
5618}
5619extern "C" {
5620    pub fn THByteLapack_potrs(uplo: ::std::os::raw::c_char,
5621                              n: ::std::os::raw::c_int,
5622                              nrhs: ::std::os::raw::c_int,
5623                              a: *mut ::std::os::raw::c_uchar,
5624                              lda: ::std::os::raw::c_int,
5625                              b: *mut ::std::os::raw::c_uchar,
5626                              ldb: ::std::os::raw::c_int,
5627                              info: *mut ::std::os::raw::c_int);
5628}
5629extern "C" {
5630    pub fn THByteLapack_pstrf(uplo: ::std::os::raw::c_char,
5631                              n: ::std::os::raw::c_int,
5632                              a: *mut ::std::os::raw::c_uchar,
5633                              lda: ::std::os::raw::c_int,
5634                              piv: *mut ::std::os::raw::c_int,
5635                              rank: *mut ::std::os::raw::c_int,
5636                              tol: ::std::os::raw::c_uchar,
5637                              work: *mut ::std::os::raw::c_uchar,
5638                              info: *mut ::std::os::raw::c_int);
5639}
5640extern "C" {
5641    pub fn THByteLapack_geqrf(m: ::std::os::raw::c_int,
5642                              n: ::std::os::raw::c_int,
5643                              a: *mut ::std::os::raw::c_uchar,
5644                              lda: ::std::os::raw::c_int,
5645                              tau: *mut ::std::os::raw::c_uchar,
5646                              work: *mut ::std::os::raw::c_uchar,
5647                              lwork: ::std::os::raw::c_int,
5648                              info: *mut ::std::os::raw::c_int);
5649}
5650extern "C" {
5651    pub fn THByteLapack_orgqr(m: ::std::os::raw::c_int,
5652                              n: ::std::os::raw::c_int,
5653                              k: ::std::os::raw::c_int,
5654                              a: *mut ::std::os::raw::c_uchar,
5655                              lda: ::std::os::raw::c_int,
5656                              tau: *mut ::std::os::raw::c_uchar,
5657                              work: *mut ::std::os::raw::c_uchar,
5658                              lwork: ::std::os::raw::c_int,
5659                              info: *mut ::std::os::raw::c_int);
5660}
5661extern "C" {
5662    pub fn THByteLapack_ormqr(side: ::std::os::raw::c_char,
5663                              trans: ::std::os::raw::c_char,
5664                              m: ::std::os::raw::c_int,
5665                              n: ::std::os::raw::c_int,
5666                              k: ::std::os::raw::c_int,
5667                              a: *mut ::std::os::raw::c_uchar,
5668                              lda: ::std::os::raw::c_int,
5669                              tau: *mut ::std::os::raw::c_uchar,
5670                              c: *mut ::std::os::raw::c_uchar,
5671                              ldc: ::std::os::raw::c_int,
5672                              work: *mut ::std::os::raw::c_uchar,
5673                              lwork: ::std::os::raw::c_int,
5674                              info: *mut ::std::os::raw::c_int);
5675}
5676extern "C" {
5677    pub fn THCharLapack_gesv(n: ::std::os::raw::c_int,
5678                             nrhs: ::std::os::raw::c_int,
5679                             a: *mut ::std::os::raw::c_char,
5680                             lda: ::std::os::raw::c_int,
5681                             ipiv: *mut ::std::os::raw::c_int,
5682                             b: *mut ::std::os::raw::c_char,
5683                             ldb: ::std::os::raw::c_int,
5684                             info: *mut ::std::os::raw::c_int);
5685}
5686extern "C" {
5687    pub fn THCharLapack_trtrs(uplo: ::std::os::raw::c_char,
5688                              trans: ::std::os::raw::c_char,
5689                              diag: ::std::os::raw::c_char,
5690                              n: ::std::os::raw::c_int,
5691                              nrhs: ::std::os::raw::c_int,
5692                              a: *mut ::std::os::raw::c_char,
5693                              lda: ::std::os::raw::c_int,
5694                              b: *mut ::std::os::raw::c_char,
5695                              ldb: ::std::os::raw::c_int,
5696                              info: *mut ::std::os::raw::c_int);
5697}
5698extern "C" {
5699    pub fn THCharLapack_gels(trans: ::std::os::raw::c_char,
5700                             m: ::std::os::raw::c_int,
5701                             n: ::std::os::raw::c_int,
5702                             nrhs: ::std::os::raw::c_int,
5703                             a: *mut ::std::os::raw::c_char,
5704                             lda: ::std::os::raw::c_int,
5705                             b: *mut ::std::os::raw::c_char,
5706                             ldb: ::std::os::raw::c_int,
5707                             work: *mut ::std::os::raw::c_char,
5708                             lwork: ::std::os::raw::c_int,
5709                             info: *mut ::std::os::raw::c_int);
5710}
5711extern "C" {
5712    pub fn THCharLapack_syev(jobz: ::std::os::raw::c_char,
5713                             uplo: ::std::os::raw::c_char,
5714                             n: ::std::os::raw::c_int,
5715                             a: *mut ::std::os::raw::c_char,
5716                             lda: ::std::os::raw::c_int,
5717                             w: *mut ::std::os::raw::c_char,
5718                             work: *mut ::std::os::raw::c_char,
5719                             lwork: ::std::os::raw::c_int,
5720                             info: *mut ::std::os::raw::c_int);
5721}
5722extern "C" {
5723    pub fn THCharLapack_geev(jobvl: ::std::os::raw::c_char,
5724                             jobvr: ::std::os::raw::c_char,
5725                             n: ::std::os::raw::c_int,
5726                             a: *mut ::std::os::raw::c_char,
5727                             lda: ::std::os::raw::c_int,
5728                             wr: *mut ::std::os::raw::c_char,
5729                             wi: *mut ::std::os::raw::c_char,
5730                             vl: *mut ::std::os::raw::c_char,
5731                             ldvl: ::std::os::raw::c_int,
5732                             vr: *mut ::std::os::raw::c_char,
5733                             ldvr: ::std::os::raw::c_int,
5734                             work: *mut ::std::os::raw::c_char,
5735                             lwork: ::std::os::raw::c_int,
5736                             info: *mut ::std::os::raw::c_int);
5737}
5738extern "C" {
5739    pub fn THCharLapack_gesvd(jobu: ::std::os::raw::c_char,
5740                              jobvt: ::std::os::raw::c_char,
5741                              m: ::std::os::raw::c_int,
5742                              n: ::std::os::raw::c_int,
5743                              a: *mut ::std::os::raw::c_char,
5744                              lda: ::std::os::raw::c_int,
5745                              s: *mut ::std::os::raw::c_char,
5746                              u: *mut ::std::os::raw::c_char,
5747                              ldu: ::std::os::raw::c_int,
5748                              vt: *mut ::std::os::raw::c_char,
5749                              ldvt: ::std::os::raw::c_int,
5750                              work: *mut ::std::os::raw::c_char,
5751                              lwork: ::std::os::raw::c_int,
5752                              info: *mut ::std::os::raw::c_int);
5753}
5754extern "C" {
5755    pub fn THCharLapack_getrf(m: ::std::os::raw::c_int,
5756                              n: ::std::os::raw::c_int,
5757                              a: *mut ::std::os::raw::c_char,
5758                              lda: ::std::os::raw::c_int,
5759                              ipiv: *mut ::std::os::raw::c_int,
5760                              info: *mut ::std::os::raw::c_int);
5761}
5762extern "C" {
5763    pub fn THCharLapack_getrs(trans: ::std::os::raw::c_char,
5764                              n: ::std::os::raw::c_int,
5765                              nrhs: ::std::os::raw::c_int,
5766                              a: *mut ::std::os::raw::c_char,
5767                              lda: ::std::os::raw::c_int,
5768                              ipiv: *mut ::std::os::raw::c_int,
5769                              b: *mut ::std::os::raw::c_char,
5770                              ldb: ::std::os::raw::c_int,
5771                              info: *mut ::std::os::raw::c_int);
5772}
5773extern "C" {
5774    pub fn THCharLapack_getri(n: ::std::os::raw::c_int,
5775                              a: *mut ::std::os::raw::c_char,
5776                              lda: ::std::os::raw::c_int,
5777                              ipiv: *mut ::std::os::raw::c_int,
5778                              work: *mut ::std::os::raw::c_char,
5779                              lwork: ::std::os::raw::c_int,
5780                              info: *mut ::std::os::raw::c_int);
5781}
5782extern "C" {
5783    pub fn THCharLapack_potrf(uplo: ::std::os::raw::c_char,
5784                              n: ::std::os::raw::c_int,
5785                              a: *mut ::std::os::raw::c_char,
5786                              lda: ::std::os::raw::c_int,
5787                              info: *mut ::std::os::raw::c_int);
5788}
5789extern "C" {
5790    pub fn THCharLapack_potri(uplo: ::std::os::raw::c_char,
5791                              n: ::std::os::raw::c_int,
5792                              a: *mut ::std::os::raw::c_char,
5793                              lda: ::std::os::raw::c_int,
5794                              info: *mut ::std::os::raw::c_int);
5795}
5796extern "C" {
5797    pub fn THCharLapack_potrs(uplo: ::std::os::raw::c_char,
5798                              n: ::std::os::raw::c_int,
5799                              nrhs: ::std::os::raw::c_int,
5800                              a: *mut ::std::os::raw::c_char,
5801                              lda: ::std::os::raw::c_int,
5802                              b: *mut ::std::os::raw::c_char,
5803                              ldb: ::std::os::raw::c_int,
5804                              info: *mut ::std::os::raw::c_int);
5805}
5806extern "C" {
5807    pub fn THCharLapack_pstrf(uplo: ::std::os::raw::c_char,
5808                              n: ::std::os::raw::c_int,
5809                              a: *mut ::std::os::raw::c_char,
5810                              lda: ::std::os::raw::c_int,
5811                              piv: *mut ::std::os::raw::c_int,
5812                              rank: *mut ::std::os::raw::c_int,
5813                              tol: ::std::os::raw::c_char,
5814                              work: *mut ::std::os::raw::c_char,
5815                              info: *mut ::std::os::raw::c_int);
5816}
5817extern "C" {
5818    pub fn THCharLapack_geqrf(m: ::std::os::raw::c_int,
5819                              n: ::std::os::raw::c_int,
5820                              a: *mut ::std::os::raw::c_char,
5821                              lda: ::std::os::raw::c_int,
5822                              tau: *mut ::std::os::raw::c_char,
5823                              work: *mut ::std::os::raw::c_char,
5824                              lwork: ::std::os::raw::c_int,
5825                              info: *mut ::std::os::raw::c_int);
5826}
5827extern "C" {
5828    pub fn THCharLapack_orgqr(m: ::std::os::raw::c_int,
5829                              n: ::std::os::raw::c_int,
5830                              k: ::std::os::raw::c_int,
5831                              a: *mut ::std::os::raw::c_char,
5832                              lda: ::std::os::raw::c_int,
5833                              tau: *mut ::std::os::raw::c_char,
5834                              work: *mut ::std::os::raw::c_char,
5835                              lwork: ::std::os::raw::c_int,
5836                              info: *mut ::std::os::raw::c_int);
5837}
5838extern "C" {
5839    pub fn THCharLapack_ormqr(side: ::std::os::raw::c_char,
5840                              trans: ::std::os::raw::c_char,
5841                              m: ::std::os::raw::c_int,
5842                              n: ::std::os::raw::c_int,
5843                              k: ::std::os::raw::c_int,
5844                              a: *mut ::std::os::raw::c_char,
5845                              lda: ::std::os::raw::c_int,
5846                              tau: *mut ::std::os::raw::c_char,
5847                              c: *mut ::std::os::raw::c_char,
5848                              ldc: ::std::os::raw::c_int,
5849                              work: *mut ::std::os::raw::c_char,
5850                              lwork: ::std::os::raw::c_int,
5851                              info: *mut ::std::os::raw::c_int);
5852}
5853extern "C" {
5854    pub fn THShortLapack_gesv(n: ::std::os::raw::c_int,
5855                              nrhs: ::std::os::raw::c_int,
5856                              a: *mut ::std::os::raw::c_short,
5857                              lda: ::std::os::raw::c_int,
5858                              ipiv: *mut ::std::os::raw::c_int,
5859                              b: *mut ::std::os::raw::c_short,
5860                              ldb: ::std::os::raw::c_int,
5861                              info: *mut ::std::os::raw::c_int);
5862}
5863extern "C" {
5864    pub fn THShortLapack_trtrs(uplo: ::std::os::raw::c_char,
5865                               trans: ::std::os::raw::c_char,
5866                               diag: ::std::os::raw::c_char,
5867                               n: ::std::os::raw::c_int,
5868                               nrhs: ::std::os::raw::c_int,
5869                               a: *mut ::std::os::raw::c_short,
5870                               lda: ::std::os::raw::c_int,
5871                               b: *mut ::std::os::raw::c_short,
5872                               ldb: ::std::os::raw::c_int,
5873                               info: *mut ::std::os::raw::c_int);
5874}
5875extern "C" {
5876    pub fn THShortLapack_gels(trans: ::std::os::raw::c_char,
5877                              m: ::std::os::raw::c_int,
5878                              n: ::std::os::raw::c_int,
5879                              nrhs: ::std::os::raw::c_int,
5880                              a: *mut ::std::os::raw::c_short,
5881                              lda: ::std::os::raw::c_int,
5882                              b: *mut ::std::os::raw::c_short,
5883                              ldb: ::std::os::raw::c_int,
5884                              work: *mut ::std::os::raw::c_short,
5885                              lwork: ::std::os::raw::c_int,
5886                              info: *mut ::std::os::raw::c_int);
5887}
5888extern "C" {
5889    pub fn THShortLapack_syev(jobz: ::std::os::raw::c_char,
5890                              uplo: ::std::os::raw::c_char,
5891                              n: ::std::os::raw::c_int,
5892                              a: *mut ::std::os::raw::c_short,
5893                              lda: ::std::os::raw::c_int,
5894                              w: *mut ::std::os::raw::c_short,
5895                              work: *mut ::std::os::raw::c_short,
5896                              lwork: ::std::os::raw::c_int,
5897                              info: *mut ::std::os::raw::c_int);
5898}
5899extern "C" {
5900    pub fn THShortLapack_geev(jobvl: ::std::os::raw::c_char,
5901                              jobvr: ::std::os::raw::c_char,
5902                              n: ::std::os::raw::c_int,
5903                              a: *mut ::std::os::raw::c_short,
5904                              lda: ::std::os::raw::c_int,
5905                              wr: *mut ::std::os::raw::c_short,
5906                              wi: *mut ::std::os::raw::c_short,
5907                              vl: *mut ::std::os::raw::c_short,
5908                              ldvl: ::std::os::raw::c_int,
5909                              vr: *mut ::std::os::raw::c_short,
5910                              ldvr: ::std::os::raw::c_int,
5911                              work: *mut ::std::os::raw::c_short,
5912                              lwork: ::std::os::raw::c_int,
5913                              info: *mut ::std::os::raw::c_int);
5914}
5915extern "C" {
5916    pub fn THShortLapack_gesvd(jobu: ::std::os::raw::c_char,
5917                               jobvt: ::std::os::raw::c_char,
5918                               m: ::std::os::raw::c_int,
5919                               n: ::std::os::raw::c_int,
5920                               a: *mut ::std::os::raw::c_short,
5921                               lda: ::std::os::raw::c_int,
5922                               s: *mut ::std::os::raw::c_short,
5923                               u: *mut ::std::os::raw::c_short,
5924                               ldu: ::std::os::raw::c_int,
5925                               vt: *mut ::std::os::raw::c_short,
5926                               ldvt: ::std::os::raw::c_int,
5927                               work: *mut ::std::os::raw::c_short,
5928                               lwork: ::std::os::raw::c_int,
5929                               info: *mut ::std::os::raw::c_int);
5930}
5931extern "C" {
5932    pub fn THShortLapack_getrf(m: ::std::os::raw::c_int,
5933                               n: ::std::os::raw::c_int,
5934                               a: *mut ::std::os::raw::c_short,
5935                               lda: ::std::os::raw::c_int,
5936                               ipiv: *mut ::std::os::raw::c_int,
5937                               info: *mut ::std::os::raw::c_int);
5938}
5939extern "C" {
5940    pub fn THShortLapack_getrs(trans: ::std::os::raw::c_char,
5941                               n: ::std::os::raw::c_int,
5942                               nrhs: ::std::os::raw::c_int,
5943                               a: *mut ::std::os::raw::c_short,
5944                               lda: ::std::os::raw::c_int,
5945                               ipiv: *mut ::std::os::raw::c_int,
5946                               b: *mut ::std::os::raw::c_short,
5947                               ldb: ::std::os::raw::c_int,
5948                               info: *mut ::std::os::raw::c_int);
5949}
5950extern "C" {
5951    pub fn THShortLapack_getri(n: ::std::os::raw::c_int,
5952                               a: *mut ::std::os::raw::c_short,
5953                               lda: ::std::os::raw::c_int,
5954                               ipiv: *mut ::std::os::raw::c_int,
5955                               work: *mut ::std::os::raw::c_short,
5956                               lwork: ::std::os::raw::c_int,
5957                               info: *mut ::std::os::raw::c_int);
5958}
5959extern "C" {
5960    pub fn THShortLapack_potrf(uplo: ::std::os::raw::c_char,
5961                               n: ::std::os::raw::c_int,
5962                               a: *mut ::std::os::raw::c_short,
5963                               lda: ::std::os::raw::c_int,
5964                               info: *mut ::std::os::raw::c_int);
5965}
5966extern "C" {
5967    pub fn THShortLapack_potri(uplo: ::std::os::raw::c_char,
5968                               n: ::std::os::raw::c_int,
5969                               a: *mut ::std::os::raw::c_short,
5970                               lda: ::std::os::raw::c_int,
5971                               info: *mut ::std::os::raw::c_int);
5972}
5973extern "C" {
5974    pub fn THShortLapack_potrs(uplo: ::std::os::raw::c_char,
5975                               n: ::std::os::raw::c_int,
5976                               nrhs: ::std::os::raw::c_int,
5977                               a: *mut ::std::os::raw::c_short,
5978                               lda: ::std::os::raw::c_int,
5979                               b: *mut ::std::os::raw::c_short,
5980                               ldb: ::std::os::raw::c_int,
5981                               info: *mut ::std::os::raw::c_int);
5982}
5983extern "C" {
5984    pub fn THShortLapack_pstrf(uplo: ::std::os::raw::c_char,
5985                               n: ::std::os::raw::c_int,
5986                               a: *mut ::std::os::raw::c_short,
5987                               lda: ::std::os::raw::c_int,
5988                               piv: *mut ::std::os::raw::c_int,
5989                               rank: *mut ::std::os::raw::c_int,
5990                               tol: ::std::os::raw::c_short,
5991                               work: *mut ::std::os::raw::c_short,
5992                               info: *mut ::std::os::raw::c_int);
5993}
5994extern "C" {
5995    pub fn THShortLapack_geqrf(m: ::std::os::raw::c_int,
5996                               n: ::std::os::raw::c_int,
5997                               a: *mut ::std::os::raw::c_short,
5998                               lda: ::std::os::raw::c_int,
5999                               tau: *mut ::std::os::raw::c_short,
6000                               work: *mut ::std::os::raw::c_short,
6001                               lwork: ::std::os::raw::c_int,
6002                               info: *mut ::std::os::raw::c_int);
6003}
6004extern "C" {
6005    pub fn THShortLapack_orgqr(m: ::std::os::raw::c_int,
6006                               n: ::std::os::raw::c_int,
6007                               k: ::std::os::raw::c_int,
6008                               a: *mut ::std::os::raw::c_short,
6009                               lda: ::std::os::raw::c_int,
6010                               tau: *mut ::std::os::raw::c_short,
6011                               work: *mut ::std::os::raw::c_short,
6012                               lwork: ::std::os::raw::c_int,
6013                               info: *mut ::std::os::raw::c_int);
6014}
6015extern "C" {
6016    pub fn THShortLapack_ormqr(side: ::std::os::raw::c_char,
6017                               trans: ::std::os::raw::c_char,
6018                               m: ::std::os::raw::c_int,
6019                               n: ::std::os::raw::c_int,
6020                               k: ::std::os::raw::c_int,
6021                               a: *mut ::std::os::raw::c_short,
6022                               lda: ::std::os::raw::c_int,
6023                               tau: *mut ::std::os::raw::c_short,
6024                               c: *mut ::std::os::raw::c_short,
6025                               ldc: ::std::os::raw::c_int,
6026                               work: *mut ::std::os::raw::c_short,
6027                               lwork: ::std::os::raw::c_int,
6028                               info: *mut ::std::os::raw::c_int);
6029}
6030extern "C" {
6031    pub fn THIntLapack_gesv(n: ::std::os::raw::c_int,
6032                            nrhs: ::std::os::raw::c_int,
6033                            a: *mut ::std::os::raw::c_int,
6034                            lda: ::std::os::raw::c_int,
6035                            ipiv: *mut ::std::os::raw::c_int,
6036                            b: *mut ::std::os::raw::c_int,
6037                            ldb: ::std::os::raw::c_int,
6038                            info: *mut ::std::os::raw::c_int);
6039}
6040extern "C" {
6041    pub fn THIntLapack_trtrs(uplo: ::std::os::raw::c_char,
6042                             trans: ::std::os::raw::c_char,
6043                             diag: ::std::os::raw::c_char,
6044                             n: ::std::os::raw::c_int,
6045                             nrhs: ::std::os::raw::c_int,
6046                             a: *mut ::std::os::raw::c_int,
6047                             lda: ::std::os::raw::c_int,
6048                             b: *mut ::std::os::raw::c_int,
6049                             ldb: ::std::os::raw::c_int,
6050                             info: *mut ::std::os::raw::c_int);
6051}
6052extern "C" {
6053    pub fn THIntLapack_gels(trans: ::std::os::raw::c_char,
6054                            m: ::std::os::raw::c_int,
6055                            n: ::std::os::raw::c_int,
6056                            nrhs: ::std::os::raw::c_int,
6057                            a: *mut ::std::os::raw::c_int,
6058                            lda: ::std::os::raw::c_int,
6059                            b: *mut ::std::os::raw::c_int,
6060                            ldb: ::std::os::raw::c_int,
6061                            work: *mut ::std::os::raw::c_int,
6062                            lwork: ::std::os::raw::c_int,
6063                            info: *mut ::std::os::raw::c_int);
6064}
6065extern "C" {
6066    pub fn THIntLapack_syev(jobz: ::std::os::raw::c_char,
6067                            uplo: ::std::os::raw::c_char,
6068                            n: ::std::os::raw::c_int,
6069                            a: *mut ::std::os::raw::c_int,
6070                            lda: ::std::os::raw::c_int,
6071                            w: *mut ::std::os::raw::c_int,
6072                            work: *mut ::std::os::raw::c_int,
6073                            lwork: ::std::os::raw::c_int,
6074                            info: *mut ::std::os::raw::c_int);
6075}
6076extern "C" {
6077    pub fn THIntLapack_geev(jobvl: ::std::os::raw::c_char,
6078                            jobvr: ::std::os::raw::c_char,
6079                            n: ::std::os::raw::c_int,
6080                            a: *mut ::std::os::raw::c_int,
6081                            lda: ::std::os::raw::c_int,
6082                            wr: *mut ::std::os::raw::c_int,
6083                            wi: *mut ::std::os::raw::c_int,
6084                            vl: *mut ::std::os::raw::c_int,
6085                            ldvl: ::std::os::raw::c_int,
6086                            vr: *mut ::std::os::raw::c_int,
6087                            ldvr: ::std::os::raw::c_int,
6088                            work: *mut ::std::os::raw::c_int,
6089                            lwork: ::std::os::raw::c_int,
6090                            info: *mut ::std::os::raw::c_int);
6091}
6092extern "C" {
6093    pub fn THIntLapack_gesvd(jobu: ::std::os::raw::c_char,
6094                             jobvt: ::std::os::raw::c_char,
6095                             m: ::std::os::raw::c_int,
6096                             n: ::std::os::raw::c_int,
6097                             a: *mut ::std::os::raw::c_int,
6098                             lda: ::std::os::raw::c_int,
6099                             s: *mut ::std::os::raw::c_int,
6100                             u: *mut ::std::os::raw::c_int,
6101                             ldu: ::std::os::raw::c_int,
6102                             vt: *mut ::std::os::raw::c_int,
6103                             ldvt: ::std::os::raw::c_int,
6104                             work: *mut ::std::os::raw::c_int,
6105                             lwork: ::std::os::raw::c_int,
6106                             info: *mut ::std::os::raw::c_int);
6107}
6108extern "C" {
6109    pub fn THIntLapack_getrf(m: ::std::os::raw::c_int,
6110                             n: ::std::os::raw::c_int,
6111                             a: *mut ::std::os::raw::c_int,
6112                             lda: ::std::os::raw::c_int,
6113                             ipiv: *mut ::std::os::raw::c_int,
6114                             info: *mut ::std::os::raw::c_int);
6115}
6116extern "C" {
6117    pub fn THIntLapack_getrs(trans: ::std::os::raw::c_char,
6118                             n: ::std::os::raw::c_int,
6119                             nrhs: ::std::os::raw::c_int,
6120                             a: *mut ::std::os::raw::c_int,
6121                             lda: ::std::os::raw::c_int,
6122                             ipiv: *mut ::std::os::raw::c_int,
6123                             b: *mut ::std::os::raw::c_int,
6124                             ldb: ::std::os::raw::c_int,
6125                             info: *mut ::std::os::raw::c_int);
6126}
6127extern "C" {
6128    pub fn THIntLapack_getri(n: ::std::os::raw::c_int,
6129                             a: *mut ::std::os::raw::c_int,
6130                             lda: ::std::os::raw::c_int,
6131                             ipiv: *mut ::std::os::raw::c_int,
6132                             work: *mut ::std::os::raw::c_int,
6133                             lwork: ::std::os::raw::c_int,
6134                             info: *mut ::std::os::raw::c_int);
6135}
6136extern "C" {
6137    pub fn THIntLapack_potrf(uplo: ::std::os::raw::c_char,
6138                             n: ::std::os::raw::c_int,
6139                             a: *mut ::std::os::raw::c_int,
6140                             lda: ::std::os::raw::c_int,
6141                             info: *mut ::std::os::raw::c_int);
6142}
6143extern "C" {
6144    pub fn THIntLapack_potri(uplo: ::std::os::raw::c_char,
6145                             n: ::std::os::raw::c_int,
6146                             a: *mut ::std::os::raw::c_int,
6147                             lda: ::std::os::raw::c_int,
6148                             info: *mut ::std::os::raw::c_int);
6149}
6150extern "C" {
6151    pub fn THIntLapack_potrs(uplo: ::std::os::raw::c_char,
6152                             n: ::std::os::raw::c_int,
6153                             nrhs: ::std::os::raw::c_int,
6154                             a: *mut ::std::os::raw::c_int,
6155                             lda: ::std::os::raw::c_int,
6156                             b: *mut ::std::os::raw::c_int,
6157                             ldb: ::std::os::raw::c_int,
6158                             info: *mut ::std::os::raw::c_int);
6159}
6160extern "C" {
6161    pub fn THIntLapack_pstrf(uplo: ::std::os::raw::c_char,
6162                             n: ::std::os::raw::c_int,
6163                             a: *mut ::std::os::raw::c_int,
6164                             lda: ::std::os::raw::c_int,
6165                             piv: *mut ::std::os::raw::c_int,
6166                             rank: *mut ::std::os::raw::c_int,
6167                             tol: ::std::os::raw::c_int,
6168                             work: *mut ::std::os::raw::c_int,
6169                             info: *mut ::std::os::raw::c_int);
6170}
6171extern "C" {
6172    pub fn THIntLapack_geqrf(m: ::std::os::raw::c_int,
6173                             n: ::std::os::raw::c_int,
6174                             a: *mut ::std::os::raw::c_int,
6175                             lda: ::std::os::raw::c_int,
6176                             tau: *mut ::std::os::raw::c_int,
6177                             work: *mut ::std::os::raw::c_int,
6178                             lwork: ::std::os::raw::c_int,
6179                             info: *mut ::std::os::raw::c_int);
6180}
6181extern "C" {
6182    pub fn THIntLapack_orgqr(m: ::std::os::raw::c_int,
6183                             n: ::std::os::raw::c_int,
6184                             k: ::std::os::raw::c_int,
6185                             a: *mut ::std::os::raw::c_int,
6186                             lda: ::std::os::raw::c_int,
6187                             tau: *mut ::std::os::raw::c_int,
6188                             work: *mut ::std::os::raw::c_int,
6189                             lwork: ::std::os::raw::c_int,
6190                             info: *mut ::std::os::raw::c_int);
6191}
6192extern "C" {
6193    pub fn THIntLapack_ormqr(side: ::std::os::raw::c_char,
6194                             trans: ::std::os::raw::c_char,
6195                             m: ::std::os::raw::c_int,
6196                             n: ::std::os::raw::c_int,
6197                             k: ::std::os::raw::c_int,
6198                             a: *mut ::std::os::raw::c_int,
6199                             lda: ::std::os::raw::c_int,
6200                             tau: *mut ::std::os::raw::c_int,
6201                             c: *mut ::std::os::raw::c_int,
6202                             ldc: ::std::os::raw::c_int,
6203                             work: *mut ::std::os::raw::c_int,
6204                             lwork: ::std::os::raw::c_int,
6205                             info: *mut ::std::os::raw::c_int);
6206}
6207extern "C" {
6208    pub fn THLongLapack_gesv(n: ::std::os::raw::c_int,
6209                             nrhs: ::std::os::raw::c_int,
6210                             a: *mut ::std::os::raw::c_long,
6211                             lda: ::std::os::raw::c_int,
6212                             ipiv: *mut ::std::os::raw::c_int,
6213                             b: *mut ::std::os::raw::c_long,
6214                             ldb: ::std::os::raw::c_int,
6215                             info: *mut ::std::os::raw::c_int);
6216}
6217extern "C" {
6218    pub fn THLongLapack_trtrs(uplo: ::std::os::raw::c_char,
6219                              trans: ::std::os::raw::c_char,
6220                              diag: ::std::os::raw::c_char,
6221                              n: ::std::os::raw::c_int,
6222                              nrhs: ::std::os::raw::c_int,
6223                              a: *mut ::std::os::raw::c_long,
6224                              lda: ::std::os::raw::c_int,
6225                              b: *mut ::std::os::raw::c_long,
6226                              ldb: ::std::os::raw::c_int,
6227                              info: *mut ::std::os::raw::c_int);
6228}
6229extern "C" {
6230    pub fn THLongLapack_gels(trans: ::std::os::raw::c_char,
6231                             m: ::std::os::raw::c_int,
6232                             n: ::std::os::raw::c_int,
6233                             nrhs: ::std::os::raw::c_int,
6234                             a: *mut ::std::os::raw::c_long,
6235                             lda: ::std::os::raw::c_int,
6236                             b: *mut ::std::os::raw::c_long,
6237                             ldb: ::std::os::raw::c_int,
6238                             work: *mut ::std::os::raw::c_long,
6239                             lwork: ::std::os::raw::c_int,
6240                             info: *mut ::std::os::raw::c_int);
6241}
6242extern "C" {
6243    pub fn THLongLapack_syev(jobz: ::std::os::raw::c_char,
6244                             uplo: ::std::os::raw::c_char,
6245                             n: ::std::os::raw::c_int,
6246                             a: *mut ::std::os::raw::c_long,
6247                             lda: ::std::os::raw::c_int,
6248                             w: *mut ::std::os::raw::c_long,
6249                             work: *mut ::std::os::raw::c_long,
6250                             lwork: ::std::os::raw::c_int,
6251                             info: *mut ::std::os::raw::c_int);
6252}
6253extern "C" {
6254    pub fn THLongLapack_geev(jobvl: ::std::os::raw::c_char,
6255                             jobvr: ::std::os::raw::c_char,
6256                             n: ::std::os::raw::c_int,
6257                             a: *mut ::std::os::raw::c_long,
6258                             lda: ::std::os::raw::c_int,
6259                             wr: *mut ::std::os::raw::c_long,
6260                             wi: *mut ::std::os::raw::c_long,
6261                             vl: *mut ::std::os::raw::c_long,
6262                             ldvl: ::std::os::raw::c_int,
6263                             vr: *mut ::std::os::raw::c_long,
6264                             ldvr: ::std::os::raw::c_int,
6265                             work: *mut ::std::os::raw::c_long,
6266                             lwork: ::std::os::raw::c_int,
6267                             info: *mut ::std::os::raw::c_int);
6268}
6269extern "C" {
6270    pub fn THLongLapack_gesvd(jobu: ::std::os::raw::c_char,
6271                              jobvt: ::std::os::raw::c_char,
6272                              m: ::std::os::raw::c_int,
6273                              n: ::std::os::raw::c_int,
6274                              a: *mut ::std::os::raw::c_long,
6275                              lda: ::std::os::raw::c_int,
6276                              s: *mut ::std::os::raw::c_long,
6277                              u: *mut ::std::os::raw::c_long,
6278                              ldu: ::std::os::raw::c_int,
6279                              vt: *mut ::std::os::raw::c_long,
6280                              ldvt: ::std::os::raw::c_int,
6281                              work: *mut ::std::os::raw::c_long,
6282                              lwork: ::std::os::raw::c_int,
6283                              info: *mut ::std::os::raw::c_int);
6284}
6285extern "C" {
6286    pub fn THLongLapack_getrf(m: ::std::os::raw::c_int,
6287                              n: ::std::os::raw::c_int,
6288                              a: *mut ::std::os::raw::c_long,
6289                              lda: ::std::os::raw::c_int,
6290                              ipiv: *mut ::std::os::raw::c_int,
6291                              info: *mut ::std::os::raw::c_int);
6292}
6293extern "C" {
6294    pub fn THLongLapack_getrs(trans: ::std::os::raw::c_char,
6295                              n: ::std::os::raw::c_int,
6296                              nrhs: ::std::os::raw::c_int,
6297                              a: *mut ::std::os::raw::c_long,
6298                              lda: ::std::os::raw::c_int,
6299                              ipiv: *mut ::std::os::raw::c_int,
6300                              b: *mut ::std::os::raw::c_long,
6301                              ldb: ::std::os::raw::c_int,
6302                              info: *mut ::std::os::raw::c_int);
6303}
6304extern "C" {
6305    pub fn THLongLapack_getri(n: ::std::os::raw::c_int,
6306                              a: *mut ::std::os::raw::c_long,
6307                              lda: ::std::os::raw::c_int,
6308                              ipiv: *mut ::std::os::raw::c_int,
6309                              work: *mut ::std::os::raw::c_long,
6310                              lwork: ::std::os::raw::c_int,
6311                              info: *mut ::std::os::raw::c_int);
6312}
6313extern "C" {
6314    pub fn THLongLapack_potrf(uplo: ::std::os::raw::c_char,
6315                              n: ::std::os::raw::c_int,
6316                              a: *mut ::std::os::raw::c_long,
6317                              lda: ::std::os::raw::c_int,
6318                              info: *mut ::std::os::raw::c_int);
6319}
6320extern "C" {
6321    pub fn THLongLapack_potri(uplo: ::std::os::raw::c_char,
6322                              n: ::std::os::raw::c_int,
6323                              a: *mut ::std::os::raw::c_long,
6324                              lda: ::std::os::raw::c_int,
6325                              info: *mut ::std::os::raw::c_int);
6326}
6327extern "C" {
6328    pub fn THLongLapack_potrs(uplo: ::std::os::raw::c_char,
6329                              n: ::std::os::raw::c_int,
6330                              nrhs: ::std::os::raw::c_int,
6331                              a: *mut ::std::os::raw::c_long,
6332                              lda: ::std::os::raw::c_int,
6333                              b: *mut ::std::os::raw::c_long,
6334                              ldb: ::std::os::raw::c_int,
6335                              info: *mut ::std::os::raw::c_int);
6336}
6337extern "C" {
6338    pub fn THLongLapack_pstrf(uplo: ::std::os::raw::c_char,
6339                              n: ::std::os::raw::c_int,
6340                              a: *mut ::std::os::raw::c_long,
6341                              lda: ::std::os::raw::c_int,
6342                              piv: *mut ::std::os::raw::c_int,
6343                              rank: *mut ::std::os::raw::c_int,
6344                              tol: ::std::os::raw::c_long,
6345                              work: *mut ::std::os::raw::c_long,
6346                              info: *mut ::std::os::raw::c_int);
6347}
6348extern "C" {
6349    pub fn THLongLapack_geqrf(m: ::std::os::raw::c_int,
6350                              n: ::std::os::raw::c_int,
6351                              a: *mut ::std::os::raw::c_long,
6352                              lda: ::std::os::raw::c_int,
6353                              tau: *mut ::std::os::raw::c_long,
6354                              work: *mut ::std::os::raw::c_long,
6355                              lwork: ::std::os::raw::c_int,
6356                              info: *mut ::std::os::raw::c_int);
6357}
6358extern "C" {
6359    pub fn THLongLapack_orgqr(m: ::std::os::raw::c_int,
6360                              n: ::std::os::raw::c_int,
6361                              k: ::std::os::raw::c_int,
6362                              a: *mut ::std::os::raw::c_long,
6363                              lda: ::std::os::raw::c_int,
6364                              tau: *mut ::std::os::raw::c_long,
6365                              work: *mut ::std::os::raw::c_long,
6366                              lwork: ::std::os::raw::c_int,
6367                              info: *mut ::std::os::raw::c_int);
6368}
6369extern "C" {
6370    pub fn THLongLapack_ormqr(side: ::std::os::raw::c_char,
6371                              trans: ::std::os::raw::c_char,
6372                              m: ::std::os::raw::c_int,
6373                              n: ::std::os::raw::c_int,
6374                              k: ::std::os::raw::c_int,
6375                              a: *mut ::std::os::raw::c_long,
6376                              lda: ::std::os::raw::c_int,
6377                              tau: *mut ::std::os::raw::c_long,
6378                              c: *mut ::std::os::raw::c_long,
6379                              ldc: ::std::os::raw::c_int,
6380                              work: *mut ::std::os::raw::c_long,
6381                              lwork: ::std::os::raw::c_int,
6382                              info: *mut ::std::os::raw::c_int);
6383}
6384extern "C" {
6385    pub fn THAtomicSet(a: *mut ::std::os::raw::c_int,
6386                       newvalue: ::std::os::raw::c_int);
6387}
6388extern "C" {
6389    pub fn THAtomicGet(a: *mut ::std::os::raw::c_int)
6390     -> ::std::os::raw::c_int;
6391}
6392extern "C" {
6393    pub fn THAtomicAdd(a: *mut ::std::os::raw::c_int,
6394                       value: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
6395}
6396extern "C" {
6397    pub fn THAtomicCompareAndSwap(a: *mut ::std::os::raw::c_int,
6398                                  oldvalue: ::std::os::raw::c_int,
6399                                  newvalue: ::std::os::raw::c_int)
6400     -> ::std::os::raw::c_int;
6401}
6402extern "C" {
6403    pub fn THAtomicIncrementRef(a: *mut ::std::os::raw::c_int);
6404}
6405extern "C" {
6406    pub fn THAtomicDecrementRef(a: *mut ::std::os::raw::c_int)
6407     -> ::std::os::raw::c_int;
6408}
6409extern "C" {
6410    pub fn THAtomicSetLong(a: *mut ::std::os::raw::c_long,
6411                           newvalue: ::std::os::raw::c_long);
6412}
6413extern "C" {
6414    pub fn THAtomicGetLong(a: *mut ::std::os::raw::c_long)
6415     -> ::std::os::raw::c_long;
6416}
6417extern "C" {
6418    pub fn THAtomicAddLong(a: *mut ::std::os::raw::c_long,
6419                           value: ::std::os::raw::c_long)
6420     -> ::std::os::raw::c_long;
6421}
6422extern "C" {
6423    pub fn THAtomicCompareAndSwapLong(a: *mut ::std::os::raw::c_long,
6424                                      oldvalue: ::std::os::raw::c_long,
6425                                      newvalue: ::std::os::raw::c_long)
6426     -> ::std::os::raw::c_long;
6427}
6428extern "C" {
6429    pub fn THAtomicSetPtrdiff(a: *mut isize, newvalue: isize);
6430}
6431extern "C" {
6432    pub fn THAtomicGetPtrdiff(a: *mut isize) -> isize;
6433}
6434extern "C" {
6435    pub fn THAtomicAddPtrdiff(a: *mut isize, value: isize) -> isize;
6436}
6437extern "C" {
6438    pub fn THAtomicCompareAndSwapPtrdiff(a: *mut isize, oldvalue: isize,
6439                                         newvalue: isize) -> isize;
6440}
6441extern "C" {
6442    pub fn THFloatVector_fill(x: *mut f32, c: f32, n: isize);
6443}
6444extern "C" {
6445    pub fn THFloatVector_cadd(z: *mut f32, x: *const f32, y: *const f32,
6446                              c: f32, n: isize);
6447}
6448extern "C" {
6449    pub fn THFloatVector_adds(y: *mut f32, x: *const f32, c: f32, n: isize);
6450}
6451extern "C" {
6452    pub fn THFloatVector_cmul(z: *mut f32, x: *const f32, y: *const f32,
6453                              n: isize);
6454}
6455extern "C" {
6456    pub fn THFloatVector_muls(y: *mut f32, x: *const f32, c: f32, n: isize);
6457}
6458extern "C" {
6459    pub fn THFloatVector_cdiv(z: *mut f32, x: *const f32, y: *const f32,
6460                              n: isize);
6461}
6462extern "C" {
6463    pub fn THFloatVector_divs(y: *mut f32, x: *const f32, c: f32, n: isize);
6464}
6465extern "C" {
6466    pub fn THFloatVector_copy(y: *mut f32, x: *const f32, n: isize);
6467}
6468extern "C" {
6469    pub fn THFloatVector_vectorDispatchInit();
6470}
6471extern "C" {
6472    pub fn THDoubleVector_fill(x: *mut f64, c: f64, n: isize);
6473}
6474extern "C" {
6475    pub fn THDoubleVector_cadd(z: *mut f64, x: *const f64, y: *const f64,
6476                               c: f64, n: isize);
6477}
6478extern "C" {
6479    pub fn THDoubleVector_adds(y: *mut f64, x: *const f64, c: f64, n: isize);
6480}
6481extern "C" {
6482    pub fn THDoubleVector_cmul(z: *mut f64, x: *const f64, y: *const f64,
6483                               n: isize);
6484}
6485extern "C" {
6486    pub fn THDoubleVector_muls(y: *mut f64, x: *const f64, c: f64, n: isize);
6487}
6488extern "C" {
6489    pub fn THDoubleVector_cdiv(z: *mut f64, x: *const f64, y: *const f64,
6490                               n: isize);
6491}
6492extern "C" {
6493    pub fn THDoubleVector_divs(y: *mut f64, x: *const f64, c: f64, n: isize);
6494}
6495extern "C" {
6496    pub fn THDoubleVector_copy(y: *mut f64, x: *const f64, n: isize);
6497}
6498extern "C" {
6499    pub fn THDoubleVector_vectorDispatchInit();
6500}
6501extern "C" {
6502    pub fn THByteVector_fill(x: *mut ::std::os::raw::c_uchar,
6503                             c: ::std::os::raw::c_uchar, n: isize);
6504}
6505extern "C" {
6506    pub fn THByteVector_cadd(z: *mut ::std::os::raw::c_uchar,
6507                             x: *const ::std::os::raw::c_uchar,
6508                             y: *const ::std::os::raw::c_uchar,
6509                             c: ::std::os::raw::c_uchar, n: isize);
6510}
6511extern "C" {
6512    pub fn THByteVector_adds(y: *mut ::std::os::raw::c_uchar,
6513                             x: *const ::std::os::raw::c_uchar,
6514                             c: ::std::os::raw::c_uchar, n: isize);
6515}
6516extern "C" {
6517    pub fn THByteVector_cmul(z: *mut ::std::os::raw::c_uchar,
6518                             x: *const ::std::os::raw::c_uchar,
6519                             y: *const ::std::os::raw::c_uchar, n: isize);
6520}
6521extern "C" {
6522    pub fn THByteVector_muls(y: *mut ::std::os::raw::c_uchar,
6523                             x: *const ::std::os::raw::c_uchar,
6524                             c: ::std::os::raw::c_uchar, n: isize);
6525}
6526extern "C" {
6527    pub fn THByteVector_cdiv(z: *mut ::std::os::raw::c_uchar,
6528                             x: *const ::std::os::raw::c_uchar,
6529                             y: *const ::std::os::raw::c_uchar, n: isize);
6530}
6531extern "C" {
6532    pub fn THByteVector_divs(y: *mut ::std::os::raw::c_uchar,
6533                             x: *const ::std::os::raw::c_uchar,
6534                             c: ::std::os::raw::c_uchar, n: isize);
6535}
6536extern "C" {
6537    pub fn THByteVector_copy(y: *mut ::std::os::raw::c_uchar,
6538                             x: *const ::std::os::raw::c_uchar, n: isize);
6539}
6540extern "C" {
6541    pub fn THByteVector_vectorDispatchInit();
6542}
6543extern "C" {
6544    pub fn THCharVector_fill(x: *mut ::std::os::raw::c_char,
6545                             c: ::std::os::raw::c_char, n: isize);
6546}
6547extern "C" {
6548    pub fn THCharVector_cadd(z: *mut ::std::os::raw::c_char,
6549                             x: *const ::std::os::raw::c_char,
6550                             y: *const ::std::os::raw::c_char,
6551                             c: ::std::os::raw::c_char, n: isize);
6552}
6553extern "C" {
6554    pub fn THCharVector_adds(y: *mut ::std::os::raw::c_char,
6555                             x: *const ::std::os::raw::c_char,
6556                             c: ::std::os::raw::c_char, n: isize);
6557}
6558extern "C" {
6559    pub fn THCharVector_cmul(z: *mut ::std::os::raw::c_char,
6560                             x: *const ::std::os::raw::c_char,
6561                             y: *const ::std::os::raw::c_char, n: isize);
6562}
6563extern "C" {
6564    pub fn THCharVector_muls(y: *mut ::std::os::raw::c_char,
6565                             x: *const ::std::os::raw::c_char,
6566                             c: ::std::os::raw::c_char, n: isize);
6567}
6568extern "C" {
6569    pub fn THCharVector_cdiv(z: *mut ::std::os::raw::c_char,
6570                             x: *const ::std::os::raw::c_char,
6571                             y: *const ::std::os::raw::c_char, n: isize);
6572}
6573extern "C" {
6574    pub fn THCharVector_divs(y: *mut ::std::os::raw::c_char,
6575                             x: *const ::std::os::raw::c_char,
6576                             c: ::std::os::raw::c_char, n: isize);
6577}
6578extern "C" {
6579    pub fn THCharVector_copy(y: *mut ::std::os::raw::c_char,
6580                             x: *const ::std::os::raw::c_char, n: isize);
6581}
6582extern "C" {
6583    pub fn THCharVector_vectorDispatchInit();
6584}
6585extern "C" {
6586    pub fn THShortVector_fill(x: *mut ::std::os::raw::c_short,
6587                              c: ::std::os::raw::c_short, n: isize);
6588}
6589extern "C" {
6590    pub fn THShortVector_cadd(z: *mut ::std::os::raw::c_short,
6591                              x: *const ::std::os::raw::c_short,
6592                              y: *const ::std::os::raw::c_short,
6593                              c: ::std::os::raw::c_short, n: isize);
6594}
6595extern "C" {
6596    pub fn THShortVector_adds(y: *mut ::std::os::raw::c_short,
6597                              x: *const ::std::os::raw::c_short,
6598                              c: ::std::os::raw::c_short, n: isize);
6599}
6600extern "C" {
6601    pub fn THShortVector_cmul(z: *mut ::std::os::raw::c_short,
6602                              x: *const ::std::os::raw::c_short,
6603                              y: *const ::std::os::raw::c_short, n: isize);
6604}
6605extern "C" {
6606    pub fn THShortVector_muls(y: *mut ::std::os::raw::c_short,
6607                              x: *const ::std::os::raw::c_short,
6608                              c: ::std::os::raw::c_short, n: isize);
6609}
6610extern "C" {
6611    pub fn THShortVector_cdiv(z: *mut ::std::os::raw::c_short,
6612                              x: *const ::std::os::raw::c_short,
6613                              y: *const ::std::os::raw::c_short, n: isize);
6614}
6615extern "C" {
6616    pub fn THShortVector_divs(y: *mut ::std::os::raw::c_short,
6617                              x: *const ::std::os::raw::c_short,
6618                              c: ::std::os::raw::c_short, n: isize);
6619}
6620extern "C" {
6621    pub fn THShortVector_copy(y: *mut ::std::os::raw::c_short,
6622                              x: *const ::std::os::raw::c_short, n: isize);
6623}
6624extern "C" {
6625    pub fn THShortVector_vectorDispatchInit();
6626}
6627extern "C" {
6628    pub fn THIntVector_fill(x: *mut ::std::os::raw::c_int,
6629                            c: ::std::os::raw::c_int, n: isize);
6630}
6631extern "C" {
6632    pub fn THIntVector_cadd(z: *mut ::std::os::raw::c_int,
6633                            x: *const ::std::os::raw::c_int,
6634                            y: *const ::std::os::raw::c_int,
6635                            c: ::std::os::raw::c_int, n: isize);
6636}
6637extern "C" {
6638    pub fn THIntVector_adds(y: *mut ::std::os::raw::c_int,
6639                            x: *const ::std::os::raw::c_int,
6640                            c: ::std::os::raw::c_int, n: isize);
6641}
6642extern "C" {
6643    pub fn THIntVector_cmul(z: *mut ::std::os::raw::c_int,
6644                            x: *const ::std::os::raw::c_int,
6645                            y: *const ::std::os::raw::c_int, n: isize);
6646}
6647extern "C" {
6648    pub fn THIntVector_muls(y: *mut ::std::os::raw::c_int,
6649                            x: *const ::std::os::raw::c_int,
6650                            c: ::std::os::raw::c_int, n: isize);
6651}
6652extern "C" {
6653    pub fn THIntVector_cdiv(z: *mut ::std::os::raw::c_int,
6654                            x: *const ::std::os::raw::c_int,
6655                            y: *const ::std::os::raw::c_int, n: isize);
6656}
6657extern "C" {
6658    pub fn THIntVector_divs(y: *mut ::std::os::raw::c_int,
6659                            x: *const ::std::os::raw::c_int,
6660                            c: ::std::os::raw::c_int, n: isize);
6661}
6662extern "C" {
6663    pub fn THIntVector_copy(y: *mut ::std::os::raw::c_int,
6664                            x: *const ::std::os::raw::c_int, n: isize);
6665}
6666extern "C" {
6667    pub fn THIntVector_vectorDispatchInit();
6668}
6669extern "C" {
6670    pub fn THLongVector_fill(x: *mut ::std::os::raw::c_long,
6671                             c: ::std::os::raw::c_long, n: isize);
6672}
6673extern "C" {
6674    pub fn THLongVector_cadd(z: *mut ::std::os::raw::c_long,
6675                             x: *const ::std::os::raw::c_long,
6676                             y: *const ::std::os::raw::c_long,
6677                             c: ::std::os::raw::c_long, n: isize);
6678}
6679extern "C" {
6680    pub fn THLongVector_adds(y: *mut ::std::os::raw::c_long,
6681                             x: *const ::std::os::raw::c_long,
6682                             c: ::std::os::raw::c_long, n: isize);
6683}
6684extern "C" {
6685    pub fn THLongVector_cmul(z: *mut ::std::os::raw::c_long,
6686                             x: *const ::std::os::raw::c_long,
6687                             y: *const ::std::os::raw::c_long, n: isize);
6688}
6689extern "C" {
6690    pub fn THLongVector_muls(y: *mut ::std::os::raw::c_long,
6691                             x: *const ::std::os::raw::c_long,
6692                             c: ::std::os::raw::c_long, n: isize);
6693}
6694extern "C" {
6695    pub fn THLongVector_cdiv(z: *mut ::std::os::raw::c_long,
6696                             x: *const ::std::os::raw::c_long,
6697                             y: *const ::std::os::raw::c_long, n: isize);
6698}
6699extern "C" {
6700    pub fn THLongVector_divs(y: *mut ::std::os::raw::c_long,
6701                             x: *const ::std::os::raw::c_long,
6702                             c: ::std::os::raw::c_long, n: isize);
6703}
6704extern "C" {
6705    pub fn THLongVector_copy(y: *mut ::std::os::raw::c_long,
6706                             x: *const ::std::os::raw::c_long, n: isize);
6707}
6708extern "C" {
6709    pub fn THLongVector_vectorDispatchInit();
6710}
6711extern "C" {
6712    #[link_name = "THLog2Pi"]
6713    pub static THLog2Pi: f64;
6714}
6715extern "C" {
6716    #[link_name = "THLogZero"]
6717    pub static THLogZero: f64;
6718}
6719extern "C" {
6720    #[link_name = "THLogOne"]
6721    pub static THLogOne: f64;
6722}
6723extern "C" {
6724    pub fn THLogAdd(log_a: f64, log_b: f64) -> f64;
6725}
6726extern "C" {
6727    pub fn THLogSub(log_a: f64, log_b: f64) -> f64;
6728}
6729extern "C" {
6730    pub fn THExpMinusApprox(x: f64) -> f64;
6731}
6732#[repr(C)]
6733pub struct THGenerator {
6734    pub the_initial_seed: ::std::os::raw::c_ulong,
6735    pub left: ::std::os::raw::c_int,
6736    pub seeded: ::std::os::raw::c_int,
6737    pub next: ::std::os::raw::c_ulong,
6738    pub state: [::std::os::raw::c_ulong; 624usize],
6739    pub normal_x: f64,
6740    pub normal_y: f64,
6741    pub normal_rho: f64,
6742    pub normal_is_valid: ::std::os::raw::c_int,
6743}
6744#[test]
6745fn bindgen_test_layout_THGenerator() {
6746    assert_eq!(::std::mem::size_of::<THGenerator>() , 5048usize , concat ! (
6747               "Size of: " , stringify ! ( THGenerator ) ));
6748    assert_eq! (::std::mem::align_of::<THGenerator>() , 8usize , concat ! (
6749                "Alignment of " , stringify ! ( THGenerator ) ));
6750    assert_eq! (unsafe {
6751                & ( * ( 0 as * const THGenerator ) ) . the_initial_seed as *
6752                const _ as usize } , 0usize , concat ! (
6753                "Alignment of field: " , stringify ! ( THGenerator ) , "::" ,
6754                stringify ! ( the_initial_seed ) ));
6755    assert_eq! (unsafe {
6756                & ( * ( 0 as * const THGenerator ) ) . left as * const _ as
6757                usize } , 8usize , concat ! (
6758                "Alignment of field: " , stringify ! ( THGenerator ) , "::" ,
6759                stringify ! ( left ) ));
6760    assert_eq! (unsafe {
6761                & ( * ( 0 as * const THGenerator ) ) . seeded as * const _ as
6762                usize } , 12usize , concat ! (
6763                "Alignment of field: " , stringify ! ( THGenerator ) , "::" ,
6764                stringify ! ( seeded ) ));
6765    assert_eq! (unsafe {
6766                & ( * ( 0 as * const THGenerator ) ) . next as * const _ as
6767                usize } , 16usize , concat ! (
6768                "Alignment of field: " , stringify ! ( THGenerator ) , "::" ,
6769                stringify ! ( next ) ));
6770    assert_eq! (unsafe {
6771                & ( * ( 0 as * const THGenerator ) ) . state as * const _ as
6772                usize } , 24usize , concat ! (
6773                "Alignment of field: " , stringify ! ( THGenerator ) , "::" ,
6774                stringify ! ( state ) ));
6775    assert_eq! (unsafe {
6776                & ( * ( 0 as * const THGenerator ) ) . normal_x as * const _
6777                as usize } , 5016usize , concat ! (
6778                "Alignment of field: " , stringify ! ( THGenerator ) , "::" ,
6779                stringify ! ( normal_x ) ));
6780    assert_eq! (unsafe {
6781                & ( * ( 0 as * const THGenerator ) ) . normal_y as * const _
6782                as usize } , 5024usize , concat ! (
6783                "Alignment of field: " , stringify ! ( THGenerator ) , "::" ,
6784                stringify ! ( normal_y ) ));
6785    assert_eq! (unsafe {
6786                & ( * ( 0 as * const THGenerator ) ) . normal_rho as * const _
6787                as usize } , 5032usize , concat ! (
6788                "Alignment of field: " , stringify ! ( THGenerator ) , "::" ,
6789                stringify ! ( normal_rho ) ));
6790    assert_eq! (unsafe {
6791                & ( * ( 0 as * const THGenerator ) ) . normal_is_valid as *
6792                const _ as usize } , 5040usize , concat ! (
6793                "Alignment of field: " , stringify ! ( THGenerator ) , "::" ,
6794                stringify ! ( normal_is_valid ) ));
6795}
6796extern "C" {
6797    pub fn THGenerator_new() -> *mut THGenerator;
6798}
6799extern "C" {
6800    pub fn THGenerator_copy(self_: *mut THGenerator, from: *mut THGenerator)
6801     -> *mut THGenerator;
6802}
6803extern "C" {
6804    pub fn THGenerator_free(gen: *mut THGenerator);
6805}
6806extern "C" {
6807    pub fn THGenerator_isValid(_generator: *mut THGenerator)
6808     -> ::std::os::raw::c_int;
6809}
6810extern "C" {
6811    pub fn THRandom_seed(_generator: *mut THGenerator)
6812     -> ::std::os::raw::c_ulong;
6813}
6814extern "C" {
6815    pub fn THRandom_manualSeed(_generator: *mut THGenerator,
6816                               the_seed_: ::std::os::raw::c_ulong);
6817}
6818extern "C" {
6819    pub fn THRandom_initialSeed(_generator: *mut THGenerator)
6820     -> ::std::os::raw::c_ulong;
6821}
6822extern "C" {
6823    pub fn THRandom_random(_generator: *mut THGenerator)
6824     -> ::std::os::raw::c_ulong;
6825}
6826extern "C" {
6827    pub fn THRandom_uniform(_generator: *mut THGenerator, a: f64, b: f64)
6828     -> f64;
6829}
6830extern "C" {
6831    pub fn THRandom_normal(_generator: *mut THGenerator, mean: f64, stdv: f64)
6832     -> f64;
6833}
6834extern "C" {
6835    pub fn THRandom_exponential(_generator: *mut THGenerator, lambda: f64)
6836     -> f64;
6837}
6838extern "C" {
6839    pub fn THRandom_cauchy(_generator: *mut THGenerator, median: f64,
6840                           sigma: f64) -> f64;
6841}
6842extern "C" {
6843    pub fn THRandom_logNormal(_generator: *mut THGenerator, mean: f64,
6844                              stdv: f64) -> f64;
6845}
6846extern "C" {
6847    pub fn THRandom_geometric(_generator: *mut THGenerator, p: f64)
6848     -> ::std::os::raw::c_int;
6849}
6850extern "C" {
6851    pub fn THRandom_bernoulli(_generator: *mut THGenerator, p: f64)
6852     -> ::std::os::raw::c_int;
6853}
6854extern "C" {
6855    pub fn THSize_isSameSizeAs(sizeA: *const ::std::os::raw::c_long,
6856                               dimsA: ::std::os::raw::c_long,
6857                               sizeB: *const ::std::os::raw::c_long,
6858                               dimsB: ::std::os::raw::c_long)
6859     -> ::std::os::raw::c_int;
6860}
6861extern "C" {
6862    pub fn THSize_nElement(dims: ::std::os::raw::c_long,
6863                           size: *mut ::std::os::raw::c_long) -> isize;
6864}
6865#[repr(C)]
6866#[derive(Copy)]
6867pub struct THAllocator {
6868    pub malloc: ::std::option::Option<unsafe extern "C" fn(arg1:
6869                                                               *mut ::std::os::raw::c_void,
6870                                                           arg2: isize)
6871                                          -> *mut ::std::os::raw::c_void>,
6872    pub realloc: ::std::option::Option<unsafe extern "C" fn(arg1:
6873                                                                *mut ::std::os::raw::c_void,
6874                                                            arg2:
6875                                                                *mut ::std::os::raw::c_void,
6876                                                            arg3: isize)
6877                                           -> *mut ::std::os::raw::c_void>,
6878    pub free: ::std::option::Option<unsafe extern "C" fn(arg1:
6879                                                             *mut ::std::os::raw::c_void,
6880                                                         arg2:
6881                                                             *mut ::std::os::raw::c_void)>,
6882}
6883#[test]
6884fn bindgen_test_layout_THAllocator() {
6885    assert_eq!(::std::mem::size_of::<THAllocator>() , 24usize , concat ! (
6886               "Size of: " , stringify ! ( THAllocator ) ));
6887    assert_eq! (::std::mem::align_of::<THAllocator>() , 8usize , concat ! (
6888                "Alignment of " , stringify ! ( THAllocator ) ));
6889    assert_eq! (unsafe {
6890                & ( * ( 0 as * const THAllocator ) ) . malloc as * const _ as
6891                usize } , 0usize , concat ! (
6892                "Alignment of field: " , stringify ! ( THAllocator ) , "::" ,
6893                stringify ! ( malloc ) ));
6894    assert_eq! (unsafe {
6895                & ( * ( 0 as * const THAllocator ) ) . realloc as * const _ as
6896                usize } , 8usize , concat ! (
6897                "Alignment of field: " , stringify ! ( THAllocator ) , "::" ,
6898                stringify ! ( realloc ) ));
6899    assert_eq! (unsafe {
6900                & ( * ( 0 as * const THAllocator ) ) . free as * const _ as
6901                usize } , 16usize , concat ! (
6902                "Alignment of field: " , stringify ! ( THAllocator ) , "::" ,
6903                stringify ! ( free ) ));
6904}
6905impl Clone for THAllocator {
6906    fn clone(&self) -> Self { *self }
6907}
6908extern "C" {
6909    #[link_name = "THDefaultAllocator"]
6910    pub static mut THDefaultAllocator: THAllocator;
6911}
6912#[repr(C)]
6913#[derive(Debug, Copy, Clone)]
6914pub struct THMapAllocatorContext_ {
6915    _unused: [u8; 0],
6916}
6917pub type THMapAllocatorContext = THMapAllocatorContext_;
6918extern "C" {
6919    pub fn THMapAllocatorContext_new(filename: *const ::std::os::raw::c_char,
6920                                     flags: ::std::os::raw::c_int)
6921     -> *mut THMapAllocatorContext;
6922}
6923extern "C" {
6924    pub fn THMapAllocatorContext_newWithFd(filename:
6925                                               *const ::std::os::raw::c_char,
6926                                           fd: ::std::os::raw::c_int,
6927                                           flags: ::std::os::raw::c_int)
6928     -> *mut THMapAllocatorContext;
6929}
6930extern "C" {
6931    pub fn THMapAllocatorContext_filename(ctx: *mut THMapAllocatorContext)
6932     -> *mut ::std::os::raw::c_char;
6933}
6934extern "C" {
6935    pub fn THMapAllocatorContext_fd(ctx: *mut THMapAllocatorContext)
6936     -> ::std::os::raw::c_int;
6937}
6938extern "C" {
6939    pub fn THMapAllocatorContext_size(ctx: *mut THMapAllocatorContext)
6940     -> isize;
6941}
6942extern "C" {
6943    pub fn THMapAllocatorContext_free(ctx: *mut THMapAllocatorContext);
6944}
6945extern "C" {
6946    pub fn THRefcountedMapAllocator_incref(ctx: *mut THMapAllocatorContext,
6947                                           data: *mut ::std::os::raw::c_void);
6948}
6949extern "C" {
6950    pub fn THRefcountedMapAllocator_decref(ctx: *mut THMapAllocatorContext,
6951                                           data: *mut ::std::os::raw::c_void)
6952     -> ::std::os::raw::c_int;
6953}
6954extern "C" {
6955    #[link_name = "THMapAllocator"]
6956    pub static mut THMapAllocator: THAllocator;
6957}
6958extern "C" {
6959    #[link_name = "THRefcountedMapAllocator"]
6960    pub static mut THRefcountedMapAllocator: THAllocator;
6961}
6962#[repr(C)]
6963#[derive(Copy)]
6964pub struct THFloatStorage {
6965    pub data: *mut f32,
6966    pub size: isize,
6967    pub refcount: ::std::os::raw::c_int,
6968    pub flag: ::std::os::raw::c_char,
6969    pub allocator: *mut THAllocator,
6970    pub allocatorContext: *mut ::std::os::raw::c_void,
6971    pub view: *mut THFloatStorage,
6972}
6973#[test]
6974fn bindgen_test_layout_THFloatStorage() {
6975    assert_eq!(::std::mem::size_of::<THFloatStorage>() , 48usize , concat ! (
6976               "Size of: " , stringify ! ( THFloatStorage ) ));
6977    assert_eq! (::std::mem::align_of::<THFloatStorage>() , 8usize , concat ! (
6978                "Alignment of " , stringify ! ( THFloatStorage ) ));
6979    assert_eq! (unsafe {
6980                & ( * ( 0 as * const THFloatStorage ) ) . data as * const _ as
6981                usize } , 0usize , concat ! (
6982                "Alignment of field: " , stringify ! ( THFloatStorage ) , "::"
6983                , stringify ! ( data ) ));
6984    assert_eq! (unsafe {
6985                & ( * ( 0 as * const THFloatStorage ) ) . size as * const _ as
6986                usize } , 8usize , concat ! (
6987                "Alignment of field: " , stringify ! ( THFloatStorage ) , "::"
6988                , stringify ! ( size ) ));
6989    assert_eq! (unsafe {
6990                & ( * ( 0 as * const THFloatStorage ) ) . refcount as * const
6991                _ as usize } , 16usize , concat ! (
6992                "Alignment of field: " , stringify ! ( THFloatStorage ) , "::"
6993                , stringify ! ( refcount ) ));
6994    assert_eq! (unsafe {
6995                & ( * ( 0 as * const THFloatStorage ) ) . flag as * const _ as
6996                usize } , 20usize , concat ! (
6997                "Alignment of field: " , stringify ! ( THFloatStorage ) , "::"
6998                , stringify ! ( flag ) ));
6999    assert_eq! (unsafe {
7000                & ( * ( 0 as * const THFloatStorage ) ) . allocator as * const
7001                _ as usize } , 24usize , concat ! (
7002                "Alignment of field: " , stringify ! ( THFloatStorage ) , "::"
7003                , stringify ! ( allocator ) ));
7004    assert_eq! (unsafe {
7005                & ( * ( 0 as * const THFloatStorage ) ) . allocatorContext as
7006                * const _ as usize } , 32usize , concat ! (
7007                "Alignment of field: " , stringify ! ( THFloatStorage ) , "::"
7008                , stringify ! ( allocatorContext ) ));
7009    assert_eq! (unsafe {
7010                & ( * ( 0 as * const THFloatStorage ) ) . view as * const _ as
7011                usize } , 40usize , concat ! (
7012                "Alignment of field: " , stringify ! ( THFloatStorage ) , "::"
7013                , stringify ! ( view ) ));
7014}
7015impl Clone for THFloatStorage {
7016    fn clone(&self) -> Self { *self }
7017}
7018extern "C" {
7019    pub fn THFloatStorage_data(arg1: *const THFloatStorage) -> *mut f32;
7020}
7021extern "C" {
7022    pub fn THFloatStorage_size(arg1: *const THFloatStorage) -> isize;
7023}
7024extern "C" {
7025    pub fn THFloatStorage_elementSize() -> usize;
7026}
7027extern "C" {
7028    pub fn THFloatStorage_set(arg1: *mut THFloatStorage, arg2: isize,
7029                              arg3: f32);
7030}
7031extern "C" {
7032    pub fn THFloatStorage_get(arg1: *const THFloatStorage, arg2: isize)
7033     -> f32;
7034}
7035extern "C" {
7036    pub fn THFloatStorage_new() -> *mut THFloatStorage;
7037}
7038extern "C" {
7039    pub fn THFloatStorage_newWithSize(size: isize) -> *mut THFloatStorage;
7040}
7041extern "C" {
7042    pub fn THFloatStorage_newWithSize1(arg1: f32) -> *mut THFloatStorage;
7043}
7044extern "C" {
7045    pub fn THFloatStorage_newWithSize2(arg1: f32, arg2: f32)
7046     -> *mut THFloatStorage;
7047}
7048extern "C" {
7049    pub fn THFloatStorage_newWithSize3(arg1: f32, arg2: f32, arg3: f32)
7050     -> *mut THFloatStorage;
7051}
7052extern "C" {
7053    pub fn THFloatStorage_newWithSize4(arg1: f32, arg2: f32, arg3: f32,
7054                                       arg4: f32) -> *mut THFloatStorage;
7055}
7056extern "C" {
7057    pub fn THFloatStorage_newWithMapping(filename:
7058                                             *const ::std::os::raw::c_char,
7059                                         size: isize,
7060                                         flags: ::std::os::raw::c_int)
7061     -> *mut THFloatStorage;
7062}
7063extern "C" {
7064    pub fn THFloatStorage_newWithData(data: *mut f32, size: isize)
7065     -> *mut THFloatStorage;
7066}
7067extern "C" {
7068    pub fn THFloatStorage_newWithAllocator(size: isize,
7069                                           allocator: *mut THAllocator,
7070                                           allocatorContext:
7071                                               *mut ::std::os::raw::c_void)
7072     -> *mut THFloatStorage;
7073}
7074extern "C" {
7075    pub fn THFloatStorage_newWithDataAndAllocator(data: *mut f32, size: isize,
7076                                                  allocator: *mut THAllocator,
7077                                                  allocatorContext:
7078                                                      *mut ::std::os::raw::c_void)
7079     -> *mut THFloatStorage;
7080}
7081extern "C" {
7082    pub fn THFloatStorage_setFlag(storage: *mut THFloatStorage,
7083                                  flag: ::std::os::raw::c_char);
7084}
7085extern "C" {
7086    pub fn THFloatStorage_clearFlag(storage: *mut THFloatStorage,
7087                                    flag: ::std::os::raw::c_char);
7088}
7089extern "C" {
7090    pub fn THFloatStorage_retain(storage: *mut THFloatStorage);
7091}
7092extern "C" {
7093    pub fn THFloatStorage_swap(storage1: *mut THFloatStorage,
7094                               storage2: *mut THFloatStorage);
7095}
7096extern "C" {
7097    pub fn THFloatStorage_free(storage: *mut THFloatStorage);
7098}
7099extern "C" {
7100    pub fn THFloatStorage_resize(storage: *mut THFloatStorage, size: isize);
7101}
7102extern "C" {
7103    pub fn THFloatStorage_fill(storage: *mut THFloatStorage, value: f32);
7104}
7105#[repr(C)]
7106#[derive(Copy)]
7107pub struct THDoubleStorage {
7108    pub data: *mut f64,
7109    pub size: isize,
7110    pub refcount: ::std::os::raw::c_int,
7111    pub flag: ::std::os::raw::c_char,
7112    pub allocator: *mut THAllocator,
7113    pub allocatorContext: *mut ::std::os::raw::c_void,
7114    pub view: *mut THDoubleStorage,
7115}
7116#[test]
7117fn bindgen_test_layout_THDoubleStorage() {
7118    assert_eq!(::std::mem::size_of::<THDoubleStorage>() , 48usize , concat ! (
7119               "Size of: " , stringify ! ( THDoubleStorage ) ));
7120    assert_eq! (::std::mem::align_of::<THDoubleStorage>() , 8usize , concat !
7121                ( "Alignment of " , stringify ! ( THDoubleStorage ) ));
7122    assert_eq! (unsafe {
7123                & ( * ( 0 as * const THDoubleStorage ) ) . data as * const _
7124                as usize } , 0usize , concat ! (
7125                "Alignment of field: " , stringify ! ( THDoubleStorage ) ,
7126                "::" , stringify ! ( data ) ));
7127    assert_eq! (unsafe {
7128                & ( * ( 0 as * const THDoubleStorage ) ) . size as * const _
7129                as usize } , 8usize , concat ! (
7130                "Alignment of field: " , stringify ! ( THDoubleStorage ) ,
7131                "::" , stringify ! ( size ) ));
7132    assert_eq! (unsafe {
7133                & ( * ( 0 as * const THDoubleStorage ) ) . refcount as * const
7134                _ as usize } , 16usize , concat ! (
7135                "Alignment of field: " , stringify ! ( THDoubleStorage ) ,
7136                "::" , stringify ! ( refcount ) ));
7137    assert_eq! (unsafe {
7138                & ( * ( 0 as * const THDoubleStorage ) ) . flag as * const _
7139                as usize } , 20usize , concat ! (
7140                "Alignment of field: " , stringify ! ( THDoubleStorage ) ,
7141                "::" , stringify ! ( flag ) ));
7142    assert_eq! (unsafe {
7143                & ( * ( 0 as * const THDoubleStorage ) ) . allocator as *
7144                const _ as usize } , 24usize , concat ! (
7145                "Alignment of field: " , stringify ! ( THDoubleStorage ) ,
7146                "::" , stringify ! ( allocator ) ));
7147    assert_eq! (unsafe {
7148                & ( * ( 0 as * const THDoubleStorage ) ) . allocatorContext as
7149                * const _ as usize } , 32usize , concat ! (
7150                "Alignment of field: " , stringify ! ( THDoubleStorage ) ,
7151                "::" , stringify ! ( allocatorContext ) ));
7152    assert_eq! (unsafe {
7153                & ( * ( 0 as * const THDoubleStorage ) ) . view as * const _
7154                as usize } , 40usize , concat ! (
7155                "Alignment of field: " , stringify ! ( THDoubleStorage ) ,
7156                "::" , stringify ! ( view ) ));
7157}
7158impl Clone for THDoubleStorage {
7159    fn clone(&self) -> Self { *self }
7160}
7161extern "C" {
7162    pub fn THDoubleStorage_data(arg1: *const THDoubleStorage) -> *mut f64;
7163}
7164extern "C" {
7165    pub fn THDoubleStorage_size(arg1: *const THDoubleStorage) -> isize;
7166}
7167extern "C" {
7168    pub fn THDoubleStorage_elementSize() -> usize;
7169}
7170extern "C" {
7171    pub fn THDoubleStorage_set(arg1: *mut THDoubleStorage, arg2: isize,
7172                               arg3: f64);
7173}
7174extern "C" {
7175    pub fn THDoubleStorage_get(arg1: *const THDoubleStorage, arg2: isize)
7176     -> f64;
7177}
7178extern "C" {
7179    pub fn THDoubleStorage_new() -> *mut THDoubleStorage;
7180}
7181extern "C" {
7182    pub fn THDoubleStorage_newWithSize(size: isize) -> *mut THDoubleStorage;
7183}
7184extern "C" {
7185    pub fn THDoubleStorage_newWithSize1(arg1: f64) -> *mut THDoubleStorage;
7186}
7187extern "C" {
7188    pub fn THDoubleStorage_newWithSize2(arg1: f64, arg2: f64)
7189     -> *mut THDoubleStorage;
7190}
7191extern "C" {
7192    pub fn THDoubleStorage_newWithSize3(arg1: f64, arg2: f64, arg3: f64)
7193     -> *mut THDoubleStorage;
7194}
7195extern "C" {
7196    pub fn THDoubleStorage_newWithSize4(arg1: f64, arg2: f64, arg3: f64,
7197                                        arg4: f64) -> *mut THDoubleStorage;
7198}
7199extern "C" {
7200    pub fn THDoubleStorage_newWithMapping(filename:
7201                                              *const ::std::os::raw::c_char,
7202                                          size: isize,
7203                                          flags: ::std::os::raw::c_int)
7204     -> *mut THDoubleStorage;
7205}
7206extern "C" {
7207    pub fn THDoubleStorage_newWithData(data: *mut f64, size: isize)
7208     -> *mut THDoubleStorage;
7209}
7210extern "C" {
7211    pub fn THDoubleStorage_newWithAllocator(size: isize,
7212                                            allocator: *mut THAllocator,
7213                                            allocatorContext:
7214                                                *mut ::std::os::raw::c_void)
7215     -> *mut THDoubleStorage;
7216}
7217extern "C" {
7218    pub fn THDoubleStorage_newWithDataAndAllocator(data: *mut f64,
7219                                                   size: isize,
7220                                                   allocator:
7221                                                       *mut THAllocator,
7222                                                   allocatorContext:
7223                                                       *mut ::std::os::raw::c_void)
7224     -> *mut THDoubleStorage;
7225}
7226extern "C" {
7227    pub fn THDoubleStorage_setFlag(storage: *mut THDoubleStorage,
7228                                   flag: ::std::os::raw::c_char);
7229}
7230extern "C" {
7231    pub fn THDoubleStorage_clearFlag(storage: *mut THDoubleStorage,
7232                                     flag: ::std::os::raw::c_char);
7233}
7234extern "C" {
7235    pub fn THDoubleStorage_retain(storage: *mut THDoubleStorage);
7236}
7237extern "C" {
7238    pub fn THDoubleStorage_swap(storage1: *mut THDoubleStorage,
7239                                storage2: *mut THDoubleStorage);
7240}
7241extern "C" {
7242    pub fn THDoubleStorage_free(storage: *mut THDoubleStorage);
7243}
7244extern "C" {
7245    pub fn THDoubleStorage_resize(storage: *mut THDoubleStorage, size: isize);
7246}
7247extern "C" {
7248    pub fn THDoubleStorage_fill(storage: *mut THDoubleStorage, value: f64);
7249}
7250#[repr(C)]
7251#[derive(Copy)]
7252pub struct THByteStorage {
7253    pub data: *mut ::std::os::raw::c_uchar,
7254    pub size: isize,
7255    pub refcount: ::std::os::raw::c_int,
7256    pub flag: ::std::os::raw::c_char,
7257    pub allocator: *mut THAllocator,
7258    pub allocatorContext: *mut ::std::os::raw::c_void,
7259    pub view: *mut THByteStorage,
7260}
7261#[test]
7262fn bindgen_test_layout_THByteStorage() {
7263    assert_eq!(::std::mem::size_of::<THByteStorage>() , 48usize , concat ! (
7264               "Size of: " , stringify ! ( THByteStorage ) ));
7265    assert_eq! (::std::mem::align_of::<THByteStorage>() , 8usize , concat ! (
7266                "Alignment of " , stringify ! ( THByteStorage ) ));
7267    assert_eq! (unsafe {
7268                & ( * ( 0 as * const THByteStorage ) ) . data as * const _ as
7269                usize } , 0usize , concat ! (
7270                "Alignment of field: " , stringify ! ( THByteStorage ) , "::"
7271                , stringify ! ( data ) ));
7272    assert_eq! (unsafe {
7273                & ( * ( 0 as * const THByteStorage ) ) . size as * const _ as
7274                usize } , 8usize , concat ! (
7275                "Alignment of field: " , stringify ! ( THByteStorage ) , "::"
7276                , stringify ! ( size ) ));
7277    assert_eq! (unsafe {
7278                & ( * ( 0 as * const THByteStorage ) ) . refcount as * const _
7279                as usize } , 16usize , concat ! (
7280                "Alignment of field: " , stringify ! ( THByteStorage ) , "::"
7281                , stringify ! ( refcount ) ));
7282    assert_eq! (unsafe {
7283                & ( * ( 0 as * const THByteStorage ) ) . flag as * const _ as
7284                usize } , 20usize , concat ! (
7285                "Alignment of field: " , stringify ! ( THByteStorage ) , "::"
7286                , stringify ! ( flag ) ));
7287    assert_eq! (unsafe {
7288                & ( * ( 0 as * const THByteStorage ) ) . allocator as * const
7289                _ as usize } , 24usize , concat ! (
7290                "Alignment of field: " , stringify ! ( THByteStorage ) , "::"
7291                , stringify ! ( allocator ) ));
7292    assert_eq! (unsafe {
7293                & ( * ( 0 as * const THByteStorage ) ) . allocatorContext as *
7294                const _ as usize } , 32usize , concat ! (
7295                "Alignment of field: " , stringify ! ( THByteStorage ) , "::"
7296                , stringify ! ( allocatorContext ) ));
7297    assert_eq! (unsafe {
7298                & ( * ( 0 as * const THByteStorage ) ) . view as * const _ as
7299                usize } , 40usize , concat ! (
7300                "Alignment of field: " , stringify ! ( THByteStorage ) , "::"
7301                , stringify ! ( view ) ));
7302}
7303impl Clone for THByteStorage {
7304    fn clone(&self) -> Self { *self }
7305}
7306extern "C" {
7307    pub fn THByteStorage_data(arg1: *const THByteStorage)
7308     -> *mut ::std::os::raw::c_uchar;
7309}
7310extern "C" {
7311    pub fn THByteStorage_size(arg1: *const THByteStorage) -> isize;
7312}
7313extern "C" {
7314    pub fn THByteStorage_elementSize() -> usize;
7315}
7316extern "C" {
7317    pub fn THByteStorage_set(arg1: *mut THByteStorage, arg2: isize,
7318                             arg3: ::std::os::raw::c_uchar);
7319}
7320extern "C" {
7321    pub fn THByteStorage_get(arg1: *const THByteStorage, arg2: isize)
7322     -> ::std::os::raw::c_uchar;
7323}
7324extern "C" {
7325    pub fn THByteStorage_new() -> *mut THByteStorage;
7326}
7327extern "C" {
7328    pub fn THByteStorage_newWithSize(size: isize) -> *mut THByteStorage;
7329}
7330extern "C" {
7331    pub fn THByteStorage_newWithSize1(arg1: ::std::os::raw::c_uchar)
7332     -> *mut THByteStorage;
7333}
7334extern "C" {
7335    pub fn THByteStorage_newWithSize2(arg1: ::std::os::raw::c_uchar,
7336                                      arg2: ::std::os::raw::c_uchar)
7337     -> *mut THByteStorage;
7338}
7339extern "C" {
7340    pub fn THByteStorage_newWithSize3(arg1: ::std::os::raw::c_uchar,
7341                                      arg2: ::std::os::raw::c_uchar,
7342                                      arg3: ::std::os::raw::c_uchar)
7343     -> *mut THByteStorage;
7344}
7345extern "C" {
7346    pub fn THByteStorage_newWithSize4(arg1: ::std::os::raw::c_uchar,
7347                                      arg2: ::std::os::raw::c_uchar,
7348                                      arg3: ::std::os::raw::c_uchar,
7349                                      arg4: ::std::os::raw::c_uchar)
7350     -> *mut THByteStorage;
7351}
7352extern "C" {
7353    pub fn THByteStorage_newWithMapping(filename:
7354                                            *const ::std::os::raw::c_char,
7355                                        size: isize,
7356                                        flags: ::std::os::raw::c_int)
7357     -> *mut THByteStorage;
7358}
7359extern "C" {
7360    pub fn THByteStorage_newWithData(data: *mut ::std::os::raw::c_uchar,
7361                                     size: isize) -> *mut THByteStorage;
7362}
7363extern "C" {
7364    pub fn THByteStorage_newWithAllocator(size: isize,
7365                                          allocator: *mut THAllocator,
7366                                          allocatorContext:
7367                                              *mut ::std::os::raw::c_void)
7368     -> *mut THByteStorage;
7369}
7370extern "C" {
7371    pub fn THByteStorage_newWithDataAndAllocator(data:
7372                                                     *mut ::std::os::raw::c_uchar,
7373                                                 size: isize,
7374                                                 allocator: *mut THAllocator,
7375                                                 allocatorContext:
7376                                                     *mut ::std::os::raw::c_void)
7377     -> *mut THByteStorage;
7378}
7379extern "C" {
7380    pub fn THByteStorage_setFlag(storage: *mut THByteStorage,
7381                                 flag: ::std::os::raw::c_char);
7382}
7383extern "C" {
7384    pub fn THByteStorage_clearFlag(storage: *mut THByteStorage,
7385                                   flag: ::std::os::raw::c_char);
7386}
7387extern "C" {
7388    pub fn THByteStorage_retain(storage: *mut THByteStorage);
7389}
7390extern "C" {
7391    pub fn THByteStorage_swap(storage1: *mut THByteStorage,
7392                              storage2: *mut THByteStorage);
7393}
7394extern "C" {
7395    pub fn THByteStorage_free(storage: *mut THByteStorage);
7396}
7397extern "C" {
7398    pub fn THByteStorage_resize(storage: *mut THByteStorage, size: isize);
7399}
7400extern "C" {
7401    pub fn THByteStorage_fill(storage: *mut THByteStorage,
7402                              value: ::std::os::raw::c_uchar);
7403}
7404#[repr(C)]
7405#[derive(Copy)]
7406pub struct THCharStorage {
7407    pub data: *mut ::std::os::raw::c_char,
7408    pub size: isize,
7409    pub refcount: ::std::os::raw::c_int,
7410    pub flag: ::std::os::raw::c_char,
7411    pub allocator: *mut THAllocator,
7412    pub allocatorContext: *mut ::std::os::raw::c_void,
7413    pub view: *mut THCharStorage,
7414}
7415#[test]
7416fn bindgen_test_layout_THCharStorage() {
7417    assert_eq!(::std::mem::size_of::<THCharStorage>() , 48usize , concat ! (
7418               "Size of: " , stringify ! ( THCharStorage ) ));
7419    assert_eq! (::std::mem::align_of::<THCharStorage>() , 8usize , concat ! (
7420                "Alignment of " , stringify ! ( THCharStorage ) ));
7421    assert_eq! (unsafe {
7422                & ( * ( 0 as * const THCharStorage ) ) . data as * const _ as
7423                usize } , 0usize , concat ! (
7424                "Alignment of field: " , stringify ! ( THCharStorage ) , "::"
7425                , stringify ! ( data ) ));
7426    assert_eq! (unsafe {
7427                & ( * ( 0 as * const THCharStorage ) ) . size as * const _ as
7428                usize } , 8usize , concat ! (
7429                "Alignment of field: " , stringify ! ( THCharStorage ) , "::"
7430                , stringify ! ( size ) ));
7431    assert_eq! (unsafe {
7432                & ( * ( 0 as * const THCharStorage ) ) . refcount as * const _
7433                as usize } , 16usize , concat ! (
7434                "Alignment of field: " , stringify ! ( THCharStorage ) , "::"
7435                , stringify ! ( refcount ) ));
7436    assert_eq! (unsafe {
7437                & ( * ( 0 as * const THCharStorage ) ) . flag as * const _ as
7438                usize } , 20usize , concat ! (
7439                "Alignment of field: " , stringify ! ( THCharStorage ) , "::"
7440                , stringify ! ( flag ) ));
7441    assert_eq! (unsafe {
7442                & ( * ( 0 as * const THCharStorage ) ) . allocator as * const
7443                _ as usize } , 24usize , concat ! (
7444                "Alignment of field: " , stringify ! ( THCharStorage ) , "::"
7445                , stringify ! ( allocator ) ));
7446    assert_eq! (unsafe {
7447                & ( * ( 0 as * const THCharStorage ) ) . allocatorContext as *
7448                const _ as usize } , 32usize , concat ! (
7449                "Alignment of field: " , stringify ! ( THCharStorage ) , "::"
7450                , stringify ! ( allocatorContext ) ));
7451    assert_eq! (unsafe {
7452                & ( * ( 0 as * const THCharStorage ) ) . view as * const _ as
7453                usize } , 40usize , concat ! (
7454                "Alignment of field: " , stringify ! ( THCharStorage ) , "::"
7455                , stringify ! ( view ) ));
7456}
7457impl Clone for THCharStorage {
7458    fn clone(&self) -> Self { *self }
7459}
7460extern "C" {
7461    pub fn THCharStorage_data(arg1: *const THCharStorage)
7462     -> *mut ::std::os::raw::c_char;
7463}
7464extern "C" {
7465    pub fn THCharStorage_size(arg1: *const THCharStorage) -> isize;
7466}
7467extern "C" {
7468    pub fn THCharStorage_elementSize() -> usize;
7469}
7470extern "C" {
7471    pub fn THCharStorage_set(arg1: *mut THCharStorage, arg2: isize,
7472                             arg3: ::std::os::raw::c_char);
7473}
7474extern "C" {
7475    pub fn THCharStorage_get(arg1: *const THCharStorage, arg2: isize)
7476     -> ::std::os::raw::c_char;
7477}
7478extern "C" {
7479    pub fn THCharStorage_new() -> *mut THCharStorage;
7480}
7481extern "C" {
7482    pub fn THCharStorage_newWithSize(size: isize) -> *mut THCharStorage;
7483}
7484extern "C" {
7485    pub fn THCharStorage_newWithSize1(arg1: ::std::os::raw::c_char)
7486     -> *mut THCharStorage;
7487}
7488extern "C" {
7489    pub fn THCharStorage_newWithSize2(arg1: ::std::os::raw::c_char,
7490                                      arg2: ::std::os::raw::c_char)
7491     -> *mut THCharStorage;
7492}
7493extern "C" {
7494    pub fn THCharStorage_newWithSize3(arg1: ::std::os::raw::c_char,
7495                                      arg2: ::std::os::raw::c_char,
7496                                      arg3: ::std::os::raw::c_char)
7497     -> *mut THCharStorage;
7498}
7499extern "C" {
7500    pub fn THCharStorage_newWithSize4(arg1: ::std::os::raw::c_char,
7501                                      arg2: ::std::os::raw::c_char,
7502                                      arg3: ::std::os::raw::c_char,
7503                                      arg4: ::std::os::raw::c_char)
7504     -> *mut THCharStorage;
7505}
7506extern "C" {
7507    pub fn THCharStorage_newWithMapping(filename:
7508                                            *const ::std::os::raw::c_char,
7509                                        size: isize,
7510                                        flags: ::std::os::raw::c_int)
7511     -> *mut THCharStorage;
7512}
7513extern "C" {
7514    pub fn THCharStorage_newWithData(data: *mut ::std::os::raw::c_char,
7515                                     size: isize) -> *mut THCharStorage;
7516}
7517extern "C" {
7518    pub fn THCharStorage_newWithAllocator(size: isize,
7519                                          allocator: *mut THAllocator,
7520                                          allocatorContext:
7521                                              *mut ::std::os::raw::c_void)
7522     -> *mut THCharStorage;
7523}
7524extern "C" {
7525    pub fn THCharStorage_newWithDataAndAllocator(data:
7526                                                     *mut ::std::os::raw::c_char,
7527                                                 size: isize,
7528                                                 allocator: *mut THAllocator,
7529                                                 allocatorContext:
7530                                                     *mut ::std::os::raw::c_void)
7531     -> *mut THCharStorage;
7532}
7533extern "C" {
7534    pub fn THCharStorage_setFlag(storage: *mut THCharStorage,
7535                                 flag: ::std::os::raw::c_char);
7536}
7537extern "C" {
7538    pub fn THCharStorage_clearFlag(storage: *mut THCharStorage,
7539                                   flag: ::std::os::raw::c_char);
7540}
7541extern "C" {
7542    pub fn THCharStorage_retain(storage: *mut THCharStorage);
7543}
7544extern "C" {
7545    pub fn THCharStorage_swap(storage1: *mut THCharStorage,
7546                              storage2: *mut THCharStorage);
7547}
7548extern "C" {
7549    pub fn THCharStorage_free(storage: *mut THCharStorage);
7550}
7551extern "C" {
7552    pub fn THCharStorage_resize(storage: *mut THCharStorage, size: isize);
7553}
7554extern "C" {
7555    pub fn THCharStorage_fill(storage: *mut THCharStorage,
7556                              value: ::std::os::raw::c_char);
7557}
7558#[repr(C)]
7559#[derive(Copy)]
7560pub struct THShortStorage {
7561    pub data: *mut ::std::os::raw::c_short,
7562    pub size: isize,
7563    pub refcount: ::std::os::raw::c_int,
7564    pub flag: ::std::os::raw::c_char,
7565    pub allocator: *mut THAllocator,
7566    pub allocatorContext: *mut ::std::os::raw::c_void,
7567    pub view: *mut THShortStorage,
7568}
7569#[test]
7570fn bindgen_test_layout_THShortStorage() {
7571    assert_eq!(::std::mem::size_of::<THShortStorage>() , 48usize , concat ! (
7572               "Size of: " , stringify ! ( THShortStorage ) ));
7573    assert_eq! (::std::mem::align_of::<THShortStorage>() , 8usize , concat ! (
7574                "Alignment of " , stringify ! ( THShortStorage ) ));
7575    assert_eq! (unsafe {
7576                & ( * ( 0 as * const THShortStorage ) ) . data as * const _ as
7577                usize } , 0usize , concat ! (
7578                "Alignment of field: " , stringify ! ( THShortStorage ) , "::"
7579                , stringify ! ( data ) ));
7580    assert_eq! (unsafe {
7581                & ( * ( 0 as * const THShortStorage ) ) . size as * const _ as
7582                usize } , 8usize , concat ! (
7583                "Alignment of field: " , stringify ! ( THShortStorage ) , "::"
7584                , stringify ! ( size ) ));
7585    assert_eq! (unsafe {
7586                & ( * ( 0 as * const THShortStorage ) ) . refcount as * const
7587                _ as usize } , 16usize , concat ! (
7588                "Alignment of field: " , stringify ! ( THShortStorage ) , "::"
7589                , stringify ! ( refcount ) ));
7590    assert_eq! (unsafe {
7591                & ( * ( 0 as * const THShortStorage ) ) . flag as * const _ as
7592                usize } , 20usize , concat ! (
7593                "Alignment of field: " , stringify ! ( THShortStorage ) , "::"
7594                , stringify ! ( flag ) ));
7595    assert_eq! (unsafe {
7596                & ( * ( 0 as * const THShortStorage ) ) . allocator as * const
7597                _ as usize } , 24usize , concat ! (
7598                "Alignment of field: " , stringify ! ( THShortStorage ) , "::"
7599                , stringify ! ( allocator ) ));
7600    assert_eq! (unsafe {
7601                & ( * ( 0 as * const THShortStorage ) ) . allocatorContext as
7602                * const _ as usize } , 32usize , concat ! (
7603                "Alignment of field: " , stringify ! ( THShortStorage ) , "::"
7604                , stringify ! ( allocatorContext ) ));
7605    assert_eq! (unsafe {
7606                & ( * ( 0 as * const THShortStorage ) ) . view as * const _ as
7607                usize } , 40usize , concat ! (
7608                "Alignment of field: " , stringify ! ( THShortStorage ) , "::"
7609                , stringify ! ( view ) ));
7610}
7611impl Clone for THShortStorage {
7612    fn clone(&self) -> Self { *self }
7613}
7614extern "C" {
7615    pub fn THShortStorage_data(arg1: *const THShortStorage)
7616     -> *mut ::std::os::raw::c_short;
7617}
7618extern "C" {
7619    pub fn THShortStorage_size(arg1: *const THShortStorage) -> isize;
7620}
7621extern "C" {
7622    pub fn THShortStorage_elementSize() -> usize;
7623}
7624extern "C" {
7625    pub fn THShortStorage_set(arg1: *mut THShortStorage, arg2: isize,
7626                              arg3: ::std::os::raw::c_short);
7627}
7628extern "C" {
7629    pub fn THShortStorage_get(arg1: *const THShortStorage, arg2: isize)
7630     -> ::std::os::raw::c_short;
7631}
7632extern "C" {
7633    pub fn THShortStorage_new() -> *mut THShortStorage;
7634}
7635extern "C" {
7636    pub fn THShortStorage_newWithSize(size: isize) -> *mut THShortStorage;
7637}
7638extern "C" {
7639    pub fn THShortStorage_newWithSize1(arg1: ::std::os::raw::c_short)
7640     -> *mut THShortStorage;
7641}
7642extern "C" {
7643    pub fn THShortStorage_newWithSize2(arg1: ::std::os::raw::c_short,
7644                                       arg2: ::std::os::raw::c_short)
7645     -> *mut THShortStorage;
7646}
7647extern "C" {
7648    pub fn THShortStorage_newWithSize3(arg1: ::std::os::raw::c_short,
7649                                       arg2: ::std::os::raw::c_short,
7650                                       arg3: ::std::os::raw::c_short)
7651     -> *mut THShortStorage;
7652}
7653extern "C" {
7654    pub fn THShortStorage_newWithSize4(arg1: ::std::os::raw::c_short,
7655                                       arg2: ::std::os::raw::c_short,
7656                                       arg3: ::std::os::raw::c_short,
7657                                       arg4: ::std::os::raw::c_short)
7658     -> *mut THShortStorage;
7659}
7660extern "C" {
7661    pub fn THShortStorage_newWithMapping(filename:
7662                                             *const ::std::os::raw::c_char,
7663                                         size: isize,
7664                                         flags: ::std::os::raw::c_int)
7665     -> *mut THShortStorage;
7666}
7667extern "C" {
7668    pub fn THShortStorage_newWithData(data: *mut ::std::os::raw::c_short,
7669                                      size: isize) -> *mut THShortStorage;
7670}
7671extern "C" {
7672    pub fn THShortStorage_newWithAllocator(size: isize,
7673                                           allocator: *mut THAllocator,
7674                                           allocatorContext:
7675                                               *mut ::std::os::raw::c_void)
7676     -> *mut THShortStorage;
7677}
7678extern "C" {
7679    pub fn THShortStorage_newWithDataAndAllocator(data:
7680                                                      *mut ::std::os::raw::c_short,
7681                                                  size: isize,
7682                                                  allocator: *mut THAllocator,
7683                                                  allocatorContext:
7684                                                      *mut ::std::os::raw::c_void)
7685     -> *mut THShortStorage;
7686}
7687extern "C" {
7688    pub fn THShortStorage_setFlag(storage: *mut THShortStorage,
7689                                  flag: ::std::os::raw::c_char);
7690}
7691extern "C" {
7692    pub fn THShortStorage_clearFlag(storage: *mut THShortStorage,
7693                                    flag: ::std::os::raw::c_char);
7694}
7695extern "C" {
7696    pub fn THShortStorage_retain(storage: *mut THShortStorage);
7697}
7698extern "C" {
7699    pub fn THShortStorage_swap(storage1: *mut THShortStorage,
7700                               storage2: *mut THShortStorage);
7701}
7702extern "C" {
7703    pub fn THShortStorage_free(storage: *mut THShortStorage);
7704}
7705extern "C" {
7706    pub fn THShortStorage_resize(storage: *mut THShortStorage, size: isize);
7707}
7708extern "C" {
7709    pub fn THShortStorage_fill(storage: *mut THShortStorage,
7710                               value: ::std::os::raw::c_short);
7711}
7712#[repr(C)]
7713#[derive(Copy)]
7714pub struct THIntStorage {
7715    pub data: *mut ::std::os::raw::c_int,
7716    pub size: isize,
7717    pub refcount: ::std::os::raw::c_int,
7718    pub flag: ::std::os::raw::c_char,
7719    pub allocator: *mut THAllocator,
7720    pub allocatorContext: *mut ::std::os::raw::c_void,
7721    pub view: *mut THIntStorage,
7722}
7723#[test]
7724fn bindgen_test_layout_THIntStorage() {
7725    assert_eq!(::std::mem::size_of::<THIntStorage>() , 48usize , concat ! (
7726               "Size of: " , stringify ! ( THIntStorage ) ));
7727    assert_eq! (::std::mem::align_of::<THIntStorage>() , 8usize , concat ! (
7728                "Alignment of " , stringify ! ( THIntStorage ) ));
7729    assert_eq! (unsafe {
7730                & ( * ( 0 as * const THIntStorage ) ) . data as * const _ as
7731                usize } , 0usize , concat ! (
7732                "Alignment of field: " , stringify ! ( THIntStorage ) , "::" ,
7733                stringify ! ( data ) ));
7734    assert_eq! (unsafe {
7735                & ( * ( 0 as * const THIntStorage ) ) . size as * const _ as
7736                usize } , 8usize , concat ! (
7737                "Alignment of field: " , stringify ! ( THIntStorage ) , "::" ,
7738                stringify ! ( size ) ));
7739    assert_eq! (unsafe {
7740                & ( * ( 0 as * const THIntStorage ) ) . refcount as * const _
7741                as usize } , 16usize , concat ! (
7742                "Alignment of field: " , stringify ! ( THIntStorage ) , "::" ,
7743                stringify ! ( refcount ) ));
7744    assert_eq! (unsafe {
7745                & ( * ( 0 as * const THIntStorage ) ) . flag as * const _ as
7746                usize } , 20usize , concat ! (
7747                "Alignment of field: " , stringify ! ( THIntStorage ) , "::" ,
7748                stringify ! ( flag ) ));
7749    assert_eq! (unsafe {
7750                & ( * ( 0 as * const THIntStorage ) ) . allocator as * const _
7751                as usize } , 24usize , concat ! (
7752                "Alignment of field: " , stringify ! ( THIntStorage ) , "::" ,
7753                stringify ! ( allocator ) ));
7754    assert_eq! (unsafe {
7755                & ( * ( 0 as * const THIntStorage ) ) . allocatorContext as *
7756                const _ as usize } , 32usize , concat ! (
7757                "Alignment of field: " , stringify ! ( THIntStorage ) , "::" ,
7758                stringify ! ( allocatorContext ) ));
7759    assert_eq! (unsafe {
7760                & ( * ( 0 as * const THIntStorage ) ) . view as * const _ as
7761                usize } , 40usize , concat ! (
7762                "Alignment of field: " , stringify ! ( THIntStorage ) , "::" ,
7763                stringify ! ( view ) ));
7764}
7765impl Clone for THIntStorage {
7766    fn clone(&self) -> Self { *self }
7767}
7768extern "C" {
7769    pub fn THIntStorage_data(arg1: *const THIntStorage)
7770     -> *mut ::std::os::raw::c_int;
7771}
7772extern "C" {
7773    pub fn THIntStorage_size(arg1: *const THIntStorage) -> isize;
7774}
7775extern "C" {
7776    pub fn THIntStorage_elementSize() -> usize;
7777}
7778extern "C" {
7779    pub fn THIntStorage_set(arg1: *mut THIntStorage, arg2: isize,
7780                            arg3: ::std::os::raw::c_int);
7781}
7782extern "C" {
7783    pub fn THIntStorage_get(arg1: *const THIntStorage, arg2: isize)
7784     -> ::std::os::raw::c_int;
7785}
7786extern "C" {
7787    pub fn THIntStorage_new() -> *mut THIntStorage;
7788}
7789extern "C" {
7790    pub fn THIntStorage_newWithSize(size: isize) -> *mut THIntStorage;
7791}
7792extern "C" {
7793    pub fn THIntStorage_newWithSize1(arg1: ::std::os::raw::c_int)
7794     -> *mut THIntStorage;
7795}
7796extern "C" {
7797    pub fn THIntStorage_newWithSize2(arg1: ::std::os::raw::c_int,
7798                                     arg2: ::std::os::raw::c_int)
7799     -> *mut THIntStorage;
7800}
7801extern "C" {
7802    pub fn THIntStorage_newWithSize3(arg1: ::std::os::raw::c_int,
7803                                     arg2: ::std::os::raw::c_int,
7804                                     arg3: ::std::os::raw::c_int)
7805     -> *mut THIntStorage;
7806}
7807extern "C" {
7808    pub fn THIntStorage_newWithSize4(arg1: ::std::os::raw::c_int,
7809                                     arg2: ::std::os::raw::c_int,
7810                                     arg3: ::std::os::raw::c_int,
7811                                     arg4: ::std::os::raw::c_int)
7812     -> *mut THIntStorage;
7813}
7814extern "C" {
7815    pub fn THIntStorage_newWithMapping(filename:
7816                                           *const ::std::os::raw::c_char,
7817                                       size: isize,
7818                                       flags: ::std::os::raw::c_int)
7819     -> *mut THIntStorage;
7820}
7821extern "C" {
7822    pub fn THIntStorage_newWithData(data: *mut ::std::os::raw::c_int,
7823                                    size: isize) -> *mut THIntStorage;
7824}
7825extern "C" {
7826    pub fn THIntStorage_newWithAllocator(size: isize,
7827                                         allocator: *mut THAllocator,
7828                                         allocatorContext:
7829                                             *mut ::std::os::raw::c_void)
7830     -> *mut THIntStorage;
7831}
7832extern "C" {
7833    pub fn THIntStorage_newWithDataAndAllocator(data:
7834                                                    *mut ::std::os::raw::c_int,
7835                                                size: isize,
7836                                                allocator: *mut THAllocator,
7837                                                allocatorContext:
7838                                                    *mut ::std::os::raw::c_void)
7839     -> *mut THIntStorage;
7840}
7841extern "C" {
7842    pub fn THIntStorage_setFlag(storage: *mut THIntStorage,
7843                                flag: ::std::os::raw::c_char);
7844}
7845extern "C" {
7846    pub fn THIntStorage_clearFlag(storage: *mut THIntStorage,
7847                                  flag: ::std::os::raw::c_char);
7848}
7849extern "C" {
7850    pub fn THIntStorage_retain(storage: *mut THIntStorage);
7851}
7852extern "C" {
7853    pub fn THIntStorage_swap(storage1: *mut THIntStorage,
7854                             storage2: *mut THIntStorage);
7855}
7856extern "C" {
7857    pub fn THIntStorage_free(storage: *mut THIntStorage);
7858}
7859extern "C" {
7860    pub fn THIntStorage_resize(storage: *mut THIntStorage, size: isize);
7861}
7862extern "C" {
7863    pub fn THIntStorage_fill(storage: *mut THIntStorage,
7864                             value: ::std::os::raw::c_int);
7865}
7866#[repr(C)]
7867#[derive(Copy)]
7868pub struct THLongStorage {
7869    pub data: *mut ::std::os::raw::c_long,
7870    pub size: isize,
7871    pub refcount: ::std::os::raw::c_int,
7872    pub flag: ::std::os::raw::c_char,
7873    pub allocator: *mut THAllocator,
7874    pub allocatorContext: *mut ::std::os::raw::c_void,
7875    pub view: *mut THLongStorage,
7876}
7877#[test]
7878fn bindgen_test_layout_THLongStorage() {
7879    assert_eq!(::std::mem::size_of::<THLongStorage>() , 48usize , concat ! (
7880               "Size of: " , stringify ! ( THLongStorage ) ));
7881    assert_eq! (::std::mem::align_of::<THLongStorage>() , 8usize , concat ! (
7882                "Alignment of " , stringify ! ( THLongStorage ) ));
7883    assert_eq! (unsafe {
7884                & ( * ( 0 as * const THLongStorage ) ) . data as * const _ as
7885                usize } , 0usize , concat ! (
7886                "Alignment of field: " , stringify ! ( THLongStorage ) , "::"
7887                , stringify ! ( data ) ));
7888    assert_eq! (unsafe {
7889                & ( * ( 0 as * const THLongStorage ) ) . size as * const _ as
7890                usize } , 8usize , concat ! (
7891                "Alignment of field: " , stringify ! ( THLongStorage ) , "::"
7892                , stringify ! ( size ) ));
7893    assert_eq! (unsafe {
7894                & ( * ( 0 as * const THLongStorage ) ) . refcount as * const _
7895                as usize } , 16usize , concat ! (
7896                "Alignment of field: " , stringify ! ( THLongStorage ) , "::"
7897                , stringify ! ( refcount ) ));
7898    assert_eq! (unsafe {
7899                & ( * ( 0 as * const THLongStorage ) ) . flag as * const _ as
7900                usize } , 20usize , concat ! (
7901                "Alignment of field: " , stringify ! ( THLongStorage ) , "::"
7902                , stringify ! ( flag ) ));
7903    assert_eq! (unsafe {
7904                & ( * ( 0 as * const THLongStorage ) ) . allocator as * const
7905                _ as usize } , 24usize , concat ! (
7906                "Alignment of field: " , stringify ! ( THLongStorage ) , "::"
7907                , stringify ! ( allocator ) ));
7908    assert_eq! (unsafe {
7909                & ( * ( 0 as * const THLongStorage ) ) . allocatorContext as *
7910                const _ as usize } , 32usize , concat ! (
7911                "Alignment of field: " , stringify ! ( THLongStorage ) , "::"
7912                , stringify ! ( allocatorContext ) ));
7913    assert_eq! (unsafe {
7914                & ( * ( 0 as * const THLongStorage ) ) . view as * const _ as
7915                usize } , 40usize , concat ! (
7916                "Alignment of field: " , stringify ! ( THLongStorage ) , "::"
7917                , stringify ! ( view ) ));
7918}
7919impl Clone for THLongStorage {
7920    fn clone(&self) -> Self { *self }
7921}
7922extern "C" {
7923    pub fn THLongStorage_data(arg1: *const THLongStorage)
7924     -> *mut ::std::os::raw::c_long;
7925}
7926extern "C" {
7927    pub fn THLongStorage_size(arg1: *const THLongStorage) -> isize;
7928}
7929extern "C" {
7930    pub fn THLongStorage_elementSize() -> usize;
7931}
7932extern "C" {
7933    pub fn THLongStorage_set(arg1: *mut THLongStorage, arg2: isize,
7934                             arg3: ::std::os::raw::c_long);
7935}
7936extern "C" {
7937    pub fn THLongStorage_get(arg1: *const THLongStorage, arg2: isize)
7938     -> ::std::os::raw::c_long;
7939}
7940extern "C" {
7941    pub fn THLongStorage_new() -> *mut THLongStorage;
7942}
7943extern "C" {
7944    pub fn THLongStorage_newWithSize(size: isize) -> *mut THLongStorage;
7945}
7946extern "C" {
7947    pub fn THLongStorage_newWithSize1(arg1: ::std::os::raw::c_long)
7948     -> *mut THLongStorage;
7949}
7950extern "C" {
7951    pub fn THLongStorage_newWithSize2(arg1: ::std::os::raw::c_long,
7952                                      arg2: ::std::os::raw::c_long)
7953     -> *mut THLongStorage;
7954}
7955extern "C" {
7956    pub fn THLongStorage_newWithSize3(arg1: ::std::os::raw::c_long,
7957                                      arg2: ::std::os::raw::c_long,
7958                                      arg3: ::std::os::raw::c_long)
7959     -> *mut THLongStorage;
7960}
7961extern "C" {
7962    pub fn THLongStorage_newWithSize4(arg1: ::std::os::raw::c_long,
7963                                      arg2: ::std::os::raw::c_long,
7964                                      arg3: ::std::os::raw::c_long,
7965                                      arg4: ::std::os::raw::c_long)
7966     -> *mut THLongStorage;
7967}
7968extern "C" {
7969    pub fn THLongStorage_newWithMapping(filename:
7970                                            *const ::std::os::raw::c_char,
7971                                        size: isize,
7972                                        flags: ::std::os::raw::c_int)
7973     -> *mut THLongStorage;
7974}
7975extern "C" {
7976    pub fn THLongStorage_newWithData(data: *mut ::std::os::raw::c_long,
7977                                     size: isize) -> *mut THLongStorage;
7978}
7979extern "C" {
7980    pub fn THLongStorage_newWithAllocator(size: isize,
7981                                          allocator: *mut THAllocator,
7982                                          allocatorContext:
7983                                              *mut ::std::os::raw::c_void)
7984     -> *mut THLongStorage;
7985}
7986extern "C" {
7987    pub fn THLongStorage_newWithDataAndAllocator(data:
7988                                                     *mut ::std::os::raw::c_long,
7989                                                 size: isize,
7990                                                 allocator: *mut THAllocator,
7991                                                 allocatorContext:
7992                                                     *mut ::std::os::raw::c_void)
7993     -> *mut THLongStorage;
7994}
7995extern "C" {
7996    pub fn THLongStorage_setFlag(storage: *mut THLongStorage,
7997                                 flag: ::std::os::raw::c_char);
7998}
7999extern "C" {
8000    pub fn THLongStorage_clearFlag(storage: *mut THLongStorage,
8001                                   flag: ::std::os::raw::c_char);
8002}
8003extern "C" {
8004    pub fn THLongStorage_retain(storage: *mut THLongStorage);
8005}
8006extern "C" {
8007    pub fn THLongStorage_swap(storage1: *mut THLongStorage,
8008                              storage2: *mut THLongStorage);
8009}
8010extern "C" {
8011    pub fn THLongStorage_free(storage: *mut THLongStorage);
8012}
8013extern "C" {
8014    pub fn THLongStorage_resize(storage: *mut THLongStorage, size: isize);
8015}
8016extern "C" {
8017    pub fn THLongStorage_fill(storage: *mut THLongStorage,
8018                              value: ::std::os::raw::c_long);
8019}
8020pub type int_least8_t = ::std::os::raw::c_schar;
8021pub type int_least16_t = ::std::os::raw::c_short;
8022pub type int_least32_t = ::std::os::raw::c_int;
8023pub type int_least64_t = ::std::os::raw::c_long;
8024pub type uint_least8_t = ::std::os::raw::c_uchar;
8025pub type uint_least16_t = ::std::os::raw::c_ushort;
8026pub type uint_least32_t = ::std::os::raw::c_uint;
8027pub type uint_least64_t = ::std::os::raw::c_ulong;
8028pub type int_fast8_t = ::std::os::raw::c_schar;
8029pub type int_fast16_t = ::std::os::raw::c_long;
8030pub type int_fast32_t = ::std::os::raw::c_long;
8031pub type int_fast64_t = ::std::os::raw::c_long;
8032pub type uint_fast8_t = ::std::os::raw::c_uchar;
8033pub type uint_fast16_t = ::std::os::raw::c_ulong;
8034pub type uint_fast32_t = ::std::os::raw::c_ulong;
8035pub type uint_fast64_t = ::std::os::raw::c_ulong;
8036pub type intmax_t = ::std::os::raw::c_long;
8037pub type uintmax_t = ::std::os::raw::c_ulong;
8038#[repr(C)]
8039#[derive(Copy)]
8040pub struct __THHalf {
8041    pub x: ::std::os::raw::c_ushort,
8042}
8043#[test]
8044fn bindgen_test_layout___THHalf() {
8045    assert_eq!(::std::mem::size_of::<__THHalf>() , 2usize , concat ! (
8046               "Size of: " , stringify ! ( __THHalf ) ));
8047    assert_eq! (::std::mem::align_of::<__THHalf>() , 2usize , concat ! (
8048                "Alignment of " , stringify ! ( __THHalf ) ));
8049    assert_eq! (unsafe {
8050                & ( * ( 0 as * const __THHalf ) ) . x as * const _ as usize }
8051                , 0usize , concat ! (
8052                "Alignment of field: " , stringify ! ( __THHalf ) , "::" ,
8053                stringify ! ( x ) ));
8054}
8055impl Clone for __THHalf {
8056    fn clone(&self) -> Self { *self }
8057}
8058#[repr(C)]
8059#[derive(Copy)]
8060pub struct __THHalf2 {
8061    pub x: ::std::os::raw::c_uint,
8062}
8063#[test]
8064fn bindgen_test_layout___THHalf2() {
8065    assert_eq!(::std::mem::size_of::<__THHalf2>() , 4usize , concat ! (
8066               "Size of: " , stringify ! ( __THHalf2 ) ));
8067    assert_eq! (::std::mem::align_of::<__THHalf2>() , 4usize , concat ! (
8068                "Alignment of " , stringify ! ( __THHalf2 ) ));
8069    assert_eq! (unsafe {
8070                & ( * ( 0 as * const __THHalf2 ) ) . x as * const _ as usize }
8071                , 0usize , concat ! (
8072                "Alignment of field: " , stringify ! ( __THHalf2 ) , "::" ,
8073                stringify ! ( x ) ));
8074}
8075impl Clone for __THHalf2 {
8076    fn clone(&self) -> Self { *self }
8077}
8078pub type THHalf = __THHalf;
8079pub type THHalf2 = __THHalf2;
8080extern "C" {
8081    pub fn TH_float2halfbits(arg1: *mut f32,
8082                             arg2: *mut ::std::os::raw::c_ushort);
8083}
8084extern "C" {
8085    pub fn TH_halfbits2float(arg1: *mut ::std::os::raw::c_ushort,
8086                             arg2: *mut f32);
8087}
8088extern "C" {
8089    pub fn TH_float2half(arg1: f32) -> THHalf;
8090}
8091extern "C" {
8092    pub fn TH_half2float(arg1: THHalf) -> f32;
8093}
8094#[repr(C)]
8095#[derive(Copy)]
8096pub struct THHalfStorage {
8097    pub data: *mut THHalf,
8098    pub size: isize,
8099    pub refcount: ::std::os::raw::c_int,
8100    pub flag: ::std::os::raw::c_char,
8101    pub allocator: *mut THAllocator,
8102    pub allocatorContext: *mut ::std::os::raw::c_void,
8103    pub view: *mut THHalfStorage,
8104}
8105#[test]
8106fn bindgen_test_layout_THHalfStorage() {
8107    assert_eq!(::std::mem::size_of::<THHalfStorage>() , 48usize , concat ! (
8108               "Size of: " , stringify ! ( THHalfStorage ) ));
8109    assert_eq! (::std::mem::align_of::<THHalfStorage>() , 8usize , concat ! (
8110                "Alignment of " , stringify ! ( THHalfStorage ) ));
8111    assert_eq! (unsafe {
8112                & ( * ( 0 as * const THHalfStorage ) ) . data as * const _ as
8113                usize } , 0usize , concat ! (
8114                "Alignment of field: " , stringify ! ( THHalfStorage ) , "::"
8115                , stringify ! ( data ) ));
8116    assert_eq! (unsafe {
8117                & ( * ( 0 as * const THHalfStorage ) ) . size as * const _ as
8118                usize } , 8usize , concat ! (
8119                "Alignment of field: " , stringify ! ( THHalfStorage ) , "::"
8120                , stringify ! ( size ) ));
8121    assert_eq! (unsafe {
8122                & ( * ( 0 as * const THHalfStorage ) ) . refcount as * const _
8123                as usize } , 16usize , concat ! (
8124                "Alignment of field: " , stringify ! ( THHalfStorage ) , "::"
8125                , stringify ! ( refcount ) ));
8126    assert_eq! (unsafe {
8127                & ( * ( 0 as * const THHalfStorage ) ) . flag as * const _ as
8128                usize } , 20usize , concat ! (
8129                "Alignment of field: " , stringify ! ( THHalfStorage ) , "::"
8130                , stringify ! ( flag ) ));
8131    assert_eq! (unsafe {
8132                & ( * ( 0 as * const THHalfStorage ) ) . allocator as * const
8133                _ as usize } , 24usize , concat ! (
8134                "Alignment of field: " , stringify ! ( THHalfStorage ) , "::"
8135                , stringify ! ( allocator ) ));
8136    assert_eq! (unsafe {
8137                & ( * ( 0 as * const THHalfStorage ) ) . allocatorContext as *
8138                const _ as usize } , 32usize , concat ! (
8139                "Alignment of field: " , stringify ! ( THHalfStorage ) , "::"
8140                , stringify ! ( allocatorContext ) ));
8141    assert_eq! (unsafe {
8142                & ( * ( 0 as * const THHalfStorage ) ) . view as * const _ as
8143                usize } , 40usize , concat ! (
8144                "Alignment of field: " , stringify ! ( THHalfStorage ) , "::"
8145                , stringify ! ( view ) ));
8146}
8147impl Clone for THHalfStorage {
8148    fn clone(&self) -> Self { *self }
8149}
8150extern "C" {
8151    pub fn THHalfStorage_data(arg1: *const THHalfStorage) -> *mut THHalf;
8152}
8153extern "C" {
8154    pub fn THHalfStorage_size(arg1: *const THHalfStorage) -> isize;
8155}
8156extern "C" {
8157    pub fn THHalfStorage_elementSize() -> usize;
8158}
8159extern "C" {
8160    pub fn THHalfStorage_set(arg1: *mut THHalfStorage, arg2: isize,
8161                             arg3: THHalf);
8162}
8163extern "C" {
8164    pub fn THHalfStorage_get(arg1: *const THHalfStorage, arg2: isize)
8165     -> THHalf;
8166}
8167extern "C" {
8168    pub fn THHalfStorage_new() -> *mut THHalfStorage;
8169}
8170extern "C" {
8171    pub fn THHalfStorage_newWithSize(size: isize) -> *mut THHalfStorage;
8172}
8173extern "C" {
8174    pub fn THHalfStorage_newWithSize1(arg1: THHalf) -> *mut THHalfStorage;
8175}
8176extern "C" {
8177    pub fn THHalfStorage_newWithSize2(arg1: THHalf, arg2: THHalf)
8178     -> *mut THHalfStorage;
8179}
8180extern "C" {
8181    pub fn THHalfStorage_newWithSize3(arg1: THHalf, arg2: THHalf,
8182                                      arg3: THHalf) -> *mut THHalfStorage;
8183}
8184extern "C" {
8185    pub fn THHalfStorage_newWithSize4(arg1: THHalf, arg2: THHalf,
8186                                      arg3: THHalf, arg4: THHalf)
8187     -> *mut THHalfStorage;
8188}
8189extern "C" {
8190    pub fn THHalfStorage_newWithMapping(filename:
8191                                            *const ::std::os::raw::c_char,
8192                                        size: isize,
8193                                        flags: ::std::os::raw::c_int)
8194     -> *mut THHalfStorage;
8195}
8196extern "C" {
8197    pub fn THHalfStorage_newWithData(data: *mut THHalf, size: isize)
8198     -> *mut THHalfStorage;
8199}
8200extern "C" {
8201    pub fn THHalfStorage_newWithAllocator(size: isize,
8202                                          allocator: *mut THAllocator,
8203                                          allocatorContext:
8204                                              *mut ::std::os::raw::c_void)
8205     -> *mut THHalfStorage;
8206}
8207extern "C" {
8208    pub fn THHalfStorage_newWithDataAndAllocator(data: *mut THHalf,
8209                                                 size: isize,
8210                                                 allocator: *mut THAllocator,
8211                                                 allocatorContext:
8212                                                     *mut ::std::os::raw::c_void)
8213     -> *mut THHalfStorage;
8214}
8215extern "C" {
8216    pub fn THHalfStorage_setFlag(storage: *mut THHalfStorage,
8217                                 flag: ::std::os::raw::c_char);
8218}
8219extern "C" {
8220    pub fn THHalfStorage_clearFlag(storage: *mut THHalfStorage,
8221                                   flag: ::std::os::raw::c_char);
8222}
8223extern "C" {
8224    pub fn THHalfStorage_retain(storage: *mut THHalfStorage);
8225}
8226extern "C" {
8227    pub fn THHalfStorage_swap(storage1: *mut THHalfStorage,
8228                              storage2: *mut THHalfStorage);
8229}
8230extern "C" {
8231    pub fn THHalfStorage_free(storage: *mut THHalfStorage);
8232}
8233extern "C" {
8234    pub fn THHalfStorage_resize(storage: *mut THHalfStorage, size: isize);
8235}
8236extern "C" {
8237    pub fn THHalfStorage_fill(storage: *mut THHalfStorage, value: THHalf);
8238}
8239extern "C" {
8240    pub fn THFloatStorage_rawCopy(storage: *mut THFloatStorage,
8241                                  src: *mut f32);
8242}
8243extern "C" {
8244    pub fn THFloatStorage_copy(storage: *mut THFloatStorage,
8245                               src: *mut THFloatStorage);
8246}
8247extern "C" {
8248    pub fn THFloatStorage_copyByte(storage: *mut THFloatStorage,
8249                                   src: *mut THByteStorage);
8250}
8251extern "C" {
8252    pub fn THFloatStorage_copyChar(storage: *mut THFloatStorage,
8253                                   src: *mut THCharStorage);
8254}
8255extern "C" {
8256    pub fn THFloatStorage_copyShort(storage: *mut THFloatStorage,
8257                                    src: *mut THShortStorage);
8258}
8259extern "C" {
8260    pub fn THFloatStorage_copyInt(storage: *mut THFloatStorage,
8261                                  src: *mut THIntStorage);
8262}
8263extern "C" {
8264    pub fn THFloatStorage_copyLong(storage: *mut THFloatStorage,
8265                                   src: *mut THLongStorage);
8266}
8267extern "C" {
8268    pub fn THFloatStorage_copyFloat(storage: *mut THFloatStorage,
8269                                    src: *mut THFloatStorage);
8270}
8271extern "C" {
8272    pub fn THFloatStorage_copyDouble(storage: *mut THFloatStorage,
8273                                     src: *mut THDoubleStorage);
8274}
8275extern "C" {
8276    pub fn THFloatStorage_copyHalf(storage: *mut THFloatStorage,
8277                                   src: *mut THHalfStorage);
8278}
8279extern "C" {
8280    pub fn THDoubleStorage_rawCopy(storage: *mut THDoubleStorage,
8281                                   src: *mut f64);
8282}
8283extern "C" {
8284    pub fn THDoubleStorage_copy(storage: *mut THDoubleStorage,
8285                                src: *mut THDoubleStorage);
8286}
8287extern "C" {
8288    pub fn THDoubleStorage_copyByte(storage: *mut THDoubleStorage,
8289                                    src: *mut THByteStorage);
8290}
8291extern "C" {
8292    pub fn THDoubleStorage_copyChar(storage: *mut THDoubleStorage,
8293                                    src: *mut THCharStorage);
8294}
8295extern "C" {
8296    pub fn THDoubleStorage_copyShort(storage: *mut THDoubleStorage,
8297                                     src: *mut THShortStorage);
8298}
8299extern "C" {
8300    pub fn THDoubleStorage_copyInt(storage: *mut THDoubleStorage,
8301                                   src: *mut THIntStorage);
8302}
8303extern "C" {
8304    pub fn THDoubleStorage_copyLong(storage: *mut THDoubleStorage,
8305                                    src: *mut THLongStorage);
8306}
8307extern "C" {
8308    pub fn THDoubleStorage_copyFloat(storage: *mut THDoubleStorage,
8309                                     src: *mut THFloatStorage);
8310}
8311extern "C" {
8312    pub fn THDoubleStorage_copyDouble(storage: *mut THDoubleStorage,
8313                                      src: *mut THDoubleStorage);
8314}
8315extern "C" {
8316    pub fn THDoubleStorage_copyHalf(storage: *mut THDoubleStorage,
8317                                    src: *mut THHalfStorage);
8318}
8319extern "C" {
8320    pub fn THByteStorage_rawCopy(storage: *mut THByteStorage,
8321                                 src: *mut ::std::os::raw::c_uchar);
8322}
8323extern "C" {
8324    pub fn THByteStorage_copy(storage: *mut THByteStorage,
8325                              src: *mut THByteStorage);
8326}
8327extern "C" {
8328    pub fn THByteStorage_copyByte(storage: *mut THByteStorage,
8329                                  src: *mut THByteStorage);
8330}
8331extern "C" {
8332    pub fn THByteStorage_copyChar(storage: *mut THByteStorage,
8333                                  src: *mut THCharStorage);
8334}
8335extern "C" {
8336    pub fn THByteStorage_copyShort(storage: *mut THByteStorage,
8337                                   src: *mut THShortStorage);
8338}
8339extern "C" {
8340    pub fn THByteStorage_copyInt(storage: *mut THByteStorage,
8341                                 src: *mut THIntStorage);
8342}
8343extern "C" {
8344    pub fn THByteStorage_copyLong(storage: *mut THByteStorage,
8345                                  src: *mut THLongStorage);
8346}
8347extern "C" {
8348    pub fn THByteStorage_copyFloat(storage: *mut THByteStorage,
8349                                   src: *mut THFloatStorage);
8350}
8351extern "C" {
8352    pub fn THByteStorage_copyDouble(storage: *mut THByteStorage,
8353                                    src: *mut THDoubleStorage);
8354}
8355extern "C" {
8356    pub fn THByteStorage_copyHalf(storage: *mut THByteStorage,
8357                                  src: *mut THHalfStorage);
8358}
8359extern "C" {
8360    pub fn THCharStorage_rawCopy(storage: *mut THCharStorage,
8361                                 src: *mut ::std::os::raw::c_char);
8362}
8363extern "C" {
8364    pub fn THCharStorage_copy(storage: *mut THCharStorage,
8365                              src: *mut THCharStorage);
8366}
8367extern "C" {
8368    pub fn THCharStorage_copyByte(storage: *mut THCharStorage,
8369                                  src: *mut THByteStorage);
8370}
8371extern "C" {
8372    pub fn THCharStorage_copyChar(storage: *mut THCharStorage,
8373                                  src: *mut THCharStorage);
8374}
8375extern "C" {
8376    pub fn THCharStorage_copyShort(storage: *mut THCharStorage,
8377                                   src: *mut THShortStorage);
8378}
8379extern "C" {
8380    pub fn THCharStorage_copyInt(storage: *mut THCharStorage,
8381                                 src: *mut THIntStorage);
8382}
8383extern "C" {
8384    pub fn THCharStorage_copyLong(storage: *mut THCharStorage,
8385                                  src: *mut THLongStorage);
8386}
8387extern "C" {
8388    pub fn THCharStorage_copyFloat(storage: *mut THCharStorage,
8389                                   src: *mut THFloatStorage);
8390}
8391extern "C" {
8392    pub fn THCharStorage_copyDouble(storage: *mut THCharStorage,
8393                                    src: *mut THDoubleStorage);
8394}
8395extern "C" {
8396    pub fn THCharStorage_copyHalf(storage: *mut THCharStorage,
8397                                  src: *mut THHalfStorage);
8398}
8399extern "C" {
8400    pub fn THShortStorage_rawCopy(storage: *mut THShortStorage,
8401                                  src: *mut ::std::os::raw::c_short);
8402}
8403extern "C" {
8404    pub fn THShortStorage_copy(storage: *mut THShortStorage,
8405                               src: *mut THShortStorage);
8406}
8407extern "C" {
8408    pub fn THShortStorage_copyByte(storage: *mut THShortStorage,
8409                                   src: *mut THByteStorage);
8410}
8411extern "C" {
8412    pub fn THShortStorage_copyChar(storage: *mut THShortStorage,
8413                                   src: *mut THCharStorage);
8414}
8415extern "C" {
8416    pub fn THShortStorage_copyShort(storage: *mut THShortStorage,
8417                                    src: *mut THShortStorage);
8418}
8419extern "C" {
8420    pub fn THShortStorage_copyInt(storage: *mut THShortStorage,
8421                                  src: *mut THIntStorage);
8422}
8423extern "C" {
8424    pub fn THShortStorage_copyLong(storage: *mut THShortStorage,
8425                                   src: *mut THLongStorage);
8426}
8427extern "C" {
8428    pub fn THShortStorage_copyFloat(storage: *mut THShortStorage,
8429                                    src: *mut THFloatStorage);
8430}
8431extern "C" {
8432    pub fn THShortStorage_copyDouble(storage: *mut THShortStorage,
8433                                     src: *mut THDoubleStorage);
8434}
8435extern "C" {
8436    pub fn THShortStorage_copyHalf(storage: *mut THShortStorage,
8437                                   src: *mut THHalfStorage);
8438}
8439extern "C" {
8440    pub fn THIntStorage_rawCopy(storage: *mut THIntStorage,
8441                                src: *mut ::std::os::raw::c_int);
8442}
8443extern "C" {
8444    pub fn THIntStorage_copy(storage: *mut THIntStorage,
8445                             src: *mut THIntStorage);
8446}
8447extern "C" {
8448    pub fn THIntStorage_copyByte(storage: *mut THIntStorage,
8449                                 src: *mut THByteStorage);
8450}
8451extern "C" {
8452    pub fn THIntStorage_copyChar(storage: *mut THIntStorage,
8453                                 src: *mut THCharStorage);
8454}
8455extern "C" {
8456    pub fn THIntStorage_copyShort(storage: *mut THIntStorage,
8457                                  src: *mut THShortStorage);
8458}
8459extern "C" {
8460    pub fn THIntStorage_copyInt(storage: *mut THIntStorage,
8461                                src: *mut THIntStorage);
8462}
8463extern "C" {
8464    pub fn THIntStorage_copyLong(storage: *mut THIntStorage,
8465                                 src: *mut THLongStorage);
8466}
8467extern "C" {
8468    pub fn THIntStorage_copyFloat(storage: *mut THIntStorage,
8469                                  src: *mut THFloatStorage);
8470}
8471extern "C" {
8472    pub fn THIntStorage_copyDouble(storage: *mut THIntStorage,
8473                                   src: *mut THDoubleStorage);
8474}
8475extern "C" {
8476    pub fn THIntStorage_copyHalf(storage: *mut THIntStorage,
8477                                 src: *mut THHalfStorage);
8478}
8479extern "C" {
8480    pub fn THLongStorage_rawCopy(storage: *mut THLongStorage,
8481                                 src: *mut ::std::os::raw::c_long);
8482}
8483extern "C" {
8484    pub fn THLongStorage_copy(storage: *mut THLongStorage,
8485                              src: *mut THLongStorage);
8486}
8487extern "C" {
8488    pub fn THLongStorage_copyByte(storage: *mut THLongStorage,
8489                                  src: *mut THByteStorage);
8490}
8491extern "C" {
8492    pub fn THLongStorage_copyChar(storage: *mut THLongStorage,
8493                                  src: *mut THCharStorage);
8494}
8495extern "C" {
8496    pub fn THLongStorage_copyShort(storage: *mut THLongStorage,
8497                                   src: *mut THShortStorage);
8498}
8499extern "C" {
8500    pub fn THLongStorage_copyInt(storage: *mut THLongStorage,
8501                                 src: *mut THIntStorage);
8502}
8503extern "C" {
8504    pub fn THLongStorage_copyLong(storage: *mut THLongStorage,
8505                                  src: *mut THLongStorage);
8506}
8507extern "C" {
8508    pub fn THLongStorage_copyFloat(storage: *mut THLongStorage,
8509                                   src: *mut THFloatStorage);
8510}
8511extern "C" {
8512    pub fn THLongStorage_copyDouble(storage: *mut THLongStorage,
8513                                    src: *mut THDoubleStorage);
8514}
8515extern "C" {
8516    pub fn THLongStorage_copyHalf(storage: *mut THLongStorage,
8517                                  src: *mut THHalfStorage);
8518}
8519extern "C" {
8520    pub fn THHalfStorage_rawCopy(storage: *mut THHalfStorage,
8521                                 src: *mut THHalf);
8522}
8523extern "C" {
8524    pub fn THHalfStorage_copy(storage: *mut THHalfStorage,
8525                              src: *mut THHalfStorage);
8526}
8527extern "C" {
8528    pub fn THHalfStorage_copyByte(storage: *mut THHalfStorage,
8529                                  src: *mut THByteStorage);
8530}
8531extern "C" {
8532    pub fn THHalfStorage_copyChar(storage: *mut THHalfStorage,
8533                                  src: *mut THCharStorage);
8534}
8535extern "C" {
8536    pub fn THHalfStorage_copyShort(storage: *mut THHalfStorage,
8537                                   src: *mut THShortStorage);
8538}
8539extern "C" {
8540    pub fn THHalfStorage_copyInt(storage: *mut THHalfStorage,
8541                                 src: *mut THIntStorage);
8542}
8543extern "C" {
8544    pub fn THHalfStorage_copyLong(storage: *mut THHalfStorage,
8545                                  src: *mut THLongStorage);
8546}
8547extern "C" {
8548    pub fn THHalfStorage_copyFloat(storage: *mut THHalfStorage,
8549                                   src: *mut THFloatStorage);
8550}
8551extern "C" {
8552    pub fn THHalfStorage_copyDouble(storage: *mut THHalfStorage,
8553                                    src: *mut THDoubleStorage);
8554}
8555extern "C" {
8556    pub fn THHalfStorage_copyHalf(storage: *mut THHalfStorage,
8557                                  src: *mut THHalfStorage);
8558}
8559extern "C" {
8560    pub fn THLongStorage_sizeDesc(size: *const THLongStorage) -> THDescBuff;
8561}
8562extern "C" {
8563    pub fn THLongStorage_newInferSize(size: *mut THLongStorage,
8564                                      nElement: isize) -> *mut THLongStorage;
8565}
8566extern "C" {
8567    pub fn THLongStorage_inferSize2(output: *mut THLongStorage,
8568                                    sizesA: *mut ::std::os::raw::c_long,
8569                                    dimsA: ::std::os::raw::c_long,
8570                                    sizesB: *mut ::std::os::raw::c_long,
8571                                    dimsB: ::std::os::raw::c_long,
8572                                    error_buffer: *mut ::std::os::raw::c_char,
8573                                    buffer_len: ::std::os::raw::c_int)
8574     -> ::std::os::raw::c_int;
8575}
8576extern "C" {
8577    pub fn THLongStorage_inferSizeN(output: *mut THLongStorage,
8578                                    n: ::std::os::raw::c_int,
8579                                    sizes: *mut *mut ::std::os::raw::c_long,
8580                                    dims: *mut ::std::os::raw::c_long,
8581                                    error_buffer: *mut ::std::os::raw::c_char,
8582                                    buffer_len: ::std::os::raw::c_int)
8583     -> ::std::os::raw::c_int;
8584}
8585extern "C" {
8586    pub fn THLongStorage_inferExpandGeometry(tensorSizes:
8587                                                 *mut ::std::os::raw::c_long,
8588                                             tensorStrides:
8589                                                 *mut ::std::os::raw::c_long,
8590                                             tensorDim:
8591                                                 ::std::os::raw::c_long,
8592                                             sizes: *mut THLongStorage,
8593                                             expandedSizes:
8594                                                 *mut *mut ::std::os::raw::c_long,
8595                                             expandedStrides:
8596                                                 *mut *mut ::std::os::raw::c_long,
8597                                             error_buffer:
8598                                                 *mut ::std::os::raw::c_char,
8599                                             buffer_len:
8600                                                 ::std::os::raw::c_int)
8601     -> ::std::os::raw::c_int;
8602}
8603#[repr(C)]
8604#[derive(Copy)]
8605pub struct THFloatTensor {
8606    pub size: *mut ::std::os::raw::c_long,
8607    pub stride: *mut ::std::os::raw::c_long,
8608    pub nDimension: ::std::os::raw::c_int,
8609    pub storage: *mut THFloatStorage,
8610    pub storageOffset: isize,
8611    pub refcount: ::std::os::raw::c_int,
8612    pub flag: ::std::os::raw::c_char,
8613}
8614#[test]
8615fn bindgen_test_layout_THFloatTensor() {
8616    assert_eq!(::std::mem::size_of::<THFloatTensor>() , 48usize , concat ! (
8617               "Size of: " , stringify ! ( THFloatTensor ) ));
8618    assert_eq! (::std::mem::align_of::<THFloatTensor>() , 8usize , concat ! (
8619                "Alignment of " , stringify ! ( THFloatTensor ) ));
8620    assert_eq! (unsafe {
8621                & ( * ( 0 as * const THFloatTensor ) ) . size as * const _ as
8622                usize } , 0usize , concat ! (
8623                "Alignment of field: " , stringify ! ( THFloatTensor ) , "::"
8624                , stringify ! ( size ) ));
8625    assert_eq! (unsafe {
8626                & ( * ( 0 as * const THFloatTensor ) ) . stride as * const _
8627                as usize } , 8usize , concat ! (
8628                "Alignment of field: " , stringify ! ( THFloatTensor ) , "::"
8629                , stringify ! ( stride ) ));
8630    assert_eq! (unsafe {
8631                & ( * ( 0 as * const THFloatTensor ) ) . nDimension as * const
8632                _ as usize } , 16usize , concat ! (
8633                "Alignment of field: " , stringify ! ( THFloatTensor ) , "::"
8634                , stringify ! ( nDimension ) ));
8635    assert_eq! (unsafe {
8636                & ( * ( 0 as * const THFloatTensor ) ) . storage as * const _
8637                as usize } , 24usize , concat ! (
8638                "Alignment of field: " , stringify ! ( THFloatTensor ) , "::"
8639                , stringify ! ( storage ) ));
8640    assert_eq! (unsafe {
8641                & ( * ( 0 as * const THFloatTensor ) ) . storageOffset as *
8642                const _ as usize } , 32usize , concat ! (
8643                "Alignment of field: " , stringify ! ( THFloatTensor ) , "::"
8644                , stringify ! ( storageOffset ) ));
8645    assert_eq! (unsafe {
8646                & ( * ( 0 as * const THFloatTensor ) ) . refcount as * const _
8647                as usize } , 40usize , concat ! (
8648                "Alignment of field: " , stringify ! ( THFloatTensor ) , "::"
8649                , stringify ! ( refcount ) ));
8650    assert_eq! (unsafe {
8651                & ( * ( 0 as * const THFloatTensor ) ) . flag as * const _ as
8652                usize } , 44usize , concat ! (
8653                "Alignment of field: " , stringify ! ( THFloatTensor ) , "::"
8654                , stringify ! ( flag ) ));
8655}
8656impl Clone for THFloatTensor {
8657    fn clone(&self) -> Self { *self }
8658}
8659extern "C" {
8660    pub fn THFloatTensor_storage(self_: *const THFloatTensor)
8661     -> *mut THFloatStorage;
8662}
8663extern "C" {
8664    pub fn THFloatTensor_storageOffset(self_: *const THFloatTensor) -> isize;
8665}
8666extern "C" {
8667    pub fn THFloatTensor_nDimension(self_: *const THFloatTensor)
8668     -> ::std::os::raw::c_int;
8669}
8670extern "C" {
8671    pub fn THFloatTensor_size(self_: *const THFloatTensor,
8672                              dim: ::std::os::raw::c_int)
8673     -> ::std::os::raw::c_long;
8674}
8675extern "C" {
8676    pub fn THFloatTensor_stride(self_: *const THFloatTensor,
8677                                dim: ::std::os::raw::c_int)
8678     -> ::std::os::raw::c_long;
8679}
8680extern "C" {
8681    pub fn THFloatTensor_newSizeOf(self_: *mut THFloatTensor)
8682     -> *mut THLongStorage;
8683}
8684extern "C" {
8685    pub fn THFloatTensor_newStrideOf(self_: *mut THFloatTensor)
8686     -> *mut THLongStorage;
8687}
8688extern "C" {
8689    pub fn THFloatTensor_data(self_: *const THFloatTensor) -> *mut f32;
8690}
8691extern "C" {
8692    pub fn THFloatTensor_setFlag(self_: *mut THFloatTensor,
8693                                 flag: ::std::os::raw::c_char);
8694}
8695extern "C" {
8696    pub fn THFloatTensor_clearFlag(self_: *mut THFloatTensor,
8697                                   flag: ::std::os::raw::c_char);
8698}
8699extern "C" {
8700    pub fn THFloatTensor_new() -> *mut THFloatTensor;
8701}
8702extern "C" {
8703    pub fn THFloatTensor_newWithTensor(tensor: *mut THFloatTensor)
8704     -> *mut THFloatTensor;
8705}
8706extern "C" {
8707    pub fn THFloatTensor_newWithStorage(storage_: *mut THFloatStorage,
8708                                        storageOffset_: isize,
8709                                        size_: *mut THLongStorage,
8710                                        stride_: *mut THLongStorage)
8711     -> *mut THFloatTensor;
8712}
8713extern "C" {
8714    pub fn THFloatTensor_newWithStorage1d(storage_: *mut THFloatStorage,
8715                                          storageOffset_: isize,
8716                                          size0_: ::std::os::raw::c_long,
8717                                          stride0_: ::std::os::raw::c_long)
8718     -> *mut THFloatTensor;
8719}
8720extern "C" {
8721    pub fn THFloatTensor_newWithStorage2d(storage_: *mut THFloatStorage,
8722                                          storageOffset_: isize,
8723                                          size0_: ::std::os::raw::c_long,
8724                                          stride0_: ::std::os::raw::c_long,
8725                                          size1_: ::std::os::raw::c_long,
8726                                          stride1_: ::std::os::raw::c_long)
8727     -> *mut THFloatTensor;
8728}
8729extern "C" {
8730    pub fn THFloatTensor_newWithStorage3d(storage_: *mut THFloatStorage,
8731                                          storageOffset_: isize,
8732                                          size0_: ::std::os::raw::c_long,
8733                                          stride0_: ::std::os::raw::c_long,
8734                                          size1_: ::std::os::raw::c_long,
8735                                          stride1_: ::std::os::raw::c_long,
8736                                          size2_: ::std::os::raw::c_long,
8737                                          stride2_: ::std::os::raw::c_long)
8738     -> *mut THFloatTensor;
8739}
8740extern "C" {
8741    pub fn THFloatTensor_newWithStorage4d(storage_: *mut THFloatStorage,
8742                                          storageOffset_: isize,
8743                                          size0_: ::std::os::raw::c_long,
8744                                          stride0_: ::std::os::raw::c_long,
8745                                          size1_: ::std::os::raw::c_long,
8746                                          stride1_: ::std::os::raw::c_long,
8747                                          size2_: ::std::os::raw::c_long,
8748                                          stride2_: ::std::os::raw::c_long,
8749                                          size3_: ::std::os::raw::c_long,
8750                                          stride3_: ::std::os::raw::c_long)
8751     -> *mut THFloatTensor;
8752}
8753extern "C" {
8754    pub fn THFloatTensor_newWithSize(size_: *mut THLongStorage,
8755                                     stride_: *mut THLongStorage)
8756     -> *mut THFloatTensor;
8757}
8758extern "C" {
8759    pub fn THFloatTensor_newWithSize1d(size0_: ::std::os::raw::c_long)
8760     -> *mut THFloatTensor;
8761}
8762extern "C" {
8763    pub fn THFloatTensor_newWithSize2d(size0_: ::std::os::raw::c_long,
8764                                       size1_: ::std::os::raw::c_long)
8765     -> *mut THFloatTensor;
8766}
8767extern "C" {
8768    pub fn THFloatTensor_newWithSize3d(size0_: ::std::os::raw::c_long,
8769                                       size1_: ::std::os::raw::c_long,
8770                                       size2_: ::std::os::raw::c_long)
8771     -> *mut THFloatTensor;
8772}
8773extern "C" {
8774    pub fn THFloatTensor_newWithSize4d(size0_: ::std::os::raw::c_long,
8775                                       size1_: ::std::os::raw::c_long,
8776                                       size2_: ::std::os::raw::c_long,
8777                                       size3_: ::std::os::raw::c_long)
8778     -> *mut THFloatTensor;
8779}
8780extern "C" {
8781    pub fn THFloatTensor_newClone(self_: *mut THFloatTensor)
8782     -> *mut THFloatTensor;
8783}
8784extern "C" {
8785    pub fn THFloatTensor_newContiguous(tensor: *mut THFloatTensor)
8786     -> *mut THFloatTensor;
8787}
8788extern "C" {
8789    pub fn THFloatTensor_newSelect(tensor: *mut THFloatTensor,
8790                                   dimension_: ::std::os::raw::c_int,
8791                                   sliceIndex_: ::std::os::raw::c_long)
8792     -> *mut THFloatTensor;
8793}
8794extern "C" {
8795    pub fn THFloatTensor_newNarrow(tensor: *mut THFloatTensor,
8796                                   dimension_: ::std::os::raw::c_int,
8797                                   firstIndex_: ::std::os::raw::c_long,
8798                                   size_: ::std::os::raw::c_long)
8799     -> *mut THFloatTensor;
8800}
8801extern "C" {
8802    pub fn THFloatTensor_newTranspose(tensor: *mut THFloatTensor,
8803                                      dimension1_: ::std::os::raw::c_int,
8804                                      dimension2_: ::std::os::raw::c_int)
8805     -> *mut THFloatTensor;
8806}
8807extern "C" {
8808    pub fn THFloatTensor_newUnfold(tensor: *mut THFloatTensor,
8809                                   dimension_: ::std::os::raw::c_int,
8810                                   size_: ::std::os::raw::c_long,
8811                                   step_: ::std::os::raw::c_long)
8812     -> *mut THFloatTensor;
8813}
8814extern "C" {
8815    pub fn THFloatTensor_newView(tensor: *mut THFloatTensor,
8816                                 size: *mut THLongStorage)
8817     -> *mut THFloatTensor;
8818}
8819extern "C" {
8820    pub fn THFloatTensor_newExpand(tensor: *mut THFloatTensor,
8821                                   size: *mut THLongStorage)
8822     -> *mut THFloatTensor;
8823}
8824extern "C" {
8825    pub fn THFloatTensor_expand(r: *mut THFloatTensor,
8826                                tensor: *mut THFloatTensor,
8827                                size: *mut THLongStorage);
8828}
8829extern "C" {
8830    pub fn THFloatTensor_expandNd(rets: *mut *mut THFloatTensor,
8831                                  ops: *mut *mut THFloatTensor,
8832                                  count: ::std::os::raw::c_int);
8833}
8834extern "C" {
8835    pub fn THFloatTensor_resize(tensor: *mut THFloatTensor,
8836                                size: *mut THLongStorage,
8837                                stride: *mut THLongStorage);
8838}
8839extern "C" {
8840    pub fn THFloatTensor_resizeAs(tensor: *mut THFloatTensor,
8841                                  src: *mut THFloatTensor);
8842}
8843extern "C" {
8844    pub fn THFloatTensor_resizeNd(tensor: *mut THFloatTensor,
8845                                  nDimension: ::std::os::raw::c_int,
8846                                  size: *mut ::std::os::raw::c_long,
8847                                  stride: *mut ::std::os::raw::c_long);
8848}
8849extern "C" {
8850    pub fn THFloatTensor_resize1d(tensor: *mut THFloatTensor,
8851                                  size0_: ::std::os::raw::c_long);
8852}
8853extern "C" {
8854    pub fn THFloatTensor_resize2d(tensor: *mut THFloatTensor,
8855                                  size0_: ::std::os::raw::c_long,
8856                                  size1_: ::std::os::raw::c_long);
8857}
8858extern "C" {
8859    pub fn THFloatTensor_resize3d(tensor: *mut THFloatTensor,
8860                                  size0_: ::std::os::raw::c_long,
8861                                  size1_: ::std::os::raw::c_long,
8862                                  size2_: ::std::os::raw::c_long);
8863}
8864extern "C" {
8865    pub fn THFloatTensor_resize4d(tensor: *mut THFloatTensor,
8866                                  size0_: ::std::os::raw::c_long,
8867                                  size1_: ::std::os::raw::c_long,
8868                                  size2_: ::std::os::raw::c_long,
8869                                  size3_: ::std::os::raw::c_long);
8870}
8871extern "C" {
8872    pub fn THFloatTensor_resize5d(tensor: *mut THFloatTensor,
8873                                  size0_: ::std::os::raw::c_long,
8874                                  size1_: ::std::os::raw::c_long,
8875                                  size2_: ::std::os::raw::c_long,
8876                                  size3_: ::std::os::raw::c_long,
8877                                  size4_: ::std::os::raw::c_long);
8878}
8879extern "C" {
8880    pub fn THFloatTensor_set(self_: *mut THFloatTensor,
8881                             src: *mut THFloatTensor);
8882}
8883extern "C" {
8884    pub fn THFloatTensor_setStorage(self_: *mut THFloatTensor,
8885                                    storage_: *mut THFloatStorage,
8886                                    storageOffset_: isize,
8887                                    size_: *mut THLongStorage,
8888                                    stride_: *mut THLongStorage);
8889}
8890extern "C" {
8891    pub fn THFloatTensor_setStorageNd(self_: *mut THFloatTensor,
8892                                      storage_: *mut THFloatStorage,
8893                                      storageOffset_: isize,
8894                                      nDimension: ::std::os::raw::c_int,
8895                                      size: *mut ::std::os::raw::c_long,
8896                                      stride: *mut ::std::os::raw::c_long);
8897}
8898extern "C" {
8899    pub fn THFloatTensor_setStorage1d(self_: *mut THFloatTensor,
8900                                      storage_: *mut THFloatStorage,
8901                                      storageOffset_: isize,
8902                                      size0_: ::std::os::raw::c_long,
8903                                      stride0_: ::std::os::raw::c_long);
8904}
8905extern "C" {
8906    pub fn THFloatTensor_setStorage2d(self_: *mut THFloatTensor,
8907                                      storage_: *mut THFloatStorage,
8908                                      storageOffset_: isize,
8909                                      size0_: ::std::os::raw::c_long,
8910                                      stride0_: ::std::os::raw::c_long,
8911                                      size1_: ::std::os::raw::c_long,
8912                                      stride1_: ::std::os::raw::c_long);
8913}
8914extern "C" {
8915    pub fn THFloatTensor_setStorage3d(self_: *mut THFloatTensor,
8916                                      storage_: *mut THFloatStorage,
8917                                      storageOffset_: isize,
8918                                      size0_: ::std::os::raw::c_long,
8919                                      stride0_: ::std::os::raw::c_long,
8920                                      size1_: ::std::os::raw::c_long,
8921                                      stride1_: ::std::os::raw::c_long,
8922                                      size2_: ::std::os::raw::c_long,
8923                                      stride2_: ::std::os::raw::c_long);
8924}
8925extern "C" {
8926    pub fn THFloatTensor_setStorage4d(self_: *mut THFloatTensor,
8927                                      storage_: *mut THFloatStorage,
8928                                      storageOffset_: isize,
8929                                      size0_: ::std::os::raw::c_long,
8930                                      stride0_: ::std::os::raw::c_long,
8931                                      size1_: ::std::os::raw::c_long,
8932                                      stride1_: ::std::os::raw::c_long,
8933                                      size2_: ::std::os::raw::c_long,
8934                                      stride2_: ::std::os::raw::c_long,
8935                                      size3_: ::std::os::raw::c_long,
8936                                      stride3_: ::std::os::raw::c_long);
8937}
8938extern "C" {
8939    pub fn THFloatTensor_narrow(self_: *mut THFloatTensor,
8940                                src: *mut THFloatTensor,
8941                                dimension_: ::std::os::raw::c_int,
8942                                firstIndex_: ::std::os::raw::c_long,
8943                                size_: ::std::os::raw::c_long);
8944}
8945extern "C" {
8946    pub fn THFloatTensor_select(self_: *mut THFloatTensor,
8947                                src: *mut THFloatTensor,
8948                                dimension_: ::std::os::raw::c_int,
8949                                sliceIndex_: ::std::os::raw::c_long);
8950}
8951extern "C" {
8952    pub fn THFloatTensor_transpose(self_: *mut THFloatTensor,
8953                                   src: *mut THFloatTensor,
8954                                   dimension1_: ::std::os::raw::c_int,
8955                                   dimension2_: ::std::os::raw::c_int);
8956}
8957extern "C" {
8958    pub fn THFloatTensor_unfold(self_: *mut THFloatTensor,
8959                                src: *mut THFloatTensor,
8960                                dimension_: ::std::os::raw::c_int,
8961                                size_: ::std::os::raw::c_long,
8962                                step_: ::std::os::raw::c_long);
8963}
8964extern "C" {
8965    pub fn THFloatTensor_squeeze(self_: *mut THFloatTensor,
8966                                 src: *mut THFloatTensor);
8967}
8968extern "C" {
8969    pub fn THFloatTensor_squeeze1d(self_: *mut THFloatTensor,
8970                                   src: *mut THFloatTensor,
8971                                   dimension_: ::std::os::raw::c_int);
8972}
8973extern "C" {
8974    pub fn THFloatTensor_unsqueeze1d(self_: *mut THFloatTensor,
8975                                     src: *mut THFloatTensor,
8976                                     dimension_: ::std::os::raw::c_int);
8977}
8978extern "C" {
8979    pub fn THFloatTensor_isContiguous(self_: *const THFloatTensor)
8980     -> ::std::os::raw::c_int;
8981}
8982extern "C" {
8983    pub fn THFloatTensor_isSameSizeAs(self_: *const THFloatTensor,
8984                                      src: *const THFloatTensor)
8985     -> ::std::os::raw::c_int;
8986}
8987extern "C" {
8988    pub fn THFloatTensor_isSetTo(self_: *const THFloatTensor,
8989                                 src: *const THFloatTensor)
8990     -> ::std::os::raw::c_int;
8991}
8992extern "C" {
8993    pub fn THFloatTensor_isSize(self_: *const THFloatTensor,
8994                                dims: *const THLongStorage)
8995     -> ::std::os::raw::c_int;
8996}
8997extern "C" {
8998    pub fn THFloatTensor_nElement(self_: *const THFloatTensor) -> isize;
8999}
9000extern "C" {
9001    pub fn THFloatTensor_retain(self_: *mut THFloatTensor);
9002}
9003extern "C" {
9004    pub fn THFloatTensor_free(self_: *mut THFloatTensor);
9005}
9006extern "C" {
9007    pub fn THFloatTensor_freeCopyTo(self_: *mut THFloatTensor,
9008                                    dst: *mut THFloatTensor);
9009}
9010extern "C" {
9011    pub fn THFloatTensor_set1d(tensor: *mut THFloatTensor,
9012                               x0: ::std::os::raw::c_long, value: f32);
9013}
9014extern "C" {
9015    pub fn THFloatTensor_set2d(tensor: *mut THFloatTensor,
9016                               x0: ::std::os::raw::c_long,
9017                               x1: ::std::os::raw::c_long, value: f32);
9018}
9019extern "C" {
9020    pub fn THFloatTensor_set3d(tensor: *mut THFloatTensor,
9021                               x0: ::std::os::raw::c_long,
9022                               x1: ::std::os::raw::c_long,
9023                               x2: ::std::os::raw::c_long, value: f32);
9024}
9025extern "C" {
9026    pub fn THFloatTensor_set4d(tensor: *mut THFloatTensor,
9027                               x0: ::std::os::raw::c_long,
9028                               x1: ::std::os::raw::c_long,
9029                               x2: ::std::os::raw::c_long,
9030                               x3: ::std::os::raw::c_long, value: f32);
9031}
9032extern "C" {
9033    pub fn THFloatTensor_get1d(tensor: *const THFloatTensor,
9034                               x0: ::std::os::raw::c_long) -> f32;
9035}
9036extern "C" {
9037    pub fn THFloatTensor_get2d(tensor: *const THFloatTensor,
9038                               x0: ::std::os::raw::c_long,
9039                               x1: ::std::os::raw::c_long) -> f32;
9040}
9041extern "C" {
9042    pub fn THFloatTensor_get3d(tensor: *const THFloatTensor,
9043                               x0: ::std::os::raw::c_long,
9044                               x1: ::std::os::raw::c_long,
9045                               x2: ::std::os::raw::c_long) -> f32;
9046}
9047extern "C" {
9048    pub fn THFloatTensor_get4d(tensor: *const THFloatTensor,
9049                               x0: ::std::os::raw::c_long,
9050                               x1: ::std::os::raw::c_long,
9051                               x2: ::std::os::raw::c_long,
9052                               x3: ::std::os::raw::c_long) -> f32;
9053}
9054extern "C" {
9055    pub fn THFloatTensor_desc(tensor: *const THFloatTensor) -> THDescBuff;
9056}
9057extern "C" {
9058    pub fn THFloatTensor_sizeDesc(tensor: *const THFloatTensor) -> THDescBuff;
9059}
9060#[repr(C)]
9061#[derive(Copy)]
9062pub struct THDoubleTensor {
9063    pub size: *mut ::std::os::raw::c_long,
9064    pub stride: *mut ::std::os::raw::c_long,
9065    pub nDimension: ::std::os::raw::c_int,
9066    pub storage: *mut THDoubleStorage,
9067    pub storageOffset: isize,
9068    pub refcount: ::std::os::raw::c_int,
9069    pub flag: ::std::os::raw::c_char,
9070}
9071#[test]
9072fn bindgen_test_layout_THDoubleTensor() {
9073    assert_eq!(::std::mem::size_of::<THDoubleTensor>() , 48usize , concat ! (
9074               "Size of: " , stringify ! ( THDoubleTensor ) ));
9075    assert_eq! (::std::mem::align_of::<THDoubleTensor>() , 8usize , concat ! (
9076                "Alignment of " , stringify ! ( THDoubleTensor ) ));
9077    assert_eq! (unsafe {
9078                & ( * ( 0 as * const THDoubleTensor ) ) . size as * const _ as
9079                usize } , 0usize , concat ! (
9080                "Alignment of field: " , stringify ! ( THDoubleTensor ) , "::"
9081                , stringify ! ( size ) ));
9082    assert_eq! (unsafe {
9083                & ( * ( 0 as * const THDoubleTensor ) ) . stride as * const _
9084                as usize } , 8usize , concat ! (
9085                "Alignment of field: " , stringify ! ( THDoubleTensor ) , "::"
9086                , stringify ! ( stride ) ));
9087    assert_eq! (unsafe {
9088                & ( * ( 0 as * const THDoubleTensor ) ) . nDimension as *
9089                const _ as usize } , 16usize , concat ! (
9090                "Alignment of field: " , stringify ! ( THDoubleTensor ) , "::"
9091                , stringify ! ( nDimension ) ));
9092    assert_eq! (unsafe {
9093                & ( * ( 0 as * const THDoubleTensor ) ) . storage as * const _
9094                as usize } , 24usize , concat ! (
9095                "Alignment of field: " , stringify ! ( THDoubleTensor ) , "::"
9096                , stringify ! ( storage ) ));
9097    assert_eq! (unsafe {
9098                & ( * ( 0 as * const THDoubleTensor ) ) . storageOffset as *
9099                const _ as usize } , 32usize , concat ! (
9100                "Alignment of field: " , stringify ! ( THDoubleTensor ) , "::"
9101                , stringify ! ( storageOffset ) ));
9102    assert_eq! (unsafe {
9103                & ( * ( 0 as * const THDoubleTensor ) ) . refcount as * const
9104                _ as usize } , 40usize , concat ! (
9105                "Alignment of field: " , stringify ! ( THDoubleTensor ) , "::"
9106                , stringify ! ( refcount ) ));
9107    assert_eq! (unsafe {
9108                & ( * ( 0 as * const THDoubleTensor ) ) . flag as * const _ as
9109                usize } , 44usize , concat ! (
9110                "Alignment of field: " , stringify ! ( THDoubleTensor ) , "::"
9111                , stringify ! ( flag ) ));
9112}
9113impl Clone for THDoubleTensor {
9114    fn clone(&self) -> Self { *self }
9115}
9116extern "C" {
9117    pub fn THDoubleTensor_storage(self_: *const THDoubleTensor)
9118     -> *mut THDoubleStorage;
9119}
9120extern "C" {
9121    pub fn THDoubleTensor_storageOffset(self_: *const THDoubleTensor)
9122     -> isize;
9123}
9124extern "C" {
9125    pub fn THDoubleTensor_nDimension(self_: *const THDoubleTensor)
9126     -> ::std::os::raw::c_int;
9127}
9128extern "C" {
9129    pub fn THDoubleTensor_size(self_: *const THDoubleTensor,
9130                               dim: ::std::os::raw::c_int)
9131     -> ::std::os::raw::c_long;
9132}
9133extern "C" {
9134    pub fn THDoubleTensor_stride(self_: *const THDoubleTensor,
9135                                 dim: ::std::os::raw::c_int)
9136     -> ::std::os::raw::c_long;
9137}
9138extern "C" {
9139    pub fn THDoubleTensor_newSizeOf(self_: *mut THDoubleTensor)
9140     -> *mut THLongStorage;
9141}
9142extern "C" {
9143    pub fn THDoubleTensor_newStrideOf(self_: *mut THDoubleTensor)
9144     -> *mut THLongStorage;
9145}
9146extern "C" {
9147    pub fn THDoubleTensor_data(self_: *const THDoubleTensor) -> *mut f64;
9148}
9149extern "C" {
9150    pub fn THDoubleTensor_setFlag(self_: *mut THDoubleTensor,
9151                                  flag: ::std::os::raw::c_char);
9152}
9153extern "C" {
9154    pub fn THDoubleTensor_clearFlag(self_: *mut THDoubleTensor,
9155                                    flag: ::std::os::raw::c_char);
9156}
9157extern "C" {
9158    pub fn THDoubleTensor_new() -> *mut THDoubleTensor;
9159}
9160extern "C" {
9161    pub fn THDoubleTensor_newWithTensor(tensor: *mut THDoubleTensor)
9162     -> *mut THDoubleTensor;
9163}
9164extern "C" {
9165    pub fn THDoubleTensor_newWithStorage(storage_: *mut THDoubleStorage,
9166                                         storageOffset_: isize,
9167                                         size_: *mut THLongStorage,
9168                                         stride_: *mut THLongStorage)
9169     -> *mut THDoubleTensor;
9170}
9171extern "C" {
9172    pub fn THDoubleTensor_newWithStorage1d(storage_: *mut THDoubleStorage,
9173                                           storageOffset_: isize,
9174                                           size0_: ::std::os::raw::c_long,
9175                                           stride0_: ::std::os::raw::c_long)
9176     -> *mut THDoubleTensor;
9177}
9178extern "C" {
9179    pub fn THDoubleTensor_newWithStorage2d(storage_: *mut THDoubleStorage,
9180                                           storageOffset_: isize,
9181                                           size0_: ::std::os::raw::c_long,
9182                                           stride0_: ::std::os::raw::c_long,
9183                                           size1_: ::std::os::raw::c_long,
9184                                           stride1_: ::std::os::raw::c_long)
9185     -> *mut THDoubleTensor;
9186}
9187extern "C" {
9188    pub fn THDoubleTensor_newWithStorage3d(storage_: *mut THDoubleStorage,
9189                                           storageOffset_: isize,
9190                                           size0_: ::std::os::raw::c_long,
9191                                           stride0_: ::std::os::raw::c_long,
9192                                           size1_: ::std::os::raw::c_long,
9193                                           stride1_: ::std::os::raw::c_long,
9194                                           size2_: ::std::os::raw::c_long,
9195                                           stride2_: ::std::os::raw::c_long)
9196     -> *mut THDoubleTensor;
9197}
9198extern "C" {
9199    pub fn THDoubleTensor_newWithStorage4d(storage_: *mut THDoubleStorage,
9200                                           storageOffset_: isize,
9201                                           size0_: ::std::os::raw::c_long,
9202                                           stride0_: ::std::os::raw::c_long,
9203                                           size1_: ::std::os::raw::c_long,
9204                                           stride1_: ::std::os::raw::c_long,
9205                                           size2_: ::std::os::raw::c_long,
9206                                           stride2_: ::std::os::raw::c_long,
9207                                           size3_: ::std::os::raw::c_long,
9208                                           stride3_: ::std::os::raw::c_long)
9209     -> *mut THDoubleTensor;
9210}
9211extern "C" {
9212    pub fn THDoubleTensor_newWithSize(size_: *mut THLongStorage,
9213                                      stride_: *mut THLongStorage)
9214     -> *mut THDoubleTensor;
9215}
9216extern "C" {
9217    pub fn THDoubleTensor_newWithSize1d(size0_: ::std::os::raw::c_long)
9218     -> *mut THDoubleTensor;
9219}
9220extern "C" {
9221    pub fn THDoubleTensor_newWithSize2d(size0_: ::std::os::raw::c_long,
9222                                        size1_: ::std::os::raw::c_long)
9223     -> *mut THDoubleTensor;
9224}
9225extern "C" {
9226    pub fn THDoubleTensor_newWithSize3d(size0_: ::std::os::raw::c_long,
9227                                        size1_: ::std::os::raw::c_long,
9228                                        size2_: ::std::os::raw::c_long)
9229     -> *mut THDoubleTensor;
9230}
9231extern "C" {
9232    pub fn THDoubleTensor_newWithSize4d(size0_: ::std::os::raw::c_long,
9233                                        size1_: ::std::os::raw::c_long,
9234                                        size2_: ::std::os::raw::c_long,
9235                                        size3_: ::std::os::raw::c_long)
9236     -> *mut THDoubleTensor;
9237}
9238extern "C" {
9239    pub fn THDoubleTensor_newClone(self_: *mut THDoubleTensor)
9240     -> *mut THDoubleTensor;
9241}
9242extern "C" {
9243    pub fn THDoubleTensor_newContiguous(tensor: *mut THDoubleTensor)
9244     -> *mut THDoubleTensor;
9245}
9246extern "C" {
9247    pub fn THDoubleTensor_newSelect(tensor: *mut THDoubleTensor,
9248                                    dimension_: ::std::os::raw::c_int,
9249                                    sliceIndex_: ::std::os::raw::c_long)
9250     -> *mut THDoubleTensor;
9251}
9252extern "C" {
9253    pub fn THDoubleTensor_newNarrow(tensor: *mut THDoubleTensor,
9254                                    dimension_: ::std::os::raw::c_int,
9255                                    firstIndex_: ::std::os::raw::c_long,
9256                                    size_: ::std::os::raw::c_long)
9257     -> *mut THDoubleTensor;
9258}
9259extern "C" {
9260    pub fn THDoubleTensor_newTranspose(tensor: *mut THDoubleTensor,
9261                                       dimension1_: ::std::os::raw::c_int,
9262                                       dimension2_: ::std::os::raw::c_int)
9263     -> *mut THDoubleTensor;
9264}
9265extern "C" {
9266    pub fn THDoubleTensor_newUnfold(tensor: *mut THDoubleTensor,
9267                                    dimension_: ::std::os::raw::c_int,
9268                                    size_: ::std::os::raw::c_long,
9269                                    step_: ::std::os::raw::c_long)
9270     -> *mut THDoubleTensor;
9271}
9272extern "C" {
9273    pub fn THDoubleTensor_newView(tensor: *mut THDoubleTensor,
9274                                  size: *mut THLongStorage)
9275     -> *mut THDoubleTensor;
9276}
9277extern "C" {
9278    pub fn THDoubleTensor_newExpand(tensor: *mut THDoubleTensor,
9279                                    size: *mut THLongStorage)
9280     -> *mut THDoubleTensor;
9281}
9282extern "C" {
9283    pub fn THDoubleTensor_expand(r: *mut THDoubleTensor,
9284                                 tensor: *mut THDoubleTensor,
9285                                 size: *mut THLongStorage);
9286}
9287extern "C" {
9288    pub fn THDoubleTensor_expandNd(rets: *mut *mut THDoubleTensor,
9289                                   ops: *mut *mut THDoubleTensor,
9290                                   count: ::std::os::raw::c_int);
9291}
9292extern "C" {
9293    pub fn THDoubleTensor_resize(tensor: *mut THDoubleTensor,
9294                                 size: *mut THLongStorage,
9295                                 stride: *mut THLongStorage);
9296}
9297extern "C" {
9298    pub fn THDoubleTensor_resizeAs(tensor: *mut THDoubleTensor,
9299                                   src: *mut THDoubleTensor);
9300}
9301extern "C" {
9302    pub fn THDoubleTensor_resizeNd(tensor: *mut THDoubleTensor,
9303                                   nDimension: ::std::os::raw::c_int,
9304                                   size: *mut ::std::os::raw::c_long,
9305                                   stride: *mut ::std::os::raw::c_long);
9306}
9307extern "C" {
9308    pub fn THDoubleTensor_resize1d(tensor: *mut THDoubleTensor,
9309                                   size0_: ::std::os::raw::c_long);
9310}
9311extern "C" {
9312    pub fn THDoubleTensor_resize2d(tensor: *mut THDoubleTensor,
9313                                   size0_: ::std::os::raw::c_long,
9314                                   size1_: ::std::os::raw::c_long);
9315}
9316extern "C" {
9317    pub fn THDoubleTensor_resize3d(tensor: *mut THDoubleTensor,
9318                                   size0_: ::std::os::raw::c_long,
9319                                   size1_: ::std::os::raw::c_long,
9320                                   size2_: ::std::os::raw::c_long);
9321}
9322extern "C" {
9323    pub fn THDoubleTensor_resize4d(tensor: *mut THDoubleTensor,
9324                                   size0_: ::std::os::raw::c_long,
9325                                   size1_: ::std::os::raw::c_long,
9326                                   size2_: ::std::os::raw::c_long,
9327                                   size3_: ::std::os::raw::c_long);
9328}
9329extern "C" {
9330    pub fn THDoubleTensor_resize5d(tensor: *mut THDoubleTensor,
9331                                   size0_: ::std::os::raw::c_long,
9332                                   size1_: ::std::os::raw::c_long,
9333                                   size2_: ::std::os::raw::c_long,
9334                                   size3_: ::std::os::raw::c_long,
9335                                   size4_: ::std::os::raw::c_long);
9336}
9337extern "C" {
9338    pub fn THDoubleTensor_set(self_: *mut THDoubleTensor,
9339                              src: *mut THDoubleTensor);
9340}
9341extern "C" {
9342    pub fn THDoubleTensor_setStorage(self_: *mut THDoubleTensor,
9343                                     storage_: *mut THDoubleStorage,
9344                                     storageOffset_: isize,
9345                                     size_: *mut THLongStorage,
9346                                     stride_: *mut THLongStorage);
9347}
9348extern "C" {
9349    pub fn THDoubleTensor_setStorageNd(self_: *mut THDoubleTensor,
9350                                       storage_: *mut THDoubleStorage,
9351                                       storageOffset_: isize,
9352                                       nDimension: ::std::os::raw::c_int,
9353                                       size: *mut ::std::os::raw::c_long,
9354                                       stride: *mut ::std::os::raw::c_long);
9355}
9356extern "C" {
9357    pub fn THDoubleTensor_setStorage1d(self_: *mut THDoubleTensor,
9358                                       storage_: *mut THDoubleStorage,
9359                                       storageOffset_: isize,
9360                                       size0_: ::std::os::raw::c_long,
9361                                       stride0_: ::std::os::raw::c_long);
9362}
9363extern "C" {
9364    pub fn THDoubleTensor_setStorage2d(self_: *mut THDoubleTensor,
9365                                       storage_: *mut THDoubleStorage,
9366                                       storageOffset_: isize,
9367                                       size0_: ::std::os::raw::c_long,
9368                                       stride0_: ::std::os::raw::c_long,
9369                                       size1_: ::std::os::raw::c_long,
9370                                       stride1_: ::std::os::raw::c_long);
9371}
9372extern "C" {
9373    pub fn THDoubleTensor_setStorage3d(self_: *mut THDoubleTensor,
9374                                       storage_: *mut THDoubleStorage,
9375                                       storageOffset_: isize,
9376                                       size0_: ::std::os::raw::c_long,
9377                                       stride0_: ::std::os::raw::c_long,
9378                                       size1_: ::std::os::raw::c_long,
9379                                       stride1_: ::std::os::raw::c_long,
9380                                       size2_: ::std::os::raw::c_long,
9381                                       stride2_: ::std::os::raw::c_long);
9382}
9383extern "C" {
9384    pub fn THDoubleTensor_setStorage4d(self_: *mut THDoubleTensor,
9385                                       storage_: *mut THDoubleStorage,
9386                                       storageOffset_: isize,
9387                                       size0_: ::std::os::raw::c_long,
9388                                       stride0_: ::std::os::raw::c_long,
9389                                       size1_: ::std::os::raw::c_long,
9390                                       stride1_: ::std::os::raw::c_long,
9391                                       size2_: ::std::os::raw::c_long,
9392                                       stride2_: ::std::os::raw::c_long,
9393                                       size3_: ::std::os::raw::c_long,
9394                                       stride3_: ::std::os::raw::c_long);
9395}
9396extern "C" {
9397    pub fn THDoubleTensor_narrow(self_: *mut THDoubleTensor,
9398                                 src: *mut THDoubleTensor,
9399                                 dimension_: ::std::os::raw::c_int,
9400                                 firstIndex_: ::std::os::raw::c_long,
9401                                 size_: ::std::os::raw::c_long);
9402}
9403extern "C" {
9404    pub fn THDoubleTensor_select(self_: *mut THDoubleTensor,
9405                                 src: *mut THDoubleTensor,
9406                                 dimension_: ::std::os::raw::c_int,
9407                                 sliceIndex_: ::std::os::raw::c_long);
9408}
9409extern "C" {
9410    pub fn THDoubleTensor_transpose(self_: *mut THDoubleTensor,
9411                                    src: *mut THDoubleTensor,
9412                                    dimension1_: ::std::os::raw::c_int,
9413                                    dimension2_: ::std::os::raw::c_int);
9414}
9415extern "C" {
9416    pub fn THDoubleTensor_unfold(self_: *mut THDoubleTensor,
9417                                 src: *mut THDoubleTensor,
9418                                 dimension_: ::std::os::raw::c_int,
9419                                 size_: ::std::os::raw::c_long,
9420                                 step_: ::std::os::raw::c_long);
9421}
9422extern "C" {
9423    pub fn THDoubleTensor_squeeze(self_: *mut THDoubleTensor,
9424                                  src: *mut THDoubleTensor);
9425}
9426extern "C" {
9427    pub fn THDoubleTensor_squeeze1d(self_: *mut THDoubleTensor,
9428                                    src: *mut THDoubleTensor,
9429                                    dimension_: ::std::os::raw::c_int);
9430}
9431extern "C" {
9432    pub fn THDoubleTensor_unsqueeze1d(self_: *mut THDoubleTensor,
9433                                      src: *mut THDoubleTensor,
9434                                      dimension_: ::std::os::raw::c_int);
9435}
9436extern "C" {
9437    pub fn THDoubleTensor_isContiguous(self_: *const THDoubleTensor)
9438     -> ::std::os::raw::c_int;
9439}
9440extern "C" {
9441    pub fn THDoubleTensor_isSameSizeAs(self_: *const THDoubleTensor,
9442                                       src: *const THDoubleTensor)
9443     -> ::std::os::raw::c_int;
9444}
9445extern "C" {
9446    pub fn THDoubleTensor_isSetTo(self_: *const THDoubleTensor,
9447                                  src: *const THDoubleTensor)
9448     -> ::std::os::raw::c_int;
9449}
9450extern "C" {
9451    pub fn THDoubleTensor_isSize(self_: *const THDoubleTensor,
9452                                 dims: *const THLongStorage)
9453     -> ::std::os::raw::c_int;
9454}
9455extern "C" {
9456    pub fn THDoubleTensor_nElement(self_: *const THDoubleTensor) -> isize;
9457}
9458extern "C" {
9459    pub fn THDoubleTensor_retain(self_: *mut THDoubleTensor);
9460}
9461extern "C" {
9462    pub fn THDoubleTensor_free(self_: *mut THDoubleTensor);
9463}
9464extern "C" {
9465    pub fn THDoubleTensor_freeCopyTo(self_: *mut THDoubleTensor,
9466                                     dst: *mut THDoubleTensor);
9467}
9468extern "C" {
9469    pub fn THDoubleTensor_set1d(tensor: *mut THDoubleTensor,
9470                                x0: ::std::os::raw::c_long, value: f64);
9471}
9472extern "C" {
9473    pub fn THDoubleTensor_set2d(tensor: *mut THDoubleTensor,
9474                                x0: ::std::os::raw::c_long,
9475                                x1: ::std::os::raw::c_long, value: f64);
9476}
9477extern "C" {
9478    pub fn THDoubleTensor_set3d(tensor: *mut THDoubleTensor,
9479                                x0: ::std::os::raw::c_long,
9480                                x1: ::std::os::raw::c_long,
9481                                x2: ::std::os::raw::c_long, value: f64);
9482}
9483extern "C" {
9484    pub fn THDoubleTensor_set4d(tensor: *mut THDoubleTensor,
9485                                x0: ::std::os::raw::c_long,
9486                                x1: ::std::os::raw::c_long,
9487                                x2: ::std::os::raw::c_long,
9488                                x3: ::std::os::raw::c_long, value: f64);
9489}
9490extern "C" {
9491    pub fn THDoubleTensor_get1d(tensor: *const THDoubleTensor,
9492                                x0: ::std::os::raw::c_long) -> f64;
9493}
9494extern "C" {
9495    pub fn THDoubleTensor_get2d(tensor: *const THDoubleTensor,
9496                                x0: ::std::os::raw::c_long,
9497                                x1: ::std::os::raw::c_long) -> f64;
9498}
9499extern "C" {
9500    pub fn THDoubleTensor_get3d(tensor: *const THDoubleTensor,
9501                                x0: ::std::os::raw::c_long,
9502                                x1: ::std::os::raw::c_long,
9503                                x2: ::std::os::raw::c_long) -> f64;
9504}
9505extern "C" {
9506    pub fn THDoubleTensor_get4d(tensor: *const THDoubleTensor,
9507                                x0: ::std::os::raw::c_long,
9508                                x1: ::std::os::raw::c_long,
9509                                x2: ::std::os::raw::c_long,
9510                                x3: ::std::os::raw::c_long) -> f64;
9511}
9512extern "C" {
9513    pub fn THDoubleTensor_desc(tensor: *const THDoubleTensor) -> THDescBuff;
9514}
9515extern "C" {
9516    pub fn THDoubleTensor_sizeDesc(tensor: *const THDoubleTensor)
9517     -> THDescBuff;
9518}
9519#[repr(C)]
9520#[derive(Copy)]
9521pub struct THByteTensor {
9522    pub size: *mut ::std::os::raw::c_long,
9523    pub stride: *mut ::std::os::raw::c_long,
9524    pub nDimension: ::std::os::raw::c_int,
9525    pub storage: *mut THByteStorage,
9526    pub storageOffset: isize,
9527    pub refcount: ::std::os::raw::c_int,
9528    pub flag: ::std::os::raw::c_char,
9529}
9530#[test]
9531fn bindgen_test_layout_THByteTensor() {
9532    assert_eq!(::std::mem::size_of::<THByteTensor>() , 48usize , concat ! (
9533               "Size of: " , stringify ! ( THByteTensor ) ));
9534    assert_eq! (::std::mem::align_of::<THByteTensor>() , 8usize , concat ! (
9535                "Alignment of " , stringify ! ( THByteTensor ) ));
9536    assert_eq! (unsafe {
9537                & ( * ( 0 as * const THByteTensor ) ) . size as * const _ as
9538                usize } , 0usize , concat ! (
9539                "Alignment of field: " , stringify ! ( THByteTensor ) , "::" ,
9540                stringify ! ( size ) ));
9541    assert_eq! (unsafe {
9542                & ( * ( 0 as * const THByteTensor ) ) . stride as * const _ as
9543                usize } , 8usize , concat ! (
9544                "Alignment of field: " , stringify ! ( THByteTensor ) , "::" ,
9545                stringify ! ( stride ) ));
9546    assert_eq! (unsafe {
9547                & ( * ( 0 as * const THByteTensor ) ) . nDimension as * const
9548                _ as usize } , 16usize , concat ! (
9549                "Alignment of field: " , stringify ! ( THByteTensor ) , "::" ,
9550                stringify ! ( nDimension ) ));
9551    assert_eq! (unsafe {
9552                & ( * ( 0 as * const THByteTensor ) ) . storage as * const _
9553                as usize } , 24usize , concat ! (
9554                "Alignment of field: " , stringify ! ( THByteTensor ) , "::" ,
9555                stringify ! ( storage ) ));
9556    assert_eq! (unsafe {
9557                & ( * ( 0 as * const THByteTensor ) ) . storageOffset as *
9558                const _ as usize } , 32usize , concat ! (
9559                "Alignment of field: " , stringify ! ( THByteTensor ) , "::" ,
9560                stringify ! ( storageOffset ) ));
9561    assert_eq! (unsafe {
9562                & ( * ( 0 as * const THByteTensor ) ) . refcount as * const _
9563                as usize } , 40usize , concat ! (
9564                "Alignment of field: " , stringify ! ( THByteTensor ) , "::" ,
9565                stringify ! ( refcount ) ));
9566    assert_eq! (unsafe {
9567                & ( * ( 0 as * const THByteTensor ) ) . flag as * const _ as
9568                usize } , 44usize , concat ! (
9569                "Alignment of field: " , stringify ! ( THByteTensor ) , "::" ,
9570                stringify ! ( flag ) ));
9571}
9572impl Clone for THByteTensor {
9573    fn clone(&self) -> Self { *self }
9574}
9575extern "C" {
9576    pub fn THByteTensor_storage(self_: *const THByteTensor)
9577     -> *mut THByteStorage;
9578}
9579extern "C" {
9580    pub fn THByteTensor_storageOffset(self_: *const THByteTensor) -> isize;
9581}
9582extern "C" {
9583    pub fn THByteTensor_nDimension(self_: *const THByteTensor)
9584     -> ::std::os::raw::c_int;
9585}
9586extern "C" {
9587    pub fn THByteTensor_size(self_: *const THByteTensor,
9588                             dim: ::std::os::raw::c_int)
9589     -> ::std::os::raw::c_long;
9590}
9591extern "C" {
9592    pub fn THByteTensor_stride(self_: *const THByteTensor,
9593                               dim: ::std::os::raw::c_int)
9594     -> ::std::os::raw::c_long;
9595}
9596extern "C" {
9597    pub fn THByteTensor_newSizeOf(self_: *mut THByteTensor)
9598     -> *mut THLongStorage;
9599}
9600extern "C" {
9601    pub fn THByteTensor_newStrideOf(self_: *mut THByteTensor)
9602     -> *mut THLongStorage;
9603}
9604extern "C" {
9605    pub fn THByteTensor_data(self_: *const THByteTensor)
9606     -> *mut ::std::os::raw::c_uchar;
9607}
9608extern "C" {
9609    pub fn THByteTensor_setFlag(self_: *mut THByteTensor,
9610                                flag: ::std::os::raw::c_char);
9611}
9612extern "C" {
9613    pub fn THByteTensor_clearFlag(self_: *mut THByteTensor,
9614                                  flag: ::std::os::raw::c_char);
9615}
9616extern "C" {
9617    pub fn THByteTensor_new() -> *mut THByteTensor;
9618}
9619extern "C" {
9620    pub fn THByteTensor_newWithTensor(tensor: *mut THByteTensor)
9621     -> *mut THByteTensor;
9622}
9623extern "C" {
9624    pub fn THByteTensor_newWithStorage(storage_: *mut THByteStorage,
9625                                       storageOffset_: isize,
9626                                       size_: *mut THLongStorage,
9627                                       stride_: *mut THLongStorage)
9628     -> *mut THByteTensor;
9629}
9630extern "C" {
9631    pub fn THByteTensor_newWithStorage1d(storage_: *mut THByteStorage,
9632                                         storageOffset_: isize,
9633                                         size0_: ::std::os::raw::c_long,
9634                                         stride0_: ::std::os::raw::c_long)
9635     -> *mut THByteTensor;
9636}
9637extern "C" {
9638    pub fn THByteTensor_newWithStorage2d(storage_: *mut THByteStorage,
9639                                         storageOffset_: isize,
9640                                         size0_: ::std::os::raw::c_long,
9641                                         stride0_: ::std::os::raw::c_long,
9642                                         size1_: ::std::os::raw::c_long,
9643                                         stride1_: ::std::os::raw::c_long)
9644     -> *mut THByteTensor;
9645}
9646extern "C" {
9647    pub fn THByteTensor_newWithStorage3d(storage_: *mut THByteStorage,
9648                                         storageOffset_: isize,
9649                                         size0_: ::std::os::raw::c_long,
9650                                         stride0_: ::std::os::raw::c_long,
9651                                         size1_: ::std::os::raw::c_long,
9652                                         stride1_: ::std::os::raw::c_long,
9653                                         size2_: ::std::os::raw::c_long,
9654                                         stride2_: ::std::os::raw::c_long)
9655     -> *mut THByteTensor;
9656}
9657extern "C" {
9658    pub fn THByteTensor_newWithStorage4d(storage_: *mut THByteStorage,
9659                                         storageOffset_: isize,
9660                                         size0_: ::std::os::raw::c_long,
9661                                         stride0_: ::std::os::raw::c_long,
9662                                         size1_: ::std::os::raw::c_long,
9663                                         stride1_: ::std::os::raw::c_long,
9664                                         size2_: ::std::os::raw::c_long,
9665                                         stride2_: ::std::os::raw::c_long,
9666                                         size3_: ::std::os::raw::c_long,
9667                                         stride3_: ::std::os::raw::c_long)
9668     -> *mut THByteTensor;
9669}
9670extern "C" {
9671    pub fn THByteTensor_newWithSize(size_: *mut THLongStorage,
9672                                    stride_: *mut THLongStorage)
9673     -> *mut THByteTensor;
9674}
9675extern "C" {
9676    pub fn THByteTensor_newWithSize1d(size0_: ::std::os::raw::c_long)
9677     -> *mut THByteTensor;
9678}
9679extern "C" {
9680    pub fn THByteTensor_newWithSize2d(size0_: ::std::os::raw::c_long,
9681                                      size1_: ::std::os::raw::c_long)
9682     -> *mut THByteTensor;
9683}
9684extern "C" {
9685    pub fn THByteTensor_newWithSize3d(size0_: ::std::os::raw::c_long,
9686                                      size1_: ::std::os::raw::c_long,
9687                                      size2_: ::std::os::raw::c_long)
9688     -> *mut THByteTensor;
9689}
9690extern "C" {
9691    pub fn THByteTensor_newWithSize4d(size0_: ::std::os::raw::c_long,
9692                                      size1_: ::std::os::raw::c_long,
9693                                      size2_: ::std::os::raw::c_long,
9694                                      size3_: ::std::os::raw::c_long)
9695     -> *mut THByteTensor;
9696}
9697extern "C" {
9698    pub fn THByteTensor_newClone(self_: *mut THByteTensor)
9699     -> *mut THByteTensor;
9700}
9701extern "C" {
9702    pub fn THByteTensor_newContiguous(tensor: *mut THByteTensor)
9703     -> *mut THByteTensor;
9704}
9705extern "C" {
9706    pub fn THByteTensor_newSelect(tensor: *mut THByteTensor,
9707                                  dimension_: ::std::os::raw::c_int,
9708                                  sliceIndex_: ::std::os::raw::c_long)
9709     -> *mut THByteTensor;
9710}
9711extern "C" {
9712    pub fn THByteTensor_newNarrow(tensor: *mut THByteTensor,
9713                                  dimension_: ::std::os::raw::c_int,
9714                                  firstIndex_: ::std::os::raw::c_long,
9715                                  size_: ::std::os::raw::c_long)
9716     -> *mut THByteTensor;
9717}
9718extern "C" {
9719    pub fn THByteTensor_newTranspose(tensor: *mut THByteTensor,
9720                                     dimension1_: ::std::os::raw::c_int,
9721                                     dimension2_: ::std::os::raw::c_int)
9722     -> *mut THByteTensor;
9723}
9724extern "C" {
9725    pub fn THByteTensor_newUnfold(tensor: *mut THByteTensor,
9726                                  dimension_: ::std::os::raw::c_int,
9727                                  size_: ::std::os::raw::c_long,
9728                                  step_: ::std::os::raw::c_long)
9729     -> *mut THByteTensor;
9730}
9731extern "C" {
9732    pub fn THByteTensor_newView(tensor: *mut THByteTensor,
9733                                size: *mut THLongStorage)
9734     -> *mut THByteTensor;
9735}
9736extern "C" {
9737    pub fn THByteTensor_newExpand(tensor: *mut THByteTensor,
9738                                  size: *mut THLongStorage)
9739     -> *mut THByteTensor;
9740}
9741extern "C" {
9742    pub fn THByteTensor_expand(r: *mut THByteTensor,
9743                               tensor: *mut THByteTensor,
9744                               size: *mut THLongStorage);
9745}
9746extern "C" {
9747    pub fn THByteTensor_expandNd(rets: *mut *mut THByteTensor,
9748                                 ops: *mut *mut THByteTensor,
9749                                 count: ::std::os::raw::c_int);
9750}
9751extern "C" {
9752    pub fn THByteTensor_resize(tensor: *mut THByteTensor,
9753                               size: *mut THLongStorage,
9754                               stride: *mut THLongStorage);
9755}
9756extern "C" {
9757    pub fn THByteTensor_resizeAs(tensor: *mut THByteTensor,
9758                                 src: *mut THByteTensor);
9759}
9760extern "C" {
9761    pub fn THByteTensor_resizeNd(tensor: *mut THByteTensor,
9762                                 nDimension: ::std::os::raw::c_int,
9763                                 size: *mut ::std::os::raw::c_long,
9764                                 stride: *mut ::std::os::raw::c_long);
9765}
9766extern "C" {
9767    pub fn THByteTensor_resize1d(tensor: *mut THByteTensor,
9768                                 size0_: ::std::os::raw::c_long);
9769}
9770extern "C" {
9771    pub fn THByteTensor_resize2d(tensor: *mut THByteTensor,
9772                                 size0_: ::std::os::raw::c_long,
9773                                 size1_: ::std::os::raw::c_long);
9774}
9775extern "C" {
9776    pub fn THByteTensor_resize3d(tensor: *mut THByteTensor,
9777                                 size0_: ::std::os::raw::c_long,
9778                                 size1_: ::std::os::raw::c_long,
9779                                 size2_: ::std::os::raw::c_long);
9780}
9781extern "C" {
9782    pub fn THByteTensor_resize4d(tensor: *mut THByteTensor,
9783                                 size0_: ::std::os::raw::c_long,
9784                                 size1_: ::std::os::raw::c_long,
9785                                 size2_: ::std::os::raw::c_long,
9786                                 size3_: ::std::os::raw::c_long);
9787}
9788extern "C" {
9789    pub fn THByteTensor_resize5d(tensor: *mut THByteTensor,
9790                                 size0_: ::std::os::raw::c_long,
9791                                 size1_: ::std::os::raw::c_long,
9792                                 size2_: ::std::os::raw::c_long,
9793                                 size3_: ::std::os::raw::c_long,
9794                                 size4_: ::std::os::raw::c_long);
9795}
9796extern "C" {
9797    pub fn THByteTensor_set(self_: *mut THByteTensor, src: *mut THByteTensor);
9798}
9799extern "C" {
9800    pub fn THByteTensor_setStorage(self_: *mut THByteTensor,
9801                                   storage_: *mut THByteStorage,
9802                                   storageOffset_: isize,
9803                                   size_: *mut THLongStorage,
9804                                   stride_: *mut THLongStorage);
9805}
9806extern "C" {
9807    pub fn THByteTensor_setStorageNd(self_: *mut THByteTensor,
9808                                     storage_: *mut THByteStorage,
9809                                     storageOffset_: isize,
9810                                     nDimension: ::std::os::raw::c_int,
9811                                     size: *mut ::std::os::raw::c_long,
9812                                     stride: *mut ::std::os::raw::c_long);
9813}
9814extern "C" {
9815    pub fn THByteTensor_setStorage1d(self_: *mut THByteTensor,
9816                                     storage_: *mut THByteStorage,
9817                                     storageOffset_: isize,
9818                                     size0_: ::std::os::raw::c_long,
9819                                     stride0_: ::std::os::raw::c_long);
9820}
9821extern "C" {
9822    pub fn THByteTensor_setStorage2d(self_: *mut THByteTensor,
9823                                     storage_: *mut THByteStorage,
9824                                     storageOffset_: isize,
9825                                     size0_: ::std::os::raw::c_long,
9826                                     stride0_: ::std::os::raw::c_long,
9827                                     size1_: ::std::os::raw::c_long,
9828                                     stride1_: ::std::os::raw::c_long);
9829}
9830extern "C" {
9831    pub fn THByteTensor_setStorage3d(self_: *mut THByteTensor,
9832                                     storage_: *mut THByteStorage,
9833                                     storageOffset_: isize,
9834                                     size0_: ::std::os::raw::c_long,
9835                                     stride0_: ::std::os::raw::c_long,
9836                                     size1_: ::std::os::raw::c_long,
9837                                     stride1_: ::std::os::raw::c_long,
9838                                     size2_: ::std::os::raw::c_long,
9839                                     stride2_: ::std::os::raw::c_long);
9840}
9841extern "C" {
9842    pub fn THByteTensor_setStorage4d(self_: *mut THByteTensor,
9843                                     storage_: *mut THByteStorage,
9844                                     storageOffset_: isize,
9845                                     size0_: ::std::os::raw::c_long,
9846                                     stride0_: ::std::os::raw::c_long,
9847                                     size1_: ::std::os::raw::c_long,
9848                                     stride1_: ::std::os::raw::c_long,
9849                                     size2_: ::std::os::raw::c_long,
9850                                     stride2_: ::std::os::raw::c_long,
9851                                     size3_: ::std::os::raw::c_long,
9852                                     stride3_: ::std::os::raw::c_long);
9853}
9854extern "C" {
9855    pub fn THByteTensor_narrow(self_: *mut THByteTensor,
9856                               src: *mut THByteTensor,
9857                               dimension_: ::std::os::raw::c_int,
9858                               firstIndex_: ::std::os::raw::c_long,
9859                               size_: ::std::os::raw::c_long);
9860}
9861extern "C" {
9862    pub fn THByteTensor_select(self_: *mut THByteTensor,
9863                               src: *mut THByteTensor,
9864                               dimension_: ::std::os::raw::c_int,
9865                               sliceIndex_: ::std::os::raw::c_long);
9866}
9867extern "C" {
9868    pub fn THByteTensor_transpose(self_: *mut THByteTensor,
9869                                  src: *mut THByteTensor,
9870                                  dimension1_: ::std::os::raw::c_int,
9871                                  dimension2_: ::std::os::raw::c_int);
9872}
9873extern "C" {
9874    pub fn THByteTensor_unfold(self_: *mut THByteTensor,
9875                               src: *mut THByteTensor,
9876                               dimension_: ::std::os::raw::c_int,
9877                               size_: ::std::os::raw::c_long,
9878                               step_: ::std::os::raw::c_long);
9879}
9880extern "C" {
9881    pub fn THByteTensor_squeeze(self_: *mut THByteTensor,
9882                                src: *mut THByteTensor);
9883}
9884extern "C" {
9885    pub fn THByteTensor_squeeze1d(self_: *mut THByteTensor,
9886                                  src: *mut THByteTensor,
9887                                  dimension_: ::std::os::raw::c_int);
9888}
9889extern "C" {
9890    pub fn THByteTensor_unsqueeze1d(self_: *mut THByteTensor,
9891                                    src: *mut THByteTensor,
9892                                    dimension_: ::std::os::raw::c_int);
9893}
9894extern "C" {
9895    pub fn THByteTensor_isContiguous(self_: *const THByteTensor)
9896     -> ::std::os::raw::c_int;
9897}
9898extern "C" {
9899    pub fn THByteTensor_isSameSizeAs(self_: *const THByteTensor,
9900                                     src: *const THByteTensor)
9901     -> ::std::os::raw::c_int;
9902}
9903extern "C" {
9904    pub fn THByteTensor_isSetTo(self_: *const THByteTensor,
9905                                src: *const THByteTensor)
9906     -> ::std::os::raw::c_int;
9907}
9908extern "C" {
9909    pub fn THByteTensor_isSize(self_: *const THByteTensor,
9910                               dims: *const THLongStorage)
9911     -> ::std::os::raw::c_int;
9912}
9913extern "C" {
9914    pub fn THByteTensor_nElement(self_: *const THByteTensor) -> isize;
9915}
9916extern "C" {
9917    pub fn THByteTensor_retain(self_: *mut THByteTensor);
9918}
9919extern "C" {
9920    pub fn THByteTensor_free(self_: *mut THByteTensor);
9921}
9922extern "C" {
9923    pub fn THByteTensor_freeCopyTo(self_: *mut THByteTensor,
9924                                   dst: *mut THByteTensor);
9925}
9926extern "C" {
9927    pub fn THByteTensor_set1d(tensor: *mut THByteTensor,
9928                              x0: ::std::os::raw::c_long,
9929                              value: ::std::os::raw::c_uchar);
9930}
9931extern "C" {
9932    pub fn THByteTensor_set2d(tensor: *mut THByteTensor,
9933                              x0: ::std::os::raw::c_long,
9934                              x1: ::std::os::raw::c_long,
9935                              value: ::std::os::raw::c_uchar);
9936}
9937extern "C" {
9938    pub fn THByteTensor_set3d(tensor: *mut THByteTensor,
9939                              x0: ::std::os::raw::c_long,
9940                              x1: ::std::os::raw::c_long,
9941                              x2: ::std::os::raw::c_long,
9942                              value: ::std::os::raw::c_uchar);
9943}
9944extern "C" {
9945    pub fn THByteTensor_set4d(tensor: *mut THByteTensor,
9946                              x0: ::std::os::raw::c_long,
9947                              x1: ::std::os::raw::c_long,
9948                              x2: ::std::os::raw::c_long,
9949                              x3: ::std::os::raw::c_long,
9950                              value: ::std::os::raw::c_uchar);
9951}
9952extern "C" {
9953    pub fn THByteTensor_get1d(tensor: *const THByteTensor,
9954                              x0: ::std::os::raw::c_long)
9955     -> ::std::os::raw::c_uchar;
9956}
9957extern "C" {
9958    pub fn THByteTensor_get2d(tensor: *const THByteTensor,
9959                              x0: ::std::os::raw::c_long,
9960                              x1: ::std::os::raw::c_long)
9961     -> ::std::os::raw::c_uchar;
9962}
9963extern "C" {
9964    pub fn THByteTensor_get3d(tensor: *const THByteTensor,
9965                              x0: ::std::os::raw::c_long,
9966                              x1: ::std::os::raw::c_long,
9967                              x2: ::std::os::raw::c_long)
9968     -> ::std::os::raw::c_uchar;
9969}
9970extern "C" {
9971    pub fn THByteTensor_get4d(tensor: *const THByteTensor,
9972                              x0: ::std::os::raw::c_long,
9973                              x1: ::std::os::raw::c_long,
9974                              x2: ::std::os::raw::c_long,
9975                              x3: ::std::os::raw::c_long)
9976     -> ::std::os::raw::c_uchar;
9977}
9978extern "C" {
9979    pub fn THByteTensor_desc(tensor: *const THByteTensor) -> THDescBuff;
9980}
9981extern "C" {
9982    pub fn THByteTensor_sizeDesc(tensor: *const THByteTensor) -> THDescBuff;
9983}
9984#[repr(C)]
9985#[derive(Copy)]
9986pub struct THCharTensor {
9987    pub size: *mut ::std::os::raw::c_long,
9988    pub stride: *mut ::std::os::raw::c_long,
9989    pub nDimension: ::std::os::raw::c_int,
9990    pub storage: *mut THCharStorage,
9991    pub storageOffset: isize,
9992    pub refcount: ::std::os::raw::c_int,
9993    pub flag: ::std::os::raw::c_char,
9994}
9995#[test]
9996fn bindgen_test_layout_THCharTensor() {
9997    assert_eq!(::std::mem::size_of::<THCharTensor>() , 48usize , concat ! (
9998               "Size of: " , stringify ! ( THCharTensor ) ));
9999    assert_eq! (::std::mem::align_of::<THCharTensor>() , 8usize , concat ! (
10000                "Alignment of " , stringify ! ( THCharTensor ) ));
10001    assert_eq! (unsafe {
10002                & ( * ( 0 as * const THCharTensor ) ) . size as * const _ as
10003                usize } , 0usize , concat ! (
10004                "Alignment of field: " , stringify ! ( THCharTensor ) , "::" ,
10005                stringify ! ( size ) ));
10006    assert_eq! (unsafe {
10007                & ( * ( 0 as * const THCharTensor ) ) . stride as * const _ as
10008                usize } , 8usize , concat ! (
10009                "Alignment of field: " , stringify ! ( THCharTensor ) , "::" ,
10010                stringify ! ( stride ) ));
10011    assert_eq! (unsafe {
10012                & ( * ( 0 as * const THCharTensor ) ) . nDimension as * const
10013                _ as usize } , 16usize , concat ! (
10014                "Alignment of field: " , stringify ! ( THCharTensor ) , "::" ,
10015                stringify ! ( nDimension ) ));
10016    assert_eq! (unsafe {
10017                & ( * ( 0 as * const THCharTensor ) ) . storage as * const _
10018                as usize } , 24usize , concat ! (
10019                "Alignment of field: " , stringify ! ( THCharTensor ) , "::" ,
10020                stringify ! ( storage ) ));
10021    assert_eq! (unsafe {
10022                & ( * ( 0 as * const THCharTensor ) ) . storageOffset as *
10023                const _ as usize } , 32usize , concat ! (
10024                "Alignment of field: " , stringify ! ( THCharTensor ) , "::" ,
10025                stringify ! ( storageOffset ) ));
10026    assert_eq! (unsafe {
10027                & ( * ( 0 as * const THCharTensor ) ) . refcount as * const _
10028                as usize } , 40usize , concat ! (
10029                "Alignment of field: " , stringify ! ( THCharTensor ) , "::" ,
10030                stringify ! ( refcount ) ));
10031    assert_eq! (unsafe {
10032                & ( * ( 0 as * const THCharTensor ) ) . flag as * const _ as
10033                usize } , 44usize , concat ! (
10034                "Alignment of field: " , stringify ! ( THCharTensor ) , "::" ,
10035                stringify ! ( flag ) ));
10036}
10037impl Clone for THCharTensor {
10038    fn clone(&self) -> Self { *self }
10039}
10040extern "C" {
10041    pub fn THCharTensor_storage(self_: *const THCharTensor)
10042     -> *mut THCharStorage;
10043}
10044extern "C" {
10045    pub fn THCharTensor_storageOffset(self_: *const THCharTensor) -> isize;
10046}
10047extern "C" {
10048    pub fn THCharTensor_nDimension(self_: *const THCharTensor)
10049     -> ::std::os::raw::c_int;
10050}
10051extern "C" {
10052    pub fn THCharTensor_size(self_: *const THCharTensor,
10053                             dim: ::std::os::raw::c_int)
10054     -> ::std::os::raw::c_long;
10055}
10056extern "C" {
10057    pub fn THCharTensor_stride(self_: *const THCharTensor,
10058                               dim: ::std::os::raw::c_int)
10059     -> ::std::os::raw::c_long;
10060}
10061extern "C" {
10062    pub fn THCharTensor_newSizeOf(self_: *mut THCharTensor)
10063     -> *mut THLongStorage;
10064}
10065extern "C" {
10066    pub fn THCharTensor_newStrideOf(self_: *mut THCharTensor)
10067     -> *mut THLongStorage;
10068}
10069extern "C" {
10070    pub fn THCharTensor_data(self_: *const THCharTensor)
10071     -> *mut ::std::os::raw::c_char;
10072}
10073extern "C" {
10074    pub fn THCharTensor_setFlag(self_: *mut THCharTensor,
10075                                flag: ::std::os::raw::c_char);
10076}
10077extern "C" {
10078    pub fn THCharTensor_clearFlag(self_: *mut THCharTensor,
10079                                  flag: ::std::os::raw::c_char);
10080}
10081extern "C" {
10082    pub fn THCharTensor_new() -> *mut THCharTensor;
10083}
10084extern "C" {
10085    pub fn THCharTensor_newWithTensor(tensor: *mut THCharTensor)
10086     -> *mut THCharTensor;
10087}
10088extern "C" {
10089    pub fn THCharTensor_newWithStorage(storage_: *mut THCharStorage,
10090                                       storageOffset_: isize,
10091                                       size_: *mut THLongStorage,
10092                                       stride_: *mut THLongStorage)
10093     -> *mut THCharTensor;
10094}
10095extern "C" {
10096    pub fn THCharTensor_newWithStorage1d(storage_: *mut THCharStorage,
10097                                         storageOffset_: isize,
10098                                         size0_: ::std::os::raw::c_long,
10099                                         stride0_: ::std::os::raw::c_long)
10100     -> *mut THCharTensor;
10101}
10102extern "C" {
10103    pub fn THCharTensor_newWithStorage2d(storage_: *mut THCharStorage,
10104                                         storageOffset_: isize,
10105                                         size0_: ::std::os::raw::c_long,
10106                                         stride0_: ::std::os::raw::c_long,
10107                                         size1_: ::std::os::raw::c_long,
10108                                         stride1_: ::std::os::raw::c_long)
10109     -> *mut THCharTensor;
10110}
10111extern "C" {
10112    pub fn THCharTensor_newWithStorage3d(storage_: *mut THCharStorage,
10113                                         storageOffset_: isize,
10114                                         size0_: ::std::os::raw::c_long,
10115                                         stride0_: ::std::os::raw::c_long,
10116                                         size1_: ::std::os::raw::c_long,
10117                                         stride1_: ::std::os::raw::c_long,
10118                                         size2_: ::std::os::raw::c_long,
10119                                         stride2_: ::std::os::raw::c_long)
10120     -> *mut THCharTensor;
10121}
10122extern "C" {
10123    pub fn THCharTensor_newWithStorage4d(storage_: *mut THCharStorage,
10124                                         storageOffset_: isize,
10125                                         size0_: ::std::os::raw::c_long,
10126                                         stride0_: ::std::os::raw::c_long,
10127                                         size1_: ::std::os::raw::c_long,
10128                                         stride1_: ::std::os::raw::c_long,
10129                                         size2_: ::std::os::raw::c_long,
10130                                         stride2_: ::std::os::raw::c_long,
10131                                         size3_: ::std::os::raw::c_long,
10132                                         stride3_: ::std::os::raw::c_long)
10133     -> *mut THCharTensor;
10134}
10135extern "C" {
10136    pub fn THCharTensor_newWithSize(size_: *mut THLongStorage,
10137                                    stride_: *mut THLongStorage)
10138     -> *mut THCharTensor;
10139}
10140extern "C" {
10141    pub fn THCharTensor_newWithSize1d(size0_: ::std::os::raw::c_long)
10142     -> *mut THCharTensor;
10143}
10144extern "C" {
10145    pub fn THCharTensor_newWithSize2d(size0_: ::std::os::raw::c_long,
10146                                      size1_: ::std::os::raw::c_long)
10147     -> *mut THCharTensor;
10148}
10149extern "C" {
10150    pub fn THCharTensor_newWithSize3d(size0_: ::std::os::raw::c_long,
10151                                      size1_: ::std::os::raw::c_long,
10152                                      size2_: ::std::os::raw::c_long)
10153     -> *mut THCharTensor;
10154}
10155extern "C" {
10156    pub fn THCharTensor_newWithSize4d(size0_: ::std::os::raw::c_long,
10157                                      size1_: ::std::os::raw::c_long,
10158                                      size2_: ::std::os::raw::c_long,
10159                                      size3_: ::std::os::raw::c_long)
10160     -> *mut THCharTensor;
10161}
10162extern "C" {
10163    pub fn THCharTensor_newClone(self_: *mut THCharTensor)
10164     -> *mut THCharTensor;
10165}
10166extern "C" {
10167    pub fn THCharTensor_newContiguous(tensor: *mut THCharTensor)
10168     -> *mut THCharTensor;
10169}
10170extern "C" {
10171    pub fn THCharTensor_newSelect(tensor: *mut THCharTensor,
10172                                  dimension_: ::std::os::raw::c_int,
10173                                  sliceIndex_: ::std::os::raw::c_long)
10174     -> *mut THCharTensor;
10175}
10176extern "C" {
10177    pub fn THCharTensor_newNarrow(tensor: *mut THCharTensor,
10178                                  dimension_: ::std::os::raw::c_int,
10179                                  firstIndex_: ::std::os::raw::c_long,
10180                                  size_: ::std::os::raw::c_long)
10181     -> *mut THCharTensor;
10182}
10183extern "C" {
10184    pub fn THCharTensor_newTranspose(tensor: *mut THCharTensor,
10185                                     dimension1_: ::std::os::raw::c_int,
10186                                     dimension2_: ::std::os::raw::c_int)
10187     -> *mut THCharTensor;
10188}
10189extern "C" {
10190    pub fn THCharTensor_newUnfold(tensor: *mut THCharTensor,
10191                                  dimension_: ::std::os::raw::c_int,
10192                                  size_: ::std::os::raw::c_long,
10193                                  step_: ::std::os::raw::c_long)
10194     -> *mut THCharTensor;
10195}
10196extern "C" {
10197    pub fn THCharTensor_newView(tensor: *mut THCharTensor,
10198                                size: *mut THLongStorage)
10199     -> *mut THCharTensor;
10200}
10201extern "C" {
10202    pub fn THCharTensor_newExpand(tensor: *mut THCharTensor,
10203                                  size: *mut THLongStorage)
10204     -> *mut THCharTensor;
10205}
10206extern "C" {
10207    pub fn THCharTensor_expand(r: *mut THCharTensor,
10208                               tensor: *mut THCharTensor,
10209                               size: *mut THLongStorage);
10210}
10211extern "C" {
10212    pub fn THCharTensor_expandNd(rets: *mut *mut THCharTensor,
10213                                 ops: *mut *mut THCharTensor,
10214                                 count: ::std::os::raw::c_int);
10215}
10216extern "C" {
10217    pub fn THCharTensor_resize(tensor: *mut THCharTensor,
10218                               size: *mut THLongStorage,
10219                               stride: *mut THLongStorage);
10220}
10221extern "C" {
10222    pub fn THCharTensor_resizeAs(tensor: *mut THCharTensor,
10223                                 src: *mut THCharTensor);
10224}
10225extern "C" {
10226    pub fn THCharTensor_resizeNd(tensor: *mut THCharTensor,
10227                                 nDimension: ::std::os::raw::c_int,
10228                                 size: *mut ::std::os::raw::c_long,
10229                                 stride: *mut ::std::os::raw::c_long);
10230}
10231extern "C" {
10232    pub fn THCharTensor_resize1d(tensor: *mut THCharTensor,
10233                                 size0_: ::std::os::raw::c_long);
10234}
10235extern "C" {
10236    pub fn THCharTensor_resize2d(tensor: *mut THCharTensor,
10237                                 size0_: ::std::os::raw::c_long,
10238                                 size1_: ::std::os::raw::c_long);
10239}
10240extern "C" {
10241    pub fn THCharTensor_resize3d(tensor: *mut THCharTensor,
10242                                 size0_: ::std::os::raw::c_long,
10243                                 size1_: ::std::os::raw::c_long,
10244                                 size2_: ::std::os::raw::c_long);
10245}
10246extern "C" {
10247    pub fn THCharTensor_resize4d(tensor: *mut THCharTensor,
10248                                 size0_: ::std::os::raw::c_long,
10249                                 size1_: ::std::os::raw::c_long,
10250                                 size2_: ::std::os::raw::c_long,
10251                                 size3_: ::std::os::raw::c_long);
10252}
10253extern "C" {
10254    pub fn THCharTensor_resize5d(tensor: *mut THCharTensor,
10255                                 size0_: ::std::os::raw::c_long,
10256                                 size1_: ::std::os::raw::c_long,
10257                                 size2_: ::std::os::raw::c_long,
10258                                 size3_: ::std::os::raw::c_long,
10259                                 size4_: ::std::os::raw::c_long);
10260}
10261extern "C" {
10262    pub fn THCharTensor_set(self_: *mut THCharTensor, src: *mut THCharTensor);
10263}
10264extern "C" {
10265    pub fn THCharTensor_setStorage(self_: *mut THCharTensor,
10266                                   storage_: *mut THCharStorage,
10267                                   storageOffset_: isize,
10268                                   size_: *mut THLongStorage,
10269                                   stride_: *mut THLongStorage);
10270}
10271extern "C" {
10272    pub fn THCharTensor_setStorageNd(self_: *mut THCharTensor,
10273                                     storage_: *mut THCharStorage,
10274                                     storageOffset_: isize,
10275                                     nDimension: ::std::os::raw::c_int,
10276                                     size: *mut ::std::os::raw::c_long,
10277                                     stride: *mut ::std::os::raw::c_long);
10278}
10279extern "C" {
10280    pub fn THCharTensor_setStorage1d(self_: *mut THCharTensor,
10281                                     storage_: *mut THCharStorage,
10282                                     storageOffset_: isize,
10283                                     size0_: ::std::os::raw::c_long,
10284                                     stride0_: ::std::os::raw::c_long);
10285}
10286extern "C" {
10287    pub fn THCharTensor_setStorage2d(self_: *mut THCharTensor,
10288                                     storage_: *mut THCharStorage,
10289                                     storageOffset_: isize,
10290                                     size0_: ::std::os::raw::c_long,
10291                                     stride0_: ::std::os::raw::c_long,
10292                                     size1_: ::std::os::raw::c_long,
10293                                     stride1_: ::std::os::raw::c_long);
10294}
10295extern "C" {
10296    pub fn THCharTensor_setStorage3d(self_: *mut THCharTensor,
10297                                     storage_: *mut THCharStorage,
10298                                     storageOffset_: isize,
10299                                     size0_: ::std::os::raw::c_long,
10300                                     stride0_: ::std::os::raw::c_long,
10301                                     size1_: ::std::os::raw::c_long,
10302                                     stride1_: ::std::os::raw::c_long,
10303                                     size2_: ::std::os::raw::c_long,
10304                                     stride2_: ::std::os::raw::c_long);
10305}
10306extern "C" {
10307    pub fn THCharTensor_setStorage4d(self_: *mut THCharTensor,
10308                                     storage_: *mut THCharStorage,
10309                                     storageOffset_: isize,
10310                                     size0_: ::std::os::raw::c_long,
10311                                     stride0_: ::std::os::raw::c_long,
10312                                     size1_: ::std::os::raw::c_long,
10313                                     stride1_: ::std::os::raw::c_long,
10314                                     size2_: ::std::os::raw::c_long,
10315                                     stride2_: ::std::os::raw::c_long,
10316                                     size3_: ::std::os::raw::c_long,
10317                                     stride3_: ::std::os::raw::c_long);
10318}
10319extern "C" {
10320    pub fn THCharTensor_narrow(self_: *mut THCharTensor,
10321                               src: *mut THCharTensor,
10322                               dimension_: ::std::os::raw::c_int,
10323                               firstIndex_: ::std::os::raw::c_long,
10324                               size_: ::std::os::raw::c_long);
10325}
10326extern "C" {
10327    pub fn THCharTensor_select(self_: *mut THCharTensor,
10328                               src: *mut THCharTensor,
10329                               dimension_: ::std::os::raw::c_int,
10330                               sliceIndex_: ::std::os::raw::c_long);
10331}
10332extern "C" {
10333    pub fn THCharTensor_transpose(self_: *mut THCharTensor,
10334                                  src: *mut THCharTensor,
10335                                  dimension1_: ::std::os::raw::c_int,
10336                                  dimension2_: ::std::os::raw::c_int);
10337}
10338extern "C" {
10339    pub fn THCharTensor_unfold(self_: *mut THCharTensor,
10340                               src: *mut THCharTensor,
10341                               dimension_: ::std::os::raw::c_int,
10342                               size_: ::std::os::raw::c_long,
10343                               step_: ::std::os::raw::c_long);
10344}
10345extern "C" {
10346    pub fn THCharTensor_squeeze(self_: *mut THCharTensor,
10347                                src: *mut THCharTensor);
10348}
10349extern "C" {
10350    pub fn THCharTensor_squeeze1d(self_: *mut THCharTensor,
10351                                  src: *mut THCharTensor,
10352                                  dimension_: ::std::os::raw::c_int);
10353}
10354extern "C" {
10355    pub fn THCharTensor_unsqueeze1d(self_: *mut THCharTensor,
10356                                    src: *mut THCharTensor,
10357                                    dimension_: ::std::os::raw::c_int);
10358}
10359extern "C" {
10360    pub fn THCharTensor_isContiguous(self_: *const THCharTensor)
10361     -> ::std::os::raw::c_int;
10362}
10363extern "C" {
10364    pub fn THCharTensor_isSameSizeAs(self_: *const THCharTensor,
10365                                     src: *const THCharTensor)
10366     -> ::std::os::raw::c_int;
10367}
10368extern "C" {
10369    pub fn THCharTensor_isSetTo(self_: *const THCharTensor,
10370                                src: *const THCharTensor)
10371     -> ::std::os::raw::c_int;
10372}
10373extern "C" {
10374    pub fn THCharTensor_isSize(self_: *const THCharTensor,
10375                               dims: *const THLongStorage)
10376     -> ::std::os::raw::c_int;
10377}
10378extern "C" {
10379    pub fn THCharTensor_nElement(self_: *const THCharTensor) -> isize;
10380}
10381extern "C" {
10382    pub fn THCharTensor_retain(self_: *mut THCharTensor);
10383}
10384extern "C" {
10385    pub fn THCharTensor_free(self_: *mut THCharTensor);
10386}
10387extern "C" {
10388    pub fn THCharTensor_freeCopyTo(self_: *mut THCharTensor,
10389                                   dst: *mut THCharTensor);
10390}
10391extern "C" {
10392    pub fn THCharTensor_set1d(tensor: *mut THCharTensor,
10393                              x0: ::std::os::raw::c_long,
10394                              value: ::std::os::raw::c_char);
10395}
10396extern "C" {
10397    pub fn THCharTensor_set2d(tensor: *mut THCharTensor,
10398                              x0: ::std::os::raw::c_long,
10399                              x1: ::std::os::raw::c_long,
10400                              value: ::std::os::raw::c_char);
10401}
10402extern "C" {
10403    pub fn THCharTensor_set3d(tensor: *mut THCharTensor,
10404                              x0: ::std::os::raw::c_long,
10405                              x1: ::std::os::raw::c_long,
10406                              x2: ::std::os::raw::c_long,
10407                              value: ::std::os::raw::c_char);
10408}
10409extern "C" {
10410    pub fn THCharTensor_set4d(tensor: *mut THCharTensor,
10411                              x0: ::std::os::raw::c_long,
10412                              x1: ::std::os::raw::c_long,
10413                              x2: ::std::os::raw::c_long,
10414                              x3: ::std::os::raw::c_long,
10415                              value: ::std::os::raw::c_char);
10416}
10417extern "C" {
10418    pub fn THCharTensor_get1d(tensor: *const THCharTensor,
10419                              x0: ::std::os::raw::c_long)
10420     -> ::std::os::raw::c_char;
10421}
10422extern "C" {
10423    pub fn THCharTensor_get2d(tensor: *const THCharTensor,
10424                              x0: ::std::os::raw::c_long,
10425                              x1: ::std::os::raw::c_long)
10426     -> ::std::os::raw::c_char;
10427}
10428extern "C" {
10429    pub fn THCharTensor_get3d(tensor: *const THCharTensor,
10430                              x0: ::std::os::raw::c_long,
10431                              x1: ::std::os::raw::c_long,
10432                              x2: ::std::os::raw::c_long)
10433     -> ::std::os::raw::c_char;
10434}
10435extern "C" {
10436    pub fn THCharTensor_get4d(tensor: *const THCharTensor,
10437                              x0: ::std::os::raw::c_long,
10438                              x1: ::std::os::raw::c_long,
10439                              x2: ::std::os::raw::c_long,
10440                              x3: ::std::os::raw::c_long)
10441     -> ::std::os::raw::c_char;
10442}
10443extern "C" {
10444    pub fn THCharTensor_desc(tensor: *const THCharTensor) -> THDescBuff;
10445}
10446extern "C" {
10447    pub fn THCharTensor_sizeDesc(tensor: *const THCharTensor) -> THDescBuff;
10448}
10449#[repr(C)]
10450#[derive(Copy)]
10451pub struct THShortTensor {
10452    pub size: *mut ::std::os::raw::c_long,
10453    pub stride: *mut ::std::os::raw::c_long,
10454    pub nDimension: ::std::os::raw::c_int,
10455    pub storage: *mut THShortStorage,
10456    pub storageOffset: isize,
10457    pub refcount: ::std::os::raw::c_int,
10458    pub flag: ::std::os::raw::c_char,
10459}
10460#[test]
10461fn bindgen_test_layout_THShortTensor() {
10462    assert_eq!(::std::mem::size_of::<THShortTensor>() , 48usize , concat ! (
10463               "Size of: " , stringify ! ( THShortTensor ) ));
10464    assert_eq! (::std::mem::align_of::<THShortTensor>() , 8usize , concat ! (
10465                "Alignment of " , stringify ! ( THShortTensor ) ));
10466    assert_eq! (unsafe {
10467                & ( * ( 0 as * const THShortTensor ) ) . size as * const _ as
10468                usize } , 0usize , concat ! (
10469                "Alignment of field: " , stringify ! ( THShortTensor ) , "::"
10470                , stringify ! ( size ) ));
10471    assert_eq! (unsafe {
10472                & ( * ( 0 as * const THShortTensor ) ) . stride as * const _
10473                as usize } , 8usize , concat ! (
10474                "Alignment of field: " , stringify ! ( THShortTensor ) , "::"
10475                , stringify ! ( stride ) ));
10476    assert_eq! (unsafe {
10477                & ( * ( 0 as * const THShortTensor ) ) . nDimension as * const
10478                _ as usize } , 16usize , concat ! (
10479                "Alignment of field: " , stringify ! ( THShortTensor ) , "::"
10480                , stringify ! ( nDimension ) ));
10481    assert_eq! (unsafe {
10482                & ( * ( 0 as * const THShortTensor ) ) . storage as * const _
10483                as usize } , 24usize , concat ! (
10484                "Alignment of field: " , stringify ! ( THShortTensor ) , "::"
10485                , stringify ! ( storage ) ));
10486    assert_eq! (unsafe {
10487                & ( * ( 0 as * const THShortTensor ) ) . storageOffset as *
10488                const _ as usize } , 32usize , concat ! (
10489                "Alignment of field: " , stringify ! ( THShortTensor ) , "::"
10490                , stringify ! ( storageOffset ) ));
10491    assert_eq! (unsafe {
10492                & ( * ( 0 as * const THShortTensor ) ) . refcount as * const _
10493                as usize } , 40usize , concat ! (
10494                "Alignment of field: " , stringify ! ( THShortTensor ) , "::"
10495                , stringify ! ( refcount ) ));
10496    assert_eq! (unsafe {
10497                & ( * ( 0 as * const THShortTensor ) ) . flag as * const _ as
10498                usize } , 44usize , concat ! (
10499                "Alignment of field: " , stringify ! ( THShortTensor ) , "::"
10500                , stringify ! ( flag ) ));
10501}
10502impl Clone for THShortTensor {
10503    fn clone(&self) -> Self { *self }
10504}
10505extern "C" {
10506    pub fn THShortTensor_storage(self_: *const THShortTensor)
10507     -> *mut THShortStorage;
10508}
10509extern "C" {
10510    pub fn THShortTensor_storageOffset(self_: *const THShortTensor) -> isize;
10511}
10512extern "C" {
10513    pub fn THShortTensor_nDimension(self_: *const THShortTensor)
10514     -> ::std::os::raw::c_int;
10515}
10516extern "C" {
10517    pub fn THShortTensor_size(self_: *const THShortTensor,
10518                              dim: ::std::os::raw::c_int)
10519     -> ::std::os::raw::c_long;
10520}
10521extern "C" {
10522    pub fn THShortTensor_stride(self_: *const THShortTensor,
10523                                dim: ::std::os::raw::c_int)
10524     -> ::std::os::raw::c_long;
10525}
10526extern "C" {
10527    pub fn THShortTensor_newSizeOf(self_: *mut THShortTensor)
10528     -> *mut THLongStorage;
10529}
10530extern "C" {
10531    pub fn THShortTensor_newStrideOf(self_: *mut THShortTensor)
10532     -> *mut THLongStorage;
10533}
10534extern "C" {
10535    pub fn THShortTensor_data(self_: *const THShortTensor)
10536     -> *mut ::std::os::raw::c_short;
10537}
10538extern "C" {
10539    pub fn THShortTensor_setFlag(self_: *mut THShortTensor,
10540                                 flag: ::std::os::raw::c_char);
10541}
10542extern "C" {
10543    pub fn THShortTensor_clearFlag(self_: *mut THShortTensor,
10544                                   flag: ::std::os::raw::c_char);
10545}
10546extern "C" {
10547    pub fn THShortTensor_new() -> *mut THShortTensor;
10548}
10549extern "C" {
10550    pub fn THShortTensor_newWithTensor(tensor: *mut THShortTensor)
10551     -> *mut THShortTensor;
10552}
10553extern "C" {
10554    pub fn THShortTensor_newWithStorage(storage_: *mut THShortStorage,
10555                                        storageOffset_: isize,
10556                                        size_: *mut THLongStorage,
10557                                        stride_: *mut THLongStorage)
10558     -> *mut THShortTensor;
10559}
10560extern "C" {
10561    pub fn THShortTensor_newWithStorage1d(storage_: *mut THShortStorage,
10562                                          storageOffset_: isize,
10563                                          size0_: ::std::os::raw::c_long,
10564                                          stride0_: ::std::os::raw::c_long)
10565     -> *mut THShortTensor;
10566}
10567extern "C" {
10568    pub fn THShortTensor_newWithStorage2d(storage_: *mut THShortStorage,
10569                                          storageOffset_: isize,
10570                                          size0_: ::std::os::raw::c_long,
10571                                          stride0_: ::std::os::raw::c_long,
10572                                          size1_: ::std::os::raw::c_long,
10573                                          stride1_: ::std::os::raw::c_long)
10574     -> *mut THShortTensor;
10575}
10576extern "C" {
10577    pub fn THShortTensor_newWithStorage3d(storage_: *mut THShortStorage,
10578                                          storageOffset_: isize,
10579                                          size0_: ::std::os::raw::c_long,
10580                                          stride0_: ::std::os::raw::c_long,
10581                                          size1_: ::std::os::raw::c_long,
10582                                          stride1_: ::std::os::raw::c_long,
10583                                          size2_: ::std::os::raw::c_long,
10584                                          stride2_: ::std::os::raw::c_long)
10585     -> *mut THShortTensor;
10586}
10587extern "C" {
10588    pub fn THShortTensor_newWithStorage4d(storage_: *mut THShortStorage,
10589                                          storageOffset_: isize,
10590                                          size0_: ::std::os::raw::c_long,
10591                                          stride0_: ::std::os::raw::c_long,
10592                                          size1_: ::std::os::raw::c_long,
10593                                          stride1_: ::std::os::raw::c_long,
10594                                          size2_: ::std::os::raw::c_long,
10595                                          stride2_: ::std::os::raw::c_long,
10596                                          size3_: ::std::os::raw::c_long,
10597                                          stride3_: ::std::os::raw::c_long)
10598     -> *mut THShortTensor;
10599}
10600extern "C" {
10601    pub fn THShortTensor_newWithSize(size_: *mut THLongStorage,
10602                                     stride_: *mut THLongStorage)
10603     -> *mut THShortTensor;
10604}
10605extern "C" {
10606    pub fn THShortTensor_newWithSize1d(size0_: ::std::os::raw::c_long)
10607     -> *mut THShortTensor;
10608}
10609extern "C" {
10610    pub fn THShortTensor_newWithSize2d(size0_: ::std::os::raw::c_long,
10611                                       size1_: ::std::os::raw::c_long)
10612     -> *mut THShortTensor;
10613}
10614extern "C" {
10615    pub fn THShortTensor_newWithSize3d(size0_: ::std::os::raw::c_long,
10616                                       size1_: ::std::os::raw::c_long,
10617                                       size2_: ::std::os::raw::c_long)
10618     -> *mut THShortTensor;
10619}
10620extern "C" {
10621    pub fn THShortTensor_newWithSize4d(size0_: ::std::os::raw::c_long,
10622                                       size1_: ::std::os::raw::c_long,
10623                                       size2_: ::std::os::raw::c_long,
10624                                       size3_: ::std::os::raw::c_long)
10625     -> *mut THShortTensor;
10626}
10627extern "C" {
10628    pub fn THShortTensor_newClone(self_: *mut THShortTensor)
10629     -> *mut THShortTensor;
10630}
10631extern "C" {
10632    pub fn THShortTensor_newContiguous(tensor: *mut THShortTensor)
10633     -> *mut THShortTensor;
10634}
10635extern "C" {
10636    pub fn THShortTensor_newSelect(tensor: *mut THShortTensor,
10637                                   dimension_: ::std::os::raw::c_int,
10638                                   sliceIndex_: ::std::os::raw::c_long)
10639     -> *mut THShortTensor;
10640}
10641extern "C" {
10642    pub fn THShortTensor_newNarrow(tensor: *mut THShortTensor,
10643                                   dimension_: ::std::os::raw::c_int,
10644                                   firstIndex_: ::std::os::raw::c_long,
10645                                   size_: ::std::os::raw::c_long)
10646     -> *mut THShortTensor;
10647}
10648extern "C" {
10649    pub fn THShortTensor_newTranspose(tensor: *mut THShortTensor,
10650                                      dimension1_: ::std::os::raw::c_int,
10651                                      dimension2_: ::std::os::raw::c_int)
10652     -> *mut THShortTensor;
10653}
10654extern "C" {
10655    pub fn THShortTensor_newUnfold(tensor: *mut THShortTensor,
10656                                   dimension_: ::std::os::raw::c_int,
10657                                   size_: ::std::os::raw::c_long,
10658                                   step_: ::std::os::raw::c_long)
10659     -> *mut THShortTensor;
10660}
10661extern "C" {
10662    pub fn THShortTensor_newView(tensor: *mut THShortTensor,
10663                                 size: *mut THLongStorage)
10664     -> *mut THShortTensor;
10665}
10666extern "C" {
10667    pub fn THShortTensor_newExpand(tensor: *mut THShortTensor,
10668                                   size: *mut THLongStorage)
10669     -> *mut THShortTensor;
10670}
10671extern "C" {
10672    pub fn THShortTensor_expand(r: *mut THShortTensor,
10673                                tensor: *mut THShortTensor,
10674                                size: *mut THLongStorage);
10675}
10676extern "C" {
10677    pub fn THShortTensor_expandNd(rets: *mut *mut THShortTensor,
10678                                  ops: *mut *mut THShortTensor,
10679                                  count: ::std::os::raw::c_int);
10680}
10681extern "C" {
10682    pub fn THShortTensor_resize(tensor: *mut THShortTensor,
10683                                size: *mut THLongStorage,
10684                                stride: *mut THLongStorage);
10685}
10686extern "C" {
10687    pub fn THShortTensor_resizeAs(tensor: *mut THShortTensor,
10688                                  src: *mut THShortTensor);
10689}
10690extern "C" {
10691    pub fn THShortTensor_resizeNd(tensor: *mut THShortTensor,
10692                                  nDimension: ::std::os::raw::c_int,
10693                                  size: *mut ::std::os::raw::c_long,
10694                                  stride: *mut ::std::os::raw::c_long);
10695}
10696extern "C" {
10697    pub fn THShortTensor_resize1d(tensor: *mut THShortTensor,
10698                                  size0_: ::std::os::raw::c_long);
10699}
10700extern "C" {
10701    pub fn THShortTensor_resize2d(tensor: *mut THShortTensor,
10702                                  size0_: ::std::os::raw::c_long,
10703                                  size1_: ::std::os::raw::c_long);
10704}
10705extern "C" {
10706    pub fn THShortTensor_resize3d(tensor: *mut THShortTensor,
10707                                  size0_: ::std::os::raw::c_long,
10708                                  size1_: ::std::os::raw::c_long,
10709                                  size2_: ::std::os::raw::c_long);
10710}
10711extern "C" {
10712    pub fn THShortTensor_resize4d(tensor: *mut THShortTensor,
10713                                  size0_: ::std::os::raw::c_long,
10714                                  size1_: ::std::os::raw::c_long,
10715                                  size2_: ::std::os::raw::c_long,
10716                                  size3_: ::std::os::raw::c_long);
10717}
10718extern "C" {
10719    pub fn THShortTensor_resize5d(tensor: *mut THShortTensor,
10720                                  size0_: ::std::os::raw::c_long,
10721                                  size1_: ::std::os::raw::c_long,
10722                                  size2_: ::std::os::raw::c_long,
10723                                  size3_: ::std::os::raw::c_long,
10724                                  size4_: ::std::os::raw::c_long);
10725}
10726extern "C" {
10727    pub fn THShortTensor_set(self_: *mut THShortTensor,
10728                             src: *mut THShortTensor);
10729}
10730extern "C" {
10731    pub fn THShortTensor_setStorage(self_: *mut THShortTensor,
10732                                    storage_: *mut THShortStorage,
10733                                    storageOffset_: isize,
10734                                    size_: *mut THLongStorage,
10735                                    stride_: *mut THLongStorage);
10736}
10737extern "C" {
10738    pub fn THShortTensor_setStorageNd(self_: *mut THShortTensor,
10739                                      storage_: *mut THShortStorage,
10740                                      storageOffset_: isize,
10741                                      nDimension: ::std::os::raw::c_int,
10742                                      size: *mut ::std::os::raw::c_long,
10743                                      stride: *mut ::std::os::raw::c_long);
10744}
10745extern "C" {
10746    pub fn THShortTensor_setStorage1d(self_: *mut THShortTensor,
10747                                      storage_: *mut THShortStorage,
10748                                      storageOffset_: isize,
10749                                      size0_: ::std::os::raw::c_long,
10750                                      stride0_: ::std::os::raw::c_long);
10751}
10752extern "C" {
10753    pub fn THShortTensor_setStorage2d(self_: *mut THShortTensor,
10754                                      storage_: *mut THShortStorage,
10755                                      storageOffset_: isize,
10756                                      size0_: ::std::os::raw::c_long,
10757                                      stride0_: ::std::os::raw::c_long,
10758                                      size1_: ::std::os::raw::c_long,
10759                                      stride1_: ::std::os::raw::c_long);
10760}
10761extern "C" {
10762    pub fn THShortTensor_setStorage3d(self_: *mut THShortTensor,
10763                                      storage_: *mut THShortStorage,
10764                                      storageOffset_: isize,
10765                                      size0_: ::std::os::raw::c_long,
10766                                      stride0_: ::std::os::raw::c_long,
10767                                      size1_: ::std::os::raw::c_long,
10768                                      stride1_: ::std::os::raw::c_long,
10769                                      size2_: ::std::os::raw::c_long,
10770                                      stride2_: ::std::os::raw::c_long);
10771}
10772extern "C" {
10773    pub fn THShortTensor_setStorage4d(self_: *mut THShortTensor,
10774                                      storage_: *mut THShortStorage,
10775                                      storageOffset_: isize,
10776                                      size0_: ::std::os::raw::c_long,
10777                                      stride0_: ::std::os::raw::c_long,
10778                                      size1_: ::std::os::raw::c_long,
10779                                      stride1_: ::std::os::raw::c_long,
10780                                      size2_: ::std::os::raw::c_long,
10781                                      stride2_: ::std::os::raw::c_long,
10782                                      size3_: ::std::os::raw::c_long,
10783                                      stride3_: ::std::os::raw::c_long);
10784}
10785extern "C" {
10786    pub fn THShortTensor_narrow(self_: *mut THShortTensor,
10787                                src: *mut THShortTensor,
10788                                dimension_: ::std::os::raw::c_int,
10789                                firstIndex_: ::std::os::raw::c_long,
10790                                size_: ::std::os::raw::c_long);
10791}
10792extern "C" {
10793    pub fn THShortTensor_select(self_: *mut THShortTensor,
10794                                src: *mut THShortTensor,
10795                                dimension_: ::std::os::raw::c_int,
10796                                sliceIndex_: ::std::os::raw::c_long);
10797}
10798extern "C" {
10799    pub fn THShortTensor_transpose(self_: *mut THShortTensor,
10800                                   src: *mut THShortTensor,
10801                                   dimension1_: ::std::os::raw::c_int,
10802                                   dimension2_: ::std::os::raw::c_int);
10803}
10804extern "C" {
10805    pub fn THShortTensor_unfold(self_: *mut THShortTensor,
10806                                src: *mut THShortTensor,
10807                                dimension_: ::std::os::raw::c_int,
10808                                size_: ::std::os::raw::c_long,
10809                                step_: ::std::os::raw::c_long);
10810}
10811extern "C" {
10812    pub fn THShortTensor_squeeze(self_: *mut THShortTensor,
10813                                 src: *mut THShortTensor);
10814}
10815extern "C" {
10816    pub fn THShortTensor_squeeze1d(self_: *mut THShortTensor,
10817                                   src: *mut THShortTensor,
10818                                   dimension_: ::std::os::raw::c_int);
10819}
10820extern "C" {
10821    pub fn THShortTensor_unsqueeze1d(self_: *mut THShortTensor,
10822                                     src: *mut THShortTensor,
10823                                     dimension_: ::std::os::raw::c_int);
10824}
10825extern "C" {
10826    pub fn THShortTensor_isContiguous(self_: *const THShortTensor)
10827     -> ::std::os::raw::c_int;
10828}
10829extern "C" {
10830    pub fn THShortTensor_isSameSizeAs(self_: *const THShortTensor,
10831                                      src: *const THShortTensor)
10832     -> ::std::os::raw::c_int;
10833}
10834extern "C" {
10835    pub fn THShortTensor_isSetTo(self_: *const THShortTensor,
10836                                 src: *const THShortTensor)
10837     -> ::std::os::raw::c_int;
10838}
10839extern "C" {
10840    pub fn THShortTensor_isSize(self_: *const THShortTensor,
10841                                dims: *const THLongStorage)
10842     -> ::std::os::raw::c_int;
10843}
10844extern "C" {
10845    pub fn THShortTensor_nElement(self_: *const THShortTensor) -> isize;
10846}
10847extern "C" {
10848    pub fn THShortTensor_retain(self_: *mut THShortTensor);
10849}
10850extern "C" {
10851    pub fn THShortTensor_free(self_: *mut THShortTensor);
10852}
10853extern "C" {
10854    pub fn THShortTensor_freeCopyTo(self_: *mut THShortTensor,
10855                                    dst: *mut THShortTensor);
10856}
10857extern "C" {
10858    pub fn THShortTensor_set1d(tensor: *mut THShortTensor,
10859                               x0: ::std::os::raw::c_long,
10860                               value: ::std::os::raw::c_short);
10861}
10862extern "C" {
10863    pub fn THShortTensor_set2d(tensor: *mut THShortTensor,
10864                               x0: ::std::os::raw::c_long,
10865                               x1: ::std::os::raw::c_long,
10866                               value: ::std::os::raw::c_short);
10867}
10868extern "C" {
10869    pub fn THShortTensor_set3d(tensor: *mut THShortTensor,
10870                               x0: ::std::os::raw::c_long,
10871                               x1: ::std::os::raw::c_long,
10872                               x2: ::std::os::raw::c_long,
10873                               value: ::std::os::raw::c_short);
10874}
10875extern "C" {
10876    pub fn THShortTensor_set4d(tensor: *mut THShortTensor,
10877                               x0: ::std::os::raw::c_long,
10878                               x1: ::std::os::raw::c_long,
10879                               x2: ::std::os::raw::c_long,
10880                               x3: ::std::os::raw::c_long,
10881                               value: ::std::os::raw::c_short);
10882}
10883extern "C" {
10884    pub fn THShortTensor_get1d(tensor: *const THShortTensor,
10885                               x0: ::std::os::raw::c_long)
10886     -> ::std::os::raw::c_short;
10887}
10888extern "C" {
10889    pub fn THShortTensor_get2d(tensor: *const THShortTensor,
10890                               x0: ::std::os::raw::c_long,
10891                               x1: ::std::os::raw::c_long)
10892     -> ::std::os::raw::c_short;
10893}
10894extern "C" {
10895    pub fn THShortTensor_get3d(tensor: *const THShortTensor,
10896                               x0: ::std::os::raw::c_long,
10897                               x1: ::std::os::raw::c_long,
10898                               x2: ::std::os::raw::c_long)
10899     -> ::std::os::raw::c_short;
10900}
10901extern "C" {
10902    pub fn THShortTensor_get4d(tensor: *const THShortTensor,
10903                               x0: ::std::os::raw::c_long,
10904                               x1: ::std::os::raw::c_long,
10905                               x2: ::std::os::raw::c_long,
10906                               x3: ::std::os::raw::c_long)
10907     -> ::std::os::raw::c_short;
10908}
10909extern "C" {
10910    pub fn THShortTensor_desc(tensor: *const THShortTensor) -> THDescBuff;
10911}
10912extern "C" {
10913    pub fn THShortTensor_sizeDesc(tensor: *const THShortTensor) -> THDescBuff;
10914}
10915#[repr(C)]
10916#[derive(Copy)]
10917pub struct THIntTensor {
10918    pub size: *mut ::std::os::raw::c_long,
10919    pub stride: *mut ::std::os::raw::c_long,
10920    pub nDimension: ::std::os::raw::c_int,
10921    pub storage: *mut THIntStorage,
10922    pub storageOffset: isize,
10923    pub refcount: ::std::os::raw::c_int,
10924    pub flag: ::std::os::raw::c_char,
10925}
10926#[test]
10927fn bindgen_test_layout_THIntTensor() {
10928    assert_eq!(::std::mem::size_of::<THIntTensor>() , 48usize , concat ! (
10929               "Size of: " , stringify ! ( THIntTensor ) ));
10930    assert_eq! (::std::mem::align_of::<THIntTensor>() , 8usize , concat ! (
10931                "Alignment of " , stringify ! ( THIntTensor ) ));
10932    assert_eq! (unsafe {
10933                & ( * ( 0 as * const THIntTensor ) ) . size as * const _ as
10934                usize } , 0usize , concat ! (
10935                "Alignment of field: " , stringify ! ( THIntTensor ) , "::" ,
10936                stringify ! ( size ) ));
10937    assert_eq! (unsafe {
10938                & ( * ( 0 as * const THIntTensor ) ) . stride as * const _ as
10939                usize } , 8usize , concat ! (
10940                "Alignment of field: " , stringify ! ( THIntTensor ) , "::" ,
10941                stringify ! ( stride ) ));
10942    assert_eq! (unsafe {
10943                & ( * ( 0 as * const THIntTensor ) ) . nDimension as * const _
10944                as usize } , 16usize , concat ! (
10945                "Alignment of field: " , stringify ! ( THIntTensor ) , "::" ,
10946                stringify ! ( nDimension ) ));
10947    assert_eq! (unsafe {
10948                & ( * ( 0 as * const THIntTensor ) ) . storage as * const _ as
10949                usize } , 24usize , concat ! (
10950                "Alignment of field: " , stringify ! ( THIntTensor ) , "::" ,
10951                stringify ! ( storage ) ));
10952    assert_eq! (unsafe {
10953                & ( * ( 0 as * const THIntTensor ) ) . storageOffset as *
10954                const _ as usize } , 32usize , concat ! (
10955                "Alignment of field: " , stringify ! ( THIntTensor ) , "::" ,
10956                stringify ! ( storageOffset ) ));
10957    assert_eq! (unsafe {
10958                & ( * ( 0 as * const THIntTensor ) ) . refcount as * const _
10959                as usize } , 40usize , concat ! (
10960                "Alignment of field: " , stringify ! ( THIntTensor ) , "::" ,
10961                stringify ! ( refcount ) ));
10962    assert_eq! (unsafe {
10963                & ( * ( 0 as * const THIntTensor ) ) . flag as * const _ as
10964                usize } , 44usize , concat ! (
10965                "Alignment of field: " , stringify ! ( THIntTensor ) , "::" ,
10966                stringify ! ( flag ) ));
10967}
10968impl Clone for THIntTensor {
10969    fn clone(&self) -> Self { *self }
10970}
10971extern "C" {
10972    pub fn THIntTensor_storage(self_: *const THIntTensor)
10973     -> *mut THIntStorage;
10974}
10975extern "C" {
10976    pub fn THIntTensor_storageOffset(self_: *const THIntTensor) -> isize;
10977}
10978extern "C" {
10979    pub fn THIntTensor_nDimension(self_: *const THIntTensor)
10980     -> ::std::os::raw::c_int;
10981}
10982extern "C" {
10983    pub fn THIntTensor_size(self_: *const THIntTensor,
10984                            dim: ::std::os::raw::c_int)
10985     -> ::std::os::raw::c_long;
10986}
10987extern "C" {
10988    pub fn THIntTensor_stride(self_: *const THIntTensor,
10989                              dim: ::std::os::raw::c_int)
10990     -> ::std::os::raw::c_long;
10991}
10992extern "C" {
10993    pub fn THIntTensor_newSizeOf(self_: *mut THIntTensor)
10994     -> *mut THLongStorage;
10995}
10996extern "C" {
10997    pub fn THIntTensor_newStrideOf(self_: *mut THIntTensor)
10998     -> *mut THLongStorage;
10999}
11000extern "C" {
11001    pub fn THIntTensor_data(self_: *const THIntTensor)
11002     -> *mut ::std::os::raw::c_int;
11003}
11004extern "C" {
11005    pub fn THIntTensor_setFlag(self_: *mut THIntTensor,
11006                               flag: ::std::os::raw::c_char);
11007}
11008extern "C" {
11009    pub fn THIntTensor_clearFlag(self_: *mut THIntTensor,
11010                                 flag: ::std::os::raw::c_char);
11011}
11012extern "C" {
11013    pub fn THIntTensor_new() -> *mut THIntTensor;
11014}
11015extern "C" {
11016    pub fn THIntTensor_newWithTensor(tensor: *mut THIntTensor)
11017     -> *mut THIntTensor;
11018}
11019extern "C" {
11020    pub fn THIntTensor_newWithStorage(storage_: *mut THIntStorage,
11021                                      storageOffset_: isize,
11022                                      size_: *mut THLongStorage,
11023                                      stride_: *mut THLongStorage)
11024     -> *mut THIntTensor;
11025}
11026extern "C" {
11027    pub fn THIntTensor_newWithStorage1d(storage_: *mut THIntStorage,
11028                                        storageOffset_: isize,
11029                                        size0_: ::std::os::raw::c_long,
11030                                        stride0_: ::std::os::raw::c_long)
11031     -> *mut THIntTensor;
11032}
11033extern "C" {
11034    pub fn THIntTensor_newWithStorage2d(storage_: *mut THIntStorage,
11035                                        storageOffset_: isize,
11036                                        size0_: ::std::os::raw::c_long,
11037                                        stride0_: ::std::os::raw::c_long,
11038                                        size1_: ::std::os::raw::c_long,
11039                                        stride1_: ::std::os::raw::c_long)
11040     -> *mut THIntTensor;
11041}
11042extern "C" {
11043    pub fn THIntTensor_newWithStorage3d(storage_: *mut THIntStorage,
11044                                        storageOffset_: isize,
11045                                        size0_: ::std::os::raw::c_long,
11046                                        stride0_: ::std::os::raw::c_long,
11047                                        size1_: ::std::os::raw::c_long,
11048                                        stride1_: ::std::os::raw::c_long,
11049                                        size2_: ::std::os::raw::c_long,
11050                                        stride2_: ::std::os::raw::c_long)
11051     -> *mut THIntTensor;
11052}
11053extern "C" {
11054    pub fn THIntTensor_newWithStorage4d(storage_: *mut THIntStorage,
11055                                        storageOffset_: isize,
11056                                        size0_: ::std::os::raw::c_long,
11057                                        stride0_: ::std::os::raw::c_long,
11058                                        size1_: ::std::os::raw::c_long,
11059                                        stride1_: ::std::os::raw::c_long,
11060                                        size2_: ::std::os::raw::c_long,
11061                                        stride2_: ::std::os::raw::c_long,
11062                                        size3_: ::std::os::raw::c_long,
11063                                        stride3_: ::std::os::raw::c_long)
11064     -> *mut THIntTensor;
11065}
11066extern "C" {
11067    pub fn THIntTensor_newWithSize(size_: *mut THLongStorage,
11068                                   stride_: *mut THLongStorage)
11069     -> *mut THIntTensor;
11070}
11071extern "C" {
11072    pub fn THIntTensor_newWithSize1d(size0_: ::std::os::raw::c_long)
11073     -> *mut THIntTensor;
11074}
11075extern "C" {
11076    pub fn THIntTensor_newWithSize2d(size0_: ::std::os::raw::c_long,
11077                                     size1_: ::std::os::raw::c_long)
11078     -> *mut THIntTensor;
11079}
11080extern "C" {
11081    pub fn THIntTensor_newWithSize3d(size0_: ::std::os::raw::c_long,
11082                                     size1_: ::std::os::raw::c_long,
11083                                     size2_: ::std::os::raw::c_long)
11084     -> *mut THIntTensor;
11085}
11086extern "C" {
11087    pub fn THIntTensor_newWithSize4d(size0_: ::std::os::raw::c_long,
11088                                     size1_: ::std::os::raw::c_long,
11089                                     size2_: ::std::os::raw::c_long,
11090                                     size3_: ::std::os::raw::c_long)
11091     -> *mut THIntTensor;
11092}
11093extern "C" {
11094    pub fn THIntTensor_newClone(self_: *mut THIntTensor) -> *mut THIntTensor;
11095}
11096extern "C" {
11097    pub fn THIntTensor_newContiguous(tensor: *mut THIntTensor)
11098     -> *mut THIntTensor;
11099}
11100extern "C" {
11101    pub fn THIntTensor_newSelect(tensor: *mut THIntTensor,
11102                                 dimension_: ::std::os::raw::c_int,
11103                                 sliceIndex_: ::std::os::raw::c_long)
11104     -> *mut THIntTensor;
11105}
11106extern "C" {
11107    pub fn THIntTensor_newNarrow(tensor: *mut THIntTensor,
11108                                 dimension_: ::std::os::raw::c_int,
11109                                 firstIndex_: ::std::os::raw::c_long,
11110                                 size_: ::std::os::raw::c_long)
11111     -> *mut THIntTensor;
11112}
11113extern "C" {
11114    pub fn THIntTensor_newTranspose(tensor: *mut THIntTensor,
11115                                    dimension1_: ::std::os::raw::c_int,
11116                                    dimension2_: ::std::os::raw::c_int)
11117     -> *mut THIntTensor;
11118}
11119extern "C" {
11120    pub fn THIntTensor_newUnfold(tensor: *mut THIntTensor,
11121                                 dimension_: ::std::os::raw::c_int,
11122                                 size_: ::std::os::raw::c_long,
11123                                 step_: ::std::os::raw::c_long)
11124     -> *mut THIntTensor;
11125}
11126extern "C" {
11127    pub fn THIntTensor_newView(tensor: *mut THIntTensor,
11128                               size: *mut THLongStorage) -> *mut THIntTensor;
11129}
11130extern "C" {
11131    pub fn THIntTensor_newExpand(tensor: *mut THIntTensor,
11132                                 size: *mut THLongStorage)
11133     -> *mut THIntTensor;
11134}
11135extern "C" {
11136    pub fn THIntTensor_expand(r: *mut THIntTensor, tensor: *mut THIntTensor,
11137                              size: *mut THLongStorage);
11138}
11139extern "C" {
11140    pub fn THIntTensor_expandNd(rets: *mut *mut THIntTensor,
11141                                ops: *mut *mut THIntTensor,
11142                                count: ::std::os::raw::c_int);
11143}
11144extern "C" {
11145    pub fn THIntTensor_resize(tensor: *mut THIntTensor,
11146                              size: *mut THLongStorage,
11147                              stride: *mut THLongStorage);
11148}
11149extern "C" {
11150    pub fn THIntTensor_resizeAs(tensor: *mut THIntTensor,
11151                                src: *mut THIntTensor);
11152}
11153extern "C" {
11154    pub fn THIntTensor_resizeNd(tensor: *mut THIntTensor,
11155                                nDimension: ::std::os::raw::c_int,
11156                                size: *mut ::std::os::raw::c_long,
11157                                stride: *mut ::std::os::raw::c_long);
11158}
11159extern "C" {
11160    pub fn THIntTensor_resize1d(tensor: *mut THIntTensor,
11161                                size0_: ::std::os::raw::c_long);
11162}
11163extern "C" {
11164    pub fn THIntTensor_resize2d(tensor: *mut THIntTensor,
11165                                size0_: ::std::os::raw::c_long,
11166                                size1_: ::std::os::raw::c_long);
11167}
11168extern "C" {
11169    pub fn THIntTensor_resize3d(tensor: *mut THIntTensor,
11170                                size0_: ::std::os::raw::c_long,
11171                                size1_: ::std::os::raw::c_long,
11172                                size2_: ::std::os::raw::c_long);
11173}
11174extern "C" {
11175    pub fn THIntTensor_resize4d(tensor: *mut THIntTensor,
11176                                size0_: ::std::os::raw::c_long,
11177                                size1_: ::std::os::raw::c_long,
11178                                size2_: ::std::os::raw::c_long,
11179                                size3_: ::std::os::raw::c_long);
11180}
11181extern "C" {
11182    pub fn THIntTensor_resize5d(tensor: *mut THIntTensor,
11183                                size0_: ::std::os::raw::c_long,
11184                                size1_: ::std::os::raw::c_long,
11185                                size2_: ::std::os::raw::c_long,
11186                                size3_: ::std::os::raw::c_long,
11187                                size4_: ::std::os::raw::c_long);
11188}
11189extern "C" {
11190    pub fn THIntTensor_set(self_: *mut THIntTensor, src: *mut THIntTensor);
11191}
11192extern "C" {
11193    pub fn THIntTensor_setStorage(self_: *mut THIntTensor,
11194                                  storage_: *mut THIntStorage,
11195                                  storageOffset_: isize,
11196                                  size_: *mut THLongStorage,
11197                                  stride_: *mut THLongStorage);
11198}
11199extern "C" {
11200    pub fn THIntTensor_setStorageNd(self_: *mut THIntTensor,
11201                                    storage_: *mut THIntStorage,
11202                                    storageOffset_: isize,
11203                                    nDimension: ::std::os::raw::c_int,
11204                                    size: *mut ::std::os::raw::c_long,
11205                                    stride: *mut ::std::os::raw::c_long);
11206}
11207extern "C" {
11208    pub fn THIntTensor_setStorage1d(self_: *mut THIntTensor,
11209                                    storage_: *mut THIntStorage,
11210                                    storageOffset_: isize,
11211                                    size0_: ::std::os::raw::c_long,
11212                                    stride0_: ::std::os::raw::c_long);
11213}
11214extern "C" {
11215    pub fn THIntTensor_setStorage2d(self_: *mut THIntTensor,
11216                                    storage_: *mut THIntStorage,
11217                                    storageOffset_: isize,
11218                                    size0_: ::std::os::raw::c_long,
11219                                    stride0_: ::std::os::raw::c_long,
11220                                    size1_: ::std::os::raw::c_long,
11221                                    stride1_: ::std::os::raw::c_long);
11222}
11223extern "C" {
11224    pub fn THIntTensor_setStorage3d(self_: *mut THIntTensor,
11225                                    storage_: *mut THIntStorage,
11226                                    storageOffset_: isize,
11227                                    size0_: ::std::os::raw::c_long,
11228                                    stride0_: ::std::os::raw::c_long,
11229                                    size1_: ::std::os::raw::c_long,
11230                                    stride1_: ::std::os::raw::c_long,
11231                                    size2_: ::std::os::raw::c_long,
11232                                    stride2_: ::std::os::raw::c_long);
11233}
11234extern "C" {
11235    pub fn THIntTensor_setStorage4d(self_: *mut THIntTensor,
11236                                    storage_: *mut THIntStorage,
11237                                    storageOffset_: isize,
11238                                    size0_: ::std::os::raw::c_long,
11239                                    stride0_: ::std::os::raw::c_long,
11240                                    size1_: ::std::os::raw::c_long,
11241                                    stride1_: ::std::os::raw::c_long,
11242                                    size2_: ::std::os::raw::c_long,
11243                                    stride2_: ::std::os::raw::c_long,
11244                                    size3_: ::std::os::raw::c_long,
11245                                    stride3_: ::std::os::raw::c_long);
11246}
11247extern "C" {
11248    pub fn THIntTensor_narrow(self_: *mut THIntTensor, src: *mut THIntTensor,
11249                              dimension_: ::std::os::raw::c_int,
11250                              firstIndex_: ::std::os::raw::c_long,
11251                              size_: ::std::os::raw::c_long);
11252}
11253extern "C" {
11254    pub fn THIntTensor_select(self_: *mut THIntTensor, src: *mut THIntTensor,
11255                              dimension_: ::std::os::raw::c_int,
11256                              sliceIndex_: ::std::os::raw::c_long);
11257}
11258extern "C" {
11259    pub fn THIntTensor_transpose(self_: *mut THIntTensor,
11260                                 src: *mut THIntTensor,
11261                                 dimension1_: ::std::os::raw::c_int,
11262                                 dimension2_: ::std::os::raw::c_int);
11263}
11264extern "C" {
11265    pub fn THIntTensor_unfold(self_: *mut THIntTensor, src: *mut THIntTensor,
11266                              dimension_: ::std::os::raw::c_int,
11267                              size_: ::std::os::raw::c_long,
11268                              step_: ::std::os::raw::c_long);
11269}
11270extern "C" {
11271    pub fn THIntTensor_squeeze(self_: *mut THIntTensor,
11272                               src: *mut THIntTensor);
11273}
11274extern "C" {
11275    pub fn THIntTensor_squeeze1d(self_: *mut THIntTensor,
11276                                 src: *mut THIntTensor,
11277                                 dimension_: ::std::os::raw::c_int);
11278}
11279extern "C" {
11280    pub fn THIntTensor_unsqueeze1d(self_: *mut THIntTensor,
11281                                   src: *mut THIntTensor,
11282                                   dimension_: ::std::os::raw::c_int);
11283}
11284extern "C" {
11285    pub fn THIntTensor_isContiguous(self_: *const THIntTensor)
11286     -> ::std::os::raw::c_int;
11287}
11288extern "C" {
11289    pub fn THIntTensor_isSameSizeAs(self_: *const THIntTensor,
11290                                    src: *const THIntTensor)
11291     -> ::std::os::raw::c_int;
11292}
11293extern "C" {
11294    pub fn THIntTensor_isSetTo(self_: *const THIntTensor,
11295                               src: *const THIntTensor)
11296     -> ::std::os::raw::c_int;
11297}
11298extern "C" {
11299    pub fn THIntTensor_isSize(self_: *const THIntTensor,
11300                              dims: *const THLongStorage)
11301     -> ::std::os::raw::c_int;
11302}
11303extern "C" {
11304    pub fn THIntTensor_nElement(self_: *const THIntTensor) -> isize;
11305}
11306extern "C" {
11307    pub fn THIntTensor_retain(self_: *mut THIntTensor);
11308}
11309extern "C" {
11310    pub fn THIntTensor_free(self_: *mut THIntTensor);
11311}
11312extern "C" {
11313    pub fn THIntTensor_freeCopyTo(self_: *mut THIntTensor,
11314                                  dst: *mut THIntTensor);
11315}
11316extern "C" {
11317    pub fn THIntTensor_set1d(tensor: *mut THIntTensor,
11318                             x0: ::std::os::raw::c_long,
11319                             value: ::std::os::raw::c_int);
11320}
11321extern "C" {
11322    pub fn THIntTensor_set2d(tensor: *mut THIntTensor,
11323                             x0: ::std::os::raw::c_long,
11324                             x1: ::std::os::raw::c_long,
11325                             value: ::std::os::raw::c_int);
11326}
11327extern "C" {
11328    pub fn THIntTensor_set3d(tensor: *mut THIntTensor,
11329                             x0: ::std::os::raw::c_long,
11330                             x1: ::std::os::raw::c_long,
11331                             x2: ::std::os::raw::c_long,
11332                             value: ::std::os::raw::c_int);
11333}
11334extern "C" {
11335    pub fn THIntTensor_set4d(tensor: *mut THIntTensor,
11336                             x0: ::std::os::raw::c_long,
11337                             x1: ::std::os::raw::c_long,
11338                             x2: ::std::os::raw::c_long,
11339                             x3: ::std::os::raw::c_long,
11340                             value: ::std::os::raw::c_int);
11341}
11342extern "C" {
11343    pub fn THIntTensor_get1d(tensor: *const THIntTensor,
11344                             x0: ::std::os::raw::c_long)
11345     -> ::std::os::raw::c_int;
11346}
11347extern "C" {
11348    pub fn THIntTensor_get2d(tensor: *const THIntTensor,
11349                             x0: ::std::os::raw::c_long,
11350                             x1: ::std::os::raw::c_long)
11351     -> ::std::os::raw::c_int;
11352}
11353extern "C" {
11354    pub fn THIntTensor_get3d(tensor: *const THIntTensor,
11355                             x0: ::std::os::raw::c_long,
11356                             x1: ::std::os::raw::c_long,
11357                             x2: ::std::os::raw::c_long)
11358     -> ::std::os::raw::c_int;
11359}
11360extern "C" {
11361    pub fn THIntTensor_get4d(tensor: *const THIntTensor,
11362                             x0: ::std::os::raw::c_long,
11363                             x1: ::std::os::raw::c_long,
11364                             x2: ::std::os::raw::c_long,
11365                             x3: ::std::os::raw::c_long)
11366     -> ::std::os::raw::c_int;
11367}
11368extern "C" {
11369    pub fn THIntTensor_desc(tensor: *const THIntTensor) -> THDescBuff;
11370}
11371extern "C" {
11372    pub fn THIntTensor_sizeDesc(tensor: *const THIntTensor) -> THDescBuff;
11373}
11374#[repr(C)]
11375#[derive(Copy)]
11376pub struct THLongTensor {
11377    pub size: *mut ::std::os::raw::c_long,
11378    pub stride: *mut ::std::os::raw::c_long,
11379    pub nDimension: ::std::os::raw::c_int,
11380    pub storage: *mut THLongStorage,
11381    pub storageOffset: isize,
11382    pub refcount: ::std::os::raw::c_int,
11383    pub flag: ::std::os::raw::c_char,
11384}
11385#[test]
11386fn bindgen_test_layout_THLongTensor() {
11387    assert_eq!(::std::mem::size_of::<THLongTensor>() , 48usize , concat ! (
11388               "Size of: " , stringify ! ( THLongTensor ) ));
11389    assert_eq! (::std::mem::align_of::<THLongTensor>() , 8usize , concat ! (
11390                "Alignment of " , stringify ! ( THLongTensor ) ));
11391    assert_eq! (unsafe {
11392                & ( * ( 0 as * const THLongTensor ) ) . size as * const _ as
11393                usize } , 0usize , concat ! (
11394                "Alignment of field: " , stringify ! ( THLongTensor ) , "::" ,
11395                stringify ! ( size ) ));
11396    assert_eq! (unsafe {
11397                & ( * ( 0 as * const THLongTensor ) ) . stride as * const _ as
11398                usize } , 8usize , concat ! (
11399                "Alignment of field: " , stringify ! ( THLongTensor ) , "::" ,
11400                stringify ! ( stride ) ));
11401    assert_eq! (unsafe {
11402                & ( * ( 0 as * const THLongTensor ) ) . nDimension as * const
11403                _ as usize } , 16usize , concat ! (
11404                "Alignment of field: " , stringify ! ( THLongTensor ) , "::" ,
11405                stringify ! ( nDimension ) ));
11406    assert_eq! (unsafe {
11407                & ( * ( 0 as * const THLongTensor ) ) . storage as * const _
11408                as usize } , 24usize , concat ! (
11409                "Alignment of field: " , stringify ! ( THLongTensor ) , "::" ,
11410                stringify ! ( storage ) ));
11411    assert_eq! (unsafe {
11412                & ( * ( 0 as * const THLongTensor ) ) . storageOffset as *
11413                const _ as usize } , 32usize , concat ! (
11414                "Alignment of field: " , stringify ! ( THLongTensor ) , "::" ,
11415                stringify ! ( storageOffset ) ));
11416    assert_eq! (unsafe {
11417                & ( * ( 0 as * const THLongTensor ) ) . refcount as * const _
11418                as usize } , 40usize , concat ! (
11419                "Alignment of field: " , stringify ! ( THLongTensor ) , "::" ,
11420                stringify ! ( refcount ) ));
11421    assert_eq! (unsafe {
11422                & ( * ( 0 as * const THLongTensor ) ) . flag as * const _ as
11423                usize } , 44usize , concat ! (
11424                "Alignment of field: " , stringify ! ( THLongTensor ) , "::" ,
11425                stringify ! ( flag ) ));
11426}
11427impl Clone for THLongTensor {
11428    fn clone(&self) -> Self { *self }
11429}
11430extern "C" {
11431    pub fn THLongTensor_storage(self_: *const THLongTensor)
11432     -> *mut THLongStorage;
11433}
11434extern "C" {
11435    pub fn THLongTensor_storageOffset(self_: *const THLongTensor) -> isize;
11436}
11437extern "C" {
11438    pub fn THLongTensor_nDimension(self_: *const THLongTensor)
11439     -> ::std::os::raw::c_int;
11440}
11441extern "C" {
11442    pub fn THLongTensor_size(self_: *const THLongTensor,
11443                             dim: ::std::os::raw::c_int)
11444     -> ::std::os::raw::c_long;
11445}
11446extern "C" {
11447    pub fn THLongTensor_stride(self_: *const THLongTensor,
11448                               dim: ::std::os::raw::c_int)
11449     -> ::std::os::raw::c_long;
11450}
11451extern "C" {
11452    pub fn THLongTensor_newSizeOf(self_: *mut THLongTensor)
11453     -> *mut THLongStorage;
11454}
11455extern "C" {
11456    pub fn THLongTensor_newStrideOf(self_: *mut THLongTensor)
11457     -> *mut THLongStorage;
11458}
11459extern "C" {
11460    pub fn THLongTensor_data(self_: *const THLongTensor)
11461     -> *mut ::std::os::raw::c_long;
11462}
11463extern "C" {
11464    pub fn THLongTensor_setFlag(self_: *mut THLongTensor,
11465                                flag: ::std::os::raw::c_char);
11466}
11467extern "C" {
11468    pub fn THLongTensor_clearFlag(self_: *mut THLongTensor,
11469                                  flag: ::std::os::raw::c_char);
11470}
11471extern "C" {
11472    pub fn THLongTensor_new() -> *mut THLongTensor;
11473}
11474extern "C" {
11475    pub fn THLongTensor_newWithTensor(tensor: *mut THLongTensor)
11476     -> *mut THLongTensor;
11477}
11478extern "C" {
11479    pub fn THLongTensor_newWithStorage(storage_: *mut THLongStorage,
11480                                       storageOffset_: isize,
11481                                       size_: *mut THLongStorage,
11482                                       stride_: *mut THLongStorage)
11483     -> *mut THLongTensor;
11484}
11485extern "C" {
11486    pub fn THLongTensor_newWithStorage1d(storage_: *mut THLongStorage,
11487                                         storageOffset_: isize,
11488                                         size0_: ::std::os::raw::c_long,
11489                                         stride0_: ::std::os::raw::c_long)
11490     -> *mut THLongTensor;
11491}
11492extern "C" {
11493    pub fn THLongTensor_newWithStorage2d(storage_: *mut THLongStorage,
11494                                         storageOffset_: isize,
11495                                         size0_: ::std::os::raw::c_long,
11496                                         stride0_: ::std::os::raw::c_long,
11497                                         size1_: ::std::os::raw::c_long,
11498                                         stride1_: ::std::os::raw::c_long)
11499     -> *mut THLongTensor;
11500}
11501extern "C" {
11502    pub fn THLongTensor_newWithStorage3d(storage_: *mut THLongStorage,
11503                                         storageOffset_: isize,
11504                                         size0_: ::std::os::raw::c_long,
11505                                         stride0_: ::std::os::raw::c_long,
11506                                         size1_: ::std::os::raw::c_long,
11507                                         stride1_: ::std::os::raw::c_long,
11508                                         size2_: ::std::os::raw::c_long,
11509                                         stride2_: ::std::os::raw::c_long)
11510     -> *mut THLongTensor;
11511}
11512extern "C" {
11513    pub fn THLongTensor_newWithStorage4d(storage_: *mut THLongStorage,
11514                                         storageOffset_: isize,
11515                                         size0_: ::std::os::raw::c_long,
11516                                         stride0_: ::std::os::raw::c_long,
11517                                         size1_: ::std::os::raw::c_long,
11518                                         stride1_: ::std::os::raw::c_long,
11519                                         size2_: ::std::os::raw::c_long,
11520                                         stride2_: ::std::os::raw::c_long,
11521                                         size3_: ::std::os::raw::c_long,
11522                                         stride3_: ::std::os::raw::c_long)
11523     -> *mut THLongTensor;
11524}
11525extern "C" {
11526    pub fn THLongTensor_newWithSize(size_: *mut THLongStorage,
11527                                    stride_: *mut THLongStorage)
11528     -> *mut THLongTensor;
11529}
11530extern "C" {
11531    pub fn THLongTensor_newWithSize1d(size0_: ::std::os::raw::c_long)
11532     -> *mut THLongTensor;
11533}
11534extern "C" {
11535    pub fn THLongTensor_newWithSize2d(size0_: ::std::os::raw::c_long,
11536                                      size1_: ::std::os::raw::c_long)
11537     -> *mut THLongTensor;
11538}
11539extern "C" {
11540    pub fn THLongTensor_newWithSize3d(size0_: ::std::os::raw::c_long,
11541                                      size1_: ::std::os::raw::c_long,
11542                                      size2_: ::std::os::raw::c_long)
11543     -> *mut THLongTensor;
11544}
11545extern "C" {
11546    pub fn THLongTensor_newWithSize4d(size0_: ::std::os::raw::c_long,
11547                                      size1_: ::std::os::raw::c_long,
11548                                      size2_: ::std::os::raw::c_long,
11549                                      size3_: ::std::os::raw::c_long)
11550     -> *mut THLongTensor;
11551}
11552extern "C" {
11553    pub fn THLongTensor_newClone(self_: *mut THLongTensor)
11554     -> *mut THLongTensor;
11555}
11556extern "C" {
11557    pub fn THLongTensor_newContiguous(tensor: *mut THLongTensor)
11558     -> *mut THLongTensor;
11559}
11560extern "C" {
11561    pub fn THLongTensor_newSelect(tensor: *mut THLongTensor,
11562                                  dimension_: ::std::os::raw::c_int,
11563                                  sliceIndex_: ::std::os::raw::c_long)
11564     -> *mut THLongTensor;
11565}
11566extern "C" {
11567    pub fn THLongTensor_newNarrow(tensor: *mut THLongTensor,
11568                                  dimension_: ::std::os::raw::c_int,
11569                                  firstIndex_: ::std::os::raw::c_long,
11570                                  size_: ::std::os::raw::c_long)
11571     -> *mut THLongTensor;
11572}
11573extern "C" {
11574    pub fn THLongTensor_newTranspose(tensor: *mut THLongTensor,
11575                                     dimension1_: ::std::os::raw::c_int,
11576                                     dimension2_: ::std::os::raw::c_int)
11577     -> *mut THLongTensor;
11578}
11579extern "C" {
11580    pub fn THLongTensor_newUnfold(tensor: *mut THLongTensor,
11581                                  dimension_: ::std::os::raw::c_int,
11582                                  size_: ::std::os::raw::c_long,
11583                                  step_: ::std::os::raw::c_long)
11584     -> *mut THLongTensor;
11585}
11586extern "C" {
11587    pub fn THLongTensor_newView(tensor: *mut THLongTensor,
11588                                size: *mut THLongStorage)
11589     -> *mut THLongTensor;
11590}
11591extern "C" {
11592    pub fn THLongTensor_newExpand(tensor: *mut THLongTensor,
11593                                  size: *mut THLongStorage)
11594     -> *mut THLongTensor;
11595}
11596extern "C" {
11597    pub fn THLongTensor_expand(r: *mut THLongTensor,
11598                               tensor: *mut THLongTensor,
11599                               size: *mut THLongStorage);
11600}
11601extern "C" {
11602    pub fn THLongTensor_expandNd(rets: *mut *mut THLongTensor,
11603                                 ops: *mut *mut THLongTensor,
11604                                 count: ::std::os::raw::c_int);
11605}
11606extern "C" {
11607    pub fn THLongTensor_resize(tensor: *mut THLongTensor,
11608                               size: *mut THLongStorage,
11609                               stride: *mut THLongStorage);
11610}
11611extern "C" {
11612    pub fn THLongTensor_resizeAs(tensor: *mut THLongTensor,
11613                                 src: *mut THLongTensor);
11614}
11615extern "C" {
11616    pub fn THLongTensor_resizeNd(tensor: *mut THLongTensor,
11617                                 nDimension: ::std::os::raw::c_int,
11618                                 size: *mut ::std::os::raw::c_long,
11619                                 stride: *mut ::std::os::raw::c_long);
11620}
11621extern "C" {
11622    pub fn THLongTensor_resize1d(tensor: *mut THLongTensor,
11623                                 size0_: ::std::os::raw::c_long);
11624}
11625extern "C" {
11626    pub fn THLongTensor_resize2d(tensor: *mut THLongTensor,
11627                                 size0_: ::std::os::raw::c_long,
11628                                 size1_: ::std::os::raw::c_long);
11629}
11630extern "C" {
11631    pub fn THLongTensor_resize3d(tensor: *mut THLongTensor,
11632                                 size0_: ::std::os::raw::c_long,
11633                                 size1_: ::std::os::raw::c_long,
11634                                 size2_: ::std::os::raw::c_long);
11635}
11636extern "C" {
11637    pub fn THLongTensor_resize4d(tensor: *mut THLongTensor,
11638                                 size0_: ::std::os::raw::c_long,
11639                                 size1_: ::std::os::raw::c_long,
11640                                 size2_: ::std::os::raw::c_long,
11641                                 size3_: ::std::os::raw::c_long);
11642}
11643extern "C" {
11644    pub fn THLongTensor_resize5d(tensor: *mut THLongTensor,
11645                                 size0_: ::std::os::raw::c_long,
11646                                 size1_: ::std::os::raw::c_long,
11647                                 size2_: ::std::os::raw::c_long,
11648                                 size3_: ::std::os::raw::c_long,
11649                                 size4_: ::std::os::raw::c_long);
11650}
11651extern "C" {
11652    pub fn THLongTensor_set(self_: *mut THLongTensor, src: *mut THLongTensor);
11653}
11654extern "C" {
11655    pub fn THLongTensor_setStorage(self_: *mut THLongTensor,
11656                                   storage_: *mut THLongStorage,
11657                                   storageOffset_: isize,
11658                                   size_: *mut THLongStorage,
11659                                   stride_: *mut THLongStorage);
11660}
11661extern "C" {
11662    pub fn THLongTensor_setStorageNd(self_: *mut THLongTensor,
11663                                     storage_: *mut THLongStorage,
11664                                     storageOffset_: isize,
11665                                     nDimension: ::std::os::raw::c_int,
11666                                     size: *mut ::std::os::raw::c_long,
11667                                     stride: *mut ::std::os::raw::c_long);
11668}
11669extern "C" {
11670    pub fn THLongTensor_setStorage1d(self_: *mut THLongTensor,
11671                                     storage_: *mut THLongStorage,
11672                                     storageOffset_: isize,
11673                                     size0_: ::std::os::raw::c_long,
11674                                     stride0_: ::std::os::raw::c_long);
11675}
11676extern "C" {
11677    pub fn THLongTensor_setStorage2d(self_: *mut THLongTensor,
11678                                     storage_: *mut THLongStorage,
11679                                     storageOffset_: isize,
11680                                     size0_: ::std::os::raw::c_long,
11681                                     stride0_: ::std::os::raw::c_long,
11682                                     size1_: ::std::os::raw::c_long,
11683                                     stride1_: ::std::os::raw::c_long);
11684}
11685extern "C" {
11686    pub fn THLongTensor_setStorage3d(self_: *mut THLongTensor,
11687                                     storage_: *mut THLongStorage,
11688                                     storageOffset_: isize,
11689                                     size0_: ::std::os::raw::c_long,
11690                                     stride0_: ::std::os::raw::c_long,
11691                                     size1_: ::std::os::raw::c_long,
11692                                     stride1_: ::std::os::raw::c_long,
11693                                     size2_: ::std::os::raw::c_long,
11694                                     stride2_: ::std::os::raw::c_long);
11695}
11696extern "C" {
11697    pub fn THLongTensor_setStorage4d(self_: *mut THLongTensor,
11698                                     storage_: *mut THLongStorage,
11699                                     storageOffset_: isize,
11700                                     size0_: ::std::os::raw::c_long,
11701                                     stride0_: ::std::os::raw::c_long,
11702                                     size1_: ::std::os::raw::c_long,
11703                                     stride1_: ::std::os::raw::c_long,
11704                                     size2_: ::std::os::raw::c_long,
11705                                     stride2_: ::std::os::raw::c_long,
11706                                     size3_: ::std::os::raw::c_long,
11707                                     stride3_: ::std::os::raw::c_long);
11708}
11709extern "C" {
11710    pub fn THLongTensor_narrow(self_: *mut THLongTensor,
11711                               src: *mut THLongTensor,
11712                               dimension_: ::std::os::raw::c_int,
11713                               firstIndex_: ::std::os::raw::c_long,
11714                               size_: ::std::os::raw::c_long);
11715}
11716extern "C" {
11717    pub fn THLongTensor_select(self_: *mut THLongTensor,
11718                               src: *mut THLongTensor,
11719                               dimension_: ::std::os::raw::c_int,
11720                               sliceIndex_: ::std::os::raw::c_long);
11721}
11722extern "C" {
11723    pub fn THLongTensor_transpose(self_: *mut THLongTensor,
11724                                  src: *mut THLongTensor,
11725                                  dimension1_: ::std::os::raw::c_int,
11726                                  dimension2_: ::std::os::raw::c_int);
11727}
11728extern "C" {
11729    pub fn THLongTensor_unfold(self_: *mut THLongTensor,
11730                               src: *mut THLongTensor,
11731                               dimension_: ::std::os::raw::c_int,
11732                               size_: ::std::os::raw::c_long,
11733                               step_: ::std::os::raw::c_long);
11734}
11735extern "C" {
11736    pub fn THLongTensor_squeeze(self_: *mut THLongTensor,
11737                                src: *mut THLongTensor);
11738}
11739extern "C" {
11740    pub fn THLongTensor_squeeze1d(self_: *mut THLongTensor,
11741                                  src: *mut THLongTensor,
11742                                  dimension_: ::std::os::raw::c_int);
11743}
11744extern "C" {
11745    pub fn THLongTensor_unsqueeze1d(self_: *mut THLongTensor,
11746                                    src: *mut THLongTensor,
11747                                    dimension_: ::std::os::raw::c_int);
11748}
11749extern "C" {
11750    pub fn THLongTensor_isContiguous(self_: *const THLongTensor)
11751     -> ::std::os::raw::c_int;
11752}
11753extern "C" {
11754    pub fn THLongTensor_isSameSizeAs(self_: *const THLongTensor,
11755                                     src: *const THLongTensor)
11756     -> ::std::os::raw::c_int;
11757}
11758extern "C" {
11759    pub fn THLongTensor_isSetTo(self_: *const THLongTensor,
11760                                src: *const THLongTensor)
11761     -> ::std::os::raw::c_int;
11762}
11763extern "C" {
11764    pub fn THLongTensor_isSize(self_: *const THLongTensor,
11765                               dims: *const THLongStorage)
11766     -> ::std::os::raw::c_int;
11767}
11768extern "C" {
11769    pub fn THLongTensor_nElement(self_: *const THLongTensor) -> isize;
11770}
11771extern "C" {
11772    pub fn THLongTensor_retain(self_: *mut THLongTensor);
11773}
11774extern "C" {
11775    pub fn THLongTensor_free(self_: *mut THLongTensor);
11776}
11777extern "C" {
11778    pub fn THLongTensor_freeCopyTo(self_: *mut THLongTensor,
11779                                   dst: *mut THLongTensor);
11780}
11781extern "C" {
11782    pub fn THLongTensor_set1d(tensor: *mut THLongTensor,
11783                              x0: ::std::os::raw::c_long,
11784                              value: ::std::os::raw::c_long);
11785}
11786extern "C" {
11787    pub fn THLongTensor_set2d(tensor: *mut THLongTensor,
11788                              x0: ::std::os::raw::c_long,
11789                              x1: ::std::os::raw::c_long,
11790                              value: ::std::os::raw::c_long);
11791}
11792extern "C" {
11793    pub fn THLongTensor_set3d(tensor: *mut THLongTensor,
11794                              x0: ::std::os::raw::c_long,
11795                              x1: ::std::os::raw::c_long,
11796                              x2: ::std::os::raw::c_long,
11797                              value: ::std::os::raw::c_long);
11798}
11799extern "C" {
11800    pub fn THLongTensor_set4d(tensor: *mut THLongTensor,
11801                              x0: ::std::os::raw::c_long,
11802                              x1: ::std::os::raw::c_long,
11803                              x2: ::std::os::raw::c_long,
11804                              x3: ::std::os::raw::c_long,
11805                              value: ::std::os::raw::c_long);
11806}
11807extern "C" {
11808    pub fn THLongTensor_get1d(tensor: *const THLongTensor,
11809                              x0: ::std::os::raw::c_long)
11810     -> ::std::os::raw::c_long;
11811}
11812extern "C" {
11813    pub fn THLongTensor_get2d(tensor: *const THLongTensor,
11814                              x0: ::std::os::raw::c_long,
11815                              x1: ::std::os::raw::c_long)
11816     -> ::std::os::raw::c_long;
11817}
11818extern "C" {
11819    pub fn THLongTensor_get3d(tensor: *const THLongTensor,
11820                              x0: ::std::os::raw::c_long,
11821                              x1: ::std::os::raw::c_long,
11822                              x2: ::std::os::raw::c_long)
11823     -> ::std::os::raw::c_long;
11824}
11825extern "C" {
11826    pub fn THLongTensor_get4d(tensor: *const THLongTensor,
11827                              x0: ::std::os::raw::c_long,
11828                              x1: ::std::os::raw::c_long,
11829                              x2: ::std::os::raw::c_long,
11830                              x3: ::std::os::raw::c_long)
11831     -> ::std::os::raw::c_long;
11832}
11833extern "C" {
11834    pub fn THLongTensor_desc(tensor: *const THLongTensor) -> THDescBuff;
11835}
11836extern "C" {
11837    pub fn THLongTensor_sizeDesc(tensor: *const THLongTensor) -> THDescBuff;
11838}
11839#[repr(C)]
11840#[derive(Copy)]
11841pub struct THHalfTensor {
11842    pub size: *mut ::std::os::raw::c_long,
11843    pub stride: *mut ::std::os::raw::c_long,
11844    pub nDimension: ::std::os::raw::c_int,
11845    pub storage: *mut THHalfStorage,
11846    pub storageOffset: isize,
11847    pub refcount: ::std::os::raw::c_int,
11848    pub flag: ::std::os::raw::c_char,
11849}
11850#[test]
11851fn bindgen_test_layout_THHalfTensor() {
11852    assert_eq!(::std::mem::size_of::<THHalfTensor>() , 48usize , concat ! (
11853               "Size of: " , stringify ! ( THHalfTensor ) ));
11854    assert_eq! (::std::mem::align_of::<THHalfTensor>() , 8usize , concat ! (
11855                "Alignment of " , stringify ! ( THHalfTensor ) ));
11856    assert_eq! (unsafe {
11857                & ( * ( 0 as * const THHalfTensor ) ) . size as * const _ as
11858                usize } , 0usize , concat ! (
11859                "Alignment of field: " , stringify ! ( THHalfTensor ) , "::" ,
11860                stringify ! ( size ) ));
11861    assert_eq! (unsafe {
11862                & ( * ( 0 as * const THHalfTensor ) ) . stride as * const _ as
11863                usize } , 8usize , concat ! (
11864                "Alignment of field: " , stringify ! ( THHalfTensor ) , "::" ,
11865                stringify ! ( stride ) ));
11866    assert_eq! (unsafe {
11867                & ( * ( 0 as * const THHalfTensor ) ) . nDimension as * const
11868                _ as usize } , 16usize , concat ! (
11869                "Alignment of field: " , stringify ! ( THHalfTensor ) , "::" ,
11870                stringify ! ( nDimension ) ));
11871    assert_eq! (unsafe {
11872                & ( * ( 0 as * const THHalfTensor ) ) . storage as * const _
11873                as usize } , 24usize , concat ! (
11874                "Alignment of field: " , stringify ! ( THHalfTensor ) , "::" ,
11875                stringify ! ( storage ) ));
11876    assert_eq! (unsafe {
11877                & ( * ( 0 as * const THHalfTensor ) ) . storageOffset as *
11878                const _ as usize } , 32usize , concat ! (
11879                "Alignment of field: " , stringify ! ( THHalfTensor ) , "::" ,
11880                stringify ! ( storageOffset ) ));
11881    assert_eq! (unsafe {
11882                & ( * ( 0 as * const THHalfTensor ) ) . refcount as * const _
11883                as usize } , 40usize , concat ! (
11884                "Alignment of field: " , stringify ! ( THHalfTensor ) , "::" ,
11885                stringify ! ( refcount ) ));
11886    assert_eq! (unsafe {
11887                & ( * ( 0 as * const THHalfTensor ) ) . flag as * const _ as
11888                usize } , 44usize , concat ! (
11889                "Alignment of field: " , stringify ! ( THHalfTensor ) , "::" ,
11890                stringify ! ( flag ) ));
11891}
11892impl Clone for THHalfTensor {
11893    fn clone(&self) -> Self { *self }
11894}
11895extern "C" {
11896    pub fn THHalfTensor_storage(self_: *const THHalfTensor)
11897     -> *mut THHalfStorage;
11898}
11899extern "C" {
11900    pub fn THHalfTensor_storageOffset(self_: *const THHalfTensor) -> isize;
11901}
11902extern "C" {
11903    pub fn THHalfTensor_nDimension(self_: *const THHalfTensor)
11904     -> ::std::os::raw::c_int;
11905}
11906extern "C" {
11907    pub fn THHalfTensor_size(self_: *const THHalfTensor,
11908                             dim: ::std::os::raw::c_int)
11909     -> ::std::os::raw::c_long;
11910}
11911extern "C" {
11912    pub fn THHalfTensor_stride(self_: *const THHalfTensor,
11913                               dim: ::std::os::raw::c_int)
11914     -> ::std::os::raw::c_long;
11915}
11916extern "C" {
11917    pub fn THHalfTensor_newSizeOf(self_: *mut THHalfTensor)
11918     -> *mut THLongStorage;
11919}
11920extern "C" {
11921    pub fn THHalfTensor_newStrideOf(self_: *mut THHalfTensor)
11922     -> *mut THLongStorage;
11923}
11924extern "C" {
11925    pub fn THHalfTensor_data(self_: *const THHalfTensor) -> *mut THHalf;
11926}
11927extern "C" {
11928    pub fn THHalfTensor_setFlag(self_: *mut THHalfTensor,
11929                                flag: ::std::os::raw::c_char);
11930}
11931extern "C" {
11932    pub fn THHalfTensor_clearFlag(self_: *mut THHalfTensor,
11933                                  flag: ::std::os::raw::c_char);
11934}
11935extern "C" {
11936    pub fn THHalfTensor_new() -> *mut THHalfTensor;
11937}
11938extern "C" {
11939    pub fn THHalfTensor_newWithTensor(tensor: *mut THHalfTensor)
11940     -> *mut THHalfTensor;
11941}
11942extern "C" {
11943    pub fn THHalfTensor_newWithStorage(storage_: *mut THHalfStorage,
11944                                       storageOffset_: isize,
11945                                       size_: *mut THLongStorage,
11946                                       stride_: *mut THLongStorage)
11947     -> *mut THHalfTensor;
11948}
11949extern "C" {
11950    pub fn THHalfTensor_newWithStorage1d(storage_: *mut THHalfStorage,
11951                                         storageOffset_: isize,
11952                                         size0_: ::std::os::raw::c_long,
11953                                         stride0_: ::std::os::raw::c_long)
11954     -> *mut THHalfTensor;
11955}
11956extern "C" {
11957    pub fn THHalfTensor_newWithStorage2d(storage_: *mut THHalfStorage,
11958                                         storageOffset_: isize,
11959                                         size0_: ::std::os::raw::c_long,
11960                                         stride0_: ::std::os::raw::c_long,
11961                                         size1_: ::std::os::raw::c_long,
11962                                         stride1_: ::std::os::raw::c_long)
11963     -> *mut THHalfTensor;
11964}
11965extern "C" {
11966    pub fn THHalfTensor_newWithStorage3d(storage_: *mut THHalfStorage,
11967                                         storageOffset_: isize,
11968                                         size0_: ::std::os::raw::c_long,
11969                                         stride0_: ::std::os::raw::c_long,
11970                                         size1_: ::std::os::raw::c_long,
11971                                         stride1_: ::std::os::raw::c_long,
11972                                         size2_: ::std::os::raw::c_long,
11973                                         stride2_: ::std::os::raw::c_long)
11974     -> *mut THHalfTensor;
11975}
11976extern "C" {
11977    pub fn THHalfTensor_newWithStorage4d(storage_: *mut THHalfStorage,
11978                                         storageOffset_: isize,
11979                                         size0_: ::std::os::raw::c_long,
11980                                         stride0_: ::std::os::raw::c_long,
11981                                         size1_: ::std::os::raw::c_long,
11982                                         stride1_: ::std::os::raw::c_long,
11983                                         size2_: ::std::os::raw::c_long,
11984                                         stride2_: ::std::os::raw::c_long,
11985                                         size3_: ::std::os::raw::c_long,
11986                                         stride3_: ::std::os::raw::c_long)
11987     -> *mut THHalfTensor;
11988}
11989extern "C" {
11990    pub fn THHalfTensor_newWithSize(size_: *mut THLongStorage,
11991                                    stride_: *mut THLongStorage)
11992     -> *mut THHalfTensor;
11993}
11994extern "C" {
11995    pub fn THHalfTensor_newWithSize1d(size0_: ::std::os::raw::c_long)
11996     -> *mut THHalfTensor;
11997}
11998extern "C" {
11999    pub fn THHalfTensor_newWithSize2d(size0_: ::std::os::raw::c_long,
12000                                      size1_: ::std::os::raw::c_long)
12001     -> *mut THHalfTensor;
12002}
12003extern "C" {
12004    pub fn THHalfTensor_newWithSize3d(size0_: ::std::os::raw::c_long,
12005                                      size1_: ::std::os::raw::c_long,
12006                                      size2_: ::std::os::raw::c_long)
12007     -> *mut THHalfTensor;
12008}
12009extern "C" {
12010    pub fn THHalfTensor_newWithSize4d(size0_: ::std::os::raw::c_long,
12011                                      size1_: ::std::os::raw::c_long,
12012                                      size2_: ::std::os::raw::c_long,
12013                                      size3_: ::std::os::raw::c_long)
12014     -> *mut THHalfTensor;
12015}
12016extern "C" {
12017    pub fn THHalfTensor_newClone(self_: *mut THHalfTensor)
12018     -> *mut THHalfTensor;
12019}
12020extern "C" {
12021    pub fn THHalfTensor_newContiguous(tensor: *mut THHalfTensor)
12022     -> *mut THHalfTensor;
12023}
12024extern "C" {
12025    pub fn THHalfTensor_newSelect(tensor: *mut THHalfTensor,
12026                                  dimension_: ::std::os::raw::c_int,
12027                                  sliceIndex_: ::std::os::raw::c_long)
12028     -> *mut THHalfTensor;
12029}
12030extern "C" {
12031    pub fn THHalfTensor_newNarrow(tensor: *mut THHalfTensor,
12032                                  dimension_: ::std::os::raw::c_int,
12033                                  firstIndex_: ::std::os::raw::c_long,
12034                                  size_: ::std::os::raw::c_long)
12035     -> *mut THHalfTensor;
12036}
12037extern "C" {
12038    pub fn THHalfTensor_newTranspose(tensor: *mut THHalfTensor,
12039                                     dimension1_: ::std::os::raw::c_int,
12040                                     dimension2_: ::std::os::raw::c_int)
12041     -> *mut THHalfTensor;
12042}
12043extern "C" {
12044    pub fn THHalfTensor_newUnfold(tensor: *mut THHalfTensor,
12045                                  dimension_: ::std::os::raw::c_int,
12046                                  size_: ::std::os::raw::c_long,
12047                                  step_: ::std::os::raw::c_long)
12048     -> *mut THHalfTensor;
12049}
12050extern "C" {
12051    pub fn THHalfTensor_newView(tensor: *mut THHalfTensor,
12052                                size: *mut THLongStorage)
12053     -> *mut THHalfTensor;
12054}
12055extern "C" {
12056    pub fn THHalfTensor_newExpand(tensor: *mut THHalfTensor,
12057                                  size: *mut THLongStorage)
12058     -> *mut THHalfTensor;
12059}
12060extern "C" {
12061    pub fn THHalfTensor_expand(r: *mut THHalfTensor,
12062                               tensor: *mut THHalfTensor,
12063                               size: *mut THLongStorage);
12064}
12065extern "C" {
12066    pub fn THHalfTensor_expandNd(rets: *mut *mut THHalfTensor,
12067                                 ops: *mut *mut THHalfTensor,
12068                                 count: ::std::os::raw::c_int);
12069}
12070extern "C" {
12071    pub fn THHalfTensor_resize(tensor: *mut THHalfTensor,
12072                               size: *mut THLongStorage,
12073                               stride: *mut THLongStorage);
12074}
12075extern "C" {
12076    pub fn THHalfTensor_resizeAs(tensor: *mut THHalfTensor,
12077                                 src: *mut THHalfTensor);
12078}
12079extern "C" {
12080    pub fn THHalfTensor_resizeNd(tensor: *mut THHalfTensor,
12081                                 nDimension: ::std::os::raw::c_int,
12082                                 size: *mut ::std::os::raw::c_long,
12083                                 stride: *mut ::std::os::raw::c_long);
12084}
12085extern "C" {
12086    pub fn THHalfTensor_resize1d(tensor: *mut THHalfTensor,
12087                                 size0_: ::std::os::raw::c_long);
12088}
12089extern "C" {
12090    pub fn THHalfTensor_resize2d(tensor: *mut THHalfTensor,
12091                                 size0_: ::std::os::raw::c_long,
12092                                 size1_: ::std::os::raw::c_long);
12093}
12094extern "C" {
12095    pub fn THHalfTensor_resize3d(tensor: *mut THHalfTensor,
12096                                 size0_: ::std::os::raw::c_long,
12097                                 size1_: ::std::os::raw::c_long,
12098                                 size2_: ::std::os::raw::c_long);
12099}
12100extern "C" {
12101    pub fn THHalfTensor_resize4d(tensor: *mut THHalfTensor,
12102                                 size0_: ::std::os::raw::c_long,
12103                                 size1_: ::std::os::raw::c_long,
12104                                 size2_: ::std::os::raw::c_long,
12105                                 size3_: ::std::os::raw::c_long);
12106}
12107extern "C" {
12108    pub fn THHalfTensor_resize5d(tensor: *mut THHalfTensor,
12109                                 size0_: ::std::os::raw::c_long,
12110                                 size1_: ::std::os::raw::c_long,
12111                                 size2_: ::std::os::raw::c_long,
12112                                 size3_: ::std::os::raw::c_long,
12113                                 size4_: ::std::os::raw::c_long);
12114}
12115extern "C" {
12116    pub fn THHalfTensor_set(self_: *mut THHalfTensor, src: *mut THHalfTensor);
12117}
12118extern "C" {
12119    pub fn THHalfTensor_setStorage(self_: *mut THHalfTensor,
12120                                   storage_: *mut THHalfStorage,
12121                                   storageOffset_: isize,
12122                                   size_: *mut THLongStorage,
12123                                   stride_: *mut THLongStorage);
12124}
12125extern "C" {
12126    pub fn THHalfTensor_setStorageNd(self_: *mut THHalfTensor,
12127                                     storage_: *mut THHalfStorage,
12128                                     storageOffset_: isize,
12129                                     nDimension: ::std::os::raw::c_int,
12130                                     size: *mut ::std::os::raw::c_long,
12131                                     stride: *mut ::std::os::raw::c_long);
12132}
12133extern "C" {
12134    pub fn THHalfTensor_setStorage1d(self_: *mut THHalfTensor,
12135                                     storage_: *mut THHalfStorage,
12136                                     storageOffset_: isize,
12137                                     size0_: ::std::os::raw::c_long,
12138                                     stride0_: ::std::os::raw::c_long);
12139}
12140extern "C" {
12141    pub fn THHalfTensor_setStorage2d(self_: *mut THHalfTensor,
12142                                     storage_: *mut THHalfStorage,
12143                                     storageOffset_: isize,
12144                                     size0_: ::std::os::raw::c_long,
12145                                     stride0_: ::std::os::raw::c_long,
12146                                     size1_: ::std::os::raw::c_long,
12147                                     stride1_: ::std::os::raw::c_long);
12148}
12149extern "C" {
12150    pub fn THHalfTensor_setStorage3d(self_: *mut THHalfTensor,
12151                                     storage_: *mut THHalfStorage,
12152                                     storageOffset_: isize,
12153                                     size0_: ::std::os::raw::c_long,
12154                                     stride0_: ::std::os::raw::c_long,
12155                                     size1_: ::std::os::raw::c_long,
12156                                     stride1_: ::std::os::raw::c_long,
12157                                     size2_: ::std::os::raw::c_long,
12158                                     stride2_: ::std::os::raw::c_long);
12159}
12160extern "C" {
12161    pub fn THHalfTensor_setStorage4d(self_: *mut THHalfTensor,
12162                                     storage_: *mut THHalfStorage,
12163                                     storageOffset_: isize,
12164                                     size0_: ::std::os::raw::c_long,
12165                                     stride0_: ::std::os::raw::c_long,
12166                                     size1_: ::std::os::raw::c_long,
12167                                     stride1_: ::std::os::raw::c_long,
12168                                     size2_: ::std::os::raw::c_long,
12169                                     stride2_: ::std::os::raw::c_long,
12170                                     size3_: ::std::os::raw::c_long,
12171                                     stride3_: ::std::os::raw::c_long);
12172}
12173extern "C" {
12174    pub fn THHalfTensor_narrow(self_: *mut THHalfTensor,
12175                               src: *mut THHalfTensor,
12176                               dimension_: ::std::os::raw::c_int,
12177                               firstIndex_: ::std::os::raw::c_long,
12178                               size_: ::std::os::raw::c_long);
12179}
12180extern "C" {
12181    pub fn THHalfTensor_select(self_: *mut THHalfTensor,
12182                               src: *mut THHalfTensor,
12183                               dimension_: ::std::os::raw::c_int,
12184                               sliceIndex_: ::std::os::raw::c_long);
12185}
12186extern "C" {
12187    pub fn THHalfTensor_transpose(self_: *mut THHalfTensor,
12188                                  src: *mut THHalfTensor,
12189                                  dimension1_: ::std::os::raw::c_int,
12190                                  dimension2_: ::std::os::raw::c_int);
12191}
12192extern "C" {
12193    pub fn THHalfTensor_unfold(self_: *mut THHalfTensor,
12194                               src: *mut THHalfTensor,
12195                               dimension_: ::std::os::raw::c_int,
12196                               size_: ::std::os::raw::c_long,
12197                               step_: ::std::os::raw::c_long);
12198}
12199extern "C" {
12200    pub fn THHalfTensor_squeeze(self_: *mut THHalfTensor,
12201                                src: *mut THHalfTensor);
12202}
12203extern "C" {
12204    pub fn THHalfTensor_squeeze1d(self_: *mut THHalfTensor,
12205                                  src: *mut THHalfTensor,
12206                                  dimension_: ::std::os::raw::c_int);
12207}
12208extern "C" {
12209    pub fn THHalfTensor_unsqueeze1d(self_: *mut THHalfTensor,
12210                                    src: *mut THHalfTensor,
12211                                    dimension_: ::std::os::raw::c_int);
12212}
12213extern "C" {
12214    pub fn THHalfTensor_isContiguous(self_: *const THHalfTensor)
12215     -> ::std::os::raw::c_int;
12216}
12217extern "C" {
12218    pub fn THHalfTensor_isSameSizeAs(self_: *const THHalfTensor,
12219                                     src: *const THHalfTensor)
12220     -> ::std::os::raw::c_int;
12221}
12222extern "C" {
12223    pub fn THHalfTensor_isSetTo(self_: *const THHalfTensor,
12224                                src: *const THHalfTensor)
12225     -> ::std::os::raw::c_int;
12226}
12227extern "C" {
12228    pub fn THHalfTensor_isSize(self_: *const THHalfTensor,
12229                               dims: *const THLongStorage)
12230     -> ::std::os::raw::c_int;
12231}
12232extern "C" {
12233    pub fn THHalfTensor_nElement(self_: *const THHalfTensor) -> isize;
12234}
12235extern "C" {
12236    pub fn THHalfTensor_retain(self_: *mut THHalfTensor);
12237}
12238extern "C" {
12239    pub fn THHalfTensor_free(self_: *mut THHalfTensor);
12240}
12241extern "C" {
12242    pub fn THHalfTensor_freeCopyTo(self_: *mut THHalfTensor,
12243                                   dst: *mut THHalfTensor);
12244}
12245extern "C" {
12246    pub fn THHalfTensor_set1d(tensor: *mut THHalfTensor,
12247                              x0: ::std::os::raw::c_long, value: THHalf);
12248}
12249extern "C" {
12250    pub fn THHalfTensor_set2d(tensor: *mut THHalfTensor,
12251                              x0: ::std::os::raw::c_long,
12252                              x1: ::std::os::raw::c_long, value: THHalf);
12253}
12254extern "C" {
12255    pub fn THHalfTensor_set3d(tensor: *mut THHalfTensor,
12256                              x0: ::std::os::raw::c_long,
12257                              x1: ::std::os::raw::c_long,
12258                              x2: ::std::os::raw::c_long, value: THHalf);
12259}
12260extern "C" {
12261    pub fn THHalfTensor_set4d(tensor: *mut THHalfTensor,
12262                              x0: ::std::os::raw::c_long,
12263                              x1: ::std::os::raw::c_long,
12264                              x2: ::std::os::raw::c_long,
12265                              x3: ::std::os::raw::c_long, value: THHalf);
12266}
12267extern "C" {
12268    pub fn THHalfTensor_get1d(tensor: *const THHalfTensor,
12269                              x0: ::std::os::raw::c_long) -> THHalf;
12270}
12271extern "C" {
12272    pub fn THHalfTensor_get2d(tensor: *const THHalfTensor,
12273                              x0: ::std::os::raw::c_long,
12274                              x1: ::std::os::raw::c_long) -> THHalf;
12275}
12276extern "C" {
12277    pub fn THHalfTensor_get3d(tensor: *const THHalfTensor,
12278                              x0: ::std::os::raw::c_long,
12279                              x1: ::std::os::raw::c_long,
12280                              x2: ::std::os::raw::c_long) -> THHalf;
12281}
12282extern "C" {
12283    pub fn THHalfTensor_get4d(tensor: *const THHalfTensor,
12284                              x0: ::std::os::raw::c_long,
12285                              x1: ::std::os::raw::c_long,
12286                              x2: ::std::os::raw::c_long,
12287                              x3: ::std::os::raw::c_long) -> THHalf;
12288}
12289extern "C" {
12290    pub fn THHalfTensor_desc(tensor: *const THHalfTensor) -> THDescBuff;
12291}
12292extern "C" {
12293    pub fn THHalfTensor_sizeDesc(tensor: *const THHalfTensor) -> THDescBuff;
12294}
12295extern "C" {
12296    pub fn THFloatTensor_copy(tensor: *mut THFloatTensor,
12297                              src: *mut THFloatTensor);
12298}
12299extern "C" {
12300    pub fn THFloatTensor_copyByte(tensor: *mut THFloatTensor,
12301                                  src: *mut THByteTensor);
12302}
12303extern "C" {
12304    pub fn THFloatTensor_copyChar(tensor: *mut THFloatTensor,
12305                                  src: *mut THCharTensor);
12306}
12307extern "C" {
12308    pub fn THFloatTensor_copyShort(tensor: *mut THFloatTensor,
12309                                   src: *mut THShortTensor);
12310}
12311extern "C" {
12312    pub fn THFloatTensor_copyInt(tensor: *mut THFloatTensor,
12313                                 src: *mut THIntTensor);
12314}
12315extern "C" {
12316    pub fn THFloatTensor_copyLong(tensor: *mut THFloatTensor,
12317                                  src: *mut THLongTensor);
12318}
12319extern "C" {
12320    pub fn THFloatTensor_copyFloat(tensor: *mut THFloatTensor,
12321                                   src: *mut THFloatTensor);
12322}
12323extern "C" {
12324    pub fn THFloatTensor_copyDouble(tensor: *mut THFloatTensor,
12325                                    src: *mut THDoubleTensor);
12326}
12327extern "C" {
12328    pub fn THFloatTensor_copyHalf(tensor: *mut THFloatTensor,
12329                                  src: *mut THHalfTensor);
12330}
12331extern "C" {
12332    pub fn THDoubleTensor_copy(tensor: *mut THDoubleTensor,
12333                               src: *mut THDoubleTensor);
12334}
12335extern "C" {
12336    pub fn THDoubleTensor_copyByte(tensor: *mut THDoubleTensor,
12337                                   src: *mut THByteTensor);
12338}
12339extern "C" {
12340    pub fn THDoubleTensor_copyChar(tensor: *mut THDoubleTensor,
12341                                   src: *mut THCharTensor);
12342}
12343extern "C" {
12344    pub fn THDoubleTensor_copyShort(tensor: *mut THDoubleTensor,
12345                                    src: *mut THShortTensor);
12346}
12347extern "C" {
12348    pub fn THDoubleTensor_copyInt(tensor: *mut THDoubleTensor,
12349                                  src: *mut THIntTensor);
12350}
12351extern "C" {
12352    pub fn THDoubleTensor_copyLong(tensor: *mut THDoubleTensor,
12353                                   src: *mut THLongTensor);
12354}
12355extern "C" {
12356    pub fn THDoubleTensor_copyFloat(tensor: *mut THDoubleTensor,
12357                                    src: *mut THFloatTensor);
12358}
12359extern "C" {
12360    pub fn THDoubleTensor_copyDouble(tensor: *mut THDoubleTensor,
12361                                     src: *mut THDoubleTensor);
12362}
12363extern "C" {
12364    pub fn THDoubleTensor_copyHalf(tensor: *mut THDoubleTensor,
12365                                   src: *mut THHalfTensor);
12366}
12367extern "C" {
12368    pub fn THByteTensor_copy(tensor: *mut THByteTensor,
12369                             src: *mut THByteTensor);
12370}
12371extern "C" {
12372    pub fn THByteTensor_copyByte(tensor: *mut THByteTensor,
12373                                 src: *mut THByteTensor);
12374}
12375extern "C" {
12376    pub fn THByteTensor_copyChar(tensor: *mut THByteTensor,
12377                                 src: *mut THCharTensor);
12378}
12379extern "C" {
12380    pub fn THByteTensor_copyShort(tensor: *mut THByteTensor,
12381                                  src: *mut THShortTensor);
12382}
12383extern "C" {
12384    pub fn THByteTensor_copyInt(tensor: *mut THByteTensor,
12385                                src: *mut THIntTensor);
12386}
12387extern "C" {
12388    pub fn THByteTensor_copyLong(tensor: *mut THByteTensor,
12389                                 src: *mut THLongTensor);
12390}
12391extern "C" {
12392    pub fn THByteTensor_copyFloat(tensor: *mut THByteTensor,
12393                                  src: *mut THFloatTensor);
12394}
12395extern "C" {
12396    pub fn THByteTensor_copyDouble(tensor: *mut THByteTensor,
12397                                   src: *mut THDoubleTensor);
12398}
12399extern "C" {
12400    pub fn THByteTensor_copyHalf(tensor: *mut THByteTensor,
12401                                 src: *mut THHalfTensor);
12402}
12403extern "C" {
12404    pub fn THCharTensor_copy(tensor: *mut THCharTensor,
12405                             src: *mut THCharTensor);
12406}
12407extern "C" {
12408    pub fn THCharTensor_copyByte(tensor: *mut THCharTensor,
12409                                 src: *mut THByteTensor);
12410}
12411extern "C" {
12412    pub fn THCharTensor_copyChar(tensor: *mut THCharTensor,
12413                                 src: *mut THCharTensor);
12414}
12415extern "C" {
12416    pub fn THCharTensor_copyShort(tensor: *mut THCharTensor,
12417                                  src: *mut THShortTensor);
12418}
12419extern "C" {
12420    pub fn THCharTensor_copyInt(tensor: *mut THCharTensor,
12421                                src: *mut THIntTensor);
12422}
12423extern "C" {
12424    pub fn THCharTensor_copyLong(tensor: *mut THCharTensor,
12425                                 src: *mut THLongTensor);
12426}
12427extern "C" {
12428    pub fn THCharTensor_copyFloat(tensor: *mut THCharTensor,
12429                                  src: *mut THFloatTensor);
12430}
12431extern "C" {
12432    pub fn THCharTensor_copyDouble(tensor: *mut THCharTensor,
12433                                   src: *mut THDoubleTensor);
12434}
12435extern "C" {
12436    pub fn THCharTensor_copyHalf(tensor: *mut THCharTensor,
12437                                 src: *mut THHalfTensor);
12438}
12439extern "C" {
12440    pub fn THShortTensor_copy(tensor: *mut THShortTensor,
12441                              src: *mut THShortTensor);
12442}
12443extern "C" {
12444    pub fn THShortTensor_copyByte(tensor: *mut THShortTensor,
12445                                  src: *mut THByteTensor);
12446}
12447extern "C" {
12448    pub fn THShortTensor_copyChar(tensor: *mut THShortTensor,
12449                                  src: *mut THCharTensor);
12450}
12451extern "C" {
12452    pub fn THShortTensor_copyShort(tensor: *mut THShortTensor,
12453                                   src: *mut THShortTensor);
12454}
12455extern "C" {
12456    pub fn THShortTensor_copyInt(tensor: *mut THShortTensor,
12457                                 src: *mut THIntTensor);
12458}
12459extern "C" {
12460    pub fn THShortTensor_copyLong(tensor: *mut THShortTensor,
12461                                  src: *mut THLongTensor);
12462}
12463extern "C" {
12464    pub fn THShortTensor_copyFloat(tensor: *mut THShortTensor,
12465                                   src: *mut THFloatTensor);
12466}
12467extern "C" {
12468    pub fn THShortTensor_copyDouble(tensor: *mut THShortTensor,
12469                                    src: *mut THDoubleTensor);
12470}
12471extern "C" {
12472    pub fn THShortTensor_copyHalf(tensor: *mut THShortTensor,
12473                                  src: *mut THHalfTensor);
12474}
12475extern "C" {
12476    pub fn THIntTensor_copy(tensor: *mut THIntTensor, src: *mut THIntTensor);
12477}
12478extern "C" {
12479    pub fn THIntTensor_copyByte(tensor: *mut THIntTensor,
12480                                src: *mut THByteTensor);
12481}
12482extern "C" {
12483    pub fn THIntTensor_copyChar(tensor: *mut THIntTensor,
12484                                src: *mut THCharTensor);
12485}
12486extern "C" {
12487    pub fn THIntTensor_copyShort(tensor: *mut THIntTensor,
12488                                 src: *mut THShortTensor);
12489}
12490extern "C" {
12491    pub fn THIntTensor_copyInt(tensor: *mut THIntTensor,
12492                               src: *mut THIntTensor);
12493}
12494extern "C" {
12495    pub fn THIntTensor_copyLong(tensor: *mut THIntTensor,
12496                                src: *mut THLongTensor);
12497}
12498extern "C" {
12499    pub fn THIntTensor_copyFloat(tensor: *mut THIntTensor,
12500                                 src: *mut THFloatTensor);
12501}
12502extern "C" {
12503    pub fn THIntTensor_copyDouble(tensor: *mut THIntTensor,
12504                                  src: *mut THDoubleTensor);
12505}
12506extern "C" {
12507    pub fn THIntTensor_copyHalf(tensor: *mut THIntTensor,
12508                                src: *mut THHalfTensor);
12509}
12510extern "C" {
12511    pub fn THLongTensor_copy(tensor: *mut THLongTensor,
12512                             src: *mut THLongTensor);
12513}
12514extern "C" {
12515    pub fn THLongTensor_copyByte(tensor: *mut THLongTensor,
12516                                 src: *mut THByteTensor);
12517}
12518extern "C" {
12519    pub fn THLongTensor_copyChar(tensor: *mut THLongTensor,
12520                                 src: *mut THCharTensor);
12521}
12522extern "C" {
12523    pub fn THLongTensor_copyShort(tensor: *mut THLongTensor,
12524                                  src: *mut THShortTensor);
12525}
12526extern "C" {
12527    pub fn THLongTensor_copyInt(tensor: *mut THLongTensor,
12528                                src: *mut THIntTensor);
12529}
12530extern "C" {
12531    pub fn THLongTensor_copyLong(tensor: *mut THLongTensor,
12532                                 src: *mut THLongTensor);
12533}
12534extern "C" {
12535    pub fn THLongTensor_copyFloat(tensor: *mut THLongTensor,
12536                                  src: *mut THFloatTensor);
12537}
12538extern "C" {
12539    pub fn THLongTensor_copyDouble(tensor: *mut THLongTensor,
12540                                   src: *mut THDoubleTensor);
12541}
12542extern "C" {
12543    pub fn THLongTensor_copyHalf(tensor: *mut THLongTensor,
12544                                 src: *mut THHalfTensor);
12545}
12546extern "C" {
12547    pub fn THHalfTensor_copy(tensor: *mut THHalfTensor,
12548                             src: *mut THHalfTensor);
12549}
12550extern "C" {
12551    pub fn THHalfTensor_copyByte(tensor: *mut THHalfTensor,
12552                                 src: *mut THByteTensor);
12553}
12554extern "C" {
12555    pub fn THHalfTensor_copyChar(tensor: *mut THHalfTensor,
12556                                 src: *mut THCharTensor);
12557}
12558extern "C" {
12559    pub fn THHalfTensor_copyShort(tensor: *mut THHalfTensor,
12560                                  src: *mut THShortTensor);
12561}
12562extern "C" {
12563    pub fn THHalfTensor_copyInt(tensor: *mut THHalfTensor,
12564                                src: *mut THIntTensor);
12565}
12566extern "C" {
12567    pub fn THHalfTensor_copyLong(tensor: *mut THHalfTensor,
12568                                 src: *mut THLongTensor);
12569}
12570extern "C" {
12571    pub fn THHalfTensor_copyFloat(tensor: *mut THHalfTensor,
12572                                  src: *mut THFloatTensor);
12573}
12574extern "C" {
12575    pub fn THHalfTensor_copyDouble(tensor: *mut THHalfTensor,
12576                                   src: *mut THDoubleTensor);
12577}
12578extern "C" {
12579    pub fn THHalfTensor_copyHalf(tensor: *mut THHalfTensor,
12580                                 src: *mut THHalfTensor);
12581}
12582extern "C" {
12583    pub fn THFloatTensor_random(self_: *mut THFloatTensor,
12584                                _generator: *mut THGenerator);
12585}
12586extern "C" {
12587    pub fn THFloatTensor_geometric(self_: *mut THFloatTensor,
12588                                   _generator: *mut THGenerator, p: f64);
12589}
12590extern "C" {
12591    pub fn THFloatTensor_bernoulli(self_: *mut THFloatTensor,
12592                                   _generator: *mut THGenerator, p: f64);
12593}
12594extern "C" {
12595    pub fn THFloatTensor_bernoulli_FloatTensor(self_: *mut THFloatTensor,
12596                                               _generator: *mut THGenerator,
12597                                               p: *mut THFloatTensor);
12598}
12599extern "C" {
12600    pub fn THFloatTensor_bernoulli_DoubleTensor(self_: *mut THFloatTensor,
12601                                                _generator: *mut THGenerator,
12602                                                p: *mut THDoubleTensor);
12603}
12604extern "C" {
12605    pub fn THFloatTensor_uniform(self_: *mut THFloatTensor,
12606                                 _generator: *mut THGenerator, a: f64,
12607                                 b: f64);
12608}
12609extern "C" {
12610    pub fn THFloatTensor_normal(self_: *mut THFloatTensor,
12611                                _generator: *mut THGenerator, mean: f64,
12612                                stdv: f64);
12613}
12614extern "C" {
12615    pub fn THFloatTensor_exponential(self_: *mut THFloatTensor,
12616                                     _generator: *mut THGenerator,
12617                                     lambda: f64);
12618}
12619extern "C" {
12620    pub fn THFloatTensor_cauchy(self_: *mut THFloatTensor,
12621                                _generator: *mut THGenerator, median: f64,
12622                                sigma: f64);
12623}
12624extern "C" {
12625    pub fn THFloatTensor_logNormal(self_: *mut THFloatTensor,
12626                                   _generator: *mut THGenerator, mean: f64,
12627                                   stdv: f64);
12628}
12629extern "C" {
12630    pub fn THFloatTensor_multinomial(self_: *mut THLongTensor,
12631                                     _generator: *mut THGenerator,
12632                                     prob_dist: *mut THFloatTensor,
12633                                     n_sample: ::std::os::raw::c_int,
12634                                     with_replacement: ::std::os::raw::c_int);
12635}
12636extern "C" {
12637    pub fn THFloatTensor_multinomialAliasSetup(prob_dist: *mut THFloatTensor,
12638                                               J: *mut THLongTensor,
12639                                               q: *mut THFloatTensor);
12640}
12641extern "C" {
12642    pub fn THFloatTensor_multinomialAliasDraw(self_: *mut THLongTensor,
12643                                              _generator: *mut THGenerator,
12644                                              J: *mut THLongTensor,
12645                                              q: *mut THFloatTensor);
12646}
12647extern "C" {
12648    pub fn THDoubleTensor_random(self_: *mut THDoubleTensor,
12649                                 _generator: *mut THGenerator);
12650}
12651extern "C" {
12652    pub fn THDoubleTensor_geometric(self_: *mut THDoubleTensor,
12653                                    _generator: *mut THGenerator, p: f64);
12654}
12655extern "C" {
12656    pub fn THDoubleTensor_bernoulli(self_: *mut THDoubleTensor,
12657                                    _generator: *mut THGenerator, p: f64);
12658}
12659extern "C" {
12660    pub fn THDoubleTensor_bernoulli_FloatTensor(self_: *mut THDoubleTensor,
12661                                                _generator: *mut THGenerator,
12662                                                p: *mut THFloatTensor);
12663}
12664extern "C" {
12665    pub fn THDoubleTensor_bernoulli_DoubleTensor(self_: *mut THDoubleTensor,
12666                                                 _generator: *mut THGenerator,
12667                                                 p: *mut THDoubleTensor);
12668}
12669extern "C" {
12670    pub fn THDoubleTensor_uniform(self_: *mut THDoubleTensor,
12671                                  _generator: *mut THGenerator, a: f64,
12672                                  b: f64);
12673}
12674extern "C" {
12675    pub fn THDoubleTensor_normal(self_: *mut THDoubleTensor,
12676                                 _generator: *mut THGenerator, mean: f64,
12677                                 stdv: f64);
12678}
12679extern "C" {
12680    pub fn THDoubleTensor_exponential(self_: *mut THDoubleTensor,
12681                                      _generator: *mut THGenerator,
12682                                      lambda: f64);
12683}
12684extern "C" {
12685    pub fn THDoubleTensor_cauchy(self_: *mut THDoubleTensor,
12686                                 _generator: *mut THGenerator, median: f64,
12687                                 sigma: f64);
12688}
12689extern "C" {
12690    pub fn THDoubleTensor_logNormal(self_: *mut THDoubleTensor,
12691                                    _generator: *mut THGenerator, mean: f64,
12692                                    stdv: f64);
12693}
12694extern "C" {
12695    pub fn THDoubleTensor_multinomial(self_: *mut THLongTensor,
12696                                      _generator: *mut THGenerator,
12697                                      prob_dist: *mut THDoubleTensor,
12698                                      n_sample: ::std::os::raw::c_int,
12699                                      with_replacement:
12700                                          ::std::os::raw::c_int);
12701}
12702extern "C" {
12703    pub fn THDoubleTensor_multinomialAliasSetup(prob_dist:
12704                                                    *mut THDoubleTensor,
12705                                                J: *mut THLongTensor,
12706                                                q: *mut THDoubleTensor);
12707}
12708extern "C" {
12709    pub fn THDoubleTensor_multinomialAliasDraw(self_: *mut THLongTensor,
12710                                               _generator: *mut THGenerator,
12711                                               J: *mut THLongTensor,
12712                                               q: *mut THDoubleTensor);
12713}
12714extern "C" {
12715    pub fn THByteTensor_random(self_: *mut THByteTensor,
12716                               _generator: *mut THGenerator);
12717}
12718extern "C" {
12719    pub fn THByteTensor_geometric(self_: *mut THByteTensor,
12720                                  _generator: *mut THGenerator, p: f64);
12721}
12722extern "C" {
12723    pub fn THByteTensor_bernoulli(self_: *mut THByteTensor,
12724                                  _generator: *mut THGenerator, p: f64);
12725}
12726extern "C" {
12727    pub fn THByteTensor_bernoulli_FloatTensor(self_: *mut THByteTensor,
12728                                              _generator: *mut THGenerator,
12729                                              p: *mut THFloatTensor);
12730}
12731extern "C" {
12732    pub fn THByteTensor_bernoulli_DoubleTensor(self_: *mut THByteTensor,
12733                                               _generator: *mut THGenerator,
12734                                               p: *mut THDoubleTensor);
12735}
12736extern "C" {
12737    pub fn THByteTensor_getRNGState(_generator: *mut THGenerator,
12738                                    self_: *mut THByteTensor);
12739}
12740extern "C" {
12741    pub fn THByteTensor_setRNGState(_generator: *mut THGenerator,
12742                                    self_: *mut THByteTensor);
12743}
12744extern "C" {
12745    pub fn THCharTensor_random(self_: *mut THCharTensor,
12746                               _generator: *mut THGenerator);
12747}
12748extern "C" {
12749    pub fn THCharTensor_geometric(self_: *mut THCharTensor,
12750                                  _generator: *mut THGenerator, p: f64);
12751}
12752extern "C" {
12753    pub fn THCharTensor_bernoulli(self_: *mut THCharTensor,
12754                                  _generator: *mut THGenerator, p: f64);
12755}
12756extern "C" {
12757    pub fn THCharTensor_bernoulli_FloatTensor(self_: *mut THCharTensor,
12758                                              _generator: *mut THGenerator,
12759                                              p: *mut THFloatTensor);
12760}
12761extern "C" {
12762    pub fn THCharTensor_bernoulli_DoubleTensor(self_: *mut THCharTensor,
12763                                               _generator: *mut THGenerator,
12764                                               p: *mut THDoubleTensor);
12765}
12766extern "C" {
12767    pub fn THShortTensor_random(self_: *mut THShortTensor,
12768                                _generator: *mut THGenerator);
12769}
12770extern "C" {
12771    pub fn THShortTensor_geometric(self_: *mut THShortTensor,
12772                                   _generator: *mut THGenerator, p: f64);
12773}
12774extern "C" {
12775    pub fn THShortTensor_bernoulli(self_: *mut THShortTensor,
12776                                   _generator: *mut THGenerator, p: f64);
12777}
12778extern "C" {
12779    pub fn THShortTensor_bernoulli_FloatTensor(self_: *mut THShortTensor,
12780                                               _generator: *mut THGenerator,
12781                                               p: *mut THFloatTensor);
12782}
12783extern "C" {
12784    pub fn THShortTensor_bernoulli_DoubleTensor(self_: *mut THShortTensor,
12785                                                _generator: *mut THGenerator,
12786                                                p: *mut THDoubleTensor);
12787}
12788extern "C" {
12789    pub fn THIntTensor_random(self_: *mut THIntTensor,
12790                              _generator: *mut THGenerator);
12791}
12792extern "C" {
12793    pub fn THIntTensor_geometric(self_: *mut THIntTensor,
12794                                 _generator: *mut THGenerator, p: f64);
12795}
12796extern "C" {
12797    pub fn THIntTensor_bernoulli(self_: *mut THIntTensor,
12798                                 _generator: *mut THGenerator, p: f64);
12799}
12800extern "C" {
12801    pub fn THIntTensor_bernoulli_FloatTensor(self_: *mut THIntTensor,
12802                                             _generator: *mut THGenerator,
12803                                             p: *mut THFloatTensor);
12804}
12805extern "C" {
12806    pub fn THIntTensor_bernoulli_DoubleTensor(self_: *mut THIntTensor,
12807                                              _generator: *mut THGenerator,
12808                                              p: *mut THDoubleTensor);
12809}
12810extern "C" {
12811    pub fn THLongTensor_random(self_: *mut THLongTensor,
12812                               _generator: *mut THGenerator);
12813}
12814extern "C" {
12815    pub fn THLongTensor_geometric(self_: *mut THLongTensor,
12816                                  _generator: *mut THGenerator, p: f64);
12817}
12818extern "C" {
12819    pub fn THLongTensor_bernoulli(self_: *mut THLongTensor,
12820                                  _generator: *mut THGenerator, p: f64);
12821}
12822extern "C" {
12823    pub fn THLongTensor_bernoulli_FloatTensor(self_: *mut THLongTensor,
12824                                              _generator: *mut THGenerator,
12825                                              p: *mut THFloatTensor);
12826}
12827extern "C" {
12828    pub fn THLongTensor_bernoulli_DoubleTensor(self_: *mut THLongTensor,
12829                                               _generator: *mut THGenerator,
12830                                               p: *mut THDoubleTensor);
12831}
12832extern "C" {
12833    pub fn THFloatTensor_fill(r_: *mut THFloatTensor, value: f32);
12834}
12835extern "C" {
12836    pub fn THFloatTensor_zero(r_: *mut THFloatTensor);
12837}
12838extern "C" {
12839    pub fn THFloatTensor_maskedFill(tensor: *mut THFloatTensor,
12840                                    mask: *mut THByteTensor, value: f32);
12841}
12842extern "C" {
12843    pub fn THFloatTensor_maskedCopy(tensor: *mut THFloatTensor,
12844                                    mask: *mut THByteTensor,
12845                                    src: *mut THFloatTensor);
12846}
12847extern "C" {
12848    pub fn THFloatTensor_maskedSelect(tensor: *mut THFloatTensor,
12849                                      src: *mut THFloatTensor,
12850                                      mask: *mut THByteTensor);
12851}
12852extern "C" {
12853    pub fn THFloatTensor_nonzero(subscript: *mut THLongTensor,
12854                                 tensor: *mut THFloatTensor);
12855}
12856extern "C" {
12857    pub fn THFloatTensor_indexSelect(tensor: *mut THFloatTensor,
12858                                     src: *mut THFloatTensor,
12859                                     dim: ::std::os::raw::c_int,
12860                                     index: *mut THLongTensor);
12861}
12862extern "C" {
12863    pub fn THFloatTensor_indexCopy(tensor: *mut THFloatTensor,
12864                                   dim: ::std::os::raw::c_int,
12865                                   index: *mut THLongTensor,
12866                                   src: *mut THFloatTensor);
12867}
12868extern "C" {
12869    pub fn THFloatTensor_indexAdd(tensor: *mut THFloatTensor,
12870                                  dim: ::std::os::raw::c_int,
12871                                  index: *mut THLongTensor,
12872                                  src: *mut THFloatTensor);
12873}
12874extern "C" {
12875    pub fn THFloatTensor_indexFill(tensor: *mut THFloatTensor,
12876                                   dim: ::std::os::raw::c_int,
12877                                   index: *mut THLongTensor, val: f32);
12878}
12879extern "C" {
12880    pub fn THFloatTensor_gather(tensor: *mut THFloatTensor,
12881                                src: *mut THFloatTensor,
12882                                dim: ::std::os::raw::c_int,
12883                                index: *mut THLongTensor);
12884}
12885extern "C" {
12886    pub fn THFloatTensor_scatter(tensor: *mut THFloatTensor,
12887                                 dim: ::std::os::raw::c_int,
12888                                 index: *mut THLongTensor,
12889                                 src: *mut THFloatTensor);
12890}
12891extern "C" {
12892    pub fn THFloatTensor_scatterAdd(tensor: *mut THFloatTensor,
12893                                    dim: ::std::os::raw::c_int,
12894                                    index: *mut THLongTensor,
12895                                    src: *mut THFloatTensor);
12896}
12897extern "C" {
12898    pub fn THFloatTensor_scatterFill(tensor: *mut THFloatTensor,
12899                                     dim: ::std::os::raw::c_int,
12900                                     index: *mut THLongTensor, val: f32);
12901}
12902extern "C" {
12903    pub fn THFloatTensor_dot(t: *mut THFloatTensor, src: *mut THFloatTensor)
12904     -> f64;
12905}
12906extern "C" {
12907    pub fn THFloatTensor_minall(t: *mut THFloatTensor) -> f32;
12908}
12909extern "C" {
12910    pub fn THFloatTensor_maxall(t: *mut THFloatTensor) -> f32;
12911}
12912extern "C" {
12913    pub fn THFloatTensor_medianall(t: *mut THFloatTensor) -> f32;
12914}
12915extern "C" {
12916    pub fn THFloatTensor_sumall(t: *mut THFloatTensor) -> f64;
12917}
12918extern "C" {
12919    pub fn THFloatTensor_prodall(t: *mut THFloatTensor) -> f64;
12920}
12921extern "C" {
12922    pub fn THFloatTensor_neg(self_: *mut THFloatTensor,
12923                             src: *mut THFloatTensor);
12924}
12925extern "C" {
12926    pub fn THFloatTensor_cinv(self_: *mut THFloatTensor,
12927                              src: *mut THFloatTensor);
12928}
12929extern "C" {
12930    pub fn THFloatTensor_add(r_: *mut THFloatTensor, t: *mut THFloatTensor,
12931                             value: f32);
12932}
12933extern "C" {
12934    pub fn THFloatTensor_sub(self_: *mut THFloatTensor,
12935                             src: *mut THFloatTensor, value: f32);
12936}
12937extern "C" {
12938    pub fn THFloatTensor_mul(r_: *mut THFloatTensor, t: *mut THFloatTensor,
12939                             value: f32);
12940}
12941extern "C" {
12942    pub fn THFloatTensor_div(r_: *mut THFloatTensor, t: *mut THFloatTensor,
12943                             value: f32);
12944}
12945extern "C" {
12946    pub fn THFloatTensor_lshift(r_: *mut THFloatTensor, t: *mut THFloatTensor,
12947                                value: f32);
12948}
12949extern "C" {
12950    pub fn THFloatTensor_rshift(r_: *mut THFloatTensor, t: *mut THFloatTensor,
12951                                value: f32);
12952}
12953extern "C" {
12954    pub fn THFloatTensor_fmod(r_: *mut THFloatTensor, t: *mut THFloatTensor,
12955                              value: f32);
12956}
12957extern "C" {
12958    pub fn THFloatTensor_remainder(r_: *mut THFloatTensor,
12959                                   t: *mut THFloatTensor, value: f32);
12960}
12961extern "C" {
12962    pub fn THFloatTensor_clamp(r_: *mut THFloatTensor, t: *mut THFloatTensor,
12963                               min_value: f32, max_value: f32);
12964}
12965extern "C" {
12966    pub fn THFloatTensor_bitand(r_: *mut THFloatTensor, t: *mut THFloatTensor,
12967                                value: f32);
12968}
12969extern "C" {
12970    pub fn THFloatTensor_bitor(r_: *mut THFloatTensor, t: *mut THFloatTensor,
12971                               value: f32);
12972}
12973extern "C" {
12974    pub fn THFloatTensor_bitxor(r_: *mut THFloatTensor, t: *mut THFloatTensor,
12975                                value: f32);
12976}
12977extern "C" {
12978    pub fn THFloatTensor_cadd(r_: *mut THFloatTensor, t: *mut THFloatTensor,
12979                              value: f32, src: *mut THFloatTensor);
12980}
12981extern "C" {
12982    pub fn THFloatTensor_csub(self_: *mut THFloatTensor,
12983                              src1: *mut THFloatTensor, value: f32,
12984                              src2: *mut THFloatTensor);
12985}
12986extern "C" {
12987    pub fn THFloatTensor_cmul(r_: *mut THFloatTensor, t: *mut THFloatTensor,
12988                              src: *mut THFloatTensor);
12989}
12990extern "C" {
12991    pub fn THFloatTensor_cpow(r_: *mut THFloatTensor, t: *mut THFloatTensor,
12992                              src: *mut THFloatTensor);
12993}
12994extern "C" {
12995    pub fn THFloatTensor_cdiv(r_: *mut THFloatTensor, t: *mut THFloatTensor,
12996                              src: *mut THFloatTensor);
12997}
12998extern "C" {
12999    pub fn THFloatTensor_clshift(r_: *mut THFloatTensor,
13000                                 t: *mut THFloatTensor,
13001                                 src: *mut THFloatTensor);
13002}
13003extern "C" {
13004    pub fn THFloatTensor_crshift(r_: *mut THFloatTensor,
13005                                 t: *mut THFloatTensor,
13006                                 src: *mut THFloatTensor);
13007}
13008extern "C" {
13009    pub fn THFloatTensor_cfmod(r_: *mut THFloatTensor, t: *mut THFloatTensor,
13010                               src: *mut THFloatTensor);
13011}
13012extern "C" {
13013    pub fn THFloatTensor_cremainder(r_: *mut THFloatTensor,
13014                                    t: *mut THFloatTensor,
13015                                    src: *mut THFloatTensor);
13016}
13017extern "C" {
13018    pub fn THFloatTensor_cbitand(r_: *mut THFloatTensor,
13019                                 t: *mut THFloatTensor,
13020                                 src: *mut THFloatTensor);
13021}
13022extern "C" {
13023    pub fn THFloatTensor_cbitor(r_: *mut THFloatTensor, t: *mut THFloatTensor,
13024                                src: *mut THFloatTensor);
13025}
13026extern "C" {
13027    pub fn THFloatTensor_cbitxor(r_: *mut THFloatTensor,
13028                                 t: *mut THFloatTensor,
13029                                 src: *mut THFloatTensor);
13030}
13031extern "C" {
13032    pub fn THFloatTensor_addcmul(r_: *mut THFloatTensor,
13033                                 t: *mut THFloatTensor, value: f32,
13034                                 src1: *mut THFloatTensor,
13035                                 src2: *mut THFloatTensor);
13036}
13037extern "C" {
13038    pub fn THFloatTensor_addcdiv(r_: *mut THFloatTensor,
13039                                 t: *mut THFloatTensor, value: f32,
13040                                 src1: *mut THFloatTensor,
13041                                 src2: *mut THFloatTensor);
13042}
13043extern "C" {
13044    pub fn THFloatTensor_addmv(r_: *mut THFloatTensor, beta: f32,
13045                               t: *mut THFloatTensor, alpha: f32,
13046                               mat: *mut THFloatTensor,
13047                               vec: *mut THFloatTensor);
13048}
13049extern "C" {
13050    pub fn THFloatTensor_addmm(r_: *mut THFloatTensor, beta: f32,
13051                               t: *mut THFloatTensor, alpha: f32,
13052                               mat1: *mut THFloatTensor,
13053                               mat2: *mut THFloatTensor);
13054}
13055extern "C" {
13056    pub fn THFloatTensor_addr(r_: *mut THFloatTensor, beta: f32,
13057                              t: *mut THFloatTensor, alpha: f32,
13058                              vec1: *mut THFloatTensor,
13059                              vec2: *mut THFloatTensor);
13060}
13061extern "C" {
13062    pub fn THFloatTensor_addbmm(r_: *mut THFloatTensor, beta: f32,
13063                                t: *mut THFloatTensor, alpha: f32,
13064                                batch1: *mut THFloatTensor,
13065                                batch2: *mut THFloatTensor);
13066}
13067extern "C" {
13068    pub fn THFloatTensor_baddbmm(r_: *mut THFloatTensor, beta: f32,
13069                                 t: *mut THFloatTensor, alpha: f32,
13070                                 batch1: *mut THFloatTensor,
13071                                 batch2: *mut THFloatTensor);
13072}
13073extern "C" {
13074    pub fn THFloatTensor_match(r_: *mut THFloatTensor, m1: *mut THFloatTensor,
13075                               m2: *mut THFloatTensor, gain: f32);
13076}
13077extern "C" {
13078    pub fn THFloatTensor_numel(t: *mut THFloatTensor) -> isize;
13079}
13080extern "C" {
13081    pub fn THFloatTensor_max(values_: *mut THFloatTensor,
13082                             indices_: *mut THLongTensor,
13083                             t: *mut THFloatTensor,
13084                             dimension: ::std::os::raw::c_int,
13085                             keepdim: ::std::os::raw::c_int);
13086}
13087extern "C" {
13088    pub fn THFloatTensor_min(values_: *mut THFloatTensor,
13089                             indices_: *mut THLongTensor,
13090                             t: *mut THFloatTensor,
13091                             dimension: ::std::os::raw::c_int,
13092                             keepdim: ::std::os::raw::c_int);
13093}
13094extern "C" {
13095    pub fn THFloatTensor_kthvalue(values_: *mut THFloatTensor,
13096                                  indices_: *mut THLongTensor,
13097                                  t: *mut THFloatTensor,
13098                                  k: ::std::os::raw::c_long,
13099                                  dimension: ::std::os::raw::c_int,
13100                                  keepdim: ::std::os::raw::c_int);
13101}
13102extern "C" {
13103    pub fn THFloatTensor_mode(values_: *mut THFloatTensor,
13104                              indices_: *mut THLongTensor,
13105                              t: *mut THFloatTensor,
13106                              dimension: ::std::os::raw::c_int,
13107                              keepdim: ::std::os::raw::c_int);
13108}
13109extern "C" {
13110    pub fn THFloatTensor_median(values_: *mut THFloatTensor,
13111                                indices_: *mut THLongTensor,
13112                                t: *mut THFloatTensor,
13113                                dimension: ::std::os::raw::c_int,
13114                                keepdim: ::std::os::raw::c_int);
13115}
13116extern "C" {
13117    pub fn THFloatTensor_sum(r_: *mut THFloatTensor, t: *mut THFloatTensor,
13118                             dimension: ::std::os::raw::c_int,
13119                             keepdim: ::std::os::raw::c_int);
13120}
13121extern "C" {
13122    pub fn THFloatTensor_prod(r_: *mut THFloatTensor, t: *mut THFloatTensor,
13123                              dimension: ::std::os::raw::c_int,
13124                              keepdim: ::std::os::raw::c_int);
13125}
13126extern "C" {
13127    pub fn THFloatTensor_cumsum(r_: *mut THFloatTensor, t: *mut THFloatTensor,
13128                                dimension: ::std::os::raw::c_int);
13129}
13130extern "C" {
13131    pub fn THFloatTensor_cumprod(r_: *mut THFloatTensor,
13132                                 t: *mut THFloatTensor,
13133                                 dimension: ::std::os::raw::c_int);
13134}
13135extern "C" {
13136    pub fn THFloatTensor_sign(r_: *mut THFloatTensor, t: *mut THFloatTensor);
13137}
13138extern "C" {
13139    pub fn THFloatTensor_trace(t: *mut THFloatTensor) -> f64;
13140}
13141extern "C" {
13142    pub fn THFloatTensor_cross(r_: *mut THFloatTensor, a: *mut THFloatTensor,
13143                               b: *mut THFloatTensor,
13144                               dimension: ::std::os::raw::c_int);
13145}
13146extern "C" {
13147    pub fn THFloatTensor_cmax(r: *mut THFloatTensor, t: *mut THFloatTensor,
13148                              src: *mut THFloatTensor);
13149}
13150extern "C" {
13151    pub fn THFloatTensor_cmin(r: *mut THFloatTensor, t: *mut THFloatTensor,
13152                              src: *mut THFloatTensor);
13153}
13154extern "C" {
13155    pub fn THFloatTensor_cmaxValue(r: *mut THFloatTensor,
13156                                   t: *mut THFloatTensor, value: f32);
13157}
13158extern "C" {
13159    pub fn THFloatTensor_cminValue(r: *mut THFloatTensor,
13160                                   t: *mut THFloatTensor, value: f32);
13161}
13162extern "C" {
13163    pub fn THFloatTensor_zeros(r_: *mut THFloatTensor,
13164                               size: *mut THLongStorage);
13165}
13166extern "C" {
13167    pub fn THFloatTensor_ones(r_: *mut THFloatTensor,
13168                              size: *mut THLongStorage);
13169}
13170extern "C" {
13171    pub fn THFloatTensor_diag(r_: *mut THFloatTensor, t: *mut THFloatTensor,
13172                              k: ::std::os::raw::c_int);
13173}
13174extern "C" {
13175    pub fn THFloatTensor_eye(r_: *mut THFloatTensor,
13176                             n: ::std::os::raw::c_long,
13177                             m: ::std::os::raw::c_long);
13178}
13179extern "C" {
13180    pub fn THFloatTensor_arange(r_: *mut THFloatTensor, xmin: f64, xmax: f64,
13181                                step: f64);
13182}
13183extern "C" {
13184    pub fn THFloatTensor_range(r_: *mut THFloatTensor, xmin: f64, xmax: f64,
13185                               step: f64);
13186}
13187extern "C" {
13188    pub fn THFloatTensor_randperm(r_: *mut THFloatTensor,
13189                                  _generator: *mut THGenerator,
13190                                  n: ::std::os::raw::c_long);
13191}
13192extern "C" {
13193    pub fn THFloatTensor_reshape(r_: *mut THFloatTensor,
13194                                 t: *mut THFloatTensor,
13195                                 size: *mut THLongStorage);
13196}
13197extern "C" {
13198    pub fn THFloatTensor_sort(rt_: *mut THFloatTensor, ri_: *mut THLongTensor,
13199                              t: *mut THFloatTensor,
13200                              dimension: ::std::os::raw::c_int,
13201                              descendingOrder: ::std::os::raw::c_int);
13202}
13203extern "C" {
13204    pub fn THFloatTensor_topk(rt_: *mut THFloatTensor, ri_: *mut THLongTensor,
13205                              t: *mut THFloatTensor,
13206                              k: ::std::os::raw::c_long,
13207                              dim: ::std::os::raw::c_int,
13208                              dir: ::std::os::raw::c_int,
13209                              sorted: ::std::os::raw::c_int);
13210}
13211extern "C" {
13212    pub fn THFloatTensor_tril(r_: *mut THFloatTensor, t: *mut THFloatTensor,
13213                              k: ::std::os::raw::c_long);
13214}
13215extern "C" {
13216    pub fn THFloatTensor_triu(r_: *mut THFloatTensor, t: *mut THFloatTensor,
13217                              k: ::std::os::raw::c_long);
13218}
13219extern "C" {
13220    pub fn THFloatTensor_cat(r_: *mut THFloatTensor, ta: *mut THFloatTensor,
13221                             tb: *mut THFloatTensor,
13222                             dimension: ::std::os::raw::c_int);
13223}
13224extern "C" {
13225    pub fn THFloatTensor_catArray(result: *mut THFloatTensor,
13226                                  inputs: *mut *mut THFloatTensor,
13227                                  numInputs: ::std::os::raw::c_int,
13228                                  dimension: ::std::os::raw::c_int);
13229}
13230extern "C" {
13231    pub fn THFloatTensor_equal(ta: *mut THFloatTensor, tb: *mut THFloatTensor)
13232     -> ::std::os::raw::c_int;
13233}
13234extern "C" {
13235    pub fn THFloatTensor_ltValue(r_: *mut THByteTensor, t: *mut THFloatTensor,
13236                                 value: f32);
13237}
13238extern "C" {
13239    pub fn THFloatTensor_leValue(r_: *mut THByteTensor, t: *mut THFloatTensor,
13240                                 value: f32);
13241}
13242extern "C" {
13243    pub fn THFloatTensor_gtValue(r_: *mut THByteTensor, t: *mut THFloatTensor,
13244                                 value: f32);
13245}
13246extern "C" {
13247    pub fn THFloatTensor_geValue(r_: *mut THByteTensor, t: *mut THFloatTensor,
13248                                 value: f32);
13249}
13250extern "C" {
13251    pub fn THFloatTensor_neValue(r_: *mut THByteTensor, t: *mut THFloatTensor,
13252                                 value: f32);
13253}
13254extern "C" {
13255    pub fn THFloatTensor_eqValue(r_: *mut THByteTensor, t: *mut THFloatTensor,
13256                                 value: f32);
13257}
13258extern "C" {
13259    pub fn THFloatTensor_ltValueT(r_: *mut THFloatTensor,
13260                                  t: *mut THFloatTensor, value: f32);
13261}
13262extern "C" {
13263    pub fn THFloatTensor_leValueT(r_: *mut THFloatTensor,
13264                                  t: *mut THFloatTensor, value: f32);
13265}
13266extern "C" {
13267    pub fn THFloatTensor_gtValueT(r_: *mut THFloatTensor,
13268                                  t: *mut THFloatTensor, value: f32);
13269}
13270extern "C" {
13271    pub fn THFloatTensor_geValueT(r_: *mut THFloatTensor,
13272                                  t: *mut THFloatTensor, value: f32);
13273}
13274extern "C" {
13275    pub fn THFloatTensor_neValueT(r_: *mut THFloatTensor,
13276                                  t: *mut THFloatTensor, value: f32);
13277}
13278extern "C" {
13279    pub fn THFloatTensor_eqValueT(r_: *mut THFloatTensor,
13280                                  t: *mut THFloatTensor, value: f32);
13281}
13282extern "C" {
13283    pub fn THFloatTensor_ltTensor(r_: *mut THByteTensor,
13284                                  ta: *mut THFloatTensor,
13285                                  tb: *mut THFloatTensor);
13286}
13287extern "C" {
13288    pub fn THFloatTensor_leTensor(r_: *mut THByteTensor,
13289                                  ta: *mut THFloatTensor,
13290                                  tb: *mut THFloatTensor);
13291}
13292extern "C" {
13293    pub fn THFloatTensor_gtTensor(r_: *mut THByteTensor,
13294                                  ta: *mut THFloatTensor,
13295                                  tb: *mut THFloatTensor);
13296}
13297extern "C" {
13298    pub fn THFloatTensor_geTensor(r_: *mut THByteTensor,
13299                                  ta: *mut THFloatTensor,
13300                                  tb: *mut THFloatTensor);
13301}
13302extern "C" {
13303    pub fn THFloatTensor_neTensor(r_: *mut THByteTensor,
13304                                  ta: *mut THFloatTensor,
13305                                  tb: *mut THFloatTensor);
13306}
13307extern "C" {
13308    pub fn THFloatTensor_eqTensor(r_: *mut THByteTensor,
13309                                  ta: *mut THFloatTensor,
13310                                  tb: *mut THFloatTensor);
13311}
13312extern "C" {
13313    pub fn THFloatTensor_ltTensorT(r_: *mut THFloatTensor,
13314                                   ta: *mut THFloatTensor,
13315                                   tb: *mut THFloatTensor);
13316}
13317extern "C" {
13318    pub fn THFloatTensor_leTensorT(r_: *mut THFloatTensor,
13319                                   ta: *mut THFloatTensor,
13320                                   tb: *mut THFloatTensor);
13321}
13322extern "C" {
13323    pub fn THFloatTensor_gtTensorT(r_: *mut THFloatTensor,
13324                                   ta: *mut THFloatTensor,
13325                                   tb: *mut THFloatTensor);
13326}
13327extern "C" {
13328    pub fn THFloatTensor_geTensorT(r_: *mut THFloatTensor,
13329                                   ta: *mut THFloatTensor,
13330                                   tb: *mut THFloatTensor);
13331}
13332extern "C" {
13333    pub fn THFloatTensor_neTensorT(r_: *mut THFloatTensor,
13334                                   ta: *mut THFloatTensor,
13335                                   tb: *mut THFloatTensor);
13336}
13337extern "C" {
13338    pub fn THFloatTensor_eqTensorT(r_: *mut THFloatTensor,
13339                                   ta: *mut THFloatTensor,
13340                                   tb: *mut THFloatTensor);
13341}
13342extern "C" {
13343    pub fn THFloatTensor_sigmoid(r_: *mut THFloatTensor,
13344                                 t: *mut THFloatTensor);
13345}
13346extern "C" {
13347    pub fn THFloatTensor_log(r_: *mut THFloatTensor, t: *mut THFloatTensor);
13348}
13349extern "C" {
13350    pub fn THFloatTensor_lgamma(r_: *mut THFloatTensor,
13351                                t: *mut THFloatTensor);
13352}
13353extern "C" {
13354    pub fn THFloatTensor_log1p(r_: *mut THFloatTensor, t: *mut THFloatTensor);
13355}
13356extern "C" {
13357    pub fn THFloatTensor_exp(r_: *mut THFloatTensor, t: *mut THFloatTensor);
13358}
13359extern "C" {
13360    pub fn THFloatTensor_cos(r_: *mut THFloatTensor, t: *mut THFloatTensor);
13361}
13362extern "C" {
13363    pub fn THFloatTensor_acos(r_: *mut THFloatTensor, t: *mut THFloatTensor);
13364}
13365extern "C" {
13366    pub fn THFloatTensor_cosh(r_: *mut THFloatTensor, t: *mut THFloatTensor);
13367}
13368extern "C" {
13369    pub fn THFloatTensor_sin(r_: *mut THFloatTensor, t: *mut THFloatTensor);
13370}
13371extern "C" {
13372    pub fn THFloatTensor_asin(r_: *mut THFloatTensor, t: *mut THFloatTensor);
13373}
13374extern "C" {
13375    pub fn THFloatTensor_sinh(r_: *mut THFloatTensor, t: *mut THFloatTensor);
13376}
13377extern "C" {
13378    pub fn THFloatTensor_tan(r_: *mut THFloatTensor, t: *mut THFloatTensor);
13379}
13380extern "C" {
13381    pub fn THFloatTensor_atan(r_: *mut THFloatTensor, t: *mut THFloatTensor);
13382}
13383extern "C" {
13384    pub fn THFloatTensor_atan2(r_: *mut THFloatTensor, tx: *mut THFloatTensor,
13385                               ty: *mut THFloatTensor);
13386}
13387extern "C" {
13388    pub fn THFloatTensor_tanh(r_: *mut THFloatTensor, t: *mut THFloatTensor);
13389}
13390extern "C" {
13391    pub fn THFloatTensor_pow(r_: *mut THFloatTensor, t: *mut THFloatTensor,
13392                             value: f32);
13393}
13394extern "C" {
13395    pub fn THFloatTensor_tpow(r_: *mut THFloatTensor, value: f32,
13396                              t: *mut THFloatTensor);
13397}
13398extern "C" {
13399    pub fn THFloatTensor_sqrt(r_: *mut THFloatTensor, t: *mut THFloatTensor);
13400}
13401extern "C" {
13402    pub fn THFloatTensor_rsqrt(r_: *mut THFloatTensor, t: *mut THFloatTensor);
13403}
13404extern "C" {
13405    pub fn THFloatTensor_ceil(r_: *mut THFloatTensor, t: *mut THFloatTensor);
13406}
13407extern "C" {
13408    pub fn THFloatTensor_floor(r_: *mut THFloatTensor, t: *mut THFloatTensor);
13409}
13410extern "C" {
13411    pub fn THFloatTensor_round(r_: *mut THFloatTensor, t: *mut THFloatTensor);
13412}
13413extern "C" {
13414    pub fn THFloatTensor_abs(r_: *mut THFloatTensor, t: *mut THFloatTensor);
13415}
13416extern "C" {
13417    pub fn THFloatTensor_trunc(r_: *mut THFloatTensor, t: *mut THFloatTensor);
13418}
13419extern "C" {
13420    pub fn THFloatTensor_frac(r_: *mut THFloatTensor, t: *mut THFloatTensor);
13421}
13422extern "C" {
13423    pub fn THFloatTensor_lerp(r_: *mut THFloatTensor, a: *mut THFloatTensor,
13424                              b: *mut THFloatTensor, weight: f32);
13425}
13426extern "C" {
13427    pub fn THFloatTensor_mean(r_: *mut THFloatTensor, t: *mut THFloatTensor,
13428                              dimension: ::std::os::raw::c_int,
13429                              keepdim: ::std::os::raw::c_int);
13430}
13431extern "C" {
13432    pub fn THFloatTensor_std(r_: *mut THFloatTensor, t: *mut THFloatTensor,
13433                             dimension: ::std::os::raw::c_int,
13434                             biased: ::std::os::raw::c_int,
13435                             keepdim: ::std::os::raw::c_int);
13436}
13437extern "C" {
13438    pub fn THFloatTensor_var(r_: *mut THFloatTensor, t: *mut THFloatTensor,
13439                             dimension: ::std::os::raw::c_int,
13440                             biased: ::std::os::raw::c_int,
13441                             keepdim: ::std::os::raw::c_int);
13442}
13443extern "C" {
13444    pub fn THFloatTensor_norm(r_: *mut THFloatTensor, t: *mut THFloatTensor,
13445                              value: f32, dimension: ::std::os::raw::c_int,
13446                              keepdim: ::std::os::raw::c_int);
13447}
13448extern "C" {
13449    pub fn THFloatTensor_renorm(r_: *mut THFloatTensor, t: *mut THFloatTensor,
13450                                value: f32, dimension: ::std::os::raw::c_int,
13451                                maxnorm: f32);
13452}
13453extern "C" {
13454    pub fn THFloatTensor_dist(a: *mut THFloatTensor, b: *mut THFloatTensor,
13455                              value: f32) -> f64;
13456}
13457extern "C" {
13458    pub fn THFloatTensor_histc(hist: *mut THFloatTensor,
13459                               tensor: *mut THFloatTensor,
13460                               nbins: ::std::os::raw::c_long, minvalue: f32,
13461                               maxvalue: f32);
13462}
13463extern "C" {
13464    pub fn THFloatTensor_bhistc(hist: *mut THFloatTensor,
13465                                tensor: *mut THFloatTensor,
13466                                nbins: ::std::os::raw::c_long, minvalue: f32,
13467                                maxvalue: f32);
13468}
13469extern "C" {
13470    pub fn THFloatTensor_meanall(self_: *mut THFloatTensor) -> f64;
13471}
13472extern "C" {
13473    pub fn THFloatTensor_varall(self_: *mut THFloatTensor,
13474                                biased: ::std::os::raw::c_int) -> f64;
13475}
13476extern "C" {
13477    pub fn THFloatTensor_stdall(self_: *mut THFloatTensor,
13478                                biased: ::std::os::raw::c_int) -> f64;
13479}
13480extern "C" {
13481    pub fn THFloatTensor_normall(t: *mut THFloatTensor, value: f32) -> f64;
13482}
13483extern "C" {
13484    pub fn THFloatTensor_linspace(r_: *mut THFloatTensor, a: f32, b: f32,
13485                                  n: ::std::os::raw::c_long);
13486}
13487extern "C" {
13488    pub fn THFloatTensor_logspace(r_: *mut THFloatTensor, a: f32, b: f32,
13489                                  n: ::std::os::raw::c_long);
13490}
13491extern "C" {
13492    pub fn THFloatTensor_rand(r_: *mut THFloatTensor,
13493                              _generator: *mut THGenerator,
13494                              size: *mut THLongStorage);
13495}
13496extern "C" {
13497    pub fn THFloatTensor_randn(r_: *mut THFloatTensor,
13498                               _generator: *mut THGenerator,
13499                               size: *mut THLongStorage);
13500}
13501extern "C" {
13502    pub fn THDoubleTensor_fill(r_: *mut THDoubleTensor, value: f64);
13503}
13504extern "C" {
13505    pub fn THDoubleTensor_zero(r_: *mut THDoubleTensor);
13506}
13507extern "C" {
13508    pub fn THDoubleTensor_maskedFill(tensor: *mut THDoubleTensor,
13509                                     mask: *mut THByteTensor, value: f64);
13510}
13511extern "C" {
13512    pub fn THDoubleTensor_maskedCopy(tensor: *mut THDoubleTensor,
13513                                     mask: *mut THByteTensor,
13514                                     src: *mut THDoubleTensor);
13515}
13516extern "C" {
13517    pub fn THDoubleTensor_maskedSelect(tensor: *mut THDoubleTensor,
13518                                       src: *mut THDoubleTensor,
13519                                       mask: *mut THByteTensor);
13520}
13521extern "C" {
13522    pub fn THDoubleTensor_nonzero(subscript: *mut THLongTensor,
13523                                  tensor: *mut THDoubleTensor);
13524}
13525extern "C" {
13526    pub fn THDoubleTensor_indexSelect(tensor: *mut THDoubleTensor,
13527                                      src: *mut THDoubleTensor,
13528                                      dim: ::std::os::raw::c_int,
13529                                      index: *mut THLongTensor);
13530}
13531extern "C" {
13532    pub fn THDoubleTensor_indexCopy(tensor: *mut THDoubleTensor,
13533                                    dim: ::std::os::raw::c_int,
13534                                    index: *mut THLongTensor,
13535                                    src: *mut THDoubleTensor);
13536}
13537extern "C" {
13538    pub fn THDoubleTensor_indexAdd(tensor: *mut THDoubleTensor,
13539                                   dim: ::std::os::raw::c_int,
13540                                   index: *mut THLongTensor,
13541                                   src: *mut THDoubleTensor);
13542}
13543extern "C" {
13544    pub fn THDoubleTensor_indexFill(tensor: *mut THDoubleTensor,
13545                                    dim: ::std::os::raw::c_int,
13546                                    index: *mut THLongTensor, val: f64);
13547}
13548extern "C" {
13549    pub fn THDoubleTensor_gather(tensor: *mut THDoubleTensor,
13550                                 src: *mut THDoubleTensor,
13551                                 dim: ::std::os::raw::c_int,
13552                                 index: *mut THLongTensor);
13553}
13554extern "C" {
13555    pub fn THDoubleTensor_scatter(tensor: *mut THDoubleTensor,
13556                                  dim: ::std::os::raw::c_int,
13557                                  index: *mut THLongTensor,
13558                                  src: *mut THDoubleTensor);
13559}
13560extern "C" {
13561    pub fn THDoubleTensor_scatterAdd(tensor: *mut THDoubleTensor,
13562                                     dim: ::std::os::raw::c_int,
13563                                     index: *mut THLongTensor,
13564                                     src: *mut THDoubleTensor);
13565}
13566extern "C" {
13567    pub fn THDoubleTensor_scatterFill(tensor: *mut THDoubleTensor,
13568                                      dim: ::std::os::raw::c_int,
13569                                      index: *mut THLongTensor, val: f64);
13570}
13571extern "C" {
13572    pub fn THDoubleTensor_dot(t: *mut THDoubleTensor,
13573                              src: *mut THDoubleTensor) -> f64;
13574}
13575extern "C" {
13576    pub fn THDoubleTensor_minall(t: *mut THDoubleTensor) -> f64;
13577}
13578extern "C" {
13579    pub fn THDoubleTensor_maxall(t: *mut THDoubleTensor) -> f64;
13580}
13581extern "C" {
13582    pub fn THDoubleTensor_medianall(t: *mut THDoubleTensor) -> f64;
13583}
13584extern "C" {
13585    pub fn THDoubleTensor_sumall(t: *mut THDoubleTensor) -> f64;
13586}
13587extern "C" {
13588    pub fn THDoubleTensor_prodall(t: *mut THDoubleTensor) -> f64;
13589}
13590extern "C" {
13591    pub fn THDoubleTensor_neg(self_: *mut THDoubleTensor,
13592                              src: *mut THDoubleTensor);
13593}
13594extern "C" {
13595    pub fn THDoubleTensor_cinv(self_: *mut THDoubleTensor,
13596                               src: *mut THDoubleTensor);
13597}
13598extern "C" {
13599    pub fn THDoubleTensor_add(r_: *mut THDoubleTensor, t: *mut THDoubleTensor,
13600                              value: f64);
13601}
13602extern "C" {
13603    pub fn THDoubleTensor_sub(self_: *mut THDoubleTensor,
13604                              src: *mut THDoubleTensor, value: f64);
13605}
13606extern "C" {
13607    pub fn THDoubleTensor_mul(r_: *mut THDoubleTensor, t: *mut THDoubleTensor,
13608                              value: f64);
13609}
13610extern "C" {
13611    pub fn THDoubleTensor_div(r_: *mut THDoubleTensor, t: *mut THDoubleTensor,
13612                              value: f64);
13613}
13614extern "C" {
13615    pub fn THDoubleTensor_lshift(r_: *mut THDoubleTensor,
13616                                 t: *mut THDoubleTensor, value: f64);
13617}
13618extern "C" {
13619    pub fn THDoubleTensor_rshift(r_: *mut THDoubleTensor,
13620                                 t: *mut THDoubleTensor, value: f64);
13621}
13622extern "C" {
13623    pub fn THDoubleTensor_fmod(r_: *mut THDoubleTensor,
13624                               t: *mut THDoubleTensor, value: f64);
13625}
13626extern "C" {
13627    pub fn THDoubleTensor_remainder(r_: *mut THDoubleTensor,
13628                                    t: *mut THDoubleTensor, value: f64);
13629}
13630extern "C" {
13631    pub fn THDoubleTensor_clamp(r_: *mut THDoubleTensor,
13632                                t: *mut THDoubleTensor, min_value: f64,
13633                                max_value: f64);
13634}
13635extern "C" {
13636    pub fn THDoubleTensor_bitand(r_: *mut THDoubleTensor,
13637                                 t: *mut THDoubleTensor, value: f64);
13638}
13639extern "C" {
13640    pub fn THDoubleTensor_bitor(r_: *mut THDoubleTensor,
13641                                t: *mut THDoubleTensor, value: f64);
13642}
13643extern "C" {
13644    pub fn THDoubleTensor_bitxor(r_: *mut THDoubleTensor,
13645                                 t: *mut THDoubleTensor, value: f64);
13646}
13647extern "C" {
13648    pub fn THDoubleTensor_cadd(r_: *mut THDoubleTensor,
13649                               t: *mut THDoubleTensor, value: f64,
13650                               src: *mut THDoubleTensor);
13651}
13652extern "C" {
13653    pub fn THDoubleTensor_csub(self_: *mut THDoubleTensor,
13654                               src1: *mut THDoubleTensor, value: f64,
13655                               src2: *mut THDoubleTensor);
13656}
13657extern "C" {
13658    pub fn THDoubleTensor_cmul(r_: *mut THDoubleTensor,
13659                               t: *mut THDoubleTensor,
13660                               src: *mut THDoubleTensor);
13661}
13662extern "C" {
13663    pub fn THDoubleTensor_cpow(r_: *mut THDoubleTensor,
13664                               t: *mut THDoubleTensor,
13665                               src: *mut THDoubleTensor);
13666}
13667extern "C" {
13668    pub fn THDoubleTensor_cdiv(r_: *mut THDoubleTensor,
13669                               t: *mut THDoubleTensor,
13670                               src: *mut THDoubleTensor);
13671}
13672extern "C" {
13673    pub fn THDoubleTensor_clshift(r_: *mut THDoubleTensor,
13674                                  t: *mut THDoubleTensor,
13675                                  src: *mut THDoubleTensor);
13676}
13677extern "C" {
13678    pub fn THDoubleTensor_crshift(r_: *mut THDoubleTensor,
13679                                  t: *mut THDoubleTensor,
13680                                  src: *mut THDoubleTensor);
13681}
13682extern "C" {
13683    pub fn THDoubleTensor_cfmod(r_: *mut THDoubleTensor,
13684                                t: *mut THDoubleTensor,
13685                                src: *mut THDoubleTensor);
13686}
13687extern "C" {
13688    pub fn THDoubleTensor_cremainder(r_: *mut THDoubleTensor,
13689                                     t: *mut THDoubleTensor,
13690                                     src: *mut THDoubleTensor);
13691}
13692extern "C" {
13693    pub fn THDoubleTensor_cbitand(r_: *mut THDoubleTensor,
13694                                  t: *mut THDoubleTensor,
13695                                  src: *mut THDoubleTensor);
13696}
13697extern "C" {
13698    pub fn THDoubleTensor_cbitor(r_: *mut THDoubleTensor,
13699                                 t: *mut THDoubleTensor,
13700                                 src: *mut THDoubleTensor);
13701}
13702extern "C" {
13703    pub fn THDoubleTensor_cbitxor(r_: *mut THDoubleTensor,
13704                                  t: *mut THDoubleTensor,
13705                                  src: *mut THDoubleTensor);
13706}
13707extern "C" {
13708    pub fn THDoubleTensor_addcmul(r_: *mut THDoubleTensor,
13709                                  t: *mut THDoubleTensor, value: f64,
13710                                  src1: *mut THDoubleTensor,
13711                                  src2: *mut THDoubleTensor);
13712}
13713extern "C" {
13714    pub fn THDoubleTensor_addcdiv(r_: *mut THDoubleTensor,
13715                                  t: *mut THDoubleTensor, value: f64,
13716                                  src1: *mut THDoubleTensor,
13717                                  src2: *mut THDoubleTensor);
13718}
13719extern "C" {
13720    pub fn THDoubleTensor_addmv(r_: *mut THDoubleTensor, beta: f64,
13721                                t: *mut THDoubleTensor, alpha: f64,
13722                                mat: *mut THDoubleTensor,
13723                                vec: *mut THDoubleTensor);
13724}
13725extern "C" {
13726    pub fn THDoubleTensor_addmm(r_: *mut THDoubleTensor, beta: f64,
13727                                t: *mut THDoubleTensor, alpha: f64,
13728                                mat1: *mut THDoubleTensor,
13729                                mat2: *mut THDoubleTensor);
13730}
13731extern "C" {
13732    pub fn THDoubleTensor_addr(r_: *mut THDoubleTensor, beta: f64,
13733                               t: *mut THDoubleTensor, alpha: f64,
13734                               vec1: *mut THDoubleTensor,
13735                               vec2: *mut THDoubleTensor);
13736}
13737extern "C" {
13738    pub fn THDoubleTensor_addbmm(r_: *mut THDoubleTensor, beta: f64,
13739                                 t: *mut THDoubleTensor, alpha: f64,
13740                                 batch1: *mut THDoubleTensor,
13741                                 batch2: *mut THDoubleTensor);
13742}
13743extern "C" {
13744    pub fn THDoubleTensor_baddbmm(r_: *mut THDoubleTensor, beta: f64,
13745                                  t: *mut THDoubleTensor, alpha: f64,
13746                                  batch1: *mut THDoubleTensor,
13747                                  batch2: *mut THDoubleTensor);
13748}
13749extern "C" {
13750    pub fn THDoubleTensor_match(r_: *mut THDoubleTensor,
13751                                m1: *mut THDoubleTensor,
13752                                m2: *mut THDoubleTensor, gain: f64);
13753}
13754extern "C" {
13755    pub fn THDoubleTensor_numel(t: *mut THDoubleTensor) -> isize;
13756}
13757extern "C" {
13758    pub fn THDoubleTensor_max(values_: *mut THDoubleTensor,
13759                              indices_: *mut THLongTensor,
13760                              t: *mut THDoubleTensor,
13761                              dimension: ::std::os::raw::c_int,
13762                              keepdim: ::std::os::raw::c_int);
13763}
13764extern "C" {
13765    pub fn THDoubleTensor_min(values_: *mut THDoubleTensor,
13766                              indices_: *mut THLongTensor,
13767                              t: *mut THDoubleTensor,
13768                              dimension: ::std::os::raw::c_int,
13769                              keepdim: ::std::os::raw::c_int);
13770}
13771extern "C" {
13772    pub fn THDoubleTensor_kthvalue(values_: *mut THDoubleTensor,
13773                                   indices_: *mut THLongTensor,
13774                                   t: *mut THDoubleTensor,
13775                                   k: ::std::os::raw::c_long,
13776                                   dimension: ::std::os::raw::c_int,
13777                                   keepdim: ::std::os::raw::c_int);
13778}
13779extern "C" {
13780    pub fn THDoubleTensor_mode(values_: *mut THDoubleTensor,
13781                               indices_: *mut THLongTensor,
13782                               t: *mut THDoubleTensor,
13783                               dimension: ::std::os::raw::c_int,
13784                               keepdim: ::std::os::raw::c_int);
13785}
13786extern "C" {
13787    pub fn THDoubleTensor_median(values_: *mut THDoubleTensor,
13788                                 indices_: *mut THLongTensor,
13789                                 t: *mut THDoubleTensor,
13790                                 dimension: ::std::os::raw::c_int,
13791                                 keepdim: ::std::os::raw::c_int);
13792}
13793extern "C" {
13794    pub fn THDoubleTensor_sum(r_: *mut THDoubleTensor, t: *mut THDoubleTensor,
13795                              dimension: ::std::os::raw::c_int,
13796                              keepdim: ::std::os::raw::c_int);
13797}
13798extern "C" {
13799    pub fn THDoubleTensor_prod(r_: *mut THDoubleTensor,
13800                               t: *mut THDoubleTensor,
13801                               dimension: ::std::os::raw::c_int,
13802                               keepdim: ::std::os::raw::c_int);
13803}
13804extern "C" {
13805    pub fn THDoubleTensor_cumsum(r_: *mut THDoubleTensor,
13806                                 t: *mut THDoubleTensor,
13807                                 dimension: ::std::os::raw::c_int);
13808}
13809extern "C" {
13810    pub fn THDoubleTensor_cumprod(r_: *mut THDoubleTensor,
13811                                  t: *mut THDoubleTensor,
13812                                  dimension: ::std::os::raw::c_int);
13813}
13814extern "C" {
13815    pub fn THDoubleTensor_sign(r_: *mut THDoubleTensor,
13816                               t: *mut THDoubleTensor);
13817}
13818extern "C" {
13819    pub fn THDoubleTensor_trace(t: *mut THDoubleTensor) -> f64;
13820}
13821extern "C" {
13822    pub fn THDoubleTensor_cross(r_: *mut THDoubleTensor,
13823                                a: *mut THDoubleTensor,
13824                                b: *mut THDoubleTensor,
13825                                dimension: ::std::os::raw::c_int);
13826}
13827extern "C" {
13828    pub fn THDoubleTensor_cmax(r: *mut THDoubleTensor, t: *mut THDoubleTensor,
13829                               src: *mut THDoubleTensor);
13830}
13831extern "C" {
13832    pub fn THDoubleTensor_cmin(r: *mut THDoubleTensor, t: *mut THDoubleTensor,
13833                               src: *mut THDoubleTensor);
13834}
13835extern "C" {
13836    pub fn THDoubleTensor_cmaxValue(r: *mut THDoubleTensor,
13837                                    t: *mut THDoubleTensor, value: f64);
13838}
13839extern "C" {
13840    pub fn THDoubleTensor_cminValue(r: *mut THDoubleTensor,
13841                                    t: *mut THDoubleTensor, value: f64);
13842}
13843extern "C" {
13844    pub fn THDoubleTensor_zeros(r_: *mut THDoubleTensor,
13845                                size: *mut THLongStorage);
13846}
13847extern "C" {
13848    pub fn THDoubleTensor_ones(r_: *mut THDoubleTensor,
13849                               size: *mut THLongStorage);
13850}
13851extern "C" {
13852    pub fn THDoubleTensor_diag(r_: *mut THDoubleTensor,
13853                               t: *mut THDoubleTensor,
13854                               k: ::std::os::raw::c_int);
13855}
13856extern "C" {
13857    pub fn THDoubleTensor_eye(r_: *mut THDoubleTensor,
13858                              n: ::std::os::raw::c_long,
13859                              m: ::std::os::raw::c_long);
13860}
13861extern "C" {
13862    pub fn THDoubleTensor_arange(r_: *mut THDoubleTensor, xmin: f64,
13863                                 xmax: f64, step: f64);
13864}
13865extern "C" {
13866    pub fn THDoubleTensor_range(r_: *mut THDoubleTensor, xmin: f64, xmax: f64,
13867                                step: f64);
13868}
13869extern "C" {
13870    pub fn THDoubleTensor_randperm(r_: *mut THDoubleTensor,
13871                                   _generator: *mut THGenerator,
13872                                   n: ::std::os::raw::c_long);
13873}
13874extern "C" {
13875    pub fn THDoubleTensor_reshape(r_: *mut THDoubleTensor,
13876                                  t: *mut THDoubleTensor,
13877                                  size: *mut THLongStorage);
13878}
13879extern "C" {
13880    pub fn THDoubleTensor_sort(rt_: *mut THDoubleTensor,
13881                               ri_: *mut THLongTensor, t: *mut THDoubleTensor,
13882                               dimension: ::std::os::raw::c_int,
13883                               descendingOrder: ::std::os::raw::c_int);
13884}
13885extern "C" {
13886    pub fn THDoubleTensor_topk(rt_: *mut THDoubleTensor,
13887                               ri_: *mut THLongTensor, t: *mut THDoubleTensor,
13888                               k: ::std::os::raw::c_long,
13889                               dim: ::std::os::raw::c_int,
13890                               dir: ::std::os::raw::c_int,
13891                               sorted: ::std::os::raw::c_int);
13892}
13893extern "C" {
13894    pub fn THDoubleTensor_tril(r_: *mut THDoubleTensor,
13895                               t: *mut THDoubleTensor,
13896                               k: ::std::os::raw::c_long);
13897}
13898extern "C" {
13899    pub fn THDoubleTensor_triu(r_: *mut THDoubleTensor,
13900                               t: *mut THDoubleTensor,
13901                               k: ::std::os::raw::c_long);
13902}
13903extern "C" {
13904    pub fn THDoubleTensor_cat(r_: *mut THDoubleTensor,
13905                              ta: *mut THDoubleTensor,
13906                              tb: *mut THDoubleTensor,
13907                              dimension: ::std::os::raw::c_int);
13908}
13909extern "C" {
13910    pub fn THDoubleTensor_catArray(result: *mut THDoubleTensor,
13911                                   inputs: *mut *mut THDoubleTensor,
13912                                   numInputs: ::std::os::raw::c_int,
13913                                   dimension: ::std::os::raw::c_int);
13914}
13915extern "C" {
13916    pub fn THDoubleTensor_equal(ta: *mut THDoubleTensor,
13917                                tb: *mut THDoubleTensor)
13918     -> ::std::os::raw::c_int;
13919}
13920extern "C" {
13921    pub fn THDoubleTensor_ltValue(r_: *mut THByteTensor,
13922                                  t: *mut THDoubleTensor, value: f64);
13923}
13924extern "C" {
13925    pub fn THDoubleTensor_leValue(r_: *mut THByteTensor,
13926                                  t: *mut THDoubleTensor, value: f64);
13927}
13928extern "C" {
13929    pub fn THDoubleTensor_gtValue(r_: *mut THByteTensor,
13930                                  t: *mut THDoubleTensor, value: f64);
13931}
13932extern "C" {
13933    pub fn THDoubleTensor_geValue(r_: *mut THByteTensor,
13934                                  t: *mut THDoubleTensor, value: f64);
13935}
13936extern "C" {
13937    pub fn THDoubleTensor_neValue(r_: *mut THByteTensor,
13938                                  t: *mut THDoubleTensor, value: f64);
13939}
13940extern "C" {
13941    pub fn THDoubleTensor_eqValue(r_: *mut THByteTensor,
13942                                  t: *mut THDoubleTensor, value: f64);
13943}
13944extern "C" {
13945    pub fn THDoubleTensor_ltValueT(r_: *mut THDoubleTensor,
13946                                   t: *mut THDoubleTensor, value: f64);
13947}
13948extern "C" {
13949    pub fn THDoubleTensor_leValueT(r_: *mut THDoubleTensor,
13950                                   t: *mut THDoubleTensor, value: f64);
13951}
13952extern "C" {
13953    pub fn THDoubleTensor_gtValueT(r_: *mut THDoubleTensor,
13954                                   t: *mut THDoubleTensor, value: f64);
13955}
13956extern "C" {
13957    pub fn THDoubleTensor_geValueT(r_: *mut THDoubleTensor,
13958                                   t: *mut THDoubleTensor, value: f64);
13959}
13960extern "C" {
13961    pub fn THDoubleTensor_neValueT(r_: *mut THDoubleTensor,
13962                                   t: *mut THDoubleTensor, value: f64);
13963}
13964extern "C" {
13965    pub fn THDoubleTensor_eqValueT(r_: *mut THDoubleTensor,
13966                                   t: *mut THDoubleTensor, value: f64);
13967}
13968extern "C" {
13969    pub fn THDoubleTensor_ltTensor(r_: *mut THByteTensor,
13970                                   ta: *mut THDoubleTensor,
13971                                   tb: *mut THDoubleTensor);
13972}
13973extern "C" {
13974    pub fn THDoubleTensor_leTensor(r_: *mut THByteTensor,
13975                                   ta: *mut THDoubleTensor,
13976                                   tb: *mut THDoubleTensor);
13977}
13978extern "C" {
13979    pub fn THDoubleTensor_gtTensor(r_: *mut THByteTensor,
13980                                   ta: *mut THDoubleTensor,
13981                                   tb: *mut THDoubleTensor);
13982}
13983extern "C" {
13984    pub fn THDoubleTensor_geTensor(r_: *mut THByteTensor,
13985                                   ta: *mut THDoubleTensor,
13986                                   tb: *mut THDoubleTensor);
13987}
13988extern "C" {
13989    pub fn THDoubleTensor_neTensor(r_: *mut THByteTensor,
13990                                   ta: *mut THDoubleTensor,
13991                                   tb: *mut THDoubleTensor);
13992}
13993extern "C" {
13994    pub fn THDoubleTensor_eqTensor(r_: *mut THByteTensor,
13995                                   ta: *mut THDoubleTensor,
13996                                   tb: *mut THDoubleTensor);
13997}
13998extern "C" {
13999    pub fn THDoubleTensor_ltTensorT(r_: *mut THDoubleTensor,
14000                                    ta: *mut THDoubleTensor,
14001                                    tb: *mut THDoubleTensor);
14002}
14003extern "C" {
14004    pub fn THDoubleTensor_leTensorT(r_: *mut THDoubleTensor,
14005                                    ta: *mut THDoubleTensor,
14006                                    tb: *mut THDoubleTensor);
14007}
14008extern "C" {
14009    pub fn THDoubleTensor_gtTensorT(r_: *mut THDoubleTensor,
14010                                    ta: *mut THDoubleTensor,
14011                                    tb: *mut THDoubleTensor);
14012}
14013extern "C" {
14014    pub fn THDoubleTensor_geTensorT(r_: *mut THDoubleTensor,
14015                                    ta: *mut THDoubleTensor,
14016                                    tb: *mut THDoubleTensor);
14017}
14018extern "C" {
14019    pub fn THDoubleTensor_neTensorT(r_: *mut THDoubleTensor,
14020                                    ta: *mut THDoubleTensor,
14021                                    tb: *mut THDoubleTensor);
14022}
14023extern "C" {
14024    pub fn THDoubleTensor_eqTensorT(r_: *mut THDoubleTensor,
14025                                    ta: *mut THDoubleTensor,
14026                                    tb: *mut THDoubleTensor);
14027}
14028extern "C" {
14029    pub fn THDoubleTensor_sigmoid(r_: *mut THDoubleTensor,
14030                                  t: *mut THDoubleTensor);
14031}
14032extern "C" {
14033    pub fn THDoubleTensor_log(r_: *mut THDoubleTensor,
14034                              t: *mut THDoubleTensor);
14035}
14036extern "C" {
14037    pub fn THDoubleTensor_lgamma(r_: *mut THDoubleTensor,
14038                                 t: *mut THDoubleTensor);
14039}
14040extern "C" {
14041    pub fn THDoubleTensor_log1p(r_: *mut THDoubleTensor,
14042                                t: *mut THDoubleTensor);
14043}
14044extern "C" {
14045    pub fn THDoubleTensor_exp(r_: *mut THDoubleTensor,
14046                              t: *mut THDoubleTensor);
14047}
14048extern "C" {
14049    pub fn THDoubleTensor_cos(r_: *mut THDoubleTensor,
14050                              t: *mut THDoubleTensor);
14051}
14052extern "C" {
14053    pub fn THDoubleTensor_acos(r_: *mut THDoubleTensor,
14054                               t: *mut THDoubleTensor);
14055}
14056extern "C" {
14057    pub fn THDoubleTensor_cosh(r_: *mut THDoubleTensor,
14058                               t: *mut THDoubleTensor);
14059}
14060extern "C" {
14061    pub fn THDoubleTensor_sin(r_: *mut THDoubleTensor,
14062                              t: *mut THDoubleTensor);
14063}
14064extern "C" {
14065    pub fn THDoubleTensor_asin(r_: *mut THDoubleTensor,
14066                               t: *mut THDoubleTensor);
14067}
14068extern "C" {
14069    pub fn THDoubleTensor_sinh(r_: *mut THDoubleTensor,
14070                               t: *mut THDoubleTensor);
14071}
14072extern "C" {
14073    pub fn THDoubleTensor_tan(r_: *mut THDoubleTensor,
14074                              t: *mut THDoubleTensor);
14075}
14076extern "C" {
14077    pub fn THDoubleTensor_atan(r_: *mut THDoubleTensor,
14078                               t: *mut THDoubleTensor);
14079}
14080extern "C" {
14081    pub fn THDoubleTensor_atan2(r_: *mut THDoubleTensor,
14082                                tx: *mut THDoubleTensor,
14083                                ty: *mut THDoubleTensor);
14084}
14085extern "C" {
14086    pub fn THDoubleTensor_tanh(r_: *mut THDoubleTensor,
14087                               t: *mut THDoubleTensor);
14088}
14089extern "C" {
14090    pub fn THDoubleTensor_pow(r_: *mut THDoubleTensor, t: *mut THDoubleTensor,
14091                              value: f64);
14092}
14093extern "C" {
14094    pub fn THDoubleTensor_tpow(r_: *mut THDoubleTensor, value: f64,
14095                               t: *mut THDoubleTensor);
14096}
14097extern "C" {
14098    pub fn THDoubleTensor_sqrt(r_: *mut THDoubleTensor,
14099                               t: *mut THDoubleTensor);
14100}
14101extern "C" {
14102    pub fn THDoubleTensor_rsqrt(r_: *mut THDoubleTensor,
14103                                t: *mut THDoubleTensor);
14104}
14105extern "C" {
14106    pub fn THDoubleTensor_ceil(r_: *mut THDoubleTensor,
14107                               t: *mut THDoubleTensor);
14108}
14109extern "C" {
14110    pub fn THDoubleTensor_floor(r_: *mut THDoubleTensor,
14111                                t: *mut THDoubleTensor);
14112}
14113extern "C" {
14114    pub fn THDoubleTensor_round(r_: *mut THDoubleTensor,
14115                                t: *mut THDoubleTensor);
14116}
14117extern "C" {
14118    pub fn THDoubleTensor_abs(r_: *mut THDoubleTensor,
14119                              t: *mut THDoubleTensor);
14120}
14121extern "C" {
14122    pub fn THDoubleTensor_trunc(r_: *mut THDoubleTensor,
14123                                t: *mut THDoubleTensor);
14124}
14125extern "C" {
14126    pub fn THDoubleTensor_frac(r_: *mut THDoubleTensor,
14127                               t: *mut THDoubleTensor);
14128}
14129extern "C" {
14130    pub fn THDoubleTensor_lerp(r_: *mut THDoubleTensor,
14131                               a: *mut THDoubleTensor, b: *mut THDoubleTensor,
14132                               weight: f64);
14133}
14134extern "C" {
14135    pub fn THDoubleTensor_mean(r_: *mut THDoubleTensor,
14136                               t: *mut THDoubleTensor,
14137                               dimension: ::std::os::raw::c_int,
14138                               keepdim: ::std::os::raw::c_int);
14139}
14140extern "C" {
14141    pub fn THDoubleTensor_std(r_: *mut THDoubleTensor, t: *mut THDoubleTensor,
14142                              dimension: ::std::os::raw::c_int,
14143                              biased: ::std::os::raw::c_int,
14144                              keepdim: ::std::os::raw::c_int);
14145}
14146extern "C" {
14147    pub fn THDoubleTensor_var(r_: *mut THDoubleTensor, t: *mut THDoubleTensor,
14148                              dimension: ::std::os::raw::c_int,
14149                              biased: ::std::os::raw::c_int,
14150                              keepdim: ::std::os::raw::c_int);
14151}
14152extern "C" {
14153    pub fn THDoubleTensor_norm(r_: *mut THDoubleTensor,
14154                               t: *mut THDoubleTensor, value: f64,
14155                               dimension: ::std::os::raw::c_int,
14156                               keepdim: ::std::os::raw::c_int);
14157}
14158extern "C" {
14159    pub fn THDoubleTensor_renorm(r_: *mut THDoubleTensor,
14160                                 t: *mut THDoubleTensor, value: f64,
14161                                 dimension: ::std::os::raw::c_int,
14162                                 maxnorm: f64);
14163}
14164extern "C" {
14165    pub fn THDoubleTensor_dist(a: *mut THDoubleTensor, b: *mut THDoubleTensor,
14166                               value: f64) -> f64;
14167}
14168extern "C" {
14169    pub fn THDoubleTensor_histc(hist: *mut THDoubleTensor,
14170                                tensor: *mut THDoubleTensor,
14171                                nbins: ::std::os::raw::c_long, minvalue: f64,
14172                                maxvalue: f64);
14173}
14174extern "C" {
14175    pub fn THDoubleTensor_bhistc(hist: *mut THDoubleTensor,
14176                                 tensor: *mut THDoubleTensor,
14177                                 nbins: ::std::os::raw::c_long, minvalue: f64,
14178                                 maxvalue: f64);
14179}
14180extern "C" {
14181    pub fn THDoubleTensor_meanall(self_: *mut THDoubleTensor) -> f64;
14182}
14183extern "C" {
14184    pub fn THDoubleTensor_varall(self_: *mut THDoubleTensor,
14185                                 biased: ::std::os::raw::c_int) -> f64;
14186}
14187extern "C" {
14188    pub fn THDoubleTensor_stdall(self_: *mut THDoubleTensor,
14189                                 biased: ::std::os::raw::c_int) -> f64;
14190}
14191extern "C" {
14192    pub fn THDoubleTensor_normall(t: *mut THDoubleTensor, value: f64) -> f64;
14193}
14194extern "C" {
14195    pub fn THDoubleTensor_linspace(r_: *mut THDoubleTensor, a: f64, b: f64,
14196                                   n: ::std::os::raw::c_long);
14197}
14198extern "C" {
14199    pub fn THDoubleTensor_logspace(r_: *mut THDoubleTensor, a: f64, b: f64,
14200                                   n: ::std::os::raw::c_long);
14201}
14202extern "C" {
14203    pub fn THDoubleTensor_rand(r_: *mut THDoubleTensor,
14204                               _generator: *mut THGenerator,
14205                               size: *mut THLongStorage);
14206}
14207extern "C" {
14208    pub fn THDoubleTensor_randn(r_: *mut THDoubleTensor,
14209                                _generator: *mut THGenerator,
14210                                size: *mut THLongStorage);
14211}
14212extern "C" {
14213    pub fn THByteTensor_fill(r_: *mut THByteTensor,
14214                             value: ::std::os::raw::c_uchar);
14215}
14216extern "C" {
14217    pub fn THByteTensor_zero(r_: *mut THByteTensor);
14218}
14219extern "C" {
14220    pub fn THByteTensor_maskedFill(tensor: *mut THByteTensor,
14221                                   mask: *mut THByteTensor,
14222                                   value: ::std::os::raw::c_uchar);
14223}
14224extern "C" {
14225    pub fn THByteTensor_maskedCopy(tensor: *mut THByteTensor,
14226                                   mask: *mut THByteTensor,
14227                                   src: *mut THByteTensor);
14228}
14229extern "C" {
14230    pub fn THByteTensor_maskedSelect(tensor: *mut THByteTensor,
14231                                     src: *mut THByteTensor,
14232                                     mask: *mut THByteTensor);
14233}
14234extern "C" {
14235    pub fn THByteTensor_nonzero(subscript: *mut THLongTensor,
14236                                tensor: *mut THByteTensor);
14237}
14238extern "C" {
14239    pub fn THByteTensor_indexSelect(tensor: *mut THByteTensor,
14240                                    src: *mut THByteTensor,
14241                                    dim: ::std::os::raw::c_int,
14242                                    index: *mut THLongTensor);
14243}
14244extern "C" {
14245    pub fn THByteTensor_indexCopy(tensor: *mut THByteTensor,
14246                                  dim: ::std::os::raw::c_int,
14247                                  index: *mut THLongTensor,
14248                                  src: *mut THByteTensor);
14249}
14250extern "C" {
14251    pub fn THByteTensor_indexAdd(tensor: *mut THByteTensor,
14252                                 dim: ::std::os::raw::c_int,
14253                                 index: *mut THLongTensor,
14254                                 src: *mut THByteTensor);
14255}
14256extern "C" {
14257    pub fn THByteTensor_indexFill(tensor: *mut THByteTensor,
14258                                  dim: ::std::os::raw::c_int,
14259                                  index: *mut THLongTensor,
14260                                  val: ::std::os::raw::c_uchar);
14261}
14262extern "C" {
14263    pub fn THByteTensor_gather(tensor: *mut THByteTensor,
14264                               src: *mut THByteTensor,
14265                               dim: ::std::os::raw::c_int,
14266                               index: *mut THLongTensor);
14267}
14268extern "C" {
14269    pub fn THByteTensor_scatter(tensor: *mut THByteTensor,
14270                                dim: ::std::os::raw::c_int,
14271                                index: *mut THLongTensor,
14272                                src: *mut THByteTensor);
14273}
14274extern "C" {
14275    pub fn THByteTensor_scatterAdd(tensor: *mut THByteTensor,
14276                                   dim: ::std::os::raw::c_int,
14277                                   index: *mut THLongTensor,
14278                                   src: *mut THByteTensor);
14279}
14280extern "C" {
14281    pub fn THByteTensor_scatterFill(tensor: *mut THByteTensor,
14282                                    dim: ::std::os::raw::c_int,
14283                                    index: *mut THLongTensor,
14284                                    val: ::std::os::raw::c_uchar);
14285}
14286extern "C" {
14287    pub fn THByteTensor_dot(t: *mut THByteTensor, src: *mut THByteTensor)
14288     -> ::std::os::raw::c_long;
14289}
14290extern "C" {
14291    pub fn THByteTensor_minall(t: *mut THByteTensor)
14292     -> ::std::os::raw::c_uchar;
14293}
14294extern "C" {
14295    pub fn THByteTensor_maxall(t: *mut THByteTensor)
14296     -> ::std::os::raw::c_uchar;
14297}
14298extern "C" {
14299    pub fn THByteTensor_medianall(t: *mut THByteTensor)
14300     -> ::std::os::raw::c_uchar;
14301}
14302extern "C" {
14303    pub fn THByteTensor_sumall(t: *mut THByteTensor)
14304     -> ::std::os::raw::c_long;
14305}
14306extern "C" {
14307    pub fn THByteTensor_prodall(t: *mut THByteTensor)
14308     -> ::std::os::raw::c_long;
14309}
14310extern "C" {
14311    pub fn THByteTensor_neg(self_: *mut THByteTensor, src: *mut THByteTensor);
14312}
14313extern "C" {
14314    pub fn THByteTensor_cinv(self_: *mut THByteTensor,
14315                             src: *mut THByteTensor);
14316}
14317extern "C" {
14318    pub fn THByteTensor_add(r_: *mut THByteTensor, t: *mut THByteTensor,
14319                            value: ::std::os::raw::c_uchar);
14320}
14321extern "C" {
14322    pub fn THByteTensor_sub(self_: *mut THByteTensor, src: *mut THByteTensor,
14323                            value: ::std::os::raw::c_uchar);
14324}
14325extern "C" {
14326    pub fn THByteTensor_mul(r_: *mut THByteTensor, t: *mut THByteTensor,
14327                            value: ::std::os::raw::c_uchar);
14328}
14329extern "C" {
14330    pub fn THByteTensor_div(r_: *mut THByteTensor, t: *mut THByteTensor,
14331                            value: ::std::os::raw::c_uchar);
14332}
14333extern "C" {
14334    pub fn THByteTensor_lshift(r_: *mut THByteTensor, t: *mut THByteTensor,
14335                               value: ::std::os::raw::c_uchar);
14336}
14337extern "C" {
14338    pub fn THByteTensor_rshift(r_: *mut THByteTensor, t: *mut THByteTensor,
14339                               value: ::std::os::raw::c_uchar);
14340}
14341extern "C" {
14342    pub fn THByteTensor_fmod(r_: *mut THByteTensor, t: *mut THByteTensor,
14343                             value: ::std::os::raw::c_uchar);
14344}
14345extern "C" {
14346    pub fn THByteTensor_remainder(r_: *mut THByteTensor, t: *mut THByteTensor,
14347                                  value: ::std::os::raw::c_uchar);
14348}
14349extern "C" {
14350    pub fn THByteTensor_clamp(r_: *mut THByteTensor, t: *mut THByteTensor,
14351                              min_value: ::std::os::raw::c_uchar,
14352                              max_value: ::std::os::raw::c_uchar);
14353}
14354extern "C" {
14355    pub fn THByteTensor_bitand(r_: *mut THByteTensor, t: *mut THByteTensor,
14356                               value: ::std::os::raw::c_uchar);
14357}
14358extern "C" {
14359    pub fn THByteTensor_bitor(r_: *mut THByteTensor, t: *mut THByteTensor,
14360                              value: ::std::os::raw::c_uchar);
14361}
14362extern "C" {
14363    pub fn THByteTensor_bitxor(r_: *mut THByteTensor, t: *mut THByteTensor,
14364                               value: ::std::os::raw::c_uchar);
14365}
14366extern "C" {
14367    pub fn THByteTensor_cadd(r_: *mut THByteTensor, t: *mut THByteTensor,
14368                             value: ::std::os::raw::c_uchar,
14369                             src: *mut THByteTensor);
14370}
14371extern "C" {
14372    pub fn THByteTensor_csub(self_: *mut THByteTensor,
14373                             src1: *mut THByteTensor,
14374                             value: ::std::os::raw::c_uchar,
14375                             src2: *mut THByteTensor);
14376}
14377extern "C" {
14378    pub fn THByteTensor_cmul(r_: *mut THByteTensor, t: *mut THByteTensor,
14379                             src: *mut THByteTensor);
14380}
14381extern "C" {
14382    pub fn THByteTensor_cpow(r_: *mut THByteTensor, t: *mut THByteTensor,
14383                             src: *mut THByteTensor);
14384}
14385extern "C" {
14386    pub fn THByteTensor_cdiv(r_: *mut THByteTensor, t: *mut THByteTensor,
14387                             src: *mut THByteTensor);
14388}
14389extern "C" {
14390    pub fn THByteTensor_clshift(r_: *mut THByteTensor, t: *mut THByteTensor,
14391                                src: *mut THByteTensor);
14392}
14393extern "C" {
14394    pub fn THByteTensor_crshift(r_: *mut THByteTensor, t: *mut THByteTensor,
14395                                src: *mut THByteTensor);
14396}
14397extern "C" {
14398    pub fn THByteTensor_cfmod(r_: *mut THByteTensor, t: *mut THByteTensor,
14399                              src: *mut THByteTensor);
14400}
14401extern "C" {
14402    pub fn THByteTensor_cremainder(r_: *mut THByteTensor,
14403                                   t: *mut THByteTensor,
14404                                   src: *mut THByteTensor);
14405}
14406extern "C" {
14407    pub fn THByteTensor_cbitand(r_: *mut THByteTensor, t: *mut THByteTensor,
14408                                src: *mut THByteTensor);
14409}
14410extern "C" {
14411    pub fn THByteTensor_cbitor(r_: *mut THByteTensor, t: *mut THByteTensor,
14412                               src: *mut THByteTensor);
14413}
14414extern "C" {
14415    pub fn THByteTensor_cbitxor(r_: *mut THByteTensor, t: *mut THByteTensor,
14416                                src: *mut THByteTensor);
14417}
14418extern "C" {
14419    pub fn THByteTensor_addcmul(r_: *mut THByteTensor, t: *mut THByteTensor,
14420                                value: ::std::os::raw::c_uchar,
14421                                src1: *mut THByteTensor,
14422                                src2: *mut THByteTensor);
14423}
14424extern "C" {
14425    pub fn THByteTensor_addcdiv(r_: *mut THByteTensor, t: *mut THByteTensor,
14426                                value: ::std::os::raw::c_uchar,
14427                                src1: *mut THByteTensor,
14428                                src2: *mut THByteTensor);
14429}
14430extern "C" {
14431    pub fn THByteTensor_addmv(r_: *mut THByteTensor,
14432                              beta: ::std::os::raw::c_uchar,
14433                              t: *mut THByteTensor,
14434                              alpha: ::std::os::raw::c_uchar,
14435                              mat: *mut THByteTensor, vec: *mut THByteTensor);
14436}
14437extern "C" {
14438    pub fn THByteTensor_addmm(r_: *mut THByteTensor,
14439                              beta: ::std::os::raw::c_uchar,
14440                              t: *mut THByteTensor,
14441                              alpha: ::std::os::raw::c_uchar,
14442                              mat1: *mut THByteTensor,
14443                              mat2: *mut THByteTensor);
14444}
14445extern "C" {
14446    pub fn THByteTensor_addr(r_: *mut THByteTensor,
14447                             beta: ::std::os::raw::c_uchar,
14448                             t: *mut THByteTensor,
14449                             alpha: ::std::os::raw::c_uchar,
14450                             vec1: *mut THByteTensor,
14451                             vec2: *mut THByteTensor);
14452}
14453extern "C" {
14454    pub fn THByteTensor_addbmm(r_: *mut THByteTensor,
14455                               beta: ::std::os::raw::c_uchar,
14456                               t: *mut THByteTensor,
14457                               alpha: ::std::os::raw::c_uchar,
14458                               batch1: *mut THByteTensor,
14459                               batch2: *mut THByteTensor);
14460}
14461extern "C" {
14462    pub fn THByteTensor_baddbmm(r_: *mut THByteTensor,
14463                                beta: ::std::os::raw::c_uchar,
14464                                t: *mut THByteTensor,
14465                                alpha: ::std::os::raw::c_uchar,
14466                                batch1: *mut THByteTensor,
14467                                batch2: *mut THByteTensor);
14468}
14469extern "C" {
14470    pub fn THByteTensor_match(r_: *mut THByteTensor, m1: *mut THByteTensor,
14471                              m2: *mut THByteTensor,
14472                              gain: ::std::os::raw::c_uchar);
14473}
14474extern "C" {
14475    pub fn THByteTensor_numel(t: *mut THByteTensor) -> isize;
14476}
14477extern "C" {
14478    pub fn THByteTensor_max(values_: *mut THByteTensor,
14479                            indices_: *mut THLongTensor, t: *mut THByteTensor,
14480                            dimension: ::std::os::raw::c_int,
14481                            keepdim: ::std::os::raw::c_int);
14482}
14483extern "C" {
14484    pub fn THByteTensor_min(values_: *mut THByteTensor,
14485                            indices_: *mut THLongTensor, t: *mut THByteTensor,
14486                            dimension: ::std::os::raw::c_int,
14487                            keepdim: ::std::os::raw::c_int);
14488}
14489extern "C" {
14490    pub fn THByteTensor_kthvalue(values_: *mut THByteTensor,
14491                                 indices_: *mut THLongTensor,
14492                                 t: *mut THByteTensor,
14493                                 k: ::std::os::raw::c_long,
14494                                 dimension: ::std::os::raw::c_int,
14495                                 keepdim: ::std::os::raw::c_int);
14496}
14497extern "C" {
14498    pub fn THByteTensor_mode(values_: *mut THByteTensor,
14499                             indices_: *mut THLongTensor,
14500                             t: *mut THByteTensor,
14501                             dimension: ::std::os::raw::c_int,
14502                             keepdim: ::std::os::raw::c_int);
14503}
14504extern "C" {
14505    pub fn THByteTensor_median(values_: *mut THByteTensor,
14506                               indices_: *mut THLongTensor,
14507                               t: *mut THByteTensor,
14508                               dimension: ::std::os::raw::c_int,
14509                               keepdim: ::std::os::raw::c_int);
14510}
14511extern "C" {
14512    pub fn THByteTensor_sum(r_: *mut THByteTensor, t: *mut THByteTensor,
14513                            dimension: ::std::os::raw::c_int,
14514                            keepdim: ::std::os::raw::c_int);
14515}
14516extern "C" {
14517    pub fn THByteTensor_prod(r_: *mut THByteTensor, t: *mut THByteTensor,
14518                             dimension: ::std::os::raw::c_int,
14519                             keepdim: ::std::os::raw::c_int);
14520}
14521extern "C" {
14522    pub fn THByteTensor_cumsum(r_: *mut THByteTensor, t: *mut THByteTensor,
14523                               dimension: ::std::os::raw::c_int);
14524}
14525extern "C" {
14526    pub fn THByteTensor_cumprod(r_: *mut THByteTensor, t: *mut THByteTensor,
14527                                dimension: ::std::os::raw::c_int);
14528}
14529extern "C" {
14530    pub fn THByteTensor_sign(r_: *mut THByteTensor, t: *mut THByteTensor);
14531}
14532extern "C" {
14533    pub fn THByteTensor_trace(t: *mut THByteTensor) -> ::std::os::raw::c_long;
14534}
14535extern "C" {
14536    pub fn THByteTensor_cross(r_: *mut THByteTensor, a: *mut THByteTensor,
14537                              b: *mut THByteTensor,
14538                              dimension: ::std::os::raw::c_int);
14539}
14540extern "C" {
14541    pub fn THByteTensor_cmax(r: *mut THByteTensor, t: *mut THByteTensor,
14542                             src: *mut THByteTensor);
14543}
14544extern "C" {
14545    pub fn THByteTensor_cmin(r: *mut THByteTensor, t: *mut THByteTensor,
14546                             src: *mut THByteTensor);
14547}
14548extern "C" {
14549    pub fn THByteTensor_cmaxValue(r: *mut THByteTensor, t: *mut THByteTensor,
14550                                  value: ::std::os::raw::c_uchar);
14551}
14552extern "C" {
14553    pub fn THByteTensor_cminValue(r: *mut THByteTensor, t: *mut THByteTensor,
14554                                  value: ::std::os::raw::c_uchar);
14555}
14556extern "C" {
14557    pub fn THByteTensor_zeros(r_: *mut THByteTensor,
14558                              size: *mut THLongStorage);
14559}
14560extern "C" {
14561    pub fn THByteTensor_ones(r_: *mut THByteTensor, size: *mut THLongStorage);
14562}
14563extern "C" {
14564    pub fn THByteTensor_diag(r_: *mut THByteTensor, t: *mut THByteTensor,
14565                             k: ::std::os::raw::c_int);
14566}
14567extern "C" {
14568    pub fn THByteTensor_eye(r_: *mut THByteTensor, n: ::std::os::raw::c_long,
14569                            m: ::std::os::raw::c_long);
14570}
14571extern "C" {
14572    pub fn THByteTensor_arange(r_: *mut THByteTensor,
14573                               xmin: ::std::os::raw::c_long,
14574                               xmax: ::std::os::raw::c_long,
14575                               step: ::std::os::raw::c_long);
14576}
14577extern "C" {
14578    pub fn THByteTensor_range(r_: *mut THByteTensor,
14579                              xmin: ::std::os::raw::c_long,
14580                              xmax: ::std::os::raw::c_long,
14581                              step: ::std::os::raw::c_long);
14582}
14583extern "C" {
14584    pub fn THByteTensor_randperm(r_: *mut THByteTensor,
14585                                 _generator: *mut THGenerator,
14586                                 n: ::std::os::raw::c_long);
14587}
14588extern "C" {
14589    pub fn THByteTensor_reshape(r_: *mut THByteTensor, t: *mut THByteTensor,
14590                                size: *mut THLongStorage);
14591}
14592extern "C" {
14593    pub fn THByteTensor_sort(rt_: *mut THByteTensor, ri_: *mut THLongTensor,
14594                             t: *mut THByteTensor,
14595                             dimension: ::std::os::raw::c_int,
14596                             descendingOrder: ::std::os::raw::c_int);
14597}
14598extern "C" {
14599    pub fn THByteTensor_topk(rt_: *mut THByteTensor, ri_: *mut THLongTensor,
14600                             t: *mut THByteTensor, k: ::std::os::raw::c_long,
14601                             dim: ::std::os::raw::c_int,
14602                             dir: ::std::os::raw::c_int,
14603                             sorted: ::std::os::raw::c_int);
14604}
14605extern "C" {
14606    pub fn THByteTensor_tril(r_: *mut THByteTensor, t: *mut THByteTensor,
14607                             k: ::std::os::raw::c_long);
14608}
14609extern "C" {
14610    pub fn THByteTensor_triu(r_: *mut THByteTensor, t: *mut THByteTensor,
14611                             k: ::std::os::raw::c_long);
14612}
14613extern "C" {
14614    pub fn THByteTensor_cat(r_: *mut THByteTensor, ta: *mut THByteTensor,
14615                            tb: *mut THByteTensor,
14616                            dimension: ::std::os::raw::c_int);
14617}
14618extern "C" {
14619    pub fn THByteTensor_catArray(result: *mut THByteTensor,
14620                                 inputs: *mut *mut THByteTensor,
14621                                 numInputs: ::std::os::raw::c_int,
14622                                 dimension: ::std::os::raw::c_int);
14623}
14624extern "C" {
14625    pub fn THByteTensor_equal(ta: *mut THByteTensor, tb: *mut THByteTensor)
14626     -> ::std::os::raw::c_int;
14627}
14628extern "C" {
14629    pub fn THByteTensor_ltValue(r_: *mut THByteTensor, t: *mut THByteTensor,
14630                                value: ::std::os::raw::c_uchar);
14631}
14632extern "C" {
14633    pub fn THByteTensor_leValue(r_: *mut THByteTensor, t: *mut THByteTensor,
14634                                value: ::std::os::raw::c_uchar);
14635}
14636extern "C" {
14637    pub fn THByteTensor_gtValue(r_: *mut THByteTensor, t: *mut THByteTensor,
14638                                value: ::std::os::raw::c_uchar);
14639}
14640extern "C" {
14641    pub fn THByteTensor_geValue(r_: *mut THByteTensor, t: *mut THByteTensor,
14642                                value: ::std::os::raw::c_uchar);
14643}
14644extern "C" {
14645    pub fn THByteTensor_neValue(r_: *mut THByteTensor, t: *mut THByteTensor,
14646                                value: ::std::os::raw::c_uchar);
14647}
14648extern "C" {
14649    pub fn THByteTensor_eqValue(r_: *mut THByteTensor, t: *mut THByteTensor,
14650                                value: ::std::os::raw::c_uchar);
14651}
14652extern "C" {
14653    pub fn THByteTensor_ltValueT(r_: *mut THByteTensor, t: *mut THByteTensor,
14654                                 value: ::std::os::raw::c_uchar);
14655}
14656extern "C" {
14657    pub fn THByteTensor_leValueT(r_: *mut THByteTensor, t: *mut THByteTensor,
14658                                 value: ::std::os::raw::c_uchar);
14659}
14660extern "C" {
14661    pub fn THByteTensor_gtValueT(r_: *mut THByteTensor, t: *mut THByteTensor,
14662                                 value: ::std::os::raw::c_uchar);
14663}
14664extern "C" {
14665    pub fn THByteTensor_geValueT(r_: *mut THByteTensor, t: *mut THByteTensor,
14666                                 value: ::std::os::raw::c_uchar);
14667}
14668extern "C" {
14669    pub fn THByteTensor_neValueT(r_: *mut THByteTensor, t: *mut THByteTensor,
14670                                 value: ::std::os::raw::c_uchar);
14671}
14672extern "C" {
14673    pub fn THByteTensor_eqValueT(r_: *mut THByteTensor, t: *mut THByteTensor,
14674                                 value: ::std::os::raw::c_uchar);
14675}
14676extern "C" {
14677    pub fn THByteTensor_ltTensor(r_: *mut THByteTensor, ta: *mut THByteTensor,
14678                                 tb: *mut THByteTensor);
14679}
14680extern "C" {
14681    pub fn THByteTensor_leTensor(r_: *mut THByteTensor, ta: *mut THByteTensor,
14682                                 tb: *mut THByteTensor);
14683}
14684extern "C" {
14685    pub fn THByteTensor_gtTensor(r_: *mut THByteTensor, ta: *mut THByteTensor,
14686                                 tb: *mut THByteTensor);
14687}
14688extern "C" {
14689    pub fn THByteTensor_geTensor(r_: *mut THByteTensor, ta: *mut THByteTensor,
14690                                 tb: *mut THByteTensor);
14691}
14692extern "C" {
14693    pub fn THByteTensor_neTensor(r_: *mut THByteTensor, ta: *mut THByteTensor,
14694                                 tb: *mut THByteTensor);
14695}
14696extern "C" {
14697    pub fn THByteTensor_eqTensor(r_: *mut THByteTensor, ta: *mut THByteTensor,
14698                                 tb: *mut THByteTensor);
14699}
14700extern "C" {
14701    pub fn THByteTensor_ltTensorT(r_: *mut THByteTensor,
14702                                  ta: *mut THByteTensor,
14703                                  tb: *mut THByteTensor);
14704}
14705extern "C" {
14706    pub fn THByteTensor_leTensorT(r_: *mut THByteTensor,
14707                                  ta: *mut THByteTensor,
14708                                  tb: *mut THByteTensor);
14709}
14710extern "C" {
14711    pub fn THByteTensor_gtTensorT(r_: *mut THByteTensor,
14712                                  ta: *mut THByteTensor,
14713                                  tb: *mut THByteTensor);
14714}
14715extern "C" {
14716    pub fn THByteTensor_geTensorT(r_: *mut THByteTensor,
14717                                  ta: *mut THByteTensor,
14718                                  tb: *mut THByteTensor);
14719}
14720extern "C" {
14721    pub fn THByteTensor_neTensorT(r_: *mut THByteTensor,
14722                                  ta: *mut THByteTensor,
14723                                  tb: *mut THByteTensor);
14724}
14725extern "C" {
14726    pub fn THByteTensor_eqTensorT(r_: *mut THByteTensor,
14727                                  ta: *mut THByteTensor,
14728                                  tb: *mut THByteTensor);
14729}
14730extern "C" {
14731    pub fn THByteTensor_logicalall(self_: *mut THByteTensor)
14732     -> ::std::os::raw::c_int;
14733}
14734extern "C" {
14735    pub fn THByteTensor_logicalany(self_: *mut THByteTensor)
14736     -> ::std::os::raw::c_int;
14737}
14738extern "C" {
14739    pub fn THCharTensor_fill(r_: *mut THCharTensor,
14740                             value: ::std::os::raw::c_char);
14741}
14742extern "C" {
14743    pub fn THCharTensor_zero(r_: *mut THCharTensor);
14744}
14745extern "C" {
14746    pub fn THCharTensor_maskedFill(tensor: *mut THCharTensor,
14747                                   mask: *mut THByteTensor,
14748                                   value: ::std::os::raw::c_char);
14749}
14750extern "C" {
14751    pub fn THCharTensor_maskedCopy(tensor: *mut THCharTensor,
14752                                   mask: *mut THByteTensor,
14753                                   src: *mut THCharTensor);
14754}
14755extern "C" {
14756    pub fn THCharTensor_maskedSelect(tensor: *mut THCharTensor,
14757                                     src: *mut THCharTensor,
14758                                     mask: *mut THByteTensor);
14759}
14760extern "C" {
14761    pub fn THCharTensor_nonzero(subscript: *mut THLongTensor,
14762                                tensor: *mut THCharTensor);
14763}
14764extern "C" {
14765    pub fn THCharTensor_indexSelect(tensor: *mut THCharTensor,
14766                                    src: *mut THCharTensor,
14767                                    dim: ::std::os::raw::c_int,
14768                                    index: *mut THLongTensor);
14769}
14770extern "C" {
14771    pub fn THCharTensor_indexCopy(tensor: *mut THCharTensor,
14772                                  dim: ::std::os::raw::c_int,
14773                                  index: *mut THLongTensor,
14774                                  src: *mut THCharTensor);
14775}
14776extern "C" {
14777    pub fn THCharTensor_indexAdd(tensor: *mut THCharTensor,
14778                                 dim: ::std::os::raw::c_int,
14779                                 index: *mut THLongTensor,
14780                                 src: *mut THCharTensor);
14781}
14782extern "C" {
14783    pub fn THCharTensor_indexFill(tensor: *mut THCharTensor,
14784                                  dim: ::std::os::raw::c_int,
14785                                  index: *mut THLongTensor,
14786                                  val: ::std::os::raw::c_char);
14787}
14788extern "C" {
14789    pub fn THCharTensor_gather(tensor: *mut THCharTensor,
14790                               src: *mut THCharTensor,
14791                               dim: ::std::os::raw::c_int,
14792                               index: *mut THLongTensor);
14793}
14794extern "C" {
14795    pub fn THCharTensor_scatter(tensor: *mut THCharTensor,
14796                                dim: ::std::os::raw::c_int,
14797                                index: *mut THLongTensor,
14798                                src: *mut THCharTensor);
14799}
14800extern "C" {
14801    pub fn THCharTensor_scatterAdd(tensor: *mut THCharTensor,
14802                                   dim: ::std::os::raw::c_int,
14803                                   index: *mut THLongTensor,
14804                                   src: *mut THCharTensor);
14805}
14806extern "C" {
14807    pub fn THCharTensor_scatterFill(tensor: *mut THCharTensor,
14808                                    dim: ::std::os::raw::c_int,
14809                                    index: *mut THLongTensor,
14810                                    val: ::std::os::raw::c_char);
14811}
14812extern "C" {
14813    pub fn THCharTensor_dot(t: *mut THCharTensor, src: *mut THCharTensor)
14814     -> ::std::os::raw::c_long;
14815}
14816extern "C" {
14817    pub fn THCharTensor_minall(t: *mut THCharTensor)
14818     -> ::std::os::raw::c_char;
14819}
14820extern "C" {
14821    pub fn THCharTensor_maxall(t: *mut THCharTensor)
14822     -> ::std::os::raw::c_char;
14823}
14824extern "C" {
14825    pub fn THCharTensor_medianall(t: *mut THCharTensor)
14826     -> ::std::os::raw::c_char;
14827}
14828extern "C" {
14829    pub fn THCharTensor_sumall(t: *mut THCharTensor)
14830     -> ::std::os::raw::c_long;
14831}
14832extern "C" {
14833    pub fn THCharTensor_prodall(t: *mut THCharTensor)
14834     -> ::std::os::raw::c_long;
14835}
14836extern "C" {
14837    pub fn THCharTensor_neg(self_: *mut THCharTensor, src: *mut THCharTensor);
14838}
14839extern "C" {
14840    pub fn THCharTensor_cinv(self_: *mut THCharTensor,
14841                             src: *mut THCharTensor);
14842}
14843extern "C" {
14844    pub fn THCharTensor_add(r_: *mut THCharTensor, t: *mut THCharTensor,
14845                            value: ::std::os::raw::c_char);
14846}
14847extern "C" {
14848    pub fn THCharTensor_sub(self_: *mut THCharTensor, src: *mut THCharTensor,
14849                            value: ::std::os::raw::c_char);
14850}
14851extern "C" {
14852    pub fn THCharTensor_mul(r_: *mut THCharTensor, t: *mut THCharTensor,
14853                            value: ::std::os::raw::c_char);
14854}
14855extern "C" {
14856    pub fn THCharTensor_div(r_: *mut THCharTensor, t: *mut THCharTensor,
14857                            value: ::std::os::raw::c_char);
14858}
14859extern "C" {
14860    pub fn THCharTensor_lshift(r_: *mut THCharTensor, t: *mut THCharTensor,
14861                               value: ::std::os::raw::c_char);
14862}
14863extern "C" {
14864    pub fn THCharTensor_rshift(r_: *mut THCharTensor, t: *mut THCharTensor,
14865                               value: ::std::os::raw::c_char);
14866}
14867extern "C" {
14868    pub fn THCharTensor_fmod(r_: *mut THCharTensor, t: *mut THCharTensor,
14869                             value: ::std::os::raw::c_char);
14870}
14871extern "C" {
14872    pub fn THCharTensor_remainder(r_: *mut THCharTensor, t: *mut THCharTensor,
14873                                  value: ::std::os::raw::c_char);
14874}
14875extern "C" {
14876    pub fn THCharTensor_clamp(r_: *mut THCharTensor, t: *mut THCharTensor,
14877                              min_value: ::std::os::raw::c_char,
14878                              max_value: ::std::os::raw::c_char);
14879}
14880extern "C" {
14881    pub fn THCharTensor_bitand(r_: *mut THCharTensor, t: *mut THCharTensor,
14882                               value: ::std::os::raw::c_char);
14883}
14884extern "C" {
14885    pub fn THCharTensor_bitor(r_: *mut THCharTensor, t: *mut THCharTensor,
14886                              value: ::std::os::raw::c_char);
14887}
14888extern "C" {
14889    pub fn THCharTensor_bitxor(r_: *mut THCharTensor, t: *mut THCharTensor,
14890                               value: ::std::os::raw::c_char);
14891}
14892extern "C" {
14893    pub fn THCharTensor_cadd(r_: *mut THCharTensor, t: *mut THCharTensor,
14894                             value: ::std::os::raw::c_char,
14895                             src: *mut THCharTensor);
14896}
14897extern "C" {
14898    pub fn THCharTensor_csub(self_: *mut THCharTensor,
14899                             src1: *mut THCharTensor,
14900                             value: ::std::os::raw::c_char,
14901                             src2: *mut THCharTensor);
14902}
14903extern "C" {
14904    pub fn THCharTensor_cmul(r_: *mut THCharTensor, t: *mut THCharTensor,
14905                             src: *mut THCharTensor);
14906}
14907extern "C" {
14908    pub fn THCharTensor_cpow(r_: *mut THCharTensor, t: *mut THCharTensor,
14909                             src: *mut THCharTensor);
14910}
14911extern "C" {
14912    pub fn THCharTensor_cdiv(r_: *mut THCharTensor, t: *mut THCharTensor,
14913                             src: *mut THCharTensor);
14914}
14915extern "C" {
14916    pub fn THCharTensor_clshift(r_: *mut THCharTensor, t: *mut THCharTensor,
14917                                src: *mut THCharTensor);
14918}
14919extern "C" {
14920    pub fn THCharTensor_crshift(r_: *mut THCharTensor, t: *mut THCharTensor,
14921                                src: *mut THCharTensor);
14922}
14923extern "C" {
14924    pub fn THCharTensor_cfmod(r_: *mut THCharTensor, t: *mut THCharTensor,
14925                              src: *mut THCharTensor);
14926}
14927extern "C" {
14928    pub fn THCharTensor_cremainder(r_: *mut THCharTensor,
14929                                   t: *mut THCharTensor,
14930                                   src: *mut THCharTensor);
14931}
14932extern "C" {
14933    pub fn THCharTensor_cbitand(r_: *mut THCharTensor, t: *mut THCharTensor,
14934                                src: *mut THCharTensor);
14935}
14936extern "C" {
14937    pub fn THCharTensor_cbitor(r_: *mut THCharTensor, t: *mut THCharTensor,
14938                               src: *mut THCharTensor);
14939}
14940extern "C" {
14941    pub fn THCharTensor_cbitxor(r_: *mut THCharTensor, t: *mut THCharTensor,
14942                                src: *mut THCharTensor);
14943}
14944extern "C" {
14945    pub fn THCharTensor_addcmul(r_: *mut THCharTensor, t: *mut THCharTensor,
14946                                value: ::std::os::raw::c_char,
14947                                src1: *mut THCharTensor,
14948                                src2: *mut THCharTensor);
14949}
14950extern "C" {
14951    pub fn THCharTensor_addcdiv(r_: *mut THCharTensor, t: *mut THCharTensor,
14952                                value: ::std::os::raw::c_char,
14953                                src1: *mut THCharTensor,
14954                                src2: *mut THCharTensor);
14955}
14956extern "C" {
14957    pub fn THCharTensor_addmv(r_: *mut THCharTensor,
14958                              beta: ::std::os::raw::c_char,
14959                              t: *mut THCharTensor,
14960                              alpha: ::std::os::raw::c_char,
14961                              mat: *mut THCharTensor, vec: *mut THCharTensor);
14962}
14963extern "C" {
14964    pub fn THCharTensor_addmm(r_: *mut THCharTensor,
14965                              beta: ::std::os::raw::c_char,
14966                              t: *mut THCharTensor,
14967                              alpha: ::std::os::raw::c_char,
14968                              mat1: *mut THCharTensor,
14969                              mat2: *mut THCharTensor);
14970}
14971extern "C" {
14972    pub fn THCharTensor_addr(r_: *mut THCharTensor,
14973                             beta: ::std::os::raw::c_char,
14974                             t: *mut THCharTensor,
14975                             alpha: ::std::os::raw::c_char,
14976                             vec1: *mut THCharTensor,
14977                             vec2: *mut THCharTensor);
14978}
14979extern "C" {
14980    pub fn THCharTensor_addbmm(r_: *mut THCharTensor,
14981                               beta: ::std::os::raw::c_char,
14982                               t: *mut THCharTensor,
14983                               alpha: ::std::os::raw::c_char,
14984                               batch1: *mut THCharTensor,
14985                               batch2: *mut THCharTensor);
14986}
14987extern "C" {
14988    pub fn THCharTensor_baddbmm(r_: *mut THCharTensor,
14989                                beta: ::std::os::raw::c_char,
14990                                t: *mut THCharTensor,
14991                                alpha: ::std::os::raw::c_char,
14992                                batch1: *mut THCharTensor,
14993                                batch2: *mut THCharTensor);
14994}
14995extern "C" {
14996    pub fn THCharTensor_match(r_: *mut THCharTensor, m1: *mut THCharTensor,
14997                              m2: *mut THCharTensor,
14998                              gain: ::std::os::raw::c_char);
14999}
15000extern "C" {
15001    pub fn THCharTensor_numel(t: *mut THCharTensor) -> isize;
15002}
15003extern "C" {
15004    pub fn THCharTensor_max(values_: *mut THCharTensor,
15005                            indices_: *mut THLongTensor, t: *mut THCharTensor,
15006                            dimension: ::std::os::raw::c_int,
15007                            keepdim: ::std::os::raw::c_int);
15008}
15009extern "C" {
15010    pub fn THCharTensor_min(values_: *mut THCharTensor,
15011                            indices_: *mut THLongTensor, t: *mut THCharTensor,
15012                            dimension: ::std::os::raw::c_int,
15013                            keepdim: ::std::os::raw::c_int);
15014}
15015extern "C" {
15016    pub fn THCharTensor_kthvalue(values_: *mut THCharTensor,
15017                                 indices_: *mut THLongTensor,
15018                                 t: *mut THCharTensor,
15019                                 k: ::std::os::raw::c_long,
15020                                 dimension: ::std::os::raw::c_int,
15021                                 keepdim: ::std::os::raw::c_int);
15022}
15023extern "C" {
15024    pub fn THCharTensor_mode(values_: *mut THCharTensor,
15025                             indices_: *mut THLongTensor,
15026                             t: *mut THCharTensor,
15027                             dimension: ::std::os::raw::c_int,
15028                             keepdim: ::std::os::raw::c_int);
15029}
15030extern "C" {
15031    pub fn THCharTensor_median(values_: *mut THCharTensor,
15032                               indices_: *mut THLongTensor,
15033                               t: *mut THCharTensor,
15034                               dimension: ::std::os::raw::c_int,
15035                               keepdim: ::std::os::raw::c_int);
15036}
15037extern "C" {
15038    pub fn THCharTensor_sum(r_: *mut THCharTensor, t: *mut THCharTensor,
15039                            dimension: ::std::os::raw::c_int,
15040                            keepdim: ::std::os::raw::c_int);
15041}
15042extern "C" {
15043    pub fn THCharTensor_prod(r_: *mut THCharTensor, t: *mut THCharTensor,
15044                             dimension: ::std::os::raw::c_int,
15045                             keepdim: ::std::os::raw::c_int);
15046}
15047extern "C" {
15048    pub fn THCharTensor_cumsum(r_: *mut THCharTensor, t: *mut THCharTensor,
15049                               dimension: ::std::os::raw::c_int);
15050}
15051extern "C" {
15052    pub fn THCharTensor_cumprod(r_: *mut THCharTensor, t: *mut THCharTensor,
15053                                dimension: ::std::os::raw::c_int);
15054}
15055extern "C" {
15056    pub fn THCharTensor_sign(r_: *mut THCharTensor, t: *mut THCharTensor);
15057}
15058extern "C" {
15059    pub fn THCharTensor_trace(t: *mut THCharTensor) -> ::std::os::raw::c_long;
15060}
15061extern "C" {
15062    pub fn THCharTensor_cross(r_: *mut THCharTensor, a: *mut THCharTensor,
15063                              b: *mut THCharTensor,
15064                              dimension: ::std::os::raw::c_int);
15065}
15066extern "C" {
15067    pub fn THCharTensor_cmax(r: *mut THCharTensor, t: *mut THCharTensor,
15068                             src: *mut THCharTensor);
15069}
15070extern "C" {
15071    pub fn THCharTensor_cmin(r: *mut THCharTensor, t: *mut THCharTensor,
15072                             src: *mut THCharTensor);
15073}
15074extern "C" {
15075    pub fn THCharTensor_cmaxValue(r: *mut THCharTensor, t: *mut THCharTensor,
15076                                  value: ::std::os::raw::c_char);
15077}
15078extern "C" {
15079    pub fn THCharTensor_cminValue(r: *mut THCharTensor, t: *mut THCharTensor,
15080                                  value: ::std::os::raw::c_char);
15081}
15082extern "C" {
15083    pub fn THCharTensor_zeros(r_: *mut THCharTensor,
15084                              size: *mut THLongStorage);
15085}
15086extern "C" {
15087    pub fn THCharTensor_ones(r_: *mut THCharTensor, size: *mut THLongStorage);
15088}
15089extern "C" {
15090    pub fn THCharTensor_diag(r_: *mut THCharTensor, t: *mut THCharTensor,
15091                             k: ::std::os::raw::c_int);
15092}
15093extern "C" {
15094    pub fn THCharTensor_eye(r_: *mut THCharTensor, n: ::std::os::raw::c_long,
15095                            m: ::std::os::raw::c_long);
15096}
15097extern "C" {
15098    pub fn THCharTensor_arange(r_: *mut THCharTensor,
15099                               xmin: ::std::os::raw::c_long,
15100                               xmax: ::std::os::raw::c_long,
15101                               step: ::std::os::raw::c_long);
15102}
15103extern "C" {
15104    pub fn THCharTensor_range(r_: *mut THCharTensor,
15105                              xmin: ::std::os::raw::c_long,
15106                              xmax: ::std::os::raw::c_long,
15107                              step: ::std::os::raw::c_long);
15108}
15109extern "C" {
15110    pub fn THCharTensor_randperm(r_: *mut THCharTensor,
15111                                 _generator: *mut THGenerator,
15112                                 n: ::std::os::raw::c_long);
15113}
15114extern "C" {
15115    pub fn THCharTensor_reshape(r_: *mut THCharTensor, t: *mut THCharTensor,
15116                                size: *mut THLongStorage);
15117}
15118extern "C" {
15119    pub fn THCharTensor_sort(rt_: *mut THCharTensor, ri_: *mut THLongTensor,
15120                             t: *mut THCharTensor,
15121                             dimension: ::std::os::raw::c_int,
15122                             descendingOrder: ::std::os::raw::c_int);
15123}
15124extern "C" {
15125    pub fn THCharTensor_topk(rt_: *mut THCharTensor, ri_: *mut THLongTensor,
15126                             t: *mut THCharTensor, k: ::std::os::raw::c_long,
15127                             dim: ::std::os::raw::c_int,
15128                             dir: ::std::os::raw::c_int,
15129                             sorted: ::std::os::raw::c_int);
15130}
15131extern "C" {
15132    pub fn THCharTensor_tril(r_: *mut THCharTensor, t: *mut THCharTensor,
15133                             k: ::std::os::raw::c_long);
15134}
15135extern "C" {
15136    pub fn THCharTensor_triu(r_: *mut THCharTensor, t: *mut THCharTensor,
15137                             k: ::std::os::raw::c_long);
15138}
15139extern "C" {
15140    pub fn THCharTensor_cat(r_: *mut THCharTensor, ta: *mut THCharTensor,
15141                            tb: *mut THCharTensor,
15142                            dimension: ::std::os::raw::c_int);
15143}
15144extern "C" {
15145    pub fn THCharTensor_catArray(result: *mut THCharTensor,
15146                                 inputs: *mut *mut THCharTensor,
15147                                 numInputs: ::std::os::raw::c_int,
15148                                 dimension: ::std::os::raw::c_int);
15149}
15150extern "C" {
15151    pub fn THCharTensor_equal(ta: *mut THCharTensor, tb: *mut THCharTensor)
15152     -> ::std::os::raw::c_int;
15153}
15154extern "C" {
15155    pub fn THCharTensor_ltValue(r_: *mut THByteTensor, t: *mut THCharTensor,
15156                                value: ::std::os::raw::c_char);
15157}
15158extern "C" {
15159    pub fn THCharTensor_leValue(r_: *mut THByteTensor, t: *mut THCharTensor,
15160                                value: ::std::os::raw::c_char);
15161}
15162extern "C" {
15163    pub fn THCharTensor_gtValue(r_: *mut THByteTensor, t: *mut THCharTensor,
15164                                value: ::std::os::raw::c_char);
15165}
15166extern "C" {
15167    pub fn THCharTensor_geValue(r_: *mut THByteTensor, t: *mut THCharTensor,
15168                                value: ::std::os::raw::c_char);
15169}
15170extern "C" {
15171    pub fn THCharTensor_neValue(r_: *mut THByteTensor, t: *mut THCharTensor,
15172                                value: ::std::os::raw::c_char);
15173}
15174extern "C" {
15175    pub fn THCharTensor_eqValue(r_: *mut THByteTensor, t: *mut THCharTensor,
15176                                value: ::std::os::raw::c_char);
15177}
15178extern "C" {
15179    pub fn THCharTensor_ltValueT(r_: *mut THCharTensor, t: *mut THCharTensor,
15180                                 value: ::std::os::raw::c_char);
15181}
15182extern "C" {
15183    pub fn THCharTensor_leValueT(r_: *mut THCharTensor, t: *mut THCharTensor,
15184                                 value: ::std::os::raw::c_char);
15185}
15186extern "C" {
15187    pub fn THCharTensor_gtValueT(r_: *mut THCharTensor, t: *mut THCharTensor,
15188                                 value: ::std::os::raw::c_char);
15189}
15190extern "C" {
15191    pub fn THCharTensor_geValueT(r_: *mut THCharTensor, t: *mut THCharTensor,
15192                                 value: ::std::os::raw::c_char);
15193}
15194extern "C" {
15195    pub fn THCharTensor_neValueT(r_: *mut THCharTensor, t: *mut THCharTensor,
15196                                 value: ::std::os::raw::c_char);
15197}
15198extern "C" {
15199    pub fn THCharTensor_eqValueT(r_: *mut THCharTensor, t: *mut THCharTensor,
15200                                 value: ::std::os::raw::c_char);
15201}
15202extern "C" {
15203    pub fn THCharTensor_ltTensor(r_: *mut THByteTensor, ta: *mut THCharTensor,
15204                                 tb: *mut THCharTensor);
15205}
15206extern "C" {
15207    pub fn THCharTensor_leTensor(r_: *mut THByteTensor, ta: *mut THCharTensor,
15208                                 tb: *mut THCharTensor);
15209}
15210extern "C" {
15211    pub fn THCharTensor_gtTensor(r_: *mut THByteTensor, ta: *mut THCharTensor,
15212                                 tb: *mut THCharTensor);
15213}
15214extern "C" {
15215    pub fn THCharTensor_geTensor(r_: *mut THByteTensor, ta: *mut THCharTensor,
15216                                 tb: *mut THCharTensor);
15217}
15218extern "C" {
15219    pub fn THCharTensor_neTensor(r_: *mut THByteTensor, ta: *mut THCharTensor,
15220                                 tb: *mut THCharTensor);
15221}
15222extern "C" {
15223    pub fn THCharTensor_eqTensor(r_: *mut THByteTensor, ta: *mut THCharTensor,
15224                                 tb: *mut THCharTensor);
15225}
15226extern "C" {
15227    pub fn THCharTensor_ltTensorT(r_: *mut THCharTensor,
15228                                  ta: *mut THCharTensor,
15229                                  tb: *mut THCharTensor);
15230}
15231extern "C" {
15232    pub fn THCharTensor_leTensorT(r_: *mut THCharTensor,
15233                                  ta: *mut THCharTensor,
15234                                  tb: *mut THCharTensor);
15235}
15236extern "C" {
15237    pub fn THCharTensor_gtTensorT(r_: *mut THCharTensor,
15238                                  ta: *mut THCharTensor,
15239                                  tb: *mut THCharTensor);
15240}
15241extern "C" {
15242    pub fn THCharTensor_geTensorT(r_: *mut THCharTensor,
15243                                  ta: *mut THCharTensor,
15244                                  tb: *mut THCharTensor);
15245}
15246extern "C" {
15247    pub fn THCharTensor_neTensorT(r_: *mut THCharTensor,
15248                                  ta: *mut THCharTensor,
15249                                  tb: *mut THCharTensor);
15250}
15251extern "C" {
15252    pub fn THCharTensor_eqTensorT(r_: *mut THCharTensor,
15253                                  ta: *mut THCharTensor,
15254                                  tb: *mut THCharTensor);
15255}
15256extern "C" {
15257    pub fn THShortTensor_fill(r_: *mut THShortTensor,
15258                              value: ::std::os::raw::c_short);
15259}
15260extern "C" {
15261    pub fn THShortTensor_zero(r_: *mut THShortTensor);
15262}
15263extern "C" {
15264    pub fn THShortTensor_maskedFill(tensor: *mut THShortTensor,
15265                                    mask: *mut THByteTensor,
15266                                    value: ::std::os::raw::c_short);
15267}
15268extern "C" {
15269    pub fn THShortTensor_maskedCopy(tensor: *mut THShortTensor,
15270                                    mask: *mut THByteTensor,
15271                                    src: *mut THShortTensor);
15272}
15273extern "C" {
15274    pub fn THShortTensor_maskedSelect(tensor: *mut THShortTensor,
15275                                      src: *mut THShortTensor,
15276                                      mask: *mut THByteTensor);
15277}
15278extern "C" {
15279    pub fn THShortTensor_nonzero(subscript: *mut THLongTensor,
15280                                 tensor: *mut THShortTensor);
15281}
15282extern "C" {
15283    pub fn THShortTensor_indexSelect(tensor: *mut THShortTensor,
15284                                     src: *mut THShortTensor,
15285                                     dim: ::std::os::raw::c_int,
15286                                     index: *mut THLongTensor);
15287}
15288extern "C" {
15289    pub fn THShortTensor_indexCopy(tensor: *mut THShortTensor,
15290                                   dim: ::std::os::raw::c_int,
15291                                   index: *mut THLongTensor,
15292                                   src: *mut THShortTensor);
15293}
15294extern "C" {
15295    pub fn THShortTensor_indexAdd(tensor: *mut THShortTensor,
15296                                  dim: ::std::os::raw::c_int,
15297                                  index: *mut THLongTensor,
15298                                  src: *mut THShortTensor);
15299}
15300extern "C" {
15301    pub fn THShortTensor_indexFill(tensor: *mut THShortTensor,
15302                                   dim: ::std::os::raw::c_int,
15303                                   index: *mut THLongTensor,
15304                                   val: ::std::os::raw::c_short);
15305}
15306extern "C" {
15307    pub fn THShortTensor_gather(tensor: *mut THShortTensor,
15308                                src: *mut THShortTensor,
15309                                dim: ::std::os::raw::c_int,
15310                                index: *mut THLongTensor);
15311}
15312extern "C" {
15313    pub fn THShortTensor_scatter(tensor: *mut THShortTensor,
15314                                 dim: ::std::os::raw::c_int,
15315                                 index: *mut THLongTensor,
15316                                 src: *mut THShortTensor);
15317}
15318extern "C" {
15319    pub fn THShortTensor_scatterAdd(tensor: *mut THShortTensor,
15320                                    dim: ::std::os::raw::c_int,
15321                                    index: *mut THLongTensor,
15322                                    src: *mut THShortTensor);
15323}
15324extern "C" {
15325    pub fn THShortTensor_scatterFill(tensor: *mut THShortTensor,
15326                                     dim: ::std::os::raw::c_int,
15327                                     index: *mut THLongTensor,
15328                                     val: ::std::os::raw::c_short);
15329}
15330extern "C" {
15331    pub fn THShortTensor_dot(t: *mut THShortTensor, src: *mut THShortTensor)
15332     -> ::std::os::raw::c_long;
15333}
15334extern "C" {
15335    pub fn THShortTensor_minall(t: *mut THShortTensor)
15336     -> ::std::os::raw::c_short;
15337}
15338extern "C" {
15339    pub fn THShortTensor_maxall(t: *mut THShortTensor)
15340     -> ::std::os::raw::c_short;
15341}
15342extern "C" {
15343    pub fn THShortTensor_medianall(t: *mut THShortTensor)
15344     -> ::std::os::raw::c_short;
15345}
15346extern "C" {
15347    pub fn THShortTensor_sumall(t: *mut THShortTensor)
15348     -> ::std::os::raw::c_long;
15349}
15350extern "C" {
15351    pub fn THShortTensor_prodall(t: *mut THShortTensor)
15352     -> ::std::os::raw::c_long;
15353}
15354extern "C" {
15355    pub fn THShortTensor_neg(self_: *mut THShortTensor,
15356                             src: *mut THShortTensor);
15357}
15358extern "C" {
15359    pub fn THShortTensor_cinv(self_: *mut THShortTensor,
15360                              src: *mut THShortTensor);
15361}
15362extern "C" {
15363    pub fn THShortTensor_add(r_: *mut THShortTensor, t: *mut THShortTensor,
15364                             value: ::std::os::raw::c_short);
15365}
15366extern "C" {
15367    pub fn THShortTensor_sub(self_: *mut THShortTensor,
15368                             src: *mut THShortTensor,
15369                             value: ::std::os::raw::c_short);
15370}
15371extern "C" {
15372    pub fn THShortTensor_mul(r_: *mut THShortTensor, t: *mut THShortTensor,
15373                             value: ::std::os::raw::c_short);
15374}
15375extern "C" {
15376    pub fn THShortTensor_div(r_: *mut THShortTensor, t: *mut THShortTensor,
15377                             value: ::std::os::raw::c_short);
15378}
15379extern "C" {
15380    pub fn THShortTensor_lshift(r_: *mut THShortTensor, t: *mut THShortTensor,
15381                                value: ::std::os::raw::c_short);
15382}
15383extern "C" {
15384    pub fn THShortTensor_rshift(r_: *mut THShortTensor, t: *mut THShortTensor,
15385                                value: ::std::os::raw::c_short);
15386}
15387extern "C" {
15388    pub fn THShortTensor_fmod(r_: *mut THShortTensor, t: *mut THShortTensor,
15389                              value: ::std::os::raw::c_short);
15390}
15391extern "C" {
15392    pub fn THShortTensor_remainder(r_: *mut THShortTensor,
15393                                   t: *mut THShortTensor,
15394                                   value: ::std::os::raw::c_short);
15395}
15396extern "C" {
15397    pub fn THShortTensor_clamp(r_: *mut THShortTensor, t: *mut THShortTensor,
15398                               min_value: ::std::os::raw::c_short,
15399                               max_value: ::std::os::raw::c_short);
15400}
15401extern "C" {
15402    pub fn THShortTensor_bitand(r_: *mut THShortTensor, t: *mut THShortTensor,
15403                                value: ::std::os::raw::c_short);
15404}
15405extern "C" {
15406    pub fn THShortTensor_bitor(r_: *mut THShortTensor, t: *mut THShortTensor,
15407                               value: ::std::os::raw::c_short);
15408}
15409extern "C" {
15410    pub fn THShortTensor_bitxor(r_: *mut THShortTensor, t: *mut THShortTensor,
15411                                value: ::std::os::raw::c_short);
15412}
15413extern "C" {
15414    pub fn THShortTensor_cadd(r_: *mut THShortTensor, t: *mut THShortTensor,
15415                              value: ::std::os::raw::c_short,
15416                              src: *mut THShortTensor);
15417}
15418extern "C" {
15419    pub fn THShortTensor_csub(self_: *mut THShortTensor,
15420                              src1: *mut THShortTensor,
15421                              value: ::std::os::raw::c_short,
15422                              src2: *mut THShortTensor);
15423}
15424extern "C" {
15425    pub fn THShortTensor_cmul(r_: *mut THShortTensor, t: *mut THShortTensor,
15426                              src: *mut THShortTensor);
15427}
15428extern "C" {
15429    pub fn THShortTensor_cpow(r_: *mut THShortTensor, t: *mut THShortTensor,
15430                              src: *mut THShortTensor);
15431}
15432extern "C" {
15433    pub fn THShortTensor_cdiv(r_: *mut THShortTensor, t: *mut THShortTensor,
15434                              src: *mut THShortTensor);
15435}
15436extern "C" {
15437    pub fn THShortTensor_clshift(r_: *mut THShortTensor,
15438                                 t: *mut THShortTensor,
15439                                 src: *mut THShortTensor);
15440}
15441extern "C" {
15442    pub fn THShortTensor_crshift(r_: *mut THShortTensor,
15443                                 t: *mut THShortTensor,
15444                                 src: *mut THShortTensor);
15445}
15446extern "C" {
15447    pub fn THShortTensor_cfmod(r_: *mut THShortTensor, t: *mut THShortTensor,
15448                               src: *mut THShortTensor);
15449}
15450extern "C" {
15451    pub fn THShortTensor_cremainder(r_: *mut THShortTensor,
15452                                    t: *mut THShortTensor,
15453                                    src: *mut THShortTensor);
15454}
15455extern "C" {
15456    pub fn THShortTensor_cbitand(r_: *mut THShortTensor,
15457                                 t: *mut THShortTensor,
15458                                 src: *mut THShortTensor);
15459}
15460extern "C" {
15461    pub fn THShortTensor_cbitor(r_: *mut THShortTensor, t: *mut THShortTensor,
15462                                src: *mut THShortTensor);
15463}
15464extern "C" {
15465    pub fn THShortTensor_cbitxor(r_: *mut THShortTensor,
15466                                 t: *mut THShortTensor,
15467                                 src: *mut THShortTensor);
15468}
15469extern "C" {
15470    pub fn THShortTensor_addcmul(r_: *mut THShortTensor,
15471                                 t: *mut THShortTensor,
15472                                 value: ::std::os::raw::c_short,
15473                                 src1: *mut THShortTensor,
15474                                 src2: *mut THShortTensor);
15475}
15476extern "C" {
15477    pub fn THShortTensor_addcdiv(r_: *mut THShortTensor,
15478                                 t: *mut THShortTensor,
15479                                 value: ::std::os::raw::c_short,
15480                                 src1: *mut THShortTensor,
15481                                 src2: *mut THShortTensor);
15482}
15483extern "C" {
15484    pub fn THShortTensor_addmv(r_: *mut THShortTensor,
15485                               beta: ::std::os::raw::c_short,
15486                               t: *mut THShortTensor,
15487                               alpha: ::std::os::raw::c_short,
15488                               mat: *mut THShortTensor,
15489                               vec: *mut THShortTensor);
15490}
15491extern "C" {
15492    pub fn THShortTensor_addmm(r_: *mut THShortTensor,
15493                               beta: ::std::os::raw::c_short,
15494                               t: *mut THShortTensor,
15495                               alpha: ::std::os::raw::c_short,
15496                               mat1: *mut THShortTensor,
15497                               mat2: *mut THShortTensor);
15498}
15499extern "C" {
15500    pub fn THShortTensor_addr(r_: *mut THShortTensor,
15501                              beta: ::std::os::raw::c_short,
15502                              t: *mut THShortTensor,
15503                              alpha: ::std::os::raw::c_short,
15504                              vec1: *mut THShortTensor,
15505                              vec2: *mut THShortTensor);
15506}
15507extern "C" {
15508    pub fn THShortTensor_addbmm(r_: *mut THShortTensor,
15509                                beta: ::std::os::raw::c_short,
15510                                t: *mut THShortTensor,
15511                                alpha: ::std::os::raw::c_short,
15512                                batch1: *mut THShortTensor,
15513                                batch2: *mut THShortTensor);
15514}
15515extern "C" {
15516    pub fn THShortTensor_baddbmm(r_: *mut THShortTensor,
15517                                 beta: ::std::os::raw::c_short,
15518                                 t: *mut THShortTensor,
15519                                 alpha: ::std::os::raw::c_short,
15520                                 batch1: *mut THShortTensor,
15521                                 batch2: *mut THShortTensor);
15522}
15523extern "C" {
15524    pub fn THShortTensor_match(r_: *mut THShortTensor, m1: *mut THShortTensor,
15525                               m2: *mut THShortTensor,
15526                               gain: ::std::os::raw::c_short);
15527}
15528extern "C" {
15529    pub fn THShortTensor_numel(t: *mut THShortTensor) -> isize;
15530}
15531extern "C" {
15532    pub fn THShortTensor_max(values_: *mut THShortTensor,
15533                             indices_: *mut THLongTensor,
15534                             t: *mut THShortTensor,
15535                             dimension: ::std::os::raw::c_int,
15536                             keepdim: ::std::os::raw::c_int);
15537}
15538extern "C" {
15539    pub fn THShortTensor_min(values_: *mut THShortTensor,
15540                             indices_: *mut THLongTensor,
15541                             t: *mut THShortTensor,
15542                             dimension: ::std::os::raw::c_int,
15543                             keepdim: ::std::os::raw::c_int);
15544}
15545extern "C" {
15546    pub fn THShortTensor_kthvalue(values_: *mut THShortTensor,
15547                                  indices_: *mut THLongTensor,
15548                                  t: *mut THShortTensor,
15549                                  k: ::std::os::raw::c_long,
15550                                  dimension: ::std::os::raw::c_int,
15551                                  keepdim: ::std::os::raw::c_int);
15552}
15553extern "C" {
15554    pub fn THShortTensor_mode(values_: *mut THShortTensor,
15555                              indices_: *mut THLongTensor,
15556                              t: *mut THShortTensor,
15557                              dimension: ::std::os::raw::c_int,
15558                              keepdim: ::std::os::raw::c_int);
15559}
15560extern "C" {
15561    pub fn THShortTensor_median(values_: *mut THShortTensor,
15562                                indices_: *mut THLongTensor,
15563                                t: *mut THShortTensor,
15564                                dimension: ::std::os::raw::c_int,
15565                                keepdim: ::std::os::raw::c_int);
15566}
15567extern "C" {
15568    pub fn THShortTensor_sum(r_: *mut THShortTensor, t: *mut THShortTensor,
15569                             dimension: ::std::os::raw::c_int,
15570                             keepdim: ::std::os::raw::c_int);
15571}
15572extern "C" {
15573    pub fn THShortTensor_prod(r_: *mut THShortTensor, t: *mut THShortTensor,
15574                              dimension: ::std::os::raw::c_int,
15575                              keepdim: ::std::os::raw::c_int);
15576}
15577extern "C" {
15578    pub fn THShortTensor_cumsum(r_: *mut THShortTensor, t: *mut THShortTensor,
15579                                dimension: ::std::os::raw::c_int);
15580}
15581extern "C" {
15582    pub fn THShortTensor_cumprod(r_: *mut THShortTensor,
15583                                 t: *mut THShortTensor,
15584                                 dimension: ::std::os::raw::c_int);
15585}
15586extern "C" {
15587    pub fn THShortTensor_sign(r_: *mut THShortTensor, t: *mut THShortTensor);
15588}
15589extern "C" {
15590    pub fn THShortTensor_trace(t: *mut THShortTensor)
15591     -> ::std::os::raw::c_long;
15592}
15593extern "C" {
15594    pub fn THShortTensor_cross(r_: *mut THShortTensor, a: *mut THShortTensor,
15595                               b: *mut THShortTensor,
15596                               dimension: ::std::os::raw::c_int);
15597}
15598extern "C" {
15599    pub fn THShortTensor_cmax(r: *mut THShortTensor, t: *mut THShortTensor,
15600                              src: *mut THShortTensor);
15601}
15602extern "C" {
15603    pub fn THShortTensor_cmin(r: *mut THShortTensor, t: *mut THShortTensor,
15604                              src: *mut THShortTensor);
15605}
15606extern "C" {
15607    pub fn THShortTensor_cmaxValue(r: *mut THShortTensor,
15608                                   t: *mut THShortTensor,
15609                                   value: ::std::os::raw::c_short);
15610}
15611extern "C" {
15612    pub fn THShortTensor_cminValue(r: *mut THShortTensor,
15613                                   t: *mut THShortTensor,
15614                                   value: ::std::os::raw::c_short);
15615}
15616extern "C" {
15617    pub fn THShortTensor_zeros(r_: *mut THShortTensor,
15618                               size: *mut THLongStorage);
15619}
15620extern "C" {
15621    pub fn THShortTensor_ones(r_: *mut THShortTensor,
15622                              size: *mut THLongStorage);
15623}
15624extern "C" {
15625    pub fn THShortTensor_diag(r_: *mut THShortTensor, t: *mut THShortTensor,
15626                              k: ::std::os::raw::c_int);
15627}
15628extern "C" {
15629    pub fn THShortTensor_eye(r_: *mut THShortTensor,
15630                             n: ::std::os::raw::c_long,
15631                             m: ::std::os::raw::c_long);
15632}
15633extern "C" {
15634    pub fn THShortTensor_arange(r_: *mut THShortTensor,
15635                                xmin: ::std::os::raw::c_long,
15636                                xmax: ::std::os::raw::c_long,
15637                                step: ::std::os::raw::c_long);
15638}
15639extern "C" {
15640    pub fn THShortTensor_range(r_: *mut THShortTensor,
15641                               xmin: ::std::os::raw::c_long,
15642                               xmax: ::std::os::raw::c_long,
15643                               step: ::std::os::raw::c_long);
15644}
15645extern "C" {
15646    pub fn THShortTensor_randperm(r_: *mut THShortTensor,
15647                                  _generator: *mut THGenerator,
15648                                  n: ::std::os::raw::c_long);
15649}
15650extern "C" {
15651    pub fn THShortTensor_reshape(r_: *mut THShortTensor,
15652                                 t: *mut THShortTensor,
15653                                 size: *mut THLongStorage);
15654}
15655extern "C" {
15656    pub fn THShortTensor_sort(rt_: *mut THShortTensor, ri_: *mut THLongTensor,
15657                              t: *mut THShortTensor,
15658                              dimension: ::std::os::raw::c_int,
15659                              descendingOrder: ::std::os::raw::c_int);
15660}
15661extern "C" {
15662    pub fn THShortTensor_topk(rt_: *mut THShortTensor, ri_: *mut THLongTensor,
15663                              t: *mut THShortTensor,
15664                              k: ::std::os::raw::c_long,
15665                              dim: ::std::os::raw::c_int,
15666                              dir: ::std::os::raw::c_int,
15667                              sorted: ::std::os::raw::c_int);
15668}
15669extern "C" {
15670    pub fn THShortTensor_tril(r_: *mut THShortTensor, t: *mut THShortTensor,
15671                              k: ::std::os::raw::c_long);
15672}
15673extern "C" {
15674    pub fn THShortTensor_triu(r_: *mut THShortTensor, t: *mut THShortTensor,
15675                              k: ::std::os::raw::c_long);
15676}
15677extern "C" {
15678    pub fn THShortTensor_cat(r_: *mut THShortTensor, ta: *mut THShortTensor,
15679                             tb: *mut THShortTensor,
15680                             dimension: ::std::os::raw::c_int);
15681}
15682extern "C" {
15683    pub fn THShortTensor_catArray(result: *mut THShortTensor,
15684                                  inputs: *mut *mut THShortTensor,
15685                                  numInputs: ::std::os::raw::c_int,
15686                                  dimension: ::std::os::raw::c_int);
15687}
15688extern "C" {
15689    pub fn THShortTensor_equal(ta: *mut THShortTensor, tb: *mut THShortTensor)
15690     -> ::std::os::raw::c_int;
15691}
15692extern "C" {
15693    pub fn THShortTensor_ltValue(r_: *mut THByteTensor, t: *mut THShortTensor,
15694                                 value: ::std::os::raw::c_short);
15695}
15696extern "C" {
15697    pub fn THShortTensor_leValue(r_: *mut THByteTensor, t: *mut THShortTensor,
15698                                 value: ::std::os::raw::c_short);
15699}
15700extern "C" {
15701    pub fn THShortTensor_gtValue(r_: *mut THByteTensor, t: *mut THShortTensor,
15702                                 value: ::std::os::raw::c_short);
15703}
15704extern "C" {
15705    pub fn THShortTensor_geValue(r_: *mut THByteTensor, t: *mut THShortTensor,
15706                                 value: ::std::os::raw::c_short);
15707}
15708extern "C" {
15709    pub fn THShortTensor_neValue(r_: *mut THByteTensor, t: *mut THShortTensor,
15710                                 value: ::std::os::raw::c_short);
15711}
15712extern "C" {
15713    pub fn THShortTensor_eqValue(r_: *mut THByteTensor, t: *mut THShortTensor,
15714                                 value: ::std::os::raw::c_short);
15715}
15716extern "C" {
15717    pub fn THShortTensor_ltValueT(r_: *mut THShortTensor,
15718                                  t: *mut THShortTensor,
15719                                  value: ::std::os::raw::c_short);
15720}
15721extern "C" {
15722    pub fn THShortTensor_leValueT(r_: *mut THShortTensor,
15723                                  t: *mut THShortTensor,
15724                                  value: ::std::os::raw::c_short);
15725}
15726extern "C" {
15727    pub fn THShortTensor_gtValueT(r_: *mut THShortTensor,
15728                                  t: *mut THShortTensor,
15729                                  value: ::std::os::raw::c_short);
15730}
15731extern "C" {
15732    pub fn THShortTensor_geValueT(r_: *mut THShortTensor,
15733                                  t: *mut THShortTensor,
15734                                  value: ::std::os::raw::c_short);
15735}
15736extern "C" {
15737    pub fn THShortTensor_neValueT(r_: *mut THShortTensor,
15738                                  t: *mut THShortTensor,
15739                                  value: ::std::os::raw::c_short);
15740}
15741extern "C" {
15742    pub fn THShortTensor_eqValueT(r_: *mut THShortTensor,
15743                                  t: *mut THShortTensor,
15744                                  value: ::std::os::raw::c_short);
15745}
15746extern "C" {
15747    pub fn THShortTensor_ltTensor(r_: *mut THByteTensor,
15748                                  ta: *mut THShortTensor,
15749                                  tb: *mut THShortTensor);
15750}
15751extern "C" {
15752    pub fn THShortTensor_leTensor(r_: *mut THByteTensor,
15753                                  ta: *mut THShortTensor,
15754                                  tb: *mut THShortTensor);
15755}
15756extern "C" {
15757    pub fn THShortTensor_gtTensor(r_: *mut THByteTensor,
15758                                  ta: *mut THShortTensor,
15759                                  tb: *mut THShortTensor);
15760}
15761extern "C" {
15762    pub fn THShortTensor_geTensor(r_: *mut THByteTensor,
15763                                  ta: *mut THShortTensor,
15764                                  tb: *mut THShortTensor);
15765}
15766extern "C" {
15767    pub fn THShortTensor_neTensor(r_: *mut THByteTensor,
15768                                  ta: *mut THShortTensor,
15769                                  tb: *mut THShortTensor);
15770}
15771extern "C" {
15772    pub fn THShortTensor_eqTensor(r_: *mut THByteTensor,
15773                                  ta: *mut THShortTensor,
15774                                  tb: *mut THShortTensor);
15775}
15776extern "C" {
15777    pub fn THShortTensor_ltTensorT(r_: *mut THShortTensor,
15778                                   ta: *mut THShortTensor,
15779                                   tb: *mut THShortTensor);
15780}
15781extern "C" {
15782    pub fn THShortTensor_leTensorT(r_: *mut THShortTensor,
15783                                   ta: *mut THShortTensor,
15784                                   tb: *mut THShortTensor);
15785}
15786extern "C" {
15787    pub fn THShortTensor_gtTensorT(r_: *mut THShortTensor,
15788                                   ta: *mut THShortTensor,
15789                                   tb: *mut THShortTensor);
15790}
15791extern "C" {
15792    pub fn THShortTensor_geTensorT(r_: *mut THShortTensor,
15793                                   ta: *mut THShortTensor,
15794                                   tb: *mut THShortTensor);
15795}
15796extern "C" {
15797    pub fn THShortTensor_neTensorT(r_: *mut THShortTensor,
15798                                   ta: *mut THShortTensor,
15799                                   tb: *mut THShortTensor);
15800}
15801extern "C" {
15802    pub fn THShortTensor_eqTensorT(r_: *mut THShortTensor,
15803                                   ta: *mut THShortTensor,
15804                                   tb: *mut THShortTensor);
15805}
15806extern "C" {
15807    pub fn THShortTensor_abs(r_: *mut THShortTensor, t: *mut THShortTensor);
15808}
15809extern "C" {
15810    pub fn THIntTensor_fill(r_: *mut THIntTensor,
15811                            value: ::std::os::raw::c_int);
15812}
15813extern "C" {
15814    pub fn THIntTensor_zero(r_: *mut THIntTensor);
15815}
15816extern "C" {
15817    pub fn THIntTensor_maskedFill(tensor: *mut THIntTensor,
15818                                  mask: *mut THByteTensor,
15819                                  value: ::std::os::raw::c_int);
15820}
15821extern "C" {
15822    pub fn THIntTensor_maskedCopy(tensor: *mut THIntTensor,
15823                                  mask: *mut THByteTensor,
15824                                  src: *mut THIntTensor);
15825}
15826extern "C" {
15827    pub fn THIntTensor_maskedSelect(tensor: *mut THIntTensor,
15828                                    src: *mut THIntTensor,
15829                                    mask: *mut THByteTensor);
15830}
15831extern "C" {
15832    pub fn THIntTensor_nonzero(subscript: *mut THLongTensor,
15833                               tensor: *mut THIntTensor);
15834}
15835extern "C" {
15836    pub fn THIntTensor_indexSelect(tensor: *mut THIntTensor,
15837                                   src: *mut THIntTensor,
15838                                   dim: ::std::os::raw::c_int,
15839                                   index: *mut THLongTensor);
15840}
15841extern "C" {
15842    pub fn THIntTensor_indexCopy(tensor: *mut THIntTensor,
15843                                 dim: ::std::os::raw::c_int,
15844                                 index: *mut THLongTensor,
15845                                 src: *mut THIntTensor);
15846}
15847extern "C" {
15848    pub fn THIntTensor_indexAdd(tensor: *mut THIntTensor,
15849                                dim: ::std::os::raw::c_int,
15850                                index: *mut THLongTensor,
15851                                src: *mut THIntTensor);
15852}
15853extern "C" {
15854    pub fn THIntTensor_indexFill(tensor: *mut THIntTensor,
15855                                 dim: ::std::os::raw::c_int,
15856                                 index: *mut THLongTensor,
15857                                 val: ::std::os::raw::c_int);
15858}
15859extern "C" {
15860    pub fn THIntTensor_gather(tensor: *mut THIntTensor, src: *mut THIntTensor,
15861                              dim: ::std::os::raw::c_int,
15862                              index: *mut THLongTensor);
15863}
15864extern "C" {
15865    pub fn THIntTensor_scatter(tensor: *mut THIntTensor,
15866                               dim: ::std::os::raw::c_int,
15867                               index: *mut THLongTensor,
15868                               src: *mut THIntTensor);
15869}
15870extern "C" {
15871    pub fn THIntTensor_scatterAdd(tensor: *mut THIntTensor,
15872                                  dim: ::std::os::raw::c_int,
15873                                  index: *mut THLongTensor,
15874                                  src: *mut THIntTensor);
15875}
15876extern "C" {
15877    pub fn THIntTensor_scatterFill(tensor: *mut THIntTensor,
15878                                   dim: ::std::os::raw::c_int,
15879                                   index: *mut THLongTensor,
15880                                   val: ::std::os::raw::c_int);
15881}
15882extern "C" {
15883    pub fn THIntTensor_dot(t: *mut THIntTensor, src: *mut THIntTensor)
15884     -> ::std::os::raw::c_long;
15885}
15886extern "C" {
15887    pub fn THIntTensor_minall(t: *mut THIntTensor) -> ::std::os::raw::c_int;
15888}
15889extern "C" {
15890    pub fn THIntTensor_maxall(t: *mut THIntTensor) -> ::std::os::raw::c_int;
15891}
15892extern "C" {
15893    pub fn THIntTensor_medianall(t: *mut THIntTensor)
15894     -> ::std::os::raw::c_int;
15895}
15896extern "C" {
15897    pub fn THIntTensor_sumall(t: *mut THIntTensor) -> ::std::os::raw::c_long;
15898}
15899extern "C" {
15900    pub fn THIntTensor_prodall(t: *mut THIntTensor) -> ::std::os::raw::c_long;
15901}
15902extern "C" {
15903    pub fn THIntTensor_neg(self_: *mut THIntTensor, src: *mut THIntTensor);
15904}
15905extern "C" {
15906    pub fn THIntTensor_cinv(self_: *mut THIntTensor, src: *mut THIntTensor);
15907}
15908extern "C" {
15909    pub fn THIntTensor_add(r_: *mut THIntTensor, t: *mut THIntTensor,
15910                           value: ::std::os::raw::c_int);
15911}
15912extern "C" {
15913    pub fn THIntTensor_sub(self_: *mut THIntTensor, src: *mut THIntTensor,
15914                           value: ::std::os::raw::c_int);
15915}
15916extern "C" {
15917    pub fn THIntTensor_mul(r_: *mut THIntTensor, t: *mut THIntTensor,
15918                           value: ::std::os::raw::c_int);
15919}
15920extern "C" {
15921    pub fn THIntTensor_div(r_: *mut THIntTensor, t: *mut THIntTensor,
15922                           value: ::std::os::raw::c_int);
15923}
15924extern "C" {
15925    pub fn THIntTensor_lshift(r_: *mut THIntTensor, t: *mut THIntTensor,
15926                              value: ::std::os::raw::c_int);
15927}
15928extern "C" {
15929    pub fn THIntTensor_rshift(r_: *mut THIntTensor, t: *mut THIntTensor,
15930                              value: ::std::os::raw::c_int);
15931}
15932extern "C" {
15933    pub fn THIntTensor_fmod(r_: *mut THIntTensor, t: *mut THIntTensor,
15934                            value: ::std::os::raw::c_int);
15935}
15936extern "C" {
15937    pub fn THIntTensor_remainder(r_: *mut THIntTensor, t: *mut THIntTensor,
15938                                 value: ::std::os::raw::c_int);
15939}
15940extern "C" {
15941    pub fn THIntTensor_clamp(r_: *mut THIntTensor, t: *mut THIntTensor,
15942                             min_value: ::std::os::raw::c_int,
15943                             max_value: ::std::os::raw::c_int);
15944}
15945extern "C" {
15946    pub fn THIntTensor_bitand(r_: *mut THIntTensor, t: *mut THIntTensor,
15947                              value: ::std::os::raw::c_int);
15948}
15949extern "C" {
15950    pub fn THIntTensor_bitor(r_: *mut THIntTensor, t: *mut THIntTensor,
15951                             value: ::std::os::raw::c_int);
15952}
15953extern "C" {
15954    pub fn THIntTensor_bitxor(r_: *mut THIntTensor, t: *mut THIntTensor,
15955                              value: ::std::os::raw::c_int);
15956}
15957extern "C" {
15958    pub fn THIntTensor_cadd(r_: *mut THIntTensor, t: *mut THIntTensor,
15959                            value: ::std::os::raw::c_int,
15960                            src: *mut THIntTensor);
15961}
15962extern "C" {
15963    pub fn THIntTensor_csub(self_: *mut THIntTensor, src1: *mut THIntTensor,
15964                            value: ::std::os::raw::c_int,
15965                            src2: *mut THIntTensor);
15966}
15967extern "C" {
15968    pub fn THIntTensor_cmul(r_: *mut THIntTensor, t: *mut THIntTensor,
15969                            src: *mut THIntTensor);
15970}
15971extern "C" {
15972    pub fn THIntTensor_cpow(r_: *mut THIntTensor, t: *mut THIntTensor,
15973                            src: *mut THIntTensor);
15974}
15975extern "C" {
15976    pub fn THIntTensor_cdiv(r_: *mut THIntTensor, t: *mut THIntTensor,
15977                            src: *mut THIntTensor);
15978}
15979extern "C" {
15980    pub fn THIntTensor_clshift(r_: *mut THIntTensor, t: *mut THIntTensor,
15981                               src: *mut THIntTensor);
15982}
15983extern "C" {
15984    pub fn THIntTensor_crshift(r_: *mut THIntTensor, t: *mut THIntTensor,
15985                               src: *mut THIntTensor);
15986}
15987extern "C" {
15988    pub fn THIntTensor_cfmod(r_: *mut THIntTensor, t: *mut THIntTensor,
15989                             src: *mut THIntTensor);
15990}
15991extern "C" {
15992    pub fn THIntTensor_cremainder(r_: *mut THIntTensor, t: *mut THIntTensor,
15993                                  src: *mut THIntTensor);
15994}
15995extern "C" {
15996    pub fn THIntTensor_cbitand(r_: *mut THIntTensor, t: *mut THIntTensor,
15997                               src: *mut THIntTensor);
15998}
15999extern "C" {
16000    pub fn THIntTensor_cbitor(r_: *mut THIntTensor, t: *mut THIntTensor,
16001                              src: *mut THIntTensor);
16002}
16003extern "C" {
16004    pub fn THIntTensor_cbitxor(r_: *mut THIntTensor, t: *mut THIntTensor,
16005                               src: *mut THIntTensor);
16006}
16007extern "C" {
16008    pub fn THIntTensor_addcmul(r_: *mut THIntTensor, t: *mut THIntTensor,
16009                               value: ::std::os::raw::c_int,
16010                               src1: *mut THIntTensor,
16011                               src2: *mut THIntTensor);
16012}
16013extern "C" {
16014    pub fn THIntTensor_addcdiv(r_: *mut THIntTensor, t: *mut THIntTensor,
16015                               value: ::std::os::raw::c_int,
16016                               src1: *mut THIntTensor,
16017                               src2: *mut THIntTensor);
16018}
16019extern "C" {
16020    pub fn THIntTensor_addmv(r_: *mut THIntTensor,
16021                             beta: ::std::os::raw::c_int, t: *mut THIntTensor,
16022                             alpha: ::std::os::raw::c_int,
16023                             mat: *mut THIntTensor, vec: *mut THIntTensor);
16024}
16025extern "C" {
16026    pub fn THIntTensor_addmm(r_: *mut THIntTensor,
16027                             beta: ::std::os::raw::c_int, t: *mut THIntTensor,
16028                             alpha: ::std::os::raw::c_int,
16029                             mat1: *mut THIntTensor, mat2: *mut THIntTensor);
16030}
16031extern "C" {
16032    pub fn THIntTensor_addr(r_: *mut THIntTensor, beta: ::std::os::raw::c_int,
16033                            t: *mut THIntTensor, alpha: ::std::os::raw::c_int,
16034                            vec1: *mut THIntTensor, vec2: *mut THIntTensor);
16035}
16036extern "C" {
16037    pub fn THIntTensor_addbmm(r_: *mut THIntTensor,
16038                              beta: ::std::os::raw::c_int,
16039                              t: *mut THIntTensor,
16040                              alpha: ::std::os::raw::c_int,
16041                              batch1: *mut THIntTensor,
16042                              batch2: *mut THIntTensor);
16043}
16044extern "C" {
16045    pub fn THIntTensor_baddbmm(r_: *mut THIntTensor,
16046                               beta: ::std::os::raw::c_int,
16047                               t: *mut THIntTensor,
16048                               alpha: ::std::os::raw::c_int,
16049                               batch1: *mut THIntTensor,
16050                               batch2: *mut THIntTensor);
16051}
16052extern "C" {
16053    pub fn THIntTensor_match(r_: *mut THIntTensor, m1: *mut THIntTensor,
16054                             m2: *mut THIntTensor,
16055                             gain: ::std::os::raw::c_int);
16056}
16057extern "C" {
16058    pub fn THIntTensor_numel(t: *mut THIntTensor) -> isize;
16059}
16060extern "C" {
16061    pub fn THIntTensor_max(values_: *mut THIntTensor,
16062                           indices_: *mut THLongTensor, t: *mut THIntTensor,
16063                           dimension: ::std::os::raw::c_int,
16064                           keepdim: ::std::os::raw::c_int);
16065}
16066extern "C" {
16067    pub fn THIntTensor_min(values_: *mut THIntTensor,
16068                           indices_: *mut THLongTensor, t: *mut THIntTensor,
16069                           dimension: ::std::os::raw::c_int,
16070                           keepdim: ::std::os::raw::c_int);
16071}
16072extern "C" {
16073    pub fn THIntTensor_kthvalue(values_: *mut THIntTensor,
16074                                indices_: *mut THLongTensor,
16075                                t: *mut THIntTensor,
16076                                k: ::std::os::raw::c_long,
16077                                dimension: ::std::os::raw::c_int,
16078                                keepdim: ::std::os::raw::c_int);
16079}
16080extern "C" {
16081    pub fn THIntTensor_mode(values_: *mut THIntTensor,
16082                            indices_: *mut THLongTensor, t: *mut THIntTensor,
16083                            dimension: ::std::os::raw::c_int,
16084                            keepdim: ::std::os::raw::c_int);
16085}
16086extern "C" {
16087    pub fn THIntTensor_median(values_: *mut THIntTensor,
16088                              indices_: *mut THLongTensor,
16089                              t: *mut THIntTensor,
16090                              dimension: ::std::os::raw::c_int,
16091                              keepdim: ::std::os::raw::c_int);
16092}
16093extern "C" {
16094    pub fn THIntTensor_sum(r_: *mut THIntTensor, t: *mut THIntTensor,
16095                           dimension: ::std::os::raw::c_int,
16096                           keepdim: ::std::os::raw::c_int);
16097}
16098extern "C" {
16099    pub fn THIntTensor_prod(r_: *mut THIntTensor, t: *mut THIntTensor,
16100                            dimension: ::std::os::raw::c_int,
16101                            keepdim: ::std::os::raw::c_int);
16102}
16103extern "C" {
16104    pub fn THIntTensor_cumsum(r_: *mut THIntTensor, t: *mut THIntTensor,
16105                              dimension: ::std::os::raw::c_int);
16106}
16107extern "C" {
16108    pub fn THIntTensor_cumprod(r_: *mut THIntTensor, t: *mut THIntTensor,
16109                               dimension: ::std::os::raw::c_int);
16110}
16111extern "C" {
16112    pub fn THIntTensor_sign(r_: *mut THIntTensor, t: *mut THIntTensor);
16113}
16114extern "C" {
16115    pub fn THIntTensor_trace(t: *mut THIntTensor) -> ::std::os::raw::c_long;
16116}
16117extern "C" {
16118    pub fn THIntTensor_cross(r_: *mut THIntTensor, a: *mut THIntTensor,
16119                             b: *mut THIntTensor,
16120                             dimension: ::std::os::raw::c_int);
16121}
16122extern "C" {
16123    pub fn THIntTensor_cmax(r: *mut THIntTensor, t: *mut THIntTensor,
16124                            src: *mut THIntTensor);
16125}
16126extern "C" {
16127    pub fn THIntTensor_cmin(r: *mut THIntTensor, t: *mut THIntTensor,
16128                            src: *mut THIntTensor);
16129}
16130extern "C" {
16131    pub fn THIntTensor_cmaxValue(r: *mut THIntTensor, t: *mut THIntTensor,
16132                                 value: ::std::os::raw::c_int);
16133}
16134extern "C" {
16135    pub fn THIntTensor_cminValue(r: *mut THIntTensor, t: *mut THIntTensor,
16136                                 value: ::std::os::raw::c_int);
16137}
16138extern "C" {
16139    pub fn THIntTensor_zeros(r_: *mut THIntTensor, size: *mut THLongStorage);
16140}
16141extern "C" {
16142    pub fn THIntTensor_ones(r_: *mut THIntTensor, size: *mut THLongStorage);
16143}
16144extern "C" {
16145    pub fn THIntTensor_diag(r_: *mut THIntTensor, t: *mut THIntTensor,
16146                            k: ::std::os::raw::c_int);
16147}
16148extern "C" {
16149    pub fn THIntTensor_eye(r_: *mut THIntTensor, n: ::std::os::raw::c_long,
16150                           m: ::std::os::raw::c_long);
16151}
16152extern "C" {
16153    pub fn THIntTensor_arange(r_: *mut THIntTensor,
16154                              xmin: ::std::os::raw::c_long,
16155                              xmax: ::std::os::raw::c_long,
16156                              step: ::std::os::raw::c_long);
16157}
16158extern "C" {
16159    pub fn THIntTensor_range(r_: *mut THIntTensor,
16160                             xmin: ::std::os::raw::c_long,
16161                             xmax: ::std::os::raw::c_long,
16162                             step: ::std::os::raw::c_long);
16163}
16164extern "C" {
16165    pub fn THIntTensor_randperm(r_: *mut THIntTensor,
16166                                _generator: *mut THGenerator,
16167                                n: ::std::os::raw::c_long);
16168}
16169extern "C" {
16170    pub fn THIntTensor_reshape(r_: *mut THIntTensor, t: *mut THIntTensor,
16171                               size: *mut THLongStorage);
16172}
16173extern "C" {
16174    pub fn THIntTensor_sort(rt_: *mut THIntTensor, ri_: *mut THLongTensor,
16175                            t: *mut THIntTensor,
16176                            dimension: ::std::os::raw::c_int,
16177                            descendingOrder: ::std::os::raw::c_int);
16178}
16179extern "C" {
16180    pub fn THIntTensor_topk(rt_: *mut THIntTensor, ri_: *mut THLongTensor,
16181                            t: *mut THIntTensor, k: ::std::os::raw::c_long,
16182                            dim: ::std::os::raw::c_int,
16183                            dir: ::std::os::raw::c_int,
16184                            sorted: ::std::os::raw::c_int);
16185}
16186extern "C" {
16187    pub fn THIntTensor_tril(r_: *mut THIntTensor, t: *mut THIntTensor,
16188                            k: ::std::os::raw::c_long);
16189}
16190extern "C" {
16191    pub fn THIntTensor_triu(r_: *mut THIntTensor, t: *mut THIntTensor,
16192                            k: ::std::os::raw::c_long);
16193}
16194extern "C" {
16195    pub fn THIntTensor_cat(r_: *mut THIntTensor, ta: *mut THIntTensor,
16196                           tb: *mut THIntTensor,
16197                           dimension: ::std::os::raw::c_int);
16198}
16199extern "C" {
16200    pub fn THIntTensor_catArray(result: *mut THIntTensor,
16201                                inputs: *mut *mut THIntTensor,
16202                                numInputs: ::std::os::raw::c_int,
16203                                dimension: ::std::os::raw::c_int);
16204}
16205extern "C" {
16206    pub fn THIntTensor_equal(ta: *mut THIntTensor, tb: *mut THIntTensor)
16207     -> ::std::os::raw::c_int;
16208}
16209extern "C" {
16210    pub fn THIntTensor_ltValue(r_: *mut THByteTensor, t: *mut THIntTensor,
16211                               value: ::std::os::raw::c_int);
16212}
16213extern "C" {
16214    pub fn THIntTensor_leValue(r_: *mut THByteTensor, t: *mut THIntTensor,
16215                               value: ::std::os::raw::c_int);
16216}
16217extern "C" {
16218    pub fn THIntTensor_gtValue(r_: *mut THByteTensor, t: *mut THIntTensor,
16219                               value: ::std::os::raw::c_int);
16220}
16221extern "C" {
16222    pub fn THIntTensor_geValue(r_: *mut THByteTensor, t: *mut THIntTensor,
16223                               value: ::std::os::raw::c_int);
16224}
16225extern "C" {
16226    pub fn THIntTensor_neValue(r_: *mut THByteTensor, t: *mut THIntTensor,
16227                               value: ::std::os::raw::c_int);
16228}
16229extern "C" {
16230    pub fn THIntTensor_eqValue(r_: *mut THByteTensor, t: *mut THIntTensor,
16231                               value: ::std::os::raw::c_int);
16232}
16233extern "C" {
16234    pub fn THIntTensor_ltValueT(r_: *mut THIntTensor, t: *mut THIntTensor,
16235                                value: ::std::os::raw::c_int);
16236}
16237extern "C" {
16238    pub fn THIntTensor_leValueT(r_: *mut THIntTensor, t: *mut THIntTensor,
16239                                value: ::std::os::raw::c_int);
16240}
16241extern "C" {
16242    pub fn THIntTensor_gtValueT(r_: *mut THIntTensor, t: *mut THIntTensor,
16243                                value: ::std::os::raw::c_int);
16244}
16245extern "C" {
16246    pub fn THIntTensor_geValueT(r_: *mut THIntTensor, t: *mut THIntTensor,
16247                                value: ::std::os::raw::c_int);
16248}
16249extern "C" {
16250    pub fn THIntTensor_neValueT(r_: *mut THIntTensor, t: *mut THIntTensor,
16251                                value: ::std::os::raw::c_int);
16252}
16253extern "C" {
16254    pub fn THIntTensor_eqValueT(r_: *mut THIntTensor, t: *mut THIntTensor,
16255                                value: ::std::os::raw::c_int);
16256}
16257extern "C" {
16258    pub fn THIntTensor_ltTensor(r_: *mut THByteTensor, ta: *mut THIntTensor,
16259                                tb: *mut THIntTensor);
16260}
16261extern "C" {
16262    pub fn THIntTensor_leTensor(r_: *mut THByteTensor, ta: *mut THIntTensor,
16263                                tb: *mut THIntTensor);
16264}
16265extern "C" {
16266    pub fn THIntTensor_gtTensor(r_: *mut THByteTensor, ta: *mut THIntTensor,
16267                                tb: *mut THIntTensor);
16268}
16269extern "C" {
16270    pub fn THIntTensor_geTensor(r_: *mut THByteTensor, ta: *mut THIntTensor,
16271                                tb: *mut THIntTensor);
16272}
16273extern "C" {
16274    pub fn THIntTensor_neTensor(r_: *mut THByteTensor, ta: *mut THIntTensor,
16275                                tb: *mut THIntTensor);
16276}
16277extern "C" {
16278    pub fn THIntTensor_eqTensor(r_: *mut THByteTensor, ta: *mut THIntTensor,
16279                                tb: *mut THIntTensor);
16280}
16281extern "C" {
16282    pub fn THIntTensor_ltTensorT(r_: *mut THIntTensor, ta: *mut THIntTensor,
16283                                 tb: *mut THIntTensor);
16284}
16285extern "C" {
16286    pub fn THIntTensor_leTensorT(r_: *mut THIntTensor, ta: *mut THIntTensor,
16287                                 tb: *mut THIntTensor);
16288}
16289extern "C" {
16290    pub fn THIntTensor_gtTensorT(r_: *mut THIntTensor, ta: *mut THIntTensor,
16291                                 tb: *mut THIntTensor);
16292}
16293extern "C" {
16294    pub fn THIntTensor_geTensorT(r_: *mut THIntTensor, ta: *mut THIntTensor,
16295                                 tb: *mut THIntTensor);
16296}
16297extern "C" {
16298    pub fn THIntTensor_neTensorT(r_: *mut THIntTensor, ta: *mut THIntTensor,
16299                                 tb: *mut THIntTensor);
16300}
16301extern "C" {
16302    pub fn THIntTensor_eqTensorT(r_: *mut THIntTensor, ta: *mut THIntTensor,
16303                                 tb: *mut THIntTensor);
16304}
16305extern "C" {
16306    pub fn THIntTensor_abs(r_: *mut THIntTensor, t: *mut THIntTensor);
16307}
16308extern "C" {
16309    pub fn THLongTensor_fill(r_: *mut THLongTensor,
16310                             value: ::std::os::raw::c_long);
16311}
16312extern "C" {
16313    pub fn THLongTensor_zero(r_: *mut THLongTensor);
16314}
16315extern "C" {
16316    pub fn THLongTensor_maskedFill(tensor: *mut THLongTensor,
16317                                   mask: *mut THByteTensor,
16318                                   value: ::std::os::raw::c_long);
16319}
16320extern "C" {
16321    pub fn THLongTensor_maskedCopy(tensor: *mut THLongTensor,
16322                                   mask: *mut THByteTensor,
16323                                   src: *mut THLongTensor);
16324}
16325extern "C" {
16326    pub fn THLongTensor_maskedSelect(tensor: *mut THLongTensor,
16327                                     src: *mut THLongTensor,
16328                                     mask: *mut THByteTensor);
16329}
16330extern "C" {
16331    pub fn THLongTensor_nonzero(subscript: *mut THLongTensor,
16332                                tensor: *mut THLongTensor);
16333}
16334extern "C" {
16335    pub fn THLongTensor_indexSelect(tensor: *mut THLongTensor,
16336                                    src: *mut THLongTensor,
16337                                    dim: ::std::os::raw::c_int,
16338                                    index: *mut THLongTensor);
16339}
16340extern "C" {
16341    pub fn THLongTensor_indexCopy(tensor: *mut THLongTensor,
16342                                  dim: ::std::os::raw::c_int,
16343                                  index: *mut THLongTensor,
16344                                  src: *mut THLongTensor);
16345}
16346extern "C" {
16347    pub fn THLongTensor_indexAdd(tensor: *mut THLongTensor,
16348                                 dim: ::std::os::raw::c_int,
16349                                 index: *mut THLongTensor,
16350                                 src: *mut THLongTensor);
16351}
16352extern "C" {
16353    pub fn THLongTensor_indexFill(tensor: *mut THLongTensor,
16354                                  dim: ::std::os::raw::c_int,
16355                                  index: *mut THLongTensor,
16356                                  val: ::std::os::raw::c_long);
16357}
16358extern "C" {
16359    pub fn THLongTensor_gather(tensor: *mut THLongTensor,
16360                               src: *mut THLongTensor,
16361                               dim: ::std::os::raw::c_int,
16362                               index: *mut THLongTensor);
16363}
16364extern "C" {
16365    pub fn THLongTensor_scatter(tensor: *mut THLongTensor,
16366                                dim: ::std::os::raw::c_int,
16367                                index: *mut THLongTensor,
16368                                src: *mut THLongTensor);
16369}
16370extern "C" {
16371    pub fn THLongTensor_scatterAdd(tensor: *mut THLongTensor,
16372                                   dim: ::std::os::raw::c_int,
16373                                   index: *mut THLongTensor,
16374                                   src: *mut THLongTensor);
16375}
16376extern "C" {
16377    pub fn THLongTensor_scatterFill(tensor: *mut THLongTensor,
16378                                    dim: ::std::os::raw::c_int,
16379                                    index: *mut THLongTensor,
16380                                    val: ::std::os::raw::c_long);
16381}
16382extern "C" {
16383    pub fn THLongTensor_dot(t: *mut THLongTensor, src: *mut THLongTensor)
16384     -> ::std::os::raw::c_long;
16385}
16386extern "C" {
16387    pub fn THLongTensor_minall(t: *mut THLongTensor)
16388     -> ::std::os::raw::c_long;
16389}
16390extern "C" {
16391    pub fn THLongTensor_maxall(t: *mut THLongTensor)
16392     -> ::std::os::raw::c_long;
16393}
16394extern "C" {
16395    pub fn THLongTensor_medianall(t: *mut THLongTensor)
16396     -> ::std::os::raw::c_long;
16397}
16398extern "C" {
16399    pub fn THLongTensor_sumall(t: *mut THLongTensor)
16400     -> ::std::os::raw::c_long;
16401}
16402extern "C" {
16403    pub fn THLongTensor_prodall(t: *mut THLongTensor)
16404     -> ::std::os::raw::c_long;
16405}
16406extern "C" {
16407    pub fn THLongTensor_neg(self_: *mut THLongTensor, src: *mut THLongTensor);
16408}
16409extern "C" {
16410    pub fn THLongTensor_cinv(self_: *mut THLongTensor,
16411                             src: *mut THLongTensor);
16412}
16413extern "C" {
16414    pub fn THLongTensor_add(r_: *mut THLongTensor, t: *mut THLongTensor,
16415                            value: ::std::os::raw::c_long);
16416}
16417extern "C" {
16418    pub fn THLongTensor_sub(self_: *mut THLongTensor, src: *mut THLongTensor,
16419                            value: ::std::os::raw::c_long);
16420}
16421extern "C" {
16422    pub fn THLongTensor_mul(r_: *mut THLongTensor, t: *mut THLongTensor,
16423                            value: ::std::os::raw::c_long);
16424}
16425extern "C" {
16426    pub fn THLongTensor_div(r_: *mut THLongTensor, t: *mut THLongTensor,
16427                            value: ::std::os::raw::c_long);
16428}
16429extern "C" {
16430    pub fn THLongTensor_lshift(r_: *mut THLongTensor, t: *mut THLongTensor,
16431                               value: ::std::os::raw::c_long);
16432}
16433extern "C" {
16434    pub fn THLongTensor_rshift(r_: *mut THLongTensor, t: *mut THLongTensor,
16435                               value: ::std::os::raw::c_long);
16436}
16437extern "C" {
16438    pub fn THLongTensor_fmod(r_: *mut THLongTensor, t: *mut THLongTensor,
16439                             value: ::std::os::raw::c_long);
16440}
16441extern "C" {
16442    pub fn THLongTensor_remainder(r_: *mut THLongTensor, t: *mut THLongTensor,
16443                                  value: ::std::os::raw::c_long);
16444}
16445extern "C" {
16446    pub fn THLongTensor_clamp(r_: *mut THLongTensor, t: *mut THLongTensor,
16447                              min_value: ::std::os::raw::c_long,
16448                              max_value: ::std::os::raw::c_long);
16449}
16450extern "C" {
16451    pub fn THLongTensor_bitand(r_: *mut THLongTensor, t: *mut THLongTensor,
16452                               value: ::std::os::raw::c_long);
16453}
16454extern "C" {
16455    pub fn THLongTensor_bitor(r_: *mut THLongTensor, t: *mut THLongTensor,
16456                              value: ::std::os::raw::c_long);
16457}
16458extern "C" {
16459    pub fn THLongTensor_bitxor(r_: *mut THLongTensor, t: *mut THLongTensor,
16460                               value: ::std::os::raw::c_long);
16461}
16462extern "C" {
16463    pub fn THLongTensor_cadd(r_: *mut THLongTensor, t: *mut THLongTensor,
16464                             value: ::std::os::raw::c_long,
16465                             src: *mut THLongTensor);
16466}
16467extern "C" {
16468    pub fn THLongTensor_csub(self_: *mut THLongTensor,
16469                             src1: *mut THLongTensor,
16470                             value: ::std::os::raw::c_long,
16471                             src2: *mut THLongTensor);
16472}
16473extern "C" {
16474    pub fn THLongTensor_cmul(r_: *mut THLongTensor, t: *mut THLongTensor,
16475                             src: *mut THLongTensor);
16476}
16477extern "C" {
16478    pub fn THLongTensor_cpow(r_: *mut THLongTensor, t: *mut THLongTensor,
16479                             src: *mut THLongTensor);
16480}
16481extern "C" {
16482    pub fn THLongTensor_cdiv(r_: *mut THLongTensor, t: *mut THLongTensor,
16483                             src: *mut THLongTensor);
16484}
16485extern "C" {
16486    pub fn THLongTensor_clshift(r_: *mut THLongTensor, t: *mut THLongTensor,
16487                                src: *mut THLongTensor);
16488}
16489extern "C" {
16490    pub fn THLongTensor_crshift(r_: *mut THLongTensor, t: *mut THLongTensor,
16491                                src: *mut THLongTensor);
16492}
16493extern "C" {
16494    pub fn THLongTensor_cfmod(r_: *mut THLongTensor, t: *mut THLongTensor,
16495                              src: *mut THLongTensor);
16496}
16497extern "C" {
16498    pub fn THLongTensor_cremainder(r_: *mut THLongTensor,
16499                                   t: *mut THLongTensor,
16500                                   src: *mut THLongTensor);
16501}
16502extern "C" {
16503    pub fn THLongTensor_cbitand(r_: *mut THLongTensor, t: *mut THLongTensor,
16504                                src: *mut THLongTensor);
16505}
16506extern "C" {
16507    pub fn THLongTensor_cbitor(r_: *mut THLongTensor, t: *mut THLongTensor,
16508                               src: *mut THLongTensor);
16509}
16510extern "C" {
16511    pub fn THLongTensor_cbitxor(r_: *mut THLongTensor, t: *mut THLongTensor,
16512                                src: *mut THLongTensor);
16513}
16514extern "C" {
16515    pub fn THLongTensor_addcmul(r_: *mut THLongTensor, t: *mut THLongTensor,
16516                                value: ::std::os::raw::c_long,
16517                                src1: *mut THLongTensor,
16518                                src2: *mut THLongTensor);
16519}
16520extern "C" {
16521    pub fn THLongTensor_addcdiv(r_: *mut THLongTensor, t: *mut THLongTensor,
16522                                value: ::std::os::raw::c_long,
16523                                src1: *mut THLongTensor,
16524                                src2: *mut THLongTensor);
16525}
16526extern "C" {
16527    pub fn THLongTensor_addmv(r_: *mut THLongTensor,
16528                              beta: ::std::os::raw::c_long,
16529                              t: *mut THLongTensor,
16530                              alpha: ::std::os::raw::c_long,
16531                              mat: *mut THLongTensor, vec: *mut THLongTensor);
16532}
16533extern "C" {
16534    pub fn THLongTensor_addmm(r_: *mut THLongTensor,
16535                              beta: ::std::os::raw::c_long,
16536                              t: *mut THLongTensor,
16537                              alpha: ::std::os::raw::c_long,
16538                              mat1: *mut THLongTensor,
16539                              mat2: *mut THLongTensor);
16540}
16541extern "C" {
16542    pub fn THLongTensor_addr(r_: *mut THLongTensor,
16543                             beta: ::std::os::raw::c_long,
16544                             t: *mut THLongTensor,
16545                             alpha: ::std::os::raw::c_long,
16546                             vec1: *mut THLongTensor,
16547                             vec2: *mut THLongTensor);
16548}
16549extern "C" {
16550    pub fn THLongTensor_addbmm(r_: *mut THLongTensor,
16551                               beta: ::std::os::raw::c_long,
16552                               t: *mut THLongTensor,
16553                               alpha: ::std::os::raw::c_long,
16554                               batch1: *mut THLongTensor,
16555                               batch2: *mut THLongTensor);
16556}
16557extern "C" {
16558    pub fn THLongTensor_baddbmm(r_: *mut THLongTensor,
16559                                beta: ::std::os::raw::c_long,
16560                                t: *mut THLongTensor,
16561                                alpha: ::std::os::raw::c_long,
16562                                batch1: *mut THLongTensor,
16563                                batch2: *mut THLongTensor);
16564}
16565extern "C" {
16566    pub fn THLongTensor_match(r_: *mut THLongTensor, m1: *mut THLongTensor,
16567                              m2: *mut THLongTensor,
16568                              gain: ::std::os::raw::c_long);
16569}
16570extern "C" {
16571    pub fn THLongTensor_numel(t: *mut THLongTensor) -> isize;
16572}
16573extern "C" {
16574    pub fn THLongTensor_max(values_: *mut THLongTensor,
16575                            indices_: *mut THLongTensor, t: *mut THLongTensor,
16576                            dimension: ::std::os::raw::c_int,
16577                            keepdim: ::std::os::raw::c_int);
16578}
16579extern "C" {
16580    pub fn THLongTensor_min(values_: *mut THLongTensor,
16581                            indices_: *mut THLongTensor, t: *mut THLongTensor,
16582                            dimension: ::std::os::raw::c_int,
16583                            keepdim: ::std::os::raw::c_int);
16584}
16585extern "C" {
16586    pub fn THLongTensor_kthvalue(values_: *mut THLongTensor,
16587                                 indices_: *mut THLongTensor,
16588                                 t: *mut THLongTensor,
16589                                 k: ::std::os::raw::c_long,
16590                                 dimension: ::std::os::raw::c_int,
16591                                 keepdim: ::std::os::raw::c_int);
16592}
16593extern "C" {
16594    pub fn THLongTensor_mode(values_: *mut THLongTensor,
16595                             indices_: *mut THLongTensor,
16596                             t: *mut THLongTensor,
16597                             dimension: ::std::os::raw::c_int,
16598                             keepdim: ::std::os::raw::c_int);
16599}
16600extern "C" {
16601    pub fn THLongTensor_median(values_: *mut THLongTensor,
16602                               indices_: *mut THLongTensor,
16603                               t: *mut THLongTensor,
16604                               dimension: ::std::os::raw::c_int,
16605                               keepdim: ::std::os::raw::c_int);
16606}
16607extern "C" {
16608    pub fn THLongTensor_sum(r_: *mut THLongTensor, t: *mut THLongTensor,
16609                            dimension: ::std::os::raw::c_int,
16610                            keepdim: ::std::os::raw::c_int);
16611}
16612extern "C" {
16613    pub fn THLongTensor_prod(r_: *mut THLongTensor, t: *mut THLongTensor,
16614                             dimension: ::std::os::raw::c_int,
16615                             keepdim: ::std::os::raw::c_int);
16616}
16617extern "C" {
16618    pub fn THLongTensor_cumsum(r_: *mut THLongTensor, t: *mut THLongTensor,
16619                               dimension: ::std::os::raw::c_int);
16620}
16621extern "C" {
16622    pub fn THLongTensor_cumprod(r_: *mut THLongTensor, t: *mut THLongTensor,
16623                                dimension: ::std::os::raw::c_int);
16624}
16625extern "C" {
16626    pub fn THLongTensor_sign(r_: *mut THLongTensor, t: *mut THLongTensor);
16627}
16628extern "C" {
16629    pub fn THLongTensor_trace(t: *mut THLongTensor) -> ::std::os::raw::c_long;
16630}
16631extern "C" {
16632    pub fn THLongTensor_cross(r_: *mut THLongTensor, a: *mut THLongTensor,
16633                              b: *mut THLongTensor,
16634                              dimension: ::std::os::raw::c_int);
16635}
16636extern "C" {
16637    pub fn THLongTensor_cmax(r: *mut THLongTensor, t: *mut THLongTensor,
16638                             src: *mut THLongTensor);
16639}
16640extern "C" {
16641    pub fn THLongTensor_cmin(r: *mut THLongTensor, t: *mut THLongTensor,
16642                             src: *mut THLongTensor);
16643}
16644extern "C" {
16645    pub fn THLongTensor_cmaxValue(r: *mut THLongTensor, t: *mut THLongTensor,
16646                                  value: ::std::os::raw::c_long);
16647}
16648extern "C" {
16649    pub fn THLongTensor_cminValue(r: *mut THLongTensor, t: *mut THLongTensor,
16650                                  value: ::std::os::raw::c_long);
16651}
16652extern "C" {
16653    pub fn THLongTensor_zeros(r_: *mut THLongTensor,
16654                              size: *mut THLongStorage);
16655}
16656extern "C" {
16657    pub fn THLongTensor_ones(r_: *mut THLongTensor, size: *mut THLongStorage);
16658}
16659extern "C" {
16660    pub fn THLongTensor_diag(r_: *mut THLongTensor, t: *mut THLongTensor,
16661                             k: ::std::os::raw::c_int);
16662}
16663extern "C" {
16664    pub fn THLongTensor_eye(r_: *mut THLongTensor, n: ::std::os::raw::c_long,
16665                            m: ::std::os::raw::c_long);
16666}
16667extern "C" {
16668    pub fn THLongTensor_arange(r_: *mut THLongTensor,
16669                               xmin: ::std::os::raw::c_long,
16670                               xmax: ::std::os::raw::c_long,
16671                               step: ::std::os::raw::c_long);
16672}
16673extern "C" {
16674    pub fn THLongTensor_range(r_: *mut THLongTensor,
16675                              xmin: ::std::os::raw::c_long,
16676                              xmax: ::std::os::raw::c_long,
16677                              step: ::std::os::raw::c_long);
16678}
16679extern "C" {
16680    pub fn THLongTensor_randperm(r_: *mut THLongTensor,
16681                                 _generator: *mut THGenerator,
16682                                 n: ::std::os::raw::c_long);
16683}
16684extern "C" {
16685    pub fn THLongTensor_reshape(r_: *mut THLongTensor, t: *mut THLongTensor,
16686                                size: *mut THLongStorage);
16687}
16688extern "C" {
16689    pub fn THLongTensor_sort(rt_: *mut THLongTensor, ri_: *mut THLongTensor,
16690                             t: *mut THLongTensor,
16691                             dimension: ::std::os::raw::c_int,
16692                             descendingOrder: ::std::os::raw::c_int);
16693}
16694extern "C" {
16695    pub fn THLongTensor_topk(rt_: *mut THLongTensor, ri_: *mut THLongTensor,
16696                             t: *mut THLongTensor, k: ::std::os::raw::c_long,
16697                             dim: ::std::os::raw::c_int,
16698                             dir: ::std::os::raw::c_int,
16699                             sorted: ::std::os::raw::c_int);
16700}
16701extern "C" {
16702    pub fn THLongTensor_tril(r_: *mut THLongTensor, t: *mut THLongTensor,
16703                             k: ::std::os::raw::c_long);
16704}
16705extern "C" {
16706    pub fn THLongTensor_triu(r_: *mut THLongTensor, t: *mut THLongTensor,
16707                             k: ::std::os::raw::c_long);
16708}
16709extern "C" {
16710    pub fn THLongTensor_cat(r_: *mut THLongTensor, ta: *mut THLongTensor,
16711                            tb: *mut THLongTensor,
16712                            dimension: ::std::os::raw::c_int);
16713}
16714extern "C" {
16715    pub fn THLongTensor_catArray(result: *mut THLongTensor,
16716                                 inputs: *mut *mut THLongTensor,
16717                                 numInputs: ::std::os::raw::c_int,
16718                                 dimension: ::std::os::raw::c_int);
16719}
16720extern "C" {
16721    pub fn THLongTensor_equal(ta: *mut THLongTensor, tb: *mut THLongTensor)
16722     -> ::std::os::raw::c_int;
16723}
16724extern "C" {
16725    pub fn THLongTensor_ltValue(r_: *mut THByteTensor, t: *mut THLongTensor,
16726                                value: ::std::os::raw::c_long);
16727}
16728extern "C" {
16729    pub fn THLongTensor_leValue(r_: *mut THByteTensor, t: *mut THLongTensor,
16730                                value: ::std::os::raw::c_long);
16731}
16732extern "C" {
16733    pub fn THLongTensor_gtValue(r_: *mut THByteTensor, t: *mut THLongTensor,
16734                                value: ::std::os::raw::c_long);
16735}
16736extern "C" {
16737    pub fn THLongTensor_geValue(r_: *mut THByteTensor, t: *mut THLongTensor,
16738                                value: ::std::os::raw::c_long);
16739}
16740extern "C" {
16741    pub fn THLongTensor_neValue(r_: *mut THByteTensor, t: *mut THLongTensor,
16742                                value: ::std::os::raw::c_long);
16743}
16744extern "C" {
16745    pub fn THLongTensor_eqValue(r_: *mut THByteTensor, t: *mut THLongTensor,
16746                                value: ::std::os::raw::c_long);
16747}
16748extern "C" {
16749    pub fn THLongTensor_ltValueT(r_: *mut THLongTensor, t: *mut THLongTensor,
16750                                 value: ::std::os::raw::c_long);
16751}
16752extern "C" {
16753    pub fn THLongTensor_leValueT(r_: *mut THLongTensor, t: *mut THLongTensor,
16754                                 value: ::std::os::raw::c_long);
16755}
16756extern "C" {
16757    pub fn THLongTensor_gtValueT(r_: *mut THLongTensor, t: *mut THLongTensor,
16758                                 value: ::std::os::raw::c_long);
16759}
16760extern "C" {
16761    pub fn THLongTensor_geValueT(r_: *mut THLongTensor, t: *mut THLongTensor,
16762                                 value: ::std::os::raw::c_long);
16763}
16764extern "C" {
16765    pub fn THLongTensor_neValueT(r_: *mut THLongTensor, t: *mut THLongTensor,
16766                                 value: ::std::os::raw::c_long);
16767}
16768extern "C" {
16769    pub fn THLongTensor_eqValueT(r_: *mut THLongTensor, t: *mut THLongTensor,
16770                                 value: ::std::os::raw::c_long);
16771}
16772extern "C" {
16773    pub fn THLongTensor_ltTensor(r_: *mut THByteTensor, ta: *mut THLongTensor,
16774                                 tb: *mut THLongTensor);
16775}
16776extern "C" {
16777    pub fn THLongTensor_leTensor(r_: *mut THByteTensor, ta: *mut THLongTensor,
16778                                 tb: *mut THLongTensor);
16779}
16780extern "C" {
16781    pub fn THLongTensor_gtTensor(r_: *mut THByteTensor, ta: *mut THLongTensor,
16782                                 tb: *mut THLongTensor);
16783}
16784extern "C" {
16785    pub fn THLongTensor_geTensor(r_: *mut THByteTensor, ta: *mut THLongTensor,
16786                                 tb: *mut THLongTensor);
16787}
16788extern "C" {
16789    pub fn THLongTensor_neTensor(r_: *mut THByteTensor, ta: *mut THLongTensor,
16790                                 tb: *mut THLongTensor);
16791}
16792extern "C" {
16793    pub fn THLongTensor_eqTensor(r_: *mut THByteTensor, ta: *mut THLongTensor,
16794                                 tb: *mut THLongTensor);
16795}
16796extern "C" {
16797    pub fn THLongTensor_ltTensorT(r_: *mut THLongTensor,
16798                                  ta: *mut THLongTensor,
16799                                  tb: *mut THLongTensor);
16800}
16801extern "C" {
16802    pub fn THLongTensor_leTensorT(r_: *mut THLongTensor,
16803                                  ta: *mut THLongTensor,
16804                                  tb: *mut THLongTensor);
16805}
16806extern "C" {
16807    pub fn THLongTensor_gtTensorT(r_: *mut THLongTensor,
16808                                  ta: *mut THLongTensor,
16809                                  tb: *mut THLongTensor);
16810}
16811extern "C" {
16812    pub fn THLongTensor_geTensorT(r_: *mut THLongTensor,
16813                                  ta: *mut THLongTensor,
16814                                  tb: *mut THLongTensor);
16815}
16816extern "C" {
16817    pub fn THLongTensor_neTensorT(r_: *mut THLongTensor,
16818                                  ta: *mut THLongTensor,
16819                                  tb: *mut THLongTensor);
16820}
16821extern "C" {
16822    pub fn THLongTensor_eqTensorT(r_: *mut THLongTensor,
16823                                  ta: *mut THLongTensor,
16824                                  tb: *mut THLongTensor);
16825}
16826extern "C" {
16827    pub fn THLongTensor_abs(r_: *mut THLongTensor, t: *mut THLongTensor);
16828}
16829extern "C" {
16830    pub fn THFloatTensor_validXCorr2Dptr(r_: *mut f32, alpha: f32,
16831                                         t_: *mut f32,
16832                                         ir: ::std::os::raw::c_long,
16833                                         ic: ::std::os::raw::c_long,
16834                                         k_: *mut f32,
16835                                         kr: ::std::os::raw::c_long,
16836                                         kc: ::std::os::raw::c_long,
16837                                         sr: ::std::os::raw::c_long,
16838                                         sc: ::std::os::raw::c_long);
16839}
16840extern "C" {
16841    pub fn THFloatTensor_validConv2Dptr(r_: *mut f32, alpha: f32,
16842                                        t_: *mut f32,
16843                                        ir: ::std::os::raw::c_long,
16844                                        ic: ::std::os::raw::c_long,
16845                                        k_: *mut f32,
16846                                        kr: ::std::os::raw::c_long,
16847                                        kc: ::std::os::raw::c_long,
16848                                        sr: ::std::os::raw::c_long,
16849                                        sc: ::std::os::raw::c_long);
16850}
16851extern "C" {
16852    pub fn THFloatTensor_fullXCorr2Dptr(r_: *mut f32, alpha: f32,
16853                                        t_: *mut f32,
16854                                        ir: ::std::os::raw::c_long,
16855                                        ic: ::std::os::raw::c_long,
16856                                        k_: *mut f32,
16857                                        kr: ::std::os::raw::c_long,
16858                                        kc: ::std::os::raw::c_long,
16859                                        sr: ::std::os::raw::c_long,
16860                                        sc: ::std::os::raw::c_long);
16861}
16862extern "C" {
16863    pub fn THFloatTensor_fullConv2Dptr(r_: *mut f32, alpha: f32, t_: *mut f32,
16864                                       ir: ::std::os::raw::c_long,
16865                                       ic: ::std::os::raw::c_long,
16866                                       k_: *mut f32,
16867                                       kr: ::std::os::raw::c_long,
16868                                       kc: ::std::os::raw::c_long,
16869                                       sr: ::std::os::raw::c_long,
16870                                       sc: ::std::os::raw::c_long);
16871}
16872extern "C" {
16873    pub fn THFloatTensor_validXCorr2DRevptr(r_: *mut f32, alpha: f32,
16874                                            t_: *mut f32,
16875                                            ir: ::std::os::raw::c_long,
16876                                            ic: ::std::os::raw::c_long,
16877                                            k_: *mut f32,
16878                                            kr: ::std::os::raw::c_long,
16879                                            kc: ::std::os::raw::c_long,
16880                                            sr: ::std::os::raw::c_long,
16881                                            sc: ::std::os::raw::c_long);
16882}
16883extern "C" {
16884    pub fn THFloatTensor_conv2DRevger(r_: *mut THFloatTensor, beta: f32,
16885                                      alpha: f32, t_: *mut THFloatTensor,
16886                                      k_: *mut THFloatTensor,
16887                                      srow: ::std::os::raw::c_long,
16888                                      scol: ::std::os::raw::c_long);
16889}
16890extern "C" {
16891    pub fn THFloatTensor_conv2DRevgerm(r_: *mut THFloatTensor, beta: f32,
16892                                       alpha: f32, t_: *mut THFloatTensor,
16893                                       k_: *mut THFloatTensor,
16894                                       srow: ::std::os::raw::c_long,
16895                                       scol: ::std::os::raw::c_long);
16896}
16897extern "C" {
16898    pub fn THFloatTensor_conv2Dger(r_: *mut THFloatTensor, beta: f32,
16899                                   alpha: f32, t_: *mut THFloatTensor,
16900                                   k_: *mut THFloatTensor,
16901                                   srow: ::std::os::raw::c_long,
16902                                   scol: ::std::os::raw::c_long,
16903                                   vf: *const ::std::os::raw::c_char,
16904                                   xc: *const ::std::os::raw::c_char);
16905}
16906extern "C" {
16907    pub fn THFloatTensor_conv2Dmv(r_: *mut THFloatTensor, beta: f32,
16908                                  alpha: f32, t_: *mut THFloatTensor,
16909                                  k_: *mut THFloatTensor,
16910                                  srow: ::std::os::raw::c_long,
16911                                  scol: ::std::os::raw::c_long,
16912                                  vf: *const ::std::os::raw::c_char,
16913                                  xc: *const ::std::os::raw::c_char);
16914}
16915extern "C" {
16916    pub fn THFloatTensor_conv2Dmm(r_: *mut THFloatTensor, beta: f32,
16917                                  alpha: f32, t_: *mut THFloatTensor,
16918                                  k_: *mut THFloatTensor,
16919                                  srow: ::std::os::raw::c_long,
16920                                  scol: ::std::os::raw::c_long,
16921                                  vf: *const ::std::os::raw::c_char,
16922                                  xc: *const ::std::os::raw::c_char);
16923}
16924extern "C" {
16925    pub fn THFloatTensor_conv2Dmul(r_: *mut THFloatTensor, beta: f32,
16926                                   alpha: f32, t_: *mut THFloatTensor,
16927                                   k_: *mut THFloatTensor,
16928                                   srow: ::std::os::raw::c_long,
16929                                   scol: ::std::os::raw::c_long,
16930                                   vf: *const ::std::os::raw::c_char,
16931                                   xc: *const ::std::os::raw::c_char);
16932}
16933extern "C" {
16934    pub fn THFloatTensor_conv2Dcmul(r_: *mut THFloatTensor, beta: f32,
16935                                    alpha: f32, t_: *mut THFloatTensor,
16936                                    k_: *mut THFloatTensor,
16937                                    srow: ::std::os::raw::c_long,
16938                                    scol: ::std::os::raw::c_long,
16939                                    vf: *const ::std::os::raw::c_char,
16940                                    xc: *const ::std::os::raw::c_char);
16941}
16942extern "C" {
16943    pub fn THFloatTensor_validXCorr3Dptr(r_: *mut f32, alpha: f32,
16944                                         t_: *mut f32,
16945                                         it: ::std::os::raw::c_long,
16946                                         ir: ::std::os::raw::c_long,
16947                                         ic: ::std::os::raw::c_long,
16948                                         k_: *mut f32,
16949                                         kt: ::std::os::raw::c_long,
16950                                         kr: ::std::os::raw::c_long,
16951                                         kc: ::std::os::raw::c_long,
16952                                         st: ::std::os::raw::c_long,
16953                                         sr: ::std::os::raw::c_long,
16954                                         sc: ::std::os::raw::c_long);
16955}
16956extern "C" {
16957    pub fn THFloatTensor_validConv3Dptr(r_: *mut f32, alpha: f32,
16958                                        t_: *mut f32,
16959                                        it: ::std::os::raw::c_long,
16960                                        ir: ::std::os::raw::c_long,
16961                                        ic: ::std::os::raw::c_long,
16962                                        k_: *mut f32,
16963                                        kt: ::std::os::raw::c_long,
16964                                        kr: ::std::os::raw::c_long,
16965                                        kc: ::std::os::raw::c_long,
16966                                        st: ::std::os::raw::c_long,
16967                                        sr: ::std::os::raw::c_long,
16968                                        sc: ::std::os::raw::c_long);
16969}
16970extern "C" {
16971    pub fn THFloatTensor_fullXCorr3Dptr(r_: *mut f32, alpha: f32,
16972                                        t_: *mut f32,
16973                                        it: ::std::os::raw::c_long,
16974                                        ir: ::std::os::raw::c_long,
16975                                        ic: ::std::os::raw::c_long,
16976                                        k_: *mut f32,
16977                                        kt: ::std::os::raw::c_long,
16978                                        kr: ::std::os::raw::c_long,
16979                                        kc: ::std::os::raw::c_long,
16980                                        st: ::std::os::raw::c_long,
16981                                        sr: ::std::os::raw::c_long,
16982                                        sc: ::std::os::raw::c_long);
16983}
16984extern "C" {
16985    pub fn THFloatTensor_fullConv3Dptr(r_: *mut f32, alpha: f32, t_: *mut f32,
16986                                       it: ::std::os::raw::c_long,
16987                                       ir: ::std::os::raw::c_long,
16988                                       ic: ::std::os::raw::c_long,
16989                                       k_: *mut f32,
16990                                       kt: ::std::os::raw::c_long,
16991                                       kr: ::std::os::raw::c_long,
16992                                       kc: ::std::os::raw::c_long,
16993                                       st: ::std::os::raw::c_long,
16994                                       sr: ::std::os::raw::c_long,
16995                                       sc: ::std::os::raw::c_long);
16996}
16997extern "C" {
16998    pub fn THFloatTensor_validXCorr3DRevptr(r_: *mut f32, alpha: f32,
16999                                            t_: *mut f32,
17000                                            it: ::std::os::raw::c_long,
17001                                            ir: ::std::os::raw::c_long,
17002                                            ic: ::std::os::raw::c_long,
17003                                            k_: *mut f32,
17004                                            kt: ::std::os::raw::c_long,
17005                                            kr: ::std::os::raw::c_long,
17006                                            kc: ::std::os::raw::c_long,
17007                                            st: ::std::os::raw::c_long,
17008                                            sr: ::std::os::raw::c_long,
17009                                            sc: ::std::os::raw::c_long);
17010}
17011extern "C" {
17012    pub fn THFloatTensor_conv3DRevger(r_: *mut THFloatTensor, beta: f32,
17013                                      alpha: f32, t_: *mut THFloatTensor,
17014                                      k_: *mut THFloatTensor,
17015                                      sdepth: ::std::os::raw::c_long,
17016                                      srow: ::std::os::raw::c_long,
17017                                      scol: ::std::os::raw::c_long);
17018}
17019extern "C" {
17020    pub fn THFloatTensor_conv3Dger(r_: *mut THFloatTensor, beta: f32,
17021                                   alpha: f32, t_: *mut THFloatTensor,
17022                                   k_: *mut THFloatTensor,
17023                                   sdepth: ::std::os::raw::c_long,
17024                                   srow: ::std::os::raw::c_long,
17025                                   scol: ::std::os::raw::c_long,
17026                                   vf: *const ::std::os::raw::c_char,
17027                                   xc: *const ::std::os::raw::c_char);
17028}
17029extern "C" {
17030    pub fn THFloatTensor_conv3Dmv(r_: *mut THFloatTensor, beta: f32,
17031                                  alpha: f32, t_: *mut THFloatTensor,
17032                                  k_: *mut THFloatTensor,
17033                                  sdepth: ::std::os::raw::c_long,
17034                                  srow: ::std::os::raw::c_long,
17035                                  scol: ::std::os::raw::c_long,
17036                                  vf: *const ::std::os::raw::c_char,
17037                                  xc: *const ::std::os::raw::c_char);
17038}
17039extern "C" {
17040    pub fn THFloatTensor_conv3Dmul(r_: *mut THFloatTensor, beta: f32,
17041                                   alpha: f32, t_: *mut THFloatTensor,
17042                                   k_: *mut THFloatTensor,
17043                                   sdepth: ::std::os::raw::c_long,
17044                                   srow: ::std::os::raw::c_long,
17045                                   scol: ::std::os::raw::c_long,
17046                                   vf: *const ::std::os::raw::c_char,
17047                                   xc: *const ::std::os::raw::c_char);
17048}
17049extern "C" {
17050    pub fn THFloatTensor_conv3Dcmul(r_: *mut THFloatTensor, beta: f32,
17051                                    alpha: f32, t_: *mut THFloatTensor,
17052                                    k_: *mut THFloatTensor,
17053                                    sdepth: ::std::os::raw::c_long,
17054                                    srow: ::std::os::raw::c_long,
17055                                    scol: ::std::os::raw::c_long,
17056                                    vf: *const ::std::os::raw::c_char,
17057                                    xc: *const ::std::os::raw::c_char);
17058}
17059extern "C" {
17060    pub fn THDoubleTensor_validXCorr2Dptr(r_: *mut f64, alpha: f64,
17061                                          t_: *mut f64,
17062                                          ir: ::std::os::raw::c_long,
17063                                          ic: ::std::os::raw::c_long,
17064                                          k_: *mut f64,
17065                                          kr: ::std::os::raw::c_long,
17066                                          kc: ::std::os::raw::c_long,
17067                                          sr: ::std::os::raw::c_long,
17068                                          sc: ::std::os::raw::c_long);
17069}
17070extern "C" {
17071    pub fn THDoubleTensor_validConv2Dptr(r_: *mut f64, alpha: f64,
17072                                         t_: *mut f64,
17073                                         ir: ::std::os::raw::c_long,
17074                                         ic: ::std::os::raw::c_long,
17075                                         k_: *mut f64,
17076                                         kr: ::std::os::raw::c_long,
17077                                         kc: ::std::os::raw::c_long,
17078                                         sr: ::std::os::raw::c_long,
17079                                         sc: ::std::os::raw::c_long);
17080}
17081extern "C" {
17082    pub fn THDoubleTensor_fullXCorr2Dptr(r_: *mut f64, alpha: f64,
17083                                         t_: *mut f64,
17084                                         ir: ::std::os::raw::c_long,
17085                                         ic: ::std::os::raw::c_long,
17086                                         k_: *mut f64,
17087                                         kr: ::std::os::raw::c_long,
17088                                         kc: ::std::os::raw::c_long,
17089                                         sr: ::std::os::raw::c_long,
17090                                         sc: ::std::os::raw::c_long);
17091}
17092extern "C" {
17093    pub fn THDoubleTensor_fullConv2Dptr(r_: *mut f64, alpha: f64,
17094                                        t_: *mut f64,
17095                                        ir: ::std::os::raw::c_long,
17096                                        ic: ::std::os::raw::c_long,
17097                                        k_: *mut f64,
17098                                        kr: ::std::os::raw::c_long,
17099                                        kc: ::std::os::raw::c_long,
17100                                        sr: ::std::os::raw::c_long,
17101                                        sc: ::std::os::raw::c_long);
17102}
17103extern "C" {
17104    pub fn THDoubleTensor_validXCorr2DRevptr(r_: *mut f64, alpha: f64,
17105                                             t_: *mut f64,
17106                                             ir: ::std::os::raw::c_long,
17107                                             ic: ::std::os::raw::c_long,
17108                                             k_: *mut f64,
17109                                             kr: ::std::os::raw::c_long,
17110                                             kc: ::std::os::raw::c_long,
17111                                             sr: ::std::os::raw::c_long,
17112                                             sc: ::std::os::raw::c_long);
17113}
17114extern "C" {
17115    pub fn THDoubleTensor_conv2DRevger(r_: *mut THDoubleTensor, beta: f64,
17116                                       alpha: f64, t_: *mut THDoubleTensor,
17117                                       k_: *mut THDoubleTensor,
17118                                       srow: ::std::os::raw::c_long,
17119                                       scol: ::std::os::raw::c_long);
17120}
17121extern "C" {
17122    pub fn THDoubleTensor_conv2DRevgerm(r_: *mut THDoubleTensor, beta: f64,
17123                                        alpha: f64, t_: *mut THDoubleTensor,
17124                                        k_: *mut THDoubleTensor,
17125                                        srow: ::std::os::raw::c_long,
17126                                        scol: ::std::os::raw::c_long);
17127}
17128extern "C" {
17129    pub fn THDoubleTensor_conv2Dger(r_: *mut THDoubleTensor, beta: f64,
17130                                    alpha: f64, t_: *mut THDoubleTensor,
17131                                    k_: *mut THDoubleTensor,
17132                                    srow: ::std::os::raw::c_long,
17133                                    scol: ::std::os::raw::c_long,
17134                                    vf: *const ::std::os::raw::c_char,
17135                                    xc: *const ::std::os::raw::c_char);
17136}
17137extern "C" {
17138    pub fn THDoubleTensor_conv2Dmv(r_: *mut THDoubleTensor, beta: f64,
17139                                   alpha: f64, t_: *mut THDoubleTensor,
17140                                   k_: *mut THDoubleTensor,
17141                                   srow: ::std::os::raw::c_long,
17142                                   scol: ::std::os::raw::c_long,
17143                                   vf: *const ::std::os::raw::c_char,
17144                                   xc: *const ::std::os::raw::c_char);
17145}
17146extern "C" {
17147    pub fn THDoubleTensor_conv2Dmm(r_: *mut THDoubleTensor, beta: f64,
17148                                   alpha: f64, t_: *mut THDoubleTensor,
17149                                   k_: *mut THDoubleTensor,
17150                                   srow: ::std::os::raw::c_long,
17151                                   scol: ::std::os::raw::c_long,
17152                                   vf: *const ::std::os::raw::c_char,
17153                                   xc: *const ::std::os::raw::c_char);
17154}
17155extern "C" {
17156    pub fn THDoubleTensor_conv2Dmul(r_: *mut THDoubleTensor, beta: f64,
17157                                    alpha: f64, t_: *mut THDoubleTensor,
17158                                    k_: *mut THDoubleTensor,
17159                                    srow: ::std::os::raw::c_long,
17160                                    scol: ::std::os::raw::c_long,
17161                                    vf: *const ::std::os::raw::c_char,
17162                                    xc: *const ::std::os::raw::c_char);
17163}
17164extern "C" {
17165    pub fn THDoubleTensor_conv2Dcmul(r_: *mut THDoubleTensor, beta: f64,
17166                                     alpha: f64, t_: *mut THDoubleTensor,
17167                                     k_: *mut THDoubleTensor,
17168                                     srow: ::std::os::raw::c_long,
17169                                     scol: ::std::os::raw::c_long,
17170                                     vf: *const ::std::os::raw::c_char,
17171                                     xc: *const ::std::os::raw::c_char);
17172}
17173extern "C" {
17174    pub fn THDoubleTensor_validXCorr3Dptr(r_: *mut f64, alpha: f64,
17175                                          t_: *mut f64,
17176                                          it: ::std::os::raw::c_long,
17177                                          ir: ::std::os::raw::c_long,
17178                                          ic: ::std::os::raw::c_long,
17179                                          k_: *mut f64,
17180                                          kt: ::std::os::raw::c_long,
17181                                          kr: ::std::os::raw::c_long,
17182                                          kc: ::std::os::raw::c_long,
17183                                          st: ::std::os::raw::c_long,
17184                                          sr: ::std::os::raw::c_long,
17185                                          sc: ::std::os::raw::c_long);
17186}
17187extern "C" {
17188    pub fn THDoubleTensor_validConv3Dptr(r_: *mut f64, alpha: f64,
17189                                         t_: *mut f64,
17190                                         it: ::std::os::raw::c_long,
17191                                         ir: ::std::os::raw::c_long,
17192                                         ic: ::std::os::raw::c_long,
17193                                         k_: *mut f64,
17194                                         kt: ::std::os::raw::c_long,
17195                                         kr: ::std::os::raw::c_long,
17196                                         kc: ::std::os::raw::c_long,
17197                                         st: ::std::os::raw::c_long,
17198                                         sr: ::std::os::raw::c_long,
17199                                         sc: ::std::os::raw::c_long);
17200}
17201extern "C" {
17202    pub fn THDoubleTensor_fullXCorr3Dptr(r_: *mut f64, alpha: f64,
17203                                         t_: *mut f64,
17204                                         it: ::std::os::raw::c_long,
17205                                         ir: ::std::os::raw::c_long,
17206                                         ic: ::std::os::raw::c_long,
17207                                         k_: *mut f64,
17208                                         kt: ::std::os::raw::c_long,
17209                                         kr: ::std::os::raw::c_long,
17210                                         kc: ::std::os::raw::c_long,
17211                                         st: ::std::os::raw::c_long,
17212                                         sr: ::std::os::raw::c_long,
17213                                         sc: ::std::os::raw::c_long);
17214}
17215extern "C" {
17216    pub fn THDoubleTensor_fullConv3Dptr(r_: *mut f64, alpha: f64,
17217                                        t_: *mut f64,
17218                                        it: ::std::os::raw::c_long,
17219                                        ir: ::std::os::raw::c_long,
17220                                        ic: ::std::os::raw::c_long,
17221                                        k_: *mut f64,
17222                                        kt: ::std::os::raw::c_long,
17223                                        kr: ::std::os::raw::c_long,
17224                                        kc: ::std::os::raw::c_long,
17225                                        st: ::std::os::raw::c_long,
17226                                        sr: ::std::os::raw::c_long,
17227                                        sc: ::std::os::raw::c_long);
17228}
17229extern "C" {
17230    pub fn THDoubleTensor_validXCorr3DRevptr(r_: *mut f64, alpha: f64,
17231                                             t_: *mut f64,
17232                                             it: ::std::os::raw::c_long,
17233                                             ir: ::std::os::raw::c_long,
17234                                             ic: ::std::os::raw::c_long,
17235                                             k_: *mut f64,
17236                                             kt: ::std::os::raw::c_long,
17237                                             kr: ::std::os::raw::c_long,
17238                                             kc: ::std::os::raw::c_long,
17239                                             st: ::std::os::raw::c_long,
17240                                             sr: ::std::os::raw::c_long,
17241                                             sc: ::std::os::raw::c_long);
17242}
17243extern "C" {
17244    pub fn THDoubleTensor_conv3DRevger(r_: *mut THDoubleTensor, beta: f64,
17245                                       alpha: f64, t_: *mut THDoubleTensor,
17246                                       k_: *mut THDoubleTensor,
17247                                       sdepth: ::std::os::raw::c_long,
17248                                       srow: ::std::os::raw::c_long,
17249                                       scol: ::std::os::raw::c_long);
17250}
17251extern "C" {
17252    pub fn THDoubleTensor_conv3Dger(r_: *mut THDoubleTensor, beta: f64,
17253                                    alpha: f64, t_: *mut THDoubleTensor,
17254                                    k_: *mut THDoubleTensor,
17255                                    sdepth: ::std::os::raw::c_long,
17256                                    srow: ::std::os::raw::c_long,
17257                                    scol: ::std::os::raw::c_long,
17258                                    vf: *const ::std::os::raw::c_char,
17259                                    xc: *const ::std::os::raw::c_char);
17260}
17261extern "C" {
17262    pub fn THDoubleTensor_conv3Dmv(r_: *mut THDoubleTensor, beta: f64,
17263                                   alpha: f64, t_: *mut THDoubleTensor,
17264                                   k_: *mut THDoubleTensor,
17265                                   sdepth: ::std::os::raw::c_long,
17266                                   srow: ::std::os::raw::c_long,
17267                                   scol: ::std::os::raw::c_long,
17268                                   vf: *const ::std::os::raw::c_char,
17269                                   xc: *const ::std::os::raw::c_char);
17270}
17271extern "C" {
17272    pub fn THDoubleTensor_conv3Dmul(r_: *mut THDoubleTensor, beta: f64,
17273                                    alpha: f64, t_: *mut THDoubleTensor,
17274                                    k_: *mut THDoubleTensor,
17275                                    sdepth: ::std::os::raw::c_long,
17276                                    srow: ::std::os::raw::c_long,
17277                                    scol: ::std::os::raw::c_long,
17278                                    vf: *const ::std::os::raw::c_char,
17279                                    xc: *const ::std::os::raw::c_char);
17280}
17281extern "C" {
17282    pub fn THDoubleTensor_conv3Dcmul(r_: *mut THDoubleTensor, beta: f64,
17283                                     alpha: f64, t_: *mut THDoubleTensor,
17284                                     k_: *mut THDoubleTensor,
17285                                     sdepth: ::std::os::raw::c_long,
17286                                     srow: ::std::os::raw::c_long,
17287                                     scol: ::std::os::raw::c_long,
17288                                     vf: *const ::std::os::raw::c_char,
17289                                     xc: *const ::std::os::raw::c_char);
17290}
17291extern "C" {
17292    pub fn THByteTensor_validXCorr2Dptr(r_: *mut ::std::os::raw::c_uchar,
17293                                        alpha: ::std::os::raw::c_uchar,
17294                                        t_: *mut ::std::os::raw::c_uchar,
17295                                        ir: ::std::os::raw::c_long,
17296                                        ic: ::std::os::raw::c_long,
17297                                        k_: *mut ::std::os::raw::c_uchar,
17298                                        kr: ::std::os::raw::c_long,
17299                                        kc: ::std::os::raw::c_long,
17300                                        sr: ::std::os::raw::c_long,
17301                                        sc: ::std::os::raw::c_long);
17302}
17303extern "C" {
17304    pub fn THByteTensor_validConv2Dptr(r_: *mut ::std::os::raw::c_uchar,
17305                                       alpha: ::std::os::raw::c_uchar,
17306                                       t_: *mut ::std::os::raw::c_uchar,
17307                                       ir: ::std::os::raw::c_long,
17308                                       ic: ::std::os::raw::c_long,
17309                                       k_: *mut ::std::os::raw::c_uchar,
17310                                       kr: ::std::os::raw::c_long,
17311                                       kc: ::std::os::raw::c_long,
17312                                       sr: ::std::os::raw::c_long,
17313                                       sc: ::std::os::raw::c_long);
17314}
17315extern "C" {
17316    pub fn THByteTensor_fullXCorr2Dptr(r_: *mut ::std::os::raw::c_uchar,
17317                                       alpha: ::std::os::raw::c_uchar,
17318                                       t_: *mut ::std::os::raw::c_uchar,
17319                                       ir: ::std::os::raw::c_long,
17320                                       ic: ::std::os::raw::c_long,
17321                                       k_: *mut ::std::os::raw::c_uchar,
17322                                       kr: ::std::os::raw::c_long,
17323                                       kc: ::std::os::raw::c_long,
17324                                       sr: ::std::os::raw::c_long,
17325                                       sc: ::std::os::raw::c_long);
17326}
17327extern "C" {
17328    pub fn THByteTensor_fullConv2Dptr(r_: *mut ::std::os::raw::c_uchar,
17329                                      alpha: ::std::os::raw::c_uchar,
17330                                      t_: *mut ::std::os::raw::c_uchar,
17331                                      ir: ::std::os::raw::c_long,
17332                                      ic: ::std::os::raw::c_long,
17333                                      k_: *mut ::std::os::raw::c_uchar,
17334                                      kr: ::std::os::raw::c_long,
17335                                      kc: ::std::os::raw::c_long,
17336                                      sr: ::std::os::raw::c_long,
17337                                      sc: ::std::os::raw::c_long);
17338}
17339extern "C" {
17340    pub fn THByteTensor_validXCorr2DRevptr(r_: *mut ::std::os::raw::c_uchar,
17341                                           alpha: ::std::os::raw::c_uchar,
17342                                           t_: *mut ::std::os::raw::c_uchar,
17343                                           ir: ::std::os::raw::c_long,
17344                                           ic: ::std::os::raw::c_long,
17345                                           k_: *mut ::std::os::raw::c_uchar,
17346                                           kr: ::std::os::raw::c_long,
17347                                           kc: ::std::os::raw::c_long,
17348                                           sr: ::std::os::raw::c_long,
17349                                           sc: ::std::os::raw::c_long);
17350}
17351extern "C" {
17352    pub fn THByteTensor_conv2DRevger(r_: *mut THByteTensor,
17353                                     beta: ::std::os::raw::c_uchar,
17354                                     alpha: ::std::os::raw::c_uchar,
17355                                     t_: *mut THByteTensor,
17356                                     k_: *mut THByteTensor,
17357                                     srow: ::std::os::raw::c_long,
17358                                     scol: ::std::os::raw::c_long);
17359}
17360extern "C" {
17361    pub fn THByteTensor_conv2DRevgerm(r_: *mut THByteTensor,
17362                                      beta: ::std::os::raw::c_uchar,
17363                                      alpha: ::std::os::raw::c_uchar,
17364                                      t_: *mut THByteTensor,
17365                                      k_: *mut THByteTensor,
17366                                      srow: ::std::os::raw::c_long,
17367                                      scol: ::std::os::raw::c_long);
17368}
17369extern "C" {
17370    pub fn THByteTensor_conv2Dger(r_: *mut THByteTensor,
17371                                  beta: ::std::os::raw::c_uchar,
17372                                  alpha: ::std::os::raw::c_uchar,
17373                                  t_: *mut THByteTensor,
17374                                  k_: *mut THByteTensor,
17375                                  srow: ::std::os::raw::c_long,
17376                                  scol: ::std::os::raw::c_long,
17377                                  vf: *const ::std::os::raw::c_char,
17378                                  xc: *const ::std::os::raw::c_char);
17379}
17380extern "C" {
17381    pub fn THByteTensor_conv2Dmv(r_: *mut THByteTensor,
17382                                 beta: ::std::os::raw::c_uchar,
17383                                 alpha: ::std::os::raw::c_uchar,
17384                                 t_: *mut THByteTensor, k_: *mut THByteTensor,
17385                                 srow: ::std::os::raw::c_long,
17386                                 scol: ::std::os::raw::c_long,
17387                                 vf: *const ::std::os::raw::c_char,
17388                                 xc: *const ::std::os::raw::c_char);
17389}
17390extern "C" {
17391    pub fn THByteTensor_conv2Dmm(r_: *mut THByteTensor,
17392                                 beta: ::std::os::raw::c_uchar,
17393                                 alpha: ::std::os::raw::c_uchar,
17394                                 t_: *mut THByteTensor, k_: *mut THByteTensor,
17395                                 srow: ::std::os::raw::c_long,
17396                                 scol: ::std::os::raw::c_long,
17397                                 vf: *const ::std::os::raw::c_char,
17398                                 xc: *const ::std::os::raw::c_char);
17399}
17400extern "C" {
17401    pub fn THByteTensor_conv2Dmul(r_: *mut THByteTensor,
17402                                  beta: ::std::os::raw::c_uchar,
17403                                  alpha: ::std::os::raw::c_uchar,
17404                                  t_: *mut THByteTensor,
17405                                  k_: *mut THByteTensor,
17406                                  srow: ::std::os::raw::c_long,
17407                                  scol: ::std::os::raw::c_long,
17408                                  vf: *const ::std::os::raw::c_char,
17409                                  xc: *const ::std::os::raw::c_char);
17410}
17411extern "C" {
17412    pub fn THByteTensor_conv2Dcmul(r_: *mut THByteTensor,
17413                                   beta: ::std::os::raw::c_uchar,
17414                                   alpha: ::std::os::raw::c_uchar,
17415                                   t_: *mut THByteTensor,
17416                                   k_: *mut THByteTensor,
17417                                   srow: ::std::os::raw::c_long,
17418                                   scol: ::std::os::raw::c_long,
17419                                   vf: *const ::std::os::raw::c_char,
17420                                   xc: *const ::std::os::raw::c_char);
17421}
17422extern "C" {
17423    pub fn THByteTensor_validXCorr3Dptr(r_: *mut ::std::os::raw::c_uchar,
17424                                        alpha: ::std::os::raw::c_uchar,
17425                                        t_: *mut ::std::os::raw::c_uchar,
17426                                        it: ::std::os::raw::c_long,
17427                                        ir: ::std::os::raw::c_long,
17428                                        ic: ::std::os::raw::c_long,
17429                                        k_: *mut ::std::os::raw::c_uchar,
17430                                        kt: ::std::os::raw::c_long,
17431                                        kr: ::std::os::raw::c_long,
17432                                        kc: ::std::os::raw::c_long,
17433                                        st: ::std::os::raw::c_long,
17434                                        sr: ::std::os::raw::c_long,
17435                                        sc: ::std::os::raw::c_long);
17436}
17437extern "C" {
17438    pub fn THByteTensor_validConv3Dptr(r_: *mut ::std::os::raw::c_uchar,
17439                                       alpha: ::std::os::raw::c_uchar,
17440                                       t_: *mut ::std::os::raw::c_uchar,
17441                                       it: ::std::os::raw::c_long,
17442                                       ir: ::std::os::raw::c_long,
17443                                       ic: ::std::os::raw::c_long,
17444                                       k_: *mut ::std::os::raw::c_uchar,
17445                                       kt: ::std::os::raw::c_long,
17446                                       kr: ::std::os::raw::c_long,
17447                                       kc: ::std::os::raw::c_long,
17448                                       st: ::std::os::raw::c_long,
17449                                       sr: ::std::os::raw::c_long,
17450                                       sc: ::std::os::raw::c_long);
17451}
17452extern "C" {
17453    pub fn THByteTensor_fullXCorr3Dptr(r_: *mut ::std::os::raw::c_uchar,
17454                                       alpha: ::std::os::raw::c_uchar,
17455                                       t_: *mut ::std::os::raw::c_uchar,
17456                                       it: ::std::os::raw::c_long,
17457                                       ir: ::std::os::raw::c_long,
17458                                       ic: ::std::os::raw::c_long,
17459                                       k_: *mut ::std::os::raw::c_uchar,
17460                                       kt: ::std::os::raw::c_long,
17461                                       kr: ::std::os::raw::c_long,
17462                                       kc: ::std::os::raw::c_long,
17463                                       st: ::std::os::raw::c_long,
17464                                       sr: ::std::os::raw::c_long,
17465                                       sc: ::std::os::raw::c_long);
17466}
17467extern "C" {
17468    pub fn THByteTensor_fullConv3Dptr(r_: *mut ::std::os::raw::c_uchar,
17469                                      alpha: ::std::os::raw::c_uchar,
17470                                      t_: *mut ::std::os::raw::c_uchar,
17471                                      it: ::std::os::raw::c_long,
17472                                      ir: ::std::os::raw::c_long,
17473                                      ic: ::std::os::raw::c_long,
17474                                      k_: *mut ::std::os::raw::c_uchar,
17475                                      kt: ::std::os::raw::c_long,
17476                                      kr: ::std::os::raw::c_long,
17477                                      kc: ::std::os::raw::c_long,
17478                                      st: ::std::os::raw::c_long,
17479                                      sr: ::std::os::raw::c_long,
17480                                      sc: ::std::os::raw::c_long);
17481}
17482extern "C" {
17483    pub fn THByteTensor_validXCorr3DRevptr(r_: *mut ::std::os::raw::c_uchar,
17484                                           alpha: ::std::os::raw::c_uchar,
17485                                           t_: *mut ::std::os::raw::c_uchar,
17486                                           it: ::std::os::raw::c_long,
17487                                           ir: ::std::os::raw::c_long,
17488                                           ic: ::std::os::raw::c_long,
17489                                           k_: *mut ::std::os::raw::c_uchar,
17490                                           kt: ::std::os::raw::c_long,
17491                                           kr: ::std::os::raw::c_long,
17492                                           kc: ::std::os::raw::c_long,
17493                                           st: ::std::os::raw::c_long,
17494                                           sr: ::std::os::raw::c_long,
17495                                           sc: ::std::os::raw::c_long);
17496}
17497extern "C" {
17498    pub fn THByteTensor_conv3DRevger(r_: *mut THByteTensor,
17499                                     beta: ::std::os::raw::c_uchar,
17500                                     alpha: ::std::os::raw::c_uchar,
17501                                     t_: *mut THByteTensor,
17502                                     k_: *mut THByteTensor,
17503                                     sdepth: ::std::os::raw::c_long,
17504                                     srow: ::std::os::raw::c_long,
17505                                     scol: ::std::os::raw::c_long);
17506}
17507extern "C" {
17508    pub fn THByteTensor_conv3Dger(r_: *mut THByteTensor,
17509                                  beta: ::std::os::raw::c_uchar,
17510                                  alpha: ::std::os::raw::c_uchar,
17511                                  t_: *mut THByteTensor,
17512                                  k_: *mut THByteTensor,
17513                                  sdepth: ::std::os::raw::c_long,
17514                                  srow: ::std::os::raw::c_long,
17515                                  scol: ::std::os::raw::c_long,
17516                                  vf: *const ::std::os::raw::c_char,
17517                                  xc: *const ::std::os::raw::c_char);
17518}
17519extern "C" {
17520    pub fn THByteTensor_conv3Dmv(r_: *mut THByteTensor,
17521                                 beta: ::std::os::raw::c_uchar,
17522                                 alpha: ::std::os::raw::c_uchar,
17523                                 t_: *mut THByteTensor, k_: *mut THByteTensor,
17524                                 sdepth: ::std::os::raw::c_long,
17525                                 srow: ::std::os::raw::c_long,
17526                                 scol: ::std::os::raw::c_long,
17527                                 vf: *const ::std::os::raw::c_char,
17528                                 xc: *const ::std::os::raw::c_char);
17529}
17530extern "C" {
17531    pub fn THByteTensor_conv3Dmul(r_: *mut THByteTensor,
17532                                  beta: ::std::os::raw::c_uchar,
17533                                  alpha: ::std::os::raw::c_uchar,
17534                                  t_: *mut THByteTensor,
17535                                  k_: *mut THByteTensor,
17536                                  sdepth: ::std::os::raw::c_long,
17537                                  srow: ::std::os::raw::c_long,
17538                                  scol: ::std::os::raw::c_long,
17539                                  vf: *const ::std::os::raw::c_char,
17540                                  xc: *const ::std::os::raw::c_char);
17541}
17542extern "C" {
17543    pub fn THByteTensor_conv3Dcmul(r_: *mut THByteTensor,
17544                                   beta: ::std::os::raw::c_uchar,
17545                                   alpha: ::std::os::raw::c_uchar,
17546                                   t_: *mut THByteTensor,
17547                                   k_: *mut THByteTensor,
17548                                   sdepth: ::std::os::raw::c_long,
17549                                   srow: ::std::os::raw::c_long,
17550                                   scol: ::std::os::raw::c_long,
17551                                   vf: *const ::std::os::raw::c_char,
17552                                   xc: *const ::std::os::raw::c_char);
17553}
17554extern "C" {
17555    pub fn THCharTensor_validXCorr2Dptr(r_: *mut ::std::os::raw::c_char,
17556                                        alpha: ::std::os::raw::c_char,
17557                                        t_: *mut ::std::os::raw::c_char,
17558                                        ir: ::std::os::raw::c_long,
17559                                        ic: ::std::os::raw::c_long,
17560                                        k_: *mut ::std::os::raw::c_char,
17561                                        kr: ::std::os::raw::c_long,
17562                                        kc: ::std::os::raw::c_long,
17563                                        sr: ::std::os::raw::c_long,
17564                                        sc: ::std::os::raw::c_long);
17565}
17566extern "C" {
17567    pub fn THCharTensor_validConv2Dptr(r_: *mut ::std::os::raw::c_char,
17568                                       alpha: ::std::os::raw::c_char,
17569                                       t_: *mut ::std::os::raw::c_char,
17570                                       ir: ::std::os::raw::c_long,
17571                                       ic: ::std::os::raw::c_long,
17572                                       k_: *mut ::std::os::raw::c_char,
17573                                       kr: ::std::os::raw::c_long,
17574                                       kc: ::std::os::raw::c_long,
17575                                       sr: ::std::os::raw::c_long,
17576                                       sc: ::std::os::raw::c_long);
17577}
17578extern "C" {
17579    pub fn THCharTensor_fullXCorr2Dptr(r_: *mut ::std::os::raw::c_char,
17580                                       alpha: ::std::os::raw::c_char,
17581                                       t_: *mut ::std::os::raw::c_char,
17582                                       ir: ::std::os::raw::c_long,
17583                                       ic: ::std::os::raw::c_long,
17584                                       k_: *mut ::std::os::raw::c_char,
17585                                       kr: ::std::os::raw::c_long,
17586                                       kc: ::std::os::raw::c_long,
17587                                       sr: ::std::os::raw::c_long,
17588                                       sc: ::std::os::raw::c_long);
17589}
17590extern "C" {
17591    pub fn THCharTensor_fullConv2Dptr(r_: *mut ::std::os::raw::c_char,
17592                                      alpha: ::std::os::raw::c_char,
17593                                      t_: *mut ::std::os::raw::c_char,
17594                                      ir: ::std::os::raw::c_long,
17595                                      ic: ::std::os::raw::c_long,
17596                                      k_: *mut ::std::os::raw::c_char,
17597                                      kr: ::std::os::raw::c_long,
17598                                      kc: ::std::os::raw::c_long,
17599                                      sr: ::std::os::raw::c_long,
17600                                      sc: ::std::os::raw::c_long);
17601}
17602extern "C" {
17603    pub fn THCharTensor_validXCorr2DRevptr(r_: *mut ::std::os::raw::c_char,
17604                                           alpha: ::std::os::raw::c_char,
17605                                           t_: *mut ::std::os::raw::c_char,
17606                                           ir: ::std::os::raw::c_long,
17607                                           ic: ::std::os::raw::c_long,
17608                                           k_: *mut ::std::os::raw::c_char,
17609                                           kr: ::std::os::raw::c_long,
17610                                           kc: ::std::os::raw::c_long,
17611                                           sr: ::std::os::raw::c_long,
17612                                           sc: ::std::os::raw::c_long);
17613}
17614extern "C" {
17615    pub fn THCharTensor_conv2DRevger(r_: *mut THCharTensor,
17616                                     beta: ::std::os::raw::c_char,
17617                                     alpha: ::std::os::raw::c_char,
17618                                     t_: *mut THCharTensor,
17619                                     k_: *mut THCharTensor,
17620                                     srow: ::std::os::raw::c_long,
17621                                     scol: ::std::os::raw::c_long);
17622}
17623extern "C" {
17624    pub fn THCharTensor_conv2DRevgerm(r_: *mut THCharTensor,
17625                                      beta: ::std::os::raw::c_char,
17626                                      alpha: ::std::os::raw::c_char,
17627                                      t_: *mut THCharTensor,
17628                                      k_: *mut THCharTensor,
17629                                      srow: ::std::os::raw::c_long,
17630                                      scol: ::std::os::raw::c_long);
17631}
17632extern "C" {
17633    pub fn THCharTensor_conv2Dger(r_: *mut THCharTensor,
17634                                  beta: ::std::os::raw::c_char,
17635                                  alpha: ::std::os::raw::c_char,
17636                                  t_: *mut THCharTensor,
17637                                  k_: *mut THCharTensor,
17638                                  srow: ::std::os::raw::c_long,
17639                                  scol: ::std::os::raw::c_long,
17640                                  vf: *const ::std::os::raw::c_char,
17641                                  xc: *const ::std::os::raw::c_char);
17642}
17643extern "C" {
17644    pub fn THCharTensor_conv2Dmv(r_: *mut THCharTensor,
17645                                 beta: ::std::os::raw::c_char,
17646                                 alpha: ::std::os::raw::c_char,
17647                                 t_: *mut THCharTensor, k_: *mut THCharTensor,
17648                                 srow: ::std::os::raw::c_long,
17649                                 scol: ::std::os::raw::c_long,
17650                                 vf: *const ::std::os::raw::c_char,
17651                                 xc: *const ::std::os::raw::c_char);
17652}
17653extern "C" {
17654    pub fn THCharTensor_conv2Dmm(r_: *mut THCharTensor,
17655                                 beta: ::std::os::raw::c_char,
17656                                 alpha: ::std::os::raw::c_char,
17657                                 t_: *mut THCharTensor, k_: *mut THCharTensor,
17658                                 srow: ::std::os::raw::c_long,
17659                                 scol: ::std::os::raw::c_long,
17660                                 vf: *const ::std::os::raw::c_char,
17661                                 xc: *const ::std::os::raw::c_char);
17662}
17663extern "C" {
17664    pub fn THCharTensor_conv2Dmul(r_: *mut THCharTensor,
17665                                  beta: ::std::os::raw::c_char,
17666                                  alpha: ::std::os::raw::c_char,
17667                                  t_: *mut THCharTensor,
17668                                  k_: *mut THCharTensor,
17669                                  srow: ::std::os::raw::c_long,
17670                                  scol: ::std::os::raw::c_long,
17671                                  vf: *const ::std::os::raw::c_char,
17672                                  xc: *const ::std::os::raw::c_char);
17673}
17674extern "C" {
17675    pub fn THCharTensor_conv2Dcmul(r_: *mut THCharTensor,
17676                                   beta: ::std::os::raw::c_char,
17677                                   alpha: ::std::os::raw::c_char,
17678                                   t_: *mut THCharTensor,
17679                                   k_: *mut THCharTensor,
17680                                   srow: ::std::os::raw::c_long,
17681                                   scol: ::std::os::raw::c_long,
17682                                   vf: *const ::std::os::raw::c_char,
17683                                   xc: *const ::std::os::raw::c_char);
17684}
17685extern "C" {
17686    pub fn THCharTensor_validXCorr3Dptr(r_: *mut ::std::os::raw::c_char,
17687                                        alpha: ::std::os::raw::c_char,
17688                                        t_: *mut ::std::os::raw::c_char,
17689                                        it: ::std::os::raw::c_long,
17690                                        ir: ::std::os::raw::c_long,
17691                                        ic: ::std::os::raw::c_long,
17692                                        k_: *mut ::std::os::raw::c_char,
17693                                        kt: ::std::os::raw::c_long,
17694                                        kr: ::std::os::raw::c_long,
17695                                        kc: ::std::os::raw::c_long,
17696                                        st: ::std::os::raw::c_long,
17697                                        sr: ::std::os::raw::c_long,
17698                                        sc: ::std::os::raw::c_long);
17699}
17700extern "C" {
17701    pub fn THCharTensor_validConv3Dptr(r_: *mut ::std::os::raw::c_char,
17702                                       alpha: ::std::os::raw::c_char,
17703                                       t_: *mut ::std::os::raw::c_char,
17704                                       it: ::std::os::raw::c_long,
17705                                       ir: ::std::os::raw::c_long,
17706                                       ic: ::std::os::raw::c_long,
17707                                       k_: *mut ::std::os::raw::c_char,
17708                                       kt: ::std::os::raw::c_long,
17709                                       kr: ::std::os::raw::c_long,
17710                                       kc: ::std::os::raw::c_long,
17711                                       st: ::std::os::raw::c_long,
17712                                       sr: ::std::os::raw::c_long,
17713                                       sc: ::std::os::raw::c_long);
17714}
17715extern "C" {
17716    pub fn THCharTensor_fullXCorr3Dptr(r_: *mut ::std::os::raw::c_char,
17717                                       alpha: ::std::os::raw::c_char,
17718                                       t_: *mut ::std::os::raw::c_char,
17719                                       it: ::std::os::raw::c_long,
17720                                       ir: ::std::os::raw::c_long,
17721                                       ic: ::std::os::raw::c_long,
17722                                       k_: *mut ::std::os::raw::c_char,
17723                                       kt: ::std::os::raw::c_long,
17724                                       kr: ::std::os::raw::c_long,
17725                                       kc: ::std::os::raw::c_long,
17726                                       st: ::std::os::raw::c_long,
17727                                       sr: ::std::os::raw::c_long,
17728                                       sc: ::std::os::raw::c_long);
17729}
17730extern "C" {
17731    pub fn THCharTensor_fullConv3Dptr(r_: *mut ::std::os::raw::c_char,
17732                                      alpha: ::std::os::raw::c_char,
17733                                      t_: *mut ::std::os::raw::c_char,
17734                                      it: ::std::os::raw::c_long,
17735                                      ir: ::std::os::raw::c_long,
17736                                      ic: ::std::os::raw::c_long,
17737                                      k_: *mut ::std::os::raw::c_char,
17738                                      kt: ::std::os::raw::c_long,
17739                                      kr: ::std::os::raw::c_long,
17740                                      kc: ::std::os::raw::c_long,
17741                                      st: ::std::os::raw::c_long,
17742                                      sr: ::std::os::raw::c_long,
17743                                      sc: ::std::os::raw::c_long);
17744}
17745extern "C" {
17746    pub fn THCharTensor_validXCorr3DRevptr(r_: *mut ::std::os::raw::c_char,
17747                                           alpha: ::std::os::raw::c_char,
17748                                           t_: *mut ::std::os::raw::c_char,
17749                                           it: ::std::os::raw::c_long,
17750                                           ir: ::std::os::raw::c_long,
17751                                           ic: ::std::os::raw::c_long,
17752                                           k_: *mut ::std::os::raw::c_char,
17753                                           kt: ::std::os::raw::c_long,
17754                                           kr: ::std::os::raw::c_long,
17755                                           kc: ::std::os::raw::c_long,
17756                                           st: ::std::os::raw::c_long,
17757                                           sr: ::std::os::raw::c_long,
17758                                           sc: ::std::os::raw::c_long);
17759}
17760extern "C" {
17761    pub fn THCharTensor_conv3DRevger(r_: *mut THCharTensor,
17762                                     beta: ::std::os::raw::c_char,
17763                                     alpha: ::std::os::raw::c_char,
17764                                     t_: *mut THCharTensor,
17765                                     k_: *mut THCharTensor,
17766                                     sdepth: ::std::os::raw::c_long,
17767                                     srow: ::std::os::raw::c_long,
17768                                     scol: ::std::os::raw::c_long);
17769}
17770extern "C" {
17771    pub fn THCharTensor_conv3Dger(r_: *mut THCharTensor,
17772                                  beta: ::std::os::raw::c_char,
17773                                  alpha: ::std::os::raw::c_char,
17774                                  t_: *mut THCharTensor,
17775                                  k_: *mut THCharTensor,
17776                                  sdepth: ::std::os::raw::c_long,
17777                                  srow: ::std::os::raw::c_long,
17778                                  scol: ::std::os::raw::c_long,
17779                                  vf: *const ::std::os::raw::c_char,
17780                                  xc: *const ::std::os::raw::c_char);
17781}
17782extern "C" {
17783    pub fn THCharTensor_conv3Dmv(r_: *mut THCharTensor,
17784                                 beta: ::std::os::raw::c_char,
17785                                 alpha: ::std::os::raw::c_char,
17786                                 t_: *mut THCharTensor, k_: *mut THCharTensor,
17787                                 sdepth: ::std::os::raw::c_long,
17788                                 srow: ::std::os::raw::c_long,
17789                                 scol: ::std::os::raw::c_long,
17790                                 vf: *const ::std::os::raw::c_char,
17791                                 xc: *const ::std::os::raw::c_char);
17792}
17793extern "C" {
17794    pub fn THCharTensor_conv3Dmul(r_: *mut THCharTensor,
17795                                  beta: ::std::os::raw::c_char,
17796                                  alpha: ::std::os::raw::c_char,
17797                                  t_: *mut THCharTensor,
17798                                  k_: *mut THCharTensor,
17799                                  sdepth: ::std::os::raw::c_long,
17800                                  srow: ::std::os::raw::c_long,
17801                                  scol: ::std::os::raw::c_long,
17802                                  vf: *const ::std::os::raw::c_char,
17803                                  xc: *const ::std::os::raw::c_char);
17804}
17805extern "C" {
17806    pub fn THCharTensor_conv3Dcmul(r_: *mut THCharTensor,
17807                                   beta: ::std::os::raw::c_char,
17808                                   alpha: ::std::os::raw::c_char,
17809                                   t_: *mut THCharTensor,
17810                                   k_: *mut THCharTensor,
17811                                   sdepth: ::std::os::raw::c_long,
17812                                   srow: ::std::os::raw::c_long,
17813                                   scol: ::std::os::raw::c_long,
17814                                   vf: *const ::std::os::raw::c_char,
17815                                   xc: *const ::std::os::raw::c_char);
17816}
17817extern "C" {
17818    pub fn THShortTensor_validXCorr2Dptr(r_: *mut ::std::os::raw::c_short,
17819                                         alpha: ::std::os::raw::c_short,
17820                                         t_: *mut ::std::os::raw::c_short,
17821                                         ir: ::std::os::raw::c_long,
17822                                         ic: ::std::os::raw::c_long,
17823                                         k_: *mut ::std::os::raw::c_short,
17824                                         kr: ::std::os::raw::c_long,
17825                                         kc: ::std::os::raw::c_long,
17826                                         sr: ::std::os::raw::c_long,
17827                                         sc: ::std::os::raw::c_long);
17828}
17829extern "C" {
17830    pub fn THShortTensor_validConv2Dptr(r_: *mut ::std::os::raw::c_short,
17831                                        alpha: ::std::os::raw::c_short,
17832                                        t_: *mut ::std::os::raw::c_short,
17833                                        ir: ::std::os::raw::c_long,
17834                                        ic: ::std::os::raw::c_long,
17835                                        k_: *mut ::std::os::raw::c_short,
17836                                        kr: ::std::os::raw::c_long,
17837                                        kc: ::std::os::raw::c_long,
17838                                        sr: ::std::os::raw::c_long,
17839                                        sc: ::std::os::raw::c_long);
17840}
17841extern "C" {
17842    pub fn THShortTensor_fullXCorr2Dptr(r_: *mut ::std::os::raw::c_short,
17843                                        alpha: ::std::os::raw::c_short,
17844                                        t_: *mut ::std::os::raw::c_short,
17845                                        ir: ::std::os::raw::c_long,
17846                                        ic: ::std::os::raw::c_long,
17847                                        k_: *mut ::std::os::raw::c_short,
17848                                        kr: ::std::os::raw::c_long,
17849                                        kc: ::std::os::raw::c_long,
17850                                        sr: ::std::os::raw::c_long,
17851                                        sc: ::std::os::raw::c_long);
17852}
17853extern "C" {
17854    pub fn THShortTensor_fullConv2Dptr(r_: *mut ::std::os::raw::c_short,
17855                                       alpha: ::std::os::raw::c_short,
17856                                       t_: *mut ::std::os::raw::c_short,
17857                                       ir: ::std::os::raw::c_long,
17858                                       ic: ::std::os::raw::c_long,
17859                                       k_: *mut ::std::os::raw::c_short,
17860                                       kr: ::std::os::raw::c_long,
17861                                       kc: ::std::os::raw::c_long,
17862                                       sr: ::std::os::raw::c_long,
17863                                       sc: ::std::os::raw::c_long);
17864}
17865extern "C" {
17866    pub fn THShortTensor_validXCorr2DRevptr(r_: *mut ::std::os::raw::c_short,
17867                                            alpha: ::std::os::raw::c_short,
17868                                            t_: *mut ::std::os::raw::c_short,
17869                                            ir: ::std::os::raw::c_long,
17870                                            ic: ::std::os::raw::c_long,
17871                                            k_: *mut ::std::os::raw::c_short,
17872                                            kr: ::std::os::raw::c_long,
17873                                            kc: ::std::os::raw::c_long,
17874                                            sr: ::std::os::raw::c_long,
17875                                            sc: ::std::os::raw::c_long);
17876}
17877extern "C" {
17878    pub fn THShortTensor_conv2DRevger(r_: *mut THShortTensor,
17879                                      beta: ::std::os::raw::c_short,
17880                                      alpha: ::std::os::raw::c_short,
17881                                      t_: *mut THShortTensor,
17882                                      k_: *mut THShortTensor,
17883                                      srow: ::std::os::raw::c_long,
17884                                      scol: ::std::os::raw::c_long);
17885}
17886extern "C" {
17887    pub fn THShortTensor_conv2DRevgerm(r_: *mut THShortTensor,
17888                                       beta: ::std::os::raw::c_short,
17889                                       alpha: ::std::os::raw::c_short,
17890                                       t_: *mut THShortTensor,
17891                                       k_: *mut THShortTensor,
17892                                       srow: ::std::os::raw::c_long,
17893                                       scol: ::std::os::raw::c_long);
17894}
17895extern "C" {
17896    pub fn THShortTensor_conv2Dger(r_: *mut THShortTensor,
17897                                   beta: ::std::os::raw::c_short,
17898                                   alpha: ::std::os::raw::c_short,
17899                                   t_: *mut THShortTensor,
17900                                   k_: *mut THShortTensor,
17901                                   srow: ::std::os::raw::c_long,
17902                                   scol: ::std::os::raw::c_long,
17903                                   vf: *const ::std::os::raw::c_char,
17904                                   xc: *const ::std::os::raw::c_char);
17905}
17906extern "C" {
17907    pub fn THShortTensor_conv2Dmv(r_: *mut THShortTensor,
17908                                  beta: ::std::os::raw::c_short,
17909                                  alpha: ::std::os::raw::c_short,
17910                                  t_: *mut THShortTensor,
17911                                  k_: *mut THShortTensor,
17912                                  srow: ::std::os::raw::c_long,
17913                                  scol: ::std::os::raw::c_long,
17914                                  vf: *const ::std::os::raw::c_char,
17915                                  xc: *const ::std::os::raw::c_char);
17916}
17917extern "C" {
17918    pub fn THShortTensor_conv2Dmm(r_: *mut THShortTensor,
17919                                  beta: ::std::os::raw::c_short,
17920                                  alpha: ::std::os::raw::c_short,
17921                                  t_: *mut THShortTensor,
17922                                  k_: *mut THShortTensor,
17923                                  srow: ::std::os::raw::c_long,
17924                                  scol: ::std::os::raw::c_long,
17925                                  vf: *const ::std::os::raw::c_char,
17926                                  xc: *const ::std::os::raw::c_char);
17927}
17928extern "C" {
17929    pub fn THShortTensor_conv2Dmul(r_: *mut THShortTensor,
17930                                   beta: ::std::os::raw::c_short,
17931                                   alpha: ::std::os::raw::c_short,
17932                                   t_: *mut THShortTensor,
17933                                   k_: *mut THShortTensor,
17934                                   srow: ::std::os::raw::c_long,
17935                                   scol: ::std::os::raw::c_long,
17936                                   vf: *const ::std::os::raw::c_char,
17937                                   xc: *const ::std::os::raw::c_char);
17938}
17939extern "C" {
17940    pub fn THShortTensor_conv2Dcmul(r_: *mut THShortTensor,
17941                                    beta: ::std::os::raw::c_short,
17942                                    alpha: ::std::os::raw::c_short,
17943                                    t_: *mut THShortTensor,
17944                                    k_: *mut THShortTensor,
17945                                    srow: ::std::os::raw::c_long,
17946                                    scol: ::std::os::raw::c_long,
17947                                    vf: *const ::std::os::raw::c_char,
17948                                    xc: *const ::std::os::raw::c_char);
17949}
17950extern "C" {
17951    pub fn THShortTensor_validXCorr3Dptr(r_: *mut ::std::os::raw::c_short,
17952                                         alpha: ::std::os::raw::c_short,
17953                                         t_: *mut ::std::os::raw::c_short,
17954                                         it: ::std::os::raw::c_long,
17955                                         ir: ::std::os::raw::c_long,
17956                                         ic: ::std::os::raw::c_long,
17957                                         k_: *mut ::std::os::raw::c_short,
17958                                         kt: ::std::os::raw::c_long,
17959                                         kr: ::std::os::raw::c_long,
17960                                         kc: ::std::os::raw::c_long,
17961                                         st: ::std::os::raw::c_long,
17962                                         sr: ::std::os::raw::c_long,
17963                                         sc: ::std::os::raw::c_long);
17964}
17965extern "C" {
17966    pub fn THShortTensor_validConv3Dptr(r_: *mut ::std::os::raw::c_short,
17967                                        alpha: ::std::os::raw::c_short,
17968                                        t_: *mut ::std::os::raw::c_short,
17969                                        it: ::std::os::raw::c_long,
17970                                        ir: ::std::os::raw::c_long,
17971                                        ic: ::std::os::raw::c_long,
17972                                        k_: *mut ::std::os::raw::c_short,
17973                                        kt: ::std::os::raw::c_long,
17974                                        kr: ::std::os::raw::c_long,
17975                                        kc: ::std::os::raw::c_long,
17976                                        st: ::std::os::raw::c_long,
17977                                        sr: ::std::os::raw::c_long,
17978                                        sc: ::std::os::raw::c_long);
17979}
17980extern "C" {
17981    pub fn THShortTensor_fullXCorr3Dptr(r_: *mut ::std::os::raw::c_short,
17982                                        alpha: ::std::os::raw::c_short,
17983                                        t_: *mut ::std::os::raw::c_short,
17984                                        it: ::std::os::raw::c_long,
17985                                        ir: ::std::os::raw::c_long,
17986                                        ic: ::std::os::raw::c_long,
17987                                        k_: *mut ::std::os::raw::c_short,
17988                                        kt: ::std::os::raw::c_long,
17989                                        kr: ::std::os::raw::c_long,
17990                                        kc: ::std::os::raw::c_long,
17991                                        st: ::std::os::raw::c_long,
17992                                        sr: ::std::os::raw::c_long,
17993                                        sc: ::std::os::raw::c_long);
17994}
17995extern "C" {
17996    pub fn THShortTensor_fullConv3Dptr(r_: *mut ::std::os::raw::c_short,
17997                                       alpha: ::std::os::raw::c_short,
17998                                       t_: *mut ::std::os::raw::c_short,
17999                                       it: ::std::os::raw::c_long,
18000                                       ir: ::std::os::raw::c_long,
18001                                       ic: ::std::os::raw::c_long,
18002                                       k_: *mut ::std::os::raw::c_short,
18003                                       kt: ::std::os::raw::c_long,
18004                                       kr: ::std::os::raw::c_long,
18005                                       kc: ::std::os::raw::c_long,
18006                                       st: ::std::os::raw::c_long,
18007                                       sr: ::std::os::raw::c_long,
18008                                       sc: ::std::os::raw::c_long);
18009}
18010extern "C" {
18011    pub fn THShortTensor_validXCorr3DRevptr(r_: *mut ::std::os::raw::c_short,
18012                                            alpha: ::std::os::raw::c_short,
18013                                            t_: *mut ::std::os::raw::c_short,
18014                                            it: ::std::os::raw::c_long,
18015                                            ir: ::std::os::raw::c_long,
18016                                            ic: ::std::os::raw::c_long,
18017                                            k_: *mut ::std::os::raw::c_short,
18018                                            kt: ::std::os::raw::c_long,
18019                                            kr: ::std::os::raw::c_long,
18020                                            kc: ::std::os::raw::c_long,
18021                                            st: ::std::os::raw::c_long,
18022                                            sr: ::std::os::raw::c_long,
18023                                            sc: ::std::os::raw::c_long);
18024}
18025extern "C" {
18026    pub fn THShortTensor_conv3DRevger(r_: *mut THShortTensor,
18027                                      beta: ::std::os::raw::c_short,
18028                                      alpha: ::std::os::raw::c_short,
18029                                      t_: *mut THShortTensor,
18030                                      k_: *mut THShortTensor,
18031                                      sdepth: ::std::os::raw::c_long,
18032                                      srow: ::std::os::raw::c_long,
18033                                      scol: ::std::os::raw::c_long);
18034}
18035extern "C" {
18036    pub fn THShortTensor_conv3Dger(r_: *mut THShortTensor,
18037                                   beta: ::std::os::raw::c_short,
18038                                   alpha: ::std::os::raw::c_short,
18039                                   t_: *mut THShortTensor,
18040                                   k_: *mut THShortTensor,
18041                                   sdepth: ::std::os::raw::c_long,
18042                                   srow: ::std::os::raw::c_long,
18043                                   scol: ::std::os::raw::c_long,
18044                                   vf: *const ::std::os::raw::c_char,
18045                                   xc: *const ::std::os::raw::c_char);
18046}
18047extern "C" {
18048    pub fn THShortTensor_conv3Dmv(r_: *mut THShortTensor,
18049                                  beta: ::std::os::raw::c_short,
18050                                  alpha: ::std::os::raw::c_short,
18051                                  t_: *mut THShortTensor,
18052                                  k_: *mut THShortTensor,
18053                                  sdepth: ::std::os::raw::c_long,
18054                                  srow: ::std::os::raw::c_long,
18055                                  scol: ::std::os::raw::c_long,
18056                                  vf: *const ::std::os::raw::c_char,
18057                                  xc: *const ::std::os::raw::c_char);
18058}
18059extern "C" {
18060    pub fn THShortTensor_conv3Dmul(r_: *mut THShortTensor,
18061                                   beta: ::std::os::raw::c_short,
18062                                   alpha: ::std::os::raw::c_short,
18063                                   t_: *mut THShortTensor,
18064                                   k_: *mut THShortTensor,
18065                                   sdepth: ::std::os::raw::c_long,
18066                                   srow: ::std::os::raw::c_long,
18067                                   scol: ::std::os::raw::c_long,
18068                                   vf: *const ::std::os::raw::c_char,
18069                                   xc: *const ::std::os::raw::c_char);
18070}
18071extern "C" {
18072    pub fn THShortTensor_conv3Dcmul(r_: *mut THShortTensor,
18073                                    beta: ::std::os::raw::c_short,
18074                                    alpha: ::std::os::raw::c_short,
18075                                    t_: *mut THShortTensor,
18076                                    k_: *mut THShortTensor,
18077                                    sdepth: ::std::os::raw::c_long,
18078                                    srow: ::std::os::raw::c_long,
18079                                    scol: ::std::os::raw::c_long,
18080                                    vf: *const ::std::os::raw::c_char,
18081                                    xc: *const ::std::os::raw::c_char);
18082}
18083extern "C" {
18084    pub fn THIntTensor_validXCorr2Dptr(r_: *mut ::std::os::raw::c_int,
18085                                       alpha: ::std::os::raw::c_int,
18086                                       t_: *mut ::std::os::raw::c_int,
18087                                       ir: ::std::os::raw::c_long,
18088                                       ic: ::std::os::raw::c_long,
18089                                       k_: *mut ::std::os::raw::c_int,
18090                                       kr: ::std::os::raw::c_long,
18091                                       kc: ::std::os::raw::c_long,
18092                                       sr: ::std::os::raw::c_long,
18093                                       sc: ::std::os::raw::c_long);
18094}
18095extern "C" {
18096    pub fn THIntTensor_validConv2Dptr(r_: *mut ::std::os::raw::c_int,
18097                                      alpha: ::std::os::raw::c_int,
18098                                      t_: *mut ::std::os::raw::c_int,
18099                                      ir: ::std::os::raw::c_long,
18100                                      ic: ::std::os::raw::c_long,
18101                                      k_: *mut ::std::os::raw::c_int,
18102                                      kr: ::std::os::raw::c_long,
18103                                      kc: ::std::os::raw::c_long,
18104                                      sr: ::std::os::raw::c_long,
18105                                      sc: ::std::os::raw::c_long);
18106}
18107extern "C" {
18108    pub fn THIntTensor_fullXCorr2Dptr(r_: *mut ::std::os::raw::c_int,
18109                                      alpha: ::std::os::raw::c_int,
18110                                      t_: *mut ::std::os::raw::c_int,
18111                                      ir: ::std::os::raw::c_long,
18112                                      ic: ::std::os::raw::c_long,
18113                                      k_: *mut ::std::os::raw::c_int,
18114                                      kr: ::std::os::raw::c_long,
18115                                      kc: ::std::os::raw::c_long,
18116                                      sr: ::std::os::raw::c_long,
18117                                      sc: ::std::os::raw::c_long);
18118}
18119extern "C" {
18120    pub fn THIntTensor_fullConv2Dptr(r_: *mut ::std::os::raw::c_int,
18121                                     alpha: ::std::os::raw::c_int,
18122                                     t_: *mut ::std::os::raw::c_int,
18123                                     ir: ::std::os::raw::c_long,
18124                                     ic: ::std::os::raw::c_long,
18125                                     k_: *mut ::std::os::raw::c_int,
18126                                     kr: ::std::os::raw::c_long,
18127                                     kc: ::std::os::raw::c_long,
18128                                     sr: ::std::os::raw::c_long,
18129                                     sc: ::std::os::raw::c_long);
18130}
18131extern "C" {
18132    pub fn THIntTensor_validXCorr2DRevptr(r_: *mut ::std::os::raw::c_int,
18133                                          alpha: ::std::os::raw::c_int,
18134                                          t_: *mut ::std::os::raw::c_int,
18135                                          ir: ::std::os::raw::c_long,
18136                                          ic: ::std::os::raw::c_long,
18137                                          k_: *mut ::std::os::raw::c_int,
18138                                          kr: ::std::os::raw::c_long,
18139                                          kc: ::std::os::raw::c_long,
18140                                          sr: ::std::os::raw::c_long,
18141                                          sc: ::std::os::raw::c_long);
18142}
18143extern "C" {
18144    pub fn THIntTensor_conv2DRevger(r_: *mut THIntTensor,
18145                                    beta: ::std::os::raw::c_int,
18146                                    alpha: ::std::os::raw::c_int,
18147                                    t_: *mut THIntTensor,
18148                                    k_: *mut THIntTensor,
18149                                    srow: ::std::os::raw::c_long,
18150                                    scol: ::std::os::raw::c_long);
18151}
18152extern "C" {
18153    pub fn THIntTensor_conv2DRevgerm(r_: *mut THIntTensor,
18154                                     beta: ::std::os::raw::c_int,
18155                                     alpha: ::std::os::raw::c_int,
18156                                     t_: *mut THIntTensor,
18157                                     k_: *mut THIntTensor,
18158                                     srow: ::std::os::raw::c_long,
18159                                     scol: ::std::os::raw::c_long);
18160}
18161extern "C" {
18162    pub fn THIntTensor_conv2Dger(r_: *mut THIntTensor,
18163                                 beta: ::std::os::raw::c_int,
18164                                 alpha: ::std::os::raw::c_int,
18165                                 t_: *mut THIntTensor, k_: *mut THIntTensor,
18166                                 srow: ::std::os::raw::c_long,
18167                                 scol: ::std::os::raw::c_long,
18168                                 vf: *const ::std::os::raw::c_char,
18169                                 xc: *const ::std::os::raw::c_char);
18170}
18171extern "C" {
18172    pub fn THIntTensor_conv2Dmv(r_: *mut THIntTensor,
18173                                beta: ::std::os::raw::c_int,
18174                                alpha: ::std::os::raw::c_int,
18175                                t_: *mut THIntTensor, k_: *mut THIntTensor,
18176                                srow: ::std::os::raw::c_long,
18177                                scol: ::std::os::raw::c_long,
18178                                vf: *const ::std::os::raw::c_char,
18179                                xc: *const ::std::os::raw::c_char);
18180}
18181extern "C" {
18182    pub fn THIntTensor_conv2Dmm(r_: *mut THIntTensor,
18183                                beta: ::std::os::raw::c_int,
18184                                alpha: ::std::os::raw::c_int,
18185                                t_: *mut THIntTensor, k_: *mut THIntTensor,
18186                                srow: ::std::os::raw::c_long,
18187                                scol: ::std::os::raw::c_long,
18188                                vf: *const ::std::os::raw::c_char,
18189                                xc: *const ::std::os::raw::c_char);
18190}
18191extern "C" {
18192    pub fn THIntTensor_conv2Dmul(r_: *mut THIntTensor,
18193                                 beta: ::std::os::raw::c_int,
18194                                 alpha: ::std::os::raw::c_int,
18195                                 t_: *mut THIntTensor, k_: *mut THIntTensor,
18196                                 srow: ::std::os::raw::c_long,
18197                                 scol: ::std::os::raw::c_long,
18198                                 vf: *const ::std::os::raw::c_char,
18199                                 xc: *const ::std::os::raw::c_char);
18200}
18201extern "C" {
18202    pub fn THIntTensor_conv2Dcmul(r_: *mut THIntTensor,
18203                                  beta: ::std::os::raw::c_int,
18204                                  alpha: ::std::os::raw::c_int,
18205                                  t_: *mut THIntTensor, k_: *mut THIntTensor,
18206                                  srow: ::std::os::raw::c_long,
18207                                  scol: ::std::os::raw::c_long,
18208                                  vf: *const ::std::os::raw::c_char,
18209                                  xc: *const ::std::os::raw::c_char);
18210}
18211extern "C" {
18212    pub fn THIntTensor_validXCorr3Dptr(r_: *mut ::std::os::raw::c_int,
18213                                       alpha: ::std::os::raw::c_int,
18214                                       t_: *mut ::std::os::raw::c_int,
18215                                       it: ::std::os::raw::c_long,
18216                                       ir: ::std::os::raw::c_long,
18217                                       ic: ::std::os::raw::c_long,
18218                                       k_: *mut ::std::os::raw::c_int,
18219                                       kt: ::std::os::raw::c_long,
18220                                       kr: ::std::os::raw::c_long,
18221                                       kc: ::std::os::raw::c_long,
18222                                       st: ::std::os::raw::c_long,
18223                                       sr: ::std::os::raw::c_long,
18224                                       sc: ::std::os::raw::c_long);
18225}
18226extern "C" {
18227    pub fn THIntTensor_validConv3Dptr(r_: *mut ::std::os::raw::c_int,
18228                                      alpha: ::std::os::raw::c_int,
18229                                      t_: *mut ::std::os::raw::c_int,
18230                                      it: ::std::os::raw::c_long,
18231                                      ir: ::std::os::raw::c_long,
18232                                      ic: ::std::os::raw::c_long,
18233                                      k_: *mut ::std::os::raw::c_int,
18234                                      kt: ::std::os::raw::c_long,
18235                                      kr: ::std::os::raw::c_long,
18236                                      kc: ::std::os::raw::c_long,
18237                                      st: ::std::os::raw::c_long,
18238                                      sr: ::std::os::raw::c_long,
18239                                      sc: ::std::os::raw::c_long);
18240}
18241extern "C" {
18242    pub fn THIntTensor_fullXCorr3Dptr(r_: *mut ::std::os::raw::c_int,
18243                                      alpha: ::std::os::raw::c_int,
18244                                      t_: *mut ::std::os::raw::c_int,
18245                                      it: ::std::os::raw::c_long,
18246                                      ir: ::std::os::raw::c_long,
18247                                      ic: ::std::os::raw::c_long,
18248                                      k_: *mut ::std::os::raw::c_int,
18249                                      kt: ::std::os::raw::c_long,
18250                                      kr: ::std::os::raw::c_long,
18251                                      kc: ::std::os::raw::c_long,
18252                                      st: ::std::os::raw::c_long,
18253                                      sr: ::std::os::raw::c_long,
18254                                      sc: ::std::os::raw::c_long);
18255}
18256extern "C" {
18257    pub fn THIntTensor_fullConv3Dptr(r_: *mut ::std::os::raw::c_int,
18258                                     alpha: ::std::os::raw::c_int,
18259                                     t_: *mut ::std::os::raw::c_int,
18260                                     it: ::std::os::raw::c_long,
18261                                     ir: ::std::os::raw::c_long,
18262                                     ic: ::std::os::raw::c_long,
18263                                     k_: *mut ::std::os::raw::c_int,
18264                                     kt: ::std::os::raw::c_long,
18265                                     kr: ::std::os::raw::c_long,
18266                                     kc: ::std::os::raw::c_long,
18267                                     st: ::std::os::raw::c_long,
18268                                     sr: ::std::os::raw::c_long,
18269                                     sc: ::std::os::raw::c_long);
18270}
18271extern "C" {
18272    pub fn THIntTensor_validXCorr3DRevptr(r_: *mut ::std::os::raw::c_int,
18273                                          alpha: ::std::os::raw::c_int,
18274                                          t_: *mut ::std::os::raw::c_int,
18275                                          it: ::std::os::raw::c_long,
18276                                          ir: ::std::os::raw::c_long,
18277                                          ic: ::std::os::raw::c_long,
18278                                          k_: *mut ::std::os::raw::c_int,
18279                                          kt: ::std::os::raw::c_long,
18280                                          kr: ::std::os::raw::c_long,
18281                                          kc: ::std::os::raw::c_long,
18282                                          st: ::std::os::raw::c_long,
18283                                          sr: ::std::os::raw::c_long,
18284                                          sc: ::std::os::raw::c_long);
18285}
18286extern "C" {
18287    pub fn THIntTensor_conv3DRevger(r_: *mut THIntTensor,
18288                                    beta: ::std::os::raw::c_int,
18289                                    alpha: ::std::os::raw::c_int,
18290                                    t_: *mut THIntTensor,
18291                                    k_: *mut THIntTensor,
18292                                    sdepth: ::std::os::raw::c_long,
18293                                    srow: ::std::os::raw::c_long,
18294                                    scol: ::std::os::raw::c_long);
18295}
18296extern "C" {
18297    pub fn THIntTensor_conv3Dger(r_: *mut THIntTensor,
18298                                 beta: ::std::os::raw::c_int,
18299                                 alpha: ::std::os::raw::c_int,
18300                                 t_: *mut THIntTensor, k_: *mut THIntTensor,
18301                                 sdepth: ::std::os::raw::c_long,
18302                                 srow: ::std::os::raw::c_long,
18303                                 scol: ::std::os::raw::c_long,
18304                                 vf: *const ::std::os::raw::c_char,
18305                                 xc: *const ::std::os::raw::c_char);
18306}
18307extern "C" {
18308    pub fn THIntTensor_conv3Dmv(r_: *mut THIntTensor,
18309                                beta: ::std::os::raw::c_int,
18310                                alpha: ::std::os::raw::c_int,
18311                                t_: *mut THIntTensor, k_: *mut THIntTensor,
18312                                sdepth: ::std::os::raw::c_long,
18313                                srow: ::std::os::raw::c_long,
18314                                scol: ::std::os::raw::c_long,
18315                                vf: *const ::std::os::raw::c_char,
18316                                xc: *const ::std::os::raw::c_char);
18317}
18318extern "C" {
18319    pub fn THIntTensor_conv3Dmul(r_: *mut THIntTensor,
18320                                 beta: ::std::os::raw::c_int,
18321                                 alpha: ::std::os::raw::c_int,
18322                                 t_: *mut THIntTensor, k_: *mut THIntTensor,
18323                                 sdepth: ::std::os::raw::c_long,
18324                                 srow: ::std::os::raw::c_long,
18325                                 scol: ::std::os::raw::c_long,
18326                                 vf: *const ::std::os::raw::c_char,
18327                                 xc: *const ::std::os::raw::c_char);
18328}
18329extern "C" {
18330    pub fn THIntTensor_conv3Dcmul(r_: *mut THIntTensor,
18331                                  beta: ::std::os::raw::c_int,
18332                                  alpha: ::std::os::raw::c_int,
18333                                  t_: *mut THIntTensor, k_: *mut THIntTensor,
18334                                  sdepth: ::std::os::raw::c_long,
18335                                  srow: ::std::os::raw::c_long,
18336                                  scol: ::std::os::raw::c_long,
18337                                  vf: *const ::std::os::raw::c_char,
18338                                  xc: *const ::std::os::raw::c_char);
18339}
18340extern "C" {
18341    pub fn THLongTensor_validXCorr2Dptr(r_: *mut ::std::os::raw::c_long,
18342                                        alpha: ::std::os::raw::c_long,
18343                                        t_: *mut ::std::os::raw::c_long,
18344                                        ir: ::std::os::raw::c_long,
18345                                        ic: ::std::os::raw::c_long,
18346                                        k_: *mut ::std::os::raw::c_long,
18347                                        kr: ::std::os::raw::c_long,
18348                                        kc: ::std::os::raw::c_long,
18349                                        sr: ::std::os::raw::c_long,
18350                                        sc: ::std::os::raw::c_long);
18351}
18352extern "C" {
18353    pub fn THLongTensor_validConv2Dptr(r_: *mut ::std::os::raw::c_long,
18354                                       alpha: ::std::os::raw::c_long,
18355                                       t_: *mut ::std::os::raw::c_long,
18356                                       ir: ::std::os::raw::c_long,
18357                                       ic: ::std::os::raw::c_long,
18358                                       k_: *mut ::std::os::raw::c_long,
18359                                       kr: ::std::os::raw::c_long,
18360                                       kc: ::std::os::raw::c_long,
18361                                       sr: ::std::os::raw::c_long,
18362                                       sc: ::std::os::raw::c_long);
18363}
18364extern "C" {
18365    pub fn THLongTensor_fullXCorr2Dptr(r_: *mut ::std::os::raw::c_long,
18366                                       alpha: ::std::os::raw::c_long,
18367                                       t_: *mut ::std::os::raw::c_long,
18368                                       ir: ::std::os::raw::c_long,
18369                                       ic: ::std::os::raw::c_long,
18370                                       k_: *mut ::std::os::raw::c_long,
18371                                       kr: ::std::os::raw::c_long,
18372                                       kc: ::std::os::raw::c_long,
18373                                       sr: ::std::os::raw::c_long,
18374                                       sc: ::std::os::raw::c_long);
18375}
18376extern "C" {
18377    pub fn THLongTensor_fullConv2Dptr(r_: *mut ::std::os::raw::c_long,
18378                                      alpha: ::std::os::raw::c_long,
18379                                      t_: *mut ::std::os::raw::c_long,
18380                                      ir: ::std::os::raw::c_long,
18381                                      ic: ::std::os::raw::c_long,
18382                                      k_: *mut ::std::os::raw::c_long,
18383                                      kr: ::std::os::raw::c_long,
18384                                      kc: ::std::os::raw::c_long,
18385                                      sr: ::std::os::raw::c_long,
18386                                      sc: ::std::os::raw::c_long);
18387}
18388extern "C" {
18389    pub fn THLongTensor_validXCorr2DRevptr(r_: *mut ::std::os::raw::c_long,
18390                                           alpha: ::std::os::raw::c_long,
18391                                           t_: *mut ::std::os::raw::c_long,
18392                                           ir: ::std::os::raw::c_long,
18393                                           ic: ::std::os::raw::c_long,
18394                                           k_: *mut ::std::os::raw::c_long,
18395                                           kr: ::std::os::raw::c_long,
18396                                           kc: ::std::os::raw::c_long,
18397                                           sr: ::std::os::raw::c_long,
18398                                           sc: ::std::os::raw::c_long);
18399}
18400extern "C" {
18401    pub fn THLongTensor_conv2DRevger(r_: *mut THLongTensor,
18402                                     beta: ::std::os::raw::c_long,
18403                                     alpha: ::std::os::raw::c_long,
18404                                     t_: *mut THLongTensor,
18405                                     k_: *mut THLongTensor,
18406                                     srow: ::std::os::raw::c_long,
18407                                     scol: ::std::os::raw::c_long);
18408}
18409extern "C" {
18410    pub fn THLongTensor_conv2DRevgerm(r_: *mut THLongTensor,
18411                                      beta: ::std::os::raw::c_long,
18412                                      alpha: ::std::os::raw::c_long,
18413                                      t_: *mut THLongTensor,
18414                                      k_: *mut THLongTensor,
18415                                      srow: ::std::os::raw::c_long,
18416                                      scol: ::std::os::raw::c_long);
18417}
18418extern "C" {
18419    pub fn THLongTensor_conv2Dger(r_: *mut THLongTensor,
18420                                  beta: ::std::os::raw::c_long,
18421                                  alpha: ::std::os::raw::c_long,
18422                                  t_: *mut THLongTensor,
18423                                  k_: *mut THLongTensor,
18424                                  srow: ::std::os::raw::c_long,
18425                                  scol: ::std::os::raw::c_long,
18426                                  vf: *const ::std::os::raw::c_char,
18427                                  xc: *const ::std::os::raw::c_char);
18428}
18429extern "C" {
18430    pub fn THLongTensor_conv2Dmv(r_: *mut THLongTensor,
18431                                 beta: ::std::os::raw::c_long,
18432                                 alpha: ::std::os::raw::c_long,
18433                                 t_: *mut THLongTensor, k_: *mut THLongTensor,
18434                                 srow: ::std::os::raw::c_long,
18435                                 scol: ::std::os::raw::c_long,
18436                                 vf: *const ::std::os::raw::c_char,
18437                                 xc: *const ::std::os::raw::c_char);
18438}
18439extern "C" {
18440    pub fn THLongTensor_conv2Dmm(r_: *mut THLongTensor,
18441                                 beta: ::std::os::raw::c_long,
18442                                 alpha: ::std::os::raw::c_long,
18443                                 t_: *mut THLongTensor, k_: *mut THLongTensor,
18444                                 srow: ::std::os::raw::c_long,
18445                                 scol: ::std::os::raw::c_long,
18446                                 vf: *const ::std::os::raw::c_char,
18447                                 xc: *const ::std::os::raw::c_char);
18448}
18449extern "C" {
18450    pub fn THLongTensor_conv2Dmul(r_: *mut THLongTensor,
18451                                  beta: ::std::os::raw::c_long,
18452                                  alpha: ::std::os::raw::c_long,
18453                                  t_: *mut THLongTensor,
18454                                  k_: *mut THLongTensor,
18455                                  srow: ::std::os::raw::c_long,
18456                                  scol: ::std::os::raw::c_long,
18457                                  vf: *const ::std::os::raw::c_char,
18458                                  xc: *const ::std::os::raw::c_char);
18459}
18460extern "C" {
18461    pub fn THLongTensor_conv2Dcmul(r_: *mut THLongTensor,
18462                                   beta: ::std::os::raw::c_long,
18463                                   alpha: ::std::os::raw::c_long,
18464                                   t_: *mut THLongTensor,
18465                                   k_: *mut THLongTensor,
18466                                   srow: ::std::os::raw::c_long,
18467                                   scol: ::std::os::raw::c_long,
18468                                   vf: *const ::std::os::raw::c_char,
18469                                   xc: *const ::std::os::raw::c_char);
18470}
18471extern "C" {
18472    pub fn THLongTensor_validXCorr3Dptr(r_: *mut ::std::os::raw::c_long,
18473                                        alpha: ::std::os::raw::c_long,
18474                                        t_: *mut ::std::os::raw::c_long,
18475                                        it: ::std::os::raw::c_long,
18476                                        ir: ::std::os::raw::c_long,
18477                                        ic: ::std::os::raw::c_long,
18478                                        k_: *mut ::std::os::raw::c_long,
18479                                        kt: ::std::os::raw::c_long,
18480                                        kr: ::std::os::raw::c_long,
18481                                        kc: ::std::os::raw::c_long,
18482                                        st: ::std::os::raw::c_long,
18483                                        sr: ::std::os::raw::c_long,
18484                                        sc: ::std::os::raw::c_long);
18485}
18486extern "C" {
18487    pub fn THLongTensor_validConv3Dptr(r_: *mut ::std::os::raw::c_long,
18488                                       alpha: ::std::os::raw::c_long,
18489                                       t_: *mut ::std::os::raw::c_long,
18490                                       it: ::std::os::raw::c_long,
18491                                       ir: ::std::os::raw::c_long,
18492                                       ic: ::std::os::raw::c_long,
18493                                       k_: *mut ::std::os::raw::c_long,
18494                                       kt: ::std::os::raw::c_long,
18495                                       kr: ::std::os::raw::c_long,
18496                                       kc: ::std::os::raw::c_long,
18497                                       st: ::std::os::raw::c_long,
18498                                       sr: ::std::os::raw::c_long,
18499                                       sc: ::std::os::raw::c_long);
18500}
18501extern "C" {
18502    pub fn THLongTensor_fullXCorr3Dptr(r_: *mut ::std::os::raw::c_long,
18503                                       alpha: ::std::os::raw::c_long,
18504                                       t_: *mut ::std::os::raw::c_long,
18505                                       it: ::std::os::raw::c_long,
18506                                       ir: ::std::os::raw::c_long,
18507                                       ic: ::std::os::raw::c_long,
18508                                       k_: *mut ::std::os::raw::c_long,
18509                                       kt: ::std::os::raw::c_long,
18510                                       kr: ::std::os::raw::c_long,
18511                                       kc: ::std::os::raw::c_long,
18512                                       st: ::std::os::raw::c_long,
18513                                       sr: ::std::os::raw::c_long,
18514                                       sc: ::std::os::raw::c_long);
18515}
18516extern "C" {
18517    pub fn THLongTensor_fullConv3Dptr(r_: *mut ::std::os::raw::c_long,
18518                                      alpha: ::std::os::raw::c_long,
18519                                      t_: *mut ::std::os::raw::c_long,
18520                                      it: ::std::os::raw::c_long,
18521                                      ir: ::std::os::raw::c_long,
18522                                      ic: ::std::os::raw::c_long,
18523                                      k_: *mut ::std::os::raw::c_long,
18524                                      kt: ::std::os::raw::c_long,
18525                                      kr: ::std::os::raw::c_long,
18526                                      kc: ::std::os::raw::c_long,
18527                                      st: ::std::os::raw::c_long,
18528                                      sr: ::std::os::raw::c_long,
18529                                      sc: ::std::os::raw::c_long);
18530}
18531extern "C" {
18532    pub fn THLongTensor_validXCorr3DRevptr(r_: *mut ::std::os::raw::c_long,
18533                                           alpha: ::std::os::raw::c_long,
18534                                           t_: *mut ::std::os::raw::c_long,
18535                                           it: ::std::os::raw::c_long,
18536                                           ir: ::std::os::raw::c_long,
18537                                           ic: ::std::os::raw::c_long,
18538                                           k_: *mut ::std::os::raw::c_long,
18539                                           kt: ::std::os::raw::c_long,
18540                                           kr: ::std::os::raw::c_long,
18541                                           kc: ::std::os::raw::c_long,
18542                                           st: ::std::os::raw::c_long,
18543                                           sr: ::std::os::raw::c_long,
18544                                           sc: ::std::os::raw::c_long);
18545}
18546extern "C" {
18547    pub fn THLongTensor_conv3DRevger(r_: *mut THLongTensor,
18548                                     beta: ::std::os::raw::c_long,
18549                                     alpha: ::std::os::raw::c_long,
18550                                     t_: *mut THLongTensor,
18551                                     k_: *mut THLongTensor,
18552                                     sdepth: ::std::os::raw::c_long,
18553                                     srow: ::std::os::raw::c_long,
18554                                     scol: ::std::os::raw::c_long);
18555}
18556extern "C" {
18557    pub fn THLongTensor_conv3Dger(r_: *mut THLongTensor,
18558                                  beta: ::std::os::raw::c_long,
18559                                  alpha: ::std::os::raw::c_long,
18560                                  t_: *mut THLongTensor,
18561                                  k_: *mut THLongTensor,
18562                                  sdepth: ::std::os::raw::c_long,
18563                                  srow: ::std::os::raw::c_long,
18564                                  scol: ::std::os::raw::c_long,
18565                                  vf: *const ::std::os::raw::c_char,
18566                                  xc: *const ::std::os::raw::c_char);
18567}
18568extern "C" {
18569    pub fn THLongTensor_conv3Dmv(r_: *mut THLongTensor,
18570                                 beta: ::std::os::raw::c_long,
18571                                 alpha: ::std::os::raw::c_long,
18572                                 t_: *mut THLongTensor, k_: *mut THLongTensor,
18573                                 sdepth: ::std::os::raw::c_long,
18574                                 srow: ::std::os::raw::c_long,
18575                                 scol: ::std::os::raw::c_long,
18576                                 vf: *const ::std::os::raw::c_char,
18577                                 xc: *const ::std::os::raw::c_char);
18578}
18579extern "C" {
18580    pub fn THLongTensor_conv3Dmul(r_: *mut THLongTensor,
18581                                  beta: ::std::os::raw::c_long,
18582                                  alpha: ::std::os::raw::c_long,
18583                                  t_: *mut THLongTensor,
18584                                  k_: *mut THLongTensor,
18585                                  sdepth: ::std::os::raw::c_long,
18586                                  srow: ::std::os::raw::c_long,
18587                                  scol: ::std::os::raw::c_long,
18588                                  vf: *const ::std::os::raw::c_char,
18589                                  xc: *const ::std::os::raw::c_char);
18590}
18591extern "C" {
18592    pub fn THLongTensor_conv3Dcmul(r_: *mut THLongTensor,
18593                                   beta: ::std::os::raw::c_long,
18594                                   alpha: ::std::os::raw::c_long,
18595                                   t_: *mut THLongTensor,
18596                                   k_: *mut THLongTensor,
18597                                   sdepth: ::std::os::raw::c_long,
18598                                   srow: ::std::os::raw::c_long,
18599                                   scol: ::std::os::raw::c_long,
18600                                   vf: *const ::std::os::raw::c_char,
18601                                   xc: *const ::std::os::raw::c_char);
18602}
18603extern "C" {
18604    pub fn THFloatTensor_gesv(rb_: *mut THFloatTensor,
18605                              ra_: *mut THFloatTensor, b_: *mut THFloatTensor,
18606                              a_: *mut THFloatTensor);
18607}
18608extern "C" {
18609    pub fn THFloatTensor_trtrs(rb_: *mut THFloatTensor,
18610                               ra_: *mut THFloatTensor,
18611                               b_: *mut THFloatTensor, a_: *mut THFloatTensor,
18612                               uplo: *const ::std::os::raw::c_char,
18613                               trans: *const ::std::os::raw::c_char,
18614                               diag: *const ::std::os::raw::c_char);
18615}
18616extern "C" {
18617    pub fn THFloatTensor_gels(rb_: *mut THFloatTensor,
18618                              ra_: *mut THFloatTensor, b_: *mut THFloatTensor,
18619                              a_: *mut THFloatTensor);
18620}
18621extern "C" {
18622    pub fn THFloatTensor_syev(re_: *mut THFloatTensor,
18623                              rv_: *mut THFloatTensor, a_: *mut THFloatTensor,
18624                              jobz: *const ::std::os::raw::c_char,
18625                              uplo: *const ::std::os::raw::c_char);
18626}
18627extern "C" {
18628    pub fn THFloatTensor_geev(re_: *mut THFloatTensor,
18629                              rv_: *mut THFloatTensor, a_: *mut THFloatTensor,
18630                              jobvr: *const ::std::os::raw::c_char);
18631}
18632extern "C" {
18633    pub fn THFloatTensor_gesvd(ru_: *mut THFloatTensor,
18634                               rs_: *mut THFloatTensor,
18635                               rv_: *mut THFloatTensor, a: *mut THFloatTensor,
18636                               jobu: *const ::std::os::raw::c_char);
18637}
18638extern "C" {
18639    pub fn THFloatTensor_gesvd2(ru_: *mut THFloatTensor,
18640                                rs_: *mut THFloatTensor,
18641                                rv_: *mut THFloatTensor,
18642                                ra_: *mut THFloatTensor,
18643                                a: *mut THFloatTensor,
18644                                jobu: *const ::std::os::raw::c_char);
18645}
18646extern "C" {
18647    pub fn THFloatTensor_getri(ra_: *mut THFloatTensor,
18648                               a: *mut THFloatTensor);
18649}
18650extern "C" {
18651    pub fn THFloatTensor_potrf(ra_: *mut THFloatTensor, a: *mut THFloatTensor,
18652                               uplo: *const ::std::os::raw::c_char);
18653}
18654extern "C" {
18655    pub fn THFloatTensor_potrs(rb_: *mut THFloatTensor,
18656                               b_: *mut THFloatTensor, a_: *mut THFloatTensor,
18657                               uplo: *const ::std::os::raw::c_char);
18658}
18659extern "C" {
18660    pub fn THFloatTensor_potri(ra_: *mut THFloatTensor, a: *mut THFloatTensor,
18661                               uplo: *const ::std::os::raw::c_char);
18662}
18663extern "C" {
18664    pub fn THFloatTensor_qr(rq_: *mut THFloatTensor, rr_: *mut THFloatTensor,
18665                            a: *mut THFloatTensor);
18666}
18667extern "C" {
18668    pub fn THFloatTensor_geqrf(ra_: *mut THFloatTensor,
18669                               rtau_: *mut THFloatTensor,
18670                               a: *mut THFloatTensor);
18671}
18672extern "C" {
18673    pub fn THFloatTensor_orgqr(ra_: *mut THFloatTensor, a: *mut THFloatTensor,
18674                               tau: *mut THFloatTensor);
18675}
18676extern "C" {
18677    pub fn THFloatTensor_ormqr(ra_: *mut THFloatTensor, a: *mut THFloatTensor,
18678                               tau: *mut THFloatTensor, c: *mut THFloatTensor,
18679                               side: *const ::std::os::raw::c_char,
18680                               trans: *const ::std::os::raw::c_char);
18681}
18682extern "C" {
18683    pub fn THFloatTensor_pstrf(ra_: *mut THFloatTensor,
18684                               rpiv_: *mut THIntTensor, a: *mut THFloatTensor,
18685                               uplo: *const ::std::os::raw::c_char, tol: f32);
18686}
18687extern "C" {
18688    pub fn THFloatTensor_btrifact(ra_: *mut THFloatTensor,
18689                                  rpivots_: *mut THIntTensor,
18690                                  rinfo_: *mut THIntTensor,
18691                                  pivot: ::std::os::raw::c_int,
18692                                  a: *mut THFloatTensor);
18693}
18694extern "C" {
18695    pub fn THFloatTensor_btrisolve(rb_: *mut THFloatTensor,
18696                                   b: *mut THFloatTensor,
18697                                   atf: *mut THFloatTensor,
18698                                   pivots: *mut THIntTensor);
18699}
18700extern "C" {
18701    pub fn THDoubleTensor_gesv(rb_: *mut THDoubleTensor,
18702                               ra_: *mut THDoubleTensor,
18703                               b_: *mut THDoubleTensor,
18704                               a_: *mut THDoubleTensor);
18705}
18706extern "C" {
18707    pub fn THDoubleTensor_trtrs(rb_: *mut THDoubleTensor,
18708                                ra_: *mut THDoubleTensor,
18709                                b_: *mut THDoubleTensor,
18710                                a_: *mut THDoubleTensor,
18711                                uplo: *const ::std::os::raw::c_char,
18712                                trans: *const ::std::os::raw::c_char,
18713                                diag: *const ::std::os::raw::c_char);
18714}
18715extern "C" {
18716    pub fn THDoubleTensor_gels(rb_: *mut THDoubleTensor,
18717                               ra_: *mut THDoubleTensor,
18718                               b_: *mut THDoubleTensor,
18719                               a_: *mut THDoubleTensor);
18720}
18721extern "C" {
18722    pub fn THDoubleTensor_syev(re_: *mut THDoubleTensor,
18723                               rv_: *mut THDoubleTensor,
18724                               a_: *mut THDoubleTensor,
18725                               jobz: *const ::std::os::raw::c_char,
18726                               uplo: *const ::std::os::raw::c_char);
18727}
18728extern "C" {
18729    pub fn THDoubleTensor_geev(re_: *mut THDoubleTensor,
18730                               rv_: *mut THDoubleTensor,
18731                               a_: *mut THDoubleTensor,
18732                               jobvr: *const ::std::os::raw::c_char);
18733}
18734extern "C" {
18735    pub fn THDoubleTensor_gesvd(ru_: *mut THDoubleTensor,
18736                                rs_: *mut THDoubleTensor,
18737                                rv_: *mut THDoubleTensor,
18738                                a: *mut THDoubleTensor,
18739                                jobu: *const ::std::os::raw::c_char);
18740}
18741extern "C" {
18742    pub fn THDoubleTensor_gesvd2(ru_: *mut THDoubleTensor,
18743                                 rs_: *mut THDoubleTensor,
18744                                 rv_: *mut THDoubleTensor,
18745                                 ra_: *mut THDoubleTensor,
18746                                 a: *mut THDoubleTensor,
18747                                 jobu: *const ::std::os::raw::c_char);
18748}
18749extern "C" {
18750    pub fn THDoubleTensor_getri(ra_: *mut THDoubleTensor,
18751                                a: *mut THDoubleTensor);
18752}
18753extern "C" {
18754    pub fn THDoubleTensor_potrf(ra_: *mut THDoubleTensor,
18755                                a: *mut THDoubleTensor,
18756                                uplo: *const ::std::os::raw::c_char);
18757}
18758extern "C" {
18759    pub fn THDoubleTensor_potrs(rb_: *mut THDoubleTensor,
18760                                b_: *mut THDoubleTensor,
18761                                a_: *mut THDoubleTensor,
18762                                uplo: *const ::std::os::raw::c_char);
18763}
18764extern "C" {
18765    pub fn THDoubleTensor_potri(ra_: *mut THDoubleTensor,
18766                                a: *mut THDoubleTensor,
18767                                uplo: *const ::std::os::raw::c_char);
18768}
18769extern "C" {
18770    pub fn THDoubleTensor_qr(rq_: *mut THDoubleTensor,
18771                             rr_: *mut THDoubleTensor,
18772                             a: *mut THDoubleTensor);
18773}
18774extern "C" {
18775    pub fn THDoubleTensor_geqrf(ra_: *mut THDoubleTensor,
18776                                rtau_: *mut THDoubleTensor,
18777                                a: *mut THDoubleTensor);
18778}
18779extern "C" {
18780    pub fn THDoubleTensor_orgqr(ra_: *mut THDoubleTensor,
18781                                a: *mut THDoubleTensor,
18782                                tau: *mut THDoubleTensor);
18783}
18784extern "C" {
18785    pub fn THDoubleTensor_ormqr(ra_: *mut THDoubleTensor,
18786                                a: *mut THDoubleTensor,
18787                                tau: *mut THDoubleTensor,
18788                                c: *mut THDoubleTensor,
18789                                side: *const ::std::os::raw::c_char,
18790                                trans: *const ::std::os::raw::c_char);
18791}
18792extern "C" {
18793    pub fn THDoubleTensor_pstrf(ra_: *mut THDoubleTensor,
18794                                rpiv_: *mut THIntTensor,
18795                                a: *mut THDoubleTensor,
18796                                uplo: *const ::std::os::raw::c_char,
18797                                tol: f64);
18798}
18799extern "C" {
18800    pub fn THDoubleTensor_btrifact(ra_: *mut THDoubleTensor,
18801                                   rpivots_: *mut THIntTensor,
18802                                   rinfo_: *mut THIntTensor,
18803                                   pivot: ::std::os::raw::c_int,
18804                                   a: *mut THDoubleTensor);
18805}
18806extern "C" {
18807    pub fn THDoubleTensor_btrisolve(rb_: *mut THDoubleTensor,
18808                                    b: *mut THDoubleTensor,
18809                                    atf: *mut THDoubleTensor,
18810                                    pivots: *mut THIntTensor);
18811}
18812#[repr(C)]
18813#[derive(Debug, Copy, Clone)]
18814pub struct THFile__ {
18815    _unused: [u8; 0],
18816}
18817pub type THFile = THFile__;
18818extern "C" {
18819    pub fn THFile_isOpened(self_: *mut THFile) -> ::std::os::raw::c_int;
18820}
18821extern "C" {
18822    pub fn THFile_isQuiet(self_: *mut THFile) -> ::std::os::raw::c_int;
18823}
18824extern "C" {
18825    pub fn THFile_isReadable(self_: *mut THFile) -> ::std::os::raw::c_int;
18826}
18827extern "C" {
18828    pub fn THFile_isWritable(self_: *mut THFile) -> ::std::os::raw::c_int;
18829}
18830extern "C" {
18831    pub fn THFile_isBinary(self_: *mut THFile) -> ::std::os::raw::c_int;
18832}
18833extern "C" {
18834    pub fn THFile_isAutoSpacing(self_: *mut THFile) -> ::std::os::raw::c_int;
18835}
18836extern "C" {
18837    pub fn THFile_hasError(self_: *mut THFile) -> ::std::os::raw::c_int;
18838}
18839extern "C" {
18840    pub fn THFile_binary(self_: *mut THFile);
18841}
18842extern "C" {
18843    pub fn THFile_ascii(self_: *mut THFile);
18844}
18845extern "C" {
18846    pub fn THFile_autoSpacing(self_: *mut THFile);
18847}
18848extern "C" {
18849    pub fn THFile_noAutoSpacing(self_: *mut THFile);
18850}
18851extern "C" {
18852    pub fn THFile_quiet(self_: *mut THFile);
18853}
18854extern "C" {
18855    pub fn THFile_pedantic(self_: *mut THFile);
18856}
18857extern "C" {
18858    pub fn THFile_clearError(self_: *mut THFile);
18859}
18860extern "C" {
18861    pub fn THFile_readByteScalar(self_: *mut THFile)
18862     -> ::std::os::raw::c_uchar;
18863}
18864extern "C" {
18865    pub fn THFile_readCharScalar(self_: *mut THFile)
18866     -> ::std::os::raw::c_char;
18867}
18868extern "C" {
18869    pub fn THFile_readShortScalar(self_: *mut THFile)
18870     -> ::std::os::raw::c_short;
18871}
18872extern "C" {
18873    pub fn THFile_readIntScalar(self_: *mut THFile) -> ::std::os::raw::c_int;
18874}
18875extern "C" {
18876    pub fn THFile_readLongScalar(self_: *mut THFile)
18877     -> ::std::os::raw::c_long;
18878}
18879extern "C" {
18880    pub fn THFile_readFloatScalar(self_: *mut THFile) -> f32;
18881}
18882extern "C" {
18883    pub fn THFile_readDoubleScalar(self_: *mut THFile) -> f64;
18884}
18885extern "C" {
18886    pub fn THFile_writeByteScalar(self_: *mut THFile,
18887                                  scalar: ::std::os::raw::c_uchar);
18888}
18889extern "C" {
18890    pub fn THFile_writeCharScalar(self_: *mut THFile,
18891                                  scalar: ::std::os::raw::c_char);
18892}
18893extern "C" {
18894    pub fn THFile_writeShortScalar(self_: *mut THFile,
18895                                   scalar: ::std::os::raw::c_short);
18896}
18897extern "C" {
18898    pub fn THFile_writeIntScalar(self_: *mut THFile,
18899                                 scalar: ::std::os::raw::c_int);
18900}
18901extern "C" {
18902    pub fn THFile_writeLongScalar(self_: *mut THFile,
18903                                  scalar: ::std::os::raw::c_long);
18904}
18905extern "C" {
18906    pub fn THFile_writeFloatScalar(self_: *mut THFile, scalar: f32);
18907}
18908extern "C" {
18909    pub fn THFile_writeDoubleScalar(self_: *mut THFile, scalar: f64);
18910}
18911extern "C" {
18912    pub fn THFile_readByte(self_: *mut THFile, storage: *mut THByteStorage)
18913     -> usize;
18914}
18915extern "C" {
18916    pub fn THFile_readChar(self_: *mut THFile, storage: *mut THCharStorage)
18917     -> usize;
18918}
18919extern "C" {
18920    pub fn THFile_readShort(self_: *mut THFile, storage: *mut THShortStorage)
18921     -> usize;
18922}
18923extern "C" {
18924    pub fn THFile_readInt(self_: *mut THFile, storage: *mut THIntStorage)
18925     -> usize;
18926}
18927extern "C" {
18928    pub fn THFile_readLong(self_: *mut THFile, storage: *mut THLongStorage)
18929     -> usize;
18930}
18931extern "C" {
18932    pub fn THFile_readFloat(self_: *mut THFile, storage: *mut THFloatStorage)
18933     -> usize;
18934}
18935extern "C" {
18936    pub fn THFile_readDouble(self_: *mut THFile,
18937                             storage: *mut THDoubleStorage) -> usize;
18938}
18939extern "C" {
18940    pub fn THFile_writeByte(self_: *mut THFile, storage: *mut THByteStorage)
18941     -> usize;
18942}
18943extern "C" {
18944    pub fn THFile_writeChar(self_: *mut THFile, storage: *mut THCharStorage)
18945     -> usize;
18946}
18947extern "C" {
18948    pub fn THFile_writeShort(self_: *mut THFile, storage: *mut THShortStorage)
18949     -> usize;
18950}
18951extern "C" {
18952    pub fn THFile_writeInt(self_: *mut THFile, storage: *mut THIntStorage)
18953     -> usize;
18954}
18955extern "C" {
18956    pub fn THFile_writeLong(self_: *mut THFile, storage: *mut THLongStorage)
18957     -> usize;
18958}
18959extern "C" {
18960    pub fn THFile_writeFloat(self_: *mut THFile, storage: *mut THFloatStorage)
18961     -> usize;
18962}
18963extern "C" {
18964    pub fn THFile_writeDouble(self_: *mut THFile,
18965                              storage: *mut THDoubleStorage) -> usize;
18966}
18967extern "C" {
18968    pub fn THFile_readByteRaw(self_: *mut THFile,
18969                              data: *mut ::std::os::raw::c_uchar, n: usize)
18970     -> usize;
18971}
18972extern "C" {
18973    pub fn THFile_readCharRaw(self_: *mut THFile,
18974                              data: *mut ::std::os::raw::c_char, n: usize)
18975     -> usize;
18976}
18977extern "C" {
18978    pub fn THFile_readShortRaw(self_: *mut THFile,
18979                               data: *mut ::std::os::raw::c_short, n: usize)
18980     -> usize;
18981}
18982extern "C" {
18983    pub fn THFile_readIntRaw(self_: *mut THFile,
18984                             data: *mut ::std::os::raw::c_int, n: usize)
18985     -> usize;
18986}
18987extern "C" {
18988    pub fn THFile_readLongRaw(self_: *mut THFile,
18989                              data: *mut ::std::os::raw::c_long, n: usize)
18990     -> usize;
18991}
18992extern "C" {
18993    pub fn THFile_readFloatRaw(self_: *mut THFile, data: *mut f32, n: usize)
18994     -> usize;
18995}
18996extern "C" {
18997    pub fn THFile_readDoubleRaw(self_: *mut THFile, data: *mut f64, n: usize)
18998     -> usize;
18999}
19000extern "C" {
19001    pub fn THFile_readStringRaw(self_: *mut THFile,
19002                                format: *const ::std::os::raw::c_char,
19003                                str_: *mut *mut ::std::os::raw::c_char)
19004     -> usize;
19005}
19006extern "C" {
19007    pub fn THFile_writeByteRaw(self_: *mut THFile,
19008                               data: *mut ::std::os::raw::c_uchar, n: usize)
19009     -> usize;
19010}
19011extern "C" {
19012    pub fn THFile_writeCharRaw(self_: *mut THFile,
19013                               data: *mut ::std::os::raw::c_char, n: usize)
19014     -> usize;
19015}
19016extern "C" {
19017    pub fn THFile_writeShortRaw(self_: *mut THFile,
19018                                data: *mut ::std::os::raw::c_short, n: usize)
19019     -> usize;
19020}
19021extern "C" {
19022    pub fn THFile_writeIntRaw(self_: *mut THFile,
19023                              data: *mut ::std::os::raw::c_int, n: usize)
19024     -> usize;
19025}
19026extern "C" {
19027    pub fn THFile_writeLongRaw(self_: *mut THFile,
19028                               data: *mut ::std::os::raw::c_long, n: usize)
19029     -> usize;
19030}
19031extern "C" {
19032    pub fn THFile_writeFloatRaw(self_: *mut THFile, data: *mut f32, n: usize)
19033     -> usize;
19034}
19035extern "C" {
19036    pub fn THFile_writeDoubleRaw(self_: *mut THFile, data: *mut f64, n: usize)
19037     -> usize;
19038}
19039extern "C" {
19040    pub fn THFile_writeStringRaw(self_: *mut THFile,
19041                                 str: *const ::std::os::raw::c_char,
19042                                 size: usize) -> usize;
19043}
19044extern "C" {
19045    pub fn THFile_readHalfScalar(self_: *mut THFile) -> THHalf;
19046}
19047extern "C" {
19048    pub fn THFile_writeHalfScalar(self_: *mut THFile, scalar: THHalf);
19049}
19050extern "C" {
19051    pub fn THFile_readHalf(self_: *mut THFile, storage: *mut THHalfStorage)
19052     -> usize;
19053}
19054extern "C" {
19055    pub fn THFile_writeHalf(self_: *mut THFile, storage: *mut THHalfStorage)
19056     -> usize;
19057}
19058extern "C" {
19059    pub fn THFile_readHalfRaw(self_: *mut THFile, data: *mut THHalf,
19060                              size: usize) -> usize;
19061}
19062extern "C" {
19063    pub fn THFile_writeHalfRaw(self_: *mut THFile, data: *mut THHalf,
19064                               size: usize) -> usize;
19065}
19066extern "C" {
19067    pub fn THFile_synchronize(self_: *mut THFile);
19068}
19069extern "C" {
19070    pub fn THFile_seek(self_: *mut THFile, position: usize);
19071}
19072extern "C" {
19073    pub fn THFile_seekEnd(self_: *mut THFile);
19074}
19075extern "C" {
19076    pub fn THFile_position(self_: *mut THFile) -> usize;
19077}
19078extern "C" {
19079    pub fn THFile_close(self_: *mut THFile);
19080}
19081extern "C" {
19082    pub fn THFile_free(self_: *mut THFile);
19083}
19084extern "C" {
19085    pub fn THDiskFile_new(name: *const ::std::os::raw::c_char,
19086                          mode: *const ::std::os::raw::c_char,
19087                          isQuiet: ::std::os::raw::c_int) -> *mut THFile;
19088}
19089extern "C" {
19090    pub fn THPipeFile_new(name: *const ::std::os::raw::c_char,
19091                          mode: *const ::std::os::raw::c_char,
19092                          isQuiet: ::std::os::raw::c_int) -> *mut THFile;
19093}
19094extern "C" {
19095    pub fn THDiskFile_name(self_: *mut THFile)
19096     -> *const ::std::os::raw::c_char;
19097}
19098extern "C" {
19099    pub fn THDiskFile_isLittleEndianCPU() -> ::std::os::raw::c_int;
19100}
19101extern "C" {
19102    pub fn THDiskFile_isBigEndianCPU() -> ::std::os::raw::c_int;
19103}
19104extern "C" {
19105    pub fn THDiskFile_nativeEndianEncoding(self_: *mut THFile);
19106}
19107extern "C" {
19108    pub fn THDiskFile_littleEndianEncoding(self_: *mut THFile);
19109}
19110extern "C" {
19111    pub fn THDiskFile_bigEndianEncoding(self_: *mut THFile);
19112}
19113extern "C" {
19114    pub fn THDiskFile_longSize(self_: *mut THFile,
19115                               size: ::std::os::raw::c_int);
19116}
19117extern "C" {
19118    pub fn THDiskFile_noBuffer(self_: *mut THFile);
19119}
19120extern "C" {
19121    pub fn THMemoryFile_newWithStorage(storage: *mut THCharStorage,
19122                                       mode: *const ::std::os::raw::c_char)
19123     -> *mut THFile;
19124}
19125extern "C" {
19126    pub fn THMemoryFile_new(mode: *const ::std::os::raw::c_char)
19127     -> *mut THFile;
19128}
19129extern "C" {
19130    pub fn THMemoryFile_storage(self_: *mut THFile) -> *mut THCharStorage;
19131}
19132extern "C" {
19133    pub fn THMemoryFile_longSize(self_: *mut THFile,
19134                                 size: ::std::os::raw::c_int);
19135}
19136#[repr(C)]
19137#[derive(Copy)]
19138pub struct __va_list_tag {
19139    pub gp_offset: ::std::os::raw::c_uint,
19140    pub fp_offset: ::std::os::raw::c_uint,
19141    pub overflow_arg_area: *mut ::std::os::raw::c_void,
19142    pub reg_save_area: *mut ::std::os::raw::c_void,
19143}
19144#[test]
19145fn bindgen_test_layout___va_list_tag() {
19146    assert_eq!(::std::mem::size_of::<__va_list_tag>() , 24usize , concat ! (
19147               "Size of: " , stringify ! ( __va_list_tag ) ));
19148    assert_eq! (::std::mem::align_of::<__va_list_tag>() , 8usize , concat ! (
19149                "Alignment of " , stringify ! ( __va_list_tag ) ));
19150    assert_eq! (unsafe {
19151                & ( * ( 0 as * const __va_list_tag ) ) . gp_offset as * const
19152                _ as usize } , 0usize , concat ! (
19153                "Alignment of field: " , stringify ! ( __va_list_tag ) , "::"
19154                , stringify ! ( gp_offset ) ));
19155    assert_eq! (unsafe {
19156                & ( * ( 0 as * const __va_list_tag ) ) . fp_offset as * const
19157                _ as usize } , 4usize , concat ! (
19158                "Alignment of field: " , stringify ! ( __va_list_tag ) , "::"
19159                , stringify ! ( fp_offset ) ));
19160    assert_eq! (unsafe {
19161                & ( * ( 0 as * const __va_list_tag ) ) . overflow_arg_area as
19162                * const _ as usize } , 8usize , concat ! (
19163                "Alignment of field: " , stringify ! ( __va_list_tag ) , "::"
19164                , stringify ! ( overflow_arg_area ) ));
19165    assert_eq! (unsafe {
19166                & ( * ( 0 as * const __va_list_tag ) ) . reg_save_area as *
19167                const _ as usize } , 16usize , concat ! (
19168                "Alignment of field: " , stringify ! ( __va_list_tag ) , "::"
19169                , stringify ! ( reg_save_area ) ));
19170}
19171impl Clone for __va_list_tag {
19172    fn clone(&self) -> Self { *self }
19173}
19174pub type __builtin_va_list = [__va_list_tag; 1usize];
19175#[repr(C)]
19176#[derive(Copy)]
19177pub struct __locale_data {
19178    pub _address: u8,
19179}
19180impl Clone for __locale_data {
19181    fn clone(&self) -> Self { *self }
19182}