cublas_sys/
generated.rs

1//! Defines the FFI for CUDA cuBLAS.
2//!
3// The lower part of the file is automatically generated by bindgen (see README).
4#![allow(non_camel_case_types)]
5#![allow(non_snake_case)]
6
7// CUDA types
8pub type size_t = ::libc::c_ulong;
9pub type cuFloatComplex = float2;
10pub type cuComplex = cuFloatComplex;
11pub type cuDoubleComplex = double2;
12
13pub type cudaStream_t = *mut Struct_CUstream_st;
14
15#[repr(C)]
16#[derive(Copy)]
17pub struct Struct_float2 {
18    pub x: ::libc::c_float,
19    pub y: ::libc::c_float,
20}
21impl ::std::clone::Clone for Struct_float2 {
22    fn clone(&self) -> Self { *self }
23}
24impl ::std::default::Default for Struct_float2 {
25    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
26}
27pub type float2 = Struct_float2;
28
29#[repr(C)]
30#[derive(Copy)]
31pub struct Struct_double2 {
32    pub x: ::libc::c_double,
33    pub y: ::libc::c_double,
34}
35impl ::std::clone::Clone for Struct_double2 {
36    fn clone(&self) -> Self { *self }
37}
38impl ::std::default::Default for Struct_double2 {
39    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
40}
41pub type double2 = Struct_double2;
42
43#[repr(C)]
44#[derive(Copy)]
45pub struct Struct_Unnamed6 {
46    pub x: ::libc::c_ushort,
47}
48impl ::std::clone::Clone for Struct_Unnamed6 {
49    fn clone(&self) -> Self { *self }
50}
51impl ::std::default::Default for Struct_Unnamed6 {
52    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
53}
54pub type __half = Struct_Unnamed6;
55
56pub enum Struct_CUstream_st { }
57
58pub type cublasHandle_t = *mut Struct_cublasContext;
59
60pub use self::Enum_Unnamed1 as cublasStatus_t;
61pub use self::Enum_Unnamed2 as cublasFillMode_t;
62pub use self::Enum_Unnamed3 as cublasDiagType_t;
63pub use self::Enum_Unnamed4 as cublasSideMode_t;
64pub use self::Enum_Unnamed5 as cublasOperation_t;
65pub use self::Enum_Unnamed6 as cublasPointerMode_t;
66pub use self::Enum_Unnamed7 as cublasAtomicsMode_t;
67pub use self::Enum_Unnamed8 as cublasDataType_t;
68// end of generated.header.rs
69/* automatically generated by rust-bindgen */
70
71#[derive(PartialEq, Debug, Clone, Copy)]
72#[repr(u32)]
73pub enum Enum_Unnamed1 {
74    CUBLAS_STATUS_SUCCESS = 0,
75    CUBLAS_STATUS_NOT_INITIALIZED = 1,
76    CUBLAS_STATUS_ALLOC_FAILED = 3,
77    CUBLAS_STATUS_INVALID_VALUE = 7,
78    CUBLAS_STATUS_ARCH_MISMATCH = 8,
79    CUBLAS_STATUS_MAPPING_ERROR = 11,
80    CUBLAS_STATUS_EXECUTION_FAILED = 13,
81    CUBLAS_STATUS_INTERNAL_ERROR = 14,
82    CUBLAS_STATUS_NOT_SUPPORTED = 15,
83    CUBLAS_STATUS_LICENSE_ERROR = 16,
84}
85#[derive(PartialEq, Debug, Clone, Copy)]
86#[repr(u32)]
87pub enum Enum_Unnamed2 {
88    CUBLAS_FILL_MODE_LOWER = 0,
89    CUBLAS_FILL_MODE_UPPER = 1,
90}
91#[derive(PartialEq, Debug, Clone, Copy)]
92#[repr(u32)]
93pub enum Enum_Unnamed3 { CUBLAS_DIAG_NON_UNIT = 0, CUBLAS_DIAG_UNIT = 1, }
94#[derive(PartialEq, Debug, Clone, Copy)]
95#[repr(u32)]
96pub enum Enum_Unnamed4 { CUBLAS_SIDE_LEFT = 0, CUBLAS_SIDE_RIGHT = 1, }
97#[derive(PartialEq, Debug, Clone, Copy)]
98#[repr(u32)]
99pub enum Enum_Unnamed5 { CUBLAS_OP_N = 0, CUBLAS_OP_T = 1, CUBLAS_OP_C = 2, }
100#[derive(PartialEq, Debug, Clone, Copy)]
101#[repr(u32)]
102pub enum Enum_Unnamed6 {
103    CUBLAS_POINTER_MODE_HOST = 0,
104    CUBLAS_POINTER_MODE_DEVICE = 1,
105}
106#[derive(PartialEq, Debug, Clone, Copy)]
107#[repr(u32)]
108pub enum Enum_Unnamed7 {
109    CUBLAS_ATOMICS_NOT_ALLOWED = 0,
110    CUBLAS_ATOMICS_ALLOWED = 1,
111}
112#[derive(PartialEq, Debug, Clone, Copy)]
113#[repr(u32)]
114pub enum Enum_Unnamed8 {
115    CUBLAS_DATA_FLOAT = 0,
116    CUBLAS_DATA_DOUBLE = 1,
117    CUBLAS_DATA_HALF = 2,
118    CUBLAS_DATA_INT8 = 3,
119}
120pub enum Struct_cublasContext { }
121#[link(name = "cublas")]
122extern "C" {
123    pub fn cublasCreate_v2(handle: *mut cublasHandle_t) -> cublasStatus_t;
124    pub fn cublasDestroy_v2(handle: cublasHandle_t) -> cublasStatus_t;
125    pub fn cublasGetVersion_v2(handle: cublasHandle_t,
126                               version: *mut ::libc::c_int) -> cublasStatus_t;
127    pub fn cublasSetStream_v2(handle: cublasHandle_t, streamId: cudaStream_t)
128     -> cublasStatus_t;
129    pub fn cublasGetStream_v2(handle: cublasHandle_t,
130                              streamId: *mut cudaStream_t) -> cublasStatus_t;
131    pub fn cublasGetPointerMode_v2(handle: cublasHandle_t,
132                                   mode: *mut cublasPointerMode_t)
133     -> cublasStatus_t;
134    pub fn cublasSetPointerMode_v2(handle: cublasHandle_t,
135                                   mode: cublasPointerMode_t)
136     -> cublasStatus_t;
137    pub fn cublasGetAtomicsMode(handle: cublasHandle_t,
138                                mode: *mut cublasAtomicsMode_t)
139     -> cublasStatus_t;
140    pub fn cublasSetAtomicsMode(handle: cublasHandle_t,
141                                mode: cublasAtomicsMode_t) -> cublasStatus_t;
142    pub fn cublasSetVector(n: ::libc::c_int, elemSize: ::libc::c_int,
143                           x: *const ::libc::c_void, incx: ::libc::c_int,
144                           devicePtr: *mut ::libc::c_void,
145                           incy: ::libc::c_int) -> cublasStatus_t;
146    pub fn cublasGetVector(n: ::libc::c_int, elemSize: ::libc::c_int,
147                           x: *const ::libc::c_void, incx: ::libc::c_int,
148                           y: *mut ::libc::c_void, incy: ::libc::c_int)
149     -> cublasStatus_t;
150    pub fn cublasSetMatrix(rows: ::libc::c_int, cols: ::libc::c_int,
151                           elemSize: ::libc::c_int, A: *const ::libc::c_void,
152                           lda: ::libc::c_int, B: *mut ::libc::c_void,
153                           ldb: ::libc::c_int) -> cublasStatus_t;
154    pub fn cublasGetMatrix(rows: ::libc::c_int, cols: ::libc::c_int,
155                           elemSize: ::libc::c_int, A: *const ::libc::c_void,
156                           lda: ::libc::c_int, B: *mut ::libc::c_void,
157                           ldb: ::libc::c_int) -> cublasStatus_t;
158    pub fn cublasSetVectorAsync(n: ::libc::c_int, elemSize: ::libc::c_int,
159                                hostPtr: *const ::libc::c_void,
160                                incx: ::libc::c_int,
161                                devicePtr: *mut ::libc::c_void,
162                                incy: ::libc::c_int, stream: cudaStream_t)
163     -> cublasStatus_t;
164    pub fn cublasGetVectorAsync(n: ::libc::c_int, elemSize: ::libc::c_int,
165                                devicePtr: *const ::libc::c_void,
166                                incx: ::libc::c_int,
167                                hostPtr: *mut ::libc::c_void,
168                                incy: ::libc::c_int, stream: cudaStream_t)
169     -> cublasStatus_t;
170    pub fn cublasSetMatrixAsync(rows: ::libc::c_int, cols: ::libc::c_int,
171                                elemSize: ::libc::c_int,
172                                A: *const ::libc::c_void, lda: ::libc::c_int,
173                                B: *mut ::libc::c_void, ldb: ::libc::c_int,
174                                stream: cudaStream_t) -> cublasStatus_t;
175    pub fn cublasGetMatrixAsync(rows: ::libc::c_int, cols: ::libc::c_int,
176                                elemSize: ::libc::c_int,
177                                A: *const ::libc::c_void, lda: ::libc::c_int,
178                                B: *mut ::libc::c_void, ldb: ::libc::c_int,
179                                stream: cudaStream_t) -> cublasStatus_t;
180    pub fn cublasXerbla(srName: *const ::libc::c_char, info: ::libc::c_int);
181    pub fn cublasSnrm2_v2(handle: cublasHandle_t, n: ::libc::c_int,
182                          x: *const ::libc::c_float, incx: ::libc::c_int,
183                          result: *mut ::libc::c_float) -> cublasStatus_t;
184    pub fn cublasDnrm2_v2(handle: cublasHandle_t, n: ::libc::c_int,
185                          x: *const ::libc::c_double, incx: ::libc::c_int,
186                          result: *mut ::libc::c_double) -> cublasStatus_t;
187    pub fn cublasScnrm2_v2(handle: cublasHandle_t, n: ::libc::c_int,
188                           x: *const cuComplex, incx: ::libc::c_int,
189                           result: *mut ::libc::c_float) -> cublasStatus_t;
190    pub fn cublasDznrm2_v2(handle: cublasHandle_t, n: ::libc::c_int,
191                           x: *const cuDoubleComplex, incx: ::libc::c_int,
192                           result: *mut ::libc::c_double) -> cublasStatus_t;
193    pub fn cublasSdot_v2(handle: cublasHandle_t, n: ::libc::c_int,
194                         x: *const ::libc::c_float, incx: ::libc::c_int,
195                         y: *const ::libc::c_float, incy: ::libc::c_int,
196                         result: *mut ::libc::c_float) -> cublasStatus_t;
197    pub fn cublasDdot_v2(handle: cublasHandle_t, n: ::libc::c_int,
198                         x: *const ::libc::c_double, incx: ::libc::c_int,
199                         y: *const ::libc::c_double, incy: ::libc::c_int,
200                         result: *mut ::libc::c_double) -> cublasStatus_t;
201    pub fn cublasCdotu_v2(handle: cublasHandle_t, n: ::libc::c_int,
202                          x: *const cuComplex, incx: ::libc::c_int,
203                          y: *const cuComplex, incy: ::libc::c_int,
204                          result: *mut cuComplex) -> cublasStatus_t;
205    pub fn cublasCdotc_v2(handle: cublasHandle_t, n: ::libc::c_int,
206                          x: *const cuComplex, incx: ::libc::c_int,
207                          y: *const cuComplex, incy: ::libc::c_int,
208                          result: *mut cuComplex) -> cublasStatus_t;
209    pub fn cublasZdotu_v2(handle: cublasHandle_t, n: ::libc::c_int,
210                          x: *const cuDoubleComplex, incx: ::libc::c_int,
211                          y: *const cuDoubleComplex, incy: ::libc::c_int,
212                          result: *mut cuDoubleComplex) -> cublasStatus_t;
213    pub fn cublasZdotc_v2(handle: cublasHandle_t, n: ::libc::c_int,
214                          x: *const cuDoubleComplex, incx: ::libc::c_int,
215                          y: *const cuDoubleComplex, incy: ::libc::c_int,
216                          result: *mut cuDoubleComplex) -> cublasStatus_t;
217    pub fn cublasSscal_v2(handle: cublasHandle_t, n: ::libc::c_int,
218                          alpha: *const ::libc::c_float,
219                          x: *mut ::libc::c_float, incx: ::libc::c_int)
220     -> cublasStatus_t;
221    pub fn cublasDscal_v2(handle: cublasHandle_t, n: ::libc::c_int,
222                          alpha: *const ::libc::c_double,
223                          x: *mut ::libc::c_double, incx: ::libc::c_int)
224     -> cublasStatus_t;
225    pub fn cublasCscal_v2(handle: cublasHandle_t, n: ::libc::c_int,
226                          alpha: *const cuComplex, x: *mut cuComplex,
227                          incx: ::libc::c_int) -> cublasStatus_t;
228    pub fn cublasCsscal_v2(handle: cublasHandle_t, n: ::libc::c_int,
229                           alpha: *const ::libc::c_float, x: *mut cuComplex,
230                           incx: ::libc::c_int) -> cublasStatus_t;
231    pub fn cublasZscal_v2(handle: cublasHandle_t, n: ::libc::c_int,
232                          alpha: *const cuDoubleComplex,
233                          x: *mut cuDoubleComplex, incx: ::libc::c_int)
234     -> cublasStatus_t;
235    pub fn cublasZdscal_v2(handle: cublasHandle_t, n: ::libc::c_int,
236                           alpha: *const ::libc::c_double,
237                           x: *mut cuDoubleComplex, incx: ::libc::c_int)
238     -> cublasStatus_t;
239    pub fn cublasSaxpy_v2(handle: cublasHandle_t, n: ::libc::c_int,
240                          alpha: *const ::libc::c_float,
241                          x: *const ::libc::c_float, incx: ::libc::c_int,
242                          y: *mut ::libc::c_float, incy: ::libc::c_int)
243     -> cublasStatus_t;
244    pub fn cublasDaxpy_v2(handle: cublasHandle_t, n: ::libc::c_int,
245                          alpha: *const ::libc::c_double,
246                          x: *const ::libc::c_double, incx: ::libc::c_int,
247                          y: *mut ::libc::c_double, incy: ::libc::c_int)
248     -> cublasStatus_t;
249    pub fn cublasCaxpy_v2(handle: cublasHandle_t, n: ::libc::c_int,
250                          alpha: *const cuComplex, x: *const cuComplex,
251                          incx: ::libc::c_int, y: *mut cuComplex,
252                          incy: ::libc::c_int) -> cublasStatus_t;
253    pub fn cublasZaxpy_v2(handle: cublasHandle_t, n: ::libc::c_int,
254                          alpha: *const cuDoubleComplex,
255                          x: *const cuDoubleComplex, incx: ::libc::c_int,
256                          y: *mut cuDoubleComplex, incy: ::libc::c_int)
257     -> cublasStatus_t;
258    pub fn cublasScopy_v2(handle: cublasHandle_t, n: ::libc::c_int,
259                          x: *const ::libc::c_float, incx: ::libc::c_int,
260                          y: *mut ::libc::c_float, incy: ::libc::c_int)
261     -> cublasStatus_t;
262    pub fn cublasDcopy_v2(handle: cublasHandle_t, n: ::libc::c_int,
263                          x: *const ::libc::c_double, incx: ::libc::c_int,
264                          y: *mut ::libc::c_double, incy: ::libc::c_int)
265     -> cublasStatus_t;
266    pub fn cublasCcopy_v2(handle: cublasHandle_t, n: ::libc::c_int,
267                          x: *const cuComplex, incx: ::libc::c_int,
268                          y: *mut cuComplex, incy: ::libc::c_int)
269     -> cublasStatus_t;
270    pub fn cublasZcopy_v2(handle: cublasHandle_t, n: ::libc::c_int,
271                          x: *const cuDoubleComplex, incx: ::libc::c_int,
272                          y: *mut cuDoubleComplex, incy: ::libc::c_int)
273     -> cublasStatus_t;
274    pub fn cublasSswap_v2(handle: cublasHandle_t, n: ::libc::c_int,
275                          x: *mut ::libc::c_float, incx: ::libc::c_int,
276                          y: *mut ::libc::c_float, incy: ::libc::c_int)
277     -> cublasStatus_t;
278    pub fn cublasDswap_v2(handle: cublasHandle_t, n: ::libc::c_int,
279                          x: *mut ::libc::c_double, incx: ::libc::c_int,
280                          y: *mut ::libc::c_double, incy: ::libc::c_int)
281     -> cublasStatus_t;
282    pub fn cublasCswap_v2(handle: cublasHandle_t, n: ::libc::c_int,
283                          x: *mut cuComplex, incx: ::libc::c_int,
284                          y: *mut cuComplex, incy: ::libc::c_int)
285     -> cublasStatus_t;
286    pub fn cublasZswap_v2(handle: cublasHandle_t, n: ::libc::c_int,
287                          x: *mut cuDoubleComplex, incx: ::libc::c_int,
288                          y: *mut cuDoubleComplex, incy: ::libc::c_int)
289     -> cublasStatus_t;
290    pub fn cublasIsamax_v2(handle: cublasHandle_t, n: ::libc::c_int,
291                           x: *const ::libc::c_float, incx: ::libc::c_int,
292                           result: *mut ::libc::c_int) -> cublasStatus_t;
293    pub fn cublasIdamax_v2(handle: cublasHandle_t, n: ::libc::c_int,
294                           x: *const ::libc::c_double, incx: ::libc::c_int,
295                           result: *mut ::libc::c_int) -> cublasStatus_t;
296    pub fn cublasIcamax_v2(handle: cublasHandle_t, n: ::libc::c_int,
297                           x: *const cuComplex, incx: ::libc::c_int,
298                           result: *mut ::libc::c_int) -> cublasStatus_t;
299    pub fn cublasIzamax_v2(handle: cublasHandle_t, n: ::libc::c_int,
300                           x: *const cuDoubleComplex, incx: ::libc::c_int,
301                           result: *mut ::libc::c_int) -> cublasStatus_t;
302    pub fn cublasIsamin_v2(handle: cublasHandle_t, n: ::libc::c_int,
303                           x: *const ::libc::c_float, incx: ::libc::c_int,
304                           result: *mut ::libc::c_int) -> cublasStatus_t;
305    pub fn cublasIdamin_v2(handle: cublasHandle_t, n: ::libc::c_int,
306                           x: *const ::libc::c_double, incx: ::libc::c_int,
307                           result: *mut ::libc::c_int) -> cublasStatus_t;
308    pub fn cublasIcamin_v2(handle: cublasHandle_t, n: ::libc::c_int,
309                           x: *const cuComplex, incx: ::libc::c_int,
310                           result: *mut ::libc::c_int) -> cublasStatus_t;
311    pub fn cublasIzamin_v2(handle: cublasHandle_t, n: ::libc::c_int,
312                           x: *const cuDoubleComplex, incx: ::libc::c_int,
313                           result: *mut ::libc::c_int) -> cublasStatus_t;
314    pub fn cublasSasum_v2(handle: cublasHandle_t, n: ::libc::c_int,
315                          x: *const ::libc::c_float, incx: ::libc::c_int,
316                          result: *mut ::libc::c_float) -> cublasStatus_t;
317    pub fn cublasDasum_v2(handle: cublasHandle_t, n: ::libc::c_int,
318                          x: *const ::libc::c_double, incx: ::libc::c_int,
319                          result: *mut ::libc::c_double) -> cublasStatus_t;
320    pub fn cublasScasum_v2(handle: cublasHandle_t, n: ::libc::c_int,
321                           x: *const cuComplex, incx: ::libc::c_int,
322                           result: *mut ::libc::c_float) -> cublasStatus_t;
323    pub fn cublasDzasum_v2(handle: cublasHandle_t, n: ::libc::c_int,
324                           x: *const cuDoubleComplex, incx: ::libc::c_int,
325                           result: *mut ::libc::c_double) -> cublasStatus_t;
326    pub fn cublasSrot_v2(handle: cublasHandle_t, n: ::libc::c_int,
327                         x: *mut ::libc::c_float, incx: ::libc::c_int,
328                         y: *mut ::libc::c_float, incy: ::libc::c_int,
329                         c: *const ::libc::c_float, s: *const ::libc::c_float)
330     -> cublasStatus_t;
331    pub fn cublasDrot_v2(handle: cublasHandle_t, n: ::libc::c_int,
332                         x: *mut ::libc::c_double, incx: ::libc::c_int,
333                         y: *mut ::libc::c_double, incy: ::libc::c_int,
334                         c: *const ::libc::c_double,
335                         s: *const ::libc::c_double) -> cublasStatus_t;
336    pub fn cublasCrot_v2(handle: cublasHandle_t, n: ::libc::c_int,
337                         x: *mut cuComplex, incx: ::libc::c_int,
338                         y: *mut cuComplex, incy: ::libc::c_int,
339                         c: *const ::libc::c_float, s: *const cuComplex)
340     -> cublasStatus_t;
341    pub fn cublasCsrot_v2(handle: cublasHandle_t, n: ::libc::c_int,
342                          x: *mut cuComplex, incx: ::libc::c_int,
343                          y: *mut cuComplex, incy: ::libc::c_int,
344                          c: *const ::libc::c_float,
345                          s: *const ::libc::c_float) -> cublasStatus_t;
346    pub fn cublasZrot_v2(handle: cublasHandle_t, n: ::libc::c_int,
347                         x: *mut cuDoubleComplex, incx: ::libc::c_int,
348                         y: *mut cuDoubleComplex, incy: ::libc::c_int,
349                         c: *const ::libc::c_double,
350                         s: *const cuDoubleComplex) -> cublasStatus_t;
351    pub fn cublasZdrot_v2(handle: cublasHandle_t, n: ::libc::c_int,
352                          x: *mut cuDoubleComplex, incx: ::libc::c_int,
353                          y: *mut cuDoubleComplex, incy: ::libc::c_int,
354                          c: *const ::libc::c_double,
355                          s: *const ::libc::c_double) -> cublasStatus_t;
356    pub fn cublasSrotg_v2(handle: cublasHandle_t, a: *mut ::libc::c_float,
357                          b: *mut ::libc::c_float, c: *mut ::libc::c_float,
358                          s: *mut ::libc::c_float) -> cublasStatus_t;
359    pub fn cublasDrotg_v2(handle: cublasHandle_t, a: *mut ::libc::c_double,
360                          b: *mut ::libc::c_double, c: *mut ::libc::c_double,
361                          s: *mut ::libc::c_double) -> cublasStatus_t;
362    pub fn cublasCrotg_v2(handle: cublasHandle_t, a: *mut cuComplex,
363                          b: *mut cuComplex, c: *mut ::libc::c_float,
364                          s: *mut cuComplex) -> cublasStatus_t;
365    pub fn cublasZrotg_v2(handle: cublasHandle_t, a: *mut cuDoubleComplex,
366                          b: *mut cuDoubleComplex, c: *mut ::libc::c_double,
367                          s: *mut cuDoubleComplex) -> cublasStatus_t;
368    pub fn cublasSrotm_v2(handle: cublasHandle_t, n: ::libc::c_int,
369                          x: *mut ::libc::c_float, incx: ::libc::c_int,
370                          y: *mut ::libc::c_float, incy: ::libc::c_int,
371                          param: *const ::libc::c_float) -> cublasStatus_t;
372    pub fn cublasDrotm_v2(handle: cublasHandle_t, n: ::libc::c_int,
373                          x: *mut ::libc::c_double, incx: ::libc::c_int,
374                          y: *mut ::libc::c_double, incy: ::libc::c_int,
375                          param: *const ::libc::c_double) -> cublasStatus_t;
376    pub fn cublasSrotmg_v2(handle: cublasHandle_t, d1: *mut ::libc::c_float,
377                           d2: *mut ::libc::c_float, x1: *mut ::libc::c_float,
378                           y1: *const ::libc::c_float,
379                           param: *mut ::libc::c_float) -> cublasStatus_t;
380    pub fn cublasDrotmg_v2(handle: cublasHandle_t, d1: *mut ::libc::c_double,
381                           d2: *mut ::libc::c_double,
382                           x1: *mut ::libc::c_double,
383                           y1: *const ::libc::c_double,
384                           param: *mut ::libc::c_double) -> cublasStatus_t;
385    pub fn cublasSgemv_v2(handle: cublasHandle_t, trans: cublasOperation_t,
386                          m: ::libc::c_int, n: ::libc::c_int,
387                          alpha: *const ::libc::c_float,
388                          A: *const ::libc::c_float, lda: ::libc::c_int,
389                          x: *const ::libc::c_float, incx: ::libc::c_int,
390                          beta: *const ::libc::c_float,
391                          y: *mut ::libc::c_float, incy: ::libc::c_int)
392     -> cublasStatus_t;
393    pub fn cublasDgemv_v2(handle: cublasHandle_t, trans: cublasOperation_t,
394                          m: ::libc::c_int, n: ::libc::c_int,
395                          alpha: *const ::libc::c_double,
396                          A: *const ::libc::c_double, lda: ::libc::c_int,
397                          x: *const ::libc::c_double, incx: ::libc::c_int,
398                          beta: *const ::libc::c_double,
399                          y: *mut ::libc::c_double, incy: ::libc::c_int)
400     -> cublasStatus_t;
401    pub fn cublasCgemv_v2(handle: cublasHandle_t, trans: cublasOperation_t,
402                          m: ::libc::c_int, n: ::libc::c_int,
403                          alpha: *const cuComplex, A: *const cuComplex,
404                          lda: ::libc::c_int, x: *const cuComplex,
405                          incx: ::libc::c_int, beta: *const cuComplex,
406                          y: *mut cuComplex, incy: ::libc::c_int)
407     -> cublasStatus_t;
408    pub fn cublasZgemv_v2(handle: cublasHandle_t, trans: cublasOperation_t,
409                          m: ::libc::c_int, n: ::libc::c_int,
410                          alpha: *const cuDoubleComplex,
411                          A: *const cuDoubleComplex, lda: ::libc::c_int,
412                          x: *const cuDoubleComplex, incx: ::libc::c_int,
413                          beta: *const cuDoubleComplex,
414                          y: *mut cuDoubleComplex, incy: ::libc::c_int)
415     -> cublasStatus_t;
416    pub fn cublasSgbmv_v2(handle: cublasHandle_t, trans: cublasOperation_t,
417                          m: ::libc::c_int, n: ::libc::c_int,
418                          kl: ::libc::c_int, ku: ::libc::c_int,
419                          alpha: *const ::libc::c_float,
420                          A: *const ::libc::c_float, lda: ::libc::c_int,
421                          x: *const ::libc::c_float, incx: ::libc::c_int,
422                          beta: *const ::libc::c_float,
423                          y: *mut ::libc::c_float, incy: ::libc::c_int)
424     -> cublasStatus_t;
425    pub fn cublasDgbmv_v2(handle: cublasHandle_t, trans: cublasOperation_t,
426                          m: ::libc::c_int, n: ::libc::c_int,
427                          kl: ::libc::c_int, ku: ::libc::c_int,
428                          alpha: *const ::libc::c_double,
429                          A: *const ::libc::c_double, lda: ::libc::c_int,
430                          x: *const ::libc::c_double, incx: ::libc::c_int,
431                          beta: *const ::libc::c_double,
432                          y: *mut ::libc::c_double, incy: ::libc::c_int)
433     -> cublasStatus_t;
434    pub fn cublasCgbmv_v2(handle: cublasHandle_t, trans: cublasOperation_t,
435                          m: ::libc::c_int, n: ::libc::c_int,
436                          kl: ::libc::c_int, ku: ::libc::c_int,
437                          alpha: *const cuComplex, A: *const cuComplex,
438                          lda: ::libc::c_int, x: *const cuComplex,
439                          incx: ::libc::c_int, beta: *const cuComplex,
440                          y: *mut cuComplex, incy: ::libc::c_int)
441     -> cublasStatus_t;
442    pub fn cublasZgbmv_v2(handle: cublasHandle_t, trans: cublasOperation_t,
443                          m: ::libc::c_int, n: ::libc::c_int,
444                          kl: ::libc::c_int, ku: ::libc::c_int,
445                          alpha: *const cuDoubleComplex,
446                          A: *const cuDoubleComplex, lda: ::libc::c_int,
447                          x: *const cuDoubleComplex, incx: ::libc::c_int,
448                          beta: *const cuDoubleComplex,
449                          y: *mut cuDoubleComplex, incy: ::libc::c_int)
450     -> cublasStatus_t;
451    pub fn cublasStrmv_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
452                          trans: cublasOperation_t, diag: cublasDiagType_t,
453                          n: ::libc::c_int, A: *const ::libc::c_float,
454                          lda: ::libc::c_int, x: *mut ::libc::c_float,
455                          incx: ::libc::c_int) -> cublasStatus_t;
456    pub fn cublasDtrmv_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
457                          trans: cublasOperation_t, diag: cublasDiagType_t,
458                          n: ::libc::c_int, A: *const ::libc::c_double,
459                          lda: ::libc::c_int, x: *mut ::libc::c_double,
460                          incx: ::libc::c_int) -> cublasStatus_t;
461    pub fn cublasCtrmv_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
462                          trans: cublasOperation_t, diag: cublasDiagType_t,
463                          n: ::libc::c_int, A: *const cuComplex,
464                          lda: ::libc::c_int, x: *mut cuComplex,
465                          incx: ::libc::c_int) -> cublasStatus_t;
466    pub fn cublasZtrmv_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
467                          trans: cublasOperation_t, diag: cublasDiagType_t,
468                          n: ::libc::c_int, A: *const cuDoubleComplex,
469                          lda: ::libc::c_int, x: *mut cuDoubleComplex,
470                          incx: ::libc::c_int) -> cublasStatus_t;
471    pub fn cublasStbmv_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
472                          trans: cublasOperation_t, diag: cublasDiagType_t,
473                          n: ::libc::c_int, k: ::libc::c_int,
474                          A: *const ::libc::c_float, lda: ::libc::c_int,
475                          x: *mut ::libc::c_float, incx: ::libc::c_int)
476     -> cublasStatus_t;
477    pub fn cublasDtbmv_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
478                          trans: cublasOperation_t, diag: cublasDiagType_t,
479                          n: ::libc::c_int, k: ::libc::c_int,
480                          A: *const ::libc::c_double, lda: ::libc::c_int,
481                          x: *mut ::libc::c_double, incx: ::libc::c_int)
482     -> cublasStatus_t;
483    pub fn cublasCtbmv_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
484                          trans: cublasOperation_t, diag: cublasDiagType_t,
485                          n: ::libc::c_int, k: ::libc::c_int,
486                          A: *const cuComplex, lda: ::libc::c_int,
487                          x: *mut cuComplex, incx: ::libc::c_int)
488     -> cublasStatus_t;
489    pub fn cublasZtbmv_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
490                          trans: cublasOperation_t, diag: cublasDiagType_t,
491                          n: ::libc::c_int, k: ::libc::c_int,
492                          A: *const cuDoubleComplex, lda: ::libc::c_int,
493                          x: *mut cuDoubleComplex, incx: ::libc::c_int)
494     -> cublasStatus_t;
495    pub fn cublasStpmv_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
496                          trans: cublasOperation_t, diag: cublasDiagType_t,
497                          n: ::libc::c_int, AP: *const ::libc::c_float,
498                          x: *mut ::libc::c_float, incx: ::libc::c_int)
499     -> cublasStatus_t;
500    pub fn cublasDtpmv_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
501                          trans: cublasOperation_t, diag: cublasDiagType_t,
502                          n: ::libc::c_int, AP: *const ::libc::c_double,
503                          x: *mut ::libc::c_double, incx: ::libc::c_int)
504     -> cublasStatus_t;
505    pub fn cublasCtpmv_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
506                          trans: cublasOperation_t, diag: cublasDiagType_t,
507                          n: ::libc::c_int, AP: *const cuComplex,
508                          x: *mut cuComplex, incx: ::libc::c_int)
509     -> cublasStatus_t;
510    pub fn cublasZtpmv_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
511                          trans: cublasOperation_t, diag: cublasDiagType_t,
512                          n: ::libc::c_int, AP: *const cuDoubleComplex,
513                          x: *mut cuDoubleComplex, incx: ::libc::c_int)
514     -> cublasStatus_t;
515    pub fn cublasStrsv_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
516                          trans: cublasOperation_t, diag: cublasDiagType_t,
517                          n: ::libc::c_int, A: *const ::libc::c_float,
518                          lda: ::libc::c_int, x: *mut ::libc::c_float,
519                          incx: ::libc::c_int) -> cublasStatus_t;
520    pub fn cublasDtrsv_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
521                          trans: cublasOperation_t, diag: cublasDiagType_t,
522                          n: ::libc::c_int, A: *const ::libc::c_double,
523                          lda: ::libc::c_int, x: *mut ::libc::c_double,
524                          incx: ::libc::c_int) -> cublasStatus_t;
525    pub fn cublasCtrsv_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
526                          trans: cublasOperation_t, diag: cublasDiagType_t,
527                          n: ::libc::c_int, A: *const cuComplex,
528                          lda: ::libc::c_int, x: *mut cuComplex,
529                          incx: ::libc::c_int) -> cublasStatus_t;
530    pub fn cublasZtrsv_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
531                          trans: cublasOperation_t, diag: cublasDiagType_t,
532                          n: ::libc::c_int, A: *const cuDoubleComplex,
533                          lda: ::libc::c_int, x: *mut cuDoubleComplex,
534                          incx: ::libc::c_int) -> cublasStatus_t;
535    pub fn cublasStpsv_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
536                          trans: cublasOperation_t, diag: cublasDiagType_t,
537                          n: ::libc::c_int, AP: *const ::libc::c_float,
538                          x: *mut ::libc::c_float, incx: ::libc::c_int)
539     -> cublasStatus_t;
540    pub fn cublasDtpsv_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
541                          trans: cublasOperation_t, diag: cublasDiagType_t,
542                          n: ::libc::c_int, AP: *const ::libc::c_double,
543                          x: *mut ::libc::c_double, incx: ::libc::c_int)
544     -> cublasStatus_t;
545    pub fn cublasCtpsv_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
546                          trans: cublasOperation_t, diag: cublasDiagType_t,
547                          n: ::libc::c_int, AP: *const cuComplex,
548                          x: *mut cuComplex, incx: ::libc::c_int)
549     -> cublasStatus_t;
550    pub fn cublasZtpsv_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
551                          trans: cublasOperation_t, diag: cublasDiagType_t,
552                          n: ::libc::c_int, AP: *const cuDoubleComplex,
553                          x: *mut cuDoubleComplex, incx: ::libc::c_int)
554     -> cublasStatus_t;
555    pub fn cublasStbsv_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
556                          trans: cublasOperation_t, diag: cublasDiagType_t,
557                          n: ::libc::c_int, k: ::libc::c_int,
558                          A: *const ::libc::c_float, lda: ::libc::c_int,
559                          x: *mut ::libc::c_float, incx: ::libc::c_int)
560     -> cublasStatus_t;
561    pub fn cublasDtbsv_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
562                          trans: cublasOperation_t, diag: cublasDiagType_t,
563                          n: ::libc::c_int, k: ::libc::c_int,
564                          A: *const ::libc::c_double, lda: ::libc::c_int,
565                          x: *mut ::libc::c_double, incx: ::libc::c_int)
566     -> cublasStatus_t;
567    pub fn cublasCtbsv_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
568                          trans: cublasOperation_t, diag: cublasDiagType_t,
569                          n: ::libc::c_int, k: ::libc::c_int,
570                          A: *const cuComplex, lda: ::libc::c_int,
571                          x: *mut cuComplex, incx: ::libc::c_int)
572     -> cublasStatus_t;
573    pub fn cublasZtbsv_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
574                          trans: cublasOperation_t, diag: cublasDiagType_t,
575                          n: ::libc::c_int, k: ::libc::c_int,
576                          A: *const cuDoubleComplex, lda: ::libc::c_int,
577                          x: *mut cuDoubleComplex, incx: ::libc::c_int)
578     -> cublasStatus_t;
579    pub fn cublasSsymv_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
580                          n: ::libc::c_int, alpha: *const ::libc::c_float,
581                          A: *const ::libc::c_float, lda: ::libc::c_int,
582                          x: *const ::libc::c_float, incx: ::libc::c_int,
583                          beta: *const ::libc::c_float,
584                          y: *mut ::libc::c_float, incy: ::libc::c_int)
585     -> cublasStatus_t;
586    pub fn cublasDsymv_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
587                          n: ::libc::c_int, alpha: *const ::libc::c_double,
588                          A: *const ::libc::c_double, lda: ::libc::c_int,
589                          x: *const ::libc::c_double, incx: ::libc::c_int,
590                          beta: *const ::libc::c_double,
591                          y: *mut ::libc::c_double, incy: ::libc::c_int)
592     -> cublasStatus_t;
593    pub fn cublasCsymv_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
594                          n: ::libc::c_int, alpha: *const cuComplex,
595                          A: *const cuComplex, lda: ::libc::c_int,
596                          x: *const cuComplex, incx: ::libc::c_int,
597                          beta: *const cuComplex, y: *mut cuComplex,
598                          incy: ::libc::c_int) -> cublasStatus_t;
599    pub fn cublasZsymv_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
600                          n: ::libc::c_int, alpha: *const cuDoubleComplex,
601                          A: *const cuDoubleComplex, lda: ::libc::c_int,
602                          x: *const cuDoubleComplex, incx: ::libc::c_int,
603                          beta: *const cuDoubleComplex,
604                          y: *mut cuDoubleComplex, incy: ::libc::c_int)
605     -> cublasStatus_t;
606    pub fn cublasChemv_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
607                          n: ::libc::c_int, alpha: *const cuComplex,
608                          A: *const cuComplex, lda: ::libc::c_int,
609                          x: *const cuComplex, incx: ::libc::c_int,
610                          beta: *const cuComplex, y: *mut cuComplex,
611                          incy: ::libc::c_int) -> cublasStatus_t;
612    pub fn cublasZhemv_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
613                          n: ::libc::c_int, alpha: *const cuDoubleComplex,
614                          A: *const cuDoubleComplex, lda: ::libc::c_int,
615                          x: *const cuDoubleComplex, incx: ::libc::c_int,
616                          beta: *const cuDoubleComplex,
617                          y: *mut cuDoubleComplex, incy: ::libc::c_int)
618     -> cublasStatus_t;
619    pub fn cublasSsbmv_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
620                          n: ::libc::c_int, k: ::libc::c_int,
621                          alpha: *const ::libc::c_float,
622                          A: *const ::libc::c_float, lda: ::libc::c_int,
623                          x: *const ::libc::c_float, incx: ::libc::c_int,
624                          beta: *const ::libc::c_float,
625                          y: *mut ::libc::c_float, incy: ::libc::c_int)
626     -> cublasStatus_t;
627    pub fn cublasDsbmv_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
628                          n: ::libc::c_int, k: ::libc::c_int,
629                          alpha: *const ::libc::c_double,
630                          A: *const ::libc::c_double, lda: ::libc::c_int,
631                          x: *const ::libc::c_double, incx: ::libc::c_int,
632                          beta: *const ::libc::c_double,
633                          y: *mut ::libc::c_double, incy: ::libc::c_int)
634     -> cublasStatus_t;
635    pub fn cublasChbmv_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
636                          n: ::libc::c_int, k: ::libc::c_int,
637                          alpha: *const cuComplex, A: *const cuComplex,
638                          lda: ::libc::c_int, x: *const cuComplex,
639                          incx: ::libc::c_int, beta: *const cuComplex,
640                          y: *mut cuComplex, incy: ::libc::c_int)
641     -> cublasStatus_t;
642    pub fn cublasZhbmv_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
643                          n: ::libc::c_int, k: ::libc::c_int,
644                          alpha: *const cuDoubleComplex,
645                          A: *const cuDoubleComplex, lda: ::libc::c_int,
646                          x: *const cuDoubleComplex, incx: ::libc::c_int,
647                          beta: *const cuDoubleComplex,
648                          y: *mut cuDoubleComplex, incy: ::libc::c_int)
649     -> cublasStatus_t;
650    pub fn cublasSspmv_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
651                          n: ::libc::c_int, alpha: *const ::libc::c_float,
652                          AP: *const ::libc::c_float,
653                          x: *const ::libc::c_float, incx: ::libc::c_int,
654                          beta: *const ::libc::c_float,
655                          y: *mut ::libc::c_float, incy: ::libc::c_int)
656     -> cublasStatus_t;
657    pub fn cublasDspmv_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
658                          n: ::libc::c_int, alpha: *const ::libc::c_double,
659                          AP: *const ::libc::c_double,
660                          x: *const ::libc::c_double, incx: ::libc::c_int,
661                          beta: *const ::libc::c_double,
662                          y: *mut ::libc::c_double, incy: ::libc::c_int)
663     -> cublasStatus_t;
664    pub fn cublasChpmv_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
665                          n: ::libc::c_int, alpha: *const cuComplex,
666                          AP: *const cuComplex, x: *const cuComplex,
667                          incx: ::libc::c_int, beta: *const cuComplex,
668                          y: *mut cuComplex, incy: ::libc::c_int)
669     -> cublasStatus_t;
670    pub fn cublasZhpmv_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
671                          n: ::libc::c_int, alpha: *const cuDoubleComplex,
672                          AP: *const cuDoubleComplex,
673                          x: *const cuDoubleComplex, incx: ::libc::c_int,
674                          beta: *const cuDoubleComplex,
675                          y: *mut cuDoubleComplex, incy: ::libc::c_int)
676     -> cublasStatus_t;
677    pub fn cublasSger_v2(handle: cublasHandle_t, m: ::libc::c_int,
678                         n: ::libc::c_int, alpha: *const ::libc::c_float,
679                         x: *const ::libc::c_float, incx: ::libc::c_int,
680                         y: *const ::libc::c_float, incy: ::libc::c_int,
681                         A: *mut ::libc::c_float, lda: ::libc::c_int)
682     -> cublasStatus_t;
683    pub fn cublasDger_v2(handle: cublasHandle_t, m: ::libc::c_int,
684                         n: ::libc::c_int, alpha: *const ::libc::c_double,
685                         x: *const ::libc::c_double, incx: ::libc::c_int,
686                         y: *const ::libc::c_double, incy: ::libc::c_int,
687                         A: *mut ::libc::c_double, lda: ::libc::c_int)
688     -> cublasStatus_t;
689    pub fn cublasCgeru_v2(handle: cublasHandle_t, m: ::libc::c_int,
690                          n: ::libc::c_int, alpha: *const cuComplex,
691                          x: *const cuComplex, incx: ::libc::c_int,
692                          y: *const cuComplex, incy: ::libc::c_int,
693                          A: *mut cuComplex, lda: ::libc::c_int)
694     -> cublasStatus_t;
695    pub fn cublasCgerc_v2(handle: cublasHandle_t, m: ::libc::c_int,
696                          n: ::libc::c_int, alpha: *const cuComplex,
697                          x: *const cuComplex, incx: ::libc::c_int,
698                          y: *const cuComplex, incy: ::libc::c_int,
699                          A: *mut cuComplex, lda: ::libc::c_int)
700     -> cublasStatus_t;
701    pub fn cublasZgeru_v2(handle: cublasHandle_t, m: ::libc::c_int,
702                          n: ::libc::c_int, alpha: *const cuDoubleComplex,
703                          x: *const cuDoubleComplex, incx: ::libc::c_int,
704                          y: *const cuDoubleComplex, incy: ::libc::c_int,
705                          A: *mut cuDoubleComplex, lda: ::libc::c_int)
706     -> cublasStatus_t;
707    pub fn cublasZgerc_v2(handle: cublasHandle_t, m: ::libc::c_int,
708                          n: ::libc::c_int, alpha: *const cuDoubleComplex,
709                          x: *const cuDoubleComplex, incx: ::libc::c_int,
710                          y: *const cuDoubleComplex, incy: ::libc::c_int,
711                          A: *mut cuDoubleComplex, lda: ::libc::c_int)
712     -> cublasStatus_t;
713    pub fn cublasSsyr_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
714                         n: ::libc::c_int, alpha: *const ::libc::c_float,
715                         x: *const ::libc::c_float, incx: ::libc::c_int,
716                         A: *mut ::libc::c_float, lda: ::libc::c_int)
717     -> cublasStatus_t;
718    pub fn cublasDsyr_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
719                         n: ::libc::c_int, alpha: *const ::libc::c_double,
720                         x: *const ::libc::c_double, incx: ::libc::c_int,
721                         A: *mut ::libc::c_double, lda: ::libc::c_int)
722     -> cublasStatus_t;
723    pub fn cublasCsyr_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
724                         n: ::libc::c_int, alpha: *const cuComplex,
725                         x: *const cuComplex, incx: ::libc::c_int,
726                         A: *mut cuComplex, lda: ::libc::c_int)
727     -> cublasStatus_t;
728    pub fn cublasZsyr_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
729                         n: ::libc::c_int, alpha: *const cuDoubleComplex,
730                         x: *const cuDoubleComplex, incx: ::libc::c_int,
731                         A: *mut cuDoubleComplex, lda: ::libc::c_int)
732     -> cublasStatus_t;
733    pub fn cublasCher_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
734                         n: ::libc::c_int, alpha: *const ::libc::c_float,
735                         x: *const cuComplex, incx: ::libc::c_int,
736                         A: *mut cuComplex, lda: ::libc::c_int)
737     -> cublasStatus_t;
738    pub fn cublasZher_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
739                         n: ::libc::c_int, alpha: *const ::libc::c_double,
740                         x: *const cuDoubleComplex, incx: ::libc::c_int,
741                         A: *mut cuDoubleComplex, lda: ::libc::c_int)
742     -> cublasStatus_t;
743    pub fn cublasSspr_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
744                         n: ::libc::c_int, alpha: *const ::libc::c_float,
745                         x: *const ::libc::c_float, incx: ::libc::c_int,
746                         AP: *mut ::libc::c_float) -> cublasStatus_t;
747    pub fn cublasDspr_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
748                         n: ::libc::c_int, alpha: *const ::libc::c_double,
749                         x: *const ::libc::c_double, incx: ::libc::c_int,
750                         AP: *mut ::libc::c_double) -> cublasStatus_t;
751    pub fn cublasChpr_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
752                         n: ::libc::c_int, alpha: *const ::libc::c_float,
753                         x: *const cuComplex, incx: ::libc::c_int,
754                         AP: *mut cuComplex) -> cublasStatus_t;
755    pub fn cublasZhpr_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
756                         n: ::libc::c_int, alpha: *const ::libc::c_double,
757                         x: *const cuDoubleComplex, incx: ::libc::c_int,
758                         AP: *mut cuDoubleComplex) -> cublasStatus_t;
759    pub fn cublasSsyr2_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
760                          n: ::libc::c_int, alpha: *const ::libc::c_float,
761                          x: *const ::libc::c_float, incx: ::libc::c_int,
762                          y: *const ::libc::c_float, incy: ::libc::c_int,
763                          A: *mut ::libc::c_float, lda: ::libc::c_int)
764     -> cublasStatus_t;
765    pub fn cublasDsyr2_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
766                          n: ::libc::c_int, alpha: *const ::libc::c_double,
767                          x: *const ::libc::c_double, incx: ::libc::c_int,
768                          y: *const ::libc::c_double, incy: ::libc::c_int,
769                          A: *mut ::libc::c_double, lda: ::libc::c_int)
770     -> cublasStatus_t;
771    pub fn cublasCsyr2_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
772                          n: ::libc::c_int, alpha: *const cuComplex,
773                          x: *const cuComplex, incx: ::libc::c_int,
774                          y: *const cuComplex, incy: ::libc::c_int,
775                          A: *mut cuComplex, lda: ::libc::c_int)
776     -> cublasStatus_t;
777    pub fn cublasZsyr2_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
778                          n: ::libc::c_int, alpha: *const cuDoubleComplex,
779                          x: *const cuDoubleComplex, incx: ::libc::c_int,
780                          y: *const cuDoubleComplex, incy: ::libc::c_int,
781                          A: *mut cuDoubleComplex, lda: ::libc::c_int)
782     -> cublasStatus_t;
783    pub fn cublasCher2_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
784                          n: ::libc::c_int, alpha: *const cuComplex,
785                          x: *const cuComplex, incx: ::libc::c_int,
786                          y: *const cuComplex, incy: ::libc::c_int,
787                          A: *mut cuComplex, lda: ::libc::c_int)
788     -> cublasStatus_t;
789    pub fn cublasZher2_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
790                          n: ::libc::c_int, alpha: *const cuDoubleComplex,
791                          x: *const cuDoubleComplex, incx: ::libc::c_int,
792                          y: *const cuDoubleComplex, incy: ::libc::c_int,
793                          A: *mut cuDoubleComplex, lda: ::libc::c_int)
794     -> cublasStatus_t;
795    pub fn cublasSspr2_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
796                          n: ::libc::c_int, alpha: *const ::libc::c_float,
797                          x: *const ::libc::c_float, incx: ::libc::c_int,
798                          y: *const ::libc::c_float, incy: ::libc::c_int,
799                          AP: *mut ::libc::c_float) -> cublasStatus_t;
800    pub fn cublasDspr2_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
801                          n: ::libc::c_int, alpha: *const ::libc::c_double,
802                          x: *const ::libc::c_double, incx: ::libc::c_int,
803                          y: *const ::libc::c_double, incy: ::libc::c_int,
804                          AP: *mut ::libc::c_double) -> cublasStatus_t;
805    pub fn cublasChpr2_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
806                          n: ::libc::c_int, alpha: *const cuComplex,
807                          x: *const cuComplex, incx: ::libc::c_int,
808                          y: *const cuComplex, incy: ::libc::c_int,
809                          AP: *mut cuComplex) -> cublasStatus_t;
810    pub fn cublasZhpr2_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
811                          n: ::libc::c_int, alpha: *const cuDoubleComplex,
812                          x: *const cuDoubleComplex, incx: ::libc::c_int,
813                          y: *const cuDoubleComplex, incy: ::libc::c_int,
814                          AP: *mut cuDoubleComplex) -> cublasStatus_t;
815    pub fn cublasSgemm_v2(handle: cublasHandle_t, transa: cublasOperation_t,
816                          transb: cublasOperation_t, m: ::libc::c_int,
817                          n: ::libc::c_int, k: ::libc::c_int,
818                          alpha: *const ::libc::c_float,
819                          A: *const ::libc::c_float, lda: ::libc::c_int,
820                          B: *const ::libc::c_float, ldb: ::libc::c_int,
821                          beta: *const ::libc::c_float,
822                          C: *mut ::libc::c_float, ldc: ::libc::c_int)
823     -> cublasStatus_t;
824    pub fn cublasDgemm_v2(handle: cublasHandle_t, transa: cublasOperation_t,
825                          transb: cublasOperation_t, m: ::libc::c_int,
826                          n: ::libc::c_int, k: ::libc::c_int,
827                          alpha: *const ::libc::c_double,
828                          A: *const ::libc::c_double, lda: ::libc::c_int,
829                          B: *const ::libc::c_double, ldb: ::libc::c_int,
830                          beta: *const ::libc::c_double,
831                          C: *mut ::libc::c_double, ldc: ::libc::c_int)
832     -> cublasStatus_t;
833    pub fn cublasCgemm_v2(handle: cublasHandle_t, transa: cublasOperation_t,
834                          transb: cublasOperation_t, m: ::libc::c_int,
835                          n: ::libc::c_int, k: ::libc::c_int,
836                          alpha: *const cuComplex, A: *const cuComplex,
837                          lda: ::libc::c_int, B: *const cuComplex,
838                          ldb: ::libc::c_int, beta: *const cuComplex,
839                          C: *mut cuComplex, ldc: ::libc::c_int)
840     -> cublasStatus_t;
841    pub fn cublasZgemm_v2(handle: cublasHandle_t, transa: cublasOperation_t,
842                          transb: cublasOperation_t, m: ::libc::c_int,
843                          n: ::libc::c_int, k: ::libc::c_int,
844                          alpha: *const cuDoubleComplex,
845                          A: *const cuDoubleComplex, lda: ::libc::c_int,
846                          B: *const cuDoubleComplex, ldb: ::libc::c_int,
847                          beta: *const cuDoubleComplex,
848                          C: *mut cuDoubleComplex, ldc: ::libc::c_int)
849     -> cublasStatus_t;
850    pub fn cublasHgemm(handle: cublasHandle_t, transa: cublasOperation_t,
851                       transb: cublasOperation_t, m: ::libc::c_int,
852                       n: ::libc::c_int, k: ::libc::c_int,
853                       alpha: *const __half, A: *const __half,
854                       lda: ::libc::c_int, B: *const __half,
855                       ldb: ::libc::c_int, beta: *const __half,
856                       C: *mut __half, ldc: ::libc::c_int) -> cublasStatus_t;
857    pub fn cublasSgemmEx(handle: cublasHandle_t, transa: cublasOperation_t,
858                         transb: cublasOperation_t, m: ::libc::c_int,
859                         n: ::libc::c_int, k: ::libc::c_int,
860                         alpha: *const ::libc::c_float,
861                         A: *const ::libc::c_void, Atype: cublasDataType_t,
862                         lda: ::libc::c_int, B: *const ::libc::c_void,
863                         Btype: cublasDataType_t, ldb: ::libc::c_int,
864                         beta: *const ::libc::c_float, C: *mut ::libc::c_void,
865                         Ctype: cublasDataType_t, ldc: ::libc::c_int)
866     -> cublasStatus_t;
867    pub fn cublasSsyrk_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
868                          trans: cublasOperation_t, n: ::libc::c_int,
869                          k: ::libc::c_int, alpha: *const ::libc::c_float,
870                          A: *const ::libc::c_float, lda: ::libc::c_int,
871                          beta: *const ::libc::c_float,
872                          C: *mut ::libc::c_float, ldc: ::libc::c_int)
873     -> cublasStatus_t;
874    pub fn cublasDsyrk_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
875                          trans: cublasOperation_t, n: ::libc::c_int,
876                          k: ::libc::c_int, alpha: *const ::libc::c_double,
877                          A: *const ::libc::c_double, lda: ::libc::c_int,
878                          beta: *const ::libc::c_double,
879                          C: *mut ::libc::c_double, ldc: ::libc::c_int)
880     -> cublasStatus_t;
881    pub fn cublasCsyrk_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
882                          trans: cublasOperation_t, n: ::libc::c_int,
883                          k: ::libc::c_int, alpha: *const cuComplex,
884                          A: *const cuComplex, lda: ::libc::c_int,
885                          beta: *const cuComplex, C: *mut cuComplex,
886                          ldc: ::libc::c_int) -> cublasStatus_t;
887    pub fn cublasZsyrk_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
888                          trans: cublasOperation_t, n: ::libc::c_int,
889                          k: ::libc::c_int, alpha: *const cuDoubleComplex,
890                          A: *const cuDoubleComplex, lda: ::libc::c_int,
891                          beta: *const cuDoubleComplex,
892                          C: *mut cuDoubleComplex, ldc: ::libc::c_int)
893     -> cublasStatus_t;
894    pub fn cublasCherk_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
895                          trans: cublasOperation_t, n: ::libc::c_int,
896                          k: ::libc::c_int, alpha: *const ::libc::c_float,
897                          A: *const cuComplex, lda: ::libc::c_int,
898                          beta: *const ::libc::c_float, C: *mut cuComplex,
899                          ldc: ::libc::c_int) -> cublasStatus_t;
900    pub fn cublasZherk_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
901                          trans: cublasOperation_t, n: ::libc::c_int,
902                          k: ::libc::c_int, alpha: *const ::libc::c_double,
903                          A: *const cuDoubleComplex, lda: ::libc::c_int,
904                          beta: *const ::libc::c_double,
905                          C: *mut cuDoubleComplex, ldc: ::libc::c_int)
906     -> cublasStatus_t;
907    pub fn cublasSsyr2k_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
908                           trans: cublasOperation_t, n: ::libc::c_int,
909                           k: ::libc::c_int, alpha: *const ::libc::c_float,
910                           A: *const ::libc::c_float, lda: ::libc::c_int,
911                           B: *const ::libc::c_float, ldb: ::libc::c_int,
912                           beta: *const ::libc::c_float,
913                           C: *mut ::libc::c_float, ldc: ::libc::c_int)
914     -> cublasStatus_t;
915    pub fn cublasDsyr2k_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
916                           trans: cublasOperation_t, n: ::libc::c_int,
917                           k: ::libc::c_int, alpha: *const ::libc::c_double,
918                           A: *const ::libc::c_double, lda: ::libc::c_int,
919                           B: *const ::libc::c_double, ldb: ::libc::c_int,
920                           beta: *const ::libc::c_double,
921                           C: *mut ::libc::c_double, ldc: ::libc::c_int)
922     -> cublasStatus_t;
923    pub fn cublasCsyr2k_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
924                           trans: cublasOperation_t, n: ::libc::c_int,
925                           k: ::libc::c_int, alpha: *const cuComplex,
926                           A: *const cuComplex, lda: ::libc::c_int,
927                           B: *const cuComplex, ldb: ::libc::c_int,
928                           beta: *const cuComplex, C: *mut cuComplex,
929                           ldc: ::libc::c_int) -> cublasStatus_t;
930    pub fn cublasZsyr2k_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
931                           trans: cublasOperation_t, n: ::libc::c_int,
932                           k: ::libc::c_int, alpha: *const cuDoubleComplex,
933                           A: *const cuDoubleComplex, lda: ::libc::c_int,
934                           B: *const cuDoubleComplex, ldb: ::libc::c_int,
935                           beta: *const cuDoubleComplex,
936                           C: *mut cuDoubleComplex, ldc: ::libc::c_int)
937     -> cublasStatus_t;
938    pub fn cublasCher2k_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
939                           trans: cublasOperation_t, n: ::libc::c_int,
940                           k: ::libc::c_int, alpha: *const cuComplex,
941                           A: *const cuComplex, lda: ::libc::c_int,
942                           B: *const cuComplex, ldb: ::libc::c_int,
943                           beta: *const ::libc::c_float, C: *mut cuComplex,
944                           ldc: ::libc::c_int) -> cublasStatus_t;
945    pub fn cublasZher2k_v2(handle: cublasHandle_t, uplo: cublasFillMode_t,
946                           trans: cublasOperation_t, n: ::libc::c_int,
947                           k: ::libc::c_int, alpha: *const cuDoubleComplex,
948                           A: *const cuDoubleComplex, lda: ::libc::c_int,
949                           B: *const cuDoubleComplex, ldb: ::libc::c_int,
950                           beta: *const ::libc::c_double,
951                           C: *mut cuDoubleComplex, ldc: ::libc::c_int)
952     -> cublasStatus_t;
953    pub fn cublasSsyrkx(handle: cublasHandle_t, uplo: cublasFillMode_t,
954                        trans: cublasOperation_t, n: ::libc::c_int,
955                        k: ::libc::c_int, alpha: *const ::libc::c_float,
956                        A: *const ::libc::c_float, lda: ::libc::c_int,
957                        B: *const ::libc::c_float, ldb: ::libc::c_int,
958                        beta: *const ::libc::c_float, C: *mut ::libc::c_float,
959                        ldc: ::libc::c_int) -> cublasStatus_t;
960    pub fn cublasDsyrkx(handle: cublasHandle_t, uplo: cublasFillMode_t,
961                        trans: cublasOperation_t, n: ::libc::c_int,
962                        k: ::libc::c_int, alpha: *const ::libc::c_double,
963                        A: *const ::libc::c_double, lda: ::libc::c_int,
964                        B: *const ::libc::c_double, ldb: ::libc::c_int,
965                        beta: *const ::libc::c_double,
966                        C: *mut ::libc::c_double, ldc: ::libc::c_int)
967     -> cublasStatus_t;
968    pub fn cublasCsyrkx(handle: cublasHandle_t, uplo: cublasFillMode_t,
969                        trans: cublasOperation_t, n: ::libc::c_int,
970                        k: ::libc::c_int, alpha: *const cuComplex,
971                        A: *const cuComplex, lda: ::libc::c_int,
972                        B: *const cuComplex, ldb: ::libc::c_int,
973                        beta: *const cuComplex, C: *mut cuComplex,
974                        ldc: ::libc::c_int) -> cublasStatus_t;
975    pub fn cublasZsyrkx(handle: cublasHandle_t, uplo: cublasFillMode_t,
976                        trans: cublasOperation_t, n: ::libc::c_int,
977                        k: ::libc::c_int, alpha: *const cuDoubleComplex,
978                        A: *const cuDoubleComplex, lda: ::libc::c_int,
979                        B: *const cuDoubleComplex, ldb: ::libc::c_int,
980                        beta: *const cuDoubleComplex, C: *mut cuDoubleComplex,
981                        ldc: ::libc::c_int) -> cublasStatus_t;
982    pub fn cublasCherkx(handle: cublasHandle_t, uplo: cublasFillMode_t,
983                        trans: cublasOperation_t, n: ::libc::c_int,
984                        k: ::libc::c_int, alpha: *const cuComplex,
985                        A: *const cuComplex, lda: ::libc::c_int,
986                        B: *const cuComplex, ldb: ::libc::c_int,
987                        beta: *const ::libc::c_float, C: *mut cuComplex,
988                        ldc: ::libc::c_int) -> cublasStatus_t;
989    pub fn cublasZherkx(handle: cublasHandle_t, uplo: cublasFillMode_t,
990                        trans: cublasOperation_t, n: ::libc::c_int,
991                        k: ::libc::c_int, alpha: *const cuDoubleComplex,
992                        A: *const cuDoubleComplex, lda: ::libc::c_int,
993                        B: *const cuDoubleComplex, ldb: ::libc::c_int,
994                        beta: *const ::libc::c_double,
995                        C: *mut cuDoubleComplex, ldc: ::libc::c_int)
996     -> cublasStatus_t;
997    pub fn cublasSsymm_v2(handle: cublasHandle_t, side: cublasSideMode_t,
998                          uplo: cublasFillMode_t, m: ::libc::c_int,
999                          n: ::libc::c_int, alpha: *const ::libc::c_float,
1000                          A: *const ::libc::c_float, lda: ::libc::c_int,
1001                          B: *const ::libc::c_float, ldb: ::libc::c_int,
1002                          beta: *const ::libc::c_float,
1003                          C: *mut ::libc::c_float, ldc: ::libc::c_int)
1004     -> cublasStatus_t;
1005    pub fn cublasDsymm_v2(handle: cublasHandle_t, side: cublasSideMode_t,
1006                          uplo: cublasFillMode_t, m: ::libc::c_int,
1007                          n: ::libc::c_int, alpha: *const ::libc::c_double,
1008                          A: *const ::libc::c_double, lda: ::libc::c_int,
1009                          B: *const ::libc::c_double, ldb: ::libc::c_int,
1010                          beta: *const ::libc::c_double,
1011                          C: *mut ::libc::c_double, ldc: ::libc::c_int)
1012     -> cublasStatus_t;
1013    pub fn cublasCsymm_v2(handle: cublasHandle_t, side: cublasSideMode_t,
1014                          uplo: cublasFillMode_t, m: ::libc::c_int,
1015                          n: ::libc::c_int, alpha: *const cuComplex,
1016                          A: *const cuComplex, lda: ::libc::c_int,
1017                          B: *const cuComplex, ldb: ::libc::c_int,
1018                          beta: *const cuComplex, C: *mut cuComplex,
1019                          ldc: ::libc::c_int) -> cublasStatus_t;
1020    pub fn cublasZsymm_v2(handle: cublasHandle_t, side: cublasSideMode_t,
1021                          uplo: cublasFillMode_t, m: ::libc::c_int,
1022                          n: ::libc::c_int, alpha: *const cuDoubleComplex,
1023                          A: *const cuDoubleComplex, lda: ::libc::c_int,
1024                          B: *const cuDoubleComplex, ldb: ::libc::c_int,
1025                          beta: *const cuDoubleComplex,
1026                          C: *mut cuDoubleComplex, ldc: ::libc::c_int)
1027     -> cublasStatus_t;
1028    pub fn cublasChemm_v2(handle: cublasHandle_t, side: cublasSideMode_t,
1029                          uplo: cublasFillMode_t, m: ::libc::c_int,
1030                          n: ::libc::c_int, alpha: *const cuComplex,
1031                          A: *const cuComplex, lda: ::libc::c_int,
1032                          B: *const cuComplex, ldb: ::libc::c_int,
1033                          beta: *const cuComplex, C: *mut cuComplex,
1034                          ldc: ::libc::c_int) -> cublasStatus_t;
1035    pub fn cublasZhemm_v2(handle: cublasHandle_t, side: cublasSideMode_t,
1036                          uplo: cublasFillMode_t, m: ::libc::c_int,
1037                          n: ::libc::c_int, alpha: *const cuDoubleComplex,
1038                          A: *const cuDoubleComplex, lda: ::libc::c_int,
1039                          B: *const cuDoubleComplex, ldb: ::libc::c_int,
1040                          beta: *const cuDoubleComplex,
1041                          C: *mut cuDoubleComplex, ldc: ::libc::c_int)
1042     -> cublasStatus_t;
1043    pub fn cublasStrsm_v2(handle: cublasHandle_t, side: cublasSideMode_t,
1044                          uplo: cublasFillMode_t, trans: cublasOperation_t,
1045                          diag: cublasDiagType_t, m: ::libc::c_int,
1046                          n: ::libc::c_int, alpha: *const ::libc::c_float,
1047                          A: *const ::libc::c_float, lda: ::libc::c_int,
1048                          B: *mut ::libc::c_float, ldb: ::libc::c_int)
1049     -> cublasStatus_t;
1050    pub fn cublasDtrsm_v2(handle: cublasHandle_t, side: cublasSideMode_t,
1051                          uplo: cublasFillMode_t, trans: cublasOperation_t,
1052                          diag: cublasDiagType_t, m: ::libc::c_int,
1053                          n: ::libc::c_int, alpha: *const ::libc::c_double,
1054                          A: *const ::libc::c_double, lda: ::libc::c_int,
1055                          B: *mut ::libc::c_double, ldb: ::libc::c_int)
1056     -> cublasStatus_t;
1057    pub fn cublasCtrsm_v2(handle: cublasHandle_t, side: cublasSideMode_t,
1058                          uplo: cublasFillMode_t, trans: cublasOperation_t,
1059                          diag: cublasDiagType_t, m: ::libc::c_int,
1060                          n: ::libc::c_int, alpha: *const cuComplex,
1061                          A: *const cuComplex, lda: ::libc::c_int,
1062                          B: *mut cuComplex, ldb: ::libc::c_int)
1063     -> cublasStatus_t;
1064    pub fn cublasZtrsm_v2(handle: cublasHandle_t, side: cublasSideMode_t,
1065                          uplo: cublasFillMode_t, trans: cublasOperation_t,
1066                          diag: cublasDiagType_t, m: ::libc::c_int,
1067                          n: ::libc::c_int, alpha: *const cuDoubleComplex,
1068                          A: *const cuDoubleComplex, lda: ::libc::c_int,
1069                          B: *mut cuDoubleComplex, ldb: ::libc::c_int)
1070     -> cublasStatus_t;
1071    pub fn cublasStrmm_v2(handle: cublasHandle_t, side: cublasSideMode_t,
1072                          uplo: cublasFillMode_t, trans: cublasOperation_t,
1073                          diag: cublasDiagType_t, m: ::libc::c_int,
1074                          n: ::libc::c_int, alpha: *const ::libc::c_float,
1075                          A: *const ::libc::c_float, lda: ::libc::c_int,
1076                          B: *const ::libc::c_float, ldb: ::libc::c_int,
1077                          C: *mut ::libc::c_float, ldc: ::libc::c_int)
1078     -> cublasStatus_t;
1079    pub fn cublasDtrmm_v2(handle: cublasHandle_t, side: cublasSideMode_t,
1080                          uplo: cublasFillMode_t, trans: cublasOperation_t,
1081                          diag: cublasDiagType_t, m: ::libc::c_int,
1082                          n: ::libc::c_int, alpha: *const ::libc::c_double,
1083                          A: *const ::libc::c_double, lda: ::libc::c_int,
1084                          B: *const ::libc::c_double, ldb: ::libc::c_int,
1085                          C: *mut ::libc::c_double, ldc: ::libc::c_int)
1086     -> cublasStatus_t;
1087    pub fn cublasCtrmm_v2(handle: cublasHandle_t, side: cublasSideMode_t,
1088                          uplo: cublasFillMode_t, trans: cublasOperation_t,
1089                          diag: cublasDiagType_t, m: ::libc::c_int,
1090                          n: ::libc::c_int, alpha: *const cuComplex,
1091                          A: *const cuComplex, lda: ::libc::c_int,
1092                          B: *const cuComplex, ldb: ::libc::c_int,
1093                          C: *mut cuComplex, ldc: ::libc::c_int)
1094     -> cublasStatus_t;
1095    pub fn cublasZtrmm_v2(handle: cublasHandle_t, side: cublasSideMode_t,
1096                          uplo: cublasFillMode_t, trans: cublasOperation_t,
1097                          diag: cublasDiagType_t, m: ::libc::c_int,
1098                          n: ::libc::c_int, alpha: *const cuDoubleComplex,
1099                          A: *const cuDoubleComplex, lda: ::libc::c_int,
1100                          B: *const cuDoubleComplex, ldb: ::libc::c_int,
1101                          C: *mut cuDoubleComplex, ldc: ::libc::c_int)
1102     -> cublasStatus_t;
1103    pub fn cublasSgemmBatched(handle: cublasHandle_t,
1104                              transa: cublasOperation_t,
1105                              transb: cublasOperation_t, m: ::libc::c_int,
1106                              n: ::libc::c_int, k: ::libc::c_int,
1107                              alpha: *const ::libc::c_float,
1108                              Aarray: *mut *const ::libc::c_float,
1109                              lda: ::libc::c_int,
1110                              Barray: *mut *const ::libc::c_float,
1111                              ldb: ::libc::c_int,
1112                              beta: *const ::libc::c_float,
1113                              Carray: *mut *mut ::libc::c_float,
1114                              ldc: ::libc::c_int, batchCount: ::libc::c_int)
1115     -> cublasStatus_t;
1116    pub fn cublasDgemmBatched(handle: cublasHandle_t,
1117                              transa: cublasOperation_t,
1118                              transb: cublasOperation_t, m: ::libc::c_int,
1119                              n: ::libc::c_int, k: ::libc::c_int,
1120                              alpha: *const ::libc::c_double,
1121                              Aarray: *mut *const ::libc::c_double,
1122                              lda: ::libc::c_int,
1123                              Barray: *mut *const ::libc::c_double,
1124                              ldb: ::libc::c_int,
1125                              beta: *const ::libc::c_double,
1126                              Carray: *mut *mut ::libc::c_double,
1127                              ldc: ::libc::c_int, batchCount: ::libc::c_int)
1128     -> cublasStatus_t;
1129    pub fn cublasCgemmBatched(handle: cublasHandle_t,
1130                              transa: cublasOperation_t,
1131                              transb: cublasOperation_t, m: ::libc::c_int,
1132                              n: ::libc::c_int, k: ::libc::c_int,
1133                              alpha: *const cuComplex,
1134                              Aarray: *mut *const cuComplex,
1135                              lda: ::libc::c_int,
1136                              Barray: *mut *const cuComplex,
1137                              ldb: ::libc::c_int, beta: *const cuComplex,
1138                              Carray: *mut *mut cuComplex, ldc: ::libc::c_int,
1139                              batchCount: ::libc::c_int) -> cublasStatus_t;
1140    pub fn cublasZgemmBatched(handle: cublasHandle_t,
1141                              transa: cublasOperation_t,
1142                              transb: cublasOperation_t, m: ::libc::c_int,
1143                              n: ::libc::c_int, k: ::libc::c_int,
1144                              alpha: *const cuDoubleComplex,
1145                              Aarray: *mut *const cuDoubleComplex,
1146                              lda: ::libc::c_int,
1147                              Barray: *mut *const cuDoubleComplex,
1148                              ldb: ::libc::c_int,
1149                              beta: *const cuDoubleComplex,
1150                              Carray: *mut *mut cuDoubleComplex,
1151                              ldc: ::libc::c_int, batchCount: ::libc::c_int)
1152     -> cublasStatus_t;
1153    pub fn cublasSgeam(handle: cublasHandle_t, transa: cublasOperation_t,
1154                       transb: cublasOperation_t, m: ::libc::c_int,
1155                       n: ::libc::c_int, alpha: *const ::libc::c_float,
1156                       A: *const ::libc::c_float, lda: ::libc::c_int,
1157                       beta: *const ::libc::c_float,
1158                       B: *const ::libc::c_float, ldb: ::libc::c_int,
1159                       C: *mut ::libc::c_float, ldc: ::libc::c_int)
1160     -> cublasStatus_t;
1161    pub fn cublasDgeam(handle: cublasHandle_t, transa: cublasOperation_t,
1162                       transb: cublasOperation_t, m: ::libc::c_int,
1163                       n: ::libc::c_int, alpha: *const ::libc::c_double,
1164                       A: *const ::libc::c_double, lda: ::libc::c_int,
1165                       beta: *const ::libc::c_double,
1166                       B: *const ::libc::c_double, ldb: ::libc::c_int,
1167                       C: *mut ::libc::c_double, ldc: ::libc::c_int)
1168     -> cublasStatus_t;
1169    pub fn cublasCgeam(handle: cublasHandle_t, transa: cublasOperation_t,
1170                       transb: cublasOperation_t, m: ::libc::c_int,
1171                       n: ::libc::c_int, alpha: *const cuComplex,
1172                       A: *const cuComplex, lda: ::libc::c_int,
1173                       beta: *const cuComplex, B: *const cuComplex,
1174                       ldb: ::libc::c_int, C: *mut cuComplex,
1175                       ldc: ::libc::c_int) -> cublasStatus_t;
1176    pub fn cublasZgeam(handle: cublasHandle_t, transa: cublasOperation_t,
1177                       transb: cublasOperation_t, m: ::libc::c_int,
1178                       n: ::libc::c_int, alpha: *const cuDoubleComplex,
1179                       A: *const cuDoubleComplex, lda: ::libc::c_int,
1180                       beta: *const cuDoubleComplex,
1181                       B: *const cuDoubleComplex, ldb: ::libc::c_int,
1182                       C: *mut cuDoubleComplex, ldc: ::libc::c_int)
1183     -> cublasStatus_t;
1184    pub fn cublasSgetrfBatched(handle: cublasHandle_t, n: ::libc::c_int,
1185                               A: *mut *mut ::libc::c_float,
1186                               lda: ::libc::c_int, P: *mut ::libc::c_int,
1187                               info: *mut ::libc::c_int,
1188                               batchSize: ::libc::c_int) -> cublasStatus_t;
1189    pub fn cublasDgetrfBatched(handle: cublasHandle_t, n: ::libc::c_int,
1190                               A: *mut *mut ::libc::c_double,
1191                               lda: ::libc::c_int, P: *mut ::libc::c_int,
1192                               info: *mut ::libc::c_int,
1193                               batchSize: ::libc::c_int) -> cublasStatus_t;
1194    pub fn cublasCgetrfBatched(handle: cublasHandle_t, n: ::libc::c_int,
1195                               A: *mut *mut cuComplex, lda: ::libc::c_int,
1196                               P: *mut ::libc::c_int,
1197                               info: *mut ::libc::c_int,
1198                               batchSize: ::libc::c_int) -> cublasStatus_t;
1199    pub fn cublasZgetrfBatched(handle: cublasHandle_t, n: ::libc::c_int,
1200                               A: *mut *mut cuDoubleComplex,
1201                               lda: ::libc::c_int, P: *mut ::libc::c_int,
1202                               info: *mut ::libc::c_int,
1203                               batchSize: ::libc::c_int) -> cublasStatus_t;
1204    pub fn cublasSgetriBatched(handle: cublasHandle_t, n: ::libc::c_int,
1205                               A: *mut *const ::libc::c_float,
1206                               lda: ::libc::c_int, P: *const ::libc::c_int,
1207                               C: *mut *mut ::libc::c_float,
1208                               ldc: ::libc::c_int, info: *mut ::libc::c_int,
1209                               batchSize: ::libc::c_int) -> cublasStatus_t;
1210    pub fn cublasDgetriBatched(handle: cublasHandle_t, n: ::libc::c_int,
1211                               A: *mut *const ::libc::c_double,
1212                               lda: ::libc::c_int, P: *const ::libc::c_int,
1213                               C: *mut *mut ::libc::c_double,
1214                               ldc: ::libc::c_int, info: *mut ::libc::c_int,
1215                               batchSize: ::libc::c_int) -> cublasStatus_t;
1216    pub fn cublasCgetriBatched(handle: cublasHandle_t, n: ::libc::c_int,
1217                               A: *mut *const cuComplex, lda: ::libc::c_int,
1218                               P: *const ::libc::c_int,
1219                               C: *mut *mut cuComplex, ldc: ::libc::c_int,
1220                               info: *mut ::libc::c_int,
1221                               batchSize: ::libc::c_int) -> cublasStatus_t;
1222    pub fn cublasZgetriBatched(handle: cublasHandle_t, n: ::libc::c_int,
1223                               A: *mut *const cuDoubleComplex,
1224                               lda: ::libc::c_int, P: *const ::libc::c_int,
1225                               C: *mut *mut cuDoubleComplex,
1226                               ldc: ::libc::c_int, info: *mut ::libc::c_int,
1227                               batchSize: ::libc::c_int) -> cublasStatus_t;
1228    pub fn cublasSgetrsBatched(handle: cublasHandle_t,
1229                               trans: cublasOperation_t, n: ::libc::c_int,
1230                               nrhs: ::libc::c_int,
1231                               Aarray: *mut *const ::libc::c_float,
1232                               lda: ::libc::c_int,
1233                               devIpiv: *const ::libc::c_int,
1234                               Barray: *mut *mut ::libc::c_float,
1235                               ldb: ::libc::c_int, info: *mut ::libc::c_int,
1236                               batchSize: ::libc::c_int) -> cublasStatus_t;
1237    pub fn cublasDgetrsBatched(handle: cublasHandle_t,
1238                               trans: cublasOperation_t, n: ::libc::c_int,
1239                               nrhs: ::libc::c_int,
1240                               Aarray: *mut *const ::libc::c_double,
1241                               lda: ::libc::c_int,
1242                               devIpiv: *const ::libc::c_int,
1243                               Barray: *mut *mut ::libc::c_double,
1244                               ldb: ::libc::c_int, info: *mut ::libc::c_int,
1245                               batchSize: ::libc::c_int) -> cublasStatus_t;
1246    pub fn cublasCgetrsBatched(handle: cublasHandle_t,
1247                               trans: cublasOperation_t, n: ::libc::c_int,
1248                               nrhs: ::libc::c_int,
1249                               Aarray: *mut *const cuComplex,
1250                               lda: ::libc::c_int,
1251                               devIpiv: *const ::libc::c_int,
1252                               Barray: *mut *mut cuComplex,
1253                               ldb: ::libc::c_int, info: *mut ::libc::c_int,
1254                               batchSize: ::libc::c_int) -> cublasStatus_t;
1255    pub fn cublasZgetrsBatched(handle: cublasHandle_t,
1256                               trans: cublasOperation_t, n: ::libc::c_int,
1257                               nrhs: ::libc::c_int,
1258                               Aarray: *mut *const cuDoubleComplex,
1259                               lda: ::libc::c_int,
1260                               devIpiv: *const ::libc::c_int,
1261                               Barray: *mut *mut cuDoubleComplex,
1262                               ldb: ::libc::c_int, info: *mut ::libc::c_int,
1263                               batchSize: ::libc::c_int) -> cublasStatus_t;
1264    pub fn cublasStrsmBatched(handle: cublasHandle_t, side: cublasSideMode_t,
1265                              uplo: cublasFillMode_t,
1266                              trans: cublasOperation_t,
1267                              diag: cublasDiagType_t, m: ::libc::c_int,
1268                              n: ::libc::c_int, alpha: *const ::libc::c_float,
1269                              A: *mut *const ::libc::c_float,
1270                              lda: ::libc::c_int,
1271                              B: *mut *mut ::libc::c_float,
1272                              ldb: ::libc::c_int, batchCount: ::libc::c_int)
1273     -> cublasStatus_t;
1274    pub fn cublasDtrsmBatched(handle: cublasHandle_t, side: cublasSideMode_t,
1275                              uplo: cublasFillMode_t,
1276                              trans: cublasOperation_t,
1277                              diag: cublasDiagType_t, m: ::libc::c_int,
1278                              n: ::libc::c_int,
1279                              alpha: *const ::libc::c_double,
1280                              A: *mut *const ::libc::c_double,
1281                              lda: ::libc::c_int,
1282                              B: *mut *mut ::libc::c_double,
1283                              ldb: ::libc::c_int, batchCount: ::libc::c_int)
1284     -> cublasStatus_t;
1285    pub fn cublasCtrsmBatched(handle: cublasHandle_t, side: cublasSideMode_t,
1286                              uplo: cublasFillMode_t,
1287                              trans: cublasOperation_t,
1288                              diag: cublasDiagType_t, m: ::libc::c_int,
1289                              n: ::libc::c_int, alpha: *const cuComplex,
1290                              A: *mut *const cuComplex, lda: ::libc::c_int,
1291                              B: *mut *mut cuComplex, ldb: ::libc::c_int,
1292                              batchCount: ::libc::c_int) -> cublasStatus_t;
1293    pub fn cublasZtrsmBatched(handle: cublasHandle_t, side: cublasSideMode_t,
1294                              uplo: cublasFillMode_t,
1295                              trans: cublasOperation_t,
1296                              diag: cublasDiagType_t, m: ::libc::c_int,
1297                              n: ::libc::c_int, alpha: *const cuDoubleComplex,
1298                              A: *mut *const cuDoubleComplex,
1299                              lda: ::libc::c_int,
1300                              B: *mut *mut cuDoubleComplex,
1301                              ldb: ::libc::c_int, batchCount: ::libc::c_int)
1302     -> cublasStatus_t;
1303    pub fn cublasSmatinvBatched(handle: cublasHandle_t, n: ::libc::c_int,
1304                                A: *mut *const ::libc::c_float,
1305                                lda: ::libc::c_int,
1306                                Ainv: *mut *mut ::libc::c_float,
1307                                lda_inv: ::libc::c_int,
1308                                info: *mut ::libc::c_int,
1309                                batchSize: ::libc::c_int) -> cublasStatus_t;
1310    pub fn cublasDmatinvBatched(handle: cublasHandle_t, n: ::libc::c_int,
1311                                A: *mut *const ::libc::c_double,
1312                                lda: ::libc::c_int,
1313                                Ainv: *mut *mut ::libc::c_double,
1314                                lda_inv: ::libc::c_int,
1315                                info: *mut ::libc::c_int,
1316                                batchSize: ::libc::c_int) -> cublasStatus_t;
1317    pub fn cublasCmatinvBatched(handle: cublasHandle_t, n: ::libc::c_int,
1318                                A: *mut *const cuComplex, lda: ::libc::c_int,
1319                                Ainv: *mut *mut cuComplex,
1320                                lda_inv: ::libc::c_int,
1321                                info: *mut ::libc::c_int,
1322                                batchSize: ::libc::c_int) -> cublasStatus_t;
1323    pub fn cublasZmatinvBatched(handle: cublasHandle_t, n: ::libc::c_int,
1324                                A: *mut *const cuDoubleComplex,
1325                                lda: ::libc::c_int,
1326                                Ainv: *mut *mut cuDoubleComplex,
1327                                lda_inv: ::libc::c_int,
1328                                info: *mut ::libc::c_int,
1329                                batchSize: ::libc::c_int) -> cublasStatus_t;
1330    pub fn cublasSgeqrfBatched(handle: cublasHandle_t, m: ::libc::c_int,
1331                               n: ::libc::c_int,
1332                               Aarray: *mut *mut ::libc::c_float,
1333                               lda: ::libc::c_int,
1334                               TauArray: *mut *mut ::libc::c_float,
1335                               info: *mut ::libc::c_int,
1336                               batchSize: ::libc::c_int) -> cublasStatus_t;
1337    pub fn cublasDgeqrfBatched(handle: cublasHandle_t, m: ::libc::c_int,
1338                               n: ::libc::c_int,
1339                               Aarray: *mut *mut ::libc::c_double,
1340                               lda: ::libc::c_int,
1341                               TauArray: *mut *mut ::libc::c_double,
1342                               info: *mut ::libc::c_int,
1343                               batchSize: ::libc::c_int) -> cublasStatus_t;
1344    pub fn cublasCgeqrfBatched(handle: cublasHandle_t, m: ::libc::c_int,
1345                               n: ::libc::c_int, Aarray: *mut *mut cuComplex,
1346                               lda: ::libc::c_int,
1347                               TauArray: *mut *mut cuComplex,
1348                               info: *mut ::libc::c_int,
1349                               batchSize: ::libc::c_int) -> cublasStatus_t;
1350    pub fn cublasZgeqrfBatched(handle: cublasHandle_t, m: ::libc::c_int,
1351                               n: ::libc::c_int,
1352                               Aarray: *mut *mut cuDoubleComplex,
1353                               lda: ::libc::c_int,
1354                               TauArray: *mut *mut cuDoubleComplex,
1355                               info: *mut ::libc::c_int,
1356                               batchSize: ::libc::c_int) -> cublasStatus_t;
1357    pub fn cublasSgelsBatched(handle: cublasHandle_t,
1358                              trans: cublasOperation_t, m: ::libc::c_int,
1359                              n: ::libc::c_int, nrhs: ::libc::c_int,
1360                              Aarray: *mut *mut ::libc::c_float,
1361                              lda: ::libc::c_int,
1362                              Carray: *mut *mut ::libc::c_float,
1363                              ldc: ::libc::c_int, info: *mut ::libc::c_int,
1364                              devInfoArray: *mut ::libc::c_int,
1365                              batchSize: ::libc::c_int) -> cublasStatus_t;
1366    pub fn cublasDgelsBatched(handle: cublasHandle_t,
1367                              trans: cublasOperation_t, m: ::libc::c_int,
1368                              n: ::libc::c_int, nrhs: ::libc::c_int,
1369                              Aarray: *mut *mut ::libc::c_double,
1370                              lda: ::libc::c_int,
1371                              Carray: *mut *mut ::libc::c_double,
1372                              ldc: ::libc::c_int, info: *mut ::libc::c_int,
1373                              devInfoArray: *mut ::libc::c_int,
1374                              batchSize: ::libc::c_int) -> cublasStatus_t;
1375    pub fn cublasCgelsBatched(handle: cublasHandle_t,
1376                              trans: cublasOperation_t, m: ::libc::c_int,
1377                              n: ::libc::c_int, nrhs: ::libc::c_int,
1378                              Aarray: *mut *mut cuComplex, lda: ::libc::c_int,
1379                              Carray: *mut *mut cuComplex, ldc: ::libc::c_int,
1380                              info: *mut ::libc::c_int,
1381                              devInfoArray: *mut ::libc::c_int,
1382                              batchSize: ::libc::c_int) -> cublasStatus_t;
1383    pub fn cublasZgelsBatched(handle: cublasHandle_t,
1384                              trans: cublasOperation_t, m: ::libc::c_int,
1385                              n: ::libc::c_int, nrhs: ::libc::c_int,
1386                              Aarray: *mut *mut cuDoubleComplex,
1387                              lda: ::libc::c_int,
1388                              Carray: *mut *mut cuDoubleComplex,
1389                              ldc: ::libc::c_int, info: *mut ::libc::c_int,
1390                              devInfoArray: *mut ::libc::c_int,
1391                              batchSize: ::libc::c_int) -> cublasStatus_t;
1392    pub fn cublasSdgmm(handle: cublasHandle_t, mode: cublasSideMode_t,
1393                       m: ::libc::c_int, n: ::libc::c_int,
1394                       A: *const ::libc::c_float, lda: ::libc::c_int,
1395                       x: *const ::libc::c_float, incx: ::libc::c_int,
1396                       C: *mut ::libc::c_float, ldc: ::libc::c_int)
1397     -> cublasStatus_t;
1398    pub fn cublasDdgmm(handle: cublasHandle_t, mode: cublasSideMode_t,
1399                       m: ::libc::c_int, n: ::libc::c_int,
1400                       A: *const ::libc::c_double, lda: ::libc::c_int,
1401                       x: *const ::libc::c_double, incx: ::libc::c_int,
1402                       C: *mut ::libc::c_double, ldc: ::libc::c_int)
1403     -> cublasStatus_t;
1404    pub fn cublasCdgmm(handle: cublasHandle_t, mode: cublasSideMode_t,
1405                       m: ::libc::c_int, n: ::libc::c_int,
1406                       A: *const cuComplex, lda: ::libc::c_int,
1407                       x: *const cuComplex, incx: ::libc::c_int,
1408                       C: *mut cuComplex, ldc: ::libc::c_int)
1409     -> cublasStatus_t;
1410    pub fn cublasZdgmm(handle: cublasHandle_t, mode: cublasSideMode_t,
1411                       m: ::libc::c_int, n: ::libc::c_int,
1412                       A: *const cuDoubleComplex, lda: ::libc::c_int,
1413                       x: *const cuDoubleComplex, incx: ::libc::c_int,
1414                       C: *mut cuDoubleComplex, ldc: ::libc::c_int)
1415     -> cublasStatus_t;
1416    pub fn cublasStpttr(handle: cublasHandle_t, uplo: cublasFillMode_t,
1417                        n: ::libc::c_int, AP: *const ::libc::c_float,
1418                        A: *mut ::libc::c_float, lda: ::libc::c_int)
1419     -> cublasStatus_t;
1420    pub fn cublasDtpttr(handle: cublasHandle_t, uplo: cublasFillMode_t,
1421                        n: ::libc::c_int, AP: *const ::libc::c_double,
1422                        A: *mut ::libc::c_double, lda: ::libc::c_int)
1423     -> cublasStatus_t;
1424    pub fn cublasCtpttr(handle: cublasHandle_t, uplo: cublasFillMode_t,
1425                        n: ::libc::c_int, AP: *const cuComplex,
1426                        A: *mut cuComplex, lda: ::libc::c_int)
1427     -> cublasStatus_t;
1428    pub fn cublasZtpttr(handle: cublasHandle_t, uplo: cublasFillMode_t,
1429                        n: ::libc::c_int, AP: *const cuDoubleComplex,
1430                        A: *mut cuDoubleComplex, lda: ::libc::c_int)
1431     -> cublasStatus_t;
1432    pub fn cublasStrttp(handle: cublasHandle_t, uplo: cublasFillMode_t,
1433                        n: ::libc::c_int, A: *const ::libc::c_float,
1434                        lda: ::libc::c_int, AP: *mut ::libc::c_float)
1435     -> cublasStatus_t;
1436    pub fn cublasDtrttp(handle: cublasHandle_t, uplo: cublasFillMode_t,
1437                        n: ::libc::c_int, A: *const ::libc::c_double,
1438                        lda: ::libc::c_int, AP: *mut ::libc::c_double)
1439     -> cublasStatus_t;
1440    pub fn cublasCtrttp(handle: cublasHandle_t, uplo: cublasFillMode_t,
1441                        n: ::libc::c_int, A: *const cuComplex,
1442                        lda: ::libc::c_int, AP: *mut cuComplex)
1443     -> cublasStatus_t;
1444    pub fn cublasZtrttp(handle: cublasHandle_t, uplo: cublasFillMode_t,
1445                        n: ::libc::c_int, A: *const cuDoubleComplex,
1446                        lda: ::libc::c_int, AP: *mut cuDoubleComplex)
1447     -> cublasStatus_t;
1448}